jodit 4.2.14 → 4.2.17

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 (133) hide show
  1. package/CHANGELOG.md +64 -5
  2. package/es2015/jodit.css +115 -115
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +2 -2
  5. package/es2015/jodit.js +928 -823
  6. package/es2015/jodit.min.css +1 -1
  7. package/es2015/jodit.min.js +2 -2
  8. package/es2015/plugins/debug/debug.js +1 -1
  9. package/es2015/plugins/debug/debug.min.js +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.js +11 -11
  12. package/es2015/plugins/speech-recognize/speech-recognize.min.js +2 -2
  13. package/es2018/jodit.css +115 -115
  14. package/es2018/jodit.fat.min.css +1 -1
  15. package/es2018/jodit.fat.min.js +2 -2
  16. package/es2018/jodit.js +928 -825
  17. package/es2018/jodit.min.css +1 -1
  18. package/es2018/jodit.min.js +2 -2
  19. package/es2018/plugins/debug/debug.js +1 -1
  20. package/es2018/plugins/debug/debug.min.js +1 -1
  21. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  22. package/es2018/plugins/speech-recognize/speech-recognize.js +11 -11
  23. package/es2018/plugins/speech-recognize/speech-recognize.min.js +2 -2
  24. package/es2021/jodit.css +115 -115
  25. package/es2021/jodit.fat.min.css +1 -1
  26. package/es2021/jodit.fat.min.js +2 -2
  27. package/es2021/jodit.js +922 -819
  28. package/es2021/jodit.min.css +1 -1
  29. package/es2021/jodit.min.js +2 -2
  30. package/es2021/plugins/debug/debug.js +1 -1
  31. package/es2021/plugins/debug/debug.min.js +1 -1
  32. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  33. package/es2021/plugins/speech-recognize/speech-recognize.js +11 -11
  34. package/es2021/plugins/speech-recognize/speech-recognize.min.js +2 -2
  35. package/es2021.en/jodit.css +115 -115
  36. package/es2021.en/jodit.fat.min.css +1 -1
  37. package/es2021.en/jodit.fat.min.js +2 -2
  38. package/es2021.en/jodit.js +922 -819
  39. package/es2021.en/jodit.min.css +1 -1
  40. package/es2021.en/jodit.min.js +2 -2
  41. package/es2021.en/plugins/debug/debug.js +1 -1
  42. package/es2021.en/plugins/debug/debug.min.js +1 -1
  43. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  44. package/es2021.en/plugins/speech-recognize/speech-recognize.js +11 -11
  45. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +2 -2
  46. package/es5/jodit.css +129 -129
  47. package/es5/jodit.fat.min.css +1 -1
  48. package/es5/jodit.fat.min.js +2 -2
  49. package/es5/jodit.js +950 -844
  50. package/es5/jodit.min.css +3 -3
  51. package/es5/jodit.min.js +2 -2
  52. package/es5/plugins/debug/debug.js +1 -1
  53. package/es5/plugins/debug/debug.min.js +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.js +11 -11
  56. package/es5/plugins/speech-recognize/speech-recognize.min.js +2 -2
  57. package/esm/core/constants.js +1 -1
  58. package/esm/core/helpers/utils/config-proto.js +1 -1
  59. package/esm/core/request/ajax.js +1 -1
  60. package/esm/core/selection/helpers/index.d.ts +9 -3
  61. package/esm/core/selection/helpers/index.js +48 -0
  62. package/esm/core/selection/selection.d.ts +6 -1
  63. package/esm/core/selection/selection.js +95 -117
  64. package/esm/core/ui/helpers/get-control-type.js +15 -9
  65. package/esm/core/ui/helpers/get-strong-control-types.js +1 -1
  66. package/esm/index.d.ts +6 -1
  67. package/esm/index.js +3 -2
  68. package/esm/jodit.d.ts +1 -1
  69. package/esm/jodit.js +1 -1
  70. package/esm/modules/file-browser/file-browser.js +1 -1
  71. package/esm/modules/history/history.js +1 -1
  72. package/esm/modules/image-editor/config.js +1 -1
  73. package/esm/modules/image-editor/image-editor.js +1 -1
  74. package/esm/modules/table/table.d.ts +3 -1
  75. package/esm/modules/table/table.js +38 -33
  76. package/esm/modules/toolbar/button/button.js +2 -1
  77. package/esm/modules/toolbar/button/select/select.js +2 -1
  78. package/esm/modules/uploader/helpers/send-files.js +33 -29
  79. package/esm/modules/uploader/uploader.js +1 -1
  80. package/esm/plugins/about/about.js +1 -1
  81. package/esm/plugins/add-new-line/config.js +1 -1
  82. package/esm/plugins/ai-assistant/config.js +1 -1
  83. package/esm/plugins/backspace/cases/check-remove-char.js +68 -54
  84. package/esm/plugins/bold/bold.js +1 -1
  85. package/esm/plugins/class-span/class-span.js +1 -1
  86. package/esm/plugins/clean-html/config.js +1 -1
  87. package/esm/plugins/clipboard/config.js +1 -1
  88. package/esm/plugins/color/config.js +1 -1
  89. package/esm/plugins/copy-format/copy-format.js +1 -1
  90. package/esm/plugins/drag-and-drop/drag-and-drop.d.ts +2 -0
  91. package/esm/plugins/drag-and-drop/drag-and-drop.js +43 -36
  92. package/esm/plugins/file/file.js +1 -1
  93. package/esm/plugins/font/config.js +1 -1
  94. package/esm/plugins/format-block/config.js +6 -4
  95. package/esm/plugins/fullsize/config.js +1 -1
  96. package/esm/plugins/hr/hr.js +1 -1
  97. package/esm/plugins/image/image.js +1 -1
  98. package/esm/plugins/image-properties/config.d.ts +0 -3
  99. package/esm/plugins/image-properties/config.js +3 -0
  100. package/esm/plugins/image-properties/interface.d.ts +121 -0
  101. package/esm/plugins/indent/config.js +1 -1
  102. package/esm/plugins/inline-popup/config/config.js +1 -1
  103. package/esm/plugins/justify/justify.js +10 -6
  104. package/esm/plugins/line-height/config.js +1 -1
  105. package/esm/plugins/link/config.js +1 -1
  106. package/esm/plugins/link/link.js +71 -64
  107. package/esm/plugins/mobile/config.js +1 -1
  108. package/esm/plugins/ordered-list/config.js +1 -1
  109. package/esm/plugins/paste/config.js +1 -1
  110. package/esm/plugins/print/print.js +1 -1
  111. package/esm/plugins/redo-undo/redo-undo.js +1 -1
  112. package/esm/plugins/search/config.js +1 -1
  113. package/esm/plugins/search/helpers/highlight-text-ranges.d.ts +0 -4
  114. package/esm/plugins/search/helpers/highlight-text-ranges.js +58 -49
  115. package/esm/plugins/source/config.js +1 -1
  116. package/esm/plugins/speech-recognize/config.js +1 -1
  117. package/esm/plugins/spellcheck/config.js +1 -1
  118. package/esm/plugins/symbols/config.js +1 -1
  119. package/esm/plugins/table/config.js +1 -1
  120. package/esm/plugins/table-keyboard-navigation/table-keyboard-navigation.js +35 -29
  121. package/esm/plugins/video/config.js +1 -1
  122. package/esm/types/toolbar.d.ts +1 -2
  123. package/package.json +1 -1
  124. package/types/core/selection/helpers/index.d.ts +9 -3
  125. package/types/core/selection/selection.d.ts +6 -1
  126. package/types/index.d.ts +6 -1
  127. package/types/jodit.d.ts +1 -1
  128. package/types/modules/table/table.d.ts +3 -1
  129. package/types/plugins/drag-and-drop/drag-and-drop.d.ts +2 -0
  130. package/types/plugins/image-properties/config.d.ts +0 -3
  131. package/types/plugins/image-properties/interface.d.ts +121 -0
  132. package/types/plugins/search/helpers/highlight-text-ranges.d.ts +0 -4
  133. package/types/types/toolbar.d.ts +1 -2
