jodit-pro 4.13.16 → 4.13.18

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 (325) hide show
  1. package/es2015/jodit.css +2 -2
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +3 -3
  4. package/es2015/jodit.js +153 -19
  5. package/es2015/jodit.min.css +1 -1
  6. package/es2015/jodit.min.js +3 -3
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  11. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  12. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  13. package/es2015/plugins/backup/backup.css +1 -1
  14. package/es2015/plugins/backup/backup.js +1 -1
  15. package/es2015/plugins/backup/backup.min.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.css +1 -1
  17. package/es2015/plugins/button-generator/button-generator.js +1 -1
  18. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  19. package/es2015/plugins/change-case/change-case.js +1 -1
  20. package/es2015/plugins/change-case/change-case.min.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.css +1 -1
  22. package/es2015/plugins/color-picker/color-picker.js +1 -1
  23. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  24. package/es2015/plugins/emoji/emoji.css +1 -1
  25. package/es2015/plugins/emoji/emoji.js +1 -1
  26. package/es2015/plugins/emoji/emoji.min.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  29. package/es2015/plugins/finder/finder.css +1 -1
  30. package/es2015/plugins/finder/finder.js +1 -1
  31. package/es2015/plugins/finder/finder.min.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.css +1 -1
  33. package/es2015/plugins/google-maps/google-maps.js +1 -1
  34. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  35. package/es2015/plugins/google-search/google-search.js +1 -1
  36. package/es2015/plugins/google-search/google-search.min.js +1 -1
  37. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  45. package/es2015/plugins/keyboard/keyboard.css +1 -1
  46. package/es2015/plugins/keyboard/keyboard.js +1 -1
  47. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  48. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  49. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  50. package/es2015/plugins/page-break/page-break.js +1 -1
  51. package/es2015/plugins/page-break/page-break.min.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.css +1 -1
  53. package/es2015/plugins/paste-code/paste-code.js +1 -1
  54. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  55. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  56. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  57. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  58. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  59. package/es2015/plugins/style/style.css +1 -1
  60. package/es2015/plugins/style/style.js +1 -1
  61. package/es2015/plugins/style/style.min.js +1 -1
  62. package/es2015/plugins/templates/templates.css +1 -1
  63. package/es2015/plugins/templates/templates.js +1 -1
  64. package/es2015/plugins/templates/templates.min.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.css +1 -1
  66. package/es2015/plugins/todo-list/todo-list.js +1 -1
  67. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  68. package/es2015/plugins/translate/translate.css +1 -1
  69. package/es2015/plugins/translate/translate.js +1 -1
  70. package/es2015/plugins/translate/translate.min.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.css +1 -1
  72. package/es2015/plugins/tune-block/tune-block.js +1 -1
  73. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  74. package/es2018/jodit.fat.min.css +1 -1
  75. package/es2018/jodit.fat.min.js +15 -15
  76. package/es2018/jodit.min.css +1 -1
  77. package/es2018/jodit.min.js +3 -3
  78. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  79. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  80. package/es2018/plugins/backup/backup.min.js +1 -1
  81. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  82. package/es2018/plugins/change-case/change-case.min.js +1 -1
  83. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  84. package/es2018/plugins/emoji/emoji.min.js +1 -1
  85. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  86. package/es2018/plugins/finder/finder.min.js +1 -1
  87. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  88. package/es2018/plugins/google-search/google-search.min.js +1 -1
  89. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  90. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  91. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  92. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  93. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  94. package/es2018/plugins/page-break/page-break.min.js +1 -1
  95. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  96. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  97. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  98. package/es2018/plugins/style/style.min.js +1 -1
  99. package/es2018/plugins/templates/templates.min.js +1 -1
  100. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  101. package/es2018/plugins/translate/translate.min.js +1 -1
  102. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  103. package/es2021/jodit.css +2 -2
  104. package/es2021/jodit.fat.min.css +1 -1
  105. package/es2021/jodit.fat.min.js +5 -5
  106. package/es2021/jodit.js +153 -19
  107. package/es2021/jodit.min.css +1 -1
  108. package/es2021/jodit.min.js +5 -5
  109. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  110. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  112. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  113. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  114. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  115. package/es2021/plugins/backup/backup.css +1 -1
  116. package/es2021/plugins/backup/backup.js +1 -1
  117. package/es2021/plugins/backup/backup.min.js +1 -1
  118. package/es2021/plugins/button-generator/button-generator.css +1 -1
  119. package/es2021/plugins/button-generator/button-generator.js +1 -1
  120. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  121. package/es2021/plugins/change-case/change-case.js +1 -1
  122. package/es2021/plugins/change-case/change-case.min.js +1 -1
  123. package/es2021/plugins/color-picker/color-picker.css +1 -1
  124. package/es2021/plugins/color-picker/color-picker.js +1 -1
  125. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  126. package/es2021/plugins/emoji/emoji.css +1 -1
  127. package/es2021/plugins/emoji/emoji.js +1 -1
  128. package/es2021/plugins/emoji/emoji.min.js +1 -1
  129. package/es2021/plugins/export-docs/export-docs.js +1 -1
  130. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  131. package/es2021/plugins/finder/finder.css +1 -1
  132. package/es2021/plugins/finder/finder.js +1 -1
  133. package/es2021/plugins/finder/finder.min.js +1 -1
  134. package/es2021/plugins/google-maps/google-maps.css +1 -1
  135. package/es2021/plugins/google-maps/google-maps.js +1 -1
  136. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  137. package/es2021/plugins/google-search/google-search.js +1 -1
  138. package/es2021/plugins/google-search/google-search.min.js +1 -1
  139. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  140. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  141. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  142. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  143. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  144. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  145. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  146. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  147. package/es2021/plugins/keyboard/keyboard.css +1 -1
  148. package/es2021/plugins/keyboard/keyboard.js +1 -1
  149. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  150. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  151. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  152. package/es2021/plugins/page-break/page-break.js +1 -1
  153. package/es2021/plugins/page-break/page-break.min.js +1 -1
  154. package/es2021/plugins/paste-code/paste-code.css +1 -1
  155. package/es2021/plugins/paste-code/paste-code.js +1 -1
  156. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  157. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  158. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  159. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  160. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  161. package/es2021/plugins/style/style.css +1 -1
  162. package/es2021/plugins/style/style.js +1 -1
  163. package/es2021/plugins/style/style.min.js +1 -1
  164. package/es2021/plugins/templates/templates.css +1 -1
  165. package/es2021/plugins/templates/templates.js +1 -1
  166. package/es2021/plugins/templates/templates.min.js +1 -1
  167. package/es2021/plugins/todo-list/todo-list.css +1 -1
  168. package/es2021/plugins/todo-list/todo-list.js +1 -1
  169. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  170. package/es2021/plugins/translate/translate.css +1 -1
  171. package/es2021/plugins/translate/translate.js +1 -1
  172. package/es2021/plugins/translate/translate.min.js +1 -1
  173. package/es2021/plugins/tune-block/tune-block.css +1 -1
  174. package/es2021/plugins/tune-block/tune-block.js +1 -1
  175. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  176. package/es2021.en/jodit.css +2 -2
  177. package/es2021.en/jodit.fat.min.css +1 -1
  178. package/es2021.en/jodit.fat.min.js +131 -131
  179. package/es2021.en/jodit.js +153 -19
  180. package/es2021.en/jodit.min.css +1 -1
  181. package/es2021.en/jodit.min.js +5 -5
  182. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  183. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  184. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  185. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  186. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  187. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  188. package/es2021.en/plugins/backup/backup.css +1 -1
  189. package/es2021.en/plugins/backup/backup.js +1 -1
  190. package/es2021.en/plugins/backup/backup.min.js +1 -1
  191. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  192. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  193. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  194. package/es2021.en/plugins/change-case/change-case.js +1 -1
  195. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  196. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  197. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  198. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  199. package/es2021.en/plugins/emoji/emoji.css +1 -1
  200. package/es2021.en/plugins/emoji/emoji.js +1 -1
  201. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  202. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  203. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  204. package/es2021.en/plugins/finder/finder.css +1 -1
  205. package/es2021.en/plugins/finder/finder.js +1 -1
  206. package/es2021.en/plugins/finder/finder.min.js +1 -1
  207. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  208. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  209. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  210. package/es2021.en/plugins/google-search/google-search.js +1 -1
  211. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  212. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  213. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  214. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  215. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  216. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  217. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  218. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  219. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  220. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  221. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  222. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  223. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  224. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  225. package/es2021.en/plugins/page-break/page-break.js +1 -1
  226. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  227. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  228. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  229. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  230. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  231. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  232. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  233. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  234. package/es2021.en/plugins/style/style.css +1 -1
  235. package/es2021.en/plugins/style/style.js +1 -1
  236. package/es2021.en/plugins/style/style.min.js +1 -1
  237. package/es2021.en/plugins/templates/templates.css +1 -1
  238. package/es2021.en/plugins/templates/templates.js +1 -1
  239. package/es2021.en/plugins/templates/templates.min.js +1 -1
  240. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  241. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  242. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  243. package/es2021.en/plugins/translate/translate.css +1 -1
  244. package/es2021.en/plugins/translate/translate.js +1 -1
  245. package/es2021.en/plugins/translate/translate.min.js +1 -1
  246. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  247. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  248. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  249. package/es5/jodit.css +3 -3
  250. package/es5/jodit.fat.min.css +1 -1
  251. package/es5/jodit.fat.min.js +2 -2
  252. package/es5/jodit.js +189 -19
  253. package/es5/jodit.min.css +3 -3
  254. package/es5/jodit.min.js +2 -2
  255. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  256. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  257. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  258. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  259. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  260. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  261. package/es5/plugins/backup/backup.css +1 -1
  262. package/es5/plugins/backup/backup.js +1 -1
  263. package/es5/plugins/backup/backup.min.js +1 -1
  264. package/es5/plugins/button-generator/button-generator.css +1 -1
  265. package/es5/plugins/button-generator/button-generator.js +1 -1
  266. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  267. package/es5/plugins/change-case/change-case.js +1 -1
  268. package/es5/plugins/change-case/change-case.min.js +1 -1
  269. package/es5/plugins/color-picker/color-picker.css +1 -1
  270. package/es5/plugins/color-picker/color-picker.js +1 -1
  271. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  272. package/es5/plugins/emoji/emoji.css +1 -1
  273. package/es5/plugins/emoji/emoji.js +1 -1
  274. package/es5/plugins/emoji/emoji.min.js +1 -1
  275. package/es5/plugins/export-docs/export-docs.js +1 -1
  276. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  277. package/es5/plugins/finder/finder.css +1 -1
  278. package/es5/plugins/finder/finder.js +1 -1
  279. package/es5/plugins/finder/finder.min.js +1 -1
  280. package/es5/plugins/google-maps/google-maps.css +1 -1
  281. package/es5/plugins/google-maps/google-maps.js +1 -1
  282. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  283. package/es5/plugins/google-search/google-search.js +1 -1
  284. package/es5/plugins/google-search/google-search.min.js +1 -1
  285. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  286. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  287. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  288. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  289. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  290. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  291. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  292. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  293. package/es5/plugins/keyboard/keyboard.css +1 -1
  294. package/es5/plugins/keyboard/keyboard.js +1 -1
  295. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  296. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  297. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  298. package/es5/plugins/page-break/page-break.js +1 -1
  299. package/es5/plugins/page-break/page-break.min.js +1 -1
  300. package/es5/plugins/paste-code/paste-code.css +1 -1
  301. package/es5/plugins/paste-code/paste-code.js +1 -1
  302. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  303. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  304. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  305. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  306. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  307. package/es5/plugins/style/style.css +1 -1
  308. package/es5/plugins/style/style.js +1 -1
  309. package/es5/plugins/style/style.min.js +1 -1
  310. package/es5/plugins/templates/templates.css +1 -1
  311. package/es5/plugins/templates/templates.js +1 -1
  312. package/es5/plugins/templates/templates.min.js +1 -1
  313. package/es5/plugins/todo-list/todo-list.css +1 -1
  314. package/es5/plugins/todo-list/todo-list.js +1 -1
  315. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  316. package/es5/plugins/translate/translate.css +1 -1
  317. package/es5/plugins/translate/translate.js +1 -1
  318. package/es5/plugins/translate/translate.min.js +1 -1
  319. package/es5/plugins/tune-block/tune-block.css +1 -1
  320. package/es5/plugins/tune-block/tune-block.js +1 -1
  321. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  322. package/es5/polyfills.fat.min.js +1 -1
  323. package/es5/polyfills.js +1 -1
  324. package/es5/polyfills.min.js +1 -1
  325. package/package.json +1 -1
