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/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.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
  */
@@ -2299,7 +2299,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2299
2299
  if (n === "Map" || n === "Set") return Array.from(n);
2300
2300
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2301
2301
  }
2302
- var APP_VERSION = "4.13.16";
2302
+ var APP_VERSION = "4.13.18";
2303
2303
  // prettier-ignore
2304
2304
  var ES = "es5";
2305
2305
  var IS_ES_MODERN = false;
@@ -7755,7 +7755,7 @@ var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
7755
7755
  // markup into a live node.
7756
7756
  var foreign = box.querySelectorAll('math *, svg *');
7757
7757
  for(var i = 0; i < foreign.length; i++){
7758
- if (foreign[i].isConnected && isSmuggledForeignHtml(foreign[i])) {
7758
+ if (box.contains(foreign[i]) && isSmuggledForeignHtml(foreign[i])) {
7759
7759
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(foreign[i]);
7760
7760
  }
7761
7761
  }
@@ -7881,7 +7881,8 @@ function sanitizeHTMLElement(elm) {
7881
7881
  // scheme (e.g. `java\tscript:`) — all of which the browser still resolves to
7882
7882
  // `javascript:` on click. See GHSA-j839-gqq4-gf9j.
7883
7883
  if (safeJavaScriptLink && href && isDangerousUrl(href, tagName)) {
7884
- (0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', location.protocol + '//' + href);
7884
+ var protocol = typeof location !== 'undefined' ? location.protocol : 'http:';
7885
+ (0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', protocol + '//' + href);
7885
7886
  effected = true;
7886
7887
  }
7887
7888
  if (safeJavaScriptLink) {
@@ -14724,6 +14725,164 @@ var Selection = /*#__PURE__*/ function() {
14724
14725
  return '';
14725
14726
  }
14726
14727
  },
14728
+ {
14729
+ /**
14730
+ * Splits the boundaries of the current selection and wraps every
14731
+ * contiguous run of selected inline content (grouped by block) into a
14732
+ * `<font>` element, returning those wrappers in document order.
14733
+ *
14734
+ * This is a pure-DOM replacement for the old
14735
+ * `nativeExecCommand('fontsize', false, '7')` trick which relied on the
14736
+ * browser to split the selection into `<font size="7">` fragments.
14737
+ */ key: "__wrapSelectionFragments",
14738
+ value: function __wrapSelectionFragments() {
14739
+ var range = this.range;
14740
+ this.__splitSelectionBoundaries(range);
14741
+ var root = range.commonAncestorContainer;
14742
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(root)) {
14743
+ root = root.parentNode;
14744
+ }
14745
+ if (!root) {
14746
+ return [];
14747
+ }
14748
+ return this.__wrapSelectionRuns(this.__collectContainedNodes(root, range));
14749
+ }
14750
+ },
14751
+ {
14752
+ /**
14753
+ * Splits the text nodes at both ends of the range so that its boundaries
14754
+ * always fall between nodes. Afterwards every node inside the range is
14755
+ * fully (not partially) selected.
14756
+ */ key: "__splitSelectionBoundaries",
14757
+ value: function __splitSelectionBoundaries(range) {
14758
+ var _a, _b, _c, _d, _e, _f, _g, _h;
14759
+ var startContainer = range.startContainer, endContainer = range.endContainer;
14760
+ var startOffset = range.startOffset, endOffset = range.endOffset;
14761
+ 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)) {
14762
+ endContainer.splitText(endOffset);
14763
+ endOffset = (_d = (_c = endContainer.nodeValue) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : endOffset;
14764
+ }
14765
+ 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)) {
14766
+ var middle = startContainer.splitText(startOffset);
14767
+ // Selection located inside a single text node - the tail we just
14768
+ // cut off is the actual selected fragment.
14769
+ if (startContainer === endContainer) {
14770
+ endContainer = middle;
14771
+ endOffset = (_h = (_g = middle.nodeValue) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0;
14772
+ }
14773
+ startContainer = middle;
14774
+ startOffset = 0;
14775
+ }
14776
+ range.setStart(startContainer, startOffset);
14777
+ range.setEnd(endContainer, endOffset);
14778
+ // Normalize text-edge boundaries (e.g. `(text, 0)` or `(text, length)`)
14779
+ // to the element level so that containment checks based on
14780
+ // `selectNode()` treat a fully selected text node as contained.
14781
+ this.__normalizeRangeBoundary(range, true);
14782
+ this.__normalizeRangeBoundary(range, false);
14783
+ }
14784
+ },
14785
+ {
14786
+ key: "__normalizeRangeBoundary",
14787
+ value: function __normalizeRangeBoundary(range, atStart) {
14788
+ var _a, _b;
14789
+ var container = atStart ? range.startContainer : range.endContainer;
14790
+ if (!_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isText(container)) {
14791
+ return;
14792
+ }
14793
+ var offset = atStart ? range.startOffset : range.endOffset;
14794
+ var length = (_b = (_a = container.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
14795
+ if (offset === 0) {
14796
+ atStart ? range.setStartBefore(container) : range.setEndBefore(container);
14797
+ } else if (offset >= length) {
14798
+ atStart ? range.setStartAfter(container) : range.setEndAfter(container);
14799
+ }
14800
+ }
14801
+ },
14802
+ {
14803
+ /**
14804
+ * Collects the highest-level nodes that are completely inside the range,
14805
+ * descending into nodes that are only partially selected.
14806
+ */ key: "__collectContainedNodes",
14807
+ value: function __collectContainedNodes(root, range) {
14808
+ var _this = this;
14809
+ var result = [];
14810
+ (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(root.childNodes).forEach(function(child) {
14811
+ if (_this.__isFullyContained(range, child)) {
14812
+ result.push(child);
14813
+ } else if (child.childNodes.length && range.intersectsNode(child)) {
14814
+ var _result;
14815
+ (_result = result).push.apply(_result, _to_consumable_array(_this.__collectContainedNodes(child, range)));
14816
+ }
14817
+ });
14818
+ return result;
14819
+ }
14820
+ },
14821
+ {
14822
+ key: "__isFullyContained",
14823
+ value: function __isFullyContained(range, node) {
14824
+ var nodeRange = this.createRange();
14825
+ nodeRange.selectNode(node);
14826
+ return range.compareBoundaryPoints(Range.START_TO_START, nodeRange) <= 0 && range.compareBoundaryPoints(Range.END_TO_END, nodeRange) >= 0;
14827
+ }
14828
+ },
14829
+ {
14830
+ /**
14831
+ * Wraps every contiguous run of selected inline siblings into a `<font>`
14832
+ * element. Block-level nodes are never wrapped themselves - their inline
14833
+ * content is wrapped instead, keeping every `<font>` inside a single block.
14834
+ */ key: "__wrapSelectionRuns",
14835
+ value: function __wrapSelectionRuns(nodes) {
14836
+ var _this = this;
14837
+ var fonts = [];
14838
+ var run = [];
14839
+ var flush = function flush() {
14840
+ if (run.length) {
14841
+ fonts.push(_this.__wrapRunInFont(run));
14842
+ run = [];
14843
+ }
14844
+ };
14845
+ nodes.forEach(function(node) {
14846
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isElement(node) && _this.__isOrContainsBlock(node)) {
14847
+ var _fonts;
14848
+ flush();
14849
+ (_fonts = fonts).push.apply(_fonts, _to_consumable_array(_this.__wrapSelectionRuns((0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(node.childNodes))));
14850
+ } else {
14851
+ if (run.length && run[run.length - 1].parentNode !== node.parentNode) {
14852
+ flush();
14853
+ }
14854
+ run.push(node);
14855
+ }
14856
+ });
14857
+ flush();
14858
+ return fonts;
14859
+ }
14860
+ },
14861
+ {
14862
+ key: "__isOrContainsBlock",
14863
+ value: function __isOrContainsBlock(node) {
14864
+ var _this = this;
14865
+ if (_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isBlock(node)) {
14866
+ return true;
14867
+ }
14868
+ return (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(node.childNodes).some(function(child) {
14869
+ return _this.__isOrContainsBlock(child);
14870
+ });
14871
+ }
14872
+ },
14873
+ {
14874
+ key: "__wrapRunInFont",
14875
+ value: function __wrapRunInFont(run) {
14876
+ var _a;
14877
+ var font = this.j.createInside.element('font');
14878
+ var _run = _sliced_to_array(run, 1), first = _run[0];
14879
+ (_a = first.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(font, first);
14880
+ run.forEach(function(node) {
14881
+ return font.appendChild(node);
14882
+ });
14883
+ return font;
14884
+ }
14885
+ },
14727
14886
  {
14728
14887
  key: "wrapInTagGen",
14729
14888
  value: /**
@@ -14753,20 +14912,7 @@ var Selection = /*#__PURE__*/ function() {
14753
14912
  2
14754
14913
  ];
14755
14914
  case 2:
14756
- // fix issue https://github.com/xdan/jodit/issues/65
14757
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('*[style*=font-size]', this.area).forEach(function(elm) {
14758
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(elm, 'data-font-size', elm.style.fontSize.toString());
14759
- elm.style.removeProperty('font-size');
14760
- });
14761
- this.j.nativeExecCommand('fontsize', false, '7');
14762
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('*[data-font-size]', this.area).forEach(function(elm) {
14763
- var fontSize = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(elm, 'data-font-size');
14764
- if (fontSize) {
14765
- elm.style.fontSize = fontSize;
14766
- (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(elm, 'data-font-size', null);
14767
- }
14768
- });
14769
- elms = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('font[size="7"]', this.area);
14915
+ elms = this.__wrapSelectionFragments();
14770
14916
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
14771
14917
  _state.label = 3;
14772
14918
  case 3:
@@ -24049,12 +24195,29 @@ var ViewWithToolbar = /*#__PURE__*/ function(View) {
24049
24195
  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))) {
24050
24196
  return (0,_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_6__.resolveElement)(this.o.toolbar, this.o.shadowRoot || this.od);
24051
24197
  }
24052
- this.o.toolbar && _dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.appendChildFirst(this.container, this.__defaultToolbarContainer);
24198
+ this.o.toolbar && this.__appendToolbarBox();
24053
24199
  return this.__defaultToolbarContainer;
24054
24200
  }
24055
24201
  },
24056
24202
  {
24057
24203
  /**
24204
+ * Keep the toolbar box as the first child of the container, except that
24205
+ * children flagged with `data-jodit-above-toolbar` (e.g. the `above`
24206
+ * workplace slot used for presence bars and banners) stay above it.
24207
+ */ key: "__appendToolbarBox",
24208
+ value: function __appendToolbarBox() {
24209
+ var box = this.__defaultToolbarContainer;
24210
+ var anchor = this.container.firstElementChild;
24211
+ while(anchor && anchor !== box && anchor.hasAttribute('data-jodit-above-toolbar')){
24212
+ anchor = anchor.nextElementSibling;
24213
+ }
24214
+ if (anchor !== box) {
24215
+ this.container.insertBefore(box, anchor);
24216
+ }
24217
+ }
24218
+ },
24219
+ {
24220
+ /**
24058
24221
  * Change panel container
24059
24222
  */ key: "setPanel",
24060
24223
  value: function setPanel(element) {
@@ -26016,6 +26179,12 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
26016
26179
  element.style.display = 'none';
26017
26180
  }
26018
26181
  var SLOT = 'workplace-slot';
26182
+ // A slot that always stays ABOVE the toolbar (presence bars, banners…).
26183
+ // The `data-jodit-above-toolbar` attribute tells ViewWithToolbar to keep
26184
+ // the toolbar box below it when (re)attaching the toolbar container.
26185
+ var aboveSlot = this.c.div(this.getFullElName(SLOT, 'above'), NOEDIT);
26186
+ aboveSlot.setAttribute('data-jodit-above-toolbar', '');
26187
+ _modules_index_js__WEBPACK_IMPORTED_MODULE_7__.Dom.appendChildFirst(container, aboveSlot);
26019
26188
  var topSlot = this.c.div(this.getFullElName(SLOT, 'top'), NOEDIT);
26020
26189
  container.appendChild(topSlot);
26021
26190
  var centerSlot = this.c.div(this.getFullElName(SLOT, 'center'), NOEDIT);
@@ -26048,6 +26217,7 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
26048
26217
  container: container,
26049
26218
  workplace: workplace,
26050
26219
  slots: {
26220
+ above: aboveSlot,
26051
26221
  top: topSlot,
26052
26222
  bottom: bottomPanel,
26053
26223
  center: centerSlot,