jodit-pro 4.18.14 → 4.18.17

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 +281 -78
  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 +7 -7
  109. package/es2021/jodit.js +281 -78
  110. package/es2021/jodit.min.js +7 -7
  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 +7 -7
  186. package/es2021.en/jodit.js +281 -78
  187. package/es2021.en/jodit.min.js +10 -10
  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 +353 -79
  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.17
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.17";
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
@@ -16971,6 +16983,7 @@ function elementsEqualAttributes(elm1, elm2) {
16971
16983
  * Replaces `ul->ol` or `ol->ul`, apply styles to the list, or remove a list item from it
16972
16984
  * @private
16973
16985
  */ function toggleOrderedList(commitStyle, li, jodit, mode) {
16986
+ var collapsed = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
16974
16987
  if (!li) {
16975
16988
  return mode;
16976
16989
  }
@@ -16999,16 +17012,60 @@ function elementsEqualAttributes(elm1, elm2) {
16999
17012
  }
17000
17013
  // ul => ol, ol => ul or ul => ul.class1
17001
17014
  if (mode === _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE || isChangeMode || !isSameList) {
17002
- var wrapper = unwrapList(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, list, li, jodit, commitStyle);
17003
- var newList = (0,_wrap_list_js__WEBPACK_IMPORTED_MODULE_7__.wrapList)(commitStyle, wrapper, jodit);
17015
+ // With just a caret, Word converts the whole list
17016
+ var items = collapsed && !isSameList ? Array.from(list.children).filter(function(item) {
17017
+ return _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(item);
17018
+ }) : [
17019
+ li
17020
+ ];
17021
+ var newList;
17022
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
17023
+ try {
17024
+ var _loop = function() {
17025
+ var item = _step.value;
17026
+ newList = keepNumbering(item, function(itemList) {
17027
+ return (0,_wrap_list_js__WEBPACK_IMPORTED_MODULE_7__.wrapList)(commitStyle, unwrapList(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, itemList, item, jodit, commitStyle), jodit);
17028
+ });
17029
+ };
17030
+ for(var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
17031
+ } catch (err) {
17032
+ _didIteratorError = true;
17033
+ _iteratorError = err;
17034
+ } finally{
17035
+ try {
17036
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
17037
+ _iterator.return();
17038
+ }
17039
+ } finally{
17040
+ if (_didIteratorError) {
17041
+ throw _iteratorError;
17042
+ }
17043
+ }
17044
+ }
17004
17045
  hook(_constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE, newList, commitStyle);
17005
17046
  return _constants_js__WEBPACK_IMPORTED_MODULE_6__.REPLACE;
17006
17047
  }
17007
17048
  }
17008
- var wrapper1 = unwrapList(_constants_js__WEBPACK_IMPORTED_MODULE_6__.UNWRAP, list, li, jodit, commitStyle);
17009
- hook(_constants_js__WEBPACK_IMPORTED_MODULE_6__.UNWRAP, wrapper1, commitStyle);
17049
+ var wrapper = keepNumbering(li, function(itemList) {
17050
+ return unwrapList(_constants_js__WEBPACK_IMPORTED_MODULE_6__.UNWRAP, itemList, li, jodit, commitStyle);
17051
+ });
17052
+ hook(_constants_js__WEBPACK_IMPORTED_MODULE_6__.UNWRAP, wrapper, commitStyle);
17010
17053
  return _constants_js__WEBPACK_IMPORTED_MODULE_6__.UNWRAP;
17011
17054
  }
