/*
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 { Type, Base, markType, fromEnum } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { IEG_ColorTransform_$type } from "./IEG_ColorTransform";
import { ST_HexColorRGB } from "./ST_HexColorRGB";
/**
 * @hidden
 */
export let IEG_ColorChoice_$type = new Type(null, 'IEG_ColorChoice');
/**
 * @hidden
 */
export let EG_ColorChoice = /*@__PURE__*/ (() => {
    class EG_ColorChoice extends Base {
        constructor() {
            super(...arguments);
            this.a = new List$1(IEG_ColorTransform_$type, 0);
        }
        get b() {
            return this.a;
        }
    }
    EG_ColorChoice.$t = markType(EG_ColorChoice, 'EG_ColorChoice', Base.$, [IEG_ColorChoice_$type]);
    return EG_ColorChoice;
})();
/**
 * @hidden
 */
export let CT_PresetColor_Core = /*@__PURE__*/ (() => {
    class CT_PresetColor_Core extends EG_ColorChoice {
        constructor() {
            super(...arguments);
            this.c = 0;
        }
        _accept$2$i($tArg, $tResult, a, b) {
            return a._visitCT_PresetColor$i(this, b);
        }
    }
    CT_PresetColor_Core.$t = markType(CT_PresetColor_Core, 'CT_PresetColor_Core', EG_ColorChoice.$, [IEG_ColorChoice_$type]);
    return CT_PresetColor_Core;
})();
/**
 * @hidden
 */
export let CT_SchemeColor = /*@__PURE__*/ (() => {
    class CT_SchemeColor extends EG_ColorChoice {
        constructor() {
            super(...arguments);
            this.c = 0;
        }
        _accept$2$i($tArg, $tResult, a, b) {
            return a._visitCT_SchemeColor$i(this, b);
        }
    }
    CT_SchemeColor.$t = markType(CT_SchemeColor, 'CT_SchemeColor', EG_ColorChoice.$, [IEG_ColorChoice_$type]);
    return CT_SchemeColor;
})();
/**
 * @hidden
 */
export let CT_SRgbColor = /*@__PURE__*/ (() => {
    class CT_SRgbColor extends EG_ColorChoice {
        constructor() {
            super(...arguments);
            this.c = new ST_HexColorRGB();
        }
        _accept$2$i($tArg, $tResult, a, b = Type.getDefaultValue($tArg)) {
            return a._visitCT_SRgbColor$i(this, b);
        }
        static d(a, b) {
            b = new ST_HexColorRGB(0);
            for (let c of fromEnum(a.ab.u)) {
                switch (c.a.e(a.d)) {
                    case "val":
                        b = ST_HexColorRGB.d(c.d);
                        break;
                    default: break;
                }
            }
            return {
                p1: b
            };
        }
    }
    CT_SRgbColor.$t = markType(CT_SRgbColor, 'CT_SRgbColor', EG_ColorChoice.$, [IEG_ColorChoice_$type]);
    return CT_SRgbColor;
})();
/**
 * @hidden
 */
export let CT_SysColor = /*@__PURE__*/ (() => {
    class CT_SysColor extends EG_ColorChoice {
        constructor() {
            super(...arguments);
            this.c = new ST_HexColorRGB();
            this.d = 0;
        }
        _accept$2$i($tArg, $tResult, a, b = Type.getDefaultValue($tArg)) {
            return a._visitCT_SysColor$i(this, b);
        }
    }
    CT_SysColor.$t = markType(CT_SysColor, 'CT_SysColor', EG_ColorChoice.$, [IEG_ColorChoice_$type]);
    return CT_SysColor;
})();
/**
 * @hidden
 */
export let IEG_ColorChoiceVisitor$2_$type = new Type(null, 'IEG_ColorChoiceVisitor$2');
