import { GroupSummaryDisplayMode_$type } from "./GroupSummaryDisplayMode";
import { IgcDefinitionBaseComponent } from "./igc-definition-base-component";
import { SectionHeader } from "./SectionHeader";
import { getAllPropertyNames, toSpinal, brushToString, stringToBrush, ensureBool, ensureEnum, enumToString } from "igniteui-webcomponents-core";
import { RegisterElementHelper } from "igniteui-webcomponents-core";
/**
 * Used to configure the appearance of the section header cells.
*/
export let IgcSectionHeaderComponent = /*@__PURE__*/ (() => {
    class IgcSectionHeaderComponent extends IgcDefinitionBaseComponent {
        constructor() {
            super();
        }
        createImplementation() {
            return new SectionHeader();
        }
        /**
                                     * @hidden
                                     */
        get i() {
            return this._implementation;
        }
        connectedCallback() {
            if (super["connectedCallback"]) {
                super["connectedCallback"]();
            }
            if (!this._attached) {
                this._attached = true;
                this._flushQueuedAttributes();
            }
        }
        static get observedAttributes() {
            if (IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent == null) {
                let names = getAllPropertyNames(IgcSectionHeaderComponent);
                for (let i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent = names;
            }
            return IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent;
        }
        static register() {
            if (!IgcSectionHeaderComponent._isElementRegistered) {
                IgcSectionHeaderComponent._isElementRegistered = true;
                RegisterElementHelper.registerElement(IgcSectionHeaderComponent.htmlTagName, IgcSectionHeaderComponent);
            }
        }
        get selectedBackground() {
            return brushToString(this.i.fe);
        }
        set selectedBackground(v) {
            this.i.fe = stringToBrush(v);
            this._a("selectedBackground", brushToString(this.i.fe));
        }
        get actualSelectedBackground() {
            return brushToString(this.i.fd);
        }
        set actualSelectedBackground(v) {
            this.i.fd = stringToBrush(v);
            this._a("actualSelectedBackground", brushToString(this.i.fd));
        }
        /**
         * Gets or sets the amount of left padding to use for the cell content for this column.
        */
        get paddingLeft() {
            return this.i.ex;
        }
        set paddingLeft(v) {
            this.i.ex = +v;
            this._a("paddingLeft", this.i.ex);
        }
        /**
         * Gets or sets the amount of top padding to use for the cell content for this column.
        */
        get paddingTop() {
            return this.i.ez;
        }
        set paddingTop(v) {
            this.i.ez = +v;
            this._a("paddingTop", this.i.ez);
        }
        /**
         * Gets or sets the amount of right padding to use for the cell content of this column.
        */
        get paddingRight() {
            return this.i.ey;
        }
        set paddingRight(v) {
            this.i.ey = +v;
            this._a("paddingRight", this.i.ey);
        }
        /**
         * Gets or sets the amount of bottom padding to use for the cell content of this column.
        */
        get paddingBottom() {
            return this.i.ew;
        }
        set paddingBottom(v) {
            this.i.ew = +v;
            this._a("paddingBottom", this.i.ew);
        }
        get isCollapsable() {
            return this.i.eq;
        }
        set isCollapsable(v) {
            this.i.eq = ensureBool(v);
            this._a("isCollapsable", this.i.eq);
        }
        get summaryDisplayMode() {
            return this.i.en;
        }
        set summaryDisplayMode(v) {
            this.i.en = ensureEnum(GroupSummaryDisplayMode_$type, v);
            this._a("summaryDisplayMode", enumToString(GroupSummaryDisplayMode_$type, this.i.en));
        }
    }
    IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent = null;
    IgcSectionHeaderComponent.htmlTagName = "igc-section-header";
    IgcSectionHeaderComponent._isElementRegistered = false;
    return IgcSectionHeaderComponent;
})();
//# sourceMappingURL=igc-section-header-component.js.map
