UNPKG

igniteui-react-grids

Version:

Ignite UI React grid components.

2,785 lines • 89.4 kB
/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { Base, Delegate_$type, runOn, delegateCombine, fromEnum, typeCast, Array_$type, delegateRemove, markType, INotifyPropertyChanged_$type, PropertyChangedEventArgs, enumGetBox, String_$type } from "igniteui-react-core";
import { Popup } from "igniteui-react-core";
import { XSuffix } from "igniteui-react-inputs";
import { XInputGroup } from "igniteui-react-inputs";
import { XLabel } from "igniteui-react-inputs";
import { XInput } from "igniteui-react-inputs";
import { List$1 } from "igniteui-react-core";
import { XIcon } from "igniteui-react-inputs";
import { BrushUtil } from "igniteui-react-core";
import { GridCellPosition } from "./GridCellPosition";
import { Rect } from "igniteui-react-core";
import { GotFocusEventArgs } from "./GotFocusEventArgs";
import { LostFocusEventArgs } from "./LostFocusEventArgs";
import { FilterFactory } from "igniteui-react-core";
import { ColumnComparisonFilterCondition } from "./ColumnComparisonFilterCondition";
import { NativeUI } from "igniteui-react-core";
import { FontInfo } from "igniteui-react-core";
import { MultiColumnComboBoxUtilities } from "./MultiColumnComboBoxUtilities";
import { ColumnWidth } from "./ColumnWidth";
import { SortMode_$type } from "./SortMode";
import { IDataSourceUpdateNotifier_$type } from "igniteui-react-core";
import { MultipleDataSourceNotifier } from "./MultipleDataSourceNotifier";
import { TextHeaderCellModel } from "./TextHeaderCellModel";
import { CornerRadius } from "igniteui-react-core";
import { stringEmpty, stringIsNullOrEmpty, stringIsNullOrWhiteSpace } from "igniteui-react-core";
import { stringFormat } from "igniteui-react-core";
import { SRProvider } from "igniteui-react-core";
import { DeviceUtils } from "igniteui-react-core";
import { BaseControlTheme_$type } from "igniteui-react-core";
import { Thickness } from "igniteui-react-core";
import { ControlDisplayDensity_$type } from "igniteui-react-core";
import { StringComparer } from "igniteui-react-core";
import { InputGroupDisplayType_$type } from "igniteui-react-inputs";
import { ThemeResolver } from "igniteui-react-inputs";
import { MultiColumnComboBoxTextChangedEventArgs } from "./MultiColumnComboBoxTextChangedEventArgs";
import { MultiColumnComboBoxValueChangedEventArgs } from "./MultiColumnComboBoxValueChangedEventArgs";
import { FastReflectionHelper } from "igniteui-react-core";
import { MultiColumnComboVisualModelExport } from "./MultiColumnComboVisualModelExport";
import { AppearanceHelper } from "igniteui-react-core";
import { FontUtil } from "igniteui-react-core";
import { isNaN_ } from "igniteui-react-core";
/**
 * @hidden
 */
