From 71470d7da9d3c7a52d7c5a206849f2e63ac4fa02 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 2 Sep 2024 15:13:42 +0200 Subject: [PATCH] feat: add yaml editor in flow builder --- .../src/lib/components/FlowBuilder.svelte | 8 +++ .../src/lib/components/FlowViewerInner.svelte | 8 +-- .../src/lib/components/WorkerTagPicker.svelte | 5 +- .../flows/content/FlowSettings.svelte | 6 +- .../flows/header/FlowYamlEditor.svelte | 62 +++++++++++++++++++ frontend/src/lib/components/flows/types.ts | 16 ++--- frontend/src/lib/components/flows/utils.ts | 23 +++++++ 7 files changed, 108 insertions(+), 20 deletions(-) create mode 100644 frontend/src/lib/components/flows/header/FlowYamlEditor.svelte diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte index cf870d4332..3b29507f41 100644 --- a/frontend/src/lib/components/FlowBuilder.svelte +++ b/frontend/src/lib/components/FlowBuilder.svelte @@ -81,6 +81,7 @@ import CustomPopover from './CustomPopover.svelte' import Summary from './Summary.svelte' import type { FlowBuilderWhitelabelCustomUi } from './custom_ui' + import FlowYamlEditor from './flows/header/FlowYamlEditor.svelte' export let initialPath: string = '' export let pathStoreInit: string | undefined = undefined @@ -1007,6 +1008,7 @@ let flowTutorials: FlowTutorials | undefined = undefined let jsonViewerDrawer: Drawer | undefined = undefined + let yamlEditorDrawer: Drawer | undefined = undefined let flowHistory: FlowHistory | undefined = undefined export function triggerTutorial() { @@ -1049,6 +1051,11 @@ displayName: 'Export', icon: FileJson, action: () => jsonViewerDrawer?.openDrawer() + }, + { + displayName: 'Edit in YAML', + icon: FileJson, + action: () => yamlEditorDrawer?.openDrawer() } ] : []) @@ -1069,6 +1076,7 @@ {#if $pathStore} {/if} + { diff --git a/frontend/src/lib/components/FlowViewerInner.svelte b/frontend/src/lib/components/FlowViewerInner.svelte index 9961ca419a..7fd487ee43 100644 --- a/frontend/src/lib/components/FlowViewerInner.svelte +++ b/frontend/src/lib/components/FlowViewerInner.svelte @@ -9,6 +9,7 @@ import YAML from 'yaml' import { yaml } from 'svelte-highlight/languages' import HighlightTheme from './HighlightTheme.svelte' + import { filteredContentForExport } from './flows/utils' export let flow: { summary: string @@ -17,12 +18,7 @@ schema?: any } - $: flowFiltered = { - summary: flow.summary, - description: flow.description, - value: flow.value, - schema: flow.schema - } + $: flowFiltered = filteredContentForExport(flow) let rawType: 'json' | 'yaml' = 'yaml' diff --git a/frontend/src/lib/components/WorkerTagPicker.svelte b/frontend/src/lib/components/WorkerTagPicker.svelte index 29fbbadfd7..a00278b780 100644 --- a/frontend/src/lib/components/WorkerTagPicker.svelte +++ b/frontend/src/lib/components/WorkerTagPicker.svelte @@ -18,7 +18,7 @@
- {#if workerTags} + {#if $workerTags} {#if $workerTags?.length ?? 0 > 0}