@@ -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.2.14
4
+ * Version: v4.2.17
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -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.2.14
4
+ * Version: v4.2.17
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -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.2.14
4
+ * Version: v4.2.17
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -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.2.14
4
+ * Version: v4.2.17
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -25,11 +25,11 @@ return (self["webpackChunkjodit"] = self["webpackChunkjodit"] || []).push([[882]
25
25
  /* harmony import */ var jodit_core_helpers_checker_is_boolean__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9810);
26
26
  /* harmony import */ var jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72197);
27
27
  /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(931);
28
- /* harmony import */ var _helpers_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71722);
29
- /* harmony import */ var _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93676);
30
- /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22227);
31
- /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_4__);
32
- /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36115);
28
+ /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36115);
29
+ /* harmony import */ var _helpers_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71722);
30
+ /* harmony import */ var _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93676);
31
+ /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22227);
32
+ /* harmony import */ var _speech_recognize_svg__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_5__);
33
33
  /*!
34
34
  * Jodit Editor (https://xdsoft.net/jodit/)
35
35
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -42,8 +42,8 @@ return (self["webpackChunkjodit"] = self["webpackChunkjodit"] || []).push([[882]
42
42
 
43
43
 
44
44
 
45
- jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.speechRecognize = {
46
- api: _helpers_api__WEBPACK_IMPORTED_MODULE_2__/* .SpeechRecognition */ .o,
45
+ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.speechRecognize = {
46
+ api: _helpers_api__WEBPACK_IMPORTED_MODULE_3__/* .SpeechRecognition */ .o,
47
47
  sound: true,
48
48
  continuous: true,
49
49
  interimResults: true,
@@ -61,8 +61,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.speechRecogn
61
61
  'select all': 'selectall'
62
62
  }
