UNPKG

5.59 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
17
18var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
20var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
22var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
24var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
26var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
28var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
30var _react = _interopRequireWildcard(require("react"));
31
32var _propTypes = _interopRequireDefault(require("prop-types"));
33
34var _classnames = _interopRequireDefault(require("classnames"));
35
36var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
37
38var _checkbox = _interopRequireDefault(require("../rc-components/checkbox"));
39
40var _configure = require("../configure");
41
42function _createSuper(Derived) {
43 function isNativeReflectConstruct() {
44 if (typeof Reflect === "undefined" || !Reflect.construct) return false;
45 if (Reflect.construct.sham) return false;
46 if (typeof Proxy === "function") return true;
47
48 try {
49 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
50 return true;
51 } catch (e) {
52 return false;
53 }
54 }
55
56 return function () {
57 var Super = (0, _getPrototypeOf2["default"])(Derived),
58 result;
59
60 if (isNativeReflectConstruct()) {
61 var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
62 result = Reflect.construct(Super, arguments, NewTarget);
63 } else {
64 result = Super.apply(this, arguments);
65 }
66
67 return (0, _possibleConstructorReturn2["default"])(this, result);
68 };
69}
70
71var Radio =
72/*#__PURE__*/
73function (_Component) {
74 (0, _inherits2["default"])(Radio, _Component);
75
76 var _super = _createSuper(Radio);
77
78 function Radio() {
79 var _this;
80
81 (0, _classCallCheck2["default"])(this, Radio);
82 _this = _super.apply(this, arguments);
83
84 _this.saveCheckbox = function (node) {
85 _this.rcCheckbox = node;
86 };
87
88 _this.onChange = function (e) {
89 var onChange = _this.props.onChange;
90 var radioGroup = _this.context.radioGroup;
91
92 if (onChange) {
93 onChange(e);
94 }
95
96 if (radioGroup && radioGroup.onChange) {
97 radioGroup.onChange(e);
98 }
99 };
100
101 return _this;
102 }
103
104 (0, _createClass2["default"])(Radio, [{
105 key: "shouldComponentUpdate",
106 value: function shouldComponentUpdate(nextProps, nextState, nextContext) {
107 var radioGroup = this.context.radioGroup;
108 return !(0, _isEqual["default"])(this.props, nextProps) || !(0, _isEqual["default"])(this.state, nextState) || !(0, _isEqual["default"])(radioGroup, nextContext.radioGroup);
109 }
110 }, {
111 key: "focus",
112 value: function focus() {
113 this.rcCheckbox.focus();
114 }
115 }, {
116 key: "blur",
117 value: function blur() {
118 this.rcCheckbox.blur();
119 }
120 }, {
121 key: "render",
122 value: function render() {
123 var _classNames;
124
125 var props = this.props,
126 context = this.context;
127 var customizePrefixCls = props.prefixCls,
128 className = props.className,
129 children = props.children,
130 style = props.style,
131 restProps = (0, _objectWithoutProperties2["default"])(props, ["prefixCls", "className", "children", "style"]);
132 var prefixCls = (0, _configure.getPrefixCls)('radio', customizePrefixCls);
133 var radioGroup = context.radioGroup;
134 var radioProps = (0, _objectSpread2["default"])({}, restProps);
135
136 if (radioGroup) {
137 radioProps.name = radioGroup.name;
138 radioProps.onChange = this.onChange;
139 radioProps.checked = props.value === radioGroup.value;
140 radioProps.disabled = props.disabled || radioGroup.disabled;
141 }
142
143 var wrapperClassString = (0, _classnames["default"])(className, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper"), true), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper-checked"), radioProps.checked), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-wrapper-disabled"), radioProps.disabled), _classNames));
144 return _react["default"].createElement("label", {
145 className: wrapperClassString,
146 style: style,
147 onMouseEnter: props.onMouseEnter,
148 onMouseLeave: props.onMouseLeave
149 }, _react["default"].createElement(_checkbox["default"], (0, _extends2["default"])({}, radioProps, {
150 prefixCls: prefixCls,
151 ref: this.saveCheckbox
152 })), children !== undefined ? _react["default"].createElement("span", null, children) : null);
153 }
154 }]);
155 return Radio;
156}(_react.Component);
157
158exports["default"] = Radio;
159Radio.displayName = 'Radio';
160Radio.defaultProps = {
161 type: 'radio'
162};
163Radio.contextTypes = {
164 radioGroup: _propTypes["default"].any
165};
166//# sourceMappingURL=radio.js.map