17055
+ /**
17056
+ * Takes `item` out of its list with `takeOut`, and carries a numbered list's
17057
+ * count on past it, as Word does: 1, a bullet, then 2
17058
+ */ function keepNumbering(item, takeOut) {
17059
+ var list = item.parentElement;
17060
+ var rest = item.nextElementSibling;
17061
+ var next = _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, 'ol') ? (parseInt(list.getAttribute('start') || '1', 10) || 1) + Array.from(list.children).indexOf(item) : 0;
17062
+ var result = takeOut(list);
17063
+ var restList = rest === null || rest === void 0 ? void 0 : rest.parentElement;
17064
+ if (next && _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(restList, 'ol')) {
17065
+ next > 1 ? restList.setAttribute('start', String(next)) : restList.removeAttribute('start');
17066
+ }
17067
+ return result;
17068
+ }
17012
17069
  /**
17013
17070
  * Other attributes, such as a class, still move the items into a new list,
17014
17071
  * where the `beforeWrapList` hook can add markup to each of them
@@ -17940,7 +17997,7 @@ var transactions = (_obj = {}, _define_property(_obj, states.START, {
17940
17997
  }), _define_property(_obj, states.TOGGLE_LIST, {
17941
17998
  exec: function exec(value) {
17942
17999
  return _object_spread_props(_object_spread({}, value), {
17943
- mode: (0,_api_index_js__WEBPACK_IMPORTED_MODULE_3__.toggleOrderedList)(value.style, value.element, value.jodit, value.mode),
18000
+ mode: (0,_api_index_js__WEBPACK_IMPORTED_MODULE_3__.toggleOrderedList)(value.style, value.element, value.jodit, value.mode, value.collapsed),
17944
18001
  next: states.END
17945
18002
  });
17946
18003
  }
@@ -45595,12 +45652,13 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('about', _about_svg_js__W
45595
45652
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
45596
45653
 
45597
45654
  /* 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);
45655
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
45656
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
45657
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
45658
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
45659
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
45660
+ /* harmony import */ var _modules_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41409);
45661
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4604);
45604
45662
  function _assert_this_initialized(self) {
45605
45663
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
45606
45664
  return self;
@@ -45727,6 +45785,7 @@ function _wrap_native_super(Class) {
45727
45785
 
45728
45786
 
45729
45787
 
45788
+
45730
45789
  var ns = 'addnewline';
45731
45790
  /**
45732
45791
  * Create helper for adding new paragraph(Jodit.defaultOptions.enter tag) before iframe, table or image
@@ -45737,7 +45796,7 @@ var ns = 'addnewline';
45737
45796
  _class_call_check(this, addNewLine);
45738
45797
  var _this;
45739
45798
  _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>"));
45799
+ _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
45800
  _this.__isMatchedTag = function(node) {
45742
45801
  return Boolean(node && _this.j.o.addNewLineTagsTriggers.includes(node.nodeName.toLowerCase()));
45743
45802
  };
@@ -45751,26 +45810,26 @@ var ns = 'addnewline';
45751
45810
  _this.__isShown = false;
45752
45811
  _this.j.async.clearTimeout(_this.__timeout);
45753
45812
  _this.__lineInFocus = false;
45754
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(_this.__line);
45813
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(_this.__line);
45755
45814
  _this.__line.style.setProperty('--jd-anl-handle-offset', '0');
45756
45815
  };
45757
45816
  _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);
45817
+ return elm != null && _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock(elm) && !/^(img|table|iframe|hr)$/i.test(elm.nodeName);
45759
45818
  };
45760
45819
  _this.__onClickLine = function(e) {
45761
45820
  var editor = _this.j;
45762
45821
  var p = editor.createInside.element(editor.o.enter);
45763
45822
  if (_this.__isBeforeContent && _this.__current && _this.__current.parentNode) {
45764
45823
  if (_this.__current === editor.editor) {
45765
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.prepend(editor.editor, p);
45824
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
45766
45825
  } else {
45767
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.before(_this.__current, p);
45826
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.before(_this.__current, p);
45768
45827
  }
45769
45828
  } else {
45770
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(editor.editor, p);
45829
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
45771
45830
  }
45772
45831
  editor.s.setCursorIn(p);
45773
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
45832
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
45774
45833
  editor.synchronizeValues();
45775
45834
  _this.__hideForce();
45776
45835
  e.preventDefault();
@@ -45789,8 +45848,8 @@ var ns = 'addnewline';
45789
45848
  return;
45790
45849
  }
45791
45850
  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);
45851
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(this.j.container, this.__line);
45852
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'width', this.j.container.clientWidth);
45794
45853
  }
45795
45854
  },
45796
45855
  {
@@ -45842,18 +45901,48 @@ var ns = 'addnewline';
45842
45901
  ], '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
45902
  }
45844
45903
  },
45904
+ {
45905
+ /**
45906
+ * A paragraph holding only an embed has no place for the caret, so the
45907
+ * arrow keys can't get past one that ends the content, or before one that
45908
+ * starts it. When an arrow key leaves the caret where it was and there is
45909
+ * content beyond it, a new line goes there, as when the line is clicked.
45910
+ */ key: "onArrowKey",
45911
+ value: function onArrowKey(e) {
45912
+ var editor = this.j;
45913
+ var forward = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT;
45914
+ 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()) {
45915
+ return;
45916
+ }
45917
+ var _editor_s_range = editor.s.range, startContainer = _editor_s_range.startContainer, startOffset = _editor_s_range.startOffset;
45918
+ // Once the browser has moved the caret, if it could. With a 0 timeout
45919
+ // Jodit would run this at once, before the browser moves it
45920
+ editor.async.setTimeout(function() {
45921
+ var range = editor.s.range;
45922
+ var block = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(startContainer, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
45923
+ 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)) {
45924
+ return;
45925
+ }
45926
+ var p = editor.createInside.element(editor.o.enter);
45927
+ 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);
45928
+ editor.s.setCursorIn(p);
45929
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.scrollIntoViewIfNeeded)(p, editor.editor, editor.ed);
45930
+ editor.synchronizeValues();
45931
+ }, 1);
45932
+ }
45933
+ },
45845
45934
  {
45846
45935
  key: "onDblClickEditor",
45847
45936
  value: function onDblClickEditor(e) {
45848
45937
  var editor = this.j;
45849
45938
  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);
45939
+ var editorBound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.offset)(editor.editor, editor, editor.ed);
45851
45940
  var top = e.pageY - editor.ew.scrollX;
