/*
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 * as tslib_1 from "tslib";
import { Frame } from "./Frame";
import { List$1 } from "igniteui-react-core/ES5/List$1";
import { Brush } from "igniteui-react-core/ES5/Brush";
import { Axis } from "./Axis";
import { FrameExtended } from "./FrameExtended";
import { Number_$type, markType } from "igniteui-react-core/ES5/type";
/**
 * @hidden
 */
var AxisAnnotationFrame = /** @class */ (function (_super) {
    tslib_1.__extends(AxisAnnotationFrame, _super);
    function AxisAnnotationFrame() {
        var _this = _super.call(this) || this;
        _this.n = null;
        _this.h = null;
        _this.g = null;
        _this.m = null;
        _this.j = null;
        _this.l = null;
        _this.k = null;
        _this.i = null;
        _this.y = null;
        _this.s = null;
        _this.r = null;
        _this.x = null;
        _this.u = null;
        _this.w = null;
        _this.v = null;
        _this.t = null;
        _this.p = null;
        _this.aa = null;
        _this.o = null;
        _this.z = null;
        _this.f = null;
        _this.q = null;
        _this.n = new List$1(Brush.$, 0);
        _this.g = new List$1(Brush.$, 0);
        _this.h = new List$1(Brush.$, 0);
        _this.j = new List$1(Number_$type, 0);
        _this.k = new List$1(Number_$type, 0);
        _this.l = new List$1(Number_$type, 0);
        _this.i = new List$1(Number_$type, 0);
        _this.m = new List$1(Number_$type, 0);
        _this.y = new List$1(Brush.$, 0);
        _this.r = new List$1(Brush.$, 0);
        _this.s = new List$1(Brush.$, 0);
        _this.u = new List$1(Number_$type, 0);
        _this.v = new List$1(Number_$type, 0);
        _this.w = new List$1(Number_$type, 0);
        _this.t = new List$1(Number_$type, 0);
        _this.x = new List$1(Number_$type, 0);
        _this.f = new List$1(Axis.$, 0);
        _this.q = new List$1(Axis.$, 0);
        _this.p = new List$1(Number_$type, 0);
        _this.o = new List$1(Number_$type, 0);
        _this.aa = new List$1(Number_$type, 0);
        _this.z = new List$1(Number_$type, 0);
        return _this;
    }
    AxisAnnotationFrame.ab = function (a, b, c, d) {
        var e = c.count;
        var f = d.count;
        var g = Math.max(e, f);
        var h = 1 - b;
        if (a.count < g) {
            var i = new Array(g - a.count);
            for (var j = 0; j < g - a.count; j++) {
                i[j] = null;
            }
            a.s(a.count, i);
        }
        if (a.count > g) {
            a.v(g, a.count - g);
        }
        for (var k = 0; k < Math.min(e, f); ++k) {
            if (b == 0) {
                a._inner[k] = c._inner[k];
            }
            else {
                a._inner[k] = d._inner[k];
            }
        }
        if (e < f) {
            var l = e > 0 ? c._inner[e - 1] : null;
            for (var m = e; m < f; ++m) {
                if (b == 0) {
                    a._inner[m] = l;
                }
                else {
                    a._inner[m] = d._inner[m];
                }
            }
        }
        if (e > f) {
            var n = f > 0 ? d._inner[f - 1] : null;
            for (var o = f; o < e; ++o) {
                if (b == 0) {
                    a._inner[o] = c._inner[o];
                }
                else {
                    a._inner[o] = n;
                }
            }
        }
    };
    AxisAnnotationFrame.prototype.c = function (a, b, c) {
        var d = b;
        var e = c;
        FrameExtended.a(this.n, a, d.n, e.n, 0);
        FrameExtended.a(this.g, a, d.g, e.g, 0);
        FrameExtended.a(this.h, a, d.h, e.h, 0);
        Frame.b(this.j, a, d.j, e.j);
        Frame.b(this.k, a, d.k, e.k);
        Frame.b(this.l, a, d.l, e.l);
        Frame.b(this.i, a, d.i, e.i);
        Frame.b(this.m, a, d.m, e.m);
        FrameExtended.a(this.y, a, d.y, e.y, 0);
        FrameExtended.a(this.r, a, d.r, e.r, 0);
        FrameExtended.a(this.s, a, d.s, e.s, 0);
        Frame.b(this.u, a, d.u, e.u);
        Frame.b(this.v, a, d.v, e.v);
        Frame.b(this.w, a, d.w, e.w);
        Frame.b(this.t, a, d.t, e.t);
        Frame.b(this.x, a, d.x, e.x);
        AxisAnnotationFrame.ab(this.f, a, d.f, e.f);
        AxisAnnotationFrame.ab(this.q, a, d.q, e.q);
    };
    AxisAnnotationFrame.$t = markType(AxisAnnotationFrame, 'AxisAnnotationFrame', Frame.$);
    return AxisAnnotationFrame;
}(Frame));
export { AxisAnnotationFrame };
