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/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.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
  */
@@ -1666,8 +1666,9 @@ var Async = /*#__PURE__*/ function() {
1666
1666
  this.__controllers.forEach(function(controller) {
1667
1667
  return controller.abort();
1668
1668
  });
1669
- this.timers.forEach(function(key) {
1670
- return (0,_helpers_async_index_js__WEBPACK_IMPORTED_MODULE_1__.clearTimeout)(_this.timers.get(key));
1669
+ // A labelled timer is kept under its label, so clear by the value
1670
+ this.timers.forEach(function(timer) {
1671
+ return (0,_helpers_async_index_js__WEBPACK_IMPORTED_MODULE_1__.clearTimeout)(timer);
1671
1672
  });
1672
1673
  this.timers.clear();
1673
1674
  this.promisesRejections.forEach(function(reject) {
@@ -2331,7 +2332,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2331
2332
  if (n === "Map" || n === "Set") return Array.from(n);
2332
2333
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2333
2334
  }
2334
- var APP_VERSION = "4.18.14";
2335
+ var APP_VERSION = "4.18.15";
2335
2336
  // prettier-ignore
2336
2337
  var ES = "es5";
2337
2338
  var IS_ES_MODERN = false;
@@ -8922,8 +8923,10 @@ function normalizeCssValue(key, value) {
8922
8923
  * ancestor's top-left corner. The returned offset should be subtracted from
8923
8924
  * the desired viewport coordinates before applying them.
8924
8925
  *
8925
- * Returns `{ x: 0, y: 0 }` when no such ancestor exists (the common case), so
8926
- * call sites keep their previous behaviour unchanged.
8926
+ * Without such an ancestor the containing block is the layout viewport. Its
8927
+ * offset is `{ x: 0, y: 0 }` in most browsers, but WebKit measures client
8928
+ * rects from the visual viewport, so once the page is pinch-zoomed and panned
8929
+ * the layout viewport starts above and to the left of the client origin.
8927
8930
  */ function getFixedPositionOffset(elm) {
8928
8931
  var _a;
8929
8932
  var win = (_a = elm.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
@@ -8938,6 +8941,15 @@ function normalizeCssValue(key, value) {
8938
8941
  }
8939
8942
  node = node.parentElement;
8940
8943
  }
8944
+ var vv = win === null || win === void 0 ? void 0 : win.visualViewport;
8945
+ // WebKit's `scrollX`/`scrollY` follow the visual viewport too (truncated),
8946
+ // where Blink's and Gecko's follow the layout viewport
8947
+ if (win && vv && (vv.offsetLeft || vv.offsetTop) && Math.abs(vv.pageLeft - win.scrollX) < 1 && Math.abs(vv.pageTop - win.scrollY) < 1) {
8948
+ return {
8949
+ x: -Math.round(vv.offsetLeft),
8950
+ y: -Math.round(vv.offsetTop)
8951
+ };
8952
+ }
8941
8953
  return {
8942
8954
  x: 0,
8943
8955
  y: 0
@@ -45595,12 +45607,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
45595
45607
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
45596
45608
 
45597
45609
  /* unused harmony export addNewLine */
45598
- /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
45599
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(580);
45600
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21537);
45601
- /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41180);
45602
- /* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41409);
45603
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4604);
45610
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
45611
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
45612
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
45613
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
45614
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
45615
+ /* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41409);
45616
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4604);
45604
45617
  function _assert_this_initialized(self) {
45605
45618
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
45606
45619
  return self;
@@ -45727,6 +45740,7 @@ function _wrap_native_super(Class) {
45727
45740
 
45728
45741
 
45729
45742
 
45743
+
45730
45744
  var ns = 'addnewline';
45731
45745
  /**
45732
45746
  * Create helper for adding new paragraph(Jodit.defaultOptions.enter tag) before iframe, table or image
@@ -45737,7 +45751,7 @@ var ns = 'addnewline';
45737
45751
  _class_call_check(this, addNewLine);
45738
45752
  var _this;
45739
45753
  _this = _call_super(this, addNewLine, arguments);
45740
- _this.__line = _this.j.c.fromHTML('<div role="button" tabindex="-1" title="'.concat(_this.j.i18n('Break'), '" class="jodit-add-new-line"><span>').concat(_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Icon.get('enter'), "</span></div>"));
45754
+ _this.__line = _this.j.c.fromHTML('<div role="button" tabindex="-1" title="'.concat(_this.j.i18n('Break'), '" class="jodit-add-new-line"><span>').concat(_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Icon.get('enter'), "</span></div>"));
45741
45755
  _this.__isMatchedTag = function(node) {
45742
45756
  return Boolean(node && _this.j.o.addNewLineTagsTriggers.includes(node.nodeName.toLowerCase()));
45743
45757
  };
@@ -45751,26 +45765,26 @@ var ns = 'addnewline';
45751
45765
  _this.__isShown = false;
45752
45766
  _this.j.async.clearTimeout(_this.__timeout);
45753
45767
  _this.__lineInFocus = false;
45754
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(_this.__line);
45768
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(_this.__line);
45755
45769
  _this.__line.style.setProperty('--jd-anl-handle-offset', '0');
45756
45770
  };
45757
45771
  _this.__canGetFocus = function(elm) {
45758
- return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
45772
+ return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
45759
45773
  };
45760
45774
  _this.__onClickLine = function(e) {
45761
45775
  var editor = _this.j;
45762
45776
  var p = editor.createInside.element(editor.o.enter);
45763
45777
  if (_this.__isBeforeContent && _this.__current && _this.__current.parentNode) {
45764
45778
  if (_this.__current === editor.editor) {
45765
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.prepend(editor.editor, p);
45779
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
45766
45780
  } else {
45767
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.before(_this.__current, p);
45781
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.before(_this.__current, p);
45768
45782
  }
45769
45783
  } else {
45770
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(editor.editor, p);
45784
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
45771
45785
  }
45772
45786
  editor.s.setCursorIn(p);
45773
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
45787
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
45774
45788
  editor.synchronizeValues();
45775
45789
  _this.__hideForce();
45776
45790
  e.preventDefault();
@@ -45789,8 +45803,8 @@ var ns = 'addnewline';
45789
45803
  return;
45790
45804
  }
45791
45805
  this.__isShown = true;
45792
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(this.j.container, this.__line);
45793
- (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.__line, 'width', this.j.container.clientWidth);
45806
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(this.j.container, this.__line);
45807
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'width', this.j.container.clientWidth);
45794
45808
  }
45795
45809
  },
45796
45810
  {
@@ -45842,18 +45856,48 @@ var ns = 'addnewline';
45842
45856
  ], '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);
45843
45857
  }
45844
45858
  },
45859
+ {
45860
+ /**
45861
+ * A paragraph holding only an embed has no place for the caret, so the
45862
+ * arrow keys can't get past one that ends the content, or before one that
45863
+ * starts it. When an arrow key leaves the caret where it was and there is
45864
+ * content beyond it, a new line goes there, as when the line is clicked.
45865
+ */ key: "onArrowKey",
45866
+ value: function onArrowKey(e) {
45867
+ var editor = this.j;
45868
+ var forward = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT;
45869
+ 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()) {
45870
+ return;
45871
+ }
45872
+ var _editor_s_range = editor.s.range, startContainer = _editor_s_range.startContainer, startOffset = _editor_s_range.startOffset;
45873
+ // Once the browser has moved the caret, if it could. With a 0 timeout
45874
+ // Jodit would run this at once, before the browser moves it
45875
+ editor.async.setTimeout(function() {
45876
+ var range = editor.s.range;
45877
+ var block = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(startContainer, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
45878
+ 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)) {
45879
+ return;
45880
+ }
45881
+ var p = editor.createInside.element(editor.o.enter);
45882
+ 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);
45883
+ editor.s.setCursorIn(p);
45884
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
45885
+ editor.synchronizeValues();
45886
+ }, 1);
45887
+ }
45888
+ },
45845
45889
  {
45846
45890
  key: "onDblClickEditor",
45847
45891
  value: function onDblClickEditor(e) {
45848
45892
  var editor = this.j;
45849
45893
  if (!editor.o.readonly && editor.o.addNewLineOnDBLClick && e.target === editor.editor && editor.s.isCollapsed()) {
45850
- var editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.offset)(editor.editor, editor, editor.ed);
45894
+ var editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(editor.editor, editor, editor.ed);
45851
45895
  var top = e.pageY - editor.ew.scrollX;
45852
45896
  var p = editor.createInside.element(editor.o.enter);
45853
45897
  if (Math.abs(top - editorBound.top) < Math.abs(top - (editorBound.height + editorBound.top)) && editor.editor.firstChild) {
45854
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.prepend(editor.editor, p);
45898
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
45855
45899
  } else {
45856
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(editor.editor, p);
45900
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
45857
45901
  }
45858
45902
  editor.s.setCursorIn(p);
45859
45903
  editor.synchronizeValues();
@@ -45870,27 +45914,27 @@ var ns = 'addnewline';
45870
45914
  // Inside Shadow DOM `document.elementFromPoint` returns the shadow
45871
45915
  // host, so the lookup must start from the shadow root
45872
45916
  var currentElement = ((_a = editor.o.shadowRoot) !== null && _a !== void 0 ? _a : editor.ed).elementFromPoint(e.clientX, e.clientY);
45873
- if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isOrContains(editor.editor, currentElement)) {
45917
+ if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isOrContains(editor.editor, currentElement)) {
45874
45918
  return;
45875
45919
  }
45876
45920
  if (editor.editor !== currentElement && !this.__isMatchedTag(currentElement)) {
45877
- currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
45921
+ currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
45878
45922
  }
45879
45923
  if (!currentElement) {
45880
45924
  this.__hide();
45881
45925
  return;
45882
45926
  }
45883
45927
  if (this.__isMatchedTag(currentElement)) {
45884
- var parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.isBlock, editor.editor);
45928
+ var parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
45885
45929
  if (parentBox && parentBox !== editor.editor) {
45886
45930
  currentElement = parentBox;
45887
45931
  }
45888
45932
  }
45889
- var pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.position)(currentElement, this.j);
45933
+ var pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(currentElement, this.j);
45890
45934
  var top = false;
