jodit-pro 4.12.24 → 4.12.26

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 +7 -7
  3. package/es2015/jodit.js +156 -35
  4. package/es2015/jodit.min.js +38 -38
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  10. package/es2015/plugins/backup/backup.css +1 -1
  11. package/es2015/plugins/backup/backup.js +1 -1
  12. package/es2015/plugins/backup/backup.min.js +1 -1
  13. package/es2015/plugins/button-generator/button-generator.css +1 -1
  14. package/es2015/plugins/button-generator/button-generator.js +1 -1
  15. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  16. package/es2015/plugins/change-case/change-case.js +1 -1
  17. package/es2015/plugins/change-case/change-case.min.js +1 -1
  18. package/es2015/plugins/color-picker/color-picker.css +1 -1
  19. package/es2015/plugins/color-picker/color-picker.js +1 -1
  20. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  21. package/es2015/plugins/emoji/emoji.css +1 -1
  22. package/es2015/plugins/emoji/emoji.js +1 -1
  23. package/es2015/plugins/emoji/emoji.min.js +1 -1
  24. package/es2015/plugins/export-docs/export-docs.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  26. package/es2015/plugins/finder/finder.css +1 -1
  27. package/es2015/plugins/finder/finder.js +1 -1
  28. package/es2015/plugins/finder/finder.min.js +1 -1
  29. package/es2015/plugins/google-maps/google-maps.css +1 -1
  30. package/es2015/plugins/google-maps/google-maps.js +1 -1
  31. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  32. package/es2015/plugins/google-search/google-search.js +1 -1
  33. package/es2015/plugins/google-search/google-search.min.js +1 -1
  34. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  36. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  39. package/es2015/plugins/keyboard/keyboard.css +1 -1
  40. package/es2015/plugins/keyboard/keyboard.js +1 -1
  41. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  42. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  44. package/es2015/plugins/page-break/page-break.js +1 -1
  45. package/es2015/plugins/page-break/page-break.min.js +1 -1
  46. package/es2015/plugins/paste-code/paste-code.css +1 -1
  47. package/es2015/plugins/paste-code/paste-code.js +1 -1
  48. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  49. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  51. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  53. package/es2015/plugins/style/style.css +1 -1
  54. package/es2015/plugins/style/style.js +1 -1
  55. package/es2015/plugins/style/style.min.js +1 -1
  56. package/es2015/plugins/templates/templates.css +1 -1
  57. package/es2015/plugins/templates/templates.js +1 -1
  58. package/es2015/plugins/templates/templates.min.js +1 -1
  59. package/es2015/plugins/todo-list/todo-list.css +1 -1
  60. package/es2015/plugins/todo-list/todo-list.js +1 -1
  61. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  62. package/es2015/plugins/translate/translate.css +1 -1
  63. package/es2015/plugins/translate/translate.js +1 -1
  64. package/es2015/plugins/translate/translate.min.js +1 -1
  65. package/es2015/plugins/tune-block/tune-block.css +1 -1
  66. package/es2015/plugins/tune-block/tune-block.js +1 -1
  67. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  68. package/es2018/jodit.fat.min.js +9 -9
  69. package/es2018/jodit.min.js +7 -7
  70. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  71. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  72. package/es2018/plugins/backup/backup.min.js +1 -1
  73. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  74. package/es2018/plugins/change-case/change-case.min.js +1 -1
  75. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  76. package/es2018/plugins/emoji/emoji.min.js +1 -1
  77. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  78. package/es2018/plugins/finder/finder.min.js +1 -1
  79. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  80. package/es2018/plugins/google-search/google-search.min.js +1 -1
  81. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  82. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  83. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  84. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  85. package/es2018/plugins/page-break/page-break.min.js +1 -1
  86. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  87. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  88. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  89. package/es2018/plugins/style/style.min.js +1 -1
  90. package/es2018/plugins/templates/templates.min.js +1 -1
  91. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  92. package/es2018/plugins/translate/translate.min.js +1 -1
  93. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  94. package/es2021/jodit.css +1 -1
  95. package/es2021/jodit.fat.min.js +11 -11
  96. package/es2021/jodit.js +156 -35
  97. package/es2021/jodit.min.js +8 -8
  98. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  99. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  100. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  101. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  102. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  103. package/es2021/plugins/backup/backup.css +1 -1
  104. package/es2021/plugins/backup/backup.js +1 -1
  105. package/es2021/plugins/backup/backup.min.js +1 -1
  106. package/es2021/plugins/button-generator/button-generator.css +1 -1
  107. package/es2021/plugins/button-generator/button-generator.js +1 -1
  108. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  109. package/es2021/plugins/change-case/change-case.js +1 -1
  110. package/es2021/plugins/change-case/change-case.min.js +1 -1
  111. package/es2021/plugins/color-picker/color-picker.css +1 -1
  112. package/es2021/plugins/color-picker/color-picker.js +1 -1
  113. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  114. package/es2021/plugins/emoji/emoji.css +1 -1
  115. package/es2021/plugins/emoji/emoji.js +1 -1
  116. package/es2021/plugins/emoji/emoji.min.js +1 -1
  117. package/es2021/plugins/export-docs/export-docs.js +1 -1
  118. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  119. package/es2021/plugins/finder/finder.css +1 -1
  120. package/es2021/plugins/finder/finder.js +1 -1
  121. package/es2021/plugins/finder/finder.min.js +1 -1
  122. package/es2021/plugins/google-maps/google-maps.css +1 -1
  123. package/es2021/plugins/google-maps/google-maps.js +1 -1
  124. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  125. package/es2021/plugins/google-search/google-search.js +1 -1
  126. package/es2021/plugins/google-search/google-search.min.js +1 -1
  127. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  128. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  129. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  130. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  131. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  132. package/es2021/plugins/keyboard/keyboard.css +1 -1
  133. package/es2021/plugins/keyboard/keyboard.js +1 -1
  134. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  135. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  136. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  137. package/es2021/plugins/page-break/page-break.js +1 -1
  138. package/es2021/plugins/page-break/page-break.min.js +1 -1
  139. package/es2021/plugins/paste-code/paste-code.css +1 -1
  140. package/es2021/plugins/paste-code/paste-code.js +1 -1
  141. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  142. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  143. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  144. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  145. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  146. package/es2021/plugins/style/style.css +1 -1
  147. package/es2021/plugins/style/style.js +1 -1
  148. package/es2021/plugins/style/style.min.js +1 -1
  149. package/es2021/plugins/templates/templates.css +1 -1
  150. package/es2021/plugins/templates/templates.js +1 -1
  151. package/es2021/plugins/templates/templates.min.js +1 -1
  152. package/es2021/plugins/todo-list/todo-list.css +1 -1
  153. package/es2021/plugins/todo-list/todo-list.js +1 -1
  154. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  155. package/es2021/plugins/translate/translate.css +1 -1
  156. package/es2021/plugins/translate/translate.js +1 -1
  157. package/es2021/plugins/translate/translate.min.js +1 -1
  158. package/es2021/plugins/tune-block/tune-block.css +1 -1
  159. package/es2021/plugins/tune-block/tune-block.js +1 -1
  160. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  161. package/es2021.en/jodit.css +1 -1
  162. package/es2021.en/jodit.fat.min.js +8 -8
  163. package/es2021.en/jodit.js +156 -35
  164. package/es2021.en/jodit.min.js +8 -8
  165. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  166. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  167. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  168. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  169. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  170. package/es2021.en/plugins/backup/backup.css +1 -1
  171. package/es2021.en/plugins/backup/backup.js +1 -1
  172. package/es2021.en/plugins/backup/backup.min.js +1 -1
  173. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  174. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  175. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  176. package/es2021.en/plugins/change-case/change-case.js +1 -1
  177. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  178. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  179. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  180. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  181. package/es2021.en/plugins/emoji/emoji.css +1 -1
  182. package/es2021.en/plugins/emoji/emoji.js +1 -1
  183. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  184. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  185. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  186. package/es2021.en/plugins/finder/finder.css +1 -1
  187. package/es2021.en/plugins/finder/finder.js +1 -1
  188. package/es2021.en/plugins/finder/finder.min.js +1 -1
  189. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  190. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  191. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  192. package/es2021.en/plugins/google-search/google-search.js +1 -1
  193. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  194. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  195. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  196. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  197. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  198. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  199. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  200. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  201. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  202. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  203. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  204. package/es2021.en/plugins/page-break/page-break.js +1 -1
  205. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  206. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  207. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  208. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  209. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  210. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  211. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  212. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  213. package/es2021.en/plugins/style/style.css +1 -1
  214. package/es2021.en/plugins/style/style.js +1 -1
  215. package/es2021.en/plugins/style/style.min.js +1 -1
  216. package/es2021.en/plugins/templates/templates.css +1 -1
  217. package/es2021.en/plugins/templates/templates.js +1 -1
  218. package/es2021.en/plugins/templates/templates.min.js +1 -1
  219. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  220. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  221. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  222. package/es2021.en/plugins/translate/translate.css +1 -1
  223. package/es2021.en/plugins/translate/translate.js +1 -1
  224. package/es2021.en/plugins/translate/translate.min.js +1 -1
  225. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  226. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  227. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  228. package/es5/jodit.css +2 -2
  229. package/es5/jodit.fat.min.js +2 -2
  230. package/es5/jodit.js +165 -35
  231. package/es5/jodit.min.css +2 -2
  232. package/es5/jodit.min.js +2 -2
  233. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  234. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  235. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  236. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  237. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  238. package/es5/plugins/backup/backup.css +1 -1
  239. package/es5/plugins/backup/backup.js +1 -1
  240. package/es5/plugins/backup/backup.min.js +1 -1
  241. package/es5/plugins/button-generator/button-generator.css +1 -1
  242. package/es5/plugins/button-generator/button-generator.js +1 -1
  243. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  244. package/es5/plugins/change-case/change-case.js +1 -1
  245. package/es5/plugins/change-case/change-case.min.js +1 -1
  246. package/es5/plugins/color-picker/color-picker.css +1 -1
  247. package/es5/plugins/color-picker/color-picker.js +1 -1
  248. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  249. package/es5/plugins/emoji/emoji.css +1 -1
  250. package/es5/plugins/emoji/emoji.js +1 -1
  251. package/es5/plugins/emoji/emoji.min.js +1 -1
  252. package/es5/plugins/export-docs/export-docs.js +1 -1
  253. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  254. package/es5/plugins/finder/finder.css +1 -1
  255. package/es5/plugins/finder/finder.js +1 -1
  256. package/es5/plugins/finder/finder.min.js +1 -1
  257. package/es5/plugins/google-maps/google-maps.css +1 -1
  258. package/es5/plugins/google-maps/google-maps.js +1 -1
  259. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  260. package/es5/plugins/google-search/google-search.js +1 -1
  261. package/es5/plugins/google-search/google-search.min.js +1 -1
  262. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  263. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  264. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  265. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  266. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  267. package/es5/plugins/keyboard/keyboard.css +1 -1
  268. package/es5/plugins/keyboard/keyboard.js +1 -1
  269. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  270. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  271. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  272. package/es5/plugins/page-break/page-break.js +1 -1
  273. package/es5/plugins/page-break/page-break.min.js +1 -1
  274. package/es5/plugins/paste-code/paste-code.css +1 -1
  275. package/es5/plugins/paste-code/paste-code.js +1 -1
  276. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  277. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  278. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  279. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  280. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  281. package/es5/plugins/style/style.css +1 -1
  282. package/es5/plugins/style/style.js +1 -1
  283. package/es5/plugins/style/style.min.js +1 -1
  284. package/es5/plugins/templates/templates.css +1 -1
  285. package/es5/plugins/templates/templates.js +1 -1
  286. package/es5/plugins/templates/templates.min.js +1 -1
  287. package/es5/plugins/todo-list/todo-list.css +1 -1
  288. package/es5/plugins/todo-list/todo-list.js +1 -1
  289. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  290. package/es5/plugins/translate/translate.css +1 -1
  291. package/es5/plugins/translate/translate.js +1 -1
  292. package/es5/plugins/translate/translate.min.js +1 -1
  293. package/es5/plugins/tune-block/tune-block.css +1 -1
  294. package/es5/plugins/tune-block/tune-block.js +1 -1
  295. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  296. package/es5/polyfills.fat.min.js +1 -1
  297. package/es5/polyfills.js +1 -1
  298. package/es5/polyfills.min.js +1 -1
  299. package/package.json +1 -1
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.24
4
+ * Version: v4.12.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2258,7 +2258,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2258
2258
  if (n === "Map" || n === "Set") return Array.from(n);
