feat(svelte) add defaultEdgeOptions, closes #3437

This commit is contained in:
Peter
2023-09-25 10:36:31 +02:00
parent 1a935de3f9
commit 339df4c651
4 changed files with 26 additions and 3 deletions
@@ -161,6 +161,9 @@
}} }}
autoPanOnConnect autoPanOnConnect
autoPanOnNodeDrag autoPanOnNodeDrag
defaultEdgeOptions={{
hidden: false
}}
> >
<Controls /> <Controls />
<Background variant={BackgroundVariant.Dots} /> <Background variant={BackgroundVariant.Dots} />
@@ -2,8 +2,19 @@
import { EdgeWrapper } from '$lib/components/EdgeWrapper'; import { EdgeWrapper } from '$lib/components/EdgeWrapper';
import { MarkerDefinition } from '$lib/container/EdgeRenderer/MarkerDefinition'; import { MarkerDefinition } from '$lib/container/EdgeRenderer/MarkerDefinition';
import { useStore } from '$lib/store'; import { useStore } from '$lib/store';
import type { DefaultEdgeOptions } from '$lib/types';
const { width, height, elementsSelectable, edgeTree } = useStore(); export let defaultOptions: DefaultEdgeOptions | undefined;
const {
width,
height,
elementsSelectable,
edgeTree,
edges: { setDefaultOptions }
} = useStore();
$: if (defaultOptions) setDefaultOptions(defaultOptions);
</script> </script>
{#each $edgeTree as group (group.level)} {#each $edgeTree as group (group.level)}
@@ -54,6 +54,7 @@
export let autoPanOnConnect: $$Props['autoPanOnConnect'] = true; export let autoPanOnConnect: $$Props['autoPanOnConnect'] = true;
export let autoPanOnNodeDrag: $$Props['autoPanOnNodeDrag'] = true; export let autoPanOnNodeDrag: $$Props['autoPanOnNodeDrag'] = true;
export let onError: $$Props['onError'] = undefined; export let onError: $$Props['onError'] = undefined;
export let defaultEdgeOptions: $$Props['defaultEdgeOptions'] = undefined;
export let defaultMarkerColor = '#b1b1b7'; export let defaultMarkerColor = '#b1b1b7';
@@ -149,7 +150,7 @@
> >
<Pane on:paneclick panOnDrag={panOnDrag === undefined ? true : panOnDrag}> <Pane on:paneclick panOnDrag={panOnDrag === undefined ? true : panOnDrag}>
<ViewportComponent> <ViewportComponent>
<EdgeRenderer on:edgeclick /> <EdgeRenderer on:edgeclick defaultOptions={defaultEdgeOptions} />
<ConnectionLine /> <ConnectionLine />
<div class="svelte-flow__edgelabel-renderer" /> <div class="svelte-flow__edgelabel-renderer" />
<NodeRenderer <NodeRenderer
@@ -17,7 +17,14 @@ import type {
OnError OnError
} from '@xyflow/system'; } from '@xyflow/system';
import type { Edge, Node, NodeTypes, KeyDefinition, EdgeTypes } from '$lib/types'; import type {
Edge,
Node,
NodeTypes,
KeyDefinition,
EdgeTypes,
DefaultEdgeOptions
} from '$lib/types';
import type { Writable } from 'svelte/store'; import type { Writable } from 'svelte/store';
export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & { export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & {
@@ -52,6 +59,7 @@ export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & {
onlyRenderVisibleElements?: boolean; onlyRenderVisibleElements?: boolean;
autoPanOnConnect?: boolean; autoPanOnConnect?: boolean;
autoPanOnNodeDrag?: boolean; autoPanOnNodeDrag?: boolean;
defaultEdgeOptions?: DefaultEdgeOptions;
class?: string; class?: string;
style?: string; style?: string;