{"version":3,"file":"tree-node.vue2.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":[],"mappings":";;;;;;;;;;;AAkEA,MAAM,YAAe,GAAA,aAAA,CAAA;AAErB,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,YAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,GACF;AAAA,EACA,KAAO,EAAA,aAAA;AAAA,EACP,KAAO,EAAA,aAAA;AAAA,EACP,KAAM,CAAA,KAAA,EAAO,EAAE,IAAA,EAAQ,EAAA;AACrB,IAAM,MAAA,IAAA,GAAO,OAAO,uBAAuB,CAAA,CAAA;AAC3C,IAAM,MAAA,EAAA,GAAK,aAAa,MAAM,CAAA,CAAA;AAE9B,IAAM,MAAA,MAAA,GAAS,SAAS,MAAM;;AAC5B,MAAO,OAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,KAAM,CAAA,MAAA,KAAZ,IAAsB,GAAA,EAAA,GAAA,EAAA,CAAA;AAAA,KAC9B,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;;AAC1B,MAAO,OAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,KAAM,CAAA,IAAA,KAAZ,IAAoB,GAAA,EAAA,GAAA,YAAA,CAAA;AAAA,KAC5B,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,CAAC,CAAkB,KAAA;AACrC,MAAA,IAAI,KAAM,CAAA,QAAA;AAAU,QAAA,OAAA;AACpB,MAAK,IAAA,CAAA,OAAA,EAAS,KAAM,CAAA,IAAA,EAAM,CAAC,CAAA,CAAA;AAAA,KAC7B,CAAA;AACA,IAAA,MAAM,wBAAwB,MAAM;AAClC,MAAK,IAAA,CAAA,QAAA,EAAU,MAAM,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;AACA,IAAM,MAAA,iBAAA,GAAoB,CAAC,KAAmB,KAAA;AAC5C,MAAK,IAAA,CAAA,OAAA,EAAS,KAAM,CAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AAAA,KACjC,CAAA;AACA,IAAM,MAAA,iBAAA,GAAoB,CAAC,KAAiB,KAAA;;AAC1C,MAAA,IAAA,CAAI,8CAAM,QAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,UAAhB,IAAuB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,KAAvB,mBAA+B,mBAAsB,CAAA,EAAA;AACvD,QAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AAAA,OACvB;AACA,MAAM,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,GAAA,CAAI,KAAK,gBAAkB,EAAA,KAAA,EAAA,CAAO,WAAM,IAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,MAAM,KAAM,CAAA,IAAA,CAAA,CAAA;AAAA,KAClE,CAAA;AAEA,IAAO,OAAA;AAAA,MACL,EAAA;AAAA,MACA,MAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,qBAAA;AAAA,MACA,iBAAA;AAAA,MACA,iBAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}