{"version":3,"file":"radio-group.vue2.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 ? ariaLabel || 'radio-group' : undefined\"\n    :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n  >\n    <slot>\n      <component\n        :is=\"optionComponent\"\n        v-for=\"(item, index) in options\"\n        :key=\"index\"\n        v-bind=\"getOptionProps(item)\"\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 { useFormItem, useFormItemInputId } from '@element-plus/components/form'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport {\n  type RadioGroupProps,\n  radioDefaultProps,\n  radioGroupEmits,\n  radioGroupPropsDefaults,\n} from './radio-group'\nimport { radioGroupKey } from './constants'\nimport { isEqual, omit } from 'lodash-unified'\nimport ElRadio from './radio.vue'\nimport ElRadioButton from './radio-button.vue'\n\ndefineOptions({\n  name: 'ElRadioGroup',\n})\n\nconst props = withDefaults(defineProps<RadioGroupProps>(), {\n  ...radioGroupPropsDefaults,\n})\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_EVENT, 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\nconst aliasProps = computed(() => ({\n  ...radioDefaultProps,\n  ...props.props,\n}))\nconst getOptionProps = (option: Record<string, any>) => {\n  const { label, value, disabled } = aliasProps.value\n  const base = {\n    label: option[label],\n    value: option[value],\n    disabled: option[disabled],\n  }\n  return { ...omit(option, [label, value, disabled]), ...base }\n}\n\nconst optionComponent = computed(() =>\n  props.type === 'button' ? ElRadioButton : ElRadio\n)\n\nprovide(\n  radioGroupKey,\n  reactive({\n    ...toRefs(props),\n    changeEvent,\n    name,\n  })\n)\n\nwatch(\n  () => props.modelValue,\n  (newVal, oldValue) => {\n    if (props.validateEvent && !isEqual(newVal, oldValue)) {\n      formItem?.validate('change').catch((err) => debugWarn(err))\n    }\n  }\n)\n</script>\n"],"names":["ElRadioButton","ElRadio","_createElementBlock","_unref","_normalizeClass","_renderSlot","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":"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"}