jodit-pro 4.18.2 → 4.18.6

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 (380) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +2 -0
  3. package/config.js +1 -0
  4. package/es2015/jodit.css +1 -1
  5. package/es2015/jodit.fat.min.css +1 -1
  6. package/es2015/jodit.fat.min.js +30 -18
  7. package/es2015/jodit.js +465 -131
  8. package/es2015/jodit.min.js +11 -11
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  10. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  11. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  12. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  13. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  14. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  15. package/es2015/plugins/backup/backup.css +1 -1
  16. package/es2015/plugins/backup/backup.js +1 -1
  17. package/es2015/plugins/backup/backup.min.js +1 -1
  18. package/es2015/plugins/button-generator/button-generator.css +1 -1
  19. package/es2015/plugins/button-generator/button-generator.js +1 -1
  20. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  21. package/es2015/plugins/change-case/change-case.js +1 -1
  22. package/es2015/plugins/change-case/change-case.min.js +1 -1
  23. package/es2015/plugins/chart/chart.css +173 -0
  24. package/es2015/plugins/chart/chart.js +1479 -0
  25. package/es2015/plugins/chart/chart.min.css +1 -0
  26. package/es2015/plugins/chart/chart.min.js +20 -0
  27. package/es2015/plugins/color-picker/color-picker.css +1 -1
  28. package/es2015/plugins/color-picker/color-picker.js +1 -1
  29. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  30. package/es2015/plugins/emoji/emoji.css +1 -1
  31. package/es2015/plugins/emoji/emoji.js +1 -1
  32. package/es2015/plugins/emoji/emoji.min.js +1 -1
  33. package/es2015/plugins/export-docs/export-docs.js +1 -1
  34. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  35. package/es2015/plugins/finder/finder.css +1 -1
  36. package/es2015/plugins/finder/finder.js +1 -1
  37. package/es2015/plugins/finder/finder.min.js +1 -1
  38. package/es2015/plugins/google-maps/google-maps.css +1 -1
  39. package/es2015/plugins/google-maps/google-maps.js +1 -1
  40. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  41. package/es2015/plugins/google-search/google-search.js +1 -1
  42. package/es2015/plugins/google-search/google-search.min.js +1 -1
  43. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  44. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  45. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  46. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  47. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  48. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  49. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  50. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  51. package/es2015/plugins/keyboard/keyboard.css +1 -1
  52. package/es2015/plugins/keyboard/keyboard.js +1 -1
  53. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  54. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  55. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  56. package/es2015/plugins/page-break/page-break.js +1 -1
  57. package/es2015/plugins/page-break/page-break.min.js +1 -1
  58. package/es2015/plugins/paste-code/paste-code.css +1 -1
  59. package/es2015/plugins/paste-code/paste-code.js +1 -1
  60. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  61. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  62. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  63. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  64. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  65. package/es2015/plugins/style/style.css +1 -1
  66. package/es2015/plugins/style/style.js +1 -1
  67. package/es2015/plugins/style/style.min.js +1 -1
  68. package/es2015/plugins/templates/templates.css +1 -1
  69. package/es2015/plugins/templates/templates.js +1 -1
  70. package/es2015/plugins/templates/templates.min.js +1 -1
  71. package/es2015/plugins/todo-list/todo-list.css +1 -1
  72. package/es2015/plugins/todo-list/todo-list.js +1 -1
  73. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  74. package/es2015/plugins/translate/translate.css +1 -1
  75. package/es2015/plugins/translate/translate.js +1 -1
  76. package/es2015/plugins/translate/translate.min.js +1 -1
  77. package/es2015/plugins/tune-block/tune-block.css +1 -1
  78. package/es2015/plugins/tune-block/tune-block.js +2 -1
  79. package/es2015/plugins/tune-block/tune-block.min.js +2 -2
  80. package/es2018/jodit.fat.min.css +1 -1
  81. package/es2018/jodit.fat.min.js +75 -63
  82. package/es2018/jodit.min.js +9 -9
  83. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  84. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  85. package/es2018/plugins/backup/backup.min.js +1 -1
  86. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  87. package/es2018/plugins/change-case/change-case.min.js +1 -1
  88. package/es2018/plugins/chart/chart.min.css +1 -0
  89. package/es2018/plugins/chart/chart.min.js +20 -0
  90. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  91. package/es2018/plugins/emoji/emoji.min.js +1 -1
  92. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  93. package/es2018/plugins/finder/finder.min.js +1 -1
  94. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  95. package/es2018/plugins/google-search/google-search.min.js +1 -1
  96. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  97. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  98. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  99. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  100. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  101. package/es2018/plugins/page-break/page-break.min.js +1 -1
  102. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  103. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  104. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  105. package/es2018/plugins/style/style.min.js +1 -1
  106. package/es2018/plugins/templates/templates.min.js +1 -1
  107. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  108. package/es2018/plugins/translate/translate.min.js +1 -1
  109. package/es2018/plugins/tune-block/tune-block.min.js +2 -2
  110. package/es2021/jodit.css +1 -1
  111. package/es2021/jodit.fat.min.css +1 -1
  112. package/es2021/jodit.fat.min.js +32 -20
  113. package/es2021/jodit.js +417 -131
  114. package/es2021/jodit.min.js +16 -16
  115. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  116. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  117. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  118. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  119. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  120. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  121. package/es2021/plugins/backup/backup.css +1 -1
  122. package/es2021/plugins/backup/backup.js +1 -1
  123. package/es2021/plugins/backup/backup.min.js +1 -1
  124. package/es2021/plugins/button-generator/button-generator.css +1 -1
  125. package/es2021/plugins/button-generator/button-generator.js +1 -1
  126. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  127. package/es2021/plugins/change-case/change-case.js +1 -1
  128. package/es2021/plugins/change-case/change-case.min.js +1 -1
  129. package/es2021/plugins/chart/chart.css +173 -0
  130. package/es2021/plugins/chart/chart.js +1424 -0
  131. package/es2021/plugins/chart/chart.min.css +1 -0
  132. package/es2021/plugins/chart/chart.min.js +20 -0
  133. package/es2021/plugins/color-picker/color-picker.css +1 -1
  134. package/es2021/plugins/color-picker/color-picker.js +1 -1
  135. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  136. package/es2021/plugins/emoji/emoji.css +1 -1
  137. package/es2021/plugins/emoji/emoji.js +1 -1
  138. package/es2021/plugins/emoji/emoji.min.js +1 -1
  139. package/es2021/plugins/export-docs/export-docs.js +1 -1
  140. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  141. package/es2021/plugins/finder/finder.css +1 -1
  142. package/es2021/plugins/finder/finder.js +1 -1
  143. package/es2021/plugins/finder/finder.min.js +1 -1
  144. package/es2021/plugins/google-maps/google-maps.css +1 -1
  145. package/es2021/plugins/google-maps/google-maps.js +1 -1
  146. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  147. package/es2021/plugins/google-search/google-search.js +1 -1
  148. package/es2021/plugins/google-search/google-search.min.js +1 -1
  149. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  150. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  151. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  152. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  153. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  154. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  155. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  156. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  157. package/es2021/plugins/keyboard/keyboard.css +1 -1
  158. package/es2021/plugins/keyboard/keyboard.js +1 -1
  159. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  160. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  161. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  162. package/es2021/plugins/page-break/page-break.js +1 -1
  163. package/es2021/plugins/page-break/page-break.min.js +1 -1
  164. package/es2021/plugins/paste-code/paste-code.css +1 -1
  165. package/es2021/plugins/paste-code/paste-code.js +1 -1
  166. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  167. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  168. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  169. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  170. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  171. package/es2021/plugins/style/style.css +1 -1
  172. package/es2021/plugins/style/style.js +1 -1
  173. package/es2021/plugins/style/style.min.js +1 -1
  174. package/es2021/plugins/templates/templates.css +1 -1
  175. package/es2021/plugins/templates/templates.js +1 -1
  176. package/es2021/plugins/templates/templates.min.js +1 -1
  177. package/es2021/plugins/todo-list/todo-list.css +1 -1
  178. package/es2021/plugins/todo-list/todo-list.js +1 -1
  179. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  180. package/es2021/plugins/translate/translate.css +1 -1
  181. package/es2021/plugins/translate/translate.js +1 -1
  182. package/es2021/plugins/translate/translate.min.js +1 -1
  183. package/es2021/plugins/tune-block/tune-block.css +1 -1
  184. package/es2021/plugins/tune-block/tune-block.js +2 -1
  185. package/es2021/plugins/tune-block/tune-block.min.js +2 -2
  186. package/es2021.en/jodit.css +1 -1
  187. package/es2021.en/jodit.fat.min.css +1 -1
  188. package/es2021.en/jodit.fat.min.js +32 -20
  189. package/es2021.en/jodit.js +417 -131
  190. package/es2021.en/jodit.min.js +16 -16
  191. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  192. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  193. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  194. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  195. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  196. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  197. package/es2021.en/plugins/backup/backup.css +1 -1
  198. package/es2021.en/plugins/backup/backup.js +1 -1
  199. package/es2021.en/plugins/backup/backup.min.js +1 -1
  200. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  201. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  202. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  203. package/es2021.en/plugins/change-case/change-case.js +1 -1
  204. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  205. package/es2021.en/plugins/chart/chart.css +173 -0
  206. package/es2021.en/plugins/chart/chart.js +1424 -0
  207. package/es2021.en/plugins/chart/chart.min.css +1 -0
  208. package/es2021.en/plugins/chart/chart.min.js +20 -0
  209. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  210. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  211. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  212. package/es2021.en/plugins/emoji/emoji.css +1 -1
  213. package/es2021.en/plugins/emoji/emoji.js +1 -1
  214. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  215. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  216. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  217. package/es2021.en/plugins/finder/finder.css +1 -1
  218. package/es2021.en/plugins/finder/finder.js +1 -1
  219. package/es2021.en/plugins/finder/finder.min.js +1 -1
  220. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  221. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  222. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  223. package/es2021.en/plugins/google-search/google-search.js +1 -1
  224. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  225. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  226. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  227. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  228. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  229. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  230. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  231. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  232. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  233. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  234. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  235. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  236. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  237. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  238. package/es2021.en/plugins/page-break/page-break.js +1 -1
  239. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  240. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  241. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  242. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  243. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  244. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  245. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  246. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  247. package/es2021.en/plugins/style/style.css +1 -1
  248. package/es2021.en/plugins/style/style.js +1 -1
  249. package/es2021.en/plugins/style/style.min.js +1 -1
  250. package/es2021.en/plugins/templates/templates.css +1 -1
  251. package/es2021.en/plugins/templates/templates.js +1 -1
  252. package/es2021.en/plugins/templates/templates.min.js +1 -1
  253. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  254. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  255. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  256. package/es2021.en/plugins/translate/translate.css +1 -1
  257. package/es2021.en/plugins/translate/translate.js +1 -1
  258. package/es2021.en/plugins/translate/translate.min.js +1 -1
  259. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  260. package/es2021.en/plugins/tune-block/tune-block.js +2 -1
  261. package/es2021.en/plugins/tune-block/tune-block.min.js +2 -2
  262. package/es5/jodit.css +2 -2
  263. package/es5/jodit.fat.min.css +1 -1
  264. package/es5/jodit.fat.min.js +2 -2
  265. package/es5/jodit.js +529 -135
  266. package/es5/jodit.min.css +2 -2
  267. package/es5/jodit.min.js +2 -2
  268. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  269. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  270. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  271. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  272. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  273. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  274. package/es5/plugins/backup/backup.css +1 -1
  275. package/es5/plugins/backup/backup.js +1 -1
  276. package/es5/plugins/backup/backup.min.js +1 -1
  277. package/es5/plugins/button-generator/button-generator.css +1 -1
  278. package/es5/plugins/button-generator/button-generator.js +1 -1
  279. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  280. package/es5/plugins/change-case/change-case.js +1 -1
  281. package/es5/plugins/change-case/change-case.min.js +1 -1
  282. package/es5/plugins/chart/chart.css +173 -0
  283. package/es5/plugins/chart/chart.js +1661 -0
  284. package/es5/plugins/chart/chart.min.css +1 -0
  285. package/es5/plugins/chart/chart.min.js +8 -0
  286. package/es5/plugins/color-picker/color-picker.css +1 -1
  287. package/es5/plugins/color-picker/color-picker.js +1 -1
  288. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  289. package/es5/plugins/emoji/emoji.css +1 -1
  290. package/es5/plugins/emoji/emoji.js +1 -1
  291. package/es5/plugins/emoji/emoji.min.js +1 -1
  292. package/es5/plugins/export-docs/export-docs.js +1 -1
  293. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  294. package/es5/plugins/finder/finder.css +1 -1
  295. package/es5/plugins/finder/finder.js +1 -1
  296. package/es5/plugins/finder/finder.min.js +1 -1
  297. package/es5/plugins/google-maps/google-maps.css +1 -1
  298. package/es5/plugins/google-maps/google-maps.js +1 -1
  299. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  300. package/es5/plugins/google-search/google-search.js +1 -1
  301. package/es5/plugins/google-search/google-search.min.js +1 -1
  302. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  303. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  304. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  305. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  306. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  307. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  308. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  309. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  310. package/es5/plugins/keyboard/keyboard.css +1 -1
  311. package/es5/plugins/keyboard/keyboard.js +1 -1
  312. package/es5/plugins/keyboard/keyboard.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 +2 -1
  338. package/es5/plugins/tune-block/tune-block.min.js +2 -2
  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/esm/config.d.ts +27 -1
  343. package/esm/plugins/all.js +1 -1
  344. package/esm/plugins/chart/assets/chart.svg.js +1 -0
  345. package/esm/plugins/chart/chart.d.ts +56 -0
  346. package/esm/plugins/chart/chart.js +1 -0
  347. package/esm/plugins/chart/config.d.ts +33 -0
  348. package/esm/plugins/chart/config.js +1 -0
  349. package/esm/plugins/chart/helpers.d.ts +22 -0
  350. package/esm/plugins/chart/helpers.js +1 -0
  351. package/esm/plugins/chart/interface.d.ts +34 -0
  352. package/esm/plugins/chart/interface.js +0 -0
  353. package/esm/plugins/chart/render/bar.d.ts +8 -0
  354. package/esm/plugins/chart/render/bar.js +1 -0
  355. package/esm/plugins/chart/render/common.d.ts +40 -0
  356. package/esm/plugins/chart/render/common.js +1 -0
  357. package/esm/plugins/chart/render/index.d.ts +7 -0
  358. package/esm/plugins/chart/render/index.js +1 -0
  359. package/esm/plugins/chart/render/line.d.ts +7 -0
  360. package/esm/plugins/chart/render/line.js +1 -0
  361. package/esm/plugins/chart/render/pie.d.ts +7 -0
  362. package/esm/plugins/chart/render/pie.js +1 -0
  363. package/esm/plugins/chart/render/radar.d.ts +7 -0
  364. package/esm/plugins/chart/render/radar.js +1 -0
  365. package/esm/plugins/chart/ui/editor/editor.d.ts +52 -0
  366. package/esm/plugins/chart/ui/editor/editor.js +13 -0
  367. package/esm/plugins/tune-block/config.js +1 -1
  368. package/package.json +1 -1
  369. package/types/config.d.ts +27 -1
  370. package/types/plugins/chart/chart.d.ts +56 -0
  371. package/types/plugins/chart/config.d.ts +33 -0
  372. package/types/plugins/chart/helpers.d.ts +22 -0
  373. package/types/plugins/chart/interface.d.ts +34 -0
  374. package/types/plugins/chart/render/bar.d.ts +8 -0
  375. package/types/plugins/chart/render/common.d.ts +40 -0
  376. package/types/plugins/chart/render/index.d.ts +7 -0
  377. package/types/plugins/chart/render/line.d.ts +7 -0
  378. package/types/plugins/chart/render/pie.d.ts +7 -0
  379. package/types/plugins/chart/render/radar.d.ts +7 -0
  380. package/types/plugins/chart/ui/editor/editor.d.ts +52 -0
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.2
4
+ * Version: v4.18.6
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2333,7 +2333,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2333
2333
  if (n === "Map" || n === "Set") return Array.from(n);
