/*
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 { IDataChartVisualDataManager_$type } from "./IDataChartVisualDataManager";
import { ChartVisualData } from "./ChartVisualData";
import { RectData } from "igniteui-react-core/ES2015/RectData";
import { VisualExportHelper } from "./VisualExportHelper";
import { Base, Point_$type, EnumUtil, markType } from "igniteui-react-core/ES2015/type";
import { ChartTitleVisualData } from "./ChartTitleVisualData";
import { HorizontalAlignment_$type } from "igniteui-react-core/ES2015/HorizontalAlignment";
import { AppearanceHelper } from "igniteui-react-core/ES2015/AppearanceHelper";
import { FontUtil } from "igniteui-react-core/ES2015/FontUtil";
export class DataChartVisualDataManager extends Base {
    exportVisualData(a) {
        let b = new ChartVisualData();
        for (let c = 0; c < a.axes.count; c++) {
            let d = a.axes._inner[c].ez();
            b.axes.add1(d);
        }
        for (let e = 0; e < a.series.count; e++) {
            let f = a.series._inner[e].fi();
            b.series.add1(f);
        }
        b.name = a.name;
        this.b(a, b);
        this.c(a, b);
        return b;
    }
    c(a, b) {
        let c = a.bk;
        b.width = c.a6;
        b.height = c.a5;
        b.contentArea = RectData.b(c.e1());
        b.centralArea = new RectData(c.a2, 0, c.a6 - (c.a2 + c.a3), c.a5 - (c.a4 + c.a1));
        b.plotArea = RectData.b(a.mx);
    }
    d(a, b) {
        let c = VisualExportHelper.a(a);
        return c;
    }
    b(a, b) {
        let c = a.bk;
        let d = null;
        b.title = null;
        b.subtitle = null;
        let e = c.e9();
        let f = 0;
        let g = 0;
        if (c.el != null) {
            d = c.t();
            let h = this.a(c, c.el, d);
            let i = { $type: Point_$type, x: 0, y: 0 };
            g = c.el.l + e.b + e.e;
            let j = new ChartTitleVisualData();
            let k = c.e1();
            j.viewport = new RectData(k.left, k.top, k.width, g);
            j.textPlotArea = RectData.b(this.d(c.el, a));
            j.textPlotArea = new RectData(c.el.n, c.el.o, c.el.m, c.el.l);
            f = j.height;
            j.appearance = AppearanceHelper.c(c.el, h);
            let l = c.e9();
            j.appearance.marginTop = l.e;
            j.appearance.marginLeft = l.c;
            j.appearance.marginRight = l.d;
            j.appearance.marginBottom = l.b;
            let m = c.en();
            j.appearance.horizontalAlignment = EnumUtil.getName(HorizontalAlignment_$type, m);
            b.title = j;
        }
        if (c.ek != null) {
            d = c.s();
            let n = this.a(c, c.ek, d);
            let o = { $type: Point_$type, x: 0, y: f };
            let p = c.e8();
            let q = c.ek.l + p.b + p.e;
            let r = new ChartTitleVisualData();
            let s = c.e1();
            r.viewport = new RectData(s.left, s.top + g, s.width, q);
            r.textPlotArea = RectData.b(this.d(c.ek, a));
            r.appearance = AppearanceHelper.c(c.ek, n);
            let t = c.e8();
            r.appearance.marginTop = t.e;
            r.appearance.marginLeft = t.c;
            r.appearance.marginRight = t.d;
            r.appearance.marginBottom = t.b;
            let u = c.em();
            r.appearance.horizontalAlignment = EnumUtil.getName(HorizontalAlignment_$type, u);
            b.subtitle = r;
        }
    }
    a(a, b, c) {
        return FontUtil.getFontInfo(a.i.af, b, c);
    }
}
DataChartVisualDataManager.$t = markType(DataChartVisualDataManager, 'DataChartVisualDataManager', Base.$, [IDataChartVisualDataManager_$type]);
