UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 7.91 kB
{"version":3,"file":"tree-node.vue2.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 '@element-plus/components/icon'\nimport { CaretRight } from '@element-plus/icons-vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isFunction, isString, mutable } from '@element-plus/utils'\nimport ElNodeContent from './tree-node-content'\nimport {\n EMPTY_NODE,\n NODE_CONTEXTMENU,\n ROOT_TREE_INJECTION_KEY,\n treeNodeEmits,\n} from './virtual-tree'\n\nimport type { TreeNode, TreeNodeProps } from './types'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\n\ndefineOptions({\n name: 'ElTreeNode',\n})\n\nconst props = withDefaults(defineProps<TreeNodeProps>(), {\n node: () => mutable(EMPTY_NODE),\n itemSize: 26,\n})\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","_createElementVNode","_normalizeStyle","_createBlock","_openBlock","_resolveDynamicComponent","_createVNode"],"mappings":"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"}