open-webui/src/lib/components/chat/Overview/Flow.svelte

52 lines
1.3 KiB
Svelte
Raw Normal View History

2024-09-17 20:05:19 +00:00
<script>
2024-09-18 01:13:37 +00:00
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
2024-09-17 20:05:19 +00:00
import { theme } from '$lib/stores';
import {
Background,
Controls,
SvelteFlow,
BackgroundVariant,
ControlButton
} from '@xyflow/svelte';
import BarsArrowUp from '$lib/components/icons/BarsArrowUp.svelte';
import Bars3BottomLeft from '$lib/components/icons/Bars3BottomLeft.svelte';
2024-09-17 20:05:19 +00:00
export let nodes;
export let nodeTypes;
export let edges;
export let setLayoutDirection;
2024-09-17 20:05:19 +00:00
</script>
<SvelteFlow
{nodes}
{nodeTypes}
{edges}
fitView
minZoom={0.001}
2024-09-17 23:53:08 +00:00
colorMode={$theme.includes('dark')
? 'dark'
: $theme === 'system'
? window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light'
: 'light'}
nodesConnectable={false}
2024-09-17 20:05:19 +00:00
nodesDraggable={false}
2024-09-18 01:13:37 +00:00
on:nodeclick={(e) => dispatch('nodeclick', e.detail)}
2024-09-17 20:05:19 +00:00
oninit={() => {
console.log('Flow initialized');
}}
>
<Controls showLock={false}>
<ControlButton on:click={() => setLayoutDirection('vertical')} title="Vertical Layout">
<BarsArrowUp class="size-4" />
</ControlButton>
<ControlButton on:click={() => setLayoutDirection('horizontal')} title="Horizontal Layout">
<Bars3BottomLeft class="size-4" />
</ControlButton>
</Controls>
2024-09-17 20:05:19 +00:00
<Background variant={BackgroundVariant.Dots} />
</SvelteFlow>