/*
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 { 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
 */
export let XYChart = /*@__PURE__*/ (() => {
    class XYChart extends DomainChart {
        constructor() {
            super(...arguments);
            this.aa1 = null;
            this.aa2 = null;
            this.abi = 0;
            this.abk = 5;
            this.abj = 0;
            this.abh = 5;
            this.ab1 = 5;
            this.ab3 = 0;
            this.ab2 = 5;
            this.ab0 = 0;
            this.ag4 = null;
            this.ahb = null;
            this.ag2 = null;
            this.ag3 = null;
            this.abv = 0;
            this.ace = 0;
            this.abu = NaN;
            this.acd = NaN;
            this.abx = NaN;
            this.acg = NaN;
            this.abw = NaN;
            this.acf = NaN;
            this.abt = NaN;
            this.acc = NaN;
            this.aha = null;
            this.ahh = null;
            this.ads = null;
            this.adw = null;
            this.adu = null;
            this.ady = null;
            this.adn = null;
            this.ado = null;
            this.ag5 = null;
            this.ahc = null;
            this.abl = DeviceUtils.g(1);
            this.ab4 = DeviceUtils.g(1);
            this.abo = DeviceUtils.g(1);
            this.ab7 = DeviceUtils.g(1);
            this.ag7 = null;
            this.ahe = null;
            this.ag8 = null;
            this.ahf = null;
            this.abp = DeviceUtils.g(1);
            this.ab8 = DeviceUtils.g(1);
            this.abq = DeviceUtils.g(8);
            this.ab9 = 0;
            this.ag9 = null;
            this.ahg = null;
            this.abr = DeviceUtils.g(1);
            this.aca = DeviceUtils.g(1);
            this.adt = null;
            this.adx = null;
            this.ag6 = null;
            this.ahd = null;
            this.abg = 0;
            this.abz = 0;
            this.abf = NaN;
            this.aby = NaN;
            this.abm = NaN;
            this.ab5 = NaN;
            this.abn = NaN;
            this.ab6 = NaN;
            this.abs = 0;
            this.acb = -90;
            this.abb = false;
            this.abc = false;
            this.agx = 1;
            this.ah0 = 1;
            this.agw = 1;
            this.agy = 2;
            this.ahy = 0;
            this.ahz = 1;
            this.ah4 = 0;
            this.ah5 = 0;
            this.aa9 = 4;
            this.aa7 = 4;
            this.adr = null;
            this.aav = null;
            this.adv = null;
            this.aaw = null;
        }
        provideContainer(a) {
            if (a != null) {
                let b = this.aaz();
                let c = this.aa0();
                if (b != null) {
                    b.provideRenderer(a);
                }
                if (c != null) {
                    c.provideRenderer(a);
                }
            }
            super.provideContainer(a);
        }
        vw() {
            super.vw();
            let a = this.aaz();
            let b = this.aa0();
            if (a != null && a.a3 != null) {
                this.ahk = a.a3.textColor;
            }
            if (b != null && b.a3 != null) {
                this.ahr = b.a3.textColor;
            }
            this.ahp = AxisDefaults.axis_TickBrush;
            this.ahw = AxisDefaults.axis_TickBrush;
            this.ahl = AxisDefaults.axis_MajorBrush;
            this.ahs = AxisDefaults.axis_MajorBrush;
            this.aho = AxisDefaults.axis_LineBrush;
            this.ahv = AxisDefaults.axis_LineBrush;
        }
        wr(a, b, c) {
            super.wr(a, b, c);
            switch (a) {
                case "XAxisLabelLeftMargin":
                    this.ago((d) => d.leftMargin = this.aco);
                    break;
                case "XAxisLabelTopMargin":
                    this.ago((d) => d.topMargin = this.acq);
                    break;
                case "XAxisLabelRightMargin":
                    this.ago((d) => d.rightMargin = this.acp);
                    break;
                case "XAxisLabelBottomMargin":
                    this.ago((d) => d.bottomMargin = this.acn);
                    break;
                case "YAxisLabelLeftMargin":
                    this.agt((d) => d.leftMargin = this.ac7);
                    break;
                case "YAxisLabelTopMargin":
                    this.agt((d) => d.topMargin = this.ac9);
                    break;
                case "YAxisLabelRightMargin":
                    this.agt((d) => d.rightMargin = this.ac8);
                    break;
                case "YAxisLabelBottomMargin":
                    this.agt((d) => d.bottomMargin = this.ac6);
                    break;
                case "ActualItemsSource":
                case "ShouldDisplayMockData":
                case "ShouldUseSkeletonStyleForMockData":
                    this.ahi = this.zt(this.ahk);
                    this.ahj = this.zt(this.ahr);
                    break;
                case "XAxisLabelTextColor":
                    this.ahi = this.zt(this.ahk);
                    break;
                case "YAxisLabelTextColor":
                    this.ahj = this.zt(this.ahr);
                    break;
                case "ActualXAxisLabelTextColor":
                    this.ago((d) => d.textColor = this.ahi);
                    break;
                case "ActualYAxisLabelTextColor":
                    this.agt((d) => d.textColor = this.ahj);
                    break;
                case "XAxisTitleMargin":
                    this.agq((d) => d.margin = this.ac1);
                    break;
                case "YAxisTitleMargin":
                    this.agv((d) => d.margin = this.adk);
                    break;
                case "XAxisTitleLeftMargin":
                    this.agq((d) => d.leftMargin = this.ac0);
                    break;
                case "YAxisTitleLeftMargin":
                    this.agv((d) => d.leftMargin = this.adj);
                    break;
                case "XAxisTitleTopMargin":
                    this.agq((d) => d.topMargin = this.ac3);
                    break;
                case "YAxisTitleTopMargin":
                    this.agv((d) => d.topMargin = this.adm);
                    break;
                case "XAxisTitleRightMargin":
                    this.agq((d) => d.rightMargin = this.ac2);
                    break;
                case "YAxisTitleRightMargin":
                    this.agv((d) => d.rightMargin = this.adl);
                    break;
                case "XAxisTitleBottomMargin":
                    this.agq((d) => d.bottomMargin = this.acz);
                    break;
                case "YAxisTitleBottomMargin":
                    this.agv((d) => d.bottomMargin = this.adi);
                    break;
                case "XAxisTitleTextColor":
                    this.agq((d) => d.textColor = this.ahq);
                    break;
                case "YAxisTitleTextColor":
                    this.agv((d) => d.textColor = this.ahx);
                    break;
                case "XAxisFormatLabel":
                    this.agm((d) => d.ay = this.aa3);
                    break;
                case "YAxisFormatLabel":
                    this.agr((d) => d.ay = this.aa4);
                    break;
            }
        }
        get aa3() {
            return this.aa1;
        }
        set aa3(a) {
            let b = this.aa3;
            if (a != b) {
                this.aa1 = a;
                this.wn("XAxisFormatLabel", b, this.aa3);
            }
        }
        get aa4() {
            return this.aa2;
        }
        set aa4(a) {
            let b = this.aa4;
            if (a != b) {
                this.aa2 = a;
                this.wn("YAxisFormatLabel", b, this.aa4);
            }
        }
        get aco() {
            return this.abi;
        }
        set aco(a) {
            let b = this.aco;
            if (a != b) {
                this.abi = a;
                this.wn("XAxisLabelLeftMargin", b, this.aco);
            }
        }
        get acq() {
            return this.abk;
        }
        set acq(a) {
            let b = this.acq;
            if (a != b) {
                this.abk = a;
                this.wn("XAxisLabelTopMargin", b, this.acq);
            }
        }
        get acp() {
            return this.abj;
        }
        set acp(a) {
            let b = this.acp;
            if (a != b) {
                this.abj = a;
                this.wn("XAxisLabelRightMargin", b, this.acp);
            }
        }
        get acn() {
            return this.abh;
        }
        set acn(a) {
            let b = this.acn;
            if (a != b) {
                this.abh = a;
                this.wn("XAxisLabelBottomMargin", b, this.acn);
            }
        }
        get ac7() {
            return this.ab1;
        }
        set ac7(a) {
            let b = this.ac7;
            if (a != b) {
                this.ab1 = a;
                this.wn("YAxisLabelLeftMargin", b, this.ac7);
            }
        }
        get ac9() {
            return this.ab3;
        }
        set ac9(a) {
            let b = this.ac9;
            if (a != b) {
                this.ab3 = a;
                this.wn("YAxisLabelTopMargin", b, this.ac9);
            }
        }
        get ac8() {
            return this.ab2;
        }
        set ac8(a) {
            let b = this.ac8;
            if (a != b) {
                this.ab2 = a;
                this.wn("YAxisLabelRightMargin", b, this.ac8);
            }
        }
        get ac6() {
            return this.ab0;
        }
        set ac6(a) {
            let b = this.ac6;
            if (a != b) {
                this.ab0 = a;
                this.wn("YAxisLabelBottomMargin", b, this.ac6);
            }
        }
        get ahk() {
            return this.ag4;
        }
        set ahk(a) {
            let b = this.ahk;
            if (a != b) {
                this.ag4 = a;
                this.wn("XAxisLabelTextColor", b, this.ahk);
            }
        }
        get ahr() {
            return this.ahb;
        }
        set ahr(a) {
            let b = this.ahr;
            if (a != b) {
                this.ahb = a;
                this.wn("YAxisLabelTextColor", b, this.ahr);
            }
        }
        get ahi() {
            return this.ag2;
        }
        set ahi(a) {
            let b = this.ag2;
            if (a != b) {
                this.ag2 = a;
                this.wn("ActualXAxisLabelTextColor", b, this.ahi);
            }
        }
        get ahj() {
            return this.ag3;
        }
        set ahj(a) {
            let b = this.ag3;
            if (a != b) {
                this.ag3 = a;
                this.wn("ActualYAxisLabelTextColor", b, this.ahj);
            }
        }
        get ac1() {
            return this.abv;
        }
        set ac1(a) {
            let b = this.ac1;
            if (a != b) {
                this.abv = a;
                this.wn("XAxisTitleMargin", b, this.ac1);
            }
        }
        get adk() {
            return this.ace;
        }
        set adk(a) {
            let b = this.adk;
            if (a != b) {
                this.ace = a;
                this.wn("YAxisTitleMargin", b, this.adk);
            }
        }
        get ac0() {
            return this.abu;
        }
        set ac0(a) {
            let b = this.ac0;
            if (a != b) {
                this.abu = a;
                this.wn("XAxisTitleLeftMargin", b, this.ac0);
            }
        }
        get adj() {
            return this.acd;
        }
        set adj(a) {
            let b = this.adj;
            if (a != b) {
                this.acd = a;
                this.wn("YAxisTitleLeftMargin", b, this.adj);
            }
        }
        get ac3() {
            return this.abx;
        }
        set ac3(a) {
            let b = this.ac3;
            if (a != b) {
                this.abx = a;
                this.wn("XAxisTitleTopMargin", b, this.ac3);
            }
        }
        get adm() {
            return this.acg;
        }
        set adm(a) {
            let b = this.adm;
            if (a != b) {
                this.acg = a;
                this.wn("YAxisTitleTopMargin", b, this.adm);
            }
        }
        get ac2() {
            return this.abw;
        }
        set ac2(a) {
            let b = this.ac2;
            if (a != b) {
                this.abw = a;
                this.wn("XAxisTitleRightMargin", b, this.ac2);
            }
        }
        get adl() {
            return this.acf;
        }
        set adl(a) {
            let b = this.adl;
            if (a != b) {
                this.acf = a;
                this.wn("YAxisTitleRightMargin", b, this.adl);
            }
        }
        get acz() {
            return this.abt;
        }
        set acz(a) {
            let b = this.acz;
            if (a != b) {
                this.abt = a;
                this.wn("XAxisTitleBottomMargin", b, this.acz);
            }
        }
        get adi() {
            return this.acc;
        }
        set adi(a) {
            let b = this.adi;
            if (a != b) {
                this.acc = a;
                this.wn("YAxisTitleBottomMargin", b, this.adi);
            }
        }
        get ahq() {
            return this.aha;
        }
        set ahq(a) {
            let b = this.ahq;
            if (a != b) {
                this.aha = a;
                this.wn("XAxisTitleTextColor", b, this.ahq);
            }
        }
        get ahx() {
            return this.ahh;
        }
        set ahx(a) {
            let b = this.ahx;
            if (a != b) {
                this.ahh = a;
                this.wn("YAxisTitleTextColor", b, this.ahx);
            }
        }
        ws(a, b, c) {
            super.ws(a, b, c);
            switch (a) {
                case "XAxisLabelTextStyle":
                    this.ago((d) => d.textStyle = this.aeg);
                    break;
                case "YAxisLabelTextStyle":
                    this.agt((d) => d.textStyle = this.afn);
                    break;
                case "XAxisTitleTextStyle":
                    this.agq((d) => d.textStyle = this.ae6);
                    break;
                case "YAxisTitleTextStyle":
                    this.agv((d) => d.textStyle = this.agd);
                    break;
            }
        }
        get aeg() {
            return this.ads;
        }
        set aeg(a) {
            let b = this.aeg;
            if (a != b) {
                this.ads = a;
                this.wn("XAxisLabelTextStyle", b, this.aeg);
            }
        }
        get afn() {
            return this.adw;
        }
        set afn(a) {
            let b = this.afn;
            if (a != b) {
                this.adw = a;
                this.wn("YAxisLabelTextStyle", b, this.afn);
            }
        }
        get ae6() {
            return this.adu;
        }
        set ae6(a) {
            let b = this.ae6;
            if (a != b) {
                this.adu = a;
                this.wn("XAxisTitleTextStyle", b, this.ae6);
            }
        }
        get agd() {
            return this.ady;
        }
        set agd(a) {
            let b = this.agd;
            if (a != b) {
                this.ady = a;
                this.wn("YAxisTitleTextStyle", b, this.agd);
            }
        }
        agj(a) {
            this.agg(a, (b) => b.leftMargin = this.aco);
            this.agg(a, (b) => b.topMargin = this.acq);
            this.agg(a, (b) => b.rightMargin = this.acp);
            this.agg(a, (b) => b.bottomMargin = this.acn);
            this.agg(a, (b) => b.textColor = this.ahi);
            this.agh(a, (b) => b.textColor = this.ahq);
            this.agh(a, (b) => b.leftMargin = this.ac0);
            this.agh(a, (b) => b.topMargin = this.ac3);
            this.agh(a, (b) => b.rightMargin = this.ac2);
            this.agh(a, (b) => b.bottomMargin = this.acz);
            this.agg(a, (b) => b.textStyle = this.aeg);
            this.agh(a, (b) => b.textStyle = this.ae6);
        }
        agl(a) {
            this.agg(a, (b) => b.leftMargin = this.ac7);
            this.agg(a, (b) => b.topMargin = this.ac9);
            this.agg(a, (b) => b.rightMargin = this.ac8);
            this.agg(a, (b) => b.bottomMargin = this.ac6);
            this.agg(a, (b) => b.textColor = this.ahj);
            this.agh(a, (b) => b.textColor = this.ahx);
            this.agh(a, (b) => b.leftMargin = this.adj);
            this.agh(a, (b) => b.topMargin = this.adm);
            this.agh(a, (b) => b.rightMargin = this.adl);
            this.agh(a, (b) => b.bottomMargin = this.adi);
            this.agg(a, (b) => b.textStyle = this.afn);
            this.agh(a, (b) => b.textStyle = this.agd);
        }
        xk(a) {
            let b = this.bf(a);
            let c = this.dd(a, b);
            if (c == null) {
                return;
            }
            c.itemsSource = this.ib(a);
            if (a.highlightedData != null) {
                c.highlightedItemsSource = this.ic(a);
            }
            c.name = this.q9(a);
            c.title = this.ra(a, b);
            this.dataChart.series.add(c);
        }
        agm(a) {
            this.agn(a, null);
        }
        agn(a, b) {
            a(this.aaz());
        }
        ags(a, b) {
            a(this.aa0());
        }
        agr(a) {
            this.ags(a, true);
        }
        vf(a, b) {
            this.agm(a);
            this.ags(a, b);
        }
        agq(a) {
            this.agh(this.aaz(), a);
        }
        agv(a) {
            this.agh(this.aa0(), a);
        }
        agt(a) {
            this.agg(this.aa0(), a);
        }
        ago(a) {
            this.agg(this.aaz(), a);
        }
        ach(a) {
            let b = this.aaz();
            return b.ft(a, new ScalerParams(1, this.z2, this.z1, b.df));
        }
        acj(a) {
            let b = this.aaz();
            return b.fw(a, new ScalerParams(1, this.z2, this.z1, b.df));
        }
        aci(a) {
            let b = this.aa0();
            return b.ft(a, new ScalerParams(1, this.z2, this.z1, b.df));
        }
        ack(a) {
            let b = this.aa0();
            return b.fw(a, new ScalerParams(1, this.z2, this.z1, b.df));
        }
        xh(a) {
            super.xh(a);
            if (a == null) {
                return;
            }
            if (a.axes != null) {
                let b = this.aaz();
                let c = this.aa0();
                if (a.axes.contains(b)) {
                    a.axes.remove(b);
                }
                if (a.axes.contains(c)) {
                    a.axes.remove(c);
                }
            }
        }
        static ad1(a, b) {
            for (let c of fromEnum(b)) {
                let d = c.findMatchingHint(16);
                if (d != null) {
                    let e = d.path;
                    return e;
                }
            }
            return null;
        }
        vr(a, b) {
            super.vr(a, b);
            if (a == this.dataChart) {
                this.dataChart.axes.add(this.aaz());
                this.dataChart.axes.add(this.aa0());
            }
        }
        agi(a) {
            if (a != null && this.mb != null && a.gx == null) {
                a.provideRenderer(this.mb);
            }
            a.ni = this.ahl;
            a.f1 = this.acr;
            a.nj = this.ahm;
            a.f4 = this.acu;
            a.nm = this.aho;
            a.gs = this.acv;
            a.nl = this.ahn;
            a.gt = this.acw;
            a.nn = this.ahp;
            a.gu = this.acx;
            a.d5 = true;
            a.dv = this.shouldAvoidAxisAnnotationCollisions;
            a.dx = this.shouldAvoidAxisAnnotationCollisions;
            let b = a == this.aaz();
            if (b) {
                a.jb = this.aex;
            }
            a.hg = this.adp;
            a.ik = this.ad7;
            a.ah = this.aax;
            this.agg(a, (c) => c.angle = this.acm);
            this.agg(a, (c) => {
                if (c.extent != this.acl) {
                    c.extent = this.acl;
                }
            });
            this.agg(a, (c) => {
                if (c.maximumExtent != this.acs) {
                    c.maximumExtent = this.acs;
                }
            });
            this.agg(a, (c) => {
                if (c.maximumExtentPercentage != this.act) {
                    c.maximumExtentPercentage = this.act;
                }
            });
            this.agg(a, (c) => c.horizontalAlignment = this.agz);
            this.agg(a, (c) => c.verticalAlignment = this.ah1);
            this.agg(a, (c) => c.visibility = this.ah6);
            this.agg(a, (c) => c.location = this.aa5(this.aa8));
            this.agh(a, (c) => c.horizontalAlignment = this.ag0);
            this.agh(a, (c) => c.angle = this.acy);
            this.agj(a);
        }
        agk(a) {
            if (a == null) {
                return;
            }
            if (this.mb != null && a.gx == null) {
                a.provideRenderer(this.mb);
            }
            a.dv = this.shouldAvoidAxisAnnotationCollisions;
            a.dx = this.shouldAvoidAxisAnnotationCollisions;
            this.agg(a, (b) => b.angle = this.ac5);
            this.agg(a, (b) => {
                if (b.extent != this.ac4) {
                    b.extent = this.ac4;
                }
            });
            this.agg(a, (b) => {
                if (b.maximumExtent != this.adb) {
                    b.maximumExtent = this.adb;
                }
            });
            this.agg(a, (b) => {
                if (b.maximumExtentPercentage != this.adc) {
                    b.maximumExtentPercentage = this.adc;
                }
            });
            this.agg(a, (b) => b.horizontalAlignment = this.ag1);
            this.agg(a, (b) => b.verticalAlignment = this.ah2);
            this.agg(a, (b) => b.visibility = this.ah7);
            this.agg(a, (b) => b.location = this.aa6(this.aba));
            this.agh(a, (b) => b.verticalAlignment = this.ah3);
            this.agh(a, (b) => b.angle = this.adh);
            a.ni = this.ahs;
            a.f1 = this.ada;
            a.nj = this.aht;
            a.f4 = this.add;
            a.nm = this.ahv;
            a.gs = this.ade;
            a.nl = this.ahu;
            a.gt = this.adf;
            a.nn = this.ahw;
            a.gu = this.adg;
            let b = a == this.aa0();
            if (b) {
                a.jb = this.af4;
            }
            a.ik = this.afe;
            a.ah = this.aay;
            this.agl(a);
        }
        vo() {
            super.vo();
            this.agi(this.aaz());
            this.agk(this.aa0());
        }
        agg(a, b) {
            if (a == null) {
                return;
            }
            if (a.a3 == null) {
                a.a3 = new AxisLabelSettings();
                a.a3.angle = a.ff();
                a.a3.bottomMargin = a.fg();
                a.a3.leftMargin = a.fh();
                a.a3.rightMargin = a.fi();
                a.a3.topMargin = a.fj();
                a.a3.horizontalAlignment = a.m7();
                a.a3.location = a.a5();
                a.a3.verticalAlignment = a.n9();
            }
            b(a.a3);
        }
        agh(a, b) {
            if (a == null) {
                return;
            }
            if (a.bx == null) {
                a.bx = new TitleSettings();
                a.bx.bottomMargin = a.fl();
                a.bx.leftMargin = a.fm();
                a.bx.rightMargin = a.fn();
                a.bx.topMargin = a.fo();
                a.bx.location = a.a6();
                a.bx.angle = a.fk();
                a.bx.horizontalAlignment = a.m8();
                a.bx.verticalAlignment = a.oa();
            }
            b(a.bx);
        }
        wn(a, b, c) {
            super.wn(a, b, c);
            switch (a) {
                case "XAxisLabelAngle":
                    this.ago((d) => d.angle = this.acm);
                    break;
                case "YAxisLabelAngle":
                    this.agt((d) => d.angle = this.ac5);
                    break;
                case "XAxisLabelHorizontalAlignment":
                    this.ago((d) => d.horizontalAlignment = this.agz);
                    break;
                case "YAxisLabelHorizontalAlignment":
                    this.agt((d) => d.horizontalAlignment = this.ag1);
                    break;
                case "XAxisLabelVerticalAlignment":
                    this.ago((d) => d.verticalAlignment = this.ah1);
                    break;
                case "YAxisLabelVerticalAlignment":
                    this.agt((d) => d.verticalAlignment = this.ah2);
                    break;
                case "XAxisLabelVisibility":
                    this.ago((d) => d.visibility = this.ah6);
                    break;
                case "YAxisLabelVisibility":
                    this.agt((d) => d.visibility = this.ah7);
                    break;
                case "XAxisLabel":
                    this.agm((d) => d.hg = this.adp);
                    break;
                case "YAxisLabel":
                    this.agr((d) => d.hg = this.adq);
                    break;
                case "XAxisLabelFormat":
                    this.agm((d) => d.ik = this.ad7);
                    break;
                case "XAxisLabelFormatSpecifiers":
                    this.agm((d) => d.ah = this.aax);
                    break;
                case "YAxisLabelFormat":
                    this.agr((d) => d.ik = this.afe);
                    break;
                case "YAxisLabelFormatSpecifiers":
                    this.agr((d) => d.ah = this.aay);
                    break;
                case "XAxisTitleAngle":
                    this.agq((d) => d.angle = this.acy);
                    break;
                case "YAxisTitleAngle":
                    this.agv((d) => d.angle = this.adh);
                    break;
                case "XAxisTitleAlignment":
                    this.agq((d) => d.horizontalAlignment = this.ag0);
                    break;
                case "YAxisTitleAlignment":
                    this.agv((d) => d.verticalAlignment = this.ah3);
                    break;
                case "XAxisTitle":
                    this.agm((d) => d.jb = this.aex);
                    break;
                case "YAxisTitle":
                    this.ags((d) => d.jb = this.af4, false);
                    break;
                case "XAxisMajorStroke":
                    this.agn((d) => d.ni = this.ahl, a);
                    break;
                case "YAxisMajorStroke":
                    this.agr((d) => d.ni = this.ahs);
                    break;
                case "XAxisMajorStrokeThickness":
                    this.agn((d) => d.f1 = this.acr, a);
                    break;
                case "YAxisMajorStrokeThickness":
                    this.agr((d) => d.f1 = this.ada);
                    break;
                case "XAxisMinorStroke":
                    this.agm((d) => d.nj = this.ahm);
                    break;
                case "YAxisMinorStroke":
                    this.agr((d) => d.nj = this.aht);
                    break;
                case "XAxisMinorStrokeThickness":
                    this.agm((d) => d.f4 = this.acu);
                    break;
                case "YAxisMinorStrokeThickness":
                    this.agr((d) => d.f4 = this.add);
                    break;
                case "XAxisTickLength":
                    this.agm((d) => d.gt = this.acw);
                    break;
                case "YAxisTickLength":
                    this.agr((d) => d.gt = this.adf);
                    break;
                case "XAxisTickStroke":
                    this.agm((d) => d.nn = this.ahp);
                    break;
                case "YAxisTickStroke":
                    this.agr((d) => d.nn = this.ahw);
                    break;
                case "XAxisTickStrokeThickness":
                    this.agm((d) => d.gu = this.acx);
                    break;
                case "YAxisTickStrokeThickness":
                    this.agr((d) => d.gu = this.adg);
                    break;
                case "XAxisStroke":
                    this.agm((d) => d.nm = this.aho);
                    break;
                case "YAxisStroke":
                    this.agr((d) => d.nm = this.ahv);
                    break;
                case "XAxisStrokeThickness":
                    this.agm((d) => d.gs = this.acv);
                    break;
                case "YAxisStrokeThickness":
                    this.agr((d) => d.gs = this.ade);
                    break;
                case "XAxisExtent":
                    this.ago((d) => d.extent = this.acl);
                    break;
                case "YAxisExtent":
                    this.agt((d) => d.extent = this.ac4);
                    break;
                case "XAxisMaximumExtent":
                    this.ago((d) => d.maximumExtent = this.acs);
                    break;
                case "YAxisMaximumExtent":
                    this.agt((d) => d.maximumExtent = this.adb);
                    break;
                case "XAxisMaximumExtentPercentage":
                    this.ago((d) => d.maximumExtentPercentage = this.act);
                    break;
                case "YAxisMaximumExtentPercentage":
                    this.agt((d) => d.maximumExtentPercentage = this.adc);
                    break;
                case "XAxisStrip":
                    this.agm((d) => d.nl = this.ahn);
                    break;
                case "YAxisStrip":
                    this.agr((d) => d.nl = this.ahu);
                    break;
                case "XAxisInverted":
                    this.agm((d) => d.df = this.abd);
                    break;
                case "YAxisInverted":
                    this.agr((d) => d.df = this.abe);
                    break;
                case "YAxisLabelLocation":
                    this.agu();
                    break;
                case "XAxisLabelLocation":
                    this.agp();
                    break;
            }
        }
        agu() {
            let a = this.aa6(this.aba);
            if (a == 2 || a == 7) {
                this.ag1 = 2;
            }
            else {
                this.ag1 = 0;
            }
            this.agt((b) => b.location = a);
        }
        agp() {
            let a = this.aa5(this.aa8);
            if (a == 1 || a == 5) {
                this.ah1 = 0;
            }
            else {
                this.ah1 = 2;
            }
            this.ago((b) => b.location = a);
        }
        aa6(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.cc == 1) {
                    return 3;
                }
                else {
                    return 2;
                }
            }
        }
        aa5(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;
            }
        }
        get adp() {
            return this.adn;
        }
        set adp(a) {
            let b = this.adp;
            if (a != b) {
                this.adn = a;
                this.wn("XAxisLabel", b, this.adp);
            }
        }
        get adq() {
            return this.ado;
        }
        set adq(a) {
            let b = this.adq;
            if (a != b) {
                this.ado = a;
                this.wn("YAxisLabel", b, this.adq);
            }
        }
        get ahl() {
            return this.ag5;
        }
        set ahl(a) {
            let b = this.ahl;
            if (a != b) {
                this.ag5 = a;
                this.wn("XAxisMajorStroke", b, this.ahl);
            }
        }
        get ahs() {
            return this.ahc;
        }
        set ahs(a) {
            let b = this.ahs;
            if (a != b) {
                this.ahc = a;
                this.wn("YAxisMajorStroke", b, this.ahs);
            }
        }
        get acr() {
            return this.abl;
        }
        set acr(a) {
            let b = this.acr;
            if (a != b) {
                this.abl = a;
                this.wn("XAxisMajorStrokeThickness", b, this.acr);
            }
        }
        get ada() {
            return this.ab4;
        }
        set ada(a) {
            let b = this.ada;
            if (a != b) {
                this.ab4 = a;
                this.wn("YAxisMajorStrokeThickness", b, this.ada);
            }
        }
        get acu() {
            return this.abo;
        }
        set acu(a) {
            let b = this.acu;
            if (a != b) {
                this.abo = a;
                this.wn("XAxisMinorStrokeThickness", b, this.acu);
            }
        }
        get add() {
            return this.ab7;
        }
        set add(a) {
            let b = this.add;
            if (a != b) {
                this.ab7 = a;
                this.wn("YAxisMinorStrokeThickness", b, this.add);
            }
        }
        get ahn() {
            return this.ag7;
        }
        set ahn(a) {
            let b = this.ahn;
            if (a != b) {
                this.ag7 = a;
                this.wn("XAxisStrip", b, this.ahn);
            }
        }
        get ahu() {
            return this.ahe;
        }
        set ahu(a) {
            let b = this.ahu;
            if (a != b) {
                this.ahe = a;
                this.wn("YAxisStrip", b, this.ahu);
            }
        }
        get aho() {
            return this.ag8;
        }
        set aho(a) {
            let b = this.aho;
            if (a != b) {
                this.ag8 = a;
                this.wn("XAxisStroke", b, this.aho);
            }
        }
        get ahv() {
            return this.ahf;
        }
        set ahv(a) {
            let b = this.ahv;
            if (a != b) {
                this.ahf = a;
                this.wn("YAxisStroke", b, this.ahv);
            }
        }
        get acv() {
            return this.abp;
        }
        set acv(a) {
            let b = this.acv;
            if (a != b) {
                this.abp = a;
                this.wn("XAxisStrokeThickness", b, this.acv);
            }
        }
        get ade() {
            return this.ab8;
        }
        set ade(a) {
            let b = this.ade;
            if (a != b) {
                this.ab8 = a;
                this.wn("YAxisStrokeThickness", b, this.ade);
            }
        }
        get acw() {
            return this.abq;
        }
        set acw(a) {
            let b = this.acw;
            if (a != b) {
                this.abq = a;
                this.wn("XAxisTickLength", b, this.acw);
            }
        }
        get adf() {
            return this.ab9;
        }
        set adf(a) {
            let b = this.adf;
            if (a != b) {
                this.ab9 = a;
                this.wn("YAxisTickLength", b, this.adf);
            }
        }
        get ahp() {
            return this.ag9;
        }
        set ahp(a) {
            let b = this.ahp;
            if (a != b) {
                this.ag9 = a;
                this.wn("XAxisTickStroke", b, this.ahp);
            }
        }
        get ahw() {
            return this.ahg;
        }
        set ahw(a) {
            let b = this.ahw;
            if (a != b) {
                this.ahg = a;
                this.wn("YAxisTickStroke", b, this.ahw);
            }
        }
        get acx() {
            return this.abr;
        }
        set acx(a) {
            let b = this.acx;
            if (a != b) {
                this.abr = a;
                this.wn("XAxisTickStrokeThickness", b, this.acx);
            }
        }
        get adg() {
            return this.aca;
        }
        set adg(a) {
            let b = this.adg;
            if (a != b) {
                this.aca = a;
                this.wn("YAxisTickStrokeThickness", b, this.adg);
            }
        }
        get aex() {
            return this.adt;
        }
        set aex(a) {
            let b = this.aex;
            if (a != b) {
                this.adt = a;
                this.wn("XAxisTitle", b, this.aex);
            }
        }
        get af4() {
            return this.adx;
        }
        set af4(a) {
            let b = this.af4;
            if (a != b) {
                this.adx = a;
                this.wn("YAxisTitle", b, this.af4);
            }
        }
        get ahm() {
            return this.ag6;
        }
        set ahm(a) {
            let b = this.ahm;
            if (a != b) {
                this.ag6 = a;
                this.wn("XAxisMinorStroke", b, this.ahm);
            }
        }
        get aht() {
            return this.ahd;
        }
        set aht(a) {
            let b = this.aht;
            if (a != b) {
                this.ahd = a;
                this.wn("YAxisMinorStroke", b, this.aht);
            }
        }
        get acm() {
            return this.abg;
        }
        set acm(a) {
            let b = this.acm;
            if (a != b) {
                this.abg = a;
                this.wn("XAxisLabelAngle", b, this.acm);
            }
        }
        get ac5() {
            return this.abz;
        }
        set ac5(a) {
            let b = this.ac5;
            if (a != b) {
                this.abz = a;
                this.wn("YAxisLabelAngle", b, this.ac5);
            }
        }
        get acl() {
            return this.abf;
        }
        set acl(a) {
            let b = this.acl;
            if (a != b) {
                this.abf = a;
                this.wn("XAxisExtent", b, this.acl);
            }
        }
        get ac4() {
            return this.aby;
        }
        set ac4(a) {
            let b = this.ac4;
            if (a != b) {
                this.aby = a;
                this.wn("YAxisExtent", b, this.ac4);
            }
        }
        get acs() {
            return this.abm;
        }
        set acs(a) {
            let b = this.acs;
            if (a != b) {
                this.abm = a;
                this.wn("XAxisMaximumExtent", b, this.acs);
            }
        }
        get adb() {
            return this.ab5;
        }
        set adb(a) {
            let b = this.adb;
            if (a != b) {
                this.ab5 = a;
                this.wn("YAxisMaximumExtent", b, this.adb);
            }
        }
        get act() {
            return this.abn;
        }
        set act(a) {
            let b = this.act;
            if (a != b) {
                this.abn = a;
                this.wn("XAxisMaximumExtentPercentage", b, this.act);
            }
        }
        get adc() {
            return this.ab6;
        }
        set adc(a) {
            let b = this.adc;
            if (a != b) {
                this.ab6 = a;
                this.wn("YAxisMaximumExtentPercentage", b, this.adc);
            }
        }
        get acy() {
            return this.abs;
        }
        set acy(a) {
            let b = this.acy;
            if (a != b) {
                this.abs = a;
                this.wn("XAxisTitleAngle", b, this.acy);
            }
        }
        get adh() {
            return this.acb;
        }
        set adh(a) {
            let b = this.adh;
            if (a != b) {
                this.acb = a;
                this.wn("YAxisTitleAngle", b, this.adh);
            }
        }
        get abd() {
            return this.abb;
        }
        set abd(a) {
            let b = this.abd;
            if (a != b) {
                this.abb = a;
                this.wn("XAxisInverted", b, this.abd);
            }
        }
        get abe() {
            return this.abc;
        }
        set abe(a) {
            let b = this.abe;
            if (a != b) {
                this.abc = a;
                this.wn("YAxisInverted", b, this.abe);
            }
        }
        get ag0() {
            return this.agx;
        }
        set ag0(a) {
            let b = this.ag0;
            if (a != b) {
                this.agx = a;
                this.wn("XAxisTitleAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.ag0));
            }
        }
        get ah3() {
            return this.ah0;
        }
        set ah3(a) {
            let b = this.ah3;
            if (a != b) {
                this.ah0 = a;
                this.wn("YAxisTitleAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, this.ah3));
            }
        }
        get agz() {
            return this.agw;
        }
        set agz(a) {
            let b = this.agz;
            if (a != b) {
                this.agw = a;
                this.wn("XAxisLabelHorizontalAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.agz));
            }
        }
        get_ag1() {
            return this.agy;
        }
        set_ag1(a) {
            let b = this.ag1;
            if (a != b) {
                this.agy = a;
                this.wn("YAxisLabelHorizontalAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, this.ag1));
            }
        }
        get ag1() {
            return this.get_ag1();
        }
        set ag1(a) {
            this.set_ag1(a);
        }
        get ah1() {
            return this.ahy;
        }
        set ah1(a) {
            let b = this.ah1;
            if (a != b) {
                this.ahy = a;
                this.wn("XAxisLabelVerticalAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, this.ah1));
            }
        }
        get ah2() {
            return this.ahz;
        }
        set ah2(a) {
            let b = this.ah2;
            if (a != b) {
                this.ahz = a;
                this.wn("YAxisLabelVerticalAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, this.ah2));
            }
        }
        get ah6() {
            return this.ah4;
        }
        set ah6(a) {
            let b = this.ah6;
            if (a != b) {
                this.ah4 = a;
                this.wn("XAxisLabelVisibility", enumGetBox(Visibility_$type, b), enumGetBox(Visibility_$type, this.ah6));
            }
        }
        get ah7() {
            return this.ah5;
        }
        set ah7(a) {
            let b = this.ah7;
            if (a != b) {
                this.ah5 = a;
                this.wn("YAxisLabelVisibility", enumGetBox(Visibility_$type, b), enumGetBox(Visibility_$type, this.ah7));
            }
        }
        get_aba() {
            return this.aa9;
        }
        set_aba(a) {
            let b = this.aba;
            if (a != b) {
                this.aa9 = a;
                this.wn("YAxisLabelLocation", enumGetBox(YAxisLabelLocation_$type, b), enumGetBox(YAxisLabelLocation_$type, this.aba));
            }
        }
        get aba() {
            return this.get_aba();
        }
        set aba(a) {
            this.set_aba(a);
        }
        get_aa8() {
            return this.aa7;
        }
        set_aa8(a) {
            let b = this.aa8;
            if (a != b) {
                this.aa7 = a;
                this.wn("XAxisLabelLocation", enumGetBox(XAxisLabelLocation_$type, b), enumGetBox(XAxisLabelLocation_$type, this.aa8));
            }
        }
        get aa8() {
            return this.get_aa8();
        }
        set aa8(a) {
            this.set_aa8(a);
        }
        get ad7() {
            return this.adr;
        }
        set ad7(a) {
            let b = this.adr;
            if (a != b) {
                this.adr = a;
                this.wn("XAxisLabelFormat", b, this.adr);
            }
        }
        get aax() {
            return this.aav;
        }
        set aax(a) {
            let b = this.aav;
            if (a != b) {
                this.aav = a;
                this.wn("XAxisLabelFormatSpecifiers", b, this.aav);
            }
        }
        get afe() {
            return this.adv;
        }
        set afe(a) {
            let b = this.adv;
            if (a != b) {
                this.adv = a;
                this.wn("YAxisLabelFormat", b, this.adv);
            }
        }
        get aay() {
            return this.aaw;
        }
        set aay(a) {
            let b = this.aaw;
            if (a != b) {
                this.aaw = a;
                this.wn("YAxisLabelFormatSpecifiers", b, this.aaw);
            }
        }
    }
    XYChart.$t = markType(XYChart, 'XYChart', DomainChart.$);
    return XYChart;
})();
