import { __extends, __assign, __decorate, __metadata } from 'tslib';
import { Prop, Component } from 'vue-property-decorator';
import { getStyles } from './IconButton.styles.js';
import { BaseButton } from '../BaseButton.js';
import BaseComponent from '../../BaseComponent.js';

var IconButton = function(_super) {
  __extends(IconButton2, _super);
  function IconButton2() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  Object.defineProperty(IconButton2.prototype, "internalStyles", {
    get: function() {
      var _a = this, theme = _a.theme, styles = _a.styles;
      return getStyles(theme, styles);
    },
    enumerable: false,
    configurable: true
  });
  IconButton2.prototype.render = function(h) {
    var _a = this, iconProps = _a.iconProps, disabled = _a.disabled, internalStyles = _a.internalStyles;
    var props = {
      iconProps: iconProps,
      disabled: disabled,
      variantClassName: "ms-Button--icon",
      styles: internalStyles,
      theme: this.theme
    };
    return h(BaseButton, {
      attrs: __assign(__assign(__assign({}, this.$props), props), this.$attrs),
      on: this.$listeners,
      scopedSlots: this.$scopedSlots
    });
  };
  __decorate([
    Prop({ type: Boolean, default: false }),
    __metadata("design:type", Boolean)
  ], IconButton2.prototype, "disabled", void 0);
  __decorate([
    Prop({ type: Object, default: function() {
    } }),
    __metadata("design:type", Object)
  ], IconButton2.prototype, "iconProps", void 0);
  IconButton2 = __decorate([
    Component({
      inheritAttrs: false
    })
  ], IconButton2);
  return IconButton2;
}(BaseComponent);

export { IconButton };