2334
2334
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2335
2335
  }
2336
- var APP_VERSION = "4.18.2";
2336
+ var APP_VERSION = "4.18.6";
2337
2337
  // prettier-ignore
2338
2338
  var ES = "es5";
2339
2339
  var IS_ES_MODERN = false;
@@ -8237,6 +8237,8 @@ __webpack_require__.r(__webpack_exports__);
8237
8237
  /* harmony export */ options: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.options; },
8238
8238
  /* harmony export */ parseQuery: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.parseQuery; },
8239
8239
  /* harmony export */ position: function() { return /* reexport safe */ _size_index_js__WEBPACK_IMPORTED_MODULE_6__.position; },
8240
+ /* harmony export */ prepareEmbedCode: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.prepareEmbedCode; },
8241
+ /* harmony export */ prepareMedia: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.prepareMedia; },
8240
8242
  /* harmony export */ previewBox: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.previewBox; },
8241
8243
  /* harmony export */ refs: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.refs; },
8242
8244
  /* harmony export */ reset: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.reset; },
@@ -10891,13 +10893,13 @@ var getClassName = function getClassName(obj) {
10891
10893
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10892
10894
 
10893
10895
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10894
- /* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_25__.$$; },
10896
+ /* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.$$; },
10895
10897
  /* harmony export */ ConfigDeepFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigDeepFlatten; },
10896
10898
  /* harmony export */ ConfigFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigFlatten; },
10897
10899
  /* harmony export */ ConfigMerge: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigMerge; },
10898
10900
  /* harmony export */ ConfigProto: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigProto; },
10899
10901
  /* harmony export */ ConnectionError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.ConnectionError; },
10900
- /* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_27__.LimitedStack; },
10902
+ /* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_28__.LimitedStack; },
10901
10903
  /* harmony export */ OptionsError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.OptionsError; },
10902
10904
  /* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.UNSAFE_PROTO_KEYS; },
10903
10905
  /* harmony export */ abort: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.abort; },
@@ -10910,9 +10912,9 @@ var getClassName = function getClassName(obj) {
10910
10912
  /* harmony export */ attrRaw: function() { return /* reexport safe */ _attr_js__WEBPACK_IMPORTED_MODULE_3__.attrRaw; },
10911
10913
  /* harmony export */ browser: function() { return /* reexport safe */ _browser_js__WEBPACK_IMPORTED_MODULE_4__.browser; },
10912
10914
  /* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
10913
- /* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.call; },
10914
- /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.callPromise; },
10915
- /* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.callThis; },
10915
+ /* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.call; },
10916
+ /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.callPromise; },
10917
+ /* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.callThis; },
10916
10918
  /* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
10917
10919
  /* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
10918
10920
  /* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.cns; },
@@ -10922,7 +10924,7 @@ var getClassName = function getClassName(obj) {
10922
10924
  /* harmony export */ createMediaWrapper: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.createMediaWrapper; },
10923
10925
  /* harmony export */ css: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.css; },
10924
10926
  /* harmony export */ cssInline: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.cssInline; },
10925
- /* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_25__.cssPath; },
10927
+ /* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.cssPath; },
10926
10928
  /* harmony export */ ctrlKey: function() { return /* reexport safe */ _ctrl_key_js__WEBPACK_IMPORTED_MODULE_10__.ctrlKey; },
10927
10929
  /* harmony export */ dataBind: function() { return /* reexport safe */ _data_bind_js__WEBPACK_IMPORTED_MODULE_11__.dataBind; },
10928
10930
  /* harmony export */ defaultLanguage: function() { return /* reexport safe */ _default_language_js__WEBPACK_IMPORTED_MODULE_12__.defaultLanguage; },
@@ -10931,34 +10933,36 @@ var getClassName = function getClassName(obj) {
10931
10933
  /* harmony export */ get: function() { return /* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_15__.get; },
10932
10934
  /* harmony export */ getAlignClasses: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.getAlignClasses; },
10933
10935
  /* harmony export */ getClassName: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.getClassName; },
10934
- /* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.getDataTransfer; },
10936
+ /* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.getDataTransfer; },
10935
10937
  /* harmony export */ getHAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.getHAlign; },
10936
10938
  /* harmony export */ getMediaWrapper: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.getMediaWrapper; },
10937
- /* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.getPropertyDescriptor; },
10939
+ /* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.getPropertyDescriptor; },
10938
10940
  /* harmony export */ getWrappedMedia: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.getWrappedMedia; },
10939
- /* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_25__.getXPathByElement; },
10941
+ /* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.getXPathByElement; },
10940
10942
  /* harmony export */ hAlignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement; },
10941
10943
  /* harmony export */ humanSizeToBytes: function() { return /* reexport safe */ _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__.humanSizeToBytes; },
10942
- /* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_24__.inView; },
10944
+ /* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_25__.inView; },
10943
10945
  /* harmony export */ isAtom: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.isAtom; },
