{"version":3,"file":"Group.mjs","sources":["../../../../../../packages/components/radio/src/Group.tsx"],"sourcesContent":["import type { RadioChangeEvent, RadioGroupChildOption } from './interface';\nimport { classNames } from '@antdv/utils';\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { useInjectFormItemContext } from '../../form/src/FormItemContext';\nimport useStyle from '../style';\nimport { useProvideRadioGroupContext } from './context';\nimport { radioGroupProps } from './props';\nimport Radio from './Radio';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ARadioGroup',\n  inheritAttrs: false,\n  props: radioGroupProps(),\n  // emits: ['update:value', 'change'],\n  setup(props, { slots, emit, attrs }) {\n    const formItemContext = useInjectFormItemContext();\n    const { prefixCls, direction, size } = useConfigInject('radio', props);\n\n    // Style\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const stateValue = ref(props.value);\n    const updatingValue = ref<boolean>(false);\n    watch(\n      () => props.value,\n      (val) => {\n        stateValue.value = val;\n        updatingValue.value = false;\n      },\n    );\n\n    const onRadioChange = (ev: RadioChangeEvent) => {\n      const lastValue = stateValue.value;\n      const { value } = ev.target;\n\n      if (!('value' in props))\n        stateValue.value = value;\n\n      // nextTick for https://github.com/vueComponent/ant-design-vue/issues/1280\n      if (!updatingValue.value && value !== lastValue) {\n        updatingValue.value = true;\n        emit('update:value', value);\n        emit('change', ev);\n        formItemContext.onFieldChange();\n      }\n      nextTick(() => {\n        updatingValue.value = false;\n      });\n    };\n\n    useProvideRadioGroupContext({\n      onChange: onRadioChange,\n      value: stateValue,\n      disabled: computed(() => props.disabled),\n      name: computed(() => props.name),\n      optionType: computed(() => props.optionType),\n    });\n\n    return () => {\n      const { options, buttonStyle, id = formItemContext.id.value } = props;\n\n      const groupPrefixCls = `${prefixCls.value}-group`;\n\n      const classString = classNames(\n        groupPrefixCls,\n        `${groupPrefixCls}-${buttonStyle}`,\n        {\n          [`${groupPrefixCls}-${size.value}`]: size.value,\n          [`${groupPrefixCls}-rtl`]: direction.value === 'rtl',\n        },\n        attrs.class,\n        hashId.value,\n      );\n\n      let children = null;\n      if (options && options.length > 0) {\n        children = options.map((option) => {\n          if (typeof option === 'string' || typeof option === 'number') {\n            return (\n              <Radio\n                key={option}\n                prefixCls={prefixCls.value}\n                disabled={props.disabled}\n                value={option}\n                checked={stateValue.value === option}\n              >\n                {option}\n              </Radio>\n            );\n          }\n          const { value, disabled, label } = option as RadioGroupChildOption;\n          return (\n            <Radio\n              key={`radio-group-value-options-${value}`}\n              prefixCls={prefixCls.value}\n              disabled={disabled || props.disabled}\n              value={value}\n              checked={stateValue.value === value}\n            >\n              {label}\n            </Radio>\n          );\n        });\n      } else {\n        children = slots.default?.();\n      }\n      return wrapSSR(\n        <div {...attrs} class={classString} id={id}>\n          {children}\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","radioGroupProps","setup","slots","emit","attrs","formItemContext","useInjectFormItemContext","prefixCls","direction","size","useConfigInject","wrapSSR","hashId","useStyle","stateValue","ref","value","updatingValue","watch","val","onRadioChange","ev","lastValue","target","onFieldChange","nextTick","useProvideRadioGroupContext","onChange","disabled","computed","optionType","options","buttonStyle","id","groupPrefixCls","classString","classNames","class","children","length","map","option","_createVNode","Radio","default","label"],"mappings":"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"}