UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.44 kB
{"version":3,"file":"radio.mjs","sources":["../../../../../../packages/components/radio/src/radio.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue'\nimport { buildProps, isBoolean, isNumber, isString } from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { radioGroupKey } from '@element-plus/tokens'\nimport { useDisabled, useSize, useSizeProp } from '@element-plus/hooks'\nimport type { ExtractPropTypes, SetupContext } from 'vue'\n\nexport const radioPropsBase = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n label: {\n type: [String, Number, Boolean],\n default: '',\n },\n})\nexport const radioProps = buildProps({\n ...radioPropsBase,\n modelValue: {\n type: [String, Number, Boolean],\n default: '',\n },\n name: {\n type: String,\n default: '',\n },\n border: Boolean,\n} as const)\nexport type RadioProps = ExtractPropTypes<typeof radioProps>\n\nexport const radioEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n change: (val: string | number | boolean) =>\n isString(val) || isNumber(val) || isBoolean(val),\n}\nexport type RadioEmits = typeof radioEmits\n\nexport const useRadio = (\n props: { label: RadioProps['label']; modelValue?: RadioProps['modelValue'] },\n emit: SetupContext<RadioEmits>['emit']\n) => {\n const radioRef = ref<HTMLInputElement>()\n const radioGroup = inject(radioGroupKey, undefined)\n const isGroup = computed(() => !!radioGroup)\n const modelValue = computed<RadioProps['modelValue']>({\n get() {\n return isGroup.value ? radioGroup!.modelValue : props.modelValue!\n },\n set(val) {\n if (isGroup.value) {\n radioGroup!.changeEvent(val)\n } else {\n emit(UPDATE_MODEL_EVENT, val)\n }\n radioRef.value!.checked = props.modelValue === props.label\n },\n })\n\n const size = useSize(computed(() => radioGroup?.size))\n const disabled = useDisabled(computed(() => radioGroup?.disabled))\n const focus = ref(false)\n const tabIndex = computed(() => {\n return disabled.value || (isGroup.value && modelValue.value !== props.label)\n ? -1\n : 0\n })\n\n return {\n radioRef,\n isGroup,\n radioGroup,\n focus,\n size,\n disabled,\n tabIndex,\n modelValue,\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAKY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC,EAAE;AACS,MAAC,UAAU,GAAG,UAAU,CAAC;AACrC,EAAE,GAAG,cAAc;AACnB,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,CAAC,EAAE;AACS,MAAC,UAAU,GAAG;AAC1B,EAAE,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AACjF,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;AACnE,EAAE;AACU,MAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AACzC,EAAE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;AACzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/C,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC9B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACtE,KAAK;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE;AACzB,QAAQ,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACpC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACtC,OAAO;AACP,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,CAAC;AAChE,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACtF,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClG,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAClC,IAAI,OAAO,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,GAAG,CAAC;AACJ;;;;"}