jodit-pro 4.17.6 → 4.17.8

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 (316) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +5 -5
  3. package/es2015/jodit.js +129 -32
  4. package/es2015/jodit.min.js +6 -6
  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.css +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  11. package/es2015/plugins/backup/backup.css +1 -1
  12. package/es2015/plugins/backup/backup.js +1 -1
  13. package/es2015/plugins/backup/backup.min.js +1 -1
  14. package/es2015/plugins/button-generator/button-generator.css +1 -1
  15. package/es2015/plugins/button-generator/button-generator.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  17. package/es2015/plugins/change-case/change-case.js +1 -1
  18. package/es2015/plugins/change-case/change-case.min.js +1 -1
  19. package/es2015/plugins/color-picker/color-picker.css +1 -1
  20. package/es2015/plugins/color-picker/color-picker.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  22. package/es2015/plugins/emoji/emoji.css +1 -1
  23. package/es2015/plugins/emoji/emoji.js +1 -1
  24. package/es2015/plugins/emoji/emoji.min.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  27. package/es2015/plugins/finder/finder.css +1 -1
  28. package/es2015/plugins/finder/finder.js +1 -1
  29. package/es2015/plugins/finder/finder.min.js +1 -1
  30. package/es2015/plugins/google-maps/google-maps.css +1 -1
  31. package/es2015/plugins/google-maps/google-maps.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  33. package/es2015/plugins/google-search/google-search.js +1 -1
  34. package/es2015/plugins/google-search/google-search.min.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  36. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  40. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  41. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  43. package/es2015/plugins/keyboard/keyboard.css +1 -1
  44. package/es2015/plugins/keyboard/keyboard.js +1 -1
  45. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  46. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  47. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  48. package/es2015/plugins/page-break/page-break.js +1 -1
  49. package/es2015/plugins/page-break/page-break.min.js +1 -1
  50. package/es2015/plugins/paste-code/paste-code.css +1 -1
  51. package/es2015/plugins/paste-code/paste-code.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  53. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  54. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  55. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  56. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  57. package/es2015/plugins/style/style.css +1 -1
  58. package/es2015/plugins/style/style.js +1 -1
  59. package/es2015/plugins/style/style.min.js +1 -1
  60. package/es2015/plugins/templates/templates.css +1 -1
  61. package/es2015/plugins/templates/templates.js +1 -1
  62. package/es2015/plugins/templates/templates.min.js +1 -1
  63. package/es2015/plugins/todo-list/todo-list.css +1 -1
  64. package/es2015/plugins/todo-list/todo-list.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  66. package/es2015/plugins/translate/translate.css +1 -1
  67. package/es2015/plugins/translate/translate.js +1 -1
  68. package/es2015/plugins/translate/translate.min.js +1 -1
  69. package/es2015/plugins/tune-block/tune-block.css +1 -1
  70. package/es2015/plugins/tune-block/tune-block.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  72. package/es2018/jodit.fat.min.js +5 -5
  73. package/es2018/jodit.min.js +9 -9
  74. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  75. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  76. package/es2018/plugins/backup/backup.min.js +1 -1
  77. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  78. package/es2018/plugins/change-case/change-case.min.js +1 -1
  79. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  80. package/es2018/plugins/emoji/emoji.min.js +1 -1
  81. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  82. package/es2018/plugins/finder/finder.min.js +1 -1
  83. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  84. package/es2018/plugins/google-search/google-search.min.js +1 -1
  85. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  86. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  87. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  88. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  89. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  90. package/es2018/plugins/page-break/page-break.min.js +1 -1
  91. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  92. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  93. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  94. package/es2018/plugins/style/style.min.js +1 -1
  95. package/es2018/plugins/templates/templates.min.js +1 -1
  96. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  97. package/es2018/plugins/translate/translate.min.js +1 -1
  98. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  99. package/es2021/jodit.css +1 -1
  100. package/es2021/jodit.fat.min.js +7 -7
  101. package/es2021/jodit.js +129 -32
  102. package/es2021/jodit.min.js +13 -13
  103. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  104. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  105. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  106. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  107. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  108. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  109. package/es2021/plugins/backup/backup.css +1 -1
  110. package/es2021/plugins/backup/backup.js +1 -1
  111. package/es2021/plugins/backup/backup.min.js +1 -1
  112. package/es2021/plugins/button-generator/button-generator.css +1 -1
  113. package/es2021/plugins/button-generator/button-generator.js +1 -1
  114. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  115. package/es2021/plugins/change-case/change-case.js +1 -1
  116. package/es2021/plugins/change-case/change-case.min.js +1 -1
  117. package/es2021/plugins/color-picker/color-picker.css +1 -1
  118. package/es2021/plugins/color-picker/color-picker.js +1 -1
  119. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  120. package/es2021/plugins/emoji/emoji.css +1 -1
  121. package/es2021/plugins/emoji/emoji.js +1 -1
  122. package/es2021/plugins/emoji/emoji.min.js +1 -1
  123. package/es2021/plugins/export-docs/export-docs.js +1 -1
  124. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  125. package/es2021/plugins/finder/finder.css +1 -1
  126. package/es2021/plugins/finder/finder.js +1 -1
  127. package/es2021/plugins/finder/finder.min.js +1 -1
  128. package/es2021/plugins/google-maps/google-maps.css +1 -1
  129. package/es2021/plugins/google-maps/google-maps.js +1 -1
  130. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  131. package/es2021/plugins/google-search/google-search.js +1 -1
  132. package/es2021/plugins/google-search/google-search.min.js +1 -1
  133. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  134. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  135. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  136. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  137. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  138. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  139. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  140. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  141. package/es2021/plugins/keyboard/keyboard.css +1 -1
  142. package/es2021/plugins/keyboard/keyboard.js +1 -1
  143. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  144. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  145. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  146. package/es2021/plugins/page-break/page-break.js +1 -1
  147. package/es2021/plugins/page-break/page-break.min.js +1 -1
  148. package/es2021/plugins/paste-code/paste-code.css +1 -1
  149. package/es2021/plugins/paste-code/paste-code.js +1 -1
  150. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  151. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  152. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  153. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  154. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  155. package/es2021/plugins/style/style.css +1 -1
  156. package/es2021/plugins/style/style.js +1 -1
  157. package/es2021/plugins/style/style.min.js +1 -1
  158. package/es2021/plugins/templates/templates.css +1 -1
  159. package/es2021/plugins/templates/templates.js +1 -1
  160. package/es2021/plugins/templates/templates.min.js +1 -1
  161. package/es2021/plugins/todo-list/todo-list.css +1 -1
  162. package/es2021/plugins/todo-list/todo-list.js +1 -1
  163. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  164. package/es2021/plugins/translate/translate.css +1 -1
  165. package/es2021/plugins/translate/translate.js +1 -1
  166. package/es2021/plugins/translate/translate.min.js +1 -1
  167. package/es2021/plugins/tune-block/tune-block.css +1 -1
  168. package/es2021/plugins/tune-block/tune-block.js +1 -1
  169. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  170. package/es2021.en/jodit.css +1 -1
  171. package/es2021.en/jodit.fat.min.js +7 -7
  172. package/es2021.en/jodit.js +129 -32
  173. package/es2021.en/jodit.min.js +7 -7
  174. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  175. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  176. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  177. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  178. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  179. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  180. package/es2021.en/plugins/backup/backup.css +1 -1
  181. package/es2021.en/plugins/backup/backup.js +1 -1
  182. package/es2021.en/plugins/backup/backup.min.js +1 -1
  183. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  184. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  185. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  186. package/es2021.en/plugins/change-case/change-case.js +1 -1
  187. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  188. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  189. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  190. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  191. package/es2021.en/plugins/emoji/emoji.css +1 -1
  192. package/es2021.en/plugins/emoji/emoji.js +1 -1
  193. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  194. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  195. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  196. package/es2021.en/plugins/finder/finder.css +1 -1
  197. package/es2021.en/plugins/finder/finder.js +1 -1
  198. package/es2021.en/plugins/finder/finder.min.js +1 -1
  199. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  200. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  201. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  202. package/es2021.en/plugins/google-search/google-search.js +1 -1
  203. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  204. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  205. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  206. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  207. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  208. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  209. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  210. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  211. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  212. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  213. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  214. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  215. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  216. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  217. package/es2021.en/plugins/page-break/page-break.js +1 -1
  218. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  219. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  220. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  221. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  222. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  223. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  224. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  225. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  226. package/es2021.en/plugins/style/style.css +1 -1
  227. package/es2021.en/plugins/style/style.js +1 -1
  228. package/es2021.en/plugins/style/style.min.js +1 -1
  229. package/es2021.en/plugins/templates/templates.css +1 -1
  230. package/es2021.en/plugins/templates/templates.js +1 -1
  231. package/es2021.en/plugins/templates/templates.min.js +1 -1
  232. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  233. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  234. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  235. package/es2021.en/plugins/translate/translate.css +1 -1
  236. package/es2021.en/plugins/translate/translate.js +1 -1
  237. package/es2021.en/plugins/translate/translate.min.js +1 -1
  238. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  239. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  240. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  241. package/es5/jodit.css +2 -2
  242. package/es5/jodit.fat.min.js +2 -2
  243. package/es5/jodit.js +138 -32
  244. package/es5/jodit.min.css +2 -2
  245. package/es5/jodit.min.js +2 -2
  246. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  247. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  248. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  249. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  250. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  251. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  252. package/es5/plugins/backup/backup.css +1 -1
  253. package/es5/plugins/backup/backup.js +1 -1
  254. package/es5/plugins/backup/backup.min.js +1 -1
  255. package/es5/plugins/button-generator/button-generator.css +1 -1
  256. package/es5/plugins/button-generator/button-generator.js +1 -1
  257. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  258. package/es5/plugins/change-case/change-case.js +1 -1
  259. package/es5/plugins/change-case/change-case.min.js +1 -1
  260. package/es5/plugins/color-picker/color-picker.css +1 -1
  261. package/es5/plugins/color-picker/color-picker.js +1 -1
  262. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  263. package/es5/plugins/emoji/emoji.css +1 -1
  264. package/es5/plugins/emoji/emoji.js +1 -1
  265. package/es5/plugins/emoji/emoji.min.js +1 -1
  266. package/es5/plugins/export-docs/export-docs.js +1 -1
  267. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  268. package/es5/plugins/finder/finder.css +1 -1
  269. package/es5/plugins/finder/finder.js +1 -1
  270. package/es5/plugins/finder/finder.min.js +1 -1
  271. package/es5/plugins/google-maps/google-maps.css +1 -1
  272. package/es5/plugins/google-maps/google-maps.js +1 -1
  273. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  274. package/es5/plugins/google-search/google-search.js +1 -1
  275. package/es5/plugins/google-search/google-search.min.js +1 -1
  276. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  277. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  278. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  279. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  280. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  281. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  282. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  283. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  284. package/es5/plugins/keyboard/keyboard.css +1 -1
  285. package/es5/plugins/keyboard/keyboard.js +1 -1
  286. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  287. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  288. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  289. package/es5/plugins/page-break/page-break.js +1 -1
  290. package/es5/plugins/page-break/page-break.min.js +1 -1
  291. package/es5/plugins/paste-code/paste-code.css +1 -1
  292. package/es5/plugins/paste-code/paste-code.js +1 -1
  293. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  294. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  295. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  296. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  297. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  298. package/es5/plugins/style/style.css +1 -1
  299. package/es5/plugins/style/style.js +1 -1
  300. package/es5/plugins/style/style.min.js +1 -1
  301. package/es5/plugins/templates/templates.css +1 -1
  302. package/es5/plugins/templates/templates.js +1 -1
  303. package/es5/plugins/templates/templates.min.js +1 -1
  304. package/es5/plugins/todo-list/todo-list.css +1 -1
  305. package/es5/plugins/todo-list/todo-list.js +1 -1
  306. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  307. package/es5/plugins/translate/translate.css +1 -1
  308. package/es5/plugins/translate/translate.js +1 -1
  309. package/es5/plugins/translate/translate.min.js +1 -1
  310. package/es5/plugins/tune-block/tune-block.css +1 -1
  311. package/es5/plugins/tune-block/tune-block.js +1 -1
  312. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  313. package/es5/polyfills.fat.min.js +1 -1
  314. package/es5/polyfills.js +1 -1
  315. package/es5/polyfills.min.js +1 -1
  316. 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.17.6
