UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 2.27 kB
{"version":3,"file":"tree-select-option.mjs","names":[],"sources":["../../../../../../packages/components/tree-select/src/tree-select-option.ts"],"sourcesContent":["import { defineComponent, getCurrentInstance, nextTick, watch } from 'vue'\nimport { ElOption } from '@element-plus/components/select'\n\nconst component = defineComponent({\n extends: ElOption,\n setup(props, ctx) {\n const result = (ElOption.setup as NonNullable<any>)(props, ctx)\n\n // use methods.selectOptionClick\n delete result.selectOptionClick\n\n const vm = (getCurrentInstance() as NonNullable<any>).proxy\n\n // Fix: https://github.com/element-plus/element-plus/issues/7917\n // `el-option` will delete the cache before unmount,\n // This is normal for flat arrays `<el-select><el-option v-for=\"3\"></el-select>`,\n // Because the same node key does not create a difference node,\n // But in tree data, the same key at different levels will create diff nodes,\n // So the destruction of `el-option` in `nextTick` will be slower than\n // the creation of new `el-option`, which will delete the new node,\n // here restore the deleted node.\n // @link https://github.com/element-plus/element-plus/blob/6df6e49db07b38d6cc3b5e9a960782bd30879c11/packages/components/select/src/option.vue#L78\n nextTick(() => {\n if (!result.select.states.cachedOptions.get(vm.value)) {\n result.select.onOptionCreate(vm)\n }\n })\n\n watch(\n () => ctx.attrs.visible,\n (val) => {\n nextTick(() => {\n result.states.visible = val\n })\n },\n {\n immediate: true,\n }\n )\n\n return result\n },\n methods: {\n selectOptionClick() {\n // $el.parentElement => el-tree-node__content\n this.$el.parentElement.click()\n },\n },\n})\n\nexport default component\n"],"mappings":";;;;AAGA,MAAM,YAAY,gBAAgB;CAChC,SAAS;CACT,MAAM,OAAO,KAAK;EAChB,MAAM,SAAU,SAAS,MAA2B,OAAO,IAAI;AAG/D,SAAO,OAAO;EAEd,MAAM,KAAM,oBAAoB,CAAsB;AAWtD,iBAAe;AACb,OAAI,CAAC,OAAO,OAAO,OAAO,cAAc,IAAI,GAAG,MAAM,CACnD,QAAO,OAAO,eAAe,GAAG;IAElC;AAEF,cACQ,IAAI,MAAM,UACf,QAAQ;AACP,kBAAe;AACb,WAAO,OAAO,UAAU;KACxB;KAEJ,EACE,WAAW,MACZ,CACF;AAED,SAAO;;CAET,SAAS,EACP,oBAAoB;AAElB,OAAK,IAAI,cAAc,OAAO;IAEjC;CACF,CAAC"}