define("tripleRedHotSevensIXFTutorialApi", ["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 tripleRedHotSevensIXFTutorialApi == 'undefined') {
            var tripleRedHotSevensIXFTutorialApi = {};
        };
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration = function() {};
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration = ck_implements(tripleRedHotSevensIXFTutorialApi.TutorialDeclaration, componentmodelComponentApi.IComponentDeclaration);
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.__name__ = ["tripleRedHotSevensIXFTutorialApi", "TutorialDeclaration"];
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.prototype.getImplementedPorts = function() {
            return [tripleRedHotSevensIXFTutorialApi.ITutorialImplementationPort];
        };
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.prototype.getUsedPorts = function() {
            return [tripleRedHotSevensIXFTutorialApi.ITutorialPort, gameLayoutApi.IGameLayoutPort];
        };
        tripleRedHotSevensIXFTutorialApi.TutorialDeclaration.prototype.__class__ = tripleRedHotSevensIXFTutorialApi.TutorialDeclaration;

        tripleRedHotSevensIXFTutorialApi.ITutorialImplementationPort = function() {}
        tripleRedHotSevensIXFTutorialApi.ITutorialImplementationPort.prototype = {

            getShow: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getPrevPageClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getNextPageClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            closeClicked: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            nextPageClicked: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            prevPageClicked: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            checkBoxChanged: function(value) {
                return {
                    arguments: ["boolean"],
                    returns: "void"
                };
            }
        };

        tripleRedHotSevensIXFTutorialApi.ITutorialPort = function() {}
        tripleRedHotSevensIXFTutorialApi.ITutorialPort.prototype = {

            show: function(page) {
                return {
                    arguments: [{
                        type: "number",
                        opt: true
                    }],
                    returns: "void"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            getCloseClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getPrevPageClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getNextPageClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCheckBoxChanged: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onCloseClicked: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onNextPageClicked: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onPrevPageClicked: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onCheckBoxChanged: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            }
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort = function(bus) {
            this.checkboxChangedTopic = new clientkernelEventbusApi.Topic("tutorial:checkboxChanged");
            this.nextPageClickedTopic = new clientkernelEventbusApi.Topic("tutorial:nextPage");
            this.prevPageClickedTopic = new clientkernelEventbusApi.Topic("tutorial:previousPage");
            this.closeClickedTopic = new clientkernelEventbusApi.Topic("tutorial:closed");
            this.hideTopic = new clientkernelEventbusApi.Topic("tutorial:hide");
            this.showTopic = new clientkernelEventbusApi.Topic("tutorial:show");
            this.showTopic.connect(bus);
            this.hideTopic.connect(bus);
            this.closeClickedTopic.connect(bus);
            this.prevPageClickedTopic.connect(bus);
            this.nextPageClickedTopic.connect(bus);
            this.checkboxChangedTopic.connect(bus);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort = ck_implements(tripleRedHotSevensIXFTutorialApi.TutorialPort, tripleRedHotSevensIXFTutorialApi.ITutorialPort);
        tripleRedHotSevensIXFTutorialApi.TutorialPort = ck_implements(tripleRedHotSevensIXFTutorialApi.TutorialPort, tripleRedHotSevensIXFTutorialApi.ITutorialImplementationPort);
        tripleRedHotSevensIXFTutorialApi.TutorialPort.__interfaces__ = [tripleRedHotSevensIXFTutorialApi.ITutorialPort, tripleRedHotSevensIXFTutorialApi.ITutorialImplementationPort];
        tripleRedHotSevensIXFTutorialApi.TutorialPort.__name__ = ["tripleRedHotSevensIXFTutorialApi", "TutorialPort"];
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.showTopic = null;
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.hideTopic = null;
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.closeClickedTopic = null;
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.prevPageClickedTopic = null;
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.nextPageClickedTopic = null;
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.checkboxChangedTopic = null;
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.show = function(page) {
            if (page == null) page = 0;
            this.showTopic.publish(page);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.getShow = function() {
            return this.showTopic;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.hide = function() {
            this.hideTopic.publish(null);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.getHide = function() {
            return this.hideTopic;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.closeClicked = function() {
            this.closeClickedTopic.publish(null);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.getCloseClicked = function() {
            return this.closeClickedTopic;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.onCloseClicked = function(callback) {
            return this.closeClickedTopic.subscribe(function(e) {
                callback();
            });
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.prevPageClicked = function() {
            this.prevPageClickedTopic.publish(null);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.getPrevPageClicked = function() {
            return this.prevPageClickedTopic;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.onPrevPageClicked = function(callback) {
            return this.prevPageClickedTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.nextPageClicked = function() {
            this.nextPageClickedTopic.publish(null);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.getNextPageClicked = function() {
            return this.nextPageClickedTopic;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.onNextPageClicked = function(callback) {
            return this.nextPageClickedTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.checkBoxChanged = function(value) {
            this.checkboxChangedTopic.publish(value);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.getCheckBoxChanged = function() {
            return this.checkboxChangedTopic;
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.onCheckBoxChanged = function(callback) {
            return this.checkboxChangedTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPort.prototype.__class__ = tripleRedHotSevensIXFTutorialApi.TutorialPort;
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory = function() {};
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory = ck_implements(tripleRedHotSevensIXFTutorialApi.TutorialPortFactory, componentmodelComponentApi.IPortFactory);
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory.__name__ = ["tripleRedHotSevensIXFTutorialApi", "TutorialPortFactory"];
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory.prototype.provide = function(channel) {
            return new tripleRedHotSevensIXFTutorialApi.TutorialPort(channel);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory.prototype["use"] = function(channel) {
            return new tripleRedHotSevensIXFTutorialApi.TutorialPort(channel);
        };
        tripleRedHotSevensIXFTutorialApi.TutorialPortFactory.prototype.__class__ = tripleRedHotSevensIXFTutorialApi.TutorialPortFactory;
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

        };
        return {
            exports: tripleRedHotSevensIXFTutorialApi
        };
    });