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.
*/
export let IgcHeaderComponent = /*@__PURE__*/ (() => {
    class IgcHeaderComponent extends IgcDefinitionBaseComponent {
        constructor() {
            super();
        }
        /**
                                     * @hidden
                                     */
        get i() {
            return this._implementation;
        }
        connectedCallback() {
            if (super["connectedCallback"]) {
                super["connectedCallback"]();
            }
            if (!this._attached) {
                this._attached = true;
                this._flushQueuedAttributes();
            }
        }
        static get observedAttributes() {
            if (IgcHeaderComponent._observedAttributesIgcHeaderComponent == null) {
                let names = getAllPropertyNames(IgcHeaderComponent);
                for (let i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcHeaderComponent._observedAttributesIgcHeaderComponent = names;
            }
            return IgcHeaderComponent._observedAttributesIgcHeaderComponent;
        }
        /**
         * Gets or sets the color to use for the sort indicator icon
        */
        get sortIndicatorColor() {
            return brushToString(this.i.fb);
        }
        set sortIndicatorColor(v) {
            this.i.fb = stringToBrush(v);
            this._a("sortIndicatorColor", brushToString(this.i.fb));
        }
        /**
         * Gets the actual background color that is used for the cells when they are selected
        */
        get actualSortIndicatorColor() {
            return brushToString(this.i.e9);
        }
        set actualSortIndicatorColor(v) {
            this.i.e9 = stringToBrush(v);
            this._a("actualSortIndicatorColor", brushToString(this.i.e9));
        }
        get sortIndicatorStyle() {
            return this.i.eo;
        }
        set sortIndicatorStyle(v) {
            this.i.eo = ensureEnum(SortIndicatorStyle_$type, v);
            this._a("sortIndicatorStyle", enumToString(SortIndicatorStyle_$type, this.i.eo));
        }
        get actualSortIndicatorStyle() {
            return this.i.en;
        }
        set actualSortIndicatorStyle(v) {
            this.i.en = ensureEnum(SortIndicatorStyle_$type, v);
            this._a("actualSortIndicatorStyle", enumToString(SortIndicatorStyle_$type, this.i.en));
        }
        /**
         * Gets or sets the amount of left padding to use for the cell content.
        */
        get paddingLeft() {
            return this.i.eu;
        }
        set paddingLeft(v) {
            this.i.eu = +v;
            this._a("paddingLeft", this.i.eu);
        }
        /**
         * Gets or sets the amount of top padding to use for the cell content.
        */
        get paddingTop() {
            return this.i.ew;
        }
        set paddingTop(v) {
            this.i.ew = +v;
            this._a("paddingTop", this.i.ew);
        }
        /**
         * Gets or sets the amount of right padding to use for the cell content.
        */
        get paddingRight() {
            return this.i.ev;
        }
        set paddingRight(v) {
            this.i.ev = +v;
            this._a("paddingRight", this.i.ev);
        }
        /**
         * Gets or sets the amount of bottom padding to use for the cell content.
        */
        get paddingBottom() {
            return this.i.et;
        }
        set paddingBottom(v) {
            this.i.et = +v;
            this._a("paddingBottom", this.i.et);
        }
    }
    IgcHeaderComponent._observedAttributesIgcHeaderComponent = null;
    return IgcHeaderComponent;
})();
//# sourceMappingURL=igc-header-component.js.map