2259
2259
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2260
2260
  }
2261
- var APP_VERSION = "4.12.24";
2261
+ var APP_VERSION = "4.12.26";
2262
2262
  // prettier-ignore
2263
2263
  var ES = "es5";
2264
2264
  var IS_ES_MODERN = false;
@@ -4174,12 +4174,12 @@ function _ts_values(o) {
4174
4174
  value: /**
4175
4175
  * Check if element is element node
4176
4176
  */ function isElement(node) {
4177
- var _a;
4178
4177
  if (!Dom.isNode(node)) {
4179
4178
  return false;
4180
4179
  }
4181
- var win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
4182
- return Boolean(win && node.nodeType === Node.ELEMENT_NODE);
4180
+ // no `defaultView` requirement nodes of an inert document
4181
+ // (`DOMParser`, `implementation.createHTMLDocument`) are still elements
4182
+ return node.nodeType === Node.ELEMENT_NODE;
4183
4183
  }
4184
4184
  },
4185
4185
  {
@@ -4204,8 +4204,10 @@ function _ts_values(o) {
4204
4204
  if (!Dom.isNode(node)) {
4205
4205
  return false;
4206
4206
  }
4207
+ // an inert document has no browsing context (`defaultView` is null),
4208
+ // but its nodes are same-realm HTMLElements
4207
4209
  var win = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
4208
- return Boolean(win && _instanceof(node, win.HTMLElement));
4210
+ return _instanceof(node, win ? win.HTMLElement : HTMLElement);
4209
4211
  }
4210
4212
  },
