chore(core): cleanup

Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
braks
2023-03-22 20:09:05 +01:00
committed by Braks
parent 2f87aa8578
commit 0fb4713c0b
3 changed files with 31 additions and 29 deletions
@@ -114,20 +114,22 @@ const modelValue = useVModel(props, 'modelValue', emit)
const modelNodes = useVModel(props, 'nodes', emit) const modelNodes = useVModel(props, 'nodes', emit)
const modelEdges = useVModel(props, 'edges', emit) const modelEdges = useVModel(props, 'edges', emit)
const { vueFlowRef, id, hooks, getNodeTypes, getEdgeTypes, $reset, ...rest } = useVueFlow(props) const { vueFlowRef, hooks, getNodeTypes, getEdgeTypes, ...rest } = useVueFlow(props)
const dispose = useWatch({ modelValue, nodes: modelNodes, edges: modelEdges }, props, { const dispose = useWatch({ modelValue, nodes: modelNodes, edges: modelEdges }, props, {
vueFlowRef, vueFlowRef,
id,
hooks, hooks,
getNodeTypes, getNodeTypes,
getEdgeTypes, getEdgeTypes,
$reset,
...rest, ...rest,
}) })
useHooks(emit, hooks)
const el = ref<HTMLDivElement>() const el = ref<HTMLDivElement>()
provide(Slots, useSlots())
onUnmounted(() => { onUnmounted(() => {
dispose() dispose()
}) })
@@ -136,17 +138,11 @@ onMounted(() => {
vueFlowRef.value = el.value! vueFlowRef.value = el.value!
}) })
useHooks(emit, hooks)
provide(Slots, useSlots())
defineExpose<VueFlowStore>({ defineExpose<VueFlowStore>({
vueFlowRef, vueFlowRef,
id,
hooks, hooks,
getNodeTypes, getNodeTypes,
getEdgeTypes, getEdgeTypes,
$reset,
...rest, ...rest,
}) })
</script> </script>
+24 -18
View File
@@ -67,11 +67,12 @@ export const isGraphNode = <Data = ElementData>(element: MaybeElement): element
export const isRect = (obj: any): obj is Rect => !!obj.width && !!obj.height && !!obj.x && !!obj.y export const isRect = (obj: any): obj is Rect => !!obj.width && !!obj.height && !!obj.x && !!obj.y
export function parseNode(node: Node, defaults?: Partial<GraphNode>): GraphNode { export function parseNode(node: Node, defaults: Partial<GraphNode> = {}): GraphNode {
let defaultValues = defaults let initialState = defaults
if (!isGraphNode(node)) { if (!isGraphNode(node)) {
defaultValues = { initialState = {
type: node.type ?? 'default', type: node.type ?? defaults.type ?? 'default',
dimensions: markRaw({ dimensions: markRaw({
width: 0, width: 0,
height: 0, height: 0,
@@ -99,31 +100,31 @@ export function parseNode(node: Node, defaults?: Partial<GraphNode>): GraphNode
} }
return { return {
...defaultValues, ...initialState,
...(node as GraphNode), ...(node as GraphNode),
id: node.id.toString(), id: node.id.toString(),
} }
} }
export function parseEdge(edge: Edge, defaults?: Partial<GraphEdge>): GraphEdge { export function parseEdge(edge: Edge, defaults: Partial<GraphEdge> = {}): GraphEdge {
const events = isDef(edge.events) ? edge.events : defaults?.events && isDef(defaults?.events) ? defaults?.events : {} const events = isDef(edge.events) ? edge.events : defaults.events && isDef(defaults.events) ? defaults.events : {}
const data = isDef(edge.data) ? edge.data : defaults?.data && isDef(defaults?.data) ? defaults?.data : {} const data = isDef(edge.data) ? edge.data : defaults.data && isDef(defaults.data) ? defaults.data : {}
defaults = !isGraphEdge(edge) defaults = !isGraphEdge(edge)
? ({ ? ({
...defaults, ...defaults,
sourceHandle: (edge.sourceHandle ? edge.sourceHandle.toString() : undefined) || defaults?.sourceHandle, sourceHandle: (edge.sourceHandle ? edge.sourceHandle.toString() : undefined) || defaults.sourceHandle,
targetHandle: (edge.targetHandle ? edge.targetHandle.toString() : undefined) || defaults?.targetHandle, targetHandle: (edge.targetHandle ? edge.targetHandle.toString() : undefined) || defaults.targetHandle,
type: edge.type ?? defaults?.type ?? 'default', type: edge.type ?? defaults.type ?? 'default',
source: edge.source.toString() || defaults?.source, source: edge.source.toString() || defaults.source,
target: edge.target.toString() || defaults?.target, target: edge.target.toString() || defaults.target,
updatable: edge.updatable ?? defaults?.updatable, updatable: edge.updatable ?? defaults.updatable,
selectable: edge.selectable ?? defaults?.selectable, selectable: edge.selectable ?? defaults.selectable,
focusable: edge.focusable ?? defaults?.focusable, focusable: edge.focusable ?? defaults.focusable,
data, data,
events: markRaw(events), events: markRaw(events),
label: (edge.label && !isString(edge.label) ? markRaw(edge.label) : edge.label) || defaults?.label, label: (edge.label && !isString(edge.label) ? markRaw(edge.label) : edge.label) || defaults.label,
interactionWidth: edge.interactionWidth || defaults?.interactionWidth, interactionWidth: edge.interactionWidth || defaults.interactionWidth,
} as GraphEdge) } as GraphEdge)
: defaults : defaults
@@ -166,6 +167,7 @@ export function addEdge(edgeParams: Edge | Connection, elements: Elements, defau
} }
let edge let edge
if (isEdge(edgeParams)) { if (isEdge(edgeParams)) {
edge = { ...edgeParams } edge = { ...edgeParams }
} else { } else {
@@ -174,9 +176,13 @@ export function addEdge(edgeParams: Edge | Connection, elements: Elements, defau
id: getEdgeId(edgeParams), id: getEdgeId(edgeParams),
} as Edge } as Edge
} }
edge = parseEdge(edge, defaults) edge = parseEdge(edge, defaults)
if (connectionExists(edge, elements)) return elements if (connectionExists(edge, elements)) return elements
elements.push(edge) elements.push(edge)
return elements return elements
} }
+2 -2
View File
@@ -76,9 +76,9 @@ export function createGraphNodes(nodes: Node[], findNode: Actions['findNode'], c
return parsed return parsed
}) })
graphNodes.forEach((node) => { const nextNodes = [...graphNodes, ...currGraphNodes]
const nextNodes = [...graphNodes, ...currGraphNodes]
graphNodes.forEach((node) => {
const parentNode = nextNodes.find((n) => n.id === node.parentNode) const parentNode = nextNodes.find((n) => n.id === node.parentNode)
if (node.parentNode && !parentNode) { if (node.parentNode && !parentNode) {