ideaz-element
Version:
<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>
1 lines • 3.77 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../../packages/element/select/src/index.tsx"],"sourcesContent":["import { ElOption, ElOptionGroup, ElSelect } from 'element-plus'\nimport { isArray, isFunction, isSlot } from '@ideaz/utils'\nimport { get } from 'lodash-unified'\nimport type { Slots } from '../../types'\nimport { useOptions, useSelectMethods } from './hooks'\nimport type { SelectOptionsItem } from './props'\nimport { SELECT_SLOTS, selectProps } from './props'\n\nexport default defineComponent({\n name: 'ZSelect',\n props: selectProps,\n emits: ['input', 'update:modelValue'],\n setup(props, { emit, slots }) {\n const { vModelVal } = useVModel(props, emit)\n const { focus, blur } = useSelectMethods()\n const { scopedSlots } = useFormComponentSlots(props, slots, SELECT_SLOTS)\n const { options, handleSelectInput } = useOptions(props, vModelVal)\n const size = useFormSize()\n const attrs = useAttrs()\n\n useExpose({ focus, blur })\n\n const getOption = (option: SelectOptionsItem) => {\n const value = get(option, props.alias?.value || 'value', '')\n const optionSlot: Slots = {}\n if (isSlot(option.render) && slots[option.render as string])\n optionSlot.default = () => slots[option.render as string]!({ option })\n\n return (\n <ElOption\n key={value}\n label={get(option, props.alias?.label || 'label', '')}\n disabled={get(option, props.alias?.disabled || 'disabled', false)}\n value={value}\n v-slots={optionSlot}\n >\n {isFunction(option.render) ? option.render({ option }) : null}\n </ElOption>\n )\n }\n\n return () => (\n <ElSelect\n ref=\"selectRef\"\n modelValue={vModelVal.value}\n {...{ ...attrs, multiple: props.multiple }}\n size={size.value}\n onUpdate:modelValue={handleSelectInput}\n v-slots={scopedSlots.value}\n >\n {options.value.map((option) => {\n if (isArray(option.options)) {\n return (\n <ElOptionGroup label={option.label} key={option.label} disabled={option.disabled}>\n {option.options.map((childOption) => {\n return getOption(childOption)\n })}\n </ElOptionGroup>\n )\n }\n return getOption(option)\n })}\n </ElSelect>\n )\n },\n})\n"],"names":["_isSlot","s","vue","Select","name","props","emits","slots","vModelVal","useVModel","props$1","emit","blur","scopedSlots","handleSelectInput","useOptions","size","useFormSize","attrs","useExpose","value","get","option","_a","_b","_c","default","elementPlus","is","_slot"],"mappings":"4rBAMmD,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAA,QAAAD,CAAA,CAAA,CAEnD,MAAAE,EAAAD,EAAA,gBAAA,CACEE,KAAAA,UACAC,MAAAA,EAAAA,YACAC,MAAAA,CAAAA,QAAAA,mBAAAA,kBACqBC,MAAAA,CAAM,EAAA,OACjBC,UAAAA,CAAU,EAAAC,EAAA,UAAAC,EAAAC,CAAA,WACHC,KAAAA,yBACPC,YAAAA,0DACSC,kBAAAA,CAAkB,EAAAC,EAAA,WAAAL,EAAAF,CAAA,EACnCQ,EAAAC,EAAA,YAAA,EACAC,EAAAhB,EAAA,SAAA,EAEAiB,EAAAA,UAAAA,SAAmBP,KAAAA,CAAK,CAAA,wBAGtB,MAAAQ,EAAAC,EAAAC,IAAAC,EAAAb,EAAA,QAAA,YAAAa,EAAA,QAAA,QAAA,EAAA,2EAG+DD,OAAAA,CAAO,CAAA,6BAEtE,IAAAF,EAEc,MAAAC,EAAAC,IAAAE,EAAAd,EAAA,QAAA,YAAAc,EAAA,QAAA,QAAA,EAAA,EAC2C,SAAAH,EAAAC,IAAAG,EAAAf,EAAA,QAAA,YAAAe,EAAA,WAAA,WAAA,EAAA,SAEzC,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,EAAAA,WAAAA,EAAAA,MAAAA,EAAAA,EAAAA,OAAAA,CAGiCJ,OAAAA,cAF1B,CAAA,GAOzB,MAAA,IAAApB,EAAA,YAAAyB,EAAA,SAAAzB,EAAA,WAAA,CAAO,IAAA,YAAA,WAAAM,EAAA,KAGwB,EAAA,CACrB,GAAAU,qBAAkC,EAAA,qCAEF,CAAA,EAAA,8BAIpC,GAAAU,EAAA,QAAAN,EAAA,OAAA,EAAA,CAA6B,IAAAO,kEAE4B,SAAAP,EAAA,wDAGjD,CAAA,CAGR,YAEF,CAAA,CAAA,EAAE,GAAAT,EAAA,OAGR,CACF,CAAA"}