45891
45935
  var clientY = e.clientY, clientX = e.clientX;
45892
45936
  if (this.j.iframe) {
45893
- var _position = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.position)(this.j.iframe, this.j, true), top1 = _position.top, left = _position.left;
45937
+ var _position = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(this.j.iframe, this.j, true), top1 = _position.top, left = _position.left;
45894
45938
  clientY += top1;
45895
45939
  clientX += left;
45896
45940
  }
@@ -45903,8 +45947,8 @@ var ns = 'addnewline';
45903
45947
  this.__isBeforeContent = false;
45904
45948
  }
45905
45949
  var isEditor = editor.editor === currentElement;
45906
- 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))) {
45907
- (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.__line, 'top', top);
45950
+ 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))) {
45951
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'top', top);
45908
45952
  this.__current = currentElement;
45909
45953
  this.__show();
45910
45954
  this.__line.style.setProperty('--jd-anl-handle-offset', clientX - pos.left - 10 + 'px');
@@ -45919,7 +45963,7 @@ var ns = 'addnewline';
45919
45963
  value: function beforeDestruct() {
45920
45964
  this.j.async.clearTimeout(this.__timeout);
45921
45965
  this.j.e.off(this.__line).off('changePlace', this.__addEventListeners);
45922
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(this.__line);
45966
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
45923
45967
  this.j.e.off([
45924
45968
  this.j.ow,
45925
45969
  this.j.ew,
@@ -45929,22 +45973,25 @@ var ns = 'addnewline';
45929
45973
  }
45930
45974
  ]);
