UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.43 kB
{"version":3,"file":"tree-node-content.mjs","names":[],"sources":["../../../../../../packages/components/tree/src/tree-node-content.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent, h, inject, renderSlot } from 'vue'\nimport ElText from '@element-plus/components/text'\nimport { useNamespace } from '@element-plus/hooks'\nimport { NODE_INSTANCE_INJECTION_KEY, ROOT_TREE_INJECTION_KEY } from './tokens'\n\nimport type { ComponentInternalInstance } from 'vue'\nimport type { RootTreeType } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTreeNodeContent',\n props: {\n node: {\n type: Object,\n required: true,\n },\n renderContent: Function,\n },\n setup(props) {\n const ns = useNamespace('tree')\n const nodeInstance = inject<ComponentInternalInstance>(\n NODE_INSTANCE_INJECTION_KEY\n )\n const tree = inject<RootTreeType>(ROOT_TREE_INJECTION_KEY)!\n return () => {\n const node = props.node\n const { data, store } = node\n return props.renderContent\n ? props.renderContent(h, { _self: nodeInstance, node, data, store })\n : renderSlot(tree.ctx.slots, 'default', { node, data }, () => [\n h(\n ElText,\n { tag: 'span', truncated: true, class: ns.be('node', 'label') },\n () => [node.label]\n ),\n ])\n }\n },\n})\n</script>\n"],"mappings":""}