10944
10946
  /* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.isUnsafeProtoKey; },
10945
10947
  /* harmony export */ keepNames: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.keepNames; },
10946
- /* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.keys; },
10947
- /* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.loadImage; },
10948
+ /* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.keys; },
10949
+ /* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.loadImage; },
10948
10950
  /* harmony export */ loadNext: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNext; },
10949
10951
  /* harmony export */ loadNextStyle: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNextStyle; },
10950
10952
  /* harmony export */ markAsAtomic: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.markAsAtomic; },
10951
10953
  /* harmony export */ markDeprecated: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.markDeprecated; },
10952
- /* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.markOwner; },
10953
- /* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_28__.memorizeExec; },
10954
+ /* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.markOwner; },
10955
+ /* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_29__.memorizeExec; },
10954
10956
  /* harmony export */ options: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.options; },
10955
10957
  /* harmony export */ parseQuery: function() { return /* reexport safe */ _parse_query_js__WEBPACK_IMPORTED_MODULE_21__.parseQuery; },
10956
- /* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_22__.previewBox; },
10957
- /* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_25__.refs; },
10958
- /* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_23__.reset; },
10959
- /* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_25__.resolveElement; },
10960
- /* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_24__.scrollIntoViewIfNeeded; },
10961
- /* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_26__.set; },
10958
+ /* harmony export */ prepareEmbedCode: function() { return /* reexport safe */ _prepare_media_js__WEBPACK_IMPORTED_MODULE_22__.prepareEmbedCode; },
10959
+ /* harmony export */ prepareMedia: function() { return /* reexport safe */ _prepare_media_js__WEBPACK_IMPORTED_MODULE_22__.prepareMedia; },
10960
+ /* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_23__.previewBox; },
10961
+ /* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.refs; },
10962
+ /* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_24__.reset; },
10963
+ /* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_26__.resolveElement; },
10964
+ /* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_25__.scrollIntoViewIfNeeded; },
10965
+ /* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_27__.set; },
10962
10966
  /* harmony export */ wrapMedia: function() { return /* reexport safe */ _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__.wrapMedia; }
10963
10967
  /* harmony export */ });
10964
10968
  /* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
@@ -10983,13 +10987,14 @@ var getClassName = function getClassName(obj) {
10983
10987
  /* harmony import */ var _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95942);
10984
10988
  /* harmony import */ var _media_wrapper_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(61477);
10985
10989
  /* harmony import */ var _parse_query_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(82501);
10986
- /* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(11628);
10987
- /* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(58844);
10988
- /* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(26395);
10989
- /* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(76078);
10990
- /* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(3703);
10991
- /* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(50535);
10992
- /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(37790);
10990
+ /* harmony import */ var _prepare_media_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(96437);
10991
+ /* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(11628);
10992
+ /* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(58844);
10993
+ /* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(26395);
10994
+ /* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(76078);
10995
+ /* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(3703);
10996
+ /* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(50535);
10997
+ /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(37790);
10993
10998
  /*!
10994
10999
  * Jodit Editor (https://xdsoft.net/jodit/)
10995
11000
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11025,6 +11030,7 @@ var getClassName = function getClassName(obj) {
11025
11030
 
11026
11031
 
11027
11032
 
11033
+
11028
11034
 
11029
11035
 
11030
11036
  /***/ }),
@@ -11284,6 +11290,45 @@ var isWrapper = function isWrapper(node, wrapper) {
11284
11290
  };
11285
11291
 
11286
11292
 
11293
+ /***/ }),
11294
+
11295
+ /***/ 96437:
11296
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11297
+
11298
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11299
+ /* harmony export */ prepareEmbedCode: function() { return /* binding */ prepareEmbedCode; },
11300
+ /* harmony export */ prepareMedia: function() { return /* binding */ prepareMedia; }
11301
+ /* harmony export */ });
11302
+ /* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
11303
+ /* harmony import */ var _media_wrapper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61477);
11304
+ /*!
11305
+ * Jodit Editor (https://xdsoft.net/jodit/)
11306
+ * Released under MIT see LICENSE.txt in the project root for license information.
11307
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
11308
+ */
11309
+
11310
+ /**
11311
+ * Puts new media in its wrapper (see `mediaWrappers`) and aligns it with
11312
+ * `mediaDefaultAlign`. Returns the wrapper, or `element` when there is none
11313
+ */ function prepareMedia(jodit, element) {
11314
+ var media = (0,_media_wrapper_js__WEBPACK_IMPORTED_MODULE_1__.wrapMedia)(jodit, element);
11315
+ var mediaDefaultAlign = jodit.o.mediaDefaultAlign;
11316
+ if (mediaDefaultAlign && mediaDefaultAlign !== 'normal') {
11317
+ (0,_align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement)(media, mediaDefaultAlign, (0,_align_js__WEBPACK_IMPORTED_MODULE_0__.getAlignClasses)(jodit, media));
11318
+ }
11319
+ return media;
11320
+ }
11321
+ /**
11322
+ * Embed code that is one element is prepared as media (see `prepareMedia`);
11323
+ * other code is returned as it is
11324
+ */ function prepareEmbedCode(jodit, code) {
11325
+ var box = jodit.createInside.div();
11326
+ box.innerHTML = code.trim();
11327
+ var element = box.firstElementChild;
11328
+ return element && box.childNodes.length === 1 ? prepareMedia(jodit, element) : code;
11329
+ }
11330
+
11331
+
11287
11332
  /***/ }),
11288
11333
 
11289
11334
  /***/ 11628:
@@ -17125,7 +17170,9 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
17125
17170
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(wrapper, fragment);
17126
17171
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeInsertNode(range, wrapper);
17127
17172
  if (style.elementIsBlock) {
17128
- if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(wrapper) && !_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(wrapper.firstElementChild, 'br')) {
17173
+ // The wrapped content can bring its own `<br>` (an empty table
17174
+ // cell's), after or inside the temporary `<font>` around the selection
17175
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(wrapper) && !wrapper.querySelector('br')) {
17129
17176
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(wrapper, ci.element('br'));
17130
17177
  }
17131
17178
  }
@@ -38152,11 +38199,10 @@ function _create_class(Constructor, protoProps, staticProps) {
38152
38199
  /* harmony export */ History: function() { return /* binding */ History; }
38153
38200
  /* harmony export */ });
38154
38201
  /* harmony import */ var _core_component_view_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80480);
38155
- /* harmony import */ var _core_decorators_debounce_debounce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81577);
38156
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6441);
38157
- /* harmony import */ var _command_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92643);
38158
- /* harmony import */ var _snapshot_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(52604);
38159
- /* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57034);
38202
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6441);
38203
+ /* harmony import */ var _command_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92643);
38204
+ /* harmony import */ var _snapshot_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52604);
38205
+ /* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57034);
38160
38206
  function _assert_this_initialized(self) {
38161
38207
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
38162
38208
  return self;
@@ -38248,19 +38294,12 @@ function _type_of(obj) {
38248
38294
  * Jodit Editor (https://xdsoft.net/jodit/)
38249
38295
  * Released under MIT see LICENSE.txt in the project root for license information.
38250
38296
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
38251
- */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
38252
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38253
- if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38254
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
38255
- return c > 3 && r && Object.defineProperty(target, key, r), r;
38256
- };
38257
-
38258
-
38297
+ */ ;
38259
38298
 
38260
38299
 
38261
38300
 
38262
38301
 
38263
- _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38302
+ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.history = {
38264
38303
  enable: true,
38265
38304
  maxHistoryLength: Infinity,
38266
38305
  timeout: 1000
@@ -38271,13 +38310,19 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38271
38310
  "use strict";
38272
38311
  _inherits(History, ViewComponent);
38273
38312
  function History(editor) {
38274
- var stack = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : new _stack_js__WEBPACK_IMPORTED_MODULE_5__.Stack(editor.o.history.maxHistoryLength), snapshot = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : new _snapshot_js__WEBPACK_IMPORTED_MODULE_4__.Snapshot(editor);
38313
+ var stack = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : new _stack_js__WEBPACK_IMPORTED_MODULE_4__.Stack(editor.o.history.maxHistoryLength), snapshot = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : new _snapshot_js__WEBPACK_IMPORTED_MODULE_3__.Snapshot(editor);
38275
38314
  _class_call_check(this, History);
38276
38315
  var _this;
38277
38316
  _this = _call_super(this, History, [
38278
38317
  editor
38279
38318
  ]);
38280
38319
  _this.updateTick = 0;
38320
+ /**
38321
+ * A step is open: changes have come in that are not in the stack yet
38322
+ */ _this.__hasPendingChanges = false;
38323
+ /**
38324
+ * Records the open step `history.timeout` after its first change
38325
+ */ _this.__timer = 0;
38281
38326
  _this.__stack = stack;
38282
38327
  _this.snapshot = snapshot;
38283
38328
  if (editor.o.history.enable) {
@@ -38288,6 +38333,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38288
38333
  _this.startValue = _this.snapshot.make();
38289
38334
  editor.events// save selection
38290
38335
  .on('internalChange internalUpdate', function() {
38336
+ _this.__processPendingChanges();
38291
38337
  _this.startValue = _this.snapshot.make();
38292
38338
  }).on(editor.editor, [
38293
38339
  'changeSelection',
@@ -38303,7 +38349,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38303
38349
  if (_this.startValue.html === _this.j.getNativeEditorValue()) {
38304
38350
  _this.startValue = _this.snapshot.make();
38305
38351
  }
38306
- }).on(_this, 'change.history', _this.onChange);
38352
+ }).on(_this, 'change.history', function() {
38353
+ return _this.onChange();
38354
+ });
38307
38355
  });
38308
38356
  }
38309
38357
  return _this;
@@ -38320,6 +38368,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38320
38368
  * Return state of the WYSIWYG editor to step back
38321
38369
  */ key: "redo",