4
+ * Version: v4.17.8
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2308,7 +2308,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2308
2308
  if (n === "Map" || n === "Set") return Array.from(n);
2309
2309
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2310
2310
  }
2311
- var APP_VERSION = "4.17.6";
2311
+ var APP_VERSION = "4.17.8";
2312
2312
  // prettier-ignore
2313
2313
  var ES = "es5";
2314
2314
  var IS_ES_MODERN = false;
@@ -14042,6 +14042,12 @@ function _unsupported_iterable_to_array(o, minLen) {
14042
14042
 
14043
14043
 
14044
14044
 
14045
+ /**
14046
+ * A text node that is empty or holds only invisible caret placeholders.
14047
+ */ function isBlankTextNode(node) {
14048
+ var _a;
14049
+ return _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(node) && ((_a = node.nodeValue) !== null && _a !== void 0 ? _a : '').replace(_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP(), '').length === 0;
14050
+ }
14045
14051
  var Selection = /*#__PURE__*/ function() {
14046
14052
  "use strict";
14047
14053
  function Selection(jodit) {
@@ -14195,6 +14201,20 @@ var Selection = /*#__PURE__*/ function() {
14195
14201
  });
14196
14202
  }
14197
14203
  },
14204
+ {
14205
+ /**
14206
+ * How many ranges the browser's own selection holds right now, as opposed
14207
+ * to the composed view that [[sel]] may answer from.
14208
+ */ key: "__nativeRangeCount",
14209
+ value: function __nativeRangeCount() {
14210
+ var _a, _b, _c, _d;
14211
+ var shadowRoot = this.j.o.shadowRoot;
14212
+ if (shadowRoot && (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isFunction)(shadowRoot.getSelection)) {
14213
+ return (_b = (_a = shadowRoot.getSelection()) === null || _a === void 0 ? void 0 : _a.rangeCount) !== null && _b !== void 0 ? _b : 0;
14214
+ }
14215
+ return (_d = (_c = this.win.getSelection()) === null || _c === void 0 ? void 0 : _c.rangeCount) !== null && _d !== void 0 ? _d : 0;
14216
+ }
14217
+ },
14198
14218
  {
14199
14219
  key: "range",
14200
14220
  get: /**
@@ -14338,6 +14358,7 @@ var Selection = /*#__PURE__*/ function() {
14338
14358
  */ key: "marker",
14339
14359
  value: function marker() {
14340
14360
  var atStart = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false, range = arguments.length > 1 ? arguments[1] : void 0;
14361
+ var _a;
14341
14362
  var newRange = null;
14342
14363
  if (range) {
14343
14364
  newRange = range.cloneRange();
@@ -14354,10 +14375,21 @@ var Selection = /*#__PURE__*/ function() {
14354
14375
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(marker, this.j.createInside.text(_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE));
14355
14376
  if (newRange) {
14356
14377
  if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(this.area, atStart ? newRange.startContainer : newRange.endContainer)) {
14357
- // Here need do unsafe inserting
14358
- // Deny Dom.safeInsertNode(newRange, marker);
14359
- // Apply style -> Test Style module -> Base apply -> For selection <p><strong>|test|</strong></p> apply style {"element":"em","style":{"fontStyle":"italic"}}
14360
- newRange.insertNode(marker);
14378
+ var node = newRange.startContainer, offset = newRange.startOffset;
14379
+ // At either end of a text node the marker goes beside it. Splitting
14380
+ // the node there would leave the selection's boundary in an empty
14381
+ // text node, and WebKit neither repaints a selection that leaves one
14382
+ // nor moves a selection that follows one when it's removed.
14383
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(node) && offset === 0) {
14384
+ _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(node, marker);
14385
+ } else if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(node) && offset === ((_a = node.nodeValue) === null || _a === void 0 ? void 0 : _a.length)) {
14386
+ _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.after(node, marker);
14387
+ } else {
14388
+ // Here need do unsafe inserting
14389
+ // Deny Dom.safeInsertNode(newRange, marker);
14390
+ // Apply style -> Test Style module -> Base apply -> For selection <p><strong>|test|</strong></p> apply style {"element":"em","style":{"fontStyle":"italic"}}
14391
+ newRange.insertNode(marker);
14392
+ }
14361
14393
  }
14362
14394
  }
14363
14395
  return marker;
@@ -14772,7 +14804,9 @@ var Selection = /*#__PURE__*/ function() {
14772
14804
  }
14773
14805
  ].forEach(function(getChildNode) {
14774
14806
  var childNode = getChildNode();
14775
- if (childNode && _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isEmptyTextNode(childNode)) {
14807
+ // Only a text node left with nothing in it by the split
14808
+ // goes; one holding a space is content (`<b>a</b> |`).
14809
+ if (childNode && isBlankTextNode(childNode)) {
14776
14810
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(childNode);
14777
14811
  }
14778
14812
  });
@@ -15192,6 +15226,16 @@ var Selection = /*#__PURE__*/ function() {
15192
15226
  if (backward && ranges.length === 1) {
15193
15227
  var range = ranges[0];
15194
15228
  sel.setBaseAndExtent(range.endContainer, range.endOffset, range.startContainer, range.startOffset);
15229
+ } else if (ranges.length === 1 && !this.__nativeRangeCount() && (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isFunction)(sel.setBaseAndExtent)) {
15230
+ // `addRange` is specified to ignore a range whose root is not
15231
+ // the document, which is every range inside a shadow tree.
15232
+ // Chrome's `ShadowRoot.getSelection()` takes them anyway, but
15233
+ // Safari has only the window selection, so after
15234
+ // `removeAllRanges` the caret is simply gone: a character was
15235
+ // deleted and nothing was left to type into. `setBaseAndExtent`
15236
+ // does accept nodes inside a shadow tree.
15237
+ var range1 = ranges[0];
15238
+ sel.setBaseAndExtent(range1.startContainer, range1.startOffset, range1.endContainer, range1.endOffset);
15195
15239
  }
15196
15240
  }
15197
15241
  /**
@@ -38157,19 +38201,27 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38157
38201
  value: function updateStack() {
38158
38202
  var replace = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
38159
38203
  var newValue = this.snapshot.make();
38160
- if (!_snapshot_js__WEBPACK_IMPORTED_MODULE_4__.Snapshot.equal(newValue, this.startValue)) {
38161
- var newCommand = new _command_js__WEBPACK_IMPORTED_MODULE_3__.Command(this.startValue, newValue, this, this.updateTick);
38162
- if (replace) {
38163
- var command = this.__stack.current();
38164
- if (command && this.updateTick === command.tick) {
38165
- this.__stack.replace(newCommand);
38166
- }
38167
- } else {
38168
- this.__stack.push(newCommand);
38169
- }
38204
+ if (_snapshot_js__WEBPACK_IMPORTED_MODULE_4__.Snapshot.equal(newValue, this.startValue)) {
38205
+ return;
38206
+ }
38207
+ // Only the selection moved, for example when the selection markers
38208
+ // went in before a switch to the source view. There is nothing to
38209
+ // undo, but the next change has to start from this selection.
38210
+ if (newValue.html === this.startValue.html) {
38170
38211
  this.startValue = newValue;
38171
- this.fireChangeStack();
38212
+ return;
38213
+ }
38214
+ var newCommand = new _command_js__WEBPACK_IMPORTED_MODULE_3__.Command(this.startValue, newValue, this, this.updateTick);
38215
+ if (replace) {
38216
+ var command = this.__stack.current();
38217
+ if (command && this.updateTick === command.tick) {
38218
+ this.__stack.replace(newCommand);
38219
+ }
38220
+ } else {
38221
+ this.__stack.push(newCommand);
38172
38222
  }
38223
+ this.startValue = newValue;
38224
+ this.fireChangeStack();
38173
38225
  }
38174
38226
  },
38175
38227
  {
@@ -59701,7 +59753,7 @@ var lineHeight = /*#__PURE__*/ function(Plugin) {
59701
59753
  try {
59702
59754
  if (s.isCollapsed()) {
59703
59755
  var fake = c.fake();
59704
- s.insertNode(fake, false, false);
59756
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeInsertNode(s.range, fake);
59705
59757
  apply(fake);
59706
59758
  _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(fake);
59707
59759
  } else {
@@ -62789,7 +62841,7 @@ function _wrap_native_super(Class) {
62789
62841
  _this.placeholderElm.innerHTML = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(editor.element, 'placeholder') || '';
62790
62842
  }
62791
62843
  editor.e.fire('placeholder', _this.placeholderElm.innerHTML);
62792
- editor.e.off('.placeholder').on('changePlace.placeholder', _this.addNativeListeners).on('change.placeholder focus.placeholder keyup.placeholder mouseup.placeholder keydown.placeholder ' + 'mousedown.placeholder afterSetMode.placeholder changePlace.placeholder ' + 'internalChange.placeholder', _this.toggle).on(window, 'load', _this.toggle);
62844
+ editor.e.off('.placeholder').on('changePlace.placeholder', _this.addNativeListeners).on('change.placeholder focus.placeholder keyup.placeholder mouseup.placeholder keydown.placeholder ' + 'mousedown.placeholder afterSetMode.placeholder changePlace.placeholder ' + 'internalChange.placeholder afterCommand.placeholder', _this.toggle).on(window, 'load', _this.toggle);
62793
62845
  _this.addNativeListeners();
62794
62846
  _this.toggle();
62795
62847
  };
@@ -67530,6 +67582,11 @@ function _wrap_native_super(Class) {
67530
67582
  'mouseup',
67531
67583
  'touchend'
67532
67584
  ];
67585
+ /**
67586
+ * Where the last press started. Chrome reports a drag that begins in one
67587
+ * element and ends in another as a `click` on their common ancestor, so a
67588
+ * press inside a popup is remembered to tell such a drag from a real click.
67589
+ */ _this.__pressTarget = null;
67533
67590
  return _this;
67534
67591
  }
67535
67592
  _create_class(select, [
@@ -67565,18 +67622,30 @@ function _wrap_native_super(Class) {
67565
67622
  }
67566
67623
  }
67567
67624
  },
67625
+ {
67626
+ key: "onOutsidePress",
67627
+ value: function onOutsidePress(e) {
67628
+ this.__pressTarget = e.target;
67629
+ }
67630
+ },
67568
67631
  {
67569
67632
  /**
67570
67633
  * @event outsideClick(e) - when user clicked on the outside of editor
67571
67634
  */ key: "onOutsideClick",
67572
67635
  value: function onOutsideClick(e) {
67573
67636
  var _this = this;
67574
- var node = e.target;
67637
+ var node = e.target, pressed = this.__pressTarget;
67638
+ this.__pressTarget = null;
67575
67639
  if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.up(node, function(elm) {
67576
67640
  return elm === _this.j.editor;
67577
67641
  })) {
67578
67642
  return;
67579
67643
  }
67644
+ // Selecting the text of a popup input with the mouse and releasing
67645
+ // the button past the popup's edge is not a click outside of it.
67646
+ if (pressed && _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(pressed, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup)) {
67647
+ return;
67648
+ }
67580
67649
  var box = _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.UIElement.closestElement(node, _core_ui_index_js__WEBPACK_IMPORTED_MODULE_6__.Popup);
67581
67650
  if (!box) {
67582
67651
  this.j.e.fire('outsideClick', e);
@@ -67701,6 +67770,12 @@ function _wrap_native_super(Class) {
67701
67770
  __decorate([
67702
67771
  _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
67703
67772
  ], select.prototype, "onStartSelection", null);
67773
+ __decorate([
67774
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)([
67775
+ 'ow:mousedown',
67776
+ 'ow:touchstart'
67777
+ ])
67778
+ ], select.prototype, "onOutsidePress", null);
67704
67779
  __decorate([
67705
67780
  (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)('ow:click')
67706
67781
  ], select.prototype, "onOutsideClick", null);
@@ -68172,9 +68247,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.source = {
68172
68247
  /* harmony export */ AceEditor: function() { return /* binding */ AceEditor; }
68173
68248
  /* harmony export */ });
68174
68249
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
68175
- /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
68176
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21537);
68177
- /* harmony import */ var _sourceEditor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23370);
68250
+ /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45219);
68251
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2748);
68252
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
68253
+ /* harmony import */ var _sourceEditor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23370);
68178
68254
  function _assert_this_initialized(self) {
68179
68255
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
68180
68256
  return self;
@@ -68246,7 +68322,14 @@ function _type_of(obj) {
68246
68322
  * Jodit Editor (https://xdsoft.net/jodit/)
68247
68323
  * Released under MIT see LICENSE.txt in the project root for license information.
68248
68324
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
68249
- */ ;
68325
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
68326
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
68327
+ if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
68328
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
68329
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
68330
+ };
68331
+
68332
+
68250
68333
 
68251
68334
 
68252
68335
 
@@ -68269,6 +68352,7 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68269
68352
  _this.proxyOnMouseDown = function(e) {
68270
68353
  _this.j.e.fire('mousedown', e);
68271
68354
  };
68355
+ _this.__settingValue = false;
68272
68356
  return _this;
68273
68357
  }
68274
68358
  _create_class(AceEditor, [
@@ -68350,7 +68434,7 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68350
68434
  return;
68351
68435
  }
68352
68436
  var fakeMirror = _this.j.c.div('jodit-source__mirror-fake');
68353
- _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(_this.container, fakeMirror);
68437
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(_this.container, fakeMirror);
68354
68438
  var ace = editor.ow.ace;
68355
68439
  _this.instance = ace.edit(fakeMirror);
68356
68440
  if (editor.o.direction === 'rtl') {
@@ -68371,7 +68455,7 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68371
68455
  _this.instance.setOption('wrap', editor.o.sourceEditorNativeOptions.wrap);
68372
68456
  _this.instance.getSession().setUseWorker(false);
68373
68457
  _this.instance.$blockScrolling = Infinity;
68374
- _this.instance.on('change', _this.toWYSIWYG);
68458
+ _this.instance.on('change', _this.__onChange);
68375
68459
  _this.instance.on('focus', _this.proxyOnFocus);
68376
68460
  _this.instance.on('mousedown', _this.proxyOnMouseDown);
68377
68461
  _this.instance.on('blur', _this.proxyOnBlur);
@@ -68406,7 +68490,7 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68406
68490
  if (!_this.aceExists()) {
68407
68491
  if (!loading) {
68408
68492
  loading = true;
68409
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.loadNext)(editor, editor.o.sourceEditorCDNUrlsJS).then(initAceEditor).catch(function() {
68493
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.loadNext)(editor, editor.o.sourceEditorCDNUrlsJS).then(initAceEditor).catch(function() {
68410
68494
  return null;
68411
68495
  });
68412
68496
  }
@@ -68424,7 +68508,7 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68424
68508
  key: "destruct",
68425
68509
  value: function destruct() {
68426
68510
  var _a, _b;
68427
- this.instance.off('change', this.toWYSIWYG);
68511
+ this.instance.off('change', this.__onChange);
68428
68512
  this.instance.off('focus', this.proxyOnFocus);
68429
68513
  this.instance.off('mousedown', this.proxyOnMouseDown);
68430
68514
  this.instance.destroy();
@@ -68436,14 +68520,33 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68436
68520
  value: function setValue(value) {
68437
68521
  if (!this.j.o.editHTMLDocumentMode && this.j.o.beautifyHTML) {
68438
68522
  var html = this.j.e.fire('beautifyHTML', value);
68439
- if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(html)) {
68523
+ if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(html)) {
68440
68524
  value = html;
68441
68525
  }
68442
68526
  }
68443
- this.instance.setValue(value);
68527
+ // ACE reports its own `setValue` as two changes, the removal of the
68528
+ // old text and the insertion of the new one. Fed back into the
68529
+ // editor they became two history entries, `content -> ''` and
68530
+ // `'' -> content`, so the first undo after a switch to the source
68531
+ // view and back emptied the editor. The text came from the editor
68532
+ // in the first place, so there is nothing to send back.
68533
+ this.__settingValue = true;
68534
+ try {
68535
+ this.instance.setValue(value);
68536
+ } finally{
68537
+ this.__settingValue = false;
68538
+ }
68444
68539
  this.instance.clearSelection();
68445
68540
  }
68446
68541
  },
68542
+ {
68543
+ key: "__onChange",
68544
+ value: function __onChange() {
68545
+ if (!this.__settingValue) {
68546
+ this.toWYSIWYG();
68547
+ }
68548
+ }
68549
+ },
68447
68550
  {
68448
68551
  key: "getValue",
68449
68552
  value: function getValue() {
@@ -68546,7 +68649,10 @@ var AceEditor = /*#__PURE__*/ function(SourceEditor) {
68546
68649
  }
68547
68650
  ]);
68548
68651
  return AceEditor;
68549
- }(_sourceEditor_js__WEBPACK_IMPORTED_MODULE_3__.SourceEditor);
68652
+ }(_sourceEditor_js__WEBPACK_IMPORTED_MODULE_4__.SourceEditor);
68653
+ __decorate([
68654
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
68655
+ ], AceEditor.prototype, "__onChange", null);
68550
68656
 
68551
68657
 
68552
68658
  /***/ }),
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.17.6
4
+ * Version: v4.17.8
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.17.6
11
+ * Version: v4.17.8
12
12
  * Url: https://xdsoft.net/jodit/pro/
13
13
  * License(s): SEE LICENSE IN LICENSE.md
14
14
  */