"use strict";

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

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

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

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

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

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

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

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

var _iconRoot = require("./icon-root");

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

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

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

var _default = function _default(Action, Emoji) {
  var IconBase = /*#__PURE__*/function (_React$Component) {
    (0, _inherits2["default"])(IconBase, _React$Component);

    var _super = _createSuper(IconBase);

    function IconBase(props) {
      var _this;

      (0, _classCallCheck2["default"])(this, IconBase);
      _this = _super.call(this, props);
      var _this$props = _this.props,
          classes = _this$props.classes,
          size = _this$props.size;
      _this.icons = {
        feedback: {
          round: {
            check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(_iconRoot.RoundFeedbackBox, {
              className: classes.bg
            }), /*#__PURE__*/_react["default"].createElement(Action, {
              className: classes.fg
            })),
            emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(_iconRoot.RoundFeedbackBox, {
              className: classes.bg
            }), /*#__PURE__*/_react["default"].createElement(Emoji, {
              className: classes.fg
            })),
            open: {
              check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
                size: size
              }, /*#__PURE__*/_react["default"].createElement(Action, {
                className: classes.bg
              })),
              emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
                size: size
              }, /*#__PURE__*/_react["default"].createElement(Emoji, {
                className: classes.bg
              }))
            }
          },
          square: {
            check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(_iconRoot.SquareFeedbackBox, {
              className: classes.bg
            }), /*#__PURE__*/_react["default"].createElement(Action, {
              className: classes.fg
            })),
            emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(_iconRoot.SquareFeedbackBox, {
              className: classes.bg
            }), /*#__PURE__*/_react["default"].createElement(Emoji, {
              className: classes.fg
            })),
            open: {
              check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
                size: size
              }, /*#__PURE__*/_react["default"].createElement(Action, {
                className: classes.bg
              })),
              emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
                size: size
              }, /*#__PURE__*/_react["default"].createElement(Emoji, {
                className: classes.bg
              }))
            }
          }
        },
        round: {
          check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
            size: size
          }, /*#__PURE__*/_react["default"].createElement(_iconRoot.Circle, {
            className: classes.bg
          }), /*#__PURE__*/_react["default"].createElement(Action, {
            className: classes.fg
          })),
          emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
            size: size
          }, /*#__PURE__*/_react["default"].createElement(_iconRoot.Circle, {
            className: classes.bg
          }), /*#__PURE__*/_react["default"].createElement(Emoji, {
            className: classes.fg
          })),
          open: {
            check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(Action, {
              className: classes.bg
            })),
            emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(Emoji, {
              className: classes.bg
            }))
          }
        },
        square: {
          check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
            size: size
          }, /*#__PURE__*/_react["default"].createElement(_iconRoot.Square, {
            className: classes.bg
          }), /*#__PURE__*/_react["default"].createElement(Action, {
            className: classes.fg
          })),
          emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
            size: size
          }, /*#__PURE__*/_react["default"].createElement(_iconRoot.Square, {
            className: classes.bg
          }), /*#__PURE__*/_react["default"].createElement(Emoji, {
            className: classes.fg
          })),
          open: {
            check: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(Action, {
              className: classes.bg
            })),
            emoji: /*#__PURE__*/_react["default"].createElement(_iconRoot.IconRoot, {
              size: size
            }, /*#__PURE__*/_react["default"].createElement(Emoji, {
              className: classes.bg
            }))
          }
        }
      };
      return _this;
    }

    (0, _createClass2["default"])(IconBase, [{
      key: "render",
      value: function render() {
        if (this.props.category === undefined) {
          if (this.props.open === true) {
            return this.icons[this.props.shape].open[this.props.iconSet];
          } else {
            return this.icons[this.props.shape][this.props.iconSet];
          }
        } else {
          if (this.props.open === true) {
            return this.icons.feedback[this.props.shape].open[this.props.iconSet];
          } else {
            return this.icons.feedback[this.props.shape][this.props.iconSet];
          }
        }
      }
    }]);
    return IconBase;
  }(_react["default"].Component);

  (0, _defineProperty2["default"])(IconBase, "propTypes", {
    classes: _propTypes["default"].object.isRequired,
    size: _propTypes["default"].number
  });
  IconBase.propTypes = {
    iconSet: _propTypes["default"].oneOf(['emoji', 'check']),
    shape: _propTypes["default"].oneOf(['round', 'square']),
    category: _propTypes["default"].oneOf(['feedback', undefined]),
    open: _propTypes["default"].bool
  };
  IconBase.defaultProps = {
    iconSet: 'check',
    shape: 'round',
    category: undefined,
    open: false
  };
  return IconBase;
};

exports["default"] = _default;
//# sourceMappingURL=icon-base.js.map