45931
45975
  return addNewLine;
45932
- }(_wrap_native_super(_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
45976
+ }(_wrap_native_super(_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin));
45933
45977
  __decorate([
45934
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':lock')
45978
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':lock')
45935
45979
  ], addNewLine.prototype, "onLock", null);
45936
45980
  __decorate([
45937
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
45981
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
45938
45982
  ], addNewLine.prototype, "__hide", null);
45939
45983
  __decorate([
45940
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':dblclick')
45984
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown')
45985
+ ], addNewLine.prototype, "onArrowKey", null);
45986
+ __decorate([
45987
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':dblclick')
45941
45988
  ], addNewLine.prototype, "onDblClickEditor", null);
45942
45989
  __decorate([
45943
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.throttle)(function(ctx) {
45990
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.throttle)(function(ctx) {
45944
45991
  return ctx.defaultTimeout;
45945
45992
  })
45946
45993
  ], addNewLine.prototype, "__onMouseMove", null);
45947
- _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('addNewLine', addNewLine);
45994
+ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('addNewLine', addNewLine);
45948
45995
 
45949
45996
 
45950
45997
  /***/ }),
@@ -47066,6 +47113,7 @@ UiAiAssistant = __decorate([
47066
47113
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32496);
47067
47114
  /* harmony import */ var _cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11338);
