jodit-pro 4.18.3 → 4.18.7

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 (384) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +2 -0
  3. package/config.js +1 -0
  4. package/es2015/jodit.css +2 -2
  5. package/es2015/jodit.fat.min.css +1 -1
  6. package/es2015/jodit.fat.min.js +55 -18
  7. package/es2015/jodit.js +1139 -150
  8. package/es2015/jodit.min.css +1 -1
  9. package/es2015/jodit.min.js +34 -9
  10. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  11. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  12. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  13. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  14. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  15. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  16. package/es2015/plugins/backup/backup.css +1 -1
  17. package/es2015/plugins/backup/backup.js +1 -1
  18. package/es2015/plugins/backup/backup.min.js +1 -1
  19. package/es2015/plugins/button-generator/button-generator.css +1 -1
  20. package/es2015/plugins/button-generator/button-generator.js +1 -1
  21. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  22. package/es2015/plugins/change-case/change-case.js +1 -1
  23. package/es2015/plugins/change-case/change-case.min.js +1 -1
  24. package/es2015/plugins/chart/chart.css +173 -0
  25. package/es2015/plugins/chart/chart.js +1479 -0
  26. package/es2015/plugins/chart/chart.min.css +1 -0
  27. package/es2015/plugins/chart/chart.min.js +20 -0
  28. package/es2015/plugins/color-picker/color-picker.css +1 -1
  29. package/es2015/plugins/color-picker/color-picker.js +1 -1
  30. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  31. package/es2015/plugins/emoji/emoji.css +1 -1
  32. package/es2015/plugins/emoji/emoji.js +1 -1
  33. package/es2015/plugins/emoji/emoji.min.js +1 -1
  34. package/es2015/plugins/export-docs/export-docs.js +1 -1
  35. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  36. package/es2015/plugins/finder/finder.css +1 -1
  37. package/es2015/plugins/finder/finder.js +1 -1
  38. package/es2015/plugins/finder/finder.min.js +1 -1
  39. package/es2015/plugins/google-maps/google-maps.css +1 -1
  40. package/es2015/plugins/google-maps/google-maps.js +1 -1
  41. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  42. package/es2015/plugins/google-search/google-search.js +1 -1
  43. package/es2015/plugins/google-search/google-search.min.js +1 -1
  44. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  45. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  46. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  47. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  48. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  49. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  50. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  51. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  52. package/es2015/plugins/keyboard/keyboard.css +1 -1
  53. package/es2015/plugins/keyboard/keyboard.js +1 -1
  54. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  55. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  56. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  57. package/es2015/plugins/page-break/page-break.js +1 -1
  58. package/es2015/plugins/page-break/page-break.min.js +1 -1
  59. package/es2015/plugins/paste-code/paste-code.css +1 -1
  60. package/es2015/plugins/paste-code/paste-code.js +1 -1
  61. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  62. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  63. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  64. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  65. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  66. package/es2015/plugins/style/style.css +1 -1
  67. package/es2015/plugins/style/style.js +1 -1
  68. package/es2015/plugins/style/style.min.js +1 -1
  69. package/es2015/plugins/templates/templates.css +1 -1
  70. package/es2015/plugins/templates/templates.js +1 -1
  71. package/es2015/plugins/templates/templates.min.js +1 -1
  72. package/es2015/plugins/todo-list/todo-list.css +1 -1
  73. package/es2015/plugins/todo-list/todo-list.js +1 -1
  74. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  75. package/es2015/plugins/translate/translate.css +1 -1
  76. package/es2015/plugins/translate/translate.js +1 -1
  77. package/es2015/plugins/translate/translate.min.js +1 -1
  78. package/es2015/plugins/tune-block/tune-block.css +1 -1
  79. package/es2015/plugins/tune-block/tune-block.js +2 -1
  80. package/es2015/plugins/tune-block/tune-block.min.js +2 -2
  81. package/es2018/jodit.fat.min.css +1 -1
  82. package/es2018/jodit.fat.min.js +100 -63
  83. package/es2018/jodit.min.css +1 -1
  84. package/es2018/jodit.min.js +64 -39
  85. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  86. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  87. package/es2018/plugins/backup/backup.min.js +1 -1
  88. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  89. package/es2018/plugins/change-case/change-case.min.js +1 -1
  90. package/es2018/plugins/chart/chart.min.css +1 -0
  91. package/es2018/plugins/chart/chart.min.js +20 -0
  92. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  93. package/es2018/plugins/emoji/emoji.min.js +1 -1
  94. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  95. package/es2018/plugins/finder/finder.min.js +1 -1
  96. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  97. package/es2018/plugins/google-search/google-search.min.js +1 -1
  98. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  99. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  100. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  101. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  102. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  103. package/es2018/plugins/page-break/page-break.min.js +1 -1
  104. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  105. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  106. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  107. package/es2018/plugins/style/style.min.js +1 -1
  108. package/es2018/plugins/templates/templates.min.js +1 -1
  109. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  110. package/es2018/plugins/translate/translate.min.js +1 -1
  111. package/es2018/plugins/tune-block/tune-block.min.js +2 -2
  112. package/es2021/jodit.css +2 -2
  113. package/es2021/jodit.fat.min.css +1 -1
  114. package/es2021/jodit.fat.min.js +51 -14
  115. package/es2021/jodit.js +1139 -150
  116. package/es2021/jodit.min.css +1 -1
  117. package/es2021/jodit.min.js +78 -53
  118. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  119. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  120. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  121. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  122. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  123. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  124. package/es2021/plugins/backup/backup.css +1 -1
  125. package/es2021/plugins/backup/backup.js +1 -1
  126. package/es2021/plugins/backup/backup.min.js +1 -1
  127. package/es2021/plugins/button-generator/button-generator.css +1 -1
  128. package/es2021/plugins/button-generator/button-generator.js +1 -1
  129. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  130. package/es2021/plugins/change-case/change-case.js +1 -1
  131. package/es2021/plugins/change-case/change-case.min.js +1 -1
  132. package/es2021/plugins/chart/chart.css +173 -0
  133. package/es2021/plugins/chart/chart.js +1424 -0
  134. package/es2021/plugins/chart/chart.min.css +1 -0
  135. package/es2021/plugins/chart/chart.min.js +20 -0
  136. package/es2021/plugins/color-picker/color-picker.css +1 -1
  137. package/es2021/plugins/color-picker/color-picker.js +1 -1
  138. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  139. package/es2021/plugins/emoji/emoji.css +1 -1
  140. package/es2021/plugins/emoji/emoji.js +1 -1
  141. package/es2021/plugins/emoji/emoji.min.js +1 -1
  142. package/es2021/plugins/export-docs/export-docs.js +1 -1
  143. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  144. package/es2021/plugins/finder/finder.css +1 -1
  145. package/es2021/plugins/finder/finder.js +1 -1
  146. package/es2021/plugins/finder/finder.min.js +1 -1
  147. package/es2021/plugins/google-maps/google-maps.css +1 -1
  148. package/es2021/plugins/google-maps/google-maps.js +1 -1
  149. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  150. package/es2021/plugins/google-search/google-search.js +1 -1
  151. package/es2021/plugins/google-search/google-search.min.js +1 -1
  152. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  153. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  154. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  155. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  156. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  157. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  158. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  159. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  160. package/es2021/plugins/keyboard/keyboard.css +1 -1
  161. package/es2021/plugins/keyboard/keyboard.js +1 -1
  162. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  163. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  164. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  165. package/es2021/plugins/page-break/page-break.js +1 -1
  166. package/es2021/plugins/page-break/page-break.min.js +1 -1
  167. package/es2021/plugins/paste-code/paste-code.css +1 -1
  168. package/es2021/plugins/paste-code/paste-code.js +1 -1
  169. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  170. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  171. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  172. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  173. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  174. package/es2021/plugins/style/style.css +1 -1
  175. package/es2021/plugins/style/style.js +1 -1
  176. package/es2021/plugins/style/style.min.js +1 -1
  177. package/es2021/plugins/templates/templates.css +1 -1
  178. package/es2021/plugins/templates/templates.js +1 -1
  179. package/es2021/plugins/templates/templates.min.js +1 -1
  180. package/es2021/plugins/todo-list/todo-list.css +1 -1
  181. package/es2021/plugins/todo-list/todo-list.js +1 -1
  182. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  183. package/es2021/plugins/translate/translate.css +1 -1
  184. package/es2021/plugins/translate/translate.js +1 -1
  185. package/es2021/plugins/translate/translate.min.js +1 -1
  186. package/es2021/plugins/tune-block/tune-block.css +1 -1
  187. package/es2021/plugins/tune-block/tune-block.js +2 -1
  188. package/es2021/plugins/tune-block/tune-block.min.js +2 -2
  189. package/es2021.en/jodit.css +2 -2
  190. package/es2021.en/jodit.fat.min.css +1 -1
  191. package/es2021.en/jodit.fat.min.js +54 -17
  192. package/es2021.en/jodit.js +1139 -150
  193. package/es2021.en/jodit.min.css +1 -1
  194. package/es2021.en/jodit.min.js +78 -53
  195. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  196. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  197. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  198. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  199. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  200. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  201. package/es2021.en/plugins/backup/backup.css +1 -1
  202. package/es2021.en/plugins/backup/backup.js +1 -1
  203. package/es2021.en/plugins/backup/backup.min.js +1 -1
  204. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  205. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  206. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  207. package/es2021.en/plugins/change-case/change-case.js +1 -1
  208. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  209. package/es2021.en/plugins/chart/chart.css +173 -0
  210. package/es2021.en/plugins/chart/chart.js +1424 -0
  211. package/es2021.en/plugins/chart/chart.min.css +1 -0
  212. package/es2021.en/plugins/chart/chart.min.js +20 -0
  213. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  214. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  215. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  216. package/es2021.en/plugins/emoji/emoji.css +1 -1
  217. package/es2021.en/plugins/emoji/emoji.js +1 -1
  218. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  219. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  220. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  221. package/es2021.en/plugins/finder/finder.css +1 -1
  222. package/es2021.en/plugins/finder/finder.js +1 -1
  223. package/es2021.en/plugins/finder/finder.min.js +1 -1
  224. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  225. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  226. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  227. package/es2021.en/plugins/google-search/google-search.js +1 -1
  228. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  229. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  230. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  231. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  232. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  233. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  234. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  235. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  236. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  237. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  238. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  239. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  240. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  241. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  242. package/es2021.en/plugins/page-break/page-break.js +1 -1
  243. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  244. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  245. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  246. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  247. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  248. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  249. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  250. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  251. package/es2021.en/plugins/style/style.css +1 -1
  252. package/es2021.en/plugins/style/style.js +1 -1
  253. package/es2021.en/plugins/style/style.min.js +1 -1
  254. package/es2021.en/plugins/templates/templates.css +1 -1
  255. package/es2021.en/plugins/templates/templates.js +1 -1
  256. package/es2021.en/plugins/templates/templates.min.js +1 -1
  257. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  258. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  259. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  260. package/es2021.en/plugins/translate/translate.css +1 -1
  261. package/es2021.en/plugins/translate/translate.js +1 -1
  262. package/es2021.en/plugins/translate/translate.min.js +1 -1
  263. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  264. package/es2021.en/plugins/tune-block/tune-block.js +2 -1
  265. package/es2021.en/plugins/tune-block/tune-block.min.js +2 -2
  266. package/es5/jodit.css +3 -3
  267. package/es5/jodit.fat.min.css +1 -1
  268. package/es5/jodit.fat.min.js +2 -2
  269. package/es5/jodit.js +1521 -153
  270. package/es5/jodit.min.css +3 -3
  271. package/es5/jodit.min.js +2 -2
  272. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  273. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  274. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  275. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  276. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  277. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  278. package/es5/plugins/backup/backup.css +1 -1
  279. package/es5/plugins/backup/backup.js +1 -1
  280. package/es5/plugins/backup/backup.min.js +1 -1
  281. package/es5/plugins/button-generator/button-generator.css +1 -1
  282. package/es5/plugins/button-generator/button-generator.js +1 -1
  283. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  284. package/es5/plugins/change-case/change-case.js +1 -1
  285. package/es5/plugins/change-case/change-case.min.js +1 -1
  286. package/es5/plugins/chart/chart.css +173 -0
  287. package/es5/plugins/chart/chart.js +1661 -0
  288. package/es5/plugins/chart/chart.min.css +1 -0
  289. package/es5/plugins/chart/chart.min.js +8 -0
  290. package/es5/plugins/color-picker/color-picker.css +1 -1
  291. package/es5/plugins/color-picker/color-picker.js +1 -1
  292. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  293. package/es5/plugins/emoji/emoji.css +1 -1
  294. package/es5/plugins/emoji/emoji.js +1 -1
  295. package/es5/plugins/emoji/emoji.min.js +1 -1
  296. package/es5/plugins/export-docs/export-docs.js +1 -1
  297. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  298. package/es5/plugins/finder/finder.css +1 -1
  299. package/es5/plugins/finder/finder.js +1 -1
  300. package/es5/plugins/finder/finder.min.js +1 -1
  301. package/es5/plugins/google-maps/google-maps.css +1 -1
  302. package/es5/plugins/google-maps/google-maps.js +1 -1
  303. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  304. package/es5/plugins/google-search/google-search.js +1 -1
  305. package/es5/plugins/google-search/google-search.min.js +1 -1
  306. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  307. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  308. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  309. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  310. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  311. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  312. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  313. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  314. package/es5/plugins/keyboard/keyboard.css +1 -1
  315. package/es5/plugins/keyboard/keyboard.js +1 -1
  316. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  317. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  318. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  319. package/es5/plugins/page-break/page-break.js +1 -1
  320. package/es5/plugins/page-break/page-break.min.js +1 -1
  321. package/es5/plugins/paste-code/paste-code.css +1 -1
  322. package/es5/plugins/paste-code/paste-code.js +1 -1
  323. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  324. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  325. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  326. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  327. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  328. package/es5/plugins/style/style.css +1 -1
  329. package/es5/plugins/style/style.js +1 -1
  330. package/es5/plugins/style/style.min.js +1 -1
  331. package/es5/plugins/templates/templates.css +1 -1
  332. package/es5/plugins/templates/templates.js +1 -1
  333. package/es5/plugins/templates/templates.min.js +1 -1
  334. package/es5/plugins/todo-list/todo-list.css +1 -1
  335. package/es5/plugins/todo-list/todo-list.js +1 -1
  336. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  337. package/es5/plugins/translate/translate.css +1 -1
  338. package/es5/plugins/translate/translate.js +1 -1
  339. package/es5/plugins/translate/translate.min.js +1 -1
  340. package/es5/plugins/tune-block/tune-block.css +1 -1
  341. package/es5/plugins/tune-block/tune-block.js +2 -1
  342. package/es5/plugins/tune-block/tune-block.min.js +2 -2
  343. package/es5/polyfills.fat.min.js +1 -1
  344. package/es5/polyfills.js +1 -1
  345. package/es5/polyfills.min.js +1 -1
  346. package/esm/config.d.ts +27 -1
  347. package/esm/plugins/all.js +1 -1
  348. package/esm/plugins/chart/assets/chart.svg.js +1 -0
  349. package/esm/plugins/chart/chart.d.ts +56 -0
  350. package/esm/plugins/chart/chart.js +1 -0
  351. package/esm/plugins/chart/config.d.ts +33 -0
  352. package/esm/plugins/chart/config.js +1 -0
  353. package/esm/plugins/chart/helpers.d.ts +22 -0
  354. package/esm/plugins/chart/helpers.js +1 -0
  355. package/esm/plugins/chart/interface.d.ts +34 -0
  356. package/esm/plugins/chart/interface.js +0 -0
  357. package/esm/plugins/chart/render/bar.d.ts +8 -0
  358. package/esm/plugins/chart/render/bar.js +1 -0
  359. package/esm/plugins/chart/render/common.d.ts +40 -0
  360. package/esm/plugins/chart/render/common.js +1 -0
  361. package/esm/plugins/chart/render/index.d.ts +7 -0
  362. package/esm/plugins/chart/render/index.js +1 -0
  363. package/esm/plugins/chart/render/line.d.ts +7 -0
  364. package/esm/plugins/chart/render/line.js +1 -0
  365. package/esm/plugins/chart/render/pie.d.ts +7 -0
  366. package/esm/plugins/chart/render/pie.js +1 -0
  367. package/esm/plugins/chart/render/radar.d.ts +7 -0
  368. package/esm/plugins/chart/render/radar.js +1 -0
  369. package/esm/plugins/chart/ui/editor/editor.d.ts +52 -0
  370. package/esm/plugins/chart/ui/editor/editor.js +13 -0
  371. package/esm/plugins/tune-block/config.js +1 -1
  372. package/package.json +1 -1
  373. package/types/config.d.ts +27 -1
  374. package/types/plugins/chart/chart.d.ts +56 -0
  375. package/types/plugins/chart/config.d.ts +33 -0
  376. package/types/plugins/chart/helpers.d.ts +22 -0
  377. package/types/plugins/chart/interface.d.ts +34 -0
  378. package/types/plugins/chart/render/bar.d.ts +8 -0
  379. package/types/plugins/chart/render/common.d.ts +40 -0
  380. package/types/plugins/chart/render/index.d.ts +7 -0
  381. package/types/plugins/chart/render/line.d.ts +7 -0
  382. package/types/plugins/chart/render/pie.d.ts +7 -0
  383. package/types/plugins/chart/render/radar.d.ts +7 -0
  384. package/types/plugins/chart/ui/editor/editor.d.ts +52 -0
