jodit 4.10.2 → 4.11.2

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 (87) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +121 -121
  4. package/es2015/jodit.js +36183 -35886
  5. package/es2015/jodit.min.js +121 -121
  6. package/es2015/plugins/debug/debug.css +1 -1
  7. package/es2015/plugins/debug/debug.js +1 -1
  8. package/es2015/plugins/debug/debug.min.js +1 -1
  9. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.js +724 -724
  11. package/es2015/plugins/speech-recognize/speech-recognize.min.js +2 -2
  12. package/es2018/jodit.fat.min.js +121 -121
  13. package/es2018/jodit.min.js +121 -121
  14. package/es2018/plugins/debug/debug.min.js +1 -1
  15. package/es2018/plugins/speech-recognize/speech-recognize.min.js +2 -2
  16. package/es2021/jodit.css +1 -1
  17. package/es2021/jodit.fat.min.js +135 -135
  18. package/es2021/jodit.js +35482 -35186
  19. package/es2021/jodit.min.js +135 -135
  20. package/es2021/plugins/debug/debug.css +1 -1
  21. package/es2021/plugins/debug/debug.js +1 -1
  22. package/es2021/plugins/debug/debug.min.js +1 -1
  23. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  24. package/es2021/plugins/speech-recognize/speech-recognize.js +681 -681
  25. package/es2021/plugins/speech-recognize/speech-recognize.min.js +2 -2
  26. package/es2021.en/jodit.css +1 -1
  27. package/es2021.en/jodit.fat.min.js +151 -151
  28. package/es2021.en/jodit.js +34392 -34096
  29. package/es2021.en/jodit.min.js +135 -135
  30. package/es2021.en/plugins/debug/debug.css +1 -1
  31. package/es2021.en/plugins/debug/debug.js +1 -1
  32. package/es2021.en/plugins/debug/debug.min.js +1 -1
  33. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  34. package/es2021.en/plugins/speech-recognize/speech-recognize.js +306 -306
  35. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +2 -2
  36. package/es5/jodit.css +2 -2
  37. package/es5/jodit.fat.min.js +2 -2
  38. package/es5/jodit.js +44054 -43700
  39. package/es5/jodit.min.css +2 -2
  40. package/es5/jodit.min.js +2 -2
  41. package/es5/plugins/debug/debug.css +1 -1
  42. package/es5/plugins/debug/debug.js +1 -1
  43. package/es5/plugins/debug/debug.min.js +1 -1
  44. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  45. package/es5/plugins/speech-recognize/speech-recognize.js +839 -839
  46. package/es5/plugins/speech-recognize/speech-recognize.min.js +2 -2
  47. package/es5/polyfills.fat.min.js +2 -2
  48. package/es5/polyfills.js +4211 -4211
  49. package/es5/polyfills.min.js +2 -2
  50. package/esm/config.d.ts +85 -0
  51. package/esm/core/constants.js +1 -1
  52. package/esm/core/dom/dom.d.ts +1 -0
  53. package/esm/core/helpers/html/safe-html.d.ts +3 -2
  54. package/esm/core/helpers/html/safe-html.js +42 -3
  55. package/esm/plugins/clean-html/clean-html.js +4 -0
  56. package/esm/plugins/clean-html/config.d.ts +85 -0
  57. package/esm/plugins/clean-html/config.js +7 -1
  58. package/esm/plugins/clean-html/helpers/visitor/filters/convert-unsafe-embeds.d.ts +14 -0
  59. package/esm/plugins/clean-html/helpers/visitor/filters/convert-unsafe-embeds.js +37 -0
  60. package/esm/plugins/clean-html/helpers/visitor/filters/index.d.ts +4 -0
  61. package/esm/plugins/clean-html/helpers/visitor/filters/index.js +4 -0
  62. package/esm/plugins/clean-html/helpers/visitor/filters/safe-links-target.d.ts +14 -0
  63. package/esm/plugins/clean-html/helpers/visitor/filters/safe-links-target.js +38 -0
  64. package/esm/plugins/clean-html/helpers/visitor/filters/sandbox-iframes-in-content.d.ts +14 -0
  65. package/esm/plugins/clean-html/helpers/visitor/filters/sandbox-iframes-in-content.js +24 -0
  66. package/esm/plugins/clean-html/helpers/visitor/filters/sanitize-attributes.js +10 -5
  67. package/esm/plugins/clean-html/helpers/visitor/filters/sanitize-styles.d.ts +14 -0
  68. package/esm/plugins/clean-html/helpers/visitor/filters/sanitize-styles.js +70 -0
  69. package/esm/plugins/drag-and-drop/drag-and-drop.js +1 -1
  70. package/esm/plugins/enter/helpers/insert-paragraph.js +2 -1
  71. package/esm/plugins/file/file.js +3 -2
  72. package/esm/plugins/iframe/iframe.js +8 -6
  73. package/esm/plugins/image/image.js +3 -2
  74. package/esm/plugins/image-properties/writers/link.js +6 -0
  75. package/esm/plugins/link/link.js +15 -3
  76. package/esm/plugins/resizer/resizer.js +2 -2
  77. package/esm/plugins/source/editor/engines/area.js +3 -7
  78. package/package.json +1 -1
  79. package/types/config.d.ts +85 -0
  80. package/types/core/dom/dom.d.ts +1 -0
  81. package/types/core/helpers/html/safe-html.d.ts +3 -2
  82. package/types/plugins/clean-html/config.d.ts +85 -0
  83. package/types/plugins/clean-html/helpers/visitor/filters/convert-unsafe-embeds.d.ts +14 -0
  84. package/types/plugins/clean-html/helpers/visitor/filters/index.d.ts +4 -0
  85. package/types/plugins/clean-html/helpers/visitor/filters/safe-links-target.d.ts +14 -0
  86. package/types/plugins/clean-html/helpers/visitor/filters/sandbox-iframes-in-content.d.ts +14 -0
  87. package/types/plugins/clean-html/helpers/visitor/filters/sanitize-styles.d.ts +14 -0
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.10.2
4
+ * Version: v4.11.2
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -18,301 +18,368 @@
18
18
  })(self, function() {
19
19
  return (self["webpackChunkjodit"] = self["webpackChunkjodit"] || []).push([[882],{
20
20
 
21
- /***/ 8858:
22
- /***/ (function(module) {
23
-
24
- /*!
25
- * Jodit Editor (https://xdsoft.net/jodit/)
26
- * Released under MIT see LICENSE.txt in the project root for license information.
27
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
28
- */ module.exports = {
29
- newline: 'חדשות',
30
- delete: 'מחק',
31
- space: 'שטח',
32
- 'Speech Recognize': 'דיבור מזהה',
33
- Sound: 'קול',
34
- 'Interim Results': 'תוצאות ביניים'
35
- };
36
-
37
-
38
- /***/ }),
39
-
40
- /***/ 8962:
41
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
21
+ /***/ 75143:
22
+ /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
42
23
 
43
24
  "use strict";
44
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
45
- /* harmony export */ execSpellCommand: function() { return /* binding */ execSpellCommand; }
46
- /* harmony export */ });
25
+ /* harmony import */ var jodit_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22289);
26
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85932);
27
+ /* harmony import */ var jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7909);
28
+ /* harmony import */ var jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36400);
29
+ /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29434);
30
+ /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5266);
31
+ /* harmony import */ var _helpers_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97743);
32
+ /* harmony import */ var _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68097);
33
+ /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(22227);
34
+ /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8__);
47
35
  /*!
48
36
  * Jodit Editor (https://xdsoft.net/jodit/)
49
37
  * Released under MIT see LICENSE.txt in the project root for license information.
50
38
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
51
39
  */ /**
52
40
  * @module plugins/speech-recognize
53
- */ function execSpellCommand(jodit, commandSentence) {
54
- const [command, value] = commandSentence.split('::');
55
- jodit.execCommand(command, null, value);
56
- }
41
+ */
57
42
 
58
43
 
59
- /***/ }),
60
44
 
