/*
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 { DataPieBaseChart } from "./DataPieBaseChart";
import { typeCast, enumGetBox, markType } from "igniteui-react-core";
import { List$1 } from "igniteui-react-core";
import { DataSeriesType_$type } from "igniteui-react-core";
import { IDataSeriesAdapterRule_$type } from "igniteui-react-core";
import { SimplePieSeriesRule } from "igniteui-react-core";
import { SubCollectionsRule } from "igniteui-react-core";
import { DataPieChartType_$type } from "./DataPieChartType";
import { CategoryTransitionInMode_$type } from "./CategoryTransitionInMode";
import { TransitionInSpeedType_$type } from "./TransitionInSpeedType";
import { BrushUtil } from "igniteui-react-core";
import { AxisDefaults } from "./AxisDefaults";
import { Defaults } from "./Defaults";
import { DeviceUtils } from "igniteui-react-core";
import { RadialBase } from "./RadialBase";
import { RadialPieSeries } from "./RadialPieSeries";
/**
 * @hidden
 */
export let DataPieChart = /*@__PURE__*/ (() => {
    class DataPieChart extends DataPieBaseChart {
        u2() {
            super.u2();
            if (this.dataChart == null) {
                return;
            }
            let a = this.dataChart.c9.j.e();
            if (this.af8 == null) {
                this.af8 = a.k;
            }
            if (this.agf == null) {
                this.agf = a.k;
            }
            this.ab7 = 0;
            this.agg = BrushUtil.h(0, 0, 0, 0);
            this.agj = BrushUtil.h(0, 0, 0, 0);
            this.agc = BrushUtil.h(0, 0, 0, 0);
            this.af9 = BrushUtil.h(0, 0, 0, 0);
            this.abm = 0;
            this.agd = BrushUtil.h(0, 0, 0, 0);
            this.abn = AxisDefaults.e;
            this.agu = 1;
            this.agv = 1;
            this.crosshairsDisplayMode = 1;
            this.gl = true;
            this.jj = Defaults.j;
            this.x9 = Defaults.ae;
            this.x4 = Defaults.af;
            this.x5 = Defaults.ag;
            this.autoCalloutsVisible = true;
            this.hi = true;
            this.g1 = false;
            this.g9 = false;
            this.bz = 1;
            this.bv = 11;
            this.akt = true;
            this.xy = BrushUtil.h(255, 255, 255, 255);
            this.ji = DeviceUtils.g(2);
            this.gj = true;
            this.gh = true;
            this.ge = true;
            this.dk = 4;
            this.di = 4;
        }
        u4(a, b) {
            super.u4(a, b);
            a.ke = this.akw;
            a.kf = this.akx;
            a.de = this.akq;
            a.df = this.akr;
        }
        vu(a, b, c) {
            super.vu(a, b, c);
            switch (a) {
                case "TransitionInDuration":
                    this.ur((d) => d.ke = this.akw);
                    break;
                case "TransitionOutDuration":
                    this.ur((d) => d.kf = this.akx);
                    break;
                case "TransitionInEasingFunction":
                    this.ur((d) => d.de = this.akq);
                    break;
                case "TransitionOutEasingFunction":
                    this.ur((d) => d.df = this.akr);
                    break;
            }
        }
        get akw() {
            return this.aku;
        }
        set akw(a) {
            let b = this.akw;
            if (a != b) {
                this.aku = a;
                this.vr("TransitionInDuration", b, this.akw);
            }
        }
        get akx() {
            return this.akv;
        }
        set akx(a) {
            let b = this.akx;
            if (a != b) {
                this.akv = a;
                this.vr("TransitionOutDuration", b, this.akx);
            }
        }
        get akq() {
            return this.ako;
        }
        set akq(a) {
            let b = this.akq;
            if (a != b) {
                this.ako = a;
                this.vr("TransitionInEasingFunction", b, this.akq);
            }
        }
        get akr() {
            return this.akp;
        }
        set akr(a) {
            let b = this.akr;
            if (a != b) {
                this.akp = a;
                this.vr("TransitionOutEasingFunction", b, this.akr);
            }
        }
        akz() {
            let cvd_ = this.ls();
            cvd_.scaleByViewport();
            return (cvd_.serialize());
        }
        constructor() {
            super();
            this.aku = 1000;
            this.akv = 1000;
            this.ako = null;
            this.akp = null;
            this.akk = 0;
            this.aks = true;
            this.aki = 0;
            this.akm = 3;
            this.ui();
        }
        get_hv() {
            return ((() => {
                let $ret = new List$1(DataSeriesType_$type, 0);
                $ret.add(34);
                return $ret;
            })());
        }
        get hv() {
            return this.get_hv();
        }
        get_hu() {
            return ((() => {
                let $ret = new List$1(IDataSeriesAdapterRule_$type, 0);
                $ret.add(new SimplePieSeriesRule());
                $ret.add(new SubCollectionsRule());
                return $ret;
            })());
        }
        get hu() {
            return this.get_hu();
        }
        get_ahu() {
            return false;
        }
        be(a) {
            if (this.akl == 0) {
                return a.suggestedSeries;
            }
            if (this.akl == 1) {
                return 34;
            }
            return 34;
        }
        dc(a, b) {
            let c = super.dc(a, b);
            return c;
        }
        ux(a, b) {
            super.ux(a, b);
        }
        u3(a, b) {
            super.u3(a, b);
            let c = typeCast(RadialBase.$, a);
            if (c == null) {
                return;
            }
            c.zr = this.akt;
            c.y1 = this.akj;
            c.c5 = this.akn;
        }
        t7(a, b) {
            super.t7(a, b);
            let c = typeCast(RadialPieSeries.$, a);
            if (c != null) {
                c.w8 = this.c2(a, b);
            }
        }
        c1(a) {
            return 13;
        }
        vr(a, b, c) {
            super.vr(a, b, c);
            switch (a) {
                case "ChartType":
                    this.uo();
                    break;
            }
        }
        get_cb() {
            return 4;
        }
        get cb() {
            return this.get_cb();
        }
        get akl() {
            return this.akk;
        }
        set akl(a) {
            if (a != this.akk) {
                let b = this.akl;
                this.akk = a;
                this.vr("ChartType", enumGetBox(DataPieChartType_$type, b), enumGetBox(DataPieChartType_$type, this.akl));
            }
        }
        get akt() {
            return this.aks;
        }
        set akt(a) {
            let b = this.akt;
            if (a != b) {
                this.aks = a;
                this.vr("IsTransitionInEnabled", b, this.akt);
            }
        }
        get akj() {
            return this.aki;
        }
        set akj(a) {
            let b = this.akj;
            if (a != b) {
                this.aki = a;
                this.vr("TransitionInMode", enumGetBox(CategoryTransitionInMode_$type, b), enumGetBox(CategoryTransitionInMode_$type, this.akj));
            }
        }
        get akn() {
            return this.akm;
        }
        set akn(a) {
            let b = this.akn;
            if (a != b) {
                this.akm = a;
                this.vr("TransitionInSpeedType", enumGetBox(TransitionInSpeedType_$type, b), enumGetBox(TransitionInSpeedType_$type, this.akn));
            }
        }
    }
    DataPieChart.$t = /*@__PURE__*/ markType(DataPieChart, 'DataPieChart', DataPieBaseChart.$);
    return DataPieChart;
})();
