windmill-components 1.60.4 → 1.75.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 (549) hide show
  1. package/assets/app.css +15 -1
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +26 -10
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +78 -10
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FieldHeader.svelte +12 -8
  13. package/components/FlowBuilder.svelte +107 -39
  14. package/components/FlowBuilder.svelte.d.ts +5 -0
  15. package/components/FlowGraphViewer.svelte +5 -4
  16. package/components/FlowJobResult.svelte +13 -5
  17. package/components/FlowJobResult.svelte.d.ts +1 -0
  18. package/components/FlowMetadata.svelte +24 -8
  19. package/components/FlowPreviewContent.svelte +5 -11
  20. package/components/FlowStatusViewer.svelte +62 -17
  21. package/components/FolderEditor.svelte +3 -2
  22. package/components/GroupEditor.svelte +8 -0
  23. package/components/HighlightCode.svelte +7 -1
  24. package/components/InlineCodeCopy.svelte +11 -0
  25. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  26. package/components/InputTransformForm.svelte +22 -25
  27. package/components/InputTransformSchemaForm.svelte +103 -0
  28. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  29. package/components/LogViewer.svelte +7 -1
  30. package/components/LogViewer.svelte.d.ts +1 -0
  31. package/components/ModulePreview.svelte +13 -3
  32. package/components/MoveDrawer.svelte +1 -1
  33. package/components/Multiselect.svelte +1 -1
  34. package/components/Multiselect.svelte.d.ts +2 -2
  35. package/components/ObjectResourceInput.svelte +6 -1
  36. package/components/Path.svelte +29 -16
  37. package/components/Popover.svelte +10 -15
  38. package/components/Popover.svelte.d.ts +1 -0
  39. package/components/Range.svelte.d.ts +2 -2
  40. package/components/ResourceEditor.svelte +39 -16
  41. package/components/ResourcePicker.svelte +33 -15
  42. package/components/RunChart.svelte +24 -5
  43. package/components/RunForm.svelte +26 -3
  44. package/components/RunForm.svelte.d.ts +2 -0
  45. package/components/ScheduleEditor.svelte +1 -1
  46. package/components/SchemaEditor.svelte +2 -2
  47. package/components/SchemaForm.svelte +72 -60
  48. package/components/SchemaForm.svelte.d.ts +1 -5
  49. package/components/ScriptBuilder.svelte +69 -30
  50. package/components/ScriptBuilder.svelte.d.ts +1 -0
  51. package/components/ScriptEditor.svelte +1 -0
  52. package/components/ScriptPicker.svelte +3 -0
  53. package/components/SharedBadge.svelte +5 -5
  54. package/components/SimpleEditor.svelte +4 -1
  55. package/components/SimpleEditor.svelte.d.ts +2 -0
  56. package/components/Slider.svelte +19 -0
  57. package/components/Slider.svelte.d.ts +20 -0
  58. package/components/StringTypeNarrowing.svelte +0 -1
  59. package/components/SuperadminSettings.svelte +11 -3
  60. package/components/SuperadminSettings.svelte.d.ts +2 -0
  61. package/components/TemplateEditor.svelte +1 -1
  62. package/components/TemplateEditor.svelte.d.ts +204 -0
  63. package/components/TestJobLoader.svelte +5 -5
  64. package/components/Toggle.svelte +18 -6
  65. package/components/Toggle.svelte.d.ts +2 -0
  66. package/components/Tooltip.svelte +1 -1
  67. package/components/UserSettings.svelte +13 -3
  68. package/components/UserSettings.svelte.d.ts +2 -0
  69. package/components/VariableEditor.svelte +1 -1
  70. package/components/WhitelistIp.svelte +23 -0
  71. package/components/WhitelistIp.svelte.d.ts +14 -0
  72. package/components/apps/components/buttons/AppButton.svelte +79 -17
  73. package/components/apps/components/buttons/AppButton.svelte.d.ts +4 -0
  74. package/components/apps/components/{form → buttons}/AppForm.svelte +19 -7
  75. package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +3 -0
  76. package/components/apps/components/buttons/AppFormButton.svelte +145 -0
  77. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +28 -0
  78. package/components/apps/components/buttons/index.d.ts +3 -0
  79. package/components/apps/components/buttons/index.js +3 -0
  80. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +27 -8
  81. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +4 -0
  82. package/components/apps/components/display/AppDisplayComponent.svelte +36 -0
  83. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +24 -0
  84. package/components/apps/components/display/AppHtml.svelte +46 -0
  85. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +4 -1
  86. package/components/apps/components/display/AppIcon.svelte +47 -0
  87. package/components/apps/components/display/AppIcon.svelte.d.ts +25 -0
  88. package/components/apps/components/display/AppImage.svelte +34 -0
  89. package/components/apps/components/display/AppImage.svelte.d.ts +25 -0
  90. package/components/apps/components/display/AppMap.svelte +214 -0
  91. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  92. package/components/apps/components/display/AppPdf.svelte +304 -0
  93. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  94. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +16 -7
  95. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +4 -0
  96. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +13 -4
  97. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +4 -0
  98. package/components/apps/components/{dataDisplay → display}/AppText.svelte +42 -34
  99. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +4 -0
  100. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +14 -5
  101. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +4 -0
  102. package/components/apps/components/display/PlotlyHtml.svelte +32 -0
  103. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  104. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte +4 -10
  105. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +2 -0
  106. package/components/apps/components/display/index.d.ts +15 -0
  107. package/components/apps/components/display/index.js +15 -0
  108. package/components/apps/components/display/table/AppAggridTable.svelte +92 -0
  109. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +25 -0
  110. package/components/apps/components/{table → display/table}/AppTable.svelte +85 -29
  111. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +6 -2
  112. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +9 -2
  113. package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +2 -0
  114. package/components/apps/components/helpers/AlignWrapper.svelte +29 -23
  115. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +6 -2
  116. package/components/apps/components/helpers/HiddenComponent.svelte +23 -0
  117. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  118. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  119. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  120. package/components/apps/components/helpers/InputValue.svelte +39 -18
  121. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  122. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  123. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  124. package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  125. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  126. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  127. package/components/apps/components/helpers/RunnableComponent.svelte +99 -102
  128. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -2
  129. package/components/apps/components/helpers/RunnableWrapper.svelte +16 -7
  130. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -2
  131. package/components/apps/components/helpers/index.d.ts +10 -0
  132. package/components/apps/components/helpers/index.js +10 -0
  133. package/components/apps/components/icon.d.ts +1 -0
  134. package/components/apps/components/icon.js +18 -0
  135. package/components/apps/components/index.d.ts +5 -0
  136. package/components/apps/components/index.js +5 -0
  137. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +12 -4
  138. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +3 -0
  139. package/components/apps/components/inputs/AppDateInput.svelte +47 -0
  140. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +6 -1
  141. package/components/apps/components/inputs/AppFileInput.svelte +42 -0
  142. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +23 -0
  143. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  144. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  145. package/components/apps/components/inputs/AppNumberInput.svelte +52 -0
  146. package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +5 -0
  147. package/components/apps/components/inputs/AppRangeInput.svelte +85 -0
  148. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +26 -0
  149. package/components/apps/components/inputs/AppSelect.svelte +127 -0
  150. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +5 -0
  151. package/components/apps/components/inputs/AppSliderInputs.svelte +73 -0
  152. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +3 -0
  153. package/components/apps/components/inputs/AppTextInput.svelte +71 -0
  154. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +6 -0
  155. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +59 -0
  156. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +24 -0
  157. package/components/apps/components/inputs/currency/CurrencyInput.svelte +183 -0
  158. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +33 -0
  159. package/components/apps/components/inputs/index.d.ts +9 -0
  160. package/components/apps/components/inputs/index.js +9 -0
  161. package/components/apps/components/layout/AppContainer.svelte +40 -0
  162. package/components/apps/components/layout/AppContainer.svelte.d.ts +24 -0
  163. package/components/apps/components/layout/AppDivider.svelte +40 -0
  164. package/components/apps/components/layout/AppDivider.svelte.d.ts +24 -0
  165. package/components/apps/components/layout/AppDrawer.svelte +89 -0
  166. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  167. package/components/apps/components/layout/AppSplitpanes.svelte +88 -0
  168. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  169. package/components/apps/components/layout/AppTabs.svelte +99 -0
  170. package/components/apps/components/layout/AppTabs.svelte.d.ts +27 -0
  171. package/components/apps/components/layout/index.d.ts +5 -0
  172. package/components/apps/components/layout/index.js +5 -0
  173. package/components/apps/editor/AppComponentInput.svelte +33 -0
  174. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  175. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  176. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  177. package/components/apps/editor/AppEditor.svelte +134 -35
  178. package/components/apps/editor/AppEditor.svelte.d.ts +4 -1
  179. package/components/apps/editor/AppEditorHeader.svelte +178 -47
  180. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  181. package/components/apps/editor/AppInputs.svelte +60 -0
  182. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  183. package/components/apps/editor/AppPreview.svelte +30 -12
  184. package/components/apps/editor/ComponentHeader.svelte +52 -3
  185. package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -1
  186. package/components/apps/editor/GridEditor.svelte +134 -77
  187. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  188. package/components/apps/editor/GridPanel.svelte +29 -0
  189. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  190. package/components/apps/editor/RecomputeAllComponents.svelte +8 -6
  191. package/components/apps/editor/SettingsPanel.svelte +26 -8
  192. package/components/apps/editor/SubGridEditor.svelte +139 -0
  193. package/components/apps/editor/SubGridEditor.svelte.d.ts +29 -0
  194. package/components/apps/editor/appUtils.d.ts +19 -0
  195. package/components/apps/editor/appUtils.js +241 -0
  196. package/components/apps/editor/component/Component.svelte +434 -0
  197. package/components/apps/editor/{ComponentEditor.svelte.d.ts → component/Component.svelte.d.ts} +7 -5
  198. package/components/apps/editor/component/ComponentNavigation.svelte +125 -0
  199. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  200. package/components/apps/editor/component/README.md +15 -0
  201. package/components/apps/editor/component/components.d.ts +77 -0
  202. package/components/apps/editor/component/components.js +1476 -0
  203. package/components/apps/editor/component/default-codes.d.ts +3 -0
  204. package/components/apps/editor/component/default-codes.js +322 -0
  205. package/components/apps/editor/component/index.d.ts +4 -0
  206. package/components/apps/editor/component/index.js +4 -0
  207. package/components/apps/editor/component/sets.d.ts +2 -0
  208. package/components/apps/editor/component/sets.js +55 -0
  209. package/components/apps/editor/componentsPanel/ComponentList.svelte +75 -108
  210. package/components/apps/editor/componentsPanel/CssProperty.svelte +67 -0
  211. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +21 -0
  212. package/components/apps/editor/componentsPanel/CssSettings.svelte +188 -0
  213. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  214. package/components/apps/editor/componentsPanel/ListItem.svelte +39 -0
  215. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  216. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +5 -1
  217. package/components/apps/editor/componentsPanel/componentStaticValues.js +16 -1
  218. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  219. package/components/apps/editor/contextPanel/ContextPanel.svelte +115 -67
  220. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +109 -10
  221. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  222. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +88 -41
  223. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  224. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +32 -6
  225. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  226. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +75 -8
  227. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +128 -72
  228. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -5
  229. package/components/apps/editor/inlineScriptsPanel/utils.js +48 -7
  230. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  231. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  232. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +14 -10
  233. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +68 -1
  234. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  235. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +130 -61
  236. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +6 -3
  237. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  238. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  239. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  240. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +20 -0
  241. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +5 -1
  242. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  243. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +93 -78
  244. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  245. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +92 -0
  246. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  247. package/components/apps/editor/settingsPanel/Recompute.svelte +5 -2
  248. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +1 -1
  249. package/components/apps/editor/settingsPanel/TableActions.svelte +45 -7
  250. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  251. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +6 -4
  252. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  253. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  254. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +1 -1
  255. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -1
  256. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +107 -0
  257. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +21 -0
  258. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
  259. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -1
  260. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +59 -6
  261. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +3 -0
  262. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +21 -0
  263. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  264. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  265. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  266. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -21
  267. package/components/apps/gridUtils.d.ts +3 -1
  268. package/components/apps/gridUtils.js +5 -3
  269. package/components/apps/inputType.d.ts +34 -6
  270. package/components/apps/rx.js +2 -1
  271. package/components/apps/store.d.ts +6 -1
  272. package/components/apps/types.d.ts +47 -42
  273. package/components/apps/types.js +1 -1
  274. package/components/apps/utils.d.ts +6 -5
  275. package/components/apps/utils.js +63 -95
  276. package/components/common/button/Button.svelte +12 -5
  277. package/components/common/button/Button.svelte.d.ts +3 -1
  278. package/components/common/button/ButtonPopup.svelte +2 -0
  279. package/components/common/button/ButtonPopup.svelte.d.ts +2 -1
  280. package/components/common/button/UndoRedo.svelte +32 -0
  281. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  282. package/components/common/button/model.d.ts +2 -2
  283. package/components/common/button/model.js +21 -6
  284. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  285. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  286. package/components/common/drawer/Drawer.svelte +13 -5
  287. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  288. package/components/common/drawer/DrawerContent.svelte +0 -1
  289. package/components/common/fileInput/FileInput.svelte +138 -0
  290. package/components/common/fileInput/FileInput.svelte.d.ts +29 -0
  291. package/components/common/fileInput/model.d.ts +1 -0
  292. package/components/common/fileInput/model.js +1 -0
  293. package/components/common/index.d.ts +2 -0
  294. package/components/common/index.js +2 -0
  295. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  296. package/components/common/menu/Menu.svelte +3 -2
  297. package/components/common/menu/Menu.svelte.d.ts +2 -1
  298. package/components/common/modal/Modal.svelte +79 -0
  299. package/components/common/modal/Modal.svelte.d.ts +24 -0
  300. package/components/common/popup/Popup.svelte +34 -17
  301. package/components/common/popup/Popup.svelte.d.ts +11 -4
  302. package/components/common/table/AppRow.svelte +13 -4
  303. package/components/common/table/AppRow.svelte.d.ts +1 -0
  304. package/components/common/table/FlowRow.svelte +40 -8
  305. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  306. package/components/common/table/LanguageBadge.svelte +10 -4
  307. package/components/common/table/Row.svelte +1 -1
  308. package/components/common/table/ScriptRow.svelte +44 -12
  309. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  310. package/components/common/tabs/Tab.svelte +12 -5
  311. package/components/common/tabs/Tab.svelte.d.ts +4 -1
  312. package/components/common/tabs/Tabs.svelte +12 -8
  313. package/components/common/tabs/Tabs.svelte.d.ts +6 -2
  314. package/components/flows/CreateActionsFlow.svelte +2 -3
  315. package/components/flows/FlowEditor.svelte +6 -4
  316. package/components/flows/common/FlowCardHeader.svelte +4 -1
  317. package/components/flows/content/BranchPredicateEditor.svelte +13 -12
  318. package/components/flows/content/CapturePayload.svelte +1 -2
  319. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  320. package/components/flows/content/FlowConstants.svelte +7 -13
  321. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  322. package/components/flows/content/FlowFailureModule.svelte +2 -1
  323. package/components/flows/content/FlowInput.svelte +4 -2
  324. package/components/flows/content/FlowInputs.svelte +109 -99
  325. package/components/flows/content/FlowLoop.svelte +4 -5
  326. package/components/flows/content/FlowModuleComponent.svelte +26 -13
  327. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  328. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  329. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  330. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  331. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  332. package/components/flows/content/FlowRetries.svelte +8 -6
  333. package/components/flows/content/FlowSchedules.svelte +1 -2
  334. package/components/flows/content/FlowSettings.svelte +77 -51
  335. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  336. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  337. package/components/flows/flowState.d.ts +2 -2
  338. package/components/flows/flowState.js +1 -3
  339. package/components/flows/flowStateUtils.d.ts +7 -6
  340. package/components/flows/flowStateUtils.js +9 -11
  341. package/components/flows/flowStore.d.ts +5 -3
  342. package/components/flows/flowStore.js +6 -17
  343. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  344. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  345. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  346. package/components/flows/map/FlowInputsItem.svelte +2 -3
  347. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  348. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  349. package/components/flows/map/FlowModuleSchemaMap.svelte +163 -130
  350. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
  351. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  352. package/components/flows/map/InsertModuleButton.svelte +34 -18
  353. package/components/flows/map/InsertModuleButton.svelte.d.ts +2 -0
  354. package/components/flows/map/MapItem.svelte +176 -101
  355. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  356. package/components/flows/map/VirtualItem.svelte +129 -0
  357. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  358. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  359. package/components/flows/previousResults.d.ts +1 -1
  360. package/components/flows/previousResults.js +32 -17
  361. package/components/flows/types.d.ts +13 -1
  362. package/components/flows/utils.js +17 -11
  363. package/components/graph/FlowGraph.svelte +247 -164
  364. package/components/graph/FlowGraph.svelte.d.ts +15 -1
  365. package/components/graph/model.d.ts +6 -36
  366. package/components/graph/model.js +1 -1
  367. package/components/graph/svelvet/LICENSE +21 -0
  368. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  369. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  370. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  371. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  372. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  373. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  374. package/components/graph/svelvet/container/README.md +7 -0
  375. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  376. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  377. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  378. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  379. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  380. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  381. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  382. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  383. package/components/graph/svelvet/d3/controllers/README.md +3 -0
  384. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  385. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  386. package/components/graph/svelvet/d3/controllers/d3Old.d.ts +1 -0
  387. package/components/graph/svelvet/d3/controllers/d3Old.js +43 -0
  388. package/components/graph/svelvet/docs/CHANGELOG.md +145 -0
  389. package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +44 -0
  390. package/components/graph/svelvet/docs/DOCUMENTATION.md +5 -0
  391. package/components/graph/svelvet/docs/README.md +34 -0
  392. package/components/graph/svelvet/docs/TODO.md +14 -0
  393. package/components/graph/svelvet/docs/Tutorials.md +25 -0
  394. package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
  395. package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
  396. package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
  397. package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
  398. package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
  399. package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
  400. package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
  401. package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
  402. package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
  403. package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
  404. package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
  405. package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
  406. package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
  407. package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
  408. package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
  409. package/components/graph/svelvet/docs/images/node-create-before.png +0 -0
  410. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  411. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  412. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  413. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  414. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  415. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  416. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  417. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  418. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  419. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  420. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  421. package/components/graph/svelvet/edges/types/types.js +1 -0
  422. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  423. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  424. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  425. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  426. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  427. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  428. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  429. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  430. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  431. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  432. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  433. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  434. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  435. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  436. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  437. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  438. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  439. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  440. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  441. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  442. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  443. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  444. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  445. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  446. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  447. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  448. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  449. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  450. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  451. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  452. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  453. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  454. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  455. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  456. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  457. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  458. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  459. package/components/graph/svelvet/store/controllers/util.js +180 -0
  460. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  461. package/components/graph/svelvet/store/models/store.js +9 -0
  462. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  463. package/components/graph/svelvet/store/types/types.js +1 -0
  464. package/components/graph/svelvet/types/README.md +3 -0
  465. package/components/graph/svelvet/types/index.d.ts +2 -0
  466. package/components/graph/svelvet/types/index.js +1 -0
  467. package/components/graph/svelvet/types/types.d.ts +49 -0
  468. package/components/graph/svelvet/types/types.js +18 -0
  469. package/components/graph/util.js +2 -2
  470. package/components/home/ItemsList.svelte +53 -5
  471. package/components/home/ItemsList.svelte.d.ts +1 -0
  472. package/components/home/ListFilters.svelte +7 -2
  473. package/components/icons/SquareIcon.svelte +9 -0
  474. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  475. package/components/icons/index.d.ts +2 -0
  476. package/components/icons/index.js +2 -0
  477. package/components/jobs/JobDetail.svelte +40 -5
  478. package/components/propertyPicker/ObjectViewer.svelte +14 -9
  479. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  480. package/components/propertyPicker/PropPicker.svelte +8 -1
  481. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  482. package/components/random_positive_adjetive.d.ts +1 -0
  483. package/components/random_positive_adjetive.js +961 -0
  484. package/components/scriptEditor/LogPanel.svelte +2 -1
  485. package/components/sidebar/SidebarContent.svelte +1 -1
  486. package/components/sidebar/UserMenu.svelte +46 -16
  487. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  488. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  489. package/components/sidebar/settings.d.ts +2 -0
  490. package/components/sidebar/settings.js +2 -0
  491. package/consts.d.ts +1 -0
  492. package/consts.js +1 -0
  493. package/defaults.d.ts +4 -0
  494. package/defaults.js +4 -0
  495. package/gen/core/OpenAPI.js +1 -1
  496. package/gen/models/CompletedJob.d.ts +1 -0
  497. package/gen/models/FlowModule.d.ts +0 -1
  498. package/gen/models/QueuedJob.d.ts +1 -0
  499. package/gen/models/WorkerPing.d.ts +1 -1
  500. package/gen/services/FlowService.d.ts +9 -0
  501. package/gen/services/FlowService.js +15 -0
  502. package/gen/services/JobService.d.ts +97 -15
  503. package/gen/services/JobService.js +74 -15
  504. package/gen/services/ScriptService.d.ts +10 -1
  505. package/gen/services/ScriptService.js +16 -1
  506. package/gen/services/VariableService.d.ts +4 -2
  507. package/gen/services/VariableService.js +8 -2
  508. package/gen/services/WorkspaceService.d.ts +17 -0
  509. package/gen/services/WorkspaceService.js +16 -0
  510. package/history.d.ts +9 -0
  511. package/history.js +56 -0
  512. package/infer.js +3 -0
  513. package/init_scripts/python_failure_module.py +10 -0
  514. package/init_scripts/python_init_code.py +37 -0
  515. package/init_scripts/python_init_code_clear.py +5 -0
  516. package/init_scripts/python_init_code_trigger.py +14 -0
  517. package/logout.js +2 -1
  518. package/package.json +661 -522
  519. package/script_helpers.d.ts +6 -5
  520. package/script_helpers.js +8 -73
  521. package/scripts.d.ts +1 -1
  522. package/scripts.js +8 -1
  523. package/stores.d.ts +5 -1
  524. package/stores.js +8 -1
  525. package/user.d.ts +1 -1
  526. package/user.js +14 -8
  527. package/utils.d.ts +10 -5
  528. package/utils.js +51 -14
  529. package/components/apps/components/DisplayComponent.svelte +0 -16
  530. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  531. package/components/apps/components/dataDisplay/AppHtml.svelte +0 -31
  532. package/components/apps/components/dateInputs/AppDateInput.svelte +0 -34
  533. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  534. package/components/apps/components/numberInputs/AppSliderInputs.svelte +0 -37
  535. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  536. package/components/apps/components/textInputs/AppTextInput.svelte +0 -31
  537. package/components/apps/editor/ComponentEditor.svelte +0 -145
  538. package/components/apps/editor/TablePanel.svelte +0 -17
  539. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  540. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  541. package/components/apps/editor/componentsPanel/data.js +0 -499
  542. package/components/apps/editorUtils.d.ts +0 -1
  543. package/components/apps/editorUtils.js +0 -292
  544. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  545. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  546. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  547. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
  548. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  549. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