61
- /***/ 10179:
62
- /***/ (function(module) {
63
45
 
64
- /*!
65
- * Jodit Editor (https://xdsoft.net/jodit/)
66
- * Released under MIT see LICENSE.txt in the project root for license information.
67
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
68
- */ module.exports = {
69
- newline: 'новая строка|перенос|ентер',
70
- delete: 'видалити',
71
- space: 'пробел',
72
- 'Speech Recognize': 'Распознавание речи',
73
- Sound: 'Звук',
74
- 'Interim Results': 'Проміжні результати'
75
- };
76
46
 
77
47
 
78
- /***/ }),
79
48
 
80
- /***/ 18712:
81
- /***/ (function(module) {
82
49
 
83
- /*!
84
- * Jodit Editor (https://xdsoft.net/jodit/)
85
- * Released under MIT see LICENSE.txt in the project root for license information.
86
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
87
- */ module.exports = {
88
- newline: '改行',
89
- delete: '削除',
90
- space: 'スペース',
91
- 'Speech Recognize': '音声認識',
92
- Sound: '',
93
- 'Interim Results': '中間結果'
50
+ jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.speechRecognize = {
51
+ api: typeof _helpers_api__WEBPACK_IMPORTED_MODULE_6__.SpeechRecognition !== 'undefined' ? _helpers_api__WEBPACK_IMPORTED_MODULE_6__.SpeechRecognition : null,
52
+ sound: true,
53
+ continuous: false,
54
+ interimResults: true,
55
+ commands: {
56
+ 'newline|enter': 'enter',
57
+ 'delete|remove word|delete word': 'backspaceWordButton',
58
+ comma: 'inserthtml::,',
59
+ underline: 'inserthtml::_',
60
+ hyphen: 'inserthtml::-',
61
+ space: 'inserthtml:: ',
62
+ question: 'inserthtml::?',
63
+ dot: 'inserthtml::.',
64
+ 'quote|quotes|open quote': "inserthtml::'",
65
+ 'header|header h1': 'formatblock::h1',
66
+ 'select all': 'selectall'
67
+ }
68
+ };
69
+ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__.Icon.set('speech-recognize', (_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8___default()));
70
+ jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.speechRecognize = {
71
+ isVisible (j) {
72
+ return Boolean(j.o.speechRecognize.api);
73
+ },
74
+ isActive (jodit, _) {
75
+ const api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech');
76
+ return Boolean(api?.isEnabled);
77
+ },
78
+ isDisabled (jodit) {
79
+ return !jodit.o.speechRecognize.api;
80
+ },
81
+ exec (jodit, current, { button, control }) {
82
+ const { api: ApiConstructor, lang, continuous, interimResults, sound } = jodit.o.speechRecognize;
83
+ if (!ApiConstructor) {
84
+ jodit.alert('Speech recognize API unsupported in your browser');
85
+ return;
86
+ }
87
+ let api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech');
88
+ if (!api) {
89
+ const nativeApi = new ApiConstructor();
90
+ api = new _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_7__.RecognizeManager(jodit.async, nativeApi);
91
+ api.lang = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(lang) ? lang : (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(jodit.od.documentElement, 'lang') ?? undefined;
92
+ api.continuous = continuous;
93
+ api.interimResults = interimResults;
94
+ api.sound = sound;
95
+ (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech', api);
96
+ api.on('pulse', (enable)=>{
97
+ button.setMod('pulse', enable);
98
+ });
99
+ api.on('result', (text)=>jodit.e.fire('speechRecognizeResult', text));
100
+ api.on('progress', (text)=>jodit.e.fire('speechRecognizeProgressResult', text));
101
+ api.on('error', (text)=>jodit.message.error(text));
102
+ button.hookStatus('beforeDestruct', ()=>{
103
+ (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech', null);
104
+ api.destruct();
105
+ });
106
+ }
107
+ if (control.args) {
108
+ const key = control.args[0];
109
+ if ((0,jodit_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_0__.isBoolean)(api[key])) {
110
+ api[key] = !api[key];
111
+ if (api.isEnabled) {
112
+ api.restart();
113
+ }
114
+ return;
115
+ }
116
+ }
117
+ api.toggle();
118
+ if (api.isEnabled) {
119
+ button.setMod('pulse', true);
120
+ }
121
+ button.state.activated = api.isEnabled;
122
+ },
123
+ name: 'speechRecognize',
124
+ command: 'toggleSpeechRecognize',
125
+ tooltip: 'Speech Recognize',
126
+ list: {
127
+ sound: 'Sound',
128
+ interimResults: 'Interim Results'
129
+ },
130
+ childTemplate (jodit, key, value) {
131
+ const api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech'), checked = api?.[key] ?? jodit.o.speechRecognize[key];
132
+ return `<span class='jodit-speech-recognize__list-item'><input ${checked ? 'checked' : ''} class='jodit-checkbox' type='checkbox'>&nbsp;${value}</span>`;
133
+ },
134
+ mods: {
135
+ stroke: false
136
+ }
94
137
  };
95
138
 
96
139
 
97
140
  /***/ }),
98
141
 
99
- /***/ 19922:
100
- /***/ (function(module) {
142
+ /***/ 94092:
143
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
101
144
 
145
+ "use strict";
146
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
147
+ /* harmony export */ PII: function() { return /* binding */ PII; },
148
+ /* harmony export */ WARN: function() { return /* binding */ WARN; }
149
+ /* harmony export */ });
102
150
  /*!
103
151
  * Jodit Editor (https://xdsoft.net/jodit/)
104
152
  * Released under MIT see LICENSE.txt in the project root for license information.
105
153
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
106
- */ module.exports = {
107
- newline: 'الخط الجديد',
108
- delete: 'حذف',
109
- space: 'الفضاء',
110
- 'Speech Recognize': 'التعرف على الكلام',
111
- Sound: 'الصوت',
112
- 'Interim Results': 'النتائج المؤقتة'
113
- };
154
+ */ /**
155
+ * @module plugins/speech-recognize
156
+ * @internal
157
+ */ const PII = 440;
158
+ const WARN = 940;
114
159
 
115
160
 
116
161
  /***/ }),
117
162
 
118
- /***/ 20759:
119
- /***/ (function(module) {
163
+ /***/ 97743:
164
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
120
165
 
166
+ "use strict";
167
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
168
+ /* harmony export */ SpeechRecognition: function() { return /* binding */ SpeechRecognition; }
169
+ /* harmony export */ });
170
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81937);
121
171
  /*!
122
172
  * Jodit Editor (https://xdsoft.net/jodit/)
123
173
  * Released under MIT see LICENSE.txt in the project root for license information.
124
174
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
125
- */ module.exports = {
126
- newline: 'řádek',
127
- delete: 'odstranit',
128
- space: 'prostora',
129
- 'Speech Recognize': 'Rozpoznání Řeči',
130
- Sound: 'Zvuk',
131
- 'Interim Results': 'Průběžné Výsledky'
132
- };
133
-
134
-
135
- /***/ }),
136
-
137
- /***/ 22227:
138
- /***/ (function(module) {
175
+ */ /**
176
+ * @module plugins/speech-recognize
177
+ */
178
+ const SpeechRecognition = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow ? jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.SpeechRecognition || jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.webkitSpeechRecognition : undefined;
139
179
 
140
- module.exports = "<svg viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M8,11c1.657,0,3-1.343,3-3V3c0-1.657-1.343-3-3-3S5,1.343,5,3v5C5,9.657,6.343,11,8,11z\"/> <path d=\"M13,8V6h-1l0,1.844c0,1.92-1.282,3.688-3.164,4.071C6.266,12.438,4,10.479,4,8V6H3v2c0,2.414,1.721,4.434,4,4.899V15H5v1h6 v-1H9v-2.101C11.279,12.434,13,10.414,13,8z\"/> </svg>"
141
180
 
142
181
  /***/ }),
143
182
 
