jodit-pro 4.12.40 → 4.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/config.js +1 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +30 -30
  5. package/es2015/jodit.js +127 -54
  6. package/es2015/jodit.min.js +5 -5
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  11. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  12. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  13. package/es2015/plugins/backup/backup.css +1 -1
  14. package/es2015/plugins/backup/backup.js +1 -1
  15. package/es2015/plugins/backup/backup.min.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.css +1 -1
  17. package/es2015/plugins/button-generator/button-generator.js +1 -1
  18. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  19. package/es2015/plugins/change-case/change-case.js +1 -1
  20. package/es2015/plugins/change-case/change-case.min.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.css +1 -1
  22. package/es2015/plugins/color-picker/color-picker.js +1 -1
  23. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  24. package/es2015/plugins/emoji/emoji.css +1 -1
  25. package/es2015/plugins/emoji/emoji.js +1 -1
  26. package/es2015/plugins/emoji/emoji.min.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  29. package/es2015/plugins/finder/finder.css +47 -4
  30. package/es2015/plugins/finder/finder.js +48 -3
  31. package/es2015/plugins/finder/finder.min.css +1 -1
  32. package/es2015/plugins/finder/finder.min.js +4 -4
  33. package/es2015/plugins/google-maps/google-maps.css +1 -1
  34. package/es2015/plugins/google-maps/google-maps.js +1 -1
  35. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  36. package/es2015/plugins/google-search/google-search.js +1 -1
  37. package/es2015/plugins/google-search/google-search.min.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  39. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  42. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.css +52 -0
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.js +3969 -0
  45. package/es2015/plugins/image-editor-pro/image-editor-pro.min.css +1 -0
  46. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +8 -0
  47. package/es2015/plugins/keyboard/keyboard.css +1 -1
  48. package/es2015/plugins/keyboard/keyboard.js +1 -1
  49. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  50. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  51. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  52. package/es2015/plugins/page-break/page-break.js +1 -1
  53. package/es2015/plugins/page-break/page-break.min.js +1 -1
  54. package/es2015/plugins/paste-code/paste-code.css +1 -1
  55. package/es2015/plugins/paste-code/paste-code.js +1 -1
  56. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  57. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  58. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  59. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  60. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  61. package/es2015/plugins/style/style.css +1 -1
  62. package/es2015/plugins/style/style.js +1 -1
  63. package/es2015/plugins/style/style.min.js +1 -1
  64. package/es2015/plugins/templates/templates.css +1 -1
  65. package/es2015/plugins/templates/templates.js +1 -1
  66. package/es2015/plugins/templates/templates.min.js +1 -1
  67. package/es2015/plugins/todo-list/todo-list.css +1 -1
  68. package/es2015/plugins/todo-list/todo-list.js +1 -1
  69. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  70. package/es2015/plugins/translate/translate.css +1 -1
  71. package/es2015/plugins/translate/translate.js +1 -1
  72. package/es2015/plugins/translate/translate.min.js +1 -1
  73. package/es2015/plugins/tune-block/tune-block.css +1 -1
  74. package/es2015/plugins/tune-block/tune-block.js +1 -1
  75. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  76. package/es2018/jodit.fat.min.css +1 -1
  77. package/es2018/jodit.fat.min.js +31 -31
  78. package/es2018/jodit.min.js +5 -5
  79. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  80. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  81. package/es2018/plugins/backup/backup.min.js +1 -1
  82. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  83. package/es2018/plugins/change-case/change-case.min.js +1 -1
  84. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  85. package/es2018/plugins/emoji/emoji.min.js +1 -1
  86. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  87. package/es2018/plugins/finder/finder.min.css +1 -1
  88. package/es2018/plugins/finder/finder.min.js +4 -4
  89. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  90. package/es2018/plugins/google-search/google-search.min.js +1 -1
  91. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  92. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  93. package/es2018/plugins/image-editor-pro/image-editor-pro.min.css +1 -0
  94. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +8 -0
  95. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  96. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  97. package/es2018/plugins/page-break/page-break.min.js +1 -1
  98. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  99. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  100. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  101. package/es2018/plugins/style/style.min.js +1 -1
  102. package/es2018/plugins/templates/templates.min.js +1 -1
  103. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  104. package/es2018/plugins/translate/translate.min.js +1 -1
  105. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  106. package/es2021/jodit.css +1 -1
  107. package/es2021/jodit.fat.min.css +1 -1
  108. package/es2021/jodit.fat.min.js +823 -39
  109. package/es2021/jodit.js +127 -54
  110. package/es2021/jodit.min.js +6 -6
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  112. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  113. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  114. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  115. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  116. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  117. package/es2021/plugins/backup/backup.css +1 -1
  118. package/es2021/plugins/backup/backup.js +1 -1
  119. package/es2021/plugins/backup/backup.min.js +1 -1
  120. package/es2021/plugins/button-generator/button-generator.css +1 -1
  121. package/es2021/plugins/button-generator/button-generator.js +1 -1
  122. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  123. package/es2021/plugins/change-case/change-case.js +1 -1
  124. package/es2021/plugins/change-case/change-case.min.js +1 -1
  125. package/es2021/plugins/color-picker/color-picker.css +1 -1
  126. package/es2021/plugins/color-picker/color-picker.js +1 -1
  127. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  128. package/es2021/plugins/emoji/emoji.css +1 -1
  129. package/es2021/plugins/emoji/emoji.js +1 -1
  130. package/es2021/plugins/emoji/emoji.min.js +1 -1
  131. package/es2021/plugins/export-docs/export-docs.js +1 -1
  132. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  133. package/es2021/plugins/finder/finder.css +47 -4
  134. package/es2021/plugins/finder/finder.js +48 -3
  135. package/es2021/plugins/finder/finder.min.css +1 -1
  136. package/es2021/plugins/finder/finder.min.js +12 -12
  137. package/es2021/plugins/google-maps/google-maps.css +1 -1
  138. package/es2021/plugins/google-maps/google-maps.js +1 -1
  139. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  140. package/es2021/plugins/google-search/google-search.js +1 -1
  141. package/es2021/plugins/google-search/google-search.min.js +1 -1
  142. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  143. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  144. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  145. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  146. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  147. package/es2021/plugins/image-editor-pro/image-editor-pro.css +52 -0
  148. package/es2021/plugins/image-editor-pro/image-editor-pro.js +3870 -0
  149. package/es2021/plugins/image-editor-pro/image-editor-pro.min.css +1 -0
  150. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +792 -0
  151. package/es2021/plugins/keyboard/keyboard.css +1 -1
  152. package/es2021/plugins/keyboard/keyboard.js +1 -1
  153. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  154. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  155. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  156. package/es2021/plugins/page-break/page-break.js +1 -1
  157. package/es2021/plugins/page-break/page-break.min.js +1 -1
  158. package/es2021/plugins/paste-code/paste-code.css +1 -1
  159. package/es2021/plugins/paste-code/paste-code.js +1 -1
  160. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  161. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  162. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  163. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  164. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  165. package/es2021/plugins/style/style.css +1 -1
  166. package/es2021/plugins/style/style.js +1 -1
  167. package/es2021/plugins/style/style.min.js +1 -1
  168. package/es2021/plugins/templates/templates.css +1 -1
  169. package/es2021/plugins/templates/templates.js +1 -1
  170. package/es2021/plugins/templates/templates.min.js +1 -1
  171. package/es2021/plugins/todo-list/todo-list.css +1 -1
  172. package/es2021/plugins/todo-list/todo-list.js +1 -1
  173. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  174. package/es2021/plugins/translate/translate.css +1 -1
  175. package/es2021/plugins/translate/translate.js +1 -1
  176. package/es2021/plugins/translate/translate.min.js +1 -1
  177. package/es2021/plugins/tune-block/tune-block.css +1 -1
  178. package/es2021/plugins/tune-block/tune-block.js +1 -1
  179. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  180. package/es2021.en/jodit.css +1 -1
  181. package/es2021.en/jodit.fat.min.css +1 -1
  182. package/es2021.en/jodit.fat.min.js +865 -81
  183. package/es2021.en/jodit.js +127 -54
  184. package/es2021.en/jodit.min.js +6 -6
  185. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  186. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  187. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  188. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  189. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  190. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  191. package/es2021.en/plugins/backup/backup.css +1 -1
  192. package/es2021.en/plugins/backup/backup.js +1 -1
  193. package/es2021.en/plugins/backup/backup.min.js +1 -1
  194. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  195. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  196. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  197. package/es2021.en/plugins/change-case/change-case.js +1 -1
  198. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  199. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  200. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  201. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  202. package/es2021.en/plugins/emoji/emoji.css +1 -1
  203. package/es2021.en/plugins/emoji/emoji.js +1 -1
  204. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  205. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  206. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  207. package/es2021.en/plugins/finder/finder.css +47 -4
  208. package/es2021.en/plugins/finder/finder.js +48 -3
  209. package/es2021.en/plugins/finder/finder.min.css +1 -1
  210. package/es2021.en/plugins/finder/finder.min.js +4 -4
  211. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  212. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  213. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  214. package/es2021.en/plugins/google-search/google-search.js +1 -1
  215. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  216. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  217. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  218. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  219. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  220. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  221. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +52 -0
  222. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +3870 -0
  223. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.css +1 -0
  224. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +792 -0
  225. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  226. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  227. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  228. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  229. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  230. package/es2021.en/plugins/page-break/page-break.js +1 -1
  231. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  232. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  233. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  234. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  235. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  236. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  237. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  238. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  239. package/es2021.en/plugins/style/style.css +1 -1
  240. package/es2021.en/plugins/style/style.js +1 -1
  241. package/es2021.en/plugins/style/style.min.js +1 -1
  242. package/es2021.en/plugins/templates/templates.css +1 -1
  243. package/es2021.en/plugins/templates/templates.js +1 -1
  244. package/es2021.en/plugins/templates/templates.min.js +1 -1
  245. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  246. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  247. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  248. package/es2021.en/plugins/translate/translate.css +1 -1
  249. package/es2021.en/plugins/translate/translate.js +1 -1
  250. package/es2021.en/plugins/translate/translate.min.js +1 -1
  251. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  252. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  253. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  254. package/es5/jodit.css +2 -2
  255. package/es5/jodit.fat.min.css +1 -1
  256. package/es5/jodit.fat.min.js +2 -2
  257. package/es5/jodit.js +137 -53
  258. package/es5/jodit.min.css +2 -2
  259. package/es5/jodit.min.js +2 -2
  260. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  261. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  262. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  263. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  264. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  265. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  266. package/es5/plugins/backup/backup.css +1 -1
  267. package/es5/plugins/backup/backup.js +1 -1
  268. package/es5/plugins/backup/backup.min.js +1 -1
  269. package/es5/plugins/button-generator/button-generator.css +1 -1
  270. package/es5/plugins/button-generator/button-generator.js +1 -1
  271. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  272. package/es5/plugins/change-case/change-case.js +1 -1
  273. package/es5/plugins/change-case/change-case.min.js +1 -1
  274. package/es5/plugins/color-picker/color-picker.css +1 -1
  275. package/es5/plugins/color-picker/color-picker.js +1 -1
  276. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  277. package/es5/plugins/emoji/emoji.css +1 -1
  278. package/es5/plugins/emoji/emoji.js +1 -1
  279. package/es5/plugins/emoji/emoji.min.js +1 -1
  280. package/es5/plugins/export-docs/export-docs.js +1 -1
  281. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  282. package/es5/plugins/finder/finder.css +47 -4
  283. package/es5/plugins/finder/finder.js +93 -28
  284. package/es5/plugins/finder/finder.min.css +1 -1
  285. package/es5/plugins/finder/finder.min.js +2 -2
  286. package/es5/plugins/google-maps/google-maps.css +1 -1
  287. package/es5/plugins/google-maps/google-maps.js +1 -1
  288. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  289. package/es5/plugins/google-search/google-search.js +1 -1
  290. package/es5/plugins/google-search/google-search.min.js +1 -1
  291. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  292. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  293. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  294. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  295. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  296. package/es5/plugins/image-editor-pro/image-editor-pro.css +52 -0
  297. package/es5/plugins/image-editor-pro/image-editor-pro.js +5469 -0
  298. package/es5/plugins/image-editor-pro/image-editor-pro.min.css +1 -0
  299. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +8 -0
  300. package/es5/plugins/keyboard/keyboard.css +1 -1
  301. package/es5/plugins/keyboard/keyboard.js +1 -1
  302. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  303. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  304. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  305. package/es5/plugins/page-break/page-break.js +1 -1
  306. package/es5/plugins/page-break/page-break.min.js +1 -1
  307. package/es5/plugins/paste-code/paste-code.css +1 -1
  308. package/es5/plugins/paste-code/paste-code.js +1 -1
  309. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  310. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  311. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  312. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  313. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  314. package/es5/plugins/style/style.css +1 -1
  315. package/es5/plugins/style/style.js +1 -1
  316. package/es5/plugins/style/style.min.js +1 -1
  317. package/es5/plugins/templates/templates.css +1 -1
  318. package/es5/plugins/templates/templates.js +1 -1
  319. package/es5/plugins/templates/templates.min.js +1 -1
  320. package/es5/plugins/todo-list/todo-list.css +1 -1
  321. package/es5/plugins/todo-list/todo-list.js +1 -1
  322. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  323. package/es5/plugins/translate/translate.css +1 -1
  324. package/es5/plugins/translate/translate.js +1 -1
  325. package/es5/plugins/translate/translate.min.js +1 -1
  326. package/es5/plugins/tune-block/tune-block.css +1 -1
  327. package/es5/plugins/tune-block/tune-block.js +1 -1
  328. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  329. package/es5/polyfills.fat.min.js +1 -1
  330. package/es5/polyfills.js +1 -1
  331. package/es5/polyfills.min.js +1 -1
  332. package/esm/config.d.ts +9 -0
  333. package/esm/plugins/all.js +1 -1
  334. package/esm/plugins/finder/ui/lightboox/lightbox.js +2 -2
  335. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +11 -1
  336. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.js +2 -2
  337. package/esm/plugins/image-editor-pro/adapter.d.ts +98 -0
  338. package/esm/plugins/image-editor-pro/adapter.js +1 -0
  339. package/esm/plugins/image-editor-pro/config.d.ts +17 -0
  340. package/esm/plugins/image-editor-pro/config.js +1 -0
  341. package/esm/plugins/image-editor-pro/image-editor-pro.d.ts +26 -0
  342. package/esm/plugins/image-editor-pro/image-editor-pro.js +1 -0
  343. package/package.json +2 -1
  344. package/types/config.d.ts +9 -0
  345. package/types/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +11 -1
  346. package/types/plugins/image-editor-pro/adapter.d.ts +98 -0
  347. package/types/plugins/image-editor-pro/config.d.ts +17 -0
  348. package/types/plugins/image-editor-pro/image-editor-pro.d.ts +26 -0
