windmill-components 1.60.3 → 1.70.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 +3 -0
- package/common.d.ts +5 -1
- package/components/ApiConnectForm.svelte +66 -5
- package/components/AppConnect.svelte +24 -9
- package/components/ArgInput.svelte +1 -1
- package/components/CliHelpBox.svelte +49 -0
- package/components/CliHelpBox.svelte.d.ts +14 -0
- package/components/DisplayResult.svelte +51 -1
- package/components/DisplayResult.svelte.d.ts +1 -0
- package/components/Editor.svelte +17 -7
- package/components/EditorBar.svelte +129 -111
- package/components/FlowBuilder.svelte +2 -2
- package/components/FlowJobResult.svelte +10 -2
- package/components/FlowJobResult.svelte.d.ts +1 -0
- package/components/FlowMetadata.svelte +24 -8
- package/components/FlowPreviewContent.svelte +3 -4
- package/components/FlowStatusViewer.svelte +41 -9
- package/components/FolderEditor.svelte +4 -3
- package/components/HighlightCode.svelte +7 -1
- package/components/InlineCodeCopy.svelte +11 -0
- package/components/InlineCodeCopy.svelte.d.ts +16 -0
- package/components/InputTransformForm.svelte +9 -5
- package/components/LogViewer.svelte +6 -0
- package/components/LogViewer.svelte.d.ts +1 -0
- package/components/ModulePreview.svelte +11 -2
- package/components/MoveDrawer.svelte +1 -1
- package/components/Multiselect.svelte.d.ts +2 -2
- package/components/ObjectResourceInput.svelte +6 -1
- package/components/Path.svelte +14 -5
- package/components/Popover.svelte +8 -2
- 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 +0 -1
- package/components/RunForm.svelte +26 -2
- package/components/RunForm.svelte.d.ts +1 -0
- package/components/ScheduleEditor.svelte +1 -1
- package/components/SchemaEditor.svelte +2 -2
- package/components/SchemaForm.svelte +14 -4
- package/components/SchemaForm.svelte.d.ts +1 -0
- package/components/ScriptBuilder.svelte +45 -22
- package/components/ScriptBuilder.svelte.d.ts +1 -0
- package/components/ScriptEditor.svelte +1 -0
- package/components/SharedBadge.svelte +5 -5
- package/components/Slider.svelte +14 -0
- package/components/Slider.svelte.d.ts +19 -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.d.ts +204 -0
- package/components/TestJobLoader.svelte +3 -3
- package/components/Toggle.svelte +1 -2
- package/components/UserSettings.svelte +25 -28
- 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 +52 -6
- package/components/apps/components/buttons/AppButton.svelte.d.ts +3 -0
- package/components/apps/components/{form → buttons}/AppForm.svelte +3 -1
- package/components/apps/components/buttons/AppFormButton.svelte +137 -0
- package/components/apps/components/buttons/AppFormButton.svelte.d.ts +25 -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 +15 -4
- package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +1 -0
- package/components/apps/components/display/AppDisplayComponent.svelte +31 -0
- package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +23 -0
- package/components/apps/components/display/AppHtml.svelte +32 -0
- package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +1 -3
- package/components/apps/components/display/AppIcon.svelte +35 -0
- package/components/apps/components/display/AppIcon.svelte.d.ts +22 -0
- package/components/apps/components/display/AppImage.svelte +27 -0
- package/components/apps/components/display/AppImage.svelte.d.ts +22 -0
- package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +2 -1
- package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +1 -0
- package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +2 -1
- package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +1 -0
- package/components/apps/components/{dataDisplay → display}/AppText.svelte +16 -14
- package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +3 -0
- package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +3 -2
- package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +1 -0
- package/components/apps/components/display/PlotlyHtml.svelte +38 -0
- package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
- package/components/apps/components/display/VegaLiteHtml.svelte +52 -0
- package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +3 -2
- package/components/apps/components/display/index.d.ts +12 -0
- package/components/apps/components/display/index.js +12 -0
- package/components/apps/components/display/table/AppAggridTable.svelte +83 -0
- package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +24 -0
- package/components/apps/components/{table → display/table}/AppTable.svelte +44 -23
- package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +4 -2
- package/components/apps/components/{table → display/table}/AppTableFooter.svelte +1 -1
- package/components/apps/components/helpers/AlignWrapper.svelte +19 -19
- package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +4 -2
- package/components/apps/components/helpers/HiddenComponent.svelte +22 -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 +5 -7
- package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
- package/components/apps/components/helpers/RunnableComponent.svelte +37 -48
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/components/apps/components/helpers/RunnableWrapper.svelte +7 -2
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +2 -1
- 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 +4 -2
- package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte +6 -0
- package/components/apps/components/inputs/AppFileInput.svelte +34 -0
- package/components/apps/components/inputs/AppFileInput.svelte.d.ts +20 -0
- package/components/apps/components/inputs/AppNumberInput.svelte +48 -0
- package/components/apps/components/inputs/AppRangeInput.svelte +44 -0
- package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +23 -0
- package/components/apps/components/inputs/AppSelect.svelte +90 -0
- package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +2 -0
- package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte +13 -9
- package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte +6 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +49 -0
- package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +21 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte +181 -0
- package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +32 -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 +32 -0
- package/components/apps/components/layout/AppContainer.svelte.d.ts +21 -0
- package/components/apps/components/layout/AppDivider.svelte +20 -0
- package/components/apps/components/layout/AppDivider.svelte.d.ts +22 -0
- package/components/apps/components/layout/AppTabs.svelte +58 -0
- package/components/apps/components/layout/AppTabs.svelte.d.ts +24 -0
- package/components/apps/components/layout/index.d.ts +3 -0
- package/components/apps/components/layout/index.js +3 -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 +66 -31
- package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
- package/components/apps/editor/AppEditorHeader.svelte +74 -18
- 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 +32 -5
- package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
- package/components/apps/editor/ComponentHeader.svelte +40 -2
- package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -1
- package/components/apps/editor/GridEditor.svelte +75 -32
- package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
- package/components/apps/editor/SettingsPanel.svelte +31 -3
- package/components/apps/editor/SubGridEditor.svelte +111 -0
- package/components/apps/editor/SubGridEditor.svelte.d.ts +24 -0
- package/components/apps/editor/TablePanel.svelte +2 -0
- package/components/apps/editor/TablePanel.svelte.d.ts +1 -1
- package/components/apps/editor/appUtils.d.ts +9 -0
- package/components/apps/editor/appUtils.js +141 -0
- package/components/apps/editor/component/Component.svelte +209 -0
- package/components/apps/editor/component/Component.svelte.d.ts +23 -0
- package/components/apps/editor/component/README.md +15 -0
- package/components/apps/editor/component/components.d.ts +65 -0
- package/components/apps/editor/component/components.js +1102 -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 +47 -0
- package/components/apps/editor/componentsPanel/ComponentList.svelte +30 -105
- package/components/apps/editor/componentsPanel/CssProperty.svelte +31 -0
- package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +20 -0
- package/components/apps/editor/componentsPanel/CssSettings.svelte +141 -0
- package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte +28 -0
- package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +4 -1
- package/components/apps/editor/componentsPanel/componentStaticValues.js +4 -1
- package/components/apps/editor/contextPanel/ContextPanel.svelte +8 -6
- package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +98 -9
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +38 -29
- package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +21 -1
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +66 -8
- package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +92 -46
- package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -1
- package/components/apps/editor/inlineScriptsPanel/utils.js +30 -0
- 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 +4 -1
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +59 -1
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -34
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +5 -3
- package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
- package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +18 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +3 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +92 -77
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +85 -0
- package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
- package/components/apps/editor/settingsPanel/Recompute.svelte +4 -1
- package/components/apps/editor/settingsPanel/TableActions.svelte +17 -6
- package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte +5 -3
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +83 -0
- package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +19 -0
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +6 -1
- package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +2 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +23 -0
- package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +3 -20
- package/components/apps/gridUtils.d.ts +3 -1
- package/components/apps/gridUtils.js +5 -3
- package/components/apps/inputType.d.ts +33 -6
- package/components/apps/types.d.ts +35 -39
- package/components/apps/types.js +1 -1
- package/components/apps/utils.d.ts +6 -5
- package/components/apps/utils.js +90 -90
- package/components/common/button/Button.svelte +12 -5
- package/components/common/button/Button.svelte.d.ts +3 -1
- package/components/common/button/ButtonPopup.svelte.d.ts +1 -1
- 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 +3 -1
- package/components/common/fileInput/FileInput.svelte +112 -0
- package/components/common/fileInput/FileInput.svelte.d.ts +27 -0
- package/components/common/index.d.ts +1 -0
- package/components/common/index.js +1 -0
- package/components/common/kbd/Kbd.svelte.d.ts +2 -2
- package/components/common/modal/Modal.svelte +74 -0
- package/components/common/modal/Modal.svelte.d.ts +22 -0
- package/components/common/popup/Popup.svelte +34 -17
- package/components/common/popup/Popup.svelte.d.ts +11 -4
- package/components/common/table/FlowRow.svelte +22 -3
- package/components/common/table/LanguageBadge.svelte +10 -4
- package/components/common/table/Row.svelte +1 -1
- package/components/common/table/ScriptRow.svelte +2 -2
- package/components/common/tabs/Tabs.svelte +9 -7
- package/components/common/tabs/Tabs.svelte.d.ts +3 -1
- package/components/flows/CreateActionsFlow.svelte +2 -3
- package/components/flows/content/BranchPredicateEditor.svelte +10 -8
- package/components/flows/content/CapturePayload.svelte +3 -3
- package/components/flows/content/FlowInputs.svelte +109 -99
- package/components/flows/content/FlowLoop.svelte +1 -1
- package/components/flows/content/FlowModuleComponent.svelte +3 -2
- package/components/flows/content/FlowRetries.svelte +8 -6
- package/components/flows/content/FlowSettings.svelte +72 -26
- package/components/flows/flowState.d.ts +1 -0
- package/components/flows/flowState.js +1 -0
- package/components/flows/flowStateUtils.js +4 -2
- package/components/flows/flowStore.d.ts +1 -0
- package/components/flows/flowStore.js +1 -0
- package/components/flows/map/FlowBranchAllMap.svelte +1 -1
- package/components/flows/map/FlowBranchOneMap.svelte +2 -2
- package/components/flows/map/FlowModuleSchemaItem.svelte +5 -5
- package/components/flows/map/FlowModuleSchemaMap.svelte +15 -8
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
- package/components/flows/map/InsertModuleButton.svelte +24 -10
- package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -0
- package/components/flows/map/MapItem.svelte +3 -1
- package/components/flows/utils.js +16 -10
- package/components/graph/FlowGraph.svelte +38 -15
- package/components/graph/FlowGraph.svelte.d.ts +1 -0
- 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 +29 -5
- package/components/propertyPicker/ObjectViewer.svelte +8 -5
- 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/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/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 +577 -522
- package/script_helpers.d.ts +6 -5
- package/script_helpers.js +7 -73
- 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 +1 -1
- package/utils.js +8 -7
- 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 -35
- package/components/apps/components/dataDisplay/VegaLiteHtml.svelte +0 -28
- package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
- package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
- package/components/apps/editor/ComponentEditor.svelte +0 -138
- package/components/apps/editor/ComponentEditor.svelte.d.ts +0 -23
- package/components/apps/editor/componentsPanel/data.d.ts +0 -3
- package/components/apps/editor/componentsPanel/data.js +0 -465
- package/components/apps/editorUtils.d.ts +0 -1
- package/components/apps/editorUtils.js +0 -253
- /package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
- /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
- /package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +0 -0
- /package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +0 -0
- /package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +0 -0
- /package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +0 -0
- /package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +0 -0
|
@@ -40,7 +40,7 @@ const dispatch = createEventDispatcher();
|
|
|
40
40
|
{#if retry}
|
|
41
41
|
<Popover notClickable>
|
|
42
42
|
<div
|
|
43
|
-
transition:fade={{duration: 200}}
|
|
43
|
+
transition:fade={{ duration: 200 }}
|
|
44
44
|
class="center-center bg-white rounded border border-gray-400 text-gray-700 px-1 py-0.5"
|
|
45
45
|
>
|
|
46
46
|
<Repeat size={14} />
|
|
@@ -51,7 +51,7 @@ const dispatch = createEventDispatcher();
|
|
|
51
51
|
{#if earlyStop}
|
|
52
52
|
<Popover notClickable>
|
|
53
53
|
<div
|
|
54
|
-
transition:fade={{duration: 200}}
|
|
54
|
+
transition:fade={{ duration: 200 }}
|
|
55
55
|
class="center-center bg-white rounded border border-gray-400 text-gray-700 px-1 py-0.5"
|
|
56
56
|
>
|
|
57
57
|
<Square size={14} />
|
|
@@ -62,7 +62,7 @@ const dispatch = createEventDispatcher();
|
|
|
62
62
|
{#if suspend}
|
|
63
63
|
<Popover notClickable>
|
|
64
64
|
<div
|
|
65
|
-
transition:fade={{duration: 200}}
|
|
65
|
+
transition:fade={{ duration: 200 }}
|
|
66
66
|
class="center-center bg-white rounded border border-gray-400 text-gray-700 px-1 py-0.5"
|
|
67
67
|
>
|
|
68
68
|
<PhoneIncoming size={14} />
|
|
@@ -73,7 +73,7 @@ const dispatch = createEventDispatcher();
|
|
|
73
73
|
{#if sleep}
|
|
74
74
|
<Popover notClickable>
|
|
75
75
|
<div
|
|
76
|
-
transition:fade={{duration: 200}}
|
|
76
|
+
transition:fade={{ duration: 200 }}
|
|
77
77
|
class="center-center bg-white rounded border border-gray-400 text-gray-700 px-1 py-0.5"
|
|
78
78
|
>
|
|
79
79
|
<Bed size={14} />
|
|
@@ -100,7 +100,7 @@ const dispatch = createEventDispatcher();
|
|
|
100
100
|
class="absolute -top-2 right-0 rounded-full h-4 w-4 trash center-center
|
|
101
101
|
border-[1.5px] border-gray-700 bg-white duration-150 hover:bg-red-400 hover:text-white
|
|
102
102
|
hover:border-red-700 {selected ? '' : '!hidden'}"
|
|
103
|
-
on:click={(event) => dispatch('delete', event)}
|
|
103
|
+
on:click|preventDefault|stopPropagation={(event) => dispatch('delete', event)}
|
|
104
104
|
>
|
|
105
105
|
<X size={12} strokeWidth={2} />
|
|
106
106
|
</button>
|
|
@@ -9,12 +9,10 @@ import FlowSettingsItem from './FlowSettingsItem.svelte';
|
|
|
9
9
|
import FlowInputsItem from './FlowInputsItem.svelte';
|
|
10
10
|
import InsertModuleButton from './InsertModuleButton.svelte';
|
|
11
11
|
import { slide } from 'svelte/transition';
|
|
12
|
-
import FlowModuleSchemaItem from './FlowModuleSchemaItem.svelte';
|
|
13
|
-
import { Icon } from 'svelte-awesome';
|
|
14
|
-
import { faDollarSign } from '@fortawesome/free-solid-svg-icons';
|
|
15
12
|
import FlowConstantsItem from './FlowConstantsItem.svelte';
|
|
16
13
|
export let root = false;
|
|
17
14
|
export let modules;
|
|
15
|
+
export let parentType = undefined;
|
|
18
16
|
let indexToRemove = undefined;
|
|
19
17
|
const { select, selectedId } = getContext('FlowEditorContext');
|
|
20
18
|
async function insertNewModuleAtIndex(index, kind) {
|
|
@@ -45,17 +43,21 @@ async function insertNewModuleAtIndex(index, kind) {
|
|
|
45
43
|
else if (kind == 'approval') {
|
|
46
44
|
flowModule.summary = 'Approval';
|
|
47
45
|
}
|
|
46
|
+
else if (kind == 'end') {
|
|
47
|
+
flowModule.summary = 'Terminate flow';
|
|
48
|
+
flowModule.stop_after_if = { skip_if_stopped: false, expr: 'true' };
|
|
49
|
+
}
|
|
48
50
|
select(flowModule.id);
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
function removeAtIndex(index) {
|
|
52
|
-
select('settings-graph');
|
|
53
54
|
if (!modules)
|
|
54
55
|
return;
|
|
55
56
|
const [removedModule] = modules.splice(index, 1);
|
|
56
57
|
modules = modules;
|
|
57
58
|
const leaves = findLeaves(removedModule);
|
|
58
59
|
leaves.forEach((leafId) => deleteFlowStateById(leafId));
|
|
60
|
+
select('settings-graph');
|
|
59
61
|
}
|
|
60
62
|
function findLeaves(flowModule) {
|
|
61
63
|
const id = flowModule.id;
|
|
@@ -122,10 +124,15 @@ $: confirmationModalOpen = indexToRemove !== undefined;
|
|
|
122
124
|
</div>
|
|
123
125
|
{/each}
|
|
124
126
|
{/if}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
{#if !modules || modules[modules?.length - 1]?.summary != 'Terminate flow'}
|
|
128
|
+
<InsertModuleButton
|
|
129
|
+
stop={!root && parentType == 'branchone'}
|
|
130
|
+
trigger={root && modules?.length == 0}
|
|
131
|
+
on:new={(e) => insertNewModuleAtIndex(modules?.length ?? 0, e.detail)}
|
|
132
|
+
/>
|
|
133
|
+
{:else}
|
|
134
|
+
<div class="my-2" />
|
|
135
|
+
{/if}
|
|
129
136
|
</ul>
|
|
130
137
|
{#if root}
|
|
131
138
|
<div class="sticky bottom-0 bg-gray-50 flex-none px-4 py-1 pb-2 border-t">
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import { faCode, faCodeBranch, faPlus, faBarsStaggered, faBolt, faCheck } from '@fortawesome/free-solid-svg-icons';
|
|
3
3
|
import { createEventDispatcher } from 'svelte';
|
|
4
4
|
import Icon from 'svelte-awesome';
|
|
5
|
-
import { Repeat } from 'lucide-svelte';
|
|
5
|
+
import { Repeat, Square } from 'lucide-svelte';
|
|
6
6
|
const dispatch = createEventDispatcher();
|
|
7
7
|
export let trigger = false;
|
|
8
|
+
export let stop = false;
|
|
8
9
|
</script>
|
|
9
10
|
|
|
10
11
|
<Menu noMinW placement="bottom-start" let:close>
|
|
@@ -25,7 +26,7 @@ export let trigger = false;
|
|
|
25
26
|
role="menuitem"
|
|
26
27
|
tabindex="-1"
|
|
27
28
|
>
|
|
28
|
-
<Icon data={faCode} scale={0.8} class="mr-
|
|
29
|
+
<Icon data={faCode} scale={0.8} class="mr-2" />
|
|
29
30
|
Action (Script)
|
|
30
31
|
</button>
|
|
31
32
|
{#if trigger}
|
|
@@ -38,12 +39,12 @@ export let trigger = false;
|
|
|
38
39
|
role="menuitem"
|
|
39
40
|
tabindex="-1"
|
|
40
41
|
>
|
|
41
|
-
<Icon data={faBolt} scale={0.8} class="mr-
|
|
42
|
+
<Icon data={faBolt} scale={0.8} class="mr-2" />
|
|
42
43
|
Trigger (Script)
|
|
43
44
|
</button>
|
|
44
45
|
{/if}
|
|
45
46
|
<button
|
|
46
|
-
class="w-full text-left p-2 hover:bg-gray-100"
|
|
47
|
+
class="w-full text-left gap-1 p-2 hover:bg-gray-100"
|
|
47
48
|
on:click={() => {
|
|
48
49
|
close()
|
|
49
50
|
dispatch('new', 'approval')
|
|
@@ -51,18 +52,18 @@ export let trigger = false;
|
|
|
51
52
|
role="menuitem"
|
|
52
53
|
tabindex="-1"
|
|
53
54
|
>
|
|
54
|
-
<Icon data={faCheck} scale={0.8}
|
|
55
|
+
<Icon data={faCheck} class="mr-1.5" scale={0.8} />
|
|
55
56
|
Approval (Script)
|
|
56
57
|
</button>
|
|
57
58
|
<button
|
|
58
|
-
class="w-full inline-flex
|
|
59
|
+
class="w-full inline-flex text-left p-2 hover:bg-gray-100"
|
|
59
60
|
on:click={() => {
|
|
60
61
|
close()
|
|
61
62
|
dispatch('new', 'forloop')
|
|
62
63
|
}}
|
|
63
64
|
role="menuitem"
|
|
64
65
|
>
|
|
65
|
-
<span>
|
|
66
|
+
<span class="mr-2">
|
|
66
67
|
<Repeat size={14} />
|
|
67
68
|
</span>
|
|
68
69
|
|
|
@@ -77,7 +78,7 @@ export let trigger = false;
|
|
|
77
78
|
}}
|
|
78
79
|
role="menuitem"
|
|
79
80
|
>
|
|
80
|
-
<Icon data={faCodeBranch} scale={0.8} class="mr-
|
|
81
|
+
<Icon data={faCodeBranch} scale={0.8} class="mr-2" />
|
|
81
82
|
Branch to one
|
|
82
83
|
</button>
|
|
83
84
|
|
|
@@ -89,7 +90,7 @@ export let trigger = false;
|
|
|
89
90
|
}}
|
|
90
91
|
role="menuitem"
|
|
91
92
|
>
|
|
92
|
-
<Icon data={faCodeBranch} scale={0.8} class="mr-
|
|
93
|
+
<Icon data={faCodeBranch} scale={0.8} class="mr-2" />
|
|
93
94
|
Branch to all
|
|
94
95
|
</button>
|
|
95
96
|
|
|
@@ -101,8 +102,21 @@ export let trigger = false;
|
|
|
101
102
|
}}
|
|
102
103
|
role="menuitem"
|
|
103
104
|
>
|
|
104
|
-
<Icon data={faBarsStaggered} scale={0.8} class="mr-
|
|
105
|
+
<Icon data={faBarsStaggered} scale={0.8} class="mr-2" />
|
|
105
106
|
Flow
|
|
106
107
|
</button>
|
|
108
|
+
{#if stop}
|
|
109
|
+
<button
|
|
110
|
+
class="w-full text-left p-2 hover:bg-gray-100 inline-flex gap-2.5"
|
|
111
|
+
on:click={() => {
|
|
112
|
+
close()
|
|
113
|
+
dispatch('new', 'end')
|
|
114
|
+
}}
|
|
115
|
+
role="menuitem"
|
|
116
|
+
>
|
|
117
|
+
<Square size={14} />
|
|
118
|
+
End Flow
|
|
119
|
+
</button>
|
|
120
|
+
{/if}
|
|
107
121
|
</div>
|
|
108
122
|
</Menu>
|
|
@@ -8,7 +8,7 @@ import { faCodeBranch, faLongArrowDown } from '@fortawesome/free-solid-svg-icons
|
|
|
8
8
|
import Icon from 'svelte-awesome';
|
|
9
9
|
import IconedResourceType from '../../IconedResourceType.svelte';
|
|
10
10
|
import LanguageIcon from '../../common/languageIcons/LanguageIcon.svelte';
|
|
11
|
-
import { Building, Repeat } from 'lucide-svelte';
|
|
11
|
+
import { Building, Repeat, Square } from 'lucide-svelte';
|
|
12
12
|
export let mod;
|
|
13
13
|
export let index;
|
|
14
14
|
const { select, selectedId } = getContext('FlowEditorContext');
|
|
@@ -97,6 +97,8 @@ function onDelete(event) {
|
|
|
97
97
|
<div slot="icon">
|
|
98
98
|
{#if mod.value.type === 'rawscript'}
|
|
99
99
|
<LanguageIcon lang={mod.value.language} width={16} height={16} />
|
|
100
|
+
{:else if mod.summary == 'Terminate flow'}
|
|
101
|
+
<Square size={16} />
|
|
100
102
|
{:else if mod.value.type === 'identity'}
|
|
101
103
|
<Icon data={faLongArrowDown} scale={1.1} />
|
|
102
104
|
{:else if mod.value.type === 'script'}
|
|
@@ -71,10 +71,10 @@ export async function loadSchemaFromModule(module) {
|
|
|
71
71
|
let input_transforms = mod.input_transforms ?? module.input_transforms ?? {};
|
|
72
72
|
if (JSON.stringify(keys.sort()) !== JSON.stringify(Object.keys(input_transforms).sort())) {
|
|
73
73
|
input_transforms = keys.reduce((accu, key) => {
|
|
74
|
-
let nv = input_transforms[key] ?? (module.id == 'failure' && ['message', 'name'].includes(key)) ? { type: 'javascript', expr: `error.${key}` } : {
|
|
74
|
+
let nv = input_transforms[key] ?? ((module.id == 'failure' && ['message', 'name'].includes(key)) ? { type: 'javascript', expr: `error.${key}` } : {
|
|
75
75
|
type: 'static',
|
|
76
76
|
value: undefined
|
|
77
|
-
};
|
|
77
|
+
});
|
|
78
78
|
accu[key] = nv;
|
|
79
79
|
return accu;
|
|
80
80
|
}, {});
|
|
@@ -128,7 +128,7 @@ export function codeToStaticTemplate(code) {
|
|
|
128
128
|
if (lines.length == 1) {
|
|
129
129
|
const line = lines[0].trim();
|
|
130
130
|
if (line[0] == '`' && line.charAt(line.length - 1) == '`') {
|
|
131
|
-
return line.slice(1, line.length - 1);
|
|
131
|
+
return line.slice(1, line.length - 1).replaceAll('\\`', '`');
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
return undefined;
|
|
@@ -142,30 +142,36 @@ export function emptyFlowModuleState() {
|
|
|
142
142
|
}
|
|
143
143
|
const aCharCode = 'a'.charCodeAt(0);
|
|
144
144
|
export function numberToChars(n) {
|
|
145
|
+
if (n < 0) {
|
|
146
|
+
return "-" + numberToChars(-n);
|
|
147
|
+
}
|
|
145
148
|
var b = [n], sp, out, i, div;
|
|
146
149
|
sp = 0;
|
|
147
150
|
while (sp < b.length) {
|
|
148
|
-
if (b[sp] > 25) {
|
|
149
|
-
div = Math.floor(b[sp] /
|
|
151
|
+
if (b[sp] > (25)) {
|
|
152
|
+
div = Math.floor(b[sp] / (26));
|
|
150
153
|
b[sp + 1] = div - 1;
|
|
151
|
-
b[sp] %=
|
|
154
|
+
b[sp] %= (26);
|
|
152
155
|
}
|
|
153
156
|
sp += 1;
|
|
154
157
|
}
|
|
155
158
|
out = '';
|
|
156
159
|
for (i = 0; i < b.length; i += 1) {
|
|
157
160
|
let charCode = aCharCode + b[i];
|
|
158
|
-
out =
|
|
161
|
+
out = String.fromCharCode(charCode) + out;
|
|
159
162
|
}
|
|
160
163
|
return out;
|
|
161
164
|
}
|
|
162
165
|
export function charsToNumber(n) {
|
|
163
|
-
|
|
166
|
+
if (n.charAt(0) == '-') {
|
|
167
|
+
return charsToNumber(n.slice(1)) * -1;
|
|
168
|
+
}
|
|
169
|
+
let b = Math.pow(26, n.length - 1);
|
|
164
170
|
let res = 0;
|
|
165
171
|
for (let c of n) {
|
|
166
|
-
let charCode = c == '-' ? aCharCode +
|
|
172
|
+
let charCode = (c == '-' || c == '_') ? aCharCode + 25 : c.charCodeAt(0);
|
|
167
173
|
res += (charCode - aCharCode + 1) * b;
|
|
168
|
-
b = b /
|
|
174
|
+
b = b / 26;
|
|
169
175
|
}
|
|
170
176
|
return res - 1;
|
|
171
177
|
}
|
|
@@ -5,6 +5,7 @@ import { NODE, createIdGenerator, isNode, isLoop, isBranch } from '.';
|
|
|
5
5
|
import { defaultIfEmptyString, truncateRev } from '../../utils';
|
|
6
6
|
import { createEventDispatcher } from 'svelte';
|
|
7
7
|
import { charsToNumber, numberToChars } from '../flows/utils';
|
|
8
|
+
export let success = undefined;
|
|
8
9
|
export let modules = [];
|
|
9
10
|
export let failureModule = undefined;
|
|
10
11
|
export let minHeight = 0;
|
|
@@ -72,11 +73,20 @@ function getConvertedFlowModule(module, parent = undefined, edgeLabel = undefine
|
|
|
72
73
|
return flowModuleToLoop(module.value.modules, module, parent);
|
|
73
74
|
}
|
|
74
75
|
else if (type === 'branchone') {
|
|
75
|
-
const branches = [
|
|
76
|
-
|
|
76
|
+
const branches = [
|
|
77
|
+
{ summary: 'Default branch', modules: module.value.default },
|
|
78
|
+
...module.value.branches.map((b, i) => ({
|
|
79
|
+
summary: defaultIfEmptyString(b.summary, 'Branch ' + (i + 1)),
|
|
80
|
+
modules: b.modules
|
|
81
|
+
}))
|
|
82
|
+
];
|
|
83
|
+
return flowModuleToBranch(module, branches, ['Default', ...module.value.branches.map((x) => `${truncateRev(x.expr, 20)}`)], parent, insideLoop);
|
|
77
84
|
}
|
|
78
85
|
else if (type === 'branchall') {
|
|
79
|
-
const branches = module.value.branches.map((b) =>
|
|
86
|
+
const branches = module.value.branches.map((b, i) => ({
|
|
87
|
+
summary: defaultIfEmptyString(b.summary, `Branch ${i + 1}`),
|
|
88
|
+
modules: b.modules
|
|
89
|
+
}));
|
|
80
90
|
return flowModuleToBranch(module, branches, [], parent, insideLoop);
|
|
81
91
|
}
|
|
82
92
|
else if (type === 'flow') {
|
|
@@ -119,6 +129,16 @@ function getStateColor(state) {
|
|
|
119
129
|
return '#fff';
|
|
120
130
|
}
|
|
121
131
|
}
|
|
132
|
+
function getResultColor() {
|
|
133
|
+
switch (success) {
|
|
134
|
+
case true:
|
|
135
|
+
return getStateColor(FlowStatusModule.type.SUCCESS);
|
|
136
|
+
case false:
|
|
137
|
+
return getStateColor(FlowStatusModule.type.FAILURE);
|
|
138
|
+
default:
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
122
142
|
function flowModuleToNode(parentIds, id, title, host, onClickDetail, lang, edgeLabel, header, insideLoop = false) {
|
|
123
143
|
const langImg = {
|
|
124
144
|
deno: '/icons/ts-lang.svg',
|
|
@@ -132,7 +152,9 @@ function flowModuleToNode(parentIds, id, title, host, onClickDetail, lang, edgeL
|
|
|
132
152
|
inline: ''
|
|
133
153
|
};
|
|
134
154
|
const wrapperWidth = lang ? 'w-[calc(100%-70px)]' : 'w-[calc(100%-50px)]';
|
|
135
|
-
let
|
|
155
|
+
let generatedId = idGenerator.next().value;
|
|
156
|
+
let nodeId = id ?? numberToChars(generatedId - 1);
|
|
157
|
+
// console.log(id, generatedId, nodeId, charsToNumber(nodeId))
|
|
136
158
|
return {
|
|
137
159
|
id: charsToNumber(nodeId),
|
|
138
160
|
position: { x: -1, y: -1 },
|
|
@@ -201,14 +223,12 @@ function flowModuleToBranch(module, branches, edgesLabel, parent = undefined, in
|
|
|
201
223
|
if (branches.length == 0) {
|
|
202
224
|
branch.items.push([createVirtualNode(branchParent, 'No branches')]);
|
|
203
225
|
}
|
|
204
|
-
branches.forEach((modules, i) => {
|
|
226
|
+
branches.forEach(({ summary, modules }, i) => {
|
|
205
227
|
const items = [];
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
modules.forEach((module) => {
|
|
211
|
-
const item = getConvertedFlowModule(module, items.length ? items : numberToChars(branch.node.id), edgesLabel[i], insideLoop);
|
|
228
|
+
items.push(createVirtualNode(branchParent, summary, edgesLabel[i]));
|
|
229
|
+
if (modules.length) {
|
|
230
|
+
modules.forEach((module, j) => {
|
|
231
|
+
const item = getConvertedFlowModule(module, items, undefined, insideLoop);
|
|
212
232
|
item && items.push(item);
|
|
213
233
|
});
|
|
214
234
|
}
|
|
@@ -235,6 +255,7 @@ function flattenNestedNodes(nestedNodes, nodes = []) {
|
|
|
235
255
|
return array;
|
|
236
256
|
}
|
|
237
257
|
function layoutNodes(nodes) {
|
|
258
|
+
// console.log('layoutNodes', nodes)
|
|
238
259
|
const stratify = dagStratify().id(({ id }) => numberToChars(id));
|
|
239
260
|
const dag = stratify(nodes);
|
|
240
261
|
const layout = sugiyama()
|
|
@@ -300,9 +321,10 @@ function createEdges(nodes) {
|
|
|
300
321
|
});
|
|
301
322
|
return edges;
|
|
302
323
|
}
|
|
303
|
-
function createVirtualNode(parentIds, label,
|
|
324
|
+
function createVirtualNode(parentIds, label, edgeLabel, offset) {
|
|
325
|
+
const id = -idGenerator.next().value - 1 + (offset ?? 0);
|
|
304
326
|
return {
|
|
305
|
-
id
|
|
327
|
+
id,
|
|
306
328
|
position: { x: -1, y: -1 },
|
|
307
329
|
data: {
|
|
308
330
|
html: `
|
|
@@ -314,14 +336,15 @@ function createVirtualNode(parentIds, label, edgesLabel, offset) {
|
|
|
314
336
|
width: NODE.width,
|
|
315
337
|
height: NODE.height,
|
|
316
338
|
borderColor: selectedNode == label ? 'black' : '#999',
|
|
317
|
-
bgColor: selectedNode == label ? '#f5f5f5' : '#d4e4ff',
|
|
339
|
+
bgColor: label == 'Result' ? getResultColor() : selectedNode == label ? '#f5f5f5' : '#d4e4ff',
|
|
318
340
|
parentIds,
|
|
319
341
|
clickCallback: (node) => {
|
|
320
342
|
if (!notSelectable) {
|
|
321
343
|
selectedNode = label;
|
|
322
344
|
}
|
|
323
345
|
dispatch('click', label);
|
|
324
|
-
}
|
|
346
|
+
},
|
|
347
|
+
edgeLabel
|
|
325
348
|
};
|
|
326
349
|
}
|
|
327
350
|
function createErrorHandler(mod, parent_module) {
|
|
@@ -3,6 +3,7 @@ import { type FlowModule } from '../../gen';
|
|
|
3
3
|
import { type GraphModuleState } from '.';
|
|
4
4
|
declare const __propDef: {
|
|
5
5
|
props: {
|
|
6
|
+
success?: boolean | undefined;
|
|
6
7
|
modules?: FlowModule[] | undefined;
|
|
7
8
|
failureModule?: FlowModule | undefined;
|
|
8
9
|
minHeight?: number | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<script>export let height = '24px';
|
|
2
|
+
export let width = '24px';
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" {width} {height} viewBox="0 0 30 30">
|
|
6
|
+
<path
|
|
7
|
+
d="M 7 4 C 5.343 4 4 5.343 4 7 L 4 23 C 4 24.657 5.343 26 7 26 L 23 26 C 24.657 26 26 24.657 26 23 L 26 7 C 26 5.343 24.657 4 23 4 L 7 4 z M 8 8 L 22 8 L 22 22 L 8 22 L 8 8 z M 12 12 L 12 18 L 18 18 L 18 12 L 12 12 z"
|
|
8
|
+
/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
height?: string | undefined;
|
|
5
|
+
width?: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export type SquareIconProps = typeof __propDef.props;
|
|
13
|
+
export type SquareIconEvents = typeof __propDef.events;
|
|
14
|
+
export type SquareIconSlots = typeof __propDef.slots;
|
|
15
|
+
export default class SquareIcon extends SvelteComponentTyped<SquareIconProps, SquareIconEvents, SquareIconSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -45,6 +45,7 @@ import SupabaseIcon from './SupabaseIcon.svelte';
|
|
|
45
45
|
import WebdavIcon from './WebdavIcon.svelte';
|
|
46
46
|
import ZammadIcon from './ZammadIcon.svelte';
|
|
47
47
|
import SurrealdbIcon from './SurrealdbIcon.svelte';
|
|
48
|
+
import SquareIcon from './SquareIcon.svelte';
|
|
48
49
|
export declare const APP_TO_ICON_COMPONENT: {
|
|
49
50
|
readonly postgresql: typeof PostgresIcon;
|
|
50
51
|
readonly mysql: typeof Mysql;
|
|
@@ -92,6 +93,7 @@ export declare const APP_TO_ICON_COMPONENT: {
|
|
|
92
93
|
readonly mongodb: typeof MongodbIcon;
|
|
93
94
|
readonly reddit: typeof RedditIcon;
|
|
94
95
|
readonly supabase: typeof SupabaseIcon;
|
|
96
|
+
readonly square: typeof SquareIcon;
|
|
95
97
|
readonly webdav: typeof WebdavIcon;
|
|
96
98
|
readonly zammad: typeof ZammadIcon;
|
|
97
99
|
readonly nextcloud: typeof NextcloudIcon;
|
|
@@ -45,6 +45,7 @@ import SupabaseIcon from './SupabaseIcon.svelte';
|
|
|
45
45
|
import WebdavIcon from './WebdavIcon.svelte';
|
|
46
46
|
import ZammadIcon from './ZammadIcon.svelte';
|
|
47
47
|
import SurrealdbIcon from './SurrealdbIcon.svelte';
|
|
48
|
+
import SquareIcon from './SquareIcon.svelte';
|
|
48
49
|
export const APP_TO_ICON_COMPONENT = {
|
|
49
50
|
postgresql: PostgresIcon,
|
|
50
51
|
mysql: Mysql,
|
|
@@ -92,6 +93,7 @@ export const APP_TO_ICON_COMPONENT = {
|
|
|
92
93
|
mongodb: MongodbIcon,
|
|
93
94
|
reddit: RedditIcon,
|
|
94
95
|
supabase: SupabaseIcon,
|
|
96
|
+
square: SquareIcon,
|
|
95
97
|
webdav: WebdavIcon,
|
|
96
98
|
zammad: ZammadIcon,
|
|
97
99
|
nextcloud: NextcloudIcon,
|
|
@@ -3,6 +3,7 @@ import { page } from '$app/stores';
|
|
|
3
3
|
import { displayDate, displayDaysAgo, forLater, msToSec, truncateHash, truncateRev } from '../../utils';
|
|
4
4
|
import { faCalendar, faCircle, faClock, faFastForward, faHourglassHalf, faRobot, faSearch, faTimes, faUser, faBarsStaggered } from '@fortawesome/free-solid-svg-icons';
|
|
5
5
|
import { CalendarClock } from 'lucide-svelte';
|
|
6
|
+
import { onDestroy, onMount } from 'svelte';
|
|
6
7
|
import Icon from 'svelte-awesome';
|
|
7
8
|
import { check } from 'svelte-awesome/icons';
|
|
8
9
|
import { Badge } from '../common';
|
|
@@ -10,13 +11,28 @@ import ScheduleEditor from '../ScheduleEditor.svelte';
|
|
|
10
11
|
const SMALL_ICON_SCALE = 0.7;
|
|
11
12
|
export let job;
|
|
12
13
|
let scheduleEditor;
|
|
14
|
+
let time = Date.now();
|
|
15
|
+
let interval;
|
|
16
|
+
onMount(() => {
|
|
17
|
+
interval = setInterval(() => {
|
|
18
|
+
time = Date.now();
|
|
19
|
+
}, 1000);
|
|
20
|
+
});
|
|
21
|
+
onDestroy(() => {
|
|
22
|
+
interval && clearInterval(interval);
|
|
23
|
+
});
|
|
24
|
+
function endedDate(started_at, duration_ms) {
|
|
25
|
+
const started = new Date(started_at);
|
|
26
|
+
started.setMilliseconds(started.getMilliseconds() + duration_ms);
|
|
27
|
+
return displayDaysAgo(started.toString());
|
|
28
|
+
}
|
|
13
29
|
</script>
|
|
14
30
|
|
|
15
31
|
<ScheduleEditor on:update={() => goto('/schedules')} bind:this={scheduleEditor} />
|
|
16
32
|
|
|
17
33
|
<div class="border border-gray-400 rounded py-4">
|
|
18
|
-
<div class="grid grid-cols-1 lg:grid-cols-
|
|
19
|
-
<div class="flex-col">
|
|
34
|
+
<div class="grid grid-cols-1 lg:grid-cols-4 w-full gap-4">
|
|
35
|
+
<div class="flex-col col-span-2">
|
|
20
36
|
<div class="flex flex-row text-sm">
|
|
21
37
|
{#if job === undefined}
|
|
22
38
|
No job found
|
|
@@ -130,9 +146,17 @@ let scheduleEditor;
|
|
|
130
146
|
<Icon class="text-gray-700" data={faClock} scale={SMALL_ICON_SCALE} /><span
|
|
131
147
|
class="mx-1.5"
|
|
132
148
|
>
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
<span>
|
|
150
|
+
{#if job?.['duration_ms']}
|
|
151
|
+
Ended {#key time}
|
|
152
|
+
{endedDate(job.started_at, job?.['duration_ms'])}{/key}
|
|
153
|
+
{:else}
|
|
154
|
+
Started {#key time}
|
|
155
|
+
{displayDaysAgo(job.started_at ?? '')}{/key}
|
|
156
|
+
{/if}</span
|
|
157
|
+
>
|
|
158
|
+
</span></div
|
|
159
|
+
>
|
|
136
160
|
{/if}
|
|
137
161
|
{#if 'scheduled_for' in job && !job.running && job.scheduled_for && forLater(job.scheduled_for)}
|
|
138
162
|
<div class="inline-flex gap-1">
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
<script>import { pluralize, truncate } from '../../utils';
|
|
1
|
+
<script>import { copyToClipboard, pluralize, truncate } from '../../utils';
|
|
2
2
|
import { createEventDispatcher } from 'svelte';
|
|
3
3
|
import { Badge } from '../common';
|
|
4
4
|
import { NEVER_TESTED_THIS_FAR } from '../flows/utils';
|
|
5
5
|
import { getTypeAsString } from '../flows/utils';
|
|
6
|
-
import Popover from '../Popover.svelte';
|
|
7
6
|
import { computeKey } from './utils';
|
|
8
7
|
import WarningMessage from './WarningMessage.svelte';
|
|
9
8
|
export let json;
|
|
@@ -15,6 +14,7 @@ export let collapsed = level == 3 || Array.isArray(json);
|
|
|
15
14
|
export let rawKey = false;
|
|
16
15
|
export let topBrackets = false;
|
|
17
16
|
export let topLevelNode = false;
|
|
17
|
+
export let allowCopy = true;
|
|
18
18
|
const collapsedSymbol = '...';
|
|
19
19
|
let keys;
|
|
20
20
|
let isArray;
|
|
@@ -30,7 +30,10 @@ function collapse() {
|
|
|
30
30
|
collapsed = !collapsed;
|
|
31
31
|
}
|
|
32
32
|
const dispatch = createEventDispatcher();
|
|
33
|
-
function selectProp(key) {
|
|
33
|
+
function selectProp(key, value) {
|
|
34
|
+
if (pureViewer && allowCopy) {
|
|
35
|
+
copyToClipboard(value);
|
|
36
|
+
}
|
|
34
37
|
dispatch('select', rawKey ? key : computeKey(key, isArray, currentPath));
|
|
35
38
|
}
|
|
36
39
|
</script>
|
|
@@ -50,7 +53,7 @@ function selectProp(key) {
|
|
|
50
53
|
<ul class="w-full">
|
|
51
54
|
{#each keys as key, index}
|
|
52
55
|
<li class="pt-1">
|
|
53
|
-
<button on:click={() => selectProp(key)} class="whitespace-nowrap">
|
|
56
|
+
<button on:click={() => selectProp(key, key)} class="whitespace-nowrap">
|
|
54
57
|
{#if topLevelNode}
|
|
55
58
|
<Badge baseClass="border border-blue-600" color="indigo">{key}</Badge>
|
|
56
59
|
{:else}
|
|
@@ -78,7 +81,7 @@ function selectProp(key) {
|
|
|
78
81
|
class="val {pureViewer
|
|
79
82
|
? 'cursor-auto'
|
|
80
83
|
: ''} rounded hover:bg-blue-100 {getTypeAsString(json[key])}"
|
|
81
|
-
on:click={() => selectProp(key)}
|
|
84
|
+
on:click={() => selectProp(key, json[key])}
|
|
82
85
|
>
|
|
83
86
|
{#if json[key] === NEVER_TESTED_THIS_FAR}
|
|
84
87
|
<WarningMessage />
|
|
@@ -17,7 +17,7 @@ let displayResources = false;
|
|
|
17
17
|
const dispatch = createEventDispatcher();
|
|
18
18
|
const EMPTY_STRING = '';
|
|
19
19
|
let search = '';
|
|
20
|
-
const { propPickerConfig
|
|
20
|
+
const { propPickerConfig } = getContext('PropPickerWrapper');
|
|
21
21
|
$: flowInputsFiltered =
|
|
22
22
|
search === EMPTY_STRING
|
|
23
23
|
? pickableProperties.flow_input
|
|
@@ -68,6 +68,7 @@ async function loadResources() {
|
|
|
68
68
|
</div>
|
|
69
69
|
<div class="overflow-y-auto mb-2">
|
|
70
70
|
<ObjectViewer
|
|
71
|
+
allowCopy={false}
|
|
71
72
|
pureViewer={!$propPickerConfig}
|
|
72
73
|
json={flowInputsFiltered}
|
|
73
74
|
on:select={(e) => {
|
|
@@ -79,6 +80,7 @@ async function loadResources() {
|
|
|
79
80
|
<span class="font-bold text-sm">Error</span>
|
|
80
81
|
<div class="overflow-y-auto mb-2">
|
|
81
82
|
<ObjectViewer
|
|
83
|
+
allowCopy={false}
|
|
82
84
|
pureViewer={!$propPickerConfig}
|
|
83
85
|
json={{
|
|
84
86
|
error: {
|
|
@@ -95,6 +97,7 @@ async function loadResources() {
|
|
|
95
97
|
<span class="font-bold text-sm">Previous Result</span>
|
|
96
98
|
<div class="overflow-y-auto mb-2">
|
|
97
99
|
<ObjectViewer
|
|
100
|
+
allowCopy={false}
|
|
98
101
|
topLevelNode
|
|
99
102
|
pureViewer={!$propPickerConfig}
|
|
100
103
|
json={Object.fromEntries(
|
|
@@ -110,6 +113,7 @@ async function loadResources() {
|
|
|
110
113
|
<span class="font-bold text-sm">Resume payloads</span>
|
|
111
114
|
<div class="overflow-y-auto mb-2">
|
|
112
115
|
<ObjectViewer
|
|
116
|
+
allowCopy={false}
|
|
113
117
|
topLevelNode
|
|
114
118
|
pureViewer={!$propPickerConfig}
|
|
115
119
|
json={{
|
|
@@ -127,6 +131,7 @@ async function loadResources() {
|
|
|
127
131
|
<span class="font-bold text-sm">All Results</span>
|
|
128
132
|
<div class="overflow-y-auto mb-2">
|
|
129
133
|
<ObjectViewer
|
|
134
|
+
allowCopy={false}
|
|
130
135
|
topLevelNode
|
|
131
136
|
pureViewer={!$propPickerConfig}
|
|
132
137
|
collapsed={true}
|
|
@@ -152,6 +157,7 @@ async function loadResources() {
|
|
|
152
157
|
}}>-</Button
|
|
153
158
|
>
|
|
154
159
|
<ObjectViewer
|
|
160
|
+
allowCopy={false}
|
|
155
161
|
pureViewer={!$propPickerConfig}
|
|
156
162
|
rawKey={true}
|
|
157
163
|
json={variables}
|
|
@@ -179,6 +185,7 @@ async function loadResources() {
|
|
|
179
185
|
}}>-</Button
|
|
180
186
|
>
|
|
181
187
|
<ObjectViewer
|
|
188
|
+
allowCopy={false}
|
|
182
189
|
pureViewer={!$propPickerConfig}
|
|
183
190
|
rawKey={true}
|
|
184
191
|
json={resources}
|