144
- /***/ 22350:
145
- /***/ (function(module) {
183
+ /***/ 8962:
184
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
146
185
 
186
+ "use strict";
187
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
188
+ /* harmony export */ execSpellCommand: function() { return /* binding */ execSpellCommand; }
189
+ /* harmony export */ });
147
190
  /*!
148
191
  * Jodit Editor (https://xdsoft.net/jodit/)
149
192
  * Released under MIT see LICENSE.txt in the project root for license information.
150
193
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
151
- */ module.exports = {
152
- newline: 'Zeilenumbruch',
153
- delete: 'löschen',
154
- space: 'Raum',
155
- 'Speech Recognize': 'Sprache Erkennen',
156
- Sound: 'Sound',
157
- 'Interim Results': 'Zwischenergebnis'
158
- };
194
+ */ /**
195
+ * @module plugins/speech-recognize
196
+ */ function execSpellCommand(jodit, commandSentence) {
197
+ const [command, value] = commandSentence.split('::');
198
+ jodit.execCommand(command, null, value);
199
+ }
159
200
 
160
201
 
161
202
  /***/ }),
162
203
 
163
- /***/ 22922:
164
- /***/ (function(module) {
204
+ /***/ 68097:
205
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
165
206
 
207
+ "use strict";
208
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
209
+ /* harmony export */ RecognizeManager: function() { return /* binding */ RecognizeManager; }
210
+ /* harmony export */ });
211
+ /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045);
212
+ /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
213
+ /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84839);
214
+ /* harmony import */ var jodit_core_event_emitter_eventify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60216);
215
+ /* harmony import */ var _sound__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32560);
216
+ /* harmony import */ var jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94092);
166
217
  /*!
167
218
  * Jodit Editor (https://xdsoft.net/jodit/)
168
219
  * Released under MIT see LICENSE.txt in the project root for license information.
169
220
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
170
- */ module.exports = {
171
- newline: 'újsor',
172
- delete: 'törlés',
173
- space: 'tér',
174
- 'Speech Recognize': 'A Beszéd Felismeri',
175
- Sound: 'Hang',
176
- 'Interim Results': 'Időközi Eredmények'
177
- };
221
+ */ /**
222
+ * @module plugins/speech-recognize
223
+ */
178
224
 
179
225
 
180
- /***/ }),
181
-
182
- /***/ 29475:
183
- /***/ (function(module) {
184
-
185
- /*!
186
- * Jodit Editor (https://xdsoft.net/jodit/)
187
- * Released under MIT see LICENSE.txt in the project root for license information.
188
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
189
- */ module.exports = {
190
- newline: '換行',
191
- delete: '刪除',
192
- space: '空白',
193
- 'Speech Recognize': '語音辨識',
194
- Sound: '聲音',
195
- 'Interim Results': '階段性辨識結果'
196
- };
197
-
198
-
199
- /***/ }),
200
-
201
- /***/ 31262:
202
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
203
-
204
- "use strict";
205
- __webpack_require__.r(__webpack_exports__);
206
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
207
- /* harmony export */ SpeechRecognizeNative: function() { return /* binding */ SpeechRecognizeNative; }
208
- /* harmony export */ });
209
- /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045);
210
- /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
211
- /* harmony import */ var jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68616);
212
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23211);
213
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28077);
214
- /* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71125);
215
- /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(91206);
216
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(75143);
217
- /* harmony import */ var _jodit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73302);
218
- /* harmony import */ var _helpers_exec_spell_command__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8962);
219
- /* harmony import */ var _langs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(43219);
220
- /*!
221
- * Jodit Editor (https://xdsoft.net/jodit/)
222
- * Released under MIT see LICENSE.txt in the project root for license information.
223
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
224
- */ /**
225
- * [[include:plugins/speech-recognize/README.md]]
226
- * @packageDocumentation
227
- * @module plugins/speech-recognize
228
- */
229
-
230
226
 
231
227
 
232
228
 
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
- class SpeechRecognizeNative extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_6__.Plugin {
241
- afterInit(jodit) {
242
- const { commands } = jodit.o.speechRecognize;
243
- if (commands) {
244
- (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.extendLang)(_langs__WEBPACK_IMPORTED_MODULE_10__);
245
- (0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_5__.keys)(commands, false).forEach((words)=>{
246
- const keys = words.split('|');
247
- keys.forEach((key)=>{
248
- key = key.trim().toLowerCase();
249
- this._commandToWord[key] = commands[words];
250
- const translatedKeys = jodit.i18n(key);
251
- if (translatedKeys !== key) {
252
- translatedKeys.split('|').forEach((translatedKey)=>{
253
- this._commandToWord[translatedKey.trim().toLowerCase()] = commands[words].trim();
254
- });
255
- }
256
- });
257
- });
229
+ class RecognizeManager extends jodit_core_event_emitter_eventify__WEBPACK_IMPORTED_MODULE_3__.Eventify {
230
+ set lang(v) {
231
+ this._lang = v;
232
+ this._api.lang = v;
233
+ }
234
+ get lang() {
235
+ return this._lang;
236
+ }
237
+ set continuous(v) {
238
+ this._continuous = v;
239
+ this._api.continuous = v;
240
+ }
241
+ get continuous() {
242
+ return this._continuous;
243
+ }
244
+ set interimResults(v) {
245
+ this._interimResults = v;
246
+ this._api.interimResults = v;
247
+ }
248
+ get interimResults() {
249
+ return this._interimResults;
250
+ }
251
+ destruct() {
252
+ this.stop();
253
+ RecognizeManager._instances.delete(this);
254
+ super.destruct();
255
+ }
256
+ get isEnabled() {
257
+ return this._isEnabled;
258
+ }
259
+ start() {
260
+ if (this._isEnabled) {
261
+ return;
262
+ }
263
+ this._isEnabled = true;
264
+ RecognizeManager._instances.forEach((instance)=>{
265
+ if (instance !== this) {
266
+ instance.stop();
267
+ }
268
+ });
269
+ try {
270
+ this._api.start();
271
+ } catch (e) {
272
+ this._onError(e);
273
+ this.stop();
274
+ return;
258
275
  }
276
+ this.__on('speechstart', this._onSpeechStart).__on('error', this._onError).__on('result', this._onProgress).__on('end', this._onResults);
259
277
  }
260
- beforeDestruct(jodit) {
261
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.messagePopup);
278
+ stop() {
279
+ if (!this._isEnabled) {
280
+ return;
281
+ }
282
+ this._api.abort();
283
+ this._api.stop();
284
+ this.__off('speechstart', this._onSpeechStart).__off('error', this._onError).__off('result', this._onProgress).__off('end', this._onResults);
285
+ this.async.clearTimeout(this._restartTimeout);
286
+ this._isEnabled = false;
287
+ this.emit('pulse', false);
262
288
  }
263
- onSpeechRecognizeProgressResult(text) {
264
- if (!this.messagePopup) {
265
- this.messagePopup = this.j.create.div('jodit-speech-recognize__popup');
289
+ toggle() {
290
+ if (!this._isEnabled) {
291
+ this.start();
292
+ } else {
293
+ this.stop();
266
294
  }
267
- this.j.workplace.appendChild(this.messagePopup);
268
- this.j.async.clearTimeout(this.__hidePopupTimeout);
269
- this.__hidePopupTimeout = this.j.async.setTimeout(()=>{
270
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.messagePopup);
271
- }, 1000);
272
- this.messagePopup.innerText = text + '|';
273
295
  }
274
- onSpeechRecognizeResult(text) {
275
- this.j.async.clearTimeout(this.__hidePopupTimeout);
276
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.messagePopup);
277
- const { j } = this;
278
- const { s } = j;
279
- if (!this._checkCommand(text)) {
280
- const { range } = s, node = s.current();
281
- if (s.isCollapsed() && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isText(node) && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isOrContains(j.editor, node) && node.nodeValue) {
282
- const sentence = node.nodeValue;
283
- node.nodeValue = sentence + (/[\u00A0 ]\uFEFF*$/.test(sentence) ? '' : ' ') + text;
284
- range.setStartAfter(node);
285
- s.selectRange(range);
286
- j.synchronizeValues();
287
- } else {
288
- s.insertHTML(text);
296
+ restart() {
297
+ this.stop();
298
+ this.start();
299
+ }
300
+ __on(event, callback) {
301
+ this._api.addEventListener(event, callback);
302
+ return this;
303
+ }
304
+ __off(event, callback) {
305
+ this._api.removeEventListener(event, callback);
306
+ return this;
307
+ }
308
+ _onResults(e) {
309
+ this.emit('pulse', false);
310
+ this.emit('result', this.__interimResults);
311
+ this.__interimResults = '';
312
+ this._makeSound(jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__.PII);
313
+ this.restart();
314
+ }
315
+ _onProgress(e) {
316
+ if (!this._isEnabled) {
317
+ return;
318
+ }
319
+ this.__interimResults = '';
320
+ if (!e.results) {
321
+ return;
322
+ }
323
+ for(let i = 0; i < e.results.length; i++){
324
+ const resultItem = e.results.item(i);
325
+ if (resultItem.length) {
326
+ const { transcript } = resultItem.item(0);
327
+ this.__interimResults += transcript;
289
328
  }
290
329
  }
330
+ if (this.__interimResults) {
331
+ this.emit('progress', this.__interimResults);
332
+ }
291
333
  }
292
- _checkCommand(command) {
293
- command = command.toLowerCase().replace(/\./g, '');
294
- if (this._commandToWord[command]) {
295
- (0,_helpers_exec_spell_command__WEBPACK_IMPORTED_MODULE_9__.execSpellCommand)(this.j, this._commandToWord[command]);
296
- return true;
334
+ _onError(e) {
335
+ if (e.error === 'voice-unavailable') {
336
+ this.emit('error', 'Voice unavailable');
297
337
  }
298
- return false;
338
+ if (e.error === 'not-allowed') {
339
+ this.emit('error', 'Not allowed');
340
+ }
341
+ if (e.error === 'language-unavailable' || // @ts-ignore
342
+ e.error === 'language-not-supported') {
343
+ this.emit('error', 'Language unavailable');
344
+ }
345
+ this._makeSound(jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__.WARN);
346
+ this.emit('pulse', false);
347
+ this.stop();
299
348
  }
300
- constructor(...args){
301
- super(...args), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "buttons", [
302
- {
303
- group: 'state',
304
- name: 'speechRecognize'
349
+ _makeSound(frequency) {
350
+ if (this.sound) {
351
+ (0,_sound__WEBPACK_IMPORTED_MODULE_4__.sound)({
352
+ frequency
353
+ });
354
+ }
355
+ }
356
+ constructor(async, api){
357
+ super(), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "async", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_lang", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_continuous", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_interimResults", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sound", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_isEnabled", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_restartTimeout", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_onSpeechStart", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_api", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__interimResults", void 0), this.async = async, this._continuous = false, this._interimResults = false, this.sound = true, this._isEnabled = false, this._restartTimeout = 0, this._onSpeechStart = (e)=>{
358
+ if (!this._isEnabled) {
359
+ return;
305
360
  }
306
- ]), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "messagePopup", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__hidePopupTimeout", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_commandToWord", {});
361
+ this.async.clearTimeout(this._restartTimeout);
362
+ this._restartTimeout = this.async.setTimeout(()=>{
363
+ this.restart();
364
+ this.emit('pulse', false);
365
+ this._makeSound(jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__.WARN);
366
+ }, 5000);
367
+ this.emit('pulse', true);
368
+ }, this.__interimResults = '';
369
+ this._api = api;
370
+ RecognizeManager._instances.add(this);
307
371
  }
308
372
  }
373
+ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(RecognizeManager, "_instances", new Set());
309
374
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
310
- (0,jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_2__.watch)(':speechRecognizeProgressResult')
311
- ], SpeechRecognizeNative.prototype, "onSpeechRecognizeProgressResult", null);
375
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
376
+ ], RecognizeManager.prototype, "_onResults", null);
312
377
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
313
- (0,jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_2__.watch)(':speechRecognizeResult')
314
- ], SpeechRecognizeNative.prototype, "onSpeechRecognizeResult", null);
315
- _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', SpeechRecognizeNative);
378
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
379
+ ], RecognizeManager.prototype, "_onProgress", null);
380
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
381
+ jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
382
+ ], RecognizeManager.prototype, "_onError", null);
316
383
 
