/*
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 { TickmarkValues } from "./TickmarkValues";
import { markType } from "igniteui-angular-core";
import { LinearCategorySnapper } from "./LinearCategorySnapper";
import { truncate } from "igniteui-angular-core";
/**
 * @hidden
 */
export let CategoryTickmarkValues = /*@__PURE__*/ (() => {
    class CategoryTickmarkValues extends TickmarkValues {
        constructor() {
            super(...arguments);
            this.v = 0;
            this.z = 0;
            this.aa = null;
            this.ab = null;
            this.x = false;
            this.w = null;
            this.y = 0;
            this.t = null;
            this.u = null;
        }
        s(a) {
            super.s(a);
            let b = a.a;
            this.v = b;
            this.z = a.r;
            this.aa = a.s;
            this.ab = a.t;
            this.x = a.e;
            this.w = a.c;
            let c = new LinearCategorySnapper(1, a.n, a.m, a.k, a.l, b, a.h);
            let d = c.g;
            if (a.i != -1) {
                d = a.i;
            }
            let e = Math.floor((a.n - a.g) / d);
            let f = Math.ceil((a.m - a.g) / d);
            let g = truncate(e);
            let h = truncate(f);
            let i = truncate(c.h);
            if (a.q != -1) {
                i = a.q;
            }
            this.m = d;
            this.n = a.j;
            this.p = g;
            this.q = h;
            this.r = i;
            this.y = a.g;
        }
        j() {
            let a = this.p;
            let b = this.q - a + 1;
            if (b < 0) {
                b = 0;
            }
            if (this.t == null || this.t.length != b) {
                this.t = new Array(b);
            }
            let c = this.t;
            for (let d = 0; d < b; ++d) {
                let e = this.y + (d + a) * this.m;
                c[d] = e;
            }
            return c;
        }
        k() {
            let a = this.m;
            let b = this.q;
            let c = this.p;
            let d = this.z;
            let e = this.v;
            a = Math.min(a, 20);
            let f = 0;
            for (let g = c; g < b; ++g) {
                if (e != 0 && d != 0) {
                    for (let h = 0; h < truncate(a); h++) {
                        for (let i = 0; i < d; i++) {
                            f++;
                        }
                    }
                }
            }
            if (this.u == null || this.u.length != f) {
                this.u = new Array(f);
            }
            let j = this.u;
            let k = 0;
            for (let l = c; l < b; ++l) {
                if (e != 0 && d != 0) {
                    for (let m = 0; m < truncate(a); m++) {
                        for (let n = 0; n < d; n++) {
                            let o = this.w(n);
                            let p = m + (l * a) + o;
                            j[k] = p;
                            k++;
                        }
                    }
                }
            }
            return this.u;
        }
    }
    CategoryTickmarkValues.$t = markType(CategoryTickmarkValues, 'CategoryTickmarkValues', TickmarkValues.$);
    return CategoryTickmarkValues;
})();