38322
38370
  value: function redo() {
38371
+ this.__processPendingChanges();
38323
38372
  if (this.__stack.redo()) {
38324
38373
  this.startValue = this.snapshot.make();
38325
38374
  this.fireChangeStack();
@@ -38329,7 +38378,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38329
38378
  {
38330
38379
  key: "canRedo",
38331
38380
  value: function canRedo() {
38332
- return this.__stack.canRedo();
38381
+ return !this.__hasPendingChanges && this.__stack.canRedo();
38333
38382
  }
38334
38383
  },
38335
38384
  {
@@ -38337,6 +38386,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38337
38386
  * Return the state of the WYSIWYG editor to step forward
38338
38387
  */ key: "undo",
38339
38388
  value: function undo() {
38389
+ this.__processPendingChanges();
38340
38390
  if (this.__stack.undo()) {
38341
38391
  this.startValue = this.snapshot.make();
38342
38392
  this.fireChangeStack();
@@ -38346,13 +38396,15 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38346
38396
  {
38347
38397
  key: "canUndo",
38348
38398
  value: function canUndo() {
38349
- return this.__stack.canUndo();
38399
+ return this.__hasPendingChanges || this.__stack.canUndo();
38350
38400
  }
38351
38401
  },
38352
38402
  {
38353
38403
  key: "clear",
38354
38404
  value: function clear() {
38355
38405
  this.startValue = this.snapshot.make();
38406
+ this.async.clearTimeout(this.__timer);
38407
+ this.__hasPendingChanges = false;
38356
38408
  this.__stack.clear();
38357
38409
  this.fireChangeStack();
38358
38410
  }
@@ -38383,10 +38435,36 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38383
38435
  },
38384
38436
  {
38385
38437
  /**
38386
- * Push new command in stack on some changes
38438
+ * Push new command in stack on some changes. The first change opens a
38439
+ * step, and later ones join it until `history.timeout` has passed,
38440
+ * however close together they come.
38387
38441
  */ key: "onChange",
38388
38442
  value: function onChange() {
38389
- this.__processChanges();
38443
+ var _this = this;
38444
+ // A transaction is over by the time the step is recorded, so it is
38445
+ // checked now
38446
+ if (this.snapshot.isBlocked || this.__hasPendingChanges) {
38447
+ return;
38448
+ }
38449
+ this.__hasPendingChanges = true;
38450
+ this.__timer = this.async.setTimeout(function() {
38451
+ return _this.__processPendingChanges();
38452
+ }, this.j.o.history.timeout);
38453
+ // With a timeout of 0 the step is already recorded. Otherwise
38454
+ // canUndo and canRedo count it from now
38455
+ if (this.__hasPendingChanges) {
38456
+ this.fireChangeStack();
38457
+ }
38458
+ }
38459
+ },
38460
+ {
38461
+ /**
38462
+ * Push the open step's changes now
38463
+ */ key: "__processPendingChanges",
38464
+ value: function __processPendingChanges() {
38465
+ if (this.__hasPendingChanges) {
38466
+ this.__processChanges();
38467
+ }
38390
38468
  }
38391
38469
  },
38392
38470
  {
@@ -38397,6 +38475,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38397
38475
  if (this.snapshot.isBlocked || !this.j.o.history.enable) {
38398
38476
  return;
38399
38477
  }
38478
+ this.async.clearTimeout(this.__timer);
38479
+ this.__hasPendingChanges = false;
38400
38480
  this.updateStack();
38401
38481
  }
38402
38482
  },
@@ -38407,7 +38487,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38407
38487
  value: function updateStack() {
38408
38488
  var replace = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
38409
38489
  var newValue = this.snapshot.make();
38410
- if (_snapshot_js__WEBPACK_IMPORTED_MODULE_4__.Snapshot.equal(newValue, this.startValue)) {
38490
+ if (_snapshot_js__WEBPACK_IMPORTED_MODULE_3__.Snapshot.equal(newValue, this.startValue)) {
38411
38491
  return;
38412
38492
  }
38413
38493
  // Only the selection moved, for example when the selection markers
@@ -38417,7 +38497,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38417
38497
  this.startValue = newValue;
38418
38498
  return;
38419
38499
  }
38420
- var newCommand = new _command_js__WEBPACK_IMPORTED_MODULE_3__.Command(this.startValue, newValue, this, this.updateTick);
38500
+ var newCommand = new _command_js__WEBPACK_IMPORTED_MODULE_2__.Command(this.startValue, newValue, this, this.updateTick);
38421
38501
  if (replace) {
38422
38502
  var command = this.__stack.current();
38423
38503
  if (command && this.updateTick === command.tick) {
@@ -38453,9 +38533,6 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.history = {
38453
38533
  ]);
38454
38534
  return History;
38455
38535
  }(_core_component_view_component_js__WEBPACK_IMPORTED_MODULE_0__.ViewComponent);
38456
- __decorate([
38457
- (0,_core_decorators_debounce_debounce_js__WEBPACK_IMPORTED_MODULE_1__.debounce)()
38458
- ], History.prototype, "onChange", null);
38459
38536
 
38460
38537
 
38461
38538
  /***/ }),
@@ -40818,6 +40895,7 @@ var Table = /*#__PURE__*/ function(ViewComponent) {
40818
40895
  var cells = box[i];
40819
40896
  if (cells[columnIndex] !== cells[newColumnIndex] || columnIndex === newColumnIndex) {
40820
40897
  var cell = this.j.createInside.element('td');
40898
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(cell, this.j.createInside.element('br'));
40821
40899
  if (insertAfter) {
40822
40900
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.after(cells[columnIndex], cell);
40823
40901
  } else {
@@ -40985,7 +41063,9 @@ var Table = /*#__PURE__*/ function(ViewComponent) {
40985
41063
  var columnsCount = Table.__getColumnsCount(table);
40986
41064
  row = create.element('tr');
40987
41065
  for(var j = 0; j < columnsCount; j += 1){
40988
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(row, create.element('td'));
41066
+ var cell = create.element('td');
41067
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(cell, create.element('br'));
41068
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(row, cell);
40989
41069
  }
40990
41070
  } else {
40991
41071
  row = line.cloneNode(true);
@@ -41002,6 +41082,7 @@ var Table = /*#__PURE__*/ function(ViewComponent) {
41002
41082
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.each(row, function(cell) {
41003
41083
  if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isCell(cell)) {
41004
41084
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.detach(cell);
41085
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_3__.Dom.append(cell, create.element('br'));
41005
41086
  }
41006
41087
  });
41007
41088
  }
@@ -41280,7 +41361,7 @@ var Table = /*#__PURE__*/ function(ViewComponent) {
41280
41361
  Table.__setColumnWidthByDelta(table, first_j, 0, true, __marked);
41281
41362
  }
41282
41363
  }
41283
- first.innerHTML = html.join('<br/>');
41364
+ first.innerHTML = html.join('<br/>') || '<br/>';
41284
41365
  instance(jodit).addSelection(first);
41285
41366
  alreadyMerged.delete(first);
41286
41367
  Table.__unmark(__marked);
@@ -44587,8 +44668,8 @@ _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', _palette_svg_
44587
44668
  var box = (0,_tabs_tabs_js__WEBPACK_IMPORTED_MODULE_3__.TabsWidget)(editor, tabs);
44588
44669
  // Marks this popup so its tabs auto-size to their labels (see
44589
44670
  // `.jodit-file-selector` in tabs.less) — long localized tab captions are no
44590
- // longer clipped — while leaving other tab popups (link, video …)
44591
- // untouched.
44671
+ // longer clipped — while leaving other tab popups (link …) untouched. The
44672
+ // video popup, which has an Upload tab too, uses it as well.
44592
44673
  box.classList.add('jodit-file-selector');
44593
44674
  return box;
44594
44675
  };
@@ -46539,6 +46620,10 @@ var backspace = /*#__PURE__*/ function(Plugin) {
46539
46620
  if (!sel.isFocused()) {
46540
46621
  sel.focus();
46541
46622
  }
46623
+ // Focused with no range, as WebKit leaves it after a click on an embed
46624
+ if (!sel.isInsideArea) {
46625
+ return;
46626
+ }
46542
46627
  if ((0,_cases_check_not_collapsed_js__WEBPACK_IMPORTED_MODULE_7__.checkNotCollapsed)(jodit)) {
46543
46628
  jodit.e.fire('backSpaceAfterDelete', backspace);
46544
46629
  return false;
@@ -47956,7 +48041,8 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
47956
48041
  /* harmony import */ var _core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86518);
47957
48042
  /* harmony import */ var _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20356);
47958
48043
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46776);
47959
- /* harmony import */ var _helpers_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59498);
48044
+ /* harmony import */ var _helpers_visitor_filters_replace_old_tags_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80973);
48045
+ /* harmony import */ var _helpers_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59498);
47960
48046
  function _array_like_to_array(arr, len) {
47961
48047
  if (len == null || len > arr.length) len = arr.length;
47962
48048
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -48145,6 +48231,7 @@ function _wrap_native_super(Class) {
48145
48231
 
48146
48232
 
48147
48233
 
48234
+
48148
48235
  /**
48149
48236
  * Clean HTML after removeFormat and insertHorizontalRule command
48150
48237
  */ var TRAILING_BR_BLOCKS = 'p, div, li, td, th, h1, h2, h3, h4, h5, h6, blockquote';
@@ -48208,10 +48295,10 @@ var cleanHtml = /*#__PURE__*/ function(Plugin) {
48208
48295
  value: function startWalker() {
48209
48296
  var _this = this;
48210
48297
  var jodit = this.jodit;
48211
- var allow = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__.getHash)(this.j.o.cleanHTML.allowTags);
48212
- var deny = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__.getHash)(this.j.o.cleanHTML.denyTags);
48298
+ var allow = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.getHash)(this.j.o.cleanHTML.allowTags);
48299
+ var deny = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.getHash)(this.j.o.cleanHTML.denyTags);
48213
48300
  this.walker.on('visit', function(node) {
48214
- return (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__.visitNodeWalker)(jodit, node, allow, deny, _this.currentSelectionNode);
48301
+ return (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.visitNodeWalker)(jodit, node, allow, deny, _this.currentSelectionNode);
48215
48302
  }).on('end', function(affected) {
48216
48303
  _this.j.e.fire(affected ? 'internalChange finishedCleanHTMLWorker' : 'finishedCleanHTMLWorker');
48217
48304
  });
@@ -48222,9 +48309,9 @@ var cleanHtml = /*#__PURE__*/ function(Plugin) {
48222
48309
  value: function beforeCommand(command) {
48223
48310
  if (command.toLowerCase() === 'removeformat') {
48224
48311
  if (this.j.s.isCollapsed()) {
48225
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__.removeFormatForCollapsedSelection)(this.j);
48312
+ (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.removeFormatForCollapsedSelection)(this.j);
48226
48313
  } else {
48227
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_7__.removeFormatForSelection)(this.j);
48314
+ (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_8__.removeFormatForSelection)(this.j);
48228
48315
  }
48229
48316
  return false;
48230
48317
  }
@@ -48256,6 +48343,7 @@ var cleanHtml = /*#__PURE__*/ function(Plugin) {
48256
48343
  ], 2), sandBox = _ref[0], iframe = _ref[1];
48257
48344
  sandBox.innerHTML = data.value;
48258
48345
  this.j.e.fire('safeHTML', sandBox);