45852
45941
  var p = editor.createInside.element(editor.o.enter);
45853
45942
  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);
45943
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.prepend(editor.editor, p);
45855
45944
  } else {
45856
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.append(editor.editor, p);
45945
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.append(editor.editor, p);
45857
45946
  }
45858
45947
  editor.s.setCursorIn(p);
45859
45948
  editor.synchronizeValues();
@@ -45870,27 +45959,27 @@ var ns = 'addnewline';
45870
45959
  // Inside Shadow DOM `document.elementFromPoint` returns the shadow
45871
45960
  // host, so the lookup must start from the shadow root
45872
45961
  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)) {
45962
+ if (!_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isHTMLElement(currentElement) || !_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isOrContains(editor.editor, currentElement)) {
45874
45963
  return;
45875
45964
  }
45876
45965
  if (editor.editor !== currentElement && !this.__isMatchedTag(currentElement)) {
45877
- currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
45966
+ currentElement = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.closest(currentElement, this.__isMatchedTag, editor.editor);
45878
45967
  }
45879
45968
  if (!currentElement) {
45880
45969
  this.__hide();
45881
45970
  return;
45882
45971
  }
45883
45972
  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);
45973
+ var parentBox = _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.up(currentElement, _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isBlock, editor.editor);
45885
45974
  if (parentBox && parentBox !== editor.editor) {
45886
45975
  currentElement = parentBox;
45887
45976
  }
45888
45977
  }
45889
- var pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.position)(currentElement, this.j);
45978
+ var pos = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(currentElement, this.j);
45890
45979
  var top = false;
45891
45980
  var clientY = e.clientY, clientX = e.clientX;
45892
45981
  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;
45982
+ 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
45983
  clientY += top1;
45895
45984
  clientX += left;
45896
45985
  }
@@ -45903,8 +45992,8 @@ var ns = 'addnewline';
45903
45992
  this.__isBeforeContent = false;
45904
45993
  }
45905
45994
  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);
45995
+ 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))) {
45996
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.__line, 'top', top);
45908
45997
  this.__current = currentElement;
45909
45998
  this.__show();
45910
45999
  this.__line.style.setProperty('--jd-anl-handle-offset', clientX - pos.left - 10 + 'px');
@@ -45919,7 +46008,7 @@ var ns = 'addnewline';
45919
46008
  value: function beforeDestruct() {
45920
46009
  this.j.async.clearTimeout(this.__timeout);
45921
46010
  this.j.e.off(this.__line).off('changePlace', this.__addEventListeners);
45922
- _modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Dom.safeRemove(this.__line);
46011
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.__line);
45923
46012
  this.j.e.off([
45924
46013
  this.j.ow,
45925
46014
  this.j.ew,
@@ -45929,22 +46018,25 @@ var ns = 'addnewline';
45929
46018
  }
45930
46019
  ]);
45931
46020
  return addNewLine;
