jodit-pro 4.17.1 → 4.17.3

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 +4 -4
  3. package/es2015/jodit.js +179 -7
  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 +4 -4
  73. package/es2018/jodit.min.js +6 -6
  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 +6 -6
  101. package/es2021/jodit.js +179 -7
  102. package/es2021/jodit.min.js +8 -8
  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 +6 -6
  172. package/es2021.en/jodit.js +179 -7
  173. package/es2021.en/jodit.min.js +6 -6
  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 +214 -7
  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.1
4
+ * Version: v4.17.3
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.1";
2311
+ var APP_VERSION = "4.17.3";
2312
2312
  // prettier-ignore
2313
2313
  var ES = "es5";
2314
2314
  var IS_ES_MODERN = false;
@@ -7786,6 +7786,38 @@ function isSmuggledForeignHtml(elm) {
7786
7786
  }
7787
7787
  }
7788
7788
  }
7789
+ // `<noscript>` is parsed as markup in a document with scripting off (the
7790
+ // inert document the value is sanitized in) and as raw text in one with
7791
+ // scripting on (the live editor). The same serialized bytes therefore
7792
+ // describe two different trees, and markup hidden as inert text in the
7793
+ // first comes alive as elements in the second. The element has no use in
7794
+ // editor content, so it goes, together with everything it carried.
7795
+ var noscript = [];
7796
+ _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.each(box, function(node) {
7797
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(node) && node.nodeName === 'NOSCRIPT') {
7798
+ noscript.push(node);
7799
+ }
7800
+ });
7801
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
7802
+ try {
7803
+ for(var _iterator1 = noscript[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
7804
+ var elm1 = _step1.value;
7805
+ _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(elm1);
7806
+ }
7807
+ } catch (err) {
7808
+ _didIteratorError1 = true;
7809
+ _iteratorError1 = err;
7810
+ } finally{
7811
+ try {
7812
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
7813
+ _iterator1.return();
7814
+ }
7815
+ } finally{
7816
+ if (_didIteratorError1) {
7817
+ throw _iteratorError1;
7818
+ }
7819
+ }
7820
+ }
7789
7821
  var removeEvents = (_a = options.removeEventAttributes) !== null && _a !== void 0 ? _a : options.removeOnError;
7790
7822
  // Single synchronous traversal of the subtree. Besides removing event
7791
7823
  // handlers and `javascript:` links, `sanitizeHTMLElement` neutralises
@@ -13545,20 +13577,86 @@ function _ts_generator(thisArg, body) {
13545
13577
  }();
13546
13578
 
13547
13579
 
13580
+ /***/ }),
13581
+
13582
+ /***/ 79505:
13583
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
13584
+
13585
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13586
+ /* harmony export */ composedRanges: function() { return /* binding */ composedRanges; }
13587
+ /* harmony export */ });
13588
+ /* harmony import */ var _helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27613);
13589
+ /*!
13590
+ * Jodit Editor (https://xdsoft.net/jodit/)
13591
+ * Released under MIT see LICENSE.txt in the project root for license information.
13592
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
13593
+ */
13594
+ function isInside(node, shadowRoot) {
13595
+ return node === shadowRoot || shadowRoot.contains(node);
13596
+ }
13597
+ function usable(ranges, shadowRoot) {
13598
+ return Array.isArray(ranges) && ranges.length > 0 && ranges.every(function(range) {
13599
+ return isInside(range.startContainer, shadowRoot);
13600
+ });
13601
+ }
13602
+ /**
13603
+ * Ranges of a selection that lies inside the given shadow tree.
13604
+ *
13605
+ * `window.getSelection()` stops at the shadow boundary and reports the host
13606
+ * instead of the node the caret is really in. `getComposedRanges` is the
13607
+ * standard way to ask past that boundary.
13608
+ *
13609
+ * @returns `null` when the browser has no `getComposedRanges`, or when neither
13610
+ * call shape returned ranges that point inside the shadow tree — in which case
13611
+ * there is nothing better to offer than the plain window selection.
13612
+ */ function composedRanges(selection, shadowRoot) {
13613
+ var getComposedRanges = selection.getComposedRanges;
13614
+ if (!(0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_0__.isFunction)(getComposedRanges)) {
13615
+ return null;
13616
+ }
13617
+ for(var _i = 0, _iter = [
13618
+ [
13619
+ {
13620
+ shadowRoots: [
13621
+ shadowRoot
13622
+ ]
13623
+ }
13624
+ ],
13625
+ [
13626
+ shadowRoot
13627
+ ]
13628
+ ]; _i < _iter.length; _i++){
13629
+ var args = _iter[_i];
13630
+ var ranges = void 0;
13631
+ try {
13632
+ ranges = getComposedRanges.apply(selection, args);
13633
+ } catch (_a) {
13634
+ continue;
13635
+ }
13636
+ if (usable(ranges, shadowRoot)) {
13637
+ return ranges;
13638
+ }
13639
+ }
13640
+ return null;
13641
+ }
13642
+
13643
+
13548
13644
  /***/ }),