package/es2015/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.16
4
+ * Version: v4.13.18
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1838,7 +1838,7 @@ __webpack_require__.r(__webpack_exports__);
1838
1838
  * ```
1839
1839
  * @packageDocumentation
1840
1840
  * @module constants
1841
- */ const APP_VERSION = "4.13.16";
1841
+ */ const APP_VERSION = "4.13.18";
1842
1842
  // prettier-ignore
1843
1843
  const ES = "es2015";
1844
1844
  const IS_ES_MODERN = true;
@@ -6031,7 +6031,7 @@ const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
6031
6031
  // markup into a live node.
6032
6032
  const foreign = box.querySelectorAll('math *, svg *');
6033
6033
  for(let i = 0; i < foreign.length; i++){
6034
- if (foreign[i].isConnected && isSmuggledForeignHtml(foreign[i])) {
6034
+ if (box.contains(foreign[i]) && isSmuggledForeignHtml(foreign[i])) {
6035
6035
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(foreign[i]);
6036
6036
  }
6037
6037
  }
@@ -6139,7 +6139,8 @@ function sanitizeHTMLElement(elm, { safeJavaScriptLink, removeOnError } = {
6139
6139
  // scheme (e.g. `java\tscript:`) — all of which the browser still resolves to
6140
6140
  // `javascript:` on click. See GHSA-j839-gqq4-gf9j.
6141
6141
  if (safeJavaScriptLink && href && isDangerousUrl(href, tagName)) {
6142
- (0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', location.protocol + '//' + href);
6142
+ const protocol = typeof location !== 'undefined' ? location.protocol : 'http:';
6143
+ (0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', protocol + '//' + href);
6143
6144
  effected = true;
6144
6145
  }
6145
6146
  if (safeJavaScriptLink) {
@@ -11319,6 +11320,131 @@ class Selection {
11319
11320
  }
11320
11321
  return '';
11321
11322
  }
11323
+ /**
11324
+ * Splits the boundaries of the current selection and wraps every
11325
+ * contiguous run of selected inline content (grouped by block) into a
11326
+ * `<font>` element, returning those wrappers in document order.
11327
+ *
11328
+ * This is a pure-DOM replacement for the old
11329
+ * `nativeExecCommand('fontsize', false, '7')` trick which relied on the
11330
+ * browser to split the selection into `<font size="7">` fragments.
11331
+ */ __wrapSelectionFragments() {
11332
+ const range = this.range;
11333
+ this.__splitSelectionBoundaries(range);
11334
+ let root = range.commonAncestorContainer;
11335
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(root)) {
11336
+ root = root.parentNode;
11337
+ }
11338
+ if (!root) {
11339
+ return [];
11340
+ }
11341
+ return this.__wrapSelectionRuns(this.__collectContainedNodes(root, range));
11342
+ }
11343
+ /**
11344
+ * Splits the text nodes at both ends of the range so that its boundaries
11345
+ * always fall between nodes. Afterwards every node inside the range is
11346
+ * fully (not partially) selected.
11347
+ */ __splitSelectionBoundaries(range) {
11348
+ var _a, _b, _c, _d, _e, _f, _g, _h;
11349
+ let { startContainer, endContainer } = range;
11350
+ let { startOffset, endOffset } = range;
11351
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(endContainer) && endOffset > 0 && endOffset < ((_b = (_a = endContainer.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0)) {
11352
+ endContainer.splitText(endOffset);
11353
+ endOffset = (_d = (_c = endContainer.nodeValue) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : endOffset;
11354
+ }
11355
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(startContainer) && startOffset > 0 && startOffset < ((_f = (_e = startContainer.nodeValue) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0)) {
11356
+ const middle = startContainer.splitText(startOffset);
11357
+ // Selection located inside a single text node - the tail we just
11358
+ // cut off is the actual selected fragment.
11359
+ if (startContainer === endContainer) {
11360
+ endContainer = middle;
11361
+ endOffset = (_h = (_g = middle.nodeValue) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0;
11362
+ }
11363
+ startContainer = middle;
11364
+ startOffset = 0;
11365
+ }
11366
+ range.setStart(startContainer, startOffset);
11367
+ range.setEnd(endContainer, endOffset);
11368
+ // Normalize text-edge boundaries (e.g. `(text, 0)` or `(text, length)`)
11369
+ // to the element level so that containment checks based on
11370
+ // `selectNode()` treat a fully selected text node as contained.
11371
+ this.__normalizeRangeBoundary(range, true);
11372
+ this.__normalizeRangeBoundary(range, false);
11373
+ }
11374
+ __normalizeRangeBoundary(range, atStart) {
11375
+ var _a, _b;
11376
+ const container = atStart ? range.startContainer : range.endContainer;
11377
+ if (!_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(container)) {
11378
+ return;
11379
+ }
11380
+ const offset = atStart ? range.startOffset : range.endOffset;
11381
+ const length = (_b = (_a = container.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
11382
+ if (offset === 0) {
11383
+ atStart ? range.setStartBefore(container) : range.setEndBefore(container);
11384
+ } else if (offset >= length) {
11385
+ atStart ? range.setStartAfter(container) : range.setEndAfter(container);
11386
+ }
11387
+ }
11388
+ /**
11389
+ * Collects the highest-level nodes that are completely inside the range,
11390
+ * descending into nodes that are only partially selected.
11391
+ */ __collectContainedNodes(root, range) {
11392
+ const result = [];
11393
+ (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(root.childNodes).forEach((child)=>{
11394
+ if (this.__isFullyContained(range, child)) {
11395
+ result.push(child);
11396
+ } else if (child.childNodes.length && range.intersectsNode(child)) {
11397
+ result.push(...this.__collectContainedNodes(child, range));
11398
+ }
11399
+ });
11400
+ return result;
11401
+ }
11402
+ __isFullyContained(range, node) {
11403
+ const nodeRange = this.createRange();
11404
+ nodeRange.selectNode(node);
11405
+ return range.compareBoundaryPoints(Range.START_TO_START, nodeRange) <= 0 && range.compareBoundaryPoints(Range.END_TO_END, nodeRange) >= 0;
11406
+ }
11407
+ /**
11408
+ * Wraps every contiguous run of selected inline siblings into a `<font>`
11409
+ * element. Block-level nodes are never wrapped themselves - their inline
11410
+ * content is wrapped instead, keeping every `<font>` inside a single block.
11411
+ */ __wrapSelectionRuns(nodes) {
11412
+ const fonts = [];
11413
+ let run = [];
11414
+ const flush = ()=>{
11415
+ if (run.length) {
11416
+ fonts.push(this.__wrapRunInFont(run));
11417
+ run = [];
11418
+ }
11419
+ };
11420
+ nodes.forEach((node)=>{
11421
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(node) && this.__isOrContainsBlock(node)) {
11422
+ flush();
11423
+ fonts.push(...this.__wrapSelectionRuns((0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(node.childNodes)));
11424
+ } else {
11425
+ if (run.length && run[run.length - 1].parentNode !== node.parentNode) {
11426
+ flush();
11427
+ }
11428
+ run.push(node);
11429
+ }
11430
+ });
11431
+ flush();
11432
+ return fonts;
11433
+ }
11434
+ __isOrContainsBlock(node) {
11435
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(node)) {
11436
+ return true;
11437
+ }
11438
+ return (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(node.childNodes).some((child)=>this.__isOrContainsBlock(child));
11439
+ }
11440
+ __wrapRunInFont(run) {
11441
+ var _a;
11442
+ const font = this.j.createInside.element('font');
11443
+ const [first] = run;
11444
+ (_a = first.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(font, first);
11445
+ run.forEach((node)=>font.appendChild(node));
11446
+ return font;
11447
+ }
11322
11448
  /**
11323
11449
  * Wrap all selected fragments inside Tag or apply some callback
11324
11450
  */ *wrapInTagGen(fakes) {
@@ -11332,20 +11458,7 @@ class Selection {
11332
11458
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.unwrap(font);
11333
11459
  return;
11334
11460
  }
11335
- // fix issue https://github.com/xdan/jodit/issues/65
11336
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('*[style*=font-size]', this.area).forEach((elm)=>{
11337
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(elm, 'data-font-size', elm.style.fontSize.toString());
11338
- elm.style.removeProperty('font-size');
11339
- });
11340
- this.j.nativeExecCommand('fontsize', false, '7');
11341
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('*[data-font-size]', this.area).forEach((elm)=>{
11342
- const fontSize = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(elm, 'data-font-size');
11343
- if (fontSize) {
11344
- elm.style.fontSize = fontSize;
11345
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(elm, 'data-font-size', null);
11346
- }
11347
- });
11348
- const elms = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('font[size="7"]', this.area);
11461
+ const elms = this.__wrapSelectionFragments();
11349
11462
  for (const font of elms){
11350
11463
  const { firstChild, lastChild } = font;
11351
11464
  if (firstChild && firstChild === lastChild && (0,_helpers_checker_index_js__WEBPACK_IMPORTED_MODULE_4__.isMarker)(firstChild)) {
@@ -16910,9 +17023,23 @@ class ViewWithToolbar extends _view_js__WEBPACK_IMPORTED_MODULE_9__.View {
16910
17023
  if (!this.o.fullsize && ((0,_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_5__.isString)(this.o.toolbar) || _dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isHTMLElement(this.o.toolbar))) {
16911
17024
  return (0,_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_6__.resolveElement)(this.o.toolbar, this.o.shadowRoot || this.od);
16912
17025
  }
16913
- this.o.toolbar && _dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.appendChildFirst(this.container, this.__defaultToolbarContainer);
17026
+ this.o.toolbar && this.__appendToolbarBox();
16914
17027
  return this.__defaultToolbarContainer;
16915
17028
  }
17029
+ /**
17030
+ * Keep the toolbar box as the first child of the container, except that
17031
+ * children flagged with `data-jodit-above-toolbar` (e.g. the `above`
17032
+ * workplace slot used for presence bars and banners) stay above it.
17033
+ */ __appendToolbarBox() {
17034
+ const box = this.__defaultToolbarContainer;
17035
+ let anchor = this.container.firstElementChild;
17036
+ while(anchor && anchor !== box && anchor.hasAttribute('data-jodit-above-toolbar')){
17037
+ anchor = anchor.nextElementSibling;
17038
+ }
17039
+ if (anchor !== box) {
17040
+ this.container.insertBefore(box, anchor);
17041
+ }
17042
+ }
16916
17043
  /**
16917
17044
  * Change panel container
16918
17045
  */ setPanel(element) {
@@ -18308,6 +18435,12 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
18308
18435
  element.style.display = 'none';
18309
18436
  }
18310
18437
  const SLOT = 'workplace-slot';
18438
+ // A slot that always stays ABOVE the toolbar (presence bars, banners…).
18439
+ // The `data-jodit-above-toolbar` attribute tells ViewWithToolbar to keep
18440
+ // the toolbar box below it when (re)attaching the toolbar container.
18441
+ const aboveSlot = this.c.div(this.getFullElName(SLOT, 'above'), NOEDIT);
18442
+ aboveSlot.setAttribute('data-jodit-above-toolbar', '');
18443
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_7__.Dom.appendChildFirst(container, aboveSlot);
18311
18444
  const topSlot = this.c.div(this.getFullElName(SLOT, 'top'), NOEDIT);
18312
18445
  container.appendChild(topSlot);
18313
18446
  const centerSlot = this.c.div(this.getFullElName(SLOT, 'center'), NOEDIT);
@@ -18340,6 +18473,7 @@ let Jodit = Jodit_1 = class Jodit extends _modules_index_js__WEBPACK_IMPORTED_MO
18340
18473
  container,
18341
18474
  workplace,
18342
18475
  slots: {
18476
+ above: aboveSlot,
18343
18477
  top: topSlot,
18344
18478
  bottom: bottomPanel,
18345
18479
  center: centerSlot,