import * as tslib_1 from "tslib";
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.
*/
var IgcSectionHeaderComponent = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(IgcSectionHeaderComponent, _super);
    function IgcSectionHeaderComponent() {
        return _super.call(this) || this;
    }
    IgcSectionHeaderComponent.prototype.createImplementation = function () {
        return new SectionHeader();
    };
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: true,
        configurable: true
    });
    IgcSectionHeaderComponent.prototype.connectedCallback = function () {
        if (_super.prototype["connectedCallback"]) {
            _super.prototype["connectedCallback"].call(this);
        }
        if (!this._attached) {
            this._attached = true;
            this._flushQueuedAttributes();
        }
    };
    Object.defineProperty(IgcSectionHeaderComponent, "observedAttributes", {
        get: function () {
            if (IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent == null) {
                var names = getAllPropertyNames(IgcSectionHeaderComponent);
                for (var i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent = names;
            }
            return IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent;
        },
        enumerable: true,
        configurable: true
    });
    IgcSectionHeaderComponent.register = function () {
        if (!IgcSectionHeaderComponent._isElementRegistered) {
            IgcSectionHeaderComponent._isElementRegistered = true;
            RegisterElementHelper.registerElement(IgcSectionHeaderComponent.htmlTagName, IgcSectionHeaderComponent);
        }
    };
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "selectedBackground", {
        get: function () {
            return brushToString(this.i.fe);
        },
        set: function (v) {
            this.i.fe = stringToBrush(v);
            this._a("selectedBackground", brushToString(this.i.fe));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "actualSelectedBackground", {
        get: function () {
            return brushToString(this.i.fd);
        },
        set: function (v) {
            this.i.fd = stringToBrush(v);
            this._a("actualSelectedBackground", brushToString(this.i.fd));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "paddingLeft", {
        /**
         * Gets or sets the amount of left padding to use for the cell content for this column.
        */
        get: function () {
            return this.i.ex;
        },
        set: function (v) {
            this.i.ex = +v;
            this._a("paddingLeft", this.i.ex);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "paddingTop", {
        /**
         * Gets or sets the amount of top padding to use for the cell content for this column.
        */
        get: function () {
            return this.i.ez;
        },
        set: function (v) {
            this.i.ez = +v;
            this._a("paddingTop", this.i.ez);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "paddingRight", {
        /**
         * Gets or sets the amount of right padding to use for the cell content of this column.
        */
        get: function () {
            return this.i.ey;
        },
        set: function (v) {
            this.i.ey = +v;
            this._a("paddingRight", this.i.ey);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "paddingBottom", {
        /**
         * Gets or sets the amount of bottom padding to use for the cell content of this column.
        */
        get: function () {
            return this.i.ew;
        },
        set: function (v) {
            this.i.ew = +v;
            this._a("paddingBottom", this.i.ew);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "isCollapsable", {
        get: function () {
            return this.i.eq;
        },
        set: function (v) {
            this.i.eq = ensureBool(v);
            this._a("isCollapsable", this.i.eq);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgcSectionHeaderComponent.prototype, "summaryDisplayMode", {
        get: function () {
            return this.i.en;
        },
        set: function (v) {
            this.i.en = ensureEnum(GroupSummaryDisplayMode_$type, v);
            this._a("summaryDisplayMode", enumToString(GroupSummaryDisplayMode_$type, this.i.en));
        },
        enumerable: true,
        configurable: true
    });
    IgcSectionHeaderComponent._observedAttributesIgcSectionHeaderComponent = null;
    IgcSectionHeaderComponent.htmlTagName = "igc-section-header";
    IgcSectionHeaderComponent._isElementRegistered = false;
    return IgcSectionHeaderComponent;
}(IgcDefinitionBaseComponent));
export { IgcSectionHeaderComponent };
//# sourceMappingURL=igc-section-header-component.js.map
