emojione.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /* jshint sub: true */
  2. window['makeEmoji'] = function(name) {
  3. var emoji,
  4. emojiName;
  5. if (typeof(name) === "string") {
  6. for (var i =0, nbEmojis = emojis.length; i < nbEmojis && !emoji; i++) {
  7. var emojiNames = emojis[i]["names"];
  8. for (var j=0, nbEmojiName = emojiNames.length ;j < nbEmojiName && !emoji; j++)
  9. if (emojiNames[j] === name)
  10. emoji = emojis[i];
  11. emojiName = name;
  12. }
  13. } else {
  14. emoji = name;
  15. emojiName = emoji["names"][0];
  16. }
  17. if(emoji) {
  18. var dom = document.createElement("span");
  19. dom.className="emoji emojione emojione-" +emoji["unicode"];
  20. dom.textContent = ':' +emojiName +':';
  21. dom.title = emojiName;
  22. return dom;
  23. }
  24. return null;
  25. };
  26. window['emojiProviderHeader']="emojione.logo.svg";
  27. window['searchEmojis'] = function(queryString, nameOnly) {
  28. var result = {},
  29. queryLength = queryString.length;
  30. lp: for (var emojiIndex =0, nbEmojis = emojis.length; emojiIndex < nbEmojis; emojiIndex++) {
  31. var currentEmoji = emojis[emojiIndex];
  32. for (var nameIndex =0, nbNames = currentEmoji["names"].length; nameIndex < nbNames; nameIndex++) {
  33. if(currentEmoji["names"][nameIndex].substr(0, queryLength) === queryString) {
  34. result[currentEmoji["names"][0]] = currentEmoji;
  35. continue lp;
  36. }
  37. }
  38. if (nameOnly)
  39. for (var keywordIndex =0, nbKeywords = currentEmoji["keywords"].length; keywordIndex < nbKeywords; keywordIndex++) {
  40. if(currentEmoji["keywords"][keywordIndex].substr(0, queryLength) === queryString) {
  41. result[currentEmoji["names"][0]] = currentEmoji;
  42. break;
  43. }
  44. }
  45. }
  46. return result;
  47. };