UNPKG

4.59 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 _Label = _interopRequireDefault(require("./Label"));
13
14var _RadioButtonOnly = _interopRequireDefault(require("./RadioButtonOnly"));
15
16var _Text = _interopRequireDefault(require("./Text"));
17
18var _withStyles = require("../helpers/withStyles");
19
20var _reactWithStyles = require("react-with-styles");
21
22function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
24function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
25
26function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
28var propTypes = _objectSpread({}, _reactWithStyles.withStylesPropTypes, {
29 checked: _propTypes.default.bool,
30 disabled: _propTypes.default.bool,
31 id: _propTypes.default.string,
32 invalid: _propTypes.default.bool,
33 label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),
34 name: _propTypes.default.string,
35 onBlur: _propTypes.default.func,
36 onChange: _propTypes.default.func,
37 onFocus: _propTypes.default.func,
38 pullRight: _propTypes.default.bool,
39 refForFocus: _propTypes.default.func,
40 subtitle: _propTypes.default.string,
41 value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.number])
42});
43
44var defaultProps = {
45 label: '',
46 radioButton: false
47};
48
49var RadioButton = function RadioButton(_ref) {
50 var checked = _ref.checked,
51 css = _ref.css,
52 disabled = _ref.disabled,
53 id = _ref.id,
54 invalid = _ref.invalid,
55 label = _ref.label,
56 name = _ref.name,
57 onBlur = _ref.onBlur,
58 onChange = _ref.onChange,
59 onFocus = _ref.onFocus,
60 pullRight = _ref.pullRight,
61 refForFocus = _ref.refForFocus,
62 styles = _ref.styles,
63 subtitle = _ref.subtitle,
64 value = _ref.value;
65 return _react.default.createElement(_Label.default, {
66 htmlFor: id
67 }, _react.default.createElement("div", css(styles.column, pullRight && styles.pullRight), _react.default.createElement(_RadioButtonOnly.default, {
68 id: id,
69 checked: checked,
70 disabled: disabled,
71 invalid: invalid,
72 name: name,
73 onBlur: onBlur,
74 onChange: onChange,
75 onFocus: onFocus,
76 value: value
77 })), _react.default.createElement("div", css(styles.column, pullRight ? styles.marginRight : styles.spacing), _react.default.createElement("div", css(styles.radioButton__label), typeof label === 'string' ? _react.default.createElement(_Text.default, {
78 disabled: disabled
79 }, label) : label), subtitle && checked && _react.default.createElement("div", css(styles.subtitle), _react.default.createElement(_Text.default, {
80 small: true
81 }, subtitle))));
82};
83
84RadioButton.propTypes = propTypes;
85RadioButton.defaultProps = defaultProps;
86var RadioButtonWithStyles = (0, _withStyles.withStyles)(function (_ref2) {
87 var units = _ref2.units,
88 color = _ref2.color,
89 font = _ref2.font,
90 fontSize = _ref2.fontSize,
91 weight = _ref2.weight,
92 lineHeight = _ref2.lineHeight,
93 breakpoint = _ref2.breakpoint;
94 return {
95 radioButton: {},
96 column: {
97 display: 'table-cell',
98 verticalAlign: 'top',
99 whiteSpace: 'normal'
100 },
101 radioButton__label: _defineProperty({
102 color: color.grayDarker,
103 cursor: 'pointer',
104 display: 'inline-block',
105 wordWrap: 'break-word',
106 letterSpacing: 'normal',
107 fontFamily: font.default,
108 fontWeight: weight.normal,
109 fontSize: fontSize.small.regular,
110 lineHeight: lineHeight.regular
111 }, breakpoint.large, {
112 fontSize: fontSize.large.regular
113 }),
114 spacing: {
115 paddingLeft: 12
116 },
117 marginRight: {
118 marginRight: 32
119 },
120 pullRight: {
121 float: 'right'
122 },
123 subtitle: {
124 paddingTop: 2
125 }
126 };
127})(RadioButton);
128var _default = RadioButtonWithStyles;
129exports.default = _default;
\No newline at end of file