{"version":3,"file":"tree-node.mjs","sources":["../../../../../../packages/components/tree-v2/src/tree-node.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"node$\"\n    class=\"tree-node\"\n    :class=\"{\n      'is-expanded': expanded,\n      'is-current': current,\n      'is-focusable': !disabled,\n      'is-checked': !disabled && checked,\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=\"tree-node-content\"\n      :style=\"{ paddingLeft: `${(node.level - 1) * indent}px` }\"\n    >\n      <span\n        :class=\"[\n          {\n            'is-leaf': node.isLeaf,\n            expanded: !node.isLeaf && expanded\n          },\n          'tree-node-arrow',\n        ]\"\n        @click.stop=\"handleExpandIconClick\"\n      >\n        <slot name=\"icon\" :expanded=\"expanded\" :isLeaf=\"node.isLeaf\">\n          <hl-icon>\n            <system-caret />\n          </hl-icon>\n        </slot>\n      </span>\n      <hl-checkbox\n        v-if=\"showCheckbox\"\n        :model-value=\"checked\"\n        :indeterminate=\"indeterminate\"\n        :disabled=\"disabled\"\n        @change=\"handleCheckChange\"\n        @click.stop\n      />\n      <node-content :node=\"node\" />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { SystemCaret } from '@hongluan-ui/components/system-icon'\nimport HlIcon from '@hongluan-ui/components/icon'\nimport HlCheckbox from '@hongluan-ui/components/checkbox'\nimport NodeContent from './tree-node-content'\nimport { ROOT_TREE_INJECTION_KEY, NODE_CONTEXTMENU, treeNodeProps, treeNodeEmits } from './virtual-tree'\nimport type { CheckboxValueType } from '@hongluan-ui/components/checkbox'\n\ndefineOptions({\n  name: 'TreeNode',\n})\n\nconst props = defineProps(treeNodeProps)\nconst emit = defineEmits(treeNodeEmits)\n\nconst tree = inject(ROOT_TREE_INJECTION_KEY)\n\nconst indent = computed(() => {\n  return tree?.props.indent ?? 16\n})\n\nconst handleClick = (e: MouseEvent) => {\n  emit('click', props.node, e)\n}\nconst handleExpandIconClick = () => {\n  emit('toggle', props.node)\n}\nconst handleCheckChange = (value: CheckboxValueType) => {\n  emit('check', props.node, value)\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":[],"mappings":";;;;;;;;oCA6Dc;AAAA,EACZ,MAAM;AACR;;;;;;;AAKA,UAAM,OAAO,OAAO,uBAAuB;AAE3C,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO;AAAsB;AAG/B;AACE,0BAAoB;AAAO;AAE7B;AACE,+BAAyB;AAAA;AAE3B;AACE;AAA+B;AAEjC;AACE,UAAI,+BAA+B;AACjC,cAAM;AACN;AAAqB;AAEvB;AAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}