windmill-components 1.70.0 → 1.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/assets/app.css +12 -1
  2. package/components/AppConnect.svelte +4 -3
  3. package/components/DisplayResult.svelte +28 -10
  4. package/components/Dropdown.svelte +14 -4
  5. package/components/FieldHeader.svelte +12 -8
  6. package/components/FlowBuilder.svelte +107 -39
  7. package/components/FlowBuilder.svelte.d.ts +5 -0
  8. package/components/FlowGraphViewer.svelte +6 -5
  9. package/components/FlowJobResult.svelte +3 -3
  10. package/components/FlowPreviewContent.svelte +3 -8
  11. package/components/FlowStatusViewer.svelte +21 -8
  12. package/components/FolderUsageInfo.svelte +16 -6
  13. package/components/FolderUsageInfo.svelte.d.ts +2 -0
  14. package/components/GroupEditor.svelte +8 -0
  15. package/components/InputTransformForm.svelte +13 -20
  16. package/components/InputTransformSchemaForm.svelte +103 -0
  17. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  18. package/components/LogViewer.svelte +1 -1
  19. package/components/ModulePreview.svelte +3 -2
  20. package/components/Multiselect.svelte +1 -1
  21. package/components/PageHeader.svelte +1 -1
  22. package/components/Path.svelte +35 -12
  23. package/components/Popover.svelte +2 -13
  24. package/components/ResourcePicker.svelte +33 -14
  25. package/components/RunChart.svelte +24 -5
  26. package/components/RunForm.svelte +5 -6
  27. package/components/RunForm.svelte.d.ts +1 -0
  28. package/components/SchemaForm.svelte +59 -57
  29. package/components/SchemaForm.svelte.d.ts +0 -5
  30. package/components/ScriptBuilder.svelte +151 -135
  31. package/components/ScriptPicker.svelte +3 -0
  32. package/components/SettingSection.svelte +44 -0
  33. package/components/SettingSection.svelte.d.ts +21 -0
  34. package/components/SimpleEditor.svelte +4 -1
  35. package/components/SimpleEditor.svelte.d.ts +2 -0
  36. package/components/Slider.svelte +6 -1
  37. package/components/Slider.svelte.d.ts +1 -0
  38. package/components/TemplateEditor.svelte +1 -1
  39. package/components/TestJobLoader.svelte +2 -2
  40. package/components/Toggle.svelte +17 -4
  41. package/components/Toggle.svelte.d.ts +2 -0
  42. package/components/Tooltip.svelte +4 -2
  43. package/components/UserSettings.svelte +2 -0
  44. package/components/WhitelistIp.svelte +1 -3
  45. package/components/apps/components/buttons/AppButton.svelte +45 -23
  46. package/components/apps/components/buttons/AppButton.svelte.d.ts +2 -0
  47. package/components/apps/components/buttons/AppForm.svelte +18 -12
  48. package/components/apps/components/buttons/AppForm.svelte.d.ts +3 -0
  49. package/components/apps/components/buttons/AppFormButton.svelte +14 -10
  50. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +3 -0
  51. package/components/apps/components/display/AppBarChart.svelte +15 -7
  52. package/components/apps/components/display/AppBarChart.svelte.d.ts +3 -0
  53. package/components/apps/components/display/AppDisplayComponent.svelte +17 -12
  54. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +1 -0
  55. package/components/apps/components/display/AppHtml.svelte +18 -4
  56. package/components/apps/components/display/AppHtml.svelte.d.ts +3 -0
  57. package/components/apps/components/display/AppIcon.svelte +20 -8
  58. package/components/apps/components/display/AppIcon.svelte.d.ts +3 -0
  59. package/components/apps/components/display/AppImage.svelte +17 -10
  60. package/components/apps/components/display/AppImage.svelte.d.ts +3 -0
  61. package/components/apps/components/display/AppMap.svelte +214 -0
  62. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  63. package/components/apps/components/display/AppPdf.svelte +304 -0
  64. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  65. package/components/apps/components/display/AppPieChart.svelte +15 -7
  66. package/components/apps/components/display/AppPieChart.svelte.d.ts +3 -0
  67. package/components/apps/components/display/AppScatterChart.svelte +12 -4
  68. package/components/apps/components/display/AppScatterChart.svelte.d.ts +3 -0
  69. package/components/apps/components/display/AppText.svelte +38 -32
  70. package/components/apps/components/display/AppText.svelte.d.ts +1 -0
  71. package/components/apps/components/display/AppTimeseries.svelte +12 -4
  72. package/components/apps/components/display/AppTimeseries.svelte.d.ts +3 -0
  73. package/components/apps/components/display/PlotlyHtml.svelte +8 -14
  74. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +1 -1
  75. package/components/apps/components/display/VegaLiteHtml.svelte +3 -8
  76. package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +1 -0
  77. package/components/apps/components/display/index.d.ts +3 -0
  78. package/components/apps/components/display/index.js +3 -0
  79. package/components/apps/components/display/table/AppAggridTable.svelte +20 -8
  80. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
  81. package/components/apps/components/display/table/AppTable.svelte +69 -21
  82. package/components/apps/components/display/table/AppTable.svelte.d.ts +3 -1
  83. package/components/apps/components/display/table/AppTableFooter.svelte +8 -1
  84. package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -0
  85. package/components/apps/components/helpers/AlignWrapper.svelte +13 -7
  86. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +3 -1
  87. package/components/apps/components/helpers/HiddenComponent.svelte +5 -1
  88. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -0
  89. package/components/apps/components/helpers/InputValue.svelte +58 -52
  90. package/components/apps/components/helpers/InputValue.svelte.d.ts +4 -3
  91. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  92. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  93. package/components/apps/components/helpers/RefreshButton.svelte +3 -4
  94. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  95. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  96. package/components/apps/components/helpers/RunnableComponent.svelte +126 -91
  97. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -1
  98. package/components/apps/components/helpers/RunnableWrapper.svelte +11 -5
  99. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +4 -1
  100. package/components/apps/components/helpers/eval.d.ts +5 -0
  101. package/components/apps/components/helpers/eval.js +57 -0
  102. package/components/apps/components/inputs/AppCheckbox.svelte +8 -2
  103. package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +3 -0
  104. package/components/apps/components/inputs/AppDateInput.svelte +25 -18
  105. package/components/apps/components/inputs/AppDateInput.svelte.d.ts +6 -1
  106. package/components/apps/components/inputs/AppFileInput.svelte +22 -14
  107. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +3 -0
  108. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  109. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  110. package/components/apps/components/inputs/AppNumberInput.svelte +20 -16
  111. package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +5 -0
  112. package/components/apps/components/inputs/AppRangeInput.svelte +55 -14
  113. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +3 -0
  114. package/components/apps/components/inputs/AppSelect.svelte +58 -21
  115. package/components/apps/components/inputs/AppSelect.svelte.d.ts +3 -0
  116. package/components/apps/components/inputs/AppSliderInputs.svelte +41 -9
  117. package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +3 -0
  118. package/components/apps/components/inputs/AppTextInput.svelte +53 -19
  119. package/components/apps/components/inputs/AppTextInput.svelte.d.ts +6 -0
  120. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +13 -3
  121. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +3 -0
  122. package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -0
  123. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +1 -0
  124. package/components/apps/components/layout/AppContainer.svelte +20 -17
  125. package/components/apps/components/layout/AppContainer.svelte.d.ts +3 -0
  126. package/components/apps/components/layout/AppDivider.svelte +24 -4
  127. package/components/apps/components/layout/AppDivider.svelte.d.ts +3 -1
  128. package/components/apps/components/layout/AppDrawer.svelte +86 -0
  129. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  130. package/components/apps/components/layout/AppSplitpanes.svelte +83 -0
  131. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  132. package/components/apps/components/layout/AppTabs.svelte +112 -40
  133. package/components/apps/components/layout/AppTabs.svelte.d.ts +4 -0
  134. package/components/apps/components/layout/index.d.ts +2 -0
  135. package/components/apps/components/layout/index.js +2 -0
  136. package/components/apps/editor/AppEditor.svelte +201 -132
  137. package/components/apps/editor/AppEditor.svelte.d.ts +3 -1
  138. package/components/apps/editor/AppEditorHeader.svelte +149 -66
  139. package/components/apps/editor/AppInputs.svelte +3 -3
  140. package/components/apps/editor/AppPreview.svelte +21 -7
  141. package/components/apps/editor/ComponentHeader.svelte +17 -4
  142. package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
  143. package/components/apps/editor/GridEditor.svelte +86 -70
  144. package/components/apps/editor/GridPanel.svelte +29 -0
  145. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  146. package/components/apps/editor/RecomputeAllComponents.svelte +14 -6
  147. package/components/apps/editor/SettingsPanel.svelte +30 -27
  148. package/components/apps/editor/SubGridEditor.svelte +82 -50
  149. package/components/apps/editor/SubGridEditor.svelte.d.ts +8 -4
  150. package/components/apps/editor/appUtils.d.ts +22 -3
  151. package/components/apps/editor/appUtils.js +221 -47
  152. package/components/apps/editor/component/Component.svelte +281 -61
  153. package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  154. package/components/apps/editor/component/ComponentNavigation.svelte +170 -0
  155. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  156. package/components/apps/editor/component/components.d.ts +15 -3
  157. package/components/apps/editor/component/components.js +409 -54
  158. package/components/apps/editor/component/default-codes.js +6 -6
  159. package/components/apps/editor/component/sets.js +11 -3
  160. package/components/apps/editor/componentsPanel/ComponentList.svelte +72 -29
  161. package/components/apps/editor/componentsPanel/CssProperty.svelte +59 -23
  162. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +2 -1
  163. package/components/apps/editor/componentsPanel/CssSettings.svelte +56 -9
  164. package/components/apps/editor/componentsPanel/ListItem.svelte +23 -12
  165. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
  166. package/components/apps/editor/componentsPanel/componentStaticValues.js +15 -2
  167. package/components/apps/editor/contextPanel/ComponentOutput.svelte +77 -0
  168. package/components/apps/editor/contextPanel/ComponentOutput.svelte.d.ts +21 -0
  169. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +10 -6
  170. package/components/apps/editor/contextPanel/ContextPanel.svelte +81 -91
  171. package/components/apps/editor/contextPanel/SubGridOutput.svelte +71 -0
  172. package/components/apps/editor/contextPanel/SubGridOutput.svelte.d.ts +19 -0
  173. package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +38 -0
  174. package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte.d.ts +19 -0
  175. package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +10 -0
  176. package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte.d.ts +16 -0
  177. package/components/apps/editor/contextPanel/components/MinMaxButton.svelte +25 -0
  178. package/components/apps/editor/contextPanel/components/MinMaxButton.svelte.d.ts +16 -0
  179. package/components/apps/editor/contextPanel/components/OutputHeader.svelte +78 -0
  180. package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +26 -0
  181. package/components/apps/editor/contextPanel/components/TableActionOutput.svelte +19 -0
  182. package/components/apps/editor/contextPanel/components/TableActionOutput.svelte.d.ts +18 -0
  183. package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +14 -0
  184. package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte.d.ts +18 -0
  185. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +55 -13
  186. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  187. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +126 -62
  188. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  189. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  190. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +11 -5
  191. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  192. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +26 -17
  193. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +95 -85
  194. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -9
  195. package/components/apps/editor/inlineScriptsPanel/utils.js +19 -8
  196. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +10 -9
  197. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +21 -12
  198. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  199. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +119 -79
  200. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +1 -0
  201. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  202. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  203. package/components/apps/editor/settingsPanel/GridTab.svelte +9 -17
  204. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +2 -0
  205. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  206. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -1
  207. package/components/apps/editor/settingsPanel/Recompute.svelte +2 -1
  208. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +7 -1
  209. package/components/apps/editor/settingsPanel/TableActions.svelte +30 -2
  210. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +2 -2
  211. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  212. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  213. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -8
  214. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +2 -2
  215. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +77 -41
  216. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +2 -0
  217. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +3 -3
  218. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +4 -1
  219. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +54 -6
  220. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +1 -0
  221. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +7 -9
  222. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +1 -1
  223. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  224. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  225. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +1 -1
  226. package/components/apps/inputType.d.ts +6 -5
  227. package/components/apps/rx.d.ts +6 -4
  228. package/components/apps/rx.js +36 -15
  229. package/components/apps/store.d.ts +6 -1
  230. package/components/apps/svelte-grid/Grid.svelte +171 -0
  231. package/components/apps/svelte-grid/Grid.svelte.d.ts +47 -0
  232. package/components/apps/svelte-grid/LICENSE +23 -0
  233. package/components/apps/svelte-grid/MoveResize.svelte +328 -0
  234. package/components/apps/svelte-grid/MoveResize.svelte.d.ts +46 -0
  235. package/components/apps/svelte-grid/types.d.ts +25 -0
  236. package/components/apps/svelte-grid/utils/container.d.ts +1 -0
  237. package/components/apps/svelte-grid/utils/container.js +4 -0
  238. package/components/apps/svelte-grid/utils/helper.d.ts +14 -0
  239. package/components/apps/svelte-grid/utils/helper.js +36 -0
  240. package/components/apps/svelte-grid/utils/item.d.ts +14 -0
  241. package/components/apps/svelte-grid/utils/item.js +192 -0
  242. package/components/apps/svelte-grid/utils/matrix.d.ts +6 -0
  243. package/components/apps/svelte-grid/utils/matrix.js +53 -0
  244. package/components/apps/svelte-grid/utils/other.d.ts +3 -0
  245. package/components/apps/svelte-grid/utils/other.js +30 -0
  246. package/components/apps/types.d.ts +21 -8
  247. package/components/apps/utils.d.ts +3 -3
  248. package/components/apps/utils.js +34 -56
  249. package/components/common/CloseButton.svelte +18 -0
  250. package/components/common/CloseButton.svelte.d.ts +27 -0
  251. package/components/common/badge/Badge.svelte +6 -1
  252. package/components/common/badge/Badge.svelte.d.ts +1 -0
  253. package/components/common/button/ButtonPopup.svelte +2 -0
  254. package/components/common/button/ButtonPopup.svelte.d.ts +1 -0
  255. package/components/common/button/UndoRedo.svelte +32 -0
  256. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  257. package/components/common/drawer/Drawer.svelte +10 -4
  258. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  259. package/components/common/drawer/DrawerContent.svelte +2 -7
  260. package/components/common/fileInput/FileInput.svelte +47 -21
  261. package/components/common/fileInput/FileInput.svelte.d.ts +3 -1
  262. package/components/common/fileInput/model.d.ts +1 -0
  263. package/components/common/fileInput/model.js +1 -0
  264. package/components/common/index.d.ts +1 -0
  265. package/components/common/index.js +1 -0
  266. package/components/common/languageIcons/JavaScript.svelte +11 -0
  267. package/components/common/languageIcons/JavaScript.svelte.d.ts +25 -0
  268. package/components/common/languageIcons/LanguageIcon.svelte +3 -1
  269. package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
  270. package/components/common/menu/Menu.svelte +3 -2
  271. package/components/common/menu/Menu.svelte.d.ts +2 -1
  272. package/components/common/modal/Modal.svelte +9 -4
  273. package/components/common/modal/Modal.svelte.d.ts +2 -0
  274. package/components/common/popup/Popup.svelte +2 -1
  275. package/components/common/popup/Popup.svelte.d.ts +9 -0
  276. package/components/common/table/AppRow.svelte +14 -8
  277. package/components/common/table/AppRow.svelte.d.ts +1 -0
  278. package/components/common/table/FlowRow.svelte +22 -12
  279. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  280. package/components/common/table/ScriptRow.svelte +43 -14
  281. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  282. package/components/common/tabs/Tab.svelte +13 -5
  283. package/components/common/tabs/Tab.svelte.d.ts +6 -1
  284. package/components/common/tabs/Tabs.svelte +8 -6
  285. package/components/common/tabs/Tabs.svelte.d.ts +3 -1
  286. package/components/flows/FlowEditor.svelte +6 -4
  287. package/components/flows/common/FlowCardHeader.svelte +4 -1
  288. package/components/flows/content/BranchPredicateEditor.svelte +3 -4
  289. package/components/flows/content/CapturePayload.svelte +1 -2
  290. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  291. package/components/flows/content/FlowConstants.svelte +7 -13
  292. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  293. package/components/flows/content/FlowFailureModule.svelte +2 -1
  294. package/components/flows/content/FlowInput.svelte +4 -2
  295. package/components/flows/content/FlowLoop.svelte +3 -4
  296. package/components/flows/content/FlowModuleComponent.svelte +23 -11
  297. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  298. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  299. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  300. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  301. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  302. package/components/flows/content/FlowSchedules.svelte +1 -2
  303. package/components/flows/content/FlowSettings.svelte +17 -37
  304. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  305. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  306. package/components/flows/flowState.d.ts +2 -3
  307. package/components/flows/flowState.js +1 -4
  308. package/components/flows/flowStateUtils.d.ts +7 -6
  309. package/components/flows/flowStateUtils.js +5 -9
  310. package/components/flows/flowStore.d.ts +5 -4
  311. package/components/flows/flowStore.js +5 -17
  312. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  313. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  314. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  315. package/components/flows/map/FlowInputsItem.svelte +2 -3
  316. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  317. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  318. package/components/flows/map/FlowModuleSchemaMap.svelte +164 -138
  319. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  320. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  321. package/components/flows/map/InsertModuleButton.svelte +12 -10
  322. package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
  323. package/components/flows/map/MapItem.svelte +176 -103
  324. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  325. package/components/flows/map/VirtualItem.svelte +129 -0
  326. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  327. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  328. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  329. package/components/flows/previousResults.d.ts +1 -1
  330. package/components/flows/previousResults.js +32 -17
  331. package/components/flows/types.d.ts +13 -1
  332. package/components/flows/utils.js +1 -1
  333. package/components/graph/FlowGraph.svelte +227 -167
  334. package/components/graph/FlowGraph.svelte.d.ts +14 -1
  335. package/components/graph/model.d.ts +6 -36
  336. package/components/graph/model.js +1 -1
  337. package/components/graph/svelvet/LICENSE +21 -0
  338. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  339. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  340. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  341. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  342. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  343. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  344. package/components/graph/svelvet/container/README.md +7 -0
  345. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  346. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  347. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  348. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  349. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  350. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  351. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  352. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  353. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  354. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  355. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  356. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  357. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  358. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  359. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  360. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  361. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  362. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  363. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  364. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  365. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  366. package/components/graph/svelvet/edges/types/types.js +1 -0
  367. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  368. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  369. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  370. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  371. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  372. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  373. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  374. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  375. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  376. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  377. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  378. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  379. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  380. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  381. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  382. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  383. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  384. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  385. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  386. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  387. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  388. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  389. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  390. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  391. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  392. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  393. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  394. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  395. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  396. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  397. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  398. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  399. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  400. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  401. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  402. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  403. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  404. package/components/graph/svelvet/store/controllers/util.js +180 -0
  405. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  406. package/components/graph/svelvet/store/models/store.js +9 -0
  407. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  408. package/components/graph/svelvet/store/types/types.js +1 -0
  409. package/components/graph/svelvet/types/README.md +3 -0
  410. package/components/graph/svelvet/types/index.d.ts +2 -0
  411. package/components/graph/svelvet/types/index.js +1 -0
  412. package/components/graph/svelvet/types/types.d.ts +49 -0
  413. package/components/graph/svelvet/types/types.js +18 -0
  414. package/components/graph/util.js +2 -2
  415. package/components/home/ItemsList.svelte +53 -5
  416. package/components/home/ItemsList.svelte.d.ts +1 -0
  417. package/components/home/ListFilters.svelte +7 -2
  418. package/components/jobs/JobDetail.svelte +12 -1
  419. package/components/propertyPicker/ObjectViewer.svelte +6 -4
  420. package/components/sidebar/SidebarContent.svelte +2 -2
  421. package/consts.d.ts +1 -0
  422. package/consts.js +1 -0
  423. package/defaults.d.ts +4 -0
  424. package/defaults.js +4 -0
  425. package/history.d.ts +9 -0
  426. package/history.js +63 -0
  427. package/package.json +87 -9
  428. package/script_helpers.d.ts +1 -1
  429. package/script_helpers.js +1 -0
  430. package/scripts.d.ts +1 -1
  431. package/scripts.js +8 -1
  432. package/utils.d.ts +9 -4
  433. package/utils.js +43 -8
  434. package/components/apps/editor/TablePanel.svelte +0 -19
  435. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  436. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +0 -85
  437. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +0 -18
  438. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  439. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  440. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  441. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
