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

var getClassNames = classNamesFunction({
  cacheSize: 100
});
var LabelBase = Vue.extend({
  name: "LabelBase",
  functional: true,
  props: __assign(__assign({}, withThemeableProps()), { as: { type: String, default: "label" }, disabled: { type: Boolean, default: false }, required: { type: Boolean, default: false } }),
  render: function(h, ctx) {
    var _a = ctx.props, RootType = _a.as, theme = _a.theme, className = _a.className, styles = _a.styles, disabled = _a.disabled, required = _a.required;
    var classNames = getClassNames(styles, {
      theme: theme,
      className: className,
      disabled: disabled,
      required: required
    });
    return h(RootType, __assign(__assign({}, ctx.data), { class: classNames.root }), ctx.children);
  }
});

export { LabelBase };