package/es5/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.18.3
4
+ * Version: v4.18.7
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -743,28 +743,18 @@ var ConfigPrototype = {};
743
743
  * them unaligned
744
744
  */ this.imageDefaultAlign = 'normal';
745
745
  /**
746
- * Class names to align images with, instead of an inline `float` or
747
- * `margin`. Aligning an image removes every class listed here and adds the
748
- * chosen alignment's, which can be several separated by spaces. An
749
- * alignment can also list several such sets, to recognise each of them;
750
- * aligning writes the first. `alignClasses.img` takes its place when set.
751
- *
752
- * ```javascript
753
- * Jodit.make('#editor', {
754
- * imageAlignClasses: {
755
- * left: 'align-left',
756
- * right: 'align-right',
757
- * center: ['align-center', 'centered']
758
- * }
759
- * });
760
- * ```
746
+ * @deprecated Use `alignClasses.img`, which takes the same value. When
747
+ * `alignClasses.img` isn't set, the editor copies this into it.
761
748
  */ this.imageAlignClasses = null;
762
749
  /**
763
- * Class names to align elements with, by tag name, as `imageAlignClasses`
764
- * does for images: `img`, and `video`, `audio` and `iframe` in the media
765
- * popup. A media wrapper (see `mediaWrappers`), and Jodit's own `jodit` and
766
- * `jodit-media` wrappers, are aligned with the classes for the media in
767
- * them.
750
+ * Class names to align elements with, by tag name, instead of an inline
751
+ * `float` or `margin`: `img`, and `video`, `audio` and `iframe` in the
752
+ * media popup. Aligning an element removes every class listed for its tag
753
+ * and adds the chosen alignment's, which can be several separated by
754
+ * spaces. An alignment can also list several such sets, to recognise each
755
+ * of them; aligning writes the first. A media wrapper (see
756
+ * `mediaWrappers`), and Jodit's own `jodit` and `jodit-media` wrappers,
757
+ * are aligned with the classes for the media in them.
768
758
  *
769
759
  * ```javascript
770
760
  * const media = {
@@ -774,7 +764,15 @@ var ConfigPrototype = {};
774
764
  * };
775
765
  *
776
766
  * Jodit.make('#editor', {
777
- * alignClasses: { video: media, iframe: media }
767
+ * alignClasses: {
768
+ * img: {
769
+ * left: 'align-left',
770
+ * right: 'align-right',
771
+ * center: ['align-center', 'centered']
772
+ * },
773
+ * video: media,
774
+ * iframe: media
775
+ * }
778
776
  * });
779
777
  * ```
780
778
  */ this.alignClasses = {};
@@ -2333,7 +2331,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2333
2331
  if (n === "Map" || n === "Set") return Array.from(n);
2334
2332
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2335
2333
  }
2336
- var APP_VERSION = "4.18.3";
2334
+ var APP_VERSION = "4.18.7";
2337
2335
  // prettier-ignore
2338
2336
  var ES = "es5";
2339
2337
  var IS_ES_MODERN = false;
@@ -9338,7 +9336,7 @@ var classSets = function classSets(value) {
9338
9336
  /**
9339
9337
  * The class names to align `elm` with: `alignClasses` for its tag, or for the
9340
9338
  * media in it when it wraps media (a `mediaWrappers` wrapper, `jodit` or
9341
- * `jodit-media`), falling back to `imageAlignClasses` for an image
9339
+ * `jodit-media`)
9342
9340
  */ function getAlignClasses(jodit, elm) {
9343
9341
  var _a, _b;
9344
9342
  if (!elm) {
@@ -9348,8 +9346,7 @@ var classSets = function classSets(value) {
9348
9346
  'jodit',
9349
9347
  'jodit-media'
9350
9348
  ])) ? elm.firstElementChild : (0,_media_wrapper_js__WEBPACK_IMPORTED_MODULE_4__.getWrappedMedia)(jodit, elm);
9351
- var tag = (media !== null && media !== void 0 ? media : elm).nodeName.toLowerCase();
9352
- return (_b = (_a = jodit.o.alignClasses) === null || _a === void 0 ? void 0 : _a[tag]) !== null && _b !== void 0 ? _b : tag === 'img' ? jodit.o.imageAlignClasses : null;
9349
+ return (_b = (_a = jodit.o.alignClasses) === null || _a === void 0 ? void 0 : _a[(media !== null && media !== void 0 ? media : elm).nodeName.toLowerCase()]) !== null && _b !== void 0 ? _b : null;
9353
9350
  }
9354
9351
  /**
9355
9352
  * Align image, with `classes` (see `alignClasses`) instead of inline styles
@@ -25995,6 +25992,19 @@ var __defaultClassesKey = 'data-jodit-default-classes';
25995
25992
  var NOEDIT = {
25996
25993
  contenteditable: false
25997
25994
  };
25995
+ /**
25996
+ * The editor's options, with the deprecated `imageAlignClasses` copied into
25997
+ * `alignClasses.img` when that isn't set
25998
+ */ function makeOptions(options) {
25999
+ var _a;
26000
+ var opt = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ConfigProto)(options || {}, _config_js__WEBPACK_IMPORTED_MODULE_7__.Config.defaultOptions);
26001
+ if (opt.imageAlignClasses && !((_a = opt.alignClasses) === null || _a === void 0 ? void 0 : _a.img)) {
26002
+ opt.alignClasses = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ConfigProto)({
26003
+ img: opt.imageAlignClasses
26004
+ }, opt.alignClasses);
26005
+ }
26006
+ return opt;
26007
+ }
25998
26008
  var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
25999
26009
  "use strict";
26000
26010
  _inherits(Jodit, ViewWithToolbar);
@@ -26968,7 +26978,7 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
26968
26978
  {
26969
26979
  /** @override **/ key: "initOptions",
26970
26980
  value: function initOptions(options) {
26971
- this.options = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ConfigProto)(options || {}, _config_js__WEBPACK_IMPORTED_MODULE_7__.Config.defaultOptions);
26981
+ this.options = makeOptions(options);
26972
26982
  }
26973
26983
  },
26974
26984
  {
@@ -27089,7 +27099,7 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
27089
27099
  right: rightSlot
27090
27100
  },
27091
27101
  statusbar: new _modules_index_js__WEBPACK_IMPORTED_MODULE_8__.StatusBar(this, container),
27092
- options: this.isReady ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.ConfigProto)(options || {}, _config_js__WEBPACK_IMPORTED_MODULE_7__.Config.defaultOptions) : this.options,
27102
+ options: this.isReady ? makeOptions(options) : this.options,
27093
27103
  history: new _modules_index_js__WEBPACK_IMPORTED_MODULE_8__.History(this),
27094
27104
  editorWindow: this.ow
27095
27105
  };
@@ -27747,7 +27757,14 @@ function addClassNames(className, elm) {
27747
27757
  'Line height': 'ارتفاع الخط',
27748
27758
  spellcheck: 'التدقيق الإملائي',
27749
27759
  'Speech Recognize': 'التعرف على الكلام',
27750
- All: 'تحديد الكل'
27760
+ All: 'تحديد الكل',
27761
+ 'Video properties': 'خصائص الفيديو',
27762
+ 'Audio properties': 'خصائص الصوت',
27763
+ Poster: 'صورة الغلاف',
27764
+ Autoplay: 'تشغيل تلقائي',
27765
+ Loop: 'تكرار',
27766
+ Muted: 'مكتوم الصوت',
27767
+ Controls: 'عناصر التحكم'
27751
27768
  });
27752
27769
 
27753
27770
 
@@ -27981,7 +27998,14 @@ function addClassNames(className, elm) {
27981
27998
  'Find Next': 'Növbətini tap',
27982
27999
  'Insert className': 'className (CSS) əlavə et',
27983
28000
  'Press Alt for custom resizing': 'Fərdi ölçüləndirmə üçün Alt düyməsini basın',
27984
- 'License: %s': 'Lisenziya: %s'
28001
+ 'License: %s': 'Lisenziya: %s',
28002
+ 'Video properties': 'Video xassələri',
28003
+ 'Audio properties': 'Audio xassələri',
28004
+ Poster: 'Örtük şəkli',
28005
+ Autoplay: 'Avtomatik oynatma',
28006
+ Loop: 'Təkrarla',
28007
+ Muted: 'Səssiz',
28008
+ Controls: 'İdarəetmə elementləri'
27985
28009
  });
27986
28010
 
27987
28011
 
@@ -28207,7 +28231,14 @@ function addClassNames(className, elm) {
28207
28231
  'Find Previous': 'Najít Předchozí',
28208
28232
  'Find Next': 'Najít Další',
28209
28233
  'Insert className': 'Vložte název třídy',
28210
- 'Press Alt for custom resizing': 'Stiskněte Alt pro vlastní změnu velikosti'
28234
+ 'Press Alt for custom resizing': 'Stiskněte Alt pro vlastní změnu velikosti',
28235
+ 'Video properties': 'Vlastnosti videa',
28236
+ 'Audio properties': 'Vlastnosti zvuku',
28237
+ Poster: 'Náhledový obrázek',
28238
+ Autoplay: 'Automatické přehrávání',
28239
+ Loop: 'Opakovat',
28240
+ Muted: 'Ztlumeno',
28241
+ Controls: 'Ovládací prvky'
28211
28242
  });
28212
28243
 
28213
28244
 
@@ -28437,7 +28468,14 @@ function addClassNames(className, elm) {
28437
28468
  'Find Next': 'Weitersuchen',
28438
28469
  'Insert className': 'className (CSS) einfügen',
28439
28470
  'Press Alt for custom resizing': 'Drücken Sie Alt für benutzerdefinierte Größenanpassung',
28440
- 'License: %s': 'Lizenz: %s'
28471
+ 'License: %s': 'Lizenz: %s',
28472
+ 'Video properties': 'Videoeigenschaften',
28473
+ 'Audio properties': 'Audioeigenschaften',
28474
+ Poster: 'Vorschaubild',
28475
+ Autoplay: 'Automatische Wiedergabe',
28476
+ Loop: 'Wiederholen',
28477
+ Muted: 'Stumm',
28478
+ Controls: 'Steuerelemente'
28441
28479
  });
28442
28480
 
28443
28481
 
@@ -28684,7 +28722,14 @@ function addClassNames(className, elm) {
28684
28722
  'Find Next': 'Buscar Siguiente',
28685
28723
  'Insert className': 'Insertar nombre de clase',
28686
28724
  'Press Alt for custom resizing': 'Presione Alt para cambiar el tamaño personalizado',
28687
- 'License: %s': 'Licencia: %s'
28725
+ 'License: %s': 'Licencia: %s',
28726
+ 'Video properties': 'Propiedades del video',
28727
+ 'Audio properties': 'Propiedades del audio',
28728
+ Poster: 'Imagen de portada',
28729
+ Autoplay: 'Reproducción automática',
28730
+ Loop: 'Repetir',
28731
+ Muted: 'Silenciado',
28732
+ Controls: 'Controles'
28688
28733
  });
28689
28734
 
28690
28735
 
