{"version":3,"file":"TreeLine.mjs","sources":["../../../../../../package/components/tree/src/TreeLine.tsx"],"sourcesContent":["/* eslint-disable indent */\nimport { computed, defineComponent, h } from \"vue\";\nimport { treeNodeProps } from \"element-plus/es/components/tree-v2/src/virtual-tree\";\nimport { getPrefixCls } from \"@vue-admin-core/utils/const\";\nconst prefixCls = getPrefixCls(\"tree-node\");\nexport default defineComponent({\n  name: \"VacTreeLine\",\n  props: {\n    node: treeNodeProps.node,\n    treeData: {\n      type: Array\n    },\n    indent: {\n      type: Number,\n      default() {\n        return 16;\n      }\n    }\n  },\n  setup(props, { slots }) {\n    const lastnodeArr = computed(() => {\n      const lastnodeArr = [];\n      let currentNode: any = props.node;\n      while (currentNode) {\n        let parentNode = currentNode.parent;\n        // 兼容element-plus的 el-tree-v2 (Virtualized Tree 虚拟树)\n        if (currentNode.level === 1 && !currentNode.parent) {\n          // el-tree-v2的第一层node是没有parent的，必需 treeData 创建一个parent\n          if (!props.treeData || !Array.isArray(props.treeData)) {\n            throw Error(\n              \"if you using el-tree-v2 (Virtualized Tree) of element-plus,element-tree-line required data.\"\n            );\n          }\n          parentNode = {\n            children: Array.isArray(props.treeData)\n              ? props.treeData.map((item: any) => {\n                  return { ...item, key: item.id };\n                })\n              : [],\n            level: 0,\n            key: \"node-0\",\n            parent: null\n          };\n        }\n        if (parentNode) {\n          // element-plus的 el-tree-v2 使用的是children和key， 其他使用的是 childNodes和id\n          const index = (parentNode.children || parentNode.childNodes).findIndex(\n            (item: any) => (item.key || item.id) === (currentNode.key || currentNode.id)\n          );\n          lastnodeArr.unshift(index === (parentNode.children || parentNode.childNodes).length - 1);\n        }\n        currentNode = parentNode;\n      }\n      return lastnodeArr;\n    });\n\n    const lineNodes = computed(() => {\n      const lineNodes = [];\n      for (let i = 1; i < props.node.level; i++) {\n        if (lastnodeArr.value[i] && props.node.level - 1 !== i) {\n          continue;\n        }\n        lineNodes.push(\n          h(\"span\", {\n            class: {\n              [`${prefixCls}-line-var`]: true,\n              \"last-node-isLeaf-line\": lastnodeArr.value[i] && props.node.level - 1 === i\n            },\n            style: { left: props.indent * i - 6 + \"px\" }\n          })\n        );\n      }\n\n      return lineNodes;\n    });\n    return () => {\n      return h(\n        \"span\",\n        {\n          class: `${prefixCls}-label-wrapper`\n        },\n        [\n          slots.default\n            ? slots.default({ node: props.node, data: props.node.data })\n            : h(\"span\", { class: \"el-tree-node__label\" }, [props.node.label]),\n          ...lineNodes.value,\n          props.node.level !== 1\n            ? h(\"span\", {\n                class: `${prefixCls}-line-hor`,\n                style: {\n                  width: \"10px\",\n                  left: (props.node.level - 1) * props.indent - 6 + \"px\"\n                }\n              })\n            : null\n        ]\n      );\n    };\n  }\n});\n"],"names":["prefixCls","getPrefixCls","defineComponent","name","props","node","treeNodeProps","treeData","type","Array","indent","Number","default","setup","slots","lastnodeArr","computed","currentNode","parentNode","parent","level","isArray","Error","children","map","item","key","id","index","childNodes","findIndex","unshift","length","lineNodes","i","value","push","h","class","style","left","data","label","width"],"mappings":"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"}