@@ -67,11 +67,12 @@ export const isGraphNode = <Data = ElementData>(element: MaybeElement): element
6767
6868export const isRect = ( obj : any ) : obj is Rect => ! ! obj . width && ! ! obj . height && ! ! obj . x && ! ! obj . y
6969
70- export function parseNode ( node : Node , defaults ?: Partial < GraphNode > ) : GraphNode {
71- let defaultValues = defaults
70+ export function parseNode ( node : Node , defaults : Partial < GraphNode > = { } ) : GraphNode {
71+ let initialState = defaults
72+
7273 if ( ! isGraphNode ( node ) ) {
73- defaultValues = {
74- type : node . type ?? 'default' ,
74+ initialState = {
75+ type : node . type ?? defaults . type ?? 'default' ,
7576 dimensions : markRaw ( {
7677 width : 0 ,
7778 height : 0 ,
@@ -99,31 +100,31 @@ export function parseNode(node: Node, defaults?: Partial<GraphNode>): GraphNode
99100 }
100101
101102 return {
102- ...defaultValues ,
103+ ...initialState ,
103104 ...( node as GraphNode ) ,
104105 id : node . id . toString ( ) ,
105106 }
106107}
107108
108- export function parseEdge ( edge : Edge , defaults ? : Partial < GraphEdge > ) : GraphEdge {
109- const events = isDef ( edge . events ) ? edge . events : defaults ? .events && isDef ( defaults ? .events ) ? defaults ? .events : { }
110- const data = isDef ( edge . data ) ? edge . data : defaults ? .data && isDef ( defaults ? .data ) ? defaults ? .data : { }
109+ export function parseEdge ( edge : Edge , defaults : Partial < GraphEdge > = { } ) : GraphEdge {
110+ const events = isDef ( edge . events ) ? edge . events : defaults . events && isDef ( defaults . events ) ? defaults . events : { }
111+ const data = isDef ( edge . data ) ? edge . data : defaults . data && isDef ( defaults . data ) ? defaults . data : { }
111112
112113 defaults = ! isGraphEdge ( edge )
113114 ? ( {
114115 ...defaults ,
115- sourceHandle : ( edge . sourceHandle ? edge . sourceHandle . toString ( ) : undefined ) || defaults ? .sourceHandle ,
116- targetHandle : ( edge . targetHandle ? edge . targetHandle . toString ( ) : undefined ) || defaults ? .targetHandle ,
117- type : edge . type ?? defaults ? .type ?? 'default' ,
118- source : edge . source . toString ( ) || defaults ? .source ,
119- target : edge . target . toString ( ) || defaults ? .target ,
120- updatable : edge . updatable ?? defaults ? .updatable ,
121- selectable : edge . selectable ?? defaults ? .selectable ,
122- focusable : edge . focusable ?? defaults ? .focusable ,
116+ sourceHandle : ( edge . sourceHandle ? edge . sourceHandle . toString ( ) : undefined ) || defaults . sourceHandle ,
117+ targetHandle : ( edge . targetHandle ? edge . targetHandle . toString ( ) : undefined ) || defaults . targetHandle ,
118+ type : edge . type ?? defaults . type ?? 'default' ,
119+ source : edge . source . toString ( ) || defaults . source ,
120+ target : edge . target . toString ( ) || defaults . target ,
121+ updatable : edge . updatable ?? defaults . updatable ,
122+ selectable : edge . selectable ?? defaults . selectable ,
123+ focusable : edge . focusable ?? defaults . focusable ,
123124 data,
124125 events : markRaw ( events ) ,
125- label : ( edge . label && ! isString ( edge . label ) ? markRaw ( edge . label ) : edge . label ) || defaults ? .label ,
126- interactionWidth : edge . interactionWidth || defaults ? .interactionWidth ,
126+ label : ( edge . label && ! isString ( edge . label ) ? markRaw ( edge . label ) : edge . label ) || defaults . label ,
127+ interactionWidth : edge . interactionWidth || defaults . interactionWidth ,
127128 } as GraphEdge )
128129 : defaults
129130
@@ -166,6 +167,7 @@ export function addEdge(edgeParams: Edge | Connection, elements: Elements, defau
166167 }
167168
168169 let edge
170+
169171 if ( isEdge ( edgeParams ) ) {
170172 edge = { ...edgeParams }
171173 } else {
@@ -174,9 +176,13 @@ export function addEdge(edgeParams: Edge | Connection, elements: Elements, defau
174176 id : getEdgeId ( edgeParams ) ,
175177 } as Edge
176178 }
179+
177180 edge = parseEdge ( edge , defaults )
181+
178182 if ( connectionExists ( edge , elements ) ) return elements
183+
179184 elements . push ( edge )
185+
180186 return elements
181187}
182188
0 commit comments