{"version":3,"file":"Radio.cjs","sources":["../../../../../../packages/components/radio/src/Radio.tsx"],"sourcesContent":["import type { RadioChangeEvent } from './interface';\nimport type { RadioProps } from './props';\nimport { classNames, omit } from '@antdv/utils';\nimport { VcCheckbox } from '@antdv/vue-components';\nimport { computed, defineComponent, ref } from 'vue';\nimport { useInjectDisabled } from '../../config-provider';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { FormItemInputContext, useInjectFormItemContext } from '../../form/src/FormItemContext';\nimport useStyle from '../style';\nimport { useInjectRadioGroupContext, useInjectRadioOptionTypeContext } from './context';\nimport { radioProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ARadio',\n  inheritAttrs: false,\n  props: radioProps(),\n  setup(props, { emit, expose, slots, attrs }) {\n    const formItemContext = useInjectFormItemContext();\n    const formItemInputContext = FormItemInputContext.useInject();\n    const radioOptionTypeContext = useInjectRadioOptionTypeContext();\n    const radioGroupContext = useInjectRadioGroupContext();\n    const vcCheckbox = ref<HTMLElement>();\n\n    const { prefixCls: radioPrefixCls, direction, disabled } = useConfigInject('radio', props);\n    const disabledContext = useInjectDisabled();\n    const mergedDisabled = computed(() => disabled.value ?? disabledContext.value);\n\n    const prefixCls = computed(() =>\n      (radioGroupContext?.optionType.value === 'button' || radioOptionTypeContext === 'button')\n        ? `${radioPrefixCls.value}-button`\n        : radioPrefixCls.value,\n    );\n    const contextDisabled = useInjectDisabled();\n\n    // Style\n    const [wrapSSR, hashId] = useStyle(radioPrefixCls);\n\n    const focus = () => {\n      vcCheckbox.value.focus();\n    };\n\n    const blur = () => {\n      vcCheckbox.value.blur();\n    };\n\n    expose({ focus, blur });\n\n    const handleChange = (event: RadioChangeEvent) => {\n      const targetChecked = event.target.checked;\n      emit('update:checked', targetChecked);\n      emit('update:value', targetChecked);\n      emit('change', event);\n      formItemContext.onFieldChange();\n    };\n\n    const onChange = (e: RadioChangeEvent) => {\n      emit('change', e);\n      if (radioGroupContext && radioGroupContext.onChange)\n        radioGroupContext.onChange(e);\n    };\n\n    return () => {\n      const radioGroup = radioGroupContext;\n      const { prefixCls: customizePrefixCls, id = formItemContext.id.value, ...restProps } = props;\n\n      const rProps: RadioProps = {\n        prefixCls: prefixCls.value,\n        id,\n        ...omit(restProps, ['onUpdate:checked', 'onUpdate:value']),\n        disabled: disabled.value ?? contextDisabled.value,\n      };\n\n      if (radioGroup) {\n        rProps.name = radioGroup.name.value;\n        rProps.onChange = onChange;\n        rProps.checked = props.value === radioGroup.value.value;\n        rProps.disabled = mergedDisabled.value || radioGroup.disabled.value;\n      } else {\n        rProps.onChange = handleChange;\n      }\n      const wrapperClassString = classNames(\n        {\n          [`${prefixCls.value}-wrapper`]: true,\n          [`${prefixCls.value}-wrapper-checked`]: rProps.checked,\n          [`${prefixCls.value}-wrapper-disabled`]: rProps.disabled,\n          [`${prefixCls.value}-wrapper-rtl`]: direction.value === 'rtl',\n          [`${prefixCls.value}-wrapper-in-form-item`]: formItemInputContext.isFormItemInput,\n        },\n        attrs.class,\n        hashId.value,\n      );\n\n      return wrapSSR(\n        <label {...attrs} class={wrapperClassString}>\n          <VcCheckbox {...rProps} type=\"radio\" ref={vcCheckbox} />\n          {slots.default && <span>{slots.default()}</span>}\n        </label>,\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","radioProps","setup","emit","expose","slots","attrs","formItemContext","useInjectFormItemContext","formItemInputContext","FormItemInputContext","useInject","radioOptionTypeContext","useInjectRadioOptionTypeContext","radioGroupContext","useInjectRadioGroupContext","vcCheckbox","ref","prefixCls","radioPrefixCls","direction","disabled","useConfigInject","disabledContext","useInjectDisabled","mergedDisabled","computed","value","optionType","contextDisabled","wrapSSR","hashId","useStyle","focus","blur","handleChange","event","targetChecked","target","checked","onFieldChange","onChange","e","radioGroup","customizePrefixCls","id","restProps","rProps","omit","wrapperClassString","classNames","isFormItemInput","class","_createVNode","VcCheckbox","default"],"mappings":"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"}