jodit-pro 4.18.14 → 4.18.15

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 (342) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +5 -5
  3. package/es2015/jodit.js +256 -73
  4. package/es2015/jodit.min.js +5 -5
  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/chart/chart.css +1 -1
  20. package/es2015/plugins/chart/chart.js +1 -1
  21. package/es2015/plugins/chart/chart.min.js +1 -1
  22. package/es2015/plugins/color-picker/color-picker.css +1 -1
  23. package/es2015/plugins/color-picker/color-picker.js +1 -1
  24. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  25. package/es2015/plugins/emoji/emoji.css +1 -1
  26. package/es2015/plugins/emoji/emoji.js +1 -1
  27. package/es2015/plugins/emoji/emoji.min.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.js +1 -1
  29. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  30. package/es2015/plugins/finder/finder.css +1 -1
  31. package/es2015/plugins/finder/finder.js +1 -1
  32. package/es2015/plugins/finder/finder.min.js +1 -1
  33. package/es2015/plugins/google-maps/google-maps.css +1 -1
  34. package/es2015/plugins/google-maps/google-maps.js +1 -1
  35. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  36. package/es2015/plugins/google-search/google-search.js +1 -1
  37. package/es2015/plugins/google-search/google-search.min.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  39. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  42. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  45. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  46. package/es2015/plugins/keyboard/keyboard.css +1 -1
  47. package/es2015/plugins/keyboard/keyboard.js +1 -1
  48. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  49. package/es2015/plugins/math/math.css +1 -1
  50. package/es2015/plugins/math/math.js +1 -1
  51. package/es2015/plugins/math/math.min.js +1 -1
  52. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  53. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  54. package/es2015/plugins/page-break/page-break.js +1 -1
  55. package/es2015/plugins/page-break/page-break.min.js +1 -1
  56. package/es2015/plugins/paste-code/paste-code.css +1 -1
  57. package/es2015/plugins/paste-code/paste-code.js +1 -1
  58. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  59. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  60. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  61. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  62. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  63. package/es2015/plugins/style/style.css +1 -1
  64. package/es2015/plugins/style/style.js +1 -1
  65. package/es2015/plugins/style/style.min.js +1 -1
  66. package/es2015/plugins/templates/templates.css +1 -1
  67. package/es2015/plugins/templates/templates.js +1 -1
  68. package/es2015/plugins/templates/templates.min.js +1 -1
  69. package/es2015/plugins/todo-list/todo-list.css +1 -1
  70. package/es2015/plugins/todo-list/todo-list.js +1 -1
  71. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  72. package/es2015/plugins/translate/translate.css +1 -1
  73. package/es2015/plugins/translate/translate.js +1 -1
  74. package/es2015/plugins/translate/translate.min.js +1 -1
  75. package/es2015/plugins/tune-block/tune-block.css +1 -1
  76. package/es2015/plugins/tune-block/tune-block.js +1 -1
  77. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  78. package/es2018/jodit.fat.min.js +5 -5
  79. package/es2018/jodit.min.js +5 -5
  80. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  81. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  82. package/es2018/plugins/backup/backup.min.js +1 -1
  83. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  84. package/es2018/plugins/change-case/change-case.min.js +1 -1
  85. package/es2018/plugins/chart/chart.min.js +1 -1
  86. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  87. package/es2018/plugins/emoji/emoji.min.js +1 -1
  88. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  89. package/es2018/plugins/finder/finder.min.js +1 -1
  90. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  91. package/es2018/plugins/google-search/google-search.min.js +1 -1
  92. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  93. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  94. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  95. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  96. package/es2018/plugins/math/math.min.js +1 -1
  97. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  98. package/es2018/plugins/page-break/page-break.min.js +1 -1
  99. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  100. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  101. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  102. package/es2018/plugins/style/style.min.js +1 -1
  103. package/es2018/plugins/templates/templates.min.js +1 -1
  104. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  105. package/es2018/plugins/translate/translate.min.js +1 -1
  106. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  107. package/es2021/jodit.css +1 -1
  108. package/es2021/jodit.fat.min.js +6 -6
  109. package/es2021/jodit.js +256 -73
  110. package/es2021/jodit.min.js +6 -6
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  112. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  113. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  114. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  115. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  116. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  117. package/es2021/plugins/backup/backup.css +1 -1
  118. package/es2021/plugins/backup/backup.js +1 -1
  119. package/es2021/plugins/backup/backup.min.js +1 -1
  120. package/es2021/plugins/button-generator/button-generator.css +1 -1
  121. package/es2021/plugins/button-generator/button-generator.js +1 -1
  122. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  123. package/es2021/plugins/change-case/change-case.js +1 -1
  124. package/es2021/plugins/change-case/change-case.min.js +1 -1
  125. package/es2021/plugins/chart/chart.css +1 -1
  126. package/es2021/plugins/chart/chart.js +1 -1
  127. package/es2021/plugins/chart/chart.min.js +1 -1
  128. package/es2021/plugins/color-picker/color-picker.css +1 -1
  129. package/es2021/plugins/color-picker/color-picker.js +1 -1
  130. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  131. package/es2021/plugins/emoji/emoji.css +1 -1
  132. package/es2021/plugins/emoji/emoji.js +1 -1
  133. package/es2021/plugins/emoji/emoji.min.js +1 -1
  134. package/es2021/plugins/export-docs/export-docs.js +1 -1
  135. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  136. package/es2021/plugins/finder/finder.css +1 -1
  137. package/es2021/plugins/finder/finder.js +1 -1
  138. package/es2021/plugins/finder/finder.min.js +1 -1
  139. package/es2021/plugins/google-maps/google-maps.css +1 -1
  140. package/es2021/plugins/google-maps/google-maps.js +1 -1
  141. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  142. package/es2021/plugins/google-search/google-search.js +1 -1
  143. package/es2021/plugins/google-search/google-search.min.js +1 -1
  144. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  145. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  146. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  147. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  148. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  149. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  150. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  151. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  152. package/es2021/plugins/keyboard/keyboard.css +1 -1
  153. package/es2021/plugins/keyboard/keyboard.js +1 -1
  154. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  155. package/es2021/plugins/math/math.css +1 -1
  156. package/es2021/plugins/math/math.js +1 -1
  157. package/es2021/plugins/math/math.min.js +1 -1
  158. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  159. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  160. package/es2021/plugins/page-break/page-break.js +1 -1
  161. package/es2021/plugins/page-break/page-break.min.js +1 -1
  162. package/es2021/plugins/paste-code/paste-code.css +1 -1
  163. package/es2021/plugins/paste-code/paste-code.js +1 -1
  164. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  165. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  166. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  167. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  168. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  169. package/es2021/plugins/style/style.css +1 -1
  170. package/es2021/plugins/style/style.js +1 -1
  171. package/es2021/plugins/style/style.min.js +1 -1
  172. package/es2021/plugins/templates/templates.css +1 -1
  173. package/es2021/plugins/templates/templates.js +1 -1
  174. package/es2021/plugins/templates/templates.min.js +1 -1
  175. package/es2021/plugins/todo-list/todo-list.css +1 -1
  176. package/es2021/plugins/todo-list/todo-list.js +1 -1
  177. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  178. package/es2021/plugins/translate/translate.css +1 -1
  179. package/es2021/plugins/translate/translate.js +1 -1
  180. package/es2021/plugins/translate/translate.min.js +1 -1
  181. package/es2021/plugins/tune-block/tune-block.css +1 -1
  182. package/es2021/plugins/tune-block/tune-block.js +1 -1
  183. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  184. package/es2021.en/jodit.css +1 -1
  185. package/es2021.en/jodit.fat.min.js +6 -6
  186. package/es2021.en/jodit.js +256 -73
  187. package/es2021.en/jodit.min.js +9 -9
  188. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  189. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  190. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  191. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  192. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  193. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  194. package/es2021.en/plugins/backup/backup.css +1 -1
  195. package/es2021.en/plugins/backup/backup.js +1 -1
  196. package/es2021.en/plugins/backup/backup.min.js +1 -1
  197. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  198. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  199. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  200. package/es2021.en/plugins/change-case/change-case.js +1 -1
  201. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  202. package/es2021.en/plugins/chart/chart.css +1 -1
  203. package/es2021.en/plugins/chart/chart.js +1 -1
  204. package/es2021.en/plugins/chart/chart.min.js +1 -1
  205. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  206. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  207. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  208. package/es2021.en/plugins/emoji/emoji.css +1 -1
  209. package/es2021.en/plugins/emoji/emoji.js +1 -1
  210. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  211. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  212. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  213. package/es2021.en/plugins/finder/finder.css +1 -1
  214. package/es2021.en/plugins/finder/finder.js +1 -1
  215. package/es2021.en/plugins/finder/finder.min.js +1 -1
  216. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  217. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  218. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  219. package/es2021.en/plugins/google-search/google-search.js +1 -1
  220. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  221. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  222. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  223. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  224. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  225. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  226. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  227. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  228. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  229. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  230. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  231. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  232. package/es2021.en/plugins/math/math.css +1 -1
  233. package/es2021.en/plugins/math/math.js +1 -1
  234. package/es2021.en/plugins/math/math.min.js +1 -1
  235. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  236. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  237. package/es2021.en/plugins/page-break/page-break.js +1 -1
  238. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  239. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  240. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  241. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  242. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  243. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  244. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  245. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  246. package/es2021.en/plugins/style/style.css +1 -1
  247. package/es2021.en/plugins/style/style.js +1 -1
  248. package/es2021.en/plugins/style/style.min.js +1 -1
  249. package/es2021.en/plugins/templates/templates.css +1 -1
  250. package/es2021.en/plugins/templates/templates.js +1 -1
  251. package/es2021.en/plugins/templates/templates.min.js +1 -1
  252. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  253. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  254. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  255. package/es2021.en/plugins/translate/translate.css +1 -1
  256. package/es2021.en/plugins/translate/translate.js +1 -1
  257. package/es2021.en/plugins/translate/translate.min.js +1 -1
  258. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  259. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  260. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  261. package/es5/jodit.css +2 -2
  262. package/es5/jodit.fat.min.js +2 -2
  263. package/es5/jodit.js +303 -74
  264. package/es5/jodit.min.css +2 -2
  265. package/es5/jodit.min.js +2 -2
  266. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  267. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  268. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  269. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  270. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  271. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  272. package/es5/plugins/backup/backup.css +1 -1
  273. package/es5/plugins/backup/backup.js +1 -1
  274. package/es5/plugins/backup/backup.min.js +1 -1
  275. package/es5/plugins/button-generator/button-generator.css +1 -1
  276. package/es5/plugins/button-generator/button-generator.js +1 -1
  277. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  278. package/es5/plugins/change-case/change-case.js +1 -1
  279. package/es5/plugins/change-case/change-case.min.js +1 -1
  280. package/es5/plugins/chart/chart.css +1 -1
  281. package/es5/plugins/chart/chart.js +1 -1
  282. package/es5/plugins/chart/chart.min.js +1 -1
  283. package/es5/plugins/color-picker/color-picker.css +1 -1
  284. package/es5/plugins/color-picker/color-picker.js +1 -1
  285. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  286. package/es5/plugins/emoji/emoji.css +1 -1
  287. package/es5/plugins/emoji/emoji.js +1 -1
  288. package/es5/plugins/emoji/emoji.min.js +1 -1
  289. package/es5/plugins/export-docs/export-docs.js +1 -1
  290. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  291. package/es5/plugins/finder/finder.css +1 -1
  292. package/es5/plugins/finder/finder.js +1 -1
  293. package/es5/plugins/finder/finder.min.js +1 -1
  294. package/es5/plugins/google-maps/google-maps.css +1 -1
  295. package/es5/plugins/google-maps/google-maps.js +1 -1
  296. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  297. package/es5/plugins/google-search/google-search.js +1 -1
  298. package/es5/plugins/google-search/google-search.min.js +1 -1
  299. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  300. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  301. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  302. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  303. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  304. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  305. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  306. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  307. package/es5/plugins/keyboard/keyboard.css +1 -1
  308. package/es5/plugins/keyboard/keyboard.js +1 -1
  309. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  310. package/es5/plugins/math/math.css +1 -1
  311. package/es5/plugins/math/math.js +1 -1
  312. package/es5/plugins/math/math.min.js +1 -1
  313. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  314. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  315. package/es5/plugins/page-break/page-break.js +1 -1
  316. package/es5/plugins/page-break/page-break.min.js +1 -1
  317. package/es5/plugins/paste-code/paste-code.css +1 -1
  318. package/es5/plugins/paste-code/paste-code.js +1 -1
  319. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  320. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  321. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  322. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  323. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  324. package/es5/plugins/style/style.css +1 -1
  325. package/es5/plugins/style/style.js +1 -1
  326. package/es5/plugins/style/style.min.js +1 -1
  327. package/es5/plugins/templates/templates.css +1 -1
  328. package/es5/plugins/templates/templates.js +1 -1
  329. package/es5/plugins/templates/templates.min.js +1 -1
  330. package/es5/plugins/todo-list/todo-list.css +1 -1
  331. package/es5/plugins/todo-list/todo-list.js +1 -1
  332. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  333. package/es5/plugins/translate/translate.css +1 -1
  334. package/es5/plugins/translate/translate.js +1 -1
  335. package/es5/plugins/translate/translate.min.js +1 -1
  336. package/es5/plugins/tune-block/tune-block.css +1 -1
  337. package/es5/plugins/tune-block/tune-block.js +1 -1
  338. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  339. package/es5/polyfills.fat.min.js +1 -1
  340. package/es5/polyfills.js +1 -1
  341. package/es5/polyfills.min.js +1 -1
  342. package/package.json +1 -1
