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,73 @@
1
+ <script>import Button from '../../../common/button/Button.svelte';
2
+ import { faPlus, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
3
+ import { getContext } from 'svelte';
4
+ import { deleteGridItem } from '../appUtils';
5
+ import PanelSection from './common/PanelSection.svelte';
6
+ export let tabs;
7
+ export let component;
8
+ const { app, staticOutputs, runnableComponents } = getContext('AppEditorContext');
9
+ function addTab() {
10
+ const numberOfTabs = tabs.length;
11
+ tabs = [...tabs, `Tab ${numberOfTabs + 1}`];
12
+ if (!$app.subgrids) {
13
+ $app.subgrids = {};
14
+ }
15
+ $app.subgrids[`${component.id}-${numberOfTabs}`] = [];
16
+ component.numberOfSubgrids = tabs.length;
17
+ }
18
+ function deleteSubgrid(index) {
19
+ let subgrid = `${component.id}-${index}`;
20
+ for (const item of $app.subgrids[subgrid]) {
21
+ const components = deleteGridItem($app, item.data, subgrid);
22
+ console.log(components);
23
+ for (const key in components) {
24
+ delete $staticOutputs[key];
25
+ delete $runnableComponents[key];
26
+ }
27
+ }
28
+ $staticOutputs = $staticOutputs;
29
+ $runnableComponents = $runnableComponents;
30
+ for (let i = index; i < tabs.length - 1; i++) {
31
+ $app.subgrids[`${component.id}-${i}`] = $app.subgrids[`${component.id}-${i + 1}`];
32
+ }
33
+ tabs.splice(index, 1);
34
+ tabs = tabs;
35
+ component.numberOfSubgrids = tabs.length;
36
+ $app = $app;
37
+ }
38
+ </script>
39
+
40
+ <PanelSection title={`Tabs ${tabs.length > 0 ? `(${tabs.length})` : ''}`}>
41
+ {#if tabs.length == 0}
42
+ <span class="text-xs text-gray-500">No Tabs</span>
43
+ {/if}
44
+ <div class="flex gap-2 flex-col mt-2">
45
+ {#each tabs as value, index (index)}
46
+ <div class="flex flex-row gap-2 items-center relative">
47
+ <input type="text" bind:value />
48
+
49
+ <div class="absolute top-1 right-1">
50
+ <Button
51
+ size="xs"
52
+ color="light"
53
+ variant="border"
54
+ on:click={() => {
55
+ deleteSubgrid(index)
56
+ }}
57
+ iconOnly
58
+ btnClasses="!text-red-500"
59
+ startIcon={{ icon: faTrashAlt }}
60
+ />
61
+ </div>
62
+ </div>
63
+ {/each}
64
+ <Button
65
+ size="xs"
66
+ color="light"
67
+ variant="border"
68
+ startIcon={{ icon: faPlus }}
69
+ on:click={addTab}
70
+ iconOnly
71
+ />
72
+ </div>
73
+ </PanelSection>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AppComponent } from '../component';
3
+ declare const __propDef: {
4
+ props: {
5
+ tabs: string[];
6
+ component: AppComponent;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ };
13
+ export type GridTabProps = typeof __propDef.props;
14
+ export type GridTabEvents = typeof __propDef.events;
15
+ export type GridTabSlots = typeof __propDef.slots;
16
+ export default class GridTab extends SvelteComponentTyped<GridTabProps, GridTabEvents, GridTabSlots> {
17
+ }
18
+ export {};
@@ -2,6 +2,7 @@
2
2
  import EvalInputEditor from './inputEditor/EvalInputEditor.svelte';
3
3
  import RowInputEditor from './inputEditor/RowInputEditor.svelte';
4
4
  import StaticInputEditor from './inputEditor/StaticInputEditor.svelte';
5
+ import UploadInputEditor from './inputEditor/UploadInputEditor.svelte';
5
6
  export let id;
6
7
  export let componentInput;
7
8
  export let hasRows = false;
@@ -15,6 +16,8 @@ export let hasRows = false;
15
16
  <StaticInputEditor bind:componentInput />
16
17
  {:else if componentInput.type === 'eval'}
17
18
  <EvalInputEditor {hasRows} {id} bind:componentInput />
19
+ {:else if componentInput.type === 'upload'}
20
+ <UploadInputEditor bind:componentInput />
18
21
  {:else if componentInput.type === 'user'}
19
22
  <span class="text-2xs italic text-gray-6f00">Field's value is set by the user</span>
20
23
  {/if}
@@ -1,9 +1,9 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { ConnectedAppInput, EvalAppInput, RowAppInput, StaticAppInput, UserAppInput } from '../../inputType';
2
+ import type { ConnectedAppInput, EvalAppInput, RowAppInput, StaticAppInput, UploadAppInput, UserAppInput } from '../../inputType';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  id: string;
6
- componentInput: StaticAppInput | ConnectedAppInput | UserAppInput | RowAppInput | EvalAppInput;
6
+ componentInput: StaticAppInput | ConnectedAppInput | UserAppInput | RowAppInput | EvalAppInput | UploadAppInput;
7
7
  hasRows?: boolean | undefined;
8
8
  };
9
9
  events: {
@@ -1,6 +1,6 @@
1
1
  <script>import { Badge, ToggleButton, ToggleButtonGroup } from '../../../common';
2
2
  import { addWhitespaceBeforeCapitals, capitalize } from '../../../../utils';
3
- import { faArrowRight, faPen, faTableCells, faUser } from '@fortawesome/free-solid-svg-icons';
3
+ import { faArrowRight, faPen, faUpload, faUser } from '@fortawesome/free-solid-svg-icons';
4
4
  import { fieldTypeToTsType } from '../../utils';
5
5
  import InputsSpecEditor from './InputsSpecEditor.svelte';
6
6
  import { getContext } from 'svelte';
@@ -11,6 +11,7 @@ export let inputSpecs;
11
11
  export let userInputEnabled = true;
12
12
  export let shouldCapitalize = true;
13
13
  export let rowColumns = false;
14
+ export let resourceOnly = false;
14
15
  const { connectingInput } = getContext('AppEditorContext');
15
16
  </script>
16
17
 
@@ -18,97 +19,111 @@ const { connectingInput } = getContext('AppEditorContext');
18
19
  <div class="w-full flex flex-col gap-4">
19
20
  {#each Object.keys(inputSpecs) as inputSpecKey (inputSpecKey)}
20
21
  {@const input = inputSpecs[inputSpecKey]}
21
- <div class="flex flex-col gap-1">
22
- <div class="flex justify-between items-end gap-1">
23
- <span class="text-sm font-semibold truncate">
24
- {shouldCapitalize
25
- ? capitalize(addWhitespaceBeforeCapitals(inputSpecKey))
26
- : inputSpecKey}
27
- {#if input.tooltip}
28
- <Tooltip>
29
- {input.tooltip}
30
- </Tooltip>
31
- {/if}
32
- </span>
22
+ {#if !(resourceOnly && (input.fieldType !== 'object' || !input.format?.startsWith('resource-')))}
23
+ <div class="flex flex-col gap-1">
24
+ <div class="flex justify-between items-end gap-1">
25
+ <span class="text-sm font-semibold truncate">
26
+ {shouldCapitalize
27
+ ? capitalize(addWhitespaceBeforeCapitals(inputSpecKey))
28
+ : inputSpecKey}
29
+ {#if input.tooltip}
30
+ <Tooltip>
31
+ {input.tooltip}
32
+ </Tooltip>
33
+ {/if}
34
+ </span>
33
35
 
34
- <div class="flex gap-x-2 gap-y-1 flex-wrap justify-end items-center">
35
- <Badge color="blue">
36
- {input.fieldType === 'array' && input.subFieldType
37
- ? `${capitalize(fieldTypeToTsType(input.subFieldType))}[]`
38
- : capitalize(fieldTypeToTsType(input.fieldType))}
39
- </Badge>
36
+ <div class="flex gap-x-2 gap-y-1 flex-wrap justify-end items-center">
37
+ <Badge color="blue">
38
+ {input.fieldType === 'array' && input.subFieldType
39
+ ? `${capitalize(fieldTypeToTsType(input.subFieldType))}[]`
40
+ : capitalize(fieldTypeToTsType(input.fieldType))}
41
+ </Badge>
40
42
 
41
- {#if !inputSpecs[inputSpecKey].onlyStatic && inputSpecs[inputSpecKey].type != 'eval'}
42
- <ToggleButtonGroup
43
- bind:selected={inputSpecs[inputSpecKey].type}
44
- on:selected={(e) => {
45
- if (e.detail == 'connected' && !inputSpecs[inputSpecKey]['connection']) {
46
- $connectingInput = {
47
- opened: true,
48
- input: undefined,
49
- hoveredComponent: undefined
43
+ {#if !inputSpecs[inputSpecKey].onlyStatic && inputSpecs[inputSpecKey].type != 'eval'}
44
+ <ToggleButtonGroup
45
+ bind:selected={inputSpecs[inputSpecKey].type}
46
+ on:selected={(e) => {
47
+ if (e.detail == 'connected' && !inputSpecs[inputSpecKey]['connection']) {
48
+ $connectingInput = {
49
+ opened: true,
50
+ input: undefined,
51
+ hoveredComponent: undefined
52
+ }
50
53
  }
51
- }
52
- }}
53
- >
54
- <Popover placement="bottom" notClickable disapperTimoout={0}>
55
- <ToggleButton
56
- position="left"
57
- value="static"
58
- startIcon={{ icon: faPen }}
59
- size="xs"
60
- iconOnly
61
- />
62
- <svelte:fragment slot="text">Static</svelte:fragment>
63
- </Popover>
64
- {#if rowColumns}
54
+ }}
55
+ >
65
56
  <Popover placement="bottom" notClickable disapperTimoout={0}>
66
57
  <ToggleButton
67
- position="center"
68
- value="row"
69
- startIcon={{ icon: faTableCells }}
58
+ position="left"
59
+ value="static"
60
+ startIcon={{ icon: faPen }}
70
61
  size="xs"
71
- >
72
- <Tooltip scale={0.6} placement="top-end" wrapperClass="center-center">
73
- Use the column name to have the value of the cell be passed to the action
74
- </Tooltip>
75
- </ToggleButton>
76
- <svelte:fragment slot="text">Column</svelte:fragment>
62
+ iconOnly
63
+ />
64
+ <svelte:fragment slot="text">Static</svelte:fragment>
77
65
  </Popover>
78
- {/if}
79
- {#if userInputEnabled && !input.format?.startsWith('resource-')}
66
+ <!-- {#if rowColumns}
67
+ <Popover placement="bottom" notClickable disapperTimoout={0}>
68
+ <ToggleButton
69
+ position="center"
70
+ value="row"
71
+ startIcon={{ icon: faTableCells }}
72
+ size="xs"
73
+ >
74
+ <Tooltip scale={0.6} placement="top-end" wrapperClass="center-center">
75
+ Use the column name to have the value of the cell be passed to the action
76
+ </Tooltip>
77
+ </ToggleButton>
78
+ <svelte:fragment slot="text">Column</svelte:fragment>
79
+ </Popover>
80
+ {/if} -->
81
+ {#if userInputEnabled && !input.format?.startsWith('resource-')}
82
+ <Popover placement="bottom" notClickable disapperTimoout={0}>
83
+ <ToggleButton
84
+ position="center"
85
+ value="user"
86
+ startIcon={{ icon: faUser }}
87
+ size="xs"
88
+ iconOnly
89
+ />
90
+ <svelte:fragment slot="text">User Input</svelte:fragment>
91
+ </Popover>
92
+ {/if}
93
+ {#if 'fileUpload' in inputSpecs[inputSpecKey]}
94
+ <Popover placement="bottom" notClickable disapperTimoout={0}>
95
+ <ToggleButton
96
+ position="center"
97
+ value="upload"
98
+ startIcon={{ icon: faUpload }}
99
+ size="xs"
100
+ iconOnly
101
+ />
102
+ <svelte:fragment slot="text">Upload</svelte:fragment>
103
+ </Popover>
104
+ {/if}
80
105
  <Popover placement="bottom" notClickable disapperTimoout={0}>
81
106
  <ToggleButton
82
- position="center"
83
- value="user"
84
- startIcon={{ icon: faUser }}
107
+ position="right"
108
+ value="connected"
109
+ startIcon={{ icon: faArrowRight }}
85
110
  size="xs"
86
111
  iconOnly
87
112
  />
88
- <svelte:fragment slot="text">User Input</svelte:fragment>
113
+ <svelte:fragment slot="text">Connect</svelte:fragment>
89
114
  </Popover>
90
- {/if}
91
- <Popover placement="bottom" notClickable disapperTimoout={0}>
92
- <ToggleButton
93
- position="right"
94
- value="connected"
95
- startIcon={{ icon: faArrowRight }}
96
- size="xs"
97
- iconOnly
98
- />
99
- <svelte:fragment slot="text">Connect</svelte:fragment>
100
- </Popover>
101
- </ToggleButtonGroup>
102
- {/if}
115
+ </ToggleButtonGroup>
116
+ {/if}
117
+ </div>
103
118
  </div>
104
- </div>
105
119
 
106
- <InputsSpecEditor
107
- hasRows={rowColumns}
108
- {id}
109
- bind:componentInput={inputSpecs[inputSpecKey]}
110
- />
111
- </div>
120
+ <InputsSpecEditor
121
+ hasRows={rowColumns}
122
+ {id}
123
+ bind:componentInput={inputSpecs[inputSpecKey]}
124
+ />
125
+ </div>
126
+ {/if}
112
127
  {/each}
113
128
  </div>
114
129
  {:else}
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  userInputEnabled?: boolean | undefined;
8
8
  shouldCapitalize?: boolean | undefined;
9
9
  rowColumns?: boolean | undefined;
10
+ resourceOnly?: boolean | undefined;
10
11
  };
11
12
  events: {
12
13
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,85 @@
1
+ <script>import { Button } from '../../../common';
2
+ import { dirtyStore } from '../../../common/confirmationModal/dirtyStore';
3
+ import { faCopy } from '@fortawesome/free-solid-svg-icons';
4
+ import { getContext } from 'svelte';
5
+ import { createNewGridItem, deleteGridItem, findGridItem, insertNewGridItem } from '../appUtils';
6
+ export let component;
7
+ export let parent;
8
+ let selectedOption;
9
+ const { app } = getContext('AppEditorContext');
10
+ function listAllSubGrids(app) {
11
+ return app.subgrids ? Object.keys(app.subgrids) : [];
12
+ }
13
+ function findAndDelete(id) {
14
+ const node = findGridItem($app, id);
15
+ if (!node) {
16
+ return;
17
+ }
18
+ const data = JSON.parse(JSON.stringify(node.data));
19
+ $dirtyStore = true;
20
+ deleteGridItem($app, data, parent);
21
+ return data;
22
+ }
23
+ function insertComponentInSubGrid(data, targetId, targetSubGridIndex) {
24
+ insertNewGridItem($app, data, {
25
+ parentComponentId: targetId,
26
+ subGridIndex: targetSubGridIndex
27
+ }, true);
28
+ $app.grid = [...$app.grid];
29
+ }
30
+ function insertComponentInMainGrid(data) {
31
+ const newComponent = createNewGridItem($app.grid, data.id, data);
32
+ $app.grid = [...$app.grid, newComponent];
33
+ }
34
+ function onMove(component) {
35
+ const data = findAndDelete(component.id);
36
+ if (!data) {
37
+ return;
38
+ }
39
+ if (selectedOption !== 'main-grid') {
40
+ const [targetId, targetSubGridIndex] = selectedOption.split('-');
41
+ insertComponentInSubGrid(data, targetId, parseInt(targetSubGridIndex));
42
+ }
43
+ else {
44
+ insertComponentInMainGrid(data);
45
+ }
46
+ }
47
+ const defaultOption = {
48
+ label: 'Main grid',
49
+ value: 'main-grid',
50
+ disabled: parent === undefined
51
+ };
52
+ $: availableGrids = listAllSubGrids($app);
53
+ $: options = availableGrids
54
+ ? [
55
+ defaultOption,
56
+ ...availableGrids?.map((grid) => ({
57
+ label: grid,
58
+ value: grid,
59
+ disabled: grid === parent || (component && grid.startsWith(component.id))
60
+ }))
61
+ ]
62
+ : [defaultOption];
63
+ </script>
64
+
65
+ {#if component && !options.every((option) => option.disabled)}
66
+ <select bind:value={selectedOption} class="w-full">
67
+ {#each options as option}
68
+ <option value={option.value} disabled={option.disabled}>{option.label}</option>
69
+ {/each}
70
+ </select>
71
+ <Button
72
+ size="xs"
73
+ color="dark"
74
+ startIcon={{ icon: faCopy }}
75
+ on:click={() => {
76
+ if (component) {
77
+ onMove(component)
78
+ }
79
+ }}
80
+ >
81
+ Move component: {component.id}
82
+ </Button>
83
+ {:else}
84
+ <p class="text-gray-500 text-sm">No grids available</p>
85
+ {/if}
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AppComponent } from '../component';
3
+ declare const __propDef: {
4
+ props: {
5
+ component: AppComponent | undefined;
6
+ parent: string | undefined;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ };
13
+ export type MoveToOtherGridProps = typeof __propDef.props;
14
+ export type MoveToOtherGridEvents = typeof __propDef.events;
15
+ export type MoveToOtherGridSlots = typeof __propDef.slots;
16
+ export default class MoveToOtherGrid extends SvelteComponentTyped<MoveToOtherGridProps, MoveToOtherGridEvents, MoveToOtherGridSlots> {
17
+ }
18
+ export {};
@@ -14,7 +14,10 @@ function onChange(event, id) {
14
14
  }
15
15
  </script>
16
16
 
17
- <PanelSection title="Recompute others" tooltip="Select components to recompute after running this script">
17
+ <PanelSection
18
+ title="Recompute others"
19
+ tooltip="Select components to recompute after running this script"
20
+ >
18
21
  {#if Object.keys($runnableComponents ?? {}).filter((id) => id !== ownId).length > 0}
19
22
  <table class="divide-y divide-gray-300 border w-full">
20
23
  <thead class="bg-gray-50">
@@ -86,17 +86,28 @@ function deleteComponent(cid) {
86
86
  }}
87
87
  on:keypress
88
88
  >
89
+ <Badge color="dark-indigo">
90
+ {component.id}
91
+ </Badge>
92
+
93
+ <div>
94
+ <TableActionLabel componentInput={component.configuration.label} />
95
+ </div>
89
96
  <div>
90
97
  <Button variant="border" color="red" on:click={() => deleteComponent(component.id)}>
91
98
  <Icon class="h-3" data={faTrashAlt} />
92
99
  </Button>
93
100
  </div>
94
- <div>
95
- <TableActionLabel componentInput={component.configuration.label} />
96
- </div>
97
- <Badge color="dark-indigo">
98
- {component.id}
99
- </Badge>
100
101
  </div>
101
102
  {/each}
103
+ <div class="w-full">
104
+ <Button
105
+ btnClasses="w-full"
106
+ color="light"
107
+ variant="border"
108
+ startIcon={{ icon: faPlus }}
109
+ on:click={addComponent}
110
+ iconOnly
111
+ />
112
+ </div>
102
113
  </PanelSection>
@@ -1,5 +1,6 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { ButtonComponent, BaseAppComponent } from '../../types';
2
+ import type { BaseAppComponent } from '../../types';
3
+ import type { ButtonComponent } from '../component';
3
4
  declare const __propDef: {
4
5
  props: {
5
6
  components: (BaseAppComponent & ButtonComponent)[];
@@ -14,9 +14,11 @@ export let tooltip = '';
14
14
  noPadding ? '' : smallPadding ? 'p-2' : 'p-4'
15
15
  )}
16
16
  >
17
- <div class="flex justify-between items-center w-full gap-1">
18
- <div class="text-sm font-extrabold {titlePadding}">
19
- {title}
17
+ <div class="flex justify-between flex-wrap items-center w-full gap-1">
18
+ <div class="text-sm inline-flex items-center font-extrabold {titlePadding}">
19
+ <span class="truncate">
20
+ {title}
21
+ </span>
20
22
  {#if tooltip}
21
23
  <Tooltip>
22
24
  {tooltip}
@@ -0,0 +1,83 @@
1
+ <script>import { Loader2 } from 'lucide-svelte';
2
+ import { Popup } from '../../../../common';
3
+ export let componentInput;
4
+ let anchor;
5
+ let loading = false;
6
+ let items;
7
+ let filteredItems;
8
+ let search = '';
9
+ $: if (search) {
10
+ filteredItems = items.filter((item) => {
11
+ return item.label.toLowerCase().includes(search.toLowerCase());
12
+ });
13
+ }
14
+ else {
15
+ filteredItems = items;
16
+ }
17
+ async function getData() {
18
+ if (items)
19
+ return;
20
+ loading = true;
21
+ const data = await import('lucide-svelte/dist/svelte/icons');
22
+ filteredItems = items = Object.entries(data)
23
+ .filter(([key]) => !(key.endsWith('Icon') || key.startsWith('Lucide')))
24
+ .map(([key, icon]) => ({ label: key, icon }));
25
+ loading = false;
26
+ }
27
+ function formatName(name) {
28
+ // Inserts space before capital letters and numbers
29
+ return (name
30
+ ?.replace(/([A-Z])/g, ' $1')
31
+ .trim()
32
+ .replace(/([a-z])(\d)/i, '$1 $2') || '');
33
+ }
34
+ function select(label) {
35
+ componentInput.value = label;
36
+ if (document.activeElement?.blur) {
37
+ ;
38
+ document.activeElement.blur();
39
+ }
40
+ }
41
+ </script>
42
+
43
+ <input readonly value={formatName(componentInput.value)} bind:this={anchor} on:focus={getData} />
44
+ {#if anchor}
45
+ <Popup ref={anchor} options={{ placement: 'bottom' }} let:close>
46
+ <div class="max-w-xs shadow-[0_10px_40px_-5px_rgba(0,0,0,0.25)] bg-white rounded-md p-2">
47
+ {#if loading}
48
+ <div class="center-center p-2">
49
+ <Loader2 class="animate-spin" size={18} />
50
+ </div>
51
+ {:else if filteredItems}
52
+ <input bind:value={search} type="text" placeholder="Search" class="col-span-4 mb-2" />
53
+ <div class="grid gap-1 grid-cols-4 max-h-[300px] overflow-auto">
54
+ {#each filteredItems as { label, icon }}
55
+ {@const formatedLabel = formatName(label)}
56
+ <button
57
+ type="button"
58
+ title={formatedLabel}
59
+ on:click={() => {
60
+ select(label)
61
+ close()
62
+ }}
63
+ class="w-full center-center flex-col font-normal p-1
64
+ hover:bg-gray-100 focus:bg-gray-100 rounded duration-200
65
+ {label === componentInput.value ? 'text-blue-600 bg-blue-50 pointer-events-none' : ''}"
66
+ >
67
+ <svelte:component this={icon} size={22} />
68
+ <span class="inline-block w-full text-[10px] ellipsize pt-0.5">
69
+ {formatedLabel}
70
+ </span>
71
+ </button>
72
+ {:else}
73
+ <div class="col-span-4 text-center text-gray-700 text-sm p-2">
74
+ No icons match your search
75
+ </div>
76
+ {/each}
77
+ </div>
78
+ {:else}
79
+ <div class="text-center text-sm text-gray-600 p-2"> Couldn't load options </div>
80
+ {/if}
81
+ </div>
82
+ </Popup>
83
+ {/if}
@@ -0,0 +1,19 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { AppInput, StaticInput } from '../../../inputType';
3
+ declare const __propDef: {
4
+ props: {
5
+ componentInput: StaticInput<string> & Extract<AppInput, {
6
+ fieldType: 'icon-select';
7
+ }>;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type IconSelectInputProps = typeof __propDef.props;
15
+ export type IconSelectInputEvents = typeof __propDef.events;
16
+ export type IconSelectInputSlots = typeof __propDef.slots;
17
+ export default class IconSelectInput extends SvelteComponentTyped<IconSelectInputProps, IconSelectInputEvents, IconSelectInputSlots> {
18
+ }
19
+ export {};
@@ -4,6 +4,7 @@ import ArrayStaticInputEditor from '../ArrayStaticInputEditor.svelte';
4
4
  import ResourcePicker from '../../../../ResourcePicker.svelte';
5
5
  import JsonEditor from './JsonEditor.svelte';
6
6
  import { getContext } from 'svelte';
7
+ import IconSelectInput from './IconSelectInput.svelte';
7
8
  export let componentInput;
8
9
  const { onchange } = getContext('AppEditorContext');
9
10
  $: componentInput && onchange?.();
@@ -14,6 +15,8 @@ $: componentInput && onchange?.();
14
15
  <input type="number" bind:value={componentInput.value} />
15
16
  {:else if componentInput.fieldType === 'textarea'}
16
17
  <textarea bind:value={componentInput.value} />
18
+ {:else if componentInput.fieldType === 'date'}
19
+ <input type="date" bind:value={componentInput.value} />
17
20
  {:else if componentInput.fieldType === 'boolean'}
18
21
  <Toggle bind:checked={componentInput.value} />
19
22
  {:else if componentInput.fieldType === 'select'}
@@ -24,6 +27,8 @@ $: componentInput && onchange?.();
24
27
  </option>
25
28
  {/each}
26
29
  </select>
30
+ {:else if componentInput.fieldType === 'icon-select'}
31
+ <IconSelectInput bind:componentInput />
27
32
  {:else if componentInput.fieldType === 'object'}
28
33
  {#if componentInput?.format?.startsWith('resource-')}
29
34
  <ResourcePicker
@@ -48,7 +53,7 @@ $: componentInput && onchange?.();
48
53
  </div>
49
54
  {/if}
50
55
  {:else if componentInput.fieldType === 'array'}
51
- <ArrayStaticInputEditor bind:componentInput />
56
+ <ArrayStaticInputEditor bind:componentInput on:deleteArrayItem />
52
57
  {:else}
53
58
  <input type="text" placeholder="Static value" bind:value={componentInput.value} />
54
59
  {/if}
@@ -5,6 +5,8 @@ declare const __propDef: {
5
5
  componentInput: StaticAppInput | undefined;
6
6
  };
7
7
  events: {
8
+ deleteArrayItem: CustomEvent<any>;
9
+ } & {
8
10
  [evt: string]: CustomEvent<any>;
9
11
  };
10
12
  slots: {};