"use strict";

Object.defineProperty(exports, "__esModule", {
    value: !0
}), exports.ButtonStyle = void 0;

const Style_1 = require("./Style");

let defaultStyle;

class ButtonStyle extends Style_1.Style {
    static get DEFAULT() {
        return defaultStyle || (defaultStyle = new ButtonStyle);
    }
    constructor(style = {}, headerStyle = {}, buttonThemeStyle = {}) {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
        super(style, headerStyle), this._buttonColor = (null !== (_b = null === (_a = null == style ? void 0 : style.buttonStyle) || void 0 === _a ? void 0 : _a.buttonColor) && void 0 !== _b ? _b : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonColor) || "#165DFF", 
        this._buttonBorderColor = (null !== (_d = null === (_c = null == style ? void 0 : style.buttonStyle) || void 0 === _c ? void 0 : _c.buttonBorderColor) && void 0 !== _d ? _d : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonBorderColor) || "#165DFF", 
        this._buttonLineWidth = (null !== (_f = null === (_e = null == style ? void 0 : style.buttonStyle) || void 0 === _e ? void 0 : _e.buttonLineWidth) && void 0 !== _f ? _f : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonLineWidth) || 1, 
        this._buttonBorderRadius = (null !== (_h = null === (_g = null == style ? void 0 : style.buttonStyle) || void 0 === _g ? void 0 : _g.buttonBorderRadius) && void 0 !== _h ? _h : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonBorderRadius) || 2, 
        this._buttonHoverColor = (null !== (_k = null === (_j = null == style ? void 0 : style.buttonStyle) || void 0 === _j ? void 0 : _j.buttonHoverColor) && void 0 !== _k ? _k : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonHoverColor) || "#4080FF", 
        this._buttonHoverBorderColor = (null !== (_m = null === (_l = null == style ? void 0 : style.buttonStyle) || void 0 === _l ? void 0 : _l.buttonHoverBorderColor) && void 0 !== _m ? _m : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonHoverBorderColor) || "#4080FF", 
        this._buttonTextHoverColor = null !== (_p = null === (_o = null == style ? void 0 : style.buttonStyle) || void 0 === _o ? void 0 : _o.buttonTextHoverColor) && void 0 !== _p ? _p : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonTextHoverColor, 
        this._buttonDisableColor = (null !== (_r = null === (_q = null == style ? void 0 : style.buttonStyle) || void 0 === _q ? void 0 : _q.buttonDisableColor) && void 0 !== _r ? _r : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonDisableColor) || "#94bfff", 
        this._buttonDisableBorderColor = (null !== (_t = null === (_s = null == style ? void 0 : style.buttonStyle) || void 0 === _s ? void 0 : _s.buttonDisableBorderColor) && void 0 !== _t ? _t : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonDisableBorderColor) || "#94bfff", 
        this._buttonTextDisableColor = null !== (_v = null === (_u = null == style ? void 0 : style.buttonStyle) || void 0 === _u ? void 0 : _u.buttonTextDisableColor) && void 0 !== _v ? _v : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonTextDisableColor, 
        this._buttonPadding = (null !== (_x = null === (_w = null == style ? void 0 : style.buttonStyle) || void 0 === _w ? void 0 : _w.buttonPadding) && void 0 !== _x ? _x : null == buttonThemeStyle ? void 0 : buttonThemeStyle.buttonPadding) || 10;
    }
    get buttonColor() {
        return this._buttonColor;
    }
    set buttonColor(buttonColor) {
        this._buttonColor = buttonColor;
    }
    get buttonBorderColor() {
        return this._buttonBorderColor;
    }
    set buttonBorderColor(buttonBorderColor) {
        this._buttonBorderColor = buttonBorderColor;
    }
    get buttonLineWidth() {
        return this._buttonLineWidth;
    }
    set buttonLineWidth(buttonLineWidth) {
        this._buttonLineWidth = buttonLineWidth;
    }
    get buttonBorderRadius() {
        return this._buttonBorderRadius;
    }
    set buttonBorderRadius(buttonBorderRadius) {
        this._buttonBorderRadius = buttonBorderRadius;
    }
    get buttonHoverColor() {
        return this._buttonHoverColor;
    }
    set buttonHoverColor(buttonHoverColor) {
        this._buttonHoverColor = buttonHoverColor;
    }
    get buttonHoverBorderColor() {
        return this._buttonHoverBorderColor;
    }
    set buttonHoverBorderColor(buttonHoverBorderColor) {
        this._buttonHoverBorderColor = buttonHoverBorderColor;
    }
    get buttonTextHoverColor() {
        return this._buttonTextHoverColor;
    }
    set buttonTextHoverColor(buttonTextHoverColor) {
        this._buttonTextHoverColor = buttonTextHoverColor;
    }
    get buttonDisableColor() {
        return this._buttonDisableColor;
    }
    set buttonDisableColor(buttonDisableColor) {
        this._buttonDisableColor = buttonDisableColor;
    }
    get buttonDisableBorderColor() {
        return this._buttonDisableBorderColor;
    }
    set buttonDisableBorderColor(buttonDisableBorderColor) {
        this._buttonDisableBorderColor = buttonDisableBorderColor;
    }
    get buttonTextDisableColor() {
        return this._buttonTextDisableColor;
    }
    set buttonTextDisableColor(buttonTextDisableColor) {
        this._buttonTextDisableColor = buttonTextDisableColor;
    }
    get buttonTextHoverBorderColor() {
        return this._buttonTextHoverBorderColor;
    }
    set buttonTextHoverBorderColor(buttonTextHoverBorderColor) {
        this._buttonTextHoverBorderColor = buttonTextHoverBorderColor;
    }
    get buttonPadding() {
        return this._buttonPadding;
    }
    set buttonPadding(buttonPadding) {
        this._buttonPadding = buttonPadding;
    }
    getStyle(style) {
        return new ButtonStyle(style, this);
    }
    clone() {
        return new ButtonStyle(this);
    }
}

exports.ButtonStyle = ButtonStyle;
//# sourceMappingURL=ButtonStyle.js.map
