jodit-pro 4.5.17 → 4.5.21

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 (299) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +2 -2
  3. package/es2015/jodit.js +2 -2
  4. package/es2015/jodit.min.js +2 -2
  5. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  6. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  7. package/es2015/plugins/backup/backup.css +1 -1
  8. package/es2015/plugins/backup/backup.js +1 -1
  9. package/es2015/plugins/backup/backup.min.js +1 -1
  10. package/es2015/plugins/button-generator/button-generator.css +1 -1
  11. package/es2015/plugins/button-generator/button-generator.js +1 -1
  12. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  13. package/es2015/plugins/change-case/change-case.js +1 -1
  14. package/es2015/plugins/change-case/change-case.min.js +1 -1
  15. package/es2015/plugins/color-picker/color-picker.css +1 -1
  16. package/es2015/plugins/color-picker/color-picker.js +1 -1
  17. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  18. package/es2015/plugins/emoji/emoji.css +1 -1
  19. package/es2015/plugins/emoji/emoji.js +1 -1
  20. package/es2015/plugins/emoji/emoji.min.js +1 -1
  21. package/es2015/plugins/export-docs/export-docs.js +1 -1
  22. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  23. package/es2015/plugins/finder/finder.css +1 -1
  24. package/es2015/plugins/finder/finder.js +1 -1
  25. package/es2015/plugins/finder/finder.min.js +1 -1
  26. package/es2015/plugins/google-maps/google-maps.css +1 -1
  27. package/es2015/plugins/google-maps/google-maps.js +1 -1
  28. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  29. package/es2015/plugins/google-search/google-search.js +1 -1
  30. package/es2015/plugins/google-search/google-search.min.js +1 -1
  31. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  32. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  33. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  34. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  35. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  36. package/es2015/plugins/keyboard/keyboard.css +1 -1
  37. package/es2015/plugins/keyboard/keyboard.js +1 -1
  38. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  39. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  40. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  41. package/es2015/plugins/page-break/page-break.js +1 -1
  42. package/es2015/plugins/page-break/page-break.min.js +1 -1
  43. package/es2015/plugins/paste-code/paste-code.css +1 -1
  44. package/es2015/plugins/paste-code/paste-code.js +30 -8
  45. package/es2015/plugins/paste-code/paste-code.min.js +2 -2
  46. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  47. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  48. package/es2015/plugins/show-blocks/show-blocks.js +6 -3
  49. package/es2015/plugins/show-blocks/show-blocks.min.js +2 -2
  50. package/es2015/plugins/todo-list/todo-list.css +1 -1
  51. package/es2015/plugins/todo-list/todo-list.js +1 -1
  52. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  53. package/es2015/plugins/translate/translate.css +1 -1
  54. package/es2015/plugins/translate/translate.js +1 -1
  55. package/es2015/plugins/translate/translate.min.js +1 -1
  56. package/es2015/plugins/tune-block/tune-block.css +1 -1
  57. package/es2015/plugins/tune-block/tune-block.js +1 -1
  58. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  59. package/es2018/jodit.css +1 -1
  60. package/es2018/jodit.fat.min.js +2 -2
  61. package/es2018/jodit.js +2 -2
  62. package/es2018/jodit.min.js +2 -2
  63. package/es2018/plugins/autocomplete/autocomplete.js +1 -1
  64. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  65. package/es2018/plugins/backup/backup.css +1 -1
  66. package/es2018/plugins/backup/backup.js +1 -1
  67. package/es2018/plugins/backup/backup.min.js +1 -1
  68. package/es2018/plugins/button-generator/button-generator.css +1 -1
  69. package/es2018/plugins/button-generator/button-generator.js +1 -1
  70. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  71. package/es2018/plugins/change-case/change-case.js +1 -1
  72. package/es2018/plugins/change-case/change-case.min.js +1 -1
  73. package/es2018/plugins/color-picker/color-picker.css +1 -1
  74. package/es2018/plugins/color-picker/color-picker.js +1 -1
  75. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  76. package/es2018/plugins/emoji/emoji.css +1 -1
  77. package/es2018/plugins/emoji/emoji.js +1 -1
  78. package/es2018/plugins/emoji/emoji.min.js +1 -1
  79. package/es2018/plugins/export-docs/export-docs.js +1 -1
  80. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  81. package/es2018/plugins/finder/finder.css +1 -1
  82. package/es2018/plugins/finder/finder.js +1 -1
  83. package/es2018/plugins/finder/finder.min.js +1 -1
  84. package/es2018/plugins/google-maps/google-maps.css +1 -1
  85. package/es2018/plugins/google-maps/google-maps.js +1 -1
  86. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  87. package/es2018/plugins/google-search/google-search.js +1 -1
  88. package/es2018/plugins/google-search/google-search.min.js +1 -1
  89. package/es2018/plugins/highlight-signature/highlight-signature.js +1 -1
  90. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  91. package/es2018/plugins/iframe-editor/iframe-editor.css +1 -1
  92. package/es2018/plugins/iframe-editor/iframe-editor.js +1 -1
  93. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  94. package/es2018/plugins/keyboard/keyboard.css +1 -1
  95. package/es2018/plugins/keyboard/keyboard.js +1 -1
  96. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  97. package/es2018/plugins/mobile-view/mobile-view.js +1 -1
  98. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  99. package/es2018/plugins/page-break/page-break.js +1 -1
  100. package/es2018/plugins/page-break/page-break.min.js +1 -1
  101. package/es2018/plugins/paste-code/paste-code.css +1 -1
  102. package/es2018/plugins/paste-code/paste-code.js +30 -8
  103. package/es2018/plugins/paste-code/paste-code.min.js +2 -2
  104. package/es2018/plugins/paste-from-word/paste-from-word.js +1 -1
  105. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  106. package/es2018/plugins/show-blocks/show-blocks.js +6 -3
  107. package/es2018/plugins/show-blocks/show-blocks.min.js +2 -2
  108. package/es2018/plugins/todo-list/todo-list.css +1 -1
  109. package/es2018/plugins/todo-list/todo-list.js +1 -1
  110. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  111. package/es2018/plugins/translate/translate.css +1 -1
  112. package/es2018/plugins/translate/translate.js +1 -1
  113. package/es2018/plugins/translate/translate.min.js +1 -1
  114. package/es2018/plugins/tune-block/tune-block.css +1 -1
  115. package/es2018/plugins/tune-block/tune-block.js +1 -1
  116. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  117. package/es2021/jodit.css +1 -1
  118. package/es2021/jodit.fat.min.js +2 -2
  119. package/es2021/jodit.js +2 -2
  120. package/es2021/jodit.min.js +2 -2
  121. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  122. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  123. package/es2021/plugins/backup/backup.css +1 -1
  124. package/es2021/plugins/backup/backup.js +1 -1
  125. package/es2021/plugins/backup/backup.min.js +1 -1
  126. package/es2021/plugins/button-generator/button-generator.css +1 -1
  127. package/es2021/plugins/button-generator/button-generator.js +1 -1
  128. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  129. package/es2021/plugins/change-case/change-case.js +1 -1
  130. package/es2021/plugins/change-case/change-case.min.js +1 -1
  131. package/es2021/plugins/color-picker/color-picker.css +1 -1
  132. package/es2021/plugins/color-picker/color-picker.js +1 -1
  133. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  134. package/es2021/plugins/emoji/emoji.css +1 -1
  135. package/es2021/plugins/emoji/emoji.js +1 -1
  136. package/es2021/plugins/emoji/emoji.min.js +1 -1
  137. package/es2021/plugins/export-docs/export-docs.js +1 -1
  138. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  139. package/es2021/plugins/finder/finder.css +1 -1
  140. package/es2021/plugins/finder/finder.js +1 -1
  141. package/es2021/plugins/finder/finder.min.js +1 -1
  142. package/es2021/plugins/google-maps/google-maps.css +1 -1
  143. package/es2021/plugins/google-maps/google-maps.js +1 -1
  144. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  145. package/es2021/plugins/google-search/google-search.js +1 -1
  146. package/es2021/plugins/google-search/google-search.min.js +1 -1
  147. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  148. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  149. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  150. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  151. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  152. package/es2021/plugins/keyboard/keyboard.css +1 -1
  153. package/es2021/plugins/keyboard/keyboard.js +1 -1
  154. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  155. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  156. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  157. package/es2021/plugins/page-break/page-break.js +1 -1
  158. package/es2021/plugins/page-break/page-break.min.js +1 -1
  159. package/es2021/plugins/paste-code/paste-code.css +1 -1
  160. package/es2021/plugins/paste-code/paste-code.js +30 -8
  161. package/es2021/plugins/paste-code/paste-code.min.js +2 -2
  162. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  163. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  164. package/es2021/plugins/show-blocks/show-blocks.js +6 -3
  165. package/es2021/plugins/show-blocks/show-blocks.min.js +2 -2
  166. package/es2021/plugins/todo-list/todo-list.css +1 -1
  167. package/es2021/plugins/todo-list/todo-list.js +1 -1
  168. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  169. package/es2021/plugins/translate/translate.css +1 -1
  170. package/es2021/plugins/translate/translate.js +1 -1
  171. package/es2021/plugins/translate/translate.min.js +1 -1
  172. package/es2021/plugins/tune-block/tune-block.css +1 -1
  173. package/es2021/plugins/tune-block/tune-block.js +1 -1
  174. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  175. package/es2021.en/jodit.css +1 -1
  176. package/es2021.en/jodit.fat.min.js +2 -2
  177. package/es2021.en/jodit.js +2 -2
  178. package/es2021.en/jodit.min.js +2 -2
  179. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  180. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  181. package/es2021.en/plugins/backup/backup.css +1 -1
  182. package/es2021.en/plugins/backup/backup.js +1 -1
  183. package/es2021.en/plugins/backup/backup.min.js +1 -1
  184. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  185. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  186. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  187. package/es2021.en/plugins/change-case/change-case.js +1 -1
  188. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  189. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  190. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  191. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  192. package/es2021.en/plugins/emoji/emoji.css +1 -1
  193. package/es2021.en/plugins/emoji/emoji.js +1 -1
  194. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  195. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  196. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  197. package/es2021.en/plugins/finder/finder.css +1 -1
  198. package/es2021.en/plugins/finder/finder.js +1 -1
  199. package/es2021.en/plugins/finder/finder.min.js +1 -1
  200. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  201. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  202. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  203. package/es2021.en/plugins/google-search/google-search.js +1 -1
  204. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  205. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  206. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  207. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  208. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  209. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  210. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  211. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  212. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  213. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  214. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  215. package/es2021.en/plugins/page-break/page-break.js +1 -1
  216. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  217. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  218. package/es2021.en/plugins/paste-code/paste-code.js +30 -8
  219. package/es2021.en/plugins/paste-code/paste-code.min.js +2 -2
  220. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  221. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  222. package/es2021.en/plugins/show-blocks/show-blocks.js +6 -3
  223. package/es2021.en/plugins/show-blocks/show-blocks.min.js +2 -2
  224. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  225. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  226. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  227. package/es2021.en/plugins/translate/translate.css +1 -1
  228. package/es2021.en/plugins/translate/translate.js +1 -1
  229. package/es2021.en/plugins/translate/translate.min.js +1 -1
  230. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  231. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  232. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  233. package/es5/jodit.css +2 -2
  234. package/es5/jodit.fat.min.js +2 -2
  235. package/es5/jodit.js +2 -2
  236. package/es5/jodit.min.css +2 -2
  237. package/es5/jodit.min.js +2 -2
  238. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  239. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  240. package/es5/plugins/backup/backup.css +1 -1
  241. package/es5/plugins/backup/backup.js +1 -1
  242. package/es5/plugins/backup/backup.min.js +1 -1
  243. package/es5/plugins/button-generator/button-generator.css +1 -1
  244. package/es5/plugins/button-generator/button-generator.js +1 -1
  245. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  246. package/es5/plugins/change-case/change-case.js +1 -1
  247. package/es5/plugins/change-case/change-case.min.js +1 -1
  248. package/es5/plugins/color-picker/color-picker.css +1 -1
  249. package/es5/plugins/color-picker/color-picker.js +1 -1
  250. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  251. package/es5/plugins/emoji/emoji.css +1 -1
  252. package/es5/plugins/emoji/emoji.js +1 -1
  253. package/es5/plugins/emoji/emoji.min.js +1 -1
  254. package/es5/plugins/export-docs/export-docs.js +1 -1
  255. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  256. package/es5/plugins/finder/finder.css +1 -1
  257. package/es5/plugins/finder/finder.js +1 -1
  258. package/es5/plugins/finder/finder.min.js +1 -1
  259. package/es5/plugins/google-maps/google-maps.css +1 -1
  260. package/es5/plugins/google-maps/google-maps.js +1 -1
  261. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  262. package/es5/plugins/google-search/google-search.js +1 -1
  263. package/es5/plugins/google-search/google-search.min.js +1 -1
  264. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  265. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  266. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  267. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  268. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  269. package/es5/plugins/keyboard/keyboard.css +1 -1
  270. package/es5/plugins/keyboard/keyboard.js +1 -1
  271. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  272. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  273. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  274. package/es5/plugins/page-break/page-break.js +1 -1
  275. package/es5/plugins/page-break/page-break.min.js +1 -1
  276. package/es5/plugins/paste-code/paste-code.css +1 -1
  277. package/es5/plugins/paste-code/paste-code.js +36 -11
  278. package/es5/plugins/paste-code/paste-code.min.js +2 -2
  279. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  280. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  281. package/es5/plugins/show-blocks/show-blocks.js +6 -3
  282. package/es5/plugins/show-blocks/show-blocks.min.js +2 -2
  283. package/es5/plugins/todo-list/todo-list.css +1 -1
  284. package/es5/plugins/todo-list/todo-list.js +1 -1
  285. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  286. package/es5/plugins/translate/translate.css +1 -1
  287. package/es5/plugins/translate/translate.js +1 -1
  288. package/es5/plugins/translate/translate.min.js +1 -1
  289. package/es5/plugins/tune-block/tune-block.css +1 -1
  290. package/es5/plugins/tune-block/tune-block.js +1 -1
  291. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  292. package/esm/config.d.ts +3 -0
  293. package/esm/plugins/paste-code/config.d.ts +3 -1
  294. package/esm/plugins/paste-code/config.js +1 -1
  295. package/esm/plugins/paste-code/paste-code.js +1 -1
  296. package/esm/plugins/show-blocks/show-blocks.js +1 -1
  297. package/package.json +1 -1
  298. package/types/config.d.ts +3 -0
  299. package/types/plugins/paste-code/config.d.ts +3 -1
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
8
8
 
