feat(svelte) Expose edgeLookup, fix(svelte) dragging behaviour when selectable=false

This commit is contained in:
peterkogo
2024-01-11 15:00:16 +01:00
parent 5aacb84499
commit 62b57eec6e
2 changed files with 18 additions and 3 deletions
+15 -2
View File
@@ -200,11 +200,24 @@ export function createStore({
.map((edge) => edge.id);
if (selectedNodeIds.length) {
store.nodes.update((ns) => ns.map(resetSelectedItem(selectedNodeIds)));
const nodeLookup = get(store.nodeLookup);
selectedNodeIds.forEach((id) => {
const node = nodeLookup.get(id);
if (node) {
node.selected = false;
}
});
store.nodes.set(get(store.nodes));
}
if (selectedEdgeIds.length) {
store.edges.update((es) => es.map(resetSelectedItem(selectedEdgeIds)));
const edgeLookup = get(store.edgeLookup);
selectedEdgeIds.forEach((id) => {
const edge = edgeLookup.get(id);
if (edge) {
edge.selected = false;
}
});
}
}
@@ -23,7 +23,8 @@ import {
type OnConnectStart,
type OnConnectEnd,
type NodeLookup,
type OnBeforeDelete
type OnBeforeDelete,
type EdgeLookup
} from '@xyflow/system';
import DefaultNode from '$lib/components/nodes/DefaultNode.svelte';
@@ -99,6 +100,7 @@ export const getInitialStore = ({
flowId: writable<string | null>(null),
nodes: createNodesStore(nextNodes, nodeLookup),
nodeLookup: readable<NodeLookup>(nodeLookup),
edgeLookup: readable<EdgeLookup>(edgeLookup),
visibleNodes: readable<Node[]>([]),
edges: createEdgesStore(edges, connectionLookup, edgeLookup),
visibleEdges: readable<EdgeLayouted[]>([]),