47068
47115
  /* harmony import */ var _cases_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14630);
47116
+ /* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63785);
47069
47117
  function _array_like_to_array(arr, len) {
47070
47118
  if (len == null || len > arr.length) len = arr.length;
47071
47119
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -47235,6 +47283,7 @@ function _wrap_native_super(Class) {
47235
47283
 
47236
47284
 
47237
47285
 
47286
+
47238
47287
  var backspace = /*#__PURE__*/ function(Plugin) {
47239
47288
  "use strict";
47240
47289
  _inherits(backspace, Plugin);
@@ -47342,6 +47391,7 @@ var backspace = /*#__PURE__*/ function(Plugin) {
47342
47391
  throw e;
47343
47392
  } finally{
47344
47393
  jodit.e.fire('backSpaceAfterDelete', backspace, fakeNode);
47394
+ this.moveCaretToTextBefore(fakeNode);
47345
47395
  this.safeRemoveEmptyNode(fakeNode);
47346
47396
  }
47347
47397
  return false;
@@ -47349,15 +47399,51 @@ var backspace = /*#__PURE__*/ function(Plugin) {
47349
47399
  },
47350
47400
  {
47351
47401
  /**
47402
+ * The browser types at the end of the text before the caret on its line,
47403
+ * in that text's formatting, but not inside a link. Moving the caret there
47404
+ * too makes a paste and the toolbar agree with what's typed:
47405
+ * `<p>one</p><p><b>|two</b></p>` joins to `<p>one|<b>two</b></p>`
47406
+ */ key: "moveCaretToTextBefore",
47407
+ value: function moveCaretToTextBefore(fakeNode) {
47408
+ var _a, _b;
47409
+ var jodit = this.jodit;
47410
+ var range = jodit.s.range;
47411
+ // A case may have merged the fake node away (#1722)
47412
+ if (!fakeNode.parentNode) {
47413
+ return;
47414
+ }
47415
+ var around = jodit.ed.createRange();
47416
+ around.selectNode(fakeNode);
47417
+ if (!range.collapsed || !around.isPointInRange(range.startContainer, range.startOffset)) {
47418
+ return;
47419
+ }
47420
+ var text = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_9__.findMostNestedNeighbor)(fakeNode, false, jodit.editor, true);
47421
+ var link = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, 'a', jodit.editor);
47422
+ 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)) {
47423
+ return;
47424
+ }
47425
+ range.setStart(text, (_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
47426
+ range.collapse(true);
47427
+ jodit.s.selectRange(range);
47428
+ }
47429
+ },
47430
+ {
47431
+ /**
47352
47432
  * Remove node and replace cursor position out of it
47353
47433
  */ key: "safeRemoveEmptyNode",
47354
47434
  value: function safeRemoveEmptyNode(fakeNode) {
47355
- var _a, _b;
47435
+ var _a, _b, _c;
47356
47436
  var range = this.j.s.range;
47437
+ // wrap-nodes normalizes the line it wraps, which can merge the text
47438
+ // after the fake node into it: remove only the fake node's own space
47439
+ 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))) {
47440
+ fakeNode.deleteData(0, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE.length);
47441
+ return;
47442
+ }
47357
47443
  if (range.startContainer === fakeNode) {
47358
47444
  if (fakeNode.previousSibling) {
47359
47445
  if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(fakeNode.previousSibling)) {
47360
- range.setStart(fakeNode.previousSibling, (_b = (_a = fakeNode.previousSibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
47446
+ range.setStart(fakeNode.previousSibling, (_c = (_b = fakeNode.previousSibling.nodeValue) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
47361
47447
  } else {
47362
47448
  range.setStartAfter(fakeNode.previousSibling);
47363
47449
  }
@@ -47425,6 +47511,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47425
47511
  return false;
47426
47512
  }
47427
47513
  var sibling = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(mainClosestBox, backspace);
47514
+ if (moveInlinesInside(jodit, fakeNode, sibling)) {
47515
+ return joinNeighbors(jodit, fakeNode, backspace, moved);
47516
+ }
47428
47517
  // A line break before the cursor is a single unit: remove it instead of
47429
47518
  // merging the current element into the (void) `<br>`, which used to move
47430
47519
  // the whole element's content into the `<br>` and delete it (#1282).
@@ -47439,6 +47528,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47439
47528
  jodit.s.setCursorBefore(fakeNode);
47440
47529
  return true;
47441
47530
  }
47531
+ // A non-editable sibling is removed by remove-not-editable, never joined
47532
+ 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)) {
47533
+ return false;
47534
+ }
47442
47535
  var box = findCaretBox(fakeNode, mainClosestBox);
47443
47536
  // One pass only: the line now sits beside the next one, so the
47444
47537
  // cases below join them. The DOM has changed either way
@@ -47467,6 +47560,83 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47467
47560
  }
47468
47561
  return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(block) && block.parentElement ? block.parentElement : block;
47469
47562
  }