317
384
 
318
385
  /***/ }),
@@ -356,7 +423,102 @@ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', Speech
356
423
 
357
424
  /***/ }),
358
425
 
359
- /***/ 33276:
426
+ /***/ 19922:
427
+ /***/ (function(module) {
428
+
429
+ /*!
430
+ * Jodit Editor (https://xdsoft.net/jodit/)
431
+ * Released under MIT see LICENSE.txt in the project root for license information.
432
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
433
+ */ module.exports = {
434
+ newline: 'الخط الجديد',
435
+ delete: 'حذف',
436
+ space: 'الفضاء',
437
+ 'Speech Recognize': 'التعرف على الكلام',
438
+ Sound: 'الصوت',
439
+ 'Interim Results': 'النتائج المؤقتة'
440
+ };
441
+
442
+
443
+ /***/ }),
444
+
445
+ /***/ 20759:
446
+ /***/ (function(module) {
447
+
448
+ /*!
449
+ * Jodit Editor (https://xdsoft.net/jodit/)
450
+ * Released under MIT see LICENSE.txt in the project root for license information.
451
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
452
+ */ module.exports = {
453
+ newline: 'řádek',
454
+ delete: 'odstranit',
455
+ space: 'prostora',
456
+ 'Speech Recognize': 'Rozpoznání Řeči',
457
+ Sound: 'Zvuk',
458
+ 'Interim Results': 'Průběžné Výsledky'
459
+ };
460
+
461
+
462
+ /***/ }),
463
+
464
+ /***/ 22350:
465
+ /***/ (function(module) {
466
+
467
+ /*!
468
+ * Jodit Editor (https://xdsoft.net/jodit/)
469
+ * Released under MIT see LICENSE.txt in the project root for license information.
470
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
471
+ */ module.exports = {
472
+ newline: 'Zeilenumbruch',
473
+ delete: 'löschen',
474
+ space: 'Raum',
475
+ 'Speech Recognize': 'Sprache Erkennen',
476
+ Sound: 'Sound',
477
+ 'Interim Results': 'Zwischenergebnis'
478
+ };
479
+
480
+
481
+ /***/ }),
482
+
483
+ /***/ 97509:
484
+ /***/ (function(module) {
485
+
486
+ /*!
487
+ * Jodit Editor (https://xdsoft.net/jodit/)
488
+ * Released under MIT see LICENSE.txt in the project root for license information.
489
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
490
+ */ module.exports = {
491
+ newline: 'nueva línea',
492
+ delete: 'eliminar',
493
+ space: 'espacio',
494
+ 'Speech Recognize': 'Reconocimiento de Voz',
495
+ Sound: 'Sonido',
496
+ 'Interim Results': 'Resultados Provisionales'
497
+ };
498
+
499
+
500
+ /***/ }),
501
+
502
+ /***/ 49668:
503
+ /***/ (function(module) {
504
+
505
+ /*!
506
+ * Jodit Editor (https://xdsoft.net/jodit/)
507
+ * Released under MIT see LICENSE.txt in the project root for license information.
508
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
509
+ */ module.exports = {
510
+ newline: 'خط جدید',
511
+ delete: 'حذف',
512
+ space: 'فضا',
513
+ 'Speech Recognize': 'گفتار را تشخیص دهید',
514
+ Sound: 'صدا',
515
+ 'Interim Results': 'نتایج موقت'
516
+ };
517
+
518
+
519
+ /***/ }),
520
+
521
+ /***/ 33276:
360
522
  /***/ (function(module) {
361
523
 
362
524
  /*!
@@ -375,7 +537,7 @@ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', Speech
375
537
 
376
538
  /***/ }),
377
539
 
