UNPKG

tdesign-vue-next

Version:
1 lines 5.12 kB
{"version":3,"file":"useRenderLine.mjs","sources":["../../../../components/tree/hooks/useRenderLine.tsx"],"sourcesContent":["import { usePrefixClass, TypeCreateElement, TreeNode, TypeVNode } from '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\n\n// 渲染节点连线\nexport default function useRenderLine(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderLine = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { line } = treeProps;\n const iconVisible = !!treeProps.icon;\n\n let lineNode = null;\n if (line === true) {\n if (scopedSlots?.line) {\n lineNode = scopedSlots.line({\n node: node?.getModel(),\n });\n } else if (node.parent && node.tree) {\n const { vmIsLeaf, vmIsFirst, level } = node;\n\n const lineClasses = [];\n\n // 每个节点绘制抵达上一层级的折线\n lineClasses.push(`${componentName}__line`);\n\n // 叶子节点,折线宽度延长,因为没有 icon 呈现\n // 任意节点,icon 不呈现时也是要延长折线宽度\n if (vmIsLeaf || !iconVisible) {\n lineClasses.push(`${componentName}__line--leaf`);\n }\n\n // 分支首节点,到上一节点的折线高度要缩短,让位给 icon 呈现\n // 如果 icon 隐藏了,则不必缩短折线高度\n if (vmIsFirst && iconVisible) {\n lineClasses.push(`${componentName}__line--first`);\n }\n\n // 如果节点的父节点,不是最后的节点\n // 则需要绘制节点延长线\n const shadowStyles: string[] = [];\n const parents = node.getParents();\n parents.pop();\n parents.forEach((pnode: TreeNode, index: number) => {\n if (!pnode.vmIsLast) {\n shadowStyles.push(`calc(-${index + 1} * var(--space)) 0 var(--color)`);\n }\n });\n\n const styles = {\n '--level': level ? String(level) : undefined,\n 'box-shadow': shadowStyles.join(','),\n };\n\n lineNode = <span class={lineClasses} style={styles}></span>;\n }\n } else {\n lineNode = getTNode(line, {\n createElement: h,\n node,\n });\n }\n return lineNode as TypeVNode;\n };\n\n return {\n renderLine,\n };\n}\n"],"names":["useRenderLine","state","componentName","usePrefixClass","value","renderLine","h","node","treeScope","scopedSlots","treeProps","line","iconVisible","icon","lineNode","getModel","parent","tree","vmIsLeaf","vmIsFirst","level","lineClasses","push","concat","shadowStyles","parents","getParents","pop","forEach","pnode","index","vmIsLast","styles","String","join","_createVNode","getTNode","createElement"],"mappings":"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"}