48346
+ this.__replaceOldTags(sandBox);
48259
48347
  data.value = sandBox.innerHTML;
48260
48348
  (0,_core_helpers_html_safe_html_js__WEBPACK_IMPORTED_MODULE_4__.safeHTML)(sandBox, {
48261
48349
  safeJavaScriptLink: true,
@@ -48267,6 +48355,24 @@ var cleanHtml = /*#__PURE__*/ function(Plugin) {
48267
48355
  },
48268
48356
  {
48269
48357
  /**
48358
+ * Replace old tags (`<b>` with `<strong>`, `<i>` with `<em>`) in an
48359
+ * assigned value straight away. The walker would get to them only after
48360
+ * every node before them, seconds later on a long document, and until
48361
+ * then Bold does not treat `<b>` as bold, and the swap can move the caret.
48362
+ */ key: "__replaceOldTags",
48363
+ value: function __replaceOldTags(box) {
48364
+ var _this = this;
48365
+ var _this_j_o_cleanHTML = this.j.o.cleanHTML, list = _this_j_o_cleanHTML.replaceOldTags, disableCleanFilter = _this_j_o_cleanHTML.disableCleanFilter;
48366
+ if (!list || (disableCleanFilter === null || disableCleanFilter === void 0 ? void 0 : disableCleanFilter.has('replaceOldTags'))) {
48367
+ return;
48368
+ }
48369
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.each(box, function(node) {
48370
+ ;(0,_helpers_visitor_filters_replace_old_tags_js__WEBPACK_IMPORTED_MODULE_7__.replaceOldTags)(_this.j, node, false);
48371
+ });
48372
+ }
48373
+ },
48374
+ {
48375
+ /**
48270
48376
  * Collapse a value that holds only a single empty block (e.g.
48271
48377
  * `<p><br></p>` left after deleting all content) to an empty string —
48272
48378
  * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
@@ -48969,10 +49075,33 @@ __webpack_require__.r(__webpack_exports__);
48969
49075
  }
48970
49076
  var tagName = list[oldParent.nodeName.toLowerCase()] || list[oldParent.nodeName];
48971
49077
  if (tagName) {
48972
- return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(oldParent, tagName, jodit.createInside, true, false);
49078
+ var restoreSelection = keepSelection(jodit, oldParent);
49079
+ var newParent = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(oldParent, tagName, jodit.createInside, true, false);
49080
+ restoreSelection === null || restoreSelection === void 0 ? void 0 : restoreSelection(newParent);
49081
+ return newParent;
48973
49082
  }
48974
49083
  return oldParent;
48975
49084
  }
49085
+ /**
49086
+ * Moving the children out of an element collapses a selection inside them to
49087
+ * where the element was, so the caret jumps to the start of the text being
49088
+ * typed. Returns a callback that puts the selection back on the same nodes.
49089
+ *
49090
+ * Like `removeEmptyTextNode`, it leaves the selection alone once focus has
49091
+ * left the editor, because selecting would take focus back.
49092
+ */ function keepSelection(jodit, elm) {
49093
+ var sel = jodit.s.sel;
49094
+ if (!(sel === null || sel === void 0 ? void 0 : sel.anchorNode) || !sel.focusNode || !jodit.s.isFocused()) {
49095
+ return null;
49096
+ }
49097
+ var anchorNode = sel.anchorNode, anchorOffset = sel.anchorOffset, focusNode = sel.focusNode, focusOffset = sel.focusOffset;
49098
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(elm, anchorNode) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isOrContains(elm, focusNode)) {
49099
+ return null;
49100
+ }
49101
+ return function(newElm) {
49102
+ sel.setBaseAndExtent(anchorNode === elm ? newElm : anchorNode, anchorOffset, focusNode === elm ? newElm : focusNode, focusOffset);
49103
+ };
49104
+ }
48976
49105
 
48977
49106
 
48978
49107
  /***/ }),
@@ -51535,9 +51664,32 @@ var brBoxes = new Set([
51535
51664
  * Released under MIT see LICENSE.txt in the project root for license information.
51536
51665
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
51537
51666
  */
51667
+ /**
51668
+ * Moves the cursor out of a block that can't hold the inserted block: before
51669
+ * or after it when the cursor is at its edge, or between its two halves when
51670
+ * the cursor is inside its content. An empty block is removed
51671
+ */ function moveCursorOutOf(jodit, parent) {
51672
+ var _a;
51673
+ var s = jodit.s;
51674
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(parent)) {
51675
+ s.setCursorAfter(parent);
51676
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(parent);
51677
+ return;
51678
+ }
51679
+ if (s.cursorOnTheRight(parent)) {
51680
+ s.setCursorAfter(parent);
51681
+ return;
51682
+ }
51683
+ if (s.cursorOnTheLeft(parent)) {
51684
+ s.setCursorBefore(parent);
51685
+ return;
51686
+ }
51687
+ s.setCursorAfter((_a = s.splitSelection(parent)) !== null && _a !== void 0 ? _a : parent);
51688
+ }
51538
51689
  /**
51539
51690
  * Checks whether the insertion of an element at the current location is allowed,
51540
- * if it is not allowed, it deletes an empty block element or moves the cursor after it
51691
+ * if it is not allowed, it deletes an empty block element, moves the cursor
51692
+ * before or after it, or splits it at the cursor
51541
51693
  * @internal
51542
51694
  */ function checkBlockNesting(jodit, node) {
51543
51695
  var _a, _b;
@@ -51566,10 +51718,7 @@ var brBoxes = new Set([
51566
51718
  parent = current;
51567
51719
  }
51568
51720
  if (parent) {
51569
- jodit.s.setCursorAfter(parent);
51570
- if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(parent)) {
51571
- _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(parent);
51572
- }
51721
+ moveCursorOutOf(jodit, parent);
51573
51722
  }
51574
51723
  }
51575
51724
  }
@@ -52349,7 +52498,14 @@ function brBefore(start) {
52349
52498
  _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(link, fake);
52350
52499
  } else if (s.cursorOnTheLeft(link, fake)) {
52351
52500
  _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(link, fake);
52501
+ } else {
52502
+ return;
52352
52503
  }
52504
+ // The block is split at the caret, so the caret leaves the link too:
52505
+ // beside the fake, since Safari mislays a caret inside a removed node
52506
+ var range = s.createRange();
52507
+ range.setStartBefore(fake);
52508
+ s.selectRange(range);
52353
52509
  }
52354
52510
  }
52355
52511
 
@@ -52585,9 +52741,10 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('file', file);
52585
52741
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
52586
52742
 
52587
52743
  /* unused harmony export focus */
52588
- /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
52589
- /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(580);
52590
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6441);
52744
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
52745
+ /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
52746
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
52747
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6441);
52591
52748
  /*!
52592
52749
  * Jodit Editor (https://xdsoft.net/jodit/)
52593
52750
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -52595,15 +52752,16 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('file', file);
52595
52752
  */
52596
52753
 
52597
52754
 
