import { __assign } from "tslib";
import { withThemeableProps } from '../../useThemeable';
import { classNamesFunction } from '@uifabric-vue/utilities';
import Vue from 'vue';
var getClassNames = classNamesFunction({
    // Label is used a lot by other components.
    // It's likely to see expected cases which pass different className to the Label.
    // Therefore setting a larger cache size.
    cacheSize: 100,
});
export 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);
    },
});
//# sourceMappingURL=Label.base.js.map