63
63
  };
64
- jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_1__/* .Icon */ .I.set('speech-recognize', (_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_4___default()));
65
- jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.controls.speechRecognize = {
64
+ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_1__/* .Icon */ .I.set('speech-recognize', (_speech_recognize_svg__WEBPACK_IMPORTED_MODULE_5___default()));
65
+ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.controls.speechRecognize = {
66
66
  isActive(jodit, _) {
67
67
  const api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_0__/* .dataBind */ .m)(jodit, 'speech');
68
68
  return Boolean(api?.isEnabled);
@@ -79,7 +79,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.controls.spe
79
79
  let api = (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_0__/* .dataBind */ .m)(jodit, 'speech');
80
80
  if (!api) {
81
81
  const nativeApi = new Api();
82
- api = new _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_3__/* .RecognizeManager */ .g(jodit.async, nativeApi);
82
+ api = new _helpers_recognize_manager__WEBPACK_IMPORTED_MODULE_4__/* .RecognizeManager */ .g(jodit.async, nativeApi);
83
83
  api.lang = lang;
84
84
  api.continuous = continuous;
85
85
  api.interimResults = interimResults;
@@ -1,10 +1,10 @@
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.2.14
4
+ * Version: v4.2.17
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
 
9
9
 
10
- ((e,t)=>{if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var s=t();for(var i in s)("object"==typeof exports?exports:e)[i]=s[i]}})(self,(function(){return(self.webpackChunkjodit=self.webpackChunkjodit||[]).push([[882],{71096(e,t,s){"use strict";var i=s(9810),n=s(72197),r=s(931),o=s(71722),c=s(93676),u=s(22227),a=s.n(u),h=s(36115);h.T.prototype.speechRecognize={api:o.o,sound:!0,continuous:!0,interimResults:!0,commands:{"newline|enter":"enter","delete|remove word|delete word":"backspaceWordButton",comma:"inserthtml::,",underline:"inserthtml::_",hyphen:"inserthtml::-",space:"inserthtml:: ",question:"inserthtml::?",dot:"inserthtml::.","quote|quotes|open quote":"inserthtml::'","header|header h1":"formatblock::h1","select all":"selectall"}},r.I.set("speech-recognize",a()),h.T.prototype.controls.speechRecognize={isActive(e,t){const s=(0,n.m)(e,"speech");return!!s?.isEnabled},isDisabled:e=>!e.o.speechRecognize.api,exec(e,t,{button:s,control:r}){const{api:o,lang:u,continuous:a,interimResults:h,sound:p}=e.o.speechRecognize;if(!o)return void e.alert("Speech recognize API unsupported in your browser");let l=(0,n.m)(e,"speech");if(!l){const t=new o;l=new c.g(e.async,t),l.lang=u,l.continuous=a,l.interimResults=h,l.sound=p,(0,n.m)(e,"speech",l),l.on("pulse",(e=>{s.setMod("pulse",e)})),l.on("result",(t=>e.e.fire("speechRecognizeResult",t))),l.on("progress",(t=>e.e.fire("speechRecognizeProgressResult",t))),s.hookStatus("beforeDestruct",(()=>{l.destruct()}))}if(r.args){const e=r.args[0];if((0,i.L)(l[e]))return l[e]=!l[e],void(l.isEnabled&&l.restart())}l.toggle(),s.state.activated=l.isEnabled},name:"speechRecognize",command:"toggleSpeechRecognize",tooltip:"Speech Recognize",list:{sound:"Sound",interimResults:"Interim Results"},childTemplate(e,t,s){const i=(0,n.m)(e,"speech");return`<span class='jodit-speech-recognize__list-item'><input ${i?.[t]??e.o.speechRecognize[t]?"checked":""} class='jodit-checkbox' type='checkbox'>&nbsp;${s}</span>`},mods:{stroke:!1}}},81629(e,t,s){"use strict";s.d(t,{N(){return i},Z(){return n}});const i=440,n=940},71722(e,t,s){"use strict";s.d(t,{o(){return i}});const i=window.SpeechRecognition||window.webkitSpeechRecognition},50834(e,t,s){"use strict";function i(e,t){const[s,i]=t.split("::");e.execCommand(s,null,i)}s.d(t,{F(){return i}})},93676(e,t,s){"use strict";s.d(t,{g(){return a}});var i,n=s(31635),r=s(22664),o=s(43431),c=s(95473),u=s(81629);let a=i=class e extends o.h{set lang(e){this._lang=e,this._api.lang=e}get lang(){return this._lang}set continuous(e){this._continuous=e,this._api.continuous=e}get continuous(){return this._continuous}set interimResults(e){this._interimResults=e,this._api.interimResults=e}get interimResults(){return this._interimResults}constructor(e,t){super(),this.async=e,this._continuous=!1,this._interimResults=!1,this.sound=!0,this._isEnabled=!1,this._restartTimeout=0,this._onSpeechStart=e=>{this._isEnabled&&(this.async.clearTimeout(this._restartTimeout),this._restartTimeout=this.async.setTimeout((()=>{this.restart(),this.emit("pulse",!1),this._makeSound(u.Z)}),5e3),this.emit("pulse",!0))},this._progressTimeout=0,this._api=t,i._instances.add(this)}destruct(){this.stop(),i._instances.delete(this),super.destruct()}get isEnabled(){return this._isEnabled}start(){this._isEnabled||(this._isEnabled=!0,i._instances.forEach((e=>{e!==this&&e.stop()})),this._api.start(),this.__on("speechstart",this._onSpeechStart).__on("error",this._onError).__on("result",this._onResult))}stop(){if(this._isEnabled){try{this._api.abort(),this._api.stop()}catch{}this.__off("speechstart",this._onSpeechStart).__off("error",this._onError).__off("result",this._onResult),this.async.clearTimeout(this._restartTimeout),this._isEnabled=!1,this.emit("pulse",!1)}}toggle(){this._isEnabled?this.stop():this.start()}restart(){this.stop(),this.start()}__on(e,t){return this._api.addEventListener(e,t),this}__off(e,t){return this._api.removeEventListener(e,t),this}_onResult(e){if(!this._isEnabled)return;this.async.clearTimeout(this._progressTimeout);const t=e.results.item(e.resultIndex),{transcript:s}=t.item(0),i=()=>{try{this.async.clearTimeout(this._restartTimeout),this.emit("result",s)}catch{}this.restart(),this.emit("pulse",!1),this._makeSound(u.N)};if(!1===t.isFinal)return this.emit("progress",s),void(this._progressTimeout=this.async.setTimeout(i,500));i()}_onError(){this._isEnabled&&(this._makeSound(u.Z),this.emit("pulse",!1),this.restart())}_makeSound(e){this.sound&&(0,c.s)({frequency:e})}};a._instances=new Set,a=i=(0,n.Cg)([r.autobind],a)},95473(e,t,s){"use strict";s.d(t,{s(){return n}});var i=s(81629);function n({sec:e=.1,frequency:t=i.N,gain:s=.1,type:n="sine"}={}){if(void 0===window.AudioContext&&void 0===window.webkitAudioContext)return;const r=new(window.AudioContext||window.webkitAudioContext),o=r.createGain(),c=r.createOscillator();c.type=n,c.frequency.value=t,c.connect(o),o.connect(r.destination),c.start(),c.stop(r.currentTime+e),o.gain.value=s}},25202(e,t,s){"use strict";s.r(t),s.d(t,{ar(){return i},cs_cz(){return i},de(){return i},es(){return i},fa(){return i},fi(){return i},fr(){return i},he(){return i},hu(){return i},id(){return i},it(){return i},ja(){return i},ko(){return i},mn(){return i},nl(){return i},pl(){return i},pt_br(){return i},ru(){return i},tr(){return i},zh_cn(){return i},zh_tw(){return i}});var i=s(41324)},37873(e,t,s){"use strict";s.r(t),s.d(t,{SpeechRecognizeNative(){return d}});var i=s(31635),n=s(37075),r=s(66927),o=s(55186),c=s(56298),u=s(84976),a=s(71005),h=(s(71096),s(46173)),p=s(50834),l=s(25202);class d extends a.k{constructor(e){super(e),this._commandToWord={},e.o.speechRecognize.api&&e.registerButton({group:"state",name:"speechRecognize"})}afterInit(e){const{commands:t}=e.o.speechRecognize;t&&((0,c.JW)(l),(0,u.HP)(t,!1).forEach((s=>{s.split("|").forEach((i=>{i=i.trim().toLowerCase(),this._commandToWord[i]=t[s];const n=e.i18n(i);n!==i&&n.split("|").forEach((e=>{this._commandToWord[e.trim().toLowerCase()]=t[s].trim()}))}))})))}beforeDestruct(e){}onSpeechRecognizeProgressResult(e){this.messagePopup||(this.messagePopup=this.j.create.div("jodit-speech-recognize__popup")),this.j.workplace.appendChild(this.messagePopup),this.j.async.setTimeout((()=>{o.J.safeRemove(this.messagePopup)}),{label:"onSpeechRecognizeProgressResult",timeout:1e3}),this.messagePopup.innerText=e+"|"}onSpeechRecognizeResult(e){const{j:t}=this,{s}=t;if(o.J.safeRemove(this.messagePopup),!this._checkCommand(e)){const{range:i}=s,n=s.current();if(s.isCollapsed()&&o.J.isText(n)&&o.J.isOrContains(t.editor,n)&&n.nodeValue){const r=n.nodeValue;n.nodeValue=r+(/[\u00A0 ]\uFEFF*$/.test(r)?"":" ")+e,i.setStartAfter(n),s.selectRange(i),t.synchronizeValues()}else s.insertHTML(e)}}_checkCommand(e){return e=e.toLowerCase().replace(/\./g,""),!!this._commandToWord[e]&&((0,p.F)(this.j,this._commandToWord[e]),!0)}}(0,i.Cg)([(0,r.w)(":speechRecognizeProgressResult"),(0,n.s)()],d.prototype,"onSpeechRecognizeProgressResult",null),(0,i.Cg)([(0,r.w)(":speechRecognizeResult")],d.prototype,"onSpeechRecognizeResult",null),h.x.plugins.add("speech-recognize",d)},22227(e){e.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>'}},e=>e(e.s=37873)])}));
10
+ ((e,t)=>{if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var s=t();for(var i in s)("object"==typeof exports?exports:e)[i]=s[i]}})(self,(function(){return(self.webpackChunkjodit=self.webpackChunkjodit||[]).push([[882],{71096(e,t,s){"use strict";var i=s(9810),n=s(72197),r=s(931),o=s(36115),c=s(71722),u=s(93676),a=s(22227),h=s.n(a);o.T.prototype.speechRecognize={api:c.o,sound:!0,continuous:!0,interimResults:!0,commands:{"newline|enter":"enter","delete|remove word|delete word":"backspaceWordButton",comma:"inserthtml::,",underline:"inserthtml::_",hyphen:"inserthtml::-",space:"inserthtml:: ",question:"inserthtml::?",dot:"inserthtml::.","quote|quotes|open quote":"inserthtml::'","header|header h1":"formatblock::h1","select all":"selectall"}},r.I.set("speech-recognize",h()),o.T.prototype.controls.speechRecognize={isActive(e,t){const s=(0,n.m)(e,"speech");return!!s?.isEnabled},isDisabled:e=>!e.o.speechRecognize.api,exec(e,t,{button:s,control:r}){const{api:o,lang:c,continuous:a,interimResults:h,sound:p}=e.o.speechRecognize;if(!o)return void e.alert("Speech recognize API unsupported in your browser");let l=(0,n.m)(e,"speech");if(!l){const t=new o;l=new u.g(e.async,t),l.lang=c,l.continuous=a,l.interimResults=h,l.sound=p,(0,n.m)(e,"speech",l),l.on("pulse",(e=>{s.setMod("pulse",e)})),l.on("result",(t=>e.e.fire("speechRecognizeResult",t))),l.on("progress",(t=>e.e.fire("speechRecognizeProgressResult",t))),s.hookStatus("beforeDestruct",(()=>{l.destruct()}))}if(r.args){const e=r.args[0];if((0,i.L)(l[e]))return l[e]=!l[e],void(l.isEnabled&&l.restart())}l.toggle(),s.state.activated=l.isEnabled},name:"speechRecognize",command:"toggleSpeechRecognize",tooltip:"Speech Recognize",list:{sound:"Sound",interimResults:"Interim Results"},childTemplate(e,t,s){const i=(0,n.m)(e,"speech");return`<span class='jodit-speech-recognize__list-item'><input ${i?.[t]??e.o.speechRecognize[t]?"checked":""} class='jodit-checkbox' type='checkbox'>&nbsp;${s}</span>`},mods:{stroke:!1}}},81629(e,t,s){"use strict";s.d(t,{N(){return i},Z(){return n}});const i=440,n=940},71722(e,t,s){"use strict";s.d(t,{o(){return i}});const i=window.SpeechRecognition||window.webkitSpeechRecognition},50834(e,t,s){"use strict";function i(e,t){const[s,i]=t.split("::");e.execCommand(s,null,i)}s.d(t,{F(){return i}})},93676(e,t,s){"use strict";s.d(t,{g(){return a}});var i,n=s(31635),r=s(22664),o=s(43431),c=s(95473),u=s(81629);let a=i=class e extends o.h{set lang(e){this._lang=e,this._api.lang=e}get lang(){return this._lang}set continuous(e){this._continuous=e,this._api.continuous=e}get continuous(){return this._continuous}set interimResults(e){this._interimResults=e,this._api.interimResults=e}get interimResults(){return this._interimResults}constructor(e,t){super(),this.async=e,this._continuous=!1,this._interimResults=!1,this.sound=!0,this._isEnabled=!1,this._restartTimeout=0,this._onSpeechStart=e=>{this._isEnabled&&(this.async.clearTimeout(this._restartTimeout),this._restartTimeout=this.async.setTimeout((()=>{this.restart(),this.emit("pulse",!1),this._makeSound(u.Z)}),5e3),this.emit("pulse",!0))},this._progressTimeout=0,this._api=t,i._instances.add(this)}destruct(){this.stop(),i._instances.delete(this),super.destruct()}get isEnabled(){return this._isEnabled}start(){this._isEnabled||(this._isEnabled=!0,i._instances.forEach((e=>{e!==this&&e.stop()})),this._api.start(),this.__on("speechstart",this._onSpeechStart).__on("error",this._onError).__on("result",this._onResult))}stop(){if(this._isEnabled){try{this._api.abort(),this._api.stop()}catch{}this.__off("speechstart",this._onSpeechStart).__off("error",this._onError).__off("result",this._onResult),this.async.clearTimeout(this._restartTimeout),this._isEnabled=!1,this.emit("pulse",!1)}}toggle(){this._isEnabled?this.stop():this.start()}restart(){this.stop(),this.start()}__on(e,t){return this._api.addEventListener(e,t),this}__off(e,t){return this._api.removeEventListener(e,t),this}_onResult(e){if(!this._isEnabled)return;this.async.clearTimeout(this._progressTimeout);const t=e.results.item(e.resultIndex),{transcript:s}=t.item(0),i=()=>{try{this.async.clearTimeout(this._restartTimeout),this.emit("result",s)}catch{}this.restart(),this.emit("pulse",!1),this._makeSound(u.N)};if(!1===t.isFinal)return this.emit("progress",s),void(this._progressTimeout=this.async.setTimeout(i,500));i()}_onError(){this._isEnabled&&(this._makeSound(u.Z),this.emit("pulse",!1),this.restart())}_makeSound(e){this.sound&&(0,c.s)({frequency:e})}};a._instances=new Set,a=i=(0,n.Cg)([r.autobind],a)},95473(e,t,s){"use strict";s.d(t,{s(){return n}});var i=s(81629);function n({sec:e=.1,frequency:t=i.N,gain:s=.1,type:n="sine"}={}){if(void 0===window.AudioContext&&void 0===window.webkitAudioContext)return;const r=new(window.AudioContext||window.webkitAudioContext),o=r.createGain(),c=r.createOscillator();c.type=n,c.frequency.value=t,c.connect(o),o.connect(r.destination),c.start(),c.stop(r.currentTime+e),o.gain.value=s}},25202(e,t,s){"use strict";s.r(t),s.d(t,{ar(){return i},cs_cz(){return i},de(){return i},es(){return i},fa(){return i},fi(){return i},fr(){return i},he(){return i},hu(){return i},id(){return i},it(){return i},ja(){return i},ko(){return i},mn(){return i},nl(){return i},pl(){return i},pt_br(){return i},ru(){return i},tr(){return i},zh_cn(){return i},zh_tw(){return i}});var i=s(41324)},37873(e,t,s){"use strict";s.r(t),s.d(t,{SpeechRecognizeNative(){return d}});var i=s(31635),n=s(37075),r=s(66927),o=s(55186),c=s(56298),u=s(84976),a=s(71005),h=(s(71096),s(46173)),p=s(50834),l=s(25202);class d extends a.k{constructor(e){super(e),this._commandToWord={},e.o.speechRecognize.api&&e.registerButton({group:"state",name:"speechRecognize"})}afterInit(e){const{commands:t}=e.o.speechRecognize;t&&((0,c.JW)(l),(0,u.HP)(t,!1).forEach((s=>{s.split("|").forEach((i=>{i=i.trim().toLowerCase(),this._commandToWord[i]=t[s];const n=e.i18n(i);n!==i&&n.split("|").forEach((e=>{this._commandToWord[e.trim().toLowerCase()]=t[s].trim()}))}))})))}beforeDestruct(e){}onSpeechRecognizeProgressResult(e){this.messagePopup||(this.messagePopup=this.j.create.div("jodit-speech-recognize__popup")),this.j.workplace.appendChild(this.messagePopup),this.j.async.setTimeout((()=>{o.J.safeRemove(this.messagePopup)}),{label:"onSpeechRecognizeProgressResult",timeout:1e3}),this.messagePopup.innerText=e+"|"}onSpeechRecognizeResult(e){const{j:t}=this,{s}=t;if(o.J.safeRemove(this.messagePopup),!this._checkCommand(e)){const{range:i}=s,n=s.current();if(s.isCollapsed()&&o.J.isText(n)&&o.J.isOrContains(t.editor,n)&&n.nodeValue){const r=n.nodeValue;n.nodeValue=r+(/[\u00A0 ]\uFEFF*$/.test(r)?"":" ")+e,i.setStartAfter(n),s.selectRange(i),t.synchronizeValues()}else s.insertHTML(e)}}_checkCommand(e){return e=e.toLowerCase().replace(/\./g,""),!!this._commandToWord[e]&&((0,p.F)(this.j,this._commandToWord[e]),!0)}}(0,i.Cg)([(0,r.w)(":speechRecognizeProgressResult"),(0,n.s)()],d.prototype,"onSpeechRecognizeProgressResult",null),(0,i.Cg)([(0,r.w)(":speechRecognizeResult")],d.prototype,"onSpeechRecognizeResult",null),h.x.plugins.add("speech-recognize",d)},22227(e){e.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>'}},e=>e(e.s=37873)])}));
package/es5/jodit.css CHANGED
@@ -1,40 +1,18 @@
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.2.14
4
+ * Version: v4.2.17
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
  /*!
9
9
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
10
10
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
11
- * Version: v4.2.14
11
+ * Version: v4.2.17
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */
15
15
 
16
- /*!
17
- * Jodit Editor (https://xdsoft.net/jodit/)
18
- * Released under MIT see LICENSE.txt in the project root for license information.
19
- * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
20
- */
21
- .jodit-about {
22
- padding: 20px;
23
- }
24
- .jodit-about a {
25
- color: #459ce7;
26
- text-decoration: none;
27
- }
28
- .jodit-about a:focus,
29
- .jodit-about a:hover {
30
- color: #23527c;
31
- outline: 0;
32
- text-decoration: underline;
33
- }
34
- .jodit-about div {
35
- margin-bottom: calc(8px / 2);
36
- }
37
-
38
16
  /*!
39
17
  * Jodit Editor (https://xdsoft.net/jodit/)
40
18
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -845,111 +823,6 @@
845
823
  outline: 1px dashed #bd2130;
846
824
  }
847
825
 
848
- /*!
849
- * Jodit Editor (https://xdsoft.net/jodit/)
850
- * Released under MIT see LICENSE.txt in the project root for license information.
851
- * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
852
- */
853
- .jodit-popup {
854
- position: static;
855
- width: auto;
856
- max-width: none;
857
- height: auto;
858
- padding: 0;
859
- border: 0;
860
- margin: 0;
861
- background: 0 0;
862
- float: none;
863
- outline: 0;
864
- position: fixed;
865
- z-index: 10000001;
866
- display: inline-block;
867
- -webkit-box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
868
- 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
869
- box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
870
- 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
871
- -webkit-transform: translate3d(0, 0, 0);
872
- transform: translate3d(0, 0, 0);
873
- }
874
- .jodit-popup__content {
875
- font-family: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
876
- oxygen-sans, ubuntu, cantarell, 'Helvetica Neue', sans-serif;
877
- font-size: 14px;
878
- overflow: auto;
879
- max-height: 300px;
880
- padding: 8px;
881
- background: #fff;
882
- overflow-scrolling: touch;
883
- }
884
- .jodit-popup_padding_false .jodit-popup__content {
885
- padding: 0;
886
- }
887
- .jodit-popup_max-height_false .jodit-popup__content {
888
- max-height: -webkit-fit-content;
889
- max-height: -moz-fit-content;
890
- max-height: fit-content;
891
- }
892
-
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-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
897
- */
898
- .jodit-context-menu {
899
- position: static;
900
- width: auto;
901
- max-width: none;
902
- height: auto;
903
- padding: 0;
904
- border: 0;
905
- margin: 0;
906
- background: 0 0;
907
- float: none;
908
- outline: 0;
909
- position: fixed;
910
- z-index: 10000001;
911
- display: inline-block;
912
- -webkit-box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
913
- 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
914
- box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
915
- 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
916
- -webkit-transform: translate3d(0, 0, 0);
917
- transform: translate3d(0, 0, 0);
918
- z-index: 30000005;
919
- font-family: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
920
- oxygen-sans, ubuntu, cantarell, 'Helvetica Neue', sans-serif;
921
- font-size: 14px;
922
- }
923
- .jodit-context-menu__content {
924
- font-family: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
925
- oxygen-sans, ubuntu, cantarell, 'Helvetica Neue', sans-serif;
926
- font-size: 14px;
927
- overflow: auto;
928
- max-height: 300px;
929
- padding: 8px;
930
- background: #fff;
931
- overflow-scrolling: touch;
932
- }
933
- .jodit-context-menu_padding_false .jodit-context-menu__content {
934
- padding: 0;
935
- }
936
- .jodit-context-menu_max-height_false .jodit-context-menu__content {
937
- max-height: -webkit-fit-content;
938
- max-height: -moz-fit-content;
939
- max-height: fit-content;
940
- }
941
- .jodit-context-menu .jodit-ui-button {
942
- display: -webkit-box;
943
- display: -ms-flexbox;
944
- display: flex;
945
- }
946
- .jodit-context-menu button {
947
- width: 100%;
948
- }
949
- .jodit-context-menu_theme_dark {
950
- background-color: #575757;
951
- }
952
-
953
826
  .jodit-ui-button-group {
954
827
  margin-bottom: 8px;
955
828
  }
@@ -1598,6 +1471,51 @@
1598
1471
  opacity: 0;
1599
1472
  }
1600
1473
 
1474
+ /*!
1475
+ * Jodit Editor (https://xdsoft.net/jodit/)
1476
+ * Released under MIT see LICENSE.txt in the project root for license information.
1477
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
1478
+ */
1479
+ .jodit-popup {
1480
+ position: static;
1481
+ width: auto;
1482
+ max-width: none;
1483
+ height: auto;
1484
+ padding: 0;
1485
+ border: 0;
1486
+ margin: 0;
1487
+ background: 0 0;
1488
+ float: none;
1489
+ outline: 0;
1490
+ position: fixed;
1491
+ z-index: 10000001;
1492
+ display: inline-block;
1493
+ -webkit-box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
1494
+ 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
1495
+ box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
1496
+ 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
1497
+ -webkit-transform: translate3d(0, 0, 0);
1498
+ transform: translate3d(0, 0, 0);
1499
+ }
1500
+ .jodit-popup__content {
1501
+ font-family: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
1502
+ oxygen-sans, ubuntu, cantarell, 'Helvetica Neue', sans-serif;
1503
+ font-size: 14px;
1504
+ overflow: auto;
1505
+ max-height: 300px;
1506
+ padding: 8px;
1507
+ background: #fff;
1508
+ overflow-scrolling: touch;
1509
+ }
1510
+ .jodit-popup_padding_false .jodit-popup__content {
1511
+ padding: 0;
1512
+ }
1513
+ .jodit-popup_max-height_false .jodit-popup__content {
1514
+ max-height: -webkit-fit-content;
1515
+ max-height: -moz-fit-content;
1516
+ max-height: fit-content;
1517
+ }
1518
+
1601
1519
  /*!
1602
1520
  * Jodit Editor (https://xdsoft.net/jodit/)
1603
1521
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -3259,6 +3177,66 @@
3259
3177
  z-index: 20000004;
3260
3178
  }
3261
3179
 
3180
+ /*!
3181
+ * Jodit Editor (https://xdsoft.net/jodit/)
3182
+ * Released under MIT see LICENSE.txt in the project root for license information.
3183
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
3184
+ */
3185
+ .jodit-context-menu {
3186
+ position: static;
3187
+ width: auto;
3188
+ max-width: none;
3189
+ height: auto;
3190
+ padding: 0;
3191
+ border: 0;
3192
+ margin: 0;
3193
+ background: 0 0;
3194
+ float: none;
3195
+ outline: 0;
3196
+ position: fixed;
3197
+ z-index: 10000001;
3198
+ display: inline-block;
3199
+ -webkit-box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
3200
+ 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
3201
+ box-shadow: 0 4px 1px -2px rgba(76, 76, 76, 0.2),
3202
+ 0 3px 3px 0 rgb(76 76 76 / 15%), 0 1px 4px 0 rgb(76 76 76 / 13%);
3203
+ -webkit-transform: translate3d(0, 0, 0);
3204
+ transform: translate3d(0, 0, 0);
3205
+ z-index: 30000005;
3206
+ font-family: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
3207
+ oxygen-sans, ubuntu, cantarell, 'Helvetica Neue', sans-serif;
3208
+ font-size: 14px;
3209
+ }
3210
+ .jodit-context-menu__content {
3211
+ font-family: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
3212
+ oxygen-sans, ubuntu, cantarell, 'Helvetica Neue', sans-serif;
3213
+ font-size: 14px;
3214
+ overflow: auto;
3215
+ max-height: 300px;
3216
+ padding: 8px;
3217
+ background: #fff;
3218
+ overflow-scrolling: touch;
3219
+ }
3220
+ .jodit-context-menu_padding_false .jodit-context-menu__content {
3221
+ padding: 0;
3222
+ }
3223
+ .jodit-context-menu_max-height_false .jodit-context-menu__content {
3224
+ max-height: -webkit-fit-content;
3225
+ max-height: -moz-fit-content;
3226
+ max-height: fit-content;
3227
+ }
3228
+ .jodit-context-menu .jodit-ui-button {
3229
+ display: -webkit-box;
3230
+ display: -ms-flexbox;
3231
+ display: flex;
3232
+ }
3233
+ .jodit-context-menu button {
3234
+ width: 100%;
3235
+ }
3236
+ .jodit-context-menu_theme_dark {
3237
+ background-color: #575757;
3238
+ }
3239
+
3262
3240
  /*!
3263
3241
  * Jodit Editor (https://xdsoft.net/jodit/)
3264
3242
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -4087,6 +4065,28 @@ a + .jodit-file-browser-tree__source-title {
4087
4065
  }
4088
4066
  }
4089
4067
 
4068
+ /*!
4069
+ * Jodit Editor (https://xdsoft.net/jodit/)
4070
+ * Released under MIT see LICENSE.txt in the project root for license information.
4071
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
4072
+ */
4073
+ .jodit-about {
4074
+ padding: 20px;
4075
+ }
4076
+ .jodit-about a {
4077
+ color: #459ce7;
4078
+ text-decoration: none;
4079
+ }
4080
+ .jodit-about a:focus,
4081
+ .jodit-about a:hover {
4082
+ color: #23527c;
4083
+ outline: 0;
4084
+ text-decoration: underline;
4085
+ }
4086
+ .jodit-about div {
4087
+ margin-bottom: calc(8px / 2);
4088
+ }
4089
+
4090
4090
  /*!
4091
4091
  * Jodit Editor (https://xdsoft.net/jodit/)
4092
4092
  * Released under MIT see LICENSE.txt in the project root for license information.