52755
+
52598
52756
  /**
52599
52757
  * After loading the page into the editor once the focus is set
52600
- */ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.autofocus = false;
52758
+ */ _config_js__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.autofocus = false;
52601
52759
  /**
52602
52760
  * Cursor position after autofocus
52603
- */ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.cursorAfterAutofocus = 'end';
52761
+ */ _config_js__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.cursorAfterAutofocus = 'end';
52604
52762
  /**
52605
52763
  * Save current selection on blur event
52606
- */ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.saveSelectionOnBlur = true;
52764
+ */ _config_js__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.saveSelectionOnBlur = true;
52607
52765
  function focus(editor) {
52608
52766
  if (editor.o.saveSelectionOnBlur) {
52609
52767
  // A click that brings focus back places the caret itself, and Chrome
@@ -52635,13 +52793,13 @@ function focus(editor) {
52635
52793
  var textNode = null;
52636
52794
  switch(editor.o.cursorAfterAutofocus){
52637
52795
  case 'start':
52638
- textNode = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.first(editor.editor, function(node) {
52639
- return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isText(node);
52796
+ textNode = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.first(editor.editor, function(node) {
52797
+ return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node);
52640
52798
  });
52641
52799
  break;
52642
52800
  case 'end':
52643
- textNode = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.last(editor.editor, function(node) {
52644
- return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isText(node);
52801
+ textNode = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.last(editor.editor, function(node) {
52802
+ return _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node);
52645
52803
  });
52646
52804
  break;
52647
52805
  }
@@ -52660,7 +52818,8 @@ function focus(editor) {
52660
52818
  });
52661
52819
  editor.e.on('afterInit afterAddPlace', function() {
52662
52820
  editor.e.off(editor.editor, 'mousedown.autofocus').on(editor.editor, 'mousedown.autofocus', function(e) {
52663
- if (editor.isEditorMode() && e.target && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(e.target) && !e.target.childNodes.length) {
52821
+ // An empty block takes the caret, but a video, say, can't hold one
52822
+ if (editor.isEditorMode() && e.target && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(e.target) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(e.target, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) && !e.target.childNodes.length) {
52664
52823
  if (editor.editor === e.target) {
52665
52824
  editor.s.focus();
52666
52825
  } else {
@@ -52670,7 +52829,7 @@ function focus(editor) {
52670
52829
  });
52671
52830
  });
52672
52831
  }
52673
- _core_global_js__WEBPACK_IMPORTED_MODULE_1__.pluginSystem.add('focus', focus);
52832
+ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('focus', focus);
52674
52833
 
52675
52834
 
52676
52835
  /***/ }),
@@ -54460,18 +54619,29 @@ function hr(editor) {
54460
54619
  group: 'insert'
54461
54620
  });
54462
54621
  editor.registerCommand('insertHorizontalRule', function() {
54622
+ var _a;
54463
54623
  var elm = editor.createInside.element('hr');
54464
54624
  editor.s.insertNode(elm, false, false);
54465
54625
  var block = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(elm.parentElement, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock, editor.editor);
54466
- if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(block) && block !== editor.editor) {
54626
+ // A block that holds other blocks, such as a list item or a table
54627
+ // cell, keeps the line
54628
+ if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(block) && block !== editor.editor && !((_a = editor.o.dtd) === null || _a === void 0 ? void 0 : _a.blockLimits[block.nodeName.toLowerCase()])) {
54467
54629
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(block, elm);
54468
54630
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(block);
54469
54631
  }
54470
- var p = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.next(elm, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock, editor.editor, false);
54471
- if (!p) {
54472
- p = editor.createInside.element(editor.o.enter);
54473
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(elm, p);
54632
+ var next = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(elm, false);
54633
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(next)) {
54634
+ editor.s.setCursorIn(next, true);
54635
+ return false;
54636
+ }
54637
+ // In a list item or a table cell the text goes on after the line, as
54638
+ // it does with the browsers' own command
54639
+ if (next || elm.parentNode !== editor.editor && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.findNotEmptySibling(elm, true))) {
54640
+ editor.s.setCursorAfter(elm);
54641
+ return false;
54474
54642
  }
54643
+ var p = editor.createInside.element(editor.o.enter);
54644
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(elm, p);
54475
54645
  editor.s.setCursorIn(p);
54476
54646
  return false;
54477
54647
  });
@@ -54504,7 +54674,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeBaseUrl = '';
54504
54674
  _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeTitle = 'Jodit Editor';
54505
54675
  _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeDoctype = '<!DOCTYPE html>';
54506
54676
  _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeDefaultSrc = 'about:blank';
54507
- _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeStyle = 'html{' + 'margin:0;' + 'padding:0;' + 'min-height: 100%;' + '}' + 'body{' + 'box-sizing:border-box;' + 'font-size:13px;' + 'line-height:1.6;' + 'padding:10px;' + 'margin:0;' + 'background:transparent;' + 'color:#000;' + 'position:' + 'relative;' + 'z-index:2;' + 'user-select:auto;' + 'margin:0px;' + 'overflow:auto;' + 'outline:none;' + '}' + 'table{' + 'width:100%;' + 'border:none;' + 'border-collapse:collapse;' + 'empty-cells: show;' + 'max-width: 100%;' + '}' + 'th,td{' + 'padding: 2px 5px;' + 'border:1px solid #ccc;' + '-webkit-user-select:text;' + '-moz-user-select:text;' + '-ms-user-select:text;' + 'user-select:text' + '}' + 'p{' + 'margin-top:0;' + '}' + '.jodit_editor .jodit_iframe_wrapper{' + 'display: block;' + 'clear: both;' + 'user-select: none;' + 'position: relative;' + '}' + '.jodit_editor .jodit_iframe_wrapper:after {' + 'position:absolute;' + 'content:"";' + 'z-index:1;' + 'top:0;' + 'left:0;' + 'right: 0;' + 'bottom: 0;' + 'cursor: pointer;' + 'display: block;' + 'background: rgba(0, 0, 0, 0);' + '} ' + '.jodit-wysiwyg_image-selected::selection,' + '.jodit-wysiwyg_image-selected *:not(img)::selection{' + 'background:transparent' + '}' + '.jodit_disabled{' + 'user-select: none;' + '-o-user-select: none;' + '-moz-user-select: none;' + '-khtml-user-select: none;' + '-webkit-user-select: none;' + '-ms-user-select: none' + '}';
54677
+ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeStyle = 'html{' + 'margin:0;' + 'padding:0;' + 'min-height: 100%;' + '}' + 'body{' + 'box-sizing:border-box;' + 'font-size:13px;' + 'line-height:1.6;' + 'padding:10px;' + 'margin:0;' + 'background:transparent;' + 'color:#000;' + 'position:' + 'relative;' + 'z-index:2;' + 'user-select:auto;' + 'margin:0px;' + 'overflow:auto;' + 'outline:none;' + '}' + 'table{' + 'width:100%;' + 'border:none;' + 'border-collapse:collapse;' + 'empty-cells: show;' + 'max-width: 100%;' + '}' + 'th,td{' + 'padding: 2px 5px;' + 'border:1px solid #ccc;' + '-webkit-user-select:text;' + '-moz-user-select:text;' + '-ms-user-select:text;' + 'user-select:text' + '}' + 'p{' + 'margin-top:0;' + '}' + '[data-jodit_iframe_wrapper]{' + 'display: block;' + 'user-select: none;' + 'position: relative;' + '}' + '[data-jodit_iframe_wrapper] iframe{' + 'position: relative;' + '}' + '[data-jodit_iframe_wrapper]:after {' + 'position:absolute;' + 'content:"";' + 'z-index:1;' + 'top:0;' + 'left:0;' + 'right: 0;' + 'bottom: 0;' + 'cursor: pointer;' + 'display: block;' + 'background: rgba(0, 0, 0, 0);' + '} ' + '[data-jodit_iframe_wrapper][data-jodit-wrapper_active=true] iframe{' + 'z-index: 2;' + '}' + '.jodit-wysiwyg_image-selected::selection,' + '.jodit-wysiwyg_image-selected *:not(img)::selection{' + 'background:transparent' + '}' + '.jodit_disabled{' + 'user-select: none;' + '-o-user-select: none;' + '-moz-user-select: none;' + '-khtml-user-select: none;' + '-webkit-user-select: none;' + '-ms-user-select: none' + '}';
54508
54678
  _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeCSSLinks = [];
54509
54679
  _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
54510
54680
 
@@ -59170,6 +59340,17 @@ function _create_class(Constructor, protoProps, staticProps) {
59170
59340
  if (staticProps) _defineProperties(Constructor, staticProps);
59171
59341
  return Constructor;
59172
59342
  }
59343
+ function _define_property(obj, key, value) {
59344
+ if (key in obj) {
59345
+ Object.defineProperty(obj, key, {
59346
+ value: value,
59347
+ enumerable: true,
59348
+ configurable: true,
59349
+ writable: true
59350
+ });
59351
+ } else obj[key] = value;
59352
+ return obj;
59353
+ }
59173
59354
  function _get_prototype_of(o) {
59174
59355
  _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
59175
59356
  return o.__proto__ || Object.getPrototypeOf(o);
@@ -59208,6 +59389,44 @@ function _iterable_to_array(iter) {
59208
59389
  function _non_iterable_spread() {
59209
59390
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
59210
59391
  }
59392
+ function _object_spread(target) {
59393
+ for(var i = 1; i < arguments.length; i++){
59394
+ var source = arguments[i] != null ? arguments[i] : {};
59395
+ var ownKeys = Object.keys(source);
59396
+ if (typeof Object.getOwnPropertySymbols === "function") {
59397
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
59398
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
59399
+ }));
59400
+ }
59401
+ ownKeys.forEach(function(key) {
59402
+ _define_property(target, key, source[key]);
59403
+ });
59404
+ }
59405
+ return target;
59406
+ }
59407
+ function ownKeys(object, enumerableOnly) {
59408
+ var keys = Object.keys(object);
59409
+ if (Object.getOwnPropertySymbols) {
59410
+ var symbols = Object.getOwnPropertySymbols(object);
59411
+ if (enumerableOnly) {
59412
+ symbols = symbols.filter(function(sym) {
59413
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
59414
+ });
59415
+ }
59416
+ keys.push.apply(keys, symbols);
59417
+ }
59418
+ return keys;
59419
+ }
59420
+ function _object_spread_props(target, source) {
59421
+ source = source != null ? source : {};
59422
+ if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
59423
+ else {
59424
+ ownKeys(Object(source)).forEach(function(key) {
59425
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
59426
+ });
59427
+ }
59428
+ return target;
59429
+ }
59211
59430
  function _possible_constructor_return(self, call) {
59212
59431
  if (call && (_type_of(call) === "object" || typeof call === "function")) return call;
59213
59432
  return _assert_this_initialized(self);
@@ -59319,8 +59538,12 @@ function _wrap_native_super(Class) {
59319
59538
  // A media wrapper kept in the content gets the media popup
59320
59539
  var type = mediaWrapper ? 'jodit-media' : target === null || target === void 0 ? void 0 : target.nodeName.toLowerCase();
59321
59540
  if (target && type && this.canShowPopupForType(type)) {
59541
+ var isMedia = type === 'jodit-media';
59542
+ // Beside the media in a wrapper kept in the content, which can fill
59543
+ // the line
59544
+ var bound = mediaWrapper && (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getWrappedMedia)(this.j, mediaWrapper) || target;
59322
59545
  this.showPopup(function() {
59323
- return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(target, _this.j);
59546
+ return _this.__bound(bound, isMedia);
59324
59547
  }, type, target);
59325
59548
  return false;
59326
59549
  }
@@ -59328,6 +59551,24 @@ function _wrap_native_super(Class) {
59328
59551
  },
59329
59552
  {
59330
59553
  /**
59554
+ * The box the popup opens beside: the target's, with room for the
59555
+ * resizer's handles when the target gets them, so it doesn't cover them
59556
+ */ key: "__bound",
59557
+ value: function __bound(target, isMedia) {
59558
+ var bound = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.position)(target, this.j);
59559
+ var resizable = this.j.o.allowResizeTags;
59560
+ if (!isMedia && !(resizable && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(target, resizable))) {
59561
+ return bound;
59562
+ }
59563
+ var room = parseInt(this.j.ow.getComputedStyle(this.j.container).getPropertyValue('--jd-resizer-handle-size'), 10) / 2 || 0;
59564
+ return _object_spread_props(_object_spread({}, bound), {
59565
+ top: bound.top - room,
59566
+ height: bound.height + room * 2
59567
+ });
59568
+ }
59569
+ },
59570
+ {
59571
+ /**
59331
59572
  * Show inline popup with some toolbar
59332
59573
  *
59333
59574
  * @param type - selection, img, a etc.
@@ -61265,7 +61506,8 @@ function _wrap_native_super(Class) {
61265
61506
  height: (_d = jodit.o.video) === null || _d === void 0 ? void 0 : _d.defaultHeight
61266
61507
  });
61267
61508
  if (embed !== html) {
61268
- return jodit.createInside.fromHTML(embed);
61509
+ var media = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.prepareEmbedCode)(jodit, embed);
61510
+ return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(media) ? jodit.createInside.fromHTML(media) : media;
61269
61511
  }
61270
61512
  }
61271
61513
  if (jodit.s.isCollapsed()) {
@@ -61713,6 +61955,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.mediaWrappers = {};
61713
61955
  /* harmony import */ var _core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43555);
61714
61956
  /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41180);
61715
61957
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(757);
61958
+ function _array_like_to_array(arr, len) {
61959
+ if (len == null || len > arr.length) len = arr.length;
61960
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
61961
+ return arr2;
61962
+ }
61963
+ function _array_without_holes(arr) {
61964
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
61965
+ }
61716
61966
  function _define_property(obj, key, value) {
61717
61967
  if (key in obj) {
61718
61968
  Object.defineProperty(obj, key, {
@@ -61724,6 +61974,25 @@ function _define_property(obj, key, value) {
61724
61974
  } else obj[key] = value;
61725
61975
  return obj;
61726
61976
  }
61977
+ function _iterable_to_array(iter) {
61978
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
61979
+ return Array.from(iter);
61980
+ }
61981
+ }
61982
+ function _non_iterable_spread() {
61983
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
61984
+ }
61985
+ function _to_consumable_array(arr) {
61986
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
61987
+ }
61988
+ function _unsupported_iterable_to_array(o, minLen) {
61989
+ if (!o) return;
61990
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
61991
+ var n = Object.prototype.toString.call(o).slice(8, -1);
61992
+ if (n === "Object" && o.constructor) n = o.constructor.name;
61993
+ if (n === "Map" || n === "Set") return Array.from(n);
61994
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
61995
+ }
61727
61996
  /*!
61728
61997
  * Jodit Editor (https://xdsoft.net/jodit/)
61729
61998
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -61765,10 +62034,37 @@ function _define_property(obj, key, value) {
61765
62034
  } else {
61766
62035
  return;
61767
62036
  }
62037
+ // Selected, as an image is, so Delete and Backspace remove it
61768
62038
  editor.e.off(element, 'mousedown.select touchstart.select').on(element, 'mousedown.select touchstart.select', function() {
61769
- editor.s.setCursorAfter(element);
62039
+ editor.s.select(element);
61770
62040
  });
61771
62041
  };
62042
+ // Media in a wrapper kept in the content let clicks through to it, as
62043
+ // jodit-media covers its media, so a click selects the media rather than
62044
+ // playing it. An inline wrapper holds it as an inline-block, unless its
62045
+ // classes or style give it a display of their own
62046
+ var wrappers = Object.values(mediaWrappers);
62047
+ if (wrappers.length) {
62048
+ editor.e.on('afterInit', function() {
62049
+ var selectors = function selectors(list) {
62050
+ return _to_consumable_array(new Set(list)).join(',');
62051
+ };
62052
+ var scoped = function scoped(param) {
62053
+ var tag = param.tag, className = param.className;
62054
+ return ".jodit-wysiwyg ".concat(tag, ".").concat(className);
62055
+ };
62056
+ var inline = selectors(wrappers.filter(function(param) {
62057
+ var tag = param.tag;
62058
+ return _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE.test(tag);
62059
+ }).map(scoped));
62060
+ var _$media = selectors(wrappers.flatMap(function(wrapper) {
62061
+ return mediaBlocks.map(function(tag) {
62062
+ return "".concat(scoped(wrapper), ">").concat(tag);
62063
+ });
62064
+ }));
62065
+ (0,_core_global_js__WEBPACK_IMPORTED_MODULE_2__.getContainer)(editor, 'media-wrappers', 'style', true).innerHTML = (inline ? ":where(".concat(inline, "){display:inline-block}") : '') + "".concat(_$media, "{pointer-events:none}");
62066
+ });
62067
+ }
61772
62068
  if (mediaInFakeBlock || Object.keys(mediaWrappers).length) {
61773
62069
  editor.e.on('afterGetValueFromEditor', function(data) {
61774
62070
  var rxp = new RegExp("<".concat(mediaFakeTag, "[^>]+data-").concat(keyFake, "[^>]+>([^]+?)</").concat(mediaFakeTag, ">"), 'ig');
@@ -63328,12 +63624,14 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.paste = {
63328
63624
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
63329
63625
  /* harmony export */ askInsertTypeDialog: function() { return /* binding */ askInsertTypeDialog; },
63330
63626
  /* harmony export */ getAllTypes: function() { return /* binding */ getAllTypes; },
63331
- /* harmony export */ pasteInsertHtml: function() { return /* binding */ pasteInsertHtml; }
63627
+ /* harmony export */ pasteInsertHtml: function() { return /* binding */ pasteInsertHtml; },
63628
+ /* harmony export */ removeGoogleDocsWrapper: function() { return /* binding */ removeGoogleDocsWrapper; }
63332
63629
  /* harmony export */ });
63333
63630
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
63334
63631
  /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
63335
- /* harmony import */ var _core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27613);
63336
- /* harmony import */ var _core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10830);
63632
+ /* harmony import */ var _core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4510);
63633
+ /* harmony import */ var _core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27613);
63634
+ /* harmony import */ var _core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10830);
63337
63635
  function _array_like_to_array(arr, len) {
63338
63636
  if (len == null || len > arr.length) len = arr.length;
63339
63637
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -63369,6 +63667,7 @@ function _unsupported_iterable_to_array(o, minLen) {
63369
63667
 
63370
63668
 
63371
63669
 
63670
+
63372
63671
  /**
63373
63672
  * Remove special HTML comments
63374
63673
  * @private
@@ -63384,6 +63683,21 @@ function _unsupported_iterable_to_array(o, minLen) {
63384
63683
  }
63385
63684
  return html;
63386
63685
  }
63686
+ /**
63687
+ * Google Docs wraps the copied content in
63688
+ * `<b style="font-weight:normal;" id="docs-internal-guid-…">`. Kept, the
63689
+ * wrapper holds the pasted blocks, and without its style it makes the whole
63690
+ * paste bold
63691
+ * @private
63692
+ */ function removeGoogleDocsWrapper(html) {
63693
+ if (!/<b\s[^>]*docs-internal-guid-/i.test(html)) {
63694
+ return html;
63695
+ }
63696
+ // An inert document: images don't load and handlers don't run
63697
+ var body = new DOMParser().parseFromString(html, 'text/html').body;
63698
+ (0,_core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(body.querySelectorAll('b[id^="docs-internal-guid-"]')).forEach(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap);
63699
+ return body.innerHTML;
63700
+ }
63387
63701
  /**
63388
63702
  * @private
63389
63703
  */ function isDragEvent(e) {
@@ -63400,11 +63714,11 @@ function _unsupported_iterable_to_array(o, minLen) {
63400
63714
  editor.s.insertCursorAtPoint(e.clientX, e.clientY);
63401
63715
  }
63402
63716
  var result = editor.e.fire('beforePasteInsert', html);
63403
- if (!(0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isVoid)(result) && ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(result) || (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isNumber)(result) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isNode(result))) {
63717
+ if (!(0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isVoid)(result) && ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(result) || (0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(result) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isNode(result))) {
63404
63718
  html = result;
63405
63719
  }
63406
- if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString)(html)) {
63407
- html = removeExtraFragments(html);
63720
+ if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isString)(html)) {
63721
+ html = removeExtraFragments(removeGoogleDocsWrapper(html));
63408
63722
  }
63409
63723
  editor.s.insertHTML(html);
63410
63724
  }
