RadioButton.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode } from "vue";
  3. import { defineComponent, inject } from 'vue';
  4. import Radio, { radioProps } from './Radio';
  5. import useConfigInject from '../_util/hooks/useConfigInject';
  6. export default defineComponent({
  7. compatConfig: {
  8. MODE: 3
  9. },
  10. name: 'ARadioButton',
  11. props: radioProps(),
  12. setup: function setup(props, _ref) {
  13. var slots = _ref.slots;
  14. var _useConfigInject = useConfigInject('radio-button', props),
  15. prefixCls = _useConfigInject.prefixCls;
  16. var radioGroupContext = inject('radioGroupContext', undefined);
  17. return function () {
  18. var _slots$default;
  19. var rProps = _objectSpread(_objectSpread({}, props), {}, {
  20. prefixCls: prefixCls.value
  21. });
  22. if (radioGroupContext) {
  23. rProps.onChange = radioGroupContext.onRadioChange;
  24. rProps.checked = rProps.value === radioGroupContext.stateValue.value;
  25. rProps.disabled = rProps.disabled || radioGroupContext.props.disabled;
  26. }
  27. return _createVNode(Radio, rProps, {
  28. default: function _default() {
  29. return [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
  30. }
  31. });
  32. };
  33. }
  34. });