windmill-components 1.60.4 → 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 +3 -2
- 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 +11 -3
- package/components/UserSettings.svelte.d.ts +2 -0
- package/components/VariableEditor.svelte +1 -1
- package/components/WhitelistIp.svelte +23 -0
- package/components/WhitelistIp.svelte.d.ts +14 -0
- package/components/apps/components/buttons/AppButton.svelte +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/{dataDisplay → display}/AppHtml.svelte +6 -5
- package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +1 -1
- 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/{dataDisplay → display}/VegaLiteHtml.svelte +2 -3
- package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +1 -0
- 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 +32 -21
- 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 +11 -6
- 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 -106
- 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 -40
- package/components/apps/types.js +1 -1
- package/components/apps/utils.d.ts +6 -5
- package/components/apps/utils.js +90 -94
- 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/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/numberInputs/AppNumberInput.svelte +0 -33
- package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
- package/components/apps/editor/ComponentEditor.svelte +0 -145
- 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 -499
- package/components/apps/editorUtils.d.ts +0 -1
- package/components/apps/editorUtils.js +0 -292
- /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
|
@@ -22,12 +22,14 @@ function updateSelected() {
|
|
|
22
22
|
}
|
|
23
23
|
</script>
|
|
24
24
|
|
|
25
|
-
<div
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
<div class="overflow-x-auto">
|
|
26
|
+
<div
|
|
27
|
+
class={classNames(
|
|
28
|
+
'border-b border-gray-200 flex flex-row whitespace-nowrap scrollbar-hidden',
|
|
29
|
+
$$props.class
|
|
30
|
+
)}
|
|
31
|
+
>
|
|
32
|
+
<slot {selected} />
|
|
33
|
+
</div>
|
|
32
34
|
</div>
|
|
33
35
|
<slot name="content" />
|
|
@@ -4,14 +4,13 @@ import { Button, ButtonPopup, ButtonPopupItem } from '../common';
|
|
|
4
4
|
import Drawer from '../common/drawer/Drawer.svelte';
|
|
5
5
|
import DrawerContent from '../common/drawer/DrawerContent.svelte';
|
|
6
6
|
import SimpleEditor from '../SimpleEditor.svelte';
|
|
7
|
-
import {
|
|
7
|
+
import { importFlowStore } from './flowStore';
|
|
8
8
|
import { Icon } from 'svelte-awesome';
|
|
9
9
|
let drawer = undefined;
|
|
10
10
|
let pendingJson;
|
|
11
11
|
async function importJson() {
|
|
12
|
+
$importFlowStore = JSON.parse(pendingJson);
|
|
12
13
|
await goto('/flows/add');
|
|
13
|
-
Object.assign($flowStore, JSON.parse(pendingJson));
|
|
14
|
-
initFlow($flowStore);
|
|
15
14
|
drawer?.closeDrawer?.();
|
|
16
15
|
}
|
|
17
16
|
</script>
|
|
@@ -19,12 +19,14 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
|
|
|
19
19
|
editor?.insertAtCursor(detail)
|
|
20
20
|
}}
|
|
21
21
|
>
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
<div class="border border-gray-400">
|
|
23
|
+
<SimpleEditor
|
|
24
|
+
bind:this={editor}
|
|
25
|
+
lang="javascript"
|
|
26
|
+
bind:code={branch.expr}
|
|
27
|
+
class="small-editor border "
|
|
28
|
+
shouldBindKey={false}
|
|
29
|
+
extraLib={stepPropPicker.extraLib}
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
30
32
|
</PropPickerWrapper>
|
|
@@ -23,133 +23,143 @@ let filter = '';
|
|
|
23
23
|
</script>
|
|
24
24
|
|
|
25
25
|
<div class="p-4 h-full flex flex-col">
|
|
26
|
-
{#if
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Trigger <Tooltip>
|
|
39
|
-
Used as a first step most commonly with a state and a schedule to watch for changes
|
|
40
|
-
on an external system, compute the diff since last time, set the new state. The
|
|
41
|
-
diffs are then treated one by one with a for-loop.
|
|
26
|
+
{#if summary == 'Terminate flow'}
|
|
27
|
+
<Alert role="info" title="The flow stops here"
|
|
28
|
+
>This is an identity step with an early stop that has 'true' for expression</Alert
|
|
29
|
+
>
|
|
30
|
+
{:else}{#if !failureModule}
|
|
31
|
+
<div class="center-center">
|
|
32
|
+
<div class="max-w-min">
|
|
33
|
+
<ToggleButtonGroup bind:selected={kind}>
|
|
34
|
+
<ToggleButton position="left" value="script" size="sm" startIcon={{ icon: faCode }}>
|
|
35
|
+
Action <Tooltip>
|
|
36
|
+
An action script is simply a script that is neither a trigger nor an approval
|
|
37
|
+
script. Those are the majority of the scripts.
|
|
42
38
|
</Tooltip>
|
|
43
39
|
</ToggleButton>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
{#if !shouldDisableTriggerScripts}
|
|
41
|
+
<ToggleButton
|
|
42
|
+
position="center"
|
|
43
|
+
value="trigger"
|
|
44
|
+
size="sm"
|
|
45
|
+
startIcon={{ icon: faBolt }}
|
|
46
|
+
>
|
|
47
|
+
Trigger <Tooltip>
|
|
48
|
+
Used as a first step most commonly with a state and a schedule to watch for
|
|
49
|
+
changes on an external system, compute the diff since last time, set the new
|
|
50
|
+
state. The diffs are then treated one by one with a for-loop.
|
|
51
|
+
</Tooltip>
|
|
52
|
+
</ToggleButton>
|
|
53
|
+
{/if}
|
|
54
|
+
<ToggleButton position="right" value="approval" size="sm" startIcon={{ icon: faCheck }}>
|
|
55
|
+
Approval <Tooltip>
|
|
56
|
+
An approval step will suspend the execution of a flow until it has been approved
|
|
57
|
+
through the resume endpoints or the approval page by and solely by the recipients of
|
|
58
|
+
those secret urls. Use `wmill.getResumeUrls()` in Typescript or
|
|
59
|
+
`wmill.get_resume_urls()` in Python from the wmill client to generate those URLs.
|
|
60
|
+
</Tooltip>
|
|
61
|
+
</ToggleButton>
|
|
62
|
+
</ToggleButtonGroup>
|
|
63
|
+
</div>
|
|
54
64
|
</div>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
</
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
<div class="flex flex-row flex-wrap gap-2">
|
|
73
|
-
<FlowScriptPicker
|
|
74
|
-
label="Typescript"
|
|
75
|
-
lang={Script.language.DENO}
|
|
76
|
-
on:click={() => {
|
|
77
|
-
dispatch('new', {
|
|
78
|
-
language: RawScript.language.DENO,
|
|
79
|
-
kind,
|
|
80
|
-
subkind: 'flow'
|
|
81
|
-
})
|
|
82
|
-
}}
|
|
83
|
-
/>
|
|
84
|
-
|
|
85
|
-
<FlowScriptPicker
|
|
86
|
-
label="Python"
|
|
87
|
-
lang={Script.language.PYTHON3}
|
|
88
|
-
on:click={() => {
|
|
89
|
-
dispatch('new', {
|
|
90
|
-
language: RawScript.language.PYTHON3,
|
|
91
|
-
kind,
|
|
92
|
-
subkind: 'flow'
|
|
93
|
-
})
|
|
94
|
-
}}
|
|
95
|
-
/>
|
|
96
|
-
|
|
97
|
-
{#if kind != 'approval'}
|
|
65
|
+
{/if}
|
|
66
|
+
{#if kind == 'trigger'}
|
|
67
|
+
<div class="mt-2" />
|
|
68
|
+
<Alert title="Trigger script automatic schedule" role="info">
|
|
69
|
+
A schedule will be automatically attached to this flow to run every 15 minutes. Adjust
|
|
70
|
+
frequency in 'Settings -> Schedule'</Alert
|
|
71
|
+
>
|
|
72
|
+
{/if}
|
|
73
|
+
<h3 class="pb-2 pt-4">
|
|
74
|
+
Inline new <span class="text-blue-500">{kind == 'script' ? 'action' : kind}</span> script
|
|
75
|
+
<Tooltip>
|
|
76
|
+
Embed a script directly inside a flow instead of saving the script into your workspace for
|
|
77
|
+
reuse. You can always save an inline script to your workspace later.
|
|
78
|
+
</Tooltip>
|
|
79
|
+
</h3>
|
|
80
|
+
<div class="flex flex-row">
|
|
81
|
+
<div class="flex flex-row flex-wrap gap-2">
|
|
98
82
|
<FlowScriptPicker
|
|
99
|
-
label="
|
|
100
|
-
lang={Script.language.
|
|
83
|
+
label="Typescript"
|
|
84
|
+
lang={Script.language.DENO}
|
|
101
85
|
on:click={() => {
|
|
102
86
|
dispatch('new', {
|
|
103
|
-
language: RawScript.language.
|
|
87
|
+
language: RawScript.language.DENO,
|
|
104
88
|
kind,
|
|
105
89
|
subkind: 'flow'
|
|
106
90
|
})
|
|
107
91
|
}}
|
|
108
92
|
/>
|
|
109
|
-
{/if}
|
|
110
93
|
|
|
111
|
-
{#if kind == 'script'}
|
|
112
94
|
<FlowScriptPicker
|
|
113
|
-
label="
|
|
114
|
-
lang={Script.language.
|
|
95
|
+
label="Python"
|
|
96
|
+
lang={Script.language.PYTHON3}
|
|
115
97
|
on:click={() => {
|
|
116
98
|
dispatch('new', {
|
|
117
|
-
language: RawScript.language.
|
|
99
|
+
language: RawScript.language.PYTHON3,
|
|
118
100
|
kind,
|
|
119
101
|
subkind: 'flow'
|
|
120
102
|
})
|
|
121
103
|
}}
|
|
122
104
|
/>
|
|
123
105
|
|
|
124
|
-
{#if
|
|
106
|
+
{#if kind != 'approval'}
|
|
125
107
|
<FlowScriptPicker
|
|
126
|
-
label=
|
|
127
|
-
lang=
|
|
128
|
-
on:click={() =>
|
|
129
|
-
dispatch('new', {
|
|
108
|
+
label="Go"
|
|
109
|
+
lang={Script.language.GO}
|
|
110
|
+
on:click={() => {
|
|
111
|
+
dispatch('new', {
|
|
112
|
+
language: RawScript.language.GO,
|
|
113
|
+
kind,
|
|
114
|
+
subkind: 'flow'
|
|
115
|
+
})
|
|
116
|
+
}}
|
|
130
117
|
/>
|
|
118
|
+
{/if}
|
|
131
119
|
|
|
120
|
+
{#if kind == 'script'}
|
|
132
121
|
<FlowScriptPicker
|
|
133
|
-
label=
|
|
134
|
-
lang=
|
|
135
|
-
on:click={() =>
|
|
136
|
-
dispatch('new', {
|
|
122
|
+
label="Bash"
|
|
123
|
+
lang={Script.language.BASH}
|
|
124
|
+
on:click={() => {
|
|
125
|
+
dispatch('new', {
|
|
126
|
+
language: RawScript.language.BASH,
|
|
127
|
+
kind,
|
|
128
|
+
subkind: 'flow'
|
|
129
|
+
})
|
|
130
|
+
}}
|
|
137
131
|
/>
|
|
132
|
+
|
|
133
|
+
{#if !failureModule}
|
|
134
|
+
<FlowScriptPicker
|
|
135
|
+
label={`PostgreSQL`}
|
|
136
|
+
lang="pgsql"
|
|
137
|
+
on:click={() =>
|
|
138
|
+
dispatch('new', { language: RawScript.language.DENO, kind, subkind: 'pgsql' })}
|
|
139
|
+
/>
|
|
140
|
+
|
|
141
|
+
<!-- <FlowScriptPicker
|
|
142
|
+
label={`MySQL`}
|
|
143
|
+
lang="mysql"
|
|
144
|
+
on:click={() =>
|
|
145
|
+
dispatch('new', { language: RawScript.language.DENO, kind, subkind: 'mysql' })}
|
|
146
|
+
/> -->
|
|
147
|
+
{/if}
|
|
138
148
|
{/if}
|
|
139
|
-
|
|
149
|
+
</div>
|
|
140
150
|
</div>
|
|
141
|
-
</div>
|
|
142
151
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
<h3 class="mb-2 mt-6"
|
|
153
|
+
>Use pre-made <span class="text-blue-500">{kind == 'script' ? 'action' : kind}</span> script</h3
|
|
154
|
+
>
|
|
155
|
+
{#if pick_existing == 'hub'}
|
|
156
|
+
<PickHubScript bind:filter {kind} on:pick>
|
|
157
|
+
<ToggleHubWorkspace bind:selected={pick_existing} />
|
|
158
|
+
</PickHubScript>
|
|
159
|
+
{:else}
|
|
160
|
+
<WorkspaceScriptPicker displayLock bind:filter {kind} on:pick>
|
|
161
|
+
<ToggleHubWorkspace bind:selected={pick_existing} />
|
|
162
|
+
</WorkspaceScriptPicker>
|
|
163
|
+
{/if}
|
|
154
164
|
{/if}
|
|
155
165
|
</div>
|
|
@@ -34,7 +34,7 @@ $: stepPropPicker = getStepPropPicker($flowStateStore, parentModule, previousMod
|
|
|
34
34
|
Iterator expression
|
|
35
35
|
<Tooltip>
|
|
36
36
|
List to iterate over. For more information see the
|
|
37
|
-
<a href="https://docs.windmill.dev/docs/getting_started/
|
|
37
|
+
<a href="https://docs.windmill.dev/docs/getting_started/flows_quickstart">docs.</a>
|
|
38
38
|
</Tooltip>
|
|
39
39
|
</div>
|
|
40
40
|
{#if mod.value.iterator.type == 'javascript'}
|
|
@@ -20,6 +20,7 @@ import FlowModuleEarlyStop from './FlowModuleEarlyStop.svelte';
|
|
|
20
20
|
import FlowModuleSuspend from './FlowModuleSuspend.svelte';
|
|
21
21
|
import FlowRetries from './FlowRetries.svelte';
|
|
22
22
|
import { getStepPropPicker } from '../previousResults';
|
|
23
|
+
import { deepEqual } from 'fast-equals';
|
|
23
24
|
import Button from '../../common/button/Button.svelte';
|
|
24
25
|
import Alert from '../../common/alert/Alert.svelte';
|
|
25
26
|
import FlowModuleSleep from './FlowModuleSleep.svelte';
|
|
@@ -65,11 +66,11 @@ async function reload(flowModule) {
|
|
|
65
66
|
const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
|
|
66
67
|
validCode = true;
|
|
67
68
|
setTimeout(() => {
|
|
68
|
-
if (
|
|
69
|
+
if (!deepEqual(value.input_transforms, input_transforms)) {
|
|
69
70
|
inputTransforms = input_transforms;
|
|
70
71
|
}
|
|
71
72
|
});
|
|
72
|
-
if (
|
|
73
|
+
if (!deepEqual(schema, $flowStateStore[flowModule.id]?.schema)) {
|
|
73
74
|
if (!$flowStateStore[flowModule.id]) {
|
|
74
75
|
$flowStateStore[flowModule.id] = { schema };
|
|
75
76
|
}
|
|
@@ -29,9 +29,8 @@ $: isExponentialRetryEnabled = Boolean(flowModule.retry?.exponential);
|
|
|
29
29
|
<h2 class="mt-2"
|
|
30
30
|
>Retries <Tooltip>
|
|
31
31
|
If defined, upon error this step will be retried with a delay and a maximum number of attempts
|
|
32
|
-
as defined below. If
|
|
33
|
-
|
|
34
|
-
handled prior.</Tooltip
|
|
32
|
+
as defined below. If both static and exponential delay is defined, the static delay attempts
|
|
33
|
+
are tried before the exponential ones.</Tooltip
|
|
35
34
|
></h2
|
|
36
35
|
>
|
|
37
36
|
|
|
@@ -70,22 +69,25 @@ $: isExponentialRetryEnabled = Boolean(flowModule.retry?.exponential);
|
|
|
70
69
|
}
|
|
71
70
|
}}
|
|
72
71
|
options={{
|
|
73
|
-
right: 'Exponential
|
|
72
|
+
right: 'Exponential backoff enabled'
|
|
74
73
|
}}
|
|
75
74
|
/>
|
|
76
75
|
{#if flowModule.retry?.exponential}
|
|
77
76
|
<span class="text-xs font-bold">Attempts</span>
|
|
78
77
|
<input bind:value={flowModule.retry.exponential.attempts} type="number" />
|
|
79
78
|
<span class="text-xs font-bold">Mulitplier</span>
|
|
79
|
+
<span class="text-xs text-gray-500">additional delay = multiplier * base ^ (# attempts)</span>
|
|
80
80
|
<input bind:value={flowModule.retry.exponential.multiplier} type="number" />
|
|
81
|
-
<span class="text-xs font-bold">
|
|
81
|
+
<span class="text-xs font-bold">Base</span>
|
|
82
82
|
<input bind:value={flowModule.retry.exponential.seconds} type="number" />
|
|
83
83
|
{:else}
|
|
84
84
|
<span class="text-xs font-bold">Attempts</span>
|
|
85
85
|
<input type="number" disabled />
|
|
86
86
|
<span class="text-xs font-bold">Mulitplier</span>
|
|
87
|
+
<span class="text-xs text-gray-500">additional delay = multiplier * seconds ^ (# attempts)</span
|
|
88
|
+
>
|
|
87
89
|
<input type="number" disabled />
|
|
88
|
-
<span class="text-xs font-bold">
|
|
90
|
+
<span class="text-xs font-bold">Base</span>
|
|
89
91
|
<input type="number" disabled />
|
|
90
92
|
{/if}
|
|
91
93
|
</div>
|
|
@@ -11,9 +11,16 @@ import { Alert } from '../../common';
|
|
|
11
11
|
import { FlowGraph } from '../../graph';
|
|
12
12
|
import { getContext } from 'svelte';
|
|
13
13
|
import autosize from 'svelte-autosize';
|
|
14
|
+
import Slider from '../../Slider.svelte';
|
|
15
|
+
import { page } from '$app/stores';
|
|
16
|
+
import { workspaceStore } from '../../../stores';
|
|
17
|
+
import { copyToClipboard } from '../../../utils';
|
|
18
|
+
import { Icon } from 'svelte-awesome';
|
|
19
|
+
import { faClipboard } from '@fortawesome/free-solid-svg-icons';
|
|
14
20
|
const { selectedId } = getContext('FlowEditorContext');
|
|
15
21
|
export let initialPath;
|
|
16
22
|
let topHeight = 0;
|
|
23
|
+
$: url = `${$page.url.hostname}/api/w/${$workspaceStore}/jobs/run/f/${$flowStore?.path}`;
|
|
17
24
|
</script>
|
|
18
25
|
|
|
19
26
|
<div class="h-full overflow-hidden">
|
|
@@ -26,34 +33,73 @@ let topHeight = 0;
|
|
|
26
33
|
<Tab value="settings-graph">Graph</Tab>
|
|
27
34
|
|
|
28
35
|
<svelte:fragment slot="content">
|
|
29
|
-
<TabContent value="settings-metadata" class="p-4">
|
|
30
|
-
<
|
|
36
|
+
<TabContent value="settings-metadata" class="p-4 h-full">
|
|
37
|
+
<div class="overflow-auto h-full">
|
|
38
|
+
<Path bind:path={$flowStore.path} {initialPath} namePlaceholder="flow" kind="flow" />
|
|
31
39
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
type="text"
|
|
36
|
-
bind:value={$flowStore.summary}
|
|
37
|
-
placeholder="A short summary of the flow displayed when the flow is listed"
|
|
38
|
-
id="flow-summary"
|
|
39
|
-
/>
|
|
40
|
-
</label>
|
|
41
|
-
|
|
42
|
-
<label class="block my-4" for="inp">
|
|
43
|
-
<span class="text-gray-700 text-sm">
|
|
44
|
-
Description
|
|
45
|
-
<Required required={false} />
|
|
46
|
-
<textarea
|
|
47
|
-
use:autosize
|
|
40
|
+
<label class="block my-4">
|
|
41
|
+
<span class="text-gray-700 text-sm">Summary <Required required={false} /></span>
|
|
42
|
+
<input
|
|
48
43
|
type="text"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
placeholder="A description to help users understand what this flow does and how to use it."
|
|
53
|
-
rows="3"
|
|
44
|
+
bind:value={$flowStore.summary}
|
|
45
|
+
placeholder="Short summary to be displayed when listed"
|
|
46
|
+
id="flow-summary"
|
|
54
47
|
/>
|
|
55
|
-
</
|
|
56
|
-
|
|
48
|
+
</label>
|
|
49
|
+
|
|
50
|
+
<label class="block my-4" for="inp">
|
|
51
|
+
<span class="text-gray-700 text-sm">
|
|
52
|
+
Description
|
|
53
|
+
<Required required={false} />
|
|
54
|
+
<textarea
|
|
55
|
+
use:autosize
|
|
56
|
+
type="text"
|
|
57
|
+
class="text-sm"
|
|
58
|
+
id="inp"
|
|
59
|
+
bind:value={$flowStore.description}
|
|
60
|
+
placeholder="What this flow does and how to use it."
|
|
61
|
+
rows="3"
|
|
62
|
+
/>
|
|
63
|
+
</span>
|
|
64
|
+
</label>
|
|
65
|
+
<Slider text="How to trigger from external events?">
|
|
66
|
+
<div class="text-sm text-gray-600 border p-4">
|
|
67
|
+
There are 2 ways to trigger a flow based on external events:
|
|
68
|
+
<ul class="pt-4">
|
|
69
|
+
<li
|
|
70
|
+
>1. Send a webhook after each event: <a
|
|
71
|
+
on:click={(e) => {
|
|
72
|
+
e.preventDefault()
|
|
73
|
+
copyToClipboard(url)
|
|
74
|
+
}}
|
|
75
|
+
href={$page.url.protocol + '//' + url}
|
|
76
|
+
class="whitespace-nowrap text-ellipsis overflow-hidden mr-1"
|
|
77
|
+
>
|
|
78
|
+
{url}
|
|
79
|
+
<span class="text-gray-700 ml-2">
|
|
80
|
+
<Icon data={faClipboard} />
|
|
81
|
+
</span>
|
|
82
|
+
</a>
|
|
83
|
+
</li>
|
|
84
|
+
<li class="mt-2">
|
|
85
|
+
<div class="flex flex-row gap-2">
|
|
86
|
+
2. Use a trigger script and schedule this flow to run as frequently as
|
|
87
|
+
needed and compare a state persisted in Windmill to the state of the
|
|
88
|
+
external system. If a difference is detected, then the rest of the flow is
|
|
89
|
+
triggered. Oftentimes, the second step of a flow is a for-loop that will
|
|
90
|
+
iterate over every elements. When using a trigger, a default schedule will
|
|
91
|
+
be created.
|
|
92
|
+
<img
|
|
93
|
+
class="shadow-lg border rounded"
|
|
94
|
+
alt="static button"
|
|
95
|
+
src="/trigger_button.png"
|
|
96
|
+
/>
|
|
97
|
+
</div>
|
|
98
|
+
</li></ul
|
|
99
|
+
>
|
|
100
|
+
</div>
|
|
101
|
+
</Slider>
|
|
102
|
+
</div>
|
|
57
103
|
</TabContent>
|
|
58
104
|
<TabContent value="settings-schedule" class="p-4">
|
|
59
105
|
<Alert type="info" title="Primary Schedule">
|
|
@@ -71,7 +117,7 @@ let topHeight = 0;
|
|
|
71
117
|
them to the next step. <br /><br />Beware that the `./shared` folder is not preserved
|
|
72
118
|
across suspends and sleeps.
|
|
73
119
|
</Alert>
|
|
74
|
-
<span class="my-2 text-sm font-bold">Shared
|
|
120
|
+
<span class="my-2 text-sm font-bold">Shared Directory</span>
|
|
75
121
|
<Toggle
|
|
76
122
|
bind:checked={$flowStore.value.same_worker}
|
|
77
123
|
options={{
|
|
@@ -12,4 +12,5 @@ export type FlowState = Record<string, FlowModuleState>;
|
|
|
12
12
|
* We also hold the data of the results of a test job, ran by the user.
|
|
13
13
|
*/
|
|
14
14
|
export declare const flowStateStore: import("svelte/store").Writable<FlowState>;
|
|
15
|
+
export declare const testStepStore: import("svelte/store").Writable<Record<string, any>>;
|
|
15
16
|
export declare function initFlowState(flow: Flow): Promise<void>;
|
|
@@ -7,6 +7,7 @@ import { emptyFlowModuleState } from './utils';
|
|
|
7
7
|
* We also hold the data of the results of a test job, ran by the user.
|
|
8
8
|
*/
|
|
9
9
|
export const flowStateStore = writable({});
|
|
10
|
+
export const testStepStore = writable({});
|
|
10
11
|
export async function initFlowState(flow) {
|
|
11
12
|
const modulesState = {};
|
|
12
13
|
await mapFlowModules(flow.value.modules, modulesState);
|
|
@@ -10,7 +10,9 @@ import { Mutex } from 'async-mutex';
|
|
|
10
10
|
export async function loadFlowModuleState(flowModule) {
|
|
11
11
|
try {
|
|
12
12
|
const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
|
|
13
|
-
if (flowModule.value.type == 'script' ||
|
|
13
|
+
if (flowModule.value.type == 'script' ||
|
|
14
|
+
flowModule.value.type == 'rawscript' ||
|
|
15
|
+
flowModule.value.type == 'flow') {
|
|
14
16
|
flowModule.value.input_transforms = input_transforms;
|
|
15
17
|
}
|
|
16
18
|
return { schema, previewResult: NEVER_TESTED_THIS_FAR };
|
|
@@ -115,7 +117,7 @@ export async function createFlow(id) {
|
|
|
115
117
|
value: {
|
|
116
118
|
type: 'flow',
|
|
117
119
|
path: '',
|
|
118
|
-
input_transforms: {}
|
|
120
|
+
input_transforms: {}
|
|
119
121
|
},
|
|
120
122
|
summary: ''
|
|
121
123
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Flow, FlowModule } from '../../gen';
|
|
2
2
|
export type FlowMode = 'push' | 'pull';
|
|
3
|
+
export declare const importFlowStore: import("svelte/store").Writable<Flow | undefined>;
|
|
3
4
|
export declare const flowStore: import("svelte/store").Writable<Flow>;
|
|
4
5
|
export declare function dfs<T>(modules: FlowModule[], f: (x: FlowModule) => T): T[];
|
|
5
6
|
export declare function initFlow(flow: Flow): Promise<void>;
|
|
@@ -2,6 +2,7 @@ import { sendUserToast } from '../../utils';
|
|
|
2
2
|
import { get, writable, derived } from 'svelte/store';
|
|
3
3
|
import { flowStateStore, initFlowState } from './flowState';
|
|
4
4
|
import { numberToChars } from './utils';
|
|
5
|
+
export const importFlowStore = writable(undefined);
|
|
5
6
|
export const flowStore = writable({
|
|
6
7
|
summary: '',
|
|
7
8
|
value: { modules: [] },
|
|
@@ -60,7 +60,7 @@ function removeBranch(index) {
|
|
|
60
60
|
</span>
|
|
61
61
|
</div>
|
|
62
62
|
<div>
|
|
63
|
-
<FlowModuleSchemaMap bind:modules={module.value.default} />
|
|
63
|
+
<FlowModuleSchemaMap parentType="branchone" bind:modules={module.value.default} />
|
|
64
64
|
</div>
|
|
65
65
|
|
|
66
66
|
{#each module.value.branches ?? [] as branch, branchIndex (branchIndex)}
|
|
@@ -99,7 +99,7 @@ function removeBranch(index) {
|
|
|
99
99
|
</div>
|
|
100
100
|
|
|
101
101
|
<div>
|
|
102
|
-
<FlowModuleSchemaMap bind:modules={branch.modules} />
|
|
102
|
+
<FlowModuleSchemaMap parentType="branchone" bind:modules={branch.modules} />
|
|
103
103
|
</div>
|
|
104
104
|
</div>
|
|
105
105
|
{/each}
|
|
@@ -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>
|