UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.42 kB
{"version":3,"file":"radio-group2.mjs","sources":["../../../../../../packages/components/radio/src/radio-group.vue"],"sourcesContent":["<template>\n <div\n :id=\"groupId\"\n ref=\"radioGroupRef\"\n :class=\"ns.b('group')\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? label || 'radio-group' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { radioGroupKey } from '@element-plus/tokens'\nimport {\n useFormItem,\n useFormItemInputId,\n useId,\n useNamespace,\n} from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { radioGroupEmits, radioGroupProps } from './radio-group'\nimport type { RadioGroupProps } from '..'\n\ndefineOptions({\n name: 'ElRadioGroup',\n})\n\nconst props = defineProps(radioGroupProps)\nconst emit = defineEmits(radioGroupEmits)\n\nconst ns = useNamespace('radio')\nconst radioId = useId()\nconst radioGroupRef = ref<HTMLDivElement>()\nconst { formItem } = useFormItem()\nconst { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst changeEvent = (value: RadioGroupProps['modelValue']) => {\n emit(UPDATE_MODEL_EVENT, value)\n nextTick(() => emit('change', value))\n}\n\nonMounted(() => {\n const radios =\n radioGroupRef.value!.querySelectorAll<HTMLInputElement>('[type=radio]')\n const firstLabel = radios[0]\n if (!Array.from(radios).some((radio) => radio.checked) && firstLabel) {\n firstLabel.tabIndex = 0\n }\n})\n\nconst name = computed(() => {\n return props.name || radioId.value\n})\n\nprovide(\n radioGroupKey,\n reactive({\n ...toRefs(props),\n changeEvent,\n name,\n })\n)\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n }\n)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA2CA,IAAA,MAAA,EAAA,GAAA,aAAA,OAAA,CAAA,CAAA;AACA,IAAA,MAAA,UAAA,KAAA,EAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,EAAA,CAAA;AACA,IAAA,MAAA,EAAA,aAAA,WAAA,EAAA,CAAA;AACA,IAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,GAAA,mBAAA,KAAA,EAAA;AAAA,MACA,eAAA,EAAA,QAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,WAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,IAAA,CAAA,oBAAA,KAAA,CAAA,CAAA;AACA,MAAA,QAAA,CAAA,MAAA,IAAA,CAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,SAAA,CAAA,MAAA;AACA,MAAA,MAAA,MACA,GAAA,aAAA,CAAA,KAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,CAAA;AACA,MAAA,MAAA,aAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,IAAA,CAAA,CAAA,KAAA,KAAA,KAAA,CAAA,OAAA,CAAA,IAAA,UAAA,EAAA;AACA,QAAA,UAAA,CAAA,QAAA,GAAA,CAAA,CAAA;AAAA,OACA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,IAAA,GAAA,SAAA,MAAA;AACA,MAAA,OAAA,KAAA,CAAA,QAAA,OAAA,CAAA,KAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,OAAA,CACA,eACA,QAAA,CAAA;AAAA,MACA,GAAA,OAAA,KAAA,CAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,KACA,CACA,CAAA,CAAA;AAEA,IACA,KAAA,CAAA,MAAA,KAAA,CAAA,UAAA,EACA,MAAA;AACA,MAAA,IAAA,MAAA,aAAA,EAAA;AACA,QAAA,QAAA,IAAA,IAAA,GAAA,SAAA,QAAA,CAAA,QAAA,CAAA,QAAA,OAAA,CAAA,CAAA,GAAA,KAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,OACA;AAAA,KAEA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;"}