13549
13645
 
13550
13646
  /***/ 45124:
13551
13647
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
13552
13648
 
13553
13649
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13650
+ /* harmony export */ composedRanges: function() { return /* reexport safe */ _composed_ranges_js__WEBPACK_IMPORTED_MODULE_2__.composedRanges; },
13554
13651
  /* harmony export */ cursorInTheEdgeOfString: function() { return /* binding */ cursorInTheEdgeOfString; },
13555
13652
  /* harmony export */ findCorrectCurrentNode: function() { return /* binding */ findCorrectCurrentNode; },
13556
- /* harmony export */ moveNodeInsideStart: function() { return /* reexport safe */ _move_node_inside_start_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart; }
13653
+ /* harmony export */ moveNodeInsideStart: function() { return /* reexport safe */ _move_node_inside_start_js__WEBPACK_IMPORTED_MODULE_3__.moveNodeInsideStart; }
13557
13654
  /* harmony export */ });
13558
13655
  /* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
13559
13656
  /* harmony import */ var _dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
13560
- /* harmony import */ var _move_node_inside_start_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26716);
13561
- /* harmony import */ var _move_the_node_along_the_edge_outward_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43463);
13657
+ /* harmony import */ var _composed_ranges_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79505);
13658
+ /* harmony import */ var _move_node_inside_start_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26716);
13659
+ /* harmony import */ var _move_the_node_along_the_edge_outward_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(43463);
13562
13660
  /*!
13563
13661
  * Jodit Editor (https://xdsoft.net/jodit/)
13564
13662
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -13569,6 +13667,7 @@ function _ts_generator(thisArg, body) {
13569
13667
 
13570
13668
 
13571
13669
 
13670
+
13572
13671
  /**
13573
13672
  * Despite the name, returns `true` when the cursor is NOT at the checked edge
13574
13673
  * of the text node: there is significant (non invisible-space) text between
@@ -14002,12 +14101,100 @@ var Selection = /*#__PURE__*/ function() {
14002
14101
  get: /**
14003
14102
  * Return current selection object
14004
14103
  */ function get() {
14005
- if (this.j.o.shadowRoot && (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isFunction)(this.j.o.shadowRoot.getSelection)) {
14006
- return this.j.o.shadowRoot.getSelection();
14104
+ var shadowRoot = this.j.o.shadowRoot;
14105
+ if (shadowRoot) {
14106
+ if ((0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isFunction)(shadowRoot.getSelection)) {
14107
+ return shadowRoot.getSelection();
14108
+ }
14109
+ var composed = this.__composedSelection(shadowRoot);
14110
+ if (composed) {
14111
+ return composed;
14112
+ }
14007
14113
  }
14008
14114
  return this.win.getSelection();
14009
14115
  }
14010
14116
  },
14117
+ {
14118
+ /**
14119
+ * Selection of a shadow tree in a browser without `ShadowRoot.getSelection`.
14120
+ *
14121
+ * `ShadowRoot.getSelection()` is a non-standard method that WebKit never
14122
+ * implemented, and `window.getSelection()` stops at the shadow boundary: for
14123
+ * a caret inside the shadow tree it reports the host, or the document
14124
+ * itself. Everything downstream then works on the wrong tree, which is why
14125
+ * Backspace used to throw `HierarchyRequestError` and Enter did nothing when
14126
+ * the editor lived in a shadow root in Safari.
14127
+ *
14128
+ * The standard replacement is `Selection.getComposedRanges()`, which does
14129
+ * reach into a shadow tree it is given. It hands back `StaticRange`s, and
14130
+ * the editor mutates ranges constantly, so they are turned into live ones.
14131
+ *
14132
+ * Reads are answered from those ranges; everything else, including the
14133
+ * writes (`addRange`, `removeAllRanges`, `setBaseAndExtent`), goes to the
14134
+ * real selection, which does accept nodes inside a shadow tree. Reading is
14135
+ * the only side the browser blocks.
14136
+ *
14137
+ * @returns `null` when the browser offers neither API, so the caller falls
14138
+ * back to the plain window selection.
14139
+ */ key: "__composedSelection",
14140
+ value: function __composedSelection(shadowRoot) {
14141
+ var _this = this;
14142
+ var selection = this.win.getSelection();
14143
+ if (!selection) {
14144
+ return null;
14145
+ }
14146
+ // Firefox has no `ShadowRoot.getSelection` either, but its window
14147
+ // selection does see into a shadow tree. Where the plain selection
14148
+ // already points at the right node there is nothing to work around, and
14149
+ // taking it over would change behaviour that works today.
14150
+ var anchorNode = selection.anchorNode;
14151
+ if (anchorNode && _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(shadowRoot, anchorNode)) {
14152
+ return null;
14153
+ }
14154
+ var ranges = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_9__.composedRanges)(selection, shadowRoot);
14155
+ if (!ranges) {
14156
+ return null;
14157
+ }
14158
+ var live = ranges.map(function(staticRange) {
14159
+ var range = _this.createRange();
14160
+ range.setStart(staticRange.startContainer, staticRange.startOffset);
14161
+ range.setEnd(staticRange.endContainer, staticRange.endOffset);
14162
+ return range;
14163
+ });
14164
+ var first = live[0];
14165
+ var overrides = {
14166
+ rangeCount: live.length,
14167
+ getRangeAt: function getRangeAt(index) {
14168
+ return live[index];
14169
+ },
14170
+ isCollapsed: live.every(function(range) {
14171
+ return range.collapsed;
14172
+ }),
14173
+ // Without these the editor asks the window selection where the
14174
+ // caret is, is told "outside the editable area", and resets the
14175
+ // caret to the start of it — which is the focus loss that shows up
14176
+ // right after a successful Backspace.
14177
+ anchorNode: first ? first.startContainer : null,
14178
+ anchorOffset: first ? first.startOffset : 0,
14179
+ focusNode: first ? first.endContainer : null,
14180
+ focusOffset: first ? first.endOffset : 0,
14181
+ toString: function toString() {
14182
+ return live.map(function(range) {
14183
+ return range.toString();
14184
+ }).join('');
14185
+ }
14186
+ };
14187
+ return new Proxy(selection, {
14188
+ get: function get(target, property) {
14189
+ if ((0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isString)(property) && property in overrides) {
14190
+ return overrides[property];
14191
+ }
14192
+ var value = Reflect.get(target, property, target);
14193
+ return (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isFunction)(value) ? value.bind(target) : value;
14194
+ }
14195
+ });
14196
+ }
14197
+ },
14011
14198
  {
14012
14199
  key: "range",
14013
14200
  get: /**
@@ -25867,6 +26054,11 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
25867
26054
  }
25868
26055
  if (this.editor) {
25869
26056
  this.editor.innerHTML = data.value;
26057
+ // Fired synchronously, before any task can run: the value was
26058
+ // sanitized in an inert document and re-parsed here with scripting
26059
+ // on, and the two parsers do not always agree. Listeners get to
26060
+ // look at the tree that actually exists.
26061
+ this.e.fire('afterSetNativeEditorValue');
25870
26062
  }
25871
26063
  }
25872
26064
  },
@@ -47679,6 +47871,18 @@ var cleanHtml = /*#__PURE__*/ function(Plugin) {
47679
47871
  },
47680
47872
  {
47681
47873
  /**
47874
+ * The value was sanitized in an inert document and has just been re-parsed
47875
+ * into the live editor with scripting on. Where the two parsers disagree
47876
+ * (`<noscript>`, raw-text elements), markup that was inert text a moment
47877
+ * ago is a real element now, so the live tree is sanitized once more, in
47878
+ * the same call stack, before any handler it might carry can fire.
47879
+ */ key: "onAfterSetNativeEditorValue",
47880
+ value: function onAfterSetNativeEditorValue() {
47881
+ ;(0,_core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__.safeHTML)(this.j.editor, this.j.o.cleanHTML);
47882
+ }
47883
+ },
47884
+ {
47885
+ /**
47682
47886
  * Event handler when manually assigning a value to the HTML editor.
47683
47887
  */ key: "onBeforeSetNativeEditorValue",
47684
47888
  value: function onBeforeSetNativeEditorValue(data) {
@@ -47814,6 +48018,9 @@ __decorate([
47814
48018
  __decorate([
47815
48019
  (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':beforeCommand')
47816
48020
  ], cleanHtml.prototype, "beforeCommand", null);
48021
+ __decorate([
48022
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':afterSetNativeEditorValue')
48023
+ ], cleanHtml.prototype, "onAfterSetNativeEditorValue", null);
47817
48024
  __decorate([
47818
48025
  (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':beforeSetNativeEditorValue')
47819
48026
  ], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
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.1
4
+ * Version: v4.17.3
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.1
11
+ * Version: v4.17.3
12
12
  * Url: https://xdsoft.net/jodit/pro/
13
13
  * License(s): SEE LICENSE IN LICENSE.md
14
14
  */