4211
4213
  {
@@ -30414,7 +30416,7 @@ function addClassNames(className, elm) {
30414
30416
  Clean: 'Temizle',
30415
30417
  'Insert as Text': 'Yazı olarak ekle',
30416
30418
  'Word Paste Detected': 'Word biçiminde yapıştırma algılandı',
30417
- 'The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?': 'Der Inhalt, den Sie einfügen, stammt aus einem Microsoft Word / Excel-Dokument. Möchten Sie das Format erhalten oder löschen?',
30419
+ 'The pasted content is coming from a Microsoft Word/Excel document. Do you want to keep the format or clean it up?': 'Yapıştırılan içerik bir Microsoft Word/Excel belgesinden geliyor. Formatı korumak yoksa temizlemek mi istiyorsunuz?',
30418
30420
  'Insert only Text': 'Sadece yazıyı ekle',
30419
30421
  'File Browser': 'Dosya Listeleyici',
30420
30422
  'Error on load list': 'Liste yüklenirken hata oluştu',
@@ -31893,6 +31895,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
31893
31895
  _this.setPosition();
31894
31896
  }
31895
31897
  };
31898
+ /**
31899
+ * Minimal size the dialog can be resized to — the header and the footer
31900
+ * (with its buttons) must always stay inside the panel
31901
+ */ _this.minSize = {
31902
+ w: 0,
31903
+ h: 0
31904
+ };
31896
31905
  _this.isModal = false;
