jodit 4.14.7 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/es2015/jodit.css +2 -2
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +11 -11
  5. package/es2015/jodit.js +82 -82
  6. package/es2015/jodit.min.css +1 -1
  7. package/es2015/jodit.min.js +11 -11
  8. package/es2015/plugins/debug/debug.css +1 -1
  9. package/es2015/plugins/debug/debug.js +1 -1
  10. package/es2015/plugins/debug/debug.min.js +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  12. package/es2015/plugins/speech-recognize/speech-recognize.js +2 -2
  13. package/es2015/plugins/speech-recognize/speech-recognize.min.js +2 -2
  14. package/es2018/jodit.fat.min.css +1 -1
  15. package/es2018/jodit.fat.min.js +11 -11
  16. package/es2018/jodit.min.css +1 -1
  17. package/es2018/jodit.min.js +11 -11
  18. package/es2018/plugins/debug/debug.min.js +1 -1
  19. package/es2018/plugins/speech-recognize/speech-recognize.min.js +2 -2
  20. package/es2021/jodit.css +2 -2
  21. package/es2021/jodit.fat.min.css +1 -1
  22. package/es2021/jodit.fat.min.js +12 -12
  23. package/es2021/jodit.js +82 -82
  24. package/es2021/jodit.min.css +1 -1
  25. package/es2021/jodit.min.js +12 -12
  26. package/es2021/plugins/debug/debug.css +1 -1
  27. package/es2021/plugins/debug/debug.js +1 -1
  28. package/es2021/plugins/debug/debug.min.js +1 -1
  29. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  30. package/es2021/plugins/speech-recognize/speech-recognize.js +2 -2
  31. package/es2021/plugins/speech-recognize/speech-recognize.min.js +2 -2
  32. package/es2021.en/jodit.css +2 -2
  33. package/es2021.en/jodit.fat.min.css +1 -1
  34. package/es2021.en/jodit.fat.min.js +75 -75
  35. package/es2021.en/jodit.js +82 -82
  36. package/es2021.en/jodit.min.css +1 -1
  37. package/es2021.en/jodit.min.js +75 -75
  38. package/es2021.en/plugins/debug/debug.css +1 -1
  39. package/es2021.en/plugins/debug/debug.js +1 -1
  40. package/es2021.en/plugins/debug/debug.min.js +1 -1
  41. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  42. package/es2021.en/plugins/speech-recognize/speech-recognize.js +2 -2
  43. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +2 -2
  44. package/es5/jodit.css +3 -3
  45. package/es5/jodit.fat.min.css +1 -1
  46. package/es5/jodit.fat.min.js +2 -2
  47. package/es5/jodit.js +82 -82
  48. package/es5/jodit.min.css +3 -3
  49. package/es5/jodit.min.js +2 -2
  50. package/es5/plugins/debug/debug.css +1 -1
  51. package/es5/plugins/debug/debug.js +1 -1
  52. package/es5/plugins/debug/debug.min.js +1 -1
  53. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.js +2 -2
  55. package/es5/plugins/speech-recognize/speech-recognize.min.js +2 -2
  56. package/es5/polyfills.fat.min.js +1 -1
  57. package/es5/polyfills.js +1 -1
  58. package/es5/polyfills.min.js +1 -1
  59. package/esm/core/constants.js +1 -1
  60. package/esm/modules/image-editor/icons/crop.svg.js +1 -1
  61. package/esm/modules/image-editor/icons/resize.svg.js +1 -1
  62. package/esm/modules/widget/color-picker/palette.svg.js +1 -1
  63. package/esm/plugins/about/about.svg.js +1 -1
  64. package/esm/plugins/add-new-line/enter.svg.js +1 -1
  65. package/esm/plugins/ai-assistant/ai-assistant.svg.js +1 -1
  66. package/esm/plugins/ai-assistant/chat-bot.svg.js +1 -1
  67. package/esm/plugins/bold/icons/bold.svg.js +1 -1
  68. package/esm/plugins/bold/icons/italic.svg.js +1 -1
  69. package/esm/plugins/bold/icons/strikethrough.svg.js +1 -1
  70. package/esm/plugins/bold/icons/subscript.svg.js +1 -1
  71. package/esm/plugins/bold/icons/superscript.svg.js +1 -1
  72. package/esm/plugins/bold/icons/underline.svg.js +1 -1
  73. package/esm/plugins/class-span/class-span.svg.js +1 -1
  74. package/esm/plugins/clean-html/eraser.svg.js +1 -1
  75. package/esm/plugins/clipboard/icons/copy.svg.js +1 -1
  76. package/esm/plugins/clipboard/icons/cut.svg.js +1 -1
  77. package/esm/plugins/clipboard/icons/paste.svg.js +1 -1
  78. package/esm/plugins/clipboard/icons/select-all.svg.js +1 -1
  79. package/esm/plugins/color/brush.svg.js +1 -1
  80. package/esm/plugins/copy-format/copy-format.svg.js +1 -1
  81. package/esm/plugins/font/icons/font.svg.js +1 -1
  82. package/esm/plugins/font/icons/fontsize.svg.js +1 -1
  83. package/esm/plugins/format-block/paragraph.svg.js +1 -1
  84. package/esm/plugins/fullsize/icons/fullsize.svg.js +1 -1
  85. package/esm/plugins/fullsize/icons/shrink.svg.js +1 -1
  86. package/esm/plugins/hr/hr.svg.js +1 -1
  87. package/esm/plugins/image/image.svg.js +1 -1
  88. package/esm/plugins/indent/icons/indent.svg.js +1 -1
  89. package/esm/plugins/indent/icons/outdent.svg.js +1 -1
  90. package/esm/plugins/inline-popup/icons/addcolumn.svg.js +1 -1
  91. package/esm/plugins/inline-popup/icons/addrow.svg.js +1 -1
  92. package/esm/plugins/inline-popup/icons/merge.svg.js +1 -1
  93. package/esm/plugins/inline-popup/icons/splitg.svg.js +1 -1
  94. package/esm/plugins/inline-popup/icons/splitv.svg.js +1 -1
  95. package/esm/plugins/inline-popup/icons/th-list.svg.js +1 -1
  96. package/esm/plugins/inline-popup/icons/th.svg.js +1 -1
  97. package/esm/plugins/justify/justify.svg.js +1 -1
  98. package/esm/plugins/line-height/line-height.svg.js +1 -1
  99. package/esm/plugins/link/icons/link.svg.js +1 -1
  100. package/esm/plugins/link/icons/unlink.svg.js +1 -1
  101. package/esm/plugins/ordered-list/icons/ol.svg.js +1 -1
  102. package/esm/plugins/ordered-list/icons/ul.svg.js +1 -1
  103. package/esm/plugins/print/print.svg.js +1 -1
  104. package/esm/plugins/redo-undo/icons/redo.svg.js +1 -1
  105. package/esm/plugins/redo-undo/icons/undo.svg.js +1 -1
  106. package/esm/plugins/search/search.svg.js +1 -1
  107. package/esm/plugins/source/source.svg.js +1 -1
  108. package/esm/plugins/speech-recognize/speech-recognize.svg.js +1 -1
  109. package/esm/plugins/spellcheck/spellcheck.svg.js +1 -1
  110. package/esm/plugins/symbols/symbols.svg.js +1 -1
  111. package/esm/plugins/table/table.svg.js +1 -1
  112. package/esm/plugins/video/video.svg.js +1 -1
  113. package/esm/styles/icons/angle-down.svg.js +1 -1
  114. package/esm/styles/icons/angle-left.svg.js +1 -1
  115. package/esm/styles/icons/angle-right.svg.js +1 -1
  116. package/esm/styles/icons/angle-up.svg.js +1 -1
  117. package/esm/styles/icons/bin.svg.js +1 -1
  118. package/esm/styles/icons/cancel.svg.js +1 -1
  119. package/esm/styles/icons/center.svg.js +1 -1
  120. package/esm/styles/icons/check.svg.js +1 -1
  121. package/esm/styles/icons/chevron.svg.js +1 -1
  122. package/esm/styles/icons/dots.svg.js +1 -1
  123. package/esm/styles/icons/download.svg.js +1 -1
  124. package/esm/styles/icons/eye.svg.js +1 -1
  125. package/esm/styles/icons/file.svg.js +1 -1
  126. package/esm/styles/icons/folder.svg.js +1 -1
  127. package/esm/styles/icons/info-circle.svg.js +1 -1
  128. package/esm/styles/icons/left.svg.js +1 -1
  129. package/esm/styles/icons/lock.svg.js +1 -1
  130. package/esm/styles/icons/ok.svg.js +1 -1
  131. package/esm/styles/icons/pencil.svg.js +1 -1
  132. package/esm/styles/icons/pins.svg.js +1 -1
  133. package/esm/styles/icons/plus.svg.js +1 -1
  134. package/esm/styles/icons/resize-handler.svg.js +1 -1
  135. package/esm/styles/icons/right.svg.js +1 -1
  136. package/esm/styles/icons/save.svg.js +1 -1
  137. package/esm/styles/icons/settings.svg.js +1 -1
  138. package/esm/styles/icons/unlock.svg.js +1 -1
  139. package/esm/styles/icons/update.svg.js +1 -1
  140. package/esm/styles/icons/upload.svg.js +1 -1
  141. package/esm/styles/icons/valign.svg.js +1 -1
  142. package/package.json +1 -1
