You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
32 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, inject, ref, computed, watch, provide, getCurrentInstance, resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, renderSlot, createElementVNode, toDisplayString, createCommentVNode, withDirectives, vShow } from 'vue';\nimport { selectKey } from '../../select/src/token.mjs';\nimport TreeStore from './model/tree-store.mjs';\nimport { getNodeKey, handleCurrentChange } from './model/util.mjs';\nimport ElTreeNode from './tree-node.mjs';\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast.mjs';\nimport { useDragNodeHandler } from './model/useDragNode.mjs';\nimport { useKeydown } from './model/useKeydown.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { iconPropType } from '../../../utils/vue/icon.mjs';\nimport { useLocale } from '../../../hooks/use-locale/index.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { formItemContextKey } from '../../form/src/constants.mjs';\nconst _sfc_main = defineComponent({\n name: \"ElTree\",\n components: {\n ElTreeNode\n },\n props: {\n data: {\n type: Array,\n default: () => []\n },\n emptyText: {\n type: String\n },\n renderAfterExpand: {\n type: Boolean,\n default: true\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: true\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: false\n },\n autoExpandParent: {\n type: Boolean,\n default: true\n },\n defaultCheckedKeys: Array,\n defaultExpandedKeys: Array,\n currentNodeKey: [String, Number],\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: false\n },\n draggable: {\n type: Boolean,\n default: false\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object,\n default: () => ({\n children: \"children\",\n label: \"label\",\n disabled: \"disabled\"\n })\n },\n lazy: {\n type: Boolean,\n default: false\n },\n highlightCurrent: Boolean,\n load: Function,\n filterNodeMethod: Function,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18\n },\n icon: {\n type: iconPropType\n }\n },\n emits: [\"check-change\", \"current-change\", \"node-click\", \"node-contextmenu\", \"node-collapse\", \"node-expand\", \"check\", \"node-drag-start\", \"node-drag-end\", \"node-drop\", \"node-drag-leave\", \"node-drag-enter\", \"node-drag-over\"],\n setup(props, ctx) {\n const {\n t\n } = useLocale();\n const ns = useNamespace(\"tree\");\n const selectInfo = inject(selectKey, null);\n const store = ref(new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod\n }));\n store.value.initialize();\n const root = ref(store.value.root);\n const currentNode = ref(null);\n const el$ = ref(null);\n const dropIndicator$ = ref(null);\n const {\n broadcastExpanded\n } = useNodeExpandEventBroadcast(props);\n const {\n dragState\n } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store\n });\n useKeydown({\n el$\n }, store);\n const isEmpty = computed(() => {\n const {\n childNodes\n } = root.value;\n const hasFilteredOptions = selectInfo ? selectInfo.hasFiltere