element-plus
Version:
A Component Library for Vue 3
1 lines • 5.17 kB
Source Map (JSON)
{"version":3,"file":"tree-select.vue2.mjs","sources":["../../../../../../packages/components/tree-select/src/tree-select.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { computed, defineComponent, h, onMounted, reactive, ref } from 'vue'\nimport { pick } from 'lodash-unified'\nimport { ElSelect, selectProps } from '@element-plus/components/select'\nimport { ElTree, treeProps } from '@element-plus/components/tree'\nimport { useSelect } from './select'\nimport { useTree } from './tree'\nimport CacheOptions from './cache-options'\n\nimport type { TreeInstance } from '@element-plus/components/tree'\nimport type { SelectInstance } from '@element-plus/components/select'\n\nexport default defineComponent({\n name: 'ElTreeSelect',\n // disable `ElSelect` inherit current attrs\n inheritAttrs: false,\n props: {\n ...selectProps,\n ...treeProps,\n /**\n * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data\n */\n cacheData: {\n type: Array,\n default: () => [],\n },\n },\n setup(props, context) {\n const { slots, expose } = context\n\n const select = ref<SelectInstance>()\n const tree = ref<TreeInstance>()\n\n const key = computed(() => props.nodeKey || props.valueKey || 'value')\n\n const selectProps = useSelect(props, context, { select, tree, key })\n const { cacheOptions, ...treeProps } = useTree(props, context, {\n select,\n tree,\n key,\n })\n\n // expose ElTree/ElSelect methods\n const methods = reactive({})\n expose(methods)\n onMounted(() => {\n Object.assign(methods, {\n //TODO: let only tree and select in 3.0\n ...pick(tree.value, [\n 'filter',\n 'updateKeyChildren',\n 'getCheckedNodes',\n 'setCheckedNodes',\n 'getCheckedKeys',\n 'setCheckedKeys',\n 'setChecked',\n 'getHalfCheckedNodes',\n 'getHalfCheckedKeys',\n 'getCurrentKey',\n 'getCurrentNode',\n 'setCurrentKey',\n 'setCurrentNode',\n 'getNode',\n 'remove',\n 'append',\n 'insertBefore',\n 'insertAfter',\n ]),\n ...pick(select.value, ['focus', 'blur', 'selectedLabel']),\n treeRef: tree.value,\n selectRef: select.value,\n })\n })\n\n return () =>\n h(\n ElSelect,\n /**\n * 1. The `props` is processed into `Refs`, but `v-bind` and\n * render function props cannot read `Refs`, so use `reactive`\n * unwrap the `Refs` and keep reactive.\n * 2. The keyword `ref` requires `Ref`, but `reactive` broke it,\n * so use function.\n */\n reactive({\n ...selectProps,\n ref: (ref: SelectInstance) => (select.value = ref),\n }),\n {\n ...slots,\n default: () => [\n h(CacheOptions, { data: cacheOptions.value }),\n h(\n ElTree,\n reactive({\n ...treeProps,\n ref: (ref: TreeInstance) => (tree.value = ref),\n })\n ),\n ],\n }\n )\n },\n})\n</script>\n"],"names":["selectProps","treeProps","ref"],"mappings":";;;;;;;;;;AAYA,gBAAe,eAAA,CAAgB;AAAA,EAC7B,IAAA,EAAM,cAAA;AAAA;AAAA,EAEN,YAAA,EAAc,KAAA;AAAA,EACd,KAAA,EAAO;AAAA,IACL,GAAG,WAAA;AAAA,IACH,GAAG,SAAA;AAAA;AAAA;AAAA;AAAA,IAIH,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,KAAA;AAAA,MACN,OAAA,EAAS,MAAM;AAAC;AAClB,GACF;AAAA,EACA,KAAA,CAAM,OAAO,OAAA,EAAS;AACpB,IAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,OAAA;AAE1B,IAAA,MAAM,SAAS,GAAA,EAAoB;AACnC,IAAA,MAAM,OAAO,GAAA,EAAkB;AAE/B,IAAA,MAAM,MAAM,QAAA,CAAS,MAAM,MAAM,OAAA,IAAW,KAAA,CAAM,YAAY,OAAO,CAAA;AAErE,IAAA,MAAMA,YAAAA,GAAc,UAAU,KAAA,EAAO,OAAA,EAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAA;AACnE,IAAA,MAAM,EAAE,YAAA,EAAc,GAAGC,YAAU,GAAI,OAAA,CAAQ,OAAO,OAAA,EAAS;AAAA,MAC7D,MAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AAGD,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,EAAE,CAAA;AAC3B,IAAA,MAAA,CAAO,OAAO,CAAA;AACd,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAA,CAAO,OAAO,OAAA,EAAS;AAAA;AAAA,QAErB,GAAG,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO;AAAA,UAClB,QAAA;AAAA,UACA,mBAAA;AAAA,UACA,iBAAA;AAAA,UACA,iBAAA;AAAA,UACA,gBAAA;AAAA,UACA,gBAAA;AAAA,UACA,YAAA;AAAA,UACA,qBAAA;AAAA,UACA,oBAAA;AAAA,UACA,eAAA;AAAA,UACA,gBAAA;AAAA,UACA,eAAA;AAAA,UACA,gBAAA;AAAA,UACA,SAAA;AAAA,UACA,QAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,QACD,GAAG,KAAK,MAAA,CAAO,KAAA,EAAO,CAAC,OAAA,EAAS,MAAA,EAAQ,eAAe,CAAC,CAAA;AAAA,QACxD,SAAS,IAAA,CAAK,KAAA;AAAA,QACd,WAAW,MAAA,CAAO;AAAA,OACnB,CAAA;AAAA,IACH,CAAC,CAAA;AAED,IAAA,OAAO,MACL,CAAA;AAAA,MACE,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,QAAA,CAAS;AAAA,QACP,GAAGD,YAAAA;AAAA,QACH,GAAA,EAAK,CAACE,IAAAA,KAAyB,MAAA,CAAO,KAAA,GAAQA;AAAA,OAC/C,CAAA;AAAA,MACD;AAAA,QACE,GAAG,KAAA;AAAA,QACH,SAAS,MAAM;AAAA,UACb,EAAE,YAAA,EAAc,EAAE,IAAA,EAAM,YAAA,CAAa,OAAO,CAAA;AAAA,UAC5C,CAAA;AAAA,YACE,MAAA;AAAA,YACA,QAAA,CAAS;AAAA,cACP,GAAGD,UAAAA;AAAA,cACH,GAAA,EAAK,CAACC,IAAAA,KAAuB,IAAA,CAAK,KAAA,GAAQA;AAAA,aAC3C;AAAA;AACH;AACF;AACF,KACF;AAAA,EACJ;AACF,CAAC,CAAA;;;;"}