@@ -28909,7 +28954,14 @@ function addClassNames(className, elm) {
28909
28954
  'Find Next': 'پیدا کردن بعدی',
28910
28955
  'Insert className': 'Insertar nombre de clase',
28911
28956
  'Press Alt for custom resizing': 'برای تغییر اندازه سفارشی فشار دهید',
28912
- 'License: %s': 'مجوز: %s'
28957
+ 'License: %s': 'مجوز: %s',
28958
+ 'Video properties': 'ویژگی‌های ویدیو',
28959
+ 'Audio properties': 'ویژگی‌های صدا',
28960
+ Poster: 'تصویر پیش‌نمایش',
28961
+ Autoplay: 'پخش خودکار',
28962
+ Loop: 'تکرار',
28963
+ Muted: 'بی‌صدا',
28964
+ Controls: 'کنترل‌ها'
28913
28965
  });
28914
28966
 
28915
28967
 
@@ -29140,7 +29192,14 @@ function addClassNames(className, elm) {
29140
29192
  'Insert className': 'Lisää luokkanimi',
29141
29193
  'Press Alt for custom resizing': 'Paina Alt muokattuun koon muuttamiseen',
29142
29194
  'Class name': 'Luokan nimi',
29143
- 'License: %s': 'Lisenssi: %s'
29195
+ 'License: %s': 'Lisenssi: %s',
29196
+ 'Video properties': 'Videon ominaisuudet',
29197
+ 'Audio properties': 'Äänen ominaisuudet',
29198
+ Poster: 'Kansikuva',
29199
+ Autoplay: 'Automaattinen toisto',
29200
+ Loop: 'Toista uudelleen',
29201
+ Muted: 'Mykistetty',
29202
+ Controls: 'Säätimet'
29144
29203
  });
29145
29204
 
29146
29205
 
@@ -29365,7 +29424,14 @@ function addClassNames(className, elm) {
29365
29424
  'Embed code': "Code d'intégration",
29366
29425
  Edit: 'Modifier',
29367
29426
  All: 'Tout sélectionner',
29368
- 'License: %s': 'Licence: %s'
29427
+ 'License: %s': 'Licence: %s',
29428
+ 'Video properties': 'Propriétés de la vidéo',
29429
+ 'Audio properties': "Propriétés de l'audio",
29430
+ Poster: "Image d'aperçu",
29431
+ Autoplay: 'Lecture automatique',
29432
+ Loop: 'Lecture en boucle',
29433
+ Muted: 'Muet',
29434
+ Controls: 'Commandes'
29369
29435
  });
29370
29436
 
29371
29437
 
@@ -29590,7 +29656,14 @@ function addClassNames(className, elm) {
29590
29656
  'Find Next': 'חפש את הבא',
29591
29657
  'Insert className': 'הכנס את שם הכיתה',
29592
29658
  'Press Alt for custom resizing': 'לחץ על אלט לשינוי גודל מותאם אישית',
29593
- 'License: %s': 'רישיון: %s'
29659
+ 'License: %s': 'רישיון: %s',
29660
+ 'Video properties': 'מאפייני וידאו',
29661
+ 'Audio properties': 'מאפייני שמע',
29662
+ Poster: 'תמונת תצוגה מקדימה',
29663
+ Autoplay: 'ניגון אוטומטי',
29664
+ Loop: 'הפעלה חוזרת',
29665
+ Muted: 'מושתק',
29666
+ Controls: 'פקדים'
29594
29667
  });
29595
29668
 
29596
29669
 
@@ -29817,7 +29890,14 @@ function addClassNames(className, elm) {
29817
29890
  'Find Next': 'Következő Keresése',
29818
29891
  'Insert className': 'Helyezze be az osztály nevét',
29819
29892
  'Press Alt for custom resizing': 'Nyomja meg az Alt egyéni átméretezés',
29820
- 'License: %s': 'Licenc: %s'
29893
+ 'License: %s': 'Licenc: %s',
29894
+ 'Video properties': 'Videó tulajdonságai',
29895
+ 'Audio properties': 'Hang tulajdonságai',
29896
+ Poster: 'Előnézeti kép',
29897
+ Autoplay: 'Automatikus lejátszás',
29898
+ Loop: 'Ismétlés',
29899
+ Muted: 'Némítva',
29900
+ Controls: 'Vezérlők'
29821
29901
  });
29822
29902
 
29823
29903
 
@@ -30043,7 +30123,14 @@ function addClassNames(className, elm) {
30043
30123
  'Find Previous': 'Menemukan Sebelumnya',
30044
30124
  'Find Next': 'Menemukan Berikutnya',
30045
30125
  'Insert className': 'Masukkan nama kelas',
30046
- 'Press Alt for custom resizing': 'Tekan Alt untuk mengubah ukuran kustom'
30126
+ 'Press Alt for custom resizing': 'Tekan Alt untuk mengubah ukuran kustom',
30127
+ 'Video properties': 'Properti video',
30128
+ 'Audio properties': 'Properti audio',
30129
+ Poster: 'Gambar sampul',
30130
+ Autoplay: 'Putar otomatis',
30131
+ Loop: 'Ulangi',
30132
+ Muted: 'Dibisukan',
30133
+ Controls: 'Kontrol'
30047
30134
  });
30048
30135
 
30049
30136
 
@@ -30273,7 +30360,14 @@ function addClassNames(className, elm) {
30273
30360
  'Find Next': 'Trova Successivo',
30274
30361
  'Insert className': 'Inserisci il nome della classe',
30275
30362
  'Press Alt for custom resizing': 'Premere Alt per il ridimensionamento personalizzato',
30276
- 'License: %s': 'Licenza: %s'
30363
+ 'License: %s': 'Licenza: %s',
30364
+ 'Video properties': 'Proprietà del video',
30365
+ 'Audio properties': "Proprietà dell'audio",
30366
+ Poster: 'Immagine di anteprima',
30367
+ Autoplay: 'Riproduzione automatica',
30368
+ Loop: 'Ripeti',
30369
+ Muted: 'Muto',
30370
+ Controls: 'Controlli'
30277
30371
  });
30278
30372
 
30279
30373
 
@@ -30503,7 +30597,14 @@ function addClassNames(className, elm) {
30503
30597
  'Upper Roman': 'ローマ数字大文字',
30504
30598
  'Insert className': 'クラス名を挿入',
30505
30599
  'Press Alt for custom resizing': 'カスタムサイズ変更のためのAltキーを押します',
30506
- 'License: %s': 'ライセンス: %s'
30600
+ 'License: %s': 'ライセンス: %s',
30601
+ 'Video properties': '動画のプロパティー',
30602
+ 'Audio properties': '音声のプロパティー',
30603
+ Poster: 'ポスター画像',
30604
+ Autoplay: '自動再生',
30605
+ Loop: 'ループ再生',
30606
+ Muted: 'ミュート',
30607
+ Controls: 'コントロール'
30507
30608
  });
30508
30609
 
30509
30610
 
@@ -30739,7 +30840,14 @@ function addClassNames(className, elm) {
30739
30840
  'Find Previous': '이전 찾기',
30740
30841
  'Find Next': '다음 찾기',
30741
30842
  'Insert className': 'className 입력',
30742
- 'Press Alt for custom resizing': '사용자 지정 크기 조정에 대 한 고도 누르십시오'
30843
+ 'Press Alt for custom resizing': '사용자 지정 크기 조정에 대 한 고도 누르십시오',
30844
+ 'Video properties': '동영상 속성',
30845
+ 'Audio properties': '오디오 속성',
30846
+ Poster: '포스터 이미지',
30847
+ Autoplay: '자동 재생',
30848
+ Loop: '반복 재생',
30849
+ Muted: '음소거',
30850
+ Controls: '컨트롤'
30743
30851
  });
30744
30852
 
30745
30853
 
@@ -30964,7 +31072,14 @@ function addClassNames(className, elm) {
30964
31072
  'Find Next': 'Дараагийнхийг ол',
30965
31073
  'Insert className': 'Бүлгийн нэрээ оруулна уу',
30966
31074
  'Press Alt for custom resizing': 'Хэмжээсийг шинээр өөчрлөхийн тулд Alt товчин дээр дарна уу',
30967
- 'License: %s': 'Лиценз: %s'
31075
+ 'License: %s': 'Лиценз: %s',
31076
+ 'Video properties': 'Видеоны үзүүлэлт',
31077
+ 'Audio properties': 'Аудионы үзүүлэлт',
31078
+ Poster: 'Нүүр зураг',
31079
+ Autoplay: 'Автоматаар тоглуулах',
31080
+ Loop: 'Давтах',
31081
+ Muted: 'Дуугүй',
31082
+ Controls: 'Удирдлага'
30968
31083
  });
30969
31084
 
30970
31085
 
@@ -31190,7 +31305,14 @@ function addClassNames(className, elm) {
31190
31305
  'Find Next': 'Volgende Zoeken',
31191
31306
  'Insert className': 'Voeg de klassenaam in',
31192
31307
  'Press Alt for custom resizing': 'Druk op Alt voor aangepaste grootte',
31193
- 'License: %s': 'Licentie: %s'
31308
+ 'License: %s': 'Licentie: %s',
31309
+ 'Video properties': 'Video-eigenschappen',
31310
+ 'Audio properties': 'Audio-eigenschappen',
31311
+ Poster: 'Voorbeeldafbeelding',
31312
+ Autoplay: 'Automatisch afspelen',
31313
+ Loop: 'Herhalen',
31314
+ Muted: 'Gedempt',
31315
+ Controls: 'Bedieningselementen'
31194
31316
  });
31195
31317
 
31196
31318
 
@@ -31424,7 +31546,14 @@ function addClassNames(className, elm) {
31424
31546
  Dot: 'Prikk',
31425
31547
  Quadrate: 'Firkant',
31426
31548
  'Find Previous': 'Finn forrige',
31427
- 'Find Next': 'Finn neste'
31549
+ 'Find Next': 'Finn neste',
31550
+ 'Video properties': 'Videoegenskaper',
31551
+ 'Audio properties': 'Lydegenskaper',
31552
+ Poster: 'Forsidebilde',
31553
+ Autoplay: 'Automatisk avspilling',
31554
+ Loop: 'Gjenta',
31555
+ Muted: 'Dempet',
31556
+ Controls: 'Kontroller'
31428
31557
  });
31429
31558
 
31430
31559
 
@@ -31649,7 +31778,14 @@ function addClassNames(className, elm) {
31649
31778
  'Find Next': 'Znajdź Dalej',
31650
31779
  'Insert className': 'Wstaw nazwę zajęć',
31651
31780
  'Press Alt for custom resizing': 'Naciśnij Alt, aby zmienić rozmiar',
31652
- 'License: %s': 'Licencja: %s'
31781
+ 'License: %s': 'Licencja: %s',
31782
+ 'Video properties': 'Właściwości filmu',
31783
+ 'Audio properties': 'Właściwości dźwięku',
31784
+ Poster: 'Obraz podglądu',
31785
+ Autoplay: 'Autoodtwarzanie',
31786
+ Loop: 'Zapętlenie',
31787
+ Muted: 'Wyciszony',
31788
+ Controls: 'Elementy sterujące'
31653
31789
  });
31654
31790
 
31655
31791
 
@@ -31879,7 +32015,14 @@ function addClassNames(className, elm) {
31879
32015
  'Find Next': 'Localizar Próxima',
31880
32016
  'Insert className': 'Insira o nome da classe',
31881
32017
  'Press Alt for custom resizing': 'Pressione Alt para redimensionamento personalizado',
31882
- 'License: %s': 'Licença: %s'
32018
+ 'License: %s': 'Licença: %s',
32019
+ 'Video properties': 'Propriedades do vídeo',
32020
+ 'Audio properties': 'Propriedades do áudio',
32021
+ Poster: 'Imagem de capa',
32022
+ Autoplay: 'Reprodução automática',
32023
+ Loop: 'Repetir',
32024
+ Muted: 'Sem som',
32025
+ Controls: 'Controles'
31883
32026
  });
31884
32027
 
31885
32028
 
@@ -32103,7 +32246,14 @@ function addClassNames(className, elm) {
32103
32246
  'Find Previous': 'Найти Предыдущие',
32104
32247
  'Find Next': 'Найти Далее',
32105
32248
  'Insert className': 'Вставить название класса',
32106
- 'Press Alt for custom resizing': 'Нажмите Alt для изменения пользовательского размера'
32249
+ 'Press Alt for custom resizing': 'Нажмите Alt для изменения пользовательского размера',
32250
+ 'Video properties': 'Свойства видео',
32251
+ 'Audio properties': 'Свойства аудио',
32252
+ Poster: 'Обложка',
32253
+ Autoplay: 'Автовоспроизведение',
32254
+ Loop: 'Повтор',
32255
+ Muted: 'Без звука',
32256
+ Controls: 'Элементы управления'
32107
32257
  });
32108
32258
 
32109
32259
 
@@ -32335,7 +32485,14 @@ function addClassNames(className, elm) {
32335
32485
  'Select file': 'Vybrať súbor',
32336
32486
  'Edit image': 'Upraviť obrázok',
32337
32487
  'Tiles view': 'Zobrazenie dlaždíc',
32338
- 'List view': 'Zobrazenie zoznamu'
32488
+ 'List view': 'Zobrazenie zoznamu',
32489
+ 'Video properties': 'Vlastnosti videa',
32490
+ 'Audio properties': 'Vlastnosti zvuku',
32491
+ Poster: 'Náhľadový obrázok',
32492
+ Autoplay: 'Automatické prehrávanie',
32493
+ Loop: 'Opakovať',
32494
+ Muted: 'Stlmené',
32495
+ Controls: 'Ovládacie prvky'
32339
32496
  });
32340
32497
 
32341
32498
 
@@ -32568,7 +32725,14 @@ function addClassNames(className, elm) {
32568
32725
  space: 'mellanslag',
32569
32726
  'Embed code': 'Bädda in kod',
32570
32727
  All: 'Välj alla',
32571
- 'License: %s': 'Licens: %s'
32728
+ 'License: %s': 'Licens: %s',
32729
+ 'Video properties': 'Videoegenskaper',
32730
+ 'Audio properties': 'Ljudegenskaper',
32731
+ Poster: 'Affischbild',
32732
+ Autoplay: 'Automatisk uppspelning',
32733
+ Loop: 'Upprepa',
32734
+ Muted: 'Ljudlös',
32735
+ Controls: 'Kontroller'
32572
32736
  });
