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,198 @@
1
+ /* ===========================================================
2
+ * trumbowyg.speechrecognition.js v1.0
3
+ * Speech recognition plugin for Trumbowyg
4
+ * http://alex-d.github.com/Trumbowyg
5
+ * ===========================================================
6
+ * Authors :
7
+ * - Tobias Rohde
8
+ * - Alexandre Demode (Alex-D)
9
+ * Website : tobiasrohde.de
10
+ */
11
+ (function ($) {
12
+ 'use strict';
13
+
14
+ const defaultOptions = {
15
+ lang: 'en-US'
16
+ };
17
+
18
+ const SpeechRecognition = window.webkitSpeechRecognition || window.SpeechRecognition;
19
+
20
+ function buildButtonDef(trumbowyg) {
21
+ let btnElement = null;
22
+ let isRecognizing = false;
23
+ let $resultTextParagraph = null;
24
+
25
+ const recognition = new SpeechRecognition();
26
+
27
+ recognition.continuous = true;
28
+ recognition.interimResults = true;
29
+ recognition.maxAlternatives = 1; // We only read the first
30
+
31
+ recognition.onstart = function () {
32
+ isRecognizing = true;
33
+ btnElement.style.color = '#e71d36';
34
+ };
35
+
36
+ recognition.onerror = function () {
37
+ isRecognizing = false;
38
+ btnElement.style.removeProperty('color');
39
+ };
40
+
41
+ recognition.onend = function () {
42
+ isRecognizing = false;
43
+ btnElement.style.removeProperty('color');
44
+ };
45
+
46
+ recognition.onresult = function (event) {
47
+ const resultText = [...event.results].map((result) => {
48
+ return result[0].transcript + (result.isFinal ? '<br>' : '');
49
+ }).join('');
50
+ $resultTextParagraph.html(resultText);
51
+ trumbowyg.range.setEndAfter($resultTextParagraph[0]);
52
+ trumbowyg.range.collapse();
53
+ trumbowyg.syncCode();
54
+ };
55
+
56
+ return {
57
+ isSupported,
58
+ fn: function () {
59
+ if (isRecognizing) {
60
+ recognition.stop();
61
+ return;
62
+ }
63
+
64
+ // Get the actual button to allow to switch his color
65
+ btnElement = trumbowyg.$btnPane.find('.' + trumbowyg.o.prefix + 'speechrecognition-button svg')[0];
66
+
67
+ // Create a container if needed in which we will put the recognized text
68
+ trumbowyg.$ed.focus();
69
+ setTimeout(() => {
70
+ trumbowyg.saveRange();
71
+ if (
72
+ trumbowyg.range.startContainer === trumbowyg.range.endContainer &&
73
+ trumbowyg.range.startContainer.nodeName === 'P' &&
74
+ trumbowyg.range.startContainer.innerText.trim() === ''
75
+ ) {
76
+ $resultTextParagraph = $(trumbowyg.range.startContainer);
77
+ } else {
78
+ $resultTextParagraph = $('<p/>');
79
+ trumbowyg.range.deleteContents();
80
+ trumbowyg.range.insertNode($resultTextParagraph[0]);
81
+ }
82
+
83
+ // Set up the recognition
84
+ recognition.lang = trumbowyg.o.plugins.speechRecognition.lang;
85
+ recognition.start();
86
+ });
87
+ }
88
+ };
89
+ }
90
+
91
+ function isSupported() {
92
+ return SpeechRecognition !== undefined;
93
+ }
94
+
95
+
96
+ $.extend(true, $.trumbowyg, {
97
+ langs: {
98
+ az: {
99
+ speechRecognition: 'Nitqin tanınması'
100
+ },
101
+ bg: {
102
+ speechRecognition: 'Разпознаване на реч'
103
+ },
104
+ by: {
105
+ speechRecognition: 'Распазнаванне маўлення'
106
+ },
107
+ ca: {
108
+ speechRecognition: 'Reconeixement de veu'
109
+ },
110
+ cs: {
111
+ speechRecognition: 'Rozpoznávání řeči'
112
+ },
113
+ da: {
114
+ speechRecognition: 'Talegenkendelse'
115
+ },
116
+ de: {
117
+ speechRecognition: 'Spracherkennung'
118
+ },
119
+ el: {
120
+ speechRecognition: 'Αναγνώριση ομιλίας'
121
+ },
122
+ en: {
123
+ speechRecognition: 'Speech recognition'
124
+ },
125
+ es: {
126
+ speechRecognition: 'Reconocimiento de voz'
127
+ },
128
+ et: {
129
+ speechRecognition: 'Kõnetuvastus'
130
+ },
131
+ fi: {
132
+ speechRecognition: 'Puheentunnistus'
133
+ },
134
+ fr: {
135
+ speechRecognition: 'Reconnaissance vocale'
136
+ },
137
+ hr: {
138
+ speechRecognition: 'Prepoznavanje govora'
139
+ },
140
+ hu: {
141
+ speechRecognition: 'Beszédfelismerés'
142
+ },
143
+ it: {
144
+ speechRecognition: 'Riconoscimento vocale'
145
+ },
146
+ lt: {
147
+ speechRecognition: 'Kalbos atpažinimas'
148
+ },
149
+ nb: {
150
+ speechRecognition: 'Talegjenkjenning'
151
+ },
152
+ nl: {
153
+ speechRecognition: 'Spraakherkenning'
154
+ },
155
+ pl: {
156
+ speechRecognition: 'Rozpoznawanie mowy'
157
+ },
158
+ pt: {
159
+ speechRecognition: 'Reconhecimento de voz'
160
+ },
161
+ ro: {
162
+ speechRecognition: 'Recunoașterea vorbirii'
163
+ },
164
+ rs: {
165
+ speechRecognition: 'Препознавање говора'
166
+ },
167
+ ru: {
168
+ speechRecognition: 'Распознавание речи'
169
+ },
170
+ sk: {
171
+ speechRecognition: 'Rozpoznávanie reči'
172
+ },
173
+ sq: {
174
+ speechRecognition: 'Njohja e të folurit'
175
+ },
176
+ sv: {
177
+ speechRecognition: 'Taligenkänning'
178
+ },
179
+ ua: {
180
+ speechRecognition: 'Розпізнавання мови'
181
+ }
182
+ },
183
+
184
+ plugins: {
185
+ speechRecognition: {
186
+ shouldInit: isSupported,
187
+ init: function (trumbowyg) {
188
+ trumbowyg.o.plugins.speechRecognition = $.extend(true, {},
189
+ defaultOptions,
190
+ trumbowyg.o.plugins.speechRecognition || {}
191
+ );
192
+
193
+ trumbowyg.addBtnDef('speechrecognition', buildButtonDef(trumbowyg));
194
+ }
195
+ }
196
+ }
197
+ });
198
+ })(jQuery);
@@ -0,0 +1,11 @@
1
+ /* ===========================================================
2
+ * trumbowyg.speechrecognition.js v1.0
3
+ * Speech recognition plugin for Trumbowyg
4
+ * http://alex-d.github.com/Trumbowyg
5
+ * ===========================================================
6
+ * Authors :
7
+ * - Tobias Rohde
8
+ * - Alexandre Demode (Alex-D)
9
+ * Website : tobiasrohde.de
10
+ */
11
+ !function(e){"use strict";const n={lang:"en-US"},o=window.webkitSpeechRecognition||window.SpeechRecognition;function i(){return void 0!==o}e.extend(!0,e.trumbowyg,{langs:{az:{speechRecognition:"Nitqin tanınması"},bg:{speechRecognition:"Разпознаване на реч"},by:{speechRecognition:"Распазнаванне маўлення"},ca:{speechRecognition:"Reconeixement de veu"},cs:{speechRecognition:"Rozpoznávání řeči"},da:{speechRecognition:"Talegenkendelse"},de:{speechRecognition:"Spracherkennung"},el:{speechRecognition:"Αναγνώριση ομιλίας"},en:{speechRecognition:"Speech recognition"},es:{speechRecognition:"Reconocimiento de voz"},et:{speechRecognition:"Kõnetuvastus"},fi:{speechRecognition:"Puheentunnistus"},fr:{speechRecognition:"Reconnaissance vocale"},hr:{speechRecognition:"Prepoznavanje govora"},hu:{speechRecognition:"Beszédfelismerés"},it:{speechRecognition:"Riconoscimento vocale"},lt:{speechRecognition:"Kalbos atpažinimas"},nb:{speechRecognition:"Talegjenkjenning"},nl:{speechRecognition:"Spraakherkenning"},pl:{speechRecognition:"Rozpoznawanie mowy"},pt:{speechRecognition:"Reconhecimento de voz"},ro:{speechRecognition:"Recunoașterea vorbirii"},rs:{speechRecognition:"Препознавање говора"},ru:{speechRecognition:"Распознавание речи"},sk:{speechRecognition:"Rozpoznávanie reči"},sq:{speechRecognition:"Njohja e të folurit"},sv:{speechRecognition:"Taligenkänning"},ua:{speechRecognition:"Розпізнавання мови"}},plugins:{speechRecognition:{shouldInit:i,init:function(t){t.o.plugins.speechRecognition=e.extend(!0,{},n,t.o.plugins.speechRecognition||{}),t.addBtnDef("speechrecognition",function(n){let t=null,c=!1,s=null;const r=new o;return r.continuous=!0,r.interimResults=!0,r.maxAlternatives=1,r.onstart=function(){c=!0,t.style.color="#e71d36"},r.onerror=function(){c=!1,t.style.removeProperty("color")},r.onend=function(){c=!1,t.style.removeProperty("color")},r.onresult=function(e){const o=[...e.results].map((e=>e[0].transcript+(e.isFinal?"<br>":""))).join("");s.html(o),n.range.setEndAfter(s[0]),n.range.collapse(),n.syncCode()},{isSupported:i,fn:function(){c?r.stop():(t=n.$btnPane.find("."+n.o.prefix+"speechrecognition-button svg")[0],n.$ed.focus(),setTimeout((()=>{n.saveRange(),n.range.startContainer===n.range.endContainer&&"P"===n.range.startContainer.nodeName&&""===n.range.startContainer.innerText.trim()?s=e(n.range.startContainer):(s=e("<p/>"),n.range.deleteContents(),n.range.insertNode(s[0])),r.lang=n.o.plugins.speechRecognition.lang,r.start()})))}}}(t))}}}})}(jQuery);