UNPKG

3.34 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _react = _interopRequireDefault(require("react"));
9
10var _propTypes = _interopRequireDefault(require("prop-types"));
11
12var _airbnbPropTypes = require("airbnb-prop-types");
13
14var _Spacing = _interopRequireDefault(require("./Spacing"));
15
16var _FormElementGroup = _interopRequireDefault(require("./FormElementGroup"));
17
18var _RadioButton = _interopRequireDefault(require("./RadioButton"));
19
20function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
22var 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};
42var defaultProps = {
43 label: ''
44};
45
46var 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
96RadioButtonGroup.propTypes = propTypes;
97RadioButtonGroup.defaultProps = defaultProps;
98var _default = RadioButtonGroup;
99exports.default = _default;
\No newline at end of file