32573
32737
 
32574
32738
 
@@ -32793,7 +32957,14 @@ function addClassNames(className, elm) {
32793
32957
  'Find Next': 'Sonrakini Bul',
32794
32958
  'Insert className': 'Sınıf adı girin',
32795
32959
  'Press Alt for custom resizing': 'Özel yeniden boyutlandırma için Alt tuşuna basın',
32796
- 'License: %s': 'Lisans: %s'
32960
+ 'License: %s': 'Lisans: %s',
32961
+ 'Video properties': 'Video özellikleri',
32962
+ 'Audio properties': 'Ses özellikleri',
32963
+ Poster: 'Kapak resmi',
32964
+ Autoplay: 'Otomatik oynat',
32965
+ Loop: 'Döngü',
32966
+ Muted: 'Sessiz',
32967
+ Controls: 'Kontroller'
32797
32968
  });
32798
32969
 
32799
32970
 
@@ -33017,7 +33188,14 @@ function addClassNames(className, elm) {
33017
33188
  'Find Previous': 'Знайти попередні',
33018
33189
  'Find Next': 'Знайти наступні',
33019
33190
  'Insert className': 'Вставити клас',
33020
- 'Press Alt for custom resizing': 'Натисніть Alt для зміни розміру'
33191
+ 'Press Alt for custom resizing': 'Натисніть Alt для зміни розміру',
33192
+ 'Video properties': 'Властивості відео',
33193
+ 'Audio properties': 'Властивості аудіо',
33194
+ Poster: 'Обкладинка',
33195
+ Autoplay: 'Автовідтворення',
33196
+ Loop: 'Повтор',
33197
+ Muted: 'Без звуку',
33198
+ Controls: 'Елементи керування'
33021
33199
  });
33022
33200
 
33023
33201
 
@@ -33243,7 +33421,14 @@ function addClassNames(className, elm) {
33243
33421
  'Find Next': '查找下一个',
33244
33422
  'Insert className': '插入班级名称',
33245
33423
  'Press Alt for custom resizing': '按Alt自定义调整大小',
33246
- 'License: %s': '许可证: %s'
33424
+ 'License: %s': '许可证: %s',
33425
+ 'Video properties': '视频属性',
33426
+ 'Audio properties': '音频属性',
33427
+ Poster: '封面图',
33428
+ Autoplay: '自动播放',
33429
+ Loop: '循环播放',
33430
+ Muted: '静音',
33431
+ Controls: '播放控件'
33247
33432
  });
33248
33433
 
33249
33434
 
@@ -33468,7 +33653,14 @@ function addClassNames(className, elm) {
33468
33653
  'Insert className': '插入 class 名稱',
33469
33654
  'Press Alt for custom resizing': '按住 Alt 以調整自訂大小',
33470
33655
  Edit: '編輯',
33471
- 'License: %s': '許可證: %s'
33656
+ 'License: %s': '許可證: %s',
33657
+ 'Video properties': '影片屬性',
33658
+ 'Audio properties': '音訊屬性',
33659
+ Poster: '封面圖片',
33660
+ Autoplay: '自動播放',
33661
+ Loop: '循環播放',
33662
+ Muted: '靜音',
33663
+ Controls: '播放控制項'
33472
33664
  });
33473
33665
 
33474
33666
 
@@ -46290,10 +46482,11 @@ UiAiAssistant = __decorate([
46290
46482
  /* harmony import */ var _table_keyboard_navigation_table_keyboard_navigation_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(72439);
46291
46483
  /* harmony import */ var _toolbar_navigation_toolbar_navigation_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(94529);
46292
46484
  /* harmony import */ var _video_video_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(26551);
46293
- /* harmony import */ var _wrap_nodes_wrap_nodes_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(72253);
46294
- /* harmony import */ var _dtd_dtd_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(65735);
46295
- /* harmony import */ var _xpath_xpath_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(83671);
46296
- /* harmony import */ var _speech_recognize_speech_recognize_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(3115);
46485
+ /* harmony import */ var _video_properties_video_properties_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(96139);
46486
+ /* harmony import */ var _wrap_nodes_wrap_nodes_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(72253);
46487
+ /* harmony import */ var _dtd_dtd_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(65735);
46488
+ /* harmony import */ var _xpath_xpath_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(83671);
46489
+ /* harmony import */ var _speech_recognize_speech_recognize_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(3115);
46297
46490
  /*!
46298
46491
  * Jodit Editor (https://xdsoft.net/jodit/)
46299
46492
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -46364,6 +46557,7 @@ UiAiAssistant = __decorate([
46364
46557
 
46365
46558
 
46366
46559
 
46560
+
46367
46561
 
46368
46562
 
46369
46563
  // JODIT-START:FAT
@@ -55154,6 +55348,11 @@ function _wrap_native_super(Class) {
55154
55348
  var JODIT_IMAGE_PROCESSOR_BINDED = '__jodit_imageprocessor_binded';
55155
55349
  var JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
55156
55350
  var IMAGE_SELECTED = 'jodit-wysiwyg_image-selected';
55351
+ var SELECTED_TAGS = new Set([
55352
+ 'img',
55353
+ 'jodit',
55354
+ 'jodit-media'
55355
+ ]);
55157
55356
  /**
55158
55357
  * Change editor's size after load all images
55159
55358
  */ var imageProcessor = /*#__PURE__*/ function(Plugin) {
@@ -55249,7 +55448,10 @@ var IMAGE_SELECTED = 'jodit-wysiwyg_image-selected';
55249
55448
  {
55250
55449
  /**
55251
55450
  * While the selection is an image, only the image is highlighted: Safari
55252
- * paints the rest of a block image's line with its parent's highlight. See #1528
55451
+ * paints the rest of a block image's line with its parent's highlight. See #1528.
55452
+ * Media in a wrapper (`jodit-media`, the resizer's `jodit` for an embed, or
55453
+ * one from `mediaWrappers`) isn't highlighted either, as Safari paints its
55454
+ * wrapper's whole line, and its resize frame shows it's selected
55253
55455
  */ key: "onSelectionChange",
55254
55456
  value: function onSelectionChange() {
55255
55457
  var jodit = this.jodit;
@@ -55320,7 +55522,8 @@ function isImageSelected(jodit) {
55320
55522
  return false;
55321
55523
  }
55322
55524
  var _sel_getRangeAt = sel.getRangeAt(0), startContainer = _sel_getRangeAt.startContainer, startOffset = _sel_getRangeAt.startOffset, endContainer = _sel_getRangeAt.endContainer, endOffset = _sel_getRangeAt.endOffset;
55323
- return startContainer === endContainer && endOffset === startOffset + 1 && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(startContainer.childNodes[startOffset], 'img') && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(jodit.editor, startContainer);
55525
+ var node = startContainer.childNodes[startOffset];
55526
+ return startContainer === endContainer && endOffset === startOffset + 1 && (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(node, SELECTED_TAGS) || Boolean((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getWrappedMedia)(jodit, node))) && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isOrContains(jodit.editor, startContainer);
55324
55527
  }
55325
55528
  /**
55326
55529
  * Remove the invisible-space text beside an image, which only held a caret.
@@ -58975,6 +59178,14 @@ var cmd = function cmd(control) {
58975
59178
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
58976
59179
  */
58977
59180
  /* harmony default export */ __webpack_exports__["default"] = ([
59181
+ {
59182
+ name: 'replace',
59183
+ icon: 'video',
59184
+ tooltip: 'Replace',
59185
+ popup: function popup(editor, target, close) {
59186
+ return target ? editor.e.fire('generateReplaceVideoTabs', target, close) : undefined;
59187
+ }
59188
+ },
58978
59189
  {
58979
59190
  name: 'bin',
58980
59191
  tooltip: 'Delete',
@@ -58982,6 +59193,13 @@ var cmd = function cmd(control) {
58982
59193
  image && editor.s.removeNode(image);
58983
59194
  }
58984
59195
  },
59196
+ {
59197
+ name: 'pencil',
59198
+ tooltip: 'Edit',
59199
+ exec: function exec(editor, target) {
59200
+ target && editor.e.fire('openVideoProperties', target);
59201
+ }
59202
+ },
58985
59203
  _img_js__WEBPACK_IMPORTED_MODULE_0__.align
58986
59204
  ]);
58987
59205
 
@@ -62015,17 +62233,24 @@ function _unsupported_iterable_to_array(o, minLen) {
62015
62233
  } else if (mediaWrappers[element.nodeName.toLowerCase()]) {
62016
62234
  element = (_a = (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.getMediaWrapper)(editor, element)) !== null && _a !== void 0 ? _a : (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.wrapMedia)(editor, element);
62017
62235
  } else if (mediaInFakeBlock) {
62236
+ var _$media = element;
62018
62237
  var wrapper = editor.createInside.element(mediaFakeTag, _define_property({
62019
62238
  'data-jodit-temp': 1,
62020
62239
  contenteditable: false,
62021
62240
  draggable: true
62022
62241
  }, "data-".concat(keyFake), 1));
62023
62242
  (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(wrapper, 'style', (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(element, 'style'));
62024
- (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(wrapper, {
62025
- display: (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block',
62026
- width: element.offsetWidth,
62027
- height: element.offsetHeight
62028
- });
62243
+ // The wrapper fits the media, whose size changes as its metadata loads
62244
+ // and as it's resized. A percentage width is of the line, so it takes that
62245
+ var fit = function fit() {
62246
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.css)(wrapper, {
62247
+ display: (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.cssInline)(_$media, 'display') === 'inline-block' ? 'inline-block' : 'block',
62248
+ width: (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_4__.cssInline)(_$media, 'width').endsWith('%') ? '' : 'fit-content',
62249
+ height: ''
62250
+ });
62251
+ };
62252
+ fit();
62253
+ editor.e.on(_$media, 'changesize', fit);
62029
62254
  if (element.parentNode) {
62030
62255
  _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before(element, wrapper);
62031
62256
  }
@@ -65813,7 +66038,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.allowResizeTags = new S
65813
66038
  'img',
65814
66039
  'iframe',
65815
66040
  'table',
65816
- 'jodit'
66041
+ 'jodit',
66042
+ 'video'
65817
66043
  ]);
65818
66044
  _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
65819
66045
  showSize: true,
@@ -65822,7 +66048,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
65822
66048
  min_width: 10,
65823
66049
  min_height: 10,
65824
66050
  useAspectRatio: new Set([
65825
- 'img'
66051
+ 'img',
66052
+ 'video'
65826
66053
  ])
65827
66054
  };
65828
66055
 
@@ -65983,6 +66210,12 @@ var keyBInd = '__jodit-resizer_binded';
65983
66210
  }
65984
66211
  return parseFloat(value);
65985
66212
  }
66213
+ /**
66214
+ * A video with no height of its own takes it from its width and its ratio,
66215
+ * so resizing it keeps the ratio without setting a height.
66216
+ */ function heightFollowsWidth(element) {
66217
+ return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(element, 'video') && !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(element, 'height') && !(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_5__.cssInline)(element, 'height');
66218
+ }
65986
66219
  /**
65987
66220
  * The module creates a supporting frame for resizing of the elements img and table
65988
66221
  */ var resizer = /*#__PURE__*/ function(Plugin) {
@@ -66002,6 +66235,8 @@ var keyBInd = '__jodit-resizer_binded';
66002
66235
  _this.height = 0;
66003
66236
  _this.ratio = 0;
66004
66237
  _this.rect = _this.j.c.fromHTML('<div title="'.concat(_this.j.i18n('Press Alt for custom resizing'), '" class="jodit-resizer">\n <div class="jodit-resizer__top-left"></div>\n <div class="jodit-resizer__top-right"></div>\n <div class="jodit-resizer__bottom-right"></div>\n <div class="jodit-resizer__bottom-left"></div>\n <span>100x100</span>\n </div>'));
66238
+ // Clips the frame to the workplace, without the frame making it scroll
66239
+ _this.layer = _this.j.c.div('jodit-resizer-layer');
66005
66240
  _this.sizeViewer = _this.rect.getElementsByTagName('span')[0];
66006
66241
  _this.pointerX = 0;
66007
66242
  _this.pointerY = 0;
@@ -66016,6 +66251,9 @@ var keyBInd = '__jodit-resizer_binded';
66016
66251
  if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(_this.element, 'img') && !_this.element.complete) {
66017
66252
  _this.j.e.one(_this.element, 'load', _this.updateSize);
66018
66253
  }
66254
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(_this.element, 'video') && _this.element.readyState < HTMLMediaElement.HAVE_METADATA) {
66255
+ _this.j.e.one(_this.element, 'loadedmetadata', _this.updateSize);
66256
+ }
66019
66257
  }
66020
66258
  };
66021
66259
  _this.updateSize = function() {
@@ -66079,15 +66317,31 @@ var keyBInd = '__jodit-resizer_binded';
66079
66317
  var node = e.target;
66080
66318
  var _this_j = this.j, editor = _this_j.editor, allowResizeTags = _this_j.options.allowResizeTags;
66081
66319
  while(node && node !== editor){
66082
- if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(node, allowResizeTags)) {
66083
- this.__bind(node);
66084
- this.onClickElement(node);
66320
+ var element = this.__resizable(node);
66321
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(element, allowResizeTags)) {
66322
+ this.__bind(element);
66323
+ this.onClickElement(element);
66085
66324
  return;
66086
66325
  }
66087
66326
  node = node.parentNode;
66088
66327
  }
66089
66328
  }
66090
66329
  },
