{"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    ]\"\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      <b-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      </b-icon>\n      <b-checkbox\n        v-if=\"showCheckbox\"\n        plain\n        :model-value=\"checked\"\n        :indeterminate=\"indeterminate\"\n        :disabled=\"disabled\"\n        @change=\"handleCheckChange\"\n        @click.stop\n      />\n      <b-node-content :node=\"node\" />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport { ActionRight } from '@bigin/icons-vue'\nimport BIcon from '@bigin/components/icon'\nimport BCheckbox from '@bigin/components/checkbox'\nimport { useNamespace } from '@bigin/hooks'\nimport BNodeContent from './tree-node-content'\nimport {\n  NODE_CONTEXTMENU,\n  ROOT_TREE_INJECTION_KEY,\n  treeNodeEmits,\n  treeNodeProps,\n} from './virtual-tree'\n\nconst DEFAULT_ICON = 'action-right'\n\nexport default defineComponent({\n  name: 'BTreeNode',\n  components: {\n    BIcon,\n    ActionRight,\n    BCheckbox,\n    BNodeContent,\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      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":["_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_openBlock","_createBlock","_withModifiers","_resolveDynamicComponent","_createCommentVNode","_createVNode"],"mappings":"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"}