378
- /***/ 35420:
540
+ /***/ 43517:
379
541
  /***/ (function(module) {
380
542
 
381
543
  /*!
@@ -383,18 +545,18 @@ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', Speech
383
545
  * Released under MIT see LICENSE.txt in the project root for license information.
384
546
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
385
547
  */ module.exports = {
386
- newline: 'nuova riga',
387
- delete: 'eliminare',
388
- space: 'spazio',
389
- 'Speech Recognize': 'Discorso Riconoscere',
390
- Sound: 'Suono',
391
- 'Interim Results': 'Risultati intermedi'
548
+ newline: 'nouvelle ligne',
549
+ delete: 'supprimer',
550
+ space: 'espace',
551
+ 'Speech Recognize': 'Reconnaissance Vocale',
552
+ Sound: 'Son',
553
+ 'Interim Results': 'Résultats Intermédiaires'
392
554
  };
393
555
 
394
556
 
395
557
  /***/ }),
396
558
 
397
- /***/ 37161:
559
+ /***/ 8858:
398
560
  /***/ (function(module) {
399
561
 
400
562
  /*!
@@ -402,18 +564,18 @@ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', Speech
402
564
  * Released under MIT see LICENSE.txt in the project root for license information.
403
565
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
404
566
  */ module.exports = {
405
- newline: 'newline',
406
- delete: 'usunąć',
407
- space: 'przestrzeń',
408
- 'Speech Recognize': 'Rozpoznawanie Mowy',
409
- Sound: 'Dźwięk',
410
- 'Interim Results': 'Wyniki Okresowe'
567
+ newline: 'חדשות',
568
+ delete: 'מחק',
569
+ space: 'שטח',
570
+ 'Speech Recognize': 'דיבור מזהה',
571
+ Sound: 'קול',
572
+ 'Interim Results': 'תוצאות ביניים'
411
573
  };
412
574
 
413
575
 
414
576
  /***/ }),
415
577
 
416
- /***/ 39996:
578
+ /***/ 22922:
417
579
  /***/ (function(module) {
418
580
 
419
581
  /*!
@@ -421,12 +583,31 @@ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', Speech
421
583
  * Released under MIT see LICENSE.txt in the project root for license information.
422
584
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
423
585
  */ module.exports = {
424
- newline: 'новая строка|перенос|энтер',
425
- delete: 'удалить',
426
- space: 'пробел',
427
- 'Speech Recognize': 'Распознавание речи',
428
- Sound: 'Звук',
429
- 'Interim Results': 'Промежуточные результаты'
586
+ newline: 'újsor',
587
+ delete: 'törlés',
588
+ space: 'tér',
589
+ 'Speech Recognize': 'A Beszéd Felismeri',
590
+ Sound: 'Hang',
591
+ 'Interim Results': 'Időközi Eredmények'
592
+ };
593
+
594
+
595
+ /***/ }),
596
+
597
+ /***/ 81900:
598
+ /***/ (function(module) {
599
+
600
+ /*!
601
+ * Jodit Editor (https://xdsoft.net/jodit/)
602
+ * Released under MIT see LICENSE.txt in the project root for license information.
603
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
604
+ */ module.exports = {
605
+ newline: 'newline',
606
+ delete: 'Hapus',
607
+ space: 'ruang',
608
+ 'Speech Recognize': 'Pidato Mengenali',
609
+ Sound: 'Suara',
610
+ 'Interim Results': 'Hasil Sementara'
430
611
  };
431
612
 
432
613
 
@@ -541,7 +722,7 @@ __webpack_require__.r(__webpack_exports__);
541
722
 
542
723
  /***/ }),
543
724
 
544
- /***/ 43517:
725
+ /***/ 35420:
545
726
  /***/ (function(module) {
546
727
 
547
728
  /*!
@@ -549,18 +730,18 @@ __webpack_require__.r(__webpack_exports__);
549
730
  * Released under MIT see LICENSE.txt in the project root for license information.
550
731
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
551
732
  */ module.exports = {
552
- newline: 'nouvelle ligne',
553
- delete: 'supprimer',
554
- space: 'espace',
555
- 'Speech Recognize': 'Reconnaissance Vocale',
556
- Sound: 'Son',
557
- 'Interim Results': 'Résultats Intermédiaires'
733
+ newline: 'nuova riga',
734
+ delete: 'eliminare',
735
+ space: 'spazio',
736
+ 'Speech Recognize': 'Discorso Riconoscere',
737
+ Sound: 'Suono',
738
+ 'Interim Results': 'Risultati intermedi'
558
739
  };
559
740
 
560
741
 
561
742
  /***/ }),
562
743
 
563
- /***/ 49668:
744
+ /***/ 18712:
564
745
  /***/ (function(module) {
565
746
 
566
747
  /*!
@@ -568,18 +749,18 @@ __webpack_require__.r(__webpack_exports__);
568
749
  * Released under MIT see LICENSE.txt in the project root for license information.
569
750
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
570
751
  */ module.exports = {
571
- newline: 'خط جدید',
572
- delete: 'حذف',
573
- space: 'فضا',
574
- 'Speech Recognize': 'گفتار را تشخیص دهید',
575
- Sound: 'صدا',
576
- 'Interim Results': 'نتایج موقت'
752
+ newline: '改行',
753
+ delete: '削除',
754
+ space: 'スペース',
755
+ 'Speech Recognize': '音声認識',
756
+ Sound: '',
757
+ 'Interim Results': '中間結果'
577
758
  };
578
759
 
579
760
 
580
761
  /***/ }),
581
762
 
582
- /***/ 62547:
763
+ /***/ 73363:
583
764
  /***/ (function(module) {
584
765
 
585
766
  /*!
@@ -587,18 +768,18 @@ __webpack_require__.r(__webpack_exports__);
587
768
  * Released under MIT see LICENSE.txt in the project root for license information.
588
769
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
589
770
  */ module.exports = {
590
- newline: '新行',
591
- delete: '删除',
592
- space: '空间',
593
- 'Speech Recognize': '言语识别',
594
- Sound: '声音',
595
- 'Interim Results': '中期业绩'
771
+ newline: '줄 바꿈',
772
+ delete: '삭제',
773
+ space: '공간',
774
+ 'Speech Recognize': '음성 인식',
775
+ Sound: '소리',
776
+ 'Interim Results': '중간 결과'
596
777
  };
597
778
 
598
779
 
599
780
  /***/ }),
600
781
 
