define("icyWildsWinLinesPort", ["componentmodelComponentApi", "slotModelApi", "reelsApi", "gameLayoutApi", "clientkernelEventbusApi"],
    function(componentmodelComponentApi, slotModelApi, reelsApi, 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 icyWildsWinLinesPort == 'undefined') {
            var icyWildsWinLinesPort = {};
        };

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

            getAddToStage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowOutcome: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHandleLandingSymbols: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHideOutcome: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineCycleAnimated: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinSymbolsCreated: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCurrentWin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setVisible: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

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

            getAddToStage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowOutcome: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHandleLandingSymbols: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHideOutcome: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinLineCycleAnimated: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWinSymbolsCreated: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCurrentWin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setVisible: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        icyWildsWinLinesPort.WinLinesDeclaration = function() {};
        icyWildsWinLinesPort.WinLinesDeclaration = ck_implements(icyWildsWinLinesPort.WinLinesDeclaration, componentmodelComponentApi.IComponentDeclaration);
        icyWildsWinLinesPort.WinLinesDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        icyWildsWinLinesPort.WinLinesDeclaration.__name__ = ["icyWildsWinLinesPort", "WinLinesDeclaration"];
        icyWildsWinLinesPort.WinLinesDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        icyWildsWinLinesPort.WinLinesDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        icyWildsWinLinesPort.WinLinesDeclaration.prototype.getImplementedPorts = function() {
            return [icyWildsWinLinesPort.IWinLinesImplementationPort];
        };
        icyWildsWinLinesPort.WinLinesDeclaration.prototype.getUsedPorts = function() {
            return [slotModelApi.IOutcomePhasePort, reelsApi.IReelsPort, gameLayoutApi.IGameLayoutPort];
        };
        icyWildsWinLinesPort.WinLinesDeclaration.prototype.__class__ = icyWildsWinLinesPort.WinLinesDeclaration;
        icyWildsWinLinesPort.WinLinesPort = function(bus) {
            this.win = new clientkernelEventbusApi.Topic("winlines:currentWinLine");
            this.winSymbolsCreated = new clientkernelEventbusApi.Topic("winlines:winSymbolsCreated");
            this.winLineCycleAnimated = new clientkernelEventbusApi.Topic("winlines:winLineCycleAnimated");
            this._setVisible = new clientkernelEventbusApi.Topic("winlines:setVisible");
            this.hideOutcome = new clientkernelEventbusApi.Topic("winlines:hideOutcome");
            this.showLandingSymbols = new clientkernelEventbusApi.Topic("winlines:showLandingSymbols");
            this.showOutcome = new clientkernelEventbusApi.Topic("winlines:showOutcome");
            this.addToStage = new clientkernelEventbusApi.Topic("winlines:addToStage");
            this.addToStage.connect(bus);
            this.showOutcome.connect(bus);
            this.showLandingSymbols.connect(bus);
            this.hideOutcome.connect(bus);
            this.winLineCycleAnimated.connect(bus);
            this.winSymbolsCreated.connect(bus);
            this.win.connect(bus);
            this._setVisible.connect(bus);
        };
        icyWildsWinLinesPort.WinLinesPort = ck_implements(icyWildsWinLinesPort.WinLinesPort, icyWildsWinLinesPort.IWinLinesPort);
        icyWildsWinLinesPort.WinLinesPort = ck_implements(icyWildsWinLinesPort.WinLinesPort, icyWildsWinLinesPort.IWinLinesImplementationPort);
        icyWildsWinLinesPort.WinLinesPort.__interfaces__ = [icyWildsWinLinesPort.IWinLinesPort, icyWildsWinLinesPort.IWinLinesImplementationPort];
        icyWildsWinLinesPort.WinLinesPort.__name__ = ["icyWildsWinLinesPort", "WinLinesPort"];
        icyWildsWinLinesPort.WinLinesPort.prototype.addToStage = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.showOutcome = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.showLandingSymbols = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.hideOutcome = null;
        icyWildsWinLinesPort.WinLinesPort.prototype._setVisible = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.winLineCycleAnimated = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.winSymbolsCreated = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.win = null;
        icyWildsWinLinesPort.WinLinesPort.prototype.getAddToStage = function() {
            return this.addToStage;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.getShowOutcome = function() {
            return this.showOutcome;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.getHandleLandingSymbols = function() {
            return this.showLandingSymbols;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.getHideOutcome = function() {
            return this.hideOutcome;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.getWinLineCycleAnimated = function() {
            return this.winLineCycleAnimated;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.getWinSymbolsCreated = function() {
            return this.winSymbolsCreated;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.getCurrentWin = function() {
            return this.win;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.setVisible = function() {
            return this._setVisible;
        };
        icyWildsWinLinesPort.WinLinesPort.prototype.__class__ = icyWildsWinLinesPort.WinLinesPort;
        icyWildsWinLinesPort.WinLinesPortFactory = function() {};
        icyWildsWinLinesPort.WinLinesPortFactory = ck_implements(icyWildsWinLinesPort.WinLinesPortFactory, componentmodelComponentApi.IPortFactory);
        icyWildsWinLinesPort.WinLinesPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        icyWildsWinLinesPort.WinLinesPortFactory.__name__ = ["icyWildsWinLinesPort", "WinLinesPortFactory"];
        icyWildsWinLinesPort.WinLinesPortFactory.prototype.provide = function(channel) {
            return new icyWildsWinLinesPort.WinLinesPort(channel);
        };
        icyWildsWinLinesPort.WinLinesPortFactory.prototype["use"] = function(channel) {
            return new icyWildsWinLinesPort.WinLinesPort(channel);
        };
        icyWildsWinLinesPort.WinLinesPortFactory.prototype.__class__ = icyWildsWinLinesPort.WinLinesPortFactory;
        icyWildsWinLinesPort.ShowOutcomeOptions = function(lineTime, spinOutcome, loop, landingSymbols, rgPresentation) {
            this.lineTime = lineTime;
            this.spinOutcome = spinOutcome;
            this.loop = loop;
            this.rgPresentation = rgPresentation;
            this.landingSymbols = landingSymbols;
        };
        icyWildsWinLinesPort.ShowOutcomeOptions.__name__ = ["icyWildsWinLinesPort", "ShowOutcomeOptions"];
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.reelStopped = null;
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.lineTime = null;
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.loop = null;
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.spinOutcome = null;
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.landingSymbols = null;
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.rgPresentation = null;
        icyWildsWinLinesPort.ShowOutcomeOptions.prototype.__class__ = icyWildsWinLinesPort.ShowOutcomeOptions;
        icyWildsWinLinesPort.StagePayload = function(stageId, x, y, zIndex, scale) {
            if (scale == null) scale = 1;
            this.stageId = stageId;
            this.x = x;
            this.y = y;
            this.zIndex = zIndex;
            this.scale = scale;
        };
        icyWildsWinLinesPort.StagePayload.__name__ = ["icyWildsWinLinesPort", "StagePayload"];
        icyWildsWinLinesPort.StagePayload.prototype.stageId = null;
        icyWildsWinLinesPort.StagePayload.prototype.zIndex = null;
        icyWildsWinLinesPort.StagePayload.prototype.x = null;
        icyWildsWinLinesPort.StagePayload.prototype.y = null;
        icyWildsWinLinesPort.StagePayload.prototype.scale = null;
        icyWildsWinLinesPort.StagePayload.prototype.__class__ = icyWildsWinLinesPort.StagePayload;
        return {
            exports: icyWildsWinLinesPort
        };
    });
//# sourceURL=icyWildsWinLinesPort.js