47563
+ /**
47564
+ * With an inline element round the caret's line or the one it joins moved
47565
+ * inside its blocks, the cases join the lines as they join any two, and its
47566
+ * styles stay with its text. One round both lines is left as it is.
47567
+ */ function moveInlinesInside(jodit, fakeNode, sibling) {
47568
+ if (!sibling) {
47569
+ return false;
47570
+ }
47571
+ var around = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(fakeNode, function(node) {
47572
+ return _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);
47573
+ }, jodit.editor);
47574
+ return moveInlineInside(around, jodit.editor) || moveInlineInside(sibling, jodit.editor);
47575
+ }
47576
+ /**
47577
+ * Old content can have an inline element round blocks. This moves it inside
47578
+ * them, and gives the text, images and line breaks beside them a copy of
47579
+ * their own: `<span style="…"><p>one</p><br><p>two</p></span>` becomes
47580
+ * `<p><span style="…">one</span></p><span style="…"><br></span><p><span style="…">two</span></p>`
47581
+ */ function moveInlineInside(node, root) {
47582
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node)) {
47583
+ return false;
47584
+ }
47585
+ // Embedded content, such as the `<iframe>` in a video's wrapper, counts
47586
+ // as a block in `Dom.isBlock`, but stays with the text beside it
47587
+ var isBlock = function isBlock(child) {
47588
+ return _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);
47589
+ };
47590
+ // The inner one first: `<span><strong><p>one</p></strong></span>`
47591
+ Array.from(node.childNodes).forEach(function(child) {
47592
+ return moveInlineInside(child, root);
47593
+ });
47594
+ var children = Array.from(node.childNodes);
47595
+ if (!children.some(isBlock)) {
47596
+ return false;
47597
+ }
47598
+ var run = null;
47599
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
47600
+ try {
47601
+ for(var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
47602
+ var child = _step.value;
47603
+ if (!isBlock(child)) {
47604
+ // Blank text between blocks stays where it is
47605
+ if (!run && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(child)) {
47606
+ run = node.cloneNode(false);
47607
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, run);
47608
+ }
47609
+ run && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(run, child);
47610
+ continue;
47611
+ }
47612
+ run = null;
47613
+ // Nothing goes inside a rule or a non-editable block
47614
+ 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)) {
47615
+ continue;
47616
+ }
47617
+ var inner = node.cloneNode(false);
47618
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.moveContent(child, inner);
47619
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(child, inner);
47620
+ // A list or a table: on down to its items or cells
47621
+ moveInlineInside(inner, root);
47622
+ }
47623
+ } catch (err) {
47624
+ _didIteratorError = true;
47625
+ _iteratorError = err;
47626
+ } finally{
47627
+ try {
47628
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
47629
+ _iterator.return();
47630
+ }
47631
+ } finally{
47632
+ if (_didIteratorError) {
47633
+ throw _iteratorError;
47634
+ }
47635
+ }
47636
+ }
47637
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(node);
47638
+ return true;
47639
+ }
47470
47640
  /**
47471
47641
  * The innermost block on the sibling's edge facing the caret, so the
47472
47642
  * content is joined to text: `<div><p>one</p></div><p>|two</p>` gives
@@ -47827,7 +47997,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
47827
47997
  while(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling)){
47828
47998
  sibling = backspace ? sibling === null || sibling === void 0 ? void 0 : sibling.lastChild : sibling === null || sibling === void 0 ? void 0 : sibling.firstChild;
47829
47999
  }
47830
- if (!sibling) {
48000
+ // A block inside an inline element, such as the `<p>` in
48001
+ // `<span><p>…</p></span>`, isn't a char: the join cases handle it
48002
+ if (!sibling || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling)) {
47831
48003
  break;
47832
48004
  }
47833
48005
  if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
@@ -47975,6 +48147,7 @@ function isSpace(char) {
47975
48147
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
47976
48148
  /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
47977
48149
  /* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45124);
48150
+ /* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62845);
47978
48151
  /*!
47979
48152
  * Jodit Editor (https://xdsoft.net/jodit/)
47980
48153
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -47982,23 +48155,48 @@ function isSpace(char) {
47982
48155
  */