66330
+ {
66331
+ /**
66332
+ * What a click on `node` resizes: the media in it when it's a media
66333
+ * wrapper (`jodit-media`, or one from `mediaWrappers`), or `node` itself
66334
+ */ key: "__resizable",
66335
+ value: function __resizable(node) {
66336
+ var _a;
66337
+ var media = (_a = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.getWrappedMedia)(this.j, node)) !== null && _a !== void 0 ? _a : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isHTMLElement(node) && (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(node, 'data-jodit_fake_wrapper') ? node.firstElementChild : null;
66338
+ if (!media) {
66339
+ return node;
66340
+ }
66341
+ // An embed is resized through its own wrapper
66342
+ return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isHTMLElement(media.parentNode) && (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.attr)(media.parentNode, 'data-jodit_iframe_wrapper') ? media.parentNode : media;
66343
+ }
66344
+ },
66091
66345
  {
66092
66346
  key: "__afterInsertImage",
66093
66347
  value: function __afterInsertImage(image) {
@@ -66110,20 +66364,18 @@ var keyBInd = '__jodit-resizer_binded';
66110
66364
  if (_this.isShown && (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DELETE || e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_BACKSPACE) && _this.element && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(_this.element, 'table')) {
66111
66365
  _this.onDelete(e);
66112
66366
  }
66113
- }).on(editor.ow, 'resize.resizer', this.updateSize).on('resize.resizer', this.updateSize).on([
66367
+ }).on(editor.ow, 'resize.resizer', this.updateSize).on('resize.resizer', this.updateSize)// The frame is outside the content, so it's moved to follow the
66368
+ // element as the content scrolls
66369
+ .on([
66114
66370
  editor.ow,
66115
66371
  editor.editor
66116
- ], 'scroll.resizer', function() {
66117
- if (_this.isShown && !_this.isResizeMode) {
66118
- _this.hide();
66119
- }
66120
- }).on(editor.ow, 'keydown.resizer', this.onKeyDown).on(editor.ow, 'keyup.resizer', this.onKeyUp).on(editor.ow, 'mouseup.resizer touchend.resizer', this.onClickOutside);
66372
+ ], 'scroll.resizer', this.updateSize).on(editor.ow, 'keydown.resizer', this.onKeyDown).on(editor.ow, 'keyup.resizer', this.onKeyUp).on(editor.ow, 'mouseup.resizer touchend.resizer', this.onClickOutside);
66121
66373
  }
66122
66374
  },
