"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _radio = _interopRequireDefault(require("@alifd/next/lib/radio"));
var React = _interopRequireWildcard(require("react"));
require("./index.less");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var RadioGroup = _radio["default"].Group;
var RadioGroupSetter = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
  function RadioGroupSetter() {
    var _this;
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;
    _this.state = {
      setterValue: null
    };
    _this.renderLabel = function (dataSource) {
      var onChange = _this.props.onChange;
      var setterValue = _this.state.setterValue;
      var labelList = dataSource.map(function (item, index) {
        return item.img ? /*#__PURE__*/React.createElement("span", {
          key: index,
          className: "setter-choose-option " + (setterValue === item.value && 'setter-choose-checked' || ''),
          onClick: function onClick() {
            return onChange(item.value);
          }
        }, /*#__PURE__*/React.createElement("span", {
          style: {
            backgroundImage: "url(\"" + item.img + "\")"
          },
          className: "setter-choose-img"
        })) : /*#__PURE__*/React.createElement("span", {
          key: index,
          className: "setter-choose-label " + (setterValue === (item.value === undefined ? item : item.value) && 'setter-choose-checked' || ''),
          onClick: function onClick() {
            return onChange(item.value === undefined ? item : item.value);
          }
        }, item.label || item);
      });
      return labelList || [];
    };
    return _this;
  }
  (0, _inheritsLoose2["default"])(RadioGroupSetter, _React$PureComponent);
  var _proto = RadioGroupSetter.prototype;
  _proto.render = function render() {
    var _this$props = this.props,
      _onChange = _this$props.onChange,
      _this$props$disabled = _this$props.disabled,
      disabled = _this$props$disabled === void 0 ? false : _this$props$disabled,
      options = _this$props.options,
      value = _this$props.value;
    var hasImg = false;
    var dataSource = options.map(function (item) {
      if (typeof item == 'string') {
        return item;
      } else {
        if (item.img) {
          hasImg = true;
        }
        return {
          img: item.img,
          label: item.title || item.label,
          value: item.value
        };
      }
    });
    var otherProps = {};
    if (hasImg) {
      otherProps.children = this.renderLabel(dataSource);
    }
    return /*#__PURE__*/React.createElement("div", {
      className: "radiogroup-style"
    }, /*#__PURE__*/React.createElement(RadioGroup, (0, _extends2["default"])({
      size: "small",
      dataSource: dataSource,
      shape: "button",
      value: value,
      disabled: disabled,
      onChange: function onChange(val) {
        return _onChange(val);
      }
    }, otherProps)));
  };
  return RadioGroupSetter;
}(React.PureComponent);
RadioGroupSetter.displayName = 'RadioGroupSetter';