UNPKG

4.66 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 _withStyles = require("../helpers/withStyles");
13
14var _reactWithStyles = require("react-with-styles");
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
20function _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; }
21
22function _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; }
23
24var propTypes = _objectSpread({}, _reactWithStyles.withStylesPropTypes, {
25 checked: _propTypes.default.bool,
26 disabled: _propTypes.default.bool,
27 id: _propTypes.default.string,
28 invalid: _propTypes.default.bool,
29 name: _propTypes.default.string,
30 onBlur: _propTypes.default.func,
31 onChange: _propTypes.default.func,
32 onFocus: _propTypes.default.func,
33 refForFocus: _propTypes.default.func,
34 value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.number])
35});
36
37var RadioButtonOnly = function RadioButtonOnly(_ref) {
38 var checked = _ref.checked,
39 css = _ref.css,
40 disabled = _ref.disabled,
41 id = _ref.id,
42 invalid = _ref.invalid,
43 name = _ref.name,
44 onBlur = _ref.onBlur,
45 onChange = _ref.onChange,
46 onFocus = _ref.onFocus,
47 refForFocus = _ref.refForFocus,
48 styles = _ref.styles,
49 value = _ref.value;
50 return _react.default.createElement("div", css(styles.container), _react.default.createElement("div", css(styles.radio, disabled && styles.radio_disabled, invalid && styles.radio_invalid), _react.default.createElement("input", _extends({}, css(styles.radio__input), {
51 type: "radio",
52 id: id,
53 name: name,
54 checked: checked,
55 disabled: disabled,
56 value: value,
57 "aria-invalid": invalid,
58 onBlur: onBlur,
59 onChange: onChange,
60 onFocus: onFocus
61 })), _react.default.createElement("div", _extends({}, css(styles.radio__markContainer), {
62 "data-fake-radio": !invalid && !disabled
63 }), checked && _react.default.createElement("div", css(styles.radio__checkMark)))));
64};
65
66RadioButtonOnly.propTypes = propTypes;
67var RadioButtonOnlyWithStyles = (0, _withStyles.withStyles)(function (_ref2) {
68 var units = _ref2.units,
69 color = _ref2.color,
70 input = _ref2.input;
71 return {
72 container: {
73 display: 'inline-block',
74 position: 'relative',
75 marginTop: 2,
76 verticalAlign: 'top'
77 },
78 radio: _objectSpread({
79 width: input.radio.size,
80 height: input.radio.size,
81 borderRadius: input.radio.borderRadius,
82 background: input.radio.background
83 }, input.radio.border, {
84 boxSizing: 'border-box'
85 }),
86 radio_disabled: _objectSpread({
87 background: input.radio.disabled.background
88 }, input.radio.disabled.border),
89 radio_invalid: _objectSpread({
90 background: input.radio.invalid.background
91 }, input.radio.invalid.border),
92 radio__input: {
93 width: '100%',
94 height: '100%',
95 margin: 0,
96 padding: 0,
97 opacity: 0,
98 position: 'absolute',
99 ':focus + [data-fake-radio]': {
100 zIndex: 1,
101 borderWidth: 1,
102 borderStyle: 'solid',
103 borderColor: color.secondary,
104 boxSizing: 'border-box'
105 }
106 },
107 radio__markContainer: {
108 display: 'flex',
109 position: 'absolute',
110 width: '100%',
111 height: '100%',
112 left: 0,
113 top: 0,
114 alignItems: 'center',
115 justifyContent: 'center',
116 borderRadius: input.radio.border.borderRadius
117 },
118 radio__checkMark: _objectSpread({}, input.radio.checkMark)
119 };
120})(RadioButtonOnly);
121var _default = RadioButtonOnlyWithStyles;
122exports.default = _default;
\No newline at end of file