windmill-components 1.35.42 → 1.36.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/AppConnect.svelte +85 -59
- package/components/ArgInput.svelte +50 -33
- package/components/ArgInput.svelte.d.ts +1 -1
- package/components/Button.svelte +15 -48
- package/components/Button.svelte.d.ts +1 -1
- package/components/CronInput.svelte +1 -1
- package/components/DisplayResult.svelte +75 -67
- package/components/Dropdown.svelte +9 -7
- package/components/Editor.svelte +187 -178
- package/components/Editor.svelte.d.ts +4 -2
- package/components/EditorBar.svelte +135 -98
- package/components/EditorBar.svelte.d.ts +2 -1
- package/components/FlowBuilder.svelte +115 -134
- package/components/FlowJobResult.svelte +4 -5
- package/components/FlowModulesViewer.svelte +89 -7
- package/components/FlowModulesViewer.svelte.d.ts +1 -0
- package/components/FlowPreviewContent.svelte +88 -27
- package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/components/FlowStatusViewer.svelte +39 -24
- package/components/FlowStatusViewer.svelte.d.ts +0 -1
- package/components/FlowViewer.svelte +17 -11
- package/components/GroupModal.svelte +10 -1
- package/components/HighlightCode.svelte +22 -0
- package/components/HighlightCode.svelte.d.ts +17 -0
- package/components/IconedPath.svelte +9 -7
- package/components/InputTransformForm.svelte +97 -115
- package/components/InputTransformForm.svelte.d.ts +0 -1
- package/components/InputTransformsViewer.svelte +1 -1
- package/components/InviteGlobalUser.svelte +8 -8
- package/components/InviteUser.svelte +9 -9
- package/components/ItemPicker.svelte +37 -30
- package/components/ItemPicker.svelte.d.ts +2 -1
- package/components/JobStatus.svelte +2 -1
- package/components/LogViewer.svelte +23 -0
- package/components/LogViewer.svelte.d.ts +19 -0
- package/components/ModulePreview.svelte +107 -0
- package/components/ModulePreview.svelte.d.ts +24 -0
- package/components/Path.svelte +1 -1
- package/components/RadioButton.svelte +3 -2
- package/components/ResourceEditor.svelte +22 -34
- package/components/ResourceTypePicker.svelte +23 -34
- package/components/RunForm.svelte +34 -31
- package/components/RunForm.svelte.d.ts +6 -2
- package/components/SchemaEditor.svelte +19 -11
- package/components/SchemaForm.svelte +3 -3
- package/components/SchemaForm.svelte.d.ts +1 -1
- package/components/SchemaModal.svelte +18 -7
- package/components/ScriptBuilder.svelte +99 -83
- package/components/ScriptBuilder.svelte.d.ts +2 -4
- package/components/ScriptEditor.svelte +71 -143
- package/components/ScriptEditor.svelte.d.ts +0 -5
- package/components/ScriptPicker.svelte +24 -14
- package/components/ScriptPicker.svelte.d.ts +2 -1
- package/components/ScriptSchema.svelte +8 -11
- package/components/ScriptSchema.svelte.d.ts +0 -1
- package/components/ShareModal.svelte +6 -6
- package/components/SharedBadge.svelte +5 -13
- package/components/SimpleEditor.svelte +14 -10
- package/components/StringTypeNarrowing.svelte +24 -30
- package/components/TestJobLoader.svelte +106 -0
- package/components/TestJobLoader.svelte.d.ts +26 -0
- package/components/Tooltip.svelte +3 -2
- package/components/VariableEditor.svelte +15 -24
- package/components/common/actionRow/ActionRow.svelte +31 -0
- package/components/common/actionRow/ActionRow.svelte.d.ts +22 -0
- package/components/common/alert/Alert.svelte +53 -0
- package/components/common/alert/Alert.svelte.d.ts +20 -0
- package/components/common/alert/model.d.ts +1 -0
- package/components/common/alert/model.js +1 -0
- package/components/common/badge/Badge.svelte +76 -0
- package/components/common/badge/Badge.svelte.d.ts +28 -0
- package/components/common/badge/model.d.ts +8 -0
- package/components/common/badge/model.js +1 -0
- package/components/common/button/Button.svelte +110 -0
- package/components/common/button/Button.svelte.d.ts +39 -0
- package/components/common/button/model.d.ts +6 -0
- package/components/common/button/model.js +1 -0
- package/components/common/confirmationModal/ConfirmationModal.svelte +72 -0
- package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +23 -0
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +41 -0
- package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +14 -0
- package/components/common/confirmationModal/dirtyStore.d.ts +1 -0
- package/components/common/confirmationModal/dirtyStore.js +2 -0
- package/components/common/drawer/Drawer.svelte +3 -0
- package/components/common/drawer/Drawer.svelte.d.ts +2 -0
- package/components/common/index.d.ts +14 -0
- package/components/common/index.js +14 -0
- package/components/common/tabs/TabContent.svelte +3 -2
- package/components/common/tabs/TabContent.svelte.d.ts +1 -0
- package/components/common/tabs/Tabs.svelte +8 -1
- package/components/common/tabs/Tabs.svelte.d.ts +2 -0
- package/components/common/toggleButton/ToggleButton.svelte +20 -0
- package/components/common/toggleButton/ToggleButton.svelte.d.ts +19 -0
- package/components/common/toggleButton/ToggleButtonGroup.svelte +33 -0
- package/components/common/toggleButton/ToggleButtonGroup.svelte.d.ts +24 -0
- package/components/flows/FlowEditor.svelte +30 -0
- package/components/{FlowEditor.svelte.d.ts → flows/FlowEditor.svelte.d.ts} +1 -6
- package/components/flows/common/FlowCard.svelte +9 -0
- package/components/flows/common/FlowCard.svelte.d.ts +21 -0
- package/components/flows/common/FlowCardHeader.svelte +39 -0
- package/components/flows/common/FlowCardHeader.svelte.d.ts +20 -0
- package/components/flows/content/CopyFirstStepSchema.svelte +13 -0
- package/components/flows/{CopyFirstStepSchema.svelte.d.ts → content/CopyFirstStepSchema.svelte.d.ts} +0 -0
- package/components/flows/{DynamicInputHelpBox.svelte → content/DynamicInputHelpBox.svelte} +0 -0
- package/components/flows/{DynamicInputHelpBox.svelte.d.ts → content/DynamicInputHelpBox.svelte.d.ts} +0 -0
- package/components/flows/content/FlowEditorPanel.svelte +25 -0
- package/components/flows/content/FlowEditorPanel.svelte.d.ts +16 -0
- package/components/flows/content/FlowFailureModule.svelte +15 -0
- package/components/flows/content/FlowFailureModule.svelte.d.ts +14 -0
- package/components/flows/content/FlowInput.svelte +26 -0
- package/components/flows/{FlowInput.svelte.d.ts → content/FlowInput.svelte.d.ts} +0 -0
- package/components/flows/content/FlowInputs.svelte +91 -0
- package/components/flows/{FlowInputs.svelte.d.ts → content/FlowInputs.svelte.d.ts} +1 -0
- package/components/flows/content/FlowLoop.svelte +168 -0
- package/components/flows/content/FlowLoop.svelte.d.ts +18 -0
- package/components/flows/content/FlowLoopWrapper.svelte +9 -0
- package/components/flows/content/FlowLoopWrapper.svelte.d.ts +14 -0
- package/components/flows/content/FlowModule.svelte +211 -0
- package/components/flows/content/FlowModule.svelte.d.ts +29 -0
- package/components/flows/content/FlowModuleEarlyStop.svelte +76 -0
- package/components/flows/content/FlowModuleEarlyStop.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleHeader.svelte +157 -0
- package/components/flows/{FlowModuleHeader.svelte.d.ts → content/FlowModuleHeader.svelte.d.ts} +5 -3
- package/components/flows/content/FlowModuleScript.svelte +21 -0
- package/components/flows/content/FlowModuleScript.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleSuspend.svelte +27 -0
- package/components/flows/content/FlowModuleSuspend.svelte.d.ts +17 -0
- package/components/flows/content/FlowModuleWrapper.svelte +45 -0
- package/components/flows/content/FlowModuleWrapper.svelte.d.ts +14 -0
- package/components/flows/content/FlowRetries.svelte +80 -0
- package/components/flows/content/FlowRetries.svelte.d.ts +17 -0
- package/components/flows/content/FlowSchedules.svelte +18 -0
- package/components/flows/content/FlowSchedules.svelte.d.ts +14 -0
- package/components/flows/content/FlowSettings.svelte +78 -0
- package/components/flows/{FlowSettings.svelte.d.ts → content/FlowSettings.svelte.d.ts} +2 -6
- package/components/flows/content/RemoveStepConfirmationModal.svelte +32 -0
- package/components/flows/content/RemoveStepConfirmationModal.svelte.d.ts +19 -0
- package/components/flows/flowState.d.ts +8 -7
- package/components/flows/flowState.js +25 -46
- package/components/flows/flowStateUtils.d.ts +16 -14
- package/components/flows/flowStateUtils.js +81 -73
- package/components/flows/flowStore.js +7 -4
- package/components/flows/header/FlowImportExportMenu.svelte +55 -0
- package/components/flows/header/FlowImportExportMenu.svelte.d.ts +14 -0
- package/components/flows/header/FlowPreviewButtons.svelte +57 -0
- package/components/flows/header/FlowPreviewButtons.svelte.d.ts +14 -0
- package/components/flows/map/FlowErrorHandlerItem.svelte +60 -0
- package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +14 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte +80 -0
- package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +32 -0
- package/components/flows/map/FlowModuleSchemaMap.svelte +241 -0
- package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +20 -0
- package/components/flows/pickers/PickHubScript.svelte +5 -3
- package/components/flows/pickers/PickHubScript.svelte.d.ts +2 -1
- package/components/flows/pickers/PickScript.svelte +4 -12
- package/components/flows/pickers/PickScript.svelte.d.ts +1 -1
- package/components/flows/propPicker/PropPickerWrapper.svelte +44 -0
- package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +33 -0
- package/components/flows/scheduleUtils.d.ts +0 -1
- package/components/flows/scheduleUtils.js +0 -1
- package/components/flows/types.d.ts +8 -0
- package/components/flows/types.js +1 -0
- package/components/flows/utils.d.ts +3 -1
- package/components/flows/utils.js +26 -10
- package/components/icons/AirtableIcon.svelte +1 -1
- package/components/icons/DiscordIcon.svelte +1 -1
- package/components/icons/GCloudIcon.svelte +1 -1
- package/components/icons/GItlabIcon.svelte +1 -1
- package/components/icons/GSheetsIcon.svelte +1 -1
- package/components/icons/GcalIcon.svelte +1 -1
- package/components/icons/GdriveIcon.svelte +1 -1
- package/components/icons/GithubIcon.svelte +1 -1
- package/components/icons/GmailIcon.svelte +1 -1
- package/components/icons/HatIcon.svelte +19 -0
- package/components/icons/HatIcon.svelte.d.ts +16 -0
- package/components/icons/MastodonIcon.svelte +1 -1
- package/components/icons/MatrixIcon.svelte +1 -1
- package/components/icons/PostgresIcon.svelte +1 -1
- package/components/icons/S3Icon.svelte +1 -1
- package/components/icons/Slack.svelte +1 -1
- package/components/icons/TogglIcon.svelte +8 -46
- package/components/jobs/JobDetail.svelte +1 -1
- package/components/landing/FlowGettingStarted.svelte +22 -68
- package/components/landing/FlowLandingBox.svelte +1 -1
- package/components/landing/RessourceGettingStarted.svelte +7 -37
- package/components/landing/ScriptBox.svelte +33 -60
- package/components/landing/ScriptGettingStarted.svelte +23 -69
- package/components/propertyPicker/ObjectViewer.svelte +18 -12
- package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
- package/components/propertyPicker/PropPicker.svelte +108 -11
- package/components/propertyPicker/WarningMessage.svelte +2 -15
- package/components/script_editor/LogPanel.svelte +108 -119
- package/components/script_editor/LogPanel.svelte.d.ts +2 -0
- package/components/sidebar/SidebarContent.svelte +2 -2
- package/editorUtils.d.ts +3 -0
- package/editorUtils.js +1 -0
- package/gen/core/OpenAPI.js +1 -1
- package/gen/index.d.ts +1 -0
- package/gen/models/CompletedJob.d.ts +2 -1
- package/gen/models/CompletedJob.js +1 -0
- package/gen/models/FlowModule.d.ts +3 -0
- package/gen/models/FlowStatus.d.ts +3 -0
- package/gen/models/FlowStatusModule.d.ts +1 -1
- package/gen/models/Preview.d.ts +2 -1
- package/gen/models/Preview.js +1 -0
- package/gen/models/QueuedJob.d.ts +2 -1
- package/gen/models/QueuedJob.js +1 -0
- package/gen/models/RawScript.d.ts +2 -1
- package/gen/models/RawScript.js +1 -0
- package/gen/models/Retry.d.ts +11 -0
- package/gen/models/Retry.js +4 -0
- package/gen/models/Script.d.ts +9 -2
- package/gen/models/Script.js +8 -0
- package/gen/services/JobService.d.ts +40 -0
- package/gen/services/JobService.js +70 -0
- package/gen/services/ScriptService.d.ts +14 -3
- package/gen/services/ScriptService.js +13 -0
- package/infer.d.ts +1 -1
- package/infer.js +6 -1
- package/package.json +71 -38
- package/script_helpers.d.ts +8 -2
- package/script_helpers.js +88 -16
- package/stores.d.ts +1 -1
- package/utils.d.ts +8 -6
- package/utils.js +57 -21
- package/components/FlowEditor.svelte +0 -55
- package/components/FlowPreview.svelte +0 -107
- package/components/FlowPreview.svelte.d.ts +0 -23
- package/components/ModuleStep.svelte +0 -131
- package/components/ModuleStep.svelte.d.ts +0 -25
- package/components/flows/CopyFirstStepSchema.svelte +0 -13
- package/components/flows/FlowBox.svelte +0 -16
- package/components/flows/FlowBox.svelte.d.ts +0 -23
- package/components/flows/FlowBoxHeader.svelte +0 -16
- package/components/flows/FlowBoxHeader.svelte.d.ts +0 -21
- package/components/flows/FlowInput.svelte +0 -22
- package/components/flows/FlowInputs.svelte +0 -65
- package/components/flows/FlowModuleHeader.svelte +0 -109
- package/components/flows/FlowSettings.svelte +0 -165
- package/components/flows/FlowTimeline.svelte +0 -169
- package/components/flows/FlowTimeline.svelte.d.ts +0 -21
- package/components/flows/stepOpenedStore.d.ts +0 -1
- package/components/flows/stepOpenedStore.js +0 -6
- package/components/propertyPicker/OverlayPropertyPicker.svelte +0 -69
- package/components/propertyPicker/OverlayPropertyPicker.svelte.d.ts +0 -24
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
<script context="module">export {};
|
|
2
|
+
</script>
|
|
3
|
+
|
|
4
|
+
<script>import { VSplitPane } from 'svelte-split-pane';
|
|
5
|
+
import Tab from '../../common/tabs/Tab.svelte';
|
|
6
|
+
import TabContent from '../../common/tabs/TabContent.svelte';
|
|
7
|
+
import Tabs from '../../common/tabs/Tabs.svelte';
|
|
8
|
+
import Editor from '../../Editor.svelte';
|
|
9
|
+
import EditorBar from '../../EditorBar.svelte';
|
|
10
|
+
import ModulePreview from '../../ModulePreview.svelte';
|
|
11
|
+
import FlowInputs from './FlowInputs.svelte';
|
|
12
|
+
import { createInlineScriptModule, createLoop, createScriptFromInlineScript, fork, getStepPropPicker, isEmptyFlowModule, pickScript } from '../flowStateUtils';
|
|
13
|
+
import { flowStore } from '../flowStore';
|
|
14
|
+
import SchemaForm from '../../SchemaForm.svelte';
|
|
15
|
+
import { RawScript } from '../../../gen';
|
|
16
|
+
import FlowCard from '../common/FlowCard.svelte';
|
|
17
|
+
import FlowModuleHeader from './FlowModuleHeader.svelte';
|
|
18
|
+
import { flowStateStore } from '../flowState';
|
|
19
|
+
import { scriptLangToEditorLang } from '../../../utils';
|
|
20
|
+
import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
|
|
21
|
+
import { getContext, setContext } from 'svelte';
|
|
22
|
+
import { loadSchemaFromModule, selectedIdToIndexes } from '../utils';
|
|
23
|
+
import { writable } from 'svelte/store';
|
|
24
|
+
import FlowModuleScript from './FlowModuleScript.svelte';
|
|
25
|
+
import FlowModuleEarlyStop from './FlowModuleEarlyStop.svelte';
|
|
26
|
+
import FlowModuleSuspend from './FlowModuleSuspend.svelte';
|
|
27
|
+
import FlowRetries from './FlowRetries.svelte';
|
|
28
|
+
const { selectedId, select, previewArgs } = getContext('FlowEditorContext');
|
|
29
|
+
export let flowModule;
|
|
30
|
+
export let flowModuleState;
|
|
31
|
+
export let failureModule;
|
|
32
|
+
$: [parentIndex, childIndex] = selectedIdToIndexes($selectedId);
|
|
33
|
+
let editor;
|
|
34
|
+
let modulePreview;
|
|
35
|
+
let websocketAlive = { pyright: false, black: false, deno: false };
|
|
36
|
+
let selected = 'inputs';
|
|
37
|
+
$: shouldPick = isEmptyFlowModule(flowModule);
|
|
38
|
+
$: stepPropPicker = failureModule
|
|
39
|
+
? { pickableProperties: { previous_result: { error: 'the error message' } }, extraLib: '' }
|
|
40
|
+
: getStepPropPicker([parentIndex, childIndex], $flowStore.schema, $flowStateStore, $previewArgs);
|
|
41
|
+
function onKeyDown(event) {
|
|
42
|
+
if ((event.ctrlKey || event.metaKey) && event.key == 'Enter') {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
selected = 'test';
|
|
45
|
+
modulePreview?.runTestWithStepArgs();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function apply(fn, arg) {
|
|
49
|
+
const [module, moduleState] = await fn(arg);
|
|
50
|
+
if (JSON.stringify(flowModule) != JSON.stringify(module) ||
|
|
51
|
+
JSON.stringify(flowModuleState) != JSON.stringify(moduleState)) {
|
|
52
|
+
flowModule = module;
|
|
53
|
+
flowModuleState = moduleState;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function reload(flowModule) {
|
|
57
|
+
const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
|
|
58
|
+
flowModuleState.schema = schema;
|
|
59
|
+
flowModule.input_transforms = input_transforms;
|
|
60
|
+
}
|
|
61
|
+
async function applyCreateLoop() {
|
|
62
|
+
await apply(createLoop, null);
|
|
63
|
+
}
|
|
64
|
+
export const FLOW_MODULE_WIDTH_THRESHOLD = 768;
|
|
65
|
+
const width = writable(0);
|
|
66
|
+
setContext('FlowModuleWidth', {
|
|
67
|
+
width,
|
|
68
|
+
threshold: FLOW_MODULE_WIDTH_THRESHOLD
|
|
69
|
+
});
|
|
70
|
+
</script>
|
|
71
|
+
|
|
72
|
+
<svelte:window on:keydown={onKeyDown} />
|
|
73
|
+
|
|
74
|
+
<div class="flex flex-col h-full" bind:clientWidth={$width}>
|
|
75
|
+
<FlowCard bind:flowModule>
|
|
76
|
+
<svelte:fragment slot="header">
|
|
77
|
+
<FlowModuleHeader
|
|
78
|
+
bind:module={flowModule}
|
|
79
|
+
on:delete
|
|
80
|
+
on:toggleRetry={() => (selected = 'retries')}
|
|
81
|
+
on:toggleStopAfterIf={() => (selected = 'early-stop')}
|
|
82
|
+
on:fork={() => apply(fork, flowModule)}
|
|
83
|
+
on:createScriptFromInlineScript={() => {
|
|
84
|
+
apply(createScriptFromInlineScript, {
|
|
85
|
+
flowModule: flowModule,
|
|
86
|
+
suffix: $selectedId,
|
|
87
|
+
schema: flowModuleState.schema
|
|
88
|
+
})
|
|
89
|
+
}}
|
|
90
|
+
/>
|
|
91
|
+
</svelte:fragment>
|
|
92
|
+
{#if shouldPick}
|
|
93
|
+
<FlowInputs
|
|
94
|
+
shouldDisableTriggerScripts={parentIndex != 0}
|
|
95
|
+
shouldDisableLoopCreation={childIndex !== undefined ||
|
|
96
|
+
parentIndex === 0 ||
|
|
97
|
+
$selectedId.includes('failure')}
|
|
98
|
+
on:loop={() => {
|
|
99
|
+
applyCreateLoop()
|
|
100
|
+
select(['loop', $selectedId].join('-'))
|
|
101
|
+
}}
|
|
102
|
+
on:pick={(e) => apply(pickScript, e.detail.path)}
|
|
103
|
+
on:new={(e) =>
|
|
104
|
+
apply(createInlineScriptModule, {
|
|
105
|
+
language: e.detail.language,
|
|
106
|
+
kind: e.detail.kind,
|
|
107
|
+
subkind: e.detail.subkind
|
|
108
|
+
})}
|
|
109
|
+
{failureModule}
|
|
110
|
+
/>
|
|
111
|
+
{:else}
|
|
112
|
+
{#if flowModule.value.type === 'rawscript'}
|
|
113
|
+
<div class="flex-shrink-0 border-b p-1">
|
|
114
|
+
<EditorBar
|
|
115
|
+
{editor}
|
|
116
|
+
lang={flowModule.value['language'] ?? 'deno'}
|
|
117
|
+
{websocketAlive}
|
|
118
|
+
iconOnly={$width < FLOW_MODULE_WIDTH_THRESHOLD}
|
|
119
|
+
/>
|
|
120
|
+
</div>
|
|
121
|
+
{/if}
|
|
122
|
+
|
|
123
|
+
<div class="overflow-hidden flex-grow">
|
|
124
|
+
<VSplitPane
|
|
125
|
+
topPanelSize={flowModule.value.type === 'rawscript' ? '50%' : '0%'}
|
|
126
|
+
downPanelSize={flowModule.value.type === 'rawscript' ? '50%' : '100%'}
|
|
127
|
+
minTopPaneSize="20%"
|
|
128
|
+
minDownPaneSize="20%"
|
|
129
|
+
>
|
|
130
|
+
<top slot="top">
|
|
131
|
+
{#if flowModule.value.type === 'rawscript'}
|
|
132
|
+
<div on:mouseleave={() => reload(flowModule)} class="h-full overflow-auto">
|
|
133
|
+
<Editor
|
|
134
|
+
bind:websocketAlive
|
|
135
|
+
bind:this={editor}
|
|
136
|
+
class="h-full px-2"
|
|
137
|
+
bind:code={flowModule.value.content}
|
|
138
|
+
deno={flowModule.value.language === RawScript.language.DENO}
|
|
139
|
+
lang={scriptLangToEditorLang(flowModule.value.language)}
|
|
140
|
+
automaticLayout={true}
|
|
141
|
+
cmdEnterAction={() => {
|
|
142
|
+
selected = 'test'
|
|
143
|
+
modulePreview?.runTestWithStepArgs()
|
|
144
|
+
}}
|
|
145
|
+
formatAction={() => reload(flowModule)}
|
|
146
|
+
/>
|
|
147
|
+
</div>
|
|
148
|
+
{:else if flowModule.value.type === 'script'}
|
|
149
|
+
<FlowModuleScript {flowModule} />
|
|
150
|
+
{/if}
|
|
151
|
+
</top>
|
|
152
|
+
|
|
153
|
+
<down slot="down" class="flex flex-col flex-1 h-full">
|
|
154
|
+
<Tabs bind:selected>
|
|
155
|
+
<Tab value="inputs">Inputs</Tab>
|
|
156
|
+
<Tab value="test">Test</Tab>
|
|
157
|
+
<Tab value="retries">Retries</Tab>
|
|
158
|
+
{#if !$selectedId.includes('failure')}
|
|
159
|
+
<Tab value="early-stop">Early Stop</Tab>
|
|
160
|
+
<Tab value="suspend">Suspend</Tab>
|
|
161
|
+
{/if}
|
|
162
|
+
|
|
163
|
+
<svelte:fragment slot="content">
|
|
164
|
+
<div class="overflow-hidden bg-white" style="height:calc(100% - 32px);">
|
|
165
|
+
<TabContent value="inputs" class="flex flex-col flex-1 h-full">
|
|
166
|
+
<PropPickerWrapper pickableProperties={stepPropPicker.pickableProperties}>
|
|
167
|
+
<!-- <pre class="text-xs">{JSON.stringify($flowStateStore, null, 4)}</pre> -->
|
|
168
|
+
<SchemaForm
|
|
169
|
+
schema={flowModuleState.schema}
|
|
170
|
+
inputTransform={true}
|
|
171
|
+
importPath={$selectedId}
|
|
172
|
+
bind:args={flowModule.input_transforms}
|
|
173
|
+
bind:extraLib={stepPropPicker.extraLib}
|
|
174
|
+
/>
|
|
175
|
+
</PropPickerWrapper>
|
|
176
|
+
</TabContent>
|
|
177
|
+
<TabContent value="test" class="flex flex-col flex-1 h-full" alwaysMounted={true}>
|
|
178
|
+
<ModulePreview
|
|
179
|
+
bind:this={modulePreview}
|
|
180
|
+
mod={flowModule}
|
|
181
|
+
schema={flowModuleState.schema}
|
|
182
|
+
indices={[parentIndex, childIndex]}
|
|
183
|
+
/>
|
|
184
|
+
</TabContent>
|
|
185
|
+
|
|
186
|
+
<TabContent value="retries" class="flex flex-col flex-1 h-full">
|
|
187
|
+
<div class="p-4 overflow-y-auto">
|
|
188
|
+
<FlowRetries bind:flowModule />
|
|
189
|
+
</div>
|
|
190
|
+
</TabContent>
|
|
191
|
+
|
|
192
|
+
<TabContent value="early-stop" class="flex flex-col flex-1 h-full">
|
|
193
|
+
<div class="p-4 overflow-y-auto">
|
|
194
|
+
<FlowModuleEarlyStop bind:flowModule />
|
|
195
|
+
</div>
|
|
196
|
+
</TabContent>
|
|
197
|
+
|
|
198
|
+
<TabContent value="suspend" class="flex flex-col flex-1 h-full">
|
|
199
|
+
<div class="p-4 overflow-y-auto">
|
|
200
|
+
<FlowModuleSuspend bind:flowModule />
|
|
201
|
+
</div>
|
|
202
|
+
</TabContent>
|
|
203
|
+
</div>
|
|
204
|
+
</svelte:fragment>
|
|
205
|
+
</Tabs>
|
|
206
|
+
</down>
|
|
207
|
+
</VSplitPane>
|
|
208
|
+
</div>
|
|
209
|
+
{/if}
|
|
210
|
+
</FlowCard>
|
|
211
|
+
</div>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
export declare type FlowModuleWidthContext = {
|
|
3
|
+
width: Writable<number>;
|
|
4
|
+
threshold: number;
|
|
5
|
+
};
|
|
6
|
+
import { type FlowModule } from '../../../gen';
|
|
7
|
+
import { type FlowModuleState } from '../flowState';
|
|
8
|
+
import { type Writable } from 'svelte/store';
|
|
9
|
+
declare const __propDef: {
|
|
10
|
+
props: {
|
|
11
|
+
flowModule: FlowModule;
|
|
12
|
+
flowModuleState: FlowModuleState;
|
|
13
|
+
failureModule: boolean;
|
|
14
|
+
FLOW_MODULE_WIDTH_THRESHOLD?: 768 | undefined;
|
|
15
|
+
};
|
|
16
|
+
events: {
|
|
17
|
+
delete: CustomEvent<any>;
|
|
18
|
+
} & {
|
|
19
|
+
[evt: string]: CustomEvent<any>;
|
|
20
|
+
};
|
|
21
|
+
slots: {};
|
|
22
|
+
};
|
|
23
|
+
export declare type FlowModuleProps = typeof __propDef.props;
|
|
24
|
+
export declare type FlowModuleEvents = typeof __propDef.events;
|
|
25
|
+
export declare type FlowModuleSlots = typeof __propDef.slots;
|
|
26
|
+
export default class FlowModule extends SvelteComponentTyped<FlowModuleProps, FlowModuleEvents, FlowModuleSlots> {
|
|
27
|
+
get FLOW_MODULE_WIDTH_THRESHOLD(): number;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<script>import SimpleEditor from '../../SimpleEditor.svelte';
|
|
2
|
+
import Toggle from '../../Toggle.svelte';
|
|
3
|
+
import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
|
|
4
|
+
import { getStepPropPicker } from '../flowStateUtils';
|
|
5
|
+
import { flowStore } from '../flowStore';
|
|
6
|
+
import { flowStateStore } from '../flowState';
|
|
7
|
+
import { getContext } from 'svelte';
|
|
8
|
+
import { selectedIdToIndexes } from '../utils';
|
|
9
|
+
const { selectedId, previewArgs } = getContext('FlowEditorContext');
|
|
10
|
+
export let flowModule;
|
|
11
|
+
let editor = undefined;
|
|
12
|
+
$: isStopAfterIfEnabled = Boolean(flowModule.stop_after_if);
|
|
13
|
+
let pickableProperties = {};
|
|
14
|
+
$: {
|
|
15
|
+
let indices = selectedIdToIndexes($selectedId);
|
|
16
|
+
if (indices[1]) {
|
|
17
|
+
indices[1] += 1;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
indices[0] += 1;
|
|
21
|
+
}
|
|
22
|
+
const props = getStepPropPicker(indices, $flowStore.schema, $flowStateStore, $previewArgs).pickableProperties;
|
|
23
|
+
props['result'] = props['previous_result'];
|
|
24
|
+
delete props['previous_result'];
|
|
25
|
+
props.step = props.step?.slice(0, props.step.length - 1);
|
|
26
|
+
pickableProperties = props;
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<div class="flex flex-col items-start space-y-2">
|
|
31
|
+
<Toggle
|
|
32
|
+
checked={isStopAfterIfEnabled}
|
|
33
|
+
on:change={() => {
|
|
34
|
+
if (isStopAfterIfEnabled && flowModule.stop_after_if) {
|
|
35
|
+
flowModule.stop_after_if = undefined
|
|
36
|
+
} else {
|
|
37
|
+
flowModule.stop_after_if = {
|
|
38
|
+
expr: 'result == undefined',
|
|
39
|
+
skip_if_stopped: false
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}}
|
|
43
|
+
options={{
|
|
44
|
+
right: 'Early stop if condition met'
|
|
45
|
+
}}
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
{#if flowModule.stop_after_if}
|
|
49
|
+
<span class="text-xs font-bold">Should skip if stopped</span>
|
|
50
|
+
|
|
51
|
+
<input type="checkbox" bind:checked={flowModule.stop_after_if.skip_if_stopped} />
|
|
52
|
+
|
|
53
|
+
<span class="text-xs font-bold">Stop condition expression</span>
|
|
54
|
+
|
|
55
|
+
<div class="border w-full">
|
|
56
|
+
<PropPickerWrapper
|
|
57
|
+
{pickableProperties}
|
|
58
|
+
on:select={({ detail }) => {
|
|
59
|
+
editor?.insertAtCursor(detail)
|
|
60
|
+
}}
|
|
61
|
+
>
|
|
62
|
+
<SimpleEditor
|
|
63
|
+
bind:this={editor}
|
|
64
|
+
lang="javascript"
|
|
65
|
+
bind:code={flowModule.stop_after_if.expr}
|
|
66
|
+
class="small-editor"
|
|
67
|
+
/>
|
|
68
|
+
</PropPickerWrapper>
|
|
69
|
+
</div>
|
|
70
|
+
{:else}
|
|
71
|
+
<span class="text-xs font-bold">Should skip if stopped</span>
|
|
72
|
+
<input type="checkbox" disabled />
|
|
73
|
+
<span class="text-xs font-bold">Stop condition expression</span>
|
|
74
|
+
<textarea disabled rows="3" />
|
|
75
|
+
{/if}
|
|
76
|
+
</div>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { FlowModule } from '../../../gen';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
flowModule: FlowModule;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export declare type FlowModuleEarlyStopProps = typeof __propDef.props;
|
|
13
|
+
export declare type FlowModuleEarlyStopEvents = typeof __propDef.events;
|
|
14
|
+
export declare type FlowModuleEarlyStopSlots = typeof __propDef.slots;
|
|
15
|
+
export default class FlowModuleEarlyStop extends SvelteComponentTyped<FlowModuleEarlyStopProps, FlowModuleEarlyStopEvents, FlowModuleEarlyStopSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<script>import Button from '../../common/button/Button.svelte';
|
|
2
|
+
import { isEmptyFlowModule } from '../flowStateUtils';
|
|
3
|
+
import { classNames } from '../../../utils';
|
|
4
|
+
import { faArrowRotateBack, faArrowRotateForward, faBed, faCodeBranch, faSave, faStop, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
|
|
5
|
+
import { createEventDispatcher, getContext } from 'svelte';
|
|
6
|
+
import Icon from 'svelte-awesome';
|
|
7
|
+
import RemoveStepConfirmationModal from './RemoveStepConfirmationModal.svelte';
|
|
8
|
+
export let module;
|
|
9
|
+
let confirmationModalOpen = false;
|
|
10
|
+
$: shouldPick = isEmptyFlowModule(module);
|
|
11
|
+
const dispatch = createEventDispatcher();
|
|
12
|
+
const { selectedId, select } = getContext('FlowEditorContext');
|
|
13
|
+
const { width, threshold } = getContext('FlowModuleWidth');
|
|
14
|
+
$: iconOnly = $width < threshold;
|
|
15
|
+
$: moduleRetry = module.retry?.constant || module.retry?.exponential;
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<div class="flex flex-row space-x-2">
|
|
19
|
+
{#if !shouldPick}
|
|
20
|
+
<span
|
|
21
|
+
class={classNames('badge', module.stop_after_if ? 'badge-on' : 'badge-off')}
|
|
22
|
+
on:click={() => dispatch('toggleStopAfterIf')}
|
|
23
|
+
>
|
|
24
|
+
<Icon data={faStop} scale={0.8} />
|
|
25
|
+
</span>
|
|
26
|
+
<span
|
|
27
|
+
class={classNames('badge', moduleRetry ? 'badge-on' : 'badge-off')}
|
|
28
|
+
on:click={() => dispatch('toggleRetry')}
|
|
29
|
+
>
|
|
30
|
+
<Icon data={faArrowRotateForward} scale={0.8} />
|
|
31
|
+
</span>
|
|
32
|
+
<span
|
|
33
|
+
class={classNames('badge', Boolean(module.suspend) ? 'badge-on' : 'badge-off')}
|
|
34
|
+
on:click={() => dispatch('toggleSuspend')}
|
|
35
|
+
>
|
|
36
|
+
<Icon data={faBed} scale={0.8} />
|
|
37
|
+
</span>
|
|
38
|
+
{/if}
|
|
39
|
+
{#if module.value.type === 'script' && !shouldPick}
|
|
40
|
+
<Button
|
|
41
|
+
size="xs"
|
|
42
|
+
color="light"
|
|
43
|
+
variant="border"
|
|
44
|
+
on:click={() => dispatch('fork')}
|
|
45
|
+
startIcon={{ icon: faCodeBranch }}
|
|
46
|
+
{iconOnly}
|
|
47
|
+
>
|
|
48
|
+
Fork
|
|
49
|
+
</Button>
|
|
50
|
+
{/if}
|
|
51
|
+
|
|
52
|
+
{#if module.value.type === 'rawscript' && !shouldPick}
|
|
53
|
+
<Button
|
|
54
|
+
size="xs"
|
|
55
|
+
color="light"
|
|
56
|
+
variant="border"
|
|
57
|
+
startIcon={{ icon: faSave }}
|
|
58
|
+
on:click={() => dispatch('createScriptFromInlineScript')}
|
|
59
|
+
{iconOnly}
|
|
60
|
+
>
|
|
61
|
+
Save to workspace
|
|
62
|
+
</Button>
|
|
63
|
+
{/if}
|
|
64
|
+
<Button
|
|
65
|
+
size="xs"
|
|
66
|
+
color="light"
|
|
67
|
+
variant="border"
|
|
68
|
+
startIcon={{ icon: faTrashAlt }}
|
|
69
|
+
{iconOnly}
|
|
70
|
+
on:click={(event) => {
|
|
71
|
+
if (event.shiftKey || shouldPick) {
|
|
72
|
+
dispatch('delete')
|
|
73
|
+
select('settings')
|
|
74
|
+
} else {
|
|
75
|
+
confirmationModalOpen = true
|
|
76
|
+
}
|
|
77
|
+
}}
|
|
78
|
+
>
|
|
79
|
+
{$selectedId.includes('failure') ? 'Delete error handler' : 'Remove step'}
|
|
80
|
+
</Button>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<RemoveStepConfirmationModal
|
|
84
|
+
bind:open={confirmationModalOpen}
|
|
85
|
+
on:confirmed={() => {
|
|
86
|
+
dispatch('delete')
|
|
87
|
+
setTimeout(() => {
|
|
88
|
+
select('settings')
|
|
89
|
+
})
|
|
90
|
+
}}
|
|
91
|
+
/>
|
|
92
|
+
|
|
93
|
+
<style>
|
|
94
|
+
.badge {
|
|
95
|
+
|
|
96
|
+
display: flex;
|
|
97
|
+
|
|
98
|
+
cursor: pointer;
|
|
99
|
+
|
|
100
|
+
align-items: center;
|
|
101
|
+
|
|
102
|
+
white-space: nowrap;
|
|
103
|
+
|
|
104
|
+
border-radius: 0.25rem;
|
|
105
|
+
|
|
106
|
+
border-width: 1px;
|
|
107
|
+
|
|
108
|
+
padding-left: 0.625rem;
|
|
109
|
+
|
|
110
|
+
padding-right: 0.625rem;
|
|
111
|
+
|
|
112
|
+
padding-top: 0.125rem;
|
|
113
|
+
|
|
114
|
+
padding-bottom: 0.125rem;
|
|
115
|
+
|
|
116
|
+
font-size: 0.875rem;
|
|
117
|
+
|
|
118
|
+
line-height: 1.25rem;
|
|
119
|
+
|
|
120
|
+
font-weight: 500
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.badge-on {
|
|
124
|
+
|
|
125
|
+
--tw-bg-opacity: 1;
|
|
126
|
+
|
|
127
|
+
background-color: rgb(225 239 254 / var(--tw-bg-opacity));
|
|
128
|
+
|
|
129
|
+
--tw-text-opacity: 1;
|
|
130
|
+
|
|
131
|
+
color: rgb(30 66 159 / var(--tw-text-opacity))
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.badge-on:hover {
|
|
135
|
+
|
|
136
|
+
--tw-bg-opacity: 1;
|
|
137
|
+
|
|
138
|
+
background-color: rgb(195 221 253 / var(--tw-bg-opacity))
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.badge-off {
|
|
142
|
+
|
|
143
|
+
--tw-bg-opacity: 1;
|
|
144
|
+
|
|
145
|
+
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
|
146
|
+
|
|
147
|
+
--tw-text-opacity: 1;
|
|
148
|
+
|
|
149
|
+
color: rgb(31 41 55 / var(--tw-text-opacity))
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.badge-off:hover {
|
|
153
|
+
|
|
154
|
+
--tw-bg-opacity: 1;
|
|
155
|
+
|
|
156
|
+
background-color: rgb(229 231 235 / var(--tw-bg-opacity))
|
|
157
|
+
}</style>
|
package/components/flows/{FlowModuleHeader.svelte.d.ts → content/FlowModuleHeader.svelte.d.ts}
RENAMED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import type { FlowModule } from '
|
|
2
|
+
import type { FlowModule } from '../../../gen';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
|
|
6
|
-
mod: FlowModule;
|
|
5
|
+
module: FlowModule;
|
|
7
6
|
};
|
|
8
7
|
events: {
|
|
8
|
+
toggleStopAfterIf: CustomEvent<any>;
|
|
9
|
+
toggleRetry: CustomEvent<any>;
|
|
10
|
+
toggleSuspend: CustomEvent<any>;
|
|
9
11
|
fork: CustomEvent<any>;
|
|
10
12
|
createScriptFromInlineScript: CustomEvent<any>;
|
|
11
13
|
delete: CustomEvent<any>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script>import HighlightCode from '../../HighlightCode.svelte';
|
|
2
|
+
import { getScriptByPath } from '../../../utils';
|
|
3
|
+
export let flowModule;
|
|
4
|
+
let code;
|
|
5
|
+
let language;
|
|
6
|
+
async function loadCode(module) {
|
|
7
|
+
if (module.value.type == 'script') {
|
|
8
|
+
const script = await getScriptByPath(module.value.path);
|
|
9
|
+
code = script.content;
|
|
10
|
+
language = script.language;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
throw Error('Not a script');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
$: flowModule && loadCode(flowModule);
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<div class="flex flex-col flex-1 h-full overflow-auto">
|
|
20
|
+
<HighlightCode {language} {code} />
|
|
21
|
+
</div>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { FlowModule } from '../../../gen';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
flowModule: FlowModule;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export declare type FlowModuleScriptProps = typeof __propDef.props;
|
|
13
|
+
export declare type FlowModuleScriptEvents = typeof __propDef.events;
|
|
14
|
+
export declare type FlowModuleScriptSlots = typeof __propDef.slots;
|
|
15
|
+
export default class FlowModuleScript extends SvelteComponentTyped<FlowModuleScriptProps, FlowModuleScriptEvents, FlowModuleScriptSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script>import Toggle from '../../Toggle.svelte';
|
|
2
|
+
export let flowModule;
|
|
3
|
+
$: isSuspendEnabled = Boolean(flowModule.suspend);
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<Toggle
|
|
7
|
+
checked={isSuspendEnabled}
|
|
8
|
+
on:change={() => {
|
|
9
|
+
if (isSuspendEnabled && flowModule.suspend != undefined) {
|
|
10
|
+
flowModule.suspend = undefined
|
|
11
|
+
} else {
|
|
12
|
+
flowModule.suspend = 1
|
|
13
|
+
}
|
|
14
|
+
}}
|
|
15
|
+
options={{
|
|
16
|
+
right: 'Suspend flow execution until events received'
|
|
17
|
+
}}
|
|
18
|
+
/>
|
|
19
|
+
<div>
|
|
20
|
+
<span class="text-xs font-bold">Number of events to wait for</span>
|
|
21
|
+
|
|
22
|
+
{#if flowModule.suspend}
|
|
23
|
+
<input bind:value={flowModule.suspend} type="number" min="1" placeholder="1" />
|
|
24
|
+
{:else}
|
|
25
|
+
<input type="number" disabled />
|
|
26
|
+
{/if}
|
|
27
|
+
</div>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { FlowModule } from '../../../gen';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
flowModule: FlowModule;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export declare type FlowModuleSuspendProps = typeof __propDef.props;
|
|
13
|
+
export declare type FlowModuleSuspendEvents = typeof __propDef.events;
|
|
14
|
+
export declare type FlowModuleSuspendSlots = typeof __propDef.slots;
|
|
15
|
+
export default class FlowModuleSuspend extends SvelteComponentTyped<FlowModuleSuspendProps, FlowModuleSuspendEvents, FlowModuleSuspendSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script>import { getContext } from 'svelte';
|
|
2
|
+
import { flowStateStore } from '../flowState';
|
|
3
|
+
import { flowStore } from '../flowStore';
|
|
4
|
+
import { selectedIdToIndexes } from '../utils';
|
|
5
|
+
import FlowModule from './FlowModule.svelte';
|
|
6
|
+
const { selectedId } = getContext('FlowEditorContext');
|
|
7
|
+
$: [parentIndex, childIndex] = selectedIdToIndexes($selectedId);
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
{#if childIndex != undefined}
|
|
11
|
+
{#each [$flowStore.value.modules[parentIndex].value] as mod, index (index)}
|
|
12
|
+
{#each [$flowStateStore.modules[parentIndex].childFlowModules] as state}
|
|
13
|
+
{#if mod.type == 'forloopflow' && state != undefined}
|
|
14
|
+
<FlowModule
|
|
15
|
+
failureModule={false}
|
|
16
|
+
bind:flowModule={mod.modules[childIndex]}
|
|
17
|
+
bind:flowModuleState={state[childIndex]}
|
|
18
|
+
on:delete={() => {
|
|
19
|
+
$flowStateStore.modules[parentIndex].childFlowModules?.splice(childIndex, 1)
|
|
20
|
+
let mod = $flowStore.value.modules[parentIndex].value
|
|
21
|
+
if (mod.type === 'forloopflow') {
|
|
22
|
+
mod.modules.splice(childIndex, 1)
|
|
23
|
+
} else {
|
|
24
|
+
throw new Error('Expected forloop')
|
|
25
|
+
}
|
|
26
|
+
}}
|
|
27
|
+
/>
|
|
28
|
+
{:else}
|
|
29
|
+
<span>Incorrect state</span>
|
|
30
|
+
{/if}
|
|
31
|
+
{/each}
|
|
32
|
+
{/each}
|
|
33
|
+
{:else if $flowStore.value.modules[parentIndex]}
|
|
34
|
+
<FlowModule
|
|
35
|
+
failureModule={false}
|
|
36
|
+
bind:flowModule={$flowStore.value.modules[parentIndex]}
|
|
37
|
+
bind:flowModuleState={$flowStateStore.modules[parentIndex]}
|
|
38
|
+
on:delete={() => {
|
|
39
|
+
$flowStateStore.modules.splice(parentIndex, 1)
|
|
40
|
+
$flowStateStore = $flowStateStore
|
|
41
|
+
$flowStore.value.modules.splice(parentIndex, 1)
|
|
42
|
+
$flowStore = $flowStore
|
|
43
|
+
}}
|
|
44
|
+
/>
|
|
45
|
+
{/if}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {};
|
|
4
|
+
events: {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
};
|
|
7
|
+
slots: {};
|
|
8
|
+
};
|
|
9
|
+
export declare type FlowModuleWrapperProps = typeof __propDef.props;
|
|
10
|
+
export declare type FlowModuleWrapperEvents = typeof __propDef.events;
|
|
11
|
+
export declare type FlowModuleWrapperSlots = typeof __propDef.slots;
|
|
12
|
+
export default class FlowModuleWrapper extends SvelteComponentTyped<FlowModuleWrapperProps, FlowModuleWrapperEvents, FlowModuleWrapperSlots> {
|
|
13
|
+
}
|
|
14
|
+
export {};
|