9
9
 
10
- !function(t,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var n=o();for(var e in n)("object"==typeof exports?exports:t)[e]=n[e]}}(self,(function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[314],{14588:function(t){"use strict";t.exports={"Show Blocks":"ショーのブロック"}},19927:function(t){"use strict";t.exports={"Show Blocks":"แสดงช่วงตึก"}},21615:function(t,o,n){"use strict";n.r(o),n.d(o,{ar:function(){return s.a},cs_cz:function(){return i.a},de:function(){return u.a},es:function(){return a.a},fa:function(){return p.a},fr:function(){return d.a},he:function(){return b.a},hu:function(){return w.a},id:function(){return x.a},it:function(){return y.a},ja:function(){return S.a},ko:function(){return j.a},nl:function(){return M.a},pl:function(){return E.a},pt_br:function(){return _.a},ru:function(){return A.a},tr:function(){return I.a},zh_cn:function(){return P.a},zh_tw:function(){return O.a}});var e=n(64214),s=n.n(e),r=n(63435),i=n.n(r),c=n(86530),u=n.n(c),l=n(42033),a=n.n(l),f=n(43936),p=n.n(f),h=n(24777),d=n.n(h),k=n(37318),b=n.n(k),g=n(51382),w=n.n(g),B=n(46200),x=n.n(B),m=n(51496),y=n.n(m),v=n(14588),S=n.n(v),q=n(46175),j=n.n(q),C=n(43923),M=n.n(C),z=n(31429),E=n.n(z),T=n(69804),_=n.n(T),L=n(41256),A=n.n(L),H=n(76651),I=n.n(H),J=n(27967),P=n.n(J),D=n(19927),O=n.n(D)},24777:function(t){"use strict";t.exports={"Show Blocks":"Afficher Les Blocs"}},27967:function(t){"use strict";t.exports={"Show Blocks":"显示块"}},31429:function(t){"use strict";t.exports={"Show Blocks":"Pokaż Bloki"}},37318:function(t){"use strict";t.exports={"Show Blocks":"תראה רחובות"}},41256:function(t){"use strict";t.exports={"Show Blocks":"Показать Блоки"}},42033:function(t){"use strict";t.exports={"Show Blocks":"Mostrar Bloques"}},43923:function(t){"use strict";t.exports={"Show Blocks":"Toon Blokken"}},43936:function(t){"use strict";t.exports={"Show Blocks":"نشان می دهد بلوک"}},46175:function(t){"use strict";t.exports={"Show Blocks":"쇼 블록"}},46200:function(t){"use strict";t.exports={"Show Blocks":"Menunjukkan Blok"}},51382:function(t){"use strict";t.exports={"Show Blocks":"Mutasd Meg Blokkok"}},51496:function(t){"use strict";t.exports={"Show Blocks":"Visualizza Blocchi"}},52355:function(t,o,n){"use strict";var e=n(6441);e.T.prototype.showBlocks={enable:!1,color:"#ccc",tagList:["html","body","div","span","applet","object","iframe","h1","h2","h3","h4","h5","h6","p","blockquote","pre","a","abbr","acronym","address","big","cite","code","del","dfn","em","img","ins","kbd","q","s","samp","small","strike","strong","sub","sup","tt","var","b","u","i","center","dl","dt","dd","fieldset","form","label","legend","caption","th","td","li","ol","ul","article","aside","canvas","details","embed","figure","figcaption","footer","header","hgroup","menu","nav","output","ruby","section","summary","time","mark","audio","video"]},e.T.prototype.controls.showBlocks={isActive:function(t){return Boolean(t.e.fire("showBlocksEnabled"))},tooltip:"Show Blocks",command:"toggleShowBlocks"}},53799:function(t,o,n){"use strict";n.r(o),n.d(o,{showBlocks:function(){return h}});var e=n(31635),s=(n(52355),n(21615)),r=n(78879),i=n.n(r),c=n(65478),u=n(2748),l=n(580),a=n(50911),f=n(12153),p=n(34013),h=function(t){function o(o){var n=t.call(this,o)||this;return n.buttons=[{name:"showBlocks",group:"state"}],n.isEnabled=!1,(0,l.JW)(s),f.I.set("showBlocks",i()),n}return(0,e.C6)(o,t),Object.defineProperty(o.prototype,"style",{get:function(){return(0,l.My)(this.jodit,o,"style",!0)},enumerable:!1,configurable:!0}),o.prototype.enable=function(){var t=this;this.isEnabled=!0;var o=this.j.o.iframe?"body":".jodit-wysiwyg",n=this.j.o.showBlocks,e=n.color;this.style.innerHTML=n.tagList.map((function(n){return"".concat(o," ").concat(n,"{\n\t\t\t\t\toutline: 1px dashed ").concat(e,';\n\t\t\t\t\tbackground-image: url("').concat((s='<svg xmlns="http://www.w3.org/2000/svg" width="50px"><text dominant-baseline="hanging" text-anchor="end" style="fill: '+e+';font: 10px sans-serif" x="50px" y="0">'+n+"</text></svg>","data:image/svg+xml;utf8,".concat(escape(s))),'");\n\t\t\t\t\tbackground-position: top 2px ').concat("rtl"===t.j.o.direction?"left":"right"," 4px;\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}");var s})).join("")},o.prototype.disable=function(){this.isEnabled=!1,this.style.innerHTML=""},o.prototype.toggle=function(){this.isEnabled?this.disable():this.enable(),this.j.e.fire("updateToolbar")},o.prototype.afterInit=function(t){var o=this;t.e.on("showBlocksEnabled",(function(){return o.isEnabled})),t.registerCommand("enableShowBlocks",this.enable).registerCommand("disableShowBlocks",this.disable).registerCommand("toggleShowBlocks",this.toggle),this.j.o.showBlocks.enable&&this.enable()},o.prototype.beforeDestruct=function(t){this.disable(),u.J.safeRemove(this.style)},o.requires=["license"],(0,e.Cg)([c.cache],o.prototype,"style",null),(0,e.Cg)([c.autobind],o.prototype,"enable",null),(0,e.Cg)([c.autobind],o.prototype,"disable",null),(0,e.Cg)([c.autobind],o.prototype,"toggle",null),o}(a.k);p.A.plugins.add("show-blocks",h)},63435:function(t){"use strict";t.exports={"Show Blocks":"Ukázat Bloky"}},64214:function(t){"use strict";t.exports={"Show Blocks":"تظهر كتل"}},69804:function(t){"use strict";t.exports={"Show Blocks":"Mostrar Blocos"}},76651:function(t){"use strict";t.exports={"Show Blocks":"Haritayı Blokları"}},78879:function(t){t.exports='<svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> <g> <rect rx="10" height="1620" width="1620" y="79.646973" x="80" stroke-width="100" stroke-dasharray="8% 10%" fill="none"/> <path d="m1333.992706,381.692384l0,52.982419q0,21.04781 -12.98052,44.272981t-29.820114,23.22517q-35.082487,0 -37.889085,0.725787q-18.242893,4.354719 -22.452791,22.499384q-2.104949,7.983652 -2.104949,46.45034l0,836.106125q0,18.144664 -12.629695,31.208822t-30.170938,13.064158l-75.778171,0q-17.541243,0 -30.170938,-13.064158t-12.629695,-31.208822l0,-884.008038l-100.335911,0l0,884.008038q0,18.144664 -12.27887,31.208822t-30.521763,13.064158l-75.778171,0q-18.242893,0 -30.521763,-13.064158t-12.27887,-31.208822l0,-359.990137q-103.14251,-8.709439 -171.904184,-42.821407q-88.407866,-42.095621 -134.716748,-129.915795q-44.905583,-84.917028 -44.905583,-187.978721q0,-120.48057 61.745176,-207.574958q61.745176,-85.642815 146.644794,-115.400064q77.88312,-26.854103 292.587937,-26.854103l336.090221,0q17.541243,0 30.170938,13.064158t12.629695,31.208822z"/> </g> </svg>'},86530:function(t){"use strict";t.exports={"Show Blocks":"Zeigen Blöcke"}}},function(t){return t(t.s=53799)}])}));
10
+ !function(t,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var n=o();for(var e in n)("object"==typeof exports?exports:t)[e]=n[e]}}(self,(function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[314],{14588:function(t){"use strict";t.exports={"Show Blocks":"ショーのブロック"}},19927:function(t){"use strict";t.exports={"Show Blocks":"แสดงช่วงตึก"}},21615:function(t,o,n){"use strict";n.r(o),n.d(o,{ar:function(){return s.a},cs_cz:function(){return i.a},de:function(){return u.a},es:function(){return a.a},fa:function(){return h.a},fr:function(){return d.a},he:function(){return b.a},hu:function(){return w.a},id:function(){return x.a},it:function(){return y.a},ja:function(){return S.a},ko:function(){return j.a},nl:function(){return M.a},pl:function(){return E.a},pt_br:function(){return _.a},ru:function(){return A.a},tr:function(){return I.a},zh_cn:function(){return P.a},zh_tw:function(){return O.a}});var e=n(64214),s=n.n(e),r=n(63435),i=n.n(r),c=n(86530),u=n.n(c),l=n(42033),a=n.n(l),f=n(43936),h=n.n(f),p=n(24777),d=n.n(p),k=n(37318),b=n.n(k),g=n(51382),w=n.n(g),B=n(46200),x=n.n(B),m=n(51496),y=n.n(m),v=n(14588),S=n.n(v),q=n(46175),j=n.n(q),C=n(43923),M=n.n(C),z=n(31429),E=n.n(z),T=n(69804),_=n.n(T),L=n(41256),A=n.n(L),H=n(76651),I=n.n(H),J=n(27967),P=n.n(J),D=n(19927),O=n.n(D)},24777:function(t){"use strict";t.exports={"Show Blocks":"Afficher Les Blocs"}},27967:function(t){"use strict";t.exports={"Show Blocks":"显示块"}},31429:function(t){"use strict";t.exports={"Show Blocks":"Pokaż Bloki"}},37318:function(t){"use strict";t.exports={"Show Blocks":"תראה רחובות"}},41256:function(t){"use strict";t.exports={"Show Blocks":"Показать Блоки"}},42033:function(t){"use strict";t.exports={"Show Blocks":"Mostrar Bloques"}},43923:function(t){"use strict";t.exports={"Show Blocks":"Toon Blokken"}},43936:function(t){"use strict";t.exports={"Show Blocks":"نشان می دهد بلوک"}},46175:function(t){"use strict";t.exports={"Show Blocks":"쇼 블록"}},46200:function(t){"use strict";t.exports={"Show Blocks":"Menunjukkan Blok"}},51382:function(t){"use strict";t.exports={"Show Blocks":"Mutasd Meg Blokkok"}},51496:function(t){"use strict";t.exports={"Show Blocks":"Visualizza Blocchi"}},52355:function(t,o,n){"use strict";var e=n(6441);e.T.prototype.showBlocks={enable:!1,color:"#ccc",tagList:["html","body","div","span","applet","object","iframe","h1","h2","h3","h4","h5","h6","p","blockquote","pre","a","abbr","acronym","address","big","cite","code","del","dfn","em","img","ins","kbd","q","s","samp","small","strike","strong","sub","sup","tt","var","b","u","i","center","dl","dt","dd","fieldset","form","label","legend","caption","th","td","li","ol","ul","article","aside","canvas","details","embed","figure","figcaption","footer","header","hgroup","menu","nav","output","ruby","section","summary","time","mark","audio","video"]},e.T.prototype.controls.showBlocks={isActive:function(t){return Boolean(t.e.fire("showBlocksEnabled"))},tooltip:"Show Blocks",command:"toggleShowBlocks"}},53799:function(t,o,n){"use strict";n.r(o),n.d(o,{showBlocks:function(){return p}});var e=n(31635),s=(n(52355),n(21615)),r=n(78879),i=n.n(r),c=n(65478),u=n(2748),l=n(580),a=n(50911),f=n(12153),h=n(34013),p=function(t){function o(o){var n=t.call(this,o)||this;return n.buttons=[{name:"showBlocks",group:"state"}],n.isEnabled=!1,(0,l.JW)(s),f.I.set("showBlocks",i()),n}return(0,e.C6)(o,t),Object.defineProperty(o.prototype,"style",{get:function(){return(0,l.My)(this.jodit,o,"style",!0)},enumerable:!1,configurable:!0}),o.prototype.enable=function(){var t=this;this.isEnabled=!0;var o=this.j.o.iframe?"body":".jodit-wysiwyg",n=this.j.o.showBlocks,e=n.color;this.style.innerHTML=n.tagList.map((function(n){return"".concat(o," ").concat(n,"{\n\t\t\t\t\toutline: 1px dashed ").concat(e,';\n\t\t\t\t\tbackground-image: url("').concat((s='<svg xmlns="http://www.w3.org/2000/svg" width="50px"><text dominant-baseline="hanging" text-anchor="end" style="fill: '+e+';font: 10px sans-serif" x="50px" y="0">'+n+"</text></svg>","data:image/svg+xml;utf8,".concat(escape(s))),'");\n\t\t\t\t\tbackground-position: top 2px ').concat("rtl"===t.j.o.direction?"left":"right"," 4px;\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}");var s})).join("")},o.prototype.disable=function(){this.isEnabled=!1;var t=(0,c.cached)(this,"style");t&&(t.innerHTML="")},o.prototype.toggle=function(){this.isEnabled?this.disable():this.enable(),this.j.e.fire("updateToolbar")},o.prototype.afterInit=function(t){var o=this;t.e.on("showBlocksEnabled",(function(){return o.isEnabled})),t.registerCommand("enableShowBlocks",this.enable).registerCommand("disableShowBlocks",this.disable).registerCommand("toggleShowBlocks",this.toggle),this.j.o.showBlocks.enable&&this.enable()},o.prototype.beforeDestruct=function(t){this.disable(),u.J.safeRemove((0,c.cached)(this,"style"))},o.requires=["license"],(0,e.Cg)([c.cache],o.prototype,"style",null),(0,e.Cg)([c.autobind],o.prototype,"enable",null),(0,e.Cg)([c.autobind],o.prototype,"disable",null),(0,e.Cg)([c.autobind],o.prototype,"toggle",null),o}(a.k);h.A.plugins.add("show-blocks",p)},63435:function(t){"use strict";t.exports={"Show Blocks":"Ukázat Bloky"}},64214:function(t){"use strict";t.exports={"Show Blocks":"تظهر كتل"}},69804:function(t){"use strict";t.exports={"Show Blocks":"Mostrar Blocos"}},76651:function(t){"use strict";t.exports={"Show Blocks":"Haritayı Blokları"}},78879:function(t){t.exports='<svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> <g> <rect rx="10" height="1620" width="1620" y="79.646973" x="80" stroke-width="100" stroke-dasharray="8% 10%" fill="none"/> <path d="m1333.992706,381.692384l0,52.982419q0,21.04781 -12.98052,44.272981t-29.820114,23.22517q-35.082487,0 -37.889085,0.725787q-18.242893,4.354719 -22.452791,22.499384q-2.104949,7.983652 -2.104949,46.45034l0,836.106125q0,18.144664 -12.629695,31.208822t-30.170938,13.064158l-75.778171,0q-17.541243,0 -30.170938,-13.064158t-12.629695,-31.208822l0,-884.008038l-100.335911,0l0,884.008038q0,18.144664 -12.27887,31.208822t-30.521763,13.064158l-75.778171,0q-18.242893,0 -30.521763,-13.064158t-12.27887,-31.208822l0,-359.990137q-103.14251,-8.709439 -171.904184,-42.821407q-88.407866,-42.095621 -134.716748,-129.915795q-44.905583,-84.917028 -44.905583,-187.978721q0,-120.48057 61.745176,-207.574958q61.745176,-85.642815 146.644794,-115.400064q77.88312,-26.854103 292.587937,-26.854103l336.090221,0q17.541243,0 30.170938,13.064158t12.629695,31.208822z"/> </g> </svg>'},86530:function(t){"use strict";t.exports={"Show Blocks":"Zeigen Blöcke"}}},function(t){return t(t.s=53799)}])}));
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.5.17
4
+ * Version: v4.5.21
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
package/esm/config.d.ts CHANGED
@@ -16,6 +16,7 @@ import type { IJodit } from "jodit/esm/types/index";
16
16
  import type { IKeys } from "./plugins/keyboard/interface";
