windmill-components 1.60.4 → 1.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/app.css +15 -1
- package/common.d.ts +5 -1
- package/components/ApiConnectForm.svelte +66 -5
- package/components/AppConnect.svelte +26 -10
- package/components/ArgInput.svelte +1 -1
- package/components/CliHelpBox.svelte +49 -0
- package/components/CliHelpBox.svelte.d.ts +14 -0
- package/components/DisplayResult.svelte +78 -10
- package/components/DisplayResult.svelte.d.ts +1 -0
- package/components/Editor.svelte +17 -7
- package/components/EditorBar.svelte +129 -111
- package/components/FieldHeader.svelte +12 -8
- package/components/FlowBuilder.svelte +107 -39
- package/components/FlowBuilder.svelte.d.ts +5 -0
- package/components/FlowGraphViewer.svelte +5 -4
- package/components/FlowJobResult.svelte +13 -5
- package/components/FlowJobResult.svelte.d.ts +1 -0
- package/components/FlowMetadata.svelte +24 -8
- package/components/FlowPreviewContent.svelte +5 -11
- package/components/FlowStatusViewer.svelte +62 -17
- package/components/FolderEditor.svelte +3 -2
- package/components/GroupEditor.svelte +8 -0
- package/components/HighlightCode.svelte +7 -1
- package/components/InlineCodeCopy.svelte +11 -0
- package/components/InlineCodeCopy.svelte.d.ts +16 -0
- package/components/InputTransformForm.svelte +22 -25
- package/components/InputTransformSchemaForm.svelte +103 -0
- package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
- package/components/LogViewer.svelte +7 -1
- package/components/LogViewer.svelte.d.ts +1 -0
- package/components/ModulePreview.svelte +13 -3
- package/components/MoveDrawer.svelte +1 -1
- package/components/Multiselect.svelte +1 -1
- package/components/Multiselect.svelte.d.ts +2 -2
- package/components/ObjectResourceInput.svelte +6 -1
- package/components/Path.svelte +29 -16
- package/components/Popover.svelte +10 -15
- package/components/Popover.svelte.d.ts +1 -0
- package/components/Range.svelte.d.ts +2 -2
- package/components/ResourceEditor.svelte +39 -16
- package/components/ResourcePicker.svelte +33 -15
- package/components/RunChart.svelte +24 -5
- package/components/RunForm.svelte +26 -3
- package/components/RunForm.svelte.d.ts +2 -0
- package/components/ScheduleEditor.svelte +1 -1
- package/components/SchemaEditor.svelte +2 -2
- package/components/SchemaForm.svelte +72 -60
- package/components/SchemaForm.svelte.d.ts +1 -5
- package/components/ScriptBuilder.svelte +69 -30
- package/components/ScriptBuilder.svelte.d.ts +1 -0
- package/components/ScriptEditor.svelte +1 -0
- package/components/ScriptPicker.svelte +3 -0
- package/components/SharedBadge.svelte +5 -5
- package/components/SimpleEditor.svelte +4 -1
- package/components/SimpleEditor.svelte.d.ts +2 -0
- package/components/Slider.svelte +19 -0
- package/components/Slider.svelte.d.ts +20 -0
- package/components/StringTypeNarrowing.svelte +0 -1
- package/components/SuperadminSettings.svelte +11 -3
- package/components/SuperadminSettings.svelte.d.ts +2 -0
- package/components/TemplateEditor.svelte +1 -1
- package/components/TemplateEditor.svelte.d.ts +204 -0
- package/components/TestJobLoader.svelte +5 -5
- package/components/Toggle.svelte +18 -6
- package/components/Toggle.svelte.d.ts +2 -0
- package/components/Tooltip.svelte +1 -1
- package/components/UserSettings.svelte +13 -3
- package/components/UserSettings.svelte.d.ts +2 -0
- package/components/VariableEditor.svelte +1 -1
- package/components/WhitelistIp.svelte +23 -0
- package/components/WhitelistIp.svelte.d.ts +14 -0
- package/components/apps/components/buttons/AppButton.svelte +79 -17
- package/components/apps/components/buttons/AppButton.svelte.d.ts +4 -0
- package/components/apps/components/{form → buttons}/AppForm.svelte +19 -7
- package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +3 -0
- package/components/apps/components/buttons/AppFormButton.svelte +145 -0
- package/components/apps/components/buttons/AppFormButton.svelte.d.ts +28 -0
- package/components/apps/components/buttons/index.d.ts +3 -0
- package/components/apps/components/buttons/index.js +3 -0
- package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +27 -8
- package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +4 -0
- package/components/apps/components/display/AppDisplayComponent.svelte +36 -0
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +24 -0
- package/components/apps/components/display/AppHtml.svelte +46 -0
- package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +4 -1
- package/components/apps/components/display/AppIcon.svelte +47 -0
- package/components/apps/components/display/AppIcon.svelte.d.ts +25 -0
- package/components/apps/components/display/AppImage.svelte +34 -0
- package/components/apps/components/display/AppImage.svelte.d.ts +25 -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/{dataDisplay → display}/AppPieChart.svelte +16 -7
- package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +4 -0
- package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +13 -4
- package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +4 -0
- package/components/apps/components/{dataDisplay → display}/AppText.svelte +42 -34
- package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +4 -0
- package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +14 -5
- package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +4 -0
- package/components/apps/components/display/PlotlyHtml.svelte +32 -0
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
- package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte +4 -10
- package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +2 -0
- package/components/apps/components/display/index.d.ts +15 -0
- package/components/apps/components/display/index.js +15 -0
- package/components/apps/components/display/table/AppAggridTable.svelte +92 -0
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +25 -0
- package/components/apps/components/{table → display/table}/AppTable.svelte +85 -29
- package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +6 -2
- package/components/apps/components/{table → display/table}/AppTableFooter.svelte +9 -2
- package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +2 -0
- package/components/apps/components/helpers/AlignWrapper.svelte +29 -23
- package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +6 -2
- package/components/apps/components/helpers/HiddenComponent.svelte +23 -0
- package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
- package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
- package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
- package/components/apps/components/helpers/InputValue.svelte +39 -18
- package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
- 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 +1 -1
- 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 +99 -102
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte +16 -7
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -2
- package/components/apps/components/helpers/index.d.ts +10 -0
- package/components/apps/components/helpers/index.js +10 -0
- package/components/apps/components/icon.d.ts +1 -0
- package/components/apps/components/icon.js +18 -0
- package/components/apps/components/index.d.ts +5 -0
- package/components/apps/components/index.js +5 -0
- package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +12 -4
- package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppDateInput.svelte +47 -0
- package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +6 -1
- package/components/apps/components/inputs/AppFileInput.svelte +42 -0
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +23 -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 +52 -0
- package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +5 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +85 -0
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +26 -0
- package/components/apps/components/inputs/AppSelect.svelte +127 -0
- package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +5 -0
- package/components/apps/components/inputs/AppSliderInputs.svelte +73 -0
- package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +3 -0
- package/components/apps/components/inputs/AppTextInput.svelte +71 -0
- package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +6 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +59 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +24 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte +183 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +33 -0
- package/components/apps/components/inputs/index.d.ts +9 -0
- package/components/apps/components/inputs/index.js +9 -0
- package/components/apps/components/layout/AppContainer.svelte +40 -0
- package/components/apps/components/layout/AppContainer.svelte.d.ts +24 -0
- package/components/apps/components/layout/AppDivider.svelte +40 -0
- package/components/apps/components/layout/AppDivider.svelte.d.ts +24 -0
- package/components/apps/components/layout/AppDrawer.svelte +89 -0
- package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
- package/components/apps/components/layout/AppSplitpanes.svelte +88 -0
- package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
- package/components/apps/components/layout/AppTabs.svelte +99 -0
- package/components/apps/components/layout/AppTabs.svelte.d.ts +27 -0
- package/components/apps/components/layout/index.d.ts +5 -0
- package/components/apps/components/layout/index.js +5 -0
- package/components/apps/editor/AppComponentInput.svelte +33 -0
- package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
- package/components/apps/editor/AppComponentInputs.svelte +13 -0
- package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
- package/components/apps/editor/AppEditor.svelte +134 -35
- package/components/apps/editor/AppEditor.svelte.d.ts +4 -1
- package/components/apps/editor/AppEditorHeader.svelte +178 -47
- package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
- package/components/apps/editor/AppInputs.svelte +60 -0
- package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
- package/components/apps/editor/AppPreview.svelte +30 -12
- package/components/apps/editor/ComponentHeader.svelte +52 -3
- package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -1
- package/components/apps/editor/GridEditor.svelte +134 -77
- package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
- package/components/apps/editor/GridPanel.svelte +29 -0
- package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
- package/components/apps/editor/RecomputeAllComponents.svelte +8 -6
- package/components/apps/editor/SettingsPanel.svelte +26 -8
- package/components/apps/editor/SubGridEditor.svelte +139 -0
- package/components/apps/editor/SubGridEditor.svelte.d.ts +29 -0
- package/components/apps/editor/appUtils.d.ts +19 -0
- package/components/apps/editor/appUtils.js +241 -0
- package/components/apps/editor/component/Component.svelte +434 -0
- package/components/apps/editor/{ComponentEditor.svelte.d.ts → component/Component.svelte.d.ts} +7 -5
- package/components/apps/editor/component/ComponentNavigation.svelte +125 -0
- package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
- package/components/apps/editor/component/README.md +15 -0
- package/components/apps/editor/component/components.d.ts +77 -0
- package/components/apps/editor/component/components.js +1476 -0
- package/components/apps/editor/component/default-codes.d.ts +3 -0
- package/components/apps/editor/component/default-codes.js +322 -0
- package/components/apps/editor/component/index.d.ts +4 -0
- package/components/apps/editor/component/index.js +4 -0
- package/components/apps/editor/component/sets.d.ts +2 -0
- package/components/apps/editor/component/sets.js +55 -0
- package/components/apps/editor/componentsPanel/ComponentList.svelte +75 -108
- package/components/apps/editor/componentsPanel/CssProperty.svelte +67 -0
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +21 -0
- package/components/apps/editor/componentsPanel/CssSettings.svelte +188 -0
- package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte +39 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +5 -1
- package/components/apps/editor/componentsPanel/componentStaticValues.js +16 -1
- package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
- package/components/apps/editor/contextPanel/ContextPanel.svelte +115 -67
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +109 -10
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +88 -41
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +32 -6
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +75 -8
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +128 -72
- package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -5
- package/components/apps/editor/inlineScriptsPanel/utils.js +48 -7
- package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +14 -10
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +68 -1
- package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +130 -61
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +6 -3
- 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 +73 -0
- package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +20 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +5 -1
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +93 -78
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +92 -0
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
- package/components/apps/editor/settingsPanel/Recompute.svelte +5 -2
- package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +1 -1
- package/components/apps/editor/settingsPanel/TableActions.svelte +45 -7
- package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte +6 -4
- 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 +1 -1
- package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -1
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +107 -0
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +21 -0
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
- package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -1
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +59 -6
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +3 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +21 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
- 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 +4 -21
- package/components/apps/gridUtils.d.ts +3 -1
- package/components/apps/gridUtils.js +5 -3
- package/components/apps/inputType.d.ts +34 -6
- package/components/apps/rx.js +2 -1
- package/components/apps/store.d.ts +6 -1
- package/components/apps/types.d.ts +47 -42
- package/components/apps/types.js +1 -1
- package/components/apps/utils.d.ts +6 -5
- package/components/apps/utils.js +63 -95
- package/components/common/button/Button.svelte +12 -5
- package/components/common/button/Button.svelte.d.ts +3 -1
- package/components/common/button/ButtonPopup.svelte +2 -0
- package/components/common/button/ButtonPopup.svelte.d.ts +2 -1
- package/components/common/button/UndoRedo.svelte +32 -0
- package/components/common/button/UndoRedo.svelte.d.ts +20 -0
- package/components/common/button/model.d.ts +2 -2
- package/components/common/button/model.js +21 -6
- package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
- package/components/common/drawer/Drawer.svelte +13 -5
- package/components/common/drawer/Drawer.svelte.d.ts +3 -1
- package/components/common/drawer/DrawerContent.svelte +0 -1
- package/components/common/fileInput/FileInput.svelte +138 -0
- package/components/common/fileInput/FileInput.svelte.d.ts +29 -0
- package/components/common/fileInput/model.d.ts +1 -0
- package/components/common/fileInput/model.js +1 -0
- package/components/common/index.d.ts +2 -0
- package/components/common/index.js +2 -0
- package/components/common/kbd/Kbd.svelte.d.ts +2 -2
- package/components/common/menu/Menu.svelte +3 -2
- package/components/common/menu/Menu.svelte.d.ts +2 -1
- package/components/common/modal/Modal.svelte +79 -0
- package/components/common/modal/Modal.svelte.d.ts +24 -0
- package/components/common/popup/Popup.svelte +34 -17
- package/components/common/popup/Popup.svelte.d.ts +11 -4
- package/components/common/table/AppRow.svelte +13 -4
- package/components/common/table/AppRow.svelte.d.ts +1 -0
- package/components/common/table/FlowRow.svelte +40 -8
- package/components/common/table/FlowRow.svelte.d.ts +1 -0
- package/components/common/table/LanguageBadge.svelte +10 -4
- package/components/common/table/Row.svelte +1 -1
- package/components/common/table/ScriptRow.svelte +44 -12
- package/components/common/table/ScriptRow.svelte.d.ts +1 -0
- package/components/common/tabs/Tab.svelte +12 -5
- package/components/common/tabs/Tab.svelte.d.ts +4 -1
- package/components/common/tabs/Tabs.svelte +12 -8
- package/components/common/tabs/Tabs.svelte.d.ts +6 -2
- package/components/flows/CreateActionsFlow.svelte +2 -3
- package/components/flows/FlowEditor.svelte +6 -4
- package/components/flows/common/FlowCardHeader.svelte +4 -1
- package/components/flows/content/BranchPredicateEditor.svelte +13 -12
- 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/FlowInputs.svelte +109 -99
- package/components/flows/content/FlowLoop.svelte +4 -5
- package/components/flows/content/FlowModuleComponent.svelte +26 -13
- 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/FlowRetries.svelte +8 -6
- package/components/flows/content/FlowSchedules.svelte +1 -2
- package/components/flows/content/FlowSettings.svelte +77 -51
- 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 -2
- package/components/flows/flowState.js +1 -3
- package/components/flows/flowStateUtils.d.ts +7 -6
- package/components/flows/flowStateUtils.js +9 -11
- package/components/flows/flowStore.d.ts +5 -3
- package/components/flows/flowStore.js +6 -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 +163 -130
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
- package/components/flows/map/FlowSettingsItem.svelte +5 -4
- package/components/flows/map/InsertModuleButton.svelte +34 -18
- package/components/flows/map/InsertModuleButton.svelte.d.ts +2 -0
- package/components/flows/map/MapItem.svelte +176 -101
- 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/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 +17 -11
- package/components/graph/FlowGraph.svelte +247 -164
- package/components/graph/FlowGraph.svelte.d.ts +15 -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/README.md +3 -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/d3/controllers/d3Old.d.ts +1 -0
- package/components/graph/svelvet/d3/controllers/d3Old.js +43 -0
- package/components/graph/svelvet/docs/CHANGELOG.md +145 -0
- package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +44 -0
- package/components/graph/svelvet/docs/DOCUMENTATION.md +5 -0
- package/components/graph/svelvet/docs/README.md +34 -0
- package/components/graph/svelvet/docs/TODO.md +14 -0
- package/components/graph/svelvet/docs/Tutorials.md +25 -0
- package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
- package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
- package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
- package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
- package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
- package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
- package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
- package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
- package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
- package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
- package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
- package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
- package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
- package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
- package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
- package/components/graph/svelvet/docs/images/node-create-before.png +0 -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/icons/SquareIcon.svelte +9 -0
- package/components/icons/SquareIcon.svelte.d.ts +17 -0
- package/components/icons/index.d.ts +2 -0
- package/components/icons/index.js +2 -0
- package/components/jobs/JobDetail.svelte +40 -5
- package/components/propertyPicker/ObjectViewer.svelte +14 -9
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
- package/components/propertyPicker/PropPicker.svelte +8 -1
- package/components/propertyPicker/PropPickerResult.svelte +1 -1
- package/components/random_positive_adjetive.d.ts +1 -0
- package/components/random_positive_adjetive.js +961 -0
- package/components/scriptEditor/LogPanel.svelte +2 -1
- package/components/sidebar/SidebarContent.svelte +1 -1
- package/components/sidebar/UserMenu.svelte +46 -16
- package/components/sidebar/UserMenu.svelte.d.ts +0 -3
- package/components/sidebar/WorkspaceMenu.svelte +3 -1
- package/components/sidebar/settings.d.ts +2 -0
- package/components/sidebar/settings.js +2 -0
- package/consts.d.ts +1 -0
- package/consts.js +1 -0
- package/defaults.d.ts +4 -0
- package/defaults.js +4 -0
- package/gen/core/OpenAPI.js +1 -1
- package/gen/models/CompletedJob.d.ts +1 -0
- package/gen/models/FlowModule.d.ts +0 -1
- package/gen/models/QueuedJob.d.ts +1 -0
- package/gen/models/WorkerPing.d.ts +1 -1
- package/gen/services/FlowService.d.ts +9 -0
- package/gen/services/FlowService.js +15 -0
- package/gen/services/JobService.d.ts +97 -15
- package/gen/services/JobService.js +74 -15
- package/gen/services/ScriptService.d.ts +10 -1
- package/gen/services/ScriptService.js +16 -1
- package/gen/services/VariableService.d.ts +4 -2
- package/gen/services/VariableService.js +8 -2
- package/gen/services/WorkspaceService.d.ts +17 -0
- package/gen/services/WorkspaceService.js +16 -0
- package/history.d.ts +9 -0
- package/history.js +56 -0
- package/infer.js +3 -0
- package/init_scripts/python_failure_module.py +10 -0
- package/init_scripts/python_init_code.py +37 -0
- package/init_scripts/python_init_code_clear.py +5 -0
- package/init_scripts/python_init_code_trigger.py +14 -0
- package/logout.js +2 -1
- package/package.json +661 -522
- package/script_helpers.d.ts +6 -5
- package/script_helpers.js +8 -73
- package/scripts.d.ts +1 -1
- package/scripts.js +8 -1
- package/stores.d.ts +5 -1
- package/stores.js +8 -1
- package/user.d.ts +1 -1
- package/user.js +14 -8
- package/utils.d.ts +10 -5
- package/utils.js +51 -14
- package/components/apps/components/DisplayComponent.svelte +0 -16
- package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
- package/components/apps/components/dataDisplay/AppHtml.svelte +0 -31
- package/components/apps/components/dateInputs/AppDateInput.svelte +0 -34
- package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
- package/components/apps/components/numberInputs/AppSliderInputs.svelte +0 -37
- package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
- package/components/apps/components/textInputs/AppTextInput.svelte +0 -31
- package/components/apps/editor/ComponentEditor.svelte +0 -145
- package/components/apps/editor/TablePanel.svelte +0 -17
- package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
- package/components/apps/editor/componentsPanel/data.d.ts +0 -3
- package/components/apps/editor/componentsPanel/data.js +0 -499
- package/components/apps/editorUtils.d.ts +0 -1
- package/components/apps/editorUtils.js +0 -292
- 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
- /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { writable, derived, get, readable } from 'svelte/store';
|
|
2
|
+
import { stores } from '../../store/models/store';
|
|
3
|
+
import { getAnchors, getEdgeById } from '../../edges/controllers/util';
|
|
4
|
+
import { getResizeNodes } from '../../resizableNodes/controllers/util';
|
|
5
|
+
/** A Node class that implements NodeType interface
|
|
6
|
+
* @param {string} id The id of the Node
|
|
7
|
+
* @param {number} positionX The X-axis position of the Node (left top corner of the Node)
|
|
8
|
+
* @param {number} positionY The Y-axis position of the Node (left top corner of the Node)
|
|
9
|
+
* @param {number} width The width of the Node
|
|
10
|
+
* @param {number} height The height of the Node
|
|
11
|
+
* @param {string} bgColor The background color of the node
|
|
12
|
+
* @param {object} data A data object that user can specify; possible keys are 'label' and 'custom';
|
|
13
|
+
* @param {string} canvasId The canvasId of the Svelvet component that the instantiated Node will be on.
|
|
14
|
+
* @param {string} borderColor The border color of the Node
|
|
15
|
+
* @param {boolean} image A boolean set to true if the Node needs to display an image
|
|
16
|
+
* @param {string} src The src link for the image; image and src are closely tied and a src link is only needed when image sets to true
|
|
17
|
+
* @param {string} textColor The color of the text in the Node
|
|
18
|
+
* @param {string} borderRadius The border radius of the Node
|
|
19
|
+
* @param {string} childNodes An array of node ids that will be grouped as child nodes of this Node. This is for the GroupNodes feature. The current implementation of this feature works one way but not the other (when you drag the parent node, the child nodes will move as a group but when you drag the child node, the parent node would not move along)
|
|
20
|
+
* @param {string} className The custom class name if user specifies. This is for the custom className feature for Node.
|
|
21
|
+
*/
|
|
22
|
+
export class Node {
|
|
23
|
+
id;
|
|
24
|
+
positionX;
|
|
25
|
+
positionY;
|
|
26
|
+
width;
|
|
27
|
+
height;
|
|
28
|
+
bgColor;
|
|
29
|
+
data;
|
|
30
|
+
canvasId;
|
|
31
|
+
borderColor;
|
|
32
|
+
image;
|
|
33
|
+
src;
|
|
34
|
+
textColor;
|
|
35
|
+
borderRadius;
|
|
36
|
+
childNodes;
|
|
37
|
+
className;
|
|
38
|
+
clickCallback;
|
|
39
|
+
constructor(id, positionX, positionY, width, height, bgColor, data, canvasId, borderColor, image, src, textColor, borderRadius, childNodes, className, clickCallback) {
|
|
40
|
+
this.id = id;
|
|
41
|
+
this.positionX = positionX;
|
|
42
|
+
this.positionY = positionY;
|
|
43
|
+
this.width = width;
|
|
44
|
+
this.height = height;
|
|
45
|
+
this.bgColor = bgColor;
|
|
46
|
+
this.data = data;
|
|
47
|
+
this.canvasId = canvasId;
|
|
48
|
+
this.borderColor = borderColor;
|
|
49
|
+
this.image = image;
|
|
50
|
+
this.src = src;
|
|
51
|
+
this.textColor = textColor;
|
|
52
|
+
this.borderRadius = borderRadius;
|
|
53
|
+
this.childNodes = childNodes;
|
|
54
|
+
this.className = className;
|
|
55
|
+
this.clickCallback = clickCallback;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* setPositionFromMovement will update the positionX and positionY of the Node when user drags a Node around on the canvas, reflect the changes in real time in the nodesStore, and also cascade the changes to all relative elements like Anchors and Edges.
|
|
59
|
+
* @param {number} movementX The mouse movement value on the X-axis
|
|
60
|
+
* @param {number} movementY The mouse movement value on the Y-axis
|
|
61
|
+
*/
|
|
62
|
+
setPositionFromMovement(movementX, movementY) {
|
|
63
|
+
const { nodesStore, anchorsStore, resizeNodesStore, potentialAnchorsStore, boundary, lockedOption, } = stores[this.canvasId];
|
|
64
|
+
if (get(lockedOption))
|
|
65
|
+
return; // don't do anything if locked is enabled
|
|
66
|
+
// boundary sets the boundary of the canvas, or else it is false if their is no boundary
|
|
67
|
+
// check if out of bounds, and if so return without doing anything
|
|
68
|
+
const boundaryObj = get(boundary);
|
|
69
|
+
if (typeof boundaryObj === 'object' &&
|
|
70
|
+
(this.positionX + this.width + movementX >= boundaryObj.x ||
|
|
71
|
+
this.positionY + this.height + movementY >= boundaryObj.y ||
|
|
72
|
+
this.positionY + movementY <= 0 ||
|
|
73
|
+
this.positionX + movementX <= 0))
|
|
74
|
+
return;
|
|
75
|
+
//update all necessary data
|
|
76
|
+
this.positionX += movementX;
|
|
77
|
+
this.positionY += movementY;
|
|
78
|
+
// update children
|
|
79
|
+
nodesStore.update((nodes) => {
|
|
80
|
+
if (this.childNodes)
|
|
81
|
+
for (const childNodeId of this.childNodes)
|
|
82
|
+
nodes[childNodeId].setPositionFromMovement(movementX, movementY);
|
|
83
|
+
return { ...nodes };
|
|
84
|
+
});
|
|
85
|
+
//update all the anchors on the node in the anchorsStore
|
|
86
|
+
anchorsStore.update((anchors) => {
|
|
87
|
+
for (const anchorId in anchors) {
|
|
88
|
+
if (anchors[anchorId].nodeId === this.id) {
|
|
89
|
+
anchors[anchorId].setPositionFromNode();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return { ...anchors };
|
|
93
|
+
});
|
|
94
|
+
//update all the anchors on the node in the anchorsStore
|
|
95
|
+
potentialAnchorsStore.update((anchors) => {
|
|
96
|
+
for (const anchorId in anchors) {
|
|
97
|
+
if (anchors[anchorId].nodeId === this.id) {
|
|
98
|
+
anchors[anchorId].callback(); // we don't have to worry about setting partner anchors/etc;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { ...anchors };
|
|
102
|
+
});
|
|
103
|
+
resizeNodesStore.update((resAnchors) => {
|
|
104
|
+
for (const anchorId in resAnchors) {
|
|
105
|
+
if (resAnchors[anchorId].nodeId === this.id) {
|
|
106
|
+
resAnchors[anchorId].setPosition(movementX, movementY);
|
|
107
|
+
//resAnchors[anchorId].setPosition(movementX, movementY);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return { ...resAnchors };
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* setSizeFromMovement will update the width and height of the Node when user resizes the Node by dragging at the right bottom corner (where the ResizedNode attached), reflect the changes in real time in the nodesStore, and also cascade the changes to all relative elements like Anchors and potential Anchors.
|
|
115
|
+
*
|
|
116
|
+
* @param movementX The mouse movement value on the X-axis
|
|
117
|
+
* @param movementY The mouse movement value on the Y-axis
|
|
118
|
+
*/
|
|
119
|
+
setSizeFromMovement(movementX, movementY) {
|
|
120
|
+
this.width += movementX;
|
|
121
|
+
this.height += movementY;
|
|
122
|
+
const { anchorsStore, potentialAnchorsStore } = stores[this.canvasId];
|
|
123
|
+
//Updates the anchor so it follows the node's position as the dimensions change
|
|
124
|
+
anchorsStore.update((anchors) => {
|
|
125
|
+
for (const anchorId in anchors) {
|
|
126
|
+
if (anchors[anchorId].nodeId === this.id) {
|
|
127
|
+
anchors[anchorId].setPositionFromNode();
|
|
128
|
+
//anchors[anchorId].setPosition(movementX, movementY);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return { ...anchors };
|
|
132
|
+
});
|
|
133
|
+
//update all the anchors on the node in the anchorsStore
|
|
134
|
+
potentialAnchorsStore.update((anchors) => {
|
|
135
|
+
for (const anchorId in anchors) {
|
|
136
|
+
if (anchors[anchorId].nodeId === this.id) {
|
|
137
|
+
anchors[anchorId].callback(); // we don't have to worry about setting partner anchors/etc;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return { ...anchors };
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* delete will handle the deletion of a Node (also waterfall down to delete anchors and edges)
|
|
145
|
+
*/
|
|
146
|
+
delete() {
|
|
147
|
+
const store = stores[this.canvasId];
|
|
148
|
+
const { nodesStore, anchorsStore, edgesStore } = stores[this.canvasId];
|
|
149
|
+
nodesStore.update((nodes) => {
|
|
150
|
+
for (const nodeId in nodes) {
|
|
151
|
+
if (nodes[nodeId].id === this.id) {
|
|
152
|
+
delete nodes[nodeId];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return { ...nodes };
|
|
156
|
+
});
|
|
157
|
+
// variable `anchors` is an array of Anchor objects on the node
|
|
158
|
+
const anchors = getAnchors(store, { nodeId: this.id });
|
|
159
|
+
for (let anchorSelf of anchors) {
|
|
160
|
+
const edgeId = anchorSelf.edgeId;
|
|
161
|
+
const edge = getEdgeById(store, edgeId);
|
|
162
|
+
edge.delete(); // this also deletes anchors. TODO: maybe this should be renamed to explicitly say
|
|
163
|
+
}
|
|
164
|
+
// delete the resize nodes
|
|
165
|
+
const resizeNodesArr = getResizeNodes(store, { nodeId: this.id });
|
|
166
|
+
// there should be only 1 resize node if option is enabled, 0 if not enabled
|
|
167
|
+
for (const resizeNode of resizeNodesArr) {
|
|
168
|
+
resizeNode.delete();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* setExportableData is going to construct an object that holds all the node data that can be exported. This method is used for Exporting Diagrams feature.
|
|
173
|
+
*
|
|
174
|
+
* @returns An object with all the exportable data of the Node. The format of this object should align with the original format of node data user provided.
|
|
175
|
+
*/
|
|
176
|
+
setExportableData() {
|
|
177
|
+
const exportableData = {
|
|
178
|
+
id: this.id,
|
|
179
|
+
// canvasId: this.canvasId,
|
|
180
|
+
width: this.width,
|
|
181
|
+
height: this.height,
|
|
182
|
+
position: { x: this.positionX, y: this.positionY },
|
|
183
|
+
data: this.data,
|
|
184
|
+
bgColor: this.bgColor,
|
|
185
|
+
borderColor: this.borderColor,
|
|
186
|
+
textColor: this.textColor,
|
|
187
|
+
borderRadius: this.borderRadius,
|
|
188
|
+
image: this.image,
|
|
189
|
+
src: this.src,
|
|
190
|
+
childNodes: this.childNodes,
|
|
191
|
+
customClassName: this.className,
|
|
192
|
+
};
|
|
193
|
+
return exportableData;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { findStore } from '../../store/controllers/storeApi';
|
|
3
|
+
import { getNodeById } from '../../nodes/controllers/util';
|
|
4
|
+
|
|
5
|
+
export let nodeId;
|
|
6
|
+
export let canvasId;
|
|
7
|
+
export let isEditing;
|
|
8
|
+
|
|
9
|
+
let label;
|
|
10
|
+
let width;
|
|
11
|
+
let height;
|
|
12
|
+
let customClass;
|
|
13
|
+
let backgroundColor;
|
|
14
|
+
|
|
15
|
+
const store = findStore(canvasId);
|
|
16
|
+
|
|
17
|
+
const { nodesStore, nodeSelected } = store;
|
|
18
|
+
let currentNode = $nodesStore[nodeId];
|
|
19
|
+
|
|
20
|
+
const editNode = (e) => {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
if (label) currentNode.data.label = label;
|
|
23
|
+
if (width) currentNode.width = width;
|
|
24
|
+
if (height) currentNode.height = height;
|
|
25
|
+
if (backgroundColor) currentNode.bgColor = backgroundColor;
|
|
26
|
+
width = '';
|
|
27
|
+
height = '';
|
|
28
|
+
customClass = '';
|
|
29
|
+
label = '';
|
|
30
|
+
|
|
31
|
+
store.nodesStore.set($nodesStore);
|
|
32
|
+
};
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
{#if isEditing}
|
|
36
|
+
<div
|
|
37
|
+
on:mouseover={(e) => ($nodeSelected = true)}
|
|
38
|
+
on:focus
|
|
39
|
+
on:wheel|preventDefault
|
|
40
|
+
class="EditNode"
|
|
41
|
+
style="left:{currentNode.positionX +
|
|
42
|
+
currentNode.width}px; top:{currentNode.positionY}px"
|
|
43
|
+
>
|
|
44
|
+
<form on:submit={editNode}>
|
|
45
|
+
<label for="label-input">Label</label>
|
|
46
|
+
<input
|
|
47
|
+
type="text"
|
|
48
|
+
id="label-input-{nodeId}"
|
|
49
|
+
placeholder={currentNode.data.label}
|
|
50
|
+
bind:value={label}
|
|
51
|
+
/>
|
|
52
|
+
|
|
53
|
+
<label for="bg-color-input">Background Color</label>
|
|
54
|
+
<input
|
|
55
|
+
type="color"
|
|
56
|
+
id="bg-color-input-{nodeId}"
|
|
57
|
+
class="bgci"
|
|
58
|
+
bind:value={backgroundColor}
|
|
59
|
+
/>
|
|
60
|
+
<input
|
|
61
|
+
type="text"
|
|
62
|
+
placeholder={currentNode.bgColor}
|
|
63
|
+
bind:value={backgroundColor}
|
|
64
|
+
/>
|
|
65
|
+
</form>
|
|
66
|
+
<div class="btn-container">
|
|
67
|
+
<button
|
|
68
|
+
on:click={(e) => {
|
|
69
|
+
const store = findStore(canvasId);
|
|
70
|
+
const node = getNodeById(store, nodeId);
|
|
71
|
+
node.delete();
|
|
72
|
+
isEditing = false;
|
|
73
|
+
}}>Delete Node</button
|
|
74
|
+
>
|
|
75
|
+
<button
|
|
76
|
+
on:click={(e) => {
|
|
77
|
+
editNode(e);
|
|
78
|
+
isEditing = false;
|
|
79
|
+
}}>Submit</button
|
|
80
|
+
>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
{/if}
|
|
84
|
+
|
|
85
|
+
<style>
|
|
86
|
+
.EditNode {
|
|
87
|
+
position: absolute;
|
|
88
|
+
padding: 0 1rem 1rem 1rem;
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
align-items: center;
|
|
92
|
+
border: 1px solid #333333;
|
|
93
|
+
border-radius: 0.25rem;
|
|
94
|
+
background-color: #ffffff;
|
|
95
|
+
z-index: 10;
|
|
96
|
+
-webkit-user-select: text;
|
|
97
|
+
-moz-user-select: text;
|
|
98
|
+
user-select: text;
|
|
99
|
+
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.4);
|
|
100
|
+
color: #333333;
|
|
101
|
+
pointer-events: auto; /* this is needed for pointer events to work since we disable them in graphview */
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
label {
|
|
105
|
+
font-size: 0.8rem;
|
|
106
|
+
font-weight: bold;
|
|
107
|
+
margin-bottom: 0.15rem;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.btn-container {
|
|
111
|
+
display: flex;
|
|
112
|
+
justify-content: space-between;
|
|
113
|
+
margin-top: 0.5rem;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
button {
|
|
117
|
+
border-radius: 0.25rem;
|
|
118
|
+
background-color: white;
|
|
119
|
+
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.4);
|
|
120
|
+
margin: 0.2rem;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
input {
|
|
124
|
+
height: 1.6rem;
|
|
125
|
+
border-color: #e45b56;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.bgci {
|
|
129
|
+
height: 2rem;
|
|
130
|
+
width: 5rem;
|
|
131
|
+
padding: 0;
|
|
132
|
+
border: none;
|
|
133
|
+
background-color: none;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
button:hover {
|
|
137
|
+
cursor: pointer;
|
|
138
|
+
background-color: #e45b56;
|
|
139
|
+
color: white;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
form {
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
align-items: center;
|
|
146
|
+
justify-content: center;
|
|
147
|
+
}</style>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} EditNodeProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} EditNodeEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} EditNodeSlots */
|
|
4
|
+
export default class EditNode extends SvelteComponentTyped<{
|
|
5
|
+
nodeId: any;
|
|
6
|
+
canvasId: any;
|
|
7
|
+
isEditing: any;
|
|
8
|
+
}, {
|
|
9
|
+
focus: FocusEvent;
|
|
10
|
+
wheel: WheelEvent;
|
|
11
|
+
} & {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}> {
|
|
14
|
+
}
|
|
15
|
+
export type EditNodeProps = typeof __propDef.props;
|
|
16
|
+
export type EditNodeEvents = typeof __propDef.events;
|
|
17
|
+
export type EditNodeSlots = typeof __propDef.slots;
|
|
18
|
+
import { SvelteComponentTyped } from "svelte";
|
|
19
|
+
declare const __propDef: {
|
|
20
|
+
props: {
|
|
21
|
+
nodeId: any;
|
|
22
|
+
canvasId: any;
|
|
23
|
+
isEditing: any;
|
|
24
|
+
};
|
|
25
|
+
events: {
|
|
26
|
+
focus: FocusEvent;
|
|
27
|
+
wheel: WheelEvent;
|
|
28
|
+
} & {
|
|
29
|
+
[evt: string]: CustomEvent<any>;
|
|
30
|
+
};
|
|
31
|
+
slots: {};
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<script>import { afterUpdate } from 'svelte';
|
|
2
|
+
import { findStore } from '../../store/controllers/storeApi';
|
|
3
|
+
import { forceCssHeightAndWidth } from '../../customCss/controllers/getCss';
|
|
4
|
+
export let node;
|
|
5
|
+
export let canvasId;
|
|
6
|
+
export let nodeId;
|
|
7
|
+
export let isCustom = false;
|
|
8
|
+
const store = findStore(canvasId);
|
|
9
|
+
const { lockedOption } = store;
|
|
10
|
+
// forceCssHeightAndWidth forces the size of the node to be defined by CSS
|
|
11
|
+
afterUpdate(() => {
|
|
12
|
+
if (node.className)
|
|
13
|
+
forceCssHeightAndWidth(store, node);
|
|
14
|
+
});
|
|
15
|
+
const mousedown = (e) => {
|
|
16
|
+
if (node.clickCallback)
|
|
17
|
+
node.clickCallback(node);
|
|
18
|
+
};
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<!-- on:wheel prevents page scroll when using mousewheel in the Node -->
|
|
22
|
+
<div
|
|
23
|
+
on:mousedown={mousedown}
|
|
24
|
+
on:touchstart={mousedown}
|
|
25
|
+
class="{isCustom ? 'CustomNode' : 'Node'} {node.className}"
|
|
26
|
+
style="left: {node.positionX}px;
|
|
27
|
+
top: {node.positionY}px;
|
|
28
|
+
width: {node.width}px;
|
|
29
|
+
height: {node.height}px;
|
|
30
|
+
{isCustom
|
|
31
|
+
? ''
|
|
32
|
+
: `
|
|
33
|
+
background-color: ${node.bgColor ?? 'white'};
|
|
34
|
+
border-color: ${node.borderColor};
|
|
35
|
+
border-radius: ${node.borderRadius}px;
|
|
36
|
+
color: ${node.textColor};
|
|
37
|
+
cursor: ${$lockedOption ? 'default' : 'grab'};`}"
|
|
38
|
+
id="svelvet-{node.id}"
|
|
39
|
+
>
|
|
40
|
+
<!-- This executes if node.image is present without node.label -->
|
|
41
|
+
{#if node.image}
|
|
42
|
+
<img
|
|
43
|
+
src={node.src}
|
|
44
|
+
alt=""
|
|
45
|
+
style="width: {node.width * 0.75}px;
|
|
46
|
+
height: {node.height * 0.75}px;
|
|
47
|
+
overflow: hidden;"
|
|
48
|
+
/>
|
|
49
|
+
{/if}
|
|
50
|
+
<slot />
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<style>
|
|
54
|
+
.CustomNode {
|
|
55
|
+
position: absolute;
|
|
56
|
+
display: grid;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
align-items: center;
|
|
59
|
+
font-size: 14px;
|
|
60
|
+
text-align: center;
|
|
61
|
+
pointer-events: auto;
|
|
62
|
+
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.Node {
|
|
66
|
+
position: absolute;
|
|
67
|
+
display: grid;
|
|
68
|
+
-webkit-user-select: none;
|
|
69
|
+
-moz-user-select: none;
|
|
70
|
+
user-select: none;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
overscroll-behavior: auto;
|
|
73
|
+
align-items: center;
|
|
74
|
+
font-size: 14px;
|
|
75
|
+
text-align: center;
|
|
76
|
+
border: solid 1px black;
|
|
77
|
+
border-radius: 5px;
|
|
78
|
+
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
|
|
79
|
+
pointer-events: auto; /* this is needed for pointer events to work since we disable them in graphview */
|
|
80
|
+
}
|
|
81
|
+
/* the default behavior when click/dragging an image is to move it. This interferes with node dragging. We disable pointer events on img to prevent this */
|
|
82
|
+
/* Alternatively, we could use e.preventDefault() on mouseDown. However, this interferes with embedded Svelvet forms */
|
|
83
|
+
img {
|
|
84
|
+
pointer-events: none;
|
|
85
|
+
}</style>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { NodeType } from '../../store/types/types';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
node: NodeType;
|
|
6
|
+
canvasId: string;
|
|
7
|
+
nodeId: string;
|
|
8
|
+
isCustom?: boolean | undefined;
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
};
|
|
13
|
+
slots: {
|
|
14
|
+
default: {};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type NodeProps = typeof __propDef.props;
|
|
18
|
+
export type NodeEvents = typeof __propDef.events;
|
|
19
|
+
export type NodeSlots = typeof __propDef.slots;
|
|
20
|
+
export default class Node extends SvelteComponentTyped<NodeProps, NodeEvents, NodeSlots> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StoreType, ResizeNodeType } from '../../store/types/types';
|
|
2
|
+
/**
|
|
3
|
+
* Finds all resizeNodes that matches the conditions specified in the filter parameter from a Svelvet store and returns these resizeNodes in an array
|
|
4
|
+
*
|
|
5
|
+
* @param store The Svelvet store containing the state of a Svelvet component
|
|
6
|
+
* @param filter An object to specify conditions.
|
|
7
|
+
* @returns An array of resizeNode objects that matches the conditions specified in filter parameter
|
|
8
|
+
*/
|
|
9
|
+
export declare function getResizeNodes(store: StoreType, filter?: {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}): ResizeNodeType[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { get } from 'svelte/store';
|
|
2
|
+
/**
|
|
3
|
+
* Finds all resizeNodes that matches the conditions specified in the filter parameter from a Svelvet store and returns these resizeNodes in an array
|
|
4
|
+
*
|
|
5
|
+
* @param store The Svelvet store containing the state of a Svelvet component
|
|
6
|
+
* @param filter An object to specify conditions.
|
|
7
|
+
* @returns An array of resizeNode objects that matches the conditions specified in filter parameter
|
|
8
|
+
*/
|
|
9
|
+
export function getResizeNodes(store, filter) {
|
|
10
|
+
let resizeNodes = Object.values(get(store.resizeNodesStore));
|
|
11
|
+
// filter the array for elements that match filter
|
|
12
|
+
if (filter !== undefined) {
|
|
13
|
+
resizeNodes = resizeNodes.filter((resizeNode) => {
|
|
14
|
+
for (let filterKey in filter) {
|
|
15
|
+
const filterValue = filter[filterKey];
|
|
16
|
+
if (resizeNode[filterKey] !== filterValue)
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
// return list of anchors
|
|
23
|
+
return resizeNodes;
|
|
24
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ResizeNodeType } from '../../store/types/types';
|
|
2
|
+
/** A ResizeNode class that implements ResizeNodeType interface
|
|
3
|
+
* @param {string} id The id of the ResizeNode
|
|
4
|
+
* @param {string} canvasId The canvasId of the Svelvet component that the instantiated ResizeNode will be on.
|
|
5
|
+
* @param {string} nodeId The id of the Node that the instantiated ResizedNode will be attached to.
|
|
6
|
+
* @param {number} positionX The X-axis position of the ResizeNode (left top corner of the ResizeNode)
|
|
7
|
+
* @param {number} positionY The Y-axis position of the ResizeNode (left top corner of the ResizeNode)
|
|
8
|
+
*/
|
|
9
|
+
export declare class ResizeNode implements ResizeNodeType {
|
|
10
|
+
id: string;
|
|
11
|
+
canvasId: string;
|
|
12
|
+
nodeId: string;
|
|
13
|
+
positionX: number;
|
|
14
|
+
positionY: number;
|
|
15
|
+
constructor(id: string, canvasId: string, nodeId: string, positionX: number, positionY: number);
|
|
16
|
+
/**
|
|
17
|
+
* setPosition will update the positionX and positionY of the ResizeNode. This will be invoked when the Node that this ResizeNode attached to is moving so that the ResizeNode will follow the Node.
|
|
18
|
+
*
|
|
19
|
+
* @param movementX The mouse movement value on the X-axis
|
|
20
|
+
* @param movementY The mouse movement value on the Y-axis
|
|
21
|
+
*/
|
|
22
|
+
setPosition(movementX: number, movementY: number): void;
|
|
23
|
+
/**
|
|
24
|
+
* setPositionAndCascade will update the positionX and positionY of the ResizeNode and also cascade changes to related Node. This will be invoked when the user drags the ResizeNode so the position of the ResizeNode and the width and height of the Node would change accordingly.
|
|
25
|
+
* @param movementX The mouse movement value on the X-axis
|
|
26
|
+
* @param movementY The mouse movement value on the Y-axis
|
|
27
|
+
*/
|
|
28
|
+
setPositionAndCascade(movementX: number, movementY: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* delete is going to delete the ResizeNode from the resizeNodesStore.
|
|
31
|
+
*/
|
|
32
|
+
delete(): void;
|
|
33
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// import { writable, derived, get, readable } from 'svelte/store';
|
|
2
|
+
import { stores } from '../../store/models/store';
|
|
3
|
+
/** A ResizeNode class that implements ResizeNodeType interface
|
|
4
|
+
* @param {string} id The id of the ResizeNode
|
|
5
|
+
* @param {string} canvasId The canvasId of the Svelvet component that the instantiated ResizeNode will be on.
|
|
6
|
+
* @param {string} nodeId The id of the Node that the instantiated ResizedNode will be attached to.
|
|
7
|
+
* @param {number} positionX The X-axis position of the ResizeNode (left top corner of the ResizeNode)
|
|
8
|
+
* @param {number} positionY The Y-axis position of the ResizeNode (left top corner of the ResizeNode)
|
|
9
|
+
*/
|
|
10
|
+
export class ResizeNode {
|
|
11
|
+
id;
|
|
12
|
+
canvasId;
|
|
13
|
+
nodeId;
|
|
14
|
+
positionX;
|
|
15
|
+
positionY;
|
|
16
|
+
constructor(id, canvasId, nodeId, positionX, positionY) {
|
|
17
|
+
this.id = id;
|
|
18
|
+
this.canvasId = canvasId;
|
|
19
|
+
this.nodeId = nodeId;
|
|
20
|
+
this.positionX = positionX;
|
|
21
|
+
this.positionY = positionY;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* setPosition will update the positionX and positionY of the ResizeNode. This will be invoked when the Node that this ResizeNode attached to is moving so that the ResizeNode will follow the Node.
|
|
25
|
+
*
|
|
26
|
+
* @param movementX The mouse movement value on the X-axis
|
|
27
|
+
* @param movementY The mouse movement value on the Y-axis
|
|
28
|
+
*/
|
|
29
|
+
setPosition(movementX, movementY) {
|
|
30
|
+
this.positionX += movementX;
|
|
31
|
+
this.positionY += movementY;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* setPositionAndCascade will update the positionX and positionY of the ResizeNode and also cascade changes to related Node. This will be invoked when the user drags the ResizeNode so the position of the ResizeNode and the width and height of the Node would change accordingly.
|
|
35
|
+
* @param movementX The mouse movement value on the X-axis
|
|
36
|
+
* @param movementY The mouse movement value on the Y-axis
|
|
37
|
+
*/
|
|
38
|
+
setPositionAndCascade(movementX, movementY) {
|
|
39
|
+
//declare variables needed to interact with the corresponding node to this resize anchor
|
|
40
|
+
const nodeId = this.nodeId;
|
|
41
|
+
const { nodesStore } = stores[this.canvasId];
|
|
42
|
+
//Updates the width/height of the corresponding Node
|
|
43
|
+
nodesStore.update((nodes) => {
|
|
44
|
+
const node = nodes[nodeId];
|
|
45
|
+
//sets condition so node cannot be less than 20 px in width or height.
|
|
46
|
+
if (node.width + movementX > 20 && node.height + movementY > 20) {
|
|
47
|
+
//Updates position to this resizeNode anchor. Must be done within the update method so ensure the position doesn't change if the width goes below 20px
|
|
48
|
+
this.positionX += movementX;
|
|
49
|
+
this.positionY += movementY;
|
|
50
|
+
//setSizeFromMovement will then update the anchors position as the width & height changes
|
|
51
|
+
node.setSizeFromMovement(movementX, movementY);
|
|
52
|
+
}
|
|
53
|
+
return { ...nodes };
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* delete is going to delete the ResizeNode from the resizeNodesStore.
|
|
58
|
+
*/
|
|
59
|
+
delete() {
|
|
60
|
+
const store = stores[this.canvasId];
|
|
61
|
+
const { resizeNodesStore } = stores[this.canvasId];
|
|
62
|
+
resizeNodesStore.update((resizeNodes) => {
|
|
63
|
+
for (const resizeNodeId in resizeNodes) {
|
|
64
|
+
if (resizeNodes[resizeNodeId].id === this.id) {
|
|
65
|
+
delete resizeNodes[resizeNodeId];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return { ...resizeNodes };
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|