47983
48156
 
47984
48157
 
48158
+
47985
48159
  /**
47986
- * Checks if a non-editable element can be deleted
48160
+ * Checks if a non-editable element can be deleted. A non-editable block goes
48161
+ * whole, and the lines either side of it then join, as the spec's tests do:
48162
+ * `<ul><li>one|</li></ul><div contenteditable="false">x</div><p>two</p>`
48163
+ * gives `<ul><li>one|two</li></ul>`
47987
48164
  * @private
47988
48165
  */ function checkRemoveContentNotEditable(jodit, fakeNode, backspace) {
47989
- var neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(fakeNode, backspace);
47990
- if (!neighbor && fakeNode.parentElement && fakeNode.parentElement !== jodit.editor) {
47991
- neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(fakeNode.parentElement, backspace);
47992
- }
47993
- 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)) {
47994
- (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);
47995
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
47996
- (0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
47997
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
48166
+ var node = fakeNode;
48167
+ var neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
48168
+ // Past the edges of the blocks the caret is at, but not into a table cell
48169
+ while(!neighbor && node.parentElement && node.parentElement !== jodit.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(node.parentElement)){
48170
+ node = node.parentElement;
48171
+ neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
48172
+ // At the start of a list item, Backspace takes the bullet off first,
48173
+ // unless the item before it is a non-editable one to remove
48174
+ 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))) {
48175
+ return false;
48176
+ }
48177
+ }
48178
+ if (isNotEditable(jodit, neighbor)) {
48179
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(neighbor)) {
48180
+ // Backspace after a removed list item leaves the items apart: the
48181
+ // next press takes the bullet off, as for any later item
48182
+ var joinLines = !(backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor));
48183
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
48184
+ if (joinLines) {
48185
+ (0,_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__.checkJoinNeighbors)(jodit, fakeNode, backspace);
48186
+ }
48187
+ } else {
48188
+ (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);
48189
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
48190
+ (0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
48191
+ }
48192
+ ;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
47998
48193
  return true;
47999
48194
  }
48000
48195
  return false;
48001
48196
  }
48197
+ function isNotEditable(jodit, node) {
48198
+ 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);
48199
+ }
48002
48200
 
48003
48201
 
48004
48202
  /***/ }),
@@ -78934,12 +79132,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
78934
79132
  /***/ 72253:
78935
79133
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
78936
79134
 
78937
- /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
78938
- /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
78939
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
78940
- /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70799);
78941
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
78942
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96967);
79135
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
79136
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
79137
+ /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
79138
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
79139
+ /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70799);
79140
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
79141
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96967);
78943
79142
  function _assert_this_initialized(self) {
78944
79143
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
78945
79144
  return self;
@@ -79066,6 +79265,7 @@ function _wrap_native_super(Class) {
79066
79265
 
79067
79266
 
79068
79267
 
79268
+
79069
79269
  /**
79070
79270
  * Wrap single text nodes in block wrapper
79071
79271
  */ var wrapNodes = /*#__PURE__*/ function(Plugin) {
@@ -79079,17 +79279,17 @@ function _wrap_native_super(Class) {
79079
79279
  * Found Node which should be wrapped
79080
79280
  */ _this.isSuitableStart = function(n) {
79081
79281
  var _a;
79082
- 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);
79282
+ 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);
79083
79283
  };
79084
79284
  /**
79085
79285
  * Node should add in a block element
79086
79286
  */ _this.isSuitable = function(n) {
79087
- return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(n) || _this.isNotWrapped(n);
79287
+ return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) || _this.isNotWrapped(n);
79088
79288
  };
79089
79289
  /**
79090
79290
  * Some element which needs to append in block
79091
79291
  */ _this.isNotWrapped = function(n) {
79092
- return _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));
79292
+ return _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));
79093
79293
  };