@@ -4,11 +4,11 @@ import { buildExtraLib } from '../../../utils';
4
4
  export let componentInput;
5
5
  export let id;
6
6
  export let hasRows = false;
7
- const { onchange, worldStore } = getContext('AppEditorContext');
7
+ const { onchange, worldStore, state } = getContext('AppViewerContext');
8
8
  $: componentInput && onchange?.();
9
9
  $: extraLib =
10
10
  componentInput?.expr && $worldStore
11
- ? buildExtraLib($worldStore?.outputsById ?? {}, id, hasRows)
11
+ ? buildExtraLib($worldStore?.outputsById ?? {}, id, hasRows, $state, false)
12
12
  : undefined;
13
13
  </script>
14
14
 
@@ -1,11 +1,13 @@
1
- <script>import { Loader2 } from 'lucide-svelte';
1
+ <script>import { Loader2, X } from 'lucide-svelte';
2
2
  import { Popup } from '../../../../common';
3
+ import { fade } from 'svelte/transition';
3
4
  export let componentInput;
4
5
  let anchor;
5
6
  let loading = false;
6
7
  let items;
7
8
  let filteredItems;
8
9
  let search = '';
10
+ let openPopup;
9
11
  $: if (search) {
10
12
  filteredItems = items.filter((item) => {
11
13
  return item.label.toLowerCase().includes(search.toLowerCase());
@@ -15,14 +17,16 @@ else {
15
17
  filteredItems = items;
16
18
  }
17
19
  async function getData() {
18
- if (items)
19
- return;
20
+ if (items) {
21
+ return openPopup();
22
+ }
20
23
  loading = true;
21
24
  const data = await import('lucide-svelte/dist/svelte/icons');
22
25
  filteredItems = items = Object.entries(data)
23
26
  .filter(([key]) => !(key.endsWith('Icon') || key.startsWith('Lucide')))
24
27
  .map(([key, icon]) => ({ label: key, icon }));
25
28
  loading = false;
29
+ openPopup();
26
30
  }
27
31
  function formatName(name) {
28
32
  // Inserts space before capital letters and numbers
@@ -40,44 +44,76 @@ function select(label) {
40
44
  }
41
45
  </script>
42
46
 
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}
47
+ <div class="relative">
48
+ <input
49
+ readonly
50
+ value={formatName(componentInput.value)}
51
+ bind:this={anchor}
52
+ on:focus={getData}
53
+ class="pr-8"
54
+ />
55
+ {#if loading}
56
+ <div class="center-center absolute right-2 top-1/2 transform -translate-y-1/2 p-0.5">
57
+ <Loader2 class="animate-spin" size={16} />
81
58
  </div>
59
+ {:else if componentInput.value}
60
+ <button
61
+ class="absolute right-2 top-1/2 transform -translate-y-1/2 hover:bg-gray-200 rounded-full p-0.5"
62
+ on:click|stopPropagation|preventDefault={() => (componentInput.value = undefined)}
63
+ title="Clear"
64
+ aria-label="Clear"
65
+ >
66
+ <X size="14" />
67
+ </button>
68
+ {/if}
69
+ </div>
70
+ {#if anchor}
71
+ <Popup
72
+ ref={anchor}
73
+ options={{ placement: 'bottom' }}
74
+ bind:open={openPopup}
75
+ let:close
76
+ transition={fade}
77
+ >
78
+ {#if !loading}
79
+ <div class="max-w-xs shadow-[0_10px_40px_-5px_rgba(0,0,0,0.25)] bg-white rounded-md p-2">
80
+ {#if filteredItems}
81
+ <input
82
+ on:keydown|stopPropagation
83
+ bind:value={search}
84
+ type="text"
85
+ placeholder="Search"
86
+ class="col-span-4 mb-2"
87
+ />
88
+ <div class="grid gap-1 grid-cols-4 max-h-[300px] overflow-auto">
89
+ {#each filteredItems as { label, icon }}
90
+ {@const formatedLabel = formatName(label)}
91
+ <button
92
+ type="button"
93
+ title={formatedLabel}
94
+ on:click={() => {
95
+ select(label)
96
+ close()
97
+ }}
98
+ class="w-full center-center flex-col font-normal p-1
99
+ hover:bg-gray-100 focus:bg-gray-100 rounded duration-200
100
+ {label === componentInput.value ? 'text-blue-600 bg-blue-50 pointer-events-none' : ''}"
101
+ >
102
+ <svelte:component this={icon} size={22} />
103
+ <span class="inline-block w-full text-[10px] ellipsize pt-0.5">
104
+ {formatedLabel}
105
+ </span>
106
+ </button>
107
+ {:else}
108
+ <div class="col-span-4 text-center text-gray-700 text-sm p-2">
109
+ No icons match your search
110
+ </div>
111
+ {/each}
112
+ </div>
113
+ {:else}
114
+ <div class="text-center text-sm text-gray-600 p-2"> Couldn't load options </div>
115
+ {/if}
116
+ </div>
117
+ {/if}
82
118
  </Popup>
83
119
  {/if}
@@ -7,6 +7,8 @@ declare const __propDef: {
7
7
  }>;
8
8
  };
9
9
  events: {
10
+ keydown: KeyboardEvent;
11
+ } & {
10
12
  [evt: string]: CustomEvent<any>;
11
13
  };
12
14
  slots: {};
@@ -1,6 +1,7 @@
1
1
  <script>import SimpleEditor from '../../../../SimpleEditor.svelte';
2
2
  export let code;
3
- export let value;
3
+ export let value = undefined;
4
+ export let error = '';
4
5
  function parseJson() {
5
6
  try {
6
7
  value = JSON.parse(code);
@@ -10,13 +11,12 @@ function parseJson() {
10
11
  error = e.message;
11
12
  }
12
13
  }
13
- let error = '';
14
14
  $: code && parseJson();
15
15
  </script>
16
16
 
17
17
  <div class="flex flex-col w-full">
18
18
  <div class="border border-gray-300 w-full">
19
- <SimpleEditor autoHeight lang="json" bind:code />
19
+ <SimpleEditor on:change autoHeight lang="json" bind:code />
20
20
  </div>
21
21
  {#if error != ''}
22
22
  <span class="text-red-600 text-xs">{error}</span>
@@ -2,9 +2,12 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  code: string;
5
- value: any;
5
+ value?: any;
6
+ error?: string | undefined;
6
7
  };
7
8
  events: {
9
+ change: CustomEvent<any>;
10
+ } & {
8
11
  [evt: string]: CustomEvent<any>;
9
12
  };
10
13
  slots: {};
@@ -5,22 +5,26 @@ import ResourcePicker from '../../../../ResourcePicker.svelte';
5
5
  import JsonEditor from './JsonEditor.svelte';
6
6
  import { getContext } from 'svelte';
7
7
  import IconSelectInput from './IconSelectInput.svelte';
8
+ import ColorInput from './ColorInput.svelte';
9
+ import { Icon } from 'svelte-awesome';
10
+ import { faDollarSign } from '@fortawesome/free-solid-svg-icons';
8
11
  export let componentInput;
9
- const { onchange } = getContext('AppEditorContext');
12
+ const { onchange } = getContext('AppViewerContext');
13
+ const { pickVariableCallback } = getContext('AppEditorContext');
10
14
  $: componentInput && onchange?.();
11
15
  </script>
12
16
 
13
17
  {#if componentInput?.type === 'static'}
14
18
  {#if componentInput.fieldType === 'number'}
15
- <input type="number" bind:value={componentInput.value} />
19
+ <input on:keydown|stopPropagation type="number" bind:value={componentInput.value} />
16
20
  {:else if componentInput.fieldType === 'textarea'}
17
- <textarea bind:value={componentInput.value} />
21
+ <textarea on:keydown|stopPropagation bind:value={componentInput.value} />
18
22
  {:else if componentInput.fieldType === 'date'}
19
- <input type="date" bind:value={componentInput.value} />
23
+ <input on:keydown|stopPropagation type="date" bind:value={componentInput.value} />
20
24
  {:else if componentInput.fieldType === 'boolean'}
21
25
  <Toggle bind:checked={componentInput.value} />
22
26
  {:else if componentInput.fieldType === 'select'}
23
- <select bind:value={componentInput.value}>
27
+ <select on:keydown|stopPropagation on:keydown|stopPropagation bind:value={componentInput.value}>
24
28
  {#each staticValues[componentInput.optionValuesKey] || [] as option}
25
29
  <option value={option}>
26
30
  {option}
@@ -29,6 +33,31 @@ $: componentInput && onchange?.();
29
33
  </select>
30
34
  {:else if componentInput.fieldType === 'icon-select'}
31
35
  <IconSelectInput bind:componentInput />
36
+ {:else if componentInput.fieldType === 'labeledresource'}
37
+ {#if componentInput?.value && typeof componentInput?.value == 'object' && 'label' in componentInput?.value}
38
+ <div class="flex flex-col gap-1 w-full">
39
+ <input
40
+ on:keydown|stopPropagation
41
+ placeholder="Label"
42
+ type="text"
43
+ bind:value={componentInput.value['label']}
44
+ />
45
+ <ResourcePicker
46
+ initialValue={componentInput.value?.['value']?.split('$res:')[1] || ''}
47
+ on:change={(e) => {
48
+ let path = e.detail
49
+
50
+ if (componentInput && path) {
51
+ componentInput.value['value'] = `$res:${path}`
52
+ }
53
+ }}
54
+ />
55
+ </div>
56
+ {:else}
57
+ Inconsistent labeled resource object
58
+ {/if}
59
+ {:else if componentInput.fieldType === 'color'}
60
+ <ColorInput bind:componentInput />
32
61
  {:else if componentInput.fieldType === 'object'}
33
62
  {#if componentInput?.format?.startsWith('resource-')}
34
63
  <ResourcePicker
@@ -55,6 +84,25 @@ $: componentInput && onchange?.();
55
84
  {:else if componentInput.fieldType === 'array'}
56
85
  <ArrayStaticInputEditor bind:componentInput on:deleteArrayItem />
57
86
  {:else}
58
- <input type="text" placeholder="Static value" bind:value={componentInput.value} />
87
+ <div class="flex gap-1">
88
+ <input
89
+ on:keydown|stopPropagation
90
+ type="text"
91
+ placeholder="Static value"
92
+ bind:value={componentInput.value}
93
+ />
94
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
95
+ <div
96
+ class="min-w-min min-h-[34px] items-center leading-4 px-3 text-gray-600 cursor-pointer border border-gray-700 rounded center-center"
97
+ on:click={() => {
98
+ $pickVariableCallback = (variable) => {
99
+ if (componentInput) {
100
+ componentInput.value = `$var:${variable}`
101
+ }
102
+ }
103
+ }}
104
+ ><Icon data={faDollarSign} />
105
+ </div>
106
+ </div>
59
107
  {/if}
60
108
  {/if}
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  componentInput: StaticAppInput | undefined;
6
6
  };
7
7
  events: {
8
+ keydown: KeyboardEvent;
8
9
  deleteArrayItem: CustomEvent<any>;
9
10
  } & {
10
11
  [evt: string]: CustomEvent<any>;
@@ -1,23 +1,21 @@
1
- <script>import { FileInput } from "../../../../common";
1
+ <script>import { FileInput } from '../../../../common';
2
2
  export let componentInput;
3
3
  </script>
4
4
 
5
5
  <FileInput
6
6
  accept={componentInput?.fileUpload?.accept}
7
7
  multiple={componentInput?.fileUpload?.multiple}
8
- convertToBase64={componentInput?.fileUpload?.base64}
8
+ convertTo={componentInput?.fileUpload?.convertTo}
9
9
  iconSize={24}
10
10
  class="text-sm py-4"
11
- on:change={({detail}) => {
12
- if(componentInput) {
13
- componentInput.value = componentInput?.fileUpload?.multiple
14
- ? detail
15
- : detail?.[0]
11
+ on:change={({ detail }) => {
12
+ if (componentInput) {
13
+ componentInput.value = componentInput?.fileUpload?.multiple ? detail : detail?.[0]
16
14
  }
17
15
  }}
18
16
  >
19
17
  <svelte:fragment slot="selected-title">
20
18
  <!-- Removing the title when there is a selected file -->
21
- <span></span>
19
+ <span />
22
20
  </svelte:fragment>
23
- </FileInput>
21
+ </FileInput>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { UploadAppInput } from "../../../inputType";
2
+ import type { UploadAppInput } from '../../../inputType';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  componentInput: UploadAppInput | undefined;
@@ -14,6 +14,7 @@ const dispatch = createEventDispatcher();
14
14
  <div class="w-full flex mt-1 items-center gap-2">
15
15
  <slot />
16
16
  <input
17
+ on:keydown|stopPropagation
17
18
  type="text"
18
19
  placeholder="Search inline scripts"
19
20
  bind:value={filter}
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  inlineScripts?: string[] | undefined;
6
6
  };
7
7
  events: {
8
+ keydown: KeyboardEvent;
8
9
  pick: CustomEvent<any>;
9
10
  } & {
10
11
  [evt: string]: CustomEvent<any>;
@@ -13,7 +13,7 @@ export let defaultUserInput = false;
13
13
  let tab = 'inlinescripts';
14
14
  let filter = '';
15
15
  let picker;
16
- const { app, workspace } = getContext('AppEditorContext');
16
+ const { app, workspace } = getContext('AppViewerContext');
17
17
  async function loadSchemaFromTriggerable(path, runType) {
18
18
  return loadSchema(workspace, path, runType) ?? emptySchema();
19
19
  }
@@ -1,6 +1,7 @@
1
+ import type { ReadFileAs } from '../common/fileInput/model';
1
2
  import type { staticValues } from './editor/componentsPanel/componentStaticValues';
2
3
  import type { InlineScript } from './types';
3
- export type InputType = 'text' | 'textarea' | 'template' | 'number' | 'boolean' | 'select' | 'icon-select' | 'date' | 'time' | 'datetime' | 'object' | 'array' | 'any';
4
+ export type InputType = 'text' | 'textarea' | 'template' | 'number' | 'boolean' | 'select' | 'icon-select' | 'color' | 'date' | 'time' | 'datetime' | 'object' | 'array' | 'any' | 'labeledresource';
4
5
  export type InputConnection = {
5
6
  componentId: string;
6
7
  path: string;
@@ -65,10 +66,10 @@ type InputConfiguration<T extends InputType, U, V extends InputType> = {
65
66
  */
66
67
  multiple?: boolean;
67
68
  /**
68
- * Controls if the uploaded file(s) will be returned as `Base64` strings.
69
+ * Controls if the uploaded file(s) will be converted or not.
69
70
  * @default false
70
71
  */
71
- base64?: boolean;
72
+ convertTo?: ReadFileAs;
72
73
  };
73
74
  };
74
75
  type StaticOptions = {
@@ -82,9 +83,9 @@ export type AppInput = AppInputSpec<'text', string> | AppInputSpec<'textarea', s
82
83
  * One of the keys of `staticValues` from `lib/components/apps/editor/componentsPanel/componentStaticValues`
83
84
  */
84
85
  optionValuesKey: keyof typeof staticValues;
85
- }) | (AppInputSpec<'select', string> & StaticOptions) | AppInputSpec<'icon-select', string> | AppInputSpec<'array', string[], 'text'> | AppInputSpec<'array', string[], 'textarea'> | AppInputSpec<'array', number[], 'number'> | AppInputSpec<'array', boolean[], 'boolean'> | AppInputSpec<'array', string[], 'date'> | AppInputSpec<'array', string[], 'time'> | AppInputSpec<'array', string[], 'datetime'> | AppInputSpec<'array', object[], 'object'> | (AppInputSpec<'array', string[], 'select'> & {
86
+ }) | (AppInputSpec<'select', string> & StaticOptions) | AppInputSpec<'icon-select', string> | AppInputSpec<'color', string> | AppInputSpec<'array', string[], 'text'> | AppInputSpec<'array', string[], 'textarea'> | AppInputSpec<'array', number[], 'number'> | AppInputSpec<'array', boolean[], 'boolean'> | AppInputSpec<'array', string[], 'date'> | AppInputSpec<'array', string[], 'time'> | AppInputSpec<'array', string[], 'datetime'> | AppInputSpec<'array', object[], 'object'> | (AppInputSpec<'array', string[], 'select'> & {
86
87
  optionValuesKey: keyof typeof staticValues;
87
- }) | (AppInputSpec<'array', string[], 'select'> & StaticOptions);
88
+ }) | (AppInputSpec<'array', string[], 'select'> & StaticOptions) | AppInputSpec<'array', object[], 'labeledresource'> | AppInputSpec<'labeledresource', object>;
88
89
  export type RowAppInput = Extract<AppInput, {
89
90
  type: 'row';
90
91
  }>;
@@ -1,6 +1,7 @@
1
1
  import type { AppInput } from './inputType';
2
2
  import { type Writable } from 'svelte/store';
3
3
  export interface Subscriber<T> {
4
+ id?: string;
4
5
  next(v: T): any;
5
6
  }
6
7
  export interface Observable<T> {
@@ -15,13 +16,14 @@ export interface Input<T> extends Subscriber<T> {
15
16
  }
16
17
  export type World = {
17
18
  outputsById: Record<string, Record<string, Output<any>>>;
18
- connect: <T>(inputSpec: AppInput, next: (x: T) => void) => Input<T>;
19
- state: Writable<number>;
19
+ connect: <T>(inputSpec: AppInput, next: (x: T) => void, id?: string) => Input<T>;
20
+ stateId: Writable<number>;
21
+ newOutput: <T>(id: string, name: string, previousValue: T) => Output<T>;
20
22
  };
21
23
  export declare function buildWorld(components: Record<string, string[]>, previousWorld: World | undefined, context: Record<string, any>): World;
22
24
  export declare function buildObservableWorld(): {
23
- connect: <T>(inputSpec: AppInput, next: (x: T) => void) => Input<T>;
25
+ connect: <T>(inputSpec: AppInput, next: (x: T) => void, id?: string) => Input<T>;
24
26
  newOutput: <T_1>(id: string, name: string, state: Writable<number>, previousValue: T_1) => Output<T_1>;
25
27
  };
26
- export declare function cachedInput<T>(nextParan: (x: T) => void): Input<T>;
28
+ export declare function cachedInput<T>(nextParan: (x: T) => void, id?: string): Input<T>;
27
29
  export declare function settableOutput<T>(state: Writable<number>, previousValue: T): Output<T>;
@@ -1,35 +1,50 @@
1
1
  import { writable } from 'svelte/store';
2
+ import { deepEqual } from 'fast-equals';
2
3
  export function buildWorld(components, previousWorld, context) {
3
4
  const newWorld = buildObservableWorld();
4
- const state = writable(0);
5
+ const stateId = writable(0);
5
6
  const outputsById = {
6
7
  ctx: Object.fromEntries(Object.entries(context).map(([k, v]) => {
7
- return [k, newWorld.newOutput('ctx', k, state, v)];
8
- }))
8
+ return [k, newWorld.newOutput('ctx', k, stateId, v)];
9
+ })),
10
+ state: previousWorld?.outputsById?.state ?? {}
9
11
  };
10
12
  for (const [k, outputs] of Object.entries(components)) {
11
13
  outputsById[k] = {};
12
14
  for (const o of outputs) {
13
- outputsById[k][o] = newWorld.newOutput(k, o, state, previousWorld?.outputsById[k]?.[o]?.peak());
15
+ outputsById[k][o] = newWorld.newOutput(k, o, stateId, previousWorld?.outputsById[k]?.[o]?.peak());
14
16
  }
15
17
  }
16
- state.update((x) => x + 1);
17
- return { outputsById, connect: newWorld.connect, state };
18
+ function newOutput(id, name, previousValue) {
19
+ if (outputsById[id]?.[name]) {
20
+ return outputsById[id][name];
21
+ }
22
+ let o = newWorld.newOutput(id, name, stateId, previousValue);
23
+ if (!outputsById[id]) {
24
+ outputsById[id] = {};
25
+ }
26
+ outputsById[id][name] = o;
27
+ return o;
28
+ }
29
+ stateId.update((x) => x + 1);
30
+ return { outputsById, connect: newWorld.connect, stateId, newOutput };
18
31
  }
19
32
  export function buildObservableWorld() {
20
33
  const observables = {};
21
- function connect(inputSpec, next) {
34
+ function connect(inputSpec, next, id) {
22
35
  if (inputSpec.type === 'static') {
23
36
  return {
37
+ id,
24
38
  peak: () => inputSpec.value,
25
39
  next: () => { }
26
40
  };
27
41
  }
28
42
  else if (inputSpec.type === 'connected') {
29
- const input = cachedInput(next);
43
+ const input = cachedInput(next, id);
30
44
  const connection = inputSpec.connection;
31
45
  if (!connection) {
32
46
  return {
47
+ id,
33
48
  peak: () => undefined,
34
49
  next: () => { }
35
50
  };
@@ -50,6 +65,7 @@ export function buildObservableWorld() {
50
65
  }
51
66
  else if (inputSpec.type === 'user') {
52
67
  return {
68
+ id,
53
69
  peak: () => inputSpec.value,
54
70
  next: () => { }
55
71
  };
@@ -68,7 +84,7 @@ export function buildObservableWorld() {
68
84
  newOutput
69
85
  };
70
86
  }
71
- export function cachedInput(nextParan) {
87
+ export function cachedInput(nextParan, id) {
72
88
  let value = undefined;
73
89
  function peak() {
74
90
  return value;
@@ -78,6 +94,7 @@ export function cachedInput(nextParan) {
78
94
  nextParan(x);
79
95
  }
80
96
  return {
97
+ id,
81
98
  peak,
82
99
  next
83
100
  };
@@ -86,16 +103,20 @@ export function settableOutput(state, previousValue) {
86
103
  let value = previousValue;
87
104
  const subscribers = [];
88
105
  function subscribe(x) {
89
- if (!subscribers.includes(x)) {
106
+ let currentSubscriber = subscribers.findIndex((y) => y === x || (y.id && y.id === x.id));
107
+ if (currentSubscriber == -1) {
90
108
  subscribers.push(x);
91
- // Send the current value to the new subscriber if it already exists
92
- if (value !== undefined) {
93
- x.next(value);
94
- }
109
+ }
110
+ else {
111
+ subscribers[currentSubscriber] = x;
112
+ }
113
+ // Send the current value to the new subscriber if it already exists
114
+ if (value !== undefined) {
115
+ x.next(value);
95
116
  }
96
117
  }
97
118
  function set(x, force = false) {
98
- if (value != x || force) {
119
+ if (!deepEqual(value, x) || force) {
99
120
  state.update((x) => x + 1);
100
121
  value = x;
101
122
  subscribers.forEach((x) => x.next(value));
@@ -1,2 +1,7 @@
1
+ import type { Policy } from "../../gen";
1
2
  import type { App } from './types';
2
- export declare const importStore: import("svelte/store").Writable<App | undefined>;
3
+ export declare const importStore: import("svelte/store").Writable<{
4
+ summary: string;
5
+ value: App;
6
+ policy: Policy;
7
+ } | undefined>;