You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
6.7 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, ref, onMounted, computed, provide, reactive, toRefs, watch, openBlock, createElementBlock, unref, normalizeClass, renderSlot, nextTick } from 'vue';\nimport { radioGroupProps, radioGroupEmits } from './radio-group.mjs';\nimport { radioGroupKey } from './constants.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { useId } from '../../../hooks/use-id/index.mjs';\nimport { useFormItem, useFormItemInputId } from '../../form/src/hooks/use-form-item.mjs';\nimport { debugWarn } from '../../../utils/error.mjs';\nimport { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';\nconst __default__ = defineComponent({\n name: \"ElRadioGroup\"\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: radioGroupProps,\n emits: radioGroupEmits,\n setup(__props, {\n emit\n }) {\n const props = __props;\n const ns = useNamespace(\"radio\");\n const radioId = useId();\n const radioGroupRef = ref();\n const {\n formItem\n } = useFormItem();\n const {\n inputId: groupId,\n isLabeledByFormItem\n } = useFormItemInputId(props, {\n formItemContext: formItem\n });\n const changeEvent = value => {\n emit(UPDATE_MODEL_EVENT, value);\n nextTick(() => emit(\"change\", value));\n };\n onMounted(() => {\n const radios = radioGroupRef.value.querySelectorAll(\"[type=radio]\");\n const firstLabel = radios[0];\n if (!Array.from(radios).some(radio => radio.checked) && firstLabel) {\n firstLabel.tabIndex = 0;\n }\n });\n const name = computed(() => {\n return props.name || radioId.value;\n });\n provide(radioGroupKey, reactive({\n ...toRefs(props),\n changeEvent,\n name\n }));\n watch(() => props.modelValue, () => {\n if (props.validateEvent) {\n formItem == null ? void 0 : formItem.validate(\"change\").catch(err => debugWarn(err));\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: unref(groupId),\n ref_key: \"radioGroupRef\",\n ref: radioGroupRef,\n class: normalizeClass(unref(ns).b(\"group\")),\n role: \"radiogroup\",\n \"aria-label\": !unref(isLabeledByFormItem) ? _ctx.ariaLabel || \"radio-group\" : void 0,\n \"aria-labelledby\": unref(isLabeledByFormItem) ? unref(formItem).labelId : void 0\n }, [renderSlot(_ctx.$slots, \"default\")], 10, [\"id\", \"aria-label\", \"aria-labelledby\"]);\n };\n }\n});\nvar RadioGroup = /* @__PURE__ */_export_sfc(_sfc_main, [[\"__file\", \"radio-group.vue\"]]);\nexport { RadioGroup as default };","map":{"version":3,"names":["name","ns","useNamespace","radioId","useId","radioGroupRef","ref","formItem","useFormItem","inputId","groupId","isLabeledByFormItem","useFormItemInputId","props","formItemContext","changeEvent","value","emit","UPDATE_MODEL_EVENT","nextTick","onMounted","radios","querySelectorAll","firstLabel","Array","from","some","radio","checked","tabIndex","computed","provide","radioGroupKey","reactive","toRefs","watch","modelValue","validateEvent","validate","catch","err","debugWarn","_ctx","_cache","openBlock","createElementBlock","id","unref","ref_key","class","normalizeClass","b"],"sources":["../../../../../../packages/components/radio/src/radio-group.vue"],"sourcesContent":["<template>\n <div\n :id=\"groupId\"\n ref=\"radioGroupRef\"\n :class=\"ns.b('group')\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'radio-group' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { useFormItem, useFormItemInputId } from '@element-plus/components/form'\nimport { UPDATE_MODEL_EVENT } from '@eleme