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
@@ -0,0 +1,180 @@
1
+ const pkStringGenerator = () => (Math.random() + 1).toString(36).substring(7);
2
+ import { rightCb, leftCb, topCb, bottomCb, } from '../../edges/controllers/anchorCbUser'; // these are callbacks used to calculate anchor position relative to node
3
+ import { dynamicCbCreator, fixedCbCreator, } from '../../edges/controllers/anchorCbDev';
4
+ import { ResizeNode } from '../../resizableNodes/models/ResizeNode';
5
+ import { Anchor } from '../../edges/models/Anchor';
6
+ import { Node } from '../../nodes/models/Node';
7
+ import { Edge } from '../../edges/models/Edge';
8
+ import { writable, derived, get, readable } from 'svelte/store';
9
+ import { getEdgeById, getAnchors } from '../../edges/controllers/util';
10
+ /**
11
+ * Creates resize node on the bottom right corner of the targeted Node
12
+ * @param canvasId The canvasId of the Svelvet component that holds the targeted Node
13
+ * @param nodeId The id of the Node that the resize node attached to
14
+ * @param posX The number of pixels on the x-axis relative to the left top corner of the targeted Node
15
+ * @param posY The number of pixels on the y-axis relative to the left top corner of the targeted Node
16
+ * @returns A ReziseNode object with randomized id, canvasId, nodeId, posX, and posY
17
+ */
18
+ function createResizeNode(canvasId, nodeId, posX, posY) {
19
+ const id = pkStringGenerator();
20
+ const resizeNode = new ResizeNode(id, canvasId, nodeId, posX, posY);
21
+ return resizeNode;
22
+ }
23
+ /**
24
+ * Creates an Anchor on the targeted Node with infomation the userNode holds
25
+ * @param store An object containing the state of the Svelvet component. You can access the following through `store`: nodesStore, edgesStore, anchorsStore, etc.
26
+ * @param userNode A node that the user specifies. This is NOT the same as a Node object.
27
+ * @param sourceOrTarget User specified information of source or target
28
+ * @param canvasId The id of the canvas that holds the Anchor and its attached Node
29
+ * @param edge An edge that the user specifies. It should target the userNode as source or target. This is NOT the same as an Edge object
30
+ * @returns An Anchor object
31
+ */
32
+ function createAnchor(store, userNode, sourceOrTarget, canvasId, edge) {
33
+ // edge case
34
+ if (userNode === null)
35
+ throw `you cannot create an anchor without a user node (for now)`;
36
+ const edgeId = edge.id;
37
+ const anchorId = pkStringGenerator();
38
+ // userCb is the appropriate source or taret callback from userEdge object. It is
39
+ // possible the user to NOT set userCb in which case userCb will be undefined
40
+ let userCb;
41
+ if (sourceOrTarget === 'target')
42
+ userCb = edge.targetAnchorCb;
43
+ else
44
+ userCb = edge.sourceAnchorCb;
45
+ // create anchor callbacks
46
+ let cb;
47
+ if (userCb === undefined)
48
+ cb = dynamicCbCreator(store, edgeId, anchorId);
49
+ else
50
+ cb = fixedCbCreator(store, edgeId, anchorId, userNode.id, userCb);
51
+ // Create a new anchor.
52
+ const anchor = new Anchor(anchorId, userNode.id, edgeId, sourceOrTarget, -1, // dummy variables for x,y,angle for now
53
+ -1, // dummy variables for x,y,angle for now
54
+ cb, canvasId, 0 // dummy variables for x,y,angle for now
55
+ );
56
+ // return
57
+ return anchor;
58
+ }
59
+ /**
60
+ * Populates edgesStore of Edges. This function does not return the edgesStore. Instead it sets the nodesStore of Svelvet store.
61
+ * @param store An object containing the state of the Svelvet component. You can access the following through `store`: nodesStore, edgesStore, anchorsStore, etc.
62
+ * @param edges An edge that the user specifies. This is NOT the same as a Edge object.
63
+ * @param canvasId The canvasId of the Svelvet component that holds the Edges
64
+ */
65
+ export function populateEdgesStore(store, edges, canvasId) {
66
+ const edgesStore = {};
67
+ for (let i = 0; i < edges.length; i++) {
68
+ const userEdge = edges[i];
69
+ // { id: 'e1-2', source: 1, type: 'straight', target: 2, label: 'e1-2' },
70
+ // source is node.id for the source node
71
+ // target is node.id for the target node
72
+ // We need to get the anchors
73
+ const { source: sourceNodeId, target: targetNodeId, id: edgeId, type, label, labelBgColor, labelTextColor, edgeColor, animate, noHandle, arrow, clickCallback, className, } = userEdge;
74
+ const anchors = getAnchors(store, { edgeId: edgeId });
75
+ // check that we have two anchors for every edge
76
+ if (anchors.length !== 2)
77
+ throw 'We should have two anchors for every node';
78
+ // check that we have 1 source anchor and 1 target anchor. Since sourceOrTarget is typed to be either 'source'
79
+ // or 'target', it suffices to check whether there are two unique elements
80
+ if (new Set(anchors.map((e) => e.sourceOrTarget)).size !== 2)
81
+ throw 'we should have one source and one target anchor';
82
+ // get source and target anchor
83
+ let sourceAnchor, targetAnchor;
84
+ if (anchors[0].sourceOrTarget === 'source') {
85
+ sourceAnchor = anchors[0];
86
+ targetAnchor = anchors[1];
87
+ }
88
+ else {
89
+ sourceAnchor = anchors[1];
90
+ targetAnchor = anchors[0];
91
+ }
92
+ edgesStore[edgeId] = new Edge(edgeId, sourceAnchor.positionX, sourceAnchor.positionY, targetAnchor.positionX, targetAnchor.positionY, canvasId, userEdge.label === undefined ? '' : userEdge.label, userEdge.type === undefined ? 'bezier' : userEdge.type, userEdge.labelBgColor === undefined ? 'white' : userEdge.labelBgColor, userEdge.labelTextColor === undefined ? 'black' : userEdge.labelTextColor, userEdge.edgeColor === undefined ? 'black' : userEdge.edgeColor, userEdge.animate === undefined ? false : userEdge.animate, userEdge.noHandle === undefined ? false : userEdge.noHandle, userEdge.arrow === undefined ? false : userEdge.arrow, userEdge.clickCallback === undefined ? () => { } : userEdge.clickCallback, userEdge.className === undefined ? '' : userEdge.className);
93
+ }
94
+ store.edgesStore.set(edgesStore);
95
+ }
96
+ /**
97
+ * Finds userNode (with UserNodeType; Not the same as the Node) by the node id from nodesStore
98
+ * @param id The id of the Node in its nodesStore
99
+ * @param userNodes The array of userNodes (NOT the same as Node object)
100
+ * @returns The node that user specified or null if not found
101
+ */
102
+ function findUserNodeById(id, userNodes) {
103
+ for (let i = 0; i < userNodes.length; i++) {
104
+ const userNode = userNodes[i];
105
+ if (userNode.id === id)
106
+ return userNode;
107
+ }
108
+ return null;
109
+ }
110
+ /**
111
+ * Populates the anchorsStore. This will overwrite any data in the AnchorsStore.
112
+ * @param store The Svelvet store containing the state of the Svelvet component
113
+ * @param nodes An array of user specified nodes
114
+ * @param edges An array of user specified edges
115
+ * @param canvasId The canvasId of the Svelvet component that holds the nodes and edges
116
+ */
117
+ export function populateAnchorsStore(store, nodes, edges, canvasId) {
118
+ // anchorsStore will populated and eventaully synchronized to store.anchorsStore
119
+ const anchorsStore = {};
120
+ // iterate through user edges. Note the user never explicitly defines anchors; we calculate anchors
121
+ // from the user edge/node information
122
+ for (let i = 0; i < edges.length; i++) {
123
+ const userEdge = edges[i];
124
+ // find the source and target userNodes. These will be used to create the nodeId foreign key and
125
+ // determine placement of the anchor based on userNode.targetPosition, useNode.sourcePosition
126
+ const { source: sourceNodeId, target: targetNodeId } = userEdge;
127
+ const sourceUserNode = findUserNodeById(sourceNodeId, nodes);
128
+ const targetUserNode = findUserNodeById(targetNodeId, nodes);
129
+ // create source anchor
130
+ const sourceAnchor = createAnchor(store, sourceUserNode, 'source', canvasId, userEdge);
131
+ // create target anchor
132
+ const targetAnchor = createAnchor(store, targetUserNode, 'target', canvasId, userEdge);
133
+ // store source and target anchors
134
+ anchorsStore[sourceAnchor.id] = sourceAnchor;
135
+ anchorsStore[targetAnchor.id] = targetAnchor;
136
+ }
137
+ //populates the anchorsStore
138
+ store.anchorsStore.set(anchorsStore);
139
+ // set anchor positions. We can only set anchor positions after anchorsStore and nodesStore
140
+ // has been populated. TODO: maybe add a check to see that anchorsStore and NodesStore populated?
141
+ const anchors = getAnchors(store);
142
+ for (const anchor of anchors)
143
+ anchor.callback();
144
+ }
145
+ /**
146
+ * Populates the nodesStore. This will overwrite any data in the nodesStore.
147
+ * @param store The Svelvet store containing the state of the Svelvet component
148
+ * @param nodes An array of user specifed nodes
149
+ * @param canvasId The canvasId of the Svelvet component that holds the nodes
150
+ */
151
+ export function populateNodesStore(store, nodes, canvasId) {
152
+ // this is the nodesStore object. THIS IS NOT THE SAME AS A NODESTORE
153
+ const nodesStore = {};
154
+ // iterate through user nodes and create node objects
155
+ for (let i = 0; i < nodes.length; i++) {
156
+ const userNode = nodes[i];
157
+ const nodeId = userNode.id;
158
+ // TODO: move sanitizing default values to middleware
159
+ const node = new Node(nodeId.toString(), userNode.position.x, userNode.position.y, userNode.width, userNode.height, userNode.bgColor ?? 'white', userNode.data, canvasId, userNode.borderColor === undefined ? 'black' : userNode.borderColor, userNode.image === undefined ? false : userNode.image, userNode.src === undefined ? '' : userNode.src, userNode.textColor === undefined ? '' : userNode.textColor, userNode.borderRadius === undefined ? 0 : userNode.borderRadius, userNode.childNodes === undefined ? [] : userNode.childNodes, userNode.className === undefined ? '' : userNode.className, userNode.clickCallback === undefined ? () => { } : userNode.clickCallback);
160
+ nodesStore[nodeId] = node;
161
+ }
162
+ // This is actually what sets the store
163
+ store.nodesStore.set(nodesStore);
164
+ }
165
+ /**
166
+ * Populates the resizeNodeStore. If a Node is resizable, a small ResizeNode object is going to be attached to the Node's right bottom corner to react to the mouse drag.
167
+ * @param store The Svelvet store containing the state of the Svelvet component
168
+ * @param nodes An array of user specifed nodes (NOT the same as Node)
169
+ * @param canvasId The canvasId of the Svelvet component that holds the resizeNodes
170
+ */
171
+ export function populateResizeNodeStore(store, nodes, canvasId) {
172
+ const resizeNodeStore = {};
173
+ for (let i = 0; i < nodes.length; i++) {
174
+ const userNode = nodes[i];
175
+ const { id, width, height, position } = userNode;
176
+ const resizeNode = createResizeNode(canvasId, id, position.x + width, position.y + height);
177
+ resizeNodeStore[resizeNode.id] = resizeNode;
178
+ }
179
+ store.resizeNodesStore.set(resizeNodeStore);
180
+ }
@@ -0,0 +1,12 @@
1
+ import type { StoreType } from '../types/types';
2
+ /**
3
+ `store` is a dictionary of Svelvet stores.
4
+ * The reason why we have multiple Svelvet stores is to handle multiple canvases on the same page.
5
+ * A Svelvet store is the single source of truth for a canvas state.
6
+ * We discourage developers from interacting with stores directly; instead use the api methods in
7
+ `src/lib/controllers/storeApi.ts`. However, if need to direct access you can do so by importing:
8
+ `import { store } from 'src/lib/models/store';`
9
+ */
10
+ export declare const stores: {
11
+ [key: string]: StoreType;
12
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ `store` is a dictionary of Svelvet stores.
3
+ * The reason why we have multiple Svelvet stores is to handle multiple canvases on the same page.
4
+ * A Svelvet store is the single source of truth for a canvas state.
5
+ * We discourage developers from interacting with stores directly; instead use the api methods in
6
+ `src/lib/controllers/storeApi.ts`. However, if need to direct access you can do so by importing:
7
+ `import { store } from 'src/lib/models/store';`
8
+ */
9
+ export const stores = {};
@@ -0,0 +1,134 @@
1
+ import type { CollapsibleType } from '../../collapsible/types/types';
2
+ import type { Writable } from 'svelte/store';
3
+ import type { AnchorType } from '../../edges/types/types';
4
+ export interface ResizeNodeType {
5
+ id: string;
6
+ nodeId: string;
7
+ edgeId?: string;
8
+ canvasId: string;
9
+ anchorId?: string;
10
+ positionX: number;
11
+ positionY: number;
12
+ setPositionAndCascade: Function;
13
+ setPosition: Function;
14
+ delete: Function;
15
+ }
16
+ export interface StoreType {
17
+ nodesStore: Writable<{
18
+ [key: string]: NodeType;
19
+ }>;
20
+ edgesStore: Writable<{
21
+ [key: string]: EdgeType;
22
+ }>;
23
+ anchorsStore: Writable<{
24
+ [key: string]: AnchorType;
25
+ }>;
26
+ resizeNodesStore: Writable<{
27
+ [key: string]: ResizeNodeType;
28
+ }>;
29
+ potentialAnchorsStore: Writable<{
30
+ [key: string]: PotentialAnchorType;
31
+ }>;
32
+ widthStore: Writable<number>;
33
+ heightStore: Writable<number>;
34
+ backgroundStore: Writable<boolean>;
35
+ movementStore: Writable<boolean>;
36
+ nodeIdSelected: Writable<number>;
37
+ nodeSelected: Writable<boolean>;
38
+ d3Scale: Writable<number>;
39
+ options: Writable<{
40
+ [key: string]: any;
41
+ }>;
42
+ temporaryEdgeStore: Writable<TemporaryEdgeType[]>;
43
+ nodeCreate: Writable<boolean>;
44
+ boundary: Writable<boolean | PositionType>;
45
+ edgeEditModal: Writable<null | string>;
46
+ collapsibleStore: Writable<CollapsibleType[]>;
47
+ collapsibleOption: Writable<boolean>;
48
+ lockedOption: Writable<boolean>;
49
+ editableOption: Writable<boolean>;
50
+ d3ZoomParameters: Writable<{
51
+ [key: string]: number;
52
+ }>;
53
+ resizableOption: Writable<boolean>;
54
+ highlightEdgesOption: Writable<boolean>;
55
+ }
56
+ export interface PositionType {
57
+ x: number;
58
+ y: number;
59
+ }
60
+ export interface NodeType {
61
+ id: string;
62
+ width: number;
63
+ height: number;
64
+ positionX: number;
65
+ positionY: number;
66
+ bgColor: string;
67
+ data: {
68
+ html?: any;
69
+ custom?: {
70
+ component: any;
71
+ props?: any;
72
+ cb?: (e: string, detail: any) => void;
73
+ };
74
+ img?: any;
75
+ label?: string;
76
+ };
77
+ canvasId: string;
78
+ setPositionFromMovement: Function;
79
+ delete: Function;
80
+ setSizeFromMovement: Function;
81
+ setExportableData: Function;
82
+ borderColor: string;
83
+ image: boolean;
84
+ src: string;
85
+ textColor: string;
86
+ borderRadius: number;
87
+ childNodes: string[];
88
+ className: string;
89
+ clickCallback: Function;
90
+ }
91
+ export interface EdgeType {
92
+ id: string;
93
+ sourceX: number;
94
+ sourceY: number;
95
+ targetX: number;
96
+ targetY: number;
97
+ canvasId: string;
98
+ label: string;
99
+ type: 'straight' | 'smoothstep' | 'step' | 'bezier';
100
+ labelBgColor: string;
101
+ labelTextColor: string;
102
+ edgeColor: string;
103
+ animate: boolean;
104
+ noHandle: boolean;
105
+ arrow: boolean;
106
+ clickCallback: Function;
107
+ className: string;
108
+ delete: Function;
109
+ setExportableData: Function;
110
+ }
111
+ export interface PotentialAnchorType {
112
+ id: string;
113
+ nodeId: string;
114
+ callback: Function;
115
+ positionX: number;
116
+ positionY: number;
117
+ angle: number;
118
+ canvasId: string;
119
+ delete: Function;
120
+ }
121
+ export interface TemporaryEdgeType {
122
+ id: string;
123
+ sourcePotentialAnchorId: string;
124
+ sourceX: number;
125
+ sourceY: number;
126
+ targetPotentialAnchorId: string | null;
127
+ targetX: number;
128
+ targetY: number;
129
+ canvasId: string;
130
+ type: string;
131
+ edgeColor: string;
132
+ createEdge: Function;
133
+ createNode: Function;
134
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ # Types
2
+
3
+ This folder contains types exported to the user, as decribed in feature: `https://www.svelvet.io/docs/typescript/`
@@ -0,0 +1,2 @@
1
+ import type { UserEdgeType, UserNodeType } from './types';
2
+ export { UserEdgeType, UserNodeType };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ export interface UserNodeType {
2
+ id: string;
3
+ width: number;
4
+ height: number;
5
+ bgColor?: string;
6
+ data: {
7
+ html?: any;
8
+ custom?: {
9
+ component: any;
10
+ props?: any;
11
+ cb?: (e: string, detail: any) => void;
12
+ };
13
+ img?: any;
14
+ };
15
+ position: {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ borderColor?: string | undefined;
20
+ image?: boolean;
21
+ src?: string;
22
+ textColor?: string;
23
+ targetPosition?: 'left' | 'right' | 'top' | 'bottom';
24
+ sourcePosition?: 'left' | 'right' | 'top' | 'bottom';
25
+ borderRadius?: number;
26
+ childNodes?: string[];
27
+ className?: string;
28
+ clickCallback?: Function;
29
+ }
30
+ export interface UserEdgeType {
31
+ id: string;
32
+ source: string;
33
+ target: string;
34
+ sourceAnchorCb?: Function;
35
+ targetAnchorCb?: Function;
36
+ label?: string;
37
+ labelBgColor?: string;
38
+ labelTextColor?: string;
39
+ edgeColor?: string;
40
+ type?: 'straight' | 'smoothstep' | 'step' | 'bezier' | undefined;
41
+ animate?: boolean;
42
+ noHandle?: boolean;
43
+ arrow?: boolean;
44
+ clickCallback?: Function;
45
+ className?: string;
46
+ }
47
+ export declare function getD3PositionX(canvasId: string): number;
48
+ export declare function getD3PositionY(canvasId: string): number;
49
+ export declare function getD3Zoom(canvasId: string): number;
@@ -0,0 +1,18 @@
1
+ import { findStore } from '../store/controllers/storeApi';
2
+ import { get } from 'svelte/store';
3
+ export function getD3PositionX(canvasId) {
4
+ const store = findStore(canvasId);
5
+ const width = get(store.widthStore);
6
+ const x = width / 2 - get(store.d3ZoomParameters).x; // user input is shifted so that x=0, y=0 occurs in the center
7
+ return x;
8
+ }
9
+ export function getD3PositionY(canvasId) {
10
+ const store = findStore(canvasId);
11
+ const height = get(store.heightStore);
12
+ const y = height / 2 - get(store.d3ZoomParameters).y; // user input is shifted so that x=0, y=0 occurs in the center
13
+ return y;
14
+ }
15
+ export function getD3Zoom(canvasId) {
16
+ const store = findStore(canvasId);
17
+ return get(store.d3ZoomParameters).k;
18
+ }
@@ -1,6 +1,6 @@
1
1
  export const NODE = {
2
- width: 300,
3
- height: 35,
2
+ width: 275,
3
+ height: 34,
4
4
  gap: {
5
5
  horizontal: 40,
6
6
  vertical: 50
@@ -1,10 +1,11 @@
1
1
  <script>import CenteredPage from '../CenteredPage.svelte';
2
2
  import { AppService, FlowService, ListableApp, Script, ScriptService } from '../../gen';
3
3
  import { userStore, workspaceStore } from '../../stores';
4
- import { Skeleton, ToggleButton, ToggleButtonGroup } from '../common';
4
+ import { Alert, Badge, Skeleton, ToggleButton, ToggleButtonGroup } from '../common';
5
5
  import { canWrite } from '../../utils';
6
6
  import ShareModal from '../ShareModal.svelte';
7
7
  import { Code2, LayoutDashboard } from 'lucide-svelte';
8
+ import Toggle from '../Toggle.svelte';
8
9
  export let filter = '';
9
10
  import ScriptRow from '../common/table/ScriptRow.svelte';
10
11
  import FlowRow from '../common/table/FlowRow.svelte';
@@ -15,6 +16,7 @@ import SearchItems from '../SearchItems.svelte';
15
16
  import { Icon } from 'svelte-awesome';
16
17
  import { faBarsStaggered } from '@fortawesome/free-solid-svg-icons';
17
18
  import MoveDrawer from '../MoveDrawer.svelte';
19
+ import ConfirmationModal from '../common/confirmationModal/ConfirmationModal.svelte';
18
20
  let scripts;
19
21
  let flows;
20
22
  let apps;
@@ -24,9 +26,11 @@ let shareModal;
24
26
  let moveDrawer;
25
27
  let loading = true;
26
28
  let nbDisplayed = 30;
29
+ export let deleteConfirmedCallback = undefined;
27
30
  async function loadScripts() {
28
31
  const loadedScripts = await ScriptService.listScripts({
29
32
  workspace: $workspaceStore,
33
+ showArchived: archived ? true : undefined,
30
34
  perPage: 300
31
35
  });
32
36
  scripts = loadedScripts.map((script) => {
@@ -40,7 +44,10 @@ async function loadScripts() {
40
44
  loading = false;
41
45
  }
42
46
  async function loadFlows() {
43
- flows = (await FlowService.listFlows({ workspace: $workspaceStore })).map((x) => {
47
+ flows = (await FlowService.listFlows({
48
+ workspace: $workspaceStore,
49
+ showArchived: archived ? true : undefined
50
+ })).map((x) => {
44
51
  return {
45
52
  canWrite: canWrite(x.path, x.extra_perms, $userStore) &&
46
53
  x.workspace_id == $workspaceStore &&
@@ -95,7 +102,12 @@ $: {
95
102
  if ($userStore && $workspaceStore) {
96
103
  loadScripts();
97
104
  loadFlows();
98
- loadApps();
105
+ if (!archived) {
106
+ loadApps();
107
+ }
108
+ else {
109
+ apps = [];
110
+ }
99
111
  }
100
112
  }
101
113
  const cmp = new Intl.Collator('en').compare;
@@ -139,6 +151,7 @@ function resetScroll() {
139
151
  }
140
152
  }
141
153
  $: items && resetScroll();
154
+ let archived = false;
142
155
  </script>
143
156
 
144
157
  <SearchItems
@@ -223,8 +236,14 @@ $: items && resetScroll();
223
236
  </button>
224
237
  </div>
225
238
  </div>
226
-
227
- <ListFilters bind:selectedFilter={ownerFilter} filters={owners} />
239
+ <div class="relative">
240
+ <ListFilters bind:selectedFilter={ownerFilter} filters={owners} />
241
+ {#if !loading}
242
+ <div class="absolute -bottom-2 right-0 bg-white/90">
243
+ <Toggle size="xs" bind:checked={archived} options={{ right: 'Show archived' }} /></div
244
+ >
245
+ {/if}
246
+ </div>
228
247
  <div>
229
248
  {#if filteredItems == undefined}
230
249
  <div class="mt-4" />
@@ -240,6 +259,7 @@ $: items && resetScroll();
240
259
  {#each (items ?? []).slice(0, nbDisplayed) as item, i (item.type + '/' + item.path + (item.summary ?? ''))}
241
260
  {#if item.type == 'script'}
242
261
  <ScriptRow
262
+ bind:deleteConfirmedCallback
243
263
  starred={item.starred ?? false}
244
264
  marked={item.marked}
245
265
  on:change={loadScripts}
@@ -249,6 +269,7 @@ $: items && resetScroll();
249
269
  />
250
270
  {:else if item.type == 'flow'}
251
271
  <FlowRow
272
+ bind:deleteConfirmedCallback
252
273
  starred={item.starred ?? false}
253
274
  marked={item.marked}
254
275
  on:change={loadFlows}
@@ -258,6 +279,7 @@ $: items && resetScroll();
258
279
  />
259
280
  {:else if item.type == 'app'}
260
281
  <AppRow
282
+ bind:deleteConfirmedCallback
261
283
  starred={item.starred ?? false}
262
284
  marked={item.marked}
263
285
  on:change={loadApps}
@@ -279,3 +301,29 @@ $: items && resetScroll();
279
301
  {/if}
280
302
  </div>
281
303
  </CenteredPage>
304
+
305
+ <ConfirmationModal
306
+ open={Boolean(deleteConfirmedCallback)}
307
+ title="Remove"
308
+ confirmationText="Remove"
309
+ on:canceled={() => {
310
+ deleteConfirmedCallback = undefined
311
+ }}
312
+ on:confirmed={() => {
313
+ if (deleteConfirmedCallback) {
314
+ deleteConfirmedCallback()
315
+ }
316
+ deleteConfirmedCallback = undefined
317
+ }}
318
+ >
319
+ <div class="flex flex-col w-full space-y-4">
320
+ <span>Are you sure you want to remove it?</span>
321
+ <Alert type="info" title="Bypass confirmation">
322
+ <div>
323
+ You can press
324
+ <Badge color="dark-gray">SHIFT</Badge>
325
+ while removing to bypass confirmation.
326
+ </div>
327
+ </Alert>
328
+ </div>
329
+ </ConfirmationModal>
@@ -2,6 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  filter?: string | undefined;
5
+ deleteConfirmedCallback?: (() => void) | undefined;
5
6
  };
6
7
  events: {
7
8
  [evt: string]: CustomEvent<any>;
@@ -10,11 +10,16 @@ export let resourceType = false;
10
10
  function getIconComponent(name) {
11
11
  return APP_TO_ICON_COMPONENT[name] || APP_TO_ICON_COMPONENT[name.split('_')[0]];
12
12
  }
13
+ $: filtersAndSelected = selectedFilter
14
+ ? filters.includes(selectedFilter)
15
+ ? filters
16
+ : [selectedFilter, ...filters]
17
+ : filters;
13
18
  </script>
14
19
 
15
- {#if Array.isArray(filters) && filters.length > 0}
20
+ {#if Array.isArray(filtersAndSelected) && filtersAndSelected.length > 0}
16
21
  <div class="gap-2 w-full flex flex-wrap my-4">
17
- {#each filters as filter (filter)}
22
+ {#each filtersAndSelected as filter (filter)}
18
23
  <div in:fade={{ duration: 50 }} animate:flip={{ duration: 100 }}>
19
24
  <Badge
20
25
  class={classNames(
@@ -21,10 +21,21 @@ onMount(() => {
21
21
  onDestroy(() => {
22
22
  interval && clearInterval(interval);
23
23
  });
24
+ function displayIfRecent(date) {
25
+ const d = new Date(date);
26
+ const now = new Date();
27
+ const diff = now.getTime() - d.getTime();
28
+ if (diff < 1000 * 600) {
29
+ return `(${displayDaysAgo(d.toString())})`;
30
+ }
31
+ else {
32
+ return '';
33
+ }
34
+ }
24
35
  function endedDate(started_at, duration_ms) {
25
36
  const started = new Date(started_at);
26
37
  started.setMilliseconds(started.getMilliseconds() + duration_ms);
27
- return displayDaysAgo(started.toString());
38
+ return `${displayDate(started)} ${displayIfRecent(started)}`;
28
39
  }
29
40
  </script>
30
41
 
@@ -50,7 +50,11 @@ function selectProp(key, value) {
50
50
  </span>
51
51
  {/if}
52
52
  {#if level == 0 && topBrackets}<span class="h-0">{openBracket}</span>{/if}
53
- <ul class="w-full">
53
+ <ul
54
+ class={`w-full ${
55
+ level === 0 ? 'border-none pl-2' : 'border-l border-dotted border-gray-200 pl-2'
56
+ }`}
57
+ >
54
58
  {#each keys as key, index}
55
59
  <li class="pt-1">
56
60
  <button on:click={() => selectProp(key, key)} class="whitespace-nowrap">
@@ -80,7 +84,7 @@ function selectProp(key, value) {
80
84
  <button
81
85
  class="val {pureViewer
82
86
  ? 'cursor-auto'
83
- : ''} rounded hover:bg-blue-100 {getTypeAsString(json[key])}"
87
+ : ''} rounded px-1 hover:bg-blue-100 {getTypeAsString(json[key])}"
84
88
  on:click={() => selectProp(key, json[key])}
85
89
  >
86
90
  {#if json[key] === NEVER_TESTED_THIS_FAR}
@@ -126,8 +130,6 @@ function selectProp(key, value) {
126
130
  <style>
127
131
  ul {
128
132
  list-style: none;
129
- padding-left: 1rem;
130
- border-left: 1px dotted lightgray;
131
133
  font-size: 0.875rem;
132
134
  line-height: 1.25rem;
133
135
  }
@@ -40,12 +40,12 @@ export let isCollapsed = false;
40
40
  {/each}
41
41
  </div>
42
42
  <div>
43
- <div class="mb-6 md:mb-10">
43
+ <div class="space-y-0.5 mb-6 md:mb-10">
44
44
  {#each secondaryMenuLinks as menuLink (menuLink.href)}
45
45
  <MenuLink class="!text-xs" {...menuLink} {isCollapsed} />
46
46
  {/each}
47
47
  </div>
48
- <div>
48
+ <div class="space-y-0.5">
49
49
  {#each thirdMenuLinks as menuLink (menuLink.href)}
50
50
  <MenuLink class="!text-xs" {...menuLink} {isCollapsed} />
51
51
  {/each}
package/consts.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_WEBHOOK_TYPE: 'async' | 'sync';
package/consts.js ADDED
@@ -0,0 +1 @@
1
+ export const DEFAULT_WEBHOOK_TYPE = import.meta.env.VITE_DEFAULT_WEBHOOK_TYPE || 'async';