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,151 @@
1
+ <script>import { findStore } from '../../store/controllers/storeApi';
2
+ import { writable, derived, get, readable } from 'svelte/store';
3
+ import { getEdgeById } from '../../edges/controllers/util';
4
+ export let edgeId;
5
+ export let canvasId;
6
+ let label;
7
+ let width;
8
+ let height;
9
+ let customClass;
10
+ let backgroundColor;
11
+ let type;
12
+ const store = findStore(canvasId);
13
+ const canvasWidth = get(store.widthStore);
14
+ const canvasHeight = get(store.widthStore);
15
+ const edge = getEdgeById(store, edgeId);
16
+ const { edgesStore, nodeSelected } = store;
17
+ function closeModal() {
18
+ const store = findStore(canvasId);
19
+ store.edgeEditModal.set(null);
20
+ }
21
+ function handleDelete() {
22
+ const store = findStore(canvasId);
23
+ const edge = getEdgeById(store, edgeId);
24
+ edge.delete();
25
+ closeModal();
26
+ }
27
+ function handleSubmit(e) {
28
+ e.preventDefault();
29
+ const store = findStore(canvasId);
30
+ const edge = getEdgeById(store, edgeId);
31
+ if (label)
32
+ edge.label = label;
33
+ if (backgroundColor)
34
+ edge.edgeColor = backgroundColor;
35
+ if (type)
36
+ edge.type = type;
37
+ // width = '';
38
+ // height = '';
39
+ // customClass = '';
40
+ // label = '';
41
+ store.edgesStore.set($edgesStore);
42
+ closeModal();
43
+ }
44
+ </script>
45
+
46
+ <div
47
+ class="EditEdge"
48
+ style="left:{canvasWidth / 3}px; top:{canvasHeight / 3}px"
49
+ on:mouseover={(e) => ($nodeSelected = true)}
50
+ on:focus
51
+ on:wheel|preventDefault
52
+ >
53
+ <form on:submit={handleSubmit}>
54
+ <label for="label-input">Edge label</label>
55
+ <input
56
+ type="text"
57
+ id="label-input-{edgeId}"
58
+ placeholder={edge.label}
59
+ bind:value={label}
60
+ />
61
+
62
+ <label for="bg-color-input">Edge color</label>
63
+ <input
64
+ type="color"
65
+ id="bg-color-input-{edgeId}"
66
+ class="bgci"
67
+ bind:value={backgroundColor}
68
+ />
69
+ <input
70
+ type="text"
71
+ placeholder={edge.edgeColor}
72
+ bind:value={backgroundColor}
73
+ />
74
+
75
+ <label for="type-input">Edge type</label>
76
+ <input
77
+ type="text"
78
+ id="type-input-{edgeId}"
79
+ placeholder={edge.type}
80
+ bind:value={type}
81
+ />
82
+ </form>
83
+ <div class="btn-container">
84
+ <button on:click={handleSubmit}>Submit</button>
85
+ <button on:click={handleDelete}>Delete</button>
86
+ <button on:click={closeModal}>Cancel</button>
87
+ </div>
88
+ </div>
89
+
90
+ <style>
91
+ .EditEdge {
92
+ position: absolute;
93
+ padding: 0 1rem 1rem 1rem;
94
+ display: flex;
95
+ flex-direction: column;
96
+ align-items: center;
97
+ border: 1px solid #333333;
98
+ border-radius: 0.25rem;
99
+ background-color: #ffffff;
100
+ z-index: 10;
101
+ -webkit-user-select: text;
102
+ -moz-user-select: text;
103
+ user-select: text;
104
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.4);
105
+ color: #333333;
106
+ }
107
+
108
+ label {
109
+ font-size: 0.8rem;
110
+ font-weight: bold;
111
+ margin-bottom: 0.15rem;
112
+ }
113
+
114
+ .btn-container {
115
+ display: flex;
116
+ justify-content: space-between;
117
+ margin-top: 0.5rem;
118
+ }
119
+
120
+ button {
121
+ border-radius: 0.25rem;
122
+ background-color: white;
123
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.4);
124
+ margin: 0.2rem;
125
+ }
126
+
127
+ input {
128
+ height: 1.6rem;
129
+ border-color: #e45b56;
130
+ }
131
+
132
+ .bgci {
133
+ height: 2rem;
134
+ width: 5rem;
135
+ padding: 0;
136
+ border: none;
137
+ background-color: none;
138
+ }
139
+
140
+ button:hover {
141
+ cursor: pointer;
142
+ background-color: #e45b56;
143
+ color: white;
144
+ }
145
+
146
+ form {
147
+ display: flex;
148
+ flex-direction: column;
149
+ align-items: center;
150
+ justify-content: center;
151
+ }</style>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ edgeId: string;
5
+ canvasId: string;
6
+ };
7
+ events: {
8
+ focus: FocusEvent;
9
+ wheel: WheelEvent;
10
+ } & {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ };
15
+ export type EditEdgeProps = typeof __propDef.props;
16
+ export type EditEdgeEvents = typeof __propDef.events;
17
+ export type EditEdgeSlots = typeof __propDef.slots;
18
+ export default class EditEdge extends SvelteComponentTyped<EditEdgeProps, EditEdgeEvents, EditEdgeSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { StoreType } from '../../store/types/types';
2
+ /**
3
+ * getNodeById will look for the targeted Node that has the same id provided in the Svelvet component store.
4
+ *
5
+ * @param store The Svelvet store containing the state of a Svelvet component
6
+ * @param id The id of the targeted Node
7
+ * @returns The targeted Node object in store.nodesStore
8
+ */
9
+ export declare function getNodeById(store: StoreType, id: string): import("../../store/types/types").NodeType;
@@ -0,0 +1,13 @@
1
+ import { writable, derived, get, readable } from 'svelte/store';
2
+ /**
3
+ * getNodeById will look for the targeted Node that has the same id provided in the Svelvet component store.
4
+ *
5
+ * @param store The Svelvet store containing the state of a Svelvet component
6
+ * @param id The id of the targeted Node
7
+ * @returns The targeted Node object in store.nodesStore
8
+ */
9
+ export function getNodeById(store, id) {
10
+ const nodesStore = get(store.nodesStore);
11
+ const node = nodesStore[id];
12
+ return node;
13
+ }
@@ -0,0 +1,78 @@
1
+ /** this is where we create our node store */
2
+ import type { NodeType } from '../../store/types/types';
3
+ /** A Node class that implements NodeType interface
4
+ * @param {string} id The id of the Node
5
+ * @param {number} positionX The X-axis position of the Node (left top corner of the Node)
6
+ * @param {number} positionY The Y-axis position of the Node (left top corner of the Node)
7
+ * @param {number} width The width of the Node
8
+ * @param {number} height The height of the Node
9
+ * @param {string} bgColor The background color of the node
10
+ * @param {object} data A data object that user can specify; possible keys are 'label' and 'custom';
11
+ * @param {string} canvasId The canvasId of the Svelvet component that the instantiated Node will be on.
12
+ * @param {string} borderColor The border color of the Node
13
+ * @param {boolean} image A boolean set to true if the Node needs to display an image
14
+ * @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
15
+ * @param {string} textColor The color of the text in the Node
16
+ * @param {string} borderRadius The border radius of the Node
17
+ * @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)
18
+ * @param {string} className The custom class name if user specifies. This is for the custom className feature for Node.
19
+ */
20
+ export declare class Node implements NodeType {
21
+ id: string;
22
+ positionX: number;
23
+ positionY: number;
24
+ width: number;
25
+ height: number;
26
+ bgColor: string;
27
+ data: object;
28
+ canvasId: string;
29
+ borderColor: string;
30
+ image: boolean;
31
+ src: string;
32
+ textColor: string;
33
+ borderRadius: number;
34
+ childNodes: string[];
35
+ className: string;
36
+ clickCallback: Function;
37
+ constructor(id: string, positionX: number, positionY: number, width: number, height: number, bgColor: string, data: object, canvasId: string, borderColor: string, image: boolean, src: string, textColor: string, borderRadius: number, childNodes: string[], className: string, clickCallback: Function);
38
+ /**
39
+ * 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.
40
+ * @param {number} movementX The mouse movement value on the X-axis
41
+ * @param {number} movementY The mouse movement value on the Y-axis
42
+ */
43
+ setPositionFromMovement(movementX: number, movementY: number): void;
44
+ /**
45
+ * 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.
46
+ *
47
+ * @param movementX The mouse movement value on the X-axis
48
+ * @param movementY The mouse movement value on the Y-axis
49
+ */
50
+ setSizeFromMovement(movementX: number, movementY: number): void;
51
+ /**
52
+ * delete will handle the deletion of a Node (also waterfall down to delete anchors and edges)
53
+ */
54
+ delete(): void;
55
+ /**
56
+ * 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.
57
+ *
58
+ * @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.
59
+ */
60
+ setExportableData(): {
61
+ id: string;
62
+ width: number;
63
+ height: number;
64
+ position: {
65
+ x: number;
66
+ y: number;
67
+ };
68
+ data: object;
69
+ bgColor: string;
70
+ borderColor: string;
71
+ textColor: string;
72
+ borderRadius: number;
73
+ image: boolean;
74
+ src: string;
75
+ childNodes: string[];
76
+ customClassName: string;
77
+ };
78
+ }
@@ -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 {};