import { Graph } from '@antv/x6';
import { Images } from '@/api/rule/images';
//删除工具
export function registerEdgeDeleteTool(proxy) {
  Graph.unregisterEdgeTool('delete-edge-tool'); // 注销原工具


  // 注册一个自定义的边的工具
  Graph.registerEdgeTool('delete-edge-tool', {
    inherit: 'button', // 继承基类button
    markup: [
      {
        tagName: 'circle',
        selector: 'toolRect', // 确保有一个矩形作为背景
        attrs: {
          r: 12,
          fill: '#ffffff',
          stroke: '#265fa6'
        }
      },
      {
        tagName: 'image',
        selector: 'delete_egde_icon',
        attrs: {
          'xlink:href': Images.deleteIcon, // 确保 Images.deleteIcon 是有效的 URL 或路径
          width: 16,
          height: 16,
          refX: '50%', // 相对于 circle 的水平居中
          refY: '50%', // 相对于 circle 的垂直居中
          x: -8, // 调整图像相对于圆心的位置
          y: -8 // 调整图像相对于圆心的位置
        }
      }
    ],
    onClick: async ({ view }) => {
      try {
        const shouldDelete = await proxy?.$modal.confirm('确定删除所点击的线吗?');
        if (shouldDelete) {
          view.cell.remove();
        }
      } catch (error) {
        if (error === 'cancel') {
          // 用户取消了删除操作，不做任何处理
        } else {
          // 处理其他可能的错误
        }
      }
    }
  });
}
//连线的标签
export function getEdgeLables(count) {
  const lable = [
    {
      markup: [
        {
          tagName: 'circle',
          selector: 'body'
        },
        {
          tagName: 'text',
          selector: 'label'
        }
      ],
      position: 0.5, // 标签位置，0.5表示位于边的中间
      attrs: {
        body: {
          fill: '#007bff', // 蓝底
          r: 12,
          ref: 'label', // 确保矩形大小适应文本
          refX: '50%',
          refY: '50%',
          cx: 0, // 圆心的 x 坐标，基于 ref
          cy: 0 // 圆心的 y 坐标，基于 ref
        },
        label: {
          textAnchor: 'middle',
          yAlignment: 'middle',
          fontSize: 12,
          fill: '#fff', // 白色字体
          text: String(count),
          refX: '50%',
          refY: '50%'
        }
      }
    }
  ];

  return lable;
}