45932
- }(_wrap_native_super(_modules_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
46021
+ }(_wrap_native_super(_modules_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin));
45933
46022
  __decorate([
45934
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':lock')
46023
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':lock')
45935
46024
  ], addNewLine.prototype, "onLock", null);
45936
46025
  __decorate([
45937
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
46026
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
45938
46027
  ], addNewLine.prototype, "__hide", null);
45939
46028
  __decorate([
45940
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':dblclick')
46029
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':keydown')
46030
+ ], addNewLine.prototype, "onArrowKey", null);
46031
+ __decorate([
46032
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.watch)(':dblclick')
45941
46033
  ], addNewLine.prototype, "onDblClickEditor", null);
45942
46034
  __decorate([
45943
- (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.throttle)(function(ctx) {
46035
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.throttle)(function(ctx) {
45944
46036
  return ctx.defaultTimeout;
45945
46037
  })
45946
46038
  ], addNewLine.prototype, "__onMouseMove", null);
45947
- _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('addNewLine', addNewLine);
46039
+ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('addNewLine', addNewLine);
45948
46040
 
45949
46041
 
45950
46042
  /***/ }),
@@ -47066,6 +47158,7 @@ UiAiAssistant = __decorate([
47066
47158
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32496);
47067
47159
  /* harmony import */ var _cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11338);
47068
47160
  /* harmony import */ var _cases_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14630);
47161
+ /* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63785);
47069
47162
  function _array_like_to_array(arr, len) {
47070
47163
  if (len == null || len > arr.length) len = arr.length;
47071
47164
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -47235,6 +47328,7 @@ function _wrap_native_super(Class) {
47235
47328
 
47236
47329
 
47237
47330
 
47331
+
47238
47332
  var backspace = /*#__PURE__*/ function(Plugin) {
47239
47333
  "use strict";
47240
47334
  _inherits(backspace, Plugin);
@@ -47342,6 +47436,7 @@ var backspace = /*#__PURE__*/ function(Plugin) {
47342
47436
  throw e;
47343
47437
  } finally{
47344
47438
  jodit.e.fire('backSpaceAfterDelete', backspace, fakeNode);
47439
+ this.moveCaretToTextBefore(fakeNode);
47345
47440
  this.safeRemoveEmptyNode(fakeNode);
47346
47441
  }
47347
47442
  return false;
@@ -47349,15 +47444,51 @@ var backspace = /*#__PURE__*/ function(Plugin) {
47349
47444
  },
47350
47445
  {
47351
47446
  /**
47447
+ * The browser types at the end of the text before the caret on its line,
47448
+ * in that text's formatting, but not inside a link. Moving the caret there
47449
+ * too makes a paste and the toolbar agree with what's typed:
47450
+ * `<p>one</p><p><b>|two</b></p>` joins to `<p>one|<b>two</b></p>`
47451
+ */ key: "moveCaretToTextBefore",
47452
+ value: function moveCaretToTextBefore(fakeNode) {
47453
+ var _a, _b;
47454
+ var jodit = this.jodit;
47455
+ var range = jodit.s.range;
47456
+ // A case may have merged the fake node away (#1722)
47457
+ if (!fakeNode.parentNode) {
47458
+ return;
47459
+ }
47460
+ var around = jodit.ed.createRange();
47461
+ around.selectNode(fakeNode);
47462
+ if (!range.collapsed || !around.isPointInRange(range.startContainer, range.startOffset)) {
47463
+ return;
47464
+ }
47465
+ var text = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_9__.findMostNestedNeighbor)(fakeNode, false, jodit.editor, true);
47466
+ var link = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(text, 'a', jodit.editor);
47467
+ 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)) {
47468
+ return;
47469
+ }
47470
+ range.setStart(text, (_b = (_a = text.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
47471
+ range.collapse(true);
47472
+ jodit.s.selectRange(range);
47473
+ }
47474
+ },
47475
+ {
47476
+ /**
47352
47477
  * Remove node and replace cursor position out of it
47353
47478
  */ key: "safeRemoveEmptyNode",
47354
47479
  value: function safeRemoveEmptyNode(fakeNode) {
47355
- var _a, _b;
47480
+ var _a, _b, _c;
47356
47481
  var range = this.j.s.range;
47482
+ // wrap-nodes normalizes the line it wraps, which can merge the text
47483
+ // after the fake node into it: remove only the fake node's own space
47484
+ 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))) {
47485
+ fakeNode.deleteData(0, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE.length);
47486
+ return;
47487
+ }
47357
47488
  if (range.startContainer === fakeNode) {
47358
47489
  if (fakeNode.previousSibling) {
47359
47490
  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);
47491
+ range.setStart(fakeNode.previousSibling, (_c = (_b = fakeNode.previousSibling.nodeValue) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
47361
47492
  } else {
47362
47493
  range.setStartAfter(fakeNode.previousSibling);
47363
47494
  }
@@ -47425,6 +47556,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47425
47556
  return false;
47426
47557
  }
47427
47558
  var sibling = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(mainClosestBox, backspace);
47559
+ if (moveInlinesInside(jodit, fakeNode, sibling)) {
47560
+ return joinNeighbors(jodit, fakeNode, backspace, moved);
47561
+ }
47428
47562
  // A line break before the cursor is a single unit: remove it instead of
47429
47563
  // merging the current element into the (void) `<br>`, which used to move
47430
47564
  // the whole element's content into the `<br>` and delete it (#1282).
@@ -47439,6 +47573,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47439
47573
  jodit.s.setCursorBefore(fakeNode);
47440
47574
  return true;
47441
47575
  }
