{"version":3,"file":"tree-node.vue.mjs","sources":["../../../../../packages/components/tree/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      ns.is('disabled', disabled)\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  >\n    <div\n      :class=\"ns.be('node', 'content')\"\n      :style=\"{ paddingLeft: `${(node.level - 1) * indent}px` }\"\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        :size=\"16\"\n        @click.stop=\"handleExpandIconClick\"\n      >\n        <component :is=\"icon\" />\n      </el-icon>\n      <!-- <label for=\"\"></label> -->\n      <el-checkbox\n        v-if=\"showCheckbox && !disabled\"\n        :model-value=\"checked\"\n        :indeterminate=\"indeterminate\"\n        @change=\"handleCheckChange\"\n        @click.stop\n      />\n      <el-node-content :node=\"node\" />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport { CaretRight } from 'icon-ultra'\nimport ElIcon from '@element-ultra/components/icon'\nimport ElCheckbox from '@element-ultra/components/checkbox'\nimport { useNamespace } from '@element-ultra/hooks'\nimport ElNodeContent from './tree-node-content'\nimport {\n  ROOT_TREE_INJECTION_KEY,\n  NODE_CONTEXTMENU,\n  treeNodeEmits,\n  treeNodeProps\n} from './virtual-tree'\n\nconst DEFAULT_ICON = 'caret-right'\n\nexport default defineComponent({\n  name: 'ElTreeNode',\n  components: {\n    ElIcon,\n    CaretRight,\n    ElCheckbox,\n    ElNodeContent\n  },\n  props: treeNodeProps,\n  emits: treeNodeEmits,\n  setup(props, { emit }) {\n    const tree = inject(ROOT_TREE_INJECTION_KEY)\n    const ns = useNamespace('tree')\n\n    const indent = computed(() => {\n      return tree?.props.indent ?? 16\n    })\n\n    const icon = computed(() => {\n      return tree?.props.icon ?? DEFAULT_ICON\n    })\n\n    const handleClick = (e: MouseEvent) => {\n      if (props.disabled) return\n      emit('click', props.node, e)\n    }\n    const handleExpandIconClick = () => {\n      emit('toggle', props.node)\n    }\n    const handleCheckChange = (value: boolean) => {\n      emit('check', props.node, value)\n    }\n    const 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\n    return {\n      ns,\n      indent,\n      icon,\n      handleClick,\n      handleExpandIconClick,\n      handleCheckChange,\n      handleContextMenu\n    }\n  }\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_normalizeStyle","_createBlock","_createCommentVNode"],"mappings":"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"}