windmill-components 1.550.0 → 1.555.1
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/package/aiStore.d.ts +13 -0
- package/package/aiStore.js +70 -0
- package/package/common.d.ts +2 -1
- package/package/components/AIProviderPicker.svelte +25 -8
- package/package/components/ArgEnum.svelte +3 -2
- package/package/components/ArgEnum.svelte.d.ts +1 -0
- package/package/components/ArgInput.svelte +235 -174
- package/package/components/ArgInput.svelte.d.ts +4 -1
- package/package/components/ArrayTypeNarrowing.svelte +38 -32
- package/package/components/AutoscalingEvents.svelte +21 -5
- package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
- package/package/components/DateTimeInput.svelte +8 -6
- package/package/components/DeployButton.svelte +1 -1
- package/package/components/Dev.svelte +6 -4
- package/package/components/EditableSchemaForm.svelte +7 -6
- package/package/components/Editor.svelte +2 -1
- package/package/components/EditorSettings.svelte +5 -5
- package/package/components/EditorSettings.svelte.d.ts +4 -18
- package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
- package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
- package/package/components/FieldHeader.svelte +5 -7
- package/package/components/FirstStepInputs.svelte +1 -1
- package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
- package/package/components/FlowPlugConnect.svelte +8 -2
- package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +113 -92
- package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
- package/package/components/FlowStatusViewer.svelte +3 -2
- package/package/components/FlowStatusViewerInner.svelte +1 -1
- package/package/components/FolderEditor.svelte +6 -7
- package/package/components/GroupEditor.svelte +148 -141
- package/package/components/GroupEditor.svelte.d.ts +5 -4
- package/package/components/InputTransformForm.svelte +88 -82
- package/package/components/InputTransformSchemaForm.svelte +5 -4
- package/package/components/InstanceSetting.svelte +17 -9
- package/package/components/JsonEditor.svelte +18 -9
- package/package/components/JsonEditor.svelte.d.ts +1 -1
- package/package/components/JsonInputs.svelte +1 -1
- package/package/components/ModulePreviewForm.svelte +23 -19
- package/package/components/NumberTypeNarrowing.svelte +32 -16
- package/package/components/ObjectStoreConfigSettings.svelte +27 -19
- package/package/components/Path.svelte +2 -8
- package/package/components/Path.svelte.d.ts +1 -1
- package/package/components/ResourceEditor.svelte +3 -10
- package/package/components/ResourcePicker.svelte +85 -72
- package/package/components/ResourcePicker.svelte.d.ts +2 -0
- package/package/components/RunChart.svelte +1 -1
- package/package/components/RunForm.svelte +11 -7
- package/package/components/S3ArrayHelperButton.svelte +12 -6
- package/package/components/S3ArrayHelperButton.svelte.d.ts +1 -0
- package/package/components/S3FilePicker.svelte +1 -1
- package/package/components/SchemaForm.svelte +18 -10
- package/package/components/SchemaForm.svelte.d.ts +7 -1
- package/package/components/SchemaFormWithArgPicker.svelte +1 -1
- package/package/components/ScriptBuilder.svelte +2 -2
- package/package/components/ScriptEditor.svelte +4 -3
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +4 -4
- package/package/components/SimpleEditor.svelte +6 -2
- package/package/components/SimpleEditor.svelte.d.ts +3 -0
- package/package/components/StringTypeNarrowing.svelte +5 -1
- package/package/components/SuperadminSettingsInner.svelte +3 -3
- package/package/components/TemplateEditor.svelte +18 -9
- package/package/components/Toast.svelte +2 -7
- package/package/components/Toast.svelte.d.ts +4 -18
- package/package/components/Toggle.svelte +17 -7
- package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
- package/package/components/WorkerGroup.svelte +2 -14
- package/package/components/apps/components/buttons/AppButton.svelte +57 -39
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
- package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
- package/package/components/apps/components/display/table/utils.js +13 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -3
- package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
- package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
- package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
- package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
- package/package/components/apps/editor/GridEditor.svelte +7 -2
- package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
- package/package/components/apps/editor/appDeploy.svelte.js +6 -0
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +30 -1
- package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
- package/package/components/apps/editor/component/components.d.ts +3 -3
- package/package/components/apps/editor/component/components.js +1 -1
- package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
- package/package/components/auditLogs/AuditLogsFilters.svelte +1 -1
- package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
- package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
- package/package/components/common/badge/CountBadge.svelte +29 -0
- package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
- package/package/components/common/button/Button.svelte +1 -0
- package/package/components/common/button/ConnectionButton.svelte +6 -1
- package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
- package/package/components/common/button/RefreshButton.svelte +8 -4
- package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
- package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
- package/package/components/common/fileInput/FileInput.svelte +7 -6
- package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
- package/package/components/common/popup/PopupV2.svelte +6 -0
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
- package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
- package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
- package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
- package/package/components/copilot/CronGen.svelte +1 -1
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
- package/package/components/copilot/IteratorGen.svelte +30 -25
- package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
- package/package/components/copilot/MetadataGen.svelte +4 -3
- package/package/components/copilot/PredicateGen.svelte +15 -12
- package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
- package/package/components/copilot/RegexGen.svelte +1 -1
- package/package/components/copilot/ScriptFix.svelte +1 -1
- package/package/components/copilot/ScriptGen.svelte +2 -1
- package/package/components/copilot/StepGenQuick.svelte +15 -16
- package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
- package/package/components/copilot/StepInputGen.svelte +50 -36
- package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
- package/package/components/copilot/StepInputsGen.svelte +18 -19
- package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
- package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
- package/package/components/copilot/autocomplete/request.js +1 -1
- package/package/components/copilot/chat/AIChat.svelte +2 -1
- package/package/components/copilot/chat/AIChatManager.svelte.js +2 -1
- package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
- package/package/components/copilot/chat/ProviderModelSelector.svelte +10 -9
- package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
- package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
- package/package/components/copilot/chat/script/core.js +2 -1
- package/package/components/copilot/chat/shared.js +2 -1
- package/package/components/copilot/lib.js +2 -1
- package/package/components/details/DetailPageLayout.svelte +3 -2
- package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
- package/package/components/flows/CreateActionsFlow.svelte +1 -1
- package/package/components/flows/FlowChatInterface.svelte +404 -0
- package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
- package/package/components/flows/FlowChatMessage.svelte +41 -0
- package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
- package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
- package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
- package/package/components/flows/FlowModuleIcon.svelte +10 -10
- package/package/components/flows/common/FlowCard.svelte +10 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +2 -1
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowInput.svelte +381 -259
- package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
- package/package/components/flows/content/FlowInputsQuick.svelte +55 -34
- package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +5 -10
- package/package/components/flows/flowInfers.d.ts +60 -0
- package/package/components/flows/flowInfers.js +72 -66
- package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +1 -0
- package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
- package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
- package/package/components/flows/map/FlowStickyNode.svelte +2 -2
- package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
- package/package/components/flows/map/InsertModuleButton.svelte +5 -2
- package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -3
- package/package/components/flows/map/InsertModuleInner.svelte +3 -1
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
- package/package/components/flows/map/VirtualItem.svelte +1 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +8 -3
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +15 -12
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
- package/package/components/graph/FlowGraphV2.svelte +2 -1
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
- package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
- package/package/components/graph/graphBuilder.svelte.js +1 -0
- package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
- package/package/components/instanceSettings.js +17 -0
- package/package/components/progressBar/ProgressBar.svelte +1 -1
- package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
- package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
- package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
- package/package/components/raw_apps/RawAppEditor.svelte +6 -7
- package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
- package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
- package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
- package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
- package/package/components/raw_apps/RawAppPreview.svelte +3 -7
- package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
- package/package/components/raw_apps/utils.d.ts +1 -1
- package/package/components/raw_apps/utils.js +3 -3
- package/package/components/runs/RunOption.svelte +2 -2
- package/package/components/runs/RunsFilter.svelte +15 -12
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
- package/package/components/schema/FlowPropertyEditor.svelte +9 -2
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +22 -26
- package/package/components/schema/SchemaFormDND.svelte +3 -2
- package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
- package/package/components/select/DraggableTags.svelte +2 -2
- package/package/components/select/MultiSelect.svelte +14 -8
- package/package/components/select/Select.svelte +12 -5
- package/package/components/select/Select.svelte.d.ts +11 -0
- package/package/components/select/SelectDropdown.svelte +98 -46
- package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
- package/package/components/select/utils.svelte.js +2 -0
- package/package/components/settings/CreateToken.svelte +76 -49
- package/package/components/settings/WorkspaceUserSettings.svelte +20 -17
- package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
- package/package/components/sidebar/Linkify.svelte +14 -0
- package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
- package/package/components/table/tableUtils.js +1 -1
- package/package/components/text_input/TextInput.svelte +30 -0
- package/package/components/text_input/TextInput.svelte.d.ts +17 -0
- package/package/components/triggers/TriggersEditor.svelte +11 -1
- package/package/components/triggers/triggers.svelte.d.ts +1 -1
- package/package/components/triggers/triggers.svelte.js +8 -4
- package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
- package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
- package/package/components/tutorials/Tutorial.svelte +9 -0
- package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
- package/package/components/tutorials/app/AppTutorial.svelte +41 -57
- package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
- package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
- package/package/components/tutorials/utils.js +2 -154
- package/package/components/vscode.js +16 -8
- package/package/components/workspaceSettings/AISettings.svelte +4 -3
- package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
- package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
- package/package/components/workspaceSettings/StorageSettings.svelte +24 -26
- package/package/editorUtils.d.ts +1 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +82 -1
- package/package/gen/schemas.gen.js +82 -1
- package/package/gen/services.gen.d.ts +175 -1
- package/package/gen/services.gen.js +345 -2
- package/package/gen/types.gen.d.ts +1324 -549
- package/package/script_helpers.js +5 -5
- package/package/services/JobManager.js +4 -2
- package/package/stores.d.ts +4 -13
- package/package/stores.js +5 -68
- package/package/toast.js +2 -1
- package/package/utils.d.ts +1 -0
- package/package/utils.js +3 -0
- package/package.json +5 -5
- /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function inputBorderClass({ error, forceFocus }?: {
|
|
2
|
+
error?: boolean;
|
|
3
|
+
forceFocus?: boolean;
|
|
4
|
+
}): string;
|
|
5
|
+
export declare const inputBaseClass = "rounded-md focus:ring-0 no-default-style text-sm text-tertiary dark:text-secondary !bg-surface-secondary disabled:!bg-surface-disabled disabled:!border-none disabled:!text-hint disabled:cursor-not-allowed shadow-none py-2 px-3 placeholder-hint";
|
|
6
|
+
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
7
|
+
type Props = {
|
|
8
|
+
inputProps?: HTMLInputAttributes;
|
|
9
|
+
value?: string;
|
|
10
|
+
class?: string;
|
|
11
|
+
error?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const TextInput: import("svelte").Component<Props, {
|
|
14
|
+
focus: () => void;
|
|
15
|
+
}, "value">;
|
|
16
|
+
type TextInput = ReturnType<typeof TextInput>;
|
|
17
|
+
export default TextInput;
|
|
@@ -15,6 +15,7 @@ import { triggerTypeToCaptureKind, CLOUD_DISABLED_TRIGGER_TYPES } from './utils'
|
|
|
15
15
|
import { isCloudHosted } from '../../cloud';
|
|
16
16
|
import { ScheduleService, WebsocketTriggerService, PostgresTriggerService, KafkaTriggerService, NatsTriggerService, MqttTriggerService, HttpTriggerService, GcpTriggerService, SqsTriggerService, EmailTriggerService } from '../../gen';
|
|
17
17
|
import { sendUserToast } from '../../toast';
|
|
18
|
+
import Alert from '../common/alert/Alert.svelte';
|
|
18
19
|
let { noEditor, newItem = false, currentPath, fakeInitialPath = '', hash = undefined, args = {}, initialPath, isFlow, canHavePreprocessor = false, hasPreprocessor = false, isDeployed = false, schema = undefined, noCapture = false, isEditor = true, onDeployTrigger } = $props();
|
|
19
20
|
let config = $state({});
|
|
20
21
|
let width = $state(0);
|
|
@@ -24,6 +25,8 @@ let renderCount = $state(0);
|
|
|
24
25
|
let loading = $state(false);
|
|
25
26
|
const useVerticalTriggerBar = $derived(width < 1000);
|
|
26
27
|
const { triggersState, triggersCount } = getContext('TriggerContext');
|
|
28
|
+
const flowEditorContext = getContext('FlowEditorContext');
|
|
29
|
+
const chatInputEnabled = $derived(Boolean(flowEditorContext?.flowStore?.val?.value?.chat_input_enabled));
|
|
27
30
|
const dispatch = createEventDispatcher();
|
|
28
31
|
onDestroy(() => {
|
|
29
32
|
dispatch('exitTriggers');
|
|
@@ -143,6 +146,13 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
143
146
|
</script>
|
|
144
147
|
|
|
145
148
|
<div bind:clientWidth={width} class="h-full w-full">
|
|
149
|
+
{#if chatInputEnabled}
|
|
150
|
+
<div class="p-2 pb-0">
|
|
151
|
+
<Alert type="warning" title="Chat Input Mode Enabled" size="xs">
|
|
152
|
+
This flow will only accept <span class="font-mono text-xs bg-surface-secondary px-1 rounded">user_message</span> as input parameter.
|
|
153
|
+
</Alert>
|
|
154
|
+
</div>
|
|
155
|
+
{/if}
|
|
146
156
|
<FlowCard {noEditor} noHeader>
|
|
147
157
|
<Splitpanes horizontal>
|
|
148
158
|
<Pane>
|
|
@@ -241,7 +251,7 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
|
|
|
241
251
|
{/key}
|
|
242
252
|
{:else}
|
|
243
253
|
<span class="text-sm text-tertiary text-center mx-auto mt-2"
|
|
244
|
-
>{`Select a trigger from the ${useVerticalTriggerBar ? 'left toolbar' : 'table'} or
|
|
254
|
+
>{`Select a trigger from the ${useVerticalTriggerBar ? 'left toolbar' : 'table'} or create a new one`}</span
|
|
245
255
|
>
|
|
246
256
|
{/if}
|
|
247
257
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TriggersCount } from '../../gen';
|
|
2
2
|
import { type Trigger } from './utils';
|
|
3
|
-
import type
|
|
3
|
+
import { type Writable } from 'svelte/store';
|
|
4
4
|
import type { TriggerType } from './utils';
|
|
5
5
|
import type { UserExt } from '../../stores';
|
|
6
6
|
import type { ScheduleTrigger } from '../triggers';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { KafkaTriggerService, MqttTriggerService, NatsTriggerService, PostgresTriggerService, ScheduleService, SqsTriggerService, WebsocketTriggerService, HttpTriggerService, GcpTriggerService, EmailTriggerService } from '../../gen';
|
|
2
|
+
import { enterpriseLicense } from '../../stores';
|
|
2
3
|
import { getLightConfig, sortTriggers, updateTriggersCount } from './utils';
|
|
4
|
+
import { get } from 'svelte/store';
|
|
3
5
|
import { canWrite, formatCron, generateRandomString } from '../../utils';
|
|
4
6
|
export class Triggers {
|
|
5
7
|
#triggers = $state([]);
|
|
@@ -346,12 +348,14 @@ export class Triggers {
|
|
|
346
348
|
this.fetchHttpTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
347
349
|
this.fetchWebsocketTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
348
350
|
this.fetchPostgresTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
349
|
-
this.fetchKafkaTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
350
351
|
this.fetchNatsTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
351
352
|
this.fetchMqttTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
352
|
-
this.
|
|
353
|
-
|
|
354
|
-
|
|
353
|
+
this.fetchEmailTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
354
|
+
...(get(enterpriseLicense) ? [
|
|
355
|
+
this.fetchKafkaTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
356
|
+
this.fetchSqsTriggers(triggersCountStore, workspaceId, path, isFlow, user),
|
|
357
|
+
this.fetchGcpTriggers(triggersCountStore, workspaceId, path, isFlow, user)
|
|
358
|
+
] : [])
|
|
355
359
|
]);
|
|
356
360
|
}
|
|
357
361
|
}
|
|
@@ -46,14 +46,14 @@ export function runTutorial() {
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
element: '#flow-editor-error-handler',
|
|
49
|
+
element: '#flow-editor-add-step-error-handler-button',
|
|
50
50
|
popover: {
|
|
51
51
|
title: 'Error handler',
|
|
52
52
|
description:
|
|
53
53
|
'You can add an error handler to your flow. It will be executed if any of the steps in the flow fails.',
|
|
54
54
|
|
|
55
55
|
onNextClick: () => {
|
|
56
|
-
triggerPointerDown('#flow-editor-error-handler
|
|
56
|
+
triggerPointerDown('#flow-editor-add-step-error-handler-button')
|
|
57
57
|
setTimeout(() => {
|
|
58
58
|
driver.moveNext()
|
|
59
59
|
})
|
|
@@ -172,6 +172,9 @@ export function runTutorial(indexToInsertAt) {
|
|
|
172
172
|
|
|
173
173
|
{
|
|
174
174
|
element: '#flow-editor-step-input',
|
|
175
|
+
onHighlighted: () => {
|
|
176
|
+
document.querySelector('#flow-editor-plug')?.parentElement?.classList.remove('opacity-0')
|
|
177
|
+
},
|
|
175
178
|
popover: {
|
|
176
179
|
title: 'Flow inputs',
|
|
177
180
|
description: 'UI is autogenerated from your code.'
|
|
@@ -3,6 +3,7 @@ import { updateProgress } from '../../tutorialUtils';
|
|
|
3
3
|
import { clickButtonBySelector, isFlowTainted, setInputBySelector, triggerPointerDown, waitForElementLoading } from './utils';
|
|
4
4
|
import Tutorial from './Tutorial.svelte';
|
|
5
5
|
import { refreshStateStore } from '../../svelte5Utils.svelte';
|
|
6
|
+
import { wait } from '../../utils';
|
|
6
7
|
const { flowStore } = getContext('FlowEditorContext');
|
|
7
8
|
const dispatch = createEventDispatcher();
|
|
8
9
|
let tutorial = undefined;
|
|
@@ -30,16 +31,13 @@ export function runTutorial() {
|
|
|
30
31
|
popover: {
|
|
31
32
|
title: 'Flows inputs',
|
|
32
33
|
description: 'Flows have inputs that can be used in the flow',
|
|
33
|
-
onNextClick: () => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
driver.moveNext()
|
|
42
|
-
})
|
|
34
|
+
onNextClick: async () => {
|
|
35
|
+
triggerPointerDown('#flow-editor-virtual-Input')
|
|
36
|
+
await wait(20)
|
|
37
|
+
clickButtonBySelector('#add-flow-input-btn')
|
|
38
|
+
await wait(0)
|
|
39
|
+
setInputBySelector('input[placeholder="Field name"]', 'firstname')
|
|
40
|
+
setTimeout(() => driver.moveNext())
|
|
43
41
|
}
|
|
44
42
|
},
|
|
45
43
|
element: '#flow-editor-virtual-Input'
|
|
@@ -53,11 +51,15 @@ export function runTutorial() {
|
|
|
53
51
|
setTimeout(() => {
|
|
54
52
|
driver.moveNext()
|
|
55
53
|
})
|
|
54
|
+
},
|
|
55
|
+
onPrevClick: () => {
|
|
56
|
+
clickButtonBySelector('#add-flow-input-btn') // Close the input drawer
|
|
57
|
+
setTimeout(() => driver.movePrevious())
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
},
|
|
59
61
|
{
|
|
60
|
-
element: '#flow-editor-add-property',
|
|
62
|
+
element: '*:has(> #flow-editor-add-property)',
|
|
61
63
|
popover: {
|
|
62
64
|
title: 'Add your property',
|
|
63
65
|
description: 'Click here to save your property',
|
|
@@ -76,16 +78,26 @@ export function runTutorial() {
|
|
|
76
78
|
description: 'Click here to add a step to your flow',
|
|
77
79
|
onNextClick: () => {
|
|
78
80
|
triggerPointerDown(`#flow-editor-add-step-0`)
|
|
79
|
-
setTimeout(() =>
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
setTimeout(() => driver.moveNext())
|
|
82
|
+
},
|
|
83
|
+
onPrevClick: async () => {
|
|
84
|
+
clickButtonBySelector('.delete-schema-field-button')
|
|
85
|
+
await wait(0)
|
|
86
|
+
clickButtonBySelector('#add-flow-input-btn')
|
|
87
|
+
await wait(0)
|
|
88
|
+
setInputBySelector('input[placeholder="Field name"]', 'firstname')
|
|
89
|
+
setTimeout(() => driver.movePrevious())
|
|
82
90
|
}
|
|
83
91
|
}
|
|
84
92
|
},
|
|
85
93
|
{
|
|
86
94
|
popover: {
|
|
87
95
|
title: 'Steps kind',
|
|
88
|
-
description: "Choose the kind of step you want to add. Let's start with a simple action"
|
|
96
|
+
description: "Choose the kind of step you want to add. Let's start with a simple action",
|
|
97
|
+
onPrevClick: () => {
|
|
98
|
+
triggerPointerDown(`#flow-editor-add-step-0`)
|
|
99
|
+
setTimeout(() => driver.movePrevious())
|
|
100
|
+
}
|
|
89
101
|
},
|
|
90
102
|
element: '#flow-editor-insert-module'
|
|
91
103
|
},
|
|
@@ -138,6 +150,7 @@ export function runTutorial() {
|
|
|
138
150
|
title: 'Action editor',
|
|
139
151
|
description: 'Windmill provides a full code editor to write your actions',
|
|
140
152
|
onPrevClick: () => {
|
|
153
|
+
triggerPointerDown(`#flow-editor-virtual-Input`)
|
|
141
154
|
triggerPointerDown(`#flow-editor-add-step-0`)
|
|
142
155
|
setTimeout(() => {
|
|
143
156
|
driver.movePrevious()
|
|
@@ -147,6 +160,9 @@ export function runTutorial() {
|
|
|
147
160
|
},
|
|
148
161
|
{
|
|
149
162
|
element: '#flow-editor-step-input',
|
|
163
|
+
onHighlighted: () => {
|
|
164
|
+
document.querySelector('#flow-editor-plug')?.parentElement?.classList.remove('opacity-0')
|
|
165
|
+
},
|
|
150
166
|
popover: {
|
|
151
167
|
title: 'Autogenerated schema',
|
|
152
168
|
description: 'The schema and the UI is autogenerated from your code'
|
|
@@ -154,10 +170,14 @@ export function runTutorial() {
|
|
|
154
170
|
},
|
|
155
171
|
{
|
|
156
172
|
element: '#flow-editor-plug',
|
|
173
|
+
onHighlighted: () => {
|
|
174
|
+
document.querySelector('#flow-editor-plug')?.parentElement?.classList.remove('opacity-0')
|
|
175
|
+
},
|
|
157
176
|
popover: {
|
|
158
177
|
title: 'Connect',
|
|
159
178
|
description:
|
|
160
179
|
'You can provide static values or connect to other nodes result. Here we will connect to the firstname input',
|
|
180
|
+
|
|
161
181
|
onNextClick: () => {
|
|
162
182
|
clickButtonBySelector('#flow-editor-plug')
|
|
163
183
|
setTimeout(() => {
|
|
@@ -187,6 +207,10 @@ export function runTutorial() {
|
|
|
187
207
|
setTimeout(() => {
|
|
188
208
|
driver.moveNext()
|
|
189
209
|
})
|
|
210
|
+
},
|
|
211
|
+
onPrevClick: () => {
|
|
212
|
+
clickButtonBySelector('#flow-editor-plug')
|
|
213
|
+
setTimeout(() => driver.movePrevious())
|
|
190
214
|
}
|
|
191
215
|
}
|
|
192
216
|
},
|
|
@@ -195,7 +219,11 @@ export function runTutorial() {
|
|
|
195
219
|
element: '#flow-editor-step-input',
|
|
196
220
|
popover: {
|
|
197
221
|
title: 'Input connected!',
|
|
198
|
-
description: 'The input is now connected to the firstname input'
|
|
222
|
+
description: 'The input is now connected to the firstname input',
|
|
223
|
+
onPrevClick: () => {
|
|
224
|
+
clickButtonBySelector('#flow-editor-plug')
|
|
225
|
+
setTimeout(() => driver.movePrevious())
|
|
226
|
+
}
|
|
199
227
|
}
|
|
200
228
|
},
|
|
201
229
|
|
|
@@ -215,7 +243,7 @@ export function runTutorial() {
|
|
|
215
243
|
},
|
|
216
244
|
|
|
217
245
|
{
|
|
218
|
-
element: '
|
|
246
|
+
element: 'textarea.w-full',
|
|
219
247
|
popover: {
|
|
220
248
|
title: 'Flow input',
|
|
221
249
|
description: 'Let’s provide an input to our flow',
|
|
@@ -225,6 +253,10 @@ export function runTutorial() {
|
|
|
225
253
|
setTimeout(() => {
|
|
226
254
|
driver.moveNext()
|
|
227
255
|
})
|
|
256
|
+
},
|
|
257
|
+
onPrevClick: () => {
|
|
258
|
+
clickButtonBySelector('#flow-editor-test-flow') // Close the test drawer
|
|
259
|
+
setTimeout(() => driver.movePrevious())
|
|
228
260
|
}
|
|
229
261
|
}
|
|
230
262
|
},
|
|
@@ -5,15 +5,21 @@ import { ignoredTutorials } from './ignoredTutorials';
|
|
|
5
5
|
import SkipTutorials from './SkipTutorials.svelte';
|
|
6
6
|
import TutorialControls from './TutorialControls.svelte';
|
|
7
7
|
import TutorialInner from './TutorialInner.svelte';
|
|
8
|
+
import { isCurrentlyInTutorial } from '../../stores';
|
|
8
9
|
export let index = 0;
|
|
9
10
|
export let name = 'action';
|
|
10
11
|
export let tainted = false;
|
|
12
|
+
export let onDestroyed = undefined;
|
|
11
13
|
export let getSteps = () => [];
|
|
12
14
|
let totalSteps = 0;
|
|
13
15
|
let tutorial = undefined;
|
|
14
16
|
const dispatch = createEventDispatcher();
|
|
15
17
|
// Render controls needs to be exposed so steps that have a custom render can call it
|
|
16
18
|
export function renderControls({ config, state }) {
|
|
19
|
+
const popoverContent = document.querySelector('#driver-popover-content');
|
|
20
|
+
popoverContent?.addEventListener('pointerdown', (event) => {
|
|
21
|
+
event.stopPropagation();
|
|
22
|
+
});
|
|
17
23
|
const popoverDescription = document.querySelector('#driver-popover-description');
|
|
18
24
|
if (!tutorial) {
|
|
19
25
|
return;
|
|
@@ -88,6 +94,7 @@ export const runTutorial = (options) => {
|
|
|
88
94
|
dispatch('error', { detail: name });
|
|
89
95
|
return;
|
|
90
96
|
}
|
|
97
|
+
isCurrentlyInTutorial.val = true;
|
|
91
98
|
tutorial = driver({
|
|
92
99
|
allowClose: true,
|
|
93
100
|
disableActiveInteraction: true,
|
|
@@ -98,9 +105,11 @@ export const runTutorial = (options) => {
|
|
|
98
105
|
renderControls({ config, state });
|
|
99
106
|
},
|
|
100
107
|
onDestroyed: () => {
|
|
108
|
+
onDestroyed?.();
|
|
101
109
|
if (!tutorial?.hasNextStep()) {
|
|
102
110
|
$ignoredTutorials = Array.from(new Set([...$ignoredTutorials, index]));
|
|
103
111
|
}
|
|
112
|
+
isCurrentlyInTutorial.val = false;
|
|
104
113
|
}
|
|
105
114
|
});
|
|
106
115
|
const steps = getSteps(tutorial, options);
|
|
@@ -16,6 +16,7 @@ declare const Tutorial: $$__sveltets_2_IsomorphicComponent<{
|
|
|
16
16
|
index?: number;
|
|
17
17
|
name?: string;
|
|
18
18
|
tainted?: boolean;
|
|
19
|
+
onDestroyed?: (() => void) | undefined;
|
|
19
20
|
getSteps?: (driver: Driver, options?: {
|
|
20
21
|
indexToInsertAt?: number;
|
|
21
22
|
skipStepsCount?: number;
|
|
@@ -4,10 +4,12 @@ import { getContext } from 'svelte';
|
|
|
4
4
|
import Tutorial from '../Tutorial.svelte';
|
|
5
5
|
import { clickButtonBySelector, clickFirstButtonBySelector, connectInlineRunnableInputToComponentOutput, isAppTainted, updateInlineRunnableCode } from '../utils';
|
|
6
6
|
import { updateProgress } from '../../../tutorialUtils';
|
|
7
|
+
import {} from 'driver.js';
|
|
8
|
+
import { wait } from '../../../utils';
|
|
7
9
|
export let name;
|
|
8
10
|
export let index;
|
|
9
11
|
let tutorial = undefined;
|
|
10
|
-
const { app, selectedComponent, focusedGrid
|
|
12
|
+
const { app, selectedComponent, focusedGrid } = getContext('AppViewerContext');
|
|
11
13
|
const { history } = getContext('AppEditorContext');
|
|
12
14
|
export function runTutorial() {
|
|
13
15
|
tutorial?.runTutorial();
|
|
@@ -28,7 +30,7 @@ function addComponent(appComponentType) {
|
|
|
28
30
|
on:skipAll
|
|
29
31
|
tainted={isAppTainted($app)}
|
|
30
32
|
getSteps={(driver) => {
|
|
31
|
-
const steps = [
|
|
33
|
+
const steps: DriveStep[] = [
|
|
32
34
|
{
|
|
33
35
|
popover: {
|
|
34
36
|
title: 'App editor tutorial',
|
|
@@ -91,7 +93,7 @@ function addComponent(appComponentType) {
|
|
|
91
93
|
popover: {
|
|
92
94
|
title: 'Component input',
|
|
93
95
|
description:
|
|
94
|
-
'There are several ways to set the input of a component. It can be static, the result of a JS expression, connected to the output of another component, or the result of
|
|
96
|
+
'There are several ways to set the input of a component. It can be static, the result of a JS expression, connected to the output of another component, or the result of an inline runnable. Here we will create an inline runnable that will convert the text to uppercase.',
|
|
95
97
|
onNextClick: () => {
|
|
96
98
|
clickFirstButtonBySelector('#component-input')
|
|
97
99
|
setTimeout(() => {
|
|
@@ -122,9 +124,7 @@ function addComponent(appComponentType) {
|
|
|
122
124
|
description: "Let's create an inline script.",
|
|
123
125
|
onNextClick: () => {
|
|
124
126
|
clickButtonBySelector('#app-editor-create-inline-script')
|
|
125
|
-
setTimeout(() =>
|
|
126
|
-
driver.moveNext()
|
|
127
|
-
})
|
|
127
|
+
setTimeout(() => driver.moveNext())
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
},
|
|
@@ -134,7 +134,7 @@ function addComponent(appComponentType) {
|
|
|
134
134
|
popover: {
|
|
135
135
|
title: 'Choose a language',
|
|
136
136
|
description:
|
|
137
|
-
'You can choose the language of your runnable.
|
|
137
|
+
'You can choose the language of your runnable. There are two type of runnables: frontend and backend.'
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
|
|
@@ -156,87 +156,71 @@ function addComponent(appComponentType) {
|
|
|
156
156
|
},
|
|
157
157
|
{
|
|
158
158
|
element: '#create-deno-script',
|
|
159
|
+
onHighlighted: () => {
|
|
160
|
+
document.querySelector('#schema-plug-x')?.parentElement?.classList.remove('opacity-0')
|
|
161
|
+
},
|
|
159
162
|
popover: {
|
|
160
163
|
title: 'Create a deno script',
|
|
161
164
|
description:
|
|
162
165
|
"Let's create a simple deno script. For the sake of this tutorial, we will create a script that converts the text to uppercase.",
|
|
163
|
-
onNextClick: () => {
|
|
166
|
+
onNextClick: async () => {
|
|
164
167
|
clickButtonBySelector('#create-deno-script')
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
`
|
|
174
|
-
)
|
|
175
|
-
}
|
|
168
|
+
await wait(50)
|
|
169
|
+
if ($selectedComponent?.[0]) {
|
|
170
|
+
updateInlineRunnableCode(
|
|
171
|
+
$app,
|
|
172
|
+
$selectedComponent[0],
|
|
173
|
+
'export function main(x: string) {\n return x?.toLocaleUpperCase();\n}'
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
176
|
|
|
177
|
-
|
|
178
|
-
})
|
|
177
|
+
driver.moveNext()
|
|
179
178
|
}
|
|
180
179
|
}
|
|
181
180
|
},
|
|
182
181
|
{
|
|
183
|
-
element: '#schema-plug',
|
|
182
|
+
element: '#schema-plug-x',
|
|
183
|
+
onHighlighted: () => {
|
|
184
|
+
document.querySelector('#schema-plug-x')?.parentElement?.classList.remove('opacity-0')
|
|
185
|
+
},
|
|
184
186
|
popover: {
|
|
185
187
|
title: 'Connect the function input',
|
|
186
188
|
description:
|
|
187
189
|
"The function we created has an string input 'x'. We can connect the output of the text component to it.",
|
|
188
190
|
onNextClick: () => {
|
|
189
|
-
clickButtonBySelector('#schema-plug')
|
|
191
|
+
clickButtonBySelector('#schema-plug-x')
|
|
190
192
|
setTimeout(() => {
|
|
191
193
|
driver.moveNext()
|
|
192
194
|
})
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
197
|
},
|
|
196
|
-
|
|
197
198
|
{
|
|
198
|
-
element: '#connect-output-
|
|
199
|
+
element: '#connect-output-a',
|
|
199
200
|
popover: {
|
|
200
201
|
title: 'Select the output',
|
|
201
|
-
description: ' ',
|
|
202
|
+
description: 'Open the output selector of the text input component.',
|
|
202
203
|
onNextClick: () => {
|
|
203
|
-
|
|
204
|
-
$connectingInput.input = undefined
|
|
205
|
-
|
|
204
|
+
clickButtonBySelector('#connect-output-a')
|
|
206
205
|
setTimeout(() => {
|
|
207
206
|
driver.moveNext()
|
|
208
207
|
})
|
|
209
|
-
},
|
|
210
|
-
onPopoverRender: (popover, opts) => {
|
|
211
|
-
const wrapper = document.createElement('div')
|
|
212
|
-
wrapper.classList.add('flex', 'flex-col', 'gap-2', 'w-full', 'items-start')
|
|
213
|
-
|
|
214
|
-
const p1 = document.createElement('p')
|
|
215
|
-
p1.innerText =
|
|
216
|
-
'You can now select the output in the output menu. Click on the little red button to open the menu.'
|
|
217
|
-
|
|
218
|
-
const id = document.createElement('div')
|
|
219
|
-
id.innerHTML = `<button class="bg-red-500/70 border border-red-600 px-1 py-0.5" title="Outputs" aria-label="Open output"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-plug-2 "><path d="M9 2v6"></path><path d="M15 2v6"></path><path d="M12 17v5"></path><path d="M5 8h14"></path><path d="M6 11V8h12v3a6 6 0 1 1-12 0v0Z"></path></svg></button>`
|
|
220
|
-
|
|
221
|
-
const p2 = document.createElement('p')
|
|
222
|
-
p2.innerText =
|
|
223
|
-
'Once opened, you can select the output you want to connect to. Here we will connect the result output of the text component to the input "x" of the inline runnable.'
|
|
224
|
-
|
|
225
|
-
const objectViewer = document.createElement('div')
|
|
226
|
-
objectViewer.innerHTML = `<div class="rounded-lg shadow-md border p-4 bg-surface"><span class="s-UNyBDXJ1E286"> <ul class="w-full pl-2 border-none s-UNyBDXJ1E286"><li class="s-UNyBDXJ1E286"><button class="whitespace-nowrap s-UNyBDXJ1E286"><span class="key border font-semibold rounded px-1 hover:bg-surface-hover text-2xs text-secondary s-UNyBDXJ1E286">result</span> :</button> <button class="val rounded px-1 hover:bg-blue-100 string s-UNyBDXJ1E286"><span title="" class="text-2xs s-UNyBDXJ1E286">""</span></button></li> </ul> </span> <span class="border border-blue-600 rounded px-1 cursor-pointer hover:bg-gray-200 s-UNyBDXJ1E286 hidden">{...}</span> </div>`
|
|
227
|
-
|
|
228
|
-
wrapper.appendChild(p1)
|
|
229
|
-
wrapper.appendChild(id)
|
|
230
|
-
wrapper.appendChild(p2)
|
|
231
|
-
wrapper.appendChild(objectViewer)
|
|
232
|
-
|
|
233
|
-
popover.description.appendChild(wrapper)
|
|
234
|
-
|
|
235
|
-
tutorial?.renderControls(opts)
|
|
236
208
|
}
|
|
237
209
|
}
|
|
238
210
|
},
|
|
239
|
-
|
|
211
|
+
{
|
|
212
|
+
element: '.component-output-viewer-a li *:has(> button[title="result"])',
|
|
213
|
+
popover: {
|
|
214
|
+
title: 'Select the output',
|
|
215
|
+
description: "Let's select the result of the text input component.",
|
|
216
|
+
onNextClick: () => {
|
|
217
|
+
setTimeout(async () => {
|
|
218
|
+
clickButtonBySelector('.component-output-viewer-a li button[title="result"]')
|
|
219
|
+
driver.moveNext()
|
|
220
|
+
})
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
240
224
|
{
|
|
241
225
|
element: '.wm-app-viewer',
|
|
242
226
|
popover: {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">import { updateProgress } from '../../../tutorialUtils';
|
|
2
|
+
import {} from 'driver.js';
|
|
2
3
|
import Tutorial from '../Tutorial.svelte';
|
|
3
4
|
import { clickButtonBySelector } from '../utils';
|
|
4
5
|
export let name;
|
|
@@ -16,7 +17,7 @@ export function runTutorial(skipStepsCount = undefined) {
|
|
|
16
17
|
on:error
|
|
17
18
|
on:skipAll
|
|
18
19
|
getSteps={(driver, options) => {
|
|
19
|
-
const steps = [
|
|
20
|
+
const steps: DriveStep[] = [
|
|
20
21
|
{
|
|
21
22
|
element: '#app-editor-runnable-panel',
|
|
22
23
|
popover: {
|
|
@@ -33,10 +34,7 @@ export function runTutorial(skipStepsCount = undefined) {
|
|
|
33
34
|
'Click here to create a runnable. Runnables are scripts that can be executed in the background. You can add as many runnables as you want.',
|
|
34
35
|
onNextClick: () => {
|
|
35
36
|
clickButtonBySelector('#create-background-runnable')
|
|
36
|
-
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
driver.moveNext()
|
|
39
|
-
})
|
|
37
|
+
setTimeout(() => driver.moveNext())
|
|
40
38
|
}
|
|
41
39
|
}
|
|
42
40
|
},
|
|
@@ -54,12 +54,12 @@ function addComponent() {
|
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
element: '
|
|
57
|
+
element: '[data-connection-button] button[title="Connect"]',
|
|
58
58
|
popover: {
|
|
59
59
|
title: 'Connect the text component',
|
|
60
60
|
description: 'Click on the plug icon to connect the text component',
|
|
61
61
|
onNextClick: () => {
|
|
62
|
-
clickButtonBySelector('
|
|
62
|
+
clickButtonBySelector('[data-connection-button] button[title="Connect"]')
|
|
63
63
|
setTimeout(() => {
|
|
64
64
|
driver.moveNext()
|
|
65
65
|
})
|