/*
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 { XYChart } from "./XYChart";
import { typeCast, runOn, delegateCombine, enumGetBox, markType, TypeRegistrar, getInstanceType } from "igniteui-react-core";
import { CategoryChartType_$type } from "./CategoryChartType";
import { CategorySeriesMarkerCollisionAvoidance_$type } from "./CategorySeriesMarkerCollisionAvoidance";
import { CategoryTransitionInMode_$type } from "./CategoryTransitionInMode";
import { TransitionInSpeedType_$type } from "./TransitionInSpeedType";
import { AutoMarginsAndAngleUpdateMode_$type } from "./AutoMarginsAndAngleUpdateMode";
import { AxisRangeBufferMode_$type } from "./AxisRangeBufferMode";
import { CategoryXAxis } from "./CategoryXAxis";
import { List$1 } from "igniteui-react-core";
import { DataSeriesType_$type } from "igniteui-react-core";
import { NumericYAxis } from "./NumericYAxis";
import { IDataSeriesAdapterRule_$type } from "igniteui-react-core";
import { SimpleCategorySeriesRule } from "igniteui-react-core";
import { SubCollectionsRule } from "igniteui-react-core";
import { DVContainer } from "igniteui-react-core";
import { Brush } from "igniteui-react-core";
import { AxisDefaults } from "./AxisDefaults";
import { Defaults } from "./Defaults";
import { Series } from "./Series";
import { HorizontalAnchoredCategorySeries } from "./HorizontalAnchoredCategorySeries";
import { ArrayExtension } from "igniteui-react-core";
import { AxisLabelSettings } from "./AxisLabelSettings";
import { DeviceUtils } from "igniteui-react-core";
import { CategoryChartMockDataGenerator } from "./CategoryChartMockDataGenerator";
import { stringIsNullOrEmpty } from "igniteui-react-core";
/**
 * @hidden
 */