31897
31906
  /**
31898
31907
  * True, if dialog was opened
@@ -32058,7 +32067,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
32058
32067
  e.stopImmediatePropagation();
32059
32068
  }
32060
32069
  if (this.resizable && this.o.resizable) {
32061
- this.setSize(this.startPoint.w + e.clientX - this.startX, this.startPoint.h + e.clientY - this.startY);
32070
+ this.setSize(Math.max(this.startPoint.w + e.clientX - this.startX, this.minSize.w), Math.max(this.startPoint.h + e.clientY - this.startY, this.minSize.h));
32062
32071
  if (this.e) {
32063
32072
  /**
32064
32073
  * Fired when dialog box is resized
@@ -32087,11 +32096,20 @@ _config_js__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.dialog = {
32087
32096
  {
32088
32097
  key: "__onResizerMouseDown",
32089
32098
  value: function __onResizerMouseDown(e) {
32099
+ var _a, _b, _c;
32090
32100
  this.resizable = true;
32091
32101
  this.startX = e.clientX;
32092
32102
  this.startY = e.clientY;
32093
32103
  this.startPoint.w = this.dialog.offsetWidth;
32094
32104
  this.startPoint.h = this.dialog.offsetHeight;
32105
+ var header = this.getElm('header');
32106
+ var footer = this.getElm('footer');
32107
+ var content = this.getElm('content');
32108
+ // the content area does not shrink below its CSS `min-height`,
32109
+ // so it is part of the smallest height the panel can take
32110
+ var contentMinHeight = content ? parseFloat(this.ow.getComputedStyle(content).minHeight) || 0 : 0;
32111
+ this.minSize.w = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minWidth) ? this.o.minWidth : Math.max(100, (_a = footer === null || footer === void 0 ? void 0 : footer.scrollWidth) !== null && _a !== void 0 ? _a : 0);
32112
+ this.minSize.h = (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_6__.isNumber)(this.o.minHeight) ? this.o.minHeight : ((_b = header === null || header === void 0 ? void 0 : header.offsetHeight) !== null && _b !== void 0 ? _b : 0) + ((_c = footer === null || footer === void 0 ? void 0 : footer.offsetHeight) !== null && _c !== void 0 ? _c : 0) + contentMinHeight + this.resizer.offsetHeight;
32095
32113
  this.lockSelect();
32096
32114
  this.__addGlobalResizeListeners();
32097
32115
  if (this.e) {
@@ -45486,10 +45504,14 @@ function _is_native_reflect_construct() {
45486
45504
  */ key: "onBeforeSetNativeEditorValue",
