/*
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, INotifyPropertyChanged_$type, BaseError, PropertyChangedEventArgs, Delegate_$type, fromEnum, String_$type, runOn, delegateCombine, EnumUtil, typeCast, delegateRemove, enumGetBox, markType, TypeRegistrar, getInstanceType } from "igniteui-angular-core";
import { ArrayExtension } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { Brush } from "igniteui-angular-core";
import { XamDataChart } from "./XamDataChart";
import { DataSeriesType_$type } from "igniteui-angular-core";
import { MarkerType_$type } from "./MarkerType";
import { Color } from "igniteui-angular-core";
import { ColorUtil } from "igniteui-angular-core";
import { BrushCollection } from "igniteui-angular-core";
import { Rect } from "igniteui-angular-core";
import { HorizontalAlignment_$type } from "igniteui-angular-core";
import { UnknownValuePlotting_$type } from "igniteui-angular-core";
import { SeriesOutlineMode_$type } from "./SeriesOutlineMode";
import { MarkerOutlineMode_$type } from "./MarkerOutlineMode";
import { MarkerFillMode_$type } from "./MarkerFillMode";
import { TrendLineType_$type } from "igniteui-angular-core";
import { ComputedPlotAreaMarginMode_$type } from "./ComputedPlotAreaMarginMode";
import { SeriesHighlightingMode_$type } from "./SeriesHighlightingMode";
import { SeriesHighlightingBehavior_$type } from "./SeriesHighlightingBehavior";
import { LegendHighlightingMode_$type } from "./LegendHighlightingMode";
import { ToolTipType_$type } from "./ToolTipType";
import { CrosshairsDisplayMode_$type } from "./CrosshairsDisplayMode";
import { Series } from "./Series";
import { DeviceUtils } from "igniteui-angular-core";
import { DataSeriesAdapter } from "igniteui-angular-core";
import { ObservableCollection$1 } from "igniteui-angular-core";
import { Random } from "igniteui-angular-core";
import { ObservableColorCollection } from "igniteui-angular-core";
import { BrushCollectionUtil } from "igniteui-angular-core";
import { ChartSeriesEventArgs } from "./ChartSeriesEventArgs";
import { DomainChartSeriesPointerEventArgs } from "./DomainChartSeriesPointerEventArgs";
import { BrushUtil } from "igniteui-angular-core";
import { IUnknownValuePlotting_$type } from "igniteui-angular-core";
import { ITrendLineSeries_$type } from "./ITrendLineSeries";
import { isNaN_ } from "igniteui-angular-core";
import { stringIsNullOrEmpty, stringEmpty } from "igniteui-angular-core";
/**
 * @hidden
 */