@@ -63414,7 +63728,7 @@ function _unsupported_iterable_to_array(o, minLen) {
63414
63728
  */ function getAllTypes(dt) {
63415
63729
  var types = dt.types;
63416
63730
  var types_str = '';
63417
- if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(types) || ({}).toString.call(types) === '[object DOMStringList]') {
63731
+ if ((0,_core_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_3__.isArray)(types) || ({}).toString.call(types) === '[object DOMStringList]') {
63418
63732
  for(var i = 0; i < types.length; i += 1){
63419
63733
  types_str += types[i] + ';';
63420
63734
  }
@@ -63433,7 +63747,7 @@ function _unsupported_iterable_to_array(o, minLen) {
63433
63747
  var dialog = jodit.confirm('<div style="word-break: normal; white-space: normal">'.concat(jodit.i18n(msg), "</div>"), jodit.i18n(title));
63434
63748
  var buttons = buttonList.map(function(param) {
63435
63749
  var text = param.text, value = param.value;
63436
- return (0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_3__.Button)(jodit, {
63750
+ return (0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_4__.Button)(jodit, {
63437
63751
  text: text,
63438
63752
  name: text.toLowerCase(),
63439
63753
  tabIndex: 0
@@ -63450,7 +63764,7 @@ function _unsupported_iterable_to_array(o, minLen) {
63450
63764
  }
63451
63765
  jodit.e.fire('afterClosePasteDialog', dialog);
63452
63766
  });
63453
- var cancel = (0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_3__.Button)(jodit, {
63767
+ var cancel = (0,_core_ui_button_button_button_js__WEBPACK_IMPORTED_MODULE_4__.Button)(jodit, {
63454
63768
  text: 'Cancel',
63455
63769
  tabIndex: 0
63456
63770
  }).onAction(function() {
@@ -63764,7 +64078,7 @@ function _wrap_native_super(Class) {
63764
64078
  this.j.buffer.set(_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, html);
63765
64079
  switch(action){
63766
64080
  case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSERT_CLEAR_HTML:
63767
- html = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.cleanFromWord)(html);
64081
+ html = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.cleanFromWord)((0,_helpers_js__WEBPACK_IMPORTED_MODULE_7__.removeGoogleDocsWrapper)(html));
63768
64082
  break;
63769
64083
  case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INSERT_ONLY_TEXT:
63770
64084
  html = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.stripTags)(html, this.j.ed, new Set(this.j.o.pasteExcludeStripTags), this.j.o.nl2brInPlainText);
@@ -65793,7 +66107,7 @@ var keyBInd = '__jodit-resizer_binded';
65793
66107
  var _this = this;
65794
66108
  var editor = this.j;
65795
66109
  editor.e.off(editor.editor, '.resizer').off(editor.ow, '.resizer').on(editor.editor, 'keydown.resizer', function(e) {
65796
- if (_this.isShown && e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DELETE && _this.element && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(_this.element, 'table')) {
66110
+ if (_this.isShown && (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DELETE || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_BACKSPACE) && _this.element && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(_this.element, 'table')) {
65797
66111
  _this.onDelete(e);
65798
66112
  }
65799
66113
  }).on(editor.ow, 'resize.resizer', this.updateSize).on('resize.resizer', this.updateSize).on([
@@ -66034,8 +66348,12 @@ var keyBInd = '__jodit-resizer_binded';
66034
66348
  this.j.e.off(element, 'mousedown.select touchstart.select').on(element, 'mousedown.select touchstart.select', function() {
66035
66349
  _this.j.s.select(element);
66036
66350
  }).off(element, 'changesize').on(element, 'changesize', function() {
66037
- ;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(iframe, 'width', element.offsetWidth + 'px');
66038
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(iframe, 'height', element.offsetHeight + 'px');
66351
+ // Only a resize sets the embed's size, and as the plain numbers
66352
+ // the attributes take, so a click leaves `width="100%"` alone
66353
+ if (_this.isResizeMode) {
66354
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(iframe, 'width', element.offsetWidth);
66355
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(iframe, 'height', element.offsetHeight);
66356
+ }
66039
66357
  });
66040
66358
  }
66041
66359
  this.j.e.on(element, 'dragstart', this.hide);
@@ -68483,18 +68801,26 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
68483
68801
  break;
68484
68802
  case 'empty':
68485
68803
  cells1.forEach(function(td) {
68486
- return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.detach(td);
68804
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.detach(td);
68805
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(td, _this.j.createInside.element('br'));
68487
68806
  });
68488
68807
  break;
68489
68808
  case 'bin':
68490
- _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(table);
68809
+ this.__removeTable(table);
68491
68810
  break;
68492
68811
  case 'binrow':
68493
- new Set(cells1.map(function(td) {
68494
- return td.parentNode;
68495
- })).forEach(function(row) {
68496
- _this.__tableModule.removeRow(table, row.rowIndex);
68497
- });
68812
+ {
68813
+ var rows = new Set(cells1.map(function(td) {
68814
+ return td.parentNode;
68815
+ }));
68816
+ var next = this.__nearestCell(table, cell, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.toArray)(rows).map(function(row) {
68817
+ return row.rowIndex;
68818
+ }), true);
68819
+ rows.forEach(function(row) {
68820
+ _this.__tableModule.removeRow(table, row.rowIndex);
68821
+ });
68822
+ next && this.j.s.setCursorIn(next);
68823
+ }
68498
68824
  break;
68499
68825
  case 'bincolumn':
68500
68826
  {
@@ -68507,11 +68833,13 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
68507
68833
  columnsSet.add(col);
68508
68834
  }
68509
68835
  });
68836
+ var next1 = this.__nearestCell(table, cell, columns, false);
68510
68837
  columns.sort(function(a, b) {
68511
68838
  return b - a;
68512
68839
  }).forEach(function(col) {
68513
68840
  _this.__tableModule.removeColumn(table, col);
68514
68841
  });
68842
+ next1 && this.j.s.setCursorIn(next1);
68515
68843
  }
68516
68844
  break;
68517
68845
  case 'addcolumnafter':
@@ -68523,6 +68851,9 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
68523
68851
  this.__tableModule.appendRow(table, cell.parentNode, command === 'addrowafter');
68524
68852
  break;
68525
68853
  }
68854
+ if (/^bin(row|column)$/.test(command) && !this.__tableModule.getColumnsCount(table)) {
68855
+ this.__removeTable(table);
68856
+ }
68526
68857
  }
68527
68858
  return false;
68528
68859
  }
@@ -68530,6 +68861,34 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
68530
68861
  },
68531
68862
  {
68532
68863
  /**
68864
+ * The cell that takes the caret when rows or columns are deleted: the next
68865
+ * one in the same column (or row) that is not deleted, else the previous one
68866
+ */ key: "__nearestCell",
68867
+ value: function __nearestCell(table, cell, deleted, isRow) {
68868
+ var box = this.__tableModule.formalMatrix(table);
68869
+ var _this___tableModule_formalCoordinate = _sliced_to_array(this.__tableModule.formalCoordinate(table, cell), 2), row = _this___tableModule_formalCoordinate[0], column = _this___tableModule_formalCoordinate[1];
68870
+ var start = isRow ? row : column;
68871
+ var count = isRow ? box.length : box[row].length;
68872
+ var find = function find(i) {
68873
+ return !deleted.includes(i) && (isRow ? box[i][column] : box[row][i]) || null;
68874
+ };
68875
+ for(var i = start + 1; i < count; i += 1){
68876
+ var next = find(i);
68877
+ if (next) {
68878
+ return next;
68879
+ }
68880
+ }
68881
+ for(var i1 = start - 1; i1 >= 0; i1 -= 1){
68882
+ var prev = find(i1);
68883
+ if (prev) {
68884
+ return prev;
68885
+ }
68886
+ }
68887
+ return null;
68888
+ }
68889
+ },
68890
+ {
68891
+ /**
68533
68892
  * Add some align after native command
68534
68893
  */ key: "onAfterCommand",
68535
68894
  value: function onAfterCommand(command) {
@@ -68540,6 +68899,17 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
68540
68899
  }
68541
68900
  }
68542
68901
  },
68902
+ {
68903
+ /**
68904
+ * Remove the table and put the caret where it stood: at the start of what
68905
+ * follows it, else at the end of what precedes it
68906
+ */ key: "__removeTable",
68907
+ value: function __removeTable(table) {
68908
+ var parent = table.parentNode, next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(table, false), prev = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.findNotEmptySibling(table, true);
68909
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(table);
68910
+ this.j.s.setCursorIn(next || prev || parent, Boolean(next));
68911
+ }
68912
+ },
68543
68913
  {
68544
68914
  /** @override */ key: "beforeDestruct",
68545
68915
  value: function beforeDestruct(jodit) {
@@ -74901,7 +75271,7 @@ var WORK_KEYS = new Set([
74901
75271
  _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(next, first);
74902
75272
  editor.s.setCursorBefore(first);
74903
75273
  } else {
74904
- if (key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB) {
75274
+ if (key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_TAB && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(next)) {
74905
75275
  editor.s.select(next, true);
74906
75276
  } else {
74907
75277
  editor.s.setCursorIn(next, key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT || key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN);
@@ -75013,6 +75383,37 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.table = {
75013
75383
  useExtraClassesOptions: false
75014
75384
  };
75015
75385
  _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('table', _table_svg_js__WEBPACK_IMPORTED_MODULE_6__["default"]);
75386
+ /**
75387
+ * Elements in `dtd.blockLimits` that hold only rows, cells or list items, so
75388
+ * a table can't go directly inside them
75389
+ */ var ROW_AND_ITEM_HOLDERS = new Set([
75390
+ 'table',
75391
+ 'thead',
75392
+ 'tbody',
75393
+ 'tfoot',
75394
+ 'tr',
75395
+ 'ul',
75396
+ 'ol',
75397
+ 'dl'
75398
+ ]);
75399
+ /**
75400
+ * The nearest block around the cursor that can hold the new table: an element
75401
+ * in `dtd.blockLimits`, such as a table cell, a list item or a `<div>`. The
75402
+ * cursor's own block of the `enter` tag is a line, not a container, as in the
75403
+ * dtd plugin's `checkBlockNesting`
75404
+ */ function findTableContainer(editor, current) {
75405
+ var line = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(current, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, editor.editor);
75406
+ var container = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(current, function(node) {
75407
+ var _a;
75408
+ if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(node) || node === line && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, editor.o.enter)) {
75409
+ return false;
75410
+ }
75411
+ var tag = node.nodeName.toLowerCase();
75412
+ return Boolean((_a = editor.o.dtd) === null || _a === void 0 ? void 0 : _a.blockLimits[tag]) && !ROW_AND_ITEM_HOLDERS.has(tag);
75413
+ }, editor.editor);
75414
+ // With the cursor between two rows, `current` is the next row's text
75415
+ return container && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(container, editor.s.range.startContainer) ? container : null;
75416
+ }
75016
75417
  _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
75017
75418
  data: {
75018
75419
  cols: 10,
@@ -75114,7 +75515,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
75114
75515
  editor.s.removeMarkers();
75115
75516
  editor.editor.normalize();
75116
75517
  editor.history.snapshot.restore(snapshot);
75117
- var block = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(editor.s.current(), _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, editor.editor);
75518
+ var current = editor.s.current();
75519
+ // The table goes into the cell, list item or box holding the
75520
+ // cursor, and only a block inside it is split
75521
+ var container = findTableContainer(editor, current);
75522
+ var block = container === current ? null : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(current, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, container !== null && container !== void 0 ? container : editor.editor);
75118
75523
  if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(block)) {
75119
75524
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.replace(block, table, undefined, false, true);
75120
75525
  } else {
@@ -75136,6 +75541,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
75136
75541
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, table);
75137
75542
  }
75138
75543
  }
75544
+ } else if (container && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(container) && !editor.o.table.splitBlockOnInsertTable) {
75545
+ // With no block to go after, the table goes after the text
75546
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(container, table);
75139
75547
  } else {
75140
75548
  editor.s.insertNode(table, false);
75141
75549
  }
@@ -75581,34 +75989,16 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('toolbarNavigation
75581
75989
 
75582
75990
 
75583
75991
 
75584
- // Media the popup inserts go in their wrapper (see `mediaWrappers`), aligned
75585
- // with `mediaDefaultAlign`
75586
- function prepareMedia(jodit, element) {
75587
- var media = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.wrapMedia)(jodit, element);
75588
- var mediaDefaultAlign = jodit.o.mediaDefaultAlign;
75589
- if (mediaDefaultAlign && mediaDefaultAlign !== 'normal') {
75590
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement)(media, mediaDefaultAlign, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.getAlignClasses)(jodit, media));
75591
- }
75592
- return media;
75593
- }
75594
75992
  function insertVideos(data) {
75595
75993
  var _this = this;
75596
75994
  var _a;
75597
75995
  (_a = data.files) === null || _a === void 0 ? void 0 : _a.forEach(function(file) {
75598
- _this.s.insertNode(prepareMedia(_this, _this.createInside.element('video', {
75996
+ _this.s.insertNode((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.prepareMedia)(_this, _this.createInside.element('video', {
75599
75997
  controls: '',
75600
75998
  src: data.baseurl + file
75601
75999
  })));
75602
76000
  });
75603
76001
  }
75604
- // Embed code that is one element is prepared as media; other code goes in as
75605
- // it is
75606
- function prepareEmbedCode(jodit, code) {
75607
- var box = jodit.createInside.div();
75608
- box.innerHTML = code.trim();
75609
- var element = box.firstElementChild;
75610
- return element && box.childNodes.length === 1 ? prepareMedia(jodit, element) : code;
75611
- }
75612
76002
  _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.video = {
75613
76003
  parseUrlToVideoEmbed: _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed,
75614
76004
  defaultWidth: 400,
@@ -75650,7 +76040,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.video = {
75650
76040
  ])
75651
76041
  ]), tabs = [], insertCode = function insertCode(code) {
75652
76042
  jodit.s.restore();
75653
- jodit.s.insertHTML(prepareEmbedCode(jodit, code));
76043
+ jodit.s.insertHTML((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.prepareEmbedCode)(jodit, code));
75654
76044
  close();
75655
76045
  };
75656
76046
  jodit.s.save();
@@ -75685,7 +76075,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.video = {
75685
76075
  formCode.onSubmit(function(data) {
75686
76076
  insertCode(data.code);
75687
76077
  });
75688
- return (0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.TabsWidget)(jodit, tabs);
76078
+ var box = (0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.TabsWidget)(jodit, tabs);
76079
+ // Its tabs are sized to their labels, as the file selector's are, since
76080
+ // "Upload" doesn't fit a third of the popup
76081
+ box.classList.add('jodit-file-selector');
76082
+ return box;
75689
76083
  },
75690
76084
  tags: [
75691
76085
  'iframe'