plugin.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. (function () {
  2. var emoticons = (function () {
  3. 'use strict';
  4. var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
  5. var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
  6. var emoticons = [
  7. [
  8. 'cool',
  9. 'cry',
  10. 'embarassed',
  11. 'foot-in-mouth'
  12. ],
  13. [
  14. 'frown',
  15. 'innocent',
  16. 'kiss',
  17. 'laughing'
  18. ],
  19. [
  20. 'money-mouth',
  21. 'sealed',
  22. 'smile',
  23. 'surprised'
  24. ],
  25. [
  26. 'tongue-out',
  27. 'undecided',
  28. 'wink',
  29. 'yell'
  30. ]
  31. ];
  32. var getHtml = function (pluginUrl) {
  33. var emoticonsHtml;
  34. emoticonsHtml = '<table role="list" class="mce-grid">';
  35. global$1.each(emoticons, function (row) {
  36. emoticonsHtml += '<tr>';
  37. global$1.each(row, function (icon) {
  38. var emoticonUrl = pluginUrl + '/img/smiley-' + icon + '.gif';
  39. emoticonsHtml += '<td><a href="#" data-mce-url="' + emoticonUrl + '" data-mce-alt="' + icon + '" tabindex="-1" ' + 'role="option" aria-label="' + icon + '"><img src="' + emoticonUrl + '" style="width: 18px; height: 18px" role="presentation" /></a></td>';
  40. });
  41. emoticonsHtml += '</tr>';
  42. });
  43. emoticonsHtml += '</table>';
  44. return emoticonsHtml;
  45. };
  46. var $_8fagskbajkmcwoef = { getHtml: getHtml };
  47. var insertEmoticon = function (editor, src, alt) {
  48. editor.insertContent(editor.dom.createHTML('img', {
  49. src: src,
  50. alt: alt
  51. }));
  52. };
  53. var register = function (editor, pluginUrl) {
  54. var panelHtml = $_8fagskbajkmcwoef.getHtml(pluginUrl);
  55. editor.addButton('emoticons', {
  56. type: 'panelbutton',
  57. panel: {
  58. role: 'application',
  59. autohide: true,
  60. html: panelHtml,
  61. onclick: function (e) {
  62. var linkElm = editor.dom.getParent(e.target, 'a');
  63. if (linkElm) {
  64. insertEmoticon(editor, linkElm.getAttribute('data-mce-url'), linkElm.getAttribute('data-mce-alt'));
  65. this.hide();
  66. }
  67. }
  68. },
  69. tooltip: 'Emoticons'
  70. });
  71. };
  72. var $_4b0j7mb9jkmcwoed = { register: register };
  73. global.add('emoticons', function (editor, pluginUrl) {
  74. $_4b0j7mb9jkmcwoed.register(editor, pluginUrl);
  75. });
  76. function Plugin () {
  77. }
  78. return Plugin;
  79. }());
  80. })();