element-plus
Version:
A Component Library for Vue 3
1 lines • 3.37 kB
Source Map (JSON)
{"version":3,"file":"select-dropdown.mjs","sources":["../../../../../../packages/components/select/src/select-dropdown.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('dropdown'), ns.is('multiple', isMultiple), popperClass]\"\n :style=\"{ [isFitInputWidth ? 'width' : 'minWidth']: minWidth }\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n onMounted,\n onBeforeUnmount,\n inject,\n ref,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { addResizeListener, removeResizeListener } from '@element-plus/utils'\nimport { selectKey } from './token'\nimport type { ResizableElement } from '@element-plus/utils'\n\nexport default defineComponent({\n name: 'ElSelectDropdown',\n\n componentName: 'ElSelectDropdown',\n\n setup() {\n const select = inject(selectKey)!\n const ns = useNamespace('select')\n\n // computed\n const popperClass = computed(() => select.props.popperClass)\n const isMultiple = computed(() => select.props.multiple)\n const isFitInputWidth = computed(() => select.props.fitInputWidth)\n const minWidth = ref('')\n\n function updateMinWidth() {\n minWidth.value = `${\n select.selectWrapper?.getBoundingClientRect().width\n }px`\n }\n\n onMounted(() => {\n // TODO: updatePopper\n // popper.value.update()\n updateMinWidth()\n addResizeListener(\n select.selectWrapper as ResizableElement,\n updateMinWidth\n )\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(\n select.selectWrapper as ResizableElement,\n updateMinWidth\n )\n })\n\n return {\n ns,\n minWidth,\n popperClass,\n isMultiple,\n isFitInputWidth,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_normalizeClass","_normalizeStyle","_renderSlot"],"mappings":";;;;;;;;AAuBA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,kBAAA;AAAA,EAEN,aAAe,EAAA,kBAAA;AAAA,EAEf,KAAQ,GAAA;AACN,IAAA,MAAM,SAAS,MAAO,CAAA,SAAA,CAAA,CAAA;AACtB,IAAA,MAAM,KAAK,YAAa,CAAA,QAAA,CAAA,CAAA;AAGxB,IAAA,MAAM,WAAc,GAAA,QAAA,CAAS,MAAM,MAAA,CAAO,KAAM,CAAA,WAAA,CAAA,CAAA;AAChD,IAAA,MAAM,UAAa,GAAA,QAAA,CAAS,MAAM,MAAA,CAAO,KAAM,CAAA,QAAA,CAAA,CAAA;AAC/C,IAAA,MAAM,eAAkB,GAAA,QAAA,CAAS,MAAM,MAAA,CAAO,KAAM,CAAA,aAAA,CAAA,CAAA;AACpD,IAAA,MAAM,WAAW,GAAI,CAAA,EAAA,CAAA,CAAA;AAErB,IAA0B,SAAA,cAAA,GAAA;AACxB,MAAA,IAAA,EAAA,CAAA;AACgD,MAAA,QAAA,CAAA,KAAA,GAAA,CAAA,EAAA,CAAA,EAAA,GAAA,MAAA,CAAA,aAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,qBAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAIlD,KAAA;AAGE,IAAA,SAAA,CAAA,MAAA;AACA,MAAA,cAAA,EAAA,CAAA;AAEE,MAAA,iBAAA,CAAA,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA,CAAA;AAIJ,KAAA,CAAA,CAAA;AACE,IAAA,eAAA,CAAA,MAAA;AAEE,MAAA,oBAAA,CAAA,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA,CAAA;AAIJ,KAAO,CAAA,CAAA;AAAA,IACL,OAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MAAA,eAAA;AAAA,KAAA,CAAA;AAAA,GAAA;;yBA5DE,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AAAA,EAJH,OAAAA;AAAyD,IACzD,KAAA,EAAKC,cAAK,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,UAAA,CAAA,EAAA,IAAyC,CAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,IAAA,CAAA,UAAA,CAAA,EAAA,IAAA,CAAA,WAAA,CAAA,CAAA;AAAA,IAAA,KAAA,EAAAC,cAAA,CAAA,EAAA,CAAA,IAAA,CAAA,eAAA,GAAA,OAAA,GAAA,UAAA,GAAA,IAAA,CAAA,QAAA,EAAA,CAAA;KAE5C;AAAA,IAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;;;;;;;"}