{"version":3,"file":"radio-group.mjs","sources":["../../src/radio/radio-group.tsx"],"sourcesContent":["import { provide, defineComponent, computed } from 'vue';\nimport { useDefault } from '../shared';\nimport props from '../radio/radio-group-props';\nimport { RadioOption, RadioOptionObj, RadioValue, TdRadioGroupProps } from '../radio/type';\nimport TRadio from './radio';\nimport config from '../config';\nimport { KeysType } from '../common';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-radio-group`,\n  props,\n  setup(props, context) {\n    const renderTNodeJSX = useTNodeJSX();\n    const radioGroupClass = usePrefixClass('radio-group');\n\n    const [groupValue, setGroupValue] = useDefault<RadioValue, TdRadioGroupProps>(\n      props,\n      context.emit,\n      'value',\n      'change',\n    );\n\n    const keys = computed((): KeysType => props.keys);\n\n    const groupOptions = computed(() => {\n      return props.options?.map((option: RadioOption) => {\n        let opt = option as RadioOptionObj;\n        if (typeof option === 'string' || typeof option === 'number') {\n          opt = { value: option, label: option.toString() };\n        }\n        return opt;\n      });\n    });\n    const handleRadioChange = (val: RadioValue, e: Event) => {\n      if (props.allowUncheck && val === groupValue.value) {\n        setGroupValue('', { e });\n      } else {\n        setGroupValue(val, { e });\n      }\n    };\n\n    provide('rootGroupProps', props);\n    provide('rootGroupValue', groupValue);\n    provide('rootGroupChange', handleRadioChange);\n    return () => {\n      return (\n        <div class={radioGroupClass.value} role=\"radiogroup\">\n          {props.options &&\n            groupOptions.value.map((opt, index) => (\n              <TRadio\n                name={props.name}\n                icon={props.icon}\n                checked={groupValue.value === opt[keys.value?.value ?? 'value']}\n                disabled={opt?.disabled ?? props.disabled}\n                value={opt[keys.value?.value ?? 'value']}\n                label={opt[keys.value?.label ?? 'label']}\n                placement={props.placement}\n              />\n            ))}\n          {!props.options && renderTNodeJSX('default')}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","context","renderTNodeJSX","useTNodeJSX","radioGroupClass","usePrefixClass","_useDefault","useDefault","emit","_useDefault2","_slicedToArray","groupValue","setGroupValue","keys","computed","groupOptions","_props2$options","options","map","option","opt","value","label","toString","handleRadioChange","val","e","allowUncheck","provide","_createVNode","index","icon","_keys$value","_opt$disabled","disabled","_keys$value$value2","_keys$value2","_keys$value$label","_keys$value3","placement"],"mappings":"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"}