activeadmin_trumbowyg 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -5
  3. data/Rakefile +11 -0
  4. data/app/assets/fonts/trumbowyg/icons.svg +1 -1
  5. data/app/assets/javascripts/activeadmin/trumbowyg/langs/az.js +63 -0
  6. data/app/assets/javascripts/activeadmin/trumbowyg/langs/az.min.js +9 -0
  7. data/app/assets/javascripts/activeadmin/trumbowyg/langs/ca.js +30 -13
  8. data/app/assets/javascripts/activeadmin/trumbowyg/langs/ca.min.js +8 -5
  9. data/app/assets/javascripts/activeadmin/trumbowyg/langs/cs.js +11 -2
  10. data/app/assets/javascripts/activeadmin/trumbowyg/langs/cs.min.js +1 -1
  11. data/app/assets/javascripts/activeadmin/trumbowyg/langs/da.js +1 -1
  12. data/app/assets/javascripts/activeadmin/trumbowyg/langs/de.js +11 -2
  13. data/app/assets/javascripts/activeadmin/trumbowyg/langs/de.min.js +3 -3
  14. data/app/assets/javascripts/activeadmin/trumbowyg/langs/es_ar.js +1 -1
  15. data/app/assets/javascripts/activeadmin/trumbowyg/langs/et.js +7 -7
  16. data/app/assets/javascripts/activeadmin/trumbowyg/langs/fa.js +1 -1
  17. data/app/assets/javascripts/activeadmin/trumbowyg/langs/fi.js +1 -1
  18. data/app/assets/javascripts/activeadmin/trumbowyg/langs/fr.js +3 -0
  19. data/app/assets/javascripts/activeadmin/trumbowyg/langs/fr.min.js +1 -1
  20. data/app/assets/javascripts/activeadmin/trumbowyg/langs/he.js +1 -1
  21. data/app/assets/javascripts/activeadmin/trumbowyg/langs/hu.js +3 -0
  22. data/app/assets/javascripts/activeadmin/trumbowyg/langs/hu.min.js +1 -1
  23. data/app/assets/javascripts/activeadmin/trumbowyg/langs/id.js +1 -1
  24. data/app/assets/javascripts/activeadmin/trumbowyg/langs/it.js +4 -1
  25. data/app/assets/javascripts/activeadmin/trumbowyg/langs/it.min.js +1 -1
  26. data/app/assets/javascripts/activeadmin/trumbowyg/langs/lt.js +1 -1
  27. data/app/assets/javascripts/activeadmin/trumbowyg/langs/mn.js +39 -39
  28. data/app/assets/javascripts/activeadmin/trumbowyg/langs/{no_nb.js → nb.js} +22 -8
  29. data/app/assets/javascripts/activeadmin/trumbowyg/langs/nb.min.js +15 -0
  30. data/app/assets/javascripts/activeadmin/trumbowyg/langs/pl.js +1 -1
  31. data/app/assets/javascripts/activeadmin/trumbowyg/langs/pt.js +2 -2
  32. data/app/assets/javascripts/activeadmin/trumbowyg/langs/pt_br.js +2 -2
  33. data/app/assets/javascripts/activeadmin/trumbowyg/langs/rs.js +1 -1
  34. data/app/assets/javascripts/activeadmin/trumbowyg/langs/rs_latin.js +1 -1
  35. data/app/assets/javascripts/activeadmin/trumbowyg/langs/sl.js +10 -6
  36. data/app/assets/javascripts/activeadmin/trumbowyg/langs/sl.min.js +2 -1
  37. data/app/assets/javascripts/activeadmin/trumbowyg/langs/sq.js +2 -2
  38. data/app/assets/javascripts/activeadmin/trumbowyg/langs/sv.js +1 -0
  39. data/app/assets/javascripts/activeadmin/trumbowyg/langs/sv.min.js +1 -1
  40. data/app/assets/javascripts/activeadmin/trumbowyg/langs/th.js +33 -33
  41. data/app/assets/javascripts/activeadmin/trumbowyg/langs/tr.js +5 -3
  42. data/app/assets/javascripts/activeadmin/trumbowyg/langs/tr.min.js +1 -1
  43. data/app/assets/javascripts/activeadmin/trumbowyg/langs/zh_cn.js +1 -1
  44. data/app/assets/javascripts/activeadmin/trumbowyg/langs/zh_tw.js +1 -1
  45. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.min.js +11 -0
  46. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.js +28 -1
  47. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.min.js +8 -1
  48. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js +11 -0
  49. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.js +39 -2
  50. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.min.js +10 -1
  51. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/sass/trumbowyg.colors.scss +3 -3
  52. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.css +45 -40
  53. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css +1 -1
  54. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.js +916 -848
  55. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js +9 -1
  56. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/sass/trumbowyg.emoji.scss +3 -3
  57. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css +23 -18
  58. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css +1 -1
  59. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.js +22 -7
  60. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.min.js +1 -1
  61. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontsize/trumbowyg.fontsize.js +100 -8
  62. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontsize/trumbowyg.fontsize.min.js +1 -1
  63. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/trumbowyg.giphy.js +251 -172
  64. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/trumbowyg.giphy.min.js +1 -1
  65. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/ui/sass/trumbowyg.giphy.scss +17 -16
  66. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/ui/trumbowyg.giphy.css +60 -47
  67. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/ui/trumbowyg.giphy.min.css +2 -2
  68. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/trumbowyg.highlight.js +24 -4
  69. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/trumbowyg.highlight.min.js +1 -1
  70. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/ui/sass/trumbowyg.highlight.scss +12 -12
  71. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/ui/trumbowyg.highlight.css +13 -10
  72. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/ui/trumbowyg.highlight.min.css +2 -2
  73. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/history/trumbowyg.history.js +6 -61
  74. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/history/trumbowyg.history.min.js +8 -1
  75. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/indent/trumbowyg.indent.js +31 -2
  76. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/indent/trumbowyg.indent.min.js +9 -1
  77. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js +18 -0
  78. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js +8 -1
  79. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/lineheight/trumbowyg.lineheight.js +50 -5
  80. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/lineheight/trumbowyg.lineheight.min.js +1 -1
  81. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/trumbowyg.mathml.js +97 -50
  82. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/trumbowyg.mathml.min.js +8 -1
  83. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/ui/sass/trumbowyg.mathml.scss +31 -26
  84. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.css +29 -21
  85. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.min.css +2 -2
  86. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/trumbowyg.mention.js +12 -0
  87. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/trumbowyg.mention.min.js +10 -1
  88. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/ui/sass/trumbowyg.mention.scss +3 -3
  89. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/ui/trumbowyg.mention.css +16 -17
  90. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/ui/trumbowyg.mention.min.css +2 -2
  91. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.js +51 -20
  92. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js +8 -1
  93. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.js +36 -53
  94. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.min.js +10 -1
  95. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js +9 -0
  96. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js +12 -0
  97. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js +8 -1
  98. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/resizimg/trumbowyg.resizimg.min.js +3 -1
  99. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/ruby/trumbowyg.ruby.js +20 -0
  100. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/ruby/trumbowyg.ruby.min.js +10 -1
  101. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/trumbowyg.specialchars.js +18 -0
  102. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/trumbowyg.specialchars.min.js +8 -1
  103. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/ui/sass/trumbowyg.specialchars.scss +3 -3
  104. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/ui/trumbowyg.specialchars.css +25 -19
  105. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/ui/trumbowyg.specialchars.min.css +1 -1
  106. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/speechrecognition/trumbowyg.speechrecognition.js +198 -0
  107. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/speechrecognition/trumbowyg.speechrecognition.min.js +11 -0
  108. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/trumbowyg.table.js +1436 -158
  109. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/trumbowyg.table.min.js +11 -1
  110. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/ui/sass/trumbowyg.table.scss +157 -32
  111. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/ui/trumbowyg.table.css +143 -22
  112. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/ui/trumbowyg.table.min.css +2 -2
  113. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/template/trumbowyg.template.js +9 -0
  114. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/template/trumbowyg.template.min.js +1 -1
  115. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/trumbowyg.tenor.js +319 -0
  116. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/trumbowyg.tenor.min.js +1 -0
  117. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/ui/sass/trumbowyg.tenor.scss +124 -0
  118. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/ui/trumbowyg.tenor.css +119 -0
  119. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/ui/trumbowyg.tenor.min.css +2 -0
  120. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.js +119 -76
  121. data/app/assets/javascripts/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.min.js +13 -1
  122. data/app/assets/javascripts/activeadmin/trumbowyg/trumbowyg.js +126 -80
  123. data/app/assets/javascripts/activeadmin/trumbowyg/trumbowyg.min.js +2 -12
  124. data/app/assets/stylesheets/activeadmin/_trumbowyg_input.scss +3 -1
  125. data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.css +776 -0
  126. data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.min.css +3 -0
  127. data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.min.css.map +1 -0
  128. data/lib/activeadmin/trumbowyg/version.rb +1 -1
  129. data/lib/tasks/trumbowyg.rake +2 -2
  130. metadata +23 -26
  131. data/app/assets/javascripts/activeadmin/trumbowyg/langs/no_nb.min.js +0 -10
  132. data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.scss +0 -836