@@ -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.14.7
4
+ * Version: v4.15.0
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.14.7
4
+ * Version: v4.15.0
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.14.7
4
+ * Version: v4.15.0
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.14.7
4
+ * Version: v4.15.0
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.14.7
4
+ * Version: v4.15.0
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -635,7 +635,7 @@ _jodit__WEBPACK_IMPORTED_MODULE_8__.Jodit.plugins.add('speech-recognize', Speech
635
635
  /***/ 22227:
636
636
  /***/ (function(module) {
637
637
 
638
- 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>"
638
+ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <g fill=\"none\"> <rect x=\"9\" y=\"2\" width=\"6\" height=\"13\" rx=\"3\"/><path d=\"M5 10v2a7 7 0 0 0 14 0v-2M12 19v3m-4 0h8\"/> </g> </svg>"
639
639
 
640
640
  /***/ })
641
641
 
@@ -1,8 +1,8 @@
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.14.7
4
+ * Version: v4.15.0
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
- !function(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],{75143:function(e,t,s){"use strict";var i=s(22289),n=s(85932),o=s(7909),r=s(36400),u=s(29434),c=s(5266),a=s(97743),l=s(68097),h=s(22227),p=s.n(h);c.Config.prototype.speechRecognize={api:void 0!==a.SpeechRecognition?a.SpeechRecognition:null,sound:!0,continuous:!1,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"}},u.Icon.set("speech-recognize",p()),c.Config.prototype.controls.speechRecognize={isVisible:e=>!!e.o.speechRecognize.api,isActive(e,t){let s=(0,r.dataBind)(e,"speech");return!!s?.isEnabled},isDisabled:e=>!e.o.speechRecognize.api,exec(e,t,{button:s,control:u}){let{api:c,lang:a,continuous:h,interimResults:p,sound:d}=e.o.speechRecognize;if(!c)return void e.alert("Speech recognize API unsupported in your browser");let _=(0,r.dataBind)(e,"speech");if(!_){let t=new c;(_=new l.RecognizeManager(e.async,t)).lang=(0,n.isString)(a)?a:(0,o.attr)(e.od.documentElement,"lang")??void 0,_.continuous=h,_.interimResults=p,_.sound=d,(0,r.dataBind)(e,"speech",_),_.on("pulse",e=>{s.setMod("pulse",e)}),_.on("result",t=>e.e.fire("speechRecognizeResult",t)),_.on("progress",t=>e.e.fire("speechRecognizeProgressResult",t)),_.on("error",t=>e.message.error(t)),e.hookStatus("beforeDestruct",()=>{(0,r.dataBind)(e,"speech",null),_.destruct()})}if(u.args){let e=u.args[0];if((0,i.isBoolean)(_[e])){_[e]=!_[e],_.isEnabled&&_.restart();return}}_.toggle(),_.isEnabled&&s.setMod("pulse",!0),s.state.activated=_.isEnabled},name:"speechRecognize",command:"toggleSpeechRecognize",tooltip:"Speech Recognize",list:{sound:"Sound",interimResults:"Interim Results"},childTemplate(e,t,s){let i=(0,r.dataBind)(e,"speech"),n=i?.[t]??e.o.speechRecognize[t];return`<span class='jodit-speech-recognize__list-item'><input ${n?"checked":""} class='jodit-checkbox' type='checkbox'>&nbsp;${s}</span>`},mods:{stroke:!1}}},97743:function(e,t,s){"use strict";var i=s(81937);let n=i.globalWindow?i.globalWindow.SpeechRecognition||i.globalWindow.webkitSpeechRecognition:void 0;s.d(t,["SpeechRecognition",0,n])},86581:function(e,t,s){"use strict";function i(e,t){let[s,i]=t.split("::");"open"===s.toLowerCase()&&i&&/^(javascript:|data:|vbscript:)/i.test(i.trim())||e.execCommand(s,null,i)}s.d(t,{execSpellCommand:function(){return i}})},68097:function(e,t,s){"use strict";s.d(t,{RecognizeManager:function(){return c}});var i=s(25045),n=s(31635),o=s(84839),r=s(60216),u=s(32560);class c extends r.Eventify{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}destruct(){this.stop(),(0,u.closeSound)(this),c._instances.delete(this),super.destruct()}get isEnabled(){return this._isEnabled}start(){if(!this._isEnabled){this._isEnabled=!0,c._instances.forEach(e=>{e!==this&&e.stop()});try{this._api.start()}catch(e){this._onError(e),this.stop();return}this.__on("speechstart",this._onSpeechStart).__on("error",this._onError).__on("result",this._onProgress).__on("end",this._onResults)}}stop(){this._isEnabled&&(this._api.abort(),this._api.stop(),this.__off("speechstart",this._onSpeechStart).__off("error",this._onError).__off("result",this._onProgress).__off("end",this._onResults),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}_onResults(e){this.emit("pulse",!1),this.emit("result",this.__interimResults),this.__interimResults="",this._makeSound(440),this.restart()}_onProgress(e){if(this._isEnabled&&(this.__interimResults="",e.results)){for(let t=0;t<e.results.length;t++){let s=e.results.item(t);if(s.length){let{transcript:e}=s.item(0);this.__interimResults+=e}}this.__interimResults&&this.emit("progress",this.__interimResults)}}_onError(e){"voice-unavailable"===e.error&&this.emit("error","Voice unavailable"),"not-allowed"===e.error&&this.emit("error","Not allowed"),("language-unavailable"===e.error||"language-not-supported"===e.error)&&this.emit("error","Language unavailable"),this._makeSound(940),this.emit("pulse",!1),this.stop()}_makeSound(e){this.sound&&(0,u.sound)(this,{frequency:e})}constructor(e,t){super(),(0,i._)(this,"async",void 0),(0,i._)(this,"_lang",void 0),(0,i._)(this,"_continuous",void 0),(0,i._)(this,"_interimResults",void 0),(0,i._)(this,"sound",void 0),(0,i._)(this,"_isEnabled",void 0),(0,i._)(this,"_restartTimeout",void 0),(0,i._)(this,"_onSpeechStart",void 0),(0,i._)(this,"_api",void 0),(0,i._)(this,"__interimResults",void 0),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(940)},5e3),this.emit("pulse",!0))},this.__interimResults="",this._api=t,c._instances.add(this)}}(0,i._)(c,"_instances",new Set),(0,n.__decorate)([o.autobind],c.prototype,"_onResults",null),(0,n.__decorate)([o.autobind],c.prototype,"_onProgress",null),(0,n.__decorate)([o.autobind],c.prototype,"_onError",null)},32560:function(e,t,s){"use strict";s.d(t,{closeSound:function(){return r},sound:function(){return o}});var i=s(81937);let n=new WeakMap;function o(e,{sec:t=.1,frequency:s=440,gain:r=.1,type:u="sine"}={}){let c=function(e){if(!i.globalWindow)return null;let t=n.get(e);if(t&&"closed"!==t.state)return t;let s=i.globalWindow.AudioContext||i.globalWindow.webkitAudioContext;if(!s)return null;let o=new s;return n.set(e,o),o}(e);if(!c)return;let a=c.createGain(),l=c.createOscillator();l.type=u,l.frequency.value=s,a.gain.value=r,l.connect(a),a.connect(c.destination),l.start(),l.stop(c.currentTime+t)}function r(e){let t=n.get(e);t&&(n.delete(e),"closed"!==t.state&&t.close())}},43219:function(e,t,s){"use strict";s.r(t),s.d(t,{ar:function(){return i},cs_cz:function(){return i},de:function(){return i},es:function(){return i},fa:function(){return i},fi:function(){return i},fr:function(){return i},he:function(){return i},hu:function(){return i},id:function(){return i},it:function(){return i},ja:function(){return i},ko:function(){return i},mn:function(){return i},nl:function(){return i},no:function(){return i},pl:function(){return i},pt_br:function(){return i},ru:function(){return i},sk:function(){return i},tr:function(){return i},ua:function(){return i},zh_cn:function(){return i},zh_tw:function(){return i}});var i=s(41324)},31262:function(e,t,s){"use strict";s.r(t),s.d(t,{SpeechRecognizeNative:function(){return d}});var i=s(25045),n=s(31635),o=s(68616),r=s(23211),u=s(28077),c=s(71125),a=s(91206);s(75143);var l=s(73302),h=s(86581),p=s(43219);class d extends a.Plugin{afterInit(e){let{commands:t}=e.o.speechRecognize;t&&((0,u.extendLang)(p),(0,c.keys)(t,!1).forEach(s=>{s.split("|").forEach(i=>{i=i.trim().toLowerCase(),this._commandToWord[i]=t[s];let n=e.i18n(i);n!==i&&n.split("|").forEach(e=>{this._commandToWord[e.trim().toLowerCase()]=t[s].trim()})})}))}beforeDestruct(e){r.Dom.safeRemove(this.messagePopup)}onSpeechRecognizeProgressResult(e){this.messagePopup||(this.messagePopup=this.j.create.div("jodit-speech-recognize__popup")),r.Dom.append(this.j.workplace,this.messagePopup),this.j.async.clearTimeout(this.__hidePopupTimeout),this.__hidePopupTimeout=this.j.async.setTimeout(()=>{r.Dom.safeRemove(this.messagePopup)},1e3),this.messagePopup.innerText=e+"|"}onSpeechRecognizeResult(e){this.j.async.clearTimeout(this.__hidePopupTimeout),r.Dom.safeRemove(this.messagePopup);let{j:t}=this,{s}=t;if(!this._checkCommand(e)){let{range:i}=s,n=s.current();if(s.isCollapsed()&&r.Dom.isText(n)&&r.Dom.isOrContains(t.editor,n)&&n.nodeValue){let o=n.nodeValue;n.nodeValue=o+(/[\u00A0 ]\uFEFF*$/.test(o)?"":" ")+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,h.execSpellCommand)(this.j,this._commandToWord[e]),!0)}constructor(...e){super(...e),(0,i._)(this,"buttons",[{group:"state",name:"speechRecognize"}]),(0,i._)(this,"messagePopup",void 0),(0,i._)(this,"__hidePopupTimeout",void 0),(0,i._)(this,"_commandToWord",{})}}(0,n.__decorate)([(0,o.watch)(":speechRecognizeProgressResult")],d.prototype,"onSpeechRecognizeProgressResult",null),(0,n.__decorate)([(0,o.watch)(":speechRecognizeResult")],d.prototype,"onSpeechRecognizeResult",null),l.Jodit.plugins.add("speech-recognize",d)},22227:function(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>'}},function(e){return e(31262)}])});
8
+ !function(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],{75143:function(e,t,s){"use strict";var i=s(22289),n=s(85932),o=s(7909),r=s(36400),u=s(29434),c=s(5266),a=s(97743),l=s(68097),h=s(22227),d=s.n(h);c.Config.prototype.speechRecognize={api:void 0!==a.SpeechRecognition?a.SpeechRecognition:null,sound:!0,continuous:!1,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"}},u.Icon.set("speech-recognize",d()),c.Config.prototype.controls.speechRecognize={isVisible:e=>!!e.o.speechRecognize.api,isActive(e,t){let s=(0,r.dataBind)(e,"speech");return!!s?.isEnabled},isDisabled:e=>!e.o.speechRecognize.api,exec(e,t,{button:s,control:u}){let{api:c,lang:a,continuous:h,interimResults:d,sound:p}=e.o.speechRecognize;if(!c)return void e.alert("Speech recognize API unsupported in your browser");let _=(0,r.dataBind)(e,"speech");if(!_){let t=new c;(_=new l.RecognizeManager(e.async,t)).lang=(0,n.isString)(a)?a:(0,o.attr)(e.od.documentElement,"lang")??void 0,_.continuous=h,_.interimResults=d,_.sound=p,(0,r.dataBind)(e,"speech",_),_.on("pulse",e=>{s.setMod("pulse",e)}),_.on("result",t=>e.e.fire("speechRecognizeResult",t)),_.on("progress",t=>e.e.fire("speechRecognizeProgressResult",t)),_.on("error",t=>e.message.error(t)),e.hookStatus("beforeDestruct",()=>{(0,r.dataBind)(e,"speech",null),_.destruct()})}if(u.args){let e=u.args[0];if((0,i.isBoolean)(_[e])){_[e]=!_[e],_.isEnabled&&_.restart();return}}_.toggle(),_.isEnabled&&s.setMod("pulse",!0),s.state.activated=_.isEnabled},name:"speechRecognize",command:"toggleSpeechRecognize",tooltip:"Speech Recognize",list:{sound:"Sound",interimResults:"Interim Results"},childTemplate(e,t,s){let i=(0,r.dataBind)(e,"speech"),n=i?.[t]??e.o.speechRecognize[t];return`<span class='jodit-speech-recognize__list-item'><input ${n?"checked":""} class='jodit-checkbox' type='checkbox'>&nbsp;${s}</span>`},mods:{stroke:!1}}},97743:function(e,t,s){"use strict";var i=s(81937);let n=i.globalWindow?i.globalWindow.SpeechRecognition||i.globalWindow.webkitSpeechRecognition:void 0;s.d(t,["SpeechRecognition",0,n])},86581:function(e,t,s){"use strict";function i(e,t){let[s,i]=t.split("::");"open"===s.toLowerCase()&&i&&/^(javascript:|data:|vbscript:)/i.test(i.trim())||e.execCommand(s,null,i)}s.d(t,{execSpellCommand:function(){return i}})},68097:function(e,t,s){"use strict";s.d(t,{RecognizeManager:function(){return c}});var i=s(25045),n=s(31635),o=s(84839),r=s(60216),u=s(32560);class c extends r.Eventify{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}destruct(){this.stop(),(0,u.closeSound)(this),c._instances.delete(this),super.destruct()}get isEnabled(){return this._isEnabled}start(){if(!this._isEnabled){this._isEnabled=!0,c._instances.forEach(e=>{e!==this&&e.stop()});try{this._api.start()}catch(e){this._onError(e),this.stop();return}this.__on("speechstart",this._onSpeechStart).__on("error",this._onError).__on("result",this._onProgress).__on("end",this._onResults)}}stop(){this._isEnabled&&(this._api.abort(),this._api.stop(),this.__off("speechstart",this._onSpeechStart).__off("error",this._onError).__off("result",this._onProgress).__off("end",this._onResults),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}_onResults(e){this.emit("pulse",!1),this.emit("result",this.__interimResults),this.__interimResults="",this._makeSound(440),this.restart()}_onProgress(e){if(this._isEnabled&&(this.__interimResults="",e.results)){for(let t=0;t<e.results.length;t++){let s=e.results.item(t);if(s.length){let{transcript:e}=s.item(0);this.__interimResults+=e}}this.__interimResults&&this.emit("progress",this.__interimResults)}}_onError(e){"voice-unavailable"===e.error&&this.emit("error","Voice unavailable"),"not-allowed"===e.error&&this.emit("error","Not allowed"),("language-unavailable"===e.error||"language-not-supported"===e.error)&&this.emit("error","Language unavailable"),this._makeSound(940),this.emit("pulse",!1),this.stop()}_makeSound(e){this.sound&&(0,u.sound)(this,{frequency:e})}constructor(e,t){super(),(0,i._)(this,"async",void 0),(0,i._)(this,"_lang",void 0),(0,i._)(this,"_continuous",void 0),(0,i._)(this,"_interimResults",void 0),(0,i._)(this,"sound",void 0),(0,i._)(this,"_isEnabled",void 0),(0,i._)(this,"_restartTimeout",void 0),(0,i._)(this,"_onSpeechStart",void 0),(0,i._)(this,"_api",void 0),(0,i._)(this,"__interimResults",void 0),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(940)},5e3),this.emit("pulse",!0))},this.__interimResults="",this._api=t,c._instances.add(this)}}(0,i._)(c,"_instances",new Set),(0,n.__decorate)([o.autobind],c.prototype,"_onResults",null),(0,n.__decorate)([o.autobind],c.prototype,"_onProgress",null),(0,n.__decorate)([o.autobind],c.prototype,"_onError",null)},32560:function(e,t,s){"use strict";s.d(t,{closeSound:function(){return r},sound:function(){return o}});var i=s(81937);let n=new WeakMap;function o(e,{sec:t=.1,frequency:s=440,gain:r=.1,type:u="sine"}={}){let c=function(e){if(!i.globalWindow)return null;let t=n.get(e);if(t&&"closed"!==t.state)return t;let s=i.globalWindow.AudioContext||i.globalWindow.webkitAudioContext;if(!s)return null;let o=new s;return n.set(e,o),o}(e);if(!c)return;let a=c.createGain(),l=c.createOscillator();l.type=u,l.frequency.value=s,a.gain.value=r,l.connect(a),a.connect(c.destination),l.start(),l.stop(c.currentTime+t)}function r(e){let t=n.get(e);t&&(n.delete(e),"closed"!==t.state&&t.close())}},43219:function(e,t,s){"use strict";s.r(t),s.d(t,{ar:function(){return i},cs_cz:function(){return i},de:function(){return i},es:function(){return i},fa:function(){return i},fi:function(){return i},fr:function(){return i},he:function(){return i},hu:function(){return i},id:function(){return i},it:function(){return i},ja:function(){return i},ko:function(){return i},mn:function(){return i},nl:function(){return i},no:function(){return i},pl:function(){return i},pt_br:function(){return i},ru:function(){return i},sk:function(){return i},tr:function(){return i},ua:function(){return i},zh_cn:function(){return i},zh_tw:function(){return i}});var i=s(41324)},31262:function(e,t,s){"use strict";s.r(t),s.d(t,{SpeechRecognizeNative:function(){return p}});var i=s(25045),n=s(31635),o=s(68616),r=s(23211),u=s(28077),c=s(71125),a=s(91206);s(75143);var l=s(73302),h=s(86581),d=s(43219);class p extends a.Plugin{afterInit(e){let{commands:t}=e.o.speechRecognize;t&&((0,u.extendLang)(d),(0,c.keys)(t,!1).forEach(s=>{s.split("|").forEach(i=>{i=i.trim().toLowerCase(),this._commandToWord[i]=t[s];let n=e.i18n(i);n!==i&&n.split("|").forEach(e=>{this._commandToWord[e.trim().toLowerCase()]=t[s].trim()})})}))}beforeDestruct(e){r.Dom.safeRemove(this.messagePopup)}onSpeechRecognizeProgressResult(e){this.messagePopup||(this.messagePopup=this.j.create.div("jodit-speech-recognize__popup")),r.Dom.append(this.j.workplace,this.messagePopup),this.j.async.clearTimeout(this.__hidePopupTimeout),this.__hidePopupTimeout=this.j.async.setTimeout(()=>{r.Dom.safeRemove(this.messagePopup)},1e3),this.messagePopup.innerText=e+"|"}onSpeechRecognizeResult(e){this.j.async.clearTimeout(this.__hidePopupTimeout),r.Dom.safeRemove(this.messagePopup);let{j:t}=this,{s}=t;if(!this._checkCommand(e)){let{range:i}=s,n=s.current();if(s.isCollapsed()&&r.Dom.isText(n)&&r.Dom.isOrContains(t.editor,n)&&n.nodeValue){let o=n.nodeValue;n.nodeValue=o+(/[\u00A0 ]\uFEFF*$/.test(o)?"":" ")+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,h.execSpellCommand)(this.j,this._commandToWord[e]),!0)}constructor(...e){super(...e),(0,i._)(this,"buttons",[{group:"state",name:"speechRecognize"}]),(0,i._)(this,"messagePopup",void 0),(0,i._)(this,"__hidePopupTimeout",void 0),(0,i._)(this,"_commandToWord",{})}}(0,n.__decorate)([(0,o.watch)(":speechRecognizeProgressResult")],p.prototype,"onSpeechRecognizeProgressResult",null),(0,n.__decorate)([(0,o.watch)(":speechRecognizeResult")],p.prototype,"onSpeechRecognizeResult",null),l.Jodit.plugins.add("speech-recognize",p)},22227:function(e){e.exports='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> <g fill="none"> <rect x="9" y="2" width="6" height="13" rx="3"/><path d="M5 10v2a7 7 0 0 0 14 0v-2M12 19v3m-4 0h8"/> </g> </svg>'}},function(e){return e(31262)}])});
package/es5/jodit.css CHANGED
@@ -1,14 +1,14 @@
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.14.7
4
+ * Version: v4.15.0
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.14.7
11
+ * Version: v4.15.0
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */
@@ -6020,7 +6020,7 @@ html.jodit_fullsize-box_true {
6020
6020
  }
6021
6021
  .jodit-select {
6022
6022
  padding-right: calc(8px * 2);
6023
- background-image: url("data:image/svg+xml,%3Csvg%20id%3D%22Layer_1%22%20data-name%3D%22Layer%201%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204.95%2010%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23fff%3B%7D.cls-2%7Bfill%3A%23444%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ctitle%3Earrows%3C%2Ftitle%3E%3Crect%20class%3D%22cls-1%22%20width%3D%224.95%22%20height%3D%2210%22%2F%3E%3Cpolygon%20class%3D%22cls-2%22%20points%3D%221.41%204.67%202.48%203.18%203.54%204.67%201.41%204.67%22%2F%3E%3Cpolygon%20class%3D%22cls-2%22%20points%3D%223.54%205.33%202.48%206.82%201.41%205.33%203.54%205.33%22%2F%3E%3C%2Fsvg%3E");
6023
+ background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%09%3Cg%20fill%3D%22none%22%3E%0A%09%09%3Cpath%20d%3D%22m9%209%203-3%203%203m-6%206%203%203%203-3%22%2F%3E%0A%09%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A");
6024
6024
  background-position: 98% 50%;
6025
6025
  background-repeat: no-repeat;
6026
6026
  }