jodit-pro 4.2.35 → 4.2.41

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 (314) hide show
  1. package/es2015/889.fat.min.js +1 -1
  2. package/es2015/889.min.js +1 -1
  3. package/es2015/jodit.css +7 -1
  4. package/es2015/jodit.fat.min.css +1 -1
  5. package/es2015/jodit.fat.min.js +2 -2
  6. package/es2015/jodit.js +190 -88
  7. package/es2015/jodit.min.css +1 -1
  8. package/es2015/jodit.min.js +2 -2
  9. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  11. package/es2015/plugins/backup/backup.css +1 -1
  12. package/es2015/plugins/backup/backup.js +1 -1
  13. package/es2015/plugins/backup/backup.min.js +1 -1
  14. package/es2015/plugins/button-generator/button-generator.css +1 -1
  15. package/es2015/plugins/button-generator/button-generator.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  17. package/es2015/plugins/change-case/change-case.js +1 -1
  18. package/es2015/plugins/change-case/change-case.min.js +1 -1
  19. package/es2015/plugins/color-picker/color-picker.css +1 -1
  20. package/es2015/plugins/color-picker/color-picker.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  22. package/es2015/plugins/emoji/emoji.css +1 -1
  23. package/es2015/plugins/emoji/emoji.js +1 -1
  24. package/es2015/plugins/emoji/emoji.min.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  27. package/es2015/plugins/finder/finder.css +1 -1
  28. package/es2015/plugins/finder/finder.js +1 -1
  29. package/es2015/plugins/finder/finder.min.js +1 -1
  30. package/es2015/plugins/google-maps/google-maps.css +1 -1
  31. package/es2015/plugins/google-maps/google-maps.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  33. package/es2015/plugins/google-search/google-search.js +1 -1
  34. package/es2015/plugins/google-search/google-search.min.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  36. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  40. package/es2015/plugins/keyboard/keyboard.css +1 -1
  41. package/es2015/plugins/keyboard/keyboard.js +1 -1
  42. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  44. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  45. package/es2015/plugins/page-break/page-break.js +1 -1
  46. package/es2015/plugins/page-break/page-break.min.js +1 -1
  47. package/es2015/plugins/paste-code/paste-code.css +1 -1
  48. package/es2015/plugins/paste-code/paste-code.js +1 -1
  49. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  51. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  53. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  54. package/es2015/plugins/todo-list/todo-list.css +1 -1
  55. package/es2015/plugins/todo-list/todo-list.js +1 -1
  56. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  57. package/es2015/plugins/translate/translate.css +1 -1
  58. package/es2015/plugins/translate/translate.js +1 -1
  59. package/es2015/plugins/translate/translate.min.js +1 -1
  60. package/es2015/plugins/tune-block/tune-block.css +1 -1
  61. package/es2015/plugins/tune-block/tune-block.js +1 -1
  62. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  63. package/es2018/889.fat.min.js +1 -1
  64. package/es2018/889.min.js +1 -1
  65. package/es2018/jodit.css +7 -1
  66. package/es2018/jodit.fat.min.css +1 -1
  67. package/es2018/jodit.fat.min.js +2 -2
  68. package/es2018/jodit.js +190 -88
  69. package/es2018/jodit.min.css +1 -1
  70. package/es2018/jodit.min.js +2 -2
  71. package/es2018/plugins/autocomplete/autocomplete.js +1 -1
  72. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  73. package/es2018/plugins/backup/backup.css +1 -1
  74. package/es2018/plugins/backup/backup.js +1 -1
  75. package/es2018/plugins/backup/backup.min.js +1 -1
  76. package/es2018/plugins/button-generator/button-generator.css +1 -1
  77. package/es2018/plugins/button-generator/button-generator.js +1 -1
  78. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  79. package/es2018/plugins/change-case/change-case.js +1 -1
  80. package/es2018/plugins/change-case/change-case.min.js +1 -1
  81. package/es2018/plugins/color-picker/color-picker.css +1 -1
  82. package/es2018/plugins/color-picker/color-picker.js +1 -1
  83. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  84. package/es2018/plugins/emoji/emoji.css +1 -1
  85. package/es2018/plugins/emoji/emoji.js +1 -1
  86. package/es2018/plugins/emoji/emoji.min.js +1 -1
  87. package/es2018/plugins/export-docs/export-docs.js +1 -1
  88. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  89. package/es2018/plugins/finder/finder.css +1 -1
  90. package/es2018/plugins/finder/finder.js +1 -1
  91. package/es2018/plugins/finder/finder.min.js +1 -1
  92. package/es2018/plugins/google-maps/google-maps.css +1 -1
  93. package/es2018/plugins/google-maps/google-maps.js +1 -1
  94. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  95. package/es2018/plugins/google-search/google-search.js +1 -1
  96. package/es2018/plugins/google-search/google-search.min.js +1 -1
  97. package/es2018/plugins/highlight-signature/highlight-signature.js +1 -1
  98. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  99. package/es2018/plugins/iframe-editor/iframe-editor.css +1 -1
  100. package/es2018/plugins/iframe-editor/iframe-editor.js +1 -1
  101. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  102. package/es2018/plugins/keyboard/keyboard.css +1 -1
  103. package/es2018/plugins/keyboard/keyboard.js +1 -1
  104. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  105. package/es2018/plugins/mobile-view/mobile-view.js +1 -1
  106. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  107. package/es2018/plugins/page-break/page-break.js +1 -1
  108. package/es2018/plugins/page-break/page-break.min.js +1 -1
  109. package/es2018/plugins/paste-code/paste-code.css +1 -1
  110. package/es2018/plugins/paste-code/paste-code.js +1 -1
  111. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  112. package/es2018/plugins/paste-from-word/paste-from-word.js +1 -1
  113. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  114. package/es2018/plugins/show-blocks/show-blocks.js +1 -1
  115. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  116. package/es2018/plugins/todo-list/todo-list.css +1 -1
  117. package/es2018/plugins/todo-list/todo-list.js +1 -1
  118. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  119. package/es2018/plugins/translate/translate.css +1 -1
  120. package/es2018/plugins/translate/translate.js +1 -1
  121. package/es2018/plugins/translate/translate.min.js +1 -1
  122. package/es2018/plugins/tune-block/tune-block.css +1 -1
  123. package/es2018/plugins/tune-block/tune-block.js +1 -1
  124. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  125. package/es2021/889.fat.min.js +1 -1
  126. package/es2021/889.min.js +1 -1
  127. package/es2021/jodit.css +7 -1
  128. package/es2021/jodit.fat.min.css +1 -1
  129. package/es2021/jodit.fat.min.js +2 -2
  130. package/es2021/jodit.js +190 -87
  131. package/es2021/jodit.min.css +1 -1
  132. package/es2021/jodit.min.js +2 -2
  133. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  134. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  135. package/es2021/plugins/backup/backup.css +1 -1
  136. package/es2021/plugins/backup/backup.js +1 -1
  137. package/es2021/plugins/backup/backup.min.js +1 -1
  138. package/es2021/plugins/button-generator/button-generator.css +1 -1
  139. package/es2021/plugins/button-generator/button-generator.js +1 -1
  140. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  141. package/es2021/plugins/change-case/change-case.js +1 -1
  142. package/es2021/plugins/change-case/change-case.min.js +1 -1
  143. package/es2021/plugins/color-picker/color-picker.css +1 -1
  144. package/es2021/plugins/color-picker/color-picker.js +1 -1
  145. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  146. package/es2021/plugins/emoji/emoji.css +1 -1
  147. package/es2021/plugins/emoji/emoji.js +1 -1
  148. package/es2021/plugins/emoji/emoji.min.js +1 -1
  149. package/es2021/plugins/export-docs/export-docs.js +1 -1
  150. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  151. package/es2021/plugins/finder/finder.css +1 -1
  152. package/es2021/plugins/finder/finder.js +1 -1
  153. package/es2021/plugins/finder/finder.min.js +1 -1
  154. package/es2021/plugins/google-maps/google-maps.css +1 -1
  155. package/es2021/plugins/google-maps/google-maps.js +1 -1
  156. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  157. package/es2021/plugins/google-search/google-search.js +1 -1
  158. package/es2021/plugins/google-search/google-search.min.js +1 -1
  159. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  160. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  161. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  162. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  163. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  164. package/es2021/plugins/keyboard/keyboard.css +1 -1
  165. package/es2021/plugins/keyboard/keyboard.js +1 -1
  166. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  167. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  168. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  169. package/es2021/plugins/page-break/page-break.js +1 -1
  170. package/es2021/plugins/page-break/page-break.min.js +1 -1
  171. package/es2021/plugins/paste-code/paste-code.css +1 -1
  172. package/es2021/plugins/paste-code/paste-code.js +1 -1
  173. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  174. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  175. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  176. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  177. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  178. package/es2021/plugins/todo-list/todo-list.css +1 -1
  179. package/es2021/plugins/todo-list/todo-list.js +1 -1
  180. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  181. package/es2021/plugins/translate/translate.css +1 -1
  182. package/es2021/plugins/translate/translate.js +1 -1
  183. package/es2021/plugins/translate/translate.min.js +1 -1
  184. package/es2021/plugins/tune-block/tune-block.css +1 -1
  185. package/es2021/plugins/tune-block/tune-block.js +1 -1
  186. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  187. package/es2021.en/889.fat.min.js +1 -1
  188. package/es2021.en/889.min.js +1 -1
  189. package/es2021.en/jodit.css +7 -1
  190. package/es2021.en/jodit.fat.min.css +1 -1
  191. package/es2021.en/jodit.fat.min.js +2 -2
  192. package/es2021.en/jodit.js +190 -87
  193. package/es2021.en/jodit.min.css +1 -1
  194. package/es2021.en/jodit.min.js +2 -2
  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/color-picker/color-picker.css +1 -1
  206. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  207. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  208. package/es2021.en/plugins/emoji/emoji.css +1 -1
  209. package/es2021.en/plugins/emoji/emoji.js +1 -1
  210. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  211. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  212. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  213. package/es2021.en/plugins/finder/finder.css +1 -1
  214. package/es2021.en/plugins/finder/finder.js +1 -1
  215. package/es2021.en/plugins/finder/finder.min.js +1 -1
  216. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  217. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  218. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  219. package/es2021.en/plugins/google-search/google-search.js +1 -1
  220. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  221. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  222. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  223. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  224. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  225. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  226. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  227. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  228. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  229. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  230. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  231. package/es2021.en/plugins/page-break/page-break.js +1 -1
  232. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  233. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  234. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  235. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  236. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  237. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  238. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  239. package/es2021.en/plugins/show-blocks/show-blocks.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/292.fat.min.js +2 -2
  250. package/es5/292.js +6 -6
  251. package/es5/292.min.js +2 -2
  252. package/es5/889.fat.min.js +1 -1
  253. package/es5/889.min.js +1 -1
  254. package/es5/jodit.css +11 -2
  255. package/es5/jodit.fat.min.css +1 -1
  256. package/es5/jodit.fat.min.js +2 -2
  257. package/es5/jodit.js +197 -103
  258. package/es5/jodit.min.css +3 -3
  259. package/es5/jodit.min.js +2 -2
  260. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  261. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  262. package/es5/plugins/backup/backup.css +1 -1
  263. package/es5/plugins/backup/backup.js +1 -1
  264. package/es5/plugins/backup/backup.min.js +1 -1
  265. package/es5/plugins/button-generator/button-generator.css +1 -1
  266. package/es5/plugins/button-generator/button-generator.js +1 -1
  267. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  268. package/es5/plugins/change-case/change-case.js +1 -1
  269. package/es5/plugins/change-case/change-case.min.js +1 -1
  270. package/es5/plugins/color-picker/color-picker.css +1 -1
  271. package/es5/plugins/color-picker/color-picker.js +1 -1
  272. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  273. package/es5/plugins/emoji/emoji.css +1 -1
  274. package/es5/plugins/emoji/emoji.js +1 -1
  275. package/es5/plugins/emoji/emoji.min.js +1 -1
  276. package/es5/plugins/export-docs/export-docs.js +1 -1
  277. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  278. package/es5/plugins/finder/finder.css +1 -1
  279. package/es5/plugins/finder/finder.js +1 -1
  280. package/es5/plugins/finder/finder.min.js +1 -1
  281. package/es5/plugins/google-maps/google-maps.css +1 -1
  282. package/es5/plugins/google-maps/google-maps.js +1 -1
  283. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  284. package/es5/plugins/google-search/google-search.js +1 -1
  285. package/es5/plugins/google-search/google-search.min.js +1 -1
  286. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  287. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  288. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  289. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  290. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  291. package/es5/plugins/keyboard/keyboard.css +1 -1
  292. package/es5/plugins/keyboard/keyboard.js +1 -1
  293. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  294. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  295. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  296. package/es5/plugins/page-break/page-break.js +1 -1
  297. package/es5/plugins/page-break/page-break.min.js +1 -1
  298. package/es5/plugins/paste-code/paste-code.css +1 -1
  299. package/es5/plugins/paste-code/paste-code.js +1 -1
  300. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  301. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  302. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  303. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  304. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  305. package/es5/plugins/todo-list/todo-list.css +1 -1
  306. package/es5/plugins/todo-list/todo-list.js +1 -1
  307. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  308. package/es5/plugins/translate/translate.css +1 -1
  309. package/es5/plugins/translate/translate.js +1 -1
  310. package/es5/plugins/translate/translate.min.js +1 -1
  311. package/es5/plugins/tune-block/tune-block.css +1 -1
  312. package/es5/plugins/tune-block/tune-block.js +1 -1
  313. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  314. package/package.json +1 -1
