/*
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 { Base, toNullable, Number_$type, Boolean_$type, fromEnum, markType, getInstanceType } from "igniteui-angular-core";
import { ST_RectAlignment_$type } from "./ST_RectAlignment";
import { CultureInfo } from "igniteui-angular-core";
import { XmlNamespaceDefinitionBase } from "./XmlNamespaceDefinitionBase";
import { ST_OnOff } from "./ST_OnOff";
import { parseInt64_1, parseInt32_1 } from "igniteui-angular-core";
/**
 * @hidden
 */
export class CT_ReflectionEffect extends Base {
    constructor() {
        super();
        this.r = toNullable(Number_$type, null);
        this.aj = toNullable(Number_$type, null);
        this.al = toNullable(Number_$type, null);
        this.x = toNullable(Number_$type, null);
        this.z = toNullable(Number_$type, null);
        this.v = toNullable(Number_$type, null);
        this.t = toNullable(Number_$type, null);
        this.ab = toNullable(Number_$type, null);
        this.an = toNullable(Number_$type, null);
        this.ap = toNullable(Number_$type, null);
        this.ad = toNullable(Number_$type, null);
        this.af = toNullable(Number_$type, null);
        this.p = toNullable(ST_RectAlignment_$type, null);
        this.ah = toNullable(Boolean_$type, null);
    }
    get q() {
        return this.r;
    }
    set q(a) {
        this.r = a;
    }
    get ai() {
        return this.aj;
    }
    set ai(a) {
        this.aj = a;
    }
    get ak() {
        return this.al;
    }
    set ak(a) {
        this.al = a;
    }
    get w() {
        return this.x;
    }
    set w(a) {
        this.x = a;
    }
    get y() {
        return this.z;
    }
    set y(a) {
        this.z = a;
    }
    get u() {
        return this.v;
    }
    set u(a) {
        this.v = a;
    }
    get s() {
        return this.t;
    }
    set s(a) {
        this.t = a;
    }
    get aa() {
        return this.ab;
    }
    set aa(a) {
        this.ab = a;
    }
    get am() {
        return this.an;
    }
    set am(a) {
        this.an = a;
    }
    get ao() {
        return this.ap;
    }
    set ao(a) {
        this.ap = a;
    }
    get ac() {
        return this.ad;
    }
    set ac(a) {
        this.ad = a;
    }
    get ae() {
        return this.af;
    }
    set ae(a) {
        this.af = a;
    }
    get o() {
        return this.p;
    }
    set o(a) {
        this.p = a;
    }
    get ag() {
        return this.ah;
    }
    set ag(a) {
        this.ah = a;
    }
    static a(a) {
        let b = toNullable(Number_$type, null);
        let c = toNullable(Number_$type, null);
        let d = toNullable(Number_$type, null);
        let e = toNullable(Number_$type, null);
        let f = toNullable(Number_$type, null);
        let g = toNullable(Number_$type, null);
        let h = toNullable(Number_$type, null);
        let i = toNullable(Number_$type, null);
        let j = toNullable(Number_$type, null);
        let k = toNullable(Number_$type, null);
        let l = toNullable(Number_$type, null);
        let m = toNullable(Number_$type, null);
        let n = toNullable(ST_RectAlignment_$type, null);
        let o = toNullable(Boolean_$type, null);
        let p = CT_ReflectionEffect.ar(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
        b = p.p1;
        c = p.p2;
        d = p.p3;
        e = p.p4;
        f = p.p5;
        g = p.p6;
        h = p.p7;
        i = p.p8;
        j = p.p9;
        k = p.p10;
        l = p.p11;
        m = p.p12;
        n = p.p13;
        o = p.p14;
        return ((() => {
            let $ret = new CT_ReflectionEffect();
            $ret.o = n;
            $ret.q = b;
            $ret.s = h;
            $ret.w = e;
            $ret.u = g;
            $ret.y = f;
            $ret.aa = i;
            $ret.ac = l;
            $ret.ae = m;
            $ret.ag = o;
            $ret.ai = c;
            $ret.ak = d;
            $ret.am = j;
            $ret.ao = k;
            return $ret;
        })());
    }
    static ar(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {
        b = toNullable(Number_$type, null);
        c = toNullable(Number_$type, null);
        d = toNullable(Number_$type, null);
        e = toNullable(Number_$type, null);
        f = toNullable(Number_$type, null);
        g = toNullable(Number_$type, null);
        h = toNullable(Number_$type, null);
        i = toNullable(Number_$type, null);
        j = toNullable(Number_$type, null);
        k = toNullable(Number_$type, null);
        l = toNullable(Number_$type, null);
        m = toNullable(Number_$type, null);
        n = toNullable(ST_RectAlignment_$type, null);
        o = toNullable(Boolean_$type, null);
        for (let p of fromEnum(a.ab.u)) {
            switch (p.a.e(a.d)) {
                case "blurRad":
                    b = toNullable(Number_$type, parseInt64_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "stA":
                    c = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "stPos":
                    d = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "endA":
                    e = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "endPos":
                    f = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "dist":
                    g = toNullable(Number_$type, parseInt64_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "dir":
                    h = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "fadeDir":
                    i = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "sx":
                    j = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "sy":
                    k = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "kx":
                    l = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "ky":
                    m = toNullable(Number_$type, parseInt32_1(p.d, CultureInfo.invariantCulture));
                    break;
                case "algn":
                    n = toNullable(ST_RectAlignment_$type, XmlNamespaceDefinitionBase.b(ST_RectAlignment_$type, p.d));
                    break;
                case "rotWithShape":
                    o = toNullable(Boolean_$type, ST_OnOff.e(p.d));
                    break;
                default: break;
            }
        }
        ;
        return {
            p1: b,
            p2: c,
            p3: d,
            p4: e,
            p5: f,
            p6: g,
            p7: h,
            p8: i,
            p9: j,
            p10: k,
            p11: l,
            p12: m,
            p13: n,
            p14: o
        };
    }
    static as(a, b, c = toNullable(ST_RectAlignment_$type, null), d = toNullable(Number_$type, null), e = toNullable(Number_$type, null), f = toNullable(Number_$type, null), g = toNullable(Number_$type, null), h = toNullable(Number_$type, null), i = toNullable(Number_$type, null), j = toNullable(Number_$type, null), k = toNullable(Number_$type, null), l = toNullable(Boolean_$type, null), m = toNullable(Number_$type, null), n = toNullable(Number_$type, null), o = toNullable(Number_$type, null), p = toNullable(Number_$type, null)) {
        a.ad.p(b, "a");
        let q = null;
        let r = null;
        if (c.hasValue) {
            r = "algn";
            q = XmlNamespaceDefinitionBase.f(ST_RectAlignment_$type, c.value);
            a.ad.h(r, q);
        }
        if (d.hasValue) {
            r = "blurRad";
            q = d.value.toString();
            a.ad.h(r, q);
        }
        if (e.hasValue) {
            r = "dir";
            q = e.value.toString();
            a.ad.h(r, q);
        }
        if (f.hasValue) {
            r = "dist";
            q = f.value.toString();
            a.ad.h(r, q);
        }
        if (g.hasValue) {
            r = "endA";
            q = g.value.toString();
            a.ad.h(r, q);
        }
        if (h.hasValue) {
            r = "endPos";
            q = h.value.toString();
            a.ad.h(r, q);
        }
        if (i.hasValue) {
            r = "fadeDir";
            q = i.value.toString();
            a.ad.h(r, q);
        }
        if (j.hasValue) {
            r = "kx";
            q = j.value.toString();
            a.ad.h(r, q);
        }
        if (k.hasValue) {
            r = "ky";
            q = k.value.toString();
            a.ad.h(r, q);
        }
        if (l.hasValue) {
            r = "rotWithShape";
            q = ST_OnOff.g(l.value);
            a.ad.h(r, q);
        }
        if (m.hasValue) {
            r = "stA";
            q = m.value.toString();
            a.ad.h(r, q);
        }
        if (n.hasValue) {
            r = "stPos";
            q = n.value.toString();
            a.ad.h(r, q);
        }
        if (o.hasValue) {
            r = "sx";
            q = o.value.toString();
            a.ad.h(r, q);
        }
        if (p.hasValue) {
            r = "sy";
            q = p.value.toString();
            a.ad.h(r, q);
        }
        ;
    }
    toString() {
        let a = getInstanceType(this);
        return a != null ? a.typeName : super.toString();
    }
}
CT_ReflectionEffect.$t = markType(CT_ReflectionEffect, 'CT_ReflectionEffect');
//# sourceMappingURL=CT_ReflectionEffect.js.map