/*
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 { DomainChart } from "./DomainChart";
import { fromEnum, enumGetBox, markType } from "igniteui-angular-core";
import { HorizontalAlignment_$type } from "igniteui-angular-core";
import { VerticalAlignment_$type } from "igniteui-angular-core";
import { Visibility_$type } from "igniteui-angular-core";
import { YAxisLabelLocation_$type } from "./YAxisLabelLocation";
import { XAxisLabelLocation_$type } from "./XAxisLabelLocation";
import { AxisLabelSettings } from "./AxisLabelSettings";
import { AxisDefaults } from "./AxisDefaults";
import { TitleSettings } from "./TitleSettings";
import { ScalerParams } from "./ScalerParams";
import { DeviceUtils } from "igniteui-angular-core";
/**
 * @hidden
 */
var XYChart = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XYChart, _super);
    function XYChart() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.ty = null;
        _this.tz = null;
        _this.uf = 0;
        _this.uh = 5;
        _this.ug = 0;
        _this.ue = 5;
        _this.uw = 5;
        _this.uy = 0;
        _this.ux = 5;
        _this.uv = 0;
        _this.zp = null;
        _this.zw = null;
        _this.zn = null;
        _this.zo = null;
        _this.uq = 0;
        _this.u7 = 0;
        _this.up = NaN;
        _this.u6 = NaN;
        _this.us = NaN;
        _this.u9 = NaN;
        _this.ur = NaN;
        _this.u8 = NaN;
        _this.uo = NaN;
        _this.u5 = NaN;
        _this.zv = null;
        _this.z2 = null;
        _this.wh = null;
        _this.wl = null;
        _this.wj = null;
        _this.wn = null;
        _this.wc = null;
        _this.wd = null;
        _this.zq = null;
        _this.zx = null;
        _this.ui = DeviceUtils.g(1);
        _this.uz = DeviceUtils.g(1);
        _this.uj = DeviceUtils.g(1);
        _this.u0 = DeviceUtils.g(1);
        _this.zs = null;
        _this.zz = null;
        _this.zt = null;
        _this.z0 = null;
        _this.uk = DeviceUtils.g(1);
        _this.u1 = DeviceUtils.g(1);
        _this.ul = DeviceUtils.g(8);
        _this.u2 = 0;
        _this.zu = null;
        _this.z1 = null;
        _this.um = DeviceUtils.g(1);
        _this.u3 = DeviceUtils.g(1);
        _this.wi = null;
        _this.wm = null;
        _this.zr = null;
        _this.zy = null;
        _this.ud = 0;
        _this.uu = 0;
        _this.uc = NaN;
        _this.ut = NaN;
        _this.un = 0;
        _this.u4 = -90;
        _this.t8 = false;
        _this.t9 = false;
        _this.zi = 1;
        _this.aal = 1;
        _this.zh = 1;
        _this.zj = 2;
        _this.aaj = 0;
        _this.aak = 1;
        _this.aap = 0;
        _this.aaq = 0;
        _this.t6 = 4;
        _this.t4 = 4;
        _this.wg = null;
        _this.ts = null;
        _this.wk = null;
        _this.tt = null;
        return _this;
    }
    XYChart.prototype.provideContainer = function (a) {
        if (a != null) {
            var b = this.tw();
            var c = this.tx();
            if (b != null) {
                b.provideRenderer(a);
            }
            if (c != null) {
                c.provideRenderer(a);
            }
        }
        _super.prototype.provideContainer.call(this, a);
    };
    XYChart.prototype.p7 = function () {
        _super.prototype.p7.call(this);
        var a = this.tw();
        var b = this.tx();
        if (a != null && a.ay != null) {
            this.z5 = a.ay.textColor;
        }
        if (b != null && b.ay != null) {
            this.aac = b.ay.textColor;
        }
        this.aaa = AxisDefaults.j;
        this.aah = AxisDefaults.j;
        this.z6 = AxisDefaults.h;
        this.aad = AxisDefaults.h;
        this.z9 = AxisDefaults.g;
        this.aag = AxisDefaults.g;
    };
    XYChart.prototype.qu = function (a, b, c) {
        var _this = this;
        _super.prototype.qu.call(this, a, b, c);
        switch (a) {
            case "XAxisLabelLeftMargin":
                this.y9(function (d) { return d.leftMargin = _this.vh; });
                break;
            case "XAxisLabelTopMargin":
                this.y9(function (d) { return d.topMargin = _this.vj; });
                break;
            case "XAxisLabelRightMargin":
                this.y9(function (d) { return d.rightMargin = _this.vi; });
                break;
            case "XAxisLabelBottomMargin":
                this.y9(function (d) { return d.bottomMargin = _this.vg; });
                break;
            case "YAxisLabelLeftMargin":
                this.ze(function (d) { return d.leftMargin = _this.vy; });
                break;
            case "YAxisLabelTopMargin":
                this.ze(function (d) { return d.topMargin = _this.v0; });
                break;
            case "YAxisLabelRightMargin":
                this.ze(function (d) { return d.rightMargin = _this.vz; });
                break;
            case "YAxisLabelBottomMargin":
                this.ze(function (d) { return d.bottomMargin = _this.vx; });
                break;
            case "ActualItemsSource":
            case "ShouldDisplayMockData":
            case "ShouldUseSkeletonStyleForMockData":
                this.z3 = this.sz(this.z5);
                this.z4 = this.sz(this.aac);
                break;
            case "XAxisLabelTextColor":
                this.z3 = this.sz(this.z5);
                break;
            case "YAxisLabelTextColor":
                this.z4 = this.sz(this.aac);
                break;
            case "ActualXAxisLabelTextColor":
                this.y9(function (d) { return d.textColor = _this.z3; });
                break;
            case "ActualYAxisLabelTextColor":
                this.ze(function (d) { return d.textColor = _this.z4; });
                break;
            case "XAxisTitleMargin":
                this.zb(function (d) { return d.margin = _this.vs; });
                break;
            case "YAxisTitleMargin":
                this.zg(function (d) { return d.margin = _this.v9; });
                break;
            case "XAxisTitleLeftMargin":
                this.zb(function (d) { return d.leftMargin = _this.vr; });
                break;
            case "YAxisTitleLeftMargin":
                this.zg(function (d) { return d.leftMargin = _this.v8; });
                break;
            case "XAxisTitleTopMargin":
                this.zb(function (d) { return d.topMargin = _this.vu; });
                break;
            case "YAxisTitleTopMargin":
                this.zg(function (d) { return d.topMargin = _this.wb; });
                break;
            case "XAxisTitleRightMargin":
                this.zb(function (d) { return d.rightMargin = _this.vt; });
                break;
            case "YAxisTitleRightMargin":
                this.zg(function (d) { return d.rightMargin = _this.wa; });
                break;
            case "XAxisTitleBottomMargin":
                this.zb(function (d) { return d.bottomMargin = _this.vq; });
                break;
            case "YAxisTitleBottomMargin":
                this.zg(function (d) { return d.bottomMargin = _this.v7; });
                break;
            case "XAxisTitleTextColor":
                this.zb(function (d) { return d.textColor = _this.aab; });
                break;
            case "YAxisTitleTextColor":
                this.zg(function (d) { return d.textColor = _this.aai; });
                break;
            case "XAxisFormatLabel":
                this.y7(function (d) { return d.at = _this.t0; });
                break;
            case "YAxisFormatLabel":
                this.zc(function (d) { return d.at = _this.t1; });
                break;
        }
    };
    Object.defineProperty(XYChart.prototype, "t0", {
        get: function () {
            return this.ty;
        },
        set: function (a) {
            var b = this.t0;
            if (a != b) {
                this.ty = a;
                this.qt("XAxisFormatLabel", b, this.t0);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "t1", {
        get: function () {
            return this.tz;
        },
        set: function (a) {
            var b = this.t1;
            if (a != b) {
                this.tz = a;
                this.qt("YAxisFormatLabel", b, this.t1);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vh", {
        get: function () {
            return this.uf;
        },
        set: function (a) {
            var b = this.vh;
            if (a != b) {
                this.uf = a;
                this.qt("XAxisLabelLeftMargin", b, this.vh);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vj", {
        get: function () {
            return this.uh;
        },
        set: function (a) {
            var b = this.vj;
            if (a != b) {
                this.uh = a;
                this.qt("XAxisLabelTopMargin", b, this.vj);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vi", {
        get: function () {
            return this.ug;
        },
        set: function (a) {
            var b = this.vi;
            if (a != b) {
                this.ug = a;
                this.qt("XAxisLabelRightMargin", b, this.vi);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vg", {
        get: function () {
            return this.ue;
        },
        set: function (a) {
            var b = this.vg;
            if (a != b) {
                this.ue = a;
                this.qt("XAxisLabelBottomMargin", b, this.vg);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vy", {
        get: function () {
            return this.uw;
        },
        set: function (a) {
            var b = this.vy;
            if (a != b) {
                this.uw = a;
                this.qt("YAxisLabelLeftMargin", b, this.vy);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v0", {
        get: function () {
            return this.uy;
        },
        set: function (a) {
            var b = this.v0;
            if (a != b) {
                this.uy = a;
                this.qt("YAxisLabelTopMargin", b, this.v0);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vz", {
        get: function () {
            return this.ux;
        },
        set: function (a) {
            var b = this.vz;
            if (a != b) {
                this.ux = a;
                this.qt("YAxisLabelRightMargin", b, this.vz);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vx", {
        get: function () {
            return this.uv;
        },
        set: function (a) {
            var b = this.vx;
            if (a != b) {
                this.uv = a;
                this.qt("YAxisLabelBottomMargin", b, this.vx);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z5", {
        get: function () {
            return this.zp;
        },
        set: function (a) {
            var b = this.z5;
            if (a != b) {
                this.zp = a;
                this.qt("XAxisLabelTextColor", b, this.z5);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aac", {
        get: function () {
            return this.zw;
        },
        set: function (a) {
            var b = this.aac;
            if (a != b) {
                this.zw = a;
                this.qt("YAxisLabelTextColor", b, this.aac);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z3", {
        get: function () {
            return this.zn;
        },
        set: function (a) {
            var b = this.zn;
            if (a != b) {
                this.zn = a;
                this.qt("ActualXAxisLabelTextColor", b, this.z3);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z4", {
        get: function () {
            return this.zo;
        },
        set: function (a) {
            var b = this.zo;
            if (a != b) {
                this.zo = a;
                this.qt("ActualYAxisLabelTextColor", b, this.z4);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vs", {
        get: function () {
            return this.uq;
        },
        set: function (a) {
            var b = this.vs;
            if (a != b) {
                this.uq = a;
                this.qt("XAxisTitleMargin", b, this.vs);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v9", {
        get: function () {
            return this.u7;
        },
        set: function (a) {
            var b = this.v9;
            if (a != b) {
                this.u7 = a;
                this.qt("YAxisTitleMargin", b, this.v9);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vr", {
        get: function () {
            return this.up;
        },
        set: function (a) {
            var b = this.vr;
            if (a != b) {
                this.up = a;
                this.qt("XAxisTitleLeftMargin", b, this.vr);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v8", {
        get: function () {
            return this.u6;
        },
        set: function (a) {
            var b = this.v8;
            if (a != b) {
                this.u6 = a;
                this.qt("YAxisTitleLeftMargin", b, this.v8);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vu", {
        get: function () {
            return this.us;
        },
        set: function (a) {
            var b = this.vu;
            if (a != b) {
                this.us = a;
                this.qt("XAxisTitleTopMargin", b, this.vu);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "wb", {
        get: function () {
            return this.u9;
        },
        set: function (a) {
            var b = this.wb;
            if (a != b) {
                this.u9 = a;
                this.qt("YAxisTitleTopMargin", b, this.wb);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vt", {
        get: function () {
            return this.ur;
        },
        set: function (a) {
            var b = this.vt;
            if (a != b) {
                this.ur = a;
                this.qt("XAxisTitleRightMargin", b, this.vt);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "wa", {
        get: function () {
            return this.u8;
        },
        set: function (a) {
            var b = this.wa;
            if (a != b) {
                this.u8 = a;
                this.qt("YAxisTitleRightMargin", b, this.wa);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vq", {
        get: function () {
            return this.uo;
        },
        set: function (a) {
            var b = this.vq;
            if (a != b) {
                this.uo = a;
                this.qt("XAxisTitleBottomMargin", b, this.vq);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v7", {
        get: function () {
            return this.u5;
        },
        set: function (a) {
            var b = this.v7;
            if (a != b) {
                this.u5 = a;
                this.qt("YAxisTitleBottomMargin", b, this.v7);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aab", {
        get: function () {
            return this.zv;
        },
        set: function (a) {
            var b = this.aab;
            if (a != b) {
                this.zv = a;
                this.qt("XAxisTitleTextColor", b, this.aab);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aai", {
        get: function () {
            return this.z2;
        },
        set: function (a) {
            var b = this.aai;
            if (a != b) {
                this.z2 = a;
                this.qt("YAxisTitleTextColor", b, this.aai);
            }
        },
        enumerable: false,
        configurable: true
    });
    XYChart.prototype.qv = function (a, b, c) {
        var _this = this;
        _super.prototype.qv.call(this, a, b, c);
        switch (a) {
            case "XAxisLabelTextStyle":
                this.y9(function (d) { return d.textStyle = _this.w5; });
                break;
            case "YAxisLabelTextStyle":
                this.ze(function (d) { return d.textStyle = _this.ya; });
                break;
            case "XAxisTitleTextStyle":
                this.zb(function (d) { return d.textStyle = _this.xt; });
                break;
            case "YAxisTitleTextStyle":
                this.zg(function (d) { return d.textStyle = _this.yy; });
                break;
        }
    };
    Object.defineProperty(XYChart.prototype, "w5", {
        get: function () {
            return this.wh;
        },
        set: function (a) {
            var b = this.w5;
            if (a != b) {
                this.wh = a;
                this.qt("XAxisLabelTextStyle", b, this.w5);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "ya", {
        get: function () {
            return this.wl;
        },
        set: function (a) {
            var b = this.ya;
            if (a != b) {
                this.wl = a;
                this.qt("YAxisLabelTextStyle", b, this.ya);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "xt", {
        get: function () {
            return this.wj;
        },
        set: function (a) {
            var b = this.xt;
            if (a != b) {
                this.wj = a;
                this.qt("XAxisTitleTextStyle", b, this.xt);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "yy", {
        get: function () {
            return this.wn;
        },
        set: function (a) {
            var b = this.yy;
            if (a != b) {
                this.wn = a;
                this.qt("YAxisTitleTextStyle", b, this.yy);
            }
        },
        enumerable: false,
        configurable: true
    });
    XYChart.prototype.y4 = function (a) {
        var _this = this;
        this.y1(a, function (b) { return b.leftMargin = _this.vh; });
        this.y1(a, function (b) { return b.topMargin = _this.vj; });
        this.y1(a, function (b) { return b.rightMargin = _this.vi; });
        this.y1(a, function (b) { return b.bottomMargin = _this.vg; });
        this.y1(a, function (b) { return b.textColor = _this.z3; });
        this.y2(a, function (b) { return b.textColor = _this.aab; });
        this.y2(a, function (b) { return b.leftMargin = _this.vr; });
        this.y2(a, function (b) { return b.topMargin = _this.vu; });
        this.y2(a, function (b) { return b.rightMargin = _this.vt; });
        this.y2(a, function (b) { return b.bottomMargin = _this.vq; });
        this.y1(a, function (b) { return b.textStyle = _this.w5; });
        this.y2(a, function (b) { return b.textStyle = _this.xt; });
    };
    XYChart.prototype.y6 = function (a) {
        var _this = this;
        this.y1(a, function (b) { return b.leftMargin = _this.vy; });
        this.y1(a, function (b) { return b.topMargin = _this.v0; });
        this.y1(a, function (b) { return b.rightMargin = _this.vz; });
        this.y1(a, function (b) { return b.bottomMargin = _this.vx; });
        this.y1(a, function (b) { return b.textColor = _this.z4; });
        this.y2(a, function (b) { return b.textColor = _this.aai; });
        this.y2(a, function (b) { return b.leftMargin = _this.v8; });
        this.y2(a, function (b) { return b.topMargin = _this.wb; });
        this.y2(a, function (b) { return b.rightMargin = _this.wa; });
        this.y2(a, function (b) { return b.bottomMargin = _this.v7; });
        this.y1(a, function (b) { return b.textStyle = _this.ya; });
        this.y2(a, function (b) { return b.textStyle = _this.yy; });
    };
    XYChart.prototype.rc = function (a) {
        var b = this.at(a);
        var c = this.cf(a, b);
        if (c == null) {
            return;
        }
        c.itemsSource = a.data;
        c.name = this.mt(a);
        c.title = this.mu(a, b);
        this.dataChart.series.add(c);
    };
    XYChart.prototype.y7 = function (a) {
        this.y8(a, null);
    };
    XYChart.prototype.y8 = function (a, b) {
        a(this.tw());
    };
    XYChart.prototype.zd = function (a, b) {
        a(this.tx());
    };
    XYChart.prototype.zc = function (a) {
        this.zd(a, true);
    };
    XYChart.prototype.pr = function (a, b) {
        this.y7(a);
        this.zd(a, b);
    };
    XYChart.prototype.zb = function (a) {
        this.y2(this.tw(), a);
    };
    XYChart.prototype.zg = function (a) {
        this.y2(this.tx(), a);
    };
    XYChart.prototype.ze = function (a) {
        this.y1(this.tx(), a);
    };
    XYChart.prototype.y9 = function (a) {
        this.y1(this.tw(), a);
    };
    XYChart.prototype.va = function (a) {
        var b = this.tw();
        return b.ei(a, new ScalerParams(1, this.s7, this.s6, b.cg));
    };
    XYChart.prototype.vc = function (a) {
        var b = this.tw();
        return b.el(a, new ScalerParams(1, this.s7, this.s6, b.cg));
    };
    XYChart.prototype.vb = function (a) {
        var b = this.tx();
        return b.ei(a, new ScalerParams(1, this.s7, this.s6, b.cg));
    };
    XYChart.prototype.vd = function (a) {
        var b = this.tx();
        return b.el(a, new ScalerParams(1, this.s7, this.s6, b.cg));
    };
    XYChart.prototype.q9 = function (a) {
        _super.prototype.q9.call(this, a);
        if (a == null) {
            return;
        }
        if (a.axes != null) {
            var b = this.tw();
            var c = this.tx();
            if (a.axes.contains(b)) {
                a.axes.remove(b);
            }
            if (a.axes.contains(c)) {
                a.axes.remove(c);
            }
        }
    };
    XYChart.wq = function (a, b) {
        var e_1, _a;
        try {
            for (var _b = __values(fromEnum(b)), _c = _b.next(); !_c.done; _c = _b.next()) {
                var c = _c.value;
                var d = c.findMatchingHint(16);
                if (d != null) {
                    var e = d.path;
                    return e;
                }
            }
        }
        catch (e_1_1) {
            e_1 = { error: e_1_1 };
        }
        finally {
            try {
                if (_c && !_c.done && (_a = _b.return))
                    _a.call(_b);
            }
            finally {
                if (e_1)
                    throw e_1.error;
            }
        }
        return null;
    };
    XYChart.prototype.p2 = function (a) {
        _super.prototype.p2.call(this, a);
        if (a == this.dataChart) {
            this.dataChart.axes.add(this.tw());
            this.dataChart.axes.add(this.tx());
        }
    };
    XYChart.prototype.y3 = function (a) {
        var _this = this;
        if (a != null && this.iu != null && a.fk == null) {
            a.provideRenderer(this.iu);
        }
        a.jv = this.z6;
        a.eq = this.vk;
        a.jw = this.z7;
        a.et = this.vl;
        a.jy = this.z9;
        a.ff = this.vm;
        a.jx = this.z8;
        a.fg = this.vn;
        a.jz = this.aaa;
        a.fh = this.vo;
        a.c3 = true;
        a.ct = this.e8;
        a.cv = this.e8;
        var b = a == this.tw();
        if (b) {
            a.g5 = this.xk;
        }
        a.fz = this.we;
        a.gf = this.ww;
        a.ag = this.tu;
        this.y1(a, function (c) { return c.angle = _this.vf; });
        this.y1(a, function (c) {
            if (c.extent != _this.ve) {
                c.extent = _this.ve;
            }
        });
        this.y1(a, function (c) { return c.horizontalAlignment = _this.zk; });
        this.y1(a, function (c) { return c.verticalAlignment = _this.aam; });
        this.y1(a, function (c) { return c.visibility = _this.aar; });
        this.y1(a, function (c) { return c.location = _this.t2(_this.t5); });
        this.y2(a, function (c) { return c.horizontalAlignment = _this.zl; });
        this.y2(a, function (c) { return c.angle = _this.vp; });
        this.y4(a);
    };
    XYChart.prototype.y5 = function (a) {
        var _this = this;
        if (a == null) {
            return;
        }
        if (this.iu != null && a.fk == null) {
            a.provideRenderer(this.iu);
        }
        a.ct = this.e8;
        a.cv = this.e8;
        this.y1(a, function (b) { return b.angle = _this.vw; });
        this.y1(a, function (b) {
            if (b.extent != _this.vv) {
                b.extent = _this.vv;
            }
        });
        this.y1(a, function (b) { return b.horizontalAlignment = _this.zm; });
        this.y1(a, function (b) { return b.verticalAlignment = _this.aan; });
        this.y1(a, function (b) { return b.visibility = _this.aas; });
        this.y1(a, function (b) { return b.location = _this.t3(_this.t7); });
        this.y2(a, function (b) { return b.verticalAlignment = _this.aao; });
        this.y2(a, function (b) { return b.angle = _this.v6; });
        a.jv = this.aad;
        a.eq = this.v1;
        a.jw = this.aae;
        a.et = this.v2;
        a.jy = this.aag;
        a.ff = this.v3;
        a.jx = this.aaf;
        a.fg = this.v4;
        a.jz = this.aah;
        a.fh = this.v5;
        var b = a == this.tx();
        if (b) {
            a.g5 = this.yp;
        }
        a.gf = this.x1;
        a.ag = this.tv;
        this.y6(a);
    };
    XYChart.prototype.pz = function () {
        _super.prototype.pz.call(this);
        this.y3(this.tw());
        this.y5(this.tx());
    };
    XYChart.prototype.y1 = function (a, b) {
        if (a == null) {
            return;
        }
        if (a.ay == null) {
            a.ay = new AxisLabelSettings();
            a.ay.angle = a.d4();
            a.ay.bottomMargin = a.d5();
            a.ay.leftMargin = a.d6();
            a.ay.rightMargin = a.d7();
            a.ay.topMargin = a.d8();
            a.ay.horizontalAlignment = a.jq();
            a.ay.location = a.az();
            a.ay.verticalAlignment = a.kj();
        }
        b(a.ay);
    };
    XYChart.prototype.y2 = function (a, b) {
        if (a == null) {
            return;
        }
        if (a.be == null) {
            a.be = new TitleSettings();
            a.be.bottomMargin = a.ea();
            a.be.leftMargin = a.eb();
            a.be.rightMargin = a.ec();
            a.be.topMargin = a.ed();
            a.be.location = a.a0();
            a.be.angle = a.d9();
            a.be.horizontalAlignment = a.jr();
            a.be.verticalAlignment = a.kk();
        }
        b(a.be);
    };
    XYChart.prototype.qt = function (a, b, c) {
        var _this = this;
        _super.prototype.qt.call(this, a, b, c);
        switch (a) {
            case "XAxisLabelAngle":
                this.y9(function (d) { return d.angle = _this.vf; });
                break;
            case "YAxisLabelAngle":
                this.ze(function (d) { return d.angle = _this.vw; });
                break;
            case "XAxisLabelHorizontalAlignment":
                this.y9(function (d) { return d.horizontalAlignment = _this.zk; });
                break;
            case "YAxisLabelHorizontalAlignment":
                this.ze(function (d) { return d.horizontalAlignment = _this.zm; });
                break;
            case "XAxisLabelVerticalAlignment":
                this.y9(function (d) { return d.verticalAlignment = _this.aam; });
                break;
            case "YAxisLabelVerticalAlignment":
                this.ze(function (d) { return d.verticalAlignment = _this.aan; });
                break;
            case "XAxisLabelVisibility":
                this.y9(function (d) { return d.visibility = _this.aar; });
                break;
            case "YAxisLabelVisibility":
                this.ze(function (d) { return d.visibility = _this.aas; });
                break;
            case "XAxisLabel":
                this.y7(function (d) { return d.fz = _this.we; });
                break;
            case "YAxisLabel":
                this.zc(function (d) { return d.fz = _this.wf; });
                break;
            case "XAxisLabelFormat":
                this.y7(function (d) { return d.gf = _this.ww; });
                break;
            case "XAxisLabelFormatSpecifiers":
                this.y7(function (d) { return d.ag = _this.tu; });
                break;
            case "YAxisLabelFormat":
                this.zc(function (d) { return d.gf = _this.x1; });
                break;
            case "YAxisLabelFormatSpecifiers":
                this.zc(function (d) { return d.ag = _this.tv; });
                break;
            case "XAxisTitleAngle":
                this.zb(function (d) { return d.angle = _this.vp; });
                break;
            case "YAxisTitleAngle":
                this.zg(function (d) { return d.angle = _this.v6; });
                break;
            case "XAxisTitleAlignment":
                this.zb(function (d) { return d.horizontalAlignment = _this.zl; });
                break;
            case "YAxisTitleAlignment":
                this.zg(function (d) { return d.verticalAlignment = _this.aao; });
                break;
            case "XAxisTitle":
                this.y7(function (d) { return d.g5 = _this.xk; });
                break;
            case "YAxisTitle":
                this.zd(function (d) { return d.g5 = _this.yp; }, false);
                break;
            case "XAxisMajorStroke":
                this.y8(function (d) { return d.jv = _this.z6; }, a);
                break;
            case "YAxisMajorStroke":
                this.zc(function (d) { return d.jv = _this.aad; });
                break;
            case "XAxisMajorStrokeThickness":
                this.y8(function (d) { return d.eq = _this.vk; }, a);
                break;
            case "YAxisMajorStrokeThickness":
                this.zc(function (d) { return d.eq = _this.v1; });
                break;
            case "XAxisMinorStroke":
                this.y7(function (d) { return d.jw = _this.z7; });
                break;
            case "YAxisMinorStroke":
                this.zc(function (d) { return d.jw = _this.aae; });
                break;
            case "XAxisMinorStrokeThickness":
                this.y7(function (d) { return d.et = _this.vl; });
                break;
            case "YAxisMinorStrokeThickness":
                this.zc(function (d) { return d.et = _this.v2; });
                break;
            case "XAxisTickLength":
                this.y7(function (d) { return d.fg = _this.vn; });
                break;
            case "YAxisTickLength":
                this.zc(function (d) { return d.fg = _this.v4; });
                break;
            case "XAxisTickStroke":
                this.y7(function (d) { return d.jz = _this.aaa; });
                break;
            case "YAxisTickStroke":
                this.zc(function (d) { return d.jz = _this.aah; });
                break;
            case "XAxisTickStrokeThickness":
                this.y7(function (d) { return d.fh = _this.vo; });
                break;
            case "YAxisTickStrokeThickness":
                this.zc(function (d) { return d.fh = _this.v5; });
                break;
            case "XAxisStroke":
                this.y7(function (d) { return d.jy = _this.z9; });
                break;
            case "YAxisStroke":
                this.zc(function (d) { return d.jy = _this.aag; });
                break;
            case "XAxisStrokeThickness":
                this.y7(function (d) { return d.ff = _this.vm; });
                break;
            case "YAxisStrokeThickness":
                this.zc(function (d) { return d.ff = _this.v3; });
                break;
            case "XAxisExtent":
                this.y9(function (d) { return d.extent = _this.ve; });
                break;
            case "YAxisExtent":
                this.ze(function (d) { return d.extent = _this.vv; });
                break;
            case "XAxisStrip":
                this.y7(function (d) { return d.jx = _this.z8; });
                break;
            case "YAxisStrip":
                this.zc(function (d) { return d.jx = _this.aaf; });
                break;
            case "XAxisInverted":
                this.y7(function (d) { return d.cg = _this.ua; });
                break;
            case "YAxisInverted":
                this.zc(function (d) { return d.cg = _this.ub; });
                break;
            case "YAxisLabelLocation":
                this.zf();
                break;
            case "XAxisLabelLocation":
                this.za();
                break;
        }
    };
    XYChart.prototype.zf = function () {
        var a = this.t3(this.t7);
        if (a == 2 || a == 7) {
            this.zm = 2;
        }
        else {
            this.zm = 0;
        }
        this.ze(function (b) { return b.location = a; });
    };
    XYChart.prototype.za = function () {
        var a = this.t2(this.t5);
        if (a == 1 || a == 5) {
            this.aam = 0;
        }
        else {
            this.aam = 2;
        }
        this.y9(function (b) { return b.location = a; });
    };
    XYChart.prototype.t3 = function (a) {
        if (a == 0) {
            return 2;
        }
        else if (a == 1) {
            return 3;
        }
        else if (a == 3) {
            return 7;
        }
        else if (a == 2) {
            return 6;
        }
        else {
            if (this.bi == 1) {
                return 3;
            }
            else {
                return 2;
            }
        }
    };
    XYChart.prototype.t2 = function (a) {
        if (a == 1) {
            return 1;
        }
        else if (a == 0) {
            return 0;
        }
        else if (a == 3) {
            return 5;
        }
        else if (a == 2) {
            return 4;
        }
        else {
            return 1;
        }
    };
    Object.defineProperty(XYChart.prototype, "we", {
        get: function () {
            return this.wc;
        },
        set: function (a) {
            var b = this.we;
            if (a != b) {
                this.wc = a;
                this.qt("XAxisLabel", b, this.we);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "wf", {
        get: function () {
            return this.wd;
        },
        set: function (a) {
            var b = this.wf;
            if (a != b) {
                this.wd = a;
                this.qt("YAxisLabel", b, this.wf);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z6", {
        get: function () {
            return this.zq;
        },
        set: function (a) {
            var b = this.z6;
            if (a != b) {
                this.zq = a;
                this.qt("XAxisMajorStroke", b, this.z6);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aad", {
        get: function () {
            return this.zx;
        },
        set: function (a) {
            var b = this.aad;
            if (a != b) {
                this.zx = a;
                this.qt("YAxisMajorStroke", b, this.aad);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vk", {
        get: function () {
            return this.ui;
        },
        set: function (a) {
            var b = this.vk;
            if (a != b) {
                this.ui = a;
                this.qt("XAxisMajorStrokeThickness", b, this.vk);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v1", {
        get: function () {
            return this.uz;
        },
        set: function (a) {
            var b = this.v1;
            if (a != b) {
                this.uz = a;
                this.qt("YAxisMajorStrokeThickness", b, this.v1);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vl", {
        get: function () {
            return this.uj;
        },
        set: function (a) {
            var b = this.vl;
            if (a != b) {
                this.uj = a;
                this.qt("XAxisMinorStrokeThickness", b, this.vl);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v2", {
        get: function () {
            return this.u0;
        },
        set: function (a) {
            var b = this.v2;
            if (a != b) {
                this.u0 = a;
                this.qt("YAxisMinorStrokeThickness", b, this.v2);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z8", {
        get: function () {
            return this.zs;
        },
        set: function (a) {
            var b = this.z8;
            if (a != b) {
                this.zs = a;
                this.qt("XAxisStrip", b, this.z8);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aaf", {
        get: function () {
            return this.zz;
        },
        set: function (a) {
            var b = this.aaf;
            if (a != b) {
                this.zz = a;
                this.qt("YAxisStrip", b, this.aaf);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z9", {
        get: function () {
            return this.zt;
        },
        set: function (a) {
            var b = this.z9;
            if (a != b) {
                this.zt = a;
                this.qt("XAxisStroke", b, this.z9);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aag", {
        get: function () {
            return this.z0;
        },
        set: function (a) {
            var b = this.aag;
            if (a != b) {
                this.z0 = a;
                this.qt("YAxisStroke", b, this.aag);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vm", {
        get: function () {
            return this.uk;
        },
        set: function (a) {
            var b = this.vm;
            if (a != b) {
                this.uk = a;
                this.qt("XAxisStrokeThickness", b, this.vm);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v3", {
        get: function () {
            return this.u1;
        },
        set: function (a) {
            var b = this.v3;
            if (a != b) {
                this.u1 = a;
                this.qt("YAxisStrokeThickness", b, this.v3);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vn", {
        get: function () {
            return this.ul;
        },
        set: function (a) {
            var b = this.vn;
            if (a != b) {
                this.ul = a;
                this.qt("XAxisTickLength", b, this.vn);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v4", {
        get: function () {
            return this.u2;
        },
        set: function (a) {
            var b = this.v4;
            if (a != b) {
                this.u2 = a;
                this.qt("YAxisTickLength", b, this.v4);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aaa", {
        get: function () {
            return this.zu;
        },
        set: function (a) {
            var b = this.aaa;
            if (a != b) {
                this.zu = a;
                this.qt("XAxisTickStroke", b, this.aaa);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aah", {
        get: function () {
            return this.z1;
        },
        set: function (a) {
            var b = this.aah;
            if (a != b) {
                this.z1 = a;
                this.qt("YAxisTickStroke", b, this.aah);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vo", {
        get: function () {
            return this.um;
        },
        set: function (a) {
            var b = this.vo;
            if (a != b) {
                this.um = a;
                this.qt("XAxisTickStrokeThickness", b, this.vo);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v5", {
        get: function () {
            return this.u3;
        },
        set: function (a) {
            var b = this.v5;
            if (a != b) {
                this.u3 = a;
                this.qt("YAxisTickStrokeThickness", b, this.v5);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "xk", {
        get: function () {
            return this.wi;
        },
        set: function (a) {
            var b = this.xk;
            if (a != b) {
                this.wi = a;
                this.qt("XAxisTitle", b, this.xk);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "yp", {
        get: function () {
            return this.wm;
        },
        set: function (a) {
            var b = this.yp;
            if (a != b) {
                this.wm = a;
                this.qt("YAxisTitle", b, this.yp);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "z7", {
        get: function () {
            return this.zr;
        },
        set: function (a) {
            var b = this.z7;
            if (a != b) {
                this.zr = a;
                this.qt("XAxisMinorStroke", b, this.z7);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aae", {
        get: function () {
            return this.zy;
        },
        set: function (a) {
            var b = this.aae;
            if (a != b) {
                this.zy = a;
                this.qt("YAxisMinorStroke", b, this.aae);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vf", {
        get: function () {
            return this.ud;
        },
        set: function (a) {
            var b = this.vf;
            if (a != b) {
                this.ud = a;
                this.qt("XAxisLabelAngle", b, this.vf);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vw", {
        get: function () {
            return this.uu;
        },
        set: function (a) {
            var b = this.vw;
            if (a != b) {
                this.uu = a;
                this.qt("YAxisLabelAngle", b, this.vw);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "ve", {
        get: function () {
            return this.uc;
        },
        set: function (a) {
            var b = this.ve;
            if (a != b) {
                this.uc = a;
                this.qt("XAxisExtent", b, this.ve);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vv", {
        get: function () {
            return this.ut;
        },
        set: function (a) {
            var b = this.vv;
            if (a != b) {
                this.ut = a;
                this.qt("YAxisExtent", b, this.vv);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "vp", {
        get: function () {
            return this.un;
        },
        set: function (a) {
            var b = this.vp;
            if (a != b) {
                this.un = a;
                this.qt("XAxisTitleAngle", b, this.vp);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "v6", {
        get: function () {
            return this.u4;
        },
        set: function (a) {
            var b = this.v6;
            if (a != b) {
                this.u4 = a;
                this.qt("YAxisTitleAngle", b, this.v6);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "ua", {
        get: function () {
            return this.t8;
        },
        set: function (a) {
            var b = this.ua;
            if (a != b) {
                this.t8 = a;
                this.qt("XAxisInverted", b, this.ua);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "ub", {
        get: function () {
            return this.t9;
        },
        set: function (a) {
            var b = this.ub;
            if (a != b) {
                this.t9 = a;
                this.qt("YAxisInverted", b, this.ub);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "zl", {
        get: function () {
            return this.zi;
        },
        set: function (a) {
            var b = this.zl;
            if (a != b) {
                this.zi = a;
                this.qt("XAxisTitleAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.zl));
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aao", {
        get: function () {
            return this.aal;
        },
        set: function (a) {
            var b = this.aao;
            if (a != b) {
                this.aal = a;
                this.qt("YAxisTitleAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, this.aao));
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "zk", {
        get: function () {
            return this.zh;
        },
        set: function (a) {
            var b = this.zk;
            if (a != b) {
                this.zh = a;
                this.qt("XAxisLabelHorizontalAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.zk));
            }
        },
        enumerable: false,
        configurable: true
    });
    XYChart.prototype.get_zm = function () {
        return this.zj;
    };
    XYChart.prototype.set_zm = function (a) {
        var b = this.zm;
        if (a != b) {
            this.zj = a;
            this.qt("YAxisLabelHorizontalAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.zm));
        }
    };
    Object.defineProperty(XYChart.prototype, "zm", {
        get: function () {
            return this.get_zm();
        },
        set: function (a) {
            this.set_zm(a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aam", {
        get: function () {
            return this.aaj;
        },
        set: function (a) {
            var b = this.aam;
            if (a != b) {
                this.aaj = a;
                this.qt("XAxisLabelVerticalAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, this.aam));
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aan", {
        get: function () {
            return this.aak;
        },
        set: function (a) {
            var b = this.aan;
            if (a != b) {
                this.aak = a;
                this.qt("YAxisLabelVerticalAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, this.aan));
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aar", {
        get: function () {
            return this.aap;
        },
        set: function (a) {
            var b = this.aar;
            if (a != b) {
                this.aap = a;
                this.qt("XAxisLabelVisibility", enumGetBox(Visibility_$type, b), enumGetBox(Visibility_$type, this.aar));
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "aas", {
        get: function () {
            return this.aaq;
        },
        set: function (a) {
            var b = this.aas;
            if (a != b) {
                this.aaq = a;
                this.qt("YAxisLabelVisibility", enumGetBox(Visibility_$type, b), enumGetBox(Visibility_$type, this.aas));
            }
        },
        enumerable: false,
        configurable: true
    });
    XYChart.prototype.get_t7 = function () {
        return this.t6;
    };
    XYChart.prototype.set_t7 = function (a) {
        var b = this.t7;
        if (a != b) {
            this.t6 = a;
            this.qt("YAxisLabelLocation", enumGetBox(YAxisLabelLocation_$type, b), enumGetBox(YAxisLabelLocation_$type, this.t7));
        }
    };
    Object.defineProperty(XYChart.prototype, "t7", {
        get: function () {
            return this.get_t7();
        },
        set: function (a) {
            this.set_t7(a);
        },
        enumerable: false,
        configurable: true
    });
    XYChart.prototype.get_t5 = function () {
        return this.t4;
    };
    XYChart.prototype.set_t5 = function (a) {
        var b = this.t5;
        if (a != b) {
            this.t4 = a;
            this.qt("XAxisLabelLocation", enumGetBox(XAxisLabelLocation_$type, b), enumGetBox(XAxisLabelLocation_$type, this.t5));
        }
    };
    Object.defineProperty(XYChart.prototype, "t5", {
        get: function () {
            return this.get_t5();
        },
        set: function (a) {
            this.set_t5(a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "ww", {
        get: function () {
            return this.wg;
        },
        set: function (a) {
            var b = this.wg;
            if (a != b) {
                this.wg = a;
                this.qt("XAxisLabelFormat", b, this.wg);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "tu", {
        get: function () {
            return this.ts;
        },
        set: function (a) {
            var b = this.ts;
            if (a != b) {
                this.ts = a;
                this.qt("XAxisLabelFormatSpecifiers", b, this.ts);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "x1", {
        get: function () {
            return this.wk;
        },
        set: function (a) {
            var b = this.wk;
            if (a != b) {
                this.wk = a;
                this.qt("YAxisLabelFormat", b, this.wk);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XYChart.prototype, "tv", {
        get: function () {
            return this.tt;
        },
        set: function (a) {
            var b = this.tt;
            if (a != b) {
                this.tt = a;
                this.qt("YAxisLabelFormatSpecifiers", b, this.tt);
            }
        },
        enumerable: false,
        configurable: true
    });
    XYChart.$t = markType(XYChart, 'XYChart', DomainChart.$);
    return XYChart;
}(DomainChart));
export { XYChart };
