refactor(types): Remove SourceTargetNode-type

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
Braks
2021-11-25 15:21:36 +01:00
parent 729d3d5ca2
commit 8b0ddc9be9
9 changed files with 46 additions and 56 deletions
+10 -12
View File
@@ -1,4 +1,4 @@
import { rectToBox } from './graph'
import { isGraphNode, rectToBox } from './graph'
import {
Edge,
EdgePositions,
@@ -6,11 +6,10 @@ import {
GraphNode,
HandleElement,
Position,
SourceTargetNode,
Transform,
XYPosition,
Elements,
FlowElements,
GraphEdge,
} from '~/types'
export function getHandlePosition(position: Position, node: GraphNode, handle?: HandleElement): XYPosition {
@@ -115,18 +114,17 @@ export function isEdgeVisible({ sourcePos, targetPos, width, height, transform }
return overlappingArea > 0
}
export const getSourceTargetNodes = (edge: Edge, elements: FlowElements | Elements): SourceTargetNode => {
let { sourceNode, targetNode }: any = {
sourceNode: null,
targetNode: null,
}
export const getSourceTargetNodes = (edge: GraphEdge | Edge, elements: FlowElements) => {
const nodes: GraphNode[] = []
for (const el of elements) {
if (!sourceNode || !targetNode) {
if (el.id === edge.source) sourceNode = el
if (el.id === edge.target) targetNode = el
if (!nodes[0] || !nodes[1]) {
if (isGraphNode(el)) {
if (el.id === edge.source) nodes[0] = el
if (el.id === edge.target) nodes[1] = el
}
} else {
break
}
}
return { sourceNode, targetNode }
return { sourceNode: nodes[0], targetNode: nodes[1] }
}
+8 -9
View File
@@ -14,7 +14,6 @@ import {
FlowStore,
GraphNode,
FlowElements,
FlowElement,
GraphEdge,
} from '~/types'
import { useWindow } from '~/composables'
@@ -55,10 +54,8 @@ export const isEdge = (element: Node | Edge | Connection): element is Edge =>
export const isNode = (element: Node | Edge | Connection): element is Node =>
'id' in element && !('source' in element) && !('target' in element)
export const isGraphNode = (element: Node | FlowElement | Connection): element is GraphNode =>
isNode(element) && '__vf' in element
export const isGraphEdge = (element: Edge | FlowElement | Connection): element is GraphEdge =>
isEdge(element) && 'sourceTargetNodes' in element
export const isGraphNode = (element: any): element is GraphNode => isNode(element) && '__vf' in element
export const isGraphEdge = (element: any): element is GraphEdge => isEdge(element) && 'sourceTargetNodes' in element
const getConnectedElements = (node: GraphNode, elements: Elements, dir: 'source' | 'target') => {
if (!isNode(node)) return []
@@ -173,15 +170,15 @@ export const parseNode = (node: Node, nodeExtent: NodeExtent): GraphNode => ({
width: 0,
height: 0,
handleBounds: {
source: undefined,
target: undefined,
source: [],
target: [],
},
isDragging: false,
},
position: clampPosition(node.position, nodeExtent),
})
export const parseEdge = (edge: Edge): Edge => ({
export const parseEdge = (edge: Edge): GraphEdge => ({
...edge,
source: edge.source.toString(),
target: edge.target.toString(),
@@ -189,6 +186,8 @@ export const parseEdge = (edge: Edge): Edge => ({
targetHandle: edge.targetHandle ? edge.targetHandle.toString() : undefined,
id: edge.id.toString(),
type: edge.type ?? 'default',
sourceNode: {} as any,
targetNode: {} as any,
})
const getBoundsOfBoxes = (box1: Box, box2: Box): Box => ({
@@ -270,7 +269,7 @@ export const getNodesInside = (nodes: GraphNode[], rect: Rect, [tx, ty, tScale]:
})
}
export const getConnectedEdges = (nodes: GraphNode[], edges: Edge[]) => {
export const getConnectedEdges = (nodes: GraphNode[], edges: GraphEdge[]) => {
const nodeIds = nodes.map((node) => node.id)
return edges.filter((edge) => nodeIds.includes(edge.source) || nodeIds.includes(edge.target))
}
+3 -3
View File
@@ -8,7 +8,7 @@ import {
PanOnScrollMode,
DefaultNodeTypes,
DefaultEdgeTypes,
Edge,
GraphEdge,
} from '~/types'
import { DefaultNode, InputNode, OutputNode, BezierEdge, SmoothStepEdge, StepEdge, StraightEdge } from '~/components'
import { createHooks } from '~/composables'
@@ -96,7 +96,7 @@ export const initialState = (): FlowState => ({
vueFlowVersion: typeof __VUE_FLOW_VERSION__ !== 'undefined' ? __VUE_FLOW_VERSION__ : '-',
})
export const parseElements = (elements: Elements, nodes: GraphNode[], edges: Edge[], nodeExtent: NodeExtent) => {
export const parseElements = (elements: Elements, nodes: GraphNode[], edges: GraphEdge[], nodeExtent: NodeExtent) => {
const parsedElements = []
for (const element of elements) {
if (isNode(element)) {
@@ -125,7 +125,7 @@ export const parseElements = (elements: Elements, nodes: GraphNode[], edges: Edg
parsedElements.push({
...storeEdge,
...element,
})
} as GraphEdge)
} else {
parsedElements.push(parseEdge(element))
}