import { __decorate, __extends } from "tslib";
import Vue from 'vue';
import Component from 'vue-class-component';
import { Emit, Prop } from 'vue-property-decorator';
import { PANEL_NAME } from '../component-names';
import WithRender from './panel.html?style=./panel.scss';
export var MPanelSkin;
(function (MPanelSkin) {
    MPanelSkin["Light"] = "light";
    MPanelSkin["Dark"] = "dark";
    MPanelSkin["Darker"] = "darker";
})(MPanelSkin || (MPanelSkin = {}));
var MPanel = /** @class */ (function (_super) {
    __extends(MPanel, _super);
    function MPanel() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    MPanel.prototype.onClick = function () { };
    Object.defineProperty(MPanel.prototype, "lightSkin", {
        get: function () {
            return this.skin === MPanelSkin.Light;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(MPanel.prototype, "darkSkin", {
        get: function () {
            return this.skin === MPanelSkin.Dark;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(MPanel.prototype, "darkerSkin", {
        get: function () {
            return this.skin === MPanelSkin.Darker;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(MPanel.prototype, "hasPaddingHeader", {
        get: function () {
            return this.paddingHeader && this.padding;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(MPanel.prototype, "hasPaddingBody", {
        get: function () {
            return this.paddingBody && this.padding;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(MPanel.prototype, "hasPaddingFooter", {
        get: function () {
            return this.paddingFooter && this.padding;
        },
        enumerable: false,
        configurable: true
    });
    __decorate([
        Prop({
            default: MPanelSkin.Light,
            validator: function (value) {
                return value === MPanelSkin.Light ||
                    value === MPanelSkin.Dark ||
                    value === MPanelSkin.Darker;
            }
        })
    ], MPanel.prototype, "skin", void 0);
    __decorate([
        Prop()
    ], MPanel.prototype, "highlighted", void 0);
    __decorate([
        Prop()
    ], MPanel.prototype, "shadow", void 0);
    __decorate([
        Prop({ default: true })
    ], MPanel.prototype, "border", void 0);
    __decorate([
        Prop()
    ], MPanel.prototype, "borderLarge", void 0);
    __decorate([
        Prop({ default: true })
    ], MPanel.prototype, "padding", void 0);
    __decorate([
        Prop()
    ], MPanel.prototype, "paddingLarge", void 0);
    __decorate([
        Prop({ default: true })
    ], MPanel.prototype, "paddingHeader", void 0);
    __decorate([
        Prop({ default: true })
    ], MPanel.prototype, "paddingBody", void 0);
    __decorate([
        Prop({ default: true })
    ], MPanel.prototype, "paddingFooter", void 0);
    __decorate([
        Emit('click')
    ], MPanel.prototype, "onClick", null);
    MPanel = __decorate([
        WithRender,
        Component
    ], MPanel);
    return MPanel;
}(Vue));
export { MPanel };
var PanelPlugin = {
    install: function (v, options) {
        v.component(PANEL_NAME, MPanel);
    }
};
export default PanelPlugin;
//# sourceMappingURL=panel.js.map