in seatunnel-ui/src/views/task/synchronization-definition/dag/canvas/use-dag-graph.ts [42:62]
validateConnection(data) {
const { sourceCell, targetCell } = data
if (targetCell?.getData().type === 'source') return false
if (targetCell?.getData().type === 'sink') {
return graph.value?.getConnectedEdges(targetCell).length < 1
}
if (targetCell?.getData().type === 'transform') {
// The same 'Copy' transform node cannot be connected
const srcData = sourceCell?.getData(), tgtData = targetCell?.getData()
if (srcData.type === 'transform' && srcData.connectorType === 'Copy' && tgtData.connectorType === 'Copy') return false
// don't connect self
const edges = graph.value?.getConnectedEdges(targetCell)
return !edges.some((edge: Edge) => {
return edge.getTargetCellId() === targetCell.id
})
}
return true
}