export let CategoryChart = /*@__PURE__*/ (() => {
    class CategoryChart extends XYChart {
        ux() {
            super.ux();
            if (this.dataChart == null) {
                return;
            }
            let a = this.dataChart.c8.j.e();
            this.agj = a.d;
            this.agk = a.e;
            if (this.aft == null) {
                this.aft = a.k;
            }
            if (this.af0 == null) {
                this.af0 = a.k;
            }
            this.abs = 0;
            this.af1 = AxisDefaults.h;
            this.af4 = null;
            this.afx = AxisDefaults.g;
            this.afu = null;
            this.abb = AxisDefaults.f;
            this.afy = AxisDefaults.j;
            this.abc = AxisDefaults.e;
            this.go = true;
            this.gp = true;
            this.bf = 0;
            this.jm = Defaults.j;
            this.xw = Defaults.ae;
            this.xr = Defaults.af;
            this.xs = Defaults.ag;
            this.ahn = true;
        }
        uz(a, b) {
            super.uz(a, b);
            a.kc = this.ai5;
            a.kd = this.ai6;
            a.dc = this.ag7;
            a.dd = this.ag8;
        }
        vo(a, b, c) {
            super.vo(a, b, c);
            switch (a) {
                case "TransitionInDuration":
                    this.um((d) => d.kc = this.ai5);
                    break;
                case "TransitionOutDuration":
                    this.um((d) => d.kd = this.ai6);
                    break;
                case "TransitionInEasingFunction":
                    this.um((d) => d.dc = this.ag7);
                    break;
                case "TransitionOutEasingFunction":
                    this.um((d) => d.dd = this.ag8);
                    break;
            }
        }
        get ai5() {
            return this.ai2;
        }
        set ai5(a) {
            let b = this.ai5;
            if (a != b) {
                this.ai2 = a;
                this.vl("TransitionInDuration", b, this.ai5);
            }
        }
        get ai6() {
            return this.ai3;
        }
        set ai6(a) {
            let b = this.ai6;
            if (a != b) {
                this.ai3 = a;
                this.vl("TransitionOutDuration", b, this.ai6);
            }
        }
        get ag7() {
            return this.ag5;
        }
        set ag7(a) {
            let b = this.ag7;
            if (a != b) {
                this.ag5 = a;
                this.vl("TransitionInEasingFunction", b, this.ag7);
            }
        }
        get ag8() {
            return this.ag6;
        }
        set ag8(a) {
            let b = this.ag8;
            if (a != b) {
                this.ag6 = a;
                this.vl("TransitionOutEasingFunction", b, this.ag8);
            }
        }
        ajc() {
            let cvd_ = this.lv();
            cvd_.scaleByViewport();
            return (cvd_.serialize());
        }
        us(a, b) {
            super.us(a, b);
            a.eh = this.gg;
            a.w2 = this.aho;
            a.w5 = this.ahp;
            a.xs = this.aid;
            a.xt = this.aie;
            a.v7 = this.agm;
        }
        uy(a, b) {
            super.uy(a, b);
            let c = typeCast(HorizontalAnchoredCategorySeries.$, a);
            if (c == null) {
                return;
            }
            c.aag = this.ags;
            c.zc = this.ahn;
            c.yw = this.agu;
            c.c3 = this.ag4;
            c.trendLineBrush = ArrayExtension.getModulus$1(Brush.$, this.ah, b);
            c.trendLineType = this.ef;
            c.trendLineThickness = this.ki;
            c.w2 = this.c6(a, b);
            if (a.fk) {
                a.rx(ArrayExtension.getModulus$1(Brush.$, this.agj, b), ArrayExtension.getModulus$1(Brush.$, this.agk, b));
            }
        }
        agv() {
            return new CategoryXAxis();
        }
        agz() {
            return new NumericYAxis();
        }
        t9() {
            this.xAxis = this.agv();
            this.xAxis.name = "xAxis";
            let a = this.xAxis;
            a.propertyChanged = delegateCombine(a.propertyChanged, runOn(this, this.akg));
            this.yAxis = this.agz();
            this.yAxis.name = "yAxis";
            let b = this.yAxis;
            b.propertyChanged = delegateCombine(b.propertyChanged, runOn(this, this.akh));
            if (this.xAxis.az == null) {
                this.xAxis.az = new AxisLabelSettings();
            }
            if (this.yAxis.az == null) {
                this.yAxis.az = new AxisLabelSettings();
            }
        }
        aet(a) {
            super.aet(a);
            a.lb = this.ahr;
            a.le = this.aht;
            a.b1 = this.ahs;
        }
        aer(a) {
            super.aer(a);
            a.b1 = this.ahq;
            a.zoomMaximumCategoryRange = this.air;
            a.zoomToCategoryRange = this.ait;
            a.zoomToCategoryStart = this.aiu;
            a.zoomMaximumItemSpan = this.ais;
            a.zoomToItemSpan = this.aiv;
        }
        get_cf() {
            return 0;
        }
        get cf() {
            return this.get_cf();
        }
        get agq() {
            return this.agp;
        }
        set agq(a) {
            if (a != this.agp) {
                let b = this.agq;
                this.agp = a;
                this.vl("ChartType", enumGetBox(CategoryChartType_$type, b), enumGetBox(CategoryChartType_$type, this.agq));
            }
        }
        get ags() {
            return this.agr;
        }
        set ags(a) {
            let b = this.ags;
            if (a != b) {
                this.agr = a;
                this.vl("MarkerCollisionAvoidance", enumGetBox(CategorySeriesMarkerCollisionAvoidance_$type, b), enumGetBox(CategorySeriesMarkerCollisionAvoidance_$type, this.ags));
            }
        }
        get ahm() {
            return this.ahb;
        }
        set ahm(a) {
            let b = this.ahm;
            if (a != b) {
                this.ahb = a;
                this.vl("IsSplineShapePartOfRange", b, this.ahm);
            }
        }
        get ahn() {
            return this.ahc;
        }
        set ahn(a) {
            let b = this.ahn;
            if (a != b) {
                this.ahc = a;
                this.vl("IsTransitionInEnabled", b, this.ahn);
            }
        }
        get agu() {
            return this.agt;
        }
        set agu(a) {
            let b = this.agu;
            if (a != b) {
                this.agt = a;
                this.vl("TransitionInMode", enumGetBox(CategoryTransitionInMode_$type, b), enumGetBox(CategoryTransitionInMode_$type, this.agu));
            }
        }
        get ag4() {
            return this.ag3;
        }
        set ag4(a) {
            let b = this.ag4;
            if (a != b) {
                this.ag3 = a;
                this.vl("TransitionInSpeedType", enumGetBox(TransitionInSpeedType_$type, b), enumGetBox(TransitionInSpeedType_$type, this.ag4));
            }
        }
        get aim() {
            return this.ahz;
        }
        set aim(a) {
            let b = this.aim;
            if (a != b) {
                this.ahz = a;
                this.vl("XAxisInterval", b, this.aim);
            }
        }
        get aip() {
            return this.ah2;
        }
        set aip(a) {
            let b = this.aip;
            if (a != b) {
                this.ah2 = a;
                this.vl("XAxisMinorInterval", b, this.aip);
            }
        }
        get ail() {
            return this.ahy;
        }
        set ail(a) {
            let b = this.ail;
            if (a != b) {
                this.ahy = a;
                this.vl("XAxisGap", b, this.ail);
            }
        }
        get aio() {
            return this.ah1;
        }
        set aio(a) {
            let b = this.aio;
            if (a != b) {
                this.ah1 = a;
                this.vl("XAxisMinimumGapSize", b, this.aio);
            }
        }
        get ain() {
            return this.ah0;
        }
        set ain(a) {
            let b = this.ain;
            if (a != b) {
                this.ah0 = a;
                this.vl("XAxisMaximumGap", b, this.ain);
            }
        }
        get aiq() {
            return this.ah3;
        }
        set aiq(a) {
            let b = this.aiq;
            if (a != b) {
                this.ah3 = a;
                this.vl("XAxisOverlap", b, this.aiq);
            }
        }
        get aiy() {
            return this.ah9;
        }
        set aiy(a) {
            let b = this.aiy;
            if (a != b) {
                this.ah9 = a;
                this.vl("YAxisInterval", b, this.aiy);
            }
        }
        get agm() {
            return this.agl;
        }
        set agm(a) {
            let b = this.agm;
            if (a != b) {
                this.agl = a;
                this.vl("AutoMarginAndAngleUpdateMode", enumGetBox(AutoMarginsAndAngleUpdateMode_$type, b), enumGetBox(AutoMarginsAndAngleUpdateMode_$type, this.agm));
            }
        }
        aki() {
            if (this.dataChart != null) {
                this.dataChart.zd();
            }
        }
        get aho() {
            return this.ahd;
        }
        set aho(a) {
            let b = this.aho;
            if (a != b) {
                this.ahd = a;
                this.vl("ShouldAutoExpandMarginForInitialLabels", b, this.aho);
            }
        }
        get ahp() {
            return this.ahe;
        }
        set ahp(a) {
            let b = this.ahp;
            if (a != b) {
                this.ahe = a;
                this.vl(CategoryChart.ajl, b, this.ahp);
            }
        }
        get aid() {
            return this.ahw;
        }
        set aid(a) {
            let b = this.aid;
            if (a != b) {
                this.ahw = a;
                this.vl("AutoExpandMarginExtraPadding", b, this.aid);
            }
        }
        get aie() {
            return this.ahx;
        }
        set aie(a) {
            let b = this.aie;
            if (a != b) {
                this.ahx = a;
                this.vl("AutoExpandMarginMaximumValue", b, this.aie);
            }
        }
        get aht() {
            return this.ahi;
        }
        set aht(a) {
            let b = this.aht;
            if (a != b) {
                this.ahi = a;
                this.vl("YAxisFavorLabellingScaleEnd", b, this.aht);
            }
        }
        get ahq() {
            return this.ahf;
        }
        set ahq(a) {
            let b = this.ahq;
            if (a != b) {
                this.ahf = a;
                this.vl(CategoryChart.ajs, b, this.ahq);
            }
        }
        get ahs() {
            return this.ahh;
        }
        set ahs(a) {
            let b = this.ahs;
            if (a != b) {
                this.ahh = a;
                this.vl(CategoryChart.aj6, b, this.ahs);
            }
        }
        get ago() {
            return this.agn;
        }
        set ago(a) {
            let b = this.ago;
            if (a != b) {
                this.agn = a;
                this.vl("YAxisAutoRangeBufferMode", enumGetBox(AxisRangeBufferMode_$type, b), enumGetBox(AxisRangeBufferMode_$type, this.ago));
            }
        }
        get ahu() {
            return this.ahj;
        }
        set ahu(a) {
            let b = this.ahu;
            if (a != b) {
                this.ahj = a;
                this.vl("YAxisIsLogarithmic", b, this.ahu);
            }
        }
        get ai7() {
            return this.ai4;
        }
        set ai7(a) {
            let b = this.ai7;
            if (a != b) {
                this.ai4 = a;
                this.vl("YAxisLogarithmBase", b, this.ai7);
            }
        }
        get ai0() {
            return this.aib;
        }
        set ai0(a) {
            let b = this.ai0;
            if (a != b) {
                this.aib = a;
                this.vl("YAxisMinimumValue", b, this.ai0);
            }
        }
        get aiz() {
            return this.aia;
        }
        set aiz(a) {
            let b = this.aiz;
            if (a != b) {
                this.aia = a;
                this.vl("YAxisMaximumValue", b, this.aiz);
            }
        }
        get ai1() {
            return this.aic;
        }
        set ai1(a) {
            let b = this.ai1;
            if (a != b) {
                this.aic = a;
                this.vl("YAxisMinorInterval", b, this.ai1);
            }
        }
        get aik() {
            return this.xAxis.my;
        }
        get aij() {
            return this.xAxis.mx;
        }
        aig() {
            return this.aik;
        }
        aii() {
            return this.aix;
        }
        aif() {
            return this.aij;
        }
        aih() {
            return this.aiw;
        }
        get aix() {
            return this.yAxis.ly;
        }
        get aiw() {
            return this.yAxis.lx;
        }
        get agj() {
            return this.agh;
        }
        set agj(a) {
            let b = this.agj;
            if (a != b) {
                this.agh = a;
                this.vl("NegativeBrushes", b, this.agj);
            }
        }
        get agk() {
            return this.agi;
        }
        set agk(a) {
            let b = this.agk;
            if (a != b) {
                this.agi = a;
                this.vl("NegativeOutlines", b, this.agk);
            }
        }
        get ahr() {
            return this.ahg;
        }
        set ahr(a) {
            let b = this.ahr;
            if (a != b) {
                this.ahg = a;
                this.vl("YAxisAbbreviateLargeNumbers", b, this.ahr);
            }
        }
        get air() {
            return this.ah4;
        }
        set air(a) {
            let b = this.air;
            if (a != b) {
                this.ah4 = a;
                this.vl("XAxisZoomMaximumCategoryRange", b, this.air);
            }
        }
        get ais() {
            return this.ah5;
        }
        set ais(a) {
            let b = this.ais;
            if (a != b) {
                this.ah5 = a;
                this.vl("XAxisZoomMaximumItemSpan", b, this.ais);
            }
        }
        get ait() {
            return this.ah6;
        }
        set ait(a) {
            let b = this.ait;
            if (a != b) {
                this.ah6 = a;
                this.vl("XAxisZoomToCategoryRange", b, this.ait);
            }
        }
        get aiu() {
            return this.ah7;
        }
        set aiu(a) {
            let b = this.aiu;
            if (a != b) {
                this.ah7 = a;
                this.vl("XAxisZoomToCategoryStart", b, this.aiu);
            }
        }
        get aiv() {
            return this.ah8;
        }
        set aiv(a) {
            let b = this.aiv;
            if (a != b) {
                this.ah8 = a;
                this.vl("XAxisZoomToItemSpan", b, this.aiv);
            }
        }
        get ahk() {
            return this.ag9;
        }
        set ahk(a) {
            let b = this.ahk;
            if (a != b) {
                this.ag9 = a;
                this.vl("IsCategoryHighlightingEnabled", b, this.ahk);
            }
        }
        get ahl() {
            return this.aha;
        }
        set ahl(a) {
            let b = this.ahl;
            if (a != b) {
                this.aha = a;
                this.vl("IsItemHighlightingEnabled", b, this.ahl);
            }
        }
        constructor() {
            super();
            this.ai2 = 1000;
            this.ai3 = 1000;
            this.ag5 = null;
            this.ag6 = null;
            this.agp = 9;
            this.agr = 1;
            this.ahb = false;
            this.ahc = true;
            this.agt = 0;
            this.ag3 = 0;
            this.ahz = 0;
            this.ah2 = 0;
            this.ahy = 0;
            this.ah1 = 0;
            this.ah0 = 1;
            this.ah3 = 0;
            this.ah9 = NaN;
            this.agl = 1;
            this.ahd = true;
            this.ahe = true;
            this.ahw = DeviceUtils.g(2);
            this.ahx = DeviceUtils.g(60);
            this.ahi = true;
            this.ahf = true;
            this.ahh = false;
            this.agn = 0;
            this.ahj = false;
            this.ai4 = 10;
            this.aib = NaN;
            this.aia = NaN;
            this.aic = 0;
            this.agh = null;
            this.agi = null;
            this.ahg = true;
            this.ah4 = 3;
            this.ah5 = NaN;
            this.ah6 = NaN;
            this.ah7 = NaN;
            this.ah8 = NaN;
            this.ag9 = false;
            this.aha = false;
            this.ahv = null;
            DVContainer.instance.registerIfLoaded("CategoryChartToolbarFactoryManager");
            this.ue();
        }
        get_hy() {
            let a = new List$1(DataSeriesType_$type, 0);
            if (TypeRegistrar.isRegistered("AreaSeries")) {
                a.add(2);
            }
            if (TypeRegistrar.isRegistered("ColumnSeries")) {
                a.add(1);
            }
            if (TypeRegistrar.isRegistered("LineSeries")) {
                a.add(0);
            }
            if (TypeRegistrar.isRegistered("PointSeries")) {
                a.add(10);
            }
            if (TypeRegistrar.isRegistered("SplineSeries")) {
                a.add(6);
            }
            if (TypeRegistrar.isRegistered("SplineAreaSeries")) {
                a.add(7);
            }
            if (TypeRegistrar.isRegistered("StepAreaSeries")) {
                a.add(5);
            }
            if (TypeRegistrar.isRegistered("StepLineSeries")) {
                a.add(4);
            }
            if (TypeRegistrar.isRegistered("WaterfallSeries")) {
                a.add(8);
            }
            return a;
        }
        get hy() {
            return this.get_hy();
        }
        h4() {
            if (this.ahv == null) {
                this.ahv = CategoryChartMockDataGenerator.a();
            }
            return this.ahv;
        }
        c5(a) {
            if (a != null) {
                let b = super.c5(a);
                if (b == 2) {
                    if (a.fj && this.g1) {
                        return 13;
                    }
                }
            }
            return super.c5(a);
        }
        c7(a) {
            if (a != null) {
                let b = super.c5(a);
                if (b == 2) {
                    if (a.fj && this.g1) {
                        return 13;
                    }
                }
            }
            return super.c7(a);
        }
        get_hj() {
            return this.xAxis != null && this.xAxis.categoryMode != 0;
        }
        akg(a, b) {
            switch (b.propertyName) {
                case "ActualMinimum":
                    this.v2("XAxisActualMinimum");
                    break;
                case "ActualMaximum":
                    this.v2("XAxisActualMaximum");
                    break;
            }
        }
        akh(a, b) {
            switch (b.propertyName) {
                case "ActualMinimumValue":
                    this.v2("YAxisActualMinimum");
                    break;
                case "ActualMaximumValue":
                    this.v2("YAxisActualMaximum");
                    break;
            }
        }
        wg() {
            super.wg();
            this.xAxis.f1 = this.ab2 == null ? XYChart.ace(this.xAxis, this.bj.dataSeries) : this.ab2;
            this.xAxis.itemsSource = this.dataChart != null && this.dataChart.series.count > 0 ? this.dataChart.series._inner[0].itemsSource : null;
            if (this.aho) {
                this.vc((a) => a.zd());
            }
        }
        get xAxis() {
            return this._xAxis;
        }
        set xAxis(a) {
            this._xAxis = a;
        }
        get yAxis() {
            return this._yAxis;
        }
        set yAxis(a) {
            this._yAxis = a;
        }
        agy(a, b) {
            switch (a) {
                case 2: return this.di(1);
                case 3: return this.di(10);
                case 0: return this.di(0);
                case 1: return this.di(2);
                case 6: return this.di(6);
                case 7: return this.di(7);
                case 4: return this.di(4);
                case 5: return this.di(5);
                case 8: return this.di(8);
                case 9: return this.agx(b);
                default: return this.di(1);
            }
        }
        agx(a) {
            return this.di(a);
        }
        bi(a) {
            switch (this.agq) {
                case 1: return 2;
                case 0: return 0;
                case 3: return 10;
                case 6: return 6;
                case 7: return 7;
                case 5: return 5;
                case 4: return 4;
                case 8: return 8;
                case 9: return a.suggestedSeries;
                default:
                case 2: return 1;
            }
        }
        dg(a, b) {
            let c = this.agy(this.agq, a.suggestedSeries);
            c.aa4 = a.findMatchingHint(0).path;
            c.xAxis = this.xAxis;
            c.yAxis = this.yAxis;
            return c;
        }
        we(a) {
            if (a.suggestedSecondaryAxis == 2) {
                this.yAxis.lj = true;
                this.yAxis.ma = 10;
            }
        }
        wh() {
            this.yAxis.lj = this.ahu;
            this.yAxis.ma = this.ai7;
        }
        get_hx() {
            return ((() => {
                let $ret = new List$1(IDataSeriesAdapterRule_$type, 0);
                $ret.add(new SimpleCategorySeriesRule());
                $ret.add(new SubCollectionsRule());
                return $ret;
            })());
        }
        get hx() {
            return this.get_hx();
        }
        t3(a, b) {
            let c = typeCast(HorizontalAnchoredCategorySeries.$, a);
            if (c != null) {
                c.aag = this.ags;
                c.w2 = this.c6(a, b);
            }
        }
        ake(a) {
            this.akf((b, c) => a(b));
        }
        akf(a) {
            if (this.dataChart == null) {
                return;
            }
            for (let b = 0; b < this.dataChart.series.count; b++) {
                let c = typeCast(HorizontalAnchoredCategorySeries.$, this.dataChart.series._inner[b]);
                if (c == null) {
                    continue;
                }
                a(c, b);
            }
        }
        zk() {
            return this.xAxis;
        }
        zl() {
            return this.yAxis;
        }
        ag1() {
            return this.di(30);
        }
        ag2() {
            return this.di(31);
        }
        hu(a, b) {
            let c = super.hu(a, b);
            if (c != null) {
                let d = new List$1(Series.$, 0);
                if (this.ag9) {
                    d.add(this.ag1());
                }
                if (this.aha) {
                    d.add(this.ag2());
                }
                for (let e = 0; e < d.count; e++) {
                    let f = d._inner[e];
                    f.name = a + getInstanceType(f).typeName;
                    c.add(f);
                }
            }
            return c;
        }
        bd() {
            if (this.bc == 0) {
                return 1;
            }
            else {
                return this.bc;
            }
        }
        wm(a, b, c) {
            super.wm(a, b, c);
            if (this.bj.dataSeries.count > 0) {
                if (stringIsNullOrEmpty(this.nk)) {
                    this.ci.setXMemberPath(a, c.getMemberPathFor(16));
                }
                if (stringIsNullOrEmpty(this.nm)) {
                    this.ci.setYMemberPath(a, c.getMemberPathFor(0));
                }
                if (stringIsNullOrEmpty(this.nc)) {
                    this.ci.setLabelMemberPath(a, c.getMemberPathFor(0));
                }
                if (stringIsNullOrEmpty(this.m9)) {
                    this.ci.setContentMemberPath(a, c.getMemberPathFor(0));
                }
            }
        }
        g4() {
            if (this.bf == 4 || this.bf == 3) {
                return true;
            }
            else if (this.bf == 0) {
                if (this.agq == 2 || this.agq == 8) {
                    return false;
                }
                else if (this.agq == 9 && this.bj != null && this.bj.dataSeries != null && this.bj.dataSeries.count > 0) {
                    let a = this.bj.dataSeries._inner[0].suggestedSeries;
                    if (a == 1 || a == 8) {
                        return false;
                    }
                }
                return true;
            }
            return false;
        }
        get_hb() {
            return DVContainer.instance.checkLoaded("CategoryChartToolbarFactoryManager");
        }
        vl(a, b, c) {
            super.vl(a, b, c);
            switch (a) {
                case "ChartType":
                    this.ud();
                    break;
                case "MarkerCollisionAvoidance":
                    this.ake((d) => d.aag = this.ags);
                    break;
                case "IsTransitionInEnabled":
                    this.ake((d) => d.zc = this.ahn);
                    break;
                case "IsSplineShapePartOfRange":
                    this.ake((d) => {
                        if (d.fy) {
                            d.ry(this.ahm);
                        }
                    });
                    break;
                case "TransitionInMode":
                    this.ake((d) => d.yw = this.agu);
                    break;
                case "TransitionInSpeedType":
                    this.ake((d) => d.c3 = this.ag4);
                    break;
                case "XAxisInterval":
                    this.xAxis.mt = this.aim;
                    break;
                case "XAxisMinorInterval":
                    this.xAxis.mu = this.aip;
                    break;
                case "XAxisGap":
                    this.xAxis.k2 = this.ail;
                    break;
                case "XAxisOverlap":
                    this.xAxis.lb = this.aiq;
                    break;
                case "XAxisMinimumGapSize":
                    this.xAxis.la = this.aio;
                    break;
                case "XAxisMaximumGap":
                    this.xAxis.k9 = this.ain;
                    break;
                case "XAxisZoomMaximumCategoryRange":
                    this.xAxis.zoomMaximumCategoryRange = this.air;
                    break;
                case "XAxisZoomMaximumItemSpan":
                    this.xAxis.zoomMaximumItemSpan = this.ais;
                    break;
                case "XAxisZoomToCategoryRange":
                    this.xAxis.zoomToCategoryRange = this.ait;
                    break;
                case "XAxisZoomToCategoryStart":
                    this.xAxis.zoomToCategoryStart = this.aiu;
                    break;
                case "XAxisZoomToItemSpan":
                    this.xAxis.zoomToItemSpan = this.aiv;
                    break;
                case "YAxisInterval":
                    this.yAxis.l2 = this.aiy;
                    break;
                case "YAxisFavorLabellingScaleEnd":
                    this.yAxis.le = this.aht;
                    break;
                case "YAxisAutoRangeBufferMode":
                    this.yAxis.kv = this.ago;
                    break;
                case "YAxisIsLogarithmic":
                    this.yAxis.lj = this.ahu;
                    break;
                case "YAxisLogarithmBase":
                    this.yAxis.ma = this.ai7;
                    break;
                case "YAxisMinimumValue":
                    this.yAxis.l6 = this.ai0;
                    break;
                case "YAxisMaximumValue":
                    this.yAxis.l5 = this.aiz;
                    break;
                case "YAxisMinorInterval":
                    this.yAxis.l7 = this.ai1;
                    break;
                case "NegativeBrushes":
                case "NegativeOutlines":
                    this.akf((d, e) => {
                        if (d.fk) {
                            d.rx(ArrayExtension.getModulus$1(Brush.$, this.agj, e), ArrayExtension.getModulus$1(Brush.$, this.agk, e));
                        }
                    });
                    break;
                case "YAxisAbbreviateLargeNumbers":
                    this.ae0((d) => d.lb = this.ahr);
                    break;
                case "IsCategoryHighlightingEnabled":
                case "IsItemHighlightingEnabled":
                    this.ud();
                    break;
                case "AutoMarginAndAngleUpdateMode":
                    this.vc((d) => d.v7 = this.agm);
                    break;
                case "ShouldAutoExpandMarginForInitialLabels":
                    this.vc((d) => d.w2 = this.aho);
                    break;
                case CategoryChart.ajl:
                    this.vc((d) => d.w5 = this.ahp);
                    break;
                case "AutoExpandMarginExtraPadding":
                    this.vc((d) => d.xs = this.aid);
                    break;
                case "AutoExpandMarginMaximumValue":
                    this.vc((d) => d.xt = this.aie);
                    break;
                case CategoryChart.ajs:
                    this.aew((d) => d.b1 = this.ahq, a);
                    break;
                case CategoryChart.aj6:
                    this.ae0((d) => d.b1 = this.ahs);
                    break;
            }
        }
    }
    CategoryChart.$t = /*@__PURE__*/ markType(CategoryChart, 'CategoryChart', XYChart.$);
    CategoryChart.ajl = "ShouldConsiderAutoRotationForInitialLabels";
    CategoryChart.ajs = "XAxisEnhancedIntervalPreferMoreCategoryLabels";
    CategoryChart.aj6 = "YAxisEnhancedIntervalPreferMoreCategoryLabels";
    return CategoryChart;
})();
