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.
- checksums.yaml +4 -4
- data/README.md +8 -5
- data/Rakefile +11 -0
- data/app/assets/fonts/trumbowyg/icons.svg +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/az.js +63 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/az.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ca.js +30 -13
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ca.min.js +8 -5
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/cs.js +11 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/cs.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/da.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/de.js +11 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/de.min.js +3 -3
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/es_ar.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/et.js +7 -7
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fa.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fi.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fr.js +3 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fr.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/he.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/hu.js +3 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/hu.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/id.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/it.js +4 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/it.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/lt.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/mn.js +39 -39
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/{no_nb.js → nb.js} +22 -8
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/nb.min.js +15 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/pl.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/pt.js +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/pt_br.js +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/rs.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/rs_latin.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sl.js +10 -6
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sl.min.js +2 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sq.js +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sv.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sv.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/th.js +33 -33
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/tr.js +5 -3
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/tr.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/zh_cn.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/zh_tw.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.js +28 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.js +39 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.min.js +10 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/sass/trumbowyg.colors.scss +3 -3
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.css +45 -40
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.js +916 -848
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js +9 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/sass/trumbowyg.emoji.scss +3 -3
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css +23 -18
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.js +22 -7
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontsize/trumbowyg.fontsize.js +100 -8
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/fontsize/trumbowyg.fontsize.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/trumbowyg.giphy.js +251 -172
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/trumbowyg.giphy.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/ui/sass/trumbowyg.giphy.scss +17 -16
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/ui/trumbowyg.giphy.css +60 -47
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/giphy/ui/trumbowyg.giphy.min.css +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/trumbowyg.highlight.js +24 -4
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/trumbowyg.highlight.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/ui/sass/trumbowyg.highlight.scss +12 -12
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/ui/trumbowyg.highlight.css +13 -10
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/highlight/ui/trumbowyg.highlight.min.css +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/history/trumbowyg.history.js +6 -61
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/history/trumbowyg.history.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/indent/trumbowyg.indent.js +31 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/indent/trumbowyg.indent.min.js +9 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js +18 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/lineheight/trumbowyg.lineheight.js +50 -5
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/lineheight/trumbowyg.lineheight.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/trumbowyg.mathml.js +97 -50
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/trumbowyg.mathml.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/ui/sass/trumbowyg.mathml.scss +31 -26
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.css +29 -21
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.min.css +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/trumbowyg.mention.js +12 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/trumbowyg.mention.min.js +10 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/ui/sass/trumbowyg.mention.scss +3 -3
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/ui/trumbowyg.mention.css +16 -17
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/mention/ui/trumbowyg.mention.min.css +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.js +51 -20
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.js +36 -53
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.min.js +10 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js +12 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/resizimg/trumbowyg.resizimg.min.js +3 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/ruby/trumbowyg.ruby.js +20 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/ruby/trumbowyg.ruby.min.js +10 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/trumbowyg.specialchars.js +18 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/trumbowyg.specialchars.min.js +8 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/ui/sass/trumbowyg.specialchars.scss +3 -3
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/ui/trumbowyg.specialchars.css +25 -19
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/specialchars/ui/trumbowyg.specialchars.min.css +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/speechrecognition/trumbowyg.speechrecognition.js +198 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/speechrecognition/trumbowyg.speechrecognition.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/trumbowyg.table.js +1436 -158
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/trumbowyg.table.min.js +11 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/ui/sass/trumbowyg.table.scss +157 -32
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/ui/trumbowyg.table.css +143 -22
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/ui/trumbowyg.table.min.css +2 -2
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/template/trumbowyg.template.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/template/trumbowyg.template.min.js +1 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/trumbowyg.tenor.js +319 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/trumbowyg.tenor.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/ui/sass/trumbowyg.tenor.scss +124 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/ui/trumbowyg.tenor.css +119 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/tenor/ui/trumbowyg.tenor.min.css +2 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.js +119 -76
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.min.js +13 -1
- data/app/assets/javascripts/activeadmin/trumbowyg/trumbowyg.js +126 -80
- data/app/assets/javascripts/activeadmin/trumbowyg/trumbowyg.min.js +2 -12
- data/app/assets/stylesheets/activeadmin/_trumbowyg_input.scss +3 -1
- data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.css +776 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.min.css +3 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.min.css.map +1 -0
- data/lib/activeadmin/trumbowyg/version.rb +1 -1
- data/lib/tasks/trumbowyg.rake +2 -2
- metadata +23 -26
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/no_nb.min.js +0 -10
- 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}
|