47576
+ // A non-editable sibling is removed by remove-not-editable, never joined
47577
+ 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)) {
47578
+ return false;
47579
+ }
47442
47580
  var box = findCaretBox(fakeNode, mainClosestBox);
47443
47581
  // One pass only: the line now sits beside the next one, so the
47444
47582
  // cases below join them. The DOM has changed either way
@@ -47467,6 +47605,83 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47467
47605
  }
47468
47606
  return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isLeaf(block) && block.parentElement ? block.parentElement : block;
47469
47607
  }
47608
+ /**
47609
+ * With an inline element round the caret's line or the one it joins moved
47610
+ * inside its blocks, the cases join the lines as they join any two, and its
47611
+ * styles stay with its text. One round both lines is left as it is.
47612
+ */ function moveInlinesInside(jodit, fakeNode, sibling) {
47613
+ if (!sibling) {
47614
+ return false;
47615
+ }
47616
+ var around = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(fakeNode, function(node) {
47617
+ 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);
47618
+ }, jodit.editor);
47619
+ return moveInlineInside(around, jodit.editor) || moveInlineInside(sibling, jodit.editor);
47620
+ }
47621
+ /**
47622
+ * Old content can have an inline element round blocks. This moves it inside
47623
+ * them, and gives the text, images and line breaks beside them a copy of
47624
+ * their own: `<span style="…"><p>one</p><br><p>two</p></span>` becomes
47625
+ * `<p><span style="…">one</span></p><span style="…"><br></span><p><span style="…">two</span></p>`
47626
+ */ function moveInlineInside(node, root) {
47627
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node)) {
47628
+ return false;
47629
+ }
47630
+ // Embedded content, such as the `<iframe>` in a video's wrapper, counts
47631
+ // as a block in `Dom.isBlock`, but stays with the text beside it
47632
+ var isBlock = function isBlock(child) {
47633
+ 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);
47634
+ };
47635
+ // The inner one first: `<span><strong><p>one</p></strong></span>`
47636
+ Array.from(node.childNodes).forEach(function(child) {
47637
+ return moveInlineInside(child, root);
47638
+ });
47639
+ var children = Array.from(node.childNodes);
47640
+ if (!children.some(isBlock)) {
47641
+ return false;
47642
+ }
47643
+ var run = null;
47644
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
47645
+ try {
47646
+ for(var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
47647
+ var child = _step.value;
47648
+ if (!isBlock(child)) {
47649
+ // Blank text between blocks stays where it is
47650
+ if (!run && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmptyTextNode(child)) {
47651
+ run = node.cloneNode(false);
47652
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(child, run);
47653
+ }
47654
+ run && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(run, child);
47655
+ continue;
47656
+ }
47657
+ run = null;
47658
+ // Nothing goes inside a rule or a non-editable block
47659
+ 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)) {
47660
+ continue;
47661
+ }
47662
+ var inner = node.cloneNode(false);
47663
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.moveContent(child, inner);
47664
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(child, inner);
47665
+ // A list or a table: on down to its items or cells
47666
+ moveInlineInside(inner, root);
47667
+ }
47668
+ } catch (err) {
47669
+ _didIteratorError = true;
47670
+ _iteratorError = err;
47671
+ } finally{
47672
+ try {
47673
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
47674
+ _iterator.return();
47675
+ }
47676
+ } finally{
47677
+ if (_didIteratorError) {
47678
+ throw _iteratorError;
47679
+ }
47680
+ }
47681
+ }
47682
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(node);
47683
+ return true;
47684
+ }
47470
47685
  /**
47471
47686
  * The innermost block on the sibling's edge facing the caret, so the
47472
47687
  * content is joined to text: `<div><p>one</p></div><p>|two</p>` gives
@@ -47827,7 +48042,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
47827
48042
  while(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling)){
47828
48043
  sibling = backspace ? sibling === null || sibling === void 0 ? void 0 : sibling.lastChild : sibling === null || sibling === void 0 ? void 0 : sibling.firstChild;
47829
48044
  }
47830
- if (!sibling) {
48045
+ // A block inside an inline element, such as the `<p>` in
48046
+ // `<span><p>…</p></span>`, isn't a char: the join cases handle it
48047
+ if (!sibling || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling)) {
47831
48048
  break;
47832
48049
  }
47833
48050
  if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
@@ -47975,6 +48192,7 @@ function isSpace(char) {
47975
48192
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
47976
48193
  /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
47977
48194
  /* harmony import */ var _core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45124);