66123
66375
  {
66124
66376
  key: "onStartResizing",
66125
66377
  value: function onStartResizing(resizeHandle, e) {
66126
- if (!this.element || !this.element.parentNode) {
66378
+ if (!this.element || !this.isElementInEditor) {
66127
66379
  this.hide();
66128
66380
  return false;
66129
66381
  }
@@ -66182,7 +66434,8 @@ var keyBInd = '__jodit-resizer_binded';
66182
66434
  var className = this.handle.className;
66183
66435
  var new_w, new_h;
66184
66436
  var uar = this.j.o.resizer.useAspectRatio;
66185
- if (!this.isAltMode && (uar === true || uar && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(this.element, uar))) {
66437
+ var keepRatio = !this.isAltMode && (uar === true || Boolean(uar && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isTag(this.element, uar)));
66438
+ if (keepRatio) {
66186
66439
  if (diff_x) {
66187
66440
  new_w = this.width + (className.match(/left/) ? -1 : 1) * diff_x;
66188
66441
  new_h = Math.round(new_w / this.ratio);
@@ -66205,7 +66458,7 @@ var keyBInd = '__jodit-resizer_binded';
66205
66458
  this.applySize(this.element, 'width', '100%');
66206
66459
  }
66207
66460
  }
66208
- if (new_h > this.j.o.resizer.min_height) {
66461
+ if (new_h > this.j.o.resizer.min_height && !(keepRatio && heightFollowsWidth(this.element))) {
66209
66462
  this.applySize(this.element, 'height', new_h);
66210
66463
  }
66211
66464
  this.updateSize();
@@ -66267,12 +66520,24 @@ var keyBInd = '__jodit-resizer_binded';
66267
66520
  }
66268
66521
  }
66269
66522
  },
66523
+ {
66524
+ key: "isElementInEditor",
66525
+ get: /**
66526
+ * The framed element can go with a wrapper round it, keeping its parent
66527
+ */ function get() {
66528
+ return Boolean(this.element && this.j.editor.contains(this.element));
66529
+ }
66530
+ },
66270
66531
  {
66271
66532
  key: "onDelete",
66272
66533
  value: function onDelete(e) {
66273
66534
  if (!this.element) {
66274
66535
  return;
66275
66536
  }
66537
+ if (!this.isElementInEditor) {
66538
+ this.hide();
66539
+ return;
66540
+ }
66276
66541
  if (this.element.tagName !== 'JODIT') {
66277
66542
  this.j.s.select(this.element);
66278
66543
  } else {
@@ -66286,7 +66551,7 @@ var keyBInd = '__jodit-resizer_binded';
66286
66551
  key: "__onChangeEditor",
66287
66552
  value: function __onChangeEditor() {
66288
66553
  if (this.isShown) {
66289
- if (!this.element || !this.element.parentNode) {
66554
+ if (!this.isElementInEditor) {
66290
66555
  this.hide();
66291
66556
  } else {
66292
66557
  this.updateSize();
@@ -66394,9 +66659,13 @@ var keyBInd = '__jodit-resizer_binded';
66394
66659
  return;
66395
66660
  }
66396
66661
  this.isShown = true;
66662
+ if (this.layer.parentNode !== this.j.workplace) {
66663
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.markOwner)(this.j, this.layer);
66664
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(this.j.workplace, this.layer);
66665
+ }
66397
66666
  if (!this.rect.parentNode) {
66398
66667
  (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.markOwner)(this.j, this.rect);
66399
- _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(this.j.workplace, this.rect);
66668
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(this.layer, this.rect);
66400
66669
  }
66401
66670
  if (this.j.isFullSize) {
66402
66671
  (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.rect, 'zIndex', (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.css)(this.j.container, 'zIndex').toString());
@@ -66424,6 +66693,7 @@ var keyBInd = '__jodit-resizer_binded';
66424
66693
  key: "beforeDestruct",
66425
66694
  value: function beforeDestruct(jodit) {
66426
66695
  this.hide();
66696
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove(this.layer);
66427
66697
  _core_global_js__WEBPACK_IMPORTED_MODULE_3__.eventEmitter.off('hideHelpers', this.hide);
66428
66698
  jodit.e.off(this.j.ow, '.resizer').off('.resizer');
66429
66699
  }
@@ -75968,9 +76238,1092 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('toolbarNavigation
75968
76238
 
75969
76239
  /***/ }),
75970
76240
 
75971
- /***/ 14984:
76241
+ /***/ 54426:
76242
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
76243
+
76244
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
76245
+ /* harmony export */ editedMedia: function() { return /* binding */ editedMedia; },
76246
+ /* harmony export */ ownSize: function() { return /* binding */ ownSize; },
76247
+ /* harmony export */ readValues: function() { return /* binding */ readValues; }
76248
+ /* harmony export */ });
76249
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
76250
+ /* harmony import */ var _core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29807);
76251
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29960);
76252
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41180);
76253
+ /* harmony import */ var _image_properties_utils_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14415);
76254
+ /*!
76255
+ * Jodit Editor (https://xdsoft.net/jodit/)
76256
+ * Released under MIT see LICENSE.txt in the project root for license information.
76257
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
76258
+ */
76259
+
76260
+
76261
+
76262
+
76263
+ var mediaSelector = 'video, audio, iframe';
76264
+ /**
76265
+ * The media `target` is, or holds as its wrapper (`jodit-media`, the resizer's
76266
+ * `jodit` for an embed, or one from `mediaWrappers`)
76267
+ * @private
76268
+ */ function editedMedia(target) {
76269
+ return target.matches(mediaSelector) ? target : target.querySelector(mediaSelector);
76270
+ }
76271
+ /**
76272
+ * The size `media` is given, inline or by its attribute
76273
+ * @private
76274
+ */ function ownSize(media, key) {
76275
+ return (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_3__.cssInline)(media, key) || (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(media, key) || '';
76276
+ }
76277
+ var toNumber = function toNumber(value) {
76278
+ return parseFloat(value.toString());
76279
+ };
76280
+ /**
76281
+ * Read the media's values into the state
76282
+ * @private
76283
+ */ function readValues(state) {
76284
+ var media = state.media, values = state.values;
76285
+ var width = ownSize(media, 'width');
76286
+ var height = ownSize(media, 'height');
76287
+ values.width = width ? (0,_image_properties_utils_utils_js__WEBPACK_IMPORTED_MODULE_4__.normalSizeFromString)(width) : media.offsetWidth;
76288
+ values.height = height ? (0,_image_properties_utils_utils_js__WEBPACK_IMPORTED_MODULE_4__.normalSizeFromString)(height) : '';
76289
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(media, 'video') && media.videoWidth) {
76290
+ state.ratio = media.videoWidth / media.videoHeight;
76291
+ } else if ((0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__.isNumeric)(values.width) && (0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__.isNumeric)(values.height)) {
76292
+ state.ratio = toNumber(values.width) / toNumber(values.height);
76293
+ } else {
76294
+ state.ratio = media.offsetWidth / media.offsetHeight || 1;
76295
+ }
76296
+ // One with no height takes it from its width
76297
+ if (!height && (0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__.isNumeric)(values.width)) {
76298
+ values.height = Math.round(toNumber(values.width) / state.ratio);
76299
+ }
76300
+ state.sizeIsLocked = (0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__.isNumeric)(values.width) && (0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__.isNumeric)(values.height) && (!height || Math.abs(toNumber(values.width) - toNumber(values.height) * state.ratio) < 1);
76301
+ values.poster = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_2__.attr)(media, 'poster') || '';
76302
+ values.autoplay = media.hasAttribute('autoplay');
76303
+ values.loop = media.hasAttribute('loop');
76304
+ // Autoplay's own: turning it off gives the sound back
76305
+ values.muted = media.hasAttribute('muted') && !values.autoplay;
76306
+ // Without Autoplay it keeps its controls, or it could never be played
76307
+ values.controls = media.hasAttribute('controls') || !values.autoplay;
76308
+ }
76309
+
76310
+
76311
+ /***/ }),
76312
+
76313
+ /***/ 96170:
76314
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
76315
+
76316
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
76317
+ /* harmony export */ replaceMedia: function() { return /* binding */ replaceMedia; }
76318
+ /* harmony export */ });
76319
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
76320
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
76321
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
76322
+ /* harmony import */ var _readers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54426);
76323
+ /* harmony import */ var _writers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44909);
76324
+ function _array_like_to_array(arr, len) {
76325
+ if (len == null || len > arr.length) len = arr.length;
76326
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
76327
+ return arr2;
76328
+ }
76329
+ function _array_with_holes(arr) {
76330
+ if (Array.isArray(arr)) return arr;
76331
+ }
76332
+ function _iterable_to_array_limit(arr, i) {
76333
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
76334
+ if (_i == null) return;
76335
+ var _arr = [];
76336
+ var _n = true;
76337
+ var _d = false;
76338
+ var _s, _e;
76339
+ try {
76340
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
76341
+ _arr.push(_s.value);
76342
+ if (i && _arr.length === i) break;
76343
+ }
76344
+ } catch (err) {
76345
+ _d = true;
76346
+ _e = err;
76347
+ } finally{
76348
+ try {
76349
+ if (!_n && _i["return"] != null) _i["return"]();
76350
+ } finally{
76351
+ if (_d) throw _e;
76352
+ }
76353
+ }
76354
+ return _arr;
76355
+ }
76356
+ function _non_iterable_rest() {
76357
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
76358
+ }
76359
+ function _sliced_to_array(arr, i) {
76360
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
76361
+ }
76362
+ function _unsupported_iterable_to_array(o, minLen) {
76363
+ if (!o) return;
76364
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
76365
+ var n = Object.prototype.toString.call(o).slice(8, -1);
76366
+ if (n === "Object" && o.constructor) n = o.constructor.name;
76367
+ if (n === "Map" || n === "Set") return Array.from(n);
76368
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
76369
+ }
76370
+ /*!
76371
+ * Jodit Editor (https://xdsoft.net/jodit/)
76372
+ * Released under MIT see LICENSE.txt in the project root for license information.
76373
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
76374
+ */ ;
76375
+
76376
+
76377
+
76378
+
76379
+ /**
76380
+ * Give `media`, in `outer`, the classes, inline styles, size and playback
76381
+ * settings of `old`, in `oldOuter`. It keeps its own source and poster.
76382
+ */ function takeOver(j, oldOuter, old, outer, media) {
76383
+ var _a;
76384
+ var state = {
76385
+ target: oldOuter,
76386
+ media: old,
76387
+ ratio: 1,
76388
+ sizeIsLocked: true,
76389
+ values: {
76390
+ width: '',
76391
+ height: '',
76392
+ poster: '',
76393
+ autoplay: false,
76394
+ loop: false,
76395
+ muted: false,
76396
+ controls: true
76397
+ }
76398
+ };
76399
+ (0,_readers_js__WEBPACK_IMPORTED_MODULE_3__.readValues)(state);
76400
+ var pairs = [
76401
+ [
76402
+ old,
76403
+ media
76404
+ ]
76405
+ ];
76406
+ // A wrapper kept in the content, which holds the alignment
76407
+ if (oldOuter !== old && outer !== media && oldOuter.nodeName === outer.nodeName) {
76408
+ pairs.push([
76409
+ oldOuter,
76410
+ outer
76411
+ ]);
76412
+ }
76413
+ pairs.forEach(function(param) {
76414
+ var _param = _sliced_to_array(param, 2), from = _param[0], to = _param[1];
76415
+ [
76416
+ 'class',
76417
+ 'style'
76418
+ ].forEach(function(name) {
76419
+ return (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(to, name, (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(from, name));
76420
+ });
76421
+ });
76422
+ // A video's size is CSS and an embed's its attributes, so the writer sizes
76423
+ // one that's a different element
76424
+ if (old.nodeName !== media.nodeName) {
76425
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(media, {
76426
+ width: null,
76427
+ height: null
76428
+ });
76429
+ if (!((_a = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, 'style')) === null || _a === void 0 ? void 0 : _a.trim())) {
76430
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, 'style', null);
76431
+ }
76432
+ }
76433
+ state.media = media;
76434
+ state.values.poster = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, 'poster') || '';
76435
+ (0,_writers_js__WEBPACK_IMPORTED_MODULE_4__.applyValues)(j, state, Boolean((0,_readers_js__WEBPACK_IMPORTED_MODULE_3__.ownSize)(old, 'width') || (0,_readers_js__WEBPACK_IMPORTED_MODULE_3__.ownSize)(old, 'height')));
76436
+ }
76437
+ /**
76438
+ * Run `insert`, which inserts media at the cursor, with the cursor after
76439
+ * `replaced`, and put what it inserts in place of `replaced`
76440
+ * @private
76441
+ */ function replaceMedia(j, replaced, insert) {
76442
+ var inserted = [];
76443
+ var collect = function collect(node) {
76444
+ inserted.push(node);
76445
+ };
76446
+ j.history.snapshot.transaction(function() {
76447
+ j.s.focus();
76448
+ j.s.setCursorAfter(replaced);
76449
+ j.e.on('afterInsertNode', collect);
76450
+ try {
76451
+ insert();
76452
+ } finally{
76453
+ j.e.off('afterInsertNode', collect);
76454
+ }
76455
+ var _inserted = _sliced_to_array(inserted, 1), outer = _inserted[0];
76456
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(outer)) {
76457
+ return;
76458
+ }
76459
+ var old = (0,_readers_js__WEBPACK_IMPORTED_MODULE_3__.editedMedia)(replaced);
76460
+ var media = (0,_readers_js__WEBPACK_IMPORTED_MODULE_3__.editedMedia)(outer);
76461
+ if (old && media) {
76462
+ takeOver(j, replaced, old, outer, media);
76463
+ }
76464
+ // The resizer can have put an embed in its own wrapper already
76465
+ var placed = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isHTMLElement(outer.parentElement) && (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(outer.parentElement, 'data-jodit-temp') ? outer.parentElement : outer;
76466
+ // Where the old one was, since media Jodit counts as blocks can be put
76467
+ // after the paragraph
76468
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.before(replaced, placed);
76469
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(replaced);
76470
+ j.s.setCursorAfter(placed);
76471
+ });
76472
+ j.synchronizeValues();
76473
+ j.e.fire('closeAllPopups');
76474
+ }
76475
+
76476
+
76477
+ /***/ }),
76478
+
76479
+ /***/ 27828:
76480
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
76481
+
76482
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
76483
+ /* harmony export */ UIVideoPropertiesForm: function() { return /* binding */ UIVideoPropertiesForm; }
76484
+ /* harmony export */ });
76485
+ /* harmony import */ var _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87325);
76486
+ /* harmony import */ var _core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97357);
76487
+ /* harmony import */ var _core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37133);
76488
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2748);
76489
+ /* harmony import */ var _core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29807);
76490
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29960);
76491
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41180);
76492
+ /* harmony import */ var _core_ui_element_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48538);
76493
+ /* harmony import */ var _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12153);
76494
+ function _array_like_to_array(arr, len) {
76495
+ if (len == null || len > arr.length) len = arr.length;
76496
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
76497
+ return arr2;
76498
+ }
76499
+ function _array_with_holes(arr) {
76500
+ if (Array.isArray(arr)) return arr;
76501
+ }
76502
+ function _assert_this_initialized(self) {
76503
+ if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
76504
+ return self;
76505
+ }
76506
+ function _call_super(_this, derived, args) {
76507
+ derived = _get_prototype_of(derived);
76508
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
76509
+ }
76510
+ function _class_call_check(instance, Constructor) {
76511
+ if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
76512
+ }
76513
+ function _defineProperties(target, props) {
76514
+ for(var i = 0; i < props.length; i++){
76515
+ var descriptor = props[i];
76516
+ descriptor.enumerable = descriptor.enumerable || false;
76517
+ descriptor.configurable = true;
76518
+ if ("value" in descriptor) descriptor.writable = true;
76519
+ Object.defineProperty(target, descriptor.key, descriptor);
76520
+ }
76521
+ }
76522
+ function _create_class(Constructor, protoProps, staticProps) {
76523
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
76524
+ if (staticProps) _defineProperties(Constructor, staticProps);
76525
+ return Constructor;
76526
+ }
76527
+ function _get_prototype_of(o) {
76528
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
76529
+ return o.__proto__ || Object.getPrototypeOf(o);
76530
+ };
76531
+ return _get_prototype_of(o);
76532
+ }
76533
+ function _inherits(subClass, superClass) {
76534
+ if (typeof superClass !== "function" && superClass !== null) {
76535
+ throw new TypeError("Super expression must either be null or a function");
76536
+ }
76537
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
76538
+ constructor: {
76539
+ value: subClass,
76540
+ writable: true,
76541
+ configurable: true
76542
+ }
76543
+ });
76544
+ if (superClass) _set_prototype_of(subClass, superClass);
76545
+ }
76546
+ function _is_native_reflect_construct() {
76547
+ try {
76548
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
76549
+ } catch (_) {}
76550
+ return (_is_native_reflect_construct = function() {
76551
+ return !!result;
76552
+ })();
76553
+ }
76554
+ function _iterable_to_array_limit(arr, i) {
76555
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
76556
+ if (_i == null) return;
76557
+ var _arr = [];
76558
+ var _n = true;
76559
+ var _d = false;
76560
+ var _s, _e;
76561
+ try {
76562
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
76563
+ _arr.push(_s.value);
76564
+ if (i && _arr.length === i) break;
76565
+ }
76566
+ } catch (err) {
76567
+ _d = true;
76568
+ _e = err;
76569
+ } finally{
76570
+ try {
76571
+ if (!_n && _i["return"] != null) _i["return"]();
76572
+ } finally{
76573
+ if (_d) throw _e;
76574
+ }
76575
+ }
76576
+ return _arr;
76577
+ }
76578
+ function _non_iterable_rest() {
76579
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
76580
+ }
76581
+ function _possible_constructor_return(self, call) {
76582
+ if (call && (_type_of(call) === "object" || typeof call === "function")) return call;
76583
+ return _assert_this_initialized(self);
76584
+ }
76585
+ function _set_prototype_of(o, p) {
76586
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
76587
+ o.__proto__ = p;
76588
+ return o;
76589
+ };
76590
+ return _set_prototype_of(o, p);
76591
+ }
76592
+ function _sliced_to_array(arr, i) {
76593
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
76594
+ }
76595
+ function _type_of(obj) {
76596
+ "@swc/helpers - typeof";
76597
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
76598
+ }
76599
+ function _unsupported_iterable_to_array(o, minLen) {
76600
+ if (!o) return;
76601
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
76602
+ var n = Object.prototype.toString.call(o).slice(8, -1);
76603
+ if (n === "Object" && o.constructor) n = o.constructor.name;
76604
+ if (n === "Map" || n === "Set") return Array.from(n);
76605
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
76606
+ }
76607
+ /*!
76608
+ * Jodit Editor (https://xdsoft.net/jodit/)
76609
+ * Released under MIT see LICENSE.txt in the project root for license information.
76610
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
76611
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
76612
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
76613
+ if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
76614
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
76615
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
76616
+ };
76617
+
76618
+
76619
+
76620
+
76621
+
76622
+
76623
+
76624
+
76625
+
76626
+ var flags = {
76627
+ autoplay: 'Autoplay',
76628
+ loop: 'Loop',
76629
+ muted: 'Muted',
76630
+ controls: 'Controls'
76631
+ };
76632
+ var checkbox = function checkbox(param) {
76633
+ var _param = _sliced_to_array(param, 2), flag = _param[0], label = _param[1];
76634
+ return '<label class="jodit_vertical_middle">\n <input type="checkbox" class="jodit-checkbox &__'.concat(flag, '"/>\n <span>~').concat(label, "~</span>\n </label>");
76635
+ };
76636
+ /** @private */ var UIVideoPropertiesForm = /*#__PURE__*/ function(UIElement) {
76637
+ "use strict";
76638
+ _inherits(UIVideoPropertiesForm, UIElement);
76639
+ function UIVideoPropertiesForm(jodit, state, handlers) {
76640
+ _class_call_check(this, UIVideoPropertiesForm);
76641
+ var _this;
76642
+ _this = _call_super(this, UIVideoPropertiesForm, [
76643
+ jodit
76644
+ ]);
76645
+ _this.state = state;
76646
+ _this.handlers = handlers;
76647
+ return _this;
76648
+ }
76649
+ _create_class(UIVideoPropertiesForm, [
76650
+ {
76651
+ key: "className",
76652
+ value: function className() {
76653
+ return 'UIVideoPropertiesForm';
76654
+ }
76655
+ },
76656
+ {
76657
+ key: "render",
76658
+ value: function render() {
76659
+ return '<form>\n <div class="jodit-form__group &__previewBox">\n <img class="&__preview" alt=""/>\n </div>\n <div class="jodit-form__group &__sizes">\n <input type="text" class="jodit-input &__width" placeholder="~Width~" aria-label="~Width~"/>\n <a class="&__lockSize">*lock*</a>\n <input type="text" class="jodit-input &__height" placeholder="~Height~" aria-label="~Height~"/>\n </div>\n <div class="jodit-form__group &__editPoster">\n <label>~Poster~</label>\n <div class="jodit-input_group">\n <input type="text" class="jodit-input &__poster" placeholder="https://"/>\n <div class="jodit-input_group-buttons">\n <a class="jodit-button &__changePoster" title="~Upload~">*image*</a>\n <a class="jodit-button &__removePoster" title="~Remove~">*bin*</a>\n </div>\n </div>\n </div>\n <div class="jodit-form__group &__playback">\n '.concat(Object.entries(flags).map(checkbox).join(''), "\n </div>\n </form>");
76660
+ }
76661
+ },
76662
+ {
76663
+ key: "input",
76664
+ value: function input(name) {
76665
+ return this.getElm(name);
76666
+ }
76667
+ },
76668
+ {
76669
+ key: "show",
76670
+ value: function show(name, shown) {
76671
+ ;(0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.getElm(name), 'display', shown ? null : 'none');
76672
+ }
76673
+ },
76674
+ {
76675
+ /**
76676
+ * A video has every field, an embed only its size, and audio only its
76677
+ * playback settings
76678
+ */ key: "onStateMediaChange",
76679
+ value: function onStateMediaChange() {
76680
+ var media = this.state.media;
76681
+ this.show('editPoster', _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(media, 'video'));
76682
+ this.show('sizes', !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(media, 'audio'));
76683
+ this.show('playback', !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(media, 'iframe'));
76684
+ this.showPreview();
76685
+ }
76686
+ },
76687
+ {
76688
+ // A video's poster, when it has one
76689
+ key: "showPreview",
76690
+ value: function showPreview() {
76691
+ var _this_state = this.state, media = _this_state.media, values = _this_state.values;
76692
+ var shown = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(media, 'video') && Boolean(values.poster);
76693
+ this.show('previewBox', shown);
76694
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(this.getElm('preview'), 'src', shown ? values.poster : null);
76695
+ }
76696
+ },
76697
+ {
76698
+ key: "hideChangePoster",
76699
+ value: function hideChangePoster() {
76700
+ var _this_j_o = this.j.o, uploader = _this_j_o.uploader, filebrowser = _this_j_o.filebrowser;
76701
+ // What FileSelectorWidget offers
76702
+ var canUpload = uploader.showTabInFileSelector !== false && Boolean(uploader.url || uploader.insertImageAsBase64URI || uploader.customUploadFunction);
76703
+ var canBrowse = Boolean(filebrowser.ajax.url || filebrowser.items.url);
76704
+ this.show('changePoster', canUpload || canBrowse);
76705
+ }
76706
+ },
76707
+ {
76708
+ key: "onStatePosterChange",
76709
+ value: function onStatePosterChange() {
76710
+ var poster = this.state.values.poster;
76711
+ this.input('poster').value = poster;
76712
+ this.show('removePoster', Boolean(poster));
76713
+ this.showPreview();
76714
+ }
76715
+ },
76716
+ {
76717
+ key: "onPosterChange",
76718
+ value: function onPosterChange() {
76719
+ this.state.values.poster = this.input('poster').value;
76720
+ }
76721
+ },
76722
+ {
76723
+ key: "onChangePosterClick",
76724
+ value: function onChangePosterClick(e) {
76725
+ this.handlers.openPosterPopup(this.getElm('changePoster'));
76726
+ e.stopPropagation();
76727
+ }
76728
+ },
76729
+ {
76730
+ key: "onRemovePosterClick",
76731
+ value: function onRemovePosterClick() {
76732
+ this.state.values.poster = '';
76733
+ }
76734
+ },
76735
+ {
76736
+ key: "onStateSizeIsLockedChange",
76737
+ value: function onStateSizeIsLockedChange() {
76738
+ this.getElm('lockSize').innerHTML = _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_8__.Icon.get(this.state.sizeIsLocked ? 'lock' : 'unlock');
76739
+ }
76740
+ },
76741
+ {
76742
+ key: "onLockSizeClick",
76743
+ value: function onLockSizeClick() {
76744
+ var state = this.state;
76745
+ var values = state.values;
76746
+ state.sizeIsLocked = !state.sizeIsLocked;
76747
+ if (state.sizeIsLocked && (0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_4__.isNumeric)(values.width)) {
76748
+ values.height = Math.round(parseFloat(values.width.toString()) / state.ratio);
76749
+ }
76750
+ }
76751
+ },
76752
+ {
76753
+ key: "onStateSizeChange",
76754
+ value: function onStateSizeChange() {
76755
+ var _this = this;
76756
+ var values = this.state.values;
76757
+ // Not the field being typed in
76758
+ [
76759
+ 'width',
76760
+ 'height'
76761
+ ].forEach(function(key) {
76762
+ var input = _this.input(key);
76763
+ if (input !== _this.j.od.activeElement) {
76764
+ input.value = values[key].toString();
76765
+ }
76766
+ });
76767
+ }
76768
+ },
76769
+ {
76770
+ key: "onSizeInput",
76771
+ value: function onSizeInput(e) {
76772
+ var state = this.state;
76773
+ var values = state.values;
76774
+ // Both read first, since setting one rewrites the other's field
76775
+ var width = this.input('width').value;
76776
+ var height = this.input('height').value;
76777
+ if (!state.sizeIsLocked || !(0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_4__.isNumeric)(width) || !(0,_core_helpers_checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_4__.isNumeric)(height)) {
76778
+ values.width = width;
76779
+ values.height = height;
76780
+ return;
76781
+ }
76782
+ var w = parseFloat(width);
76783
+ var h = parseFloat(height);
76784
+ if (e.target === this.input('width')) {
76785
+ values.width = w;
76786
+ values.height = Math.round(w / state.ratio);
76787
+ } else {
76788
+ values.width = Math.round(h * state.ratio);
76789
+ values.height = h;
76790
+ }
76791
+ }
76792
+ },
76793
+ {
76794
+ /**
76795
+ * Autoplay mutes it, and it keeps its controls unless it autoplays
76796
+ */ key: "onStateFlagsChange",
76797
+ value: function onStateFlagsChange() {
76798
+ var values = this.state.values;
76799
+ this.input('autoplay').checked = values.autoplay;
76800
+ this.input('loop').checked = values.loop;
76801
+ this.input('muted').checked = values.muted || values.autoplay;
76802
+ this.input('muted').disabled = values.autoplay;
76803
+ this.input('controls').checked = values.controls || !values.autoplay;
76804
+ this.input('controls').disabled = !values.autoplay;
76805
+ }
76806
+ },
76807
+ {
76808
+ key: "onFlagChange",
76809
+ value: function onFlagChange(e) {
76810
+ var _this = this;
76811
+ Object.keys(flags).forEach(function(flag) {
76812
+ var input = _this.input(flag);
76813
+ if (e.target === input) {
76814
+ _this.state.values[flag] = input.checked;
76815
+ }
76816
+ });
76817
+ }
76818
+ }
76819
+ ]);
76820
+ return UIVideoPropertiesForm;
76821
+ }(_core_ui_element_js__WEBPACK_IMPORTED_MODULE_7__.UIElement);
76822
+ __decorate([
76823
+ (0,_core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__.hook)('ready'),
76824
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('state.media')
76825
+ ], UIVideoPropertiesForm.prototype, "onStateMediaChange", null);
76826
+ __decorate([
76827
+ (0,_core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__.hook)('ready')
76828
+ ], UIVideoPropertiesForm.prototype, "hideChangePoster", null);
76829
+ __decorate([
76830
+ (0,_core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__.hook)('ready'),
76831
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('state.values.poster')
76832
+ ], UIVideoPropertiesForm.prototype, "onStatePosterChange", null);
76833
+ __decorate([
76834
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('poster:change')
76835
+ ], UIVideoPropertiesForm.prototype, "onPosterChange", null);
76836
+ __decorate([
76837
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('changePoster:click')
76838
+ ], UIVideoPropertiesForm.prototype, "onChangePosterClick", null);
76839
+ __decorate([
76840
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('removePoster:click')
76841
+ ], UIVideoPropertiesForm.prototype, "onRemovePosterClick", null);
76842
+ __decorate([
76843
+ (0,_core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__.hook)('ready'),
76844
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('state.sizeIsLocked')
76845
+ ], UIVideoPropertiesForm.prototype, "onStateSizeIsLockedChange", null);
76846
+ __decorate([
76847
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('lockSize:click')
76848
+ ], UIVideoPropertiesForm.prototype, "onLockSizeClick", null);
76849
+ __decorate([
76850
+ (0,_core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__.hook)('ready'),
76851
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)([
76852
+ 'state.values.width',
76853
+ 'state.values.height'
76854
+ ])
76855
+ ], UIVideoPropertiesForm.prototype, "onStateSizeChange", null);
76856
+ __decorate([
76857
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)([
76858
+ 'width:input',
76859
+ 'height:input',
76860
+ 'width:change',
76861
+ 'height:change'
76862
+ ])
76863
+ ], UIVideoPropertiesForm.prototype, "onSizeInput", null);
76864
+ __decorate([
76865
+ (0,_core_decorators_hook_hook_js__WEBPACK_IMPORTED_MODULE_1__.hook)('ready'),
76866
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)(Object.keys(flags).map(function(flag) {
76867
+ return "state.values.".concat(flag);
76868
+ }))
76869
+ ], UIVideoPropertiesForm.prototype, "onStateFlagsChange", null);
76870
+ __decorate([
76871
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)(Object.keys(flags).map(function(flag) {
76872
+ return "".concat(flag, ":change");
76873
+ }))
76874
+ ], UIVideoPropertiesForm.prototype, "onFlagChange", null);
76875
+ UIVideoPropertiesForm = __decorate([
76876
+ _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_0__.component
76877
+ ], UIVideoPropertiesForm);
76878
+
76879
+
76880
+
76881
+ /***/ }),
76882
+
76883
+ /***/ 96139:
75972
76884
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
75973
76885
 
