define("viewBuilderApi", ["clientkernelLoaderApi", "displayEngineApi", "PIXI"],
    function(clientkernelLoaderApi, displayEngineApi, PIXI) {
        "use strict";

        function $iterator(o) {
            if (o instanceof Array) return function() {
                return {
                    cur: 0,
                    arr: o,
                    hasNext: function() {
                        return this.cur < this.arr.length;
                    },
                    next: function() {
                        return this.arr[this.cur++];
                    }
                };
            };
            return typeof(o.iterator) == 'function' ? $bind(o, o.iterator) : o.iterator;
        };;
        var $fid = 0;

        function $bind(o, m) {
            if (m == null) return null;
            if (m.__id__ == null) m.__id__ = $fid++;
            var f;
            if (o.hx__closures__ == null) o.hx__closures__ = {};
            else f = o.hx__closures__[m.__id__];
            if (f == null) {
                f = function() {
                    return f.method.apply(f.scope, arguments);
                };
                f.scope = o;
                f.method = m;
                o.hx__closures__[m.__id__] = f;
            }
            return f;
        };
        var $_;
        var $estr = function() {
            return _hcmn_.js_Boot.__string_rec(this, '');
        };
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

        haxe.IMap = function() {}
        haxe.IMap.prototype = {

        };
        if (typeof viewBuilderApi == 'undefined') {
            var viewBuilderApi = {};
        };

        viewBuilderApi.IViewBuilderAssets = function() {}
        viewBuilderApi.IViewBuilderAssets.prototype = {

            getConfiguration: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getSpritesheetJSONs: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            },
            getSpritesheetImages: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            },
            getParticlesJSONs: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            },
            getParticlesAnimationJSONs: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            },
            getCustomJSONs: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            }
        };

        viewBuilderApi.IViewBuilderFactory = function() {}
        viewBuilderApi.IViewBuilderFactory.prototype = {

            createView: function(assets) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            registerComponentFactory: function(factory, type) {
                return {
                    arguments: ["*", "string"],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.IViewBuilderComponent = function() {}
        viewBuilderApi.IViewBuilderComponent.prototype = {

            init: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            show: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            enable: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            disable: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            setX: function(x) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            setY: function(y) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getDisplayObject: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            isContainer: function() {
                return {
                    arguments: [],
                    returns: "boolean"
                };
            },
            dispose: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.IButton = function() {}
        viewBuilderApi.IButton.prototype = {

            getMainMovieClip: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getEvents: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IViewBuilderContainer = function() {}
        viewBuilderApi.IViewBuilderContainer.prototype = {

            addChildComponent: function(child, childId) {
                return {
                    arguments: ["*", "string"],
                    returns: "void"
                };
            },
            removeChildComponent: function(childId) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            removeAllChildComponents: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            getChildComponents: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            },
            createContainerFromStoredConfig: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            dispose: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            disposeChildComponent: function(childId) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getComponentById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getContainerById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getButtonById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getButtonContainerById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getLabelById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getComboBoxById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getSlideButtonContainerById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getVBAnimationById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getParticleAnimationById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getStepperBoxById: function(id) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            getVBComponent: function(type, id) {
                return {
                    arguments: [Class, "string"],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IButtonContainer = function() {}
        viewBuilderApi.IButtonContainer.prototype = {

            getBaseButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getEvents: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.ICardDeck = function() {}
        viewBuilderApi.ICardDeck.prototype = {

            makeCard: function(name, options) {
                return {
                    arguments: ["string", {
                        type: "*",
                        opt: true
                    }],
                    returns: "*"
                };
            },
            updateCard: function(instance, id) {
                return {
                    arguments: ["*", "string"],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IComboBox = function() {}
        viewBuilderApi.IComboBox.prototype = {

            setComboBoxValues: function(tempList) {
                return {
                    arguments: ["array"],
                    returns: "void"
                };
            },
            setSelectedValue: function(value) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getSelectedValue: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            getSelectedValueIndex: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setVanityBarVisible: function(visible) {
                return {
                    arguments: ["boolean"],
                    returns: "void"
                };
            },
            getEvents: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            isExpanded: function() {
                return {
                    arguments: [],
                    returns: "boolean"
                };
            },
            colapse: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            expand: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.ILabel = function() {}
        viewBuilderApi.ILabel.prototype = {

            setText: function(text) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getText: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            forceRenderText: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            getStyle: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            updateTo: function(stringId, style) {
                return {
                    arguments: [{
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.ILabelStyle = function() {}
        viewBuilderApi.ILabelStyle.prototype = {

            getShadowColor: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setShadowColor: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getShadowBlur: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setShadowBlur: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getShadowOffsetX: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setShadowOffsetX: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getShadowOffsetY: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setShadowOffsetY: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getFontFamily: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setFontFamily: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getFontSize: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setFontSize: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getFontWeight: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setFontWeight: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getFontColor: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setFontColor: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getFontStyle: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setFontStyle: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getGradientType: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setGradientType: function(val) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            getGradientColorStops: function() {
                return {
                    arguments: [],
                    returns: "array"
                };
            },
            setGradientColorStops: function(val) {
                return {
                    arguments: ["array"],
                    returns: "void"
                };
            },
            getStrokeThickness: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setStrokeThickness: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getStrokeColor: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setStrokeColor: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getKerning: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setKerning: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getLineHeight: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setLineHeight: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getWidth: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setWidth: function(value) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getHeight: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setHeight: function(value) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getBackgroundColor: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setBackgroundColor: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getBorderColor: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setBorderColor: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getForceSingleLine: function() {
                return {
                    arguments: [],
                    returns: "boolean"
                };
            },
            setForceSingleLine: function(val) {
                return {
                    arguments: ["boolean"],
                    returns: "void"
                };
            },
            getGroup: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setGroup: function(val) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getAlign: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setAlign: function(val) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            getFillRotation: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setFillRotation: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getLeft: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setLeft: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getTop: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            setTop: function(val) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            setFillPattern: function(image, repetition) {
                return {
                    arguments: ["*", {
                        type: "*",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            getMonospaceLetters: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            setMonospaceLetters: function(letters) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.IParticleAnimationComponent = function() {}
        viewBuilderApi.IParticleAnimationComponent.prototype = {

            getParticleSystem: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getAnimation: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            play: function(offScreen) {
                return {
                    arguments: ["boolean"],
                    returns: "void"
                };
            },
            stop: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            hideOffScreen: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.ISlideButtonContainer = function() {}
        viewBuilderApi.ISlideButtonContainer.prototype = {

            getBaseButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getEvents: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IStepperBox = function() {}
        viewBuilderApi.IStepperBox.prototype = {

            setStepperBoxValues: function(tempList, selectedIndex, selectedValue) {
                return {
                    arguments: ["array", {
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            setSelectedValue: function(value) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            getSelectedValue: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            getSelectedIndex: function() {
                return {
                    arguments: [],
                    returns: "number"
                };
            },
            getEvents: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setVanityBarVisible: function(visible) {
                return {
                    arguments: ["boolean"],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.IVBAnimationComponent = function() {}
        viewBuilderApi.IVBAnimationComponent.prototype = {

            gotoAndPlay: function(offScreen, fromFrame, callBack, delay) {
                return {
                    arguments: ["boolean", {
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            gotoAndStop: function(offScreen, frame) {
                return {
                    arguments: ["boolean", {
                        type: "string",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            play: function(offScreen, callback, delay) {
                return {
                    arguments: ["boolean", {
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            getOffScreenBitmap: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            stop: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            addEventListener: function(id, listener, args) {
                return {
                    arguments: ["string", "*", {
                        type: "*",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            removeEventListener: function(id) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            hideOffScreen: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            isPlaying: function() {
                return {
                    arguments: [],
                    returns: "boolean"
                };
            },
            isOffscreen: function() {
                return {
                    arguments: [],
                    returns: "boolean"
                };
            },
            toOffScreen: function(isWebGL) {
                return {
                    arguments: [{
                        type: "boolean",
                        opt: true
                    }],
                    returns: "void"
                };
            }
        };

        viewBuilderApi.IComponentFactory = function() {}
        viewBuilderApi.IComponentFactory.prototype = {

            create: function(cfg, assetspack, multilanguageAssets) {
                return {
                    arguments: ["*", "*", {
                        type: "*",
                        opt: true
                    }],
                    returns: "*"
                };
            }
        };
        viewBuilderApi.ImagePatternRepetition = function(value) {
            this.value = value;
            viewBuilderApi.ImagePatternRepetition.values.push(this);
        };
        viewBuilderApi.ImagePatternRepetition.__name__ = ["viewBuilderApi", "ImagePatternRepetition"];
        viewBuilderApi.ImagePatternRepetition.prototype.value = null;
        viewBuilderApi.ImagePatternRepetition.getValues = function() {
            return viewBuilderApi.ImagePatternRepetition.values.slice();
        };
        viewBuilderApi.ImagePatternRepetition.getByValue = function(value) {
            if (value == null || value == "") return viewBuilderApi.ImagePatternRepetition.DEFAULT;
            var _g = 0;
            var _g1 = viewBuilderApi.ImagePatternRepetition.values;
            while (_g < _g1.length) {
                var o = _g1[_g];
                ++_g;
                if (value == o.value) return o;
            }
            return null;
        };
        viewBuilderApi.ImagePatternRepetition.prototype.__class__ = viewBuilderApi.ImagePatternRepetition;
        viewBuilderApi.LabelGradientType = {
            __ename__: ["viewBuilderApi", "LabelGradientType"],
            __constructs__: ["NONE", "LINEAR", "RADIAL"]
        };
        viewBuilderApi.LabelGradientType.LINEAR = ["LINEAR", 1];
        viewBuilderApi.LabelGradientType.LINEAR.toString = $estr;
        viewBuilderApi.LabelGradientType.LINEAR.__enum__ = viewBuilderApi.LabelGradientType;
        viewBuilderApi.LabelGradientType.NONE = ["NONE", 0];
        viewBuilderApi.LabelGradientType.NONE.toString = $estr;
        viewBuilderApi.LabelGradientType.NONE.__enum__ = viewBuilderApi.LabelGradientType;
        viewBuilderApi.LabelGradientType.RADIAL = ["RADIAL", 2];
        viewBuilderApi.LabelGradientType.RADIAL.toString = $estr;
        viewBuilderApi.LabelGradientType.RADIAL.__enum__ = viewBuilderApi.LabelGradientType;
        viewBuilderApi.LabelTextAlign = {
            __ename__: ["viewBuilderApi", "LabelTextAlign"],
            __constructs__: ["LEFT", "RIGHT", "CENTER"]
        };
        viewBuilderApi.LabelTextAlign.RIGHT = ["RIGHT", 1];
        viewBuilderApi.LabelTextAlign.RIGHT.toString = $estr;
        viewBuilderApi.LabelTextAlign.RIGHT.__enum__ = viewBuilderApi.LabelTextAlign;
        viewBuilderApi.LabelTextAlign.LEFT = ["LEFT", 0];
        viewBuilderApi.LabelTextAlign.LEFT.toString = $estr;
        viewBuilderApi.LabelTextAlign.LEFT.__enum__ = viewBuilderApi.LabelTextAlign;
        viewBuilderApi.LabelTextAlign.CENTER = ["CENTER", 2];
        viewBuilderApi.LabelTextAlign.CENTER.toString = $estr;
        viewBuilderApi.LabelTextAlign.CENTER.__enum__ = viewBuilderApi.LabelTextAlign;

        viewBuilderApi.IButtonEvents = function() {}
        viewBuilderApi.IButtonEvents.prototype = {

            DOWN: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            UP: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            OVER: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            OUT: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IComboBoxEvents = function() {}
        viewBuilderApi.IComboBoxEvents.prototype = {

            SELECTION_SET: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.ISlideButtonEvents = function() {}
        viewBuilderApi.ISlideButtonEvents.prototype = {

            DOWN: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            UP: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            OVER: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            OUT: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            MOVE: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IStepperBoxEvents = function() {}
        viewBuilderApi.IStepperBoxEvents.prototype = {

            SELECTION_SET: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        viewBuilderApi.IViewBuilderEvent = function() {}
        viewBuilderApi.IViewBuilderEvent.prototype = {

            addListener: function(listener) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            removeListener: function(listener) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            }
        };
        viewBuilderApi.ImagePatternRepetition.values = [];;
        viewBuilderApi.ImagePatternRepetition.REPEAT = new viewBuilderApi.ImagePatternRepetition("repeat");;
        viewBuilderApi.ImagePatternRepetition.DEFAULT = viewBuilderApi.ImagePatternRepetition.REPEAT;;
        viewBuilderApi.ImagePatternRepetition.REPEAT_X = new viewBuilderApi.ImagePatternRepetition("repeat-x");;
        viewBuilderApi.ImagePatternRepetition.REPEAT_Y = new viewBuilderApi.ImagePatternRepetition("repeat-y");;
        viewBuilderApi.ImagePatternRepetition.NO_REPEAT = new viewBuilderApi.ImagePatternRepetition("no-repeat");;
        return {
            exports: viewBuilderApi
        };
    });