import { __extends, __assign, __decorate, __metadata } from 'tslib';
import { Prop, Component } from 'vue-property-decorator';
import { classNamesFunction } from '@uifabric-vue/utilities';
import { styles } from './Stack.styles.js';
import StatelessComponent from '../StatelessComponent.js';
import { mergeStyleSets } from '@uifabric/styling';

var getClassNames = classNamesFunction();
var Stack = function(_super) {
  __extends(Stack2, _super);
  function Stack2() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  Stack2.prototype.render = function(h, ctx) {
    var _a = ctx.props, theme = _a.theme, tokens = _a.tokens, verticalFill = _a.verticalFill, horizontal = _a.horizontal, reversed = _a.reversed, grow = _a.grow, wrap = _a.wrap, horizontalAlign = _a.horizontalAlign, verticalAlign = _a.verticalAlign, disableShrink = _a.disableShrink, className = _a.className;
    var classNames = getClassNames(mergeStyleSets(styles({
      className: className,
      verticalFill: verticalFill,
      horizontal: horizontal,
      reversed: reversed,
      grow: grow,
      wrap: wrap,
      horizontalAlign: horizontalAlign,
      verticalAlign: verticalAlign,
      disableShrink: disableShrink
    }, theme, tokens), ctx.props.styles));
    return h("div", __assign(__assign({}, ctx.data), { class: classNames.root }), ctx.children);
  };
  __decorate([
    Prop({ type: String, default: "" }),
    __metadata("design:type", String)
  ], Stack2.prototype, "verticalFill", void 0);
  __decorate([
    Prop({ type: Boolean, default: false }),
    __metadata("design:type", Boolean)
  ], Stack2.prototype, "horizontal", void 0);
  __decorate([
    Prop({ type: Boolean, default: false }),
    __metadata("design:type", Boolean)
  ], Stack2.prototype, "reversed", void 0);
  __decorate([
    Prop({ type: Number, default: 0 }),
    __metadata("design:type", Number)
  ], Stack2.prototype, "childrenGap", void 0);
  __decorate([
    Prop({ type: Boolean, default: false }),
    __metadata("design:type", Boolean)
  ], Stack2.prototype, "grow", void 0);
  __decorate([
    Prop({ type: Boolean, default: false }),
    __metadata("design:type", Boolean)
  ], Stack2.prototype, "wrap", void 0);
  __decorate([
    Prop({ type: String, default: "" }),
    __metadata("design:type", String)
  ], Stack2.prototype, "horizontalAlign", void 0);
  __decorate([
    Prop({ type: String, default: "" }),
    __metadata("design:type", String)
  ], Stack2.prototype, "verticalAlign", void 0);
  __decorate([
    Prop({ type: Boolean, default: false }),
    __metadata("design:type", Boolean)
  ], Stack2.prototype, "disableShrink", void 0);
  __decorate([
    Prop({ type: Object, default: function() {
    } }),
    __metadata("design:type", Object)
  ], Stack2.prototype, "tokens", void 0);
  Stack2 = __decorate([
    Component({
      components: {}
    })
  ], Stack2);
  return Stack2;
}(StatelessComponent);

export { Stack };
