import * as tslib_1 from "tslib";
import { SortIndicatorStyle_$type } from "./SortIndicatorStyle";
import { IgcDefinitionBaseComponent } from "./igc-definition-base-component";
import { getAllPropertyNames, toSpinal, brushToString, stringToBrush, ensureEnum, enumToString } from "igniteui-webcomponents-core";
/**
 * Represents a base class used to configure the appearance of the column header cells.
*/
var IgcHeaderComponent = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(IgcHeaderComponent, _super);
    function IgcHeaderComponent() {
        return _super.call(this) || this;
    }
    Object.defineProperty(IgcHeaderComponent.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    IgcHeaderComponent.prototype.connectedCallback = function () {
        if (_super.prototype["connectedCallback"]) {
            _super.prototype["connectedCallback"].call(this);
        }
        if (!this._attached) {
            this._attached = true;
            this._flushQueuedAttributes();
        }
    };
    Object.defineProperty(IgcHeaderComponent, "observedAttributes", {
        get: function () {
            if (IgcHeaderComponent._observedAttributesIgcHeaderComponent == null) {
                var names = getAllPropertyNames(IgcHeaderComponent);
                for (var i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcHeaderComponent._observedAttributesIgcHeaderComponent = names;
            }
            return IgcHeaderComponent._observedAttributesIgcHeaderComponent;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "sortIndicatorColor", {
        /**
         * Gets or sets the color to use for the sort indicator icon
        */
        get: function () {
            return brushToString(this.i.fb);
        },
        set: function (v) {
            this.i.fb = stringToBrush(v);
            this._a("sortIndicatorColor", brushToString(this.i.fb));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "actualSortIndicatorColor", {
        /**
         * Gets the actual background color that is used for the cells when they are selected
        */
        get: function () {
            return brushToString(this.i.e9);
        },
        set: function (v) {
            this.i.e9 = stringToBrush(v);
            this._a("actualSortIndicatorColor", brushToString(this.i.e9));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "sortIndicatorStyle", {
        get: function () {
            return this.i.eo;
        },
        set: function (v) {
            this.i.eo = ensureEnum(SortIndicatorStyle_$type, v);
            this._a("sortIndicatorStyle", enumToString(SortIndicatorStyle_$type, this.i.eo));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "actualSortIndicatorStyle", {
        get: function () {
            return this.i.en;
        },
        set: function (v) {
            this.i.en = ensureEnum(SortIndicatorStyle_$type, v);
            this._a("actualSortIndicatorStyle", enumToString(SortIndicatorStyle_$type, this.i.en));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "paddingLeft", {
        /**
         * Gets or sets the amount of left padding to use for the cell content.
        */
        get: function () {
            return this.i.eu;
        },
        set: function (v) {
            this.i.eu = +v;
            this._a("paddingLeft", this.i.eu);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "paddingTop", {
        /**
         * Gets or sets the amount of top padding to use for the cell content.
        */
        get: function () {
            return this.i.ew;
        },
        set: function (v) {
            this.i.ew = +v;
            this._a("paddingTop", this.i.ew);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "paddingRight", {
        /**
         * Gets or sets the amount of right padding to use for the cell content.
        */
        get: function () {
            return this.i.ev;
        },
        set: function (v) {
            this.i.ev = +v;
            this._a("paddingRight", this.i.ev);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcHeaderComponent.prototype, "paddingBottom", {
        /**
         * Gets or sets the amount of bottom padding to use for the cell content.
        */
        get: function () {
            return this.i.et;
        },
        set: function (v) {
            this.i.et = +v;
            this._a("paddingBottom", this.i.et);
        },
        enumerable: true,
        configurable: true
    });
    IgcHeaderComponent._observedAttributesIgcHeaderComponent = null;
    return IgcHeaderComponent;
}(IgcDefinitionBaseComponent));
export { IgcHeaderComponent };
//# sourceMappingURL=igc-header-component.js.map
