import { IgcColumnComponent } from "./igc-column-component";
import { ComboBoxColumn } from "./ComboBoxColumn";
import { getAllPropertyNames, toSpinal } from "igniteui-webcomponents-core";
import { RegisterElementHelper } from "igniteui-webcomponents-core";
/**
 * A combobox column.
*/
export let IgcComboBoxColumnComponent = /*@__PURE__*/ (() => {
    class IgcComboBoxColumnComponent extends IgcColumnComponent {
        constructor() {
            super();
        }
        createImplementation() {
            return new ComboBoxColumn();
        }
        /**
                                     * @hidden
                                     */
        get i() {
            return this._implementation;
        }
        connectedCallback() {
            if (super["connectedCallback"]) {
                super["connectedCallback"]();
            }
            if (!this._attached) {
                this._attached = true;
                this._flushQueuedAttributes();
            }
        }
        static get observedAttributes() {
            if (IgcComboBoxColumnComponent._observedAttributesIgcComboBoxColumnComponent == null) {
                let names = getAllPropertyNames(IgcComboBoxColumnComponent);
                for (let i = 0; i < names.length; i++) {
                    names[i] = toSpinal(names[i]);
                }
                IgcComboBoxColumnComponent._observedAttributesIgcComboBoxColumnComponent = names;
            }
            return IgcComboBoxColumnComponent._observedAttributesIgcComboBoxColumnComponent;
        }
        static register() {
            if (!IgcComboBoxColumnComponent._isElementRegistered) {
                IgcComboBoxColumnComponent._isElementRegistered = true;
                RegisterElementHelper.registerElement(IgcComboBoxColumnComponent.htmlTagName, IgcComboBoxColumnComponent);
            }
        }
        /**
         * Gets the actual data source that is being used by the combo. If a collection was provided for the combobox data, an implicit LocalDataSource is created, and this is available via this property.
        */
        get actualDataSource() {
            return this.i.j4;
        }
        set actualDataSource(v) {
            this.i.j4 = v;
        }
        /**
         * Gets or sets the ComboBox data source.
        */
        get dataSource() {
            return this.i.j5;
        }
        set dataSource(v) {
            this.i.j5 = v;
        }
        /**
         * Gets or sets the ComboBox text field.
        */
        get textField() {
            return this.i.j9;
        }
        set textField(v) {
            this.i.j9 = v;
        }
        /**
         * Gets or sets the ComboBox value field.
        */
        get valueField() {
            return this.i.j2;
        }
        set valueField(v) {
            this.i.j2 = v;
        }
    }
    IgcComboBoxColumnComponent._observedAttributesIgcComboBoxColumnComponent = null;
    IgcComboBoxColumnComponent.htmlTagName = "igc-combo-box-column";
    IgcComboBoxColumnComponent._isElementRegistered = false;
    return IgcComboBoxColumnComponent;
})();
//# sourceMappingURL=igc-combo-box-column-component.js.map
