var config; if (typeof(require) === 'undefined') { /* XXX: Hack to work around r.js's stupid parsing. * We want to save the configuration in a variable so that we can reuse it in * tests/main.js. */ require = { config: function (c) { config = c; } }; } require.config({ baseUrl: '.', paths: { "backbone": "components/backbone/backbone", "backbone.browserStorage": "components/backbone.browserStorage/backbone.browserStorage", "backbone.overview": "components/backbone.overview/backbone.overview", "bootstrap": "components/bootstrap/dist/js/bootstrap", // XXX: Only required for https://conversejs.org website "bootstrapJS": "components/bootstrapJS/index", // XXX: Only required for https://conversejs.org website "converse-dependencies": "src/deps-website", "converse-templates": "src/templates", "eventemitter": "components/otr/build/dep/eventemitter", "jquery": "components/jquery/dist/jquery", "jquery-private": "src/jquery-private", "jquery.browser": "components/jquery.browser/dist/jquery.browser", "jquery.easing": "components/jquery-easing-original/index", // XXX: Only required for https://conversejs.org website "moment": "components/momentjs/min/moment.min", "strophe-base64": "components/strophejs/src/base64", "strophe-bosh": "components/strophejs/src/bosh", "strophe-core": "components/strophejs/src/core", "strophe": "components/strophejs/src/wrapper", "strophe-md5": "components/strophejs/src/md5", "strophe-sha1": "components/strophejs/src/sha1", "strophe-websocket": "components/strophejs/src/websocket", "strophe-polyfill": "components/strophejs/src/polyfills", "strophe.disco": "components/strophejs-plugins/disco/strophe.disco", "strophe.roster": "src/strophe.roster", "strophe.vcard": "src/strophe.vcard", "strophe.ping": "src/strophe.ping", "text": 'components/requirejs-text/text', "tpl": 'components/requirejs-tpl-jcbrand/tpl', "typeahead": "components/typeahead.js/index", "underscore": "components/underscore/underscore", "utils": "src/utils", // Off-the-record-encryption "bigint": "src/bigint", "crypto": "src/crypto", "crypto.aes": "components/otr/vendor/cryptojs/aes", "crypto.cipher-core": "components/otr/vendor/cryptojs/cipher-core", "crypto.core": "components/otr/vendor/cryptojs/core", "crypto.enc-base64": "components/otr/vendor/cryptojs/enc-base64", "crypto.evpkdf": "components/crypto-js-evanvosberg/src/evpkdf", "crypto.hmac": "components/otr/vendor/cryptojs/hmac", "crypto.md5": "components/crypto-js-evanvosberg/src/md5", "crypto.mode-ctr": "components/otr/vendor/cryptojs/mode-ctr", "crypto.pad-nopadding": "components/otr/vendor/cryptojs/pad-nopadding", "crypto.sha1": "components/otr/vendor/cryptojs/sha1", "crypto.sha256": "components/otr/vendor/cryptojs/sha256", "salsa20": "components/otr/build/dep/salsa20", "otr": "src/otr", // Locales paths "locales": "src/locales", "jed": "components/jed/jed", "af": "locale/af/LC_MESSAGES/converse.json", "de": "locale/de/LC_MESSAGES/converse.json", "en": "locale/en/LC_MESSAGES/converse.json", "es": "locale/es/LC_MESSAGES/converse.json", "fr": "locale/fr/LC_MESSAGES/converse.json", "he": "locale/he/LC_MESSAGES/converse.json", "hu": "locale/hu/LC_MESSAGES/converse.json", "id": "locale/id/LC_MESSAGES/converse.json", "it": "locale/it/LC_MESSAGES/converse.json", "ja": "locale/ja/LC_MESSAGES/converse.json", "nb": "locale/nb/LC_MESSAGES/converse.json", "nl": "locale/nl/LC_MESSAGES/converse.json", "pl": "locale/pl/LC_MESSAGES/converse.json", "pt_BR": "locale/pt_BR/LC_MESSAGES/converse.json", "ru": "locale/ru/LC_MESSAGES/converse.json", "uk": "locale/uk/LC_MESSAGES/converse.json", "zh": "locale/zh/LC_MESSAGES/converse.json", "moment_with_locales": "src/moment_locales", 'moment_af': "components/momentjs/locale/af", 'moment_de': "components/momentjs/locale/de", 'moment_es': "components/momentjs/locale/es", 'moment_fr': "components/momentjs/locale/fr", 'moment_he': "components/momentjs/locale/he", 'moment_hu': "components/momentjs/locale/hu", 'moment_id': "components/momentjs/locale/id", 'moment_it': "components/momentjs/locale/it", 'moment_ja': "components/momentjs/locale/ja", 'moment_nb': "components/momentjs/locale/nb", 'moment_nl': "components/momentjs/locale/nl", 'moment_pl': "components/momentjs/locale/pl", 'moment_pt-br': "components/momentjs/locale/pt-br", 'moment_ru': "components/momentjs/locale/ru", 'moment_uk': "components/momentjs/locale/uk", 'moment_zh': "components/momentjs/locale/zh-cn", // Templates "action": "src/templates/action", "add_contact_dropdown": "src/templates/add_contact_dropdown", "add_contact_form": "src/templates/add_contact_form", "change_status_message": "src/templates/change_status_message", "chat_status": "src/templates/chat_status", "chatarea": "src/templates/chatarea", "chatbox": "src/templates/chatbox", "chatroom": "src/templates/chatroom", "chatroom_password_form": "src/templates/chatroom_password_form", "chatroom_sidebar": "src/templates/chatroom_sidebar", "chatrooms_tab": "src/templates/chatrooms_tab", "chats_panel": "src/templates/chats_panel", "choose_status": "src/templates/choose_status", "contacts_panel": "src/templates/contacts_panel", "contacts_tab": "src/templates/contacts_tab", "controlbox": "src/templates/controlbox", "controlbox_toggle": "src/templates/controlbox_toggle", "field": "src/templates/field", "form_captcha": "src/templates/form_captcha", "form_checkbox": "src/templates/form_checkbox", "form_input": "src/templates/form_input", "form_select": "src/templates/form_select", "form_textarea": "src/templates/form_textarea", "form_username": "src/templates/form_username", "group_header": "src/templates/group_header", "info": "src/templates/info", "login_panel": "src/templates/login_panel", "login_tab": "src/templates/login_tab", "message": "src/templates/message", "new_day": "src/templates/new_day", "occupant": "src/templates/occupant", "pending_contact": "src/templates/pending_contact", "pending_contacts": "src/templates/pending_contacts", "register_panel": "src/templates/register_panel", "register_tab": "src/templates/register_tab", "registration_form": "src/templates/registration_form", "registration_request": "src/templates/registration_request", "requesting_contact": "src/templates/requesting_contact", "requesting_contacts": "src/templates/requesting_contacts", "room_description": "src/templates/room_description", "room_item": "src/templates/room_item", "room_panel": "src/templates/room_panel", "roster": "src/templates/roster", "roster_item": "src/templates/roster_item", "search_contact": "src/templates/search_contact", "select_option": "src/templates/select_option", "status_option": "src/templates/status_option", "toggle_chats": "src/templates/toggle_chats", "toolbar": "src/templates/toolbar", "trimmed_chat": "src/templates/trimmed_chat" }, map: { // '*' means all modules will get 'jquery-private' // for their 'jquery' dependency. '*': { 'jquery': 'jquery-private' }, // 'jquery-private' wants the real jQuery module // though. If this line was not here, there would // be an unresolvable cyclic dependency. 'jquery-private': { 'jquery': 'jquery' } }, tpl: { // Configuration for requirejs-tpl // Use Mustache style syntax for variable interpolation templateSettings: { evaluate : /\{\[([\s\S]+?)\]\}/g, interpolate : /\{\{([\s\S]+?)\}\}/g } }, // define module dependencies for modules not using define shim: { 'crypto.aes': { deps: ['crypto.cipher-core'] }, 'crypto.cipher-core': { deps: ['crypto.enc-base64', 'crypto.evpkdf'] }, 'crypto.enc-base64': { deps: ['crypto.core'] }, 'crypto.evpkdf': { deps: ['crypto.md5'] }, 'crypto.hmac': { deps: ['crypto.core'] }, 'crypto.md5': { deps: ['crypto.core'] }, 'crypto.mode-ctr': { deps: ['crypto.cipher-core'] }, 'crypto.pad-nopadding': { deps: ['crypto.cipher-core'] }, 'crypto.sha1': { deps: ['crypto.core'] }, 'crypto.sha256': { deps: ['crypto.core'] }, 'bigint': { deps: ['crypto'] }, 'strophe.disco': { deps: ['strophe'] }, 'strophe.register': { deps: ['strophe'] }, 'strophe.roster': { deps: ['strophe'] }, 'strophe.vcard': { deps: ['strophe'] }, 'strophe.ping': { deps: ['strophe'] } } }); if (typeof(require) === 'function') { require(["converse"], function(converse) { window.converse = converse; }); }