export let MultiColumnComboBoxView = /*@__PURE__*/ (() => {
    class MultiColumnComboBoxView extends Base {
        constructor() {
            super(...arguments);
            this.ac = null;
            this.ak = null;
            this.f = null;
            this.ai = null;
            this.k = null;
            this.ah = null;
            this.j = null;
            this.aj = null;
            this.l = null;
            this.h = null;
            this.ae = null;
            this.i = null;
            this.af = null;
            this.m = null;
            this.ag = null;
            this.d = null;
            this.aq = null;
            this.ab = new List$1(Delegate_$type, 0);
            this.au = null;
            this.aa = true;
            this.ap = 0;
            this.x = false;
            this.a = null;
            this.c = 0;
            this.w = false;
            this.s = false;
            this.r = false;
            this.p = false;
            this.an = null;
            this.am = null;
            this.v = false;
            this.ao = -1;
            this.z = false;
            this.t = false;
        }
        get e() {
            return this.d;
        }
        get y() {
            return this.ap == 46;
        }
        get n() {
            return this.m;
        }
        bg(a) {
            this.ak = a;
            this.b2();
        }
        bh(a) {
            this.f = a;
        }
        bq() {
        }
        b2() {
            this.ag = this.ac.createElement("div");
            this.cx();
            this.a1();
            this.a0();
            this.ak.append(this.ai);
            this.cm();
            this.co();
            document.addEventListener("click", runOn(this, this.a2), false);
            window.addEventListener("resize", runOn(this, this.c3), false);
        }
        aw(a) {
            let b = this.g.p();
            if (null == b) {
                return;
            }
            this.p = false;
            if (b.g1 != a) {
                b.g1 = a;
                this.p = true;
            }
            else {
                this.a3();
            }
        }
        ay() {
            let a = this.e;
            a.activeCell = null;
        }
        az() {
            let a = this.n;
            if (null != a) {
                a.b6();
            }
            this.co();
            let b = this.g.p();
            if (null != b) {
                let c = b.g1;
                if (null != c) {
                    b.g1 = null;
                }
            }
        }
        u(a) {
            if (null == a) {
                return false;
            }
            let b = this.ai.getNativeElement();
            let c = this.ag.getNativeElement();
            let d = this.am.getNativeElement();
            return b.contains(a) || c.contains(a) || d.contains(a);
        }
        a0() {
            let a = this.ad;
            let b = this.g;
            this.ai = a.createElement("div");
            this.ai.setStyleProperty("display", "flex");
            this.ai.setStyleProperty("height", "100%");
            this.ai.setAttribute("tabIndex", "0");
            this.ai.setAttribute("outline", "none !important");
            this.ai.listen("focusin", runOn(this, this.bn));
            this.ai.listen("focusout", runOn(this, this.bo));
            let c = a.getSubRenderer(this.ai);
            this.k = new XInputGroup();
            this.k.provideContainer(c);
            let d = c.getExternal(this.k, c.rootWrapper, c.getExternal(this.g, null, null));
            this.k.d = this.g.ac;
            this.aj = a.createElement("div");
            let e = a.getSubRenderer(this.aj);
            this.l = new XLabel();
            this.l.provideContainer(e);
            let f = e.getExternal(this.l, e.rootWrapper, e.getExternal(this.g, null, null));
            if (this.f.actualLabelVisible) {
                this.c0();
            }
            this.ah = a.createElement("div");
            this.ah.addClass("ig-input");
            this.ah.setRawStyleProperty("flex-grow", "1");
            let g = a.getSubRenderer(this.ah);
            this.j = new XInput();
            this.j.provideContainer(g);
            a.getExternal(this.j, a.rootWrapper, a.getExternal(b, null, null));
            this.j.b8 = "text";
            this.j.cq = b.text;
            let h = this.j;
            h.changing = delegateCombine(h.changing, runOn(this, this.bi));
            let i = this.j;
            i.compositionEnd = delegateCombine(i.compositionEnd, runOn(this, this.bj));
            let j = this.j;
            j.keyDown = delegateCombine(j.keyDown, runOn(this, this.bl));
            let k = this.j;
            k.gotFocus = delegateCombine(k.gotFocus, runOn(this, this.bk));
            let l = this.j;
            l.mouseDown = delegateCombine(l.mouseDown, runOn(this, this.bm));
            this.k.appendContentChild(this.ah);
            this.k.inputs.add(this.j);
            this.a5(this.g.bg);
            let m = a.createElement("div");
            let n = a.getSubRenderer(m);
            let o = new XSuffix();
            o.provideContainer(n);
            let p = n.getExternal(o, n.rootWrapper, n.getExternal(this.g, null, null));
            this.ae = a.createElement("div");
            this.h = new XIcon();
            let q = a.getSubRenderer(this.ae);
            this.h.provideContainer(q);
            let r = q.getExternal(this.h, q.rootWrapper, q.getExternal(this.g, null, null));
            this.h.svgPath = MultiColumnComboBoxView.ar;
            this.ae.setStyleProperty("height", "16px");
            this.ae.setStyleProperty("width", "16px");
            o.appendContentChild(this.ae);
            this.k.appendContentChild(m);
            this.k.inputs.add(o);
            this.cj();
            let s = a.createElement("div");
            let t = a.getSubRenderer(s);
            let u = new XSuffix();
            u.provideContainer(t);
            let v = t.getExternal(u, t.rootWrapper, t.getExternal(this.g, null, null));
            this.af = a.createElement("div");
            this.i = new XIcon();
            let w = a.getSubRenderer(this.af);
            this.i.provideContainer(w);
            let x = w.getExternal(this.i, w.rootWrapper, w.getExternal(this.g, null, null));
            this.i.svgPath = MultiColumnComboBoxView.at;
            u.appendContentChild(this.af);
            this.k.appendContentChild(s);
            this.k.inputs.add(u);
            this.ae.listen("click", runOn(this, this.ax));
            this.af.listen("click", runOn(this, this.a4));
            this.cq();
        }
        a1() {
            let a = this.ac.createElement("div");
            let b = this.ac.getSubRenderer(a);
            this.m = new Popup();
            this.m.ar = this.f.bn;
            this.m.ay = this.f.br;
            this.m.c0 = BrushUtil.h(255, 255, 255, 255);
            this.m.a9 = 150;
            this.m.provideRenderer(b);
            let c = b.getExternal(this.m, b.rootWrapper, b.getExternal(this.g, null, null));
            this.am = this.ac.createElement("div");
            this.am.setStyleProperty("padding", "4px");
            this.am.setStyleProperty("white-space", "nowrap");
            this.an = this.ac.createElement("div");
            this.an.append(this.am);
            this.an.append(this.ag);
            this.m.appendPopupContent(this.an);
        }
        bu(a, b) {
        }
        bx(a, b, c) {
        }
        bt() {
            switch (this.c) {
                case 2:
                case 1:
                    if (null == this.a) {
                        this.c = 0;
                    }
                    break;
            }
            let a = null;
            switch (this.c) {
                case 2:
                    {
                        let b = this.a.actualCount;
                        if (b == 0) {
                            this.g.value = null;
                        }
                        else {
                            if (b > 1) {
                            }
                            a = this.a.getItemAtIndex(0);
                            let c = this.g.i();
                            let d = new List$1(Base.$, 0);
                            for (let f = 0; f < c.length; f++) {
                                let e = c[f];
                                let g = this.a.getItemProperty(a, e);
                                d.add1(g);
                            }
                            this.g.value = d.count == 1 ? d._inner[0] : d.toArray();
                        }
                    }
                    break;
                case 1:
                    {
                        let h = this.a.actualCount;
                        if (h == 0) {
                            this.g.text = stringEmpty();
                        }
                        else {
                            if (h > 1) {
                            }
                            let i = this.g.e5();
                            a = this.a.getItemAtIndex(0);
                            let j = this.a.getItemProperty(a, i).toString();
                            this.g.text = j;
                        }
                        let k = this.b();
                        let l = k.indexOfItem(a);
                        this.ch(l);
                    }
                    break;
                case 0:
                default: return;
            }
            if (null != a) {
                let m = this.b();
                let n = m.indexOfItem(a);
                this.ch(n);
            }
            else {
                this.ch(-1);
            }
            if (this.a != null) {
                this.a.updateNotifier = null;
                this.a = null;
            }
            this.c = 0;
        }
        bv(a, b) {
        }
        bw(a, b) {
        }
        b0(a, b) {
            let c = this.e;
            if (null != c) {
                let d = c.activeCell;
                if (null != d) {
                    if (d.b >= a && d.b <= b) {
                        this.cf(d.b);
                        this.cy();
                    }
                }
            }
        }
        b5(a, b, c) {
        }
        bs() {
            this.b8();
            if (this.w) {
                let a = this.b();
                let b = a.actualCount;
                if (this.aa && b > 0) {
                    this.ca();
                }
                else {
                    this.cb();
                }
            }
            else {
                this.cw();
            }
        }
        b1(a, b) {
        }
        b3(a, b) {
        }
        o() {
            let a = document.activeElement;
            return this.u(a);
        }
        a3() {
            this.c1();
            this.bp();
            let a = this.n;
            if (a.ax) {
                return;
            }
            let b = this.c4();
            a.am = !this.w;
            if (this.f.bo) {
                a.cr(this.ac.rootWrapper.getNativeElement(), 1, 1);
            }
            else {
                a.showRelativeToExclusionRect(b, 1, 1);
            }
            this.co();
        }
        c4() {
            let a = this.ac.rootWrapper.getNativeElement();
            let b = (a.getBoundingClientRect());
            return new Rect(0, b.left + window.pageXOffset, b.top + window.pageYOffset, b.width, b.height);
        }
        b() {
            let a = this.e;
            if (null != a) {
                return a.actualDataSource;
            }
            return null;
        }
        q(a) {
            let b = this.d.selectedItems;
            let c = b.count;
            if (0 == c) {
                a = null;
                return {
                    ret: true,
                    p0: a
                };
            }
            else if (1 == c) {
                a = b._inner[0];
            }
            else {
                a = b._inner[0];
            }
            return {
                ret: null != a,
                p0: a
            };
        }
        a8(a) {
            let b = null != a ? a.b : -1;
            this.cf(b);
        }
        bc() {
            if (this.v) {
                return;
            }
            let a = this.g;
            let b;
            let c = ((() => { let d = this.q(b); b = d.p0; return d.ret; })());
            if (!c) {
                return;
            }
            if (b == null) {
                return;
            }
            a.gi(b);
        }
        bp() {
            this.n.b9();
        }
        br() {
            let a = this.n;
            if (a.ax) {
                this.az();
                let b = this.j;
                b.focus();
                let c = b.cq;
                let d = null != c ? b.cq.length : 0;
                b.dr(d, d);
            }
        }
        by() {
            this.k.an = true;
            this.j.dp();
            let a = new GotFocusEventArgs();
            this.g.ge(a);
        }
        bz() {
            this.az();
            this.k.j8();
            let a = new LostFocusEventArgs();
            this.g.gg(a);
        }
        b4(a) {
            if (a == null) {
                this.ac = null;
                for (let b of fromEnum(this.ab)) {
                    b();
                }
                this.ab.clear();
                return;
            }
            this.ac = a;
            let c = a.rootWrapper;
            this.bg(c);
        }
        b6(a, b) {
            let c = this.b();
            if (null == c) {
                return;
            }
            if (null != this.a) {
                if (a != this.c) {
                }
                this.a.updateNotifier = null;
                this.a = null;
            }
            this.c = a;
            let d = new FilterFactory();
            let e = null;
            let f = null;
            switch (a) {
                case 2:
                    {
                        let g = this.g.e5();
                        if (stringIsNullOrEmpty(g)) {
                            return;
                        }
                        e = b.toString();
                        let h = d.property(g);
                        f = h.isEqualTo(e);
                    }
                    break;
                case 1:
                    {
                        let i = this.g.i();
                        if (i == null || i.length < 1) {
                            return;
                        }
                        let j = typeCast(Array_$type, b) !== null ? b : [b];
                        if (i.length != j.length) {
                            return;
                        }
                        for (let k = 0; k < i.length; k++) {
                            let l = i[k];
                            e = j[k];
                            let m = d.property(l);
                            let n = m.isEqualTo(e);
                            if (null == f) {
                                f = n;
                            }
                            else {
                                f.and(n);
                            }
                        }
                    }
                    break;
                case 0:
                default: return;
            }
            this.a = c.clone();
            this.a.filterExpressions.clear();
            this.a.updateNotifier = new MultiColumnComboBoxDataSourceNotificationHandler(this, true);
            this.a.filterExpressions.add(f);
            if (!this.a.isVirtual) {
                this.a.flushAutoRefresh();
            }
        }
        b7() {
            this.cu();
            let a = this.f.text;
            let b = this.au.length;
            let c = !stringIsNullOrEmpty(a) ? a.length : 0;
            if (this.x && !stringIsNullOrEmpty(this.au) && b > 0) {
                b--;
            }
            this.j.dr(b, c);
        }
        b8() {
            if (this.p) {
                this.p = false;
                this.a3();
            }
        }
        b9(a) {
            this.au = a;
            this.aa = !this.y;
            this.cc();
            this.cj();
        }
        ca() {
            if (stringIsNullOrEmpty(this.au)) {
                this.ay();
            }
            else {
                this.ch(0);
            }
            this.b7();
            this.w = false;
        }
        cj() {
            if (this.ae != null && this.j != null) {
                if (this.g.bq == false) {
                    this.ae.setStyleProperty("display", "none");
                }
                else if ((this.g.value != null && this.g.value != "") || (this.j.cq != null && this.j.cq != "")) {
                    this.ae.show();
                }
                else {
                    this.ae.setStyleProperty("display", "none");
                }
            }
        }
        a5(a) {
            if (this.j != null) {
                this.j.disabled = !a;
            }
        }
        cb() {
            let a = this.d;
            a.selectedItemsChanged = delegateRemove(a.selectedItemsChanged, runOn(this, this.bd));
            this.v = true;
            try {
                this.g.gq(this.au);
            }
            finally {
                this.v = false;
                let b = this.d;
                b.selectedItemsChanged = delegateCombine(b.selectedItemsChanged, runOn(this, this.bd));
            }
            this.w = false;
        }
        cc() {
            let a = this.g.p();
            if (null == a) {
                return;
            }
            this.w = true;
            if (stringIsNullOrEmpty(this.au)) {
                if (null != a.g1) {
                    this.aw(null);
                }
                else {
                    this.cb();
                }
            }
            else {
                let b = new ColumnComparisonFilterCondition();
                b.operator = 14;
                b.value = this.au;
                b.isCaseSensitive = false;
                this.aw(b);
            }
        }
        cd() {
            this.ap = 0;
            this.x = false;
        }
        cf(a) {
            let b = this.b();
            let c = b.isPlaceholderItem(a);
            if (c) {
            }
            else {
                let d = this.e;
                if (a < 0) {
                    this.s = false;
                    d.selectedItems.clear();
                    if (!this.s) {
                        this.bc();
                    }
                    return;
                }
                d.selectedItemsChanged = delegateRemove(d.selectedItemsChanged, runOn(this, this.bd));
                try {
                    d.selectedItems.clear();
                }
                finally {
                    d.selectedItemsChanged = delegateCombine(d.selectedItemsChanged, runOn(this, this.bd));
                }
                if (a >= 0) {
                    let e = b.getItemAtIndex(a);
                    this.s = false;
                    d.selectedItems.add1(e);
                    if (!this.s) {
                        this.bc();
                    }
                }
            }
        }
        ch(a) {
            let b = this.e;
            if (-1 == a) {
                b.activeCell = null;
                return;
            }
            let c = b.activeCell;
            let d = new GridCellPosition();
            let e;
            if (null != c) {
                e = c.d;
            }
            else {
                if (b.actualColumns.count == 0) {
                    this.ao = a;
                    return;
                }
                let f = this.g;
                let g = this.g.p();
                e = g.lt();
            }
            d.d = e;
            d.b = a;
            this.r = false;
            b.activeCell = d;
            if (!this.r) {
                this.a8(b.activeCell);
            }
            this.cy();
        }
        cl(a) {
            this.b6(2, a);
        }
        ck(a) {
            this.b6(1, a);
        }
        cm() {
            let a = this.g;
            if (null != this.k) {
                this.k.t = a.density;
                this.k.p = a.ah;
                this.k.d = a.ac;
                this.k.mc = a.hl;
                this.k.md = a.hm;
                this.k.c0 = a.cc;
                this.k.oi = a.il;
                this.k.ks = a.gw;
                this.k.t = a.am;
                this.k.no = a.hn;
                this.k.eg = a.cd;
                this.k.np = a.ho;
                this.k.eh = a.ce;
                this.k.ei = a.cf;
                this.k.nq = a.hp;
                this.k.ej = a.cg;
                this.k.ek = a.ch;
                this.k.n6 = a.hu;
                this.k.e5 = a.ci;
                this.k.n7 = a.hv;
                this.k.e6 = a.cj;
                this.k.e7 = a.ck;
                this.k.e8 = a.cl;
            }
            if (null != this.j) {
                this.j.d8 = a.ht;
                this.j.af = a.ax;
                this.j.cg = a.fn;
            }
            if (null != this.l) {
                this.l.text = a.fb;
                this.l.di = a.hq;
                this.l.y = a.av;
            }
            if (null != this.am) {
                NativeUI.q(this.am, a.hs);
                NativeUI.m(this.am, a.hr);
                if (null != a.aw) {
                    this.am.setStyleProperty("font", a.aw.fontString);
                }
                this.am.setRawText(a.actualNoMatchesFoundLabel);
                this.bp();
            }
            if (null != this.d) {
                this.d.density = a.density;
                let b = a.columnHeadersVisible;
                this.d.headerHeight = b ? -1 : 0;
                this.d.rowSeparatorHeight = a.rowSeparatorsVisible ? 1 : 0;
            }
            if (null != this.af) {
                let c = a.dropDownButtonVisible;
                MultiColumnComboBoxUtilities.c(this.af, c);
            }
        }
        cu() {
            if (!this.v) {
                if (null != this.j) {
                    let a = this.f.text;
                    this.j.cq = a;
                }
            }
        }
        co() {
            let a = this.n;
            let b = null != a ? a.ax : false;
            this.i.svgPath = b ? MultiColumnComboBoxView.as : MultiColumnComboBoxView.at;
        }
        ct() {
            let a = this.d.actualHeaderHeight + 3;
            let b = this.d.actualRowHeight + this.d.rowSeparatorHeight;
            let c = this.d.actualDataSource;
            let d = null != c ? c.actualCount : 0;
            if (d > 8) {
                d = 8;
            }
            let e = d * b;
            e += a;
            let f = stringFormat("{0}px", e);
            this.ag.setStyleProperty("height", f);
            let g = 0;
            let h = this.d.actualColumns.count;
            let i = 100;
            if (this.d.defaultColumnWidth != null) {
                i = this.d.defaultColumnWidth.f;
            }
            g = h * i;
            this.d.defaultColumnMinWidth = 0;
            g += 2;
            let j = stringFormat("{0}px", g);
            this.ag.setStyleProperty("width", j);
            if (null != this.am) {
                let k = this.g;
                let l = MultiColumnComboBoxUtilities.e(this.ad, k.actualNoMatchesFoundLabel, k.av);
                let m = l.width;
                let n = l.height;
                let o = stringFormat("{0}px", m);
                let p = stringFormat("{0}px", n);
                this.am.setStyleProperty("width", o);
                this.am.setStyleProperty("height", p);
            }
        }
        cv() {
            if (this.w) {
                return;
            }
            this.au = null;
            let a = this.g.p();
            if (null != a) {
                let b = a.g1;
                if (null != b) {
                    a.g1 = null;
                }
                else {
                    this.cw();
                }
            }
        }
        cw() {
            let a = this.g;
            if (null != a.value) {
                let b = this.g.value;
                let c = typeCast(Array_$type, b) !== null ? b : [b];
                let d = this.b();
                let e = d.indexOfKey(c);
                if (-1 != e) {
                    this.ch(e);
                }
            }
        }
        cx() {
            if (null == this.d) {
                this.ac.getPortal(this.ag, "DataGrid", (a) => {
                    this.aq = a.componentRef;
                    this.aq.height = '100%';
                    this.aq.width = '100%';
                    this.d = (this.aq.i);
                    this.cz();
                    this.d.selectionMode = 1;
                    this.d.selectionBehavior = 0;
                    this.d.activationMode = 1;
                    this.d.defaultColumnWidth = this.f.defaultColumnWidth;
                    this.cr();
                    this.d.editMode = 0;
                    this.d.isColumnOptionsEnabled = false;
                    this.d.isActiveCellStyleEnabled = false;
                    this.d.cornerRadius = new CornerRadius(0, 0);
                    this.d.ix = false;
                    let b = this.d;
                    b.activeCellChanged = delegateCombine(b.activeCellChanged, runOn(this, this.a7));
                    let c = this.d;
                    c.selectedItemsChanged = delegateCombine(c.selectedItemsChanged, runOn(this, this.bd));
                    let d = this.d;
                    d.cellClicked = delegateCombine(d.cellClicked, runOn(this, this.ba));
                    let e = this.d;
                    e.sizeChanged = delegateCombine(e.sizeChanged, runOn(this, this.be));
                    let f = this.d;
                    f.viewportChanged = delegateCombine(f.viewportChanged, runOn(this, this.bf));
                    let g = this.d;
                    g.actualColumnsChanged = delegateCombine(g.actualColumnsChanged, runOn(this, this.a9));
                    let h = this.d;
                    h.columnWidthChanged = delegateCombine(h.columnWidthChanged, runOn(this, this.bb));
                    this.cm();
                }, false);
            }
        }
        cn(a) {
            if (this.d != null) {
                this.d.defaultColumnWidth = a;
                this.ct();
            }
        }
        cr() {
            if (this.d != null) {
                let a = 0;
                switch (this.f.x) {
                    case 0:
                        a = 0;
                        break;
                    case 1:
                        a = 1;
                        break;
                    case 2:
                        a = 2;
                        break;
                    case 3:
                        a = 3;
                        break;
                    case 4:
                        a = 4;
                        break;
                }
                this.d.headerClickAction = a;
            }
        }
        cy() {
            if (!this.t) {
                return;
            }
            let a = this.d;
            let b = a.activeCell;
            if (null != b) {
                let c = this.b();
                if (null != c) {
                    let d = c.getItemAtIndex(b.b);
                    if (null == d) {
                        return;
                    }
                    a.scrollToItem(d);
                }
            }
            else {
                a.scrollToRowByIndex(0);
            }
        }
        cz() {
            if (null != this.aq) {
                let a = this.g;
                let b = a.itemsSource;
                this.d.selectedItems.clear();
                if (this.d.actualDataSource != null) {
                    let c = this.d.actualDataSource;
                    c.schemaChanged = delegateRemove(c.schemaChanged, runOn(this, this.av));
                }
                this.aq.dataSource = b;
                this.aq.autoGenerateDesiredProperties = a.g;
                this.d.primaryKey = a.i();
                this.ao = -1;
                let d = this.b();
                if (null != d) {
                    let e = d.updateNotifier;
                    let f = new MultiColumnComboBoxDataSourceNotificationHandler(this, false);
                    let g = new MultipleDataSourceNotifier(1, [e, f]);
                    d.updateNotifier = g;
                    d.propertiesRequested = a.f;
                    d.schemaChanged = delegateCombine(d.schemaChanged, runOn(this, this.av));
                    if (this.g.value != null) {
                        this.b6(1, this.g.value);
                    }
                }
                this.a = null;
                if (this.n != null && this.n.ax) {
                    this.c1();
                    this.n.b9();
                }
            }
        }
        av(a, b) {
            if (this.ao != -1) {
                this.ch(this.ao);
                this.ao = -1;
            }
        }
        c0() {
            if (null != this.aj) {
                let a = this.f.actualLabelVisible;
                if (a) {
                    this.k.appendContentChild(this.aj);
                    this.k.inputs.add(this.l);
                }
                else {
                    this.k.j7(this.aj);
                    this.k.inputs.remove(this.l);
                }
            }
        }
        cg(a) {
            if (this.j != null) {
                this.j.disabled = !a;
            }
            if (this.k != null) {
                this.k.disabled = !a;
            }
        }
        c1() {
            this.ct();
            if (!this.w) {
                this.z = false;
            }
            else {
                let a = this.b();
                this.z = a.actualCount == 0;
            }
            MultiColumnComboBoxUtilities.c(this.am, this.z);
            MultiColumnComboBoxUtilities.c(this.ag, !this.z);
        }
        a6(a) {
            if (this.j != null) {
                this.j.focus(a);
            }
        }
        ce() {
            if (this.j != null) {
                this.j.dp();
            }
        }
        ci(a) {
            if (this.j != null) {
                this.j.e = a;
            }
        }
        get al() {
            return this.ak;
        }
        get g() {
            return this.f;
        }
        get ad() {
            return this.ac;
        }
        c2() {
            if (null != this.al) {
                this.al.setStyleProperty("box-sizing", "border-box");
            }
        }
        a2(a) {
            let b = a.target;
            if (!this.o()) {
                this.bz();
            }
        }
        ax(a) {
            this.d.selectedItems.clear();
            this.j.cq = "";
            this.g.text = "";
            this.g.value = null;
        }
        a4(a) {
            let b = this.n;
            if (b.ax) {
                this.az();
            }
            else {
                this.aw(null);
            }
            if (null != this.j) {
                this.j.focus();
                this.j.dp();
            }
        }
        a7(a, b) {
            let c = b.newActiveCell;
            this.a8(c);
            this.r = true;
        }
        a9(a, b) {
            this.cv();
        }
        ba(a, b) {
            if (typeCast(TextHeaderCellModel.$, b.cellInfo) !== null) {
                return;
            }
            this.br();
        }
        bb(a, b) {
            this.ct();
            this.bp();
        }
        bd(a, b) {
            this.bc();
            this.s = true;
            this.cj();
        }
        be(a, b) {
            this.t = b.b != 0 && b.a != 0;
            this.cy();
        }
        bf(a, b) {
            this.cy();
            let c = this.d;
            c.viewportChanged = delegateRemove(c.viewportChanged, runOn(this, this.bf));
        }
        bi(a, b) {
            if (b.isCompositionInProgress) {
                return;
            }
            this.f.gd(b);
            let c = b.value;
            this.b9(c);
        }
        bj(a, b) {
            let c = this.j.cq;
            this.b9(c);
        }
        bk(a, b) {
            this.cd();
        }
        bl(a, b) {
            this.f.gf(b);
            if (b.defaultPrevented) {
                return;
            }
            let c = b.keyCode;
            this.ap = c;
            this.x = false;
            let d = b.modifiers;
            switch (c) {
                case 8:
                    let e = this.j.selectionStart;
                    if (0 == e) {
                        break;
                    }
                    let f = this.j.cq;
                    if (stringIsNullOrEmpty(f)) {
                        break;
                    }
                    let g = f.length;
                    let h = this.j.selectionEnd;
                    let i = h - e;
                    if (i > 0 && i < g && h == g) {
                        this.x = true;
                    }
                    break;
                case 40:
                    if (d == 1) {
                        this.a3();
                        this.cv();
                        b.preventDefault();
                    }
                    else {
                        let j = this.e;
                        if (null == j) {
                            return;
                        }
                        let k = this.e.activeCell;
                        if (null != j.activeCell) {
                            this.d.kk(false, false);
                            b.preventDefault();
                        }
                        else {
                            let l = this.b();
                            if (null != l) {
                                let m = l.actualCount;
                                if (m > 0) {
                                    this.ch(0);
                                    b.preventDefault();
                                }
                            }
                        }
                    }
                    break;
                case 38:
                    if (d == 1) {
                        this.az();
                        b.preventDefault();
                    }
                    else {
                        let n = this.e;
                        if (null == n) {
                            return;
                        }
                        let o = this.e.activeCell;
                        if (null != n.activeCell) {
                            this.d.kx(false, false);
                            b.preventDefault();
                        }
                        else {
                            let p = this.b();
                            if (null != p) {
                                let q = p.actualCount;
                                if (q > 0) {
                                    this.ch(q - 1);
                                    b.preventDefault();
                                }
                            }
                        }
                    }
                    break;
                case 13:
                    if (this.n.ax) {
                        b.stopPropagation();
                    }
                    this.br();
                    break;
                case 27:
                    this.az();
                    break;
            }
        }
        bm(a, b) {
            if (false == this.o()) {
                this.j.dp();
                b.handled = true;
            }
        }
        bn(a) {
            this.j.focus();
            let b = (a.originalEvent.relatedTarget);
            if (!this.u(b)) {
                this.by();
            }
        }
        bo(a) {
            let b = (a.originalEvent.relatedTarget);
            if (!this.u(b)) {
                this.bz();
            }
        }
        c3(a) {
            let b = this.n;
            if (null == b || false == b.ax) {
                return;
            }
            let c = this.c4();
            this.m.ca(c);
        }
        cq() {
            if (this.g.disallowTabFocus) {
                if (this.ai != null) {
                    this.ai.setAttribute("tabIndex", "-1");
                }
                if (this.j != null) {
                    this.j.be = -1;
                }
            }
            else {
                if (this.ai != null) {
                    this.ai.setAttribute("tabIndex", "0");
                }
                if (this.j != null) {
                    this.j.cu();
                }
            }
        }
        cp() {
            if (this.m != null) {
                this.m.ar = this.g.bn;
            }
        }
        cs() {
            if (this.m != null) {
                this.m.ay = this.g.br;
            }
        }
    }
    MultiColumnComboBoxView.$t = /*@__PURE__*/ markType(MultiColumnComboBoxView, 'MultiColumnComboBoxView');
    MultiColumnComboBoxView.ar = "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z";
    MultiColumnComboBoxView.at = "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z";
    MultiColumnComboBoxView.as = "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z";
    return MultiColumnComboBoxView;
})();
/**
 * @hidden
 */
