import { ImageStretchOptions_$type } from "./ImageStretchOptions";
import { EditorType_$type } from "./EditorType";
import { IgcColumnComponent } from "./igc-column-component";
import { ImageColumn } from "./ImageColumn";
import { getAllPropertyNames, toSpinal, ensureEnum, enumToString } from "igniteui-webcomponents-core";
import { RegisterElementHelper } from "igniteui-webcomponents-core";
/**
 * Represents an Image grid column, used to allow the developer to display an image in a cell.
*/
export let IgcImageColumnComponent = /*@__PURE__*/ (() => {
    class IgcImageColumnComponent extends IgcColumnComponent {
        constructor() {
            super();
        }
        createImplementation() {
            return new ImageColumn();
        }
        /**
                                     * @hidden
                                     */
        get i() {
            return this._implementation;
        }
        connectedCallback() {
            if (super["connectedCallback"]) {
                super["connectedCallback"]();
            }
            if (!this._attached) {
                this._attached = true;
                this._flushQueuedAttributes();
            }
        }
        static get observedAttributes() {
            if (IgcImageColumnComponent._observedAttributesIgcImageColumnComponent == null) {
                let names = getAllPropertyNames(IgcImageColumnComponent);
                for (let i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcImageColumnComponent._observedAttributesIgcImageColumnComponent = names;
            }
            return IgcImageColumnComponent._observedAttributesIgcImageColumnComponent;
        }
        static register() {
            if (!IgcImageColumnComponent._isElementRegistered) {
                IgcImageColumnComponent._isElementRegistered = true;
                RegisterElementHelper.registerElement(IgcImageColumnComponent.htmlTagName, IgcImageColumnComponent);
            }
        }
        /**
         * Gets or sets the stretch option to use when rendering images
        */
        get imageStretchOption() {
            return this.i.j7;
        }
        set imageStretchOption(v) {
            this.i.j7 = ensureEnum(ImageStretchOptions_$type, v);
            this._a("imageStretchOption", enumToString(ImageStretchOptions_$type, this.i.j7));
        }
        /**
         * Gets or sets the editor type used for editing cells in this column.
        */
        get editorType() {
            return this.i.j3;
        }
        set editorType(v) {
            this.i.j3 = ensureEnum(EditorType_$type, v);
            this._a("editorType", enumToString(EditorType_$type, this.i.j3));
        }
        /**
         * Gets or sets the ComboBox data source.
        */
        get editorDataSource() {
            return this.i.j8;
        }
        set editorDataSource(v) {
            this.i.j8 = v;
        }
        /**
         * Gets or sets the ComboBox text field.
        */
        get editorTextField() {
            return this.i.j9;
        }
        set editorTextField(v) {
            this.i.j9 = v;
        }
        /**
         * Gets or sets the ComboBox value field.
        */
        get editorValueField() {
            return this.i.j2;
        }
        set editorValueField(v) {
            this.i.j2 = v;
        }
    }
    IgcImageColumnComponent._observedAttributesIgcImageColumnComponent = null;
    IgcImageColumnComponent.htmlTagName = "igc-image-column";
    IgcImageColumnComponent._isElementRegistered = false;
    return IgcImageColumnComponent;
})();
//# sourceMappingURL=igc-image-column-component.js.map