package/es5/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.40
4
+ * Version: v4.13.2
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2266,7 +2266,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2266
2266
  if (n === "Map" || n === "Set") return Array.from(n);
2267
2267
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2268
2268
  }
2269
- var APP_VERSION = "4.12.40";
2269
+ var APP_VERSION = "4.13.2";
2270
2270
  // prettier-ignore
2271
2271
  var ES = "es5";
2272
2272
  var IS_ES_MODERN = false;
@@ -3879,6 +3879,7 @@ function _ts_values(o) {
3879
3879
 
3880
3880
 
3881
3881
 
3882
+ var TEMP_ELEMENT_REG_EXP = new RegExp("<([a-z]+)[^>]+".concat(_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEMP_ATTR, "[^>]*>(.+?)</\\1>"), 'gi');
3882
3883
  /**
3883
3884
  * Module for working with DOM
3884
3885
  */ var Dom = /*#__PURE__*/ function() {
@@ -4005,7 +4006,11 @@ function _ts_values(o) {
4005
4006
  {
4006
4007
  key: "between",
4007
4008
  value: /**
4008
- * Call functions for all nodes between `start` and `end`
4009
+ * Call callback for all nodes between `start` and `end` in document order
4010
+ * (`start` and `end` are not included). Iteration stops when the callback returns `true`.
4011
+ *
4012
+ * `end` must be positioned after `start` in the document (e.g. selection markers),
4013
+ * otherwise iteration will stop only at the end of the tree.
4009
4014
  */ function between(start, end, callback) {
4010
4015
  var next = start;
4011
4016
  while(next && next !== end){
@@ -4016,6 +4021,10 @@ function _ts_values(o) {
4016
4021
  if (!step) {
4017
4022
  while(next && !next.nextSibling){
4018
4023
  next = next.parentNode;
4024
+ // `end` was reached while ascending - all nodes between were visited
4025
+ if (next === end) {
4026
+ return;
4027
+ }
4019
4028
  }
4020
4029
  step = next === null || next === void 0 ? void 0 : next.nextSibling;
4021
4030
  }
@@ -4131,7 +4140,7 @@ function _ts_values(o) {
4131
4140
  {
4132
4141
  key: "isList",
4133
4142
  value: /**
4134
- * Check if element is a list element UL or OL
4143
+ * Check if element is a list element UL or OL
4135
4144
  */ function isList(elm) {
4136
4145
  return Dom.isTag(elm, _constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
4137
4146
  }
@@ -4195,12 +4204,13 @@ function _ts_values(o) {
4195
4204
  value: /**
4196
4205
  * Check if element is document fragment
4197
4206
  */ function isFragment(node) {
4198
- var _a;
4199
4207
  if (!Dom.isNode(node)) {
4200
4208
  return false;
4201
4209
  }
4202
- var win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
4203
- return Boolean(win && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE);
4210
+ // no `defaultView` requirement fragments of an inert document
4211
+ // (`template.content`, `DOMParser`, `implementation.createHTMLDocument`)
4212
+ // are still fragments
4213
+ return node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;
4204
4214
  }
4205
4215
  },
4206
4216
  {
@@ -4347,7 +4357,9 @@ function _ts_values(o) {
4347
4357
  {
4348
4358
  key: "nextGen",
4349
4359
  value: /**
4350
- * Find next/prev node what `condition(next) === true`
4360
+ * Lazily iterate over all nodes what follow after `start` (in document order
4361
+ * for `leftToRight = true`, in reverse order otherwise) inside `root`.
4362
+ * Ancestors of `start` are not yielded.
4351
4363
  */ function nextGen(start, root) {
4352
4364
  var leftToRight, withChild, stack, currentNode, next;
4353
4365
  var _arguments = arguments;
@@ -4361,9 +4373,10 @@ function _ts_values(o) {
4361
4373
  case 1:
4362
4374
  next = leftToRight ? currentNode.nextSibling : currentNode.previousSibling;
4363
4375
  while(next){
4364
- stack.unshift(next);
4376
+ stack.push(next);
4365
4377
  next = leftToRight ? next.nextSibling : next.previousSibling;
4366
4378
  }
4379
+ stack.reverse();
4367
4380
  return [
4368
4381
  5,
4369
4382
  _ts_values(this.runInStack(start, stack, leftToRight, withChild))
@@ -4398,7 +4411,7 @@ function _ts_values(o) {
4398
4411
  * ```javascript
4399
4412
  * Jodit.modules.Dom.each(editor.s.current(), function (node) {
4400
4413
  * if (node.nodeType === Node.TEXT_NODE) {
4401
- * node.nodeValue = node.nodeValue.replace(Jodit.INVISIBLE_SPACE_REG_EX, '') // remove all of the text element codes invisible character
4414
+ * node.nodeValue = node.nodeValue.replace(Jodit.INVISIBLE_SPACE_REG_EXP(), '') // remove all of the text element codes invisible character
4402
4415
  * }
4403
4416
  * });
4404
4417
  * ```
@@ -4536,7 +4549,9 @@ function _ts_values(o) {
4536
4549
  },
4537
4550
  {
4538
4551
  key: "sibling",
4539
- value: function sibling(node, left) {
4552
+ value: /**
4553
+ * Returns the previous (`left = true`) or next sibling of the node
4554
+ */ function sibling(node, left) {
4540
4555
  return left ? node.previousSibling : node.nextSibling;
4541
4556
  }
4542
4557
  },
@@ -4544,6 +4559,10 @@ function _ts_values(o) {
4544
4559
  key: "up",
4545
4560
  value: /**
4546
4561
  * It goes through all the elements in ascending order, and checks to see if they meet the predetermined condition
4562
+ *
4563
+ * The condition is checked for the `node` itself too. The `root` reached
4564
+ * while ascending is checked only when `checkRoot = true`
4565
+ * (but if `node === root` it is checked in any case).
4547
4566
  */ function up(node, condition, root) {
4548
4567
  var checkRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
4549
4568
  var start = node;
@@ -4720,7 +4739,12 @@ function _ts_values(o) {
4720
4739
  },
4721
4740
  {
4722
4741
  key: "safeInsertNode",
4723
- value: function safeInsertNode(range, node) {
4742
+ value: /**
4743
+ * Insert a node into the range and collapse the range to the start of
4744
+ * the inserted content. Unlike the native `Range.insertNode` it does not
4745
+ * split inseparable elements (BR, HR, IMG etc.) and removes empty text
4746
+ * nodes produced by the split of a text container.
4747
+ */ function safeInsertNode(range, node) {
4724
4748
  range.collapsed || range.deleteContents();
4725
4749
  var child = Dom.isFragment(node) ? node.lastChild : node;
4726
4750
  if (range.startContainer === range.endContainer && range.collapsed && Dom.isTag(range.startContainer, _constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS)) {
@@ -4770,22 +4794,17 @@ function _ts_values(o) {
4770
4794
  {
4771
4795
  key: "isTag",
4772
4796
  value: function isTag(node, tagNames) {
4797
+ if (Array.isArray(tagNames)) {
4798
+ throw new TypeError('Dom.isTag does not support array');
4799
+ }
4773
4800
  if (!this.isElement(node)) {
4774
4801
  return false;
4775
4802
  }
4776
4803
  var nameL = node.tagName.toLowerCase();
4777
- var nameU = node.tagName.toUpperCase();
4778
4804
  if (_instanceof(tagNames, Set)) {
4779
- return tagNames.has(nameL) || tagNames.has(nameU);
4805
+ return tagNames.has(nameL) || tagNames.has(node.tagName.toUpperCase());
4780
4806
  }
4781
- if (Array.isArray(tagNames)) {
4782
- throw new TypeError('Dom.isTag does not support array');
4783
- }
4784
- var tags = tagNames;
4785
- if (nameL === tags || nameU === tags) {
4786
- return true;
4787
- }
4788
- return false;
4807
+ return nameL === tagNames || node.tagName.toUpperCase() === tagNames;
4789
4808
  }
4790
4809
  },
4791
4810
  {
@@ -4820,9 +4839,9 @@ function _ts_values(o) {
4820
4839
  {
4821
4840
  key: "replaceTemporaryFromString",
4822
4841
  value: /**
4823
- * Replace temporary elements from string
4842
+ * Unwrap temporary elements inside a HTML string (keeps their content)
4824
4843
  */ function replaceTemporaryFromString(value) {
4825
- return value.replace(/<([a-z]+)[^>]+data-jodit-temp[^>]+>(.+?)<\/\1>/gi, '$2');
4844
+ return value.replace(TEMP_ELEMENT_REG_EXP, '$2');
4826
4845
  }
4827
4846
  },
4828
4847
  {
@@ -4980,7 +4999,16 @@ function _is_native_reflect_construct() {
4980
4999
 
4981
5000
 
4982
5001
 
4983
- var LazyWalker = /*#__PURE__*/ function(Eventify) {
5002
+ /**
5003
+ * Walks the DOM tree in small chunks between browser tasks so that even huge
5004
+ * documents do not block the main thread.
5005
+ *
5006
+ * Events:
5007
+ * - `visit` - is called for every node; return `true` to mark the pass as
5008
+ * "had effect" (it will be passed into the `end` event)
5009
+ * - `break` - the pass was interrupted via [[LazyWalker.break]]
5010
+ * - `end` - the pass is finished, receives `true` if some `visit` handler returned `true`
5011
+ */ var LazyWalker = /*#__PURE__*/ function(Eventify) {
4984
5012
  "use strict";
4985
5013
  _inherits(LazyWalker, Eventify);
4986
5014
  function LazyWalker(async) {
@@ -4994,19 +5022,25 @@ var LazyWalker = /*#__PURE__*/ function(Eventify) {
4994
5022
  _this.hadAffect = false;
4995
5023
  _this.isWorked = false;
4996
5024
  _this.isFinished = false;
4997
- _this.idleId = 0;
4998
5025
  _this.__schedulerController = null;
4999
5026
  return _this;
5000
5027
  }
5001
5028
  _create_class(LazyWalker, [
5002
5029
  {
5003
- key: "setWork",
5030
+ /**
5031
+ * Starts a new pass over the `root` tree.
5032
+ * If a previous pass is still running it will be stopped first.
5033
+ */ key: "setWork",
5004
5034
  value: function setWork(root) {
5005
5035
  if (this.isWorked) {
5006
5036
  this.break();
5037
+ } else {
5038
+ // cancel a not yet started pass scheduled by the previous `setWork` call
5039
+ this.stop();
5007
5040
  }
5008
5041
  this.workNodes = _dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.eachGen(root, !this.options.reverse);
5009
5042
  this.isFinished = false;
5043
+ this.hadAffect = false;
5010
5044
  this._requestStarting();
5011
5045
  return this;
5012
5046
  }
@@ -5045,10 +5079,12 @@ var LazyWalker = /*#__PURE__*/ function(Eventify) {
5045
5079
  {
5046
5080
  key: "stop",
5047
5081
  value: function stop() {
5082
+ var _a;
5048
5083
  this.isWorked = false;
5049
5084
  this.isFinished = true;
5050
5085
  this.workNodes = null;
5051
- this.async.cancelIdleCallback(this.idleId);
5086
+ (_a = this.__schedulerController) === null || _a === void 0 ? void 0 : _a.abort();
5087
+ this.__schedulerController = null;
5052
5088
  }
5053
5089
  },
5054
5090
  {
@@ -5066,7 +5102,7 @@ var LazyWalker = /*#__PURE__*/ function(Eventify) {
5066
5102
  this.isWorked = true;
5067
5103
  var count = 0;
5068
5104
  var chunkSize = (_a = this.options.timeoutChunkSize) !== null && _a !== void 0 ? _a : 50;
5069
- while(!this.isFinished && count <= chunkSize){
5105
+ while(!this.isFinished && count < chunkSize){
5070
5106
  var item = this.workNodes.next();
5071
5107
  count += 1;
5072
5108
  if (this.visitNode(item.value)) {
@@ -13003,7 +13039,7 @@ var Ajax = /*#__PURE__*/ function() {
13003
13039
  if (method === 'get' && data && (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isPlainObject)(data)) {
13004
13040
  var qIndex = url.indexOf('?');
13005
13041
  if (qIndex !== -1) {
13006
- var urlData = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.parseQuery)(url);
13042
+ var urlData = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.parseQuery)(url.substring(qIndex));
13007
13043
  url = url.substring(0, qIndex) + '?' + (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.buildQuery)(_object_spread({}, urlData, data));
13008
13044
  } else {
13009
13045
  url += '?' + (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.buildQuery)(this.o.data);
@@ -13330,7 +13366,9 @@ function _ts_generator(thisArg, body) {
13330
13366
 
13331
13367
 
13332
13368
  /**
13333
- * Check if the cursor is at the edge of the string
13369
+ * Despite the name, returns `true` when the cursor is NOT at the checked edge
13370
+ * of the text node: there is significant (non invisible-space) text between
13371
+ * the offset and the start (`start = true`) or the end (`end = true`) of the string.
13334
13372
  * @private
13335
13373
  */ function cursorInTheEdgeOfString(container, offset, start, end) {
13336
13374
  var _a;
@@ -13501,6 +13539,9 @@ function _array_like_to_array(arr, len) {
13501
13539
  function _array_with_holes(arr) {
13502
13540
  if (Array.isArray(arr)) return arr;
13503
13541
  }
13542
+ function _array_without_holes(arr) {
13543
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
13544
+ }
13504
13545
  function _class_call_check(instance, Constructor) {
13505
13546
  if (!(instance instanceof Constructor)) {
13506
13547
  throw new TypeError("Cannot call a class as a function");
@@ -13520,6 +13561,9 @@ function _create_class(Constructor, protoProps, staticProps) {
13520
13561
  if (staticProps) _defineProperties(Constructor, staticProps);
13521
13562
  return Constructor;
13522
13563
  }
13564
+ function _iterable_to_array(iter) {
13565
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
13566
+ }
13523
13567
  function _iterable_to_array_limit(arr, i) {
13524
13568
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
13525
13569
  if (_i == null) return;
@@ -13547,9 +13591,15 @@ function _iterable_to_array_limit(arr, i) {
13547
13591
  function _non_iterable_rest() {
13548
13592
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
13549
13593
  }
13594
+ function _non_iterable_spread() {
13595
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
13596
+ }
13550
13597
  function _sliced_to_array(arr, i) {
13551
13598
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
13552
13599
  }
13600
+ function _to_consumable_array(arr) {
13601
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
13602
+ }
13553
13603
  function _type_of(obj) {
13554
13604
  "@swc/helpers - typeof";
13555
13605
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -13871,7 +13921,8 @@ var Selection = /*#__PURE__*/ function() {
13871
13921
  * Remove all markers
13872
13922
  */ key: "removeMarkers",
13873
13923
  value: function removeMarkers() {
13874
- _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove.apply(null, this.markers);
13924
+ var _Dom;
13925
+ (_Dom = _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom).safeRemove.apply(_Dom, _to_consumable_array(this.markers));
13875
13926
  }
13876
13927
  },
13877
13928
  {
@@ -13939,7 +13990,11 @@ var Selection = /*#__PURE__*/ function() {
13939
13990
  }
13940
13991
  },
13941
13992
  {
13942
- key: "fakes",
13993
+ /**
13994
+ * Inserts invisible fake nodes on the boundaries of the current selection
13995
+ * and returns them. Unlike [[Select.save]] the selection stays valid while
13996
+ * the DOM around it is being modified. Restore it later with [[Select.restoreFakes]].
13997
+ */ key: "fakes",
13943
13998
  value: function fakes() {
13944
13999
  var sel = this.sel;
13945
14000
  if (!sel || !sel.rangeCount) {
@@ -13968,7 +14023,10 @@ var Selection = /*#__PURE__*/ function() {
13968
14023
  }
13969
14024
  },
13970
14025
  {
13971
- key: "restoreFakes",
14026
+ /**
14027
+ * Restores the selection previously saved with [[Select.fakes]]
14028
+ * and removes the fake nodes (disconnected fakes are ignored).
14029
+ */ key: "restoreFakes",
13972
14030
  value: function restoreFakes(fakes) {
13973
14031
  var _a, _b, _c, _d;
13974
14032
  var nodes = fakes.filter(function(n) {
@@ -14246,7 +14304,6 @@ var Selection = /*#__PURE__*/ function() {
14246
14304
  }
14247
14305
  var node = this.j.createInside.div();
14248
14306
  var fragment = this.j.createInside.fragment();
14249
- var lastChild;
14250
14307
  if (!this.isFocused() && this.j.isEditorMode()) {
14251
14308
  this.focus();
14252
14309
  this.restore();
@@ -14259,12 +14316,10 @@ var Selection = /*#__PURE__*/ function() {
14259
14316
  if (!this.j.isEditorMode() && this.j.e.fire('insertHTML', node.innerHTML) === false) {
14260
14317
  return;
14261
14318
  }
14262
- lastChild = node.lastChild;
14263
- if (!lastChild) {
14319
+ if (!node.lastChild) {
14264
14320
  return;
14265
14321
  }
14266
14322
  while(node.firstChild){
14267
- lastChild = node.firstChild;
14268
14323
  fragment.appendChild(node.firstChild);
14269
14324
  }
14270
14325
  this.insertNode(fragment, insertCursorAfter, false);
@@ -14385,7 +14440,8 @@ var Selection = /*#__PURE__*/ function() {
14385
14440
  if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isEmptyTextNode(start)) {
14386
14441
  nodes.push(start);
14387
14442
  }
14388
- if (start.firstChild) {
14443
+ // `start` can be undefined for an empty root
14444
+ if (start === null || start === void 0 ? void 0 : start.firstChild) {
14389
14445
  nodes.push(start.firstChild);
14390
14446
  }
14391
14447
  }
@@ -14405,8 +14461,7 @@ var Selection = /*#__PURE__*/ function() {
14405
14461
  value: function cursorInTheEdge(start, parentBlock) {
14406
14462
  var _this = this;
14407
14463
  var fake = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
14408
- var _a;
14409
- var end = !start, range = (_a = this.sel) === null || _a === void 0 ? void 0 : _a.getRangeAt(0);
14464
+ var end = !start, sel = this.sel, range = (sel === null || sel === void 0 ? void 0 : sel.rangeCount) ? sel.getRangeAt(0) : null;
14410
14465
  fake !== null && fake !== void 0 ? fake : fake = this.current(false);
14411
14466
  if (!range || !fake || !_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(parentBlock, fake, true)) {
14412
14467
  return null;
@@ -14902,7 +14957,11 @@ var Selection = /*#__PURE__*/ function() {
14902
14957
  }
14903
14958
  },
14904
14959
  {
14905
- key: "expandSelection",
14960
+ /**
14961
+ * Expands the non-collapsed selection outward: boundaries positioned on the
14962
+ * edge of their parents are moved out of them (e.g. `<p><b>|test|</b></p>`
14963
+ * becomes `<p>|<b>test</b>|</p>`)
14964
+ */ key: "expandSelection",
14906
14965
  value: function expandSelection() {
14907
14966
  var _this = this;
14908
14967
  if (this.isCollapsed()) {
@@ -15414,12 +15473,11 @@ if (_constants_js__WEBPACK_IMPORTED_MODULE_0__.globalDocument) {
15414
15473
 
15415
15474
 
15416
15475
  /**
15417
- * Compares whether the given attributes match the element's own attributes
15476
+ * Checks that every attribute from `attrs` is present on the element with
15477
+ * the same value (one-directional match: extra own attributes of the element
15478
+ * are ignored, empty `attrs` matches any element)
15418
15479
  * @private
15419
15480
  */ function isSameAttributes(elm, attrs) {
15420
- if (!elm.attributes.length && !(0,_helpers_size_object_size_js__WEBPACK_IMPORTED_MODULE_0__.size)(attrs)) {
15421
- return true;
15422
- }
15423
15481
  if (!(0,_helpers_size_object_size_js__WEBPACK_IMPORTED_MODULE_0__.size)(attrs)) {
15424
15482
  return true;
15425
15483
  }
@@ -15465,7 +15523,8 @@ function elementsEqualAttributes(elm1, elm2) {
15465
15523
  * @param commitStyle - style commit
15466
15524
  * @param elm - checked item
15467
15525
  * @param strict - strict mode - false - the default tag is suitable for us if it is also in the commit
15468
- * @param strictStyle - strict style mode - true - the element has the same style keys as in the commit, but not their values
15526
+ * @param strictStyle - strict style mode - true - the element must have the same style keys AND values
15527
+ * as in the commit, false - matching style keys are enough
15469
15528
  * @private
15470
15529
  */ function isSuitElement(commitStyle, elm, strict) {
15471
15530
  var strictStyle = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
@@ -15578,6 +15637,13 @@ function unwrapList(mode, list, li, jodit, cs) {
15578
15637
  (0,_extract_js__WEBPACK_IMPORTED_MODULE_2__.extractSelectedPart)(list, li, jodit);
15579
15638
  (0,_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_1__.assert)(_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(li.parentElement), 'Element should be inside the list');
15580
15639
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.unwrap(li.parentElement);
15640
+ // In the REPLACE mode the content will be immediately wrapped in a `li`
15641
+ // of the new list inside `wrapList`, so it should stay in the document.
15642
+ // Replacing it with a fragment here would dissolve the content
15643
+ // (with `enter: 'br'`) and the new list would never be inserted.
15644
+ if (mode === _constants_js__WEBPACK_IMPORTED_MODULE_4__.REPLACE) {
15645
+ return li;
15646
+ }
15581
15647
  return _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(li, jodit.o.enter.toLowerCase() !== 'br' ? jodit.o.enter : jodit.createInside.fragment(), jodit.createInside);
15582
15648
  }
15583
15649
 
@@ -15746,7 +15812,9 @@ function toggleClass(jodit, value, elm, mode, dry) {
15746
15812
  function toggleAttribute(jodit, value, elm, key, dry, mode) {
15747
15813
  (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_7__.assert)((0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(value) || (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) || (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isBoolean)(value) || value == null, 'Attribute value must be a string or number or boolean or null');
15748
15814
  var hook = jodit.e.fire.bind(jodit.e, "".concat(_constants_js__WEBPACK_IMPORTED_MODULE_10__._PREFIX, "AfterToggleAttribute"));
15749
- if ((0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_7__.attr)(elm, key) === value) {
15815
+ // `attr()` getter always returns a string, so a number/boolean value
15816
+ // must be normalized, otherwise the toggle-off branch is unreachable
15817
+ if ((0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_7__.attr)(elm, key) === (value == null ? value : String(value))) {
15750
15818
  !dry && (0,_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_7__.attr)(elm, key, null);
15751
15819
  mode = _constants_js__WEBPACK_IMPORTED_MODULE_10__.UNSET;
15752
15820
  !dry && hook(mode, elm, key, value);
@@ -16122,7 +16190,7 @@ var CommitStyle = /*#__PURE__*/ function() {
16122
16190
  if (!data) {
16123
16191
  return false;
16124
16192
  }
16125
- return data[key];
16193
+ return Boolean(data[key]);
16126
16194
  }
16127
16195
  },
16128
16196
  {
@@ -16149,7 +16217,7 @@ var CommitStyle = /*#__PURE__*/ function() {
16149
16217
  {
16150
16218
  key: "elementIsBlock",
16151
16219
  get: /**
16152
- * New element is blocked
16220
+ * New element is a block element
16153
16221
  */ function get() {
16154
16222
  return Boolean(this.options.element && _constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_BLOCK.test(this.options.element));
16155
16223
  }
@@ -32540,7 +32608,12 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
32540
32608
  /**
32541
32609
  * It called after the window is closed
32542
32610
  */ e.fire(this, 'afterClose');
32543
- e.fire(this.ow, 'joditCloseDialog');
32611
+ // An `afterClose` handler may destruct the dialog (a common pattern for
32612
+ // one-shot dialogs); after `destruct` the `ow` reference is gone and
32613
+ // firing on it would throw 'Need subject'.
32614
+ if (!this.isInDestruct) {
32615
+ e.fire(this.ow, 'joditCloseDialog');
32616
+ }
32544
32617
  if (this.destroyAfterClose) {
32545
32618
  this.destruct();
32546
32619
  }
@@ -37566,7 +37639,18 @@ ImageEditor = ImageEditor_1 = __decorate([
37566
37639
  */ function openImageEditor(href, name, path, source, onSuccess, onFailed) {
37567
37640
  var _this = this;
37568
37641
  return this.getInstance('ImageEditor', this.o).open(href, function(newname, box, success, failed) {
37569
- return (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_8__.call)(box.action === 'resize' ? _this.dataProvider.resize : _this.dataProvider.crop, path, source, name, newname, box.box).then(function(result) {
37642
+ // The file was already persisted by the editor itself (PRO uploads
37643
+ // the edited blob through the connector): skip the server
37644
+ // resize/crop and only run the success wiring (file browser
37645
+ // refresh, in-content <img> swap).
37646
+ if (box.action === 'saved') {
37647
+ success();
37648
+ if (onSuccess) {
37649
+ onSuccess(box.newPath);
37650
+ }
37651
+ return;
37652
+ }
37653
+ (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_8__.call)(box.action === 'resize' ? _this.dataProvider.resize : _this.dataProvider.crop, path, source, name, newname, box.box).then(function(result) {
37570
37654
  if (result) {
37571
37655
  success();
37572
37656
  if (onSuccess) {
@@ -54192,7 +54276,7 @@ UIImagePositionTab = __decorate([
54192
54276
  }
54193
54277
  });
54194
54278
  }, function(error) {
54195
- j.alert('There was an error loading %s', error.message);
54279
+ j.alert(j.i18n('There was an error loading %s', error.message));
54196
54280
  });
54197
54281
  }
54198
54282
  });
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.40
4
+ * Version: v4.13.2
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
8
8
  /*!
9
9
  * jodit-pro - PRO Version of Jodit Editor
10
10
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
11
- * Version: v4.12.40
11
+ * Version: v4.13.2
12
12
  * Url: https://xdsoft.net/jodit/pro/
13
13
  * License(s): SEE LICENSE IN LICENSE.md
14
14
  */