windmill-components 1.52.0 → 1.55.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/components/ApiConnectForm.svelte +42 -7
- package/components/ApiConnectForm.svelte.d.ts +2 -1
- package/components/AppConnect.svelte +19 -11
- package/components/ArgInfo.svelte +6 -2
- package/components/ArgInput.svelte +9 -3
- package/components/ArgInput.svelte.d.ts +1 -0
- package/components/CenteredPage.svelte +1 -1
- package/components/CenteredPage.svelte.d.ts +6 -2
- package/components/CronInput.svelte +1 -1
- package/components/DisplayResult.svelte +39 -2
- package/components/Dropdown.svelte +73 -100
- package/components/Dropdown.svelte.d.ts +1 -3
- package/components/Editor.svelte +16 -5
- package/components/EditorBar.svelte +69 -63
- package/components/EditorBar.svelte.d.ts +1 -0
- package/components/FlowBuilder.svelte +74 -68
- package/components/FlowGraphViewer.svelte +136 -34
- package/components/FlowGraphViewer.svelte.d.ts +1 -0
- package/components/FlowJobResult.svelte +6 -1
- package/components/FlowJobResult.svelte.d.ts +2 -0
- package/components/FlowMetadata.svelte +4 -2
- package/components/FlowPreviewContent.svelte +10 -23
- package/components/FlowPreviewContent.svelte.d.ts +3 -0
- package/components/FlowStatusViewer.svelte +155 -30
- package/components/FlowStatusViewer.svelte.d.ts +4 -2
- package/components/FlowViewer.svelte +3 -3
- package/components/FlowViewer.svelte.d.ts +1 -0
- package/components/HighlightCode.svelte +1 -1
- package/components/HighlightCode.svelte.d.ts +1 -0
- package/components/IconedPath.svelte +16 -6
- package/components/IconedPath.svelte.d.ts +2 -0
- package/components/IconedResourceType.svelte +5 -2
- package/components/InputTransformForm.svelte +92 -73
- package/components/InviteGlobalUser.svelte +2 -2
- package/components/InviteGlobalUser.svelte.d.ts +1 -1
- package/components/InviteUser.svelte +20 -6
- package/components/InviteUser.svelte.d.ts +1 -1
- package/components/ItemPicker.svelte +38 -27
- package/components/ItemPicker.svelte.d.ts +2 -1
- package/components/JobStatus.svelte +19 -13
- package/components/LogViewer.svelte +11 -3
- package/components/LogViewer.svelte.d.ts +1 -0
- package/components/ModuleStatus.svelte +38 -0
- package/components/ModuleStatus.svelte.d.ts +18 -0
- package/components/ObjectResourceInput.svelte +8 -52
- package/components/ObjectResourceInput.svelte.d.ts +0 -1
- package/components/Path.svelte +2 -2
- package/components/Path.svelte.d.ts +1 -1
- package/components/Popover.svelte +7 -1
- package/components/Popover.svelte.d.ts +3 -1
- package/components/ResourceEditor.svelte +57 -29
- package/components/ResourcePicker.svelte +12 -2
- package/components/SchemaEditor.svelte +2 -1
- package/components/SchemaForm.svelte +2 -1
- package/components/SchemaForm.svelte.d.ts +1 -0
- package/components/SchemaModal.svelte +11 -10
- package/components/ScriptBuilder.svelte +207 -192
- package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/components/ScriptEditor.svelte +49 -45
- package/components/ScriptEditor.svelte.d.ts +1 -0
- package/components/ScriptPicker.svelte.d.ts +1 -1
- package/components/ScriptSchema.svelte +11 -30
- package/components/ScriptSchema.svelte.d.ts +0 -1
- package/components/SharedBadge.svelte +2 -3
- package/components/SimpleEditor.svelte +6 -7
- package/components/SimpleEditor.svelte.d.ts +1 -0
- package/components/Star.svelte +2 -2
- package/components/SuperadminSettings.svelte +9 -38
- package/components/TableSimple.svelte +1 -1
- package/components/TestJobLoader.svelte +20 -8
- package/components/ToggleHubWorkspace.svelte +16 -0
- package/components/ToggleHubWorkspace.svelte.d.ts +16 -0
- package/components/Tooltip.svelte.d.ts +1 -1
- package/components/VariableEditor.svelte +22 -9
- package/components/apps/CreateApp.svelte +5 -2
- package/components/apps/CreateApp.svelte.d.ts +1 -1
- package/components/apps/components/DisplayComponent.svelte +7 -14
- package/components/apps/components/DisplayComponent.svelte.d.ts +3 -2
- package/components/apps/components/buttons/AppButton.svelte +34 -27
- package/components/apps/components/buttons/AppButton.svelte.d.ts +6 -6
- package/components/apps/components/dataDisplay/AppBarChart.svelte +33 -9
- package/components/apps/components/dataDisplay/AppBarChart.svelte.d.ts +3 -5
- package/components/apps/components/dataDisplay/AppPieChart.svelte +33 -12
- package/components/apps/components/dataDisplay/AppPieChart.svelte.d.ts +3 -5
- package/components/apps/components/dataDisplay/AppTable.svelte +27 -30
- package/components/apps/components/dataDisplay/AppTable.svelte.d.ts +4 -8
- package/components/apps/components/dataDisplay/AppText.svelte +16 -9
- package/components/apps/components/dataDisplay/AppText.svelte.d.ts +3 -2
- package/components/apps/components/dataDisplay/app.md +49 -0
- package/components/apps/components/form/AppForm.svelte +50 -0
- package/components/apps/components/form/AppForm.svelte.d.ts +25 -0
- package/components/apps/components/helpers/AlignWrapper.svelte +2 -1
- package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +1 -0
- package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
- package/components/apps/components/helpers/DebouncedInput.svelte.d.ts +2 -1
- package/components/apps/components/helpers/InputValue.svelte +15 -6
- package/components/apps/components/helpers/InputValue.svelte.d.ts +2 -2
- package/components/apps/components/helpers/NonRunnableComponent.svelte +20 -0
- package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +21 -0
- package/components/apps/components/helpers/RunnableComponent.svelte +36 -30
- package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +6 -7
- package/components/apps/components/helpers/RunnableWrapper.svelte +32 -0
- package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +26 -0
- package/components/apps/components/numberInputs/AppNumberInput.svelte +36 -0
- package/components/apps/components/numberInputs/AppNumberInput.svelte.d.ts +20 -0
- package/components/apps/components/selectInputs/AppCheckbox.svelte +4 -2
- package/components/apps/components/selectInputs/AppCheckbox.svelte.d.ts +2 -2
- package/components/apps/components/textInputs/AppTextInput.svelte +21 -0
- package/components/apps/components/textInputs/AppTextInput.svelte.d.ts +20 -0
- package/components/apps/editor/AppEditor.svelte +66 -55
- package/components/apps/editor/AppEditorHeader.svelte +4 -4
- package/components/apps/editor/AppPreview.svelte +42 -0
- package/components/apps/editor/AppPreview.svelte.d.ts +17 -0
- package/components/apps/editor/ComponentEditor.svelte +41 -20
- package/components/apps/editor/ComponentEditor.svelte.d.ts +2 -0
- package/components/apps/editor/ComponentHeader.svelte +28 -0
- package/components/apps/editor/ComponentHeader.svelte.d.ts +20 -0
- package/components/apps/editor/GridEditor.svelte +54 -5
- package/components/apps/editor/GridEditor.svelte.d.ts +1 -1
- package/components/apps/editor/RecomputeAllComponents.svelte +28 -0
- package/components/apps/editor/RecomputeAllComponents.svelte.d.ts +14 -0
- package/components/apps/editor/componentsPanel/ComponentList.svelte +94 -26
- package/components/apps/editor/componentsPanel/ComponentList.svelte.d.ts +1 -1
- package/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +2 -6
- package/components/apps/editor/componentsPanel/componentDefaultProps.js +1 -5
- package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -0
- package/components/apps/editor/componentsPanel/componentStaticValues.js +3 -1
- package/components/apps/editor/componentsPanel/data.js +191 -76
- package/components/apps/editor/contextPanel/ContextPanel.svelte +56 -48
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +67 -0
- package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +55 -0
- package/components/apps/editor/settingsPanel/ComponentPanel.svelte +154 -129
- package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte +70 -0
- package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte.d.ts +17 -0
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +6 -6
- package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +55 -87
- package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +3 -4
- package/components/apps/editor/settingsPanel/PickFlow.svelte +3 -2
- package/components/apps/editor/settingsPanel/PickFlow.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/PickInlineScript.svelte +3 -3
- package/components/apps/editor/settingsPanel/Recompute.svelte +46 -0
- package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +17 -0
- package/components/apps/editor/settingsPanel/StaticInputEditor.svelte +31 -14
- package/components/apps/editor/settingsPanel/StaticInputEditor.svelte.d.ts +3 -3
- package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +17 -0
- package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +19 -0
- package/components/apps/editor/settingsPanel/TableActionLabel.svelte +10 -0
- package/components/apps/editor/settingsPanel/TableActionLabel.svelte.d.ts +17 -0
- package/components/apps/editor/settingsPanel/TableActions.svelte +13 -9
- package/components/apps/editor/settingsPanel/UserInputEditor.svelte.d.ts +1 -1
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte +3 -2
- package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +1 -0
- package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +53 -0
- package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +21 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +98 -0
- package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +18 -0
- package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +81 -0
- package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte.d.ts +20 -0
- package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +81 -0
- package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte.d.ts +20 -0
- package/components/apps/inputType.d.ts +62 -0
- package/components/apps/inputType.js +1 -0
- package/components/apps/rx.d.ts +4 -4
- package/components/apps/rx.js +16 -4
- package/components/apps/types.d.ts +20 -54
- package/components/apps/utils.d.ts +11 -34
- package/components/apps/utils.js +54 -18
- package/components/common/alert/Alert.svelte +2 -1
- package/components/common/alert/Alert.svelte.d.ts +1 -0
- package/components/common/button/Button.svelte +1 -1
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +1 -1
- package/components/common/drawer/DrawerContent.svelte +23 -22
- package/components/common/drawer/DrawerContent.svelte.d.ts +1 -3
- package/components/common/kbd/Kbd.svelte.d.ts +2 -2
- package/components/common/languageIcons/LanguageIcon.svelte +4 -2
- package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
- package/components/common/menu/Menu.svelte +0 -1
- package/components/common/menu/MenuItem.svelte.d.ts +6 -2
- package/components/common/popup/Popup.svelte +0 -11
- package/components/common/table/AppRow.svelte +42 -26
- package/components/common/table/AppRow.svelte.d.ts +1 -1
- package/components/common/table/FlowRow.svelte +54 -49
- package/components/common/table/LanguageBadge.svelte +1 -1
- package/components/common/table/Row.svelte +27 -16
- package/components/common/table/Row.svelte.d.ts +2 -1
- package/components/common/table/RowIcon.svelte +13 -8
- package/components/common/table/ScriptRow.svelte +65 -57
- package/components/common/table/Table.svelte.d.ts +6 -2
- package/components/flows/CreateActionsFlow.svelte +14 -41
- package/components/flows/CreateActionsFlow.svelte.d.ts +1 -1
- package/components/flows/common/FlowCardHeader.svelte +7 -8
- package/components/flows/content/BranchPredicateEditor.svelte +30 -0
- package/components/flows/content/BranchPredicateEditor.svelte.d.ts +23 -0
- package/components/flows/content/CapturePayload.svelte +12 -8
- package/components/flows/content/DynamicInputHelpBox.svelte.d.ts +1 -1
- package/components/flows/content/FlowBranchAllWrapper.svelte +2 -2
- package/components/flows/content/FlowBranchOneWrapper.svelte +4 -36
- package/components/flows/content/FlowBranchesAllWrapper.svelte +91 -0
- package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +18 -0
- package/components/flows/content/FlowBranchesOneWrapper.svelte +88 -0
- package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +18 -0
- package/components/flows/content/FlowFailureModule.svelte.d.ts +1 -1
- package/components/flows/content/FlowInput.svelte +1 -2
- package/components/flows/content/FlowInput.svelte.d.ts +1 -1
- package/components/flows/content/FlowInputs.svelte +28 -26
- package/components/flows/content/FlowInputsFlow.svelte +101 -0
- package/components/flows/content/FlowInputsFlow.svelte.d.ts +20 -0
- package/components/flows/content/FlowLoop.svelte +10 -3
- package/components/flows/content/FlowModuleComponent.svelte +46 -35
- package/components/flows/content/FlowModuleEarlyStop.svelte +4 -3
- package/components/flows/content/FlowModuleHeader.svelte +22 -21
- package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
- package/components/flows/content/FlowModuleSleep.svelte +69 -0
- package/components/flows/content/FlowModuleSleep.svelte.d.ts +18 -0
- package/components/flows/content/FlowModuleSuspend.svelte +5 -63
- package/components/flows/content/FlowModuleSuspend.svelte.d.ts +0 -1
- package/components/flows/content/FlowModuleWrapper.svelte +59 -35
- package/components/flows/content/FlowPathViewer.svelte +20 -0
- package/components/flows/content/FlowPathViewer.svelte.d.ts +17 -0
- package/components/flows/content/FlowSchedules.svelte.d.ts +1 -1
- package/components/flows/content/FlowSettings.svelte +8 -12
- package/components/flows/flowState.js +2 -2
- package/components/flows/flowStateUtils.d.ts +7 -3
- package/components/flows/flowStateUtils.js +29 -8
- package/components/flows/header/FlowImportExportMenu.svelte.d.ts +1 -1
- package/components/flows/header/FlowPreviewButtons.svelte +6 -2
- package/components/flows/header/FlowPreviewButtons.svelte.d.ts +1 -1
- package/components/flows/map/FlowErrorHandlerItem.svelte +5 -5
- package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -1
- package/components/flows/map/FlowInputsItem.svelte.d.ts +1 -1
- package/components/flows/map/FlowModuleSchemaItem.svelte +30 -11
- package/components/flows/map/FlowModuleSchemaMap.svelte +26 -20
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
- package/components/flows/map/FlowSettingsItem.svelte +1 -1
- package/components/flows/map/FlowSettingsItem.svelte.d.ts +1 -1
- package/components/flows/map/InsertModuleButton.svelte +20 -4
- package/components/flows/map/InsertModuleButton.svelte.d.ts +1 -1
- package/components/flows/map/MapItem.svelte +11 -5
- package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/components/flows/pickers/PickHubFlow.svelte +72 -0
- package/components/flows/pickers/PickHubFlow.svelte.d.ts +20 -0
- package/components/flows/pickers/PickHubScript.svelte +65 -56
- package/components/flows/pickers/PickHubScript.svelte.d.ts +3 -1
- package/components/flows/pickers/PickScript.svelte +2 -2
- package/components/flows/pickers/WorkspaceScriptPicker.svelte +79 -19
- package/components/flows/pickers/WorkspaceScriptPicker.svelte.d.ts +5 -1
- package/components/flows/previousResults.d.ts +1 -0
- package/components/flows/previousResults.js +2 -1
- package/components/flows/propPicker/PropPickerWrapper.svelte +9 -1
- package/components/flows/utils.d.ts +0 -1
- package/components/flows/utils.js +6 -6
- package/components/graph/FlowGraph.svelte +120 -54
- package/components/graph/FlowGraph.svelte.d.ts +3 -2
- package/components/graph/model.d.ts +11 -0
- package/components/home/ItemsList.svelte +265 -0
- package/components/home/ItemsList.svelte.d.ts +16 -0
- package/components/home/ListFilters.svelte +37 -0
- package/components/home/ListFilters.svelte.d.ts +18 -0
- package/components/home/NoItemFound.svelte +6 -0
- package/components/home/NoItemFound.svelte.d.ts +23 -0
- package/components/icons/DatadogIcon.svelte +48 -0
- package/components/icons/DatadogIcon.svelte.d.ts +17 -0
- package/components/icons/FunkwhaleIcon.svelte +90 -0
- package/components/icons/FunkwhaleIcon.svelte.d.ts +17 -0
- package/components/icons/GdocsIcon.svelte +9 -0
- package/components/icons/GdocsIcon.svelte.d.ts +17 -0
- package/components/icons/HubspotIcon.svelte +9 -0
- package/components/icons/HubspotIcon.svelte.d.ts +17 -0
- package/components/icons/LinkedinIcon.svelte +9 -0
- package/components/icons/LinkedinIcon.svelte.d.ts +17 -0
- package/components/icons/Mail.svelte +9 -53
- package/components/icons/Mysql.svelte +8 -8
- package/components/icons/NextcloudIcon.svelte +9 -0
- package/components/icons/NextcloudIcon.svelte.d.ts +17 -0
- package/components/icons/QRCodeIcon.svelte +5 -0
- package/components/icons/QRCodeIcon.svelte.d.ts +16 -0
- package/components/icons/SendflakeIcon.svelte +15 -0
- package/components/icons/SendflakeIcon.svelte.d.ts +17 -0
- package/components/icons/StripeIcon.svelte +9 -0
- package/components/icons/StripeIcon.svelte.d.ts +17 -0
- package/components/icons/TelegramIcon.svelte +9 -0
- package/components/icons/TelegramIcon.svelte.d.ts +17 -0
- package/components/icons/WindmillIcon.svelte +3 -3
- package/components/icons/index.d.ts +23 -1
- package/components/icons/index.js +23 -1
- package/components/jobs/JobDetail.svelte +2 -2
- package/components/preview/FlowPreviewStatus.svelte +12 -23
- package/components/propertyPicker/PropPicker.svelte +16 -0
- package/components/propertyPicker/PropPickerResult.svelte +2 -3
- package/components/propertyPicker/WarningMessage.svelte.d.ts +6 -2
- package/components/scriptEditor/LogPanel.svelte +11 -4
- package/components/scripts/CreateActionsScript.svelte +13 -59
- package/components/scripts/CreateActionsScript.svelte.d.ts +1 -1
- package/components/sidebar/FavoriteMenu.svelte +52 -0
- package/components/sidebar/FavoriteMenu.svelte.d.ts +21 -0
- package/components/sidebar/SidebarContent.svelte +10 -19
- package/components/sidebar/SidebarContent.svelte.d.ts +0 -4
- package/components/sidebar/UserMenu.svelte +21 -4
- package/components/sidebar/WorkspaceMenu.svelte +6 -7
- package/editorUtils.d.ts +2 -0
- package/editorUtils.js +3 -1
- package/gen/core/OpenAPI.js +1 -1
- package/gen/index.d.ts +1 -0
- package/gen/models/CompletedJob.d.ts +1 -0
- package/gen/models/CreateWorkspace.d.ts +0 -1
- package/gen/models/EditWorkspaceUser.d.ts +2 -0
- package/gen/models/FlowModuleValue.d.ts +2 -1
- package/gen/models/FlowStatus.d.ts +3 -1
- package/gen/models/FlowStatusModule.d.ts +1 -1
- package/gen/models/FlowStatusModule.js +1 -1
- package/gen/models/Identity.d.ts +1 -0
- package/gen/models/ListableResource.d.ts +1 -0
- package/gen/models/ListableVariable.d.ts +1 -0
- package/gen/models/PathFlow.d.ts +6 -0
- package/gen/models/PathFlow.js +4 -0
- package/gen/models/PathScript.d.ts +1 -0
- package/gen/models/QueuedJob.d.ts +1 -0
- package/gen/models/Schedule.d.ts +2 -0
- package/gen/models/Usage.d.ts +1 -3
- package/gen/models/WorkspaceInvite.d.ts +1 -0
- package/gen/services/AppService.d.ts +7 -1
- package/gen/services/AppService.js +2 -1
- package/gen/services/JobService.d.ts +35 -5
- package/gen/services/JobService.js +14 -5
- package/gen/services/OauthService.d.ts +1 -1
- package/gen/services/ResourceService.d.ts +6 -2
- package/gen/services/ResourceService.js +2 -1
- package/gen/services/UserService.d.ts +6 -0
- package/gen/services/UserService.js +11 -0
- package/gen/services/WorkspaceService.d.ts +35 -0
- package/gen/services/WorkspaceService.js +41 -0
- package/package.json +56 -17
- package/script_helpers.d.ts +2 -1
- package/script_helpers.js +20 -3
- package/scripts.d.ts +1 -0
- package/scripts.js +8 -1
- package/stores.d.ts +11 -2
- package/stores.js +24 -6
- package/utils.d.ts +3 -1
- package/utils.js +11 -4
- package/components/ButtonAndDropdown.svelte +0 -25
- package/components/ButtonAndDropdown.svelte.d.ts +0 -23
- package/components/apps/components/index.d.ts +0 -22
- package/components/apps/components/index.js +0 -42
- package/components/apps/editor/settingsPanel/DynamicInputEditor.svelte +0 -64
- package/components/apps/editor/settingsPanel/DynamicInputEditor.svelte.d.ts +0 -17
- package/components/flows/content/FlowBranchesWrapper.svelte +0 -140
- package/components/flows/content/FlowBranchesWrapper.svelte.d.ts +0 -19
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<script>import { Badge, Skeleton } from '../../common';
|
|
2
|
+
import NoItemFound from '../../home/NoItemFound.svelte';
|
|
3
|
+
import SearchItems from '../../SearchItems.svelte';
|
|
4
|
+
import { FlowService } from '../../../gen';
|
|
5
|
+
import { workspaceStore } from '../../../stores';
|
|
6
|
+
import { emptyString } from '../../../utils';
|
|
7
|
+
import { createEventDispatcher } from 'svelte';
|
|
8
|
+
import { flip } from 'svelte/animate';
|
|
9
|
+
import { fade } from 'svelte/transition';
|
|
10
|
+
export let failureModule;
|
|
11
|
+
const dispatch = createEventDispatcher();
|
|
12
|
+
let items = undefined;
|
|
13
|
+
let filteredItems = undefined;
|
|
14
|
+
let filter = '';
|
|
15
|
+
$: $workspaceStore && loadFlows();
|
|
16
|
+
let ownerFilter = undefined;
|
|
17
|
+
$: prefilteredItems = ownerFilter ? items?.filter((x) => x.path.startsWith(ownerFilter)) : items;
|
|
18
|
+
$: owners = Array.from(new Set(filteredItems?.map((x) => x.path.split('/').slice(0, 2).join('/')) ?? [])).sort();
|
|
19
|
+
async function loadFlows() {
|
|
20
|
+
items = await FlowService.listFlows({ workspace: $workspaceStore });
|
|
21
|
+
}
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<SearchItems
|
|
25
|
+
{filter}
|
|
26
|
+
items={prefilteredItems}
|
|
27
|
+
bind:filteredItems
|
|
28
|
+
f={(x) => (emptyString(x.summary) ? x.path : x.summary + ' (' + x.path + ')')}
|
|
29
|
+
/>
|
|
30
|
+
<div class="flex flex-col min-h-0 p-4">
|
|
31
|
+
<h3 class="mb-4">Pick a Workspace Flow</h3>
|
|
32
|
+
<div class="w-full flex mt-1 items-center gap-2 mb-3">
|
|
33
|
+
<slot />
|
|
34
|
+
|
|
35
|
+
<input
|
|
36
|
+
type="text"
|
|
37
|
+
placeholder="Search Workspace Flow"
|
|
38
|
+
bind:value={filter}
|
|
39
|
+
class="text-2xl grow"
|
|
40
|
+
/>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
{#if filteredItems}
|
|
44
|
+
{#if owners.length > 0}
|
|
45
|
+
<div class="gap-2 w-full flex flex-wrap my-2">
|
|
46
|
+
{#each owners as owner (owner)}
|
|
47
|
+
<div in:fade={{ duration: 50 }} animate:flip={{ duration: 100 }}>
|
|
48
|
+
<Badge
|
|
49
|
+
class="cursor-pointer hover:bg-gray-200"
|
|
50
|
+
on:click={() => {
|
|
51
|
+
ownerFilter = ownerFilter == owner ? undefined : owner
|
|
52
|
+
}}
|
|
53
|
+
color={owner === ownerFilter ? 'blue' : 'gray'}
|
|
54
|
+
baseClass={owner === ownerFilter ? 'border border-blue-500' : 'border'}
|
|
55
|
+
>
|
|
56
|
+
{owner}
|
|
57
|
+
{#if owner === ownerFilter}✗{/if}
|
|
58
|
+
</Badge>
|
|
59
|
+
</div>
|
|
60
|
+
{/each}
|
|
61
|
+
</div>
|
|
62
|
+
{/if}
|
|
63
|
+
{#if filter.length > 0 && filteredItems.length == 0}
|
|
64
|
+
<NoItemFound />
|
|
65
|
+
{/if}
|
|
66
|
+
<ul class="divide-y divide-gray-200 overflow-auto">
|
|
67
|
+
{#each filteredItems as { path, summary, description, marked }}
|
|
68
|
+
<li class="flex flex-row w-full">
|
|
69
|
+
<button
|
|
70
|
+
class="py-4 px-1 gap-1 flex flex-row grow hover:bg-blue-50 bg-white transition-all text-black"
|
|
71
|
+
on:click={() => {
|
|
72
|
+
dispatch('pick', { path })
|
|
73
|
+
}}
|
|
74
|
+
>
|
|
75
|
+
<div class="flex flex-col">
|
|
76
|
+
<div class="text-sm font-semibold flex flex-col">
|
|
77
|
+
<span class="mr-2 text-left">
|
|
78
|
+
{#if marked}
|
|
79
|
+
{@html marked}
|
|
80
|
+
{:else}
|
|
81
|
+
{!summary || summary.length == 0 ? path : summary}
|
|
82
|
+
{/if}
|
|
83
|
+
</span>
|
|
84
|
+
<span class="font-normal text-xs text-left italic overflow-hidden"
|
|
85
|
+
>{path ?? ''}
|
|
86
|
+
</span>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="text-xs font-light italic text-left">{description ?? ''}</div>
|
|
89
|
+
</div>
|
|
90
|
+
</button>
|
|
91
|
+
</li>
|
|
92
|
+
{/each}
|
|
93
|
+
</ul>
|
|
94
|
+
{:else}
|
|
95
|
+
<div class="mt-6" />
|
|
96
|
+
|
|
97
|
+
{#each new Array(6) as _}
|
|
98
|
+
<Skeleton layout={[[4], 0.7]} />
|
|
99
|
+
{/each}
|
|
100
|
+
{/if}
|
|
101
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
failureModule: boolean;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
pick: CustomEvent<any>;
|
|
8
|
+
} & {
|
|
9
|
+
[evt: string]: CustomEvent<any>;
|
|
10
|
+
};
|
|
11
|
+
slots: {
|
|
12
|
+
default: {};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type FlowInputsFlowProps = typeof __propDef.props;
|
|
16
|
+
export type FlowInputsFlowEvents = typeof __propDef.events;
|
|
17
|
+
export type FlowInputsFlowSlots = typeof __propDef.slots;
|
|
18
|
+
export default class FlowInputsFlow extends SvelteComponentTyped<FlowInputsFlowProps, FlowInputsFlowEvents, FlowInputsFlowSlots> {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -12,6 +12,7 @@ import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
|
12
12
|
import { getStepPropPicker } from '../previousResults';
|
|
13
13
|
import { flowStateStore } from '../flowState';
|
|
14
14
|
import { flowStore } from '../flowStore';
|
|
15
|
+
import FlowModuleSleep from './FlowModuleSleep.svelte';
|
|
15
16
|
const { previewArgs } = getContext('FlowEditorContext');
|
|
16
17
|
export let mod;
|
|
17
18
|
export let parentModule;
|
|
@@ -81,8 +82,9 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
|
|
|
81
82
|
<Pane size={40} minSize={20} class="flex flex-col flex-1">
|
|
82
83
|
<Tabs bind:selected>
|
|
83
84
|
<!-- <Tab value="retries">Retries</Tab> -->
|
|
84
|
-
<Tab value="early-stop">Early Stop</Tab>
|
|
85
|
-
<Tab value="suspend">
|
|
85
|
+
<Tab value="early-stop">Early Stop/Break</Tab>
|
|
86
|
+
<Tab value="suspend">Suspend</Tab>
|
|
87
|
+
<Tab value="sleep">Sleep</Tab>
|
|
86
88
|
|
|
87
89
|
<svelte:fragment slot="content">
|
|
88
90
|
<div class="overflow-hidden bg-white" style="height:calc(100% - 32px);">
|
|
@@ -100,7 +102,12 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
|
|
|
100
102
|
|
|
101
103
|
<TabContent value="suspend" class="flex flex-col flex-1 h-full">
|
|
102
104
|
<div class="p-4 overflow-y-auto">
|
|
103
|
-
<FlowModuleSuspend
|
|
105
|
+
<FlowModuleSuspend bind:flowModule={mod} />
|
|
106
|
+
</div>
|
|
107
|
+
</TabContent>
|
|
108
|
+
<TabContent value="sleep" class="flex flex-col flex-1 h-full">
|
|
109
|
+
<div class="p-4 overflow-y-auto">
|
|
110
|
+
<FlowModuleSleep previousModuleId={previousModule?.id} bind:flowModule={mod} />
|
|
104
111
|
</div>
|
|
105
112
|
</TabContent>
|
|
106
113
|
</div>
|
|
@@ -11,7 +11,7 @@ import { RawScript } from '../../../gen';
|
|
|
11
11
|
import FlowCard from '../common/FlowCard.svelte';
|
|
12
12
|
import FlowModuleHeader from './FlowModuleHeader.svelte';
|
|
13
13
|
import { flowStateStore } from '../flowState';
|
|
14
|
-
import { scriptLangToEditorLang } from '../../../utils';
|
|
14
|
+
import { schemaToObject, scriptLangToEditorLang } from '../../../utils';
|
|
15
15
|
import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
|
|
16
16
|
import { afterUpdate, getContext, setContext } from 'svelte';
|
|
17
17
|
import { loadSchemaFromModule } from '../utils';
|
|
@@ -22,11 +22,15 @@ import FlowRetries from './FlowRetries.svelte';
|
|
|
22
22
|
import { getStepPropPicker } from '../previousResults';
|
|
23
23
|
import Button from '../../common/button/Button.svelte';
|
|
24
24
|
import Alert from '../../common/alert/Alert.svelte';
|
|
25
|
+
import FlowModuleSleep from './FlowModuleSleep.svelte';
|
|
26
|
+
import FlowPathViewer from './FlowPathViewer.svelte';
|
|
25
27
|
const { selectedId, previewArgs } = getContext('FlowEditorContext');
|
|
26
28
|
export let flowModule;
|
|
27
29
|
export let failureModule = false;
|
|
28
30
|
export let parentModule = undefined;
|
|
29
31
|
export let previousModule;
|
|
32
|
+
let value = flowModule.value;
|
|
33
|
+
$: value = flowModule.value;
|
|
30
34
|
let editor;
|
|
31
35
|
let modulePreview;
|
|
32
36
|
let websocketAlive = { pyright: false, black: false, deno: false, go: false };
|
|
@@ -36,18 +40,15 @@ let panes;
|
|
|
36
40
|
let totalTopGap = 0;
|
|
37
41
|
let validCode = true;
|
|
38
42
|
let width = 1200;
|
|
39
|
-
let inputTransforms =
|
|
40
|
-
|
|
41
|
-
: {};
|
|
42
|
-
$: if (flowModule.value.type === 'rawscript' || flowModule.value.type === 'script') {
|
|
43
|
-
flowModule.value.input_transforms = inputTransforms;
|
|
44
|
-
}
|
|
43
|
+
let inputTransforms = value.input_transforms;
|
|
44
|
+
$: value.input_transforms = inputTransforms;
|
|
45
45
|
$: stepPropPicker = failureModule
|
|
46
46
|
? {
|
|
47
47
|
pickableProperties: {
|
|
48
|
-
flow_input: $
|
|
48
|
+
flow_input: schemaToObject($flowStore.schema, $previewArgs),
|
|
49
49
|
priorIds: {},
|
|
50
|
-
previousId: undefined
|
|
50
|
+
previousId: undefined,
|
|
51
|
+
hasResume: false
|
|
51
52
|
},
|
|
52
53
|
extraLib: ''
|
|
53
54
|
}
|
|
@@ -64,8 +65,7 @@ async function reload(flowModule) {
|
|
|
64
65
|
const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
|
|
65
66
|
validCode = true;
|
|
66
67
|
setTimeout(() => {
|
|
67
|
-
if ((
|
|
68
|
-
JSON.stringify(flowModule.value.input_transforms) !== JSON.stringify(input_transforms)) {
|
|
68
|
+
if (JSON.stringify(value.input_transforms) !== JSON.stringify(input_transforms)) {
|
|
69
69
|
inputTransforms = input_transforms;
|
|
70
70
|
}
|
|
71
71
|
});
|
|
@@ -94,13 +94,14 @@ afterUpdate(() => {
|
|
|
94
94
|
|
|
95
95
|
<svelte:window on:keydown={onKeyDown} />
|
|
96
96
|
|
|
97
|
-
{#if
|
|
97
|
+
{#if value}
|
|
98
98
|
<div class="h-full" bind:this={wrapper} bind:clientWidth={width}>
|
|
99
99
|
<FlowCard bind:flowModule>
|
|
100
100
|
<svelte:fragment slot="header">
|
|
101
101
|
<FlowModuleHeader
|
|
102
102
|
bind:module={flowModule}
|
|
103
103
|
on:toggleSuspend={() => (selected = 'advanced-suspend')}
|
|
104
|
+
on:toggleSleep={() => (selected = 'advanced-sleep')}
|
|
104
105
|
on:toggleRetry={() => (selected = 'advanced-retries')}
|
|
105
106
|
on:toggleStopAfterIf={() => (selected = 'advanced-early-stop')}
|
|
106
107
|
on:fork={async () => {
|
|
@@ -120,12 +121,12 @@ afterUpdate(() => {
|
|
|
120
121
|
/>
|
|
121
122
|
</svelte:fragment>
|
|
122
123
|
|
|
123
|
-
{#if
|
|
124
|
-
<div class="border-b-2 shadow-sm px-1
|
|
124
|
+
{#if value.type === 'rawscript'}
|
|
125
|
+
<div class="border-b-2 shadow-sm px-1">
|
|
125
126
|
<EditorBar
|
|
126
127
|
{validCode}
|
|
127
128
|
{editor}
|
|
128
|
-
lang={
|
|
129
|
+
lang={value['language'] ?? 'deno'}
|
|
129
130
|
{websocketAlive}
|
|
130
131
|
iconOnly={width < 768}
|
|
131
132
|
/>
|
|
@@ -138,21 +139,21 @@ afterUpdate(() => {
|
|
|
138
139
|
style="max-height: calc(100% - {totalTopGap}px) !important;"
|
|
139
140
|
>
|
|
140
141
|
<Splitpanes horizontal>
|
|
141
|
-
<Pane size={
|
|
142
|
-
{#if
|
|
142
|
+
<Pane size={value.type === 'script' ? 30 : 50} minSize={20}>
|
|
143
|
+
{#if value.type === 'rawscript'}
|
|
143
144
|
<div class="h-full">
|
|
144
145
|
<Editor
|
|
145
146
|
bind:websocketAlive
|
|
146
147
|
bind:this={editor}
|
|
147
148
|
class="h-full px-2"
|
|
148
|
-
bind:code={
|
|
149
|
-
deno={
|
|
150
|
-
lang={scriptLangToEditorLang(
|
|
149
|
+
bind:code={value.content}
|
|
150
|
+
deno={value.language === RawScript.language.DENO}
|
|
151
|
+
lang={scriptLangToEditorLang(value.language)}
|
|
151
152
|
automaticLayout={true}
|
|
152
153
|
cmdEnterAction={async () => {
|
|
153
154
|
selected = 'test'
|
|
154
|
-
if (
|
|
155
|
-
|
|
155
|
+
if (value.type === 'rawscript') {
|
|
156
|
+
value.content = editor.getCode()
|
|
156
157
|
}
|
|
157
158
|
await reload(flowModule)
|
|
158
159
|
modulePreview?.runTestWithStepArgs()
|
|
@@ -163,11 +164,13 @@ afterUpdate(() => {
|
|
|
163
164
|
formatAction={() => reload(flowModule)}
|
|
164
165
|
/>
|
|
165
166
|
</div>
|
|
166
|
-
{:else if
|
|
167
|
-
<FlowModuleScript path={
|
|
167
|
+
{:else if value.type === 'script'}
|
|
168
|
+
<FlowModuleScript path={value.path} />
|
|
169
|
+
{:else if value.type === 'flow'}
|
|
170
|
+
<FlowPathViewer path={value.path} />
|
|
168
171
|
{/if}
|
|
169
172
|
</Pane>
|
|
170
|
-
<Pane size={
|
|
173
|
+
<Pane size={value.type === 'script' ? 70 : 50} minSize={20}>
|
|
171
174
|
<Tabs bind:selected>
|
|
172
175
|
<Tab value="inputs"><span class="font-semibold">Step Input</span></Tab>
|
|
173
176
|
<Tab value="test"><span class="font-semibold text-md">Test this step</span></Tab>
|
|
@@ -176,12 +179,15 @@ afterUpdate(() => {
|
|
|
176
179
|
<div class="h-[calc(100%-32px)]">
|
|
177
180
|
{#if selected === 'inputs'}
|
|
178
181
|
<div class="h-full overflow-auto">
|
|
179
|
-
<PropPickerWrapper
|
|
182
|
+
<PropPickerWrapper
|
|
183
|
+
pickableProperties={stepPropPicker.pickableProperties}
|
|
184
|
+
error={failureModule}
|
|
185
|
+
>
|
|
180
186
|
<SchemaForm
|
|
181
187
|
schema={$flowStateStore[$selectedId]?.schema ?? {}}
|
|
182
188
|
inputTransform={true}
|
|
183
189
|
previousModuleId={previousModule?.id}
|
|
184
|
-
bind:args={
|
|
190
|
+
bind:args={value.input_transforms}
|
|
185
191
|
bind:extraLib={stepPropPicker.extraLib}
|
|
186
192
|
/>
|
|
187
193
|
</PropPickerWrapper>
|
|
@@ -196,9 +202,10 @@ afterUpdate(() => {
|
|
|
196
202
|
<Tabs bind:selected>
|
|
197
203
|
<Tab value="advanced-retries">Retries</Tab>
|
|
198
204
|
{#if !$selectedId.includes('failure')}
|
|
199
|
-
<Tab value="advanced-early-stop">Early Stop</Tab>
|
|
200
|
-
<Tab value="advanced-suspend">
|
|
201
|
-
<Tab value="advanced-
|
|
205
|
+
<Tab value="advanced-early-stop">Early Stop/Break</Tab>
|
|
206
|
+
<Tab value="advanced-suspend">Suspend</Tab>
|
|
207
|
+
<Tab value="advanced-sleep">Sleep</Tab>
|
|
208
|
+
<Tab value="advanced-same_worker">Shared Directory</Tab>
|
|
202
209
|
{/if}
|
|
203
210
|
</Tabs>
|
|
204
211
|
{#if selected === 'advanced-retries'}
|
|
@@ -207,19 +214,23 @@ afterUpdate(() => {
|
|
|
207
214
|
<FlowModuleEarlyStop bind:flowModule class="px-4 pb-4 h-full overflow-auto" />
|
|
208
215
|
{:else if selected === 'advanced-suspend'}
|
|
209
216
|
<div class="px-4 pb-4 h-full overflow-auto">
|
|
210
|
-
<FlowModuleSuspend
|
|
217
|
+
<FlowModuleSuspend bind:flowModule />
|
|
218
|
+
</div>
|
|
219
|
+
{:else if selected === 'advanced-sleep'}
|
|
220
|
+
<div class="px-4 pb-4 h-full overflow-auto">
|
|
221
|
+
<FlowModuleSleep previousModuleId={previousModule?.id} bind:flowModule />
|
|
211
222
|
</div>
|
|
212
223
|
{:else if selected === 'advanced-same_worker'}
|
|
213
224
|
<div class="p-4 h-full overflow-auto">
|
|
214
|
-
<Alert type="info" title="Share a directory
|
|
215
|
-
If
|
|
216
|
-
|
|
225
|
+
<Alert type="info" title="Share a directory between steps">
|
|
226
|
+
If shared directory is set, will share a folder that will be mounted on
|
|
227
|
+
`./shared` for each of them to pass data between each other.
|
|
217
228
|
</Alert>
|
|
218
229
|
<Button
|
|
219
230
|
btnClasses="mt-4"
|
|
220
231
|
on:click={() => {
|
|
221
232
|
$selectedId = 'settings-same-worker'
|
|
222
|
-
}}>Set
|
|
233
|
+
}}>Set shared directory in the flow settings</Button
|
|
223
234
|
>
|
|
224
235
|
</div>
|
|
225
236
|
{/if}
|
|
@@ -12,10 +12,11 @@ $: result = $flowStateStore[flowModule.id]?.previewResult ?? NEVER_TESTED_THIS_F
|
|
|
12
12
|
|
|
13
13
|
<div class="flex flex-col items-start space-y-2 {$$props.class}">
|
|
14
14
|
<h2 class="mt-2"
|
|
15
|
-
>Early stop
|
|
15
|
+
>Early stop/Break<Tooltip>
|
|
16
16
|
If defined, at the end of the step, the predicate expression will be evaluated to decide if
|
|
17
17
|
the flow should stop early. Skipped flows are just a label useful to not see them in the runs
|
|
18
|
-
page
|
|
18
|
+
page. If stop early is run within a forloop, it will just break the for-loop and have it stop
|
|
19
|
+
at that iteration instead of stopping the whole flow.</Tooltip
|
|
19
20
|
></h2
|
|
20
21
|
>
|
|
21
22
|
<Toggle
|
|
@@ -31,7 +32,7 @@ $: result = $flowStateStore[flowModule.id]?.previewResult ?? NEVER_TESTED_THIS_F
|
|
|
31
32
|
}
|
|
32
33
|
}}
|
|
33
34
|
options={{
|
|
34
|
-
right: 'Early stop if condition met'
|
|
35
|
+
right: 'Early stop or Break if condition met'
|
|
35
36
|
}}
|
|
36
37
|
/>
|
|
37
38
|
|
|
@@ -1,43 +1,44 @@
|
|
|
1
1
|
<script>import Button from '../../common/button/Button.svelte';
|
|
2
|
-
import { EDITOR_BAR_WIDTH_THRESHOLD } from '../../EditorBar.svelte';
|
|
3
2
|
import { classNames } from '../../../utils';
|
|
4
|
-
import {
|
|
3
|
+
import { faBed, faCodeBranch, faSave, faStop } from '@fortawesome/free-solid-svg-icons';
|
|
5
4
|
import { createEventDispatcher } from 'svelte';
|
|
6
5
|
import Icon from 'svelte-awesome';
|
|
7
|
-
import {
|
|
6
|
+
import { PhoneIncoming, Repeat } from 'lucide-svelte';
|
|
8
7
|
export let module;
|
|
9
8
|
const dispatch = createEventDispatcher();
|
|
10
9
|
let width = 0;
|
|
11
|
-
$: shouldPick = isEmptyFlowModule(module);
|
|
12
|
-
$: iconOnly = width < EDITOR_BAR_WIDTH_THRESHOLD;
|
|
13
10
|
$: moduleRetry = module.retry?.constant || module.retry?.exponential;
|
|
14
11
|
</script>
|
|
15
12
|
|
|
16
13
|
<div class="flex flex-row space-x-2" bind:clientWidth={width}>
|
|
17
|
-
{#if
|
|
18
|
-
<
|
|
14
|
+
{#if module.value.type === 'script' || module.value.type === 'rawscript'}
|
|
15
|
+
<button
|
|
19
16
|
class={classNames('badge', module.stop_after_if ? 'badge-on' : 'badge-off')}
|
|
20
17
|
on:click={() => dispatch('toggleStopAfterIf')}
|
|
21
18
|
>
|
|
22
19
|
<Icon data={faStop} scale={0.8} />
|
|
23
|
-
</
|
|
24
|
-
<
|
|
25
|
-
class={classNames('badge', moduleRetry ? 'badge-on' : 'badge-off')}
|
|
20
|
+
</button>
|
|
21
|
+
<button
|
|
22
|
+
class={classNames('badge', moduleRetry ? 'badge-on' : 'badge-off', 'center-center')}
|
|
26
23
|
on:click={() => dispatch('toggleRetry')}
|
|
27
24
|
>
|
|
28
|
-
<
|
|
29
|
-
</
|
|
30
|
-
<
|
|
31
|
-
class={classNames(
|
|
32
|
-
|
|
33
|
-
Boolean(module.suspend) || Boolean(module.sleep) ? 'badge-on' : 'badge-off'
|
|
34
|
-
)}
|
|
35
|
-
on:click={() => dispatch('toggleSuspend')}
|
|
25
|
+
<Repeat size={14} />
|
|
26
|
+
</button>
|
|
27
|
+
<button
|
|
28
|
+
class={classNames('badge', Boolean(module.sleep) ? 'badge-on' : 'badge-off')}
|
|
29
|
+
on:click={() => dispatch('toggleSleep')}
|
|
36
30
|
>
|
|
37
31
|
<Icon data={faBed} scale={0.8} />
|
|
38
|
-
</
|
|
32
|
+
</button>
|
|
33
|
+
<button
|
|
34
|
+
class={classNames('badge', Boolean(module.suspend) ? 'badge-on' : 'badge-off')}
|
|
35
|
+
on:click={() => dispatch('toggleSuspend')}
|
|
36
|
+
>
|
|
37
|
+
<PhoneIncoming size={14} />
|
|
38
|
+
</button>
|
|
39
39
|
{/if}
|
|
40
|
-
{#if module.value.type === 'script'
|
|
40
|
+
{#if module.value.type === 'script'}
|
|
41
|
+
<div class="w-2" />
|
|
41
42
|
<Button
|
|
42
43
|
size="xs"
|
|
43
44
|
color="light"
|
|
@@ -50,7 +51,7 @@ $: moduleRetry = module.retry?.constant || module.retry?.exponential;
|
|
|
50
51
|
</Button>
|
|
51
52
|
{/if}
|
|
52
53
|
|
|
53
|
-
{#if module.value.type === 'rawscript'
|
|
54
|
+
{#if module.value.type === 'rawscript'}
|
|
54
55
|
<Button
|
|
55
56
|
size="xs"
|
|
56
57
|
color="light"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<script>import InputTransformForm from '../../InputTransformForm.svelte';
|
|
2
|
+
import Toggle from '../../Toggle.svelte';
|
|
3
|
+
import Tooltip from '../../Tooltip.svelte';
|
|
4
|
+
import { emptySchema } from '../../../utils';
|
|
5
|
+
import { getContext } from 'svelte';
|
|
6
|
+
import { flowStateStore } from '../flowState';
|
|
7
|
+
import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
|
|
8
|
+
export let flowModule;
|
|
9
|
+
export let previousModuleId;
|
|
10
|
+
const { selectedId } = getContext('FlowEditorContext');
|
|
11
|
+
let schema = emptySchema();
|
|
12
|
+
schema.properties['sleep'] = {
|
|
13
|
+
type: 'number',
|
|
14
|
+
description: 'Sleep time in seconds'
|
|
15
|
+
};
|
|
16
|
+
let editor = undefined;
|
|
17
|
+
const result = $flowStateStore[$selectedId]?.previewResult ?? {};
|
|
18
|
+
$: isSleepEnabled = Boolean(flowModule.sleep);
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<h2 class="mt-2"
|
|
22
|
+
>Sleep<Tooltip>
|
|
23
|
+
If defined, at the end of the step, the flow will sleep for a number of seconds before
|
|
24
|
+
scheduling the next job (if any, no effect if the step is the last one). Sleeping is passive and
|
|
25
|
+
does not consume any resources.</Tooltip
|
|
26
|
+
></h2
|
|
27
|
+
>
|
|
28
|
+
<Toggle
|
|
29
|
+
checked={isSleepEnabled}
|
|
30
|
+
on:change={() => {
|
|
31
|
+
if (isSleepEnabled && flowModule.sleep != undefined) {
|
|
32
|
+
flowModule.sleep = undefined
|
|
33
|
+
} else {
|
|
34
|
+
flowModule.sleep = {
|
|
35
|
+
type: 'static',
|
|
36
|
+
value: 0
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}}
|
|
40
|
+
options={{
|
|
41
|
+
right: 'Sleep after module successful execution'
|
|
42
|
+
}}
|
|
43
|
+
/>
|
|
44
|
+
<div>
|
|
45
|
+
<span class="text-xs font-bold">Sleep for duration (seconds)</span>
|
|
46
|
+
|
|
47
|
+
{#if flowModule.sleep && schema.properties['sleep']}
|
|
48
|
+
<div class="border">
|
|
49
|
+
<PropPickerWrapper
|
|
50
|
+
notSelectable
|
|
51
|
+
{result}
|
|
52
|
+
displayContext={false}
|
|
53
|
+
pickableProperties={undefined}
|
|
54
|
+
on:select={({ detail }) => {
|
|
55
|
+
editor?.insertAtCursor(detail)
|
|
56
|
+
}}
|
|
57
|
+
>
|
|
58
|
+
<InputTransformForm
|
|
59
|
+
bind:arg={flowModule.sleep}
|
|
60
|
+
argName="sleep"
|
|
61
|
+
{schema}
|
|
62
|
+
{previousModuleId}
|
|
63
|
+
/>
|
|
64
|
+
</PropPickerWrapper>
|
|
65
|
+
</div>
|
|
66
|
+
{:else}
|
|
67
|
+
<input type="number" disabled />
|
|
68
|
+
{/if}
|
|
69
|
+
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { FlowModule } from '../../../gen';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
flowModule: FlowModule;
|
|
6
|
+
previousModuleId: string | undefined;
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
[evt: string]: CustomEvent<any>;
|
|
10
|
+
};
|
|
11
|
+
slots: {};
|
|
12
|
+
};
|
|
13
|
+
export type FlowModuleSleepProps = typeof __propDef.props;
|
|
14
|
+
export type FlowModuleSleepEvents = typeof __propDef.events;
|
|
15
|
+
export type FlowModuleSleepSlots = typeof __propDef.slots;
|
|
16
|
+
export default class FlowModuleSleep extends SvelteComponentTyped<FlowModuleSleepProps, FlowModuleSleepEvents, FlowModuleSleepSlots> {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -1,29 +1,21 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import Toggle from '../../Toggle.svelte';
|
|
1
|
+
<script>import Toggle from '../../Toggle.svelte';
|
|
3
2
|
import Tooltip from '../../Tooltip.svelte';
|
|
4
3
|
import { emptySchema } from '../../../utils';
|
|
5
|
-
import { getContext } from 'svelte';
|
|
6
|
-
import { flowStateStore } from '../flowState';
|
|
7
|
-
import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
|
|
8
4
|
export let flowModule;
|
|
9
|
-
export let previousModuleId;
|
|
10
|
-
const { selectedId } = getContext('FlowEditorContext');
|
|
11
5
|
let schema = emptySchema();
|
|
12
6
|
schema.properties['sleep'] = {
|
|
13
7
|
type: 'number',
|
|
14
8
|
description: 'Sleep time in seconds'
|
|
15
9
|
};
|
|
16
|
-
let editor = undefined;
|
|
17
|
-
const result = $flowStateStore[$selectedId]?.previewResult ?? {};
|
|
18
10
|
$: isSuspendEnabled = Boolean(flowModule.suspend);
|
|
19
|
-
$: isSleepEnabled = Boolean(flowModule.sleep);
|
|
20
11
|
</script>
|
|
21
12
|
|
|
22
13
|
<h2 class="mt-2"
|
|
23
14
|
>Suspend<Tooltip>
|
|
24
15
|
If defined, at the end of the step, the flow will be suspended until it receives external
|
|
25
16
|
requests to be resumed or canceled. This is most useful to implement approval steps but can be
|
|
26
|
-
used flexibly for other purpose. To get the resume urls, use `wmill.
|
|
17
|
+
used flexibly for other purpose. To get the resume urls, use `wmill.getResumeUrls()` in
|
|
18
|
+
Typescript, or `wmill.get_resume_urls()` in Python.</Tooltip
|
|
27
19
|
></h2
|
|
28
20
|
>
|
|
29
21
|
<Toggle
|
|
@@ -39,11 +31,11 @@ $: isSleepEnabled = Boolean(flowModule.sleep);
|
|
|
39
31
|
}
|
|
40
32
|
}}
|
|
41
33
|
options={{
|
|
42
|
-
right: 'Suspend flow execution until approvals received'
|
|
34
|
+
right: 'Suspend flow execution until events/approvals received'
|
|
43
35
|
}}
|
|
44
36
|
/>
|
|
45
37
|
<div class="mb-4">
|
|
46
|
-
<span class="text-xs font-bold">Number of approvals required for resuming flow</span>
|
|
38
|
+
<span class="text-xs font-bold">Number of approvals/events required for resuming flow</span>
|
|
47
39
|
|
|
48
40
|
{#if flowModule.suspend}
|
|
49
41
|
<input bind:value={flowModule.suspend.required_events} type="number" min="1" placeholder="1" />
|
|
@@ -59,53 +51,3 @@ $: isSleepEnabled = Boolean(flowModule.sleep);
|
|
|
59
51
|
<input type="number" disabled />
|
|
60
52
|
{/if}
|
|
61
53
|
</div>
|
|
62
|
-
|
|
63
|
-
<h2 class="mt-4"
|
|
64
|
-
>Sleep<Tooltip>
|
|
65
|
-
If defined, at the end of the step, the flow will sleep for a number of seconds before
|
|
66
|
-
scheduling the next job (if any, no effect if the step is the last one). Sleeping is passive and
|
|
67
|
-
does not consume any resources.</Tooltip
|
|
68
|
-
></h2
|
|
69
|
-
>
|
|
70
|
-
<Toggle
|
|
71
|
-
checked={isSleepEnabled}
|
|
72
|
-
on:change={() => {
|
|
73
|
-
if (isSleepEnabled && flowModule.sleep != undefined) {
|
|
74
|
-
flowModule.sleep = undefined
|
|
75
|
-
} else {
|
|
76
|
-
flowModule.sleep = {
|
|
77
|
-
type: 'static',
|
|
78
|
-
value: 0
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}}
|
|
82
|
-
options={{
|
|
83
|
-
right: 'Sleep after module successful execution'
|
|
84
|
-
}}
|
|
85
|
-
/>
|
|
86
|
-
<div>
|
|
87
|
-
<span class="text-xs font-bold">Sleep for duration (seconds)</span>
|
|
88
|
-
|
|
89
|
-
{#if flowModule.sleep && schema.properties['sleep']}
|
|
90
|
-
<div class="border">
|
|
91
|
-
<PropPickerWrapper
|
|
92
|
-
notSelectable
|
|
93
|
-
{result}
|
|
94
|
-
displayContext={false}
|
|
95
|
-
pickableProperties={undefined}
|
|
96
|
-
on:select={({ detail }) => {
|
|
97
|
-
editor?.insertAtCursor(detail)
|
|
98
|
-
}}
|
|
99
|
-
>
|
|
100
|
-
<InputTransformForm
|
|
101
|
-
bind:arg={flowModule.sleep}
|
|
102
|
-
argName="sleep"
|
|
103
|
-
{schema}
|
|
104
|
-
{previousModuleId}
|
|
105
|
-
/>
|
|
106
|
-
</PropPickerWrapper>
|
|
107
|
-
</div>
|
|
108
|
-
{:else}
|
|
109
|
-
<input type="number" disabled />
|
|
110
|
-
{/if}
|
|
111
|
-
</div>
|