48195
+ /* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62845);
47978
48196
  /*!
47979
48197
  * Jodit Editor (https://xdsoft.net/jodit/)
47980
48198
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -47982,23 +48200,48 @@ function isSpace(char) {
47982
48200
  */
47983
48201
 
47984
48202
 
48203
+
47985
48204
  /**
47986
- * Checks if a non-editable element can be deleted
48205
+ * Checks if a non-editable element can be deleted. A non-editable block goes
48206
+ * whole, and the lines either side of it then join, as the spec's tests do:
48207
+ * `<ul><li>one|</li></ul><div contenteditable="false">x</div><p>two</p>`
48208
+ * gives `<ul><li>one|two</li></ul>`
47987
48209
  * @private
47988
48210
  */ 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);
48211
+ var node = fakeNode;
48212
+ var neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
48213
+ // Past the edges of the blocks the caret is at, but not into a table cell
48214
+ while(!neighbor && node.parentElement && node.parentElement !== jodit.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isCell(node.parentElement)){
48215
+ node = node.parentElement;
48216
+ neighbor = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findSibling(node, backspace);
48217
+ // At the start of a list item, Backspace takes the bullet off first,
48218
+ // unless the item before it is a non-editable one to remove
48219
+ 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))) {
48220
+ return false;
48221
+ }
48222
+ }
48223
+ if (isNotEditable(jodit, neighbor)) {
48224
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(neighbor)) {
48225
+ // Backspace after a removed list item leaves the items apart: the
48226
+ // next press takes the bullet off, as for any later item
48227
+ var joinLines = !(backspace && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isLeaf(neighbor));
48228
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
48229
+ if (joinLines) {
48230
+ (0,_check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_3__.checkJoinNeighbors)(jodit, fakeNode, backspace);
48231
+ }
48232
+ } else {
48233
+ (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);
48234
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(neighbor);
48235
+ (0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.moveNodeInsideStart)(jodit, fakeNode, backspace);
48236
+ }
48237
+ ;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.call)(backspace ? jodit.s.setCursorBefore : jodit.s.setCursorAfter, fakeNode);
47998
48238
  return true;
47999
48239
  }
48000
48240
  return false;
48001
48241
  }
48242
+ function isNotEditable(jodit, node) {
48243
+ 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);
48244
+ }
48002
48245
 
48003
48246
 
48004
48247
  /***/ }),
