UNPKG

7.94 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7require('./slicedToArray-ef426d0f.js');
8require('./unsupportedIterableToArray-8a00e599.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13var defineProperty$1 = require('./defineProperty-0921a47c.js');
14require('./toConsumableArray-7f36359f.js');
15require('styled-components');
16var getPrototypeOf = require('./getPrototypeOf-e2d1e599.js');
17require('./color.js');
18require('./components.js');
19require('./contains-component.js');
20require('./css.js');
21require('./dayjs.min-aa59a48e.js');
22require('./date.js');
23var miscellaneous = require('./miscellaneous.js');
24require('./environment.js');
25require('./font.js');
26require('./math-ecfd5d91.js');
27require('./characters.js');
28require('./format.js');
29require('./keycodes.js');
30require('./url.js');
31require('./web3.js');
32require('./constants.js');
33require('./breakpoints.js');
34require('./springs.js');
35require('./text-styles.js');
36require('./theme-dark.js');
37require('./theme-light.js');
38require('./Theme.js');
39var _extends$1 = require('./extends-40571110.js');
40var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
41require('./FocusVisible.js');
42require('./objectWithoutPropertiesLoose-1af20ad0.js');
43require('react-dom');
44require('./web-d0294535.js');
45var Checkbox = require('./Checkbox.js');
46var RadioGroup = require('./RadioGroup.js');
47
48function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf._getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf._getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return getPrototypeOf._possibleConstructorReturn(this, result); }; }
49
50function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
51var KEYS_PREV = ['ArrowUp', 'ArrowLeft', // IE / Edge support
52'Up', 'Left'];
53var KEYS_NEXT = ['ArrowDown', 'ArrowRight', // IE / Edge support
54'Down', 'Right'];
55
56var RadioButton = /*#__PURE__*/function (_React$PureComponent) {
57 getPrototypeOf._inherits(RadioButton, _React$PureComponent);
58
59 var _super = _createSuper(RadioButton);
60
61 function RadioButton() {
62 var _this;
63
64 getPrototypeOf._classCallCheck(this, RadioButton);
65
66 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
67 args[_key] = arguments[_key];
68 }
69
70 _this = _super.call.apply(_super, [this].concat(args));
71
72 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "_element", /*#__PURE__*/React__default.createRef());
73
74 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "handleKeyDown", function (event) {
75 var _this$props = _this.props,
76 selectPrev = _this$props.selectPrev,
77 selectNext = _this$props.selectNext;
78
79 if (KEYS_PREV.includes(event.key)) {
80 selectPrev();
81 event.preventDefault();
82 }
83
84 if (KEYS_NEXT.includes(event.key)) {
85 selectNext();
86 event.preventDefault();
87 }
88 });
89
90 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "handleChange", function () {
91 var _this$props2 = _this.props,
92 onChange = _this$props2.onChange,
93 id = _this$props2.id;
94
95 if (onChange) {
96 onChange(id);
97 }
98 });
99
100 return _this;
101 }
102
103 getPrototypeOf._createClass(RadioButton, [{
104 key: "componentDidMount",
105 value: function componentDidMount() {
106 var _this$props3 = this.props,
107 addRadio = _this$props3.addRadio,
108 id = _this$props3.id;
109
110 if (addRadio && id !== null) {
111 addRadio(id);
112 }
113 }
114 }, {
115 key: "componentWillUnmount",
116 value: function componentWillUnmount() {
117 var _this$props4 = this.props,
118 removeRadio = _this$props4.removeRadio,
119 id = _this$props4.id;
120
121 if (removeRadio && id !== null) {
122 removeRadio(id);
123 }
124 }
125 }, {
126 key: "componentDidUpdate",
127 value: function componentDidUpdate(prevProps) {
128 var checked = this.props.checked;
129
130 if (checked && !prevProps.checked) {
131 this._element.current.focus();
132 }
133 }
134 }, {
135 key: "render",
136 value: function render() {
137 var _this$props5 = this.props,
138 checked = _this$props5.checked,
139 disabled = _this$props5.disabled,
140 id = _this$props5.id,
141 onChange = _this$props5.onChange,
142 tabIndex = _this$props5.tabIndex,
143 props = objectWithoutProperties._objectWithoutProperties(_this$props5, ["checked", "disabled", "id", "onChange", "tabIndex"]);
144
145 return /*#__PURE__*/React__default.createElement(Checkbox.default, _extends$1._extends({
146 ref: this._element,
147 checked: checked,
148 disabled: disabled,
149 onChange: this.handleChange,
150 onKeyDown: this.handleKeyDown,
151 tabIndex: tabIndex,
152 variant: "radio"
153 }, props));
154 }
155 }]);
156
157 return RadioButton;
158}(React__default.PureComponent);
159
160defineProperty$1._defineProperty(RadioButton, "propTypes", {
161 addRadio: index.PropTypes.func,
162 checked: index.PropTypes.bool,
163 disabled: index.PropTypes.bool,
164 id: index.PropTypes.oneOfType([index.PropTypes.string, index.PropTypes.number]),
165 onChange: index.PropTypes.func,
166 removeRadio: index.PropTypes.func,
167 selectNext: index.PropTypes.func,
168 selectPrev: index.PropTypes.func,
169 tabIndex: index.PropTypes.string
170});
171
172defineProperty$1._defineProperty(RadioButton, "defaultProps", {
173 addRadio: miscellaneous.noop,
174 checked: false,
175 disabled: false,
176 id: null,
177 onChange: undefined,
178 // <Button /> need to detect if onChange has been set
179 removeRadio: miscellaneous.noop,
180 selectNext: miscellaneous.noop,
181 selectPrev: miscellaneous.noop
182});
183
184var Radio = /*#__PURE__*/function (_React$PureComponent2) {
185 getPrototypeOf._inherits(Radio, _React$PureComponent2);
186
187 var _super2 = _createSuper(Radio);
188
189 function Radio() {
190 getPrototypeOf._classCallCheck(this, Radio);
191
192 return _super2.apply(this, arguments);
193 }
194
195 getPrototypeOf._createClass(Radio, [{
196 key: "render",
197 value: function render() {
198 var props = this.props;
199 return /*#__PURE__*/React__default.createElement(RadioGroup.RadioGroupConsumer, null, function (_ref) {
200 var onChange = _ref.onChange,
201 selected = _ref.selected,
202 focusableId = _ref.focusableId,
203 addRadio = _ref.addRadio,
204 removeRadio = _ref.removeRadio,
205 selectNext = _ref.selectNext,
206 selectPrev = _ref.selectPrev;
207 return /*#__PURE__*/React__default.createElement(RadioButton, _extends$1._extends({}, props, {
208 onChange: props.onChange || onChange,
209 checked: props.checked || props.id === selected && selected !== null,
210 tabIndex: props.tabIndex || (focusableId === undefined || props.id === focusableId ? '0' : '-1'),
211 addRadio: addRadio,
212 removeRadio: removeRadio,
213 selectPrev: selectPrev,
214 selectNext: selectNext
215 }));
216 });
217 }
218 }]);
219
220 return Radio;
221}(React__default.PureComponent);
222
223defineProperty$1._defineProperty(Radio, "propTypes", RadioButton.propTypes);
224
225defineProperty$1._defineProperty(Radio, "defaultProps", RadioButton.defaultProps);
226
227exports.default = Radio;
228//# sourceMappingURL=Radio.js.map