UNPKG

2.27 kBJavaScriptView Raw
1import { createVNode as _createVNode, isVNode as _isVNode } from "vue";
2
3function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
5var __rest = this && this.__rest || function (s, e) {
6 var t = {};
7
8 for (var p in s) {
9 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
10 }
11
12 if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
14 }
15 return t;
16};
17
18import { defineComponent, inject } from 'vue';
19import Radio, { radioProps } from './Radio';
20import { getOptionProps, getSlot } from '../_util/props-util';
21import { defaultConfigProvider } from '../config-provider';
22
23function _isSlot(s) {
24 return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
25}
26
27export default defineComponent({
28 name: 'ARadioButton',
29 props: _extends({}, radioProps),
30 setup: function setup() {
31 return {
32 configProvider: inject('configProvider', defaultConfigProvider),
33 radioGroupContext: inject('radioGroupContext', {})
34 };
35 },
36 render: function render() {
37 var _slot;
38
39 var props = getOptionProps(this);
40
41 var customizePrefixCls = props.prefixCls,
42 otherProps = __rest(props, ["prefixCls"]);
43
44 var getPrefixCls = this.configProvider.getPrefixCls;
45 var prefixCls = getPrefixCls('radio-button', customizePrefixCls);
46
47 var rProps = _extends({
48 prefixCls: prefixCls
49 }, otherProps);
50
51 if (this.radioGroupContext) {
52 rProps.onChange = this.radioGroupContext.onRadioChange;
53 rProps.checked = props.value === this.radioGroupContext.stateValue;
54 rProps.disabled = props.disabled || this.radioGroupContext.disabled;
55 }
56
57 return _createVNode(Radio, rProps, _isSlot(_slot = getSlot(this)) ? _slot : {
58 default: function _default() {
59 return [_slot];
60 }
61 });
62 }
63});
\No newline at end of file