export let MultiColumnComboBox = /*@__PURE__*/ (() => {
    class MultiColumnComboBox extends Base {
        constructor() {
            super();
            this.dd = null;
            this.h1 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "BackgroundColor");
            this.h2 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "BorderColor");
            this.co = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "BorderWidth");
            this.io = XInputGroup.m.ai(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "ContentPadding");
            this.gy = XInputGroup.m.y(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "CornerRadius");
            this.h3 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "FocusBorderColor");
            this.cp = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "FocusBorderWidth");
            this.h4 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineColor");
            this.cq = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineOpacity");
            this.cr = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineRippleOpacity");
            this.h5 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineColor");
            this.cs = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineOpacity");
            this.ct = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineWidth");
            this.h6 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineColor");
            this.cu = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineOpacity");
            this.h7 = XInputGroup.m.ad(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineRippleColor");
            this.cv = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineRippleOpacity");
            this.cw = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineRippleWidth");
            this.cx = XInputGroup.m.i(MultiColumnComboBox.ag, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineWidth");
            this.a5 = null;
            this.a0 = null;
            this.v = null;
            this.a8 = false;
            this.bc = true;
            this.c = null;
            this.m = ColumnWidth.a;
            this.ha = null;
            this.gz = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "BackgroundColor");
            this.af = 0;
            this.ae = 1;
            this.hb = null;
            this.g0 = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "BorderColor");
            this.b2 = NaN;
            this.bs = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "BorderWidth");
            this.bh = true;
            this.ik = new Thickness(1, NaN, NaN, NaN, NaN);
            this.ij = ThemeResolver.ak(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "ContentPadding");
            this.gv = new CornerRadius(1, NaN, NaN, NaN, NaN);
            this.gu = ThemeResolver.aa(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "CornerRadius");
            this.b = null;
            this.al = 0;
            this.ak = 0;
            this.bk = true;
            this.hc = null;
            this.g1 = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "FocusBorderColor");
            this.b3 = NaN;
            this.bt = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "FocusBorderWidth");
            this.hd = null;
            this.g2 = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineColor");
            this.b4 = NaN;
            this.bu = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineOpacity");
            this.b5 = NaN;
            this.bv = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "FocusUnderlineRippleOpacity");
            this.he = null;
            this.g3 = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineColor");
            this.b6 = NaN;
            this.bw = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineOpacity");
            this.b7 = NaN;
            this.bx = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "HoverUnderlineWidth");
            this.c7 = null;
            this.fd = null;
            this.hf = null;
            this.g4 = MultiColumnComboBox.hy;
            this.as = null;
            this.ap = null;
            this.be = false;
            this.fg = null;
            this.d1 = "No Matches Found";
            this.hg = null;
            this.g5 = MultiColumnComboBox.hz;
            this.hh = null;
            this.g6 = MultiColumnComboBox.h0;
            this.at = null;
            this.aq = null;
            this.fo = "";
            this.bb = true;
            this.hi = MultiColumnComboBox.h8;
            this.g7 = MultiColumnComboBox.h8;
            this.au = null;
            this.ar = null;
            this.hj = null;
            this.g8 = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineColor");
            this.b8 = NaN;
            this.by = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineOpacity");
            this.hk = null;
            this.g9 = ThemeResolver.af(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineRippleColor");
            this.b9 = NaN;
            this.bz = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineRippleOpacity");
            this.ca = NaN;
            this.b0 = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineRippleWidth");
            this.cb = NaN;
            this.b1 = ThemeResolver.k(MultiColumnComboBox.ag, XInputGroup.m, enumGetBox(InputGroupDisplayType_$type, 0), "UnderlineWidth");
            this.a7 = true;
            this.w = 0;
            this.dg = null;
            this.df = null;
            this.d = null;
            this.a = null;
            this.c8 = null;
            this.aa = 0;
            this.bm = false;
            this.a9 = false;
            this.ba = false;
            this.bd = false;
            this.gotFocus = null;
            this.lostFocus = null;
            this.textValueChanged = null;
            this.selectedValueChanged = null;
            this.keyDown = null;
            this.change = null;
            this.changing = null;
            this.propertyChanged = null;
            this.m = new ColumnWidth();
            this.m.f = 100;
            let a = this.u();
            this.v = a;
            a.bh(this);
        }
        get a6() {
            if (this.a5 == null) {
                this.a5 = new SRProvider(this.v.ad);
                this.a5.cb("MultiColumnComboBox");
            }
            return this.a5;
        }
        u() {
            return new MultiColumnComboBoxView();
        }
        gm(a, b, c) {
            switch (a) {
                case "BackgroundColor":
                    this.hl = this.hw != null ? this.hw : this.h1;
                    break;
                case "BorderColor":
                    this.hm = this.hx != null ? this.hx : this.h2;
                    break;
                case "BorderWidth":
                    this.cc = !isNaN_(this.cm) ? this.cm : this.co;
                    break;
                case "ContentPadding":
                    this.il = XInputGroup.oh(this.im, this.io);
                    break;
                case "CornerRadius":
                    this.gw = XInputGroup.kr(this.gx, this.gy);
                    break;
                case "FocusBorderColor":
                    this.hn = this.h9 != null ? this.h9 : this.h3;
                    break;
                case "FocusBorderWidth":
                    this.cd = !isNaN_(this.cy) ? this.cy : this.cp;
                    break;
                case "FocusUnderlineColor":
                    this.ho = this.ia != null ? this.ia : this.h4;
                    break;
                case "FocusUnderlineOpacity":
                    this.ce = !isNaN_(this.cz) ? this.cz : this.cq;
                    break;
                case "FocusUnderlineRippleOpacity":
                    this.cf = !isNaN_(this.c0) ? this.c0 : this.cr;
                    break;
                case "HoverUnderlineColor":
                    this.hp = this.ib != null ? this.ib : this.h5;
                    break;
                case "HoverUnderlineOpacity":
                    this.cg = !isNaN_(this.c1) ? this.c1 : this.cs;
                    break;
                case "HoverUnderlineWidth":
                    this.ch = !isNaN_(this.c2) ? this.c2 : this.ct;
                    break;
                case "ItemsSource":
                case "ValueField":
                case "DataSourceDesiredProperties":
                case "Fields":
                    this.v.cz();
                    break;
                case "DefaultColumnWidth":
                    this.v.cn(this.defaultColumnWidth);
                    break;
                case "LabelTextColor":
                    this.hq = this.ic != null ? this.ic : MultiColumnComboBox.hy;
                    break;
                case "LabelTextStyle":
                    this.av = this.a2 != null ? this.a2 : MultiColumnComboBox.ay;
                    break;
                case "NoMatchesFoundLabelTextColor":
                    this.hs = this.ie != null ? this.ie : MultiColumnComboBox.h0;
                    break;
                case "NoMatchesFoundLabelBackgroundColor":
                    this.hr = this.id != null ? this.id : MultiColumnComboBox.hz;
                    break;
                case "NoMatchesFoundLabelTextStyle":
                    this.aw = this.a3 != null ? this.a3 : MultiColumnComboBox.az;
                    break;
                case "UnderlineColor":
                    this.hu = this.ih != null ? this.ih : this.h6;
                    break;
                case "UnderlineOpacity":
                    this.ci = !isNaN_(this.c3) ? this.c3 : this.cu;
                    break;
                case "UnderlineRippleColor":
                    this.hv = this.ii != null ? this.ii : this.h7;
                    break;
                case "UnderlineRippleOpacity":
                    this.cj = !isNaN_(this.c4) ? this.c4 : this.cv;
                    break;
                case "UnderlineRippleWidth":
                    this.ck = !isNaN_(this.c5) ? this.c5 : this.cw;
                    break;
                case "UnderlineWidth":
                    this.cl = !isNaN_(this.c6) ? this.c6 : this.cx;
                    break;
                case "BaseTheme":
                    this.ah = this.ai == 0 ? 1 : this.ai;
                    break;
                case "Density":
                    this.am = this.density == 0 ? 0 : this.density;
                    break;
                case "TextColor":
                    this.ht = this.ig != null ? this.ig : MultiColumnComboBox.h8;
                    break;
                case "TextStyle":
                    this.ax = this.a4 != null ? this.a4 : null;
                    break;
                case "ActualDensity":
                case "ActualBaseTheme":
                case "ActualTextColor":
                case "ActualTextStyle":
                case "DisplayType":
                case "ActualBackgroundColor":
                case "ActualBorderColor":
                case "ActualBorderWidth":
                case "ActualContentPadding":
                case "ActualCornerRadius":
                case "ActualFocusBorderColor":
                case "ActualFocusBorderWidth":
                case "ActualFocusUnderlineColor":
                case "ActualFocusUnderlineOpacity":
                case "ActualFocusUnderlineRippleOpacity":
                case "ActualHoverUnderlineColor":
                case "ActualHoverUnderlineOpacity":
                case "ActualHoverUnderlineWidth":
                case "ActualLabelTextColor":
                case "ActualLabelTextStyle":
                case "ActualUnderlineColor":
                case "ActualUnderlineOpacity":
                case "ActualUnderlineRippleColor":
                case "ActualUnderlineRippleOpacity":
                case "ActualUnderlineRippleWidth":
                case "ActualUnderlineWidth":
                case "DropDownButtonVisible":
                case "ColumnHeadersVisible":
                case "RowSeparatorsVisible":
                case "ActualNoMatchesFoundLabel":
                case "ActualNoMatchesFoundLabelTextColor":
                case "ActualNoMatchesFoundLabelTextStyle":
                case MultiColumnComboBox.d3:
                    this.v.cm();
                    break;
                case "NoMatchesFoundLabel":
                    this.actualNoMatchesFoundLabel = stringIsNullOrEmpty(this.fh) ? "No Matches Found" : this.fh;
                    break;
                case "ActualLabelVisible":
                    this.v.c0();
                    break;
                case "Label":
                case "PlaceholderText":
                    this.v.cm();
                    this.actualLabelVisible = !stringIsNullOrEmpty(this.fd);
                    break;
                case "Text":
                    this.v.cu();
                    let d = b != null ? b.toString() : null;
                    let e = c != null ? c.toString() : null;
                    this.gk(new MultiColumnComboBoxTextChangedEventArgs(d, e));
                    this.gl(1, e);
                    break;
                case "Value":
                    this.gj(new MultiColumnComboBoxValueChangedEventArgs(b, c));
                    this.gl(0, c);
                    break;
                case "ShowClearButton":
                    this.v.cj();
                    break;
                case "AllowFilter":
                    this.v.a5(this.bg);
                    break;
                case "SortMode":
                    this.v.cr();
                    break;
                case "DisallowTabFocus":
                    this.v.cq();
                    break;
                case "IsFixed":
                    this.v.cp();
                    break;
                case "UseTopLayer":
                    this.v.cs();
                    break;
            }
        }
        gt() {
            this.v.c2();
        }
        get a1() {
            if (null == this.a0) {
                this.a0 = new FontInfo();
                this.a0.q = "Verdana";
                this.a0.f = DeviceUtils.f(16);
            }
            return this.a0;
        }
        focus(a) {
            this.v.a6(a);
        }
        setName(a) {
            this.v.ci(a);
        }
        get disallowTabFocus() {
            return this.a8;
        }
        set disallowTabFocus(a) {
            let b = this.a8;
            this.a8 = a;
            if (b != this.a8) {
                this.gh("DisallowTabFocus", b, this.a8);
            }
        }
        get bq() {
            return this.bc;
        }
        set bq(a) {
            let b = this.bc;
            this.bc = a;
            if (b != this.bc) {
                this.gh("ShowClearButton", b, this.bc);
            }
        }
        get g() {
            return this.c;
        }
        set g(a) {
            let b = this.c;
            this.c = a;
            if (b != this.c) {
                this.gh("Fields", b, this.c);
            }
        }
        get defaultColumnWidth() {
            return this.m;
        }
        set defaultColumnWidth(a) {
            let b = this.m;
            this.m = a;
            if (b != this.m) {
                this.gh("DefaultColumnWidth", b, this.m);
            }
        }
        get hw() {
            return this.ha;
        }
        set hw(a) {
            let b = this.ha;
            this.ha = a;
            if (b != this.ha) {
                this.gh("BackgroundColor", b, a);
            }
        }
        get hl() {
            return this.gz;
        }
        set hl(a) {
            let b = this.gz;
            this.gz = a;
            if (b != this.gz) {
                this.gh("ActualBackgroundColor", b, a);
            }
        }
        get ai() {
            return this.af;
        }
        set ai(a) {
            let b = this.af;
            this.af = a;
            if (b != this.af) {
                this.gh("BaseTheme", enumGetBox(BaseControlTheme_$type, b), enumGetBox(BaseControlTheme_$type, a));
            }
        }
        get ah() {
            return this.ae;
        }
        set ah(a) {
            let b = this.ae;
            this.ae = a;
            if (b != this.ae) {
                this.gh("ActualBaseTheme", enumGetBox(BaseControlTheme_$type, b), enumGetBox(BaseControlTheme_$type, a));
            }
        }
        get hx() {
            return this.hb;
        }
        set hx(a) {
            let b = this.hb;
            this.hb = a;
            if (b != this.hb) {
                this.gh("BorderColor", b, a);
            }
        }
        get hm() {
            return this.g0;
        }
        set hm(a) {
            let b = this.g0;
            this.g0 = a;
            if (b != this.g0) {
                this.gh("ActualBorderColor", b, a);
            }
        }
        get cm() {
            return this.b2;
        }
        set cm(a) {
            let b = this.b2;
            this.b2 = a;
            if (b != this.b2) {
                this.gh("BorderWidth", b, a);
            }
        }
        get cc() {
            return this.bs;
        }
        set cc(a) {
            let b = this.bs;
            this.bs = a;
            if (b != this.bs) {
                this.gh("ActualBorderWidth", b, a);
            }
        }
        get columnHeadersVisible() {
            return this.bh;
        }
        set columnHeadersVisible(a) {
            let b = this.bh;
            this.bh = a;
            if (b != this.bh) {
                this.gh("ColumnHeadersVisible", b, a);
            }
        }
        get im() {
            return this.ik;
        }
        set im(a) {
            let b = this.ik;
            this.ik = a;
            if (b != this.ik) {
                this.gh("ContentPadding", b, a);
            }
        }
        get il() {
            return this.ij;
        }
        set il(a) {
            let b = this.ij;
            this.ij = a;
            if (b != this.ij) {
                this.gh("ActualContentPadding", b, a);
            }
        }
        get gx() {
            return this.gv;
        }
        set gx(a) {
            let b = this.gv;
            this.gv = a;
            if (b != this.gv) {
                this.gh("CornerRadius", b, a);
            }
        }
        get gw() {
            return this.gu;
        }
        set gw(a) {
            let b = this.gu;
            this.gu = a;
            if (b != this.gu) {
                this.gh("ActualCornerRadius", b, a);
            }
        }
        get f() {
            return this.b;
        }
        set f(a) {
            let b = this.b;
            this.b = a;
            if (b != this.b) {
                this.gh("DataSourceDesiredProperties", b, this.b);
            }
        }
        get density() {
            return this.al;
        }
        set density(a) {
            let b = this.al;
            this.al = a;
            if (b != this.al) {
                this.gh("Density", enumGetBox(ControlDisplayDensity_$type, b), enumGetBox(ControlDisplayDensity_$type, a));
            }
        }
        get am() {
            return this.ak;
        }
        set am(a) {
            let b = this.ak;
            this.ak = a;
            if (b != this.ak) {
                this.gh("ActualDensity", enumGetBox(ControlDisplayDensity_$type, b), enumGetBox(ControlDisplayDensity_$type, a));
            }
        }
        get dropDownButtonVisible() {
            return this.bk;
        }
        set dropDownButtonVisible(a) {
            let b = this.bk;
            this.bk = a;
            if (b != this.bk) {
                this.gh("DropDownButtonVisible", b, a);
            }
        }
        get h9() {
            return this.hc;
        }
        set h9(a) {
            let b = this.hc;
            this.hc = a;
            if (b != this.hc) {
                this.gh("FocusBorderColor", b, a);
            }
        }
        get hn() {
            return this.g1;
        }
        set hn(a) {
            let b = this.g1;
            this.g1 = a;
            if (b != this.g1) {
                this.gh("ActualFocusBorderColor", b, a);
            }
        }
        get cy() {
            return this.b3;
        }
        set cy(a) {
            let b = this.b3;
            this.b3 = a;
            if (b != this.b3) {
                this.gh("FocusBorderWidth", b, a);
            }
        }
        get cd() {
            return this.bt;
        }
        set cd(a) {
            let b = this.bt;
            this.bt = a;
            if (b != this.bt) {
                this.gh("ActualFocusBorderWidth", b, a);
            }
        }
        get ia() {
            return this.hd;
        }
        set ia(a) {
            let b = this.hd;
            this.hd = a;
            if (b != this.hd) {
                this.gh("FocusUnderlineColor", b, a);
            }
        }
        get ho() {
            return this.g2;
        }
        set ho(a) {
            let b = this.g2;
            this.hd = a;
            if (b != this.g2) {
                this.gh("ActualFocusUnderlineColor", b, a);
            }
        }
        get cz() {
            return this.b4;
        }
        set cz(a) {
            let b = this.b4;
            this.b4 = a;
            if (b != this.b4) {
                this.gh("FocusUnderlineOpacity", b, a);
            }
        }
        get ce() {
            return this.bu;
        }
        set ce(a) {
            let b = this.bu;
            this.bu = a;
            if (b != this.bu) {
                this.gh("ActualFocusUnderlineOpacity", b, a);
            }
        }
        get c0() {
            return this.b5;
        }
        set c0(a) {
            let b = this.b5;
            this.b5 = a;
            if (b != this.b5) {
                this.gh("FocusUnderlineRippleOpacity", b, a);
            }
        }
        get cf() {
            return this.bv;
        }
        set cf(a) {
            let b = this.bv;
            this.bv = a;
            if (b != this.bv) {
                this.gh("ActualFocusUnderlineRippleOpacity", b, a);
            }
        }
        get ib() {
            return this.he;
        }
        set ib(a) {
            let b = this.he;
            this.he = a;
            if (b != this.he) {
                this.gh("HoverUnderlineColor", b, a);
            }
        }
        get hp() {
            return this.g3;
        }
        set hp(a) {
            let b = this.g3;
            this.g3 = a;
            if (b != this.g3) {
                this.gh("ActualHoverUnderlineColor", b, a);
            }
        }
        get c1() {
            return this.b6;
        }
        set c1(a) {
            let b = this.b6;
            this.b6 = a;
            if (b != this.b6) {
                this.gh("HoverUnderlineOpacity", b, a);
            }
        }
        get cg() {
            return this.bw;
        }
        set cg(a) {
            let b = this.bw;
            this.bw = a;
            if (b != this.bw) {
                this.gh("ActualHoverUnderlineOpacity", b, a);
            }
        }
        get c2() {
            return this.b7;
        }
        set c2(a) {
            let b = this.b7;
            this.b7 = a;
            if (b != this.b7) {
                this.gh("HoverUnderlineWidth", b, a);
            }
        }
        get ch() {
            return this.bx;
        }
        set ch(a) {
            let b = this.bx;
            this.bx = a;
            if (b != this.bx) {
                this.gh("ActualHoverUnderlineWidth", b, a);
            }
        }
        get itemsSource() {
            return this.c7;
        }
        set itemsSource(a) {
            let b = this.c7;
            this.c7 = a;
            if (b != this.c7) {
                this.gh("ItemsSource", b, this.c7);
            }
        }
        get actualDataSource() {
            return this.v.b();
        }
        get fb() {
            return this.fd;
        }
        set fb(a) {
            let b = this.fb;
            if (0 == StringComparer.b.compare(a, b)) {
                return;
            }
            this.fd = a;
            this.gh("Label", b, this.fd);
        }
        get ic() {
            return this.hf;
        }
        set ic(a) {
            let b = this.hf;
            this.hf = a;
            if (b != this.hf) {
                this.gh("LabelTextColor", b, a);
            }
        }
        get hq() {
            return this.g4;
        }
        set hq(a) {
            let b = this.g4;
            this.g4 = a;
            if (b != this.g4) {
                this.gh("ActualLabelTextColor", b, a);
            }
        }
        get a2() {
            return this.as;
        }
        set a2(a) {
            let b = this.as;
            this.as = a;
            if (b != this.as) {
                this.gh("LabelTextStyle", b, this.as);
            }
        }
        get av() {
            return this.ap;
        }
        set av(a) {
            let b = this.ap;
            this.ap = a;
            if (this.ap != b) {
                this.gh("ActualLabelTextStyle", b, this.ap);
            }
        }
        get actualLabelVisible() {
            return this.be;
        }
        set actualLabelVisible(a) {
            let b = this.be;
            this.be = a;
            if (b != this.be) {
                this.gh("ActualLabelVisible", b, a);
            }
        }
        get fh() {
            return this.fg;
        }
        set fh(a) {
            let b = this.fg;
            if (0 == StringComparer.b.compare(a, b)) {
                return;
            }
            this.fg = a;
            this.gh("NoMatchesFoundLabel", b, this.fg);
        }
        get actualNoMatchesFoundLabel() {
            return this.d1;
        }
        set actualNoMatchesFoundLabel(a) {
            let b = this.d1;
            this.d1 = a;
            if (b != this.d1) {
                this.gh("ActualNoMatchesFoundLabel", b, a);
            }
        }
        get id() {
            return this.hg;
        }
        set id(a) {
            let b = this.hg;
            this.hg = a;
            if (b != this.hg) {
                this.gh("NoMatchesFoundLabelBackgroundColor", b, a);
            }
        }
        get hr() {
            return this.g5;
        }
        set hr(a) {
            let b = this.g5;
            this.g5 = a;
            if (b != this.g5) {
                this.gh(MultiColumnComboBox.d3, b, a);
            }
        }
        get ie() {
            return this.hh;
        }
        set ie(a) {
            let b = this.hh;
            this.hh = a;
            if (b != this.hh) {
                this.gh("NoMatchesFoundLabelTextColor", b, a);
            }
        }
        get hs() {
            return this.g6;
        }
        set hs(a) {
            let b = this.g6;
            this.g6 = a;
            if (b != this.g6) {
                this.gh("ActualNoMatchesFoundLabelTextColor", b, a);
            }
        }
        get a3() {
            return this.at;
        }
        set a3(a) {
            let b = this.at;
            this.at = a;
            if (b != this.at) {
                this.gh("NoMatchesFoundLabelTextStyle", b, this.at);
            }
        }
        get aw() {
            return this.aq;
        }
        set aw(a) {
            let b = this.aq;
            this.aq = a;
            if (this.aq != b) {
                this.gh("ActualNoMatchesFoundLabelTextStyle", b, this.aq);
            }
        }
        get fn() {
            return this.fo;
        }
        set fn(a) {
            let b = this.fn;
            if (0 == StringComparer.b.compare(a, b)) {
                return;
            }
            this.fo = a;
            this.gh("PlaceholderText", b, this.fo);
        }
        get rowSeparatorsVisible() {
            return this.bb;
        }
        set rowSeparatorsVisible(a) {
            let b = this.bb;
            this.bb = a;
            if (b != this.bb) {
                this.gh("RowSeparatorsVisible", b, a);
            }
        }
        get ig() {
            return this.hi;
        }
        set ig(a) {
            let b = this.hi;
            this.hi = a;
            if (b != this.hi) {
                this.gh("TextColor", b, a);
            }
        }
        get ht() {
            return this.g7;
        }
        set ht(a) {
            let b = this.g7;
            this.g7 = a;
            if (b != this.g7) {
                this.gh("ActualTextColor", b, a);
            }
        }
        get a4() {
            return this.au;
        }
        set a4(a) {
            let b = this.au;
            this.au = a;
            if (b != this.au) {
                this.gh("TextStyle", b, this.au);
            }
        }
        get ax() {
            return this.ar;
        }
        set ax(a) {
            let b = this.ar;
            this.ar = a;
            if (this.ar != b) {
                this.gh("ActualTextStyle", b, this.ar);
            }
        }
        get ih() {
            return this.hj;
        }
        set ih(a) {
            let b = this.hj;
            this.hj = a;
            if (b != this.hj) {
                this.gh("UnderlineColor", b, a);
            }
        }
        get hu() {
            return this.g8;
        }
        set hu(a) {
            let b = this.g8;
            this.g8 = a;
            if (b != this.g8) {
                this.gh("ActualUnderlineColor", b, a);
            }
        }
        get c3() {
            return this.b8;
        }
        set c3(a) {
            let b = this.b8;
            this.b8 = a;
            if (b != this.b8) {
                this.gh("UnderlineOpacity", b, a);
            }
        }
        get ci() {
            return this.by;
        }
        set ci(a) {
            let b = this.by;
            this.by = a;
            if (b != this.by) {
                this.gh("ActualUnderlineOpacity", b, a);
            }
        }
        get ii() {
            return this.hk;
        }
        set ii(a) {
            let b = this.hk;
            this.hk = a;
            if (b != this.hk) {
                this.gh("UnderlineRippleColor", b, a);
            }
        }
        get hv() {
            return this.g9;
        }
        set hv(a) {
            let b = this.g9;
            this.g9 = a;
            if (b != this.g9) {
                this.gh("ActualUnderlineRippleColor", b, a);
            }
        }
        get c4() {
            return this.b9;
        }
        set c4(a) {
            let b = this.b9;
            this.b9 = a;
            if (b != this.b9) {
                this.gh("UnderlineRippleOpacity", b, a);
            }
        }
        get cj() {
            return this.bz;
        }
        set cj(a) {
            let b = this.bz;
            this.bz = a;
            if (b != this.bz) {
                this.gh("ActualUnderlineRippleOpacity", b, a);
            }
        }
        get c5() {
            return this.ca;
        }
        set c5(a) {
            let b = this.ca;
            this.ca = a;
            if (b != this.ca) {
                this.gh("UnderlineRippleWidth", b, a);
            }
        }
        get ck() {
            return this.b0;
        }
        set ck(a) {
            let b = this.b0;
            this.b0 = a;
            if (b != this.b0) {
                this.gh("ActualUnderlineRippleWidth", b, a);
            }
        }
        get c6() {
            return this.cb;
        }
        set c6(a) {
            let b = this.cb;
            this.cb = a;
            if (b != this.cb) {
                this.gh("UnderlineWidth", b, a);
            }
        }
        get cl() {
            return this.b1;
        }
        set cl(a) {
            let b = this.b1;
            this.b1 = a;
            if (b != this.b1) {
                this.gh("ActualUnderlineWidth", b, a);
            }
        }
        get bg() {
            return this.a7;
        }
        set bg(a) {
            let b = this.a7;
            this.a7 = a;
            if (b != this.a7) {
                this.gh("AllowFilter", b, a);
            }
        }
        get x() {
            return this.w;
        }
        set x(a) {
            let b = this.w;
            this.w = a;
            if (b != this.w) {
                this.gh("SortMode", enumGetBox(SortMode_$type, b), enumGetBox(SortMode_$type, this.w));
            }
        }
        get fv() {
            return this.dg;
        }
        set fv(a) {
            let b = this.dg;
            this.dg = a;
            if (b != this.dg) {
                this.gh("TextField", b, a);
            }
        }
        get text() {
            return this.df;
        }
        set text(a) {
            let b = this.df;
            this.df = a;
            if (b != this.df) {
                this.gh("Text", b, a);
            }
        }
        get j() {
            return this.d;
        }
        set j(a) {
            let b = this.d;
            this.d = a;
            if (b != this.d) {
                this.gh("ValueField", b, a);
            }
        }
        get e() {
            return this.a;
        }
        set e(a) {
            let b = this.a;
            this.a = a;
            if (b != this.a) {
                this.gh("ActualValueField", b, a);
            }
        }
        get value() {
            return this.c8;
        }
        set value(a) {
            let b = this.c8;
            this.c8 = a;
            if (b != this.c8) {
                this.gh("Value", b, a);
            }
        }
        get ac() {
            return this.aa;
        }
        set ac(a) {
            let b = this.aa;
            this.aa = a;
            if (b != this.aa) {
                this.gh("DisplayType", enumGetBox(InputGroupDisplayType_$type, b), enumGetBox(InputGroupDisplayType_$type, a));
            }
        }
        da(a, b) {
            let c = new FastReflectionHelper(false, b);
            return c.getPropertyValue(a);
        }
        p() {
            let a = this.e5();
            return this.o(a);
        }
        e5() {
            return this.e4(this.fv);
        }
        db(a) {
            let b = this.i();
            if (null == b || b.length == 0) {
                return null;
            }
            let c = new List$1(Base.$, 0);
            for (let e = 0; e < b.length; e++) {
                let d = b[e];
                let f = this.da(a, d);
                c.add1(f);
            }
            if (c.count == 1) {
                return c._inner[0];
            }
            return c.toArray();
        }
        e3(a) {
            let b = this.e5();
            let c;
            if (null != b) {
                let d = this.da(a, b);
                c = null != d ? d.toString() : null;
            }
            else {
                c = null;
            }
            return c;
        }
        o(a) {
            let b = this.v.e;
            if (null == b) {
                return null;
            }
            let c = b.actualColumns;
            if (null == c || 0 == c.count) {
                return null;
            }
            if (stringIsNullOrEmpty(a)) {
                return c._inner[0];
            }
            for (let d of fromEnum(c)) {
                if (0 == StringComparer.b.compare(d.lo, a)) {
                    return d;
                }
            }
            return null;
        }
        e4(a) {
            if (stringIsNullOrEmpty(a)) {
                let b = this.actualDataSource;
                if (null == b) {
                    return null;
                }
                let c = b.actualSchema;
                if (null == c) {
                    return null;
                }
                let d = c.propertyNames;
                if (0 == d.length) {
                    return null;
                }
                return d[0];
            }
            return a;
        }
        h(a) {
            let b = new List$1(String_$type, 0);
            if (null == a || a.length == 0) {
                let c = this.e4(null);
                if (stringIsNullOrEmpty(c)) {
                    return null;
                }
                b.add(c);
                return b.toArray();
            }
            for (let e = 0; e < a.length; e++) {
                let d = a[e];
                let f = this.e4(d);
                if (null != f) {
                    b.add(f);
                }
            }
            if (b.count > 0) {
                return b.toArray();
            }
            return null;
        }
        i() {
            let a = this.j;
            return this.h(a);
        }
        gi(a) {
            this.gl(2, a);
        }
        gl(a, b) {
            if (this.bm) {
                return;
            }
            this.bm = true;
            try {
                switch (a) {
                    case 2:
                        {
                            let c = b;
                            let d;
                            let e;
                            if (null != c) {
                                d = this.e3(c);
                                e = this.db(c);
                            }
                            else {
                                d = stringEmpty();
                                e = null;
                            }
                            if (this.text != d) {
                                this.text = d;
                            }
                            if (this.value != e) {
                                this.value = e;
                            }
                        }
                        break;
                    case 1:
                        this.v.cl(b.toString());
                        break;
                    case 0:
                        this.v.ck(b);
                        break;
                }
            }
            finally {
                this.bm = false;
            }
            this.v.cj();
        }
        gq(a) {
            this.text = a;
        }
        gs() {
            this.ax = (null == this.a4) ? this.a1 : this.a4;
            this.av = (null == this.a2) ? this.a1 : this.a2;
        }
        gr() {
        }
        closeUp() {
            this.v.az();
        }
        destroy() {
            this.provideRenderer(null);
        }
        dropDown() {
            this.v.a3();
        }
        select() {
            this.v.ce();
        }
        notifySizeChanged() {
            this.v.bq();
        }
        provideRenderer(a) {
            this.v.b4(a);
            this.actualNoMatchesFoundLabel = !stringIsNullOrWhiteSpace(this.a6.b1("NoMatches")) ? this.a6.b1("NoMatches") : "No Matches Found";
        }
        c9() {
            return this.l();
        }
        ew() {
            let a = this.l();
            return a.am();
        }
        l() {
            let a = new MultiColumnComboVisualModelExport();
            a.a = AppearanceHelper.a(this.hl);
            a.j = this.ah;
            a.b = AppearanceHelper.a(this.hm);
            a.p = this.cc;
            a.columnHeadersVisible = this.columnHeadersVisible;
            a.au = this.il;
            a.at = this.gw;
            a.k = this.am;
            a.dropDownButtonVisible = this.dropDownButtonVisible;
            a.q = this.ce;
            a.aa = this.fb;
            a.c = AppearanceHelper.a(this.hq);
            a.actualLabelVisible = this.actualLabelVisible;
            a.actualNoMatchesFoundLabel = this.actualNoMatchesFoundLabel;
            a.d = AppearanceHelper.a(this.hr);
            a.e = AppearanceHelper.a(this.hs);
            a.al = this.fn;
            a.rowSeparatorsVisible = this.rowSeparatorsVisible;
            a.f = AppearanceHelper.a(this.ht);
            a.g = AppearanceHelper.a(this.hu);
            a.r = this.ci;
            a.h = AppearanceHelper.a(this.hv);
            a.s = this.cj;
            a.t = this.ck;
            a.u = this.cl;
            a.an = this.text;
            a.y = this.value;
            a.i = this.v.e.exportVisualModel();
            if (this.av != null) {
                let b = this.av;
                if (this.v != null && b.q == null) {
                    let c = this.v.ad;
                    let d = FontUtil.getFontInfoFromString(c, b.fontString);
                    b.q = d.q;
                    b.f = d.f;
                    b.r = d.r;
                    b.t = d.t;
                    b.u = d.u;
                    b.v = d.v;
                }
                if (b.q != null) {
                    a.ab = b.q;
                }
                if (!isNaN_(b.f)) {
                    a.v = b.f;
                }
                if (b.v != null) {
                    a.af = b.v;
                }
                if (b.t != null) {
                    a.ad = b.t;
                }
                if (b.r != null) {
                    a.ac = b.t;
                }
            }
            if (this.aw != null) {
                let e = this.aw;
                if (this.v != null && e.q == null) {
                    let f = this.v.ad;
                    let g = FontUtil.getFontInfoFromString(f, e.fontString);
                    e.q = g.q;
                    e.f = g.f;
                    e.r = g.r;
                    e.t = g.t;
                    e.u = g.u;
                    e.v = g.v;
                }
                if (e.q != null) {
                    a.ag = e.q;
                }
                if (!isNaN_(e.f)) {
                    a.w = e.f;
                }
                if (e.v != null) {
                    a.ak = e.v;
                }
                if (e.t != null) {
                    a.ai = e.t;
                }
                if (e.r != null) {
                    a.ah = e.t;
                }
            }
            if (this.ax != null) {
                let h = this.ax;
                if (this.v != null && h.q == null) {
                    let i = this.v.ad;
                    let j = FontUtil.getFontInfoFromString(i, h.fontString);
                    h.q = j.q;
                    h.f = j.f;
                    h.r = j.r;
                    h.t = j.t;
                    h.u = j.u;
                    h.v = j.v;
                }
                if (h.q != null) {
                    a.ao = h.q;
                }
                if (!isNaN_(h.f)) {
                    a.x = h.f;
                }
                if (h.v != null) {
                    a.as = h.v;
                }
                if (h.t != null) {
                    a.aq = h.t;
                }
                if (h.r != null) {
                    a.ap = h.t;
                }
            }
            return a;
        }
        get bn() {
            return this.a9;
        }
        set bn(a) {
            let b = this.a9;
            this.a9 = a;
            if (b != this.a9) {
                this.gh("IsFixed", b, this.a9);
            }
        }
        get bo() {
            return this.ba;
        }
        set bo(a) {
            let b = this.ba;
            this.ba = a;
            if (b != this.ba) {
                this.gh("OpenAsChild", b, this.ba);
            }
        }
        get br() {
            return this.bd;
        }
        set br(a) {
            let b = this.bd;
            this.bd = a;
            if (b != this.bd) {
                this.gh("UseTopLayer", b, this.bd);
            }
        }
        ge(a) {
            if (null != this.gotFocus) {
                this.gotFocus(this, a);
            }
        }
        gg(a) {
            if (null != this.lostFocus) {
                this.lostFocus(this, a);
            }
        }
        gk(a) {
            if (null != this.textValueChanged) {
                this.textValueChanged(this, a);
            }
        }
        gj(a) {
            if (null != this.selectedValueChanged) {
                this.selectedValueChanged(this, a);
            }
        }
        gh(a, b, c) {
            if (this.propertyChanged != null) {
                this.propertyChanged(this, new PropertyChangedEventArgs(a));
            }
            this.gm(a, b, c);
        }
        gf(a) {
            if (null != this.keyDown) {
                this.keyDown(this, a);
            }
        }
        gd(a) {
            if (null != this.changing) {
                this.changing(this, a);
            }
        }
    }
    MultiColumnComboBox.$t = /*@__PURE__*/ markType(MultiColumnComboBox, 'MultiColumnComboBox', Base.$, [INotifyPropertyChanged_$type]);
    MultiColumnComboBox.ag = 1;
    MultiColumnComboBox.hy = /*@__PURE__*/ ThemeResolver.ah(MultiColumnComboBox.ag, XLabel.dd, XLabel.c6);
    MultiColumnComboBox.h0 = /*@__PURE__*/ ThemeResolver.ah(MultiColumnComboBox.ag, XLabel.dd, XLabel.c6);
    MultiColumnComboBox.hz = /*@__PURE__*/ BrushUtil.h(255, 255, 255, 255);
    MultiColumnComboBox.ay = null;
    MultiColumnComboBox.d3 = "ActualNoMatchesFoundLabelBackgroundColor";
    MultiColumnComboBox.az = null;
    MultiColumnComboBox.h8 = /*@__PURE__*/ BrushUtil.h(221, 0, 0, 0);
    return MultiColumnComboBox;
})();
/**
 * @hidden
 */