@@ -0,0 +1,195 @@
1
+ import { writable, derived, get, readable } from 'svelte/store';
2
+ import { stores } from '../../store/models/store';
3
+ import { getAnchors, getEdgeById } from '../../edges/controllers/util';
4
+ import { getResizeNodes } from '../../resizableNodes/controllers/util';
5
+ /** A Node class that implements NodeType interface
6
+ * @param {string} id The id of the Node
7
+ * @param {number} positionX The X-axis position of the Node (left top corner of the Node)
8
+ * @param {number} positionY The Y-axis position of the Node (left top corner of the Node)
9
+ * @param {number} width The width of the Node
10
+ * @param {number} height The height of the Node
11
+ * @param {string} bgColor The background color of the node
12
+ * @param {object} data A data object that user can specify; possible keys are 'label' and 'custom';
13
+ * @param {string} canvasId The canvasId of the Svelvet component that the instantiated Node will be on.
14
+ * @param {string} borderColor The border color of the Node
15
+ * @param {boolean} image A boolean set to true if the Node needs to display an image
16
+ * @param {string} src The src link for the image; image and src are closely tied and a src link is only needed when image sets to true
17
+ * @param {string} textColor The color of the text in the Node
18
+ * @param {string} borderRadius The border radius of the Node
19
+ * @param {string} childNodes An array of node ids that will be grouped as child nodes of this Node. This is for the GroupNodes feature. The current implementation of this feature works one way but not the other (when you drag the parent node, the child nodes will move as a group but when you drag the child node, the parent node would not move along)
20
+ * @param {string} className The custom class name if user specifies. This is for the custom className feature for Node.
21
+ */
22
+ export class Node {
23
+ id;
24
+ positionX;
25
+ positionY;
26
+ width;
27
+ height;
28
+ bgColor;
29
+ data;
30
+ canvasId;
31
+ borderColor;
32
+ image;
33
+ src;
34
+ textColor;
35
+ borderRadius;
36
+ childNodes;
37
+ className;
38
+ clickCallback;
39
+ constructor(id, positionX, positionY, width, height, bgColor, data, canvasId, borderColor, image, src, textColor, borderRadius, childNodes, className, clickCallback) {
40
+ this.id = id;
41
+ this.positionX = positionX;
42
+ this.positionY = positionY;
43
+ this.width = width;
44
+ this.height = height;
45
+ this.bgColor = bgColor;
46
+ this.data = data;
47
+ this.canvasId = canvasId;
48
+ this.borderColor = borderColor;
49
+ this.image = image;
50
+ this.src = src;
51
+ this.textColor = textColor;
52
+ this.borderRadius = borderRadius;
53
+ this.childNodes = childNodes;
54
+ this.className = className;
55
+ this.clickCallback = clickCallback;
56
+ }
57
+ /**
58
+ * setPositionFromMovement will update the positionX and positionY of the Node when user drags a Node around on the canvas, reflect the changes in real time in the nodesStore, and also cascade the changes to all relative elements like Anchors and Edges.
59
+ * @param {number} movementX The mouse movement value on the X-axis
60
+ * @param {number} movementY The mouse movement value on the Y-axis
61
+ */
62
+ setPositionFromMovement(movementX, movementY) {
63
+ const { nodesStore, anchorsStore, resizeNodesStore, potentialAnchorsStore, boundary, lockedOption, } = stores[this.canvasId];
64
+ if (get(lockedOption))
65
+ return; // don't do anything if locked is enabled
66
+ // boundary sets the boundary of the canvas, or else it is false if their is no boundary
67
+ // check if out of bounds, and if so return without doing anything
68
+ const boundaryObj = get(boundary);
69
+ if (typeof boundaryObj === 'object' &&
70
+ (this.positionX + this.width + movementX >= boundaryObj.x ||
71
+ this.positionY + this.height + movementY >= boundaryObj.y ||
72
+ this.positionY + movementY <= 0 ||
73
+ this.positionX + movementX <= 0))
74
+ return;
75
+ //update all necessary data
76
+ this.positionX += movementX;
77
+ this.positionY += movementY;
78
+ // update children
79
+ nodesStore.update((nodes) => {
80
+ if (this.childNodes)
81
+ for (const childNodeId of this.childNodes)
82
+ nodes[childNodeId].setPositionFromMovement(movementX, movementY);
83
+ return { ...nodes };
84
+ });
85
+ //update all the anchors on the node in the anchorsStore
86
+ anchorsStore.update((anchors) => {
87
+ for (const anchorId in anchors) {
88
+ if (anchors[anchorId].nodeId === this.id) {
89
+ anchors[anchorId].setPositionFromNode();
90
+ }
91
+ }
92
+ return { ...anchors };
93
+ });
94
+ //update all the anchors on the node in the anchorsStore
95
+ potentialAnchorsStore.update((anchors) => {
96
+ for (const anchorId in anchors) {
97
+ if (anchors[anchorId].nodeId === this.id) {
98
+ anchors[anchorId].callback(); // we don't have to worry about setting partner anchors/etc;
99
+ }
100
+ }
101
+ return { ...anchors };
102
+ });
103
+ resizeNodesStore.update((resAnchors) => {
104
+ for (const anchorId in resAnchors) {
105
+ if (resAnchors[anchorId].nodeId === this.id) {
106
+ resAnchors[anchorId].setPosition(movementX, movementY);
107
+ //resAnchors[anchorId].setPosition(movementX, movementY);
108
+ }
109
+ }
110
+ return { ...resAnchors };
111
+ });
112
+ }
113
+ /**
114
+ * setSizeFromMovement will update the width and height of the Node when user resizes the Node by dragging at the right bottom corner (where the ResizedNode attached), reflect the changes in real time in the nodesStore, and also cascade the changes to all relative elements like Anchors and potential Anchors.
115
+ *
116
+ * @param movementX The mouse movement value on the X-axis
117
+ * @param movementY The mouse movement value on the Y-axis
118
+ */
119
+ setSizeFromMovement(movementX, movementY) {
120
+ this.width += movementX;
121
+ this.height += movementY;
122
+ const { anchorsStore, potentialAnchorsStore } = stores[this.canvasId];
123
+ //Updates the anchor so it follows the node's position as the dimensions change
124
+ anchorsStore.update((anchors) => {
125
+ for (const anchorId in anchors) {
126
+ if (anchors[anchorId].nodeId === this.id) {
127
+ anchors[anchorId].setPositionFromNode();
128
+ //anchors[anchorId].setPosition(movementX, movementY);
129
+ }
130
+ }
131
+ return { ...anchors };
132
+ });
133
+ //update all the anchors on the node in the anchorsStore
134
+ potentialAnchorsStore.update((anchors) => {
135
+ for (const anchorId in anchors) {
136
+ if (anchors[anchorId].nodeId === this.id) {
137
+ anchors[anchorId].callback(); // we don't have to worry about setting partner anchors/etc;
138
+ }
139
+ }
140
+ return { ...anchors };
141
+ });
142
+ }
143
+ /**
144
+ * delete will handle the deletion of a Node (also waterfall down to delete anchors and edges)
145
+ */
146
+ delete() {
147
+ const store = stores[this.canvasId];
148
+ const { nodesStore, anchorsStore, edgesStore } = stores[this.canvasId];
149
+ nodesStore.update((nodes) => {
150
+ for (const nodeId in nodes) {
151
+ if (nodes[nodeId].id === this.id) {
152
+ delete nodes[nodeId];
153
+ }
154
+ }
155
+ return { ...nodes };
156
+ });
157
+ // variable `anchors` is an array of Anchor objects on the node
158
+ const anchors = getAnchors(store, { nodeId: this.id });
159
+ for (let anchorSelf of anchors) {
160
+ const edgeId = anchorSelf.edgeId;
161
+ const edge = getEdgeById(store, edgeId);
162
+ edge.delete(); // this also deletes anchors. TODO: maybe this should be renamed to explicitly say
163
+ }
164
+ // delete the resize nodes
165
+ const resizeNodesArr = getResizeNodes(store, { nodeId: this.id });
166
+ // there should be only 1 resize node if option is enabled, 0 if not enabled
167
+ for (const resizeNode of resizeNodesArr) {
168
+ resizeNode.delete();
169
+ }
170
+ }
171
+ /**
172
+ * setExportableData is going to construct an object that holds all the node data that can be exported. This method is used for Exporting Diagrams feature.
173
+ *
174
+ * @returns An object with all the exportable data of the Node. The format of this object should align with the original format of node data user provided.
175
+ */
176
+ setExportableData() {
177
+ const exportableData = {
178
+ id: this.id,
179
+ // canvasId: this.canvasId,
180
+ width: this.width,
181
+ height: this.height,
182
+ position: { x: this.positionX, y: this.positionY },
183
+ data: this.data,
184
+ bgColor: this.bgColor,
185
+ borderColor: this.borderColor,
186
+ textColor: this.textColor,
187
+ borderRadius: this.borderRadius,
188
+ image: this.image,
189
+ src: this.src,
190
+ childNodes: this.childNodes,
191
+ customClassName: this.className,
192
+ };
193
+ return exportableData;
194
+ }
195
+ }
@@ -0,0 +1,147 @@
1
+ <script>
2
+ import { findStore } from '../../store/controllers/storeApi';
3
+ import { getNodeById } from '../../nodes/controllers/util';
4
+
5
+ export let nodeId;
6
+ export let canvasId;
7
+ export let isEditing;
8
+
9
+ let label;
10
+ let width;
11
+ let height;
12
+ let customClass;
13
+ let backgroundColor;
14
+
15
+ const store = findStore(canvasId);
16
+
17
+ const { nodesStore, nodeSelected } = store;
18
+ let currentNode = $nodesStore[nodeId];
19
+
20
+ const editNode = (e) => {
21
+ e.preventDefault();
22
+ if (label) currentNode.data.label = label;
23
+ if (width) currentNode.width = width;
24
+ if (height) currentNode.height = height;
25
+ if (backgroundColor) currentNode.bgColor = backgroundColor;
26
+ width = '';
27
+ height = '';
28
+ customClass = '';
29
+ label = '';
30
+
31
+ store.nodesStore.set($nodesStore);
32
+ };
33
+ </script>
34
+
35
+ {#if isEditing}
36
+ <div
37
+ on:mouseover={(e) => ($nodeSelected = true)}
38
+ on:focus
39
+ on:wheel|preventDefault
40
+ class="EditNode"
41
+ style="left:{currentNode.positionX +
42
+ currentNode.width}px; top:{currentNode.positionY}px"
43
+ >
44
+ <form on:submit={editNode}>
45
+ <label for="label-input">Label</label>
46
+ <input
47
+ type="text"
48
+ id="label-input-{nodeId}"
49
+ placeholder={currentNode.data.label}
50
+ bind:value={label}
51
+ />
52
+
53
+ <label for="bg-color-input">Background Color</label>
54
+ <input
55
+ type="color"
56
+ id="bg-color-input-{nodeId}"
57
+ class="bgci"
58
+ bind:value={backgroundColor}
59
+ />
60
+ <input
61
+ type="text"
62
+ placeholder={currentNode.bgColor}
63
+ bind:value={backgroundColor}
64
+ />
65
+ </form>
66
+ <div class="btn-container">
67
+ <button
68
+ on:click={(e) => {
69
+ const store = findStore(canvasId);
70
+ const node = getNodeById(store, nodeId);
71
+ node.delete();
72
+ isEditing = false;
73
+ }}>Delete Node</button
74
+ >
75
+ <button
76
+ on:click={(e) => {
77
+ editNode(e);
78
+ isEditing = false;
79
+ }}>Submit</button
80
+ >
81
+ </div>
82
+ </div>
83
+ {/if}
84
+
85
+ <style>
86
+ .EditNode {
87
+ position: absolute;
88
+ padding: 0 1rem 1rem 1rem;
89
+ display: flex;
90
+ flex-direction: column;
91
+ align-items: center;
92
+ border: 1px solid #333333;
93
+ border-radius: 0.25rem;
94
+ background-color: #ffffff;
95
+ z-index: 10;
96
+ -webkit-user-select: text;
97
+ -moz-user-select: text;
98
+ user-select: text;
99
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.4);
100
+ color: #333333;
101
+ pointer-events: auto; /* this is needed for pointer events to work since we disable them in graphview */
102
+ }
103
+
104
+ label {
105
+ font-size: 0.8rem;
106
+ font-weight: bold;
107
+ margin-bottom: 0.15rem;
108
+ }
109
+
110
+ .btn-container {
111
+ display: flex;
112
+ justify-content: space-between;
113
+ margin-top: 0.5rem;
114
+ }
115
+
116
+ button {
117
+ border-radius: 0.25rem;
118
+ background-color: white;
119
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.4);
120
+ margin: 0.2rem;
121
+ }
122
+
123
+ input {
124
+ height: 1.6rem;
125
+ border-color: #e45b56;
126
+ }
127
+
128
+ .bgci {
129
+ height: 2rem;
130
+ width: 5rem;
131
+ padding: 0;
132
+ border: none;
133
+ background-color: none;
134
+ }
135
+
136
+ button:hover {
137
+ cursor: pointer;
138
+ background-color: #e45b56;
139
+ color: white;
140
+ }
141
+
142
+ form {
143
+ display: flex;
144
+ flex-direction: column;
145
+ align-items: center;
146
+ justify-content: center;
147
+ }</style>
@@ -0,0 +1,33 @@
1
+ /** @typedef {typeof __propDef.props} EditNodeProps */
2
+ /** @typedef {typeof __propDef.events} EditNodeEvents */
3
+ /** @typedef {typeof __propDef.slots} EditNodeSlots */
4
+ export default class EditNode extends SvelteComponentTyped<{
5
+ nodeId: any;
6
+ canvasId: any;
7
+ isEditing: any;
8
+ }, {
9
+ focus: FocusEvent;
10
+ wheel: WheelEvent;
11
+ } & {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}> {
14
+ }
15
+ export type EditNodeProps = typeof __propDef.props;
16
+ export type EditNodeEvents = typeof __propDef.events;
17
+ export type EditNodeSlots = typeof __propDef.slots;
18
+ import { SvelteComponentTyped } from "svelte";
19
+ declare const __propDef: {
20
+ props: {
21
+ nodeId: any;
22
+ canvasId: any;
23
+ isEditing: any;
24
+ };
25
+ events: {
26
+ focus: FocusEvent;
27
+ wheel: WheelEvent;
28
+ } & {
29
+ [evt: string]: CustomEvent<any>;
30
+ };
31
+ slots: {};
32
+ };
33
+ export {};
@@ -0,0 +1,85 @@
1
+ <script>import { afterUpdate } from 'svelte';
2
+ import { findStore } from '../../store/controllers/storeApi';
3
+ import { forceCssHeightAndWidth } from '../../customCss/controllers/getCss';
4
+ export let node;
5
+ export let canvasId;
6
+ export let nodeId;
7
+ export let isCustom = false;
8
+ const store = findStore(canvasId);
9
+ const { lockedOption } = store;
10
+ // forceCssHeightAndWidth forces the size of the node to be defined by CSS
11
+ afterUpdate(() => {
12
+ if (node.className)
13
+ forceCssHeightAndWidth(store, node);
14
+ });
15
+ const mousedown = (e) => {
16
+ if (node.clickCallback)
17
+ node.clickCallback(node);
18
+ };
19
+ </script>
20
+
21
+ <!-- on:wheel prevents page scroll when using mousewheel in the Node -->
22
+ <div
23
+ on:mousedown={mousedown}
24
+ on:touchstart={mousedown}
25
+ class="{isCustom ? 'CustomNode' : 'Node'} {node.className}"
26
+ style="left: {node.positionX}px;
27
+ top: {node.positionY}px;
28
+ width: {node.width}px;
29
+ height: {node.height}px;
30
+ {isCustom
31
+ ? ''
32
+ : `
33
+ background-color: ${node.bgColor ?? 'white'};
34
+ border-color: ${node.borderColor};
35
+ border-radius: ${node.borderRadius}px;
36
+ color: ${node.textColor};
37
+ cursor: ${$lockedOption ? 'default' : 'grab'};`}"
38
+ id="svelvet-{node.id}"
39
+ >
40
+ <!-- This executes if node.image is present without node.label -->
41
+ {#if node.image}
42
+ <img
43
+ src={node.src}
44
+ alt=""
45
+ style="width: {node.width * 0.75}px;
46
+ height: {node.height * 0.75}px;
47
+ overflow: hidden;"
48
+ />
49
+ {/if}
50
+ <slot />
51
+ </div>
52
+
53
+ <style>
54
+ .CustomNode {
55
+ position: absolute;
56
+ display: grid;
57
+ justify-content: center;
58
+ align-items: center;
59
+ font-size: 14px;
60
+ text-align: center;
61
+ pointer-events: auto;
62
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
63
+ }
64
+
65
+ .Node {
66
+ position: absolute;
67
+ display: grid;
68
+ -webkit-user-select: none;
69
+ -moz-user-select: none;
70
+ user-select: none;
71
+ justify-content: center;
72
+ overscroll-behavior: auto;
73
+ align-items: center;
74
+ font-size: 14px;
75
+ text-align: center;
76
+ border: solid 1px black;
77
+ border-radius: 5px;
78
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
79
+ pointer-events: auto; /* this is needed for pointer events to work since we disable them in graphview */
80
+ }
81
+ /* the default behavior when click/dragging an image is to move it. This interferes with node dragging. We disable pointer events on img to prevent this */
82
+ /* Alternatively, we could use e.preventDefault() on mouseDown. However, this interferes with embedded Svelvet forms */
83
+ img {
84
+ pointer-events: none;
85
+ }</style>
@@ -0,0 +1,22 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { NodeType } from '../../store/types/types';
3
+ declare const __propDef: {
4
+ props: {
5
+ node: NodeType;
6
+ canvasId: string;
7
+ nodeId: string;
8
+ isCustom?: boolean | undefined;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {
14
+ default: {};
15
+ };
16
+ };
17
+ export type NodeProps = typeof __propDef.props;
18
+ export type NodeEvents = typeof __propDef.events;
19
+ export type NodeSlots = typeof __propDef.slots;
20
+ export default class Node extends SvelteComponentTyped<NodeProps, NodeEvents, NodeSlots> {
21
+ }
22
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { StoreType, ResizeNodeType } from '../../store/types/types';
2
+ /**
3
+ * Finds all resizeNodes that matches the conditions specified in the filter parameter from a Svelvet store and returns these resizeNodes in an array
4
+ *
5
+ * @param store The Svelvet store containing the state of a Svelvet component
6
+ * @param filter An object to specify conditions.
7
+ * @returns An array of resizeNode objects that matches the conditions specified in filter parameter
8
+ */
9
+ export declare function getResizeNodes(store: StoreType, filter?: {
10
+ [key: string]: any;
11
+ }): ResizeNodeType[];
@@ -0,0 +1,24 @@
1
+ import { get } from 'svelte/store';
2
+ /**
3
+ * Finds all resizeNodes that matches the conditions specified in the filter parameter from a Svelvet store and returns these resizeNodes in an array
4
+ *
5
+ * @param store The Svelvet store containing the state of a Svelvet component
6
+ * @param filter An object to specify conditions.
7
+ * @returns An array of resizeNode objects that matches the conditions specified in filter parameter
8
+ */
9
+ export function getResizeNodes(store, filter) {
10
+ let resizeNodes = Object.values(get(store.resizeNodesStore));
11
+ // filter the array for elements that match filter
12
+ if (filter !== undefined) {
13
+ resizeNodes = resizeNodes.filter((resizeNode) => {
14
+ for (let filterKey in filter) {
15
+ const filterValue = filter[filterKey];
16
+ if (resizeNode[filterKey] !== filterValue)
17
+ return false;
18
+ }
19
+ return true;
20
+ });
21
+ }
22
+ // return list of anchors
23
+ return resizeNodes;
24
+ }
@@ -0,0 +1,33 @@
1
+ import type { ResizeNodeType } from '../../store/types/types';
2
+ /** A ResizeNode class that implements ResizeNodeType interface
3
+ * @param {string} id The id of the ResizeNode
4
+ * @param {string} canvasId The canvasId of the Svelvet component that the instantiated ResizeNode will be on.
5
+ * @param {string} nodeId The id of the Node that the instantiated ResizedNode will be attached to.
6
+ * @param {number} positionX The X-axis position of the ResizeNode (left top corner of the ResizeNode)
7
+ * @param {number} positionY The Y-axis position of the ResizeNode (left top corner of the ResizeNode)
8
+ */
9
+ export declare class ResizeNode implements ResizeNodeType {
10
+ id: string;
11
+ canvasId: string;
12
+ nodeId: string;
13
+ positionX: number;
14
+ positionY: number;
15
+ constructor(id: string, canvasId: string, nodeId: string, positionX: number, positionY: number);
16
+ /**
17
+ * setPosition will update the positionX and positionY of the ResizeNode. This will be invoked when the Node that this ResizeNode attached to is moving so that the ResizeNode will follow the Node.
18
+ *
19
+ * @param movementX The mouse movement value on the X-axis
20
+ * @param movementY The mouse movement value on the Y-axis
21
+ */
22
+ setPosition(movementX: number, movementY: number): void;
23
+ /**
24
+ * setPositionAndCascade will update the positionX and positionY of the ResizeNode and also cascade changes to related Node. This will be invoked when the user drags the ResizeNode so the position of the ResizeNode and the width and height of the Node would change accordingly.
25
+ * @param movementX The mouse movement value on the X-axis
26
+ * @param movementY The mouse movement value on the Y-axis
27
+ */
28
+ setPositionAndCascade(movementX: number, movementY: number): void;
29
+ /**
30
+ * delete is going to delete the ResizeNode from the resizeNodesStore.
31
+ */
32
+ delete(): void;
33
+ }
@@ -0,0 +1,71 @@
1
+ // import { writable, derived, get, readable } from 'svelte/store';
2
+ import { stores } from '../../store/models/store';
3
+ /** A ResizeNode class that implements ResizeNodeType interface
4
+ * @param {string} id The id of the ResizeNode
5
+ * @param {string} canvasId The canvasId of the Svelvet component that the instantiated ResizeNode will be on.
6
+ * @param {string} nodeId The id of the Node that the instantiated ResizedNode will be attached to.
7
+ * @param {number} positionX The X-axis position of the ResizeNode (left top corner of the ResizeNode)
8
+ * @param {number} positionY The Y-axis position of the ResizeNode (left top corner of the ResizeNode)
9
+ */
10
+ export class ResizeNode {
11
+ id;
12
+ canvasId;
13
+ nodeId;
14
+ positionX;
15
+ positionY;
16
+ constructor(id, canvasId, nodeId, positionX, positionY) {
17
+ this.id = id;
18
+ this.canvasId = canvasId;
19
+ this.nodeId = nodeId;
20
+ this.positionX = positionX;
21
+ this.positionY = positionY;
22
+ }
23
+ /**
24
+ * setPosition will update the positionX and positionY of the ResizeNode. This will be invoked when the Node that this ResizeNode attached to is moving so that the ResizeNode will follow the Node.
25
+ *
26
+ * @param movementX The mouse movement value on the X-axis
27
+ * @param movementY The mouse movement value on the Y-axis
28
+ */
29
+ setPosition(movementX, movementY) {
30
+ this.positionX += movementX;
31
+ this.positionY += movementY;
32
+ }
33
+ /**
34
+ * setPositionAndCascade will update the positionX and positionY of the ResizeNode and also cascade changes to related Node. This will be invoked when the user drags the ResizeNode so the position of the ResizeNode and the width and height of the Node would change accordingly.
35
+ * @param movementX The mouse movement value on the X-axis
36
+ * @param movementY The mouse movement value on the Y-axis
37
+ */
38
+ setPositionAndCascade(movementX, movementY) {
39
+ //declare variables needed to interact with the corresponding node to this resize anchor
40
+ const nodeId = this.nodeId;
41
+ const { nodesStore } = stores[this.canvasId];
42
+ //Updates the width/height of the corresponding Node
43
+ nodesStore.update((nodes) => {
44
+ const node = nodes[nodeId];
45
+ //sets condition so node cannot be less than 20 px in width or height.
46
+ if (node.width + movementX > 20 && node.height + movementY > 20) {
47
+ //Updates position to this resizeNode anchor. Must be done within the update method so ensure the position doesn't change if the width goes below 20px
48
+ this.positionX += movementX;
49
+ this.positionY += movementY;
50
+ //setSizeFromMovement will then update the anchors position as the width & height changes
51
+ node.setSizeFromMovement(movementX, movementY);
52
+ }
53
+ return { ...nodes };
54
+ });
55
+ }
56
+ /**
57
+ * delete is going to delete the ResizeNode from the resizeNodesStore.
58
+ */
59
+ delete() {
60
+ const store = stores[this.canvasId];
61
+ const { resizeNodesStore } = stores[this.canvasId];
62
+ resizeNodesStore.update((resizeNodes) => {
63
+ for (const resizeNodeId in resizeNodes) {
64
+ if (resizeNodes[resizeNodeId].id === this.id) {
65
+ delete resizeNodes[resizeNodeId];
66
+ }
67
+ }
68
+ return { ...resizeNodes };
69
+ });
70
+ }
71
+ }