1
0

emojiEngine.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * @const
  3. **/
  4. var EmojiProvider = {
  5. "noemoji": {
  6. js: "noemoji.js",
  7. css: null,
  8. name: "None"
  9. },
  10. "emojione_v2_3": {
  11. js: "emojione_v2.3.sprites.js",
  12. css: "emojione_v2.3.sprites.css",
  13. name: "Emojione v2.3"
  14. },
  15. "emojione_v3": {
  16. js: "emojione_v3.sprites.js",
  17. css: "emojione_v3.sprites.css",
  18. name: "Emojione v3"
  19. }
  20. };
  21. var
  22. /** @type {{js: string, css: string, name: string}} */
  23. DEFAULT_EMOJI_PROVIDER = EmojiProvider["emojione_v2_3"],
  24. /** @type {{js: string, css: string, name: string}} */
  25. CURRENT_EMOJI_PROVIDER;
  26. /**
  27. * @param {{js: string, css: string, name: string}} provider
  28. **/
  29. function setEmojiProvider(provider) {
  30. if (CURRENT_EMOJI_PROVIDER !== provider) {
  31. console.log("Loading emoji pack " +provider.name);
  32. HttpRequestWrapper(provider.js)
  33. .callbackSuccess(function(code, head, resp) {
  34. var script = document.createElement("script");
  35. script.innerHTML = resp;
  36. script.language = "text/javascript";
  37. document.body.appendChild(script);
  38. if (provider.css) {
  39. var link = document.createElement("link");
  40. link.href = provider.css;
  41. link.rel = "stylesheet";
  42. document.head.appendChild(link);
  43. }
  44. onEmojiReady();
  45. })
  46. .setTimeout(1000 * 60 * 1)
  47. .send();
  48. CURRENT_EMOJI_PROVIDER = provider;
  49. return true;
  50. }
  51. return false;
  52. }
  53. /** @param {string|undefined} providerId */
  54. function loadEmojiProvider(providerId) {
  55. return setEmojiProvider(providerId && EmojiProvider[providerId] ? EmojiProvider[providerId] : DEFAULT_EMOJI_PROVIDER);
  56. }
  57. function isValidEmojiProvider(providerId) {
  58. return !!EmojiProvider[providerId];
  59. }