File size: 983 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { get } from 'svelte/store';
import { errorMessages } from '@xyflow/system';
import { useStore } from '../store';
export function useHandleEdgeSelect() {
    const { edgeLookup, selectionRect, selectionRectMode, multiselectionKeyPressed, addSelectedEdges, unselectNodesAndEdges, elementsSelectable } = useStore();
    return (id) => {
        const edge = get(edgeLookup).get(id);
        if (!edge) {
            console.warn('012', errorMessages['error012'](id));
            return;
        }
        const selectable = edge.selectable || (get(elementsSelectable) && typeof edge.selectable === 'undefined');
        if (selectable) {
            selectionRect.set(null);
            selectionRectMode.set(null);
            if (!edge.selected) {
                addSelectedEdges([id]);
            }
            else if (edge.selected && get(multiselectionKeyPressed)) {
                unselectNodesAndEdges({ nodes: [], edges: [edge] });
            }
        }
    };
}