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