export let MultiColumnComboBoxDataSourceNotificationHandler = /*@__PURE__*/ (() => {
    class MultiColumnComboBoxDataSourceNotificationHandler extends Base {
        constructor(a, b) {
            super();
            this.a = null;
            this.b = false;
            this.a = a;
            this.b = b;
        }
        rangeActualized(a, b) {
            if (!this.b) {
                this.a.b0(a, b);
            }
            else {
                this.a.bu(a, b);
            }
        }
        notifySetItem(a, b, c) {
            if (!this.b) {
                this.a.b5(a, b, c);
            }
            else {
                this.a.bx(a, b, c);
            }
        }
        notifyClearItems() {
            if (!this.b) {
                this.a.bs();
            }
            else {
                this.a.bt();
            }
        }
        notifyInsertItem(a, b) {
            if (!this.b) {
                this.a.b1(a, b);
            }
            else {
                this.a.bv(a, b);
            }
        }
        notifyRemoveItem(a, b) {
            if (!this.b) {
                this.a.b3(a, b);
            }
            else {
                this.a.bw(a, b);
            }
        }
    }
    MultiColumnComboBoxDataSourceNotificationHandler.$t = /*@__PURE__*/ markType(MultiColumnComboBoxDataSourceNotificationHandler, 'MultiColumnComboBoxDataSourceNotificationHandler', Base.$, [IDataSourceUpdateNotifier_$type]);
    return MultiColumnComboBoxDataSourceNotificationHandler;
})();