import { defineComponent } from 'vue'; import EdgeText from './EdgeText'; import { getMarkerEnd, DefaultEdgeProps } from './utils'; import { reactify } from '@vueuse/core'; import { ArrowHeadType, EdgeType } from '../../types'; export default defineComponent({ inheritAttrs: false, props: { ...DefaultEdgeProps }, setup(props) { const centerY = reactify((targetY: number, sourceY: number) => { const yOffset = Math.abs(targetY - sourceY) / 2; return targetY < sourceY ? targetY + yOffset : targetY - yOffset; }); const centerX = reactify((targetX: number, sourceX: number) => { const xOffset = Math.abs(targetX - sourceX) / 2; return targetX < sourceX ? targetX + xOffset : targetX - xOffset; }); const text = props.label ? ( ) : null; const markerEnd = reactify((arrowHeadType?: ArrowHeadType, markerEndId?: string) => getMarkerEnd(arrowHeadType, markerEndId)); return () => ( <> {text} ); } }) as unknown as EdgeType;