'use strict';

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

exports.__esModule = true;
exports.Radio = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));

var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _FormGroup2 = require("./FormGroup");

var _RadioControl = require("./RadioControl");

var Radio =
/*#__PURE__*/
function (_FormGroup) {
  (0, _inheritsLoose2.default)(Radio, _FormGroup);

  function Radio() {
    return _FormGroup.apply(this, arguments) || this;
  }

  var _proto = Radio.prototype;

  _proto.controlLabelFallback = function controlLabelFallback() {
    return false;
  };

  _proto.renderInput = function renderInput(hasError) {
    var _this$props = this.props,
        label = _this$props.label,
        children = _this$props.children,
        hiddenLabel = _this$props.hiddenLabel,
        removeName = _this$props.removeName,
        props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["label", "children", "hiddenLabel", "removeName"]);
    var ariaDescProps = this.getAriaDescProps(hasError);
    return _react.default.createElement(_RadioControl.RadioControl, (0, _extends2.default)({}, this.getSafeProps(props), {
      ref: "control",
      hiddenLabel: hiddenLabel,
      removeName: removeName
    }, ariaDescProps, {
      hasFormGroupContainer: true
    }), children || label);
  };

  return Radio;
}(_FormGroup2.FormGroup);

exports.Radio = Radio;
(0, _defineProperty2.default)(Radio, "propTypes", Object.assign({}, _FormGroup2.FormGroup.propTypes, {
  hiddenLabel: _propTypes.default.bool,
  removeName: _propTypes.default.bool
}));
(0, _defineProperty2.default)(Radio, "defaultProps", Object.assign({}, _FormGroup2.FormGroup.defaultProps, {
  testAutomationId: 'radio',
  hiddenLabel: false,
  removeName: false
}));