define("paytableApi", ["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 haxe == 'undefined') {
            var haxe = {};
        };

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

        };
        if (typeof paytableApi == 'undefined') {
            var paytableApi = {};
        };
        paytableApi.PaytableDeclaration = function() {};
        paytableApi.PaytableDeclaration = ck_implements(paytableApi.PaytableDeclaration, componentmodelComponentApi.IComponentDeclaration);
        paytableApi.PaytableDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        paytableApi.PaytableDeclaration.__name__ = ["paytableApi", "PaytableDeclaration"];
        paytableApi.PaytableDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        paytableApi.PaytableDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        paytableApi.PaytableDeclaration.prototype.getImplementedPorts = function() {
            return [paytableApi.IPaytableImplementationPort];
        };
        paytableApi.PaytableDeclaration.prototype.getUsedPorts = function() {
            return [gameLayoutApi.IGameLayoutPort];
        };
        paytableApi.PaytableDeclaration.prototype.__class__ = paytableApi.PaytableDeclaration;

        paytableApi.IPaytableImplementationPort = function() {}
        paytableApi.IPaytableImplementationPort.prototype = {

            show: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setPreviousPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setNextPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            updateLabelContent: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onPageChanged: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onCloseButtonPressed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onPaytableCreated: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        paytableApi.IPaytablePort = function() {}
        paytableApi.IPaytablePort.prototype = {

            show: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setPreviousPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setNextPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            updateLabelContent: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onPageChanged: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onCloseButtonPressed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onPaytableCreated: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        paytableApi.PaytablePort = function(bus) {
            this.onPaytableCreatedTopic = new clientkernelEventbusApi.Topic("paytable:onPaytableCreated");
            this.onCloseButtonPressedTopic = new clientkernelEventbusApi.Topic("paytable:onCloseButtonPressed");
            this.onPageChangedTopic = new clientkernelEventbusApi.Topic("paytable:onPageChanged");
            this.updateLabelContentTopic = new clientkernelEventbusApi.Topic("paytable:updateTextLabel");
            this.setPreviousPageTopic = new clientkernelEventbusApi.Topic("paytable:setPreviousPage");
            this.setNextPageTopic = new clientkernelEventbusApi.Topic("paytable:setNextPage");
            this.hideTopic = new clientkernelEventbusApi.Topic("paytable:hide");
            this.showTopic = new clientkernelEventbusApi.Topic("paytable:show");
            this.showTopic.connect(bus);
            this.hideTopic.connect(bus);
            this.setNextPageTopic.connect(bus);
            this.setPreviousPageTopic.connect(bus);
            this.updateLabelContentTopic.connect(bus);
            this.onPageChangedTopic.connect(bus);
            this.onCloseButtonPressedTopic.connect(bus);
            this.onPaytableCreatedTopic.connect(bus);
        };
        paytableApi.PaytablePort = ck_implements(paytableApi.PaytablePort, paytableApi.IPaytablePort);
        paytableApi.PaytablePort = ck_implements(paytableApi.PaytablePort, paytableApi.IPaytableImplementationPort);
        paytableApi.PaytablePort.__interfaces__ = [paytableApi.IPaytablePort, paytableApi.IPaytableImplementationPort];
        paytableApi.PaytablePort.__name__ = ["paytableApi", "PaytablePort"];
        paytableApi.PaytablePort.prototype.showTopic = null;
        paytableApi.PaytablePort.prototype.hideTopic = null;
        paytableApi.PaytablePort.prototype.setNextPageTopic = null;
        paytableApi.PaytablePort.prototype.setPreviousPageTopic = null;
        paytableApi.PaytablePort.prototype.updateLabelContentTopic = null;
        paytableApi.PaytablePort.prototype.onPageChangedTopic = null;
        paytableApi.PaytablePort.prototype.onCloseButtonPressedTopic = null;
        paytableApi.PaytablePort.prototype.onPaytableCreatedTopic = null;
        paytableApi.PaytablePort.prototype.show = function() {
            return this.showTopic;
        };
        paytableApi.PaytablePort.prototype.hide = function() {
            return this.hideTopic;
        };
        paytableApi.PaytablePort.prototype.setPreviousPage = function() {
            return this.setPreviousPageTopic;
        };
        paytableApi.PaytablePort.prototype.setNextPage = function() {
            return this.setNextPageTopic;
        };
        paytableApi.PaytablePort.prototype.updateLabelContent = function() {
            return this.updateLabelContentTopic;
        };
        paytableApi.PaytablePort.prototype.onPageChanged = function() {
            return this.onPageChangedTopic;
        };
        paytableApi.PaytablePort.prototype.onCloseButtonPressed = function() {
            return this.onCloseButtonPressedTopic;
        };
        paytableApi.PaytablePort.prototype.onPaytableCreated = function() {
            return this.onPaytableCreatedTopic;
        };
        paytableApi.PaytablePort.prototype.__class__ = paytableApi.PaytablePort;
        paytableApi.PaytablePortFactory = function() {};
        paytableApi.PaytablePortFactory = ck_implements(paytableApi.PaytablePortFactory, componentmodelComponentApi.IPortFactory);
        paytableApi.PaytablePortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        paytableApi.PaytablePortFactory.__name__ = ["paytableApi", "PaytablePortFactory"];
        paytableApi.PaytablePortFactory.prototype.provide = function(channel) {
            return new paytableApi.PaytablePort(channel);
        };
        paytableApi.PaytablePortFactory.prototype["use"] = function(channel) {
            return new paytableApi.PaytablePort(channel);
        };
        paytableApi.PaytablePortFactory.prototype.__class__ = paytableApi.PaytablePortFactory;
        paytableApi.PaytableRTP = function(minRTP, maxRTP, singleRTP, minSingleRTP, maxSingleRTP) {
            this.minRTP = minRTP;
            this.maxRTP = maxRTP;
            this.singleRTP = singleRTP;
            this.minSingleRTP = minSingleRTP;
            this.maxSingleRTP = maxSingleRTP;
        };
        paytableApi.PaytableRTP.__name__ = ["paytableApi", "PaytableRTP"];
        paytableApi.PaytableRTP.prototype.singleRTP = null;
        paytableApi.PaytableRTP.prototype.minSingleRTP = null;
        paytableApi.PaytableRTP.prototype.maxSingleRTP = null;
        paytableApi.PaytableRTP.prototype.minRTP = null;
        paytableApi.PaytableRTP.prototype.maxRTP = null;
        paytableApi.PaytableRTP.prototype.__class__ = paytableApi.PaytableRTP;
        paytableApi.PaytableSummaryPayload = function(outcomes, awardCap, rtp) {
            this.outcomes = outcomes;
            this.awardCap = awardCap;
            this.rtp = rtp;
        };
        paytableApi.PaytableSummaryPayload.__name__ = ["paytableApi", "PaytableSummaryPayload"];
        paytableApi.PaytableSummaryPayload.prototype.outcomes = null;
        paytableApi.PaytableSummaryPayload.prototype.awardCap = null;
        paytableApi.PaytableSummaryPayload.prototype.rtp = null;
        paytableApi.PaytableSummaryPayload.prototype.__class__ = paytableApi.PaytableSummaryPayload;
        paytableApi.PaytableLabelContent = function(pageId, labelId, text, style) {
            this.pageId = pageId;
            this.labelId = labelId;
            this.text = text;
            this.style = style;
        };
        paytableApi.PaytableLabelContent.__name__ = ["paytableApi", "PaytableLabelContent"];
        paytableApi.PaytableLabelContent.prototype.pageId = null;
        paytableApi.PaytableLabelContent.prototype.labelId = null;
        paytableApi.PaytableLabelContent.prototype.text = null;
        paytableApi.PaytableLabelContent.prototype.style = null;
        paytableApi.PaytableLabelContent.prototype.__class__ = paytableApi.PaytableLabelContent;
        return {
            exports: paytableApi
        };
    });
//# sourceURL=slotPaytableApi.js