601
- /***/ 62896:
782
+ /***/ 74762:
602
783
  /***/ (function(module) {
603
784
 
604
785
  /*!
@@ -606,398 +787,56 @@ __webpack_require__.r(__webpack_exports__);
606
787
  * Released under MIT see LICENSE.txt in the project root for license information.
607
788
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
608
789
  */ module.exports = {
609
- newline: 'linha',
610
- delete: 'excluir',
611
- space: 'espaco',
612
- 'Speech Recognize': 'Discurso Reconhecer',
613
- Sound: 'Som',
614
- 'Interim Results': 'Resultados Provisórios'
790
+ newline: 'Шинэ мөр',
791
+ delete: 'Устгах',
792
+ space: 'Зай',
793
+ 'Speech Recognize': 'Дуу хоолой таних',
794
+ Sound: 'Дуу',
795
+ 'Interim Results': 'Түр зуурын үр дүн'
615
796
  };
616
-
617
-
618
- /***/ }),
619
-
620
- /***/ 68097:
621
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
622
-
623
- "use strict";
624
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
625
- /* harmony export */ RecognizeManager: function() { return /* binding */ RecognizeManager; }
626
- /* harmony export */ });
627
- /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045);
628
- /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
629
- /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84839);
630
- /* harmony import */ var jodit_core_event_emitter_eventify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60216);
631
- /* harmony import */ var _sound__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32560);
632
- /* harmony import */ var jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94092);
633
- /*!
634
- * Jodit Editor (https://xdsoft.net/jodit/)
635
- * Released under MIT see LICENSE.txt in the project root for license information.
636
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
637
- */ /**
638
- * @module plugins/speech-recognize
639
- */
640
-
641
-
642
-
643
-
644
-
645
- class RecognizeManager extends jodit_core_event_emitter_eventify__WEBPACK_IMPORTED_MODULE_3__.Eventify {
646
- set lang(v) {
647
- this._lang = v;
648
- this._api.lang = v;
649
- }
650
- get lang() {
651
- return this._lang;
652
- }
653
- set continuous(v) {
654
- this._continuous = v;
655
- this._api.continuous = v;
656
- }
657
- get continuous() {
658
- return this._continuous;
659
- }
660
- set interimResults(v) {
661
- this._interimResults = v;
662
- this._api.interimResults = v;
663
- }
664
- get interimResults() {
665
- return this._interimResults;
666
- }
667
- destruct() {
668
- this.stop();
669
- RecognizeManager._instances.delete(this);
670
- super.destruct();
671
- }
672
- get isEnabled() {
673
- return this._isEnabled;
674
- }
675
- start() {
676
- if (this._isEnabled) {
677
- return;
678
- }
679
- this._isEnabled = true;
680
- RecognizeManager._instances.forEach((instance)=>{
681
- if (instance !== this) {
682
- instance.stop();
683
- }
684
- });
685
- try {
686
- this._api.start();
687
- } catch (e) {
688
- this._onError(e);
689
- this.stop();
690
- return;
691
- }
692
- this.__on('speechstart', this._onSpeechStart).__on('error', this._onError).__on('result', this._onProgress).__on('end', this._onResults);
693
- }
694
- stop() {
695
- if (!this._isEnabled) {
696
- return;
697
- }
698
- this._api.abort();
699
- this._api.stop();
700
- this.__off('speechstart', this._onSpeechStart).__off('error', this._onError).__off('result', this._onProgress).__off('end', this._onResults);
701
- this.async.clearTimeout(this._restartTimeout);
702
- this._isEnabled = false;
703
- this.emit('pulse', false);
704
- }
705
- toggle() {
706
- if (!this._isEnabled) {
707
- this.start();
708
- } else {
709
- this.stop();
710
- }
711
- }
712
- restart() {
713
- this.stop();
714
- this.start();
715
- }
716
- __on(event, callback) {
717
- this._api.addEventListener(event, callback);
718
- return this;
719
- }
720
- __off(event, callback) {
721
- this._api.removeEventListener(event, callback);
722
- return this;
723
- }
724
- _onResults(e) {
725
- this.emit('pulse', false);
726
- this.emit('result', this.__interimResults);
727
- this.__interimResults = '';
728
- this._makeSound(jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__.PII);
729
- this.restart();
730
- }
731
- _onProgress(e) {
732
- if (!this._isEnabled) {
733
- return;
734
- }
735
- this.__interimResults = '';
736
- if (!e.results) {
737
- return;
738
- }
739
- for(let i = 0; i < e.results.length; i++){
740
- const resultItem = e.results.item(i);
741
- if (resultItem.length) {
742
- const { transcript } = resultItem.item(0);
743
- this.__interimResults += transcript;
744
- }
745
- }
746
- if (this.__interimResults) {
747
- this.emit('progress', this.__interimResults);
748
- }
749
- }
750
- _onError(e) {
751
- if (e.error === 'voice-unavailable') {
752
- this.emit('error', 'Voice unavailable');
753
- }
754
- if (e.error === 'not-allowed') {
755
- this.emit('error', 'Not allowed');
756
- }
757
- if (e.error === 'language-unavailable' || // @ts-ignore
758
- e.error === 'language-not-supported') {
759
- this.emit('error', 'Language unavailable');
760
- }
761
- this._makeSound(jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__.WARN);
762
- this.emit('pulse', false);
763
- this.stop();
764
- }
765
- _makeSound(frequency) {
766
- if (this.sound) {
767
- (0,_sound__WEBPACK_IMPORTED_MODULE_4__.sound)({
768
- frequency
769
- });
770
- }
771
- }
772
- constructor(async, api){
773
- super(), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "async", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_lang", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_continuous", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_interimResults", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sound", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_isEnabled", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_restartTimeout", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_onSpeechStart", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_api", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__interimResults", void 0), this.async = async, this._continuous = false, this._interimResults = false, this.sound = true, this._isEnabled = false, this._restartTimeout = 0, this._onSpeechStart = (e)=>{
774
- if (!this._isEnabled) {
775
- return;
776
- }
777
- this.async.clearTimeout(this._restartTimeout);
778
- this._restartTimeout = this.async.setTimeout(()=>{
779
- this.restart();
780
- this.emit('pulse', false);
781
- this._makeSound(jodit_plugins_speech_recognize_constants__WEBPACK_IMPORTED_MODULE_5__.WARN);
782
- }, 5000);
783
- this.emit('pulse', true);
784
- }, this.__interimResults = '';
785
- this._api = api;
786
- RecognizeManager._instances.add(this);
787
- }
788
- }
789
- (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(RecognizeManager, "_instances", new Set());
790
- (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
791
- jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
792
- ], RecognizeManager.prototype, "_onResults", null);
793
- (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
794
- jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
795
- ], RecognizeManager.prototype, "_onProgress", null);
796
- (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
797
- jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
798
- ], RecognizeManager.prototype, "_onError", null);
799
-
800
-
801
- /***/ }),
802
-
803
- /***/ 72850:
804
- /***/ (function(module) {
805
-
806
- /*!
807
- * Jodit Editor (https://xdsoft.net/jodit/)
808
- * Released under MIT see LICENSE.txt in the project root for license information.
809
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
810
- */ module.exports = {
811
- newline: 'nylinje',
812
- delete: 'slette',
813
- space: 'rom',
814
- 'Speech Recognize': 'Talegjenkjenning',
815
- Sound: 'Lyd',
816
- 'Interim Results': 'Midlertidige resultater'
817
- };
818
-
819
-
820
- /***/ }),
821
-
822
- /***/ 73363:
823
- /***/ (function(module) {
824
-
825
- /*!
826
- * Jodit Editor (https://xdsoft.net/jodit/)
827
- * Released under MIT see LICENSE.txt in the project root for license information.
828
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
829
- */ module.exports = {
830
- newline: '줄 바꿈',
831
- delete: '삭제',
832
- space: '공간',
833
- 'Speech Recognize': '음성 인식',
834
- Sound: '소리',
835
- 'Interim Results': '중간 결과'
836
- };
837
-
838
-
839
- /***/ }),
840
-
841
- /***/ 73759:
842
- /***/ (function(module) {
843
-
844
- /*!
845
- * Jodit Editor (https://xdsoft.net/jodit/)
846
- * Released under MIT see LICENSE.txt in the project root for license information.
847
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
848
- */ module.exports = {
849
- newline: 'regel',
850
- delete: 'verwijderen',
851
- space: 'ruimte',
852
- 'Speech Recognize': 'Spraak Herkennen',
853
- Sound: 'Geluid',
854
- 'Interim Results': 'Tussentijdse Resultaten'
855
- };
856
-
857
-
858
- /***/ }),
859
-
860
- /***/ 74762:
861
- /***/ (function(module) {
862
-
863
- /*!
864
- * Jodit Editor (https://xdsoft.net/jodit/)
865
- * Released under MIT see LICENSE.txt in the project root for license information.
866
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
867
- */ module.exports = {
868
- newline: 'Шинэ мөр',
869
- delete: 'Устгах',
870
- space: 'Зай',
871
- 'Speech Recognize': 'Дуу хоолой таних',
872
- Sound: 'Дуу',
873
- 'Interim Results': 'Түр зуурын үр дүн'
874
- };
875
-
876
-
877
- /***/ }),
878
-
879
- /***/ 75143:
880
- /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
881
-
882
- "use strict";
883
- /* harmony import */ var jodit_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22289);
884
- /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85932);
885
- /* harmony import */ var jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7909);
886
- /* harmony import */ var jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36400);
887
- /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29434);
888
- /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5266);
889
- /* harmony import */ var _helpers_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97743);
890
- /* harmony import */ var _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68097);
891
- /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(22227);
892
- /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8__);
893
- /*!
894
- * Jodit Editor (https://xdsoft.net/jodit/)
895
- * Released under MIT see LICENSE.txt in the project root for license information.
896
- * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
897
- */ /**
898
- * @module plugins/speech-recognize
899
- */
900
-
901
-
902
-
903
-
904
-
905
-
906
-
907
-
908
- jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.speechRecognize = {
909
- api: typeof _helpers_api__WEBPACK_IMPORTED_MODULE_6__.SpeechRecognition !== 'undefined' ? _helpers_api__WEBPACK_IMPORTED_MODULE_6__.SpeechRecognition : null,
910
- sound: true,
911
- continuous: false,
912
- interimResults: true,
913
- commands: {
914
- 'newline|enter': 'enter',
915
- 'delete|remove word|delete word': 'backspaceWordButton',
916
- comma: 'inserthtml::,',
917
- underline: 'inserthtml::_',
918
- hyphen: 'inserthtml::-',
919
- space: 'inserthtml:: ',
920
- question: 'inserthtml::?',
921
- dot: 'inserthtml::.',
922
- 'quote|quotes|open quote': "inserthtml::'",
923
- 'header|header h1': 'formatblock::h1',
924
- 'select all': 'selectall'
925
- }
926
- };
927
- jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__.Icon.set('speech-recognize', (_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_8___default()));
928
- jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.speechRecognize = {
929
- isVisible (j) {
930
- return Boolean(j.o.speechRecognize.api);
931
- },
932
- isActive (jodit, _) {
933
- const api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech');
934
- return Boolean(api?.isEnabled);
935
- },
936
- isDisabled (jodit) {
937
- return !jodit.o.speechRecognize.api;
938
- },
939
- exec (jodit, current, { button, control }) {
940
- const { api: ApiConstructor, lang, continuous, interimResults, sound } = jodit.o.speechRecognize;
941
- if (!ApiConstructor) {
942
- jodit.alert('Speech recognize API unsupported in your browser');
943
- return;
944
- }
945
- let api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech');
946
- if (!api) {
947
- const nativeApi = new ApiConstructor();
948
- api = new _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_7__.RecognizeManager(jodit.async, nativeApi);
949
- api.lang = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(lang) ? lang : (0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_2__.attr)(jodit.od.documentElement, 'lang') ?? undefined;
950
- api.continuous = continuous;
951
- api.interimResults = interimResults;
952
- api.sound = sound;
953
- (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech', api);
954
- api.on('pulse', (enable)=>{
955
- button.setMod('pulse', enable);
956
- });
957
- api.on('result', (text)=>jodit.e.fire('speechRecognizeResult', text));
958
- api.on('progress', (text)=>jodit.e.fire('speechRecognizeProgressResult', text));
959
- api.on('error', (text)=>jodit.message.error(text));
960
- button.hookStatus('beforeDestruct', ()=>{
961
- (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech', null);
962
- api.destruct();
963
- });
964
- }
965
- if (control.args) {
966
- const key = control.args[0];
967
- if ((0,jodit_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_0__.isBoolean)(api[key])) {
968
- api[key] = !api[key];
969
- if (api.isEnabled) {
970
- api.restart();
971
- }
972
- return;
973
- }
974
- }
975
- api.toggle();
976
- if (api.isEnabled) {
977
- button.setMod('pulse', true);
978
- }
979
- button.state.activated = api.isEnabled;
980
- },
981
- name: 'speechRecognize',
982
- command: 'toggleSpeechRecognize',
983
- tooltip: 'Speech Recognize',
984
- list: {
985
- sound: 'Sound',
986
- interimResults: 'Interim Results'
987
- },
988
- childTemplate (jodit, key, value) {
989
- const api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_3__.dataBind)(jodit, 'speech'), checked = api?.[key] ?? jodit.o.speechRecognize[key];
990
- return `<span class='jodit-speech-recognize__list-item'><input ${checked ? 'checked' : ''} class='jodit-checkbox' type='checkbox'>&nbsp;${value}</span>`;
991
- },
992
- mods: {
993
- stroke: false
994
- }
797
+
798
+
799
+ /***/ }),
800
+
801
+ /***/ 73759:
802
+ /***/ (function(module) {
803
+
804
+ /*!
805
+ * Jodit Editor (https://xdsoft.net/jodit/)
806
+ * Released under MIT see LICENSE.txt in the project root for license information.
807
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
808
+ */ module.exports = {
809
+ newline: 'regel',
810
+ delete: 'verwijderen',
811
+ space: 'ruimte',
812
+ 'Speech Recognize': 'Spraak Herkennen',
813
+ Sound: 'Geluid',
814
+ 'Interim Results': 'Tussentijdse Resultaten'
995
815
  };
996
816
 
997
817
 
998
818
  /***/ }),
