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

        pbWofExoticFarEastPickerApi.IPickerImplementationPort = function() {}
        pbWofExoticFarEastPickerApi.IPickerImplementationPort.prototype = {

            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getStop: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getStart: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getIdle: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getInitWheelStrips: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShow: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowStaticWheel: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHideStaticWheel: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWheelStopped: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWheelCoinsFlewAway: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            wheelPosition: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWheelStarted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getSpinBtnPressed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getActivateSpin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getDeactivateSpin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getUpdatePointers: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getPlayCashLinkAnimation: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        pbWofExoticFarEastPickerApi.IPickerPort = function() {}
        pbWofExoticFarEastPickerApi.IPickerPort.prototype = {

            initWheelStrips: function(values) {
                return {
                    arguments: ["array"],
                    returns: "void"
                };
            },
            show: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            setIdle: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            start: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            stop: function(data) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            getWheelStopped: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWheelCoinsFlewAway: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getWheelStarted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            activateSpin: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            deactivateSpin: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            onSpinPressed: function(calbackFunction) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            updatePointers: function(pointers) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            getShowStaticWheel: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHideStaticWheel: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            playCashLinkAnimation: function(values) {
                return {
                    arguments: ["array"],
                    returns: "void"
                };
            },
            wheelPosition: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        pbWofExoticFarEastPickerApi.PickerDeclaration = function() {};
        pbWofExoticFarEastPickerApi.PickerDeclaration = ck_implements(pbWofExoticFarEastPickerApi.PickerDeclaration, componentmodelComponentApi.IComponentDeclaration);
        pbWofExoticFarEastPickerApi.PickerDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        pbWofExoticFarEastPickerApi.PickerDeclaration.__name__ = ["pbWofExoticFarEastPickerApi", "PickerDeclaration"];
        pbWofExoticFarEastPickerApi.PickerDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        pbWofExoticFarEastPickerApi.PickerDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        pbWofExoticFarEastPickerApi.PickerDeclaration.prototype.getImplementedPorts = function() {
            return [pbWofExoticFarEastPickerApi.IPickerImplementationPort];
        };
        pbWofExoticFarEastPickerApi.PickerDeclaration.prototype.getUsedPorts = function() {
            return [pbWofExoticFarEastPickerApi.IPickerPort, gameLayoutApi.IGameLayoutPort];
        };
        pbWofExoticFarEastPickerApi.PickerDeclaration.prototype.__class__ = pbWofExoticFarEastPickerApi.PickerDeclaration;
        pbWofExoticFarEastPickerApi.PickerPortFactory = function() {};
        pbWofExoticFarEastPickerApi.PickerPortFactory = ck_implements(pbWofExoticFarEastPickerApi.PickerPortFactory, componentmodelComponentApi.IPortFactory);
        pbWofExoticFarEastPickerApi.PickerPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        pbWofExoticFarEastPickerApi.PickerPortFactory.__name__ = ["pbWofExoticFarEastPickerApi", "PickerPortFactory"];
        pbWofExoticFarEastPickerApi.PickerPortFactory.prototype.provide = function(channel) {
            return new pbWofExoticFarEastPickerApi.PickerPortImpl(channel);
        };
        pbWofExoticFarEastPickerApi.PickerPortFactory.prototype["use"] = function(channel) {
            return new pbWofExoticFarEastPickerApi.PickerPortImpl(channel);
        };
        pbWofExoticFarEastPickerApi.PickerPortFactory.prototype.__class__ = pbWofExoticFarEastPickerApi.PickerPortFactory;
        pbWofExoticFarEastPickerApi.PickerPortImpl = function(bus) {
            this.wheelPositionTopic = new clientkernelEventbusApi.Topic("Picker:wheelPosition");
            this.playCashLinkAnimationTopic = new clientkernelEventbusApi.Topic("Picker:playCashLinkAnimation");
            this.hideStaticWheelTopic = new clientkernelEventbusApi.Topic("Picker:hideStaticWheel");
            this.showStaticWheelTopic = new clientkernelEventbusApi.Topic("Picker:showStaticWheel");
            this.updatePointersTopic = new clientkernelEventbusApi.Topic("Picker:updatePointersTopic");
            this.spinBtnPressedTopic = new clientkernelEventbusApi.Topic("Picker:spinBtnPressedTopic");
            this.deactivateSpinTopic = new clientkernelEventbusApi.Topic("Picker:deactivateSpin");
            this.activateSpinTopic = new clientkernelEventbusApi.Topic("Picker:activateSpin");
            this.idleTopic = new clientkernelEventbusApi.Topic("Picker:idle");
            this.showTopic = new clientkernelEventbusApi.Topic("Picker:show");
            this.initWheelStripsTopic = new clientkernelEventbusApi.Topic("Picker:initWheelStrips");
            this.wheelStartedTopic = new clientkernelEventbusApi.Topic("Picker:wheelStarted");
            this.wheelCoinsFlewAwayTopic = new clientkernelEventbusApi.Topic("Picker:wheelCoinsFlewAway");
            this.wheelStoppedTopic = new clientkernelEventbusApi.Topic("Picker:wheelStopped");
            this.hideTopic = new clientkernelEventbusApi.Topic("Picker:hide");
            this.availablePickAutoTestTopic = new clientkernelEventbusApi.Topic("multipicker:availablePicks");
            this.startWheelTopic = new clientkernelEventbusApi.Topic("multipicker:choice");
            this.stopWheelTopic = new clientkernelEventbusApi.Topic("Picker:stopWheel");
            this.stopWheelTopic.connect(bus);
            this.hideTopic.connect(bus);
            this.showTopic.connect(bus);
            this.initWheelStripsTopic.connect(bus);
            this.idleTopic.connect(bus);
            this.wheelStoppedTopic.connect(bus);
            this.wheelCoinsFlewAwayTopic.connect(bus);
            this.wheelStartedTopic.connect(bus);
            this.activateSpinTopic.connect(bus);
            this.deactivateSpinTopic.connect(bus);
            this.startWheelTopic.connect(bus);
            this.availablePickAutoTestTopic.connect(bus);
            this.spinBtnPressedTopic.connect(bus);
            this.updatePointersTopic.connect(bus);
            this.showStaticWheelTopic.connect(bus);
            this.hideStaticWheelTopic.connect(bus);
            this.playCashLinkAnimationTopic.connect(bus);
            this.wheelPositionTopic.connect(bus);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl = ck_implements(pbWofExoticFarEastPickerApi.PickerPortImpl, pbWofExoticFarEastPickerApi.IPickerPort);
        pbWofExoticFarEastPickerApi.PickerPortImpl = ck_implements(pbWofExoticFarEastPickerApi.PickerPortImpl, pbWofExoticFarEastPickerApi.IPickerImplementationPort);
        pbWofExoticFarEastPickerApi.PickerPortImpl.__interfaces__ = [pbWofExoticFarEastPickerApi.IPickerPort, pbWofExoticFarEastPickerApi.IPickerImplementationPort];
        pbWofExoticFarEastPickerApi.PickerPortImpl.__name__ = ["pbWofExoticFarEastPickerApi", "PickerPortImpl"];
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.stopWheelTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.startWheelTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.availablePickAutoTestTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.hideTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.wheelStoppedTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.wheelCoinsFlewAwayTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.wheelStartedTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.initWheelStripsTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.showTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.idleTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.activateSpinTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.deactivateSpinTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.spinBtnPressedTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.updatePointersTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.showStaticWheelTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.hideStaticWheelTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.playCashLinkAnimationTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.wheelPositionTopic = null;
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.show = function() {
            this.publishAvailablePicksForAutoTest();
            this.getShow().publish(null);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.initWheelStrips = function(payload) {
            this.getInitWheelStrips().publish(payload);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.playCashLinkAnimation = function(payload) {
            this.getPlayCashLinkAnimation().publish(payload);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.updatePointers = function(payload) {
            this.getUpdatePointers().publish(payload);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.publishAvailablePicksForAutoTest = function() {
            this.availablePickAutoTestTopic.publish({
                'instanceId': "",
                'availablePicks': {
                    'h': {
                        '1': true
                    }
                }
            });
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.setIdle = function() {
            this.getIdle().publish(null);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.stop = function(payload) {
            this.getStop().publish(payload);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.start = function() {
            this.getStart().publish({
                'instanceId': "",
                'playerChoice': 1
            });
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.hide = function() {
            this.getHide().publish(null);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.activateSpin = function() {
            this.getActivateSpin().publish(null);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.onSpinPressed = function(calbackFunction) {
            this.getSpinBtnPressed().subscribe(function(callback) {
                calbackFunction();
            });
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.deactivateSpin = function() {
            this.getDeactivateSpin().publish(null);
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getStop = function() {
            return this.stopWheelTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getStart = function() {
            return this.startWheelTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getShow = function() {
            return this.showTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getShowStaticWheel = function() {
            return this.showStaticWheelTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getHideStaticWheel = function() {
            return this.hideStaticWheelTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getInitWheelStrips = function() {
            return this.initWheelStripsTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getUpdatePointers = function() {
            return this.updatePointersTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getIdle = function() {
            return this.idleTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getHide = function() {
            return this.hideTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getWheelStopped = function() {
            return this.wheelStoppedTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getWheelCoinsFlewAway = function() {
            return this.wheelCoinsFlewAwayTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getWheelStarted = function() {
            return this.wheelStartedTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getActivateSpin = function() {
            return this.activateSpinTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getSpinBtnPressed = function() {
            return this.spinBtnPressedTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getDeactivateSpin = function() {
            return this.deactivateSpinTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.getPlayCashLinkAnimation = function() {
            return this.playCashLinkAnimationTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.wheelPosition = function() {
            return this.wheelPositionTopic;
        };
        pbWofExoticFarEastPickerApi.PickerPortImpl.prototype.__class__ = pbWofExoticFarEastPickerApi.PickerPortImpl;
        pbWofExoticFarEastPickerApi.PickerTypeEnum = {
            __ename__: ["pbWofExoticFarEastPickerApi", "PickerTypeEnum"],
            __constructs__: ["wheel", "static_wheel"]
        };
        pbWofExoticFarEastPickerApi.PickerTypeEnum.static_wheel = ["static_wheel", 1];
        pbWofExoticFarEastPickerApi.PickerTypeEnum.static_wheel.toString = $estr;
        pbWofExoticFarEastPickerApi.PickerTypeEnum.static_wheel.__enum__ = pbWofExoticFarEastPickerApi.PickerTypeEnum;
        pbWofExoticFarEastPickerApi.PickerTypeEnum.wheel = ["wheel", 0];
        pbWofExoticFarEastPickerApi.PickerTypeEnum.wheel.toString = $estr;
        pbWofExoticFarEastPickerApi.PickerTypeEnum.wheel.__enum__ = pbWofExoticFarEastPickerApi.PickerTypeEnum;
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

        };
        return {
            exports: pbWofExoticFarEastPickerApi
        };
    });
//# sourceURL=pbWofExoticFarEastPickerApi.js