17
17
  import type { ButtonGroup } from "jodit/esm/types/index";
18
18
  import type { ILayoutKeys } from "./plugins/keyboard/interface";
19
+ import type { CanPromise } from "jodit/esm/types/index";
19
20
  import type { IUIOption } from "jodit/esm/types/index";
20
21
  import type { ITranslateProviderFactory } from "./plugins/translate/interface";
21
22
  import type { IGoogleTranslateProviderOptions } from "./plugins/translate/interface";
@@ -155,6 +156,8 @@ interface Config {
155
156
  highlight: (code: string, language: string) => string;
156
157
  isLangLoaded: (lang: string) => boolean;
157
158
  langUrl: (lang: string) => string;
159
+ beforeLibLoad?: () => CanPromise<void>;
160
+ afterLibLoad?: () => CanPromise<void>;
158
161
  js: string[];
159
162
  css: string[];
160
163
  };
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import type { IJodit, IUIOption } from "jodit/esm/types/index";
6
+ import type { CanPromise, IJodit, IUIOption } from "jodit/esm/types/index";
7
7
  declare global {
8
8
  const Prism: {
9
9
  languages: {
@@ -21,6 +21,8 @@ declare module 'jodit/esm/config' {
21
21
  highlight: (code: string, language: string) => string;
22
22
  isLangLoaded: (lang: string) => boolean;
23
23
  langUrl: (lang: string) => string;
24
+ beforeLibLoad?: () => CanPromise<void>;
25
+ afterLibLoad?: () => CanPromise<void>;
24
26
  js: string[];
25
27
  css: string[];
26
28
  };
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import t from"./icon.svg.js";import{Config as e}from"jodit/esm/config.js";import{htmlspecialchars as a}from"jodit/esm/core/helpers/html/htmlspecialchars.js";e.prototype.controls.pasteCode={icon:t,tooltip:"Paste code",command:"pasteCode"},e.prototype.pasteCode={globalHighlightLib:!1,canonicalLanguageCode(t){switch(t){case"ts":return"typescript";case"js":return"javascript";case"markup":return"html"}return t},highlightLib:{highlight:(t,e)=>"undefined"!=typeof Prism?Prism.highlight(t,Prism.languages[e]||Prism.languages.plain,e):a(t),isLangLoaded:t=>"html"===t||"undefined"!=typeof Prism&&Boolean(Prism.languages[t]),js:["https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"],langUrl:t=>`https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-${t}.min.js`,css:["https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css"]},defaultLanguage:"html",insertTemplate:(t,e,s)=>`<pre class="language-${e}">${a(s)}</pre>`,languages:[{value:"html",text:"HTML/XML"},{value:"plaintext",text:"Plain"},{value:"bash",text:"Bash"},{value:"javascript",text:"JavaScript"},{value:"css",text:"CSS"},{value:"php",text:"PHP"},{value:"ruby",text:"Ruby"},{value:"python",text:"Python"},{value:"java",text:"Java"},{value:"c",text:"C"},{value:"csharp",text:"C#"},{value:"cpp",text:"C++"}],dialog:{width:700,height:600}};
6
+ import e from"./icon.svg.js";import{Config as t}from"jodit/esm/config.js";import{htmlspecialchars as a}from"jodit/esm/core/helpers/html/htmlspecialchars.js";t.prototype.controls.pasteCode={icon:e,tooltip:"Paste code",command:"pasteCode"},t.prototype.pasteCode={globalHighlightLib:!1,canonicalLanguageCode(e){switch(e){case"ts":return"typescript";case"js":return"javascript";case"markup":return"html"}return e},highlightLib:{beforeLibLoad(){window.Prism=window.Prism||{},window.Prism.manual=!0},highlight:(e,t)=>"undefined"!=typeof Prism?Prism.highlight(e,Prism.languages[t]||Prism.languages.plain,t):a(e),isLangLoaded:e=>"html"===e||"undefined"!=typeof Prism&&Boolean(Prism.languages[e]),js:["https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js","https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"],langUrl:e=>`https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-${e}.min.js`,css:["https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css"]},defaultLanguage:"html",insertTemplate:(e,t,s)=>`<pre class="language-${t}">${a(s)}</pre>`,languages:[{value:"plaintext",text:"Plain"},{value:"html",text:"HTML/XML"},{value:"bash",text:"Bash"},{value:"php",text:"PHP"},{value:"javascript",text:"JavaScript"},{value:"typescript",text:"TypeScript"},{value:"jsx",text:"JSX"},{value:"java",text:"Java"},{value:"css",text:"CSS"},{value:"php",text:"PHP"},{value:"ruby",text:"Ruby"},{value:"python",text:"Python"},{value:"java",text:"Java"},{value:"c",text:"C"},{value:"csharp",text:"C#"},{value:"cpp",text:"C++"},{value:"sql",text:"SQL"},{value:"docker",text:"Docker"},{value:"http",text:"HTTP"},{value:"ini",text:"INI"},{value:"yaml",text:"YAML"},{value:"json",text:"JSON"},{value:"json5",text:"JSON5"},{value:"makefile",text:"Makefile"},{value:"swift",text:"Swift"}],dialog:{width:700,height:600}};
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,i,o){var s,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,o);else for(var r=e.length-1;r>=0;r--)(s=e[r])&&(n=(a<3?s(n):a>3?s(t,i,n):s(t,i))||n);return a>3&&n&&Object.defineProperty(t,i,n),n};import"./config.js";import{IS_PROD as t}from"jodit/esm/core/constants.js";import{autobind as i,component as o,debounce as s,watch as a}from"jodit/esm/core/decorators/index.js";import{$$ as n,appendScriptAsync as r,attr as l,loadNext as d,loadNextStyle as h,refs as c,stripTags as g}from"jodit/esm/core/helpers/index.js";import{isBoolean as p}from"jodit/esm/core/helpers/checker/is-boolean.js";import{htmlspecialchars as u}from"jodit/esm/core/helpers/html/htmlspecialchars.js";import{Plugin as m}from"jodit/esm/core/plugin/index.js";import{Button as _,UIForm as f,UISelect as C,UITextArea as j}from"jodit/esm/core/ui/index.js";import{Dialog as L,Dom as b}from"jodit/esm/modules/index.js";import{JoditPro as E}from"../../jodit-pro.js";let v=class pasteCode extends m{constructor(){super(...arguments),this.buttons=[{name:"pasteCode",group:"clipboard"}],this.__highlightLibJSIsLoaded=!1,this.__loadLanguage=new Map,this.__initHighlightLibLoading=async e=>{const{globalHighlightLib:i,highlightLib:{css:o,js:s,langUrl:a,highlight:n,isLangLoaded:l}}=this.j.o.pasteCode;return this.__highlightLibJSIsLoaded||i||(this.__highlightLibJSIsLoaded=waitingPromise(this.async,Promise.allSettled([h(this.jodit,o).catch((()=>null)),d(this.jodit,s).catch((()=>null))]))),p(this.__highlightLibJSIsLoaded)||await this.__highlightLibJSIsLoaded,!e||l(e)||i||(this.__loadLanguage.has(e)||(t||console.log("Load language",e,"for paste-code"),this.__loadLanguage.set(e,waitingPromise(this.async,r(this.jodit,a(e)).catch((()=>null))))),await this.__loadLanguage.get(e)),{highlight:n}}}afterInit(e){e.registerCommand("pasteCode",(()=>this.__openCodeEditDialog())),e.async.requestIdleCallback((()=>this.__initHighlightLibLoading()))}__openCodeEditDialog(e,t,i){const o=this.j,s=this.__createForm(),{code:a,language:n}=c(s.container);e&&(n.value=e),t&&(a.value=t),o.async.requestIdleCallback((()=>{a.focus()})),o.s.save(),this.__createDialog((()=>{if(!s.validate())return!1;{o.s.restore();const e=o.createInside.fromHTML(o.o.pasteCode.insertTemplate(o,n.value,a.value));if(i)b.replace(i,e,o.createInside,!1,!0);else{const t=o.s.current(),i=b.up(t,b.isBlock,o.editor);i&&!b.isCell(i)?b.after(i,e):o.s.insertNode(e)}this.__imdOnChange()}}),(()=>{o.s.restore()})).setContent(s.container).open(!0)}beforeDestruct(e){}__createForm(){const{jodit:e}=this;return new f(e,[new C(e,{name:"language",label:"Language",value:e.o.pasteCode.defaultLanguage,options:e.o.pasteCode.languages,required:!0}),new j(e,{label:"Code view",resizable:!1,name:"code",required:!0,className:"jodit-paste-code__textarea"})],{className:"jodit-paste-code"})}__createDialog(e,t){const i=new L({language:this.j.o.language});return i.setHeader("Insert/Edit Code Sample").setSize(this.j.o.pasteCode.dialog.width,this.j.o.pasteCode.dialog.height).setFooter([_(i,"","Cancel","default").onAction((()=>{i.close(),t()})),_(i,"save","Save","primary").onAction((()=>{i.close(),e()}))]),i}__onChange(){this.__imdOnChange()}__imdOnChange(){n("pre",this.j.editor).forEach((e=>{l(e,"contenteditable")||(l(e,"contenteditable",!1),this.__highlightCode(e))}))}async __highlightCode(e){const t=this.__parseLanguage(e),{highlight:i}=await this.__initHighlightLibLoading(t);let o=e;e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&(o=e.firstElementChild),o.innerHTML=i(o.innerText,t)}onPreEdit(e){const t=b.isNode(e)&&b.isTag(e,"pre")?e:b.closest(e.target,"pre",this.j.editor);if(t){const e=this.__parseLanguage(t);this.__openCodeEditDialog(e,t.innerText,t)}}__parseLanguage(e){let t=null;const getLang=e=>e.classList.forEach((e=>{if(/language-/.test(e)){const i=/language-(.*)/.exec(e);i&&i[1]&&(t=i[1])}}));return getLang(e),null==t&&e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&getLang(e.firstElementChild),this.jodit.o.pasteCode.canonicalLanguageCode(t||"html")}onAfterGetValueFromEditor(e){const strip=(e,t,i,o,s,a)=>`${t.trim()}${o}${u(g(s,this.j.ed,new Set(["br"])))}${a}`;e.value=e.value.replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>\s*<code[^>]*>)(.*?)(<\/code>\s*<\/pre>)/gis,strip).replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>)(.*?)(<\/pre>)/gis,strip)}};v.requires=["license"],e([i],v.prototype,"__openCodeEditDialog",null),e([a(["?:change","?:afterInit"]),s()],v.prototype,"__onChange",null),e([a(["?:dblclick","?:editPreInPasteCode"])],v.prototype,"onPreEdit",null),e([a("?:afterGetValueFromEditor")],v.prototype,"onAfterGetValueFromEditor",null),v=e([o],v);export{v as pasteCode};function waitingPromise(e,t){return e.promise(((e,i)=>{t.then(e).catch(i)})).catch((()=>null))}E.plugins.add("paste-code",v);
6
+ var e=this&&this.__decorate||function(e,t,i,o){var a,s=arguments.length,n=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,o);else for(var r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s<3?a(n):s>3?a(t,i,n):a(t,i))||n);return s>3&&n&&Object.defineProperty(t,i,n),n};import"./config.js";import{IS_PROD as t}from"jodit/esm/core/constants.js";import{autobind as i,component as o,debounce as a,watch as s}from"jodit/esm/core/decorators/index.js";import{$$ as n,appendScriptAsync as r,attr as l,loadNext as d,loadNextStyle as h,refs as c,stripTags as g}from"jodit/esm/core/helpers/index.js";import{isBoolean as p}from"jodit/esm/core/helpers/checker/is-boolean.js";import{htmlspecialchars as u}from"jodit/esm/core/helpers/html/htmlspecialchars.js";import{Plugin as m}from"jodit/esm/core/plugin/index.js";import{Button as _,UIForm as f,UISelect as C,UITextArea as j}from"jodit/esm/core/ui/index.js";import{Dialog as L,Dom as b}from"jodit/esm/modules/index.js";import{JoditPro as E}from"../../jodit-pro.js";let v=class pasteCode extends m{constructor(){super(...arguments),this.buttons=[{name:"pasteCode",group:"clipboard"}],this.__highlightLibJSIsLoaded=!1,this.__loadLanguage=new Map,this.__initHighlightLibLoading=async e=>{const{globalHighlightLib:i,highlightLib:{css:o,js:a,langUrl:s,highlight:n,isLangLoaded:l,beforeLibLoad:c,afterLibLoad:g}}=this.j.o.pasteCode;return this.__highlightLibJSIsLoaded||i||(this.__highlightLibJSIsLoaded=Promise.resolve(null==c?void 0:c()).then((()=>waitingPromise(this.async,Promise.allSettled([h(this.jodit,o).catch((()=>null)),d(this.jodit,a).catch((()=>null))])))).then((()=>null==g?void 0:g()))),p(this.__highlightLibJSIsLoaded)||await this.__highlightLibJSIsLoaded,!e||l(e)||i||(this.__loadLanguage.has(e)||(t||console.log("Load language",e,"for paste-code"),this.__loadLanguage.set(e,waitingPromise(this.async,r(this.jodit,s(e)).catch((()=>null))))),await this.__loadLanguage.get(e)),{highlight:n}}}afterInit(e){e.registerCommand("pasteCode",(()=>this.__openCodeEditDialog())),e.async.requestIdleCallback((()=>this.__initHighlightLibLoading()))}__openCodeEditDialog(e,t,i){const o=this.j,a=this.__createForm(),{code:s,language:n}=c(a.container);e&&(n.value=e),t&&(s.value=t),o.async.requestIdleCallback((()=>{s.focus()})),o.s.save(),this.__createDialog((()=>{if(!a.validate())return!1;{o.s.restore();const e=o.createInside.fromHTML(o.o.pasteCode.insertTemplate(o,n.value,s.value));if(i)b.replace(i,e,o.createInside,!1,!0);else{const t=o.s.current(),i=b.up(t,b.isBlock,o.editor);i&&!b.isCell(i)?b.after(i,e):o.s.insertNode(e)}this.__imdOnChange()}}),(()=>{o.s.restore()})).setContent(a.container).open(!0)}beforeDestruct(e){}__createForm(){const{jodit:e}=this;return new f(e,[new C(e,{name:"language",label:"Language",value:e.o.pasteCode.defaultLanguage,options:e.o.pasteCode.languages,required:!0}),new j(e,{label:"Code view",resizable:!1,name:"code",required:!0,className:"jodit-paste-code__textarea"})],{className:"jodit-paste-code"})}__createDialog(e,t){const i=new L({language:this.j.o.language});return i.setHeader("Insert/Edit Code Sample").setSize(this.j.o.pasteCode.dialog.width,this.j.o.pasteCode.dialog.height).setFooter([_(i,"","Cancel","default").onAction((()=>{i.close(),t()})),_(i,"save","Save","primary").onAction((()=>{i.close(),e()}))]),i}__onChange(){this.__imdOnChange()}__imdOnChange(){n("pre",this.j.editor).forEach((e=>{l(e,"contenteditable")||(l(e,"contenteditable",!1),this.__highlightCode(e).catch((()=>null)))}))}async __highlightCode(e){const t=this.__parseLanguage(e),{highlight:i}=await this.__initHighlightLibLoading(t);let o=e;e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&(o=e.firstElementChild),o.innerHTML=i(o.innerText,t)}onPreEdit(e){const t=b.isNode(e)&&b.isTag(e,"pre")?e:b.closest(e.target,"pre",this.j.editor);if(t){const e=this.__parseLanguage(t);this.__openCodeEditDialog(e,t.innerText,t)}}__parseLanguage(e){let t=null;const getLang=e=>e.classList.forEach((e=>{if(/language-/.test(e)){const i=/language-(.*)/.exec(e);i&&i[1]&&(t=i[1])}}));return getLang(e),null==t&&e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&getLang(e.firstElementChild),this.jodit.o.pasteCode.canonicalLanguageCode(t||"html")}onAfterGetValueFromEditor(e){const strip=(e,t,i,o,a,s)=>`${t.trim()}${o}${u(g(a,this.j.ed,new Set(["br"])))}${s}`;e.value=e.value.replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>\s*<code[^>]*>)(.*?)(<\/code>\s*<\/pre>)/gis,strip).replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>)(.*?)(<\/pre>)/gis,strip)}};v.requires=["license"],e([i],v.prototype,"__openCodeEditDialog",null),e([s(["?:change","?:afterInit"]),a()],v.prototype,"__onChange",null),e([s(["?:dblclick","?:editPreInPasteCode"])],v.prototype,"onPreEdit",null),e([s("?:afterGetValueFromEditor")],v.prototype,"onAfterGetValueFromEditor",null),v=e([o],v);export{v as pasteCode};function waitingPromise(e,t){return e.promise(((e,i)=>{t.then(e).catch(i)})).catch((()=>null))}E.plugins.add("paste-code",v);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,o,e,s){var i,r=arguments.length,l=r<3?o:null===s?s=Object.getOwnPropertyDescriptor(o,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,o,e,s);else for(var n=t.length-1;n>=0;n--)(i=t[n])&&(l=(r<3?i(l):r>3?i(o,e,l):i(o,e))||l);return r>3&&l&&Object.defineProperty(o,e,l),l};import"./config.js";import*as o from"./langs/index.js";import e from"./show-blocks.svg.js";import{autobind as s,cache as i}from"jodit/esm/core/decorators/index.js";import{Dom as r}from"jodit/esm/core/dom/dom.js";import{extendLang as l,getContainer as n}from"jodit/esm/core/global.js";import{Plugin as a}from"jodit/esm/core/plugin/index.js";import{Icon as c}from"jodit/esm/core/ui/icon.js";import{JoditPro as h}from"../../jodit-pro.js";export class showBlocks extends a{get style(){return n(this.jodit,showBlocks,"style",!0)}enable(){this.isEnabled=!0;const t=this.j.o.iframe?"body":".jodit-wysiwyg",{tagList:o,color:e}=this.j.o.showBlocks;this.style.innerHTML=o.map((o=>`${t} ${o}{\n\t\t\t\t\toutline: 1px dashed ${e};\n\t\t\t\t\tbackground-image: url("${function svgToUrl(t){return`data:image/svg+xml;utf8,${escape(t)}`}('<svg xmlns="http://www.w3.org/2000/svg" width="50px"><text dominant-baseline="hanging" text-anchor="end" style="fill: '+e+';font: 10px sans-serif" x="50px" y="0">'+o+"</text></svg>")}");\n\t\t\t\t\tbackground-position: top 2px ${"rtl"===this.j.o.direction?"left":"right"} 4px;\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}`)).join("")}disable(){this.isEnabled=!1,this.style.innerHTML=""}toggle(){this.isEnabled?this.disable():this.enable(),this.j.e.fire("updateToolbar")}constructor(t){super(t),this.buttons=[{name:"showBlocks",group:"state"}],this.isEnabled=!1,l(o),c.set("showBlocks",e)}afterInit(t){t.e.on("showBlocksEnabled",(()=>this.isEnabled)),t.registerCommand("enableShowBlocks",this.enable).registerCommand("disableShowBlocks",this.disable).registerCommand("toggleShowBlocks",this.toggle),this.j.o.showBlocks.enable&&this.enable()}beforeDestruct(t){this.disable(),r.safeRemove(this.style)}}showBlocks.requires=["license"],t([i],showBlocks.prototype,"style",null),t([s],showBlocks.prototype,"enable",null),t([s],showBlocks.prototype,"disable",null),t([s],showBlocks.prototype,"toggle",null),h.plugins.add("show-blocks",showBlocks);
6
+ var t=this&&this.__decorate||function(t,o,e,s){var i,r=arguments.length,l=r<3?o:null===s?s=Object.getOwnPropertyDescriptor(o,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,o,e,s);else for(var n=t.length-1;n>=0;n--)(i=t[n])&&(l=(r<3?i(l):r>3?i(o,e,l):i(o,e))||l);return r>3&&l&&Object.defineProperty(o,e,l),l};import"./config.js";import*as o from"./langs/index.js";import e from"./show-blocks.svg.js";import{autobind as s,cache as i,cached as r}from"jodit/esm/core/decorators/index.js";import{Dom as l}from"jodit/esm/core/dom/dom.js";import{extendLang as n,getContainer as a}from"jodit/esm/core/global.js";import{Plugin as c}from"jodit/esm/core/plugin/index.js";import{Icon as h}from"jodit/esm/core/ui/icon.js";import{JoditPro as d}from"../../jodit-pro.js";export class showBlocks extends c{get style(){return a(this.jodit,showBlocks,"style",!0)}enable(){this.isEnabled=!0;const t=this.j.o.iframe?"body":".jodit-wysiwyg",{tagList:o,color:e}=this.j.o.showBlocks;this.style.innerHTML=o.map((o=>`${t} ${o}{\n\t\t\t\t\toutline: 1px dashed ${e};\n\t\t\t\t\tbackground-image: url("${function svgToUrl(t){return`data:image/svg+xml;utf8,${escape(t)}`}('<svg xmlns="http://www.w3.org/2000/svg" width="50px"><text dominant-baseline="hanging" text-anchor="end" style="fill: '+e+';font: 10px sans-serif" x="50px" y="0">'+o+"</text></svg>")}");\n\t\t\t\t\tbackground-position: top 2px ${"rtl"===this.j.o.direction?"left":"right"} 4px;\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}`)).join("")}disable(){this.isEnabled=!1;const t=r(this,"style");t&&(t.innerHTML="")}toggle(){this.isEnabled?this.disable():this.enable(),this.j.e.fire("updateToolbar")}constructor(t){super(t),this.buttons=[{name:"showBlocks",group:"state"}],this.isEnabled=!1,n(o),h.set("showBlocks",e)}afterInit(t){t.e.on("showBlocksEnabled",(()=>this.isEnabled)),t.registerCommand("enableShowBlocks",this.enable).registerCommand("disableShowBlocks",this.disable).registerCommand("toggleShowBlocks",this.toggle),this.j.o.showBlocks.enable&&this.enable()}beforeDestruct(t){this.disable(),l.safeRemove(r(this,"style"))}}showBlocks.requires=["license"],t([i],showBlocks.prototype,"style",null),t([s],showBlocks.prototype,"enable",null),t([s],showBlocks.prototype,"disable",null),t([s],showBlocks.prototype,"toggle",null),d.plugins.add("show-blocks",showBlocks);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit-pro",
3
- "version": "4.5.17",
3
+ "version": "4.5.21",
4
4
  "author": "Chupurnov Valeriy <chupurnov@gmail.com>",
