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.
- package/assets/app.css +12 -1
- package/components/AppConnect.svelte +4 -3
- package/components/DisplayResult.svelte +28 -10
- package/components/Dropdown.svelte +14 -4
- package/components/FieldHeader.svelte +12 -8
- package/components/FlowBuilder.svelte +107 -39
- package/components/FlowBuilder.svelte.d.ts +5 -0
- package/components/FlowGraphViewer.svelte +6 -5
- package/components/FlowJobResult.svelte +3 -3
- package/components/FlowPreviewContent.svelte +3 -8
- package/components/FlowStatusViewer.svelte +21 -8
- package/components/FolderUsageInfo.svelte +16 -6
- package/components/FolderUsageInfo.svelte.d.ts +2 -0
- package/components/GroupEditor.svelte +8 -0
- package/components/InputTransformForm.svelte +13 -20
- package/components/InputTransformSchemaForm.svelte +103 -0
- package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
- package/components/LogViewer.svelte +1 -1
- package/components/ModulePreview.svelte +3 -2
- package/components/Multiselect.svelte +1 -1
- package/components/PageHeader.svelte +1 -1
- package/components/Path.svelte +35 -12
- package/components/Popover.svelte +2 -13
- package/components/ResourcePicker.svelte +33 -14
- package/components/RunChart.svelte +24 -5
- package/components/RunForm.svelte +5 -6
- package/components/RunForm.svelte.d.ts +1 -0
- package/components/SchemaForm.svelte +59 -57
- package/components/SchemaForm.svelte.d.ts +0 -5
- package/components/ScriptBuilder.svelte +151 -135
- package/components/ScriptPicker.svelte +3 -0
- package/components/SettingSection.svelte +44 -0
- package/components/SettingSection.svelte.d.ts +21 -0
- package/components/SimpleEditor.svelte +4 -1
- package/components/SimpleEditor.svelte.d.ts +2 -0
- package/components/Slider.svelte +6 -1
- package/components/Slider.svelte.d.ts +1 -0
- package/components/TemplateEditor.svelte +1 -1
- package/components/TestJobLoader.svelte +2 -2
- package/components/Toggle.svelte +17 -4
- package/components/Toggle.svelte.d.ts +2 -0
- package/components/Tooltip.svelte +4 -2
- package/components/UserSettings.svelte +2 -0
- package/components/WhitelistIp.svelte +1 -3
- package/components/apps/components/buttons/AppButton.svelte +45 -23
- package/components/apps/components/buttons/AppButton.svelte.d.ts +2 -0
- package/components/apps/components/buttons/AppForm.svelte +18 -12
- package/components/apps/components/buttons/AppForm.svelte.d.ts +3 -0
- package/components/apps/components/buttons/AppFormButton.svelte +14 -10
- package/components/apps/components/buttons/AppFormButton.svelte.d.ts +3 -0
- package/components/apps/components/display/AppBarChart.svelte +15 -7
- package/components/apps/components/display/AppBarChart.svelte.d.ts +3 -0
- package/components/apps/components/display/AppDisplayComponent.svelte +17 -12
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +1 -0
- package/components/apps/components/display/AppHtml.svelte +18 -4
- package/components/apps/components/display/AppHtml.svelte.d.ts +3 -0
- package/components/apps/components/display/AppIcon.svelte +20 -8
- package/components/apps/components/display/AppIcon.svelte.d.ts +3 -0
- package/components/apps/components/display/AppImage.svelte +17 -10
- package/components/apps/components/display/AppImage.svelte.d.ts +3 -0
- package/components/apps/components/display/AppMap.svelte +214 -0
- package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
- package/components/apps/components/display/AppPdf.svelte +304 -0
- package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
- package/components/apps/components/display/AppPieChart.svelte +15 -7
- package/components/apps/components/display/AppPieChart.svelte.d.ts +3 -0
- package/components/apps/components/display/AppScatterChart.svelte +12 -4
- package/components/apps/components/display/AppScatterChart.svelte.d.ts +3 -0
- package/components/apps/components/display/AppText.svelte +38 -32
- package/components/apps/components/display/AppText.svelte.d.ts +1 -0
- package/components/apps/components/display/AppTimeseries.svelte +12 -4
- package/components/apps/components/display/AppTimeseries.svelte.d.ts +3 -0
- package/components/apps/components/display/PlotlyHtml.svelte +8 -14
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +1 -1
- package/components/apps/components/display/VegaLiteHtml.svelte +3 -8
- package/components/apps/components/display/VegaLiteHtml.svelte.d.ts +1 -0
- package/components/apps/components/display/index.d.ts +3 -0
- package/components/apps/components/display/index.js +3 -0
- package/components/apps/components/display/table/AppAggridTable.svelte +20 -8
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/components/apps/components/display/table/AppTable.svelte +69 -21
- package/components/apps/components/display/table/AppTable.svelte.d.ts +3 -1
- package/components/apps/components/display/table/AppTableFooter.svelte +8 -1
- package/components/apps/components/display/table/AppTableFooter.svelte.d.ts +2 -0
- package/components/apps/components/helpers/AlignWrapper.svelte +13 -7
- package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +3 -1
- package/components/apps/components/helpers/HiddenComponent.svelte +5 -1
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +1 -0
- package/components/apps/components/helpers/InputValue.svelte +58 -52
- package/components/apps/components/helpers/InputValue.svelte.d.ts +4 -3
- package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
- package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
- package/components/apps/components/helpers/RefreshButton.svelte +3 -4
- package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
- package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
- package/components/apps/components/helpers/RunnableComponent.svelte +126 -91
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +11 -5
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +4 -1
- package/components/apps/components/helpers/eval.d.ts +5 -0
- package/components/apps/components/helpers/eval.js +57 -0
- package/components/apps/components/inputs/AppCheckbox.svelte +8 -2
- package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppDateInput.svelte +25 -18
- package/components/apps/components/inputs/AppDateInput.svelte.d.ts +6 -1
- package/components/apps/components/inputs/AppFileInput.svelte +22 -14
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
- package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
- package/components/apps/components/inputs/AppNumberInput.svelte +20 -16
- package/components/apps/components/inputs/AppNumberInput.svelte.d.ts +5 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +55 -14
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppSelect.svelte +58 -21
- package/components/apps/components/inputs/AppSelect.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppSliderInputs.svelte +41 -9
- package/components/apps/components/inputs/AppSliderInputs.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppTextInput.svelte +53 -19
- package/components/apps/components/inputs/AppTextInput.svelte.d.ts +6 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +13 -3
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +3 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +1 -0
- package/components/apps/components/layout/AppContainer.svelte +20 -17
- package/components/apps/components/layout/AppContainer.svelte.d.ts +3 -0
- package/components/apps/components/layout/AppDivider.svelte +24 -4
- package/components/apps/components/layout/AppDivider.svelte.d.ts +3 -1
- package/components/apps/components/layout/AppDrawer.svelte +86 -0
- package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
- package/components/apps/components/layout/AppSplitpanes.svelte +83 -0
- package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
- package/components/apps/components/layout/AppTabs.svelte +112 -40
- package/components/apps/components/layout/AppTabs.svelte.d.ts +4 -0
- package/components/apps/components/layout/index.d.ts +2 -0
- package/components/apps/components/layout/index.js +2 -0
- package/components/apps/editor/AppEditor.svelte +201 -132
- package/components/apps/editor/AppEditor.svelte.d.ts +3 -1
- package/components/apps/editor/AppEditorHeader.svelte +149 -66
- package/components/apps/editor/AppInputs.svelte +3 -3
- package/components/apps/editor/AppPreview.svelte +21 -7
- package/components/apps/editor/ComponentHeader.svelte +17 -4
- package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -0
- package/components/apps/editor/GridEditor.svelte +86 -70
- package/components/apps/editor/GridPanel.svelte +29 -0
- package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
- package/components/apps/editor/RecomputeAllComponents.svelte +14 -6
- package/components/apps/editor/SettingsPanel.svelte +30 -27
- package/components/apps/editor/SubGridEditor.svelte +82 -50
- package/components/apps/editor/SubGridEditor.svelte.d.ts +8 -4
- package/components/apps/editor/appUtils.d.ts +22 -3
- package/components/apps/editor/appUtils.js +221 -47
- package/components/apps/editor/component/Component.svelte +281 -61
- package/components/apps/editor/component/Component.svelte.d.ts +3 -1
- package/components/apps/editor/component/ComponentNavigation.svelte +170 -0
- package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
- package/components/apps/editor/component/components.d.ts +15 -3
- package/components/apps/editor/component/components.js +409 -54
- package/components/apps/editor/component/default-codes.js +6 -6
- package/components/apps/editor/component/sets.js +11 -3
- package/components/apps/editor/componentsPanel/ComponentList.svelte +72 -29
- package/components/apps/editor/componentsPanel/CssProperty.svelte +59 -23
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +2 -1
- package/components/apps/editor/componentsPanel/CssSettings.svelte +56 -9
- package/components/apps/editor/componentsPanel/ListItem.svelte +23 -12
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
- package/components/apps/editor/componentsPanel/componentStaticValues.js +15 -2
- package/components/apps/editor/contextPanel/ComponentOutput.svelte +77 -0
- package/components/apps/editor/contextPanel/ComponentOutput.svelte.d.ts +21 -0
- package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +10 -6
- package/components/apps/editor/contextPanel/ContextPanel.svelte +81 -91
- package/components/apps/editor/contextPanel/SubGridOutput.svelte +71 -0
- package/components/apps/editor/contextPanel/SubGridOutput.svelte.d.ts +19 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte +38 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptOutput.svelte.d.ts +19 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte +10 -0
- package/components/apps/editor/contextPanel/components/BackgroundScriptsOutput.svelte.d.ts +16 -0
- package/components/apps/editor/contextPanel/components/MinMaxButton.svelte +25 -0
- package/components/apps/editor/contextPanel/components/MinMaxButton.svelte.d.ts +16 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte +78 -0
- package/components/apps/editor/contextPanel/components/OutputHeader.svelte.d.ts +26 -0
- package/components/apps/editor/contextPanel/components/TableActionOutput.svelte +19 -0
- package/components/apps/editor/contextPanel/components/TableActionOutput.svelte.d.ts +18 -0
- package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte +14 -0
- package/components/apps/editor/contextPanel/components/TableActionsOutput.svelte.d.ts +18 -0
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +55 -13
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +126 -62
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +11 -5
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +26 -17
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +95 -85
- package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -9
- package/components/apps/editor/inlineScriptsPanel/utils.js +19 -8
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +10 -9
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +21 -12
- package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +119 -79
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
- package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
- package/components/apps/editor/settingsPanel/GridTab.svelte +9 -17
- package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/Recompute.svelte +2 -1
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +7 -1
- package/components/apps/editor/settingsPanel/TableActions.svelte +30 -2
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
- package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
- package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +2 -8
- package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +77 -41
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +3 -3
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +4 -1
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +54 -6
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +7 -9
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
- package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +1 -1
- package/components/apps/inputType.d.ts +6 -5
- package/components/apps/rx.d.ts +6 -4
- package/components/apps/rx.js +36 -15
- package/components/apps/store.d.ts +6 -1
- package/components/apps/svelte-grid/Grid.svelte +171 -0
- package/components/apps/svelte-grid/Grid.svelte.d.ts +47 -0
- package/components/apps/svelte-grid/LICENSE +23 -0
- package/components/apps/svelte-grid/MoveResize.svelte +328 -0
- package/components/apps/svelte-grid/MoveResize.svelte.d.ts +46 -0
- package/components/apps/svelte-grid/types.d.ts +25 -0
- package/components/apps/svelte-grid/utils/container.d.ts +1 -0
- package/components/apps/svelte-grid/utils/container.js +4 -0
- package/components/apps/svelte-grid/utils/helper.d.ts +14 -0
- package/components/apps/svelte-grid/utils/helper.js +36 -0
- package/components/apps/svelte-grid/utils/item.d.ts +14 -0
- package/components/apps/svelte-grid/utils/item.js +192 -0
- package/components/apps/svelte-grid/utils/matrix.d.ts +6 -0
- package/components/apps/svelte-grid/utils/matrix.js +53 -0
- package/components/apps/svelte-grid/utils/other.d.ts +3 -0
- package/components/apps/svelte-grid/utils/other.js +30 -0
- package/components/apps/types.d.ts +21 -8
- package/components/apps/utils.d.ts +3 -3
- package/components/apps/utils.js +34 -56
- package/components/common/CloseButton.svelte +18 -0
- package/components/common/CloseButton.svelte.d.ts +27 -0
- package/components/common/badge/Badge.svelte +6 -1
- package/components/common/badge/Badge.svelte.d.ts +1 -0
- package/components/common/button/ButtonPopup.svelte +2 -0
- package/components/common/button/ButtonPopup.svelte.d.ts +1 -0
- package/components/common/button/UndoRedo.svelte +32 -0
- package/components/common/button/UndoRedo.svelte.d.ts +20 -0
- package/components/common/drawer/Drawer.svelte +10 -4
- package/components/common/drawer/Drawer.svelte.d.ts +3 -1
- package/components/common/drawer/DrawerContent.svelte +2 -7
- package/components/common/fileInput/FileInput.svelte +47 -21
- package/components/common/fileInput/FileInput.svelte.d.ts +3 -1
- package/components/common/fileInput/model.d.ts +1 -0
- package/components/common/fileInput/model.js +1 -0
- package/components/common/index.d.ts +1 -0
- package/components/common/index.js +1 -0
- package/components/common/languageIcons/JavaScript.svelte +11 -0
- package/components/common/languageIcons/JavaScript.svelte.d.ts +25 -0
- package/components/common/languageIcons/LanguageIcon.svelte +3 -1
- package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
- package/components/common/menu/Menu.svelte +3 -2
- package/components/common/menu/Menu.svelte.d.ts +2 -1
- package/components/common/modal/Modal.svelte +9 -4
- package/components/common/modal/Modal.svelte.d.ts +2 -0
- package/components/common/popup/Popup.svelte +2 -1
- package/components/common/popup/Popup.svelte.d.ts +9 -0
- package/components/common/table/AppRow.svelte +14 -8
- package/components/common/table/AppRow.svelte.d.ts +1 -0
- package/components/common/table/FlowRow.svelte +22 -12
- package/components/common/table/FlowRow.svelte.d.ts +1 -0
- package/components/common/table/ScriptRow.svelte +43 -14
- package/components/common/table/ScriptRow.svelte.d.ts +1 -0
- package/components/common/tabs/Tab.svelte +13 -5
- package/components/common/tabs/Tab.svelte.d.ts +6 -1
- package/components/common/tabs/Tabs.svelte +8 -6
- package/components/common/tabs/Tabs.svelte.d.ts +3 -1
- package/components/flows/FlowEditor.svelte +6 -4
- package/components/flows/common/FlowCardHeader.svelte +4 -1
- package/components/flows/content/BranchPredicateEditor.svelte +3 -4
- package/components/flows/content/CapturePayload.svelte +1 -2
- package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
- package/components/flows/content/FlowConstants.svelte +7 -13
- package/components/flows/content/FlowEditorPanel.svelte +4 -3
- package/components/flows/content/FlowFailureModule.svelte +2 -1
- package/components/flows/content/FlowInput.svelte +4 -2
- package/components/flows/content/FlowLoop.svelte +3 -4
- package/components/flows/content/FlowModuleComponent.svelte +23 -11
- package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
- package/components/flows/content/FlowModuleHeader.svelte +26 -3
- package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
- package/components/flows/content/FlowModuleSleep.svelte +2 -2
- package/components/flows/content/FlowModuleWrapper.svelte +2 -8
- package/components/flows/content/FlowSchedules.svelte +1 -2
- package/components/flows/content/FlowSettings.svelte +17 -37
- package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
- package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
- package/components/flows/flowState.d.ts +2 -3
- package/components/flows/flowState.js +1 -4
- package/components/flows/flowStateUtils.d.ts +7 -6
- package/components/flows/flowStateUtils.js +5 -9
- package/components/flows/flowStore.d.ts +5 -4
- package/components/flows/flowStore.js +5 -17
- package/components/flows/header/FlowImportExportMenu.svelte +2 -1
- package/components/flows/map/FlowConstantsItem.svelte +2 -2
- package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
- package/components/flows/map/FlowInputsItem.svelte +2 -3
- package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
- package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
- package/components/flows/map/FlowModuleSchemaMap.svelte +164 -138
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
- package/components/flows/map/FlowSettingsItem.svelte +5 -4
- package/components/flows/map/InsertModuleButton.svelte +12 -10
- package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
- package/components/flows/map/MapItem.svelte +176 -103
- package/components/flows/map/MapItem.svelte.d.ts +20 -2
- package/components/flows/map/VirtualItem.svelte +129 -0
- package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
- package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
- package/components/flows/previousResults.d.ts +1 -1
- package/components/flows/previousResults.js +32 -17
- package/components/flows/types.d.ts +13 -1
- package/components/flows/utils.js +1 -1
- package/components/graph/FlowGraph.svelte +227 -167
- package/components/graph/FlowGraph.svelte.d.ts +14 -1
- package/components/graph/model.d.ts +6 -36
- package/components/graph/model.js +1 -1
- package/components/graph/svelvet/LICENSE +21 -0
- package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
- package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
- package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
- package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
- package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
- package/components/graph/svelvet/collapsible/types/types.js +1 -0
- package/components/graph/svelvet/container/README.md +7 -0
- package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
- package/components/graph/svelvet/container/controllers/middleware.js +101 -0
- package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
- package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
- package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
- package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
- package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
- package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
- package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
- package/components/graph/svelvet/d3/controllers/d3.js +59 -0
- package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
- package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
- package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
- package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
- package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
- package/components/graph/svelvet/edges/controllers/util.js +72 -0
- package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
- package/components/graph/svelvet/edges/models/Anchor.js +122 -0
- package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
- package/components/graph/svelvet/edges/models/Edge.js +107 -0
- package/components/graph/svelvet/edges/types/types.d.ts +18 -0
- package/components/graph/svelvet/edges/types/types.js +1 -0
- package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
- package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
- package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
- package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
- package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
- package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
- package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
- package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
- package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
- package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
- package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
- package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
- package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
- package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
- package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
- package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
- package/components/graph/svelvet/nodes/controllers/util.js +13 -0
- package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
- package/components/graph/svelvet/nodes/models/Node.js +195 -0
- package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
- package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
- package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
- package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
- package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
- package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
- package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
- package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
- package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
- package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
- package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
- package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
- package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
- package/components/graph/svelvet/store/controllers/userApi.js +18 -0
- package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
- package/components/graph/svelvet/store/controllers/util.js +180 -0
- package/components/graph/svelvet/store/models/store.d.ts +12 -0
- package/components/graph/svelvet/store/models/store.js +9 -0
- package/components/graph/svelvet/store/types/types.d.ts +134 -0
- package/components/graph/svelvet/store/types/types.js +1 -0
- package/components/graph/svelvet/types/README.md +3 -0
- package/components/graph/svelvet/types/index.d.ts +2 -0
- package/components/graph/svelvet/types/index.js +1 -0
- package/components/graph/svelvet/types/types.d.ts +49 -0
- package/components/graph/svelvet/types/types.js +18 -0
- package/components/graph/util.js +2 -2
- package/components/home/ItemsList.svelte +53 -5
- package/components/home/ItemsList.svelte.d.ts +1 -0
- package/components/home/ListFilters.svelte +7 -2
- package/components/jobs/JobDetail.svelte +12 -1
- package/components/propertyPicker/ObjectViewer.svelte +6 -4
- package/components/sidebar/SidebarContent.svelte +2 -2
- package/consts.d.ts +1 -0
- package/consts.js +1 -0
- package/defaults.d.ts +4 -0
- package/defaults.js +4 -0
- package/history.d.ts +9 -0
- package/history.js +63 -0
- package/package.json +87 -9
- package/script_helpers.d.ts +1 -1
- package/script_helpers.js +1 -0
- package/scripts.d.ts +1 -1
- package/scripts.js +8 -1
- package/utils.d.ts +9 -4
- package/utils.js +43 -8
- package/components/apps/editor/TablePanel.svelte +0 -19
- package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +0 -85
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +0 -18
- package/components/flows/map/FlowBranchAllMap.svelte +0 -100
- package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
- package/components/flows/map/FlowBranchOneMap.svelte +0 -124
- 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 {};
|