45487
45505
  value: function onBeforeSetNativeEditorValue(data) {
45488
45506
  var _ref = _sliced_to_array(this.j.o.cleanHTML.useIframeSandbox ? this.j.createInside.sandbox() : [
45489
- this.j.createInside.div()
45507
+ // an inert document never loads sub-resources, so the
45508
+ // images in the value are not re-requested from the
45509
+ // server on every assignment (e.g. on each change in
45510
+ // jodit-react). See #1237
45511
+ this.j.od.implementation.createHTMLDocument('').body
45490
45512
  ], 2), sandBox = _ref[0], iframe = _ref[1];
45491
45513
  sandBox.innerHTML = data.value;
45492
- this.onSafeHTML(sandBox);
45514
+ this.j.e.fire('safeHTML', sandBox);
45493
45515
  data.value = sandBox.innerHTML;
45494
45516
  (0,_core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__.safeHTML)(sandBox, {
45495
45517
  safeJavaScriptLink: true,
@@ -45816,12 +45838,19 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('eraser', _eraser_svg_js_
45816
45838
  /**
45817
45839
  * @private
45818
45840
  */ function allowAttributes(jodit, nodeElm, hadEffect, allow) {
45819
- if (allow && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(nodeElm) && allow[nodeElm.nodeName] !== true) {
45841
+ var allowedForTag = allow && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(nodeElm) && allow[nodeElm.nodeName];
45842
+ if (allow && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(nodeElm) && allowedForTag !== true) {
45843
+ // the tag is not in the allow list at all — attributes do not matter,
45844
+ // the element itself will be removed by the tags filter. Without this
45845
+ // check `allow[nodeName][attr]` threw on e.g. `<meta charset>`. See #1224
45846
+ if (!allowedForTag) {
45847
+ return hadEffect;
45848
+ }
45820
45849
  var attrs = nodeElm.attributes;
45821
45850
  if (attrs && attrs.length) {
45822
45851
  var removeAttrs = [];
45823
45852
  for(var i = 0; i < attrs.length; i += 1){
45824
- var attr = allow[nodeElm.nodeName][attrs[i].name];
45853
+ var attr = allowedForTag[attrs[i].name];
45825
45854
  if (!attr || attr !== true && attr !== attrs[i].value) {
45826
45855
  removeAttrs.push(attrs[i].name);
45827
45856
  }
@@ -46416,9 +46445,10 @@ var keys = Object.keys(_filters_index_js__WEBPACK_IMPORTED_MODULE_1__);
46416
46445
  /* unused harmony export clipboard */
46417
46446
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
46418
46447
  /* harmony import */ var _core_decorators_cache_cache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33433);
46419
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
46420
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
46421
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(79419);
46448
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
46449
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
46450
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21537);
46451
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79419);
46422
46452
  function _class_call_check(instance, Constructor) {
46423
46453
  if (!(instance instanceof Constructor)) {
46424
46454
  throw new TypeError("Cannot call a class as a function");
@@ -46447,6 +46477,7 @@ function _create_class(Constructor, protoProps, staticProps) {
46447
46477
 
46448
46478
 
46449
46479
 
46480
+
46450
46481
  /**
46451
46482
  * Clipboard plugin - cut and copy functionality
46452
46483
  */ var clipboard = /*#__PURE__*/ function() {
@@ -46482,10 +46513,10 @@ function _create_class(Constructor, protoProps, staticProps) {
46482
46513
  });
46483
46514
  editor.e.off("copy.".concat(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, " cut.").concat(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID)).on("copy.".concat(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, " cut.").concat(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID), function(event) {
46484
46515
  var _a;
46485
- var selectedText = editor.s.html;
46486
- var clipboardData = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(event) || (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(editor.ew) || (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(event.originalEvent);
46516
+ var selectedText = wrapWithInlineAncestors(editor, editor.s.html);
46517
+ var clipboardData = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getDataTransfer)(event) || (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getDataTransfer)(editor.ew) || (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getDataTransfer)(event.originalEvent);
46487
46518
  if (clipboardData) {
46488
- clipboardData.setData(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.stripTags)(selectedText));
46519
+ clipboardData.setData(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.stripTags)(selectedText));
46489
46520
  clipboardData.setData(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML, selectedText);
46490
46521
  }
46491
46522
  editor.buffer.set(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, selectedText);
@@ -46513,7 +46544,30 @@ function _create_class(Constructor, protoProps, staticProps) {
46513
46544
  ]);
46514
46545
  return clipboard;
46515
46546
  }();
46516
- _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('clipboard', clipboard);
46547
+ /**
46548
+ * `Selection.html` clones only the range contents — when the selection sits
46549
+ * entirely inside the text of a formatted element (`<strong>te|st|</strong>`),
46550
+ * the clone is bare text and the formatting would be lost on paste. Native
46551
+ * browser copy keeps that context, so the interception must restore it: wrap
46552
+ * the fragment in shallow clones of the inline ancestors of the range. See #1202
46553
+ */ function wrapWithInlineAncestors(editor, html) {
46554
+ if (!html || editor.s.isCollapsed()) {
46555
+ return html;
46556
+ }
46557
+ var node = editor.s.range.commonAncestorContainer;
46558
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(node)) {
46559
+ node = node.parentElement;
46560
+ }
46561
+ var result = html;
46562
+ while(node && node !== editor.editor && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(node) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(node)){
46563
+ var shell = node.cloneNode(false);
46564
+ shell.innerHTML = result;
46565
+ result = shell.outerHTML;
46566
+ node = node.parentElement;
46567
+ }
46568
+ return result;
46569
+ }
46570
+ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('clipboard', clipboard);
46517
46571
 
46518
46572
 
46519
46573
  /***/ }),
@@ -55289,6 +55343,11 @@ function _is_native_reflect_construct() {
55289
55343
  var _this;
55290
55344
  _this = _call_super(this, inlinePopup, arguments);
55291
55345
  _this.type = null;
55346
+ /**
55347
+ * The user pressed a button inside the selection toolbar — after the
55348
+ * command fires `closeAllPopups`, the toolbar should be shown again
55349
+ * while the selection is still there. See #1238
55350
+ */ _this.__reopenSelectionPopup = false;
55292
55351
  _this.snapRange = null;
55293
55352
  _this.elmsList = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.keys)(_this.j.o.popup, false).filter(function(s) {
55294
55353
  return !_this.isExcludedTarget(s);
@@ -55419,10 +55478,44 @@ function _is_native_reflect_construct() {
55419
55478
  }).on([
55420
55479
  this.j.ew,
55421
55480
  this.j.ow
55422
- ], 'mouseup keyup', this.onSelectionEnd);
55481
+ ], 'mouseup keyup', this.onSelectionEnd).on([
55482
+ this.j.ew,
55483
+ this.j.ow
55484
+ ], 'mousedown touchstart', this.__onDocumentMouseDown).on('closeAllPopups', this.__onCloseAllPopups);
55423
55485
  this.addListenersForElements();
55424
55486
  }
55425
55487
  },
55488
+ {
55489
+ key: "__onDocumentMouseDown",
55490
+ value: function __onDocumentMouseDown(e) {
55491
+ if (this.popup.isOpened && this.type === 'selection' && e.target && _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.UIElement.closestElement(e.target, _core_ui_popup_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup)) {
55492
+ this.__reopenSelectionPopup = true;
55493
+ }
55494
+ }
55495
+ },
55496
+ {
55497
+ key: "__onCloseAllPopups",
55498
+ value: function __onCloseAllPopups() {
55499
+ var _this = this;
55500
+ if (!this.__reopenSelectionPopup) {
55501
+ return;
55502
+ }
55503
+ this.__reopenSelectionPopup = false;
55504
+ if (!this.j.o.toolbarInlineForSelection) {
55505
+ return;
55506
+ }
55507
+ // a zero timeout would run synchronously — before the popup's own
55508
+ // `closeAllPopups` handler closes it; defer to the next macrotask
55509
+ this.j.async.setTimeout(function() {
55510
+ var sel = _this.j.s.sel;
55511
+ if (sel && !sel.isCollapsed) {
55512
+ _this.showPopup(function() {
55513
+ return _this.j.s.range.getBoundingClientRect();
55514
+ }, 'selection');
55515
+ }
55516
+ }, 1);
55517
+ }
55518
+ },
55426
55519
  {
55427
55520
  key: "onSelectionStart",
55428
55521
  value: function onSelectionStart() {
@@ -55487,7 +55580,10 @@ function _is_native_reflect_construct() {
55487
55580
  jodit.e.off('showPopup').off([
55488
55581
  this.j.ew,
55489
55582
  this.j.ow
55490
- ], 'mouseup keyup', this.onSelectionEnd);
55583
+ ], 'mouseup keyup', this.onSelectionEnd).off([
55584
+ this.j.ew,
55585
+ this.j.ow
55586
+ ], 'mousedown touchstart', this.__onDocumentMouseDown).off('closeAllPopups', this.__onCloseAllPopups);
55491
55587
  this.removeListenersForElements();
55492
55588
  }
55493
55589
  },
@@ -55560,6 +55656,12 @@ __decorate([
55560
55656
  __decorate([
55561
55657
  (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':outsideClick')
55562
55658
  ], inlinePopup.prototype, "onOutsideClick", null);
55659
+ __decorate([
55660
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
55661
+ ], inlinePopup.prototype, "__onDocumentMouseDown", null);
55662
+ __decorate([
55663
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
55664
+ ], inlinePopup.prototype, "__onCloseAllPopups", null);
55563
55665
  __decorate([
55564
55666
  _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
55565
55667
  ], inlinePopup.prototype, "onSelectionStart", null);
@@ -56119,7 +56221,10 @@ function _is_native_reflect_construct() {
56119
56221
  jodit.e.fire('denyWords.limit limit.limit');
56120
56222
  return true;
56121
56223
  }
56122
- var should = Boolean(limitChars && isGt(words.join('').length, limitChars, strict));
56224
+ // with `countTextSpaces` enabled the limiter counts characters the
56225
+ // same way as the `stat` plugin's counter — including spaces. See #1144
56226
+ var charsCount = jodit.o.countTextSpaces ? text.replace((0,_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP)(), '').replace(/[\r\n]/g, '').length : words.join('').length;
56227
+ var should = Boolean(limitChars && isGt(charsCount, limitChars, strict));
56123
56228
  if (should) {
56124
56229
  jodit.e.fire('denyChars.limit limit.limit');
56125
56230
  }
@@ -59385,9 +59490,7 @@ function _is_native_reflect_construct() {
59385
59490
  jodit.e.on('paste.paste', this.onPaste).on('pasteStack.paste', function(item) {
59386
59491
  return _this.pasteStack.push(item);
59387
59492
  });
59388
- if (jodit.o.nl2brInPlainText) {
59389
- this.j.e.on('processPaste.paste', this.onProcessPasteReplaceNl2Br);
59390
- }
59493
+ this.j.e.on('processPaste.paste', this.onProcessPasteReplaceNl2Br);
59391
59494
  }
59392
59495
  },
59393
59496
  {
@@ -59547,11 +59650,15 @@ function _is_native_reflect_construct() {
59547
59650
  },
59548
59651
  {
59549
59652
  /**
59550
- * Replace all \\n chars in plain text to br
59653
+ * Escape plain text and replace all \\n chars with br
59551
59654
  */ key: "onProcessPasteReplaceNl2Br",
59552
59655
  value: function onProcessPasteReplaceNl2Br(ignore, text, type) {
59553
59656
  if (type === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN + ';' && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.isHTML)(text)) {
59554
- return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.nl2br)(text);
59657
+ // the clipboard contains only plain text — escape special chars
59658
+ // so a stray `<` is not parsed as an unclosed tag and does not
59659
+ // swallow the rest of the string. See #1227
59660
+ var escaped = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.htmlspecialchars)(text);
59661
+ return this.j.o.nl2brInPlainText ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.nl2br)(escaped) : escaped;
59555
59662
  }
59556
59663
  }