999
819
 
1000
- /***/ 81900:
820
+ /***/ 72850:
821
+ /***/ (function(module) {
822
+
823
+ /*!
824
+ * Jodit Editor (https://xdsoft.net/jodit/)
825
+ * Released under MIT see LICENSE.txt in the project root for license information.
826
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
827
+ */ module.exports = {
828
+ newline: 'nylinje',
829
+ delete: 'slette',
830
+ space: 'rom',
831
+ 'Speech Recognize': 'Talegjenkjenning',
832
+ Sound: 'Lyd',
833
+ 'Interim Results': 'Midlertidige resultater'
834
+ };
835
+
836
+
837
+ /***/ }),
838
+
839
+ /***/ 37161:
1001
840
  /***/ (function(module) {
1002
841
 
1003
842
  /*!
@@ -1006,11 +845,49 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.speechRecogn
1006
845
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
1007
846
  */ module.exports = {
1008
847
  newline: 'newline',
1009
- delete: 'Hapus',
1010
- space: 'ruang',
1011
- 'Speech Recognize': 'Pidato Mengenali',
1012
- Sound: 'Suara',
1013
- 'Interim Results': 'Hasil Sementara'
848
+ delete: 'usunąć',
849
+ space: 'przestrzeń',
850
+ 'Speech Recognize': 'Rozpoznawanie Mowy',
851
+ Sound: 'Dźwięk',
852
+ 'Interim Results': 'Wyniki Okresowe'
853
+ };
854
+
855
+
856
+ /***/ }),
857
+
858
+ /***/ 62896:
859
+ /***/ (function(module) {
860
+
861
+ /*!
862
+ * Jodit Editor (https://xdsoft.net/jodit/)
863
+ * Released under MIT see LICENSE.txt in the project root for license information.
864
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
865
+ */ module.exports = {
866
+ newline: 'linha',
867
+ delete: 'excluir',
868
+ space: 'espaco',
869
+ 'Speech Recognize': 'Discurso Reconhecer',
870
+ Sound: 'Som',
871
+ 'Interim Results': 'Resultados Provisórios'
872
+ };
873
+
874
+
875
+ /***/ }),
876
+
877
+ /***/ 39996:
878
+ /***/ (function(module) {
879
+
880
+ /*!
881
+ * Jodit Editor (https://xdsoft.net/jodit/)
882
+ * Released under MIT see LICENSE.txt in the project root for license information.
883
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
884
+ */ module.exports = {
885
+ newline: 'новая строка|перенос|энтер',
886
+ delete: 'удалить',
887
+ space: 'пробел',
888
+ 'Speech Recognize': 'Распознавание речи',
889
+ Sound: 'Звук',
890
+ 'Interim Results': 'Промежуточные результаты'
1014
891
  };
1015
892
 
1016
893
 
@@ -1035,28 +912,26 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.speechRecogn
1035
912
 
1036
913
  /***/ }),
1037
914
 
1038
- /***/ 94092:
1039
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
915
+ /***/ 10179:
916
+ /***/ (function(module) {
1040
917
 
1041
- "use strict";
1042
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1043
- /* harmony export */ PII: function() { return /* binding */ PII; },
1044
- /* harmony export */ WARN: function() { return /* binding */ WARN; }
1045
- /* harmony export */ });
1046
918
  /*!
1047
919
  * Jodit Editor (https://xdsoft.net/jodit/)
1048
920
  * Released under MIT see LICENSE.txt in the project root for license information.
1049
921
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
1050
- */ /**
1051
- * @module plugins/speech-recognize
1052
- * @internal
1053
- */ const PII = 440;
1054
- const WARN = 940;
922
+ */ module.exports = {
923
+ newline: 'новая строка|перенос|ентер',
924
+ delete: 'видалити',
925
+ space: 'пробел',
926
+ 'Speech Recognize': 'Распознавание речи',
927
+ Sound: 'Звук',
928
+ 'Interim Results': 'Проміжні результати'
929
+ };
1055
930
 
