define("wildFuryWinLinesApi", ["componentmodelComponentApi", "slotModelApi", "gameLayoutApi", "clientkernelEventbusApi"],
    function(componentmodelComponentApi, slotModelApi, gameLayoutApi, clientkernelEventbusApi) {
        "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 wildFuryWinLinesApi == 'undefined') {
            var wildFuryWinLinesApi = {};
        };
        wildFuryWinLinesApi.ExpandinWildsPayload = function(totalCount, expandingReel, isLowWin) {
            this.totalCount = totalCount;
            this.expandingReel = expandingReel;
            this.isLowWin = isLowWin;
        };
        wildFuryWinLinesApi.ExpandinWildsPayload.__name__ = ["wildFuryWinLinesApi", "ExpandinWildsPayload"];
        wildFuryWinLinesApi.ExpandinWildsPayload.prototype.expandingReel = null;
        wildFuryWinLinesApi.ExpandinWildsPayload.prototype.totalCount = null;
        wildFuryWinLinesApi.ExpandinWildsPayload.prototype.isLowWin = null;
        wildFuryWinLinesApi.ExpandinWildsPayload.prototype.__class__ = wildFuryWinLinesApi.ExpandinWildsPayload;
        wildFuryWinLinesApi.IdleAnimationPayload = function(reel, symbols, isLowWin) {
            this.reel = reel;
            this.symbols = symbols;
            this.isLowWin = isLowWin;
        };
        wildFuryWinLinesApi.IdleAnimationPayload.__name__ = ["wildFuryWinLinesApi", "IdleAnimationPayload"];
        wildFuryWinLinesApi.IdleAnimationPayload.prototype.symbols = null;
        wildFuryWinLinesApi.IdleAnimationPayload.prototype.reel = null;
        wildFuryWinLinesApi.IdleAnimationPayload.prototype.isLowWin = null;
        wildFuryWinLinesApi.IdleAnimationPayload.prototype.__class__ = wildFuryWinLinesApi.IdleAnimationPayload;
        wildFuryWinLinesApi.OutcomePayload = function(outcome, isLowWin) {
            this.outcome = outcome;
            this.isLowWin = isLowWin;
        };
        wildFuryWinLinesApi.OutcomePayload.__name__ = ["wildFuryWinLinesApi", "OutcomePayload"];
        wildFuryWinLinesApi.OutcomePayload.prototype.outcome = null;
        wildFuryWinLinesApi.OutcomePayload.prototype.isLowWin = null;
        wildFuryWinLinesApi.OutcomePayload.prototype.__class__ = wildFuryWinLinesApi.OutcomePayload;

        wildFuryWinLinesApi.IWinLinesImplementationPort = function() {}
        wildFuryWinLinesApi.IWinLinesImplementationPort.prototype = {

            getShowOutcome: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowIdleAnimation: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHideOutcome: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getVisible: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineShown: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineShow: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getExpandsShown: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getExpandCompleted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineCyclePlayed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinPresent: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowExpands: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        wildFuryWinLinesApi.IWinLinesPort = function() {}
        wildFuryWinLinesApi.IWinLinesPort.prototype = {

            showExpands: function(wild) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            show: function(outcome) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            getVisible: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineShow: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineShown: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getExpandsShown: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getExpandCompleted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineCyclePlayed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinPresent: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showIdleAnimation: function(payload) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            }
        };
        wildFuryWinLinesApi.WinLinesDeclaration = function() {};
        wildFuryWinLinesApi.WinLinesDeclaration = ck_implements(wildFuryWinLinesApi.WinLinesDeclaration, componentmodelComponentApi.IComponentDeclaration);
        wildFuryWinLinesApi.WinLinesDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        wildFuryWinLinesApi.WinLinesDeclaration.__name__ = ["wildFuryWinLinesApi", "WinLinesDeclaration"];
        wildFuryWinLinesApi.WinLinesDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        wildFuryWinLinesApi.WinLinesDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        wildFuryWinLinesApi.WinLinesDeclaration.prototype.getImplementedPorts = function() {
            return [wildFuryWinLinesApi.IWinLinesImplementationPort];
        };
        wildFuryWinLinesApi.WinLinesDeclaration.prototype.getUsedPorts = function() {
            return [slotModelApi.IOutcomePhasePort, gameLayoutApi.IGameLayoutPort];
        };
        wildFuryWinLinesApi.WinLinesDeclaration.prototype.__class__ = wildFuryWinLinesApi.WinLinesDeclaration;
        wildFuryWinLinesApi.WinLinesPort = function(bus) {
            this.showIdleAnimationTopic = new clientkernelEventbusApi.Topic("winlines:showIdleAnimation");
            this.expandsShown = new clientkernelEventbusApi.Topic("winlines:expandShown");
            this.showExpandCompletedTopic = new clientkernelEventbusApi.Topic("winlines:showExpandCompleted");
            this.showExpandsTopic = new clientkernelEventbusApi.Topic("winlines:showExpands");
            this.winPresent = new clientkernelEventbusApi.Topic("winlines:winPresent");
            this.winLineCyclePlayed = new clientkernelEventbusApi.Topic("winlines:winLineCyclePlayed");
            this.winLineShown = new clientkernelEventbusApi.Topic("winlines:winLineShown");
            this.winLineShow = new clientkernelEventbusApi.Topic("winlines:winLineShow");
            this.visible = new clientkernelEventbusApi.Topic("winlines:visible");
            this.hideOutcome = new clientkernelEventbusApi.Topic("winlines:hideOutcome");
            this.showOutcome = new clientkernelEventbusApi.Topic("winlines:showOutcome");
            this.showOutcome.connect(bus);
            this.hideOutcome.connect(bus);
            this.visible.connect(bus);
            this.winLineShow.connect(bus);
            this.winLineShown.connect(bus);
            this.winLineCyclePlayed.connect(bus);
            this.winPresent.connect(bus);
            this.showExpandsTopic.connect(bus);
            this.showExpandCompletedTopic.connect(bus);
            this.expandsShown.connect(bus);
            this.showIdleAnimationTopic.connect(bus);
        };
        wildFuryWinLinesApi.WinLinesPort = ck_implements(wildFuryWinLinesApi.WinLinesPort, wildFuryWinLinesApi.IWinLinesPort);
        wildFuryWinLinesApi.WinLinesPort = ck_implements(wildFuryWinLinesApi.WinLinesPort, wildFuryWinLinesApi.IWinLinesImplementationPort);
        wildFuryWinLinesApi.WinLinesPort.__interfaces__ = [wildFuryWinLinesApi.IWinLinesPort, wildFuryWinLinesApi.IWinLinesImplementationPort];
        wildFuryWinLinesApi.WinLinesPort.__name__ = ["wildFuryWinLinesApi", "WinLinesPort"];
        wildFuryWinLinesApi.WinLinesPort.prototype.showOutcome = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.hideOutcome = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.visible = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.winLineShow = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.winLineShown = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.winLineCyclePlayed = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.winPresent = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.showExpandsTopic = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.showExpandCompletedTopic = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.expandsShown = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.showIdleAnimationTopic = null;
        wildFuryWinLinesApi.WinLinesPort.prototype.showIdleAnimation = function(payload) {
            this.getShowIdleAnimation().publish(payload);
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.show = function(outcome) {
            this.getShowOutcome().publish(outcome);
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getShowOutcome = function() {
            return this.showOutcome;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.hide = function() {
            this.getHideOutcome().publish(null);
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getHideOutcome = function() {
            return this.hideOutcome;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getVisible = function() {
            return this.visible;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getWinLineShow = function() {
            return this.winLineShow;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getWinLineShown = function() {
            return this.winLineShown;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getWinLineCyclePlayed = function() {
            return this.winLineCyclePlayed;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getWinPresent = function() {
            return this.winPresent;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getShowExpands = function() {
            return this.showExpandsTopic;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getExpandCompleted = function() {
            return this.showExpandCompletedTopic;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getExpandsShown = function() {
            return this.expandsShown;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.getShowIdleAnimation = function() {
            return this.showIdleAnimationTopic;
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.showExpands = function(expands) {
            this.getShowExpands().publish(expands);
        };
        wildFuryWinLinesApi.WinLinesPort.prototype.__class__ = wildFuryWinLinesApi.WinLinesPort;
        wildFuryWinLinesApi.WinLinesPortFactory = function() {};
        wildFuryWinLinesApi.WinLinesPortFactory = ck_implements(wildFuryWinLinesApi.WinLinesPortFactory, componentmodelComponentApi.IPortFactory);
        wildFuryWinLinesApi.WinLinesPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        wildFuryWinLinesApi.WinLinesPortFactory.__name__ = ["wildFuryWinLinesApi", "WinLinesPortFactory"];
        wildFuryWinLinesApi.WinLinesPortFactory.prototype.provide = function(channel) {
            return new wildFuryWinLinesApi.WinLinesPort(channel);
        };
        wildFuryWinLinesApi.WinLinesPortFactory.prototype["use"] = function(channel) {
            return new wildFuryWinLinesApi.WinLinesPort(channel);
        };
        wildFuryWinLinesApi.WinLinesPortFactory.prototype.__class__ = wildFuryWinLinesApi.WinLinesPortFactory;
        return {
            exports: wildFuryWinLinesApi
        };
    });
//# sourceURL=wildFuryWinLinesApi.js