76886
+ /* unused harmony export videoProperties */
76887
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
76888
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2748);
76889
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
76890
+ /* harmony import */ var _core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68345);
76891
+ /* harmony import */ var _core_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5700);
76892
+ /* harmony import */ var _core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37790);
76893
+ /* harmony import */ var _core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20356);
76894
+ /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(62843);
76895
+ /* harmony import */ var _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(56917);
76896
+ /* harmony import */ var _modules_widget_file_selector_file_selector_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34793);
76897
+ /* harmony import */ var _ui_ui_video_form_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27828);
76898
+ /* harmony import */ var _readers_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(54426);
76899
+ /* harmony import */ var _replace_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(96170);
76900
+ /* harmony import */ var _writers_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(44909);
76901
+ /* harmony import */ var _video_config_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(14984);
76902
+ function _assert_this_initialized(self) {
76903
+ if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
76904
+ return self;
76905
+ }
76906
+ function _call_super(_this, derived, args) {
76907
+ derived = _get_prototype_of(derived);
76908
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
76909
+ }
76910
+ function _class_call_check(instance, Constructor) {
76911
+ if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
76912
+ }
76913
+ function _construct(Parent, args, Class) {
76914
+ if (_is_native_reflect_construct()) _construct = Reflect.construct;
76915
+ else {
76916
+ _construct = function construct(Parent, args, Class) {
76917
+ var a = [
76918
+ null
76919
+ ];
76920
+ a.push.apply(a, args);
76921
+ var Constructor = Function.bind.apply(Parent, a);
76922
+ var instance = new Constructor();
76923
+ if (Class) _set_prototype_of(instance, Class.prototype);
76924
+ return instance;
76925
+ };
76926
+ }
76927
+ return _construct.apply(null, arguments);
76928
+ }
76929
+ function _defineProperties(target, props) {
76930
+ for(var i = 0; i < props.length; i++){
76931
+ var descriptor = props[i];
76932
+ descriptor.enumerable = descriptor.enumerable || false;
76933
+ descriptor.configurable = true;
76934
+ if ("value" in descriptor) descriptor.writable = true;
76935
+ Object.defineProperty(target, descriptor.key, descriptor);
76936
+ }
76937
+ }
76938
+ function _create_class(Constructor, protoProps, staticProps) {
76939
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
76940
+ if (staticProps) _defineProperties(Constructor, staticProps);
76941
+ return Constructor;
76942
+ }
76943
+ function _get_prototype_of(o) {
76944
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
76945
+ return o.__proto__ || Object.getPrototypeOf(o);
76946
+ };
76947
+ return _get_prototype_of(o);
76948
+ }
76949
+ function _inherits(subClass, superClass) {
76950
+ if (typeof superClass !== "function" && superClass !== null) {
76951
+ throw new TypeError("Super expression must either be null or a function");
76952
+ }
76953
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
76954
+ constructor: {
76955
+ value: subClass,
76956
+ writable: true,
76957
+ configurable: true
76958
+ }
76959
+ });
76960
+ if (superClass) _set_prototype_of(subClass, superClass);
76961
+ }
76962
+ function _is_native_function(fn) {
76963
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
76964
+ }
76965
+ function _is_native_reflect_construct() {
76966
+ try {
76967
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
76968
+ } catch (_) {}
76969
+ return (_is_native_reflect_construct = function() {
76970
+ return !!result;
76971
+ })();
76972
+ }
76973
+ function _possible_constructor_return(self, call) {
76974
+ if (call && (_type_of(call) === "object" || typeof call === "function")) return call;
76975
+ return _assert_this_initialized(self);
76976
+ }
76977
+ function _set_prototype_of(o, p) {
76978
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
76979
+ o.__proto__ = p;
76980
+ return o;
76981
+ };
76982
+ return _set_prototype_of(o, p);
76983
+ }
76984
+ function _type_of(obj) {
76985
+ "@swc/helpers - typeof";
76986
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
76987
+ }
76988
+ function _wrap_native_super(Class) {
76989
+ var _cache = typeof Map === "function" ? new Map() : undefined;
76990
+ _wrap_native_super = function(Class) {
76991
+ if (Class === null || !_is_native_function(Class)) return Class;
76992
+ if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function");
76993
+ if (typeof _cache !== "undefined") {
76994
+ if (_cache.has(Class)) return _cache.get(Class);
76995
+ _cache.set(Class, Wrapper);
76996
+ }
76997
+ function Wrapper() {
76998
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
76999
+ }
77000
+ Wrapper.prototype = Object.create(Class.prototype, {
77001
+ constructor: {
77002
+ value: Wrapper,
77003
+ enumerable: false,
77004
+ writable: true,
77005
+ configurable: true
77006
+ }
77007
+ });
77008
+ return _set_prototype_of(Wrapper, Class);
77009
+ };
77010
+ return _wrap_native_super(Class);
77011
+ }
77012
+ /*!
77013
+ * Jodit Editor (https://xdsoft.net/jodit/)
77014
+ * Released under MIT see LICENSE.txt in the project root for license information.
77015
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
77016
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
77017
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
77018
+ if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
77019
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
77020
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
77021
+ };
77022
+
77023
+
77024
+
77025
+
77026
+
77027
+
77028
+
77029
+
77030
+
77031
+
77032
+
77033
+
77034
+
77035
+
77036
+
77037
+ /**
77038
+ * Show a dialog with the size, poster and playback settings of a video, an
77039
+ * embed or audio. The media popup's Edit button opens it:
77040
+ *
77041
+ * ```javascript
77042
+ * editor.events.fire('openVideoProperties', video);
77043
+ * ```
77044
+ */ var videoProperties = /*#__PURE__*/ function(Plugin) {
77045
+ "use strict";
77046
+ _inherits(videoProperties, Plugin);
77047
+ function videoProperties() {
77048
+ _class_call_check(this, videoProperties);
77049
+ var _this;
77050
+ _this = _call_super(this, videoProperties, arguments);
77051
+ _this.state = {
77052
+ target: _this.j.c.element('video'),
77053
+ media: _this.j.c.element('video'),
77054
+ ratio: 1,
77055
+ sizeIsLocked: true,
77056
+ values: {
77057
+ width: '',
77058
+ height: '',
77059
+ poster: '',
77060
+ autoplay: false,
77061
+ loop: false,
77062
+ muted: false,
77063
+ controls: true
77064
+ }
77065
+ };
77066
+ // The size as it was read, so an unchanged one isn't written
77067
+ _this.__readSize = '';
77068
+ return _this;
77069
+ }
77070
+ _create_class(videoProperties, [
77071
+ {
77072
+ key: "__size",
77073
+ get: function get() {
77074
+ var _this_state_values = this.state.values, width = _this_state_values.width, height = _this_state_values.height;
77075
+ return "".concat(width, "x").concat(height);
77076
+ }
77077
+ },
77078
+ {
77079
+ key: "form",
77080
+ get: function get() {
77081
+ var _this = this;
77082
+ return new _ui_ui_video_form_js__WEBPACK_IMPORTED_MODULE_10__.UIVideoPropertiesForm(this.j, this.state, {
77083
+ openPosterPopup: function openPosterPopup(target) {
77084
+ return _this.__openPosterPopup(target);
77085
+ }
77086
+ });
77087
+ }
77088
+ },
77089
+ {
77090
+ key: "dialog",
77091
+ get: function get() {
77092
+ var _this = this;
77093
+ var j = this.j;
77094
+ var dialog = j.dlg({
77095
+ minWidth: Math.min(400, screen.width),
77096
+ buttons: [
77097
+ 'dialog.close'
77098
+ ]
77099
+ });
77100
+ var buttons = this.__buttons;
77101
+ buttons.check.onAction(function() {
77102
+ (0,_writers_js__WEBPACK_IMPORTED_MODULE_13__.applyValues)(j, _this.state, _this.__size !== _this.__readSize);
77103
+ j.synchronizeValues();
77104
+ dialog.close();
77105
+ });
77106
+ buttons.remove.onAction(function() {
77107
+ j.s.removeNode(_this.state.target);
77108
+ dialog.close();
77109
+ });
77110
+ buttons.cancel.onAction(function() {
77111
+ dialog.close();
77112
+ });
77113
+ dialog.setContent(this.form);
77114
+ dialog.setFooter([
77115
+ [
77116
+ buttons.cancel,
77117
+ buttons.remove
77118
+ ],
77119
+ buttons.check
77120
+ ]);
77121
+ (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_5__.markOwner)(j, dialog.container);
77122
+ return dialog;
77123
+ }
77124
+ },
77125
+ {
77126
+ key: "__buttons",
77127
+ get: function get() {
77128
+ var j = this.j;
77129
+ return {
77130
+ check: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_7__.Button)(j, 'ok', 'Apply', 'primary'),
77131
+ remove: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_7__.Button)(j, 'bin', 'Delete'),
77132
+ cancel: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_7__.Button)(j, 'cancel', 'Cancel')
77133
+ };
77134
+ }
77135
+ },
77136
+ {
77137
+ /**
77138
+ * Open the dialog for the media `target` is, or is the wrapper of
77139
+ */ key: "open",
77140
+ value: function open(target) {
77141
+ var media = (0,_readers_js__WEBPACK_IMPORTED_MODULE_11__.editedMedia)(target);
77142
+ if (!media) {
77143
+ return;
77144
+ }
77145
+ this.state.target = target;
77146
+ this.state.media = media;
77147
+ (0,_readers_js__WEBPACK_IMPORTED_MODULE_11__.readValues)(this.state);
77148
+ this.__readSize = this.__size;
77149
+ this.dialog.setHeader(this.j.i18n(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(media, 'audio') ? 'Audio properties' : 'Video properties'));
77150
+ this.dialog.open().setModal(true).setPosition();
77151
+ }
77152
+ },
77153
+ {
77154
+ /**
77155
+ * The video popup's tabs for the media popup's Replace: what they insert
77156
+ * takes the place of the media `target` is, or is the wrapper of
77157
+ */ key: "onGenerateReplaceVideoTabs",
77158
+ value: function onGenerateReplaceVideoTabs(target, close) {
77159
+ var _this = this;
77160
+ return (0,_video_config_js__WEBPACK_IMPORTED_MODULE_14__.videoTabs)(this.j, close, function(insert) {
77161
+ return (0,_replace_js__WEBPACK_IMPORTED_MODULE_12__.replaceMedia)(_this.j, target, insert);
77162
+ });
77163
+ }
77164
+ },
77165
+ {
77166
+ key: "__openPosterPopup",
77167
+ value: function __openPosterPopup(button) {
77168
+ var _this = this, j = _this.j, state = _this.state;
77169
+ var popup = new _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_8__.Popup(this.dialog);
77170
+ var close = function close() {
77171
+ popup.close();
77172
+ popup.destruct();
77173
+ };
77174
+ popup.setContent((0,_modules_widget_file_selector_file_selector_js__WEBPACK_IMPORTED_MODULE_9__.FileSelectorWidget)(j, {
77175
+ upload: function upload(data) {
77176
+ if (data.files && data.files.length) {
77177
+ state.values.poster = data.baseurl + data.files[0];
77178
+ }
77179
+ close();
77180
+ },
77181
+ filebrowser: function filebrowser(data) {
77182
+ if ((0,_core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_3__.isArray)(data.files) && data.files.length) {
77183
+ state.values.poster = data.files[0];
77184
+ close();
77185
+ }
77186
+ }
77187
+ }, null, close)).open(function() {
77188
+ return (0,_core_helpers_size_position_js__WEBPACK_IMPORTED_MODULE_4__.position)(button);
77189
+ });
77190
+ }
77191
+ },
77192
+ {
77193
+ /** @override */ key: "afterInit",
77194
+ value: function afterInit() {}
77195
+ },
77196
+ {
77197
+ /** @override */ key: "beforeDestruct",
77198
+ value: function beforeDestruct() {
77199
+ var _a, _b, _c;
77200
+ Object.values((_a = (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.cached)(this, '__buttons')) !== null && _a !== void 0 ? _a : {}).forEach(function(b) {
77201
+ return b.destruct();
77202
+ });
77203
+ (_b = (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.cached)(this, 'dialog')) === null || _b === void 0 ? void 0 : _b.destruct();
77204
+ (_c = (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.cached)(this, 'form')) === null || _c === void 0 ? void 0 : _c.destruct();
77205
+ }
77206
+ }
77207
+ ]);
77208
+ return videoProperties;
77209
+ }(_wrap_native_super(_core_plugin_plugin_js__WEBPACK_IMPORTED_MODULE_6__.Plugin));
77210
+ __decorate([
77211
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.cache
77212
+ ], videoProperties.prototype, "form", null);
77213
+ __decorate([
77214
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.cache
77215
+ ], videoProperties.prototype, "dialog", null);
77216
+ __decorate([
77217
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.cache
77218
+ ], videoProperties.prototype, "__buttons", null);
77219
+ __decorate([
77220
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':openVideoProperties')
77221
+ ], videoProperties.prototype, "open", null);
77222
+ __decorate([
77223
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':generateReplaceVideoTabs')
77224
+ ], videoProperties.prototype, "onGenerateReplaceVideoTabs", null);
77225
+ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('videoProperties', videoProperties);
77226
+
77227
+
77228
+ /***/ }),
77229
+
77230
+ /***/ 44909:
77231
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
77232
+
77233
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
77234
+ /* harmony export */ applyValues: function() { return /* binding */ applyValues; }
77235
+ /* harmony export */ });
77236
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
77237
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29960);
77238
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41180);
77239
+ /* harmony import */ var _readers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54426);
77240
+ /* harmony import */ var _image_properties_utils_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14415);
77241
+ /*!
77242
+ * Jodit Editor (https://xdsoft.net/jodit/)
77243
+ * Released under MIT see LICENSE.txt in the project root for license information.
77244
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
77245
+ */
77246
+
77247
+
77248
+
77249
+
77250
+ var cssSize = function cssSize(value) {
77251
+ return value === '' ? null : (0,_image_properties_utils_utils_js__WEBPACK_IMPORTED_MODULE_4__.normalSizeToString)(value);
77252
+ };
77253
+ // Sizes go on as the resizer writes them: an embed takes them as attributes,
77254
+ // and a video as CSS, without a height while its ratio is kept, if it had none
77255
+ function applySize(j, state) {
77256
+ var _a;
77257
+ var media = state.media, values = state.values;
77258
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(media, 'iframe')) {
77259
+ [
77260
+ 'width',
77261
+ 'height'
77262
+ ].forEach(function(key) {
77263
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, key, values[key] === '' ? null : values[key]);
77264
+ if ((0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.cssInline)(media, key)) {
77265
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(media, key, cssSize(values[key]));
77266
+ }
77267
+ });
77268
+ // The resizer's frame for an embed
77269
+ var wrapper = media.parentElement;
77270
+ if (wrapper && (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(wrapper, 'data-jodit_iframe_wrapper')) {
77271
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(wrapper, {
77272
+ width: media.offsetWidth,
77273
+ height: media.offsetHeight
77274
+ });
77275
+ }
77276
+ return;
77277
+ }
77278
+ var heightFollowsWidth = state.sizeIsLocked && !(0,_readers_js__WEBPACK_IMPORTED_MODULE_3__.ownSize)(media, 'height');
77279
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(media, {
77280
+ width: cssSize(values.width),
77281
+ height: heightFollowsWidth ? null : cssSize(values.height)
77282
+ });
77283
+ if (!((_a = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, 'style')) === null || _a === void 0 ? void 0 : _a.trim())) {
77284
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, 'style', null);
77285
+ }
77286
+ j.e.fire(media, 'changesize');
77287
+ }
77288
+ function setFlag(media, name, on) {
77289
+ if (media.hasAttribute(name) !== on) {
77290
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, name, on ? '' : null);
77291
+ }
77292
+ }
77293
+ /**
77294
+ * Apply the dialog's values to the media
77295
+ * @private
77296
+ */ function applyValues(j, state, sizeChanged) {
77297
+ var media = state.media, values = state.values;
77298
+ if (sizeChanged && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(media, 'audio')) {
77299
+ applySize(j, state);
77300
+ }
77301
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(media, 'iframe')) {
77302
+ return;
77303
+ }
77304
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(media, 'video')) {
77305
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_1__.attr)(media, 'poster', values.poster || null);
77306
+ }
77307
+ // Browsers only autoplay muted media, and playsinline keeps an iPhone from
77308
+ // playing it full screen
77309
+ setFlag(media, 'autoplay', values.autoplay);
77310
+ setFlag(media, 'muted', values.autoplay || values.muted);
77311
+ setFlag(media, 'loop', values.loop);
77312
+ setFlag(media, 'controls', values.controls || !values.autoplay);
77313
+ if (values.autoplay && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(media, 'video')) {
77314
+ setFlag(media, 'playsinline', true);
77315
+ }
77316
+ }
77317
+
77318
+
77319
+ /***/ }),
77320
+
77321
+ /***/ 14984:
77322
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
77323
+
77324
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
77325
+ /* harmony export */ videoTabs: function() { return /* binding */ videoTabs; }
77326
+ /* harmony export */ });
75974
77327
  /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21537);
