| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /**
- * @const
- **/
- var EmojiProvider = {
- "emojione_v2_3": {
- js: "emojione_v2.3.sprites.js",
- css: "emojione_v2.3.sprites.css",
- name: "Emojione v2.3"
- },
- "emojione_v3": {
- js: "emojione_v3.sprites.js",
- css: "emojione_v3.sprites.css",
- name: "Emojione v3"
- }
- };
- var
- /** @type {{js: string, css: string, name: string}} */
- DEFAULT_EMOJI_PROVIDER = EmojiProvider["emojione_v2_3"],
- /** @type {{js: string, css: string, name: string}} */
- CURRENT_EMOJI_PROVIDER;
- /**
- * @param {{js: string, css: string, name: string}} provider
- **/
- function setEmojiProvider(provider) {
- if (CURRENT_EMOJI_PROVIDER !== provider) {
- console.log("Loading emoji pack " +provider.name);
- var xhr = new XMLHttpRequest();
- xhr.timeout = 1000 * 60 * 1; // 3 min timeout
- xhr.onreadystatechange = function(e) {
- if (xhr.readyState === 4) {
- var script = document.createElement("script"),
- link = document.createElement("link");
- script.innerHTML = xhr.response;
- script.language = "text/javascript";
- link.href = provider.css;
- link.rel = "stylesheet";
- document.head.appendChild(link);
- document.body.appendChild(script);
- invalidateAllMessages();
- EMOJI_BAR.reset();
- }
- };
- xhr.open('GET', provider.js, true);
- xhr.send(null);
- CURRENT_EMOJI_PROVIDER = provider;
- }
- }
- /** @param {string|undefined} providerId */
- function loadEmojiProvider(providerId) {
- setEmojiProvider(providerId && EmojiProvider[providerId] ? EmojiProvider[providerId] : DEFAULT_EMOJI_PROVIDER);
- }
- function isValidEmojiProvider(providerId) {
- return !!EmojiProvider[providerId];
- }
|