package/es2015/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.18.14
4
+ * Version: v4.18.15
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1453,7 +1453,8 @@ class Async {
1453
1453
  this.__requestsIdle.forEach((key)=>this.cancelIdleCallback(key));
1454
1454
  this.__requestsRaf.forEach((key)=>this.cancelAnimationFrame(key));
1455
1455
  this.__controllers.forEach((controller)=>controller.abort());
1456
- this.timers.forEach((key)=>(0,_helpers_async_index_js__WEBPACK_IMPORTED_MODULE_1__.clearTimeout)(this.timers.get(key)));
1456
+ // A labelled timer is kept under its label, so clear by the value
1457
+ this.timers.forEach((timer)=>(0,_helpers_async_index_js__WEBPACK_IMPORTED_MODULE_1__.clearTimeout)(timer));
1457
1458
  this.timers.clear();
1458
1459
  this.promisesRejections.forEach((reject)=>reject());
1459
1460
  this.promisesRejections.clear();
@@ -1814,7 +1815,7 @@ __webpack_require__.r(__webpack_exports__);
1814
1815
  * ```
1815
1816
  * @packageDocumentation
1816
1817
  * @module constants
1817
- */ const APP_VERSION = "4.18.14";
1818
+ */ const APP_VERSION = "4.18.15";
1818
1819
  // prettier-ignore
1819
1820
  const ES = "es2015";
1820
1821
  const IS_ES_MODERN = true;
@@ -7134,8 +7135,10 @@ function normalizeCssValue(key, value) {
7134
7135
  * ancestor's top-left corner. The returned offset should be subtracted from
7135
7136
  * the desired viewport coordinates before applying them.
7136
7137
  *
7137
- * Returns `{ x: 0, y: 0 }` when no such ancestor exists (the common case), so
7138
- * call sites keep their previous behaviour unchanged.
7138
+ * Without such an ancestor the containing block is the layout viewport. Its
7139
+ * offset is `{ x: 0, y: 0 }` in most browsers, but WebKit measures client
7140
+ * rects from the visual viewport, so once the page is pinch-zoomed and panned
7141
+ * the layout viewport starts above and to the left of the client origin.
7139
7142
  */ function getFixedPositionOffset(elm) {
7140
7143
  var _a;
7141
7144
  const win = (_a = elm.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
@@ -7150,6 +7153,15 @@ function normalizeCssValue(key, value) {
7150
7153
  }
7151
7154
  node = node.parentElement;
7152
7155
  }
7156
+ const vv = win === null || win === void 0 ? void 0 : win.visualViewport;
7157
+ // WebKit's `scrollX`/`scrollY` follow the visual viewport too (truncated),
7158
+ // where Blink's and Gecko's follow the layout viewport
7159
+ if (win && vv && (vv.offsetLeft || vv.offsetTop) && Math.abs(vv.pageLeft - win.scrollX) < 1 && Math.abs(vv.pageTop - win.scrollY) < 1) {
7160
+ return {
7161
+ x: -Math.round(vv.offsetLeft),
7162
+ y: -Math.round(vv.offsetTop)
7163
+ };
7164
+ }
7153
7165
  return {
7154
7166
  x: 0,
7155
7167
  y: 0
@@ -34357,12 +34369,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
34357
34369
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
34358
34370
 
34359
34371
  /* unused harmony export addNewLine */
34360
- /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
34361
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(580);
34362
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21537);
34363
- /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41180);
34364
- /* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41409);
34365
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4604);
34372
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
34373
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
34374
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
34375
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
34376
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
34377
+ /* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41409);
34378
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4604);
34366
34379
  /*!
34367
34380
  * Jodit Editor (https://xdsoft.net/jodit/)
34368
34381
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -34379,10 +34392,11 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
34379
34392
 
34380
34393
 
34381
34394
 
34395
+
34382
34396
  const ns = 'addnewline';
34383
34397
  /**
34384
34398
  * Create helper for adding new paragraph(Jodit.defaultOptions.enter tag) before iframe, table or image
34385
- */ class addNewLine extends _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
34399
+ */ class addNewLine extends _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
34386
34400
  __show() {
34387
34401
  if (this.j.o.readonly || this.j.isLocked) {
34388
34402
  return;
@@ -34392,8 +34406,8 @@ const ns = 'addnewline';
34392
34406
  return;
34393
34407
  }
34394
34408
  this.__isShown = true;
34395
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(this.j.container, this.__line);
34396
- (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.__line, 'width', this.j.container.clientWidth);
34409
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(this.j.container, this.__line);
34410
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'width', this.j.container.clientWidth);
34397
34411
  }
34398
34412
  onLock(isLocked) {
34399
34413
  if (isLocked && this.__isShown) {
@@ -34431,16 +34445,43 @@ const ns = 'addnewline';
34431
34445
  editor.editor
34432
34446
  ], 'scroll' + '.' + ns, this.__hideForce).on('finishedCleanHTMLWorker' + '.' + ns, this.__hideForce).on(editor.editor, 'click' + '.' + ns, this.__hide).on(editor.container, 'mouseleave' + '.' + ns, this.__hide).on(editor.editor, 'mousemove' + '.' + ns, this.__onMouseMove);
34433
34447
  }
34448
+ /**
34449
+ * A paragraph holding only an embed has no place for the caret, so the
34450
+ * arrow keys can't get past one that ends the content, or before one that
34451
+ * starts it. When an arrow key leaves the caret where it was and there is
34452
+ * content beyond it, a new line goes there, as when the line is clicked.
34453
+ */ onArrowKey(e) {
34454
+ const editor = this.j;
34455
+ const forward = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT;
34456
+ if (!editor.o.addNewLine || editor.o.readonly || editor.isLocked || e.shiftKey || !(forward || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_UP || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_LEFT) || !editor.s.isCollapsed()) {
34457
+ return;
34458
+ }
34459
+ const { startContainer, startOffset } = editor.s.range;
34460
+ // Once the browser has moved the caret, if it could. With a 0 timeout
34461
+ // Jodit would run this at once, before the browser moves it
34462
+ editor.async.setTimeout(()=>{
34463
+ const { range } = editor.s;
34464
+ const block = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(startContainer, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
34465
+ if (e.defaultPrevented || !editor.s.isInsideArea || !range.collapsed || range.startContainer !== startContainer || range.startOffset !== startOffset || !block || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.findNotEmptyNeighbor(block, !forward, editor.editor)) {
34466
+ return;
34467
+ }
34468
+ const p = editor.createInside.element(editor.o.enter);
34469
+ forward ? _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p) : _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
34470
+ editor.s.setCursorIn(p);
34471
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
34472
+ editor.synchronizeValues();
34473
+ }, 1);
34474
+ }
34434
34475
  onDblClickEditor(e) {
34435
34476
  const editor = this.j;
34436
34477
  if (!editor.o.readonly && editor.o.addNewLineOnDBLClick && e.target === editor.editor && editor.s.isCollapsed()) {
34437
- const editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.offset)(editor.editor, editor, editor.ed);
34478
+ const editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(editor.editor, editor, editor.ed);
34438
34479
  const top = e.pageY - editor.ew.scrollX;
34439
34480
  const p = editor.createInside.element(editor.o.enter);
34440
34481
  if (Math.abs(top - editorBound.top) < Math.abs(top - (editorBound.height + editorBound.top)) && editor.editor.firstChild) {
34441
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.prepend(editor.editor, p);
34482
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
34442
34483
  } else {
34443
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(editor.editor, p);
34484
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
34444
34485
  }
34445
34486
  editor.s.setCursorIn(p);
34446
34487
  editor.synchronizeValues();
@@ -34454,27 +34495,27 @@ const ns = 'addnewline';
34454
34495
  // Inside Shadow DOM `document.elementFromPoint` returns the shadow
34455
34496
  // host, so the lookup must start from the shadow root
34456
34497
  let currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
34457
- if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(editor.editor, currentElement)) {
34498
+ if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isOrContains(editor.editor, currentElement)) {
34458
34499
  return;
34459
34500
  }
34460
34501
  if (editor.editor !== currentElement && !this.__isMatchedTag(currentElement)) {
34461
- currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
34502
+ currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
34462
34503
  }
34463
34504
  if (!currentElement) {
34464
34505
  this.__hide();
34465
34506
  return;
34466
34507
  }
34467
34508
  if (this.__isMatchedTag(currentElement)) {
34468
- const parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isBlock, editor.editor);
34509
+ const parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
34469
34510
  if (parentBox && parentBox !== editor.editor) {
34470
34511
  currentElement = parentBox;
34471
34512
  }
34472
34513
  }
34473
- const pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.position)(currentElement, this.j);
34514
+ const pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(currentElement, this.j);
34474
34515
  let top = false;
34475
34516
  let { clientY, clientX } = e;
34476
34517
  if (this.j.iframe) {
34477
- const { top, left } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.position)(this.j.iframe, this.j, true);
34518
+ const { top, left } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true);
34478
34519
  clientY += top;
34479
34520
  clientX += left;
34480
34521
  }
@@ -34487,8 +34528,8 @@ const ns = 'addnewline';
34487
34528
  this.__isBeforeContent = false;
34488
34529
  }
34489
34530
  const isEditor = editor.editor === currentElement;
34490
- if (top !== false && (isEditor && !this.__isBeforeContent || !isEditor && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.call)(this.__isBeforeContent ? _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.prev : _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.next, currentElement, this.__canGetFocus, editor.editor))) {
34491
- (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.__line, 'top', top);
34531
+ if (top !== false && (isEditor && !this.__isBeforeContent || !isEditor && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.call)(this.__isBeforeContent ? _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prev : _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.next, currentElement, this.__canGetFocus, editor.editor))) {
34532
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'top', top);
34492
34533
  this.__current = currentElement;
34493
34534
  this.__show();
34494
34535
  this.__line.style.setProperty('--jd-anl-handle-offset', clientX - pos.left - 10 + 'px');
@@ -34500,7 +34541,7 @@ const ns = 'addnewline';
34500
34541
  /** @override */ beforeDestruct() {
34501
34542
  this.j.async.clearTimeout(this.__timeout);
34502
34543
  this.j.e.off(this.__line).off('changePlace', this.__addEventListeners);
34503
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(this.__line);
34544
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
34504
34545
  this.j.e.off([
34505
34546
  this.j.ow,
34506
34547
  this.j.ew,
@@ -34509,7 +34550,7 @@ const ns = 'addnewline';
34509
34550
  }
34510
34551
  constructor(){
34511
34552
  super(...arguments);
34512
- this.__line = this.j.c.fromHTML(`<div role="button" tabindex="-1" title="${this.j.i18n('Break')}" class="jodit-add-new-line"><span>${_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Icon.get('enter')}</span></div>`);
34553
+ this.__line = this.j.c.fromHTML(`<div role="button" tabindex="-1" title="${this.j.i18n('Break')}" class="jodit-add-new-line"><span>${_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Icon.get('enter')}</span></div>`);
34513
34554
  this.__isMatchedTag = (node)=>Boolean(node && this.j.o.addNewLineTagsTriggers.includes(node.nodeName.toLowerCase()));
34514
34555
  this.__isBeforeContent = false;
34515
34556
  this.__lineInFocus = false;
@@ -34521,26 +34562,26 @@ const ns = 'addnewline';
34521
34562
  this.__isShown = false;
34522
34563
  this.j.async.clearTimeout(this.__timeout);
34523
34564
  this.__lineInFocus = false;
34524
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(this.__line);
34565
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
34525
34566
  this.__line.style.setProperty('--jd-anl-handle-offset', '0');
34526
34567
  };
34527
34568
  this.__canGetFocus = (elm)=>{
34528
- return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
34569
+ return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
34529
34570
  };
34530
34571
  this.__onClickLine = (e)=>{
34531
34572
  const editor = this.j;
34532
34573
  const p = editor.createInside.element(editor.o.enter);
34533
34574
  if (this.__isBeforeContent && this.__current && this.__current.parentNode) {
34534
34575
  if (this.__current === editor.editor) {
34535
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.prepend(editor.editor, p);
34576
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
34536
34577
  } else {
34537
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.before(this.__current, p);
34578
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.before(this.__current, p);
34538
34579
  }
34539
34580
  } else {
34540
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(editor.editor, p);
34581
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
34541
34582
  }
34542
34583
  editor.s.setCursorIn(p);
34543
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
34584
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
34544
34585
  editor.synchronizeValues();
34545
34586
  this.__hideForce();
34546
34587
  e.preventDefault();
@@ -34548,18 +34589,21 @@ const ns = 'addnewline';
34548
34589
  }
34549
34590
  }
34550
34591
  __decorate([
34551
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':lock')
34592
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':lock')
34552
34593
  ], addNewLine.prototype, "onLock", null);
34553
34594
  __decorate([
34554
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
34595
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
34555
34596
  ], addNewLine.prototype, "__hide", null);
34556
34597
  __decorate([
34557
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':dblclick')
34598
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown')
34599
+ ], addNewLine.prototype, "onArrowKey", null);
34600
+ __decorate([
34601
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':dblclick')
34558
34602
  ], addNewLine.prototype, "onDblClickEditor", null);
34559
34603
  __decorate([
34560
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.throttle)((ctx)=>ctx.defaultTimeout)
34604
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.throttle)((ctx)=>ctx.defaultTimeout)
34561
34605
  ], addNewLine.prototype, "__onMouseMove", null);
34562
- _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('addNewLine', addNewLine);
34606
+ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('addNewLine', addNewLine);
34563
34607
 
34564
34608
 
34565
34609
  /***/ }),
@@ -35317,6 +35361,7 @@ UiAiAssistant = __decorate([
35317
35361
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32496);
35318
35362
  /* harmony import */ var _cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11338);
35319
35363
  /* harmony import */ var _cases_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14630);
35364
+ /* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63785);
35320
35365
  /*!
35321
35366
  * Jodit Editor (https://xdsoft.net/jodit/)
35322
35367
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -35330,6 +35375,7 @@ UiAiAssistant = __decorate([
35330
35375
 
35331
35376
 
35332
35377
 
35378
+
35333
35379
  class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
35334
35380
  afterInit(jodit) {
35335
35381
  jodit.registerCommand('deleteButton', {
@@ -35407,19 +35453,53 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
35407
35453
  throw e;
35408
35454
  } finally{
35409
35455
  jodit.e.fire('backSpaceAfterDelete', backspace, fakeNode);
35456
+ this.moveCaretToTextBefore(fakeNode);
35410
35457
  this.safeRemoveEmptyNode(fakeNode);
35411
35458
  }
35412
35459
  return false;
35413
35460
  }
35461
+ /**
35462
+ * The browser types at the end of the text before the caret on its line,
35463
+ * in that text's formatting, but not inside a link. Moving the caret there
35464
+ * too makes a paste and the toolbar agree with what's typed:
35465
+ * `<p>one</p><p><b>|two</b></p>` joins to `<p>one|<b>two</b></p>`
35466
+ */ moveCaretToTextBefore(fakeNode) {
35467
+ var _a, _b;
35468
+ const { jodit } = this;
35469
+ const { range } = jodit.s;
35470
+ // A case may have merged the fake node away (#1722)
35471
+ if (!fakeNode.parentNode) {
35472
+ return;
35473
+ }
35474
+ const around = jodit.ed.createRange();
35475
+ around.selectNode(fakeNode);
35476
+ if (!range.collapsed || !around.isPointInRange(range.startContainer, range.startOffset)) {
35477
+ return;
35478
+ }
35479
+ const text = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_9__.findMostNestedNeighbor)(fakeNode, false, jodit.editor, true);
35480
+ const link = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, 'a', jodit.editor);
35481
+ if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(text) || !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(text, jodit.editor) || link && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(link, fakeNode) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, jodit.editor) !== _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fakeNode, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, jodit.editor)) {
35482
+ return;
35483
+ }
35484
+ range.setStart(text, (_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
35485
+ range.collapse(true);
35486
+ jodit.s.selectRange(range);
35487
+ }
35414
35488
  /**
35415
35489
  * Remove node and replace cursor position out of it
35416
35490
  */ safeRemoveEmptyNode(fakeNode) {
35417
- var _a, _b;
35491
+ var _a, _b, _c;
35418
35492
  const { range } = this.j.s;
35493
+ // wrap-nodes normalizes the line it wraps, which can merge the text
35494
+ // after the fake node into it: remove only the fake node's own space
35495
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(fakeNode) && fakeNode.nodeValue !== _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE && ((_a = fakeNode.nodeValue) === null || _a === void 0 ? void 0 : _a.startsWith(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE))) {
35496
+ fakeNode.deleteData(0, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE.length);
35497
+ return;
35498
+ }
35419
35499
  if (range.startContainer === fakeNode) {
35420
35500
  if (fakeNode.previousSibling) {
35421
35501
  if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(fakeNode.previousSibling)) {
35422
- range.setStart(fakeNode.previousSibling, (_b = (_a = fakeNode.previousSibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
35502
+ range.setStart(fakeNode.previousSibling, (_c = (_b = fakeNode.previousSibling.nodeValue) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
35423
35503
  } else {
35424
35504
  range.setStartAfter(fakeNode.previousSibling);
35425
35505
  }
@@ -35484,6 +35564,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
35484
35564
  return false;
35485
35565
  }
35486
35566
  const sibling = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(mainClosestBox, backspace);
35567
+ if (moveInlinesInside(jodit, fakeNode, sibling)) {
35568
+ return joinNeighbors(jodit, fakeNode, backspace, moved);
35569
+ }
35487
35570
  // A line break before the cursor is a single unit: remove it instead of
35488
35571
  // merging the current element into the (void) `<br>`, which used to move
35489
35572
  // the whole element's content into the `<br>` and delete it (#1282).
@@ -35498,6 +35581,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
35498
35581
  jodit.s.setCursorBefore(fakeNode);
35499
35582
  return true;
35500
35583
  }
35584
+ // A non-editable sibling is removed by remove-not-editable, never joined
35585
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(sibling) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(sibling, jodit.editor)) {
35586
+ return false;
35587
+ }
35501
35588
  const box = findCaretBox(fakeNode, mainClosestBox);
35502
35589
  // One pass only: the line now sits beside the next one, so the
35503
35590
  // cases below join them. The DOM has changed either way
@@ -35526,6 +35613,60 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
35526
35613
  }
35527
35614
  return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(block) && block.parentElement ? block.parentElement : block;
35528
35615
  }
35616
+ /**
35617
+ * With an inline element round the caret's line or the one it joins moved
35618
+ * inside its blocks, the cases join the lines as they join any two, and its
35619
+ * styles stay with its text. One round both lines is left as it is.
35620
+ */ function moveInlinesInside(jodit, fakeNode, sibling) {
35621
+ if (!sibling) {
35622
+ return false;
35623
+ }
35624
+ const around = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(fakeNode, (node)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(node, sibling), jodit.editor);
35625
+ return moveInlineInside(around, jodit.editor) || moveInlineInside(sibling, jodit.editor);
35626
+ }
35627
+ /**
35628
+ * Old content can have an inline element round blocks. This moves it inside
35629
+ * them, and gives the text, images and line breaks beside them a copy of
35630
+ * their own: `<span style="…"><p>one</p><br><p>two</p></span>` becomes
35631
+ * `<p><span style="…">one</span></p><span style="…"><br></span><p><span style="…">two</span></p>`
35632
+ */ function moveInlineInside(node, root) {
35633
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node)) {
35634
+ return false;
35635
+ }
35636
+ // Embedded content, such as the `<iframe>` in a video's wrapper, counts
35637
+ // as a block in `Dom.isBlock`, but stays with the text beside it
35638
+ const isBlock = (child)=>_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(child) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(child, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NO_EMPTY_TAGS);
35639
+ // The inner one first: `<span><strong><p>one</p></strong></span>`
35640
+ Array.from(node.childNodes).forEach((child)=>moveInlineInside(child, root));
35641
+ const children = Array.from(node.childNodes);
35642
+ if (!children.some(isBlock)) {
35643
+ return false;
35644
+ }
35645
+ let run = null;
35646
+ for (const child of children){
35647
+ if (!isBlock(child)) {
35648
+ // Blank text between blocks stays where it is
35649
+ if (!run && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(child)) {
35650
+ run = node.cloneNode(false);
35651
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, run);
35652
+ }
35653
+ run && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(run, child);
35654
+ continue;
35655
+ }
35656
+ run = null;
35657
+ // Nothing goes inside a rule or a non-editable block
35658
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(child, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(child, root)) {
35659
+ continue;
35660
+ }
35661
+ const inner = node.cloneNode(false);
35662
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.moveContent(child, inner);
35663
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(child, inner);
35664
+ // A list or a table: on down to its items or cells
35665
+ moveInlineInside(inner, root);
35666
+ }
35667
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(node);
35668
+ return true;
35669
+ }
35529
35670
  /**
35530
35671
  * The innermost block on the sibling's edge facing the caret, so the
35531
35672
  * content is joined to text: `<div><p>one</p></div><p>|two</p>` gives
@@ -35877,7 +36018,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode, stopBeforeSpace = fal
35877
36018
  while(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling)){
35878
36019
  sibling = backspace ? sibling === null || sibling === void 0 ? void 0 : sibling.lastChild : sibling === null || sibling === void 0 ? void 0 : sibling.firstChild;
35879
36020
  }
35880
- if (!sibling) {
36021
+ // A block inside an inline element, such as the `<p>` in
36022
+ // `<span><p>…</p></span>`, isn't a char: the join cases handle it
36023
+ if (!sibling || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling)) {
35881
36024
  break;
35882
36025
  }
35883
36026
  if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
@@ -36025,6 +36168,7 @@ function isSpace(char) {
36025
36168
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
36026
36169
  /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
36027
36170
  /* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45124);
36171
+ /* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62845);
36028
36172
  /*!
36029
36173
  * Jodit Editor (https://xdsoft.net/jodit/)
36030
36174
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -36032,23 +36176,48 @@ function isSpace(char) {
36032
36176
  */
36033
36177
 
36034
36178
 
36179
+
36035
36180
  /**
36036
- * Checks if a non-editable element can be deleted
36181
+ * Checks if a non-editable element can be deleted. A non-editable block goes
36182
+ * whole, and the lines either side of it then join, as the spec's tests do:
36183
+ * `<ul><li>one|</li></ul><div contenteditable="false">x</div><p>two</p>`
36184
+ * gives `<ul><li>one|two</li></ul>`
36037
36185
  * @private
36038
36186
  */ function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
36039
- let neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(fakeNode, backspace);
36040
- if (!neighbor && fakeNode.parentElement && fakeNode.parentElement !== jodit.editor) {
36041
- neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(fakeNode.parentElement, backspace);
36042
- }
36043
- if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(neighbor) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isContentEditable(neighbor, jodit.editor)) {
36044
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after, neighbor, fakeNode);
36045
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
36046
- (0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
36047
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
36187
+ let node = fakeNode;
36188
+ let neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
36189
+ // Past the edges of the blocks the caret is at, but not into a table cell
36190
+ while(!neighbor && node.parentElement && node.parentElement !== jodit.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(node.parentElement)){
36191
+ node = node.parentElement;
36192
+ neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
36193
+ // At the start of a list item, Backspace takes the bullet off first,
36194
+ // unless the item before it is a non-editable one to remove
36195
+ if (backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(node) && !(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor) && isNotEditable(jodit, neighbor))) {
36196
+ return false;
36197
+ }
36198
+ }
36199
+ if (isNotEditable(jodit, neighbor)) {
36200
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(neighbor)) {
36201
+ // Backspace after a removed list item leaves the items apart: the
36202
+ // next press takes the bullet off, as for any later item
36203
+ const joinLines = !(backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor));
36204
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
36205
+ if (joinLines) {
36206
+ (0,_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__.checkJoinNeighbors)(jodit, fakeNode, backspace);
36207
+ }
36208
+ } else {
36209
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after, neighbor, fakeNode);
36210
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
36211
+ (0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
36212
+ }
36213
+ ;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
36048
36214
  return true;
36049
36215
  }
36050
36216
  return false;
36051
36217
  }
36218
+ function isNotEditable(jodit, node) {
36219
+ return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(node) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isContentEditable(node, jodit.editor);
36220
+ }
36052
36221
 
36053
36222
 
36054
36223
  /***/ }),
@@ -57187,12 +57356,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
57187
57356
  /***/ 72253:
57188
57357
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
57189
57358
 
57190
- /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
57191
- /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
57192
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
57193
- /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70799);
57194
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
57195
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96967);
57359
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
57360
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
57361
+ /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
57362
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
57363
+ /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70799);
57364
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
57365
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96967);
57196
57366
  /*!
57197
57367
  * Jodit Editor (https://xdsoft.net/jodit/)
57198
57368
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -57209,9 +57379,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
57209
57379
 
57210
57380
 
57211
57381
 
57382
+
57212
57383
  /**
57213
57384
  * Wrap single text nodes in block wrapper
57214
- */ class wrapNodes extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
57385
+ */ class wrapNodes extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin {
57215
57386
  /** @override **/ afterInit(jodit) {
57216
57387
  if (jodit.o.enter.toLowerCase() === 'br') {
57217
57388
  return;
@@ -57240,10 +57411,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
57240
57411
  }
57241
57412
  isChanged = true;
57242
57413
  const box = jodit.createInside.element(jodit.o.enter);
57243
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, box);
57244
- while(child && this.isSuitable(child)){
57414
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(child, box);
57415
+ // `exclude` keeps a <br> from starting a box, but one between loose lines stays with them
57416
+ while(child && (this.isSuitable(child) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(child, 'br'))){
57245
57417
  const next = child.nextSibling;
57246
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, child);
57418
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, child);
57247
57419
  child = next;
57248
57420
  }
57249
57421
  box.normalize();
@@ -57267,8 +57439,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
57267
57439
  }
57268
57440
  const box = jodit.createInside.element(jodit.o.enter);
57269
57441
  const br = jodit.createInside.element('br');
57270
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, br);
57271
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(jodit.editor, box);
57442
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, br);
57443
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(jodit.editor, box);
57272
57444
  if (jodit.s.isFocused() || jodit.e.current === 'backSpaceAfterDelete') {
57273
57445
  jodit.s.setCursorBefore(br);
57274
57446
  }
@@ -57280,32 +57452,43 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
57280
57452
  * Found Node which should be wrapped
57281
57453
  */ this.isSuitableStart = (n)=>{
57282
57454
  var _a;
57283
- return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(n) && (0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_3__.isString)(n.nodeValue) && (/[^\s]/.test(n.nodeValue) || ((_a = n.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === n && this.isSuitable(n.nextSibling)) || this.isNotWrapped(n) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTemporary(n);
57455
+ return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) && (0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__.isString)(n.nodeValue) && (/[^\s]/.test(n.nodeValue) || ((_a = n.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === n && this.isSuitable(n.nextSibling)) || this.isNotWrapped(n) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTemporary(n);
57284
57456
  };
57285
57457
  /**
57286
57458
  * Node should add in a block element
57287
- */ this.isSuitable = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(n) || this.isNotWrapped(n);
57459
+ */ this.isSuitable = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) || this.isNotWrapped(n);
57288
57460
  /**
57289
57461
  * Some element which needs to append in block
57290
- */ this.isNotWrapped = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(n) && !(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(n) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(n, this.j.o.wrapNodes.exclude));
57462
+ */ this.isNotWrapped = (n)=>_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(n) && !(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(n) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(n, this.j.o.wrapNodes.exclude) || holdsBlock(n));
57291
57463
  }
57292
57464
  }
57293
57465
  __decorate([
57294
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
57466
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
57295
57467
  ], wrapNodes.prototype, "postProcessSetEditorValue", null);
57296
57468
  __decorate([
57297
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
57469
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
57298
57470
  ], wrapNodes.prototype, "preprocessInput", null);
57471
+ /**
57472
+ * A block can't go in a paragraph, so neither can an element that holds one,
57473
+ * such as a `<span>` round a `<p>`. Embedded content such as an `<iframe>` can.
57474
+ */ function holdsBlock(elm) {
57475
+ for (const node of _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.eachGen(elm)){
57476
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(node) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(node, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NO_EMPTY_TAGS)) {
57477
+ return true;
57478
+ }
57479
+ }
57480
+ return false;
57481
+ }
57299
57482
  function checkAloneListLeaf(child, jodit) {
57300
57483
  let result = child;
57301
57484
  let next = child;
57302
57485
  do {
57303
- if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(next) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(next) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(next.parentElement)) {
57304
- const nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(next, false);
57305
- if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(result, 'ul')) {
57306
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(result, next);
57486
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(next) && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isLeaf(next) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isList(next.parentElement)) {
57487
+ const nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(next, false);
57488
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(result, 'ul')) {
57489
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(result, next);
57307
57490
  } else {
57308
- result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.wrap(next, 'ul', jodit.createInside);
57491
+ result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.wrap(next, 'ul', jodit.createInside);
57309
57492
  }
57310
57493
  next = nextChild;
57311
57494
  } else {
@@ -57314,7 +57497,7 @@ function checkAloneListLeaf(child, jodit) {
57314
57497
  }while (next)
57315
57498
  return result;
57316
57499
  }
57317
- _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('wrapNodes', wrapNodes);
57500
+ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('wrapNodes', wrapNodes);
57318
57501
 
57319
57502
 
57320
57503
  /***/ }),