75975
77328
  /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62843);
75976
77329
  /* harmony import */ var _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2525);
@@ -76006,80 +77359,95 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.video = {
76006
77359
  defaultHandlerSuccess: insertVideos
76007
77360
  };
76008
77361
  _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('video', _video_svg_js__WEBPACK_IMPORTED_MODULE_6__["default"]);
76009
- _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.video = {
76010
- popup: function popup(jodit, current, close) {
76011
- var formLink = new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIForm(jodit, [
76012
- new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
76013
- new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIInput(jodit, {
76014
- name: 'url',
76015
- required: true,
76016
- label: 'URL',
76017
- placeholder: 'https://',
76018
- validators: [
76019
- 'url'
76020
- ]
76021
- })
76022
- ]),
76023
- new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
76024
- (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_1__.Button)(jodit, '', 'Insert', 'primary').onAction(function() {
76025
- return formLink.submit();
76026
- })
76027
- ])
76028
- ]), formCode = new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIForm(jodit, [
76029
- new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
76030
- new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UITextArea(jodit, {
76031
- name: 'code',
76032
- required: true,
76033
- label: 'Embed code'
76034
- })
76035
- ]),
76036
- new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
76037
- (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_1__.Button)(jodit, '', 'Insert', 'primary').onAction(function() {
76038
- return formCode.submit();
76039
- })
76040
- ])
76041
- ]), tabs = [], insertCode = function insertCode(code) {
76042
- jodit.s.restore();
76043
- jodit.s.insertHTML((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.prepareEmbedCode)(jodit, code));
76044
- close();
76045
- };
77362
+ /**
77363
+ * The video popup's tabs: Upload, when the uploader is configured, then Link
77364
+ * and Code. `insert` runs what a tab inserts, which by default goes in at the
77365
+ * selection the popup was opened with.
77366
+ */ function videoTabs(jodit, close, insert) {
77367
+ var run = insert !== null && insert !== void 0 ? insert : function(fn) {
77368
+ jodit.s.restore();
77369
+ fn();
77370
+ };
77371
+ var formLink = new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIForm(jodit, [
77372
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
77373
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIInput(jodit, {
77374
+ name: 'url',
77375
+ required: true,
77376
+ label: 'URL',
77377
+ placeholder: 'https://',
77378
+ validators: [
77379
+ 'url'
77380
+ ]
77381
+ })
77382
+ ]),
77383
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
77384
+ (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_1__.Button)(jodit, '', 'Insert', 'primary').onAction(function() {
77385
+ return formLink.submit();
77386
+ })
77387
+ ])
77388
+ ]), formCode = new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIForm(jodit, [
77389
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
77390
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UITextArea(jodit, {
77391
+ name: 'code',
77392
+ required: true,
77393
+ label: 'Embed code'
77394
+ })
77395
+ ]),
77396
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_2__.UIBlock(jodit, [
77397
+ (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_1__.Button)(jodit, '', 'Insert', 'primary').onAction(function() {
77398
+ return formCode.submit();
77399
+ })
77400
+ ])
77401
+ ]), tabs = [], insertCode = function insertCode(code) {
77402
+ run(function() {
77403
+ return jodit.s.insertHTML((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.prepareEmbedCode)(jodit, code));
77404
+ });
77405
+ close();
77406
+ };
77407
+ if (!insert) {
76046
77408
  jodit.s.save();
76047
- var uploader = jodit.o.uploader;
76048
- // Base64 alone would put whole video files into the content
76049
- if (uploader.showTabInFileSelector !== false && (uploader.url || uploader.customUploadFunction)) {
76050
- tabs.push((0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.UploadTab)(jodit, function(data) {
77409
+ }
77410
+ var uploader = jodit.o.uploader;
77411
+ // Base64 alone would put whole video files into the content
77412
+ if (uploader.showTabInFileSelector !== false && (uploader.url || uploader.customUploadFunction)) {
77413
+ tabs.push((0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.UploadTab)(jodit, function(data) {
77414
+ run(function() {
76051
77415
  var _a, _b;
76052
- jodit.s.restore();
76053
- ((_b = (_a = jodit.o.video) === null || _a === void 0 ? void 0 : _a.defaultHandlerSuccess) !== null && _b !== void 0 ? _b : insertVideos).call(jodit, data);
76054
- }, {
76055
- label: 'Drop file',
76056
- accept: 'video/*'
76057
- }));
76058
- }
76059
- tabs.push({
76060
- icon: 'link',
76061
- name: 'Link',
76062
- content: formLink.container
77416
+ return ((_b = (_a = jodit.o.video) === null || _a === void 0 ? void 0 : _a.defaultHandlerSuccess) !== null && _b !== void 0 ? _b : insertVideos).call(jodit, data);
77417
+ });
76063
77418
  }, {
76064
- icon: 'source',
76065
- name: 'Code',
76066
- content: formCode.container
76067
- });
76068
- formLink.onSubmit(function(data) {
76069
- var _a, _b, _c, _d;
76070
- insertCode((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.call)((_b = (_a = jodit.o.video) === null || _a === void 0 ? void 0 : _a.parseUrlToVideoEmbed) !== null && _b !== void 0 ? _b : _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed, data.url, {
76071
- width: (_c = jodit.o.video) === null || _c === void 0 ? void 0 : _c.defaultWidth,
76072
- height: (_d = jodit.o.video) === null || _d === void 0 ? void 0 : _d.defaultHeight
76073
- }));
76074
- });
76075
- formCode.onSubmit(function(data) {
76076
- insertCode(data.code);
76077
- });
76078
- var box = (0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.TabsWidget)(jodit, tabs);
76079
- // Its tabs are sized to their labels, as the file selector's are, since
76080
- // "Upload" doesn't fit a third of the popup
76081
- box.classList.add('jodit-file-selector');
76082
- return box;
77419
+ label: 'Drop file',
77420
+ accept: 'video/*'
77421
+ }));
77422
+ }
77423
+ tabs.push({
77424
+ icon: 'link',
77425
+ name: 'Link',
77426
+ content: formLink.container
77427
+ }, {
77428
+ icon: 'source',
77429
+ name: 'Code',
77430
+ content: formCode.container
77431
+ });
77432
+ formLink.onSubmit(function(data) {
77433
+ var _a, _b, _c, _d;
77434
+ insertCode((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.call)((_b = (_a = jodit.o.video) === null || _a === void 0 ? void 0 : _a.parseUrlToVideoEmbed) !== null && _b !== void 0 ? _b : _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.convertMediaUrlToVideoEmbed, data.url, {
77435
+ width: (_c = jodit.o.video) === null || _c === void 0 ? void 0 : _c.defaultWidth,
77436
+ height: (_d = jodit.o.video) === null || _d === void 0 ? void 0 : _d.defaultHeight
77437
+ }));
77438
+ });
77439
+ formCode.onSubmit(function(data) {
77440
+ insertCode(data.code);
77441
+ });
77442
+ var box = (0,_modules_widget_index_js__WEBPACK_IMPORTED_MODULE_5__.TabsWidget)(jodit, tabs);
77443
+ // Its tabs are sized to their labels, as the file selector's are, since
77444
+ // "Upload" doesn't fit a third of the popup
77445
+ box.classList.add('jodit-file-selector');
77446
+ return box;
77447
+ }
77448
+ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.video = {
77449
+ popup: function popup(jodit, current, close) {
77450
+ return videoTabs(jodit, close);
76083
77451
  },
76084
77452
  tags: [
76085
77453
  'iframe'