UNPKG

tdesign-mobile-vue

Version:
1 lines 6.49 kB
{"version":3,"file":"radio-group.mjs","sources":["../../src/radio/radio-group.tsx"],"sourcesContent":["import { provide, defineComponent, computed, toRefs } from 'vue';\nimport { get as lodashGet } from 'lodash-es';\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 useVModel from '../hooks/useVModel';\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 { value, modelValue } = toRefs(props);\n const [groupValue, setGroupValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\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, context: { e: Event; name?: string }) => {\n if (props.allowUncheck && val === groupValue.value) {\n setGroupValue('', context);\n } else {\n setGroupValue(val, context);\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 === lodashGet(opt, keys.value?.value ?? 'value')}\n disabled={lodashGet(opt, keys.value?.disabled ?? 'disabled', props.disabled)}\n value={lodashGet(opt, keys.value?.value ?? 'value')}\n label={lodashGet(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","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","groupValue","setGroupValue","keys","computed","groupOptions","_props2$options","options","map","option","opt","label","toString","handleRadioChange","val","allowUncheck","provide","_createVNode","index","_keys$value$value","_keys$value","_keys$value$disabled","_keys$value2","_keys$value$value2","_keys$value3","_keys$value$label","_keys$value4","TRadio","icon","lodashGet","disabled","placement"],"mappings":"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"}