1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _react = _interopRequireDefault(require("react"));
|
9 |
|
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
11 |
|
12 | var _airbnbPropTypes = require("airbnb-prop-types");
|
13 |
|
14 | var _Spacing = _interopRequireDefault(require("./Spacing"));
|
15 |
|
16 | var _FormElementGroup = _interopRequireDefault(require("./FormElementGroup"));
|
17 |
|
18 | var _RadioButton = _interopRequireDefault(require("./RadioButton"));
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21 |
|
22 | var propTypes = {
|
23 | actionLink: _propTypes.default.any,
|
24 | children: (0, _airbnbPropTypes.childrenOfType)(_RadioButton.default),
|
25 | collapseSpacing: _propTypes.default.bool,
|
26 | errorMessage: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),
|
27 | hideLabel: _propTypes.default.bool,
|
28 | id: _propTypes.default.string,
|
29 | inline: _propTypes.default.bool,
|
30 | invalid: _propTypes.default.bool,
|
31 | label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),
|
32 | labelDescription: _propTypes.default.string,
|
33 | lightLabel: _propTypes.default.bool,
|
34 | name: _propTypes.default.string.isRequired,
|
35 | onBlur: _propTypes.default.func,
|
36 | onChange: _propTypes.default.func,
|
37 | onFocus: _propTypes.default.func,
|
38 | refForFocus: _propTypes.default.func,
|
39 | spaceOnLastItem: _propTypes.default.bool,
|
40 | value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.number])
|
41 | };
|
42 | var defaultProps = {
|
43 | label: ''
|
44 | };
|
45 |
|
46 | var RadioButtonGroup = function RadioButtonGroup(_ref) {
|
47 | var actionLink = _ref.actionLink,
|
48 | children = _ref.children,
|
49 | collapseSpacing = _ref.collapseSpacing,
|
50 | errorMessage = _ref.errorMessage,
|
51 | hideLabel = _ref.hideLabel,
|
52 | id = _ref.id,
|
53 | inline = _ref.inline,
|
54 | invalid = _ref.invalid,
|
55 | label = _ref.label,
|
56 | labelDescription = _ref.labelDescription,
|
57 | lightLabel = _ref.lightLabel,
|
58 | name = _ref.name,
|
59 | onBlur = _ref.onBlur,
|
60 | onChange = _ref.onChange,
|
61 | onFocus = _ref.onFocus,
|
62 | refForFocus = _ref.refForFocus,
|
63 | spaceOnLastItem = _ref.spaceOnLastItem,
|
64 | value = _ref.value;
|
65 |
|
66 | var childrenSize = _react.default.Children.count(children);
|
67 |
|
68 | return _react.default.createElement(_FormElementGroup.default, {
|
69 | actionLink: actionLink,
|
70 | collapseSpacing: collapseSpacing,
|
71 | errorMessage: errorMessage,
|
72 | hideLabel: hideLabel,
|
73 | invalid: invalid,
|
74 | label: label,
|
75 | labelDescription: labelDescription,
|
76 | lightLabel: lightLabel
|
77 | }, children && _react.default.Children.map(children, function (child, i) {
|
78 | var radioButton = _react.default.cloneElement(child, {
|
79 | name: name,
|
80 | id: name && "".concat(name.toLowerCase(), "-").concat(i),
|
81 | invalid: invalid,
|
82 | onBlur: onBlur,
|
83 | onChange: onChange,
|
84 | onFocus: onFocus,
|
85 | checked: child.props.value === value
|
86 | });
|
87 |
|
88 | return _react.default.createElement(_Spacing.default, {
|
89 | inline: inline,
|
90 | right: inline && 2,
|
91 | bottom: !inline && i + 1 === childrenSize && !spaceOnLastItem ? 0 : 0.5
|
92 | }, radioButton);
|
93 | }));
|
94 | };
|
95 |
|
96 | RadioButtonGroup.propTypes = propTypes;
|
97 | RadioButtonGroup.defaultProps = defaultProps;
|
98 | var _default = RadioButtonGroup;
|
99 | exports.default = _default; |
\ | No newline at end of file |