{"version":3,"file":"tree-node.mjs","sources":["../../../../../../../packages/components/tree-v2/src/tree-node.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"node$\"\n    :class=\"[\n      ns.b('node'),\n      ns.is('expanded', expanded),\n      ns.is('current', current),\n      ns.is('focusable', !disabled),\n      ns.is('checked', !disabled && checked),\n      getNodeClass(node),\n    ]\"\n    role=\"treeitem\"\n    tabindex=\"-1\"\n    :aria-expanded=\"expanded\"\n    :aria-disabled=\"disabled\"\n    :aria-checked=\"checked\"\n    :data-key=\"node?.key\"\n    @click.stop=\"handleClick\"\n    @contextmenu=\"handleContextMenu\"\n    @dragover.prevent\n    @dragenter.prevent\n    @drop.stop=\"handleDrop\"\n  >\n    <div\n      :class=\"ns.be('node', 'content')\"\n      :style=\"{\n        paddingLeft: `${(node.level - 1) * indent}px`,\n        height: itemSize + 'px',\n      }\"\n    >\n      <el-icon\n        v-if=\"icon\"\n        :class=\"[\n          ns.is('leaf', !!node?.isLeaf),\n          ns.is('hidden', hiddenExpandIcon),\n          {\n            expanded: !node?.isLeaf && expanded,\n          },\n          ns.be('node', 'expand-icon'),\n        ]\"\n        @click.stop=\"handleExpandIconClick\"\n      >\n        <component :is=\"icon\" />\n      </el-icon>\n      <el-checkbox\n        v-if=\"showCheckbox\"\n        :model-value=\"checked\"\n        :indeterminate=\"indeterminate\"\n        :disabled=\"disabled\"\n        @change=\"handleCheckChange\"\n        @click.stop\n      />\n      <el-node-content :node=\"{ ...node, expanded }\" />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport ElIcon from '@hd-front-end/components/icon'\nimport { CaretRight } from '@element-plus/icons-vue'\nimport ElCheckbox from '@hd-front-end/components/checkbox'\nimport { useNamespace } from '@hd-front-end/hooks'\nimport { isFunction, isString } from '@hd-front-end/utils'\nimport ElNodeContent from './tree-node-content'\nimport {\n  NODE_CONTEXTMENU,\n  ROOT_TREE_INJECTION_KEY,\n  treeNodeEmits,\n  treeNodeProps,\n} from './virtual-tree'\n\nimport type { CheckboxValueType } from '@hd-front-end/components/checkbox'\nimport type { TreeNode } from './types'\n\ndefineOptions({\n  name: 'ElTreeNode',\n})\n\nconst props = defineProps(treeNodeProps)\nconst emit = defineEmits(treeNodeEmits)\n\nconst tree = inject(ROOT_TREE_INJECTION_KEY)\nconst ns = useNamespace('tree')\n\nconst indent = computed(() => tree?.props.indent ?? 16)\nconst icon = computed(() => tree?.props.icon ?? CaretRight)\n\nconst getNodeClass = (node: TreeNode) => {\n  const nodeClassFunc = tree?.props.props.class\n  if (!nodeClassFunc) return {}\n\n  let className\n  if (isFunction(nodeClassFunc)) {\n    const { data } = node\n    className = nodeClassFunc(data, node)\n  } else {\n    className = nodeClassFunc\n  }\n\n  return isString(className) ? { [className]: true } : className\n}\n\nconst handleClick = (e: MouseEvent) => {\n  emit('click', props.node, e)\n}\nconst handleDrop = (e: DragEvent) => {\n  emit('drop', props.node, e)\n}\nconst handleExpandIconClick = () => {\n  emit('toggle', props.node)\n}\nconst handleCheckChange = (value: CheckboxValueType) => {\n  emit('check', props.node, value)\n}\n\nconst handleContextMenu = (event: Event) => {\n  if (tree?.instance?.vnode?.props?.['onNodeContextmenu']) {\n    event.stopPropagation()\n    event.preventDefault()\n  }\n  tree?.ctx.emit(NODE_CONTEXTMENU, event, props.node?.data, props.node)\n}\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","expanded","current","disabled","checked","node","_withModifiers","_createElementVNode","_normalizeStyle","itemSize","_openBlock","_createBlock","hiddenExpandIcon","_resolveDynamicComponent","showCheckbox","indeterminate","_createCommentVNode","_createVNode"],"mappings":"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"}