1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports["default"] = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15 |
|
16 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
17 |
|
18 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
19 |
|
20 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
21 |
|
22 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
23 |
|
24 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
25 |
|
26 | var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
27 |
|
28 | var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
29 |
|
30 | var _react = _interopRequireWildcard(require("react"));
|
31 |
|
32 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
33 |
|
34 | var _classnames = _interopRequireDefault(require("classnames"));
|
35 |
|
36 | var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
37 |
|
38 | var _checkbox = _interopRequireDefault(require("../rc-components/checkbox"));
|
39 |
|
40 | var _configure = require("../configure");
|
41 |
|
42 | function _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 |
|
71 | var Radio =
|
72 |
|
73 | function (_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 |
|
158 | exports["default"] = Radio;
|
159 | Radio.displayName = 'Radio';
|
160 | Radio.defaultProps = {
|
161 | type: 'radio'
|
162 | };
|
163 | Radio.contextTypes = {
|
164 | radioGroup: _propTypes["default"].any
|
165 | };
|
166 |
|