/*
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 * as tslib_1 from "tslib";
import { Base, INotifyPropertyChanged_$type, BaseError, PropertyChangedEventArgs, Delegate_$type, fromEnum, String_$type, runOn, delegateCombine, EnumUtil, typeCast, delegateRemove, enumGetBox, markType, TypeRegistrar, getInstanceType } from "igniteui-react-core";
import { ArrayExtension } from "igniteui-react-core";
import { List$1 } from "igniteui-react-core";
import { Brush } from "igniteui-react-core";
import { XamDataChart } from "./XamDataChart";
import { DataSeriesType_$type } from "igniteui-react-core";
import { MarkerType_$type } from "./MarkerType";
import { Color } from "igniteui-react-core";
import { ColorUtil } from "igniteui-react-core";
import { Rect } from "igniteui-react-core";
import { HorizontalAlignment_$type } from "igniteui-react-core";
import { UnknownValuePlotting_$type } from "igniteui-react-core";
import { SeriesOutlineMode_$type } from "./SeriesOutlineMode";
import { MarkerOutlineMode_$type } from "./MarkerOutlineMode";
import { MarkerFillMode_$type } from "./MarkerFillMode";
import { TrendLineType_$type } from "igniteui-react-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-react-core";
import { DataSeriesAdapter } from "igniteui-react-core";
import { ObservableCollection$1 } from "igniteui-react-core";
import { ObservableColorCollection } from "igniteui-react-core";
import { BrushCollectionUtil } from "igniteui-react-core";
import { ChartSeriesEventArgs } from "./ChartSeriesEventArgs";
import { DomainChartSeriesPointerEventArgs } from "./DomainChartSeriesPointerEventArgs";
import { IUnknownValuePlotting_$type } from "igniteui-react-core";
import { ITrendLineSeries_$type } from "./ITrendLineSeries";
import { Random } from "igniteui-react-core";
import { isNaN_ } from "igniteui-react-core";
import { stringIsNullOrEmpty, stringEmpty } from "igniteui-react-core";
/**
 * @hidden
 */
