import { __assign } from 'tslib';
import { withThemeableProps } from '../../useThemeable.js';
import { classNamesFunction } from '@uifabric-vue/utilities';
import Vue from 'vue';

var getClassNames = classNamesFunction();
var SpinnerBase = Vue.extend({
  name: "SpinnerBase",
  functional: true,
  props: __assign(__assign({}, withThemeableProps()), { label: { type: String, default: null }, labelPosition: { type: String, default: "bottom" }, size: { type: Number, default: 20 } }),
  render: function(h, ctx) {
    var _a = ctx.props, theme = _a.theme, styles = _a.styles, className = _a.className, size = _a.size, label = _a.label, labelPosition = _a.labelPosition;
    var classNames = getClassNames(styles, {
      theme: theme,
      size: size,
      className: className,
      labelPosition: labelPosition
    });
    var $circle = h("div", { class: classNames.circle });
    var $label = (ctx.scopedSlots.default || label) && h("div", { class: classNames.label }, ctx.scopedSlots.default ? [
      ctx.scopedSlots.default({})
    ] : label);
    return h("div", { class: classNames.root }, [
      $circle,
      $label
    ]);
  }
});

export { SpinnerBase };
