make nodesDraggable, nodesConnectable and elementsSelectable bindable props
This commit is contained in:
@@ -65,6 +65,9 @@
|
|||||||
nodes = $bindable([]),
|
nodes = $bindable([]),
|
||||||
edges = $bindable([]),
|
edges = $bindable([]),
|
||||||
viewport = $bindable(undefined),
|
viewport = $bindable(undefined),
|
||||||
|
nodesDraggable = $bindable(true),
|
||||||
|
nodesConnectable = $bindable(true),
|
||||||
|
elementsSelectable = $bindable(true),
|
||||||
...props
|
...props
|
||||||
}: SvelteFlowProps & HTMLAttributes<HTMLDivElement> = $props();
|
}: SvelteFlowProps & HTMLAttributes<HTMLDivElement> = $props();
|
||||||
|
|
||||||
@@ -89,6 +92,24 @@
|
|||||||
},
|
},
|
||||||
set viewport(newViewport) {
|
set viewport(newViewport) {
|
||||||
viewport = newViewport;
|
viewport = newViewport;
|
||||||
|
},
|
||||||
|
get nodesDraggable() {
|
||||||
|
return nodesDraggable;
|
||||||
|
},
|
||||||
|
set nodesDraggable(newNodesDraggable) {
|
||||||
|
nodesDraggable = newNodesDraggable;
|
||||||
|
},
|
||||||
|
get nodesConnectable() {
|
||||||
|
return nodesConnectable;
|
||||||
|
},
|
||||||
|
set nodesConnectable(newNodesConnectable) {
|
||||||
|
nodesConnectable = newNodesConnectable;
|
||||||
|
},
|
||||||
|
get elementsSelectable() {
|
||||||
|
return elementsSelectable;
|
||||||
|
},
|
||||||
|
set elementsSelectable(newElementsSelectable) {
|
||||||
|
elementsSelectable = newElementsSelectable;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -155,6 +155,25 @@ export const getInitialStore = (signals: StoreSignals) => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
get nodesDraggable() {
|
||||||
|
return signals.nodesDraggable;
|
||||||
|
}
|
||||||
|
set nodesDraggable(value: boolean) {
|
||||||
|
signals.nodesDraggable = value;
|
||||||
|
}
|
||||||
|
get nodesConnectable() {
|
||||||
|
return signals.nodesConnectable;
|
||||||
|
}
|
||||||
|
set nodesConnectable(value: boolean) {
|
||||||
|
signals.nodesConnectable = value;
|
||||||
|
}
|
||||||
|
get elementsSelectable() {
|
||||||
|
return signals.elementsSelectable;
|
||||||
|
}
|
||||||
|
set elementsSelectable(value: boolean) {
|
||||||
|
signals.elementsSelectable = value;
|
||||||
|
}
|
||||||
|
|
||||||
domNode = $state<HTMLDivElement | null>(null);
|
domNode = $state<HTMLDivElement | null>(null);
|
||||||
width = $state<number>(signals.width ?? 0);
|
width = $state<number>(signals.width ?? 0);
|
||||||
height = $state<number>(signals.height ?? 0);
|
height = $state<number>(signals.height ?? 0);
|
||||||
@@ -231,9 +250,7 @@ export const getInitialStore = (signals: StoreSignals) => {
|
|||||||
isValidConnection: IsValidConnection = $derived(
|
isValidConnection: IsValidConnection = $derived(
|
||||||
signals.props.isValidConnection ?? (() => true)
|
signals.props.isValidConnection ?? (() => true)
|
||||||
);
|
);
|
||||||
nodesDraggable: boolean = $derived(signals.props.nodesDraggable ?? true);
|
|
||||||
nodesConnectable: boolean = $derived(signals.props.nodesConnectable ?? true);
|
|
||||||
elementsSelectable: boolean = $derived(signals.props.elementsSelectable ?? true);
|
|
||||||
selectNodesOnDrag: boolean = $derived(signals.props.selectNodesOnDrag ?? true);
|
selectNodesOnDrag: boolean = $derived(signals.props.selectNodesOnDrag ?? true);
|
||||||
|
|
||||||
defaultMarkerColor: string = $derived(signals.props.defaultMarkerColor ?? '#b1b1b7');
|
defaultMarkerColor: string = $derived(signals.props.defaultMarkerColor ?? '#b1b1b7');
|
||||||
|
|||||||
@@ -95,6 +95,9 @@ export type StoreSignals = {
|
|||||||
nodes: Node[];
|
nodes: Node[];
|
||||||
edges: Edge[];
|
edges: Edge[];
|
||||||
viewport?: Viewport;
|
viewport?: Viewport;
|
||||||
|
nodesDraggable: boolean;
|
||||||
|
nodesConnectable: boolean;
|
||||||
|
elementsSelectable: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SvelteFlowStoreState = ReturnType<typeof getInitialStore>;
|
export type SvelteFlowStoreState = ReturnType<typeof getInitialStore>;
|
||||||
|
|||||||
Reference in New Issue
Block a user