(function (root, factory) { define(['converse', 'es6-promise', 'mock', 'wait-until-promise'], factory); }(this, function (converse_api, Promise, mock, waitUntilPromise) { var _ = converse_api.env._; var $ = converse_api.env.jQuery; var $pres = converse_api.env.$pres; var $iq = converse_api.env.$iq; var Strophe = converse_api.env.Strophe; var utils = {}; if (typeof window.Promise === 'undefined') { waitUntilPromise.setPromiseImplementation(Promise); } utils.waitUntil = waitUntilPromise['default']; utils.createRequest = function (iq) { iq = typeof iq.tree == "function" ? iq.tree() : iq; var req = new Strophe.Request(iq, function() {}); req.getResponse = function () { var env = new Strophe.Builder('env', {type: 'mock'}).tree(); env.appendChild(iq); return env; }; return req; }; utils.closeAllChatBoxes = function (converse) { var i, chatbox; for (i=converse.chatboxes.models.length-1; i>-1; i--) { chatbox = converse.chatboxes.models[i]; converse.chatboxviews.get(chatbox.get('id')).close(); } return this; }; utils.openControlBox = function () { var $toggle = $(".toggle-controlbox"); if (!$("#controlbox").is(':visible')) { if (!$toggle.is(':visible')) { $toggle[0].classList.remove('hidden'); $toggle.click(); } else { $toggle.click(); } } return this; }; utils.closeControlBox = function () { if ($("#controlbox").is(':visible')) { $("#controlbox").find(".close-chatbox-button").click(); } return this; }; utils.openContactsPanel = function (converse) { this.openControlBox(converse); var cbview = converse.chatboxviews.get('controlbox'); var $tabs = cbview.$el.find('#controlbox-tabs'); $tabs.find('li').first().find('a').click(); }; utils.openRoomsPanel = function (converse) { utils.openControlBox(); var cbview = converse.chatboxviews.get('controlbox'); var $tabs = cbview.$el.find('#controlbox-tabs'); $tabs.find('li').last().find('a').click(); }; utils.openChatBoxes = function (converse, amount) { var i = 0, jid, views = []; for (i; i