59557
59664
  }
@@ -60990,9 +61097,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.allowResizeY = true;
60990
61097
  /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
60991
61098
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
60992
61099
  /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
60993
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50911);
60994
- /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67510);
60995
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(68252);
61100
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
61101
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
61102
+ /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67510);
61103
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68252);
60996
61104
  function _assert_this_initialized(self) {
60997
61105
  if (self === void 0) {
60998
61106
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -61128,6 +61236,7 @@ function _is_native_reflect_construct() {
61128
61236
 
61129
61237
 
61130
61238
 
61239
+
61131
61240
  var resizeHandler = /*#__PURE__*/ function(Plugin) {
61132
61241
  "use strict";
61133
61242
  _inherits(resizeHandler, Plugin);
@@ -61148,7 +61257,7 @@ var resizeHandler = /*#__PURE__*/ function(Plugin) {
61148
61257
  };
61149
61258
  /**
61150
61259
  * Resize handle
61151
- */ _this.handle = _this.j.c.div('jodit-editor__resize', _core_ui_index_js__WEBPACK_IMPORTED_MODULE_4__.Icon.get('resize_handler'));
61260
+ */ _this.handle = _this.j.c.div('jodit-editor__resize', _core_ui_index_js__WEBPACK_IMPORTED_MODULE_5__.Icon.get('resize_handler'));
61152
61261
  return _this;
61153
61262
  }
61154
61263
  _create_class(resizeHandler, [
@@ -61194,11 +61303,21 @@ var resizeHandler = /*#__PURE__*/ function(Plugin) {
61194
61303
  if (!this.isResized) {
61195
61304
  return;
61196
61305
  }
61306
+ var clientX = e.clientX, clientY = e.clientY;
61307
+ if (e.view === this.j.ew && this.j.ew !== this.j.ow) {
61308
+ // the event was proxied from the editor's iframe — its client
61309
+ // coordinates are relative to the iframe viewport, while the
61310
+ // start point was captured on the host-document handle;
61311
+ // shift them into the host coordinate space
61312
+ var workplacePosition = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(this.j.workplace, this.j, this.j.od, true);
61313
+ clientX += workplacePosition.left;
61314
+ clientY += workplacePosition.top;
61315
+ }
61197
61316
  if (this.j.o.allowResizeY) {
61198
- this.j.e.fire('setHeight', this.start.h + e.clientY - this.start.y);
61317
+ this.j.e.fire('setHeight', this.start.h + clientY - this.start.y);
61199
61318
  }
61200
61319
  if (this.j.o.allowResizeX) {
61201
- this.j.e.fire('setWidth', this.start.w + e.clientX - this.start.x);
61320
+ this.j.e.fire('setWidth', this.start.w + clientX - this.start.x);
61202
61321
  }
61203
61322
  this.j.e.fire('resize');
61204
61323
  }
@@ -61224,7 +61343,7 @@ var resizeHandler = /*#__PURE__*/ function(Plugin) {
61224
61343
  }
61225
61344
  ]);
61226
61345
  return resizeHandler;
61227
- }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_3__.Plugin));
61346
+ }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
61228
61347
  /** @override **/ resizeHandler.requires = [
61229
61348
  'size'
61230
61349
  ];