@@ -78934,12 +79177,13 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.wrapNodes = {
78934
79177
  /***/ 72253:
78935
79178
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
78936
79179
 
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);
79180
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
79181
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
79182
+ /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
79183
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(580);
79184
+ /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70799);
79185
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50911);
79186
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96967);
78943
79187
  function _assert_this_initialized(self) {
78944
79188
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
78945
79189
  return self;
@@ -79066,6 +79310,7 @@ function _wrap_native_super(Class) {
79066
79310
 
79067
79311
 
79068
79312
 
79313
+
79069
79314
  /**
79070
79315
  * Wrap single text nodes in block wrapper
79071
79316
  */ var wrapNodes = /*#__PURE__*/ function(Plugin) {
@@ -79079,17 +79324,17 @@ function _wrap_native_super(Class) {
79079
79324
  * Found Node which should be wrapped
79080
79325
  */ _this.isSuitableStart = function(n) {
79081
79326
  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);
79327
+ 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
79328
  };
79084
79329
  /**
79085
79330
  * Node should add in a block element
79086
79331
  */ _this.isSuitable = function(n) {
79087
- return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(n) || _this.isNotWrapped(n);
79332
+ return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(n) || _this.isNotWrapped(n);
79088
79333
  };
79089
79334
  /**
79090
79335
  * Some element which needs to append in block
79091
79336
  */ _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));
79337
+ 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
79338
  };
79094
79339
  return _this;
79095
79340
  }
@@ -79130,10 +79375,11 @@ function _wrap_native_super(Class) {
79130
79375
  }
79131
79376
  isChanged = true;
79132
79377
  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)){
79378
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.before(child, box);
79379
+ // `exclude` keeps a <br> from starting a box, but one between loose lines stays with them
79380
+ while(child && (this.isSuitable(child) || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(child, 'br'))){
79135
79381
  var next = child.nextSibling;
79136
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, child);
79382
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, child);
79137
79383
  child = next;
79138
79384
  }
79139
79385
  box.normalize();
@@ -79160,8 +79406,8 @@ function _wrap_native_super(Class) {
79160
79406
  }
79161
79407
  var box = jodit.createInside.element(jodit.o.enter);
79162
79408
  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);
79409
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(box, br);
79410
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(jodit.editor, box);
79165
79411
  if (jodit.s.isFocused() || jodit.e.current === 'backSpaceAfterDelete') {
79166
79412
  jodit.s.setCursorBefore(br);
79167
79413
  }
@@ -79170,23 +79416,51 @@ function _wrap_native_super(Class) {
79170
79416
  }
79171
79417
  ]);
79172
79418
  return wrapNodes;
79173
- }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin));
79419
+ }(_wrap_native_super(_core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plugin));
79174
79420
  __decorate([
79175
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
79421
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
79176
79422
  ], wrapNodes.prototype, "postProcessSetEditorValue", null);
79177
79423
  __decorate([
79178
- _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.autobind
79424
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
79179
79425
  ], wrapNodes.prototype, "preprocessInput", null);
79426
+ /**
79427
+ * A block can't go in a paragraph, so neither can an element that holds one,
79428
+ * such as a `<span>` round a `<p>`. Embedded content such as an `<iframe>` can.
79429
+ */ function holdsBlock(elm) {
79430
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
79431
+ try {
79432
+ for(var _iterator = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.eachGen(elm)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
79433
+ var node = _step.value;
79434
+ 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)) {
79435
+ return true;
79436
+ }
79437
+ }
79438
+ } catch (err) {
79439
+ _didIteratorError = true;
79440
+ _iteratorError = err;
79441
+ } finally{
79442
+ try {
79443
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
79444
+ _iterator.return();
79445
+ }
79446
+ } finally{
79447
+ if (_didIteratorError) {
79448
+ throw _iteratorError;
79449
+ }
79450
+ }
79451
+ }
79452
+ return false;
79453
+ }
79180
79454
  function checkAloneListLeaf(child, jodit) {
79181
79455
  var result = child;
79182
79456
  var next = child;
79183
79457
  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);
79458
+ 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)) {
79459
+ var nextChild = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(next, false);
79460
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(result, 'ul')) {
79461
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(result, next);
79188
79462
  } else {
79189
- result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.wrap(next, 'ul', jodit.createInside);
79463
+ result = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.wrap(next, 'ul', jodit.createInside);
79190
79464
  }
79191
79465
  next = nextChild;
79192
79466
  } else {
@@ -79195,7 +79469,7 @@ function checkAloneListLeaf(child, jodit) {
79195
79469
  }while (next);
79196
79470
  return result;
79197
79471
  }
79198
- _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('wrapNodes', wrapNodes);
79472
+ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('wrapNodes', wrapNodes);
79199
79473
 
79200
79474
 
79201
79475
  /***/ }),