export let DomainChart = /*@__PURE__*/ (() => {
    class DomainChart extends Base {
        constructor() {
            super();
            this.er = null;
            this.eq = null;
            this.cp = null;
            this.da = NaN;
            this.ep = null;
            this.dn = 0;
            this.dp = 0;
            this.dq = 0;
            this.dm = 0;
            this.di = 0;
            this.dk = 0;
            this.dj = 0;
            this.dh = 0;
            this.jt = null;
            this.ju = null;
            this.c8 = NaN;
            this.dr = NaN;
            this.dg = NaN;
            this.c7 = NaN;
            this.ek = 0;
            this.bj = null;
            this.eg = null;
            this.ck = false;
            this.am = null;
            this.e5 = null;
            this.e7 = null;
            this.bh = null;
            this.ct = null;
            this.propertyChanged = null;
            this.ej = 0;
            this.ce = false;
            this.ai = null;
            this.co = null;
            this.seriesAdded = null;
            this.seriesRemoved = null;
            this.seriesPointerEnter = null;
            this.seriesPointerLeave = null;
            this.seriesPointerMove = null;
            this.seriesPointerDown = null;
            this.seriesPointerUp = null;
            this.calloutStyleUpdating = null;
            this.cs = null;
            this.bm = null;
            this.bp = false;
            this.cz = null;
            this.cx = null;
            this.b = null;
            this.a = null;
            this.g = null;
            this.j = null;
            this.e = null;
            this.f = null;
            this.ak = null;
            this.bv = true;
            this.bx = true;
            this.bz = false;
            this.b0 = false;
            this.bw = false;
            this.j3 = new Rect(0, 0, 0, 1, 1);
            this.e6 = null;
            this.e4 = null;
            this.jq = 1;
            this.jp = 1;
            this.bf = 0;
            this.df = 1;
            this.dl = NaN;
            this.a9 = 0;
            this.as = 0;
            this.aq = 0;
            this.c9 = NaN;
            this.aw = null;
            this.h = null;
            this.i = null;
            this.ei = 400;
            this.bo = false;
            this.k = null;
            this.bd = 0;
            this.ds = DeviceUtils.g(1.5);
            this.bn = true;
            this.dc = NaN;
            this.de = NaN;
            this.dd = NaN;
            this.db = NaN;
            this.x = 0;
            this.a7 = 0;
            this.a5 = 0;
            this.ao = 0;
            this.by = false;
            this.c5 = DeviceUtils.g(2);
            this.c6 = DeviceUtils.g(60);
            this.el = 7;
            this.bb = 0;
            this.z = 0;
            this.bt = true;
            this.bs = false;
            this.bu = false;
            this.br = false;
            this.bq = false;
            this.cy = null;
            this.e2 = null;
            this.e3 = null;
            this.e1 = "CalloutLabel";
            this.e0 = "CalloutContent";
            this.cs = new List$1(Delegate_$type, 0);
            this.ia();
            this.hw();
        }
        provideContainer(a) {
            if (a == null) {
                this.is((b) => b.provideContainer(null));
                return;
            }
            let b = this.er;
            this.er = a;
            if (this.bm != null && this.er != null && b == null) {
                this.er.setTimeout(this.bm, 0);
                this.bm = null;
            }
            let c = ((() => {
                let $ret = new XamDataChart();
                $ret.dl = true;
                return $ret;
            })());
            c.provideContainer(a);
            this.dataChart = c;
            this.ib();
        }
        destroy() {
            this.provideContainer(null);
        }
        ib() {
            if (this.dataChart == null) {
                return;
            }
            let a = this.dataChart.b8.j.e();
            this.n = a.a;
            this.r = a.f;
            this.p = a.b;
            this.q = a.c;
            this.t = a.g;
            this.ic();
        }
        ic() {
        }
        h8(a) {
            if (a == null) {
                return;
            }
            a.fs = this.ed;
            a.fq = this.eb;
            a.fr = this.ec;
            a.fp = this.ea;
            a.oi = this.j1;
            a.fm = this.d6;
            a.fo = this.d8;
            a.fn = this.d7;
            a.fl = this.d5;
            a.oh = this.j0;
            if (!isNaN_(this.dy)) {
                a.fi = this.dy;
            }
        }
        h5() {
        }
        ie(a, b) {
            a.gj = this.en;
            a.b8 = this.bk;
        }
        i0(a, b, c) {
            switch (a) {
                case "TitleTopMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fs = this.ed;
                    }
                    break;
                case "TitleLeftMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fq = this.eb;
                    }
                    break;
                case "PixelScalingRatio":
                    if (this.dataChart != null) {
                        this.is((d) => d.fi = this.dy);
                    }
                    break;
                case "TitleRightMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fr = this.ec;
                    }
                    break;
                case "TitleBottomMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fp = this.ea;
                    }
                    break;
                case "TitleTextColor":
                    if (this.dataChart != null) {
                        this.dataChart.oi = this.j1;
                    }
                    break;
                case "SubtitleLeftMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fm = this.d6;
                    }
                    break;
                case "SubtitleTopMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fo = this.d8;
                    }
                    break;
                case "SubtitleRightMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fn = this.d7;
                    }
                    break;
                case "SubtitleBottomMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fl = this.d5;
                    }
                    break;
                case "SubtitleTextColor":
                    if (this.dataChart != null) {
                        this.dataChart.oh = this.j0;
                    }
                    break;
                case "LeftMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fh = this.dw;
                    }
                    break;
                case "TopMargin":
                    if (this.dataChart != null) {
                        this.dataChart.ft = this.ee;
                    }
                    break;
                case "RightMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fk = this.d4;
                    }
                    break;
                case "BottomMargin":
                    if (this.dataChart != null) {
                        this.dataChart.fd = this.dv;
                    }
                    break;
                case "TransitionDuration":
                    this.h1((d) => d.gj = this.en);
                    break;
                case "TransitionEasingFunction":
                    this.h1((d) => d.b8 = this.bk);
                    break;
            }
        }
        get tooltipTemplate() {
            return ArrayExtension.getModulus$1(Base.$, this.tooltipTemplates, 0);
        }
        set tooltipTemplate(a) {
            this.tooltipTemplates = a == null ? null : new List$1(Base.$, 1, [a]);
        }
        get tooltipTemplates() {
            return this.cp;
        }
        set tooltipTemplates(a) {
            let b = this.tooltipTemplates;
            if (a != b) {
                this.cp = a;
                this.iz("TooltipTemplates", b, this.tooltipTemplates);
            }
        }
        get dy() {
            return this.da;
        }
        set dy(a) {
            let b = this.da;
            if (a != b) {
                this.da = a;
                this.iz("PixelScalingRatio", b, this.dy);
            }
        }
        get toolTip() {
            return this.ep;
        }
        set toolTip(a) {
            let b = this.toolTip;
            if (b != a) {
                this.ep = a;
                this.iz("ToolTip", b, this.toolTip);
            }
        }
        get eb() {
            return this.dn;
        }
        set eb(a) {
            let b = this.eb;
            if (a != b) {
                this.dn = a;
                this.iz("TitleLeftMargin", b, this.eb);
            }
        }
        get ec() {
            return this.dp;
        }
        set ec(a) {
            let b = this.ec;
            if (a != b) {
                this.dp = a;
                this.iz("TitleRightMargin", b, this.ec);
            }
        }
        get ed() {
            return this.dq;
        }
        set ed(a) {
            let b = this.ed;
            if (a != b) {
                this.dq = a;
                this.iz("TitleTopMargin", b, this.ed);
            }
        }
        get ea() {
            return this.dm;
        }
        set ea(a) {
            let b = this.ea;
            if (a != b) {
                this.dm = a;
                this.iz("TitleBottomMargin", b, this.ea);
            }
        }
        get d6() {
            return this.di;
        }
        set d6(a) {
            let b = this.d6;
            if (a != b) {
                this.di = a;
                this.iz("SubtitleLeftMargin", b, this.d6);
            }
        }
        get d8() {
            return this.dk;
        }
        set d8(a) {
            let b = this.d8;
            if (a != b) {
                this.dk = a;
                this.iz("SubtitleTopMargin", b, this.d8);
            }
        }
        get d7() {
            return this.dj;
        }
        set d7(a) {
            let b = this.d7;
            if (a != b) {
                this.dj = a;
                this.iz("SubtitleRightMargin", b, this.d7);
            }
        }
        get d5() {
            return this.dh;
        }
        set d5(a) {
            let b = this.d5;
            if (a != b) {
                this.dh = a;
                this.iz("SubtitleBottomMargin", b, this.d5);
            }
        }
        get j0() {
            return this.jt;
        }
        set j0(a) {
            let b = this.j0;
            if (a != b) {
                this.jt = a;
                this.iz("SubtitleTextColor", b, this.j0);
            }
        }
        get j1() {
            return this.ju;
        }
        set j1(a) {
            let b = this.j1;
            if (a != b) {
                this.ju = a;
                this.iz("TitleTextColor", b, this.j1);
            }
        }
        get_dw() {
            return this.c8;
        }
        set_dw(a) {
            let b = this.dw;
            if (a != b) {
                this.c8 = a;
                this.iz("LeftMargin", b, this.dw);
            }
        }
        get dw() {
            return this.get_dw();
        }
        set dw(a) {
            this.set_dw(a);
        }
        get ee() {
            return this.dr;
        }
        set ee(a) {
            let b = this.ee;
            if (a != b) {
                this.dr = a;
                this.iz("TopMargin", b, this.ee);
            }
        }
        get d4() {
            return this.dg;
        }
        set d4(a) {
            let b = this.d4;
            if (a != b) {
                this.dg = a;
                this.iz("RightMargin", b, this.d4);
            }
        }
        get dv() {
            return this.c7;
        }
        set dv(a) {
            let b = this.dv;
            if (a != b) {
                this.c7 = a;
                this.iz("BottomMargin", b, this.dv);
            }
        }
        get en() {
            return this.ek;
        }
        set en(a) {
            let b = this.en;
            if (a != b) {
                this.ek = a;
                this.iz("TransitionDuration", b, this.en);
            }
        }
        get bk() {
            return this.bj;
        }
        set bk(a) {
            let b = this.bk;
            if (a != b) {
                this.bj = a;
                this.iz("TransitionEasingFunction", b, this.bk);
            }
        }
        h9(a) {
            if (this.dataChart == null) {
                return;
            }
            a.h5 = this.hd;
            a.ht = this.g2;
        }
        ig(a, b) {
            this.ih(a, b);
        }
        h6() {
        }
        ih(a, b) {
            if (a == null) {
                return;
            }
            let toolTipTemplate_ = ArrayExtension.getModulus$1(Base.$, this.tooltipTemplates, b);
            if (toolTipTemplate_ == null) {
                a.du = true;
            }
            else {
                let series_ = a;
                a.du = false;
                series_.externalObject.tooltipTemplate = toolTipTemplate_;
            }
        }
        jn(a, b, c) {
        }
        et(a) {
            return a;
            return null;
        }
        eh(a) {
            return null;
        }
        i1(a, b, c) {
            switch (a) {
                case "SubtitleTextStyle":
                    if (this.dataChart != null) {
                        this.dataChart.ht = this.g2;
                    }
                    break;
                case "TitleTextStyle":
                    if (this.dataChart != null) {
                        this.dataChart.h5 = this.hd;
                    }
                    break;
                case "TooltipTemplate":
                    if (this.ck) {
                        return;
                    }
                    this.ck = true;
                    this.tooltipTemplate = this.et(this.tooltipTemplate);
                    this.ck = false;
                    if (this.dataChart != null) {
                        this.dataChart.f8 = this.tooltipTemplate;
                    }
                    this.toolTip = this.tooltipTemplate;
                    break;
                case "ToolTip":
                    this.h2((d, e) => this.ih(d, e));
                    break;
                case "TooltipTemplates":
                    if (this.tooltipTemplates == null) {
                        break;
                    }
                    this.ck = true;
                    this.h2((d, e) => {
                        let f = this.et(ArrayExtension.getModulus$1(Base.$, this.tooltipTemplates, e));
                        let series_ = d;
                        let templ_ = f;
                        series_.externalObject.tooltipTemplate = templ_;
                    });
                    this.ck = false;
                    break;
            }
        }
        get an() {
            return this.am;
        }
        set an(a) {
            let b = this.an;
            if (a != b) {
                this.am = a;
                this.iz("Widget", b, this.an);
            }
        }
        get g2() {
            return this.e5;
        }
        set g2(a) {
            let b = this.g2;
            if (a != b) {
                this.e5 = a;
                this.iz("SubtitleTextStyle", b, this.g2);
            }
        }
        get hd() {
            return this.e7;
        }
        set hd(a) {
            let b = this.hd;
            if (a != b) {
                this.e7 = a;
                this.iz("TitleTextStyle", b, this.hd);
            }
        }
        get dataChart() {
            return this.bh;
        }
        set dataChart(a) {
            let b = this.dataChart;
            if (b != a) {
                this.bh = a;
                this.iz("DataChart", b, this.dataChart);
            }
        }
        onDetachedFromUI() {
            this.is((a) => a.onDetachedFromUI());
        }
        onAttachedToUI() {
            this.is((a) => a.onAttachedToUI());
        }
        ia() {
            this.ct = new List$1(MarkerType_$type, 0);
            this.ac = new DataSeriesAdapter().e;
            if (this.d != null) {
                this.ac.includedProperties = this.d;
            }
            if (this.c != null) {
                this.ac.excludedProperties = this.c;
            }
            this.ac.supportedSeriesTypes = this.cv.toArray();
            this.ac.rules.clear();
            for (let a of fromEnum(this.cu)) {
                this.ac.rules.add(a);
            }
            let b = new List$1(String_$type, 0);
            for (let c of fromEnum(this.ac.rules)) {
                b.add(getInstanceType(c).typeName);
            }
            let d = this.ac.dataSeries;
            d.collectionChanged = delegateCombine(d.collectionChanged, runOn(this, this.iv));
        }
        cg(a) {
            return a != 24 && this.cv.contains(a);
        }
        notifyResized() {
            this.is((a) => a.notifyContainerResized());
        }
        iq() {
            this.is((a) => {
                for (let b = 0; b < a.series.count; b++) {
                    a.series._inner[b].kc();
                }
            });
        }
        h0() {
            if (this.dataChart == null) {
                return;
            }
            if (this.ce) {
                this.jh();
            }
            this.dataChart.flush();
        }
        h3() {
            if (this.dataChart == null) {
                return;
            }
            this.dataChart.i4();
        }
        i6(a) {
            if (this.propertyChanged != null) {
                this.propertyChanged(this, new PropertyChangedEventArgs(a));
            }
        }
        h1(a) {
            this.h2((b, c) => a(b));
        }
        h2(a) {
            if (this.dataChart == null) {
                return;
            }
            for (let b = 0; b < this.dataChart.series.count; b++) {
                a(this.dataChart.series._inner[b], b);
            }
        }
        is(a) {
            this.it(a, true);
        }
        it(a, b) {
            this.iu(a, b, null);
        }
        iu(a, b, c) {
            if (this.dataChart == null) {
                return;
            }
            a(this.dataChart);
        }
        ch(a) {
            if (!this.cg(a.suggestedSeries)) {
                return false;
            }
            let b = a.data;
            if (b == null) {
                return false;
            }
            return true;
        }
        cb() {
            if (this.dataChart == null) {
                return false;
            }
            return true;
        }
        f0(a) {
            let b = "series_" + (this.dataChart.series.count + 1) + "_" + EnumUtil.getName(DataSeriesType_$type, a.suggestedSeries);
            return b;
        }
        f1(a, b) {
            if (this.cc && this.cn) {
                let c = "";
                let d = 5 + Math.round(DomainChart.ey.nextDouble() * 4);
                for (let e = 0; e < d; e++) {
                    c = c + "\u2588";
                }
                return c;
            }
            if (stringIsNullOrEmpty(a.title)) {
                let f = EnumUtil.getName(DataSeriesType_$type, b);
                return f + (this.dataChart.series.count + 1);
            }
            else {
                return a.title;
            }
        }
        fz() {
            return stringEmpty();
        }
        jh() {
            if (this.dataChart == null) {
                return;
            }
            this.ce = false;
            this.jj();
            if (this.actualItemsSource == null) {
                return;
            }
            let a = new List$1(MarkerType_$type, 0);
            for (let b of fromEnum(this.ac.dataSeries)) {
                a.add(this.au(b.suggestedMarker));
            }
            this.ct = a;
            let c = 0;
            for (let d of fromEnum(this.ac.dataSeries)) {
                if (!this.ch(d)) {
                    continue;
                }
                if (d.index < 0) {
                    d.index = c;
                }
                this.jf(d);
                this.jg(d);
                c++;
            }
            this.jo();
            this.h2(runOn(this, this.id));
        }
        a4(seriesType_) {
            return (this.externalObject.createSeries(seriesType_).i);
        }
        ay() {
            return this.a4(28);
        }
        a0() {
            return this.a4(27);
        }
        a1() {
            return this.a4(29);
        }
        a2() {
            return this.a4(25);
        }
        az() {
            return this.a4(26);
        }
        get aj() {
            if (TypeRegistrar.isRegistered("AnnotationLayerProxy")) {
                return TypeRegistrar.create("AnnotationLayerProxy");
            }
            else {
                throw new BaseError(1, "annoation layer module is not loaded, but is required.");
            }
        }
        get b9() {
            return (TypeRegistrar.isRegistered("AnnotationLayerProxy"));
        }
        ca(a) {
            if (!this.b9) {
                return false;
            }
            return this.aj.matchesType(a);
        }
        jo() {
            let a = this.cr("", true);
            if (a != null) {
                for (let b = 0; b < a.count; b++) {
                    this.dataChart.series.add(a._inner[b]);
                }
            }
        }
        cr(a, b) {
            if (!this.b9) {
                return null;
            }
            let c = new List$1(Series.$, 0);
            if (b) {
                if (this.br) {
                    let d = 1;
                    if (this.cy == null) {
                        for (let e of fromEnum(this.dataChart.series)) {
                            let f = this.ay();
                            this.aj.setTargetSeries(f, e);
                            this.aj.setCollisionChannel(f, "MainChartCollisionChannel");
                            this.jm(f, e, this.ac.dataSeries._inner[d - 1]);
                            f.name = a + getInstanceType(f).typeName + d.toString();
                            c.add(f);
                            d++;
                        }
                        ;
                    }
                    else {
                        let g = this.ay();
                        this.jm(g, null, this.ac.dataSeries._inner[d - 1]);
                        g.name = a + getInstanceType(g).typeName + d.toString();
                        c.add(g);
                    }
                }
            }
            switch (this.z) {
                case 4:
                case 3:
                case 2:
                    {
                        let h = this.a0();
                        this.aj.setUseInterpolation(h, !this.bt);
                        this.aj.setHorizontalLineVisibility(h, (this.z == 2 || this.z == 4) ? 0 : 1);
                        this.aj.setVerticalLineVisibility(h, (this.z == 3 || this.z == 4) ? 0 : 1);
                        this.aj.setIsAxisAnnotationEnabled(h, this.bs);
                        c.add(h);
                        break;
                    }
                case 1:
                case 0:
                    {
                        break;
                    }
            }
            if (this.bu) {
                let i = this.a1();
                c.add(i);
            }
            if (b) {
                switch (this.bb) {
                    case 1:
                        {
                            let j = this.a2();
                            c.add(j);
                            break;
                        }
                    case 2:
                        {
                            let k = this.az();
                            c.add(k);
                            break;
                        }
                    case 3:
                        {
                            this.h1((l) => l.du = false);
                            break;
                        }
                    case 0:
                        {
                            this.h1((l) => l.du = true);
                            break;
                        }
                }
            }
            for (let l of fromEnum(c)) {
                if (stringIsNullOrEmpty(l.name) == false) {
                    continue;
                }
                l.name = a + getInstanceType(l).typeName;
            }
            return c;
        }
        jm(a, b, c) {
            a.itemsSource = this.cy != null ? this.cy : b.itemsSource;
            this.aj.setXMemberPath(a, this.e2);
            this.aj.setYMemberPath(a, this.e3);
            this.aj.setLabelMemberPath(a, this.e1);
            this.aj.setContentMemberPath(a, this.e0);
        }
        jj() {
            this.jk(this.dataChart);
        }
        jk(a) {
            if (a != null && a == this.dataChart) {
                this.ji();
            }
            if (a == null || a.series.count == 0) {
                return;
            }
            this.h1((b) => {
                if (this.ca(b) && this.aj.isCalloutLayer(b)) {
                    this.aj.removeCalloutStyleUpdating(b, runOn(this, this.i5));
                }
                this.jd(b);
            });
            for (let b of fromEnum(a.series)) {
                this.jl(b);
            }
            a.series.clear();
        }
        jl(a) {
            a.itemsSource = null;
            a.legend = null;
            a.ji();
        }
        iv(a, b) {
            if (this.dataChart == null) {
                return;
            }
            let c = b.oldItems == null ? "null" : b.oldItems.count.toString();
            let d = b.newItems == null ? "null" : b.newItems.count.toString();
            if (this.ce) {
                return;
            }
            let e = this.i4(runOn(this, this.hy), this.ce);
            this.ce = e.p1;
        }
        hy() {
            this.jh();
        }
        jv(a) {
            return ArrayExtension.getModulus$1(Brush.$, this.l, a);
        }
        jy(a) {
            return ArrayExtension.getModulus$1(Brush.$, this.m, a);
        }
        jw(a) {
            return ArrayExtension.getModulus$1(Brush.$, this.p, a);
        }
        jx(a) {
            return ArrayExtension.getModulus$1(Brush.$, this.q, a);
        }
        j2(a) {
            let b = new Color();
            if (this.l == null || this.l.count == 0) {
                b = ArrayExtension.getModulus$1(Color.$, this.cq, a);
            }
            else {
                let c = ArrayExtension.getModulus$1(Brush.$, this.l, a);
                if (c == null) {
                    b = ArrayExtension.getModulus$1(Color.$, this.cq, a);
                }
                else {
                    b = ColorUtil.q(c);
                }
            }
            return b;
        }
        bl(a) {
            let b = new ObservableColorCollection();
            b.add(ColorUtil.v(a, 0.5));
            b.add(a);
            return b;
        }
        o(a) {
            let b = this.bl(a);
            let c = BrushCollectionUtil.a(b);
            return c;
        }
        get cq() {
            if (this.co != null) {
                return this.co;
            }
            this.co = new List$1(Color.$, 0);
            this.co.add(ColorUtil.r("#8bdc5c"));
            this.co.add(ColorUtil.r("#8b5bb1"));
            this.co.add(ColorUtil.r("#6db1ff"));
            this.co.add(ColorUtil.r("#f8a15f"));
            this.co.add(ColorUtil.r("#ee5879"));
            this.co.add(ColorUtil.r("#735656"));
            this.co.add(ColorUtil.r("#f7d262"));
            this.co.add(ColorUtil.r("#8ce7d9"));
            this.co.add(ColorUtil.r("#e051a9"));
            this.co.add(ColorUtil.r("#a8a8b7"));
            return this.co;
        }
        es() {
            if (this.dataChart == null) {
                return null;
            }
            return this.dataChart.qx();
        }
        ii(a, b) {
        }
        ij(a, b, c) {
        }
        au(a) {
            if (a == 2) {
                return 3;
            }
            else if (a == 12) {
                return 13;
            }
            else if (a == 6) {
                return 7;
            }
            else if (a == 8) {
                return 9;
            }
            else if (a == 11) {
                return 12;
            }
            else if (a == 1) {
                return 1;
            }
            else if (a == 7) {
                return 8;
            }
            else if (a == 10) {
                return 11;
            }
            else if (a == 4) {
                return 5;
            }
            else if (a == 5) {
                return 6;
            }
            else if (a == 9) {
                return 10;
            }
            else if (a == 3) {
                return 4;
            }
            return 2;
        }
        ip(source_, a, b, c) {
            if (this.ac != null) {
                this.ac.notifySetItem(source_, a, b, c);
            }
            if (this.dataChart != null) {
                this.dataChart.ji(source_, a, b, c);
            }
        }
        ik(source_) {
            if (this.ac != null) {
                this.ac.notifyClearItems(source_);
            }
            if (this.dataChart != null) {
                this.dataChart.jd(source_);
            }
        }
        il(source_, a, b) {
            if (this.ac != null) {
                this.ac.notifyInsertItem(source_, a, b);
            }
            if (this.dataChart != null) {
                this.dataChart.jg(source_, a, b);
            }
        }
        im(source_, a, b) {
            if (this.ac != null) {
                this.ac.notifyRemoveItem(source_, a, b);
            }
            if (this.dataChart != null) {
                this.dataChart.jh(source_, a, b);
            }
        }
        i7(a) {
            if (this.seriesAdded != null && a != null) {
                this.seriesAdded(this, new ChartSeriesEventArgs(a));
            }
        }
        jd(a) {
            if (this.seriesRemoved != null && a != null) {
                this.seriesRemoved(this, new ChartSeriesEventArgs(a));
            }
        }
        i9(a, b) {
            if (this.seriesPointerEnter != null && a != null) {
                this.seriesPointerEnter(this, new DomainChartSeriesPointerEventArgs(a, b));
            }
        }
        ja(a, b) {
            if (this.seriesPointerLeave != null && a != null) {
                this.seriesPointerLeave(this, new DomainChartSeriesPointerEventArgs(a, b));
            }
        }
        jb(a, b) {
            if (this.seriesPointerMove != null && a != null) {
                this.seriesPointerMove(this, new DomainChartSeriesPointerEventArgs(a, b));
            }
        }
        i8(a, b) {
            if (this.seriesPointerDown != null && a != null) {
                this.seriesPointerDown(this, new DomainChartSeriesPointerEventArgs(a, b));
            }
        }
        jc(a, b) {
            if (this.seriesPointerUp != null && a != null) {
                this.seriesPointerUp(this, new DomainChartSeriesPointerEventArgs(a, b));
            }
        }
        i5(a, b) {
            if (this.calloutStyleUpdating != null && a != null) {
                this.calloutStyleUpdating(this, b);
            }
        }
        i3(a) {
            if (!this.cs.contains(a)) {
                this.cs.add(a);
                let b = false;
                let c = this.i4(() => {
                    a();
                    this.cs.remove(a);
                }, b);
                b = c.p1;
            }
        }
        i4(a, b) {
            if (!b) {
                b = true;
                if (this.er != null) {
                    this.er.setTimeout(a, 0);
                }
                else {
                    this.bm = a;
                }
            }
            return {
                p1: b
            };
        }
        get_ci() {
            return true;
        }
        get ci() {
            return this.get_ci();
        }
        h7(a) {
            let b = a == this.dataChart;
            if (b) {
                a.pe = this.l;
            }
            if (b) {
                a.ph = this.m;
            }
            a.pf = this.p;
            a.pg = this.q;
            a.legend = this.legend;
            a.py = this.cd;
            a.p1 = this.cj && this.ci;
            if (a.bj != this.a8 || a.bh != this.a6) {
                a.b8.b4(this.er);
                a.bj = this.a8;
                a.bh = this.a6;
            }
            a.pk = this.y;
            if (!isNaN_(this.d0)) {
                a.qr = this.d0;
            }
            if (!isNaN_(this.d2)) {
                a.qt = this.d2;
            }
            if (!isNaN_(this.d1)) {
                a.qs = this.d1;
            }
            if (!isNaN_(this.dz)) {
                a.qq = this.dz;
            }
            a.a2 = this.ap;
            a.p2 = this.cl;
            a.qm = this.dt;
            a.qn = this.du;
            a.seriesMouseEnter = delegateCombine(a.seriesMouseEnter, (c, d) => this.i9(d.series, d.item));
            a.seriesMouseLeave = delegateCombine(a.seriesMouseLeave, (c, d) => this.ja(d.series, d.item));
            a.seriesMouseMove = delegateCombine(a.seriesMouseMove, (c, d) => this.jb(d.series, d.item));
            a.seriesMouseLeftButtonDown = delegateCombine(a.seriesMouseLeftButtonDown, (c, d) => this.i8(d.series, d.item));
            a.seriesMouseLeftButtonUp = delegateCombine(a.seriesMouseLeftButtonUp, (c, d) => this.jc(d.series, d.item));
            if (b) {
                a.o8 = this.j5;
            }
            if (b) {
                a.hy = this.g6;
            }
            a.nz = this.js;
            if (b) {
                a.hm = this.gv;
            }
            a.ny = this.jr;
            a.pu = this.b1;
            a.c3 = this.b2;
            a.fh = this.dw;
            a.fk = this.d4;
            a.ft = this.ee;
            a.fd = this.dv;
            if (a == this.dataChart) {
                this.jh();
            }
            this.h8(a);
            this.h9(a);
        }
        s(a) {
            if (!this.cm || !this.cn || this.itemsSource != null) {
                return a;
            }
            if (a == null) {
                return null;
            }
            let b = new BrushCollection();
            for (let c of fromEnum(a)) {
                let d = BrushUtil.q(c);
                b.add(d);
            }
            return b;
        }
        jz(a) {
            if (!this.cm || !this.cn || this.itemsSource != null) {
                return a;
            }
            let b = BrushUtil.g(0, 0, 0, 0);
            return b;
        }
        id(a, b) {
            if (!isNaN_(this.d3)) {
                a.fq = this.d3;
            }
            if (!isNaN_(this.d9)) {
                a.fv = this.d9;
            }
            a.bn = this.ba;
            a.lj(this.at);
            a.li(this.ar);
            a.fn = this.dx;
            if (a.isUsableInLegend) {
                a.legend = this.legend;
            }
            if (typeCast(IUnknownValuePlotting_$type, a) !== null) {
                a.unknownValuePlotting = this.bg;
            }
            a.c9 = this.cf;
            if (this.ca(a) && this.aj.isCalloutLayer(a)) {
                this.aj.setCalloutStyleUpdatingEventEnabled(a, this.b4);
                this.aj.addCalloutStyleUpdating(a, runOn(this, this.i5));
            }
            this.hu(a, b);
            this.hv(a, b);
            this.ie(a, b);
            this.ig(a, b);
            this.i7(a);
        }
        get b3() {
            return this.bp;
        }
        hz() {
            if (!this.bp) {
                this.bp = true;
                this.h4();
            }
        }
        h4() {
            this.h5();
            this.h6();
        }
        je(a) {
            this.jk(a);
        }
        hv(a, b) {
            let c = typeCast(ITrendLineSeries_$type, a);
            if (c != null) {
                c.trendLineBrush = ArrayExtension.getModulus$1(Brush.$, this.t, b);
                c.trendLineThickness = this.ef;
                c.trendLineType = this.be;
                c.trendLinePeriod = this.eo;
            }
        }
        av(a, b) {
            if (this.ax == null || this.ax.count == 0) {
                if (this.ct == null || this.ct.count == 0) {
                    return a != null && a.dd ? 1 : 2;
                }
                let c = ArrayExtension.getModulus$1(MarkerType_$type, this.ct, b);
                return c == 2 && a != null && a.dd ? 1 : c;
            }
            return ArrayExtension.getModulus$1(MarkerType_$type, this.ax, b);
        }
        c3() {
            if (this.itemsSource != null) {
                return this.itemsSource;
            }
            if (this.cm) {
                return this.c4();
            }
            return null;
        }
        get_cc() {
            if (this.itemsSource == null && this.cm) {
                if (this.c4() != null) {
                    return true;
                }
            }
            return false;
        }
        get cc() {
            return this.get_cc();
        }
        c4() {
            return null;
        }
        iz(a, b, c) {
            if (this.propertyChanged != null) {
                this.propertyChanged(this, new PropertyChangedEventArgs(a));
            }
            switch (a) {
                case "DataChart":
                    this.je(typeCast(XamDataChart.$, b));
                    this.h7(typeCast(XamDataChart.$, c));
                    break;
                case "ShouldUseSkeletonStyleForMockData":
                case "ShouldDisplayMockData":
                    this.actualItemsSource = this.c3();
                    this.l = this.s(this.n);
                    this.m = this.s(this.r);
                    break;
                case "ActualBrushes":
                    this.iu((d) => d.pe = this.l, true, a);
                    break;
                case "ActualOutlines":
                    this.iu((d) => d.ph = this.m, true, a);
                    break;
                case "ActualItemsSource":
                    if (this.cm) {
                        this.l = this.s(this.n);
                        this.m = this.s(this.r);
                    }
                    this.ac.itemsSource = this.actualItemsSource;
                    break;
                case "ItemsSource":
                    this.actualItemsSource = this.c3();
                    break;
                case "IncludedProperties":
                    this.ac.includedProperties = this.d;
                    break;
                case "ExcludedProperties":
                    this.ac.excludedProperties = this.c;
                    break;
                case "Brushes":
                    this.l = this.s(this.n);
                    break;
                case "Outlines":
                    this.m = this.s(this.r);
                    break;
                case "Legend":
                    this.is((d) => d.legend = this.legend);
                    break;
                case "HighlightingMode":
                    this.is((d) => d.bj = this.a8);
                    break;
                case "HighlightingBehavior":
                    this.is((d) => d.bh = this.a6);
                    break;
                case "LegendHighlightingMode":
                    this.is((d) => d.a2 = this.ap);
                    break;
                case "PlotAreaMarginLeft":
                    this.is((d) => d.qr = this.d0);
                    break;
                case "PlotAreaMarginTop":
                    this.is((d) => d.qt = this.d2);
                    break;
                case "PlotAreaMarginRight":
                    this.is((d) => d.qs = this.d1);
                    break;
                case "PlotAreaMarginBottom":
                    this.is((d) => d.qq = this.dz);
                    break;
                case "ComputedPlotAreaMarginMode":
                    this.is((d) => d.pk = this.y);
                    break;
                case "ShouldAutoExpandMarginForInitialLabels":
                    this.is((d) => d.p2 = this.cl);
                    break;
                case "AutoExpandMarginExtraPadding":
                    this.is((d) => d.qm = this.dt);
                    break;
                case "AutoExpandMarginMaximumValue":
                    this.is((d) => d.qn = this.du);
                    break;
                case "IsHorizontalZoomEnabled":
                    this.is((d) => d.py = this.cd);
                    break;
                case "IsVerticalZoomEnabled":
                    this.is((d) => d.p1 = this.cj);
                    break;
                case "WindowRect":
                    this.it((d) => d.o8 = this.j5, false);
                    break;
                case "Title":
                    this.it((d) => d.hy = this.g6, false);
                    break;
                case "Subtitle":
                    this.it((d) => d.hm = this.gv, false);
                    break;
                case "TitleAlignment":
                    this.is((d) => d.nz = this.js);
                    break;
                case "SubtitleAlignment":
                    this.is((d) => d.ny = this.jr);
                    break;
                case "UnknownValuePlotting":
                    this.h1((d) => {
                        if (typeCast(IUnknownValuePlotting_$type, d) !== null) {
                            d.unknownValuePlotting = this.bg;
                        }
                    });
                    break;
                case "IsSeriesHighlightingEnabled":
                    this.h1((d) => d.c9 = this.cf);
                    break;
                case "Thickness":
                    this.h1((d) => {
                        if (!isNaN_(this.d9)) {
                            d.fv = this.d9;
                        }
                    });
                    break;
                case "OutlineMode":
                    this.h1((d) => d.bn = this.ba);
                    break;
                case "MarkerFillOpacity":
                    this.h1((d) => d.fn = this.dx);
                    break;
                case "MarkerOutlineMode":
                    this.h1((d) => d.lj(this.at));
                    break;
                case "MarkerFillMode":
                    this.h1((d) => d.li(this.ar));
                    break;
                case "Resolution":
                    if (!isNaN_(this.d3)) {
                        this.h1((d) => d.fq = this.d3);
                    }
                    break;
                case "TrendLineBrushes":
                case "TrendLineType":
                case "TrendLineThickness":
                case "TrendLinePeriod":
                    this.h2((d, e) => this.hv(d, e));
                    break;
                case "MarkerMaxCount":
                    this.h2((d, e) => this.hu(d, e));
                    break;
                case "MarkerTypes":
                    let d = typeCast(ObservableCollection$1.$.specialize(MarkerType_$type), b);
                    if (d != null) {
                        d.collectionChanged = delegateRemove(d.collectionChanged, runOn(this, this.ix));
                    }
                    let e = typeCast(ObservableCollection$1.$.specialize(MarkerType_$type), c);
                    if (e != null) {
                        e.collectionChanged = delegateCombine(e.collectionChanged, runOn(this, this.ix));
                    }
                    this.h2((f, g) => this.hu(f, g));
                    break;
                case "MarkerBrushes":
                    this.is((f) => f.pf = this.p);
                    break;
                case "MarkerOutlines":
                    this.is((f) => f.pg = this.q);
                    break;
                case "AlignsGridLinesToPixels":
                    this.is((f) => f.pu = this.b1);
                    break;
                case "AnimateSeriesWhenAxisRangeChanges":
                    this.is((f) => f.c3 = this.b2);
                    break;
                case "ToolTipType":
                case "CrosshairsDisplayMode":
                case "CrosshairsSnapToData":
                case "CrosshairsAnnotationEnabled":
                case "FinalValueAnnotationsVisible":
                case "CalloutsVisible":
                case "CalloutsItemsSource":
                case "CalloutsXMemberPath":
                case "CalloutsYMemberPath":
                case "CalloutsLabelMemberPath":
                case "CalloutsContentMemberPath":
                    let f = this.i4(runOn(this, this.hy), this.ce);
                    this.ce = f.p1;
                    break;
            }
            this.i0(a, b, c);
            this.i1(a, b, c);
        }
        ix(a, b) {
            this.h2((c, d) => this.hu(c, d));
        }
        get itemsSource() {
            return this.cz;
        }
        set itemsSource(a) {
            let b = this.itemsSource;
            if (b != a) {
                this.cz = a;
                this.iz("ItemsSource", b, this.itemsSource);
            }
        }
        get actualItemsSource() {
            return this.cx;
        }
        set actualItemsSource(a) {
            let b = this.actualItemsSource;
            if (b != a) {
                this.cx = a;
                this.iz("ActualItemsSource", b, this.actualItemsSource);
            }
        }
        get d() {
            return this.b;
        }
        set d(a) {
            let b = this.b;
            this.b = a;
            if (b != this.b) {
                this.iz("IncludedProperties", b, this.b);
            }
        }
        get c() {
            return this.a;
        }
        set c(a) {
            let b = this.a;
            this.a = a;
            if (b != this.a) {
                this.iz("ExcludedProperties", b, this.a);
            }
        }
        get n() {
            return this.g;
        }
        set n(a) {
            let b = this.n;
            if (a != b) {
                this.g = a;
                this.iz("Brushes", b, this.n);
            }
        }
        get r() {
            return this.j;
        }
        set r(a) {
            let b = this.r;
            if (a != b) {
                this.j = a;
                this.iz("Outlines", b, this.r);
            }
        }
        get l() {
            return this.e;
        }
        set l(a) {
            let b = this.e;
            if (a != b) {
                this.e = a;
                this.iz("ActualBrushes", b, this.l);
            }
        }
        get m() {
            return this.f;
        }
        set m(a) {
            let b = this.f;
            if (a != b) {
                this.f = a;
                this.iz("ActualOutlines", b, this.m);
            }
        }
        get legend() {
            return this.ak;
        }
        set legend(a) {
            let b = this.legend;
            if (a != b) {
                this.ak = a;
                this.iz("Legend", b, this.legend);
            }
        }
        get_cd() {
            return this.bv;
        }
        set_cd(a) {
            let b = this.cd;
            if (a != b) {
                this.bv = a;
                this.iz("IsHorizontalZoomEnabled", b, this.cd);
            }
        }
        get cd() {
            return this.get_cd();
        }
        set cd(a) {
            this.set_cd(a);
        }
        get_cj() {
            return this.bx;
        }
        set_cj(a) {
            let b = this.cj;
            if (a != b) {
                this.bx = a;
                this.iz("IsVerticalZoomEnabled", b, this.cj);
            }
        }
        get cj() {
            return this.get_cj();
        }
        set cj(a) {
            this.set_cj(a);
        }
        get_cm() {
            return this.bz;
        }
        set_cm(a) {
            let b = this.cm;
            if (a != b) {
                this.bz = a;
                this.iz("ShouldDisplayMockData", b, this.cm);
            }
        }
        get cm() {
            return this.get_cm();
        }
        set cm(a) {
            this.set_cm(a);
        }
        get_cn() {
            return this.b0;
        }
        set_cn(a) {
            let b = this.cn;
            if (a != b) {
                this.b0 = a;
                this.iz("ShouldUseSkeletonStyleForMockData", b, this.cn);
            }
        }
        get cn() {
            return this.get_cn();
        }
        set cn(a) {
            this.set_cn(a);
        }
        get_cf() {
            return this.bw;
        }
        set_cf(a) {
            let b = this.cf;
            if (a != b) {
                this.bw = a;
                this.iz("IsSeriesHighlightingEnabled", b, this.cf);
            }
        }
        get cf() {
            return this.get_cf();
        }
        set cf(a) {
            this.set_cf(a);
        }
        get j5() {
            return this.j3;
        }
        set j5(a) {
            let b = this.j5;
            if (Rect.l_op_Inequality(a, b)) {
                this.j3 = a;
                this.iz("WindowRect", b, this.j5);
            }
        }
        get j4() {
            return this.dataChart != null ? this.dataChart.o7 : Rect.empty;
        }
        get g6() {
            return this.e6;
        }
        set g6(a) {
            let b = this.g6;
            if (a != b) {
                this.e6 = a;
                this.iz("Title", b, this.g6);
            }
        }
        get gv() {
            return this.e4;
        }
        set gv(a) {
            let b = this.gv;
            if (a != b) {
                this.e4 = a;
                this.iz("Subtitle", b, this.gv);
            }
        }
        get js() {
            return this.jq;
        }
        set js(a) {
            let b = this.js;
            if (b != a) {
                this.jq = a;
                this.iz("TitleAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.js));
            }
        }
        get jr() {
            return this.jp;
        }
        set jr(a) {
            let b = this.jr;
            if (b != a) {
                this.jp = a;
                this.iz("SubtitleAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.jr));
            }
        }
        get bg() {
            return this.bf;
        }
        set bg(a) {
            let b = this.bg;
            if (a != b) {
                this.bf = a;
                this.iz("UnknownValuePlotting", enumGetBox(UnknownValuePlotting_$type, b), enumGetBox(UnknownValuePlotting_$type, this.bg));
            }
        }
        get_d3() {
            return this.df;
        }
        set_d3(a) {
            let b = this.d3;
            if (a != b) {
                this.df = a;
                this.iz("Resolution", b, this.d3);
            }
        }
        get d3() {
            return this.get_d3();
        }
        set d3(a) {
            this.set_d3(a);
        }
        get d9() {
            return this.dl;
        }
        set d9(a) {
            let b = this.d9;
            if (a != b) {
                this.dl = a;
                this.iz("Thickness", b, this.d9);
            }
        }
        get ba() {
            return this.a9;
        }
        set ba(a) {
            let b = this.ba;
            if (a != b) {
                this.a9 = a;
                this.iz("OutlineMode", enumGetBox(SeriesOutlineMode_$type, b), enumGetBox(SeriesOutlineMode_$type, this.ba));
            }
        }
        get at() {
            return this.as;
        }
        set at(a) {
            let b = this.at;
            if (a != b) {
                this.as = a;
                this.iz("MarkerOutlineMode", enumGetBox(MarkerOutlineMode_$type, b), enumGetBox(MarkerOutlineMode_$type, this.at));
            }
        }
        get ar() {
            return this.aq;
        }
        set ar(a) {
            let b = this.ar;
            if (a != b) {
                this.aq = a;
                this.iz("MarkerFillMode", enumGetBox(MarkerFillMode_$type, b), enumGetBox(MarkerFillMode_$type, this.ar));
            }
        }
        get dx() {
            return this.c9;
        }
        set dx(a) {
            let b = this.dx;
            if (a != b) {
                this.c9 = a;
                this.iz("MarkerFillOpacity", b, this.dx);
            }
        }
        get ax() {
            return this.aw;
        }
        set ax(a) {
            let b = this.ax;
            if (a != b) {
                this.aw = a;
                this.iz("MarkerTypes", b, this.ax);
            }
        }
        get p() {
            return this.h;
        }
        set p(a) {
            let b = this.p;
            if (a != b) {
                this.h = a;
                this.iz("MarkerBrushes", b, this.p);
            }
        }
        get q() {
            return this.i;
        }
        set q(a) {
            let b = this.q;
            if (!Base.equalsStatic(a, b)) {
                this.i = a;
                this.iz("MarkerOutlines", b, this.q);
            }
        }
        get em() {
            return this.ei;
        }
        set em(a) {
            let b = this.ei;
            if (a != b) {
                this.ei = a;
                this.iz("MarkerMaxCount", b, this.ei);
            }
        }
        get b2() {
            return this.bo;
        }
        set b2(a) {
            let b = this.bo;
            if (a != b) {
                this.bo = a;
                this.iz("AnimateSeriesWhenAxisRangeChanges", b, this.bo);
            }
        }
        get t() {
            return this.k;
        }
        set t(a) {
            let b = this.t;
            if (a != b) {
                this.k = a;
                this.iz("TrendLineBrushes", b, this.t);
            }
        }
        get be() {
            return this.bd;
        }
        set be(a) {
            let b = this.be;
            if (a != b) {
                this.bd = a;
                this.iz("TrendLineType", enumGetBox(TrendLineType_$type, b), enumGetBox(TrendLineType_$type, this.be));
            }
        }
        get ef() {
            return this.ds;
        }
        set ef(a) {
            let b = this.ef;
            if (a != b) {
                this.ds = a;
                this.iz("TrendLineThickness", b, this.ef);
            }
        }
        get b1() {
            return this.bn;
        }
        set b1(a) {
            let b = this.b1;
            if (a != b) {
                this.bn = a;
                this.iz("AlignsGridLinesToPixels", b, this.b1);
            }
        }
        get d0() {
            return this.dc;
        }
        set d0(a) {
            let b = this.dc;
            this.dc = a;
            if (a != b) {
                this.iz("PlotAreaMarginLeft", b, a);
            }
        }
        get d2() {
            return this.de;
        }
        set d2(a) {
            let b = this.de;
            this.de = a;
            if (a != b) {
                this.iz("PlotAreaMarginTop", b, a);
            }
        }
        get d1() {
            return this.dd;
        }
        set d1(a) {
            let b = this.dd;
            this.dd = a;
            if (a != b) {
                this.iz("PlotAreaMarginRight", b, a);
            }
        }
        get dz() {
            return this.db;
        }
        set dz(a) {
            let b = this.db;
            this.db = a;
            if (a != b) {
                this.iz("PlotAreaMarginBottom", b, a);
            }
        }
        iy() {
        }
        get y() {
            return this.x;
        }
        set y(a) {
            let b = this.y;
            if (a != b) {
                this.x = a;
                this.iz("ComputedPlotAreaMarginMode", enumGetBox(ComputedPlotAreaMarginMode_$type, b), enumGetBox(ComputedPlotAreaMarginMode_$type, this.y));
            }
        }
        get a8() {
            return this.a7;
        }
        set a8(a) {
            let b = this.a8;
            if (a != b) {
                this.a7 = a;
                this.iz("HighlightingMode", enumGetBox(SeriesHighlightingMode_$type, b), enumGetBox(SeriesHighlightingMode_$type, this.a8));
            }
        }
        get a6() {
            return this.a5;
        }
        set a6(a) {
            let b = this.a6;
            if (a != b) {
                this.a5 = a;
                this.iz("HighlightingBehavior", enumGetBox(SeriesHighlightingBehavior_$type, b), enumGetBox(SeriesHighlightingBehavior_$type, this.a6));
            }
        }
        get ap() {
            return this.ao;
        }
        set ap(a) {
            let b = this.ap;
            if (a != b) {
                this.ao = a;
                this.iz("LegendHighlightingMode", enumGetBox(LegendHighlightingMode_$type, b), enumGetBox(LegendHighlightingMode_$type, this.ap));
            }
        }
        get cl() {
            return this.by;
        }
        set cl(a) {
            let b = this.cl;
            if (a != b) {
                this.by = a;
                this.iz("ShouldAutoExpandMarginForInitialLabels", b, this.cl);
            }
        }
        get dt() {
            return this.c5;
        }
        set dt(a) {
            let b = this.dt;
            if (a != b) {
                this.c5 = a;
                this.iz("AutoExpandMarginExtraPadding", b, this.dt);
            }
        }
        get du() {
            return this.c6;
        }
        set du(a) {
            let b = this.du;
            if (a != b) {
                this.c6 = a;
                this.iz("AutoExpandMarginMaximumValue", b, this.du);
            }
        }
        get eo() {
            return this.el;
        }
        set eo(a) {
            let b = this.eo;
            if (a != b) {
                this.el = a;
                this.iz("TrendLinePeriod", b, this.eo);
            }
        }
        get bc() {
            return this.bb;
        }
        set bc(a) {
            let b = this.bc;
            if (a != b) {
                this.bb = a;
                this.iz("ToolTipType", enumGetBox(ToolTipType_$type, b), enumGetBox(ToolTipType_$type, this.bc));
            }
        }
        get aa() {
            return this.z;
        }
        set aa(a) {
            let b = this.aa;
            if (a != b) {
                this.z = a;
                this.iz("CrosshairsDisplayMode", enumGetBox(CrosshairsDisplayMode_$type, b), enumGetBox(CrosshairsDisplayMode_$type, this.aa));
            }
        }
        get b7() {
            return this.bt;
        }
        set b7(a) {
            let b = this.b7;
            if (a != b) {
                this.bt = a;
                this.iz("CrosshairsSnapToData", b, this.b7);
            }
        }
        get b6() {
            return this.bs;
        }
        set b6(a) {
            let b = this.b6;
            if (a != b) {
                this.bs = a;
                this.iz("CrosshairsAnnotationEnabled", b, this.b6);
            }
        }
        get b8() {
            return this.bu;
        }
        set b8(a) {
            let b = this.b8;
            if (a != b) {
                this.bu = a;
                this.iz("FinalValueAnnotationsVisible", b, this.b8);
            }
        }
        get b5() {
            return this.br;
        }
        set b5(a) {
            let b = this.b5;
            if (a != b) {
                this.br = a;
                this.iz("CalloutsVisible", b, this.b5);
            }
        }
        get b4() {
            return this.bq;
        }
        set b4(a) {
            let b = this.b4;
            if (a != b) {
                this.bq = a;
                this.iz("CalloutStyleUpdatingEventEnabled", b, this.b4);
            }
        }
        get calloutsItemsSource() {
            return this.cy;
        }
        set calloutsItemsSource(a) {
            let b = this.calloutsItemsSource;
            if (a != b) {
                this.cy = a;
                this.iz("CalloutsItemsSource", b, this.calloutsItemsSource);
            }
        }
        get fo() {
            return this.e2;
        }
        set fo(a) {
            let b = this.fo;
            if (a != b) {
                this.e2 = a;
                this.iz("CalloutsXMemberPath", b, this.fo);
            }
        }
        get fq() {
            return this.e3;
        }
        set fq(a) {
            let b = this.fq;
            if (a != b) {
                this.e3 = a;
                this.iz("CalloutsYMemberPath", b, this.fq);
            }
        }
        get fk() {
            return this.e1;
        }
        set fk(a) {
            let b = this.fk;
            if (a != b) {
                this.e1 = a;
                this.iz("CalloutsLabelMemberPath", b, this.fk);
            }
        }
        get fh() {
            return this.e0;
        }
        set fh(a) {
            let b = this.fh;
            if (a != b) {
                this.e0 = a;
                this.iz("CalloutsContentMemberPath", b, this.fh);
            }
        }
    }
    DomainChart.$t = markType(DomainChart, 'DomainChart', Base.$, [INotifyPropertyChanged_$type]);
    DomainChart.ez = new Random(0);
    DomainChart.ey = new Random(0);
    return DomainChart;
})();
//# sourceMappingURL=DomainChart.js.map
