element-plus
Version:
A Component Library for Vue 3
1 lines • 4.56 kB
Source Map (JSON)
{"version":3,"file":"option-group.mjs","sources":["../../../../../../packages/components/select/src/option-group.vue"],"sourcesContent":["<template>\n <ul v-show=\"visible\" :class=\"ns.be('group', 'wrap')\">\n <li :class=\"ns.be('group', 'title')\">{{ label }}</li>\n <li>\n <ul :class=\"ns.b('group')\">\n <slot />\n </ul>\n </li>\n </ul>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n inject,\n onMounted,\n provide,\n reactive,\n ref,\n toRaw,\n toRefs,\n watch,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { selectGroupKey, selectKey } from './token'\n\nexport default defineComponent({\n name: 'ElOptionGroup',\n componentName: 'ElOptionGroup',\n\n props: {\n label: String,\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const ns = useNamespace('select')\n const visible = ref(true)\n const instance = getCurrentInstance()\n const children = ref([])\n\n provide(\n selectGroupKey,\n reactive({\n ...toRefs(props),\n })\n )\n\n const select = inject(selectKey)\n\n onMounted(() => {\n children.value = flattedChildren(instance.subTree)\n })\n\n // get all instances of options\n const flattedChildren = (node) => {\n const children = []\n if (Array.isArray(node.children)) {\n node.children.forEach((child) => {\n if (\n child.type &&\n child.type.name === 'ElOption' &&\n child.component &&\n child.component.proxy\n ) {\n children.push(child.component.proxy)\n } else if (child.children?.length) {\n children.push(...flattedChildren(child))\n }\n })\n }\n return children\n }\n\n const { groupQueryChange } = toRaw(select)\n watch(groupQueryChange, () => {\n visible.value = children.value.some((option) => option.visible === true)\n })\n\n return {\n visible,\n ns,\n }\n },\n})\n</script>\n"],"names":["_withDirectives","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_renderSlot","_vShow"],"mappings":"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"}