79094
79294
  return _this;
79095
79295
  }
@@ -79130,10 +79330,11 @@ function _wrap_native_super(Class) {
79130
79330
  }
79131
79331
  isChanged = true;
79132
79332
  var box = jodit.createInside.element(jodit.o.enter);
79133
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, box);
79134
- while(child && this.isSuitable(child)){
79333
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(child, box);
79334
+ // `exclude` keeps a <br> from starting a box, but one between loose lines stays with them
79335
+ while(child && (this.isSuitable(child) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(child, 'br'))){
79135
79336
  var next = child.nextSibling;
79136
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, child);
79337
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, child);
79137
79338
  child = next;
79138
79339
  }
79139
79340
  box.normalize();
@@ -79160,8 +79361,8 @@ function _wrap_native_super(Class) {
79160
79361
  }
79161
79362
  var box = jodit.createInside.element(jodit.o.enter);
79162
79363
  var br = jodit.createInside.element('br');
79163
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, br);
79164
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(jodit.editor, box);
79364
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, br);
79365
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(jodit.editor, box);
79165
79366
  if (jodit.s.isFocused() || jodit.e.current === 'backSpaceAfterDelete') {
79166
79367
  jodit.s.setCursorBefore(br);
79167
79368
  }
@@ -79170,23 +79371,51 @@ function _wrap_native_super(Class) {
79170
79371
  }
79171
79372
  ]);
79172
79373
  return wrapNodes;
79173
- }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
79374
+ }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin));
79174
79375
  __decorate([
79175
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
79376
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
79176
79377
  ], wrapNodes.prototype, "postProcessSetEditorValue", null);
79177
79378
  __decorate([
79178
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
79379
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
79179
79380
  ], wrapNodes.prototype, "preprocessInput", null);
79381
+ /**
79382
+ * A block can't go in a paragraph, so neither can an element that holds one,
79383
+ * such as a `<span>` round a `<p>`. Embedded content such as an `<iframe>` can.
79384
+ */ function holdsBlock(elm) {
79385
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
79386
+ try {
79387
+ for(var _iterator = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.eachGen(elm)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
79388
+ var node = _step.value;
79389
+ 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)) {
79390
+ return true;
79391
+ }
79392
+ }
79393
+ } catch (err) {
79394
+ _didIteratorError = true;
79395
+ _iteratorError = err;
79396
+ } finally{
79397
+ try {
79398
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
79399
+ _iterator.return();
79400
+ }
79401
+ } finally{
79402
+ if (_didIteratorError) {
79403
+ throw _iteratorError;
79404
+ }
79405
+ }
79406
+ }
79407
+ return false;
79408
+ }
79180
79409
  function checkAloneListLeaf(child, jodit) {
79181
79410
  var result = child;
79182
79411
  var next = child;
79183
79412
  do {
79184
- 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)) {
79185
- var nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(next, false);
79186
- if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(result, 'ul')) {
79187
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(result, next);
79413
+ 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)) {
79414
+ var nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(next, false);
79415
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(result, 'ul')) {
79416
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(result, next);
79188
79417
  } else {
79189
- result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.wrap(next, 'ul', jodit.createInside);
79418
+ result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.wrap(next, 'ul', jodit.createInside);
79190
79419
  }
79191
79420
  next = nextChild;
79192
79421
  } else {
@@ -79195,7 +79424,7 @@ function checkAloneListLeaf(child, jodit) {
79195
79424
  }while (next);
79196
79425
  return result;
79197
79426
  }
79198
- _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('wrapNodes', wrapNodes);
79427
+ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('wrapNodes', wrapNodes);
79199
79428
 
79200
79429
 
79201
79430
  /***/ }),