refactor(types): Remove SourceTargetNode-type
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
+10
-12
@@ -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
@@ -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
@@ -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))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user