/*
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 { DoubleTrendLineManagerBase } from "./DoubleTrendLineManagerBase";
import { IPreparesCategoryTrendline_$type } from "./IPreparesCategoryTrendline";
import { typeCast, markType } from "igniteui-angular-core";
import { TrendResolutionParams } from "./TrendResolutionParams";
import { ScalerParams } from "./ScalerParams";
import { Series } from "./Series";
import { SortedReadOnlyDoubleCollection } from "./SortedReadOnlyDoubleCollection";
/**
 * @hidden
 */
export let CategoryTrendLineManagerBase = /*@__PURE__*/ (() => {
    class CategoryTrendLineManagerBase extends DoubleTrendLineManagerBase {
        get_g$a() {
            return 0;
        }
        get g$a() {
            return this.get_g$a();
        }
        prepareLine(a, b, c, d) {
            this.prepareLine1(a, b.a.s, b, c, d);
        }
        prepareLine1(a, b, c, d, e) {
            let f = c.n;
            let g = c.m;
            let h = new ScalerParams(0, c.p, c.o, c.b.j$b, f);
            let i = new ScalerParams(0, c.p, c.o, c.c.j$b, f);
            let j = c.b.j$a();
            let k = j[0];
            let l = j[1];
            if (typeCast(Series.$, a) !== null) {
                i.b = a.i0();
            }
            let m = d.f;
            if (c.d != null && c.d.i$b != null) {
                m = new SortedReadOnlyDoubleCollection(m, c.d.i$b);
            }
            let n = ((() => {
                let $ret = new TrendResolutionParams();
                $ret.e = c.j;
                $ret.f = c.k;
                $ret.g = c.l;
                $ret.a = e;
                $ret.d = c.i;
                $ret.i = c.o;
                $ret.h = c.n;
                $ret.c = k;
                $ret.b = l;
                return $ret;
            })());
            if (this.g$b != 0) {
                if (a.isVertical) {
                    this.prepareLineCore(b, this.g$b, m, this.g$f, (o) => c.c.j$c(o, i), (o) => c.b.j$c(o, h), n);
                }
                else {
                    this.prepareLineCore(b, this.g$b, m, this.g$f, (o) => c.b.j$c(o, h), (o) => c.c.j$c(o, i), n);
                }
            }
        }
    }
    CategoryTrendLineManagerBase.$t = markType(CategoryTrendLineManagerBase, 'CategoryTrendLineManagerBase', DoubleTrendLineManagerBase.$, [IPreparesCategoryTrendline_$type]);
    return CategoryTrendLineManagerBase;
})();
