element-plus
Version:
A Component Library for Vue 3
1 lines • 7.29 kB
Source Map (JSON)
{"version":3,"file":"tree.mjs","sources":["../../../../../../packages/components/tree-v2/src/tree.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b(), { [ns.m('highlight-current')]: highlightCurrent }]\"\n role=\"tree\"\n >\n <fixed-size-list\n v-if=\"isNotEmpty\"\n ref=\"listRef\"\n :class-name=\"ns.b('virtual-list')\"\n :data=\"flattenTree\"\n :total=\"flattenTree.length\"\n :height=\"height\"\n :item-size=\"treeNodeSize\"\n :perf-mode=\"perfMode\"\n :scrollbar-always-on=\"scrollbarAlwaysOn\"\n >\n <template #default=\"{ data, index, style }\">\n <el-tree-node\n :key=\"data[index].key\"\n :style=\"style\"\n :node=\"data[index]\"\n :expanded=\"data[index].expanded\"\n :show-checkbox=\"showCheckbox\"\n :checked=\"isChecked(data[index])\"\n :indeterminate=\"isIndeterminate(data[index])\"\n :item-size=\"treeNodeSize\"\n :disabled=\"isDisabled(data[index])\"\n :current=\"isCurrent(data[index])\"\n :hidden-expand-icon=\"isForceHiddenExpandIcon(data[index])\"\n @click=\"handleNodeClick\"\n @toggle=\"toggleExpand\"\n @check=\"handleNodeCheck\"\n @drop=\"handleNodeDrop\"\n />\n </template>\n </fixed-size-list>\n <div v-else :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, getCurrentInstance, provide, useSlots } from 'vue'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport { FixedSizeList } from '@element-plus/components/virtual-list'\nimport { useTree } from './composables/useTree'\nimport ElTreeNode from './tree-node.vue'\nimport { ROOT_TREE_INJECTION_KEY, treeEmits, treeProps } from './virtual-tree'\n\ndefineOptions({\n name: 'ElTreeV2',\n})\n\nconst props = defineProps(treeProps)\nconst emit = defineEmits(treeEmits)\n\nconst slots = useSlots()\n\nconst treeNodeSize = computed(() => props.itemSize)\n\nprovide(ROOT_TREE_INJECTION_KEY, {\n ctx: {\n emit,\n slots,\n },\n props,\n instance: getCurrentInstance()!,\n})\nprovide(formItemContextKey, undefined)\nconst { t } = useLocale()\nconst ns = useNamespace('tree')\nconst {\n flattenTree,\n isNotEmpty,\n listRef,\n toggleExpand,\n isIndeterminate,\n isChecked,\n isDisabled,\n isCurrent,\n isForceHiddenExpandIcon,\n handleNodeClick,\n handleNodeDrop,\n handleNodeCheck,\n // expose\n toggleCheckbox,\n getCurrentNode,\n getCurrentKey,\n setCurrentKey,\n getCheckedKeys,\n getCheckedNodes,\n getHalfCheckedKeys,\n getHalfCheckedNodes,\n setChecked,\n setCheckedKeys,\n filter,\n setData,\n getNode,\n expandNode,\n collapseNode,\n setExpandedKeys,\n scrollToNode,\n scrollTo,\n} = useTree(props, emit)\n\ndefineExpose({\n toggleCheckbox,\n getCurrentNode,\n getCurrentKey,\n setCurrentKey,\n getCheckedKeys,\n getCheckedNodes,\n getHalfCheckedKeys,\n getHalfCheckedNodes,\n setChecked,\n setCheckedKeys,\n filter,\n setData,\n getNode,\n expandNode,\n collapseNode,\n setExpandedKeys,\n scrollToNode,\n scrollTo,\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_unref","highlightCurrent","_createBlock","height","perfMode","scrollbarAlwaysOn","_withCtx","_normalizeStyle","showCheckbox","_renderSlot","_createElementVNode","emptyText"],"mappings":"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"}