@@ -0,0 +1,319 @@
1
+ // adapted from giphy plugin
2
+ /* global AbortController: true */
3
+ (function ($) {
4
+ 'use strict';
5
+
6
+ $.extend(true, $.trumbowyg, {
7
+ langs: {
8
+ // jshint camelcase:false
9
+ en: {
10
+ tenor: 'Insert GIF'
11
+ },
12
+ az: {
13
+ tenor: 'GIF yerləşdir'
14
+ },
15
+ by: {
16
+ tenor: 'Уставіць GIF'
17
+ },
18
+ de: {
19
+ tenor: 'GIF einfügen'
20
+ },
21
+ et: {
22
+ tenor: 'Sisesta GIF'
23
+ },
24
+ fr: {
25
+ tenor: 'Insérer un GIF'
26
+ },
27
+ hu: {
28
+ tenor: 'GIF beszúrás'
29
+ },
30
+ ru: {
31
+ tenor: 'Вставить GIF'
32
+ },
33
+ sl: {
34
+ tenor: 'Vstavi GIF'
35
+ },
36
+ tr: {
37
+ tenor: 'GIF ekle'
38
+ }
39
+ // jshint camelcase:true
40
+ }
41
+ });
42
+
43
+ var tenorLogo = '<svg viewBox="0 0 1584 447" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="M314.8 295.7c2.4 18 7.6 34.1 16.8 48.6 21.6 34.1 53 50.3 93.2 50 33-.2 61.3-12.2 85.7-34.2 12.8-11.6 30.8-9.4 39.8 4.5 6.5 10 5.2 22.1-3.8 31.1-27.3 27.3-59.8 44.3-98.3 49-25.2 3.1-50.3 2.5-74.8-5.1-55.8-17.3-92.9-54.3-109.4-109.9-19.3-65.3-9-126 36.5-178.2 30.9-35.3 70.9-52.1 118-51.3 40.6.7 76 14.5 104.5 44 23.7 24.5 36.8 54.4 42.8 87.6 2.3 12.6 3.3 25.4 3.9 38.2.7 14.1-10.3 25.1-24.4 25.8-2 .1-4 0-6 0H321.9c-2-.1-4.1-.1-7.1-.1zM510 245.4c-1.5-13-5.2-25-10.1-36.7-29.2-68.7-105.1-70.5-144.1-37-20.5 17.6-32.6 40.1-38.6 66.1-.6 2.4-.8 4.8-1.3 7.6H510zM970.4 271.3c.1-88.4 68.6-171.5 173.4-171.3 97.7.1 172.6 75.8 172.4 174.2-.2 96.7-76.6 172.1-174.5 172.2-94.3 0-171.5-78.8-171.3-175.1zm286.6 4.6c-.5-34.3-10.4-62.9-32.1-87.1-44.3-49.5-125.2-47.6-167.7 3.4-35.4 42.5-37.9 117.5 3.2 163.7 36.6 41.2 102.4 49.7 147.2 17.7 34.1-24.4 48.4-58.9 49.4-97.7zM683.5 148.6c6.3-6 11.4-11.1 16.7-15.9 25.6-23.4 56.2-33 90.3-32.7 26.9.3 52.2 6.3 74.6 21.9 27.8 19.4 42.9 46.9 48.8 79.6 1.9 10.6 2.9 21.5 3 32.3.3 61.2.1 122.3.1 183.5 0 11.7-7.4 22.8-18.3 26.8-11.4 4.2-22.1 2.5-30.9-6.3-6.2-6.1-8.9-13.8-8.9-22.6.1-56.7.3-113.3-.2-170-.1-11.2-1.7-22.7-4.4-33.5-8.5-33.1-32.2-53.2-66.1-57.1-24.1-2.8-47 1-67.1 15.6-26.7 19.4-37.4 47-37.5 79-.2 55.8 0 111.7-.1 167.5 0 21.4-20.8 35.3-40.6 27.2-10.5-4.3-17.6-15.7-17.6-28.5v-286c0-11.3 5.2-19.9 14.8-25.5 9.9-5.8 20.2-5.5 29.9.6 8.3 5.3 13.3 13 13.5 23.2.1 6.6 0 13 0 20.9zM124.9 106.8h78.5c10.8 0 19.6 3.5 25.2 13.2 9.3 16.3-.2 36-18.8 38.8-2.9.4-6 .5-9 .5h-75.9v184.1c0 12 1.9 23.5 10 33.3 6.6 8 15.5 11.4 25.2 12.9 14.5 2.3 28.9 1.1 43-3.3 13.4-4.3 26.6 1.7 31.1 14.2 4.6 12.7-1.9 25.2-14.3 31.2-16.8 8.2-34.4 11.8-53 12.8-48.2 2.4-91.5-32.6-98.8-80.4-1-6.2-1.3-12.6-1.3-18.9-.1-59.5-.1-119-.1-178.5v-6.9c-2.2-.1-4-.3-5.7-.3-11 0-22 .2-33-.1-18-.5-29.6-14-26.9-31 1.9-12 12.8-21 26.5-21.4 10.8-.3 21.7-.1 32.5-.1 6.6 0 6.6 0 6.6-6.9V30.5c0-17 12.3-30 28.7-30.2 16.4-.2 29.3 12.9 29.4 30.1.1 23.3 0 46.7 0 70 .1 1.9.1 3.9.1 6.4zM1432.4 170.1c8.6-9.8 16.2-19.5 25-28.1 20.1-19.6 43.7-33.3 71.5-38.8 8.4-1.7 17.2-2.1 25.8-1.7 16.3.9 28.5 14.5 28.5 30.5 0 15.8-12.4 29.2-28.5 30.7-11.9 1.1-24 1.3-35.7 3.8-32.1 6.9-54.8 26.3-69.4 55.4-12.8 25.4-17.1 52.8-17.2 80.9-.2 37.5 0 75 0 112.5 0 17.4-12.8 30.9-29.3 30.8-16.6-.1-29.1-13-29.1-30.4V128.8c0-13 9.2-24.8 21.6-27.9 13.6-3.4 26.8 2.2 32.7 14.7 2.3 4.8 3.6 10.4 3.8 15.8.6 11.1.2 22.3.2 33.5.1 1.7.1 3.3.1 5.2z"/></g></svg>'; // jshint ignore:line
44
+
45
+ var CANCEL_EVENT = 'tbwcancel';
46
+ var nextCursor = null;
47
+
48
+ // Throttle helper
49
+ function trumbowygThrottle(callback, delay) {
50
+ var last;
51
+ var timer;
52
+
53
+ return function () {
54
+ var context = this;
55
+ var now = new Date().getTime();
56
+ var args = arguments;
57
+
58
+ if (last && now < last + delay) {
59
+ clearTimeout(timer);
60
+ timer = setTimeout(function () {
61
+ last = now;
62
+ callback.apply(context, args);
63
+ }, delay);
64
+ } else {
65
+ last = now;
66
+ callback.apply(context, args);
67
+ }
68
+ };
69
+ }
70
+
71
+ function registerGifClickEventInModal(trumbowyg, $tenorModal) {
72
+ $tenorModal.on('click', 'img', function () {
73
+ var src = $(this).attr('data-full'),
74
+ alt = $(this).attr('alt');
75
+ trumbowyg.restoreRange();
76
+ trumbowyg.execCmd('insertImage', src, false, true);
77
+
78
+ // relay alt tag into inserted image
79
+ if (alt) {
80
+ var $img = $('img[src="' + src + '"]:not([alt])', trumbowyg.$box);
81
+ $img.attr('alt', alt);
82
+ // Note: This seems to fire relatively early and could be wrapped in a setTimeout if needed
83
+ trumbowyg.syncCode();
84
+ }
85
+ $tenorModal.off('click', 'img');
86
+ trumbowyg.closeModal();
87
+ });
88
+ }
89
+
90
+ // Fills modal with response gifs
91
+ function renderGifs(response, $tenorModal, trumbowyg, mustEmpty) {
92
+ var $tenorLoading = $tenorModal.siblings('.' + trumbowyg.o.prefix + 'tenor-loading');
93
+ var modalWidth = $tenorModal.width();
94
+ var gapBetweenImages = 10;
95
+ var imagesPerRow = 3;
96
+ var imageWidth = (modalWidth - (gapBetweenImages * (imagesPerRow + 1))) / imagesPerRow;
97
+
98
+ nextCursor = response.next;
99
+ var columnHeights = Array(imagesPerRow).fill(gapBetweenImages);
100
+
101
+ if (!mustEmpty) {
102
+ columnHeights = $tenorModal.data('columnHeights') || columnHeights;
103
+ }
104
+
105
+ var html = response.results
106
+ .map(function (gifData) {
107
+ // jshint camelcase:false
108
+ var image = gifData.media_formats.tinygif,
109
+ imageRatio = image.dims[1] / image.dims[0],
110
+ altText = gifData.content_description;
111
+
112
+ var full_size = gifData.media_formats.gif.url;
113
+
114
+ var imgHtml = '<img src=' + image.url + ' width="' + imageWidth + '" height="' + imageRatio * imageWidth + '" alt="' + altText + '" loading="lazy" data-full="' + full_size + '" />';
115
+
116
+ var minHeight = Math.min(...columnHeights);
117
+ var columnIndex = columnHeights.indexOf(minHeight);
118
+ var top = columnHeights[columnIndex];
119
+ var left = gapBetweenImages + (columnIndex * (imageWidth + gapBetweenImages));
120
+
121
+ columnHeights[columnIndex] += imageRatio * imageWidth + gapBetweenImages;
122
+
123
+ var divHtml = '<div class="img-container" style="position:absolute; top:' + top + 'px; left:' + left + 'px;">' + imgHtml + '</div>';
124
+ return divHtml;
125
+ })
126
+ .join('');
127
+
128
+ if (mustEmpty === true) {
129
+ if (html.length === 0) {
130
+ if ($('.' + trumbowyg.o.prefix + 'tenor-no-result', $tenorModal).length > 0) {
131
+ return;
132
+ }
133
+
134
+ html = '<img class="' + trumbowyg.o.prefix + 'tenor-no-result" src="' + trumbowyg.o.plugins.tenor.noResultGifUrl + '"/>';
135
+ }
136
+
137
+ $tenorModal.empty();
138
+ }
139
+ $tenorModal.append(html);
140
+
141
+ if (!nextCursor || nextCursor.length === 0) {
142
+ $tenorLoading.hide();
143
+ } else {
144
+ $tenorLoading.show();
145
+ }
146
+
147
+ // Remove gray overlay on image load
148
+ // moved here from inline callback definition due to CSP issue
149
+ // Note: this is being done post-factum because load event doesn't bubble up and so can't be delegated
150
+ var addLoadedClass = function (img) {
151
+ img.classList.add('tbw-loaded');
152
+ };
153
+ $('img', $tenorModal).each(function () {
154
+ var img = this;
155
+ if (img.complete) { // images load instantly when cached and esp. when loaded in previous modal open
156
+ addLoadedClass(img);
157
+ return;
158
+ }
159
+
160
+ img.addEventListener('load', function () {
161
+ addLoadedClass(this);
162
+ });
163
+ });
164
+
165
+ $tenorModal.data('columnHeights', columnHeights);
166
+
167
+ var maxHeight = Math.max(...columnHeights);
168
+ $tenorModal.css({
169
+ position: 'relative',
170
+ height: maxHeight,
171
+ });
172
+ }
173
+
174
+ var defaultOptions = {
175
+ apiKey: null,
176
+ locale: 'en_US',
177
+ contentFilter: 'off',
178
+ throttleDelay: 300,
179
+ noResultGifUrl: 'https://media1.tenor.com/m/KOZLvzU0o4kAAAAC/no-results.gif'
180
+ };
181
+
182
+ // Add dropdown with font sizes
183
+ $.extend(true, $.trumbowyg, {
184
+ plugins: {
185
+ tenor: {
186
+ init: function (trumbowyg) {
187
+ trumbowyg.o.plugins.tenor = $.extend({},
188
+ defaultOptions,
189
+ trumbowyg.o.plugins.tenor || {}
190
+ );
191
+
192
+ trumbowyg.addBtnDef('tenor', {
193
+ fn: function () {
194
+ if (trumbowyg.o.plugins.tenor.apiKey === null) {
195
+ throw new Error('You must set a Tenor API Key');
196
+ }
197
+
198
+ var BASE_URL = 'https://g.tenor.com/v2/search?ar_range=all&media_filter=gif,tinygif&limit=10&key=' +
199
+ trumbowyg.o.plugins.tenor.apiKey +
200
+ '&locale=' + trumbowyg.o.plugins.tenor.locale +
201
+ '&contentfilter=' + trumbowyg.o.plugins.tenor.contentFilter;
202
+
203
+ var DEFAULT_URL = BASE_URL.replace('/search', '/featured');
204
+ var prefix = trumbowyg.o.prefix;
205
+ var abortController = new AbortController();
206
+
207
+ // Create and open the modal
208
+ var searchInput = '<input name="" class="' + prefix + 'tenor-search" placeholder="Search a GIF" autofocus="autofocus">',
209
+ closeButton = '<button class="' + prefix + 'tenor-close" title="' + trumbowyg.lang.close + '"><svg><use xlink:href="' + trumbowyg.svgPath + '#' + prefix + 'close"/></svg></button>',
210
+ poweredByTenor = '<div class="' + prefix + 'powered-by-tenor"><span>Powered by</span>' + tenorLogo + '</div>',
211
+ tenorModalHtml = searchInput + closeButton + poweredByTenor + '<div class="' + prefix + 'tenor-modal-scroll"><div class="' + prefix + 'tenor-modal"></div><p class="' + prefix + 'tenor-loading"><img src="https://media.tenor.com/YtAOA9y7VG0AAAAM/loading.gif"> Loading more gifs...</p></div>';
212
+
213
+ trumbowyg
214
+ .openModal(null, tenorModalHtml, false)
215
+ .one(CANCEL_EVENT, function () {
216
+ try {
217
+ abortController.abort();
218
+ abortController = new AbortController();
219
+ } catch (e) {
220
+ }
221
+
222
+ trumbowyg.closeModal();
223
+ });
224
+
225
+ var $tenorInput = $('.' + prefix + 'tenor-search'),
226
+ $tenorClose = $('.' + prefix + 'tenor-close'),
227
+ $tenorModal = $('.' + prefix + 'tenor-modal'),
228
+ $tenorModalScroll = $('.' + prefix + 'tenor-modal-scroll');
229
+
230
+ var onError = function () {
231
+ if (navigator.onLine || $('.' + prefix + 'tenor-offline', $tenorModal).length) {
232
+ return;
233
+ }
234
+
235
+ $tenorModal.empty();
236
+ $tenorModal.append('<p class="' + prefix + 'tenor-offline">You are offline</p>');
237
+ };
238
+
239
+ registerGifClickEventInModal(trumbowyg, $tenorModal);
240
+
241
+ // Load trending gifs as default
242
+ fetch(DEFAULT_URL, {
243
+ method: 'GET',
244
+ cache: 'no-cache',
245
+ signal: abortController.signal
246
+ }).then((response) => {
247
+ response.json().then((responseJson) => {
248
+ renderGifs(responseJson, $tenorModal, trumbowyg, true);
249
+ });
250
+ }).catch(() => {
251
+ onError();
252
+ });
253
+
254
+ var searchGifsOnInput = function () {
255
+ var query = $tenorInput.val();
256
+
257
+ if (query.length === 0) {
258
+ return;
259
+ }
260
+
261
+ try {
262
+ abortController.abort();
263
+ abortController = new AbortController();
264
+ } catch (e) {
265
+ }
266
+
267
+ $tenorModalScroll.scrollTop(0);
268
+ fetch(BASE_URL + '&q=' + encodeURIComponent(query), {
269
+ method: 'GET',
270
+ cache: 'no-cache',
271
+ signal: abortController.signal
272
+ }).then((response) => {
273
+ response.json().then((responseJson) => {
274
+ renderGifs(responseJson, $tenorModal, trumbowyg, true);
275
+ });
276
+ }).catch(() => {
277
+ onError();
278
+ });
279
+ };
280
+ var throttledInputRequest = trumbowygThrottle(searchGifsOnInput, trumbowyg.o.plugins.tenor.throttleDelay);
281
+
282
+ $tenorInput.on('input', throttledInputRequest);
283
+ $tenorInput.focus();
284
+
285
+ $tenorClose.one('click', function () {
286
+ $tenorModal.trigger(CANCEL_EVENT);
287
+ });
288
+
289
+ var throttledQuery = trumbowygThrottle(function () {
290
+ if ($tenorModalScroll.scrollTop() + $tenorModalScroll.innerHeight() >= $tenorModalScroll[0].scrollHeight - 100) {
291
+ if (nextCursor) {
292
+ var query = $tenorInput.val();
293
+ var url = query.length === 0 ? DEFAULT_URL : BASE_URL + '&q=' + encodeURIComponent(query);
294
+ url += '&pos=' + nextCursor;
295
+
296
+ fetch(url, {
297
+ method: 'GET',
298
+ cache: 'no-cache',
299
+ signal: abortController.signal
300
+ }).then((response) => {
301
+ response.json().then((responseJson) => {
302
+ renderGifs(responseJson, $tenorModal, trumbowyg, false);
303
+ });
304
+ }).catch(() => {
305
+ onError();
306
+ });
307
+ }
308
+ }
309
+ }, 500);
310
+
311
+ // Infinite scrolling
312
+ $tenorModalScroll.on('scroll', throttledQuery);
313
+ }
314
+ });
315
+ }
316
+ }
317
+ }
318
+ });
319
+ })(jQuery);
@@ -0,0 +1 @@
1
+ !function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{tenor:"Insert GIF"},az:{tenor:"GIF yerləşdir"},by:{tenor:"Уставіць GIF"},de:{tenor:"GIF einfügen"},et:{tenor:"Sisesta GIF"},fr:{tenor:"Insérer un GIF"},hu:{tenor:"GIF beszúrás"},ru:{tenor:"Вставить GIF"},sl:{tenor:"Vstavi GIF"},tr:{tenor:"GIF ekle"}}});var t="tbwcancel",n=null;function o(e,t){var n,o;return function(){var r=this,i=(new Date).getTime(),l=arguments;n&&i<n+t?(clearTimeout(o),o=setTimeout((function(){n=i,e.apply(r,l)}),t)):(n=i,e.apply(r,l))}}function r(t,o,r,i){var l=o.siblings("."+r.o.prefix+"tenor-loading"),a=o.width(),s=(a-40)/3;n=t.next;var c=Array(3).fill(10);i||(c=o.data("columnHeights")||c);var u=t.results.map((function(e){var t=e.media_formats.tinygif,n=t.dims[1]/t.dims[0],o=e.content_description,r=e.media_formats.gif.url,i="<img src="+t.url+' width="'+s+'" height="'+n*s+'" alt="'+o+'" loading="lazy" data-full="'+r+'" />',l=Math.min(...c),a=c.indexOf(l),u=c[a],g=10+a*(s+10);return c[a]+=n*s+10,'<div class="img-container" style="position:absolute; top:'+u+"px; left:"+g+'px;">'+i+"</div>"})).join("");if(!0===i){if(0===u.length){if(e("."+r.o.prefix+"tenor-no-result",o).length>0)return;u='<img class="'+r.o.prefix+'tenor-no-result" src="'+r.o.plugins.tenor.noResultGifUrl+'"/>'}o.empty()}o.append(u),n&&0!==n.length?l.show():l.hide();var g=function(e){e.classList.add("tbw-loaded")};e("img",o).each((function(){var e=this;e.complete?g(e):e.addEventListener("load",(function(){g(this)}))})),o.data("columnHeights",c);var f=Math.max(...c);o.css({position:"relative",height:f})}var i={apiKey:null,locale:"en_US",contentFilter:"off",throttleDelay:300,noResultGifUrl:"https://media1.tenor.com/m/KOZLvzU0o4kAAAAC/no-results.gif"};e.extend(!0,e.trumbowyg,{plugins:{tenor:{init:function(l){l.o.plugins.tenor=e.extend({},i,l.o.plugins.tenor||{}),l.addBtnDef("tenor",{fn:function(){if(null===l.o.plugins.tenor.apiKey)throw new Error("You must set a Tenor API Key");var i="https://g.tenor.com/v2/search?ar_range=all&media_filter=gif,tinygif&limit=10&key="+l.o.plugins.tenor.apiKey+"&locale="+l.o.plugins.tenor.locale+"&contentfilter="+l.o.plugins.tenor.contentFilter,a=i.replace("/search","/featured"),s=l.o.prefix,c=new AbortController,u='<input name="" class="'+s+'tenor-search" placeholder="Search a GIF" autofocus="autofocus">'+('<button class="'+s+'tenor-close" title="'+l.lang.close+'"><svg><use xlink:href="'+l.svgPath+"#"+s+'close"/></svg></button>')+('<div class="'+s+'powered-by-tenor"><span>Powered by</span><svg viewBox="0 0 1584 447" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="M314.8 295.7c2.4 18 7.6 34.1 16.8 48.6 21.6 34.1 53 50.3 93.2 50 33-.2 61.3-12.2 85.7-34.2 12.8-11.6 30.8-9.4 39.8 4.5 6.5 10 5.2 22.1-3.8 31.1-27.3 27.3-59.8 44.3-98.3 49-25.2 3.1-50.3 2.5-74.8-5.1-55.8-17.3-92.9-54.3-109.4-109.9-19.3-65.3-9-126 36.5-178.2 30.9-35.3 70.9-52.1 118-51.3 40.6.7 76 14.5 104.5 44 23.7 24.5 36.8 54.4 42.8 87.6 2.3 12.6 3.3 25.4 3.9 38.2.7 14.1-10.3 25.1-24.4 25.8-2 .1-4 0-6 0H321.9c-2-.1-4.1-.1-7.1-.1zM510 245.4c-1.5-13-5.2-25-10.1-36.7-29.2-68.7-105.1-70.5-144.1-37-20.5 17.6-32.6 40.1-38.6 66.1-.6 2.4-.8 4.8-1.3 7.6H510zM970.4 271.3c.1-88.4 68.6-171.5 173.4-171.3 97.7.1 172.6 75.8 172.4 174.2-.2 96.7-76.6 172.1-174.5 172.2-94.3 0-171.5-78.8-171.3-175.1zm286.6 4.6c-.5-34.3-10.4-62.9-32.1-87.1-44.3-49.5-125.2-47.6-167.7 3.4-35.4 42.5-37.9 117.5 3.2 163.7 36.6 41.2 102.4 49.7 147.2 17.7 34.1-24.4 48.4-58.9 49.4-97.7zM683.5 148.6c6.3-6 11.4-11.1 16.7-15.9 25.6-23.4 56.2-33 90.3-32.7 26.9.3 52.2 6.3 74.6 21.9 27.8 19.4 42.9 46.9 48.8 79.6 1.9 10.6 2.9 21.5 3 32.3.3 61.2.1 122.3.1 183.5 0 11.7-7.4 22.8-18.3 26.8-11.4 4.2-22.1 2.5-30.9-6.3-6.2-6.1-8.9-13.8-8.9-22.6.1-56.7.3-113.3-.2-170-.1-11.2-1.7-22.7-4.4-33.5-8.5-33.1-32.2-53.2-66.1-57.1-24.1-2.8-47 1-67.1 15.6-26.7 19.4-37.4 47-37.5 79-.2 55.8 0 111.7-.1 167.5 0 21.4-20.8 35.3-40.6 27.2-10.5-4.3-17.6-15.7-17.6-28.5v-286c0-11.3 5.2-19.9 14.8-25.5 9.9-5.8 20.2-5.5 29.9.6 8.3 5.3 13.3 13 13.5 23.2.1 6.6 0 13 0 20.9zM124.9 106.8h78.5c10.8 0 19.6 3.5 25.2 13.2 9.3 16.3-.2 36-18.8 38.8-2.9.4-6 .5-9 .5h-75.9v184.1c0 12 1.9 23.5 10 33.3 6.6 8 15.5 11.4 25.2 12.9 14.5 2.3 28.9 1.1 43-3.3 13.4-4.3 26.6 1.7 31.1 14.2 4.6 12.7-1.9 25.2-14.3 31.2-16.8 8.2-34.4 11.8-53 12.8-48.2 2.4-91.5-32.6-98.8-80.4-1-6.2-1.3-12.6-1.3-18.9-.1-59.5-.1-119-.1-178.5v-6.9c-2.2-.1-4-.3-5.7-.3-11 0-22 .2-33-.1-18-.5-29.6-14-26.9-31 1.9-12 12.8-21 26.5-21.4 10.8-.3 21.7-.1 32.5-.1 6.6 0 6.6 0 6.6-6.9V30.5c0-17 12.3-30 28.7-30.2 16.4-.2 29.3 12.9 29.4 30.1.1 23.3 0 46.7 0 70 .1 1.9.1 3.9.1 6.4zM1432.4 170.1c8.6-9.8 16.2-19.5 25-28.1 20.1-19.6 43.7-33.3 71.5-38.8 8.4-1.7 17.2-2.1 25.8-1.7 16.3.9 28.5 14.5 28.5 30.5 0 15.8-12.4 29.2-28.5 30.7-11.9 1.1-24 1.3-35.7 3.8-32.1 6.9-54.8 26.3-69.4 55.4-12.8 25.4-17.1 52.8-17.2 80.9-.2 37.5 0 75 0 112.5 0 17.4-12.8 30.9-29.3 30.8-16.6-.1-29.1-13-29.1-30.4V128.8c0-13 9.2-24.8 21.6-27.9 13.6-3.4 26.8 2.2 32.7 14.7 2.3 4.8 3.6 10.4 3.8 15.8.6 11.1.2 22.3.2 33.5.1 1.7.1 3.3.1 5.2z"/></g></svg></div>')+'<div class="'+s+'tenor-modal-scroll"><div class="'+s+'tenor-modal"></div><p class="'+s+'tenor-loading"><img src="https://media.tenor.com/YtAOA9y7VG0AAAAM/loading.gif"> Loading more gifs...</p></div>';l.openModal(null,u,!1).one(t,(function(){try{c.abort(),c=new AbortController}catch(e){}l.closeModal()}));var g=e("."+s+"tenor-search"),f=e("."+s+"tenor-close"),h=e("."+s+"tenor-modal"),d=e("."+s+"tenor-modal-scroll"),p=function(){navigator.onLine||e("."+s+"tenor-offline",h).length||(h.empty(),h.append('<p class="'+s+'tenor-offline">You are offline</p>'))};!function(t,n){n.on("click","img",(function(){var o=e(this).attr("data-full"),r=e(this).attr("alt");t.restoreRange(),t.execCmd("insertImage",o,!1,!0),r&&(e('img[src="'+o+'"]:not([alt])',t.$box).attr("alt",r),t.syncCode()),n.off("click","img"),t.closeModal()}))}(l,h),fetch(a,{method:"GET",cache:"no-cache",signal:c.signal}).then((e=>{e.json().then((e=>{r(e,h,l,!0)}))})).catch((()=>{p()}));var m=o((function(){var e=g.val();if(0!==e.length){try{c.abort(),c=new AbortController}catch(e){}d.scrollTop(0),fetch(i+"&q="+encodeURIComponent(e),{method:"GET",cache:"no-cache",signal:c.signal}).then((e=>{e.json().then((e=>{r(e,h,l,!0)}))})).catch((()=>{p()}))}}),l.o.plugins.tenor.throttleDelay);g.on("input",m),g.focus(),f.one("click",(function(){h.trigger(t)}));var v=o((function(){if(d.scrollTop()+d.innerHeight()>=d[0].scrollHeight-100&&n){var e=g.val(),t=0===e.length?a:i+"&q="+encodeURIComponent(e);fetch(t+="&pos="+n,{method:"GET",cache:"no-cache",signal:c.signal}).then((e=>{e.json().then((e=>{r(e,h,l,!1)}))})).catch((()=>{p()}))}}),500);d.on("scroll",v)}})}}}})}(jQuery);
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Trumbowyg v2.31.0 - A lightweight WYSIWYG editor
3
+ * Trumbowyg plugin stylesheet
4
+ * ------------------------
5
+ * @link https://alex-d.github.io/Trumbowyg/
6
+ * @license MIT
7
+ * @author Alexandre Demode (Alex-D)
8
+ * Twitter : @AlexandreDemode
9
+ * Website : alex-d.fr
10
+ */
11
+
12
+ // Adapted from giphy plugin
13
+
14
+ .trumbowyg-tenor-button svg {
15
+ transform: scale(1.22);
16
+ }
17
+
18
+ .trumbowyg-tenor-search {
19
+ display: block;
20
+ width: 80%;
21
+ margin: 5%;
22
+ padding-left: 10px;
23
+ padding-right: 150px;
24
+ }
25
+
26
+ .trumbowyg-tenor-close {
27
+ position: absolute;
28
+ top: calc(5% + 8px);
29
+ right: calc(5% - 2px);
30
+ width: 30px;
31
+ height: 30px;
32
+ background: none;
33
+ border: 1px solid transparent;
34
+
35
+ &:hover,
36
+ &:focus {
37
+ outline: none;
38
+ background: #ecf0f1;
39
+ }
40
+
41
+ &:focus {
42
+ border-color: rgba(0, 0, 0, 0.3);
43
+ }
44
+ }
45
+
46
+ .trumbowyg-powered-by-tenor {
47
+ position: absolute;
48
+ top: calc(5% + 11px);
49
+ right: calc(15% + 5px);
50
+ pointer-events: none;
51
+ user-select: none;
52
+
53
+ span {
54
+ text-transform: uppercase;
55
+ font-weight: bold;
56
+ font-size: 10px;
57
+ opacity: 0.6;
58
+ }
59
+
60
+ svg {
61
+ width: 66px;
62
+ height: 15px;
63
+ vertical-align: middle;
64
+ margin-left: 6px;
65
+ opacity: 0.45;
66
+ }
67
+ }
68
+
69
+ .trumbowyg-tenor-modal-scroll {
70
+ overflow: auto;
71
+ overflow-x: hidden;
72
+ height: 240px;
73
+
74
+ .trumbowyg-tenor-loading {
75
+ display: none;
76
+ padding: 20px;
77
+
78
+ img {
79
+ height: 25px;
80
+ }
81
+ }
82
+ }
83
+
84
+ .trumbowyg-tenor-modal {
85
+ display: flex;
86
+ flex-wrap: wrap;
87
+ justify-content: center;
88
+ margin: 0 3%;
89
+
90
+ .trumbowyg-tenor-no-result {
91
+ width: 100%;
92
+ margin: 0 3%;
93
+ }
94
+
95
+ .trumbowyg-tenor-offline {
96
+ font-size: 18px;
97
+ width: 305%;
98
+ height: 600px;
99
+ margin-top: 95px;
100
+ text-align: center;
101
+ }
102
+ }
103
+
104
+ .trumbowyg-tenor-modal .img-container {
105
+ margin-bottom: 10px;
106
+ background-color: #ecf0f1;
107
+
108
+ img {
109
+ width: 100%;
110
+ cursor: pointer;
111
+ opacity: 0;
112
+ transition: opacity 150ms;
113
+ display: block;
114
+
115
+ &:hover,
116
+ &:focus {
117
+ border: #2ecc71 solid 3px;
118
+ }
119
+ }
120
+
121
+ img.tbw-loaded {
122
+ opacity: 1;
123
+ }
124
+ }
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Trumbowyg v2.31.0 - A lightweight WYSIWYG editor
3
+ * Trumbowyg plugin stylesheet
4
+ * ------------------------
5
+ * @link https://alex-d.github.io/Trumbowyg/
6
+ * @license MIT
7
+ * @author Alexandre Demode (Alex-D)
8
+ * Twitter : @AlexandreDemode
9
+ * Website : alex-d.fr
10
+ */
11
+
12
+ .trumbowyg-tenor-button svg {
13
+ -webkit-transform: scale(1.22);
14
+ transform: scale(1.22);
15
+ }
16
+
17
+ .trumbowyg-tenor-search {
18
+ display: block;
19
+ width: 80%;
20
+ margin: 5%;
21
+ padding-left: 10px;
22
+ padding-right: 150px;
23
+ }
24
+
25
+ .trumbowyg-tenor-close {
26
+ position: absolute;
27
+ top: calc(5% + 8px);
28
+ right: calc(5% - 2px);
29
+ width: 30px;
30
+ height: 30px;
31
+ background: none;
32
+ border: 1px solid transparent;
33
+ }
34
+ .trumbowyg-tenor-close:hover, .trumbowyg-tenor-close:focus {
35
+ outline: none;
36
+ background: #ecf0f1;
37
+ }
38
+ .trumbowyg-tenor-close:focus {
39
+ border-color: rgba(0, 0, 0, 0.3);
40
+ }
41
+
42
+ .trumbowyg-powered-by-tenor {
43
+ position: absolute;
44
+ top: calc(5% + 11px);
45
+ right: calc(15% + 5px);
46
+ pointer-events: none;
47
+ -webkit-user-select: none;
48
+ -moz-user-select: none;
49
+ -ms-user-select: none;
50
+ user-select: none;
51
+ }
52
+ .trumbowyg-powered-by-tenor span {
53
+ text-transform: uppercase;
54
+ font-weight: bold;
55
+ font-size: 10px;
56
+ opacity: 0.6;
57
+ }
58
+ .trumbowyg-powered-by-tenor svg {
59
+ width: 66px;
60
+ height: 15px;
61
+ vertical-align: middle;
62
+ margin-left: 6px;
63
+ opacity: 0.45;
64
+ }
65
+
66
+ .trumbowyg-tenor-modal-scroll {
67
+ overflow: auto;
68
+ overflow-x: hidden;
69
+ height: 240px;
70
+ }
71
+ .trumbowyg-tenor-modal-scroll .trumbowyg-tenor-loading {
72
+ display: none;
73
+ padding: 20px;
74
+ }
75
+ .trumbowyg-tenor-modal-scroll .trumbowyg-tenor-loading img {
76
+ height: 25px;
77
+ }
78
+
79
+ .trumbowyg-tenor-modal {
80
+ display: -webkit-box;
81
+ display: -ms-flexbox;
82
+ display: flex;
83
+ -ms-flex-wrap: wrap;
84
+ flex-wrap: wrap;
85
+ -webkit-box-pack: center;
86
+ -ms-flex-pack: center;
87
+ justify-content: center;
88
+ margin: 0 3%;
89
+ }
90
+ .trumbowyg-tenor-modal .trumbowyg-tenor-no-result {
91
+ width: 100%;
92
+ margin: 0 3%;
93
+ }
94
+ .trumbowyg-tenor-modal .trumbowyg-tenor-offline {
95
+ font-size: 18px;
96
+ width: 305%;
97
+ height: 600px;
98
+ margin-top: 95px;
99
+ text-align: center;
100
+ }
101
+
102
+ .trumbowyg-tenor-modal .img-container {
103
+ margin-bottom: 10px;
104
+ background-color: #ecf0f1;
105
+ }
106
+ .trumbowyg-tenor-modal .img-container img {
107
+ width: 100%;
108
+ cursor: pointer;
109
+ opacity: 0;
110
+ -webkit-transition: opacity 150ms;
111
+ transition: opacity 150ms;
112
+ display: block;
113
+ }
114
+ .trumbowyg-tenor-modal .img-container img:hover, .trumbowyg-tenor-modal .img-container img:focus {
115
+ border: #2ecc71 solid 3px;
116
+ }
117
+ .trumbowyg-tenor-modal .img-container img.tbw-loaded {
118
+ opacity: 1;
119
+ }
@@ -0,0 +1,2 @@
1
+ /** Trumbowyg v2.31.0 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg/ - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
2
+ .trumbowyg-tenor-button svg{-webkit-transform:scale(1.22);transform:scale(1.22)}.trumbowyg-tenor-search{display:block;width:80%;margin:5%;padding-left:10px;padding-right:150px}.trumbowyg-tenor-close{position:absolute;top:calc(5% + 8px);right:calc(5% - 2px);width:30px;height:30px;background:0 0;border:1px solid transparent}.trumbowyg-tenor-close:focus,.trumbowyg-tenor-close:hover{outline:0;background:#ecf0f1}.trumbowyg-tenor-close:focus{border-color:rgba(0,0,0,.3)}.trumbowyg-powered-by-tenor{position:absolute;top:calc(5% + 11px);right:calc(15% + 5px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.trumbowyg-powered-by-tenor span{text-transform:uppercase;font-weight:700;font-size:10px;opacity:.6}.trumbowyg-powered-by-tenor svg{width:66px;height:15px;vertical-align:middle;margin-left:6px;opacity:.45}.trumbowyg-tenor-modal-scroll{overflow:auto;overflow-x:hidden;height:240px}.trumbowyg-tenor-modal-scroll .trumbowyg-tenor-loading{display:none;padding:20px}.trumbowyg-tenor-modal-scroll .trumbowyg-tenor-loading img{height:25px}.trumbowyg-tenor-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 3%}.trumbowyg-tenor-modal .trumbowyg-tenor-no-result{width:100%;margin:0 3%}.trumbowyg-tenor-modal .trumbowyg-tenor-offline{font-size:18px;width:305%;height:600px;margin-top:95px;text-align:center}.trumbowyg-tenor-modal .img-container{margin-bottom:10px;background-color:#ecf0f1}.trumbowyg-tenor-modal .img-container img{width:100%;cursor:pointer;opacity:0;-webkit-transition:opacity 150ms;transition:opacity 150ms;display:block}.trumbowyg-tenor-modal .img-container img:focus,.trumbowyg-tenor-modal .img-container img:hover{border:#2ecc71 solid 3px}.trumbowyg-tenor-modal .img-container img.tbw-loaded{opacity:1}