5
5
  "homepage": "https://xdsoft.net/jodit/pro/",
6
6
  "bugs": {
package/types/config.d.ts CHANGED
@@ -16,6 +16,7 @@ import type { IJodit } from "jodit/esm/types/index";
16
16
  import type { IKeys } from "./plugins/keyboard/interface";
17
17
  import type { ButtonGroup } from "jodit/esm/types/index";
18
18
  import type { ILayoutKeys } from "./plugins/keyboard/interface";
19
+ import type { CanPromise } from "jodit/esm/types/index";
19
20
  import type { IUIOption } from "jodit/esm/types/index";
20
21
  import type { ITranslateProviderFactory } from "./plugins/translate/interface";
21
22
  import type { IGoogleTranslateProviderOptions } from "./plugins/translate/interface";
@@ -155,6 +156,8 @@ interface Config {
155
156
  highlight: (code: string, language: string) => string;
156
157
  isLangLoaded: (lang: string) => boolean;
157
158
  langUrl: (lang: string) => string;
159
+ beforeLibLoad?: () => CanPromise<void>;
160
+ afterLibLoad?: () => CanPromise<void>;
158
161
  js: string[];
159
162
  css: string[];
160
163
  };
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import type { IJodit, IUIOption } from "jodit/esm/types/index";
6
+ import type { CanPromise, IJodit, IUIOption } from "jodit/esm/types/index";
7
7
  declare global {
8
8
  const Prism: {
9
9
  languages: {
@@ -21,6 +21,8 @@ declare module 'jodit/esm/config' {
21
21
  highlight: (code: string, language: string) => string;
22
22
  isLangLoaded: (lang: string) => boolean;
23
23
  langUrl: (lang: string) => string;
24
+ beforeLibLoad?: () => CanPromise<void>;
25
+ afterLibLoad?: () => CanPromise<void>;
24
26
  js: string[];
25
27
  css: string[];
26
28
  };