1
0

emojiEngine.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. "emojione_v4.5": {
  21. js: "emojione_v4.5.sprites.js",
  22. css: "emojione_v4.5.sprites.css",
  23. name: "Emojione v4.5"
  24. }
  25. };
  26. var
  27. /** @type {{js: string, css: string, name: string}} */
  28. DEFAULT_EMOJI_PROVIDER = EmojiProvider["emojione_v2_3"],
  29. /** @type {{js: string, css: string, name: string}} */
  30. CURRENT_EMOJI_PROVIDER;
  31. /**
  32. * @param {{js: string, css: string, name: string}} provider
  33. **/
  34. function setEmojiProvider(provider) {
  35. if (CURRENT_EMOJI_PROVIDER !== provider) {
  36. console.log("Loading emoji pack " +provider.name);
  37. HttpRequestWrapper(provider.js)
  38. .callbackSuccess(function(code, head, resp) {
  39. var script = document.createElement("script");
  40. script.innerHTML = resp;
  41. script.language = "text/javascript";
  42. document.body.appendChild(script);
  43. if (provider.css) {
  44. var link = document.createElement("link");
  45. link.href = provider.css;
  46. link.rel = "stylesheet";
  47. document.head.appendChild(link);
  48. }
  49. onEmojiReady();
  50. })
  51. .setTimeout(1000 * 60 * 1)
  52. .send();
  53. CURRENT_EMOJI_PROVIDER = provider;
  54. return true;
  55. }
  56. return false;
  57. }
  58. /** @param {string|undefined} providerId */
  59. function loadEmojiProvider(providerId) {
  60. return setEmojiProvider(providerId && EmojiProvider[providerId] ? EmojiProvider[providerId] : DEFAULT_EMOJI_PROVIDER);
  61. }
  62. function isValidEmojiProvider(providerId) {
  63. return !!EmojiProvider[providerId];
  64. }