added nodeExtent to Svelte Flow and React Flow Provider

This commit is contained in:
peterkogo
2024-08-22 10:34:52 +02:00
parent 535744efa1
commit 04774e5011
11 changed files with 61 additions and 15 deletions
+4 -1
View File
@@ -15,6 +15,7 @@ import {
ParentExpandChild,
initialConnection,
NodeOrigin,
CoordinateExtent,
} from '@xyflow/system';
import { applyEdgeChanges, applyNodeChanges, createSelectionChange, getSelectionChanges } from '../utils/changes';
@@ -30,6 +31,7 @@ const createStore = ({
height,
fitView,
nodeOrigin,
nodeExtent,
}: {
nodes?: Node[];
edges?: Edge[];
@@ -39,10 +41,11 @@ const createStore = ({
height?: number;
fitView?: boolean;
nodeOrigin?: NodeOrigin;
nodeExtent?: CoordinateExtent;
}) =>
createWithEqualityFn<ReactFlowState>(
(set, get) => ({
...getInitialState({ nodes, edges, width, height, fitView, nodeOrigin, defaultNodes, defaultEdges }),
...getInitialState({ nodes, edges, width, height, fitView, nodeOrigin, nodeExtent, defaultNodes, defaultEdges }),
setNodes: (nodes: Node[]) => {
const { nodeLookup, parentLookup, nodeOrigin, elevateNodesOnSelect } = get();
// setNodes() is called exclusively in response to user actions:
+7 -1
View File
@@ -9,6 +9,7 @@ import {
getInternalNodesBounds,
NodeOrigin,
initialConnection,
CoordinateExtent,
} from '@xyflow/system';
import type { Edge, InternalNode, Node, ReactFlowStore } from '../types';
@@ -22,6 +23,7 @@ const getInitialState = ({
height,
fitView,
nodeOrigin,
nodeExtent,
}: {
nodes?: Node[];
edges?: Edge[];
@@ -31,18 +33,22 @@ const getInitialState = ({
height?: number;
fitView?: boolean;
nodeOrigin?: NodeOrigin;
nodeExtent?: CoordinateExtent;
} = {}): ReactFlowStore => {
const nodeLookup = new Map<string, InternalNode>();
const parentLookup = new Map();
const connectionLookup = new Map();
const edgeLookup = new Map();
const storeEdges = defaultEdges ?? edges ?? [];
const storeNodes = defaultNodes ?? nodes ?? [];
const storeNodeOrigin = nodeOrigin ?? [0, 0];
const storeNodeExtent = nodeExtent ?? infiniteExtent;
updateConnectionLookup(connectionLookup, edgeLookup, storeEdges);
adoptUserNodes(storeNodes, nodeLookup, parentLookup, {
nodeOrigin: storeNodeOrigin,
nodeExtent: storeNodeExtent,
elevateNodesOnSelect: false,
});
@@ -76,7 +82,7 @@ const getInitialState = ({
minZoom: 0.5,
maxZoom: 2,
translateExtent: infiniteExtent,
nodeExtent: infiniteExtent,
nodeExtent: storeNodeExtent,
nodesSelectionActive: false,
userSelectionActive: false,
userSelectionRect: null,