1056
931
 
1057
932
  /***/ }),
1058
933
 
1059
- /***/ 97509:
934
+ /***/ 62547:
1060
935
  /***/ (function(module) {
1061
936
 
1062
937
  /*!
@@ -1064,35 +939,160 @@ const WARN = 940;
1064
939
  * Released under MIT see LICENSE.txt in the project root for license information.
1065
940
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
1066
941
  */ module.exports = {
1067
- newline: 'nueva línea',
1068
- delete: 'eliminar',
1069
- space: 'espacio',
1070
- 'Speech Recognize': 'Reconocimiento de Voz',
1071
- Sound: 'Sonido',
1072
- 'Interim Results': 'Resultados Provisionales'
942
+ newline: '新行',
943
+ delete: '删除',
944
+ space: '空间',
945
+ 'Speech Recognize': '言语识别',
946
+ Sound: '声音',
947
+ 'Interim Results': '中期业绩'
1073
948
  };
1074
949
 
1075
950
 
1076
951
  /***/ }),
1077
952
 
1078
- /***/ 97743:
953
+ /***/ 29475:
954
+ /***/ (function(module) {
955
+
956
+ /*!
957
+ * Jodit Editor (https://xdsoft.net/jodit/)
958
+ * Released under MIT see LICENSE.txt in the project root for license information.
959
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
960
+ */ module.exports = {
961
+ newline: '換行',
962
+ delete: '刪除',
963
+ space: '空白',
964
+ 'Speech Recognize': '語音辨識',
965
+ Sound: '聲音',
966
+ 'Interim Results': '階段性辨識結果'
967
+ };
968
+
969
+
970
+ /***/ }),
971
+
972
+ /***/ 31262:
1079
973
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1080
974
 
1081
975
  "use strict";
976
+ __webpack_require__.r(__webpack_exports__);
1082
977
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1083
- /* harmony export */ SpeechRecognition: function() { return /* binding */ SpeechRecognition; }
978
+ /* harmony export */ SpeechRecognizeNative: function() { return /* binding */ SpeechRecognizeNative; }
1084
979
  /* harmony export */ });
1085
- /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81937);
980
+ /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25045);
981
+ /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
982
+ /* harmony import */ var jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68616);
983
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23211);
984
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28077);
985
+ /* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71125);
986
+ /* harmony import */ var jodit_core_plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(91206);
987
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(75143);
988
+ /* harmony import */ var _jodit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73302);
989
+ /* harmony import */ var _helpers_exec_spell_command__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8962);
990
+ /* harmony import */ var _langs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(43219);
1086
991
  /*!
1087
992
  * Jodit Editor (https://xdsoft.net/jodit/)
1088
993
  * Released under MIT see LICENSE.txt in the project root for license information.
1089
994
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
1090
995
  */ /**
996
+ * [[include:plugins/speech-recognize/README.md]]
997
+ * @packageDocumentation
1091
998
  * @module plugins/speech-recognize
1092
999
  */
1093
- const SpeechRecognition = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow ? jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.SpeechRecognition || jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.webkitSpeechRecognition : undefined;
1094
1000
 
1095
1001
 
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+ class SpeechRecognizeNative extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_6__.Plugin {
1012
+ afterInit(jodit) {
1013
+ const { commands } = jodit.o.speechRecognize;
1014
+ if (commands) {
1015
+ (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.extendLang)(_langs__WEBPACK_IMPORTED_MODULE_10__);
1016
+ (0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_5__.keys)(commands, false).forEach((words)=>{
1017
+ const keys = words.split('|');
1018
+ keys.forEach((key)=>{
1019
+ key = key.trim().toLowerCase();
1020
+ this._commandToWord[key] = commands[words];
1021
+ const translatedKeys = jodit.i18n(key);
1022
+ if (translatedKeys !== key) {
1023
+ translatedKeys.split('|').forEach((translatedKey)=>{
1024
+ this._commandToWord[translatedKey.trim().toLowerCase()] = commands[words].trim();
1025
+ });
1026
+ }
1027
+ });
1028
+ });
1029
+ }
1030
+ }
1031
+ beforeDestruct(jodit) {
1032
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.messagePopup);
1033
+ }
1034
+ onSpeechRecognizeProgressResult(text) {
1035
+ if (!this.messagePopup) {
1036
+ this.messagePopup = this.j.create.div('jodit-speech-recognize__popup');
1037
+ }
1038
+ this.j.workplace.appendChild(this.messagePopup);
1039
+ this.j.async.clearTimeout(this.__hidePopupTimeout);
1040
+ this.__hidePopupTimeout = this.j.async.setTimeout(()=>{
1041
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.messagePopup);
1042
+ }, 1000);
1043
+ this.messagePopup.innerText = text + '|';
1044
+ }
1045
+ onSpeechRecognizeResult(text) {
1046
+ this.j.async.clearTimeout(this.__hidePopupTimeout);
1047
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.messagePopup);
1048
+ const { j } = this;
1049
+ const { s } = j;
1050
+ if (!this._checkCommand(text)) {
1051
+ const { range } = s, node = s.current();
1052
+ if (s.isCollapsed() && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isText(node) && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isOrContains(j.editor, node) && node.nodeValue) {
1053
+ const sentence = node.nodeValue;
1054
+ node.nodeValue = sentence + (/[\u00A0 ]\uFEFF*$/.test(sentence) ? '' : ' ') + text;
1055
+ range.setStartAfter(node);
1056
+ s.selectRange(range);
1057
+ j.synchronizeValues();
1058
+ } else {
1059
+ s.insertHTML(text);
1060
+ }
1061
+ }
1062
+ }
1063
+ _checkCommand(command) {
1064
+ command = command.toLowerCase().replace(/\./g, '');
1065
+ if (this._commandToWord[command]) {
1066
+ (0,_helpers_exec_spell_command__WEBPACK_IMPORTED_MODULE_9__.execSpellCommand)(this.j, this._commandToWord[command]);
1067
+ return true;
1068
+ }
1069
+ return false;
1070
+ }
1071
+ constructor(...args){
1072
+ super(...args), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "buttons", [
1073
+ {
1074
+ group: 'state',
1075
+ name: 'speechRecognize'
1076
+ }
1077
+ ]), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "messagePopup", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__hidePopupTimeout", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "_commandToWord", {});
1078
+ }
1079
+ }
1080
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1081
+ (0,jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_2__.watch)(':speechRecognizeProgressResult')
1082
+ ], SpeechRecognizeNative.prototype, "onSpeechRecognizeProgressResult", null);
1083
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1084
+ (0,jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_2__.watch)(':speechRecognizeResult')
1085
+ ], SpeechRecognizeNative.prototype, "onSpeechRecognizeResult", null);
1086
+ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', SpeechRecognizeNative);
1087
+
1088
+
1089
+ /***/ }),
1090
+
1091
+ /***/ 22227:
1092
+ /***/ (function(module) {
1093
+
1094
+ module.exports = "<svg viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M8,11c1.657,0,3-1.343,3-3V3c0-1.657-1.343-3-3-3S5,1.343,5,3v5C5,9.657,6.343,11,8,11z\"/> <path d=\"M13,8V6h-1l0,1.844c0,1.92-1.282,3.688-3.164,4.071C6.266,12.438,4,10.479,4,8V6H3v2c0,2.414,1.721,4.434,4,4.899V15H5v1h6 v-1H9v-2.101C11.279,12.434,13,10.414,13,8z\"/> </svg>"
1095
+
1096
1096
  /***/ })
1097
1097
 
1098
1098
  },