package/es2018/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valeriy <chupurnov@gmail.com>
4
- * Version: v4.2.35
4
+ * Version: v4.2.41
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2449,7 +2449,7 @@ __webpack_require__.r(__webpack_exports__);
2449
2449
  * Released under MIT see LICENSE.txt in the project root for license information.
2450
2450
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
2451
2451
  */
2452
- const APP_VERSION = "4.2.35";
2452
+ const APP_VERSION = "4.2.41";
2453
2453
  // prettier-ignore
2454
2454
  const ES = "es2018";
2455
2455
  const IS_ES_MODERN = true;
@@ -8264,10 +8264,10 @@ const buildQuery = (data, prefix) => {
8264
8264
  * Released under MIT see LICENSE.txt in the project root for license information.
8265
8265
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
8266
8266
  */
8267
-
8268
8267
  /**
8269
8268
  * @module helpers/utils
8270
8269
  */
8270
+
8271
8271
  const completeUrl = (url) => {
8272
8272
  if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.location.protocol === 'file:' && /^\/\//.test(url)) {
8273
8273
  url = 'https:' + url;
@@ -8403,11 +8403,12 @@ function ConfigFlatten(obj) {
8403
8403
  /**
8404
8404
  * Javascript url pattern converter replace youtube/vimeo url in embed code.
8405
8405
  */
8406
- const convertMediaUrlToVideoEmbed = (url, width = 400, height = 345) => {
8406
+ const convertMediaUrlToVideoEmbed = (url, { width = 400, height = 345 } = {}) => {
8407
8407
  if (!(0,jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_1__/* .isURL */ .m)(url)) {
8408
8408
  return url;
8409
8409
  }
8410
- const parser = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('a'), pattern1 = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
8410
+ const parser = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('a');
8411
+ const pattern1 = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
8411
8412
  parser.href = url;
8412
8413
  if (!width) {
8413
8414
  width = 400;
@@ -8434,7 +8435,10 @@ const convertMediaUrlToVideoEmbed = (url, width = 400, height = 345) => {
8434
8435
  case 'www.youtu.be': {
8435
8436
  const query = parser.search
8436
8437
  ? (0,_parse_query__WEBPACK_IMPORTED_MODULE_2__/* .parseQuery */ .m)(parser.search)
8437
- : { v: parser.pathname.substr(1) };
8438
+ : { v: parser.pathname.substring(1) };
8439
+ if (/^embed\/.*/.test(query.v)) {
8440
+ query.v = query.v.substring(6);
8441
+ }
8438
8442
  return query.v
8439
8443
  ? '<iframe width="' +
8440
8444
  width +
@@ -11995,6 +11999,7 @@ function extractSelectedPart(wrapper, font, jodit) {
11995
11999
  }
11996
12000
  /**
11997
12001
  * Retrieves content before after the selected area, clears it if it is empty, and inserts before after the framed selection
12002
+ * @private
11998
12003
  */
11999
12004
  function extractAndMove(wrapper, range, left) {
12000
12005
  const fragment = range.extractContents();
@@ -14167,6 +14172,7 @@ const JODIT_EVENTS_ON_HIDE = [
14167
14172
  'changePlace.tooltip',
14168
14173
  'afterOpenPopup.tooltip',
14169
14174
  'hidePopup.tooltip',
14175
+ 'beforePopupClose.tooltip',
14170
14176
  'closeAllPopups.tooltip'
14171
14177
  ];
14172
14178
  let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_5__/* .UIElement */ .D {
@@ -14179,6 +14185,7 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
14179
14185
  constructor(view) {
14180
14186
  super(view);
14181
14187
  this.__isOpened = false;
14188
+ this.__attachedContainers = new Set();
14182
14189
  this.__listenClose = false;
14183
14190
  this.__currentTarget = null;
14184
14191
  this.__delayShowTimeout = 0;
@@ -14197,7 +14204,16 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
14197
14204
  __onAttach(container) {
14198
14205
  // TODO Move it inside __show method. Now it is here because testcase failed with capturing
14199
14206
  (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
14200
- this.j.e.on(container, 'mouseenter.tooltip', this.__onMouseEnter, {
14207
+ this.__attachedContainers.add(container);
14208
+ this.__attachedContainers.add(this.j.container);
14209
+ this.j.e
14210
+ .on(container, 'mouseenter.tooltip', this.__onMouseEnter, {
14211
+ capture: true
14212
+ })
14213
+ .on(container, 'mouseleave.tooltip', this.__onMouseLeave, {
14214
+ capture: true
14215
+ })
14216
+ .on(this.j.container, 'mouseleave.tooltip', this.__onMouseLeave, {
14201
14217
  capture: true
14202
14218
  });
14203
14219
  }
@@ -14209,10 +14225,7 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
14209
14225
  const view = this.j;
14210
14226
  view.e
14211
14227
  .on(view.ow, WINDOW_EVENTS_ON_HIDE, this.__hide)
14212
- .on(JODIT_EVENTS_ON_HIDE, this.__hide)
14213
- .on(view.container, 'mouseleave.tooltip', this.__onMouseLeave, {
14214
- capture: true
14215
- });
14228
+ .on(JODIT_EVENTS_ON_HIDE, this.__hide);
14216
14229
  }
14217
14230
  __removeListenersOnLeave() {
14218
14231
  if (!this.__listenClose) {
@@ -14222,8 +14235,7 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
14222
14235
  const view = this.j;
14223
14236
  view.e
14224
14237
  .off(view.ow, WINDOW_EVENTS_ON_HIDE, this.__hide)
14225
- .off(JODIT_EVENTS_ON_HIDE, this.__hide)
14226
- .off(view.container, 'mouseleave.tooltip', this.__onMouseLeave);
14238
+ .off(JODIT_EVENTS_ON_HIDE, this.__hide);
14227
14239
  }
14228
14240
  __onMouseLeave(e) {
14229
14241
  if (this.__currentTarget === e.target) {
@@ -14300,7 +14312,11 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
14300
14312
  this.__hideTimeout = this.async.setTimeout(this.__hide, this.j.defaultTimeout);
14301
14313
  }
14302
14314
  destruct() {
14303
- this.j.e.off(this.j.container, 'mouseenter.tooltip', this.__onMouseEnter);
14315
+ this.__attachedContainers.forEach(container => {
14316
+ this.j.e
14317
+ .off(container, 'mouseenter.tooltip', this.__onMouseEnter)
14318
+ .off(container, 'mouseleave.tooltip', this.__onMouseLeave);
14319
+ });
14304
14320
  this.__hide();
14305
14321
  super.destruct();
14306
14322
  }
@@ -16530,17 +16546,18 @@ class ProgressBar extends jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_1__/* .
16530
16546
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
16531
16547
  /* harmony export */ T: function() { return /* binding */ ViewWithToolbar; }
16532
16548
  /* harmony export */ });
16533
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31635);
16549
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(31635);
16534
16550
  /* harmony import */ var jodit_core_component_statuses__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33894);
16535
- /* harmony import */ var jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33442);
16551
+ /* harmony import */ var jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33442);
16536
16552
  /* harmony import */ var jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24014);
16537
16553
  /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23545);
16538
16554
  /* harmony import */ var jodit_core_helpers_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23462);
16539
- /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(26986);
16555
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26986);
16540
16556
  /* harmony import */ var jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(52989);
16541
- /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73246);
16542
- /* harmony import */ var jodit_core_view_view__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50313);
16543
- /* harmony import */ var jodit_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(78072);
16557
+ /* harmony import */ var jodit_core_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(76185);
16558
+ /* harmony import */ var jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(73246);
16559
+ /* harmony import */ var jodit_core_view_view__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50313);
16560
+ /* harmony import */ var jodit_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(78072);
16544
16561
  /*!
16545
16562
  * Jodit Editor (https://xdsoft.net/jodit/)
16546
16563
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -16558,13 +16575,14 @@ class ProgressBar extends jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_1__/* .
16558
16575
 
16559
16576
 
16560
16577
 
16561
- class ViewWithToolbar extends jodit_core_view_view__WEBPACK_IMPORTED_MODULE_5__/* .View */ .S {
16578
+
16579
+ class ViewWithToolbar extends jodit_core_view_view__WEBPACK_IMPORTED_MODULE_6__/* .View */ .S {
16562
16580
  /**
16563
16581
  * Container for toolbar
16564
16582
  */
16565
16583
  get toolbarContainer() {
16566
16584
  if (!this.o.fullsize &&
16567
- ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_7__/* .isString */ .K)(this.o.toolbar) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isHTMLElement(this.o.toolbar))) {
16585
+ ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_8__/* .isString */ .K)(this.o.toolbar) || jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isHTMLElement(this.o.toolbar))) {
16568
16586
  return (0,jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_4__/* .resolveElement */ .tI)(this.o.toolbar, this.o.shadowRoot || this.od);
16569
16587
  }
16570
16588
  this.o.toolbar &&
@@ -16636,7 +16654,7 @@ class ViewWithToolbar extends jodit_core_view_view__WEBPACK_IMPORTED_MODULE_5__/
16636
16654
  beforeToolbarBuild(items) {
16637
16655
  if (Object.keys(this.groupToButtons).length) {
16638
16656
  return items.map(item => {
16639
- if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_8__/* .isButtonGroup */ .i)(item) &&
16657
+ if ((0,jodit_core_ui_helpers_buttons__WEBPACK_IMPORTED_MODULE_9__/* .isButtonGroup */ .i)(item) &&
16640
16658
  item.group &&
16641
16659
  this.groupToButtons[item.group]) {
16642
16660
  return {
@@ -16654,11 +16672,12 @@ class ViewWithToolbar extends jodit_core_view_view__WEBPACK_IMPORTED_MODULE_5__/
16654
16672
  /** @override **/
16655
16673
  constructor(options, isJodit = false) {
16656
16674
  super(options, isJodit);
16657
- this.toolbar = (0,jodit_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_6__/* .makeCollection */ .$K)(this);
16675
+ this.toolbar = (0,jodit_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_7__/* .makeCollection */ .$K)(this);
16658
16676
  this.__defaultToolbarContainer = this.c.div('jodit-toolbar__box');
16659
16677
  this.registeredButtons = new Set();
16660
16678
  this.groupToButtons = {};
16661
16679
  this.isJodit = false;
16680
+ this.__tooltip = new jodit_core_ui__WEBPACK_IMPORTED_MODULE_5__/* .UITooltip */ .SB(this);
16662
16681
  this.isJodit = isJodit;
16663
16682
  this.e.on('beforeToolbarBuild', this.beforeToolbarBuild);
16664
16683
  }
@@ -16668,17 +16687,18 @@ class ViewWithToolbar extends jodit_core_view_view__WEBPACK_IMPORTED_MODULE_5__/
16668
16687
  }
16669
16688
  this.setStatus(jodit_core_component_statuses__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.beforeDestruct);
16670
16689
  this.e.off('beforeToolbarBuild', this.beforeToolbarBuild);
16690
+ this.__tooltip.destruct();
16671
16691
  this.toolbar.destruct();
16672
16692
  // @ts-ignore After destruct, we are not responsible for anything
16673
16693
  this.toolbar = undefined;
16674
16694
  super.destruct();
16675
16695
  }
16676
16696
  }
16677
- (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
16697
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .Cg)([
16678
16698
  (0,jodit_core_decorators_watch_watch__WEBPACK_IMPORTED_MODULE_1__/* .watch */ .w)(':rebuildToolbar')
16679
16699
  ], ViewWithToolbar.prototype, "buildToolbar", null);
16680
- (0,tslib__WEBPACK_IMPORTED_MODULE_9__/* .__decorate */ .Cg)([
16681
- jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay
16700
+ (0,tslib__WEBPACK_IMPORTED_MODULE_10__/* .__decorate */ .Cg)([
16701
+ jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay
16682
16702
  ], ViewWithToolbar.prototype, "beforeToolbarBuild", null);
16683
16703
 
16684
16704
 
@@ -17185,7 +17205,17 @@ let Jodit = Jodit_1 = class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE
17185
17205
  : jodit_config__WEBPACK_IMPORTED_MODULE_6__/* .Config */ .T.defaultOptions.defaultTimeout;
17186
17206
  }
17187
17207
  /**
17188
- * Method wrap usual Has Object in Object helper for prevent deep object merging in options*
17208
+ * Method wrap usual object in Object helper for prevent deep object merging in options*
17209
+ * ```js
17210
+ * const editor = Jodit.make('#editor', {
17211
+ * controls: {
17212
+ * fontsize: {
17213
+ * list: Jodit.atom([8, 9, 10])
17214
+ * }
17215
+ * }
17216
+ * });
17217
+ * ```
17218
+ * In this case, the array [8, 9, 10] will not be combined with other arrays, but will replace them
17189
17219
  */
17190
17220
  static atom(object) {
17191
17221
  return (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.markAsAtomic)(object);
@@ -21750,6 +21780,7 @@ class Snapshot extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .View
21750
21780
  constructor() {
21751
21781
  super(...arguments);
21752
21782
  this.__isBlocked = false;
21783
+ this.__levelOfTransaction = 0;
21753
21784
  }
21754
21785
  /** @override */
21755
21786
  className() {
@@ -21830,6 +21861,7 @@ class Snapshot extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .View
21830
21861
  }
21831
21862
  transaction(changes) {
21832
21863
  this.__block(true);
21864
+ this.__levelOfTransaction += 1;
21833
21865
  try {
21834
21866
  changes();
21835
21867
  }
@@ -21838,7 +21870,12 @@ class Snapshot extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .View
21838
21870
  throw e;
21839
21871
  }
21840
21872
  }
21841
- this.__block(false);
21873
+ finally {
21874
+ this.__levelOfTransaction -= 1;
21875
+ if (this.__levelOfTransaction === 0) {
21876
+ this.__block(false);
21877
+ }
21878
+ }
21842
21879
  }
21843
21880
  /**
21844
21881
  * Creates object a snapshot of editor: html and the current selection. Current selection calculate by
@@ -24085,17 +24122,26 @@ let ToolbarButton = class ToolbarButton extends jodit_core_ui_button__WEBPACK_IM
24085
24122
  if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isFunction)(ctr.popup)) {
24086
24123
  const popup = this.openPopup();
24087
24124
  popup.parentElement = this;
24088
- if (this.j.e.fire((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.camelCase)(`before-${ctr.name}-open-popup`), this.target, ctr, popup) !== false) {
24089
- const target = (_c = (_b = (_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.getTarget(this)) !== null && _b !== void 0 ? _b : this.target) !== null && _c !== void 0 ? _c : null;
24090
- const elm = ctr.popup(this.j, target, this.__closePopup, this);
24091
- if (elm) {
24092
- popup
24093
- .setContent((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isString)(elm) ? this.j.c.fromHTML(elm) : elm)
24094
- .open(() => (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.position)(this.container), false, this.j.o.allowTabNavigation
24095
- ? this.container
24096
- : undefined);
24125
+ try {
24126
+ if (this.j.e.fire((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.camelCase)(`before-${ctr.name}-open-popup`), this.target, ctr, popup) !== false) {
24127
+ const target = (_c = (_b = (_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.getTarget(this)) !== null && _b !== void 0 ? _b : this.target) !== null && _c !== void 0 ? _c : null;
24128
+ const elm = ctr.popup(this.j, target, this.__closePopup, this);
24129
+ if (elm) {
24130
+ popup
24131
+ .setContent((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isString)(elm) ? this.j.c.fromHTML(elm) : elm)
24132
+ .open(() => (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.position)(this.container), false, this.j.o.allowTabNavigation
24133
+ ? this.container
24134
+ : undefined);
24135
+ }
24136
+ else {
24137
+ this.__closePopup();
24138
+ }
24097
24139
  }
24098
24140
  }
24141
+ catch (e) {
24142
+ this.__closePopup();
24143
+ throw e;
24144
+ }
24099
24145
  /**
24100
24146
  * Fired after the popup was opened for some control button
24101
24147
  */
@@ -24485,7 +24531,6 @@ let ToolbarCollection = class ToolbarCollection extends jodit_core_ui__WEBPACK_I
24485
24531
  super(jodit);
24486
24532
  this.__listenEvents = 'updatePlugins updateToolbar changeStack mousedown mouseup keydown change afterInit readonly afterResize ' +
24487
24533
  'selectionchange changeSelection focus afterSetMode touchstart focus blur';
24488
- this.__tooltip = new jodit_core_ui__WEBPACK_IMPORTED_MODULE_2__/* .UITooltip */ .SB(this.jodit);
24489
24534
  }
24490
24535
  __initEvents() {
24491
24536
  this.j.e
@@ -24512,12 +24557,9 @@ let ToolbarCollection = class ToolbarCollection extends jodit_core_ui__WEBPACK_I
24512
24557
  }
24513
24558
  /** @override **/
24514
24559
  destruct() {
24515
- var _a;
24516
24560
  if (this.isDestructed) {
24517
24561
  return;
24518
24562
  }
24519
- (_a = this.__tooltip) === null || _a === void 0 ? void 0 : _a.destruct();
24520
- this.__tooltip = null;
24521
24563
  this.j.e
24522
24564
  .off(this.__listenEvents, this.update)
24523
24565
  .off('afterSetMode focus', this.__immediateUpdate);
@@ -26498,6 +26540,9 @@ __webpack_require__.r(__webpack_exports__);
26498
26540
  * Released under MIT see LICENSE.txt in the project root for license information.
26499
26541
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
26500
26542
  */
26543
+ /**
26544
+ * @module plugins/ai-assistant
26545
+ */
26501
26546
 
26502
26547
 
26503
26548
 
@@ -30504,9 +30549,11 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .pluginSystem */ .fg.add('enter
30504
30549
  */
30505
30550
  function checkBR(fake, jodit, shiftKeyPressed) {
30506
30551
  const isMultiLineBlock = Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.closest(fake, ['pre', 'blockquote'], jodit.editor));
30552
+ const isCell = !isMultiLineBlock && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.closest(fake, ['td', 'th'], jodit.editor);
30507
30553
  const isBRMode = jodit.o.enter.toLowerCase() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
30508
30554
  // if you use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
30509
30555
  if (isBRMode ||
30556
+ isCell ||
30510
30557
  (shiftKeyPressed && !isMultiLineBlock) ||
30511
30558
  (!shiftKeyPressed && isMultiLineBlock)) {
30512
30559
  // 2 BR before
@@ -32488,7 +32535,9 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .pluginSystem */ .fg.add('image
32488
32535
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
32489
32536
  */
32490
32537
 
32491
- /** @private */
32538
+ /**
32539
+ * @private
32540
+ */
32492
32541
  function readAlign(image, values) {
32493
32542
  // Align
32494
32543
  if (image.style.cssFloat &&
@@ -32609,6 +32658,9 @@ function readLink(state, j, values) {
32609
32658
  * Released under MIT see LICENSE.txt in the project root for license information.
32610
32659
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
32611
32660
  */
32661
+ /**
32662
+ * @module plugins/image-properties
32663
+ */
32612
32664
 
32613
32665
  /** @private */
32614
32666
  function readMargins(image, values, state) {
@@ -32652,6 +32704,9 @@ function readMargins(image, values, state) {
32652
32704
  * Released under MIT see LICENSE.txt in the project root for license information.
32653
32705
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
32654
32706
  */
32707
+ /**
32708
+ * @module plugins/image-properties
32709
+ */
32655
32710
 
32656
32711
 
32657
32712
 
@@ -33465,6 +33520,9 @@ function openImagePopup(j, dialog, state, button) {
33465
33520
  * Released under MIT see LICENSE.txt in the project root for license information.
33466
33521
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
33467
33522
  */
33523
+ /**
33524
+ * @module plugins/image-properties
33525
+ */
33468
33526
 
33469
33527
 
33470
33528
  /** @private */
@@ -33653,6 +33711,9 @@ function applyMargin(j, marginTop, marginRight, marginBottom, marginLeft, image,
33653
33711
  * Released under MIT see LICENSE.txt in the project root for license information.
33654
33712
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
33655
33713
  */
33714
+ /**
33715
+ * @module plugins/image-properties
33716
+ */
33656
33717
 
33657
33718
 
33658
33719
 
@@ -33993,6 +34054,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .pluginSystem */ .fg.add('inden
33993
34054
 
33994
34055
 
33995
34056
 
34057
+ // import 'jodit/plugins/debug/debug';
33996
34058
 
33997
34059
 
33998
34060
 
@@ -34622,10 +34684,10 @@ class inlinePopup extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plug
34622
34684
  if (!this.j.o.toolbarInlineForSelection) {
34623
34685
  return;
34624
34686
  }
34625
- const type = 'selection', sel = this.j.s.sel, range = this.j.s.range;
34626
- if ((sel === null || sel === void 0 ? void 0 : sel.isCollapsed) ||
34627
- this.isSelectedTarget(range) ||
34628
- this.tableModule.getAllSelectedCells().length) {
34687
+ const type = 'selection';
34688
+ const sel = this.j.s.sel;
34689
+ const range = this.j.s.range;
34690
+ if ((sel === null || sel === void 0 ? void 0 : sel.isCollapsed) || this.isSelectedTarget(range)) {
34629
34691
  if (this.type === type && this.popup.isOpened) {
34630
34692
  this.hidePopup();
34631
34693
  }
@@ -34650,9 +34712,9 @@ class inlinePopup extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plug
34650
34712
  /**
34651
34713
  * Shortcut for Table module
34652
34714
  */
34653
- get tableModule() {
34654
- return this.j.getInstance('Table', this.j.o);
34655
- }
34715
+ // private get tableModule(): Table {
34716
+ // return this.j.getInstance<Table>('Table', this.j.o);
34717
+ // }
34656
34718
  /** @override **/
34657
34719
  beforeDestruct(jodit) {
34658
34720
  jodit.e
@@ -35788,13 +35850,17 @@ class link extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plugin */ .
35788
35850
  }
35789
35851
  }
35790
35852
  onProcessPasteLink(ignore, html) {
35853
+ var _a, _b, _c, _d;
35791
35854
  const { jodit } = this;
35792
35855
  if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.isURL)(html) || !jodit.o.link.processPastedLink) {
35793
35856
  return;
35794
35857
  }
35795
35858
  jodit.e.stopPropagation('processPaste');
35796
35859
  if (jodit.o.link.processVideoLink) {
35797
- const embed = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.convertMediaUrlToVideoEmbed)(html);
35860
+ const embed = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.call)((_b = (_a = jodit.o.video) === null || _a === void 0 ? void 0 : _a.parseUrlToVideoEmbed) !== null && _b !== void 0 ? _b : jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.convertMediaUrlToVideoEmbed, html, {
35861
+ width: (_c = jodit.o.video) === null || _c === void 0 ? void 0 : _c.defaultWidth,
35862
+ height: (_d = jodit.o.video) === null || _d === void 0 ? void 0 : _d.defaultHeight
35863
+ });
35798
35864
  if (embed !== html) {
35799
35865
  return jodit.createInside.fromHTML(embed);
35800
35866
  }
@@ -42404,14 +42470,13 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__/* .Config */ .T.prototype.controls.sym
42404
42470
  editor.e.on(container, 'close_dialog', close);
42405
42471
  return box;
42406
42472
  }
42407
- else {
42408
- editor
42409
- .alert(container, 'Select Special Character', undefined, 'jodit-symbols')
42410
- .bindDestruct(editor);
42411
- const a = container.querySelector('a');
42412
- a && a.focus();
42413
- }
42473
+ editor
42474
+ .alert(container, 'Select Special Character', undefined, 'jodit-symbols')
42475
+ .bindDestruct(editor);
42476
+ const a = container.querySelector('a');
42477
+ a && a.focus();
42414
42478
  }
42479
+ return;
42415
42480
  }
42416
42481
  };
42417
42482
 
@@ -42928,17 +42993,15 @@ module.exports = {
42928
42993
  class symbols extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plugin */ .k {
42929
42994
  constructor(jodit) {
42930
42995
  super(jodit);
42931
- /** @override */
42932
42996
  this.buttons = [
42933
42997
  {
42934
42998
  name: 'symbols',
42935
42999
  group: 'insert'
42936
43000
  }
42937
43001
  ];
42938
- this.countInRow = 17;
43002
+ this.__countInRow = 17;
42939
43003
  (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .extendLang */ .JW)(_langs__WEBPACK_IMPORTED_MODULE_6__);
42940
43004
  }
42941
- /** @override */
42942
43005
  afterInit(jodit) {
42943
43006
  jodit.e.on('generateSpecialCharactersTable.symbols', () => {
42944
43007
  const container = jodit.c.fromHTML(`<div class="jodit-symbols__container">
@@ -42948,10 +43011,15 @@ class symbols extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_4__/* .P
42948
43011
  <div class="jodit-symbols__container_preview">
42949
43012
  <div class="jodit-symbols__preview"></div>
42950
43013
  </div>
42951
- </div>`), preview = container.querySelector('.jodit-symbols__preview'), table = container.querySelector('table'), body = table.tBodies[0], chars = [];
43014
+ </div>`);
43015
+ const preview = container.querySelector('.jodit-symbols__preview');
43016
+ const table = container.querySelector('table');
43017
+ const body = table.tBodies[0];
43018
+ const chars = [];
42952
43019
  for (let i = 0; i < jodit.o.specialCharacters.length;) {
42953
43020
  const tr = jodit.c.element('tr');
42954
- for (let j = 0; j < this.countInRow && i < jodit.o.specialCharacters.length; j += 1, i += 1) {
43021
+ for (let j = 0; j < this.__countInRow &&
43022
+ i < jodit.o.specialCharacters.length; j += 1, i += 1) {
42955
43023
  const td = jodit.c.element('td'), a = jodit.c.fromHTML(`<a
42956
43024
  data-index="${i}"
42957
43025
  data-index-j="${j}"
@@ -42973,7 +43041,9 @@ class symbols extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_4__/* .P
42973
43041
  if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(this, 'a')) {
42974
43042
  jodit.s.focus();
42975
43043
  jodit.s.insertHTML(this.innerHTML);
42976
- jodit.e.fire(this, 'close_dialog');
43044
+ if (!(e === null || e === void 0 ? void 0 : e.shiftKey)) {
43045
+ jodit.e.fire(this, 'close_dialog');
43046
+ }
42977
43047
  e && e.preventDefault();
42978
43048
  e && e.stopImmediatePropagation();
42979
43049
  }
@@ -42993,18 +43063,18 @@ class symbols extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_4__/* .P
42993
43063
  case jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN:
42994
43064
  newIndex =
42995
43065
  e.key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP
42996
- ? index - self.countInRow
42997
- : index + self.countInRow;
43066
+ ? index - self.__countInRow
43067
+ : index + self.__countInRow;
42998
43068
  if (chars[newIndex] === undefined) {
42999
43069
  newIndex =
43000
43070
  e.key === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_UP
43001
43071
  ? Math.floor(chars.length /
43002
- self.countInRow) *
43003
- self.countInRow +
43072
+ self.__countInRow) *
43073
+ self.__countInRow +
43004
43074
  jIndex
43005
43075
  : jIndex;
43006
43076
  if (newIndex > chars.length - 1) {
43007
- newIndex -= self.countInRow;
43077
+ newIndex -= self.__countInRow;
43008
43078
  }
43009
43079
  }
43010
43080
  chars[newIndex] && chars[newIndex].focus();
@@ -43619,12 +43689,17 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_0__/* .pluginSystem */ .fg.add('table
43619
43689
 
43620
43690
 
43621
43691
 
43692
+ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.video = {
43693
+ parseUrlToVideoEmbed: jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed,
43694
+ defaultWidth: 400,
43695
+ defaultHeight: 345
43696
+ };
43622
43697
  jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .I.set('video', (_video_svg__WEBPACK_IMPORTED_MODULE_6___default()));
43623
43698
  jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.video = {
43624
- popup: (editor, current, close) => {
43625
- const formLink = new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIForm */ .XV(editor, [
43626
- new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(editor, [
43627
- new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIInput */ .tS(editor, {
43699
+ popup: (jodit, current, close) => {
43700
+ const formLink = new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIForm */ .XV(jodit, [
43701
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(jodit, [
43702
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIInput */ .tS(jodit, {
43628
43703
  name: 'url',
43629
43704
  required: true,
43630
43705
  label: 'URL',
@@ -43632,26 +43707,26 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.vid
43632
43707
  validators: ['url']
43633
43708
  })
43634
43709
  ]),
43635
- new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(editor, [
43636
- (0,jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_1__/* .Button */ .$n)(editor, '', 'Insert', 'primary').onAction(() => formLink.submit())
43710
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(jodit, [
43711
+ (0,jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_1__/* .Button */ .$n)(jodit, '', 'Insert', 'primary').onAction(() => formLink.submit())
43637
43712
  ])
43638
- ]), formCode = new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIForm */ .XV(editor, [
43639
- new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(editor, [
43640
- new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UITextArea */ .F0(editor, {
43713
+ ]), formCode = new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIForm */ .XV(jodit, [
43714
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(jodit, [
43715
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UITextArea */ .F0(jodit, {
43641
43716
  name: 'code',
43642
43717
  required: true,
43643
43718
  label: 'Embed code'
43644
43719
  })
43645
43720
  ]),
43646
- new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(editor, [
43647
- (0,jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_1__/* .Button */ .$n)(editor, '', 'Insert', 'primary').onAction(() => formCode.submit())
43721
+ new jodit_core_ui_form__WEBPACK_IMPORTED_MODULE_2__/* .UIBlock */ .Yh(jodit, [
43722
+ (0,jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_1__/* .Button */ .$n)(jodit, '', 'Insert', 'primary').onAction(() => formCode.submit())
43648
43723
  ])
43649
43724
  ]), tabs = [], insertCode = (code) => {
43650
- editor.s.restore();
43651
- editor.s.insertHTML(code);
43725
+ jodit.s.restore();
43726
+ jodit.s.insertHTML(code);
43652
43727
  close();
43653
43728
  };
43654
- editor.s.save();
43729
+ jodit.s.save();
43655
43730
  tabs.push({
43656
43731
  icon: 'link',
43657
43732
  name: 'Link',
@@ -43662,12 +43737,16 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.vid
43662
43737
  content: formCode.container
43663
43738
  });
43664
43739
  formLink.onSubmit(data => {
43665
- insertCode((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed)(data.url));
43740
+ var _a, _b, _c, _d;
43741
+ insertCode((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.call)((_b = (_a = jodit.o.video) === null || _a === void 0 ? void 0 : _a.parseUrlToVideoEmbed) !== null && _b !== void 0 ? _b : jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed, data.url, {
43742
+ width: (_c = jodit.o.video) === null || _c === void 0 ? void 0 : _c.defaultWidth,
43743
+ height: (_d = jodit.o.video) === null || _d === void 0 ? void 0 : _d.defaultHeight
43744
+ }));
43666
43745
  });
43667
43746
  formCode.onSubmit(data => {
43668
43747
  insertCode(data.code);
43669
43748
  });
43670
- return (0,jodit_modules_widget__WEBPACK_IMPORTED_MODULE_5__/* .TabsWidget */ .Zg)(editor, tabs);
43749
+ return (0,jodit_modules_widget__WEBPACK_IMPORTED_MODULE_5__/* .TabsWidget */ .Zg)(jodit, tabs);
43671
43750
  },
43672
43751
  tags: ['iframe'],
43673
43752
  tooltip: 'Insert youtube/vimeo video'
@@ -46466,7 +46545,7 @@ module.exports = {assert(){}};;
46466
46545
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
46467
46546
  /* harmony export */ Cg: function() { return /* binding */ __decorate; }
46468
46547
  /* harmony export */ });
46469
- /* unused harmony exports __extends, __assign, __rest, __param, __esDecorate, __runInitializers, __propKey, __setFunctionName, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn, __addDisposableResource, __disposeResources */
46548
+ /* unused harmony exports __extends, __assign, __rest, __param, __esDecorate, __runInitializers, __propKey, __setFunctionName, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn, __addDisposableResource, __disposeResources, __rewriteRelativeImportExtension */
46470
46549
  /******************************************************************************
46471
46550
  Copyright (c) Microsoft Corporation.
46472
46551
 
@@ -46732,10 +46811,19 @@ var __setModuleDefault = Object.create ? (function(o, v) {
46732
46811
  o["default"] = v;
46733
46812
  };
46734
46813
 
46814
+ var ownKeys = function(o) {
46815
+ ownKeys = Object.getOwnPropertyNames || function (o) {
46816
+ var ar = [];
46817
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
46818
+ return ar;
46819
+ };
46820
+ return ownKeys(o);
46821
+ };
46822
+
46735
46823
  function __importStar(mod) {
46736
46824
  if (mod && mod.__esModule) return mod;
46737
46825
  var result = {};
46738
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
46826
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46739
46827
  __setModuleDefault(result, mod);
46740
46828
  return result;
46741
46829
  }
@@ -46816,12 +46904,25 @@ function __disposeResources(env) {
46816
46904
  return next();
46817
46905
  }
46818
46906
 
46907
+ function __rewriteRelativeImportExtension(path, preserveJsx) {
46908
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
46909
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
46910
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
46911
+ });
46912
+ }
46913
+ return path;
46914
+ }
46915
+
46819
46916
  /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ({
46820
46917
  __extends,
46821
46918
  __assign,
46822
46919
  __rest,
46823
46920
  __decorate,
46824
46921
  __param,
46922
+ __esDecorate,
46923
+ __runInitializers,
46924
+ __propKey,
46925
+ __setFunctionName,
46825
46926
  __metadata,
46826
46927
  __awaiter,
46827
46928
  __generator,
@@ -46844,6 +46945,7 @@ function __disposeResources(env) {
46844
46945
  __classPrivateFieldIn,
46845
46946
  __addDisposableResource,
46846
46947
  __disposeResources,
46948
+ __rewriteRelativeImportExtension,
46847
46949
  });
46848
46950
 
46849
46951
 
@@ -47129,7 +47231,7 @@ function __disposeResources(env) {
47129
47231
  /******/
47130
47232
  /************************************************************************/
47131
47233
  var __webpack_exports__ = {};
47132
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
47234
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
47133
47235
  !function() {
47134
47236
  "use strict";
47135
47237
  __webpack_require__.r(__webpack_exports__);