@@ -61604,7 +61723,11 @@ var keyBInd = '__jodit-resizer_binded';
61604
61723
  this.pointerX = e.clientX;
61605
61724
  this.pointerY = e.clientY;
61606
61725
  var diff_x, diff_y;
61607
- if (this.j.options.iframe) {
61726
+ if (this.j.options.iframe && e.view === this.j.ew) {
61727
+ // the event was proxied from the editor's iframe — its client
61728
+ // coordinates are relative to the iframe viewport, while
61729
+ // `startX/startY` were captured on a host-document handle;
61730
+ // shift them into the host coordinate space
61608
61731
  var workplacePosition = this.getWorkplacePosition();
61609
61732
  diff_x = e.clientX + workplacePosition.left - this.startX;
61610
61733
  diff_y = e.clientY + workplacePosition.top - this.startY;
@@ -66141,6 +66264,13 @@ function _is_native_reflect_construct() {
66141
66264
  key: "setFocusToMirror",
66142
66265
  value: function setFocusToMirror() {
66143
66266
  var _a;
66267
+ var active = this.j.od.activeElement;
66268
+ // do not steal focus from another editor or control — e.g. when the
66269
+ // mode is switched programmatically (a Vue/React wrapper re-render)
66270
+ // while the user is already typing elsewhere. See #1356
66271
+ if (active && active !== this.j.od.body && !this.j.container.contains(active)) {
66272
+ return;
66273
+ }
66144
66274
  (_a = this.sourceEditor) === null || _a === void 0 ? void 0 : _a.focus();
66145
66275
  }
66146
66276
  },
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.24
4
+ * Version: v4.12.26
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.24
11
+ * Version: v4.12.26
12
12
  * Url: https://xdsoft.net/jodit/pro/
13
13
  * License(s): SEE LICENSE IN LICENSE.md
14
14
  */