var DomainChart = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(DomainChart, _super);
    function DomainChart() {
        var _this = _super.call(this) || this;
        _this.ed = null;
        _this.ec = null;
        _this.cf = null;
        _this.cw = NaN;
        _this.eb = null;
        _this.c9 = 0;
        _this.da = 0;
        _this.db = 0;
        _this.c8 = 0;
        _this.c4 = 0;
        _this.c6 = 0;
        _this.c5 = 0;
        _this.c3 = 0;
        _this.i9 = null;
        _this.ja = null;
        _this.cu = NaN;
        _this.dc = NaN;
        _this.c2 = NaN;
        _this.ct = NaN;
        _this.d6 = 0;
        _this.be = null;
        _this.d2 = null;
        _this.cc = false;
        _this.ah = null;
        _this.eq = null;
        _this.es = null;
        _this.bc = null;
        _this.cj = null;
        _this.propertyChanged = null;
        _this.d5 = 0;
        _this.b6 = false;
        _this.ad = null;
        _this.ce = 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.ci = null;
        _this.bh = null;
        _this.bk = false;
        _this.co = null;
        _this.b = null;
        _this.a = null;
        _this.e = null;
        _this.h = null;
        _this.af = null;
        _this.bq = true;
        _this.bs = true;
        _this.br = false;
        _this.ji = new Rect(0, 0, 0, 1, 1);
        _this.er = null;
        _this.ep = null;
        _this.i6 = 1;
        _this.i5 = 1;
        _this.ba = 0;
        _this.c1 = 1;
        _this.c7 = NaN;
        _this.a4 = 0;
        _this.an = 0;
        _this.al = 0;
        _this.cv = NaN;
        _this.ar = null;
        _this.f = null;
        _this.g = null;
        _this.d4 = 400;
        _this.bj = false;
        _this.i = null;
        _this.a8 = 0;
        _this.dd = DeviceUtils.g(1.5);
        _this.bi = true;
        _this.cy = NaN;
        _this.c0 = NaN;
        _this.cz = NaN;
        _this.cx = NaN;
        _this.s = 0;
        _this.a2 = 0;
        _this.a0 = 0;
        _this.aj = 0;
        _this.bt = false;
        _this.cr = DeviceUtils.g(2);
        _this.cs = DeviceUtils.g(60);
        _this.d7 = 7;
        _this.a6 = 0;
        _this.u = 0;
        _this.bo = true;
        _this.bn = false;
        _this.bp = false;
        _this.bm = false;
        _this.bl = false;
        _this.cn = null;
        _this.en = null;
        _this.eo = null;
        _this.em = "CalloutLabel";
        _this.el = "CalloutContent";
        _this.ci = new List$1(Delegate_$type, 0);
        _this.hq();
        _this.hc();
        return _this;
    }
    DomainChart.prototype.provideContainer = function (a) {
        if (a == null) {
            this.h6(function (b) { return b.provideContainer(null); });
            return;
        }
        var b = this.ed;
        this.ed = a;
        if (this.bh != null && this.ed != null && b == null) {
            this.ed.setTimeout(this.bh, 0);
            this.bh = null;
        }
        var c = ((function () {
            var $ret = new XamDataChart();
            $ret.dl = true;
            return $ret;
        })());
        c.provideContainer(a);
        this.dataChart = c;
        this.hr();
    };
    DomainChart.prototype.destroy = function () {
        this.provideContainer(null);
    };
    DomainChart.prototype.hr = function () {
        if (this.dataChart == null) {
            return;
        }
        var a = this.dataChart.b8.j.e();
        this.j = a.a;
        this.n = a.f;
        this.l = a.b;
        this.m = a.c;
        this.o = a.g;
        this.hs();
    };
    DomainChart.prototype.hs = function () {
    };
    DomainChart.prototype.ho = function (a) {
        if (a == null) {
            return;
        }
        a.fs = this.dz;
        a.fq = this.dx;
        a.fr = this.dy;
        a.fp = this.dw;
        a.oi = this.jg;
        a.fm = this.ds;
        a.fo = this.du;
        a.fn = this.dt;
        a.fl = this.dr;
        a.oh = this.jf;
        if (!isNaN_(this.dj)) {
            a.fi = this.dj;
        }
    };
    DomainChart.prototype.hl = function () {
    };
    DomainChart.prototype.hu = function (a, b) {
        a.gj = this.d9;
        a.b8 = this.bf;
    };
    DomainChart.prototype.ie = function (a, b, c) {
        var _this = this;
        switch (a) {
            case "TitleTopMargin":
                if (this.dataChart != null) {
                    this.dataChart.fs = this.dz;
                }
                break;
            case "TitleLeftMargin":
                if (this.dataChart != null) {
                    this.dataChart.fq = this.dx;
                }
                break;
            case "PixelScalingRatio":
                if (this.dataChart != null) {
                    this.h6(function (d) { return d.fi = _this.dj; });
                }
                break;
            case "TitleRightMargin":
                if (this.dataChart != null) {
                    this.dataChart.fr = this.dy;
                }
                break;
            case "TitleBottomMargin":
                if (this.dataChart != null) {
                    this.dataChart.fp = this.dw;
                }
                break;
            case "TitleTextColor":
                if (this.dataChart != null) {
                    this.dataChart.oi = this.jg;
                }
                break;
            case "SubtitleLeftMargin":
                if (this.dataChart != null) {
                    this.dataChart.fm = this.ds;
                }
                break;
            case "SubtitleTopMargin":
                if (this.dataChart != null) {
                    this.dataChart.fo = this.du;
                }
                break;
            case "SubtitleRightMargin":
                if (this.dataChart != null) {
                    this.dataChart.fn = this.dt;
                }
                break;
            case "SubtitleBottomMargin":
                if (this.dataChart != null) {
                    this.dataChart.fl = this.dr;
                }
                break;
            case "SubtitleTextColor":
                if (this.dataChart != null) {
                    this.dataChart.oh = this.jf;
                }
                break;
            case "LeftMargin":
                if (this.dataChart != null) {
                    this.dataChart.fh = this.dh;
                }
                break;
            case "TopMargin":
                if (this.dataChart != null) {
                    this.dataChart.ft = this.d0;
                }
                break;
            case "RightMargin":
                if (this.dataChart != null) {
                    this.dataChart.fk = this.dq;
                }
                break;
            case "BottomMargin":
                if (this.dataChart != null) {
                    this.dataChart.fd = this.dg;
                }
                break;
            case "TransitionDuration":
                this.hh(function (d) { return d.gj = _this.d9; });
                break;
            case "TransitionEasingFunction":
                this.hh(function (d) { return d.b8 = _this.bf; });
                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: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "tooltipTemplates", {
        get: function () {
            return this.cf;
        },
        set: function (a) {
            var b = this.tooltipTemplates;
            if (a != b) {
                this.cf = a;
                this.id("TooltipTemplates", b, this.tooltipTemplates);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dj", {
        get: function () {
            return this.cw;
        },
        set: function (a) {
            var b = this.cw;
            if (a != b) {
                this.cw = a;
                this.id("PixelScalingRatio", b, this.dj);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "toolTip", {
        get: function () {
            return this.eb;
        },
        set: function (a) {
            var b = this.toolTip;
            if (b != a) {
                this.eb = a;
                this.id("ToolTip", b, this.toolTip);
            }
        },
        enumerable: true,
        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.id("TitleLeftMargin", b, this.dx);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dy", {
        get: function () {
            return this.da;
        },
        set: function (a) {
            var b = this.dy;
            if (a != b) {
                this.da = a;
                this.id("TitleRightMargin", b, this.dy);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dz", {
        get: function () {
            return this.db;
        },
        set: function (a) {
            var b = this.dz;
            if (a != b) {
                this.db = a;
                this.id("TitleTopMargin", b, this.dz);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dw", {
        get: function () {
            return this.c8;
        },
        set: function (a) {
            var b = this.dw;
            if (a != b) {
                this.c8 = a;
                this.id("TitleBottomMargin", b, this.dw);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "ds", {
        get: function () {
            return this.c4;
        },
        set: function (a) {
            var b = this.ds;
            if (a != b) {
                this.c4 = a;
                this.id("SubtitleLeftMargin", b, this.ds);
            }
        },
        enumerable: true,
        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.id("SubtitleTopMargin", b, this.du);
            }
        },
        enumerable: true,
        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.id("SubtitleRightMargin", b, this.dt);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dr", {
        get: function () {
            return this.c3;
        },
        set: function (a) {
            var b = this.dr;
            if (a != b) {
                this.c3 = a;
                this.id("SubtitleBottomMargin", b, this.dr);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "jf", {
        get: function () {
            return this.i9;
        },
        set: function (a) {
            var b = this.jf;
            if (a != b) {
                this.i9 = a;
                this.id("SubtitleTextColor", b, this.jf);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "jg", {
        get: function () {
            return this.ja;
        },
        set: function (a) {
            var b = this.jg;
            if (a != b) {
                this.ja = a;
                this.id("TitleTextColor", b, this.jg);
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.get_dh = function () {
        return this.cu;
    };
    DomainChart.prototype.set_dh = function (a) {
        var b = this.dh;
        if (a != b) {
            this.cu = a;
            this.id("LeftMargin", b, this.dh);
        }
    };
    Object.defineProperty(DomainChart.prototype, "dh", {
        get: function () {
            return this.get_dh();
        },
        set: function (a) {
            this.set_dh(a);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "d0", {
        get: function () {
            return this.dc;
        },
        set: function (a) {
            var b = this.d0;
            if (a != b) {
                this.dc = a;
                this.id("TopMargin", b, this.d0);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dq", {
        get: function () {
            return this.c2;
        },
        set: function (a) {
            var b = this.dq;
            if (a != b) {
                this.c2 = a;
                this.id("RightMargin", b, this.dq);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dg", {
        get: function () {
            return this.ct;
        },
        set: function (a) {
            var b = this.dg;
            if (a != b) {
                this.ct = a;
                this.id("BottomMargin", b, this.dg);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "d9", {
        get: function () {
            return this.d6;
        },
        set: function (a) {
            var b = this.d9;
            if (a != b) {
                this.d6 = a;
                this.id("TransitionDuration", b, this.d9);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "bf", {
        get: function () {
            return this.be;
        },
        set: function (a) {
            var b = this.bf;
            if (a != b) {
                this.be = a;
                this.id("TransitionEasingFunction", b, this.bf);
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.hp = function (a) {
        if (this.dataChart == null) {
            return;
        }
        a.h5 = this.gt;
        a.ht = this.gi;
    };
    DomainChart.prototype.hv = function (a, b) {
        this.hw(a, b);
    };
    DomainChart.prototype.hm = function () {
    };
    DomainChart.prototype.hw = 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.i3 = function (a, b, c) {
    };
    DomainChart.prototype.ef = function (a) {
        return a;
        return null;
    };
    DomainChart.prototype.d3 = function (a) {
        return null;
    };
    DomainChart.prototype.ig = function (a, b, c) {
        var _this = this;
        switch (a) {
            case "SubtitleTextStyle":
                if (this.dataChart != null) {
                    this.dataChart.ht = this.gi;
                }
                break;
            case "TitleTextStyle":
                if (this.dataChart != null) {
                    this.dataChart.h5 = this.gt;
                }
                break;
            case "TooltipTemplate":
                if (this.cc) {
                    return;
                }
                this.cc = true;
                this.tooltipTemplate = this.ef(this.tooltipTemplate);
                this.cc = false;
                if (this.dataChart != null) {
                    this.dataChart.f8 = this.tooltipTemplate;
                }
                this.toolTip = this.tooltipTemplate;
                break;
            case "ToolTip":
                this.hi(function (d, e) { return _this.hw(d, e); });
                break;
            case "TooltipTemplates":
                if (this.tooltipTemplates == null) {
                    break;
                }
                this.cc = true;
                this.hi(function (d, e) {
                    var f = _this.ef(ArrayExtension.getModulus$1(Base.$, _this.tooltipTemplates, e));
                    var series_ = d;
                    var templ_ = f;
                    series_.externalObject.tooltipTemplate = templ_;
                });
                this.cc = false;
                break;
        }
    };
    Object.defineProperty(DomainChart.prototype, "ai", {
        get: function () {
            return this.ah;
        },
        set: function (a) {
            var b = this.ai;
            if (a != b) {
                this.ah = a;
                this.id("Widget", b, this.ai);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "gi", {
        get: function () {
            return this.eq;
        },
        set: function (a) {
            var b = this.gi;
            if (a != b) {
                this.eq = a;
                this.id("SubtitleTextStyle", b, this.gi);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "gt", {
        get: function () {
            return this.es;
        },
        set: function (a) {
            var b = this.gt;
            if (a != b) {
                this.es = a;
                this.id("TitleTextStyle", b, this.gt);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dataChart", {
        get: function () {
            return this.bc;
        },
        set: function (a) {
            var b = this.dataChart;
            if (b != a) {
                this.bc = a;
                this.id("DataChart", b, this.dataChart);
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.onDetachedFromUI = function () {
        this.h6(function (a) { return a.onDetachedFromUI(); });
    };
    DomainChart.prototype.onAttachedToUI = function () {
        this.h6(function (a) { return a.onAttachedToUI(); });
    };
    DomainChart.prototype.hq = function () {
        var e_1, _a, e_2, _b;
        this.cj = new List$1(MarkerType_$type, 0);
        this.x = new DataSeriesAdapter().e;
        if (this.d != null) {
            this.x.includedProperties = this.d;
        }
        if (this.c != null) {
            this.x.excludedProperties = this.c;
        }
        this.x.supportedSeriesTypes = this.cl.toArray();
        this.x.rules.clear();
        try {
            for (var _c = tslib_1.__values(fromEnum(this.ck)), _d = _c.next(); !_d.done; _d = _c.next()) {
                var a = _d.value;
                this.x.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 = tslib_1.__values(fromEnum(this.x.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.x.dataSeries;
        d.collectionChanged = delegateCombine(d.collectionChanged, runOn(this, this.h9));
    };
    DomainChart.prototype.b8 = function (a) {
        return a != 24 && this.cl.contains(a);
    };
    DomainChart.prototype.notifyResized = function () {
        this.h6(function (a) { return a.notifyContainerResized(); });
    };
    DomainChart.prototype.h4 = function () {
        this.h6(function (a) {
            for (var b = 0; b < a.series.count; b++) {
                a.series._inner[b].kc();
            }
        });
    };
    DomainChart.prototype.hg = function () {
        if (this.dataChart == null) {
            return;
        }
        if (this.b6) {
            this.ix();
        }
        this.dataChart.flush();
    };
    DomainChart.prototype.hj = function () {
        if (this.dataChart == null) {
            return;
        }
        this.dataChart.i4();
    };
    DomainChart.prototype.il = function (a) {
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    };
    DomainChart.prototype.hh = function (a) {
        this.hi(function (b, c) { return a(b); });
    };
    DomainChart.prototype.hi = 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.h6 = function (a) {
        this.h7(a, true);
    };
    DomainChart.prototype.h7 = function (a, b) {
        this.h8(a, b, null);
    };
    DomainChart.prototype.h8 = function (a, b, c) {
        if (this.dataChart == null) {
            return;
        }
        a(this.dataChart);
    };
    DomainChart.prototype.b9 = function (a) {
        if (!this.b8(a.suggestedSeries)) {
            return false;
        }
        var b = a.data;
        if (b == null) {
            return false;
        }
        return true;
    };
    DomainChart.prototype.b4 = function () {
        if (this.dataChart == null) {
            return false;
        }
        return true;
    };
    DomainChart.prototype.fi = function (a) {
        var b = "series_" + (this.dataChart.series.count + 1) + "_" + EnumUtil.getName(DataSeriesType_$type, a.suggestedSeries);
        return b;
    };
    DomainChart.prototype.fj = function (a, b) {
        if (stringIsNullOrEmpty(a.title)) {
            var c = EnumUtil.getName(DataSeriesType_$type, b);
            return c + (this.dataChart.series.count + 1);
        }
        else {
            return a.title;
        }
    };
    DomainChart.prototype.fh = function () {
        return stringEmpty();
    };
    DomainChart.prototype.ix = function () {
        var e_3, _a, e_4, _b;
        if (this.dataChart == null) {
            return;
        }
        this.b6 = false;
        this.iz();
        if (this.itemsSource == null) {
            return;
        }
        var a = new List$1(MarkerType_$type, 0);
        try {
            for (var _c = tslib_1.__values(fromEnum(this.x.dataSeries)), _d = _c.next(); !_d.done; _d = _c.next()) {
                var b = _d.value;
                a.add(this.ap(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.cj = a;
        var c = 0;
        try {
            for (var _e = tslib_1.__values(fromEnum(this.x.dataSeries)), _f = _e.next(); !_f.done; _f = _e.next()) {
                var d = _f.value;
                if (!this.b9(d)) {
                    continue;
                }
                if (d.index < 0) {
                    d.index = c;
                }
                this.iv(d);
                this.iw(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.i4();
        this.hi(runOn(this, this.ht));
    };
    DomainChart.prototype.az = function (seriesType_) {
        return (this.externalObject.createSeries(seriesType_).i);
    };
    DomainChart.prototype.at = function () {
        return this.az(28);
    };
    DomainChart.prototype.av = function () {
        return this.az(27);
    };
    DomainChart.prototype.aw = function () {
        return this.az(29);
    };
    DomainChart.prototype.ax = function () {
        return this.az(25);
    };
    DomainChart.prototype.au = function () {
        return this.az(26);
    };
    Object.defineProperty(DomainChart.prototype, "ae", {
        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: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "b2", {
        get: function () {
            return (TypeRegistrar.isRegistered("AnnotationLayerProxy"));
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.b3 = function (a) {
        if (!this.b2) {
            return false;
        }
        return this.ae.matchesType(a);
    };
    DomainChart.prototype.i4 = function () {
        var a = this.ch("", true);
        if (a != null) {
            for (var b = 0; b < a.count; b++) {
                this.dataChart.series.add(a._inner[b]);
            }
        }
    };
    DomainChart.prototype.ch = function (a, b) {
        var e_5, _a, e_6, _b;
        if (!this.b2) {
            return null;
        }
        var c = new List$1(Series.$, 0);
        if (b) {
            if (this.bm) {
                var d = 1;
                if (this.cn == null) {
                    try {
                        for (var _c = tslib_1.__values(fromEnum(this.dataChart.series)), _d = _c.next(); !_d.done; _d = _c.next()) {
                            var e = _d.value;
                            var f = this.at();
                            this.ae.setTargetSeries(f, e);
                            this.ae.setCollisionChannel(f, "MainChartCollisionChannel");
                            this.i2(f, e, this.x.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.at();
                    this.i2(g, null, this.x.dataSeries._inner[d - 1]);
                    g.name = a + getInstanceType(g).typeName + d.toString();
                    c.add(g);
                }
            }
        }
        switch (this.u) {
            case 4:
            case 3:
            case 2:
                {
                    var h = this.av();
                    this.ae.setUseInterpolation(h, !this.bo);
                    this.ae.setHorizontalLineVisibility(h, (this.u == 2 || this.u == 4) ? 0 : 1);
                    this.ae.setVerticalLineVisibility(h, (this.u == 3 || this.u == 4) ? 0 : 1);
                    this.ae.setIsAxisAnnotationEnabled(h, this.bn);
                    c.add(h);
                    break;
                }
            case 1:
            case 0:
                {
                    break;
                }
        }
        if (this.bp) {
            var i = this.aw();
            c.add(i);
        }
        if (b) {
            switch (this.a6) {
                case 1:
                    {
                        var j = this.ax();
                        c.add(j);
                        break;
                    }
                case 2:
                    {
                        var k = this.au();
                        c.add(k);
                        break;
                    }
                case 3:
                    {
                        this.hh(function (l) { return l.du = false; });
                        break;
                    }
                case 0:
                    {
                        this.hh(function (l) { return l.du = true; });
                        break;
                    }
            }
        }
        try {
            for (var _e = tslib_1.__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.i2 = function (a, b, c) {
        a.itemsSource = this.cn != null ? this.cn : b.itemsSource;
        this.ae.setXMemberPath(a, this.en);
        this.ae.setYMemberPath(a, this.eo);
        this.ae.setLabelMemberPath(a, this.em);
        this.ae.setContentMemberPath(a, this.el);
    };
    DomainChart.prototype.iz = function () {
        this.i0(this.dataChart);
    };
    DomainChart.prototype.i0 = function (a) {
        var e_7, _a;
        var _this = this;
        if (a != null && a == this.dataChart) {
            this.iy();
        }
        if (a == null || a.series.count == 0) {
            return;
        }
        this.hh(function (b) {
            if (_this.b3(b) && _this.ae.isCalloutLayer(b)) {
                _this.ae.removeCalloutStyleUpdating(b, runOn(_this, _this.ik));
            }
            _this.it(b);
        });
        try {
            for (var _b = tslib_1.__values(fromEnum(a.series)), _c = _b.next(); !_c.done; _c = _b.next()) {
                var b = _c.value;
                this.i1(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.i1 = function (a) {
        a.itemsSource = null;
        a.legend = null;
        a.ji();
    };
    DomainChart.prototype.h9 = 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.b6) {
            return;
        }
        var e = this.ij(runOn(this, this.he), this.b6);
        this.b6 = e.p1;
    };
    DomainChart.prototype.he = function () {
        this.ix();
    };
    DomainChart.prototype.jb = function (a) {
        return ArrayExtension.getModulus$1(Brush.$, this.j, a);
    };
    DomainChart.prototype.je = function (a) {
        return ArrayExtension.getModulus$1(Brush.$, this.n, a);
    };
    DomainChart.prototype.jc = function (a) {
        return ArrayExtension.getModulus$1(Brush.$, this.l, a);
    };
    DomainChart.prototype.jd = function (a) {
        return ArrayExtension.getModulus$1(Brush.$, this.m, a);
    };
    DomainChart.prototype.jh = function (a) {
        var b = new Color();
        if (this.j == null || this.j.count == 0) {
            b = ArrayExtension.getModulus$1(Color.$, this.cg, a);
        }
        else {
            var c = ArrayExtension.getModulus$1(Brush.$, this.j, a);
            if (c == null) {
                b = ArrayExtension.getModulus$1(Color.$, this.cg, a);
            }
            else {
                b = ColorUtil.q(c);
            }
        }
        return b;
    };
    DomainChart.prototype.bg = function (a) {
        var b = new ObservableColorCollection();
        b.add(ColorUtil.v(a, 0.5));
        b.add(a);
        return b;
    };
    DomainChart.prototype.k = function (a) {
        var b = this.bg(a);
        var c = BrushCollectionUtil.a(b);
        return c;
    };
    Object.defineProperty(DomainChart.prototype, "cg", {
        get: function () {
            if (this.ce != null) {
                return this.ce;
            }
            this.ce = new List$1(Color.$, 0);
            this.ce.add(ColorUtil.r("#8bdc5c"));
            this.ce.add(ColorUtil.r("#8b5bb1"));
            this.ce.add(ColorUtil.r("#6db1ff"));
            this.ce.add(ColorUtil.r("#f8a15f"));
            this.ce.add(ColorUtil.r("#ee5879"));
            this.ce.add(ColorUtil.r("#735656"));
            this.ce.add(ColorUtil.r("#f7d262"));
            this.ce.add(ColorUtil.r("#8ce7d9"));
            this.ce.add(ColorUtil.r("#e051a9"));
            this.ce.add(ColorUtil.r("#a8a8b7"));
            return this.ce;
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.ee = function () {
        if (this.dataChart == null) {
            return null;
        }
        return this.dataChart.qx();
    };
    DomainChart.prototype.hx = function (a, b) {
    };
    DomainChart.prototype.hy = function (a, b, c) {
    };
    DomainChart.prototype.ap = 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.h3 = function (source_, a, b, c) {
        if (this.x != null) {
            this.x.notifySetItem(source_, a, b, c);
        }
        if (this.dataChart != null) {
            this.dataChart.ji(source_, a, b, c);
        }
    };
    DomainChart.prototype.hz = function (source_) {
        if (this.x != null) {
            this.x.notifyClearItems(source_);
        }
        if (this.dataChart != null) {
            this.dataChart.jd(source_);
        }
    };
    DomainChart.prototype.h0 = function (source_, a, b) {
        if (this.x != null) {
            this.x.notifyInsertItem(source_, a, b);
        }
        if (this.dataChart != null) {
            this.dataChart.jg(source_, a, b);
        }
    };
    DomainChart.prototype.h1 = function (source_, a, b) {
        if (this.x != null) {
            this.x.notifyRemoveItem(source_, a, b);
        }
        if (this.dataChart != null) {
            this.dataChart.jh(source_, a, b);
        }
    };
    DomainChart.prototype.im = function (a) {
        if (this.seriesAdded != null && a != null) {
            this.seriesAdded(this, new ChartSeriesEventArgs(a));
        }
    };
    DomainChart.prototype.it = function (a) {
        if (this.seriesRemoved != null && a != null) {
            this.seriesRemoved(this, new ChartSeriesEventArgs(a));
        }
    };
    DomainChart.prototype.ip = function (a, b) {
        if (this.seriesPointerEnter != null && a != null) {
            this.seriesPointerEnter(this, new DomainChartSeriesPointerEventArgs(a, b));
        }
    };
    DomainChart.prototype.iq = function (a, b) {
        if (this.seriesPointerLeave != null && a != null) {
            this.seriesPointerLeave(this, new DomainChartSeriesPointerEventArgs(a, b));
        }
    };
    DomainChart.prototype.ir = function (a, b) {
        if (this.seriesPointerMove != null && a != null) {
            this.seriesPointerMove(this, new DomainChartSeriesPointerEventArgs(a, b));
        }
    };
    DomainChart.prototype.io = function (a, b) {
        if (this.seriesPointerDown != null && a != null) {
            this.seriesPointerDown(this, new DomainChartSeriesPointerEventArgs(a, b));
        }
    };
    DomainChart.prototype.is = function (a, b) {
        if (this.seriesPointerUp != null && a != null) {
            this.seriesPointerUp(this, new DomainChartSeriesPointerEventArgs(a, b));
        }
    };
    DomainChart.prototype.ik = function (a, b) {
        if (this.calloutStyleUpdating != null && a != null) {
            this.calloutStyleUpdating(this, b);
        }
    };
    DomainChart.prototype.ii = function (a) {
        var _this = this;
        if (!this.ci.contains(a)) {
            this.ci.add(a);
            var b = false;
            var c = this.ij(function () {
                a();
                _this.ci.remove(a);
            }, b);
            b = c.p1;
        }
    };
    DomainChart.prototype.ij = function (a, b) {
        if (!b) {
            b = true;
            if (this.ed != null) {
                this.ed.setTimeout(a, 0);
            }
            else {
                this.bh = a;
            }
        }
        return {
            p1: b
        };
    };
    DomainChart.prototype.get_ca = function () {
        return true;
    };
    Object.defineProperty(DomainChart.prototype, "ca", {
        get: function () {
            return this.get_ca();
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.hn = function (a) {
        var _this = this;
        var b = a == this.dataChart;
        if (b) {
            a.pe = this.j;
        }
        if (b) {
            a.ph = this.n;
        }
        a.pf = this.l;
        a.pg = this.m;
        a.legend = this.legend;
        a.py = this.b5;
        a.p1 = this.cb && this.ca;
        if (a.bj != this.a3 || a.bh != this.a1) {
            a.b8.b4(this.ed);
            a.bj = this.a3;
            a.bh = this.a1;
        }
        a.pk = this.t;
        if (!isNaN_(this.dl)) {
            a.qr = this.dl;
        }
        if (!isNaN_(this.dn)) {
            a.qt = this.dn;
        }
        if (!isNaN_(this.dm)) {
            a.qs = this.dm;
        }
        if (!isNaN_(this.dk)) {
            a.qq = this.dk;
        }
        a.a2 = this.ak;
        a.p2 = this.cd;
        a.qm = this.de;
        a.qn = this.df;
        a.seriesMouseEnter = delegateCombine(a.seriesMouseEnter, function (c, d) { return _this.ip(d.series, d.item); });
        a.seriesMouseLeave = delegateCombine(a.seriesMouseLeave, function (c, d) { return _this.iq(d.series, d.item); });
        a.seriesMouseMove = delegateCombine(a.seriesMouseMove, function (c, d) { return _this.ir(d.series, d.item); });
        a.seriesMouseLeftButtonDown = delegateCombine(a.seriesMouseLeftButtonDown, function (c, d) { return _this.io(d.series, d.item); });
        a.seriesMouseLeftButtonUp = delegateCombine(a.seriesMouseLeftButtonUp, function (c, d) { return _this.is(d.series, d.item); });
        if (b) {
            a.o8 = this.jk;
        }
        if (b) {
            a.hy = this.gm;
        }
        a.nz = this.i8;
        if (b) {
            a.hm = this.gb;
        }
        a.ny = this.i7;
        a.pu = this.bu;
        a.c3 = this.bv;
        a.fh = this.dh;
        a.fk = this.dq;
        a.ft = this.d0;
        a.fd = this.dg;
        if (a == this.dataChart) {
            this.ix();
        }
        this.ho(a);
        this.hp(a);
    };
    DomainChart.prototype.ht = function (a, b) {
        if (!isNaN_(this.dp)) {
            a.fq = this.dp;
        }
        if (!isNaN_(this.dv)) {
            a.fv = this.dv;
        }
        a.bn = this.a5;
        a.lj(this.ao);
        a.li(this.am);
        a.fn = this.di;
        if (a.isUsableInLegend) {
            a.legend = this.legend;
        }
        if (typeCast(IUnknownValuePlotting_$type, a) !== null) {
            a.unknownValuePlotting = this.bb;
        }
        a.c9 = this.b7;
        if (this.b3(a) && this.ae.isCalloutLayer(a)) {
            this.ae.setCalloutStyleUpdatingEventEnabled(a, this.bx);
            this.ae.addCalloutStyleUpdating(a, runOn(this, this.ik));
        }
        this.ha(a, b);
        this.hb(a, b);
        this.hu(a, b);
        this.hv(a, b);
        this.im(a);
    };
    Object.defineProperty(DomainChart.prototype, "bw", {
        get: function () {
            return this.bk;
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.hf = function () {
        if (!this.bk) {
            this.bk = true;
            this.hk();
        }
    };
    DomainChart.prototype.hk = function () {
        this.hl();
        this.hm();
    };
    DomainChart.prototype.iu = function (a) {
        this.i0(a);
    };
    DomainChart.prototype.hb = function (a, b) {
        var c = typeCast(ITrendLineSeries_$type, a);
        if (c != null) {
            c.trendLineBrush = ArrayExtension.getModulus$1(Brush.$, this.o, b);
            c.trendLineThickness = this.d1;
            c.trendLineType = this.a9;
            c.trendLinePeriod = this.ea;
        }
    };
    DomainChart.prototype.aq = function (a, b) {
        if (this.as == null || this.as.count == 0) {
            if (this.cj == null || this.cj.count == 0) {
                return a != null && a.dd ? 1 : 2;
            }
            var c = ArrayExtension.getModulus$1(MarkerType_$type, this.cj, b);
            return c == 2 && a != null && a.dd ? 1 : c;
        }
        return ArrayExtension.getModulus$1(MarkerType_$type, this.as, b);
    };
    DomainChart.prototype.id = function (a, b, c) {
        var _this = this;
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
        switch (a) {
            case "DataChart":
                this.iu(typeCast(XamDataChart.$, b));
                this.hn(typeCast(XamDataChart.$, c));
                break;
            case "ItemsSource":
                this.x.itemsSource = this.itemsSource;
                break;
            case "IncludedProperties":
                this.x.includedProperties = this.d;
                break;
            case "ExcludedProperties":
                this.x.excludedProperties = this.c;
                break;
            case "Brushes":
                this.h8(function (d) { return d.pe = _this.j; }, true, a);
                break;
            case "Outlines":
                this.h8(function (d) { return d.ph = _this.n; }, true, a);
                break;
            case "Legend":
                this.h6(function (d) { return d.legend = _this.legend; });
                break;
            case "HighlightingMode":
                this.h6(function (d) { return d.bj = _this.a3; });
                break;
            case "HighlightingBehavior":
                this.h6(function (d) { return d.bh = _this.a1; });
                break;
            case "LegendHighlightingMode":
                this.h6(function (d) { return d.a2 = _this.ak; });
                break;
            case "PlotAreaMarginLeft":
                this.h6(function (d) { return d.qr = _this.dl; });
                break;
            case "PlotAreaMarginTop":
                this.h6(function (d) { return d.qt = _this.dn; });
                break;
            case "PlotAreaMarginRight":
                this.h6(function (d) { return d.qs = _this.dm; });
                break;
            case "PlotAreaMarginBottom":
                this.h6(function (d) { return d.qq = _this.dk; });
                break;
            case "ComputedPlotAreaMarginMode":
                this.h6(function (d) { return d.pk = _this.t; });
                break;
            case "ShouldAutoExpandMarginForInitialLabels":
                this.h6(function (d) { return d.p2 = _this.cd; });
                break;
            case "AutoExpandMarginExtraPadding":
                this.h6(function (d) { return d.qm = _this.de; });
                break;
            case "AutoExpandMarginMaximumValue":
                this.h6(function (d) { return d.qn = _this.df; });
                break;
            case "IsHorizontalZoomEnabled":
                this.h6(function (d) { return d.py = _this.b5; });
                break;
            case "IsVerticalZoomEnabled":
                this.h6(function (d) { return d.p1 = _this.cb; });
                break;
            case "WindowRect":
                this.h7(function (d) { return d.o8 = _this.jk; }, false);
                break;
            case "Title":
                this.h7(function (d) { return d.hy = _this.gm; }, false);
                break;
            case "Subtitle":
                this.h7(function (d) { return d.hm = _this.gb; }, false);
                break;
            case "TitleAlignment":
                this.h6(function (d) { return d.nz = _this.i8; });
                break;
            case "SubtitleAlignment":
                this.h6(function (d) { return d.ny = _this.i7; });
                break;
            case "UnknownValuePlotting":
                this.hh(function (d) {
                    if (typeCast(IUnknownValuePlotting_$type, d) !== null) {
                        d.unknownValuePlotting = _this.bb;
                    }
                });
                break;
            case "IsSeriesHighlightingEnabled":
                this.hh(function (d) { return d.c9 = _this.b7; });
                break;
            case "Thickness":
                this.hh(function (d) {
                    if (!isNaN_(_this.dv)) {
                        d.fv = _this.dv;
                    }
                });
                break;
            case "OutlineMode":
                this.hh(function (d) { return d.bn = _this.a5; });
                break;
            case "MarkerFillOpacity":
                this.hh(function (d) { return d.fn = _this.di; });
                break;
            case "MarkerOutlineMode":
                this.hh(function (d) { return d.lj(_this.ao); });
                break;
            case "MarkerFillMode":
                this.hh(function (d) { return d.li(_this.am); });
                break;
            case "Resolution":
                if (!isNaN_(this.dp)) {
                    this.hh(function (d) { return d.fq = _this.dp; });
                }
                break;
            case "TrendLineBrushes":
            case "TrendLineType":
            case "TrendLineThickness":
            case "TrendLinePeriod":
                this.hi(function (d, e) { return _this.hb(d, e); });
                break;
            case "MarkerMaxCount":
                this.hi(function (d, e) { return _this.ha(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.ib));
                }
                var e = typeCast(ObservableCollection$1.$.specialize(MarkerType_$type), c);
                if (e != null) {
                    e.collectionChanged = delegateCombine(e.collectionChanged, runOn(this, this.ib));
                }
                this.hi(function (f, g) { return _this.ha(f, g); });
                break;
            case "MarkerBrushes":
                this.h6(function (f) { return f.pf = _this.l; });
                break;
            case "MarkerOutlines":
                this.h6(function (f) { return f.pg = _this.m; });
                break;
            case "AlignsGridLinesToPixels":
                this.h6(function (f) { return f.pu = _this.bu; });
                break;
            case "AnimateSeriesWhenAxisRangeChanges":
                this.h6(function (f) { return f.c3 = _this.bv; });
                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.ij(runOn(this, this.he), this.b6);
                this.b6 = f.p1;
                break;
        }
        this.ie(a, b, c);
        this.ig(a, b, c);
    };
    DomainChart.prototype.ib = function (a, b) {
        var _this = this;
        this.hi(function (c, d) { return _this.ha(c, d); });
    };
    Object.defineProperty(DomainChart.prototype, "itemsSource", {
        get: function () {
            return this.co;
        },
        set: function (a) {
            var b = this.itemsSource;
            if (b != a) {
                this.co = a;
                this.id("ItemsSource", b, this.itemsSource);
            }
        },
        enumerable: true,
        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.id("IncludedProperties", b, this.b);
            }
        },
        enumerable: true,
        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.id("ExcludedProperties", b, this.a);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "j", {
        get: function () {
            return this.e;
        },
        set: function (a) {
            var b = this.j;
            if (a != b) {
                this.e = a;
                this.id("Brushes", b, this.j);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "n", {
        get: function () {
            return this.h;
        },
        set: function (a) {
            var b = this.n;
            if (a != b) {
                this.h = a;
                this.id("Outlines", b, this.n);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "legend", {
        get: function () {
            return this.af;
        },
        set: function (a) {
            var b = this.legend;
            if (a != b) {
                this.af = a;
                this.id("Legend", b, this.legend);
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.get_b5 = function () {
        return this.bq;
    };
    DomainChart.prototype.set_b5 = function (a) {
        var b = this.b5;
        if (a != b) {
            this.bq = a;
            this.id("IsHorizontalZoomEnabled", b, this.b5);
        }
    };
    Object.defineProperty(DomainChart.prototype, "b5", {
        get: function () {
            return this.get_b5();
        },
        set: function (a) {
            this.set_b5(a);
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.get_cb = function () {
        return this.bs;
    };
    DomainChart.prototype.set_cb = function (a) {
        var b = this.cb;
        if (a != b) {
            this.bs = a;
            this.id("IsVerticalZoomEnabled", b, this.cb);
        }
    };
    Object.defineProperty(DomainChart.prototype, "cb", {
        get: function () {
            return this.get_cb();
        },
        set: function (a) {
            this.set_cb(a);
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.get_b7 = function () {
        return this.br;
    };
    DomainChart.prototype.set_b7 = function (a) {
        var b = this.b7;
        if (a != b) {
            this.br = a;
            this.id("IsSeriesHighlightingEnabled", b, this.b7);
        }
    };
    Object.defineProperty(DomainChart.prototype, "b7", {
        get: function () {
            return this.get_b7();
        },
        set: function (a) {
            this.set_b7(a);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "jk", {
        get: function () {
            return this.ji;
        },
        set: function (a) {
            var b = this.jk;
            if (Rect.l_op_Inequality(a, b)) {
                this.ji = a;
                this.id("WindowRect", b, this.jk);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "jj", {
        get: function () {
            return this.dataChart != null ? this.dataChart.o7 : Rect.empty;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "gm", {
        get: function () {
            return this.er;
        },
        set: function (a) {
            var b = this.gm;
            if (a != b) {
                this.er = a;
                this.id("Title", b, this.gm);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "gb", {
        get: function () {
            return this.ep;
        },
        set: function (a) {
            var b = this.gb;
            if (a != b) {
                this.ep = a;
                this.id("Subtitle", b, this.gb);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "i8", {
        get: function () {
            return this.i6;
        },
        set: function (a) {
            var b = this.i8;
            if (b != a) {
                this.i6 = a;
                this.id("TitleAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.i8));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "i7", {
        get: function () {
            return this.i5;
        },
        set: function (a) {
            var b = this.i7;
            if (b != a) {
                this.i5 = a;
                this.id("SubtitleAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.i7));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "bb", {
        get: function () {
            return this.ba;
        },
        set: function (a) {
            var b = this.bb;
            if (a != b) {
                this.ba = a;
                this.id("UnknownValuePlotting", enumGetBox(UnknownValuePlotting_$type, b), enumGetBox(UnknownValuePlotting_$type, this.bb));
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.get_dp = function () {
        return this.c1;
    };
    DomainChart.prototype.set_dp = function (a) {
        var b = this.dp;
        if (a != b) {
            this.c1 = a;
            this.id("Resolution", b, this.dp);
        }
    };
    Object.defineProperty(DomainChart.prototype, "dp", {
        get: function () {
            return this.get_dp();
        },
        set: function (a) {
            this.set_dp(a);
        },
        enumerable: true,
        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.id("Thickness", b, this.dv);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "a5", {
        get: function () {
            return this.a4;
        },
        set: function (a) {
            var b = this.a5;
            if (a != b) {
                this.a4 = a;
                this.id("OutlineMode", enumGetBox(SeriesOutlineMode_$type, b), enumGetBox(SeriesOutlineMode_$type, this.a5));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "ao", {
        get: function () {
            return this.an;
        },
        set: function (a) {
            var b = this.ao;
            if (a != b) {
                this.an = a;
                this.id("MarkerOutlineMode", enumGetBox(MarkerOutlineMode_$type, b), enumGetBox(MarkerOutlineMode_$type, this.ao));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "am", {
        get: function () {
            return this.al;
        },
        set: function (a) {
            var b = this.am;
            if (a != b) {
                this.al = a;
                this.id("MarkerFillMode", enumGetBox(MarkerFillMode_$type, b), enumGetBox(MarkerFillMode_$type, this.am));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "di", {
        get: function () {
            return this.cv;
        },
        set: function (a) {
            var b = this.di;
            if (a != b) {
                this.cv = a;
                this.id("MarkerFillOpacity", b, this.di);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "as", {
        get: function () {
            return this.ar;
        },
        set: function (a) {
            var b = this.as;
            if (a != b) {
                this.ar = a;
                this.id("MarkerTypes", b, this.as);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "l", {
        get: function () {
            return this.f;
        },
        set: function (a) {
            var b = this.l;
            if (a != b) {
                this.f = a;
                this.id("MarkerBrushes", b, this.l);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "m", {
        get: function () {
            return this.g;
        },
        set: function (a) {
            var b = this.m;
            if (!Base.equalsStatic(a, b)) {
                this.g = a;
                this.id("MarkerOutlines", b, this.m);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "d8", {
        get: function () {
            return this.d4;
        },
        set: function (a) {
            var b = this.d4;
            if (a != b) {
                this.d4 = a;
                this.id("MarkerMaxCount", b, this.d4);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "bv", {
        get: function () {
            return this.bj;
        },
        set: function (a) {
            var b = this.bj;
            if (a != b) {
                this.bj = a;
                this.id("AnimateSeriesWhenAxisRangeChanges", b, this.bj);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "o", {
        get: function () {
            return this.i;
        },
        set: function (a) {
            var b = this.o;
            if (a != b) {
                this.i = a;
                this.id("TrendLineBrushes", b, this.o);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "a9", {
        get: function () {
            return this.a8;
        },
        set: function (a) {
            var b = this.a9;
            if (a != b) {
                this.a8 = a;
                this.id("TrendLineType", enumGetBox(TrendLineType_$type, b), enumGetBox(TrendLineType_$type, this.a9));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "d1", {
        get: function () {
            return this.dd;
        },
        set: function (a) {
            var b = this.d1;
            if (a != b) {
                this.dd = a;
                this.id("TrendLineThickness", b, this.d1);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "bu", {
        get: function () {
            return this.bi;
        },
        set: function (a) {
            var b = this.bu;
            if (a != b) {
                this.bi = a;
                this.id("AlignsGridLinesToPixels", b, this.bu);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dl", {
        get: function () {
            return this.cy;
        },
        set: function (a) {
            var b = this.cy;
            this.cy = a;
            if (a != b) {
                this.id("PlotAreaMarginLeft", b, a);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dn", {
        get: function () {
            return this.c0;
        },
        set: function (a) {
            var b = this.c0;
            this.c0 = a;
            if (a != b) {
                this.id("PlotAreaMarginTop", b, a);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dm", {
        get: function () {
            return this.cz;
        },
        set: function (a) {
            var b = this.cz;
            this.cz = a;
            if (a != b) {
                this.id("PlotAreaMarginRight", b, a);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "dk", {
        get: function () {
            return this.cx;
        },
        set: function (a) {
            var b = this.cx;
            this.cx = a;
            if (a != b) {
                this.id("PlotAreaMarginBottom", b, a);
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.prototype.ic = function () {
    };
    Object.defineProperty(DomainChart.prototype, "t", {
        get: function () {
            return this.s;
        },
        set: function (a) {
            var b = this.t;
            if (a != b) {
                this.s = a;
                this.id("ComputedPlotAreaMarginMode", enumGetBox(ComputedPlotAreaMarginMode_$type, b), enumGetBox(ComputedPlotAreaMarginMode_$type, this.t));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "a3", {
        get: function () {
            return this.a2;
        },
        set: function (a) {
            var b = this.a3;
            if (a != b) {
                this.a2 = a;
                this.id("HighlightingMode", enumGetBox(SeriesHighlightingMode_$type, b), enumGetBox(SeriesHighlightingMode_$type, this.a3));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "a1", {
        get: function () {
            return this.a0;
        },
        set: function (a) {
            var b = this.a1;
            if (a != b) {
                this.a0 = a;
                this.id("HighlightingBehavior", enumGetBox(SeriesHighlightingBehavior_$type, b), enumGetBox(SeriesHighlightingBehavior_$type, this.a1));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "ak", {
        get: function () {
            return this.aj;
        },
        set: function (a) {
            var b = this.ak;
            if (a != b) {
                this.aj = a;
                this.id("LegendHighlightingMode", enumGetBox(LegendHighlightingMode_$type, b), enumGetBox(LegendHighlightingMode_$type, this.ak));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "cd", {
        get: function () {
            return this.bt;
        },
        set: function (a) {
            var b = this.cd;
            if (a != b) {
                this.bt = a;
                this.id("ShouldAutoExpandMarginForInitialLabels", b, this.cd);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "de", {
        get: function () {
            return this.cr;
        },
        set: function (a) {
            var b = this.de;
            if (a != b) {
                this.cr = a;
                this.id("AutoExpandMarginExtraPadding", b, this.de);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "df", {
        get: function () {
            return this.cs;
        },
        set: function (a) {
            var b = this.df;
            if (a != b) {
                this.cs = a;
                this.id("AutoExpandMarginMaximumValue", b, this.df);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "ea", {
        get: function () {
            return this.d7;
        },
        set: function (a) {
            var b = this.ea;
            if (a != b) {
                this.d7 = a;
                this.id("TrendLinePeriod", b, this.ea);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "a7", {
        get: function () {
            return this.a6;
        },
        set: function (a) {
            var b = this.a7;
            if (a != b) {
                this.a6 = a;
                this.id("ToolTipType", enumGetBox(ToolTipType_$type, b), enumGetBox(ToolTipType_$type, this.a7));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "v", {
        get: function () {
            return this.u;
        },
        set: function (a) {
            var b = this.v;
            if (a != b) {
                this.u = a;
                this.id("CrosshairsDisplayMode", enumGetBox(CrosshairsDisplayMode_$type, b), enumGetBox(CrosshairsDisplayMode_$type, this.v));
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "b0", {
        get: function () {
            return this.bo;
        },
        set: function (a) {
            var b = this.b0;
            if (a != b) {
                this.bo = a;
                this.id("CrosshairsSnapToData", b, this.b0);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "bz", {
        get: function () {
            return this.bn;
        },
        set: function (a) {
            var b = this.bz;
            if (a != b) {
                this.bn = a;
                this.id("CrosshairsAnnotationEnabled", b, this.bz);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "b1", {
        get: function () {
            return this.bp;
        },
        set: function (a) {
            var b = this.b1;
            if (a != b) {
                this.bp = a;
                this.id("FinalValueAnnotationsVisible", b, this.b1);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "by", {
        get: function () {
            return this.bm;
        },
        set: function (a) {
            var b = this.by;
            if (a != b) {
                this.bm = a;
                this.id("CalloutsVisible", b, this.by);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "bx", {
        get: function () {
            return this.bl;
        },
        set: function (a) {
            var b = this.bx;
            if (a != b) {
                this.bl = a;
                this.id("CalloutStyleUpdatingEventEnabled", b, this.bx);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "calloutsItemsSource", {
        get: function () {
            return this.cn;
        },
        set: function (a) {
            var b = this.calloutsItemsSource;
            if (a != b) {
                this.cn = a;
                this.id("CalloutsItemsSource", b, this.calloutsItemsSource);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "e6", {
        get: function () {
            return this.en;
        },
        set: function (a) {
            var b = this.e6;
            if (a != b) {
                this.en = a;
                this.id("CalloutsXMemberPath", b, this.e6);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "e8", {
        get: function () {
            return this.eo;
        },
        set: function (a) {
            var b = this.e8;
            if (a != b) {
                this.eo = a;
                this.id("CalloutsYMemberPath", b, this.e8);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "e2", {
        get: function () {
            return this.em;
        },
        set: function (a) {
            var b = this.e2;
            if (a != b) {
                this.em = a;
                this.id("CalloutsLabelMemberPath", b, this.e2);
            }
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(DomainChart.prototype, "ez", {
        get: function () {
            return this.el;
        },
        set: function (a) {
            var b = this.ez;
            if (a != b) {
                this.el = a;
                this.id("CalloutsContentMemberPath", b, this.ez);
            }
        },
        enumerable: true,
        configurable: true
    });
    DomainChart.$t = markType(DomainChart, 'DomainChart', Base.$, [INotifyPropertyChanged_$type]);
    DomainChart.ek = new Random(0);
    return DomainChart;
}(Base));
export { DomainChart };
//# sourceMappingURL=DomainChart.js.map
