@ckeditor/ckeditor5-image 47.3.0 → 47.4.0-alpha.1

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 (434) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/image.js +2 -2
  3. package/dist/index-content.css +1 -1
  4. package/dist/index-editor.css +1 -1
  5. package/dist/index.css +16 -16
  6. package/dist/index.css.map +1 -1
  7. package/dist/index.js +47 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/translations/af.d.ts +1 -1
  10. package/dist/translations/af.js +1 -1
  11. package/dist/translations/af.umd.js +1 -1
  12. package/dist/translations/ar.d.ts +1 -1
  13. package/dist/translations/ar.js +1 -1
  14. package/dist/translations/ar.umd.js +1 -1
  15. package/dist/translations/ast.d.ts +1 -1
  16. package/dist/translations/ast.js +1 -1
  17. package/dist/translations/ast.umd.js +1 -1
  18. package/dist/translations/az.d.ts +1 -1
  19. package/dist/translations/az.js +1 -1
  20. package/dist/translations/az.umd.js +1 -1
  21. package/dist/translations/be.d.ts +1 -1
  22. package/dist/translations/be.js +1 -1
  23. package/dist/translations/be.umd.js +1 -1
  24. package/dist/translations/bg.d.ts +1 -1
  25. package/dist/translations/bg.js +1 -1
  26. package/dist/translations/bg.umd.js +1 -1
  27. package/dist/translations/bn.d.ts +1 -1
  28. package/dist/translations/bn.js +1 -1
  29. package/dist/translations/bn.umd.js +1 -1
  30. package/dist/translations/bs.d.ts +1 -1
  31. package/dist/translations/bs.js +1 -1
  32. package/dist/translations/bs.umd.js +1 -1
  33. package/dist/translations/ca.d.ts +1 -1
  34. package/dist/translations/ca.js +1 -1
  35. package/dist/translations/ca.umd.js +1 -1
  36. package/dist/translations/cs.d.ts +1 -1
  37. package/dist/translations/cs.js +1 -1
  38. package/dist/translations/cs.umd.js +1 -1
  39. package/dist/translations/da.d.ts +1 -1
  40. package/dist/translations/da.js +1 -1
  41. package/dist/translations/da.umd.js +1 -1
  42. package/dist/translations/de-ch.d.ts +1 -1
  43. package/dist/translations/de-ch.js +1 -1
  44. package/dist/translations/de-ch.umd.js +1 -1
  45. package/dist/translations/de.d.ts +1 -1
  46. package/dist/translations/de.js +1 -1
  47. package/dist/translations/de.umd.js +1 -1
  48. package/dist/translations/el.d.ts +1 -1
  49. package/dist/translations/el.js +1 -1
  50. package/dist/translations/el.umd.js +1 -1
  51. package/dist/translations/en-au.d.ts +1 -1
  52. package/dist/translations/en-au.js +1 -1
  53. package/dist/translations/en-au.umd.js +1 -1
  54. package/dist/translations/en-gb.d.ts +1 -1
  55. package/dist/translations/en-gb.js +1 -1
  56. package/dist/translations/en-gb.umd.js +1 -1
  57. package/dist/translations/en.d.ts +1 -1
  58. package/dist/translations/en.js +1 -1
  59. package/dist/translations/en.umd.js +1 -1
  60. package/dist/translations/eo.d.ts +1 -1
  61. package/dist/translations/eo.js +1 -1
  62. package/dist/translations/eo.umd.js +1 -1
  63. package/dist/translations/es-co.d.ts +1 -1
  64. package/dist/translations/es-co.js +1 -1
  65. package/dist/translations/es-co.umd.js +1 -1
  66. package/dist/translations/es.d.ts +1 -1
  67. package/dist/translations/es.js +1 -1
  68. package/dist/translations/es.umd.js +1 -1
  69. package/dist/translations/et.d.ts +1 -1
  70. package/dist/translations/et.js +1 -1
  71. package/dist/translations/et.umd.js +1 -1
  72. package/dist/translations/eu.d.ts +1 -1
  73. package/dist/translations/eu.js +1 -1
  74. package/dist/translations/eu.umd.js +1 -1
  75. package/dist/translations/fa.d.ts +1 -1
  76. package/dist/translations/fa.js +1 -1
  77. package/dist/translations/fa.umd.js +1 -1
  78. package/dist/translations/fi.d.ts +1 -1
  79. package/dist/translations/fi.js +1 -1
  80. package/dist/translations/fi.umd.js +1 -1
  81. package/dist/translations/fr.d.ts +1 -1
  82. package/dist/translations/fr.js +1 -1
  83. package/dist/translations/fr.umd.js +1 -1
  84. package/dist/translations/gl.d.ts +1 -1
  85. package/dist/translations/gl.js +1 -1
  86. package/dist/translations/gl.umd.js +1 -1
  87. package/dist/translations/gu.d.ts +1 -1
  88. package/dist/translations/gu.js +1 -1
  89. package/dist/translations/gu.umd.js +1 -1
  90. package/dist/translations/he.d.ts +1 -1
  91. package/dist/translations/he.js +1 -1
  92. package/dist/translations/he.umd.js +1 -1
  93. package/dist/translations/hi.d.ts +1 -1
  94. package/dist/translations/hi.js +1 -1
  95. package/dist/translations/hi.umd.js +1 -1
  96. package/dist/translations/hr.d.ts +1 -1
  97. package/dist/translations/hr.js +1 -1
  98. package/dist/translations/hr.umd.js +1 -1
  99. package/dist/translations/hu.d.ts +1 -1
  100. package/dist/translations/hu.js +1 -1
  101. package/dist/translations/hu.umd.js +1 -1
  102. package/dist/translations/hy.d.ts +1 -1
  103. package/dist/translations/hy.js +1 -1
  104. package/dist/translations/hy.umd.js +1 -1
  105. package/dist/translations/id.d.ts +1 -1
  106. package/dist/translations/id.js +1 -1
  107. package/dist/translations/id.umd.js +1 -1
  108. package/dist/translations/it.d.ts +1 -1
  109. package/dist/translations/it.js +1 -1
  110. package/dist/translations/it.umd.js +1 -1
  111. package/dist/translations/ja.d.ts +1 -1
  112. package/dist/translations/ja.js +1 -1
  113. package/dist/translations/ja.umd.js +1 -1
  114. package/dist/translations/jv.d.ts +1 -1
  115. package/dist/translations/jv.js +1 -1
  116. package/dist/translations/jv.umd.js +1 -1
  117. package/dist/translations/kk.d.ts +1 -1
  118. package/dist/translations/kk.js +1 -1
  119. package/dist/translations/kk.umd.js +1 -1
  120. package/dist/translations/km.d.ts +1 -1
  121. package/dist/translations/km.js +1 -1
  122. package/dist/translations/km.umd.js +1 -1
  123. package/dist/translations/kn.d.ts +1 -1
  124. package/dist/translations/kn.js +1 -1
  125. package/dist/translations/kn.umd.js +1 -1
  126. package/dist/translations/ko.d.ts +1 -1
  127. package/dist/translations/ko.js +1 -1
  128. package/dist/translations/ko.umd.js +1 -1
  129. package/dist/translations/ku.d.ts +1 -1
  130. package/dist/translations/ku.js +1 -1
  131. package/dist/translations/ku.umd.js +1 -1
  132. package/dist/translations/lt.d.ts +1 -1
  133. package/dist/translations/lt.js +1 -1
  134. package/dist/translations/lt.umd.js +1 -1
  135. package/dist/translations/lv.d.ts +1 -1
  136. package/dist/translations/lv.js +1 -1
  137. package/dist/translations/lv.umd.js +1 -1
  138. package/dist/translations/ms.d.ts +1 -1
  139. package/dist/translations/ms.js +1 -1
  140. package/dist/translations/ms.umd.js +1 -1
  141. package/dist/translations/nb.d.ts +1 -1
  142. package/dist/translations/nb.js +1 -1
  143. package/dist/translations/nb.umd.js +1 -1
  144. package/dist/translations/ne.d.ts +1 -1
  145. package/dist/translations/ne.js +1 -1
  146. package/dist/translations/ne.umd.js +1 -1
  147. package/dist/translations/nl.d.ts +1 -1
  148. package/dist/translations/nl.js +1 -1
  149. package/dist/translations/nl.umd.js +1 -1
  150. package/dist/translations/no.d.ts +1 -1
  151. package/dist/translations/no.js +1 -1
  152. package/dist/translations/no.umd.js +1 -1
  153. package/dist/translations/oc.d.ts +1 -1
  154. package/dist/translations/oc.js +1 -1
  155. package/dist/translations/oc.umd.js +1 -1
  156. package/dist/translations/pl.d.ts +1 -1
  157. package/dist/translations/pl.js +1 -1
  158. package/dist/translations/pl.umd.js +1 -1
  159. package/dist/translations/pt-br.d.ts +1 -1
  160. package/dist/translations/pt-br.js +1 -1
  161. package/dist/translations/pt-br.umd.js +1 -1
  162. package/dist/translations/pt.d.ts +1 -1
  163. package/dist/translations/pt.js +1 -1
  164. package/dist/translations/pt.umd.js +1 -1
  165. package/dist/translations/ro.d.ts +1 -1
  166. package/dist/translations/ro.js +1 -1
  167. package/dist/translations/ro.umd.js +1 -1
  168. package/dist/translations/ru.d.ts +1 -1
  169. package/dist/translations/ru.js +1 -1
  170. package/dist/translations/ru.umd.js +1 -1
  171. package/dist/translations/si.d.ts +1 -1
  172. package/dist/translations/si.js +1 -1
  173. package/dist/translations/si.umd.js +1 -1
  174. package/dist/translations/sk.d.ts +1 -1
  175. package/dist/translations/sk.js +1 -1
  176. package/dist/translations/sk.umd.js +1 -1
  177. package/dist/translations/sl.d.ts +1 -1
  178. package/dist/translations/sl.js +1 -1
  179. package/dist/translations/sl.umd.js +1 -1
  180. package/dist/translations/sq.d.ts +1 -1
  181. package/dist/translations/sq.js +1 -1
  182. package/dist/translations/sq.umd.js +1 -1
  183. package/dist/translations/sr-latn.d.ts +1 -1
  184. package/dist/translations/sr-latn.js +1 -1
  185. package/dist/translations/sr-latn.umd.js +1 -1
  186. package/dist/translations/sr.d.ts +1 -1
  187. package/dist/translations/sr.js +1 -1
  188. package/dist/translations/sr.umd.js +1 -1
  189. package/dist/translations/sv.d.ts +1 -1
  190. package/dist/translations/sv.js +1 -1
  191. package/dist/translations/sv.umd.js +1 -1
  192. package/dist/translations/th.d.ts +1 -1
  193. package/dist/translations/th.js +1 -1
  194. package/dist/translations/th.umd.js +1 -1
  195. package/dist/translations/ti.d.ts +1 -1
  196. package/dist/translations/ti.js +1 -1
  197. package/dist/translations/ti.umd.js +1 -1
  198. package/dist/translations/tk.d.ts +1 -1
  199. package/dist/translations/tk.js +1 -1
  200. package/dist/translations/tk.umd.js +1 -1
  201. package/dist/translations/tr.d.ts +1 -1
  202. package/dist/translations/tr.js +1 -1
  203. package/dist/translations/tr.umd.js +1 -1
  204. package/dist/translations/tt.d.ts +1 -1
  205. package/dist/translations/tt.js +1 -1
  206. package/dist/translations/tt.umd.js +1 -1
  207. package/dist/translations/ug.d.ts +1 -1
  208. package/dist/translations/ug.js +1 -1
  209. package/dist/translations/ug.umd.js +1 -1
  210. package/dist/translations/uk.d.ts +1 -1
  211. package/dist/translations/uk.js +1 -1
  212. package/dist/translations/uk.umd.js +1 -1
  213. package/dist/translations/ur.d.ts +1 -1
  214. package/dist/translations/ur.js +1 -1
  215. package/dist/translations/ur.umd.js +1 -1
  216. package/dist/translations/uz.d.ts +1 -1
  217. package/dist/translations/uz.js +1 -1
  218. package/dist/translations/uz.umd.js +1 -1
  219. package/dist/translations/vi.d.ts +1 -1
  220. package/dist/translations/vi.js +1 -1
  221. package/dist/translations/vi.umd.js +1 -1
  222. package/dist/translations/zh-cn.d.ts +1 -1
  223. package/dist/translations/zh-cn.js +1 -1
  224. package/dist/translations/zh-cn.umd.js +1 -1
  225. package/dist/translations/zh.d.ts +1 -1
  226. package/dist/translations/zh.js +1 -1
  227. package/dist/translations/zh.umd.js +1 -1
  228. package/lang/translations/af.po +1 -1
  229. package/lang/translations/ar.po +1 -1
  230. package/lang/translations/ast.po +1 -1
  231. package/lang/translations/az.po +1 -1
  232. package/lang/translations/be.po +1 -1
  233. package/lang/translations/bg.po +1 -1
  234. package/lang/translations/bn.po +1 -1
  235. package/lang/translations/bs.po +1 -1
  236. package/lang/translations/ca.po +1 -1
  237. package/lang/translations/cs.po +1 -1
  238. package/lang/translations/da.po +1 -1
  239. package/lang/translations/de-ch.po +1 -1
  240. package/lang/translations/de.po +1 -1
  241. package/lang/translations/el.po +1 -1
  242. package/lang/translations/en-au.po +1 -1
  243. package/lang/translations/en-gb.po +1 -1
  244. package/lang/translations/en.po +1 -1
  245. package/lang/translations/eo.po +1 -1
  246. package/lang/translations/es-co.po +1 -1
  247. package/lang/translations/es.po +1 -1
  248. package/lang/translations/et.po +1 -1
  249. package/lang/translations/eu.po +1 -1
  250. package/lang/translations/fa.po +1 -1
  251. package/lang/translations/fi.po +1 -1
  252. package/lang/translations/fr.po +1 -1
  253. package/lang/translations/gl.po +1 -1
  254. package/lang/translations/gu.po +1 -1
  255. package/lang/translations/he.po +1 -1
  256. package/lang/translations/hi.po +1 -1
  257. package/lang/translations/hr.po +1 -1
  258. package/lang/translations/hu.po +1 -1
  259. package/lang/translations/hy.po +1 -1
  260. package/lang/translations/id.po +1 -1
  261. package/lang/translations/it.po +1 -1
  262. package/lang/translations/ja.po +1 -1
  263. package/lang/translations/jv.po +1 -1
  264. package/lang/translations/kk.po +1 -1
  265. package/lang/translations/km.po +1 -1
  266. package/lang/translations/kn.po +1 -1
  267. package/lang/translations/ko.po +1 -1
  268. package/lang/translations/ku.po +1 -1
  269. package/lang/translations/lt.po +1 -1
  270. package/lang/translations/lv.po +1 -1
  271. package/lang/translations/ms.po +1 -1
  272. package/lang/translations/nb.po +1 -1
  273. package/lang/translations/ne.po +1 -1
  274. package/lang/translations/nl.po +1 -1
  275. package/lang/translations/no.po +1 -1
  276. package/lang/translations/oc.po +1 -1
  277. package/lang/translations/pl.po +1 -1
  278. package/lang/translations/pt-br.po +1 -1
  279. package/lang/translations/pt.po +1 -1
  280. package/lang/translations/ro.po +1 -1
  281. package/lang/translations/ru.po +1 -1
  282. package/lang/translations/si.po +1 -1
  283. package/lang/translations/sk.po +1 -1
  284. package/lang/translations/sl.po +1 -1
  285. package/lang/translations/sq.po +1 -1
  286. package/lang/translations/sr-latn.po +1 -1
  287. package/lang/translations/sr.po +1 -1
  288. package/lang/translations/sv.po +1 -1
  289. package/lang/translations/th.po +1 -1
  290. package/lang/translations/ti.po +1 -1
  291. package/lang/translations/tk.po +1 -1
  292. package/lang/translations/tr.po +1 -1
  293. package/lang/translations/tt.po +1 -1
  294. package/lang/translations/ug.po +1 -1
  295. package/lang/translations/uk.po +1 -1
  296. package/lang/translations/ur.po +1 -1
  297. package/lang/translations/uz.po +1 -1
  298. package/lang/translations/vi.po +1 -1
  299. package/lang/translations/zh-cn.po +1 -1
  300. package/lang/translations/zh.po +1 -1
  301. package/package.json +13 -13
  302. package/src/augmentation.d.ts +1 -1
  303. package/src/augmentation.js +1 -1
  304. package/src/autoimage.d.ts +1 -1
  305. package/src/autoimage.js +1 -1
  306. package/src/image/converters.d.ts +1 -1
  307. package/src/image/converters.js +1 -1
  308. package/src/image/imageblockediting.d.ts +1 -1
  309. package/src/image/imageblockediting.js +1 -1
  310. package/src/image/imageediting.d.ts +1 -1
  311. package/src/image/imageediting.js +1 -1
  312. package/src/image/imageinlineediting.d.ts +1 -1
  313. package/src/image/imageinlineediting.js +1 -1
  314. package/src/image/imageloadobserver.d.ts +1 -1
  315. package/src/image/imageloadobserver.js +1 -1
  316. package/src/image/imageplaceholder.d.ts +1 -1
  317. package/src/image/imageplaceholder.js +1 -1
  318. package/src/image/imagetypecommand.d.ts +1 -1
  319. package/src/image/imagetypecommand.js +1 -1
  320. package/src/image/insertimagecommand.d.ts +1 -1
  321. package/src/image/insertimagecommand.js +1 -1
  322. package/src/image/replaceimagesourcecommand.d.ts +1 -1
  323. package/src/image/replaceimagesourcecommand.js +1 -1
  324. package/src/image/ui/utils.d.ts +1 -1
  325. package/src/image/ui/utils.js +1 -1
  326. package/src/image/utils.d.ts +1 -1
  327. package/src/image/utils.js +1 -1
  328. package/src/image.d.ts +1 -1
  329. package/src/image.js +1 -1
  330. package/src/imageblock.d.ts +1 -1
  331. package/src/imageblock.js +1 -1
  332. package/src/imagecaption/imagecaptionediting.d.ts +1 -1
  333. package/src/imagecaption/imagecaptionediting.js +1 -1
  334. package/src/imagecaption/imagecaptionui.d.ts +1 -1
  335. package/src/imagecaption/imagecaptionui.js +1 -1
  336. package/src/imagecaption/imagecaptionutils.d.ts +1 -1
  337. package/src/imagecaption/imagecaptionutils.js +1 -1
  338. package/src/imagecaption/toggleimagecaptioncommand.d.ts +1 -1
  339. package/src/imagecaption/toggleimagecaptioncommand.js +1 -1
  340. package/src/imagecaption.d.ts +1 -1
  341. package/src/imagecaption.js +1 -1
  342. package/src/imageconfig.d.ts +1 -1
  343. package/src/imageconfig.js +1 -1
  344. package/src/imageinline.d.ts +1 -1
  345. package/src/imageinline.js +1 -1
  346. package/src/imageinsert/imageinsertui.d.ts +1 -1
  347. package/src/imageinsert/imageinsertui.js +1 -1
  348. package/src/imageinsert/imageinsertviaurlui.d.ts +1 -1
  349. package/src/imageinsert/imageinsertviaurlui.js +1 -1
  350. package/src/imageinsert/ui/imageinsertformview.d.ts +1 -1
  351. package/src/imageinsert/ui/imageinsertformview.js +1 -1
  352. package/src/imageinsert/ui/imageinserturlview.d.ts +1 -1
  353. package/src/imageinsert/ui/imageinserturlview.js +1 -1
  354. package/src/imageinsert.d.ts +1 -1
  355. package/src/imageinsert.js +1 -1
  356. package/src/imageinsertviaurl.d.ts +1 -1
  357. package/src/imageinsertviaurl.js +1 -1
  358. package/src/imageresize/imagecustomresizeui.d.ts +1 -1
  359. package/src/imageresize/imagecustomresizeui.js +1 -1
  360. package/src/imageresize/imageresizebuttons.d.ts +1 -1
  361. package/src/imageresize/imageresizebuttons.js +1 -1
  362. package/src/imageresize/imageresizeediting.d.ts +1 -1
  363. package/src/imageresize/imageresizeediting.js +1 -1
  364. package/src/imageresize/imageresizehandles.d.ts +1 -1
  365. package/src/imageresize/imageresizehandles.js +1 -1
  366. package/src/imageresize/resizeimagecommand.d.ts +1 -1
  367. package/src/imageresize/resizeimagecommand.js +1 -1
  368. package/src/imageresize/ui/imagecustomresizeformview.d.ts +1 -1
  369. package/src/imageresize/ui/imagecustomresizeformview.js +1 -1
  370. package/src/imageresize/utils/getselectedimageeditornodes.d.ts +1 -1
  371. package/src/imageresize/utils/getselectedimageeditornodes.js +1 -1
  372. package/src/imageresize/utils/getselectedimagepossibleresizerange.d.ts +1 -1
  373. package/src/imageresize/utils/getselectedimagepossibleresizerange.js +1 -1
  374. package/src/imageresize/utils/getselectedimagewidthinunits.d.ts +1 -1
  375. package/src/imageresize/utils/getselectedimagewidthinunits.js +1 -1
  376. package/src/imageresize/utils/tryparsedimensionwithunit.d.ts +1 -1
  377. package/src/imageresize/utils/tryparsedimensionwithunit.js +1 -1
  378. package/src/imageresize.d.ts +1 -1
  379. package/src/imageresize.js +1 -1
  380. package/src/imagesizeattributes.d.ts +1 -1
  381. package/src/imagesizeattributes.js +1 -1
  382. package/src/imagestyle/converters.d.ts +1 -1
  383. package/src/imagestyle/converters.js +39 -1
  384. package/src/imagestyle/imagestylecommand.d.ts +1 -1
  385. package/src/imagestyle/imagestylecommand.js +1 -1
  386. package/src/imagestyle/imagestyleediting.d.ts +1 -1
  387. package/src/imagestyle/imagestyleediting.js +1 -1
  388. package/src/imagestyle/imagestyleui.d.ts +1 -1
  389. package/src/imagestyle/imagestyleui.js +1 -1
  390. package/src/imagestyle/utils.d.ts +1 -1
  391. package/src/imagestyle/utils.js +1 -1
  392. package/src/imagestyle.d.ts +1 -1
  393. package/src/imagestyle.js +1 -1
  394. package/src/imagetextalternative/imagetextalternativecommand.d.ts +1 -1
  395. package/src/imagetextalternative/imagetextalternativecommand.js +1 -1
  396. package/src/imagetextalternative/imagetextalternativeediting.d.ts +1 -1
  397. package/src/imagetextalternative/imagetextalternativeediting.js +1 -1
  398. package/src/imagetextalternative/imagetextalternativeui.d.ts +1 -1
  399. package/src/imagetextalternative/imagetextalternativeui.js +1 -1
  400. package/src/imagetextalternative/ui/textalternativeformview.d.ts +1 -1
  401. package/src/imagetextalternative/ui/textalternativeformview.js +1 -1
  402. package/src/imagetextalternative.d.ts +1 -1
  403. package/src/imagetextalternative.js +1 -1
  404. package/src/imagetoolbar.d.ts +1 -1
  405. package/src/imagetoolbar.js +1 -1
  406. package/src/imageupload/imageuploadediting.d.ts +1 -1
  407. package/src/imageupload/imageuploadediting.js +1 -1
  408. package/src/imageupload/imageuploadprogress.d.ts +1 -1
  409. package/src/imageupload/imageuploadprogress.js +1 -1
  410. package/src/imageupload/imageuploadui.d.ts +1 -1
  411. package/src/imageupload/imageuploadui.js +1 -1
  412. package/src/imageupload/uploadimagecommand.d.ts +1 -1
  413. package/src/imageupload/uploadimagecommand.js +1 -1
  414. package/src/imageupload/utils.d.ts +1 -1
  415. package/src/imageupload/utils.js +1 -1
  416. package/src/imageupload.d.ts +1 -1
  417. package/src/imageupload.js +1 -1
  418. package/src/imageutils.d.ts +1 -1
  419. package/src/imageutils.js +1 -1
  420. package/src/index.d.ts +1 -1
  421. package/src/index.js +1 -1
  422. package/src/pictureediting.d.ts +1 -1
  423. package/src/pictureediting.js +1 -1
  424. package/theme/image.css +1 -1
  425. package/theme/imagecaption.css +1 -1
  426. package/theme/imagecustomresizeform.css +1 -1
  427. package/theme/imageinsert.css +1 -1
  428. package/theme/imageplaceholder.css +1 -1
  429. package/theme/imageresize.css +1 -1
  430. package/theme/imagestyle.css +1 -1
  431. package/theme/imageuploadicon.css +1 -1
  432. package/theme/imageuploadloader.css +1 -1
  433. package/theme/imageuploadprogress.css +1 -1
  434. package/theme/textalternativeform.css +1 -1
package/LICENSE.md CHANGED
@@ -2,7 +2,7 @@ Software License Agreement
2
2
  ==========================
3
3
 
4
4
  **CKEditor&nbsp;5 Image feature** (https://github.com/ckeditor/ckeditor5)<br>
5
- Copyright (c) 2003–2025, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
5
+ Copyright (c) 2003–2026, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
6
 
7
7
  Licensed under a dual-license model, this software is available under:
8
8
 
package/build/image.js CHANGED
@@ -1,5 +1,5 @@
1
1
  !function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Break text":"Break text","Caption for image: %0":"Caption for image: %0","Caption for the image":"Caption for the image","Centered image":"Centered image","Change image text alternative":"Change image text alternative",Custom:"Custom","Custom image size":"Custom image size","Enter image caption":"Enter image caption","Error during image upload":"Error during image upload","From computer":"From computer","Full size image":"Full size image",Image:"Image","Image from computer":"Image from computer","Image Resize":"Image Resize","Image resize list":"Image resize list","Image toolbar":"Image toolbar","Image upload complete":"Image upload complete","Image via URL":"Image via URL","image widget":"image widget","In line":"In line","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert via URL":"Insert via URL","Left aligned image":"Left aligned image",Original:"Original","Replace from computer":"Replace from computer","Replace image":"Replace image","Replace image from computer":"Replace image from computer","Resize image":"Resize image","Resize image (in %0)":"Resize image (in %0)","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Right aligned image":"Right aligned image","Side image":"Side image","Text alternative":"Text alternative","Text Alternative":"Text Alternative","The value must not be empty.":"The value must not be empty.","The value should be a plain number.":"The value should be a plain number.","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload from computer":"Upload from computer","Upload image from computer":"Upload image from computer","Uploading image":"Uploading image","Via URL":"Via URL","Wrap text":"Wrap text","You have no image upload permissions.":"You have no image upload permissions."})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
2
2
  /*!
3
- * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var e={18:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}",""]);const r=s},29:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,":root{--ck-form-default-width:340px}.ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form.ck-form_default-width{width:var(--ck-form-default-width)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-number,.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}@media screen and (max-width:600px){.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit{align-items:stretch;flex-direction:column;padding:0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit>.ck{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text{justify-content:center}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding{padding-bottom:var(--ck-spacing-large)}}[dir=ltr] .ck.ck-form.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-form.ck-responsive-form>:not(:last-child){margin-left:0}",""]);const r=s},68:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,":root{--ck-content-color-image-caption-background:#f7f7f7;--ck-content-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-content-color-image-caption-background);break-before:avoid;caption-side:bottom;color:var(--ck-content-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;overflow-wrap:anywhere;padding:.6em;word-break:normal}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-content-color-image-caption-background)}}",""]);const r=s},163:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},185:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}",""]);const r=s},220:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',""]);const r=s},237:e=>{"use strict";e.exports=CKEditor5.dll},251:(e,t,i)=>{e.exports=i(237)("./src/undo.js")},260:(e,t,i)=>{e.exports=i(237)("./src/upload.js")},305:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i="",n=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),n&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),n&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i}).join("")},t.i=function(e,i,n,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var r=0;r<this.length;r++){var l=this[r][0];null!=l&&(s[l]=!0)}for(var c=0;c<e.length;c++){var m=[].concat(e[c]);n&&s[m[0]]||(void 0!==a&&(void 0===m[5]||(m[1]="@layer".concat(m[5].length>0?" ".concat(m[5]):""," {").concat(m[1],"}")),m[5]=a),i&&(m[2]?(m[1]="@media ".concat(m[2]," {").concat(m[1],"}"),m[2]=i):m[2]=i),o&&(m[4]?(m[1]="@supports (".concat(m[4],") {").concat(m[1],"}"),m[4]=o):m[4]="".concat(o)),t.push(m))}},t}},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},331:(e,t,i)=>{e.exports=i(237)("./src/clipboard.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},424:e=>{"use strict";var t={};e.exports=function(e,i){var n=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(i)}},517:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})}},581:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,":root{--ck-content-image-style-spacing:1.5em;--ck-content-inline-image-style-spacing:calc(var(--ck-content-image-style-spacing)/2)}.ck-content .image.image-style-block-align-left,.ck-content .image.image-style-block-align-right{max-width:calc(100% - var(--ck-content-image-style-spacing))}.ck-content .image.image-style-align-left,.ck-content .image.image-style-align-right{clear:none}.ck-content .image.image-style-side{float:right;margin-left:var(--ck-content-image-style-spacing);max-width:50%}.ck-content .image.image-style-align-left{float:left;margin-right:var(--ck-content-image-style-spacing)}.ck-content .image.image-style-align-right{float:right;margin-left:var(--ck-content-image-style-spacing)}.ck-content .image.image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image.image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-content-image-style-spacing)}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-content-image-style-spacing)}.ck-content p+.image.image-style-align-left,.ck-content p+.image.image-style-align-right,.ck-content p+.image.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-content-inline-image-style-spacing);margin-top:var(--ck-content-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-content-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-content-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}",""]);const r=s},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},612:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0s,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0s}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',""]);const r=s},632:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}",""]);const r=s},636:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}",""]);const r=s},679:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,":root{--ck-image-custom-resize-form-width:340px}@media screen and (max-width:600px){:root{--ck-image-custom-resize-form-width:300px}}.ck.ck-image-custom-resize-form.ck-responsive-form{width:var(--ck-image-custom-resize-form-width)}",""]);const r=s},719:e=>{"use strict";var t=[];function i(e){for(var i=-1,n=0;n<t.length;n++)if(t[n].identifier===e){i=n;break}return i}function n(e,n){for(var a={},s=[],r=0;r<e.length;r++){var l=e[r],c=n.base?l[0]+n.base:l[0],m=a[c]||0,g="".concat(c," ").concat(m);a[c]=m+1;var u=i(g),d={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==u)t[u].references++,t[u].updater(d);else{var p=o(d,n);n.byIndex=r,t.splice(r,0,{identifier:g,updater:p,references:1})}s.push(g)}return s}function o(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,o){var a=n(e=e||[],o=o||{});return function(e){e=e||[];for(var s=0;s<a.length;s++){var r=i(a[s]);t[r].references--}for(var l=n(e,o),c=0;c<a.length;c++){var m=i(a[c]);0===t[m].references&&(t[m].updater(),t.splice(m,1))}a=l}}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},792:e=>{"use strict";e.exports=function(e){return e[1]}},799:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,":root{--ck-text-alternative-form-width:340px}@media screen and (max-width:600px){:root{--ck-text-alternative-form-width:300px}}.ck.ck-text-alternative-form.ck-responsive-form{width:var(--ck-text-alternative-form-width)}",""]);const r=s},802:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',""]);const r=s},811:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(792),o=i.n(n),a=i(305),s=i.n(a)()(o());s.push([e.id,".ck.ck-image-insert-url{padding:var(--ck-spacing-large) var(--ck-spacing-large) 0;width:400px}.ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width);padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}",""]);const r=s},834:(e,t,i)=>{e.exports=i(237)("./src/typing.js")},863:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function n(e,t,n,o){var a;if(n)a="";else{a="",o.supports&&(a+="@supports (".concat(o.supports,") {")),o.media&&(a+="@media ".concat(o.media," {"));var s=void 0!==o.layer;s&&(a+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," {")),a+=o.css,s&&(a+="}"),o.media&&(a+="}"),o.supports&&(a+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,a);else{var r=document.createTextNode(a),l=e.childNodes;l[t]&&e.removeChild(l[t]),l.length?e.insertBefore(r,l[t]):e.appendChild(r)}}var o={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=o.singletonCounter++,i=o.singleton||(o.singleton=e.insertStyleElement(e));return{update:function(e){n(i,t,!1,e)},remove:function(e){n(i,t,!0,e)}}}},901:(e,t,i)=>{e.exports=i(237)("./src/widget.js")}},t={};function i(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,exports:{}};return e[n](a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{AutoImage:()=>I,Image:()=>he,ImageBlock:()=>ue,ImageBlockEditing:()=>ae,ImageCaption:()=>_e,ImageCaptionEditing:()=>ke,ImageCaptionUI:()=>Ie,ImageCaptionUtils:()=>fe,ImageCustomResizeUI:()=>dt,ImageEditing:()=>Z,ImageInline:()=>pe,ImageInlineEditing:()=>de,ImageInsert:()=>Je,ImageInsertUI:()=>ce,ImageInsertViaUrl:()=>Ge,ImageInsertViaUrlUI:()=>Ke,ImageLoadObserver:()=>Y,ImagePlaceholder:()=>oe,ImageResize:()=>ft,ImageResizeButtons:()=>Ze,ImageResizeEditing:()=>Qe,ImageResizeHandles:()=>ot,ImageSizeAttributes:()=>ee,ImageStyle:()=>Rt,ImageStyleCommand:()=>bt,ImageStyleEditing:()=>xt,ImageStyleUI:()=>Tt,ImageTextAlternative:()=>q,ImageTextAlternativeCommand:()=>w,ImageTextAlternativeEditing:()=>v,ImageTextAlternativeUI:()=>j,ImageToolbar:()=>Ot,ImageTypeCommand:()=>te,ImageUpload:()=>He,ImageUploadEditing:()=>We,ImageUploadProgress:()=>Re,ImageUploadUI:()=>Ee,ImageUtils:()=>f,InsertImageCommand:()=>Q,PictureEditing:()=>Ft,ReplaceImageSourceCommand:()=>X,ResizeImageCommand:()=>Ye,ToggleImageCaptionCommand:()=>be,UploadImageCommand:()=>De,_IMAGE_DEFAULT_DROPDOWN_DEFINITIONS:()=>wt,_IMAGE_DEFAULT_ICONS:()=>It,_IMAGE_DEFAULT_OPTIONS:()=>kt,_ImageCustomResizeFormView:()=>gt,_ImageInsertFormView:()=>le,_ImageInsertUrlView:()=>$e,_ImageStyleUtils:()=>_t,_ImageTextAlternativeFormView:()=>M,_checkIfImageWidthAndHeightStylesAreBothSet:()=>p,_createBlockImageViewElement:()=>m,_createInlineImageViewElement:()=>c,_determineImageTypeForInsertionAtSelection:()=>u,_downcastImageAttribute:()=>J,_downcastImageSourcesAttribute:()=>G,_downcastImageSrcsetAttribute:()=>K,_fetchLocalImage:()=>Ae,_getImageBalloonPositionData:()=>W,_getImageSizeValueIfInPx:()=>d,_getImageViewElementMatcher:()=>g,_getSelectedImageEditorNodes:()=>rt,_getSelectedImagePossibleResizeRange:()=>ut,_getSelectedImageWidthInUnits:()=>lt,_isLocalImage:()=>Ce,_modelToViewImageStyleAttribute:()=>yt,_repositionImageContextualBalloon:()=>D,_tryCastImageDimensionsToUnit:()=>st,_tryParseImageDimensionWithUnit:()=>at,_upcastImageFigure:()=>H,_upcastImagePicture:()=>$,_viewToModelImageStyleAttribute:()=>At,createImageTypeRegExp:()=>ye,isHtmlInDataTransfer:()=>je});var e=i(782),t=i(331),o=i(783),a=i(251),s=i(834),r=i(584),l=i(901);function c(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}function m(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function g(e,t){const i=e.plugins.get("ImageUtils"),n=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>{if(!i.isInlineImageView(e))return null;if(!n)return o(e);return("block"==e.getStyle("display")||e.findAncestor(i.isBlockImageView)?"imageBlock":"imageInline")!==t?null:o(e)};function o(e){const t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function u(e,t){const i=(0,r.first)(t.getSelectedBlocks());return!i||e.isObject(i)||i.isEmpty&&"listItem"!=i.name?"imageBlock":"imageInline"}function d(e){return e&&e.endsWith("px")?parseInt(e):null}function p(e){const t=d(e.getStyle("width")),i=d(e.getStyle("height"));return!(!t||!i)}const h=/^(image|image-inline)$/;class f extends e.Plugin{_domEmitter=new((0,r.DomEmitterMixin)());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,i=null,n={}){const o=this.editor,a=o.model,s=a.document.selection,r=b(o,t||s,i);e={...Object.fromEntries(s.getAttributes()),...e};for(const t in e)a.schema.checkAttribute(r,t)||delete e[t];return a.change(i=>{const{setImageSizes:o=!0}=n,s=i.createElement(r,e);return a.insertObject(s,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==r?void 0:"auto"}),s.parent?(o&&this.setImageNaturalSizeAttributes(s),s):null})}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change(i=>{const n=new r.global.window.Image;this._domEmitter.listenTo(n,"load",()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(i.batch,t=>{t.setAttribute("width",n.naturalWidth,e),t.setAttribute("height",n.naturalHeight,e)}),this._domEmitter.stopListening(n,"load")}),n.src=t}))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const i=e.getSelectedElement();if(i&&this.isImageWidget(i))return i;let n=t.parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:h})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const i=b(e,t,null);if("imageBlock"==i){const i=function(e,t){const i=(0,l.findOptimalInsertionRange)(e,t),n=i.start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,e.model);if(e.model.schema.checkChild(i,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&function(e){return[...e.focus.getAncestors()].every(e=>!e.is("element","imageBlock"))}(e)}toImageWidget(e,t,i){t.setCustomProperty("image",!0,e);return(0,l.toWidget)(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${i}`:i}})}isImageWidget(e){return!!e.getCustomProperty("image")&&(0,l.isWidget)(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:i}of t.createRangeIn(e))if(this.isInlineImageView(i))return i}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function b(e,t,i){const n=e.model.schema,o=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?i||("inline"===o?"imageInline":"auto"!==o?"imageBlock":t.is("selection")?u(n,t):n.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}const k=new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class I extends e.Plugin{static get requires(){return[t.Clipboard,f,a.Undo,s.Delete]}static get pluginName(){return"AutoImage"}static get isOfficialPlugin(){return!0}_timeoutId;_positionToInsert;constructor(e){super(e),this._timeoutId=null,this._positionToInsert=null}init(){const e=this.editor,t=e.model.document,i=e.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",()=>{const e=t.selection.getFirstRange(),i=o.ModelLivePosition.fromPosition(e.start);i.stickiness="toPrevious";const n=o.ModelLivePosition.fromPosition(e.end);n.stickiness="toNext",t.once("change:data",()=>{this._embedImageBetweenPositions(i,n),i.detach(),n.detach()},{priority:"high"})}),e.commands.get("undo").on("execute",()=>{this._timeoutId&&(r.global.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)},{priority:"high"})}_embedImageBetweenPositions(e,t){const i=this.editor,n=new o.ModelLiveRange(e,t),a=n.getWalker({ignoreElementEnd:!0}),s=Object.fromEntries(i.model.document.selection.getAttributes()),r=this.editor.plugins.get("ImageUtils");let l="";for(const e of a)e.item.is("$textProxy")&&(l+=e.item.data);l=l.trim(),l.match(k)?(this._positionToInsert=o.ModelLivePosition.fromPosition(e),this._timeoutId=setTimeout(()=>{if(!i.commands.get("insertImage").isEnabled)return void n.detach();i.model.change(e=>{let t;this._timeoutId=null,e.remove(n),n.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(t=this._positionToInsert.toPosition()),r.insertImage({...s,src:l},t),this._positionToInsert.detach(),this._positionToInsert=null});i.plugins.get("Delete").requestUndoOnBackspace()},100)):n.detach()}}class w extends e.Command{refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,i=t.plugins.get("ImageUtils"),n=t.model,o=i.getClosestSelectedImageElement(n.document.selection);n.change(t=>{t.setAttribute("alt",e.newValue,o)})}}class v extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new w(this.editor))}}var _=i(311),y=i(355),A=i(719),C=i.n(A),x=i(863),E=i.n(x),S=i(424),B=i.n(S),V=i(517),T=i.n(V),U=i(163),z=i.n(U),P=i(799),R={attributes:{"data-cke":!0}};R.setAttributes=T(),R.insert=B().bind(null,"head"),R.domAPI=E(),R.insertStyleElement=z();C()(P.A,R);P.A&&P.A.locals&&P.A.locals;var O=i(220),F={attributes:{"data-cke":!0}};F.setAttributes=T(),F.insert=B().bind(null,"head"),F.domAPI=E(),F.insertStyleElement=z();C()(O.A,F);O.A&&O.A.locals&&O.A.locals;var N=i(29),L={attributes:{"data-cke":!0}};L.setAttributes=T(),L.insert=B().bind(null,"head"),L.domAPI=E(),L.insertStyleElement=z();C()(N.A,L);N.A&&N.A.locals&&N.A.locals;class M extends _.View{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new r.FocusTracker,this.keystrokes=new r.KeystrokeHandler,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new _.FormRowView(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new _.ViewCollection,this.keystrokes.set("Esc",(e,t)=>{this.fire("cancel"),t()}),this._focusCycler=new _.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),(0,_.submitHandler)({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:y.IconPreviousArrow,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new _.FormHeaderView(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new _.LabeledFieldView(this.locale,_.createLabeledInputText);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function D(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const i=W(e);t.updatePosition(i)}}function W(e){const t=e.editing.view,i=_.BalloonPanelView.defaultPositions,n=e.plugins.get("ImageUtils");return{target:t.domConverter.mapViewToDom(n.getClosestSelectedImageWidget(t.document.selection)),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast,i.viewportStickyNorth]}}class j extends e.Plugin{_balloon;_form;static get requires(){return[_.ContextualBalloon]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",i=>{const n=e.commands.get("imageTextAlternative"),o=new _.ButtonView(i);return o.set({label:t("Change image text alternative"),icon:y.IconTextAlternative,tooltip:!0}),o.bind("isEnabled").to(n,"isEnabled"),o.bind("isOn").to(n,"value",e=>!!e),this.listenTo(o,"execute",()=>{this._showForm()}),o})}_createForm(){const e=this.editor,t=e.editing.view.document,i=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new((0,_.CssTransitionDisablerMixin)(M))(e.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this.listenTo(e.ui,"update",()=>{i.getClosestSelectedImageWidget(t.selection)?this._isVisible&&D(e):this._hideForm(!0)}),(0,_.clickOutsideHandler)({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),i=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:W(e)}),i.fieldView.value=i.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class q extends e.Plugin{static get requires(){return[v,j]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function H(e){const t=(t,i,n)=>{if(!n.consumable.test(i.viewItem,{name:!0,classes:"image"}))return;const o=e.findViewImgElement(i.viewItem);if(!o||!n.consumable.test(o,{name:!0}))return;n.consumable.consume(i.viewItem,{name:!0,classes:"image"});const a=n.convertItem(o,i.modelCursor),s=(0,r.first)(a.modelRange.getItems());s?(n.convertChildren(i.viewItem,s),n.updateConversionResult(s,i)):n.consumable.revert(i.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}function $(e){const t=["srcset","media","type","sizes"],i=(i,n,o)=>{const a=n.viewItem;if(!o.consumable.test(a,{name:!0}))return;const s=new Map;for(const e of a.getChildren())if(e.is("element","source")){const i={};for(const n of t)e.hasAttribute(n)&&o.consumable.test(e,{attributes:n})&&(i[n]=e.getAttribute(n));Object.keys(i).length&&s.set(e,i)}const l=e.findViewImgElement(a);if(!l)return;let c=n.modelCursor.parent;if(!c.is("element","imageBlock")){const e=o.convertItem(l,n.modelCursor);n.modelRange=e.modelRange,n.modelCursor=e.modelCursor,c=(0,r.first)(e.modelRange.getItems())}o.consumable.consume(a,{name:!0});for(const[e,t]of s)o.consumable.consume(e,{attributes:Object.keys(t)});s.size&&o.writer.setAttribute("sources",Array.from(s.values()),c),o.convertChildren(a,c)};return e=>{e.on("element:picture",i)}}function K(e,t){const i=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=n.writer,a=n.mapper.toViewElement(i.item),s=e.findViewImgElement(a);null===i.attributeNewValue?(o.removeAttribute("srcset",s),o.removeAttribute("sizes",s)):i.attributeNewValue&&(o.setAttribute("srcset",i.attributeNewValue,s),o.setAttribute("sizes","100vw",s))};return e=>{e.on(`attribute:srcset:${t}`,i)}}function G(e){const t=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=n.writer,a=n.mapper.toViewElement(i.item),s=e.findViewImgElement(a),r=i.attributeNewValue;if(r&&r.length){const e=[];let t=s.parent;for(;t&&t.is("attributeElement");){const i=t.parent;o.unwrap(o.createRangeOn(s),t),e.unshift(t),t=i}const i=s.parent.is("element","picture"),n=i?s.parent:o.createContainerElement("picture",null);i||o.insert(o.createPositionBefore(s),n),o.remove(o.createRangeIn(n)),o.insert(o.createPositionAt(n,"end"),r.map(e=>o.createEmptyElement("source",e))),o.move(o.createRangeOn(s),o.createPositionAt(n,"end"));for(const t of e)o.wrap(o.createRangeOn(n),t)}else if(s.parent.is("element","picture")){const e=s.parent;o.move(o.createRangeOn(s),o.createPositionBefore(e)),o.remove(e)}};return e=>{e.on("attribute:sources:imageBlock",t),e.on("attribute:sources:imageInline",t)}}function J(e,t,i){const n=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=n.writer,a=n.mapper.toViewElement(i.item),s=e.findViewImgElement(a);o.setAttribute(i.attributeKey,i.attributeNewValue||"",s)};return e=>{e.on(`attribute:${i}:${t}`,n)}}class Y extends o.Observer{observe(e){this.listenTo(e,"load",(e,t)=>{const i=t.target;this.checkShouldIgnoreEventFromTarget(i)||"IMG"==i.tagName&&this._fireEvents(t)},{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class Q extends e.Command{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&(0,r.logWarning)("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&(0,r.logWarning)("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=(0,r.toArray)(e.source),i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),o=Object.fromEntries(i.getAttributes());t.forEach((t,a)=>{const s=i.getSelectedElement();if("string"==typeof t&&(t={src:t}),a&&s&&n.isImage(s)){const i=this.editor.model.createPositionAfter(s);n.insertImage({...t,...o},i,e.imageType)}else e.breakBlock?n.insertImage({...t,...o},i.getFirstPosition(),e.imageType):n.insertImage({...t,...o},null,e.imageType)})}}class X extends e.Command{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(t),this.value=this.isEnabled?t.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),i=this.editor.plugins.get("ImageUtils");this.editor.model.change(n=>{n.setAttribute("src",e.source,t),this.cleanupImage(n,t),i.setImageNaturalSizeAttributes(t)})}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class Z extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(Y),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const i=new Q(e),n=new X(e);e.commands.add("insertImage",i),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",i)}}class ee extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,i=t.plugins.get("ImageUtils"),n="imageBlock"===e?"figure":"img";function o(t,n,o,a,s=!1){t.on(`attribute:${n}:${e}`,(t,n,r)=>{if(!r.consumable.consume(n.item,t.name))return;const l=r.writer,c=r.mapper.toViewElement(n.item),m=i.findViewImgElement(c);null!==n.attributeNewValue?l.setAttribute(o,n.attributeNewValue,m):l.removeAttribute(o,m);const g=n.item.getAttribute("width"),u=n.item.getAttribute("height"),d=g&&u;if(d&&s&&l.setAttribute("loading","lazy",m),n.item.hasAttribute("sources"))return;const p=n.item.hasAttribute("resizedWidth");("imageInline"!==e||p||a)&&d&&l.setStyle("aspect-ratio",`${g}/${u}`,m)})}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>p(e)?d(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>p(e)?d(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add(e=>{o(e,"width","width",!0,!0),o(e,"height","height",!0,!0)}),t.conversion.for("dataDowncast").add(e=>{o(e,"width","width",!1),o(e,"height","height",!1)}),t.conversion.for("upcast").add(e=>{e.on("element:img",(e,t,i)=>{const n=t.viewItem.getAttribute("width"),o=t.viewItem.getAttribute("height");n&&o&&i.consumable.consume(t.viewItem,{styles:["aspect-ratio"]})})})}}class te extends e.Command{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=e.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=e.isInlineImage(t):this.isEnabled=e.isBlockImage(t)}execute(e={}){const t=this.editor,i=this.editor.model,n=t.plugins.get("ImageUtils"),o=n.getClosestSelectedImageElement(i.document.selection),a=Object.fromEntries(o.getAttributes());return a.src||a.uploadId?i.change(t=>{const{setImageSizes:s=!0}=e,r=Array.from(i.markers).filter(e=>e.getRange().containsItem(o)),l=n.insertImage(a,i.createSelection(o,"on"),this._modelElementName,{setImageSizes:s});if(!l)return null;const c=t.createRangeOn(l);for(const e of r){const i=e.getRange(),n="$graveyard"!=i.root.rootName?i.getJoined(c,!0):c;t.updateMarker(e,{range:n})}return{oldElement:o,newElement:l}}):null}}var ie=i(185),ne={attributes:{"data-cke":!0}};ne.setAttributes=T(),ne.insert=B().bind(null,"head"),ne.domAPI=E(),ne.insertStyleElement=z();C()(ie.A,ne);ie.A&&ie.A.locals&&ie.A.locals;class oe extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,i=e.plugins.get("ImageUtils");t.for("editingDowncast").add(e=>{e.on("attribute:placeholder",(e,t,n)=>{if(!n.consumable.test(t.item,e.name))return;if(!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;n.consumable.consume(t.item,e.name);const o=n.writer,a=n.mapper.toViewElement(t.item),s=i.findViewImgElement(a);t.attributeNewValue?(o.addClass("image_placeholder",s),o.setStyle("background-image",`url(${t.attributeNewValue})`,s),o.setCustomProperty("editingPipeline:doNotReuseOnce",!0,s)):(o.removeClass("image_placeholder",s),o.removeStyle("background-image",s))})})}_setupLoadListener(){const e=this.editor,t=e.model,i=e.editing,n=i.view,o=e.plugins.get("ImageUtils");n.addObserver(Y),this.listenTo(n.document,"imageLoaded",(e,a)=>{const s=n.domConverter.mapDomToView(a.target);if(!s)return;const r=o.getImageWidgetFromImageView(s);if(!r)return;const l=i.mapper.toModelElement(r);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},e=>{e.removeAttribute("placeholder",l)})})}}class ae extends e.Plugin{static get requires(){return[Z,ee,f,oe,t.ClipboardPipeline]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new te(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,i=e.conversion,n=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>m(t)}),i.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:i})=>n.toImageWidget(m(i),i,t("image widget"))}),i.for("downcast").add(J(n,"imageBlock","src")).add(J(n,"imageBlock","alt")).add(K(n,"imageBlock")),i.for("upcast").elementToElement({view:g(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(H(n))}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),a=e.plugins.get("ClipboardPipeline");this.listenTo(a,"inputTransformation",(a,s)=>{const r=Array.from(s.content.getChildren());let l;if(!r.every(n.isInlineImageView))return;l=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const c=t.createSelection(l);if("imageBlock"===u(t.schema,c)){const e=new o.ViewUpcastWriter(i.document),t=r.map(t=>e.createElement("figure",{class:"image"},t));s.content=e.createDocumentFragment(t)}}),this.listenTo(a,"contentInsertion",(e,i)=>{"paste"===i.method&&t.change(e=>{const t=e.createRangeIn(i.content);for(const e of t.getItems())e.is("element","imageBlock")&&n.setImageNaturalSizeAttributes(e)})})}}var se=i(811),re={attributes:{"data-cke":!0}};re.setAttributes=T(),re.insert=B().bind(null,"head"),re.domAPI=E(),re.insertStyleElement=z();C()(se.A,re);se.A&&se.A.locals&&se.A.locals;class le extends _.View{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){super(e),this.focusTracker=new r.FocusTracker,this.keystrokes=new r.KeystrokeHandler,this._focusables=new _.ViewCollection,this.children=this.createCollection(),this._focusCycler=new _.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const e of t)this.children.add(e),this._focusables.add(e),e instanceof _.CollapsibleView&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),(0,_.submitHandler)({view:this});for(const e of this._focusables)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class ce extends e.Plugin{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[f]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,i=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",()=>{this.isImageSelected=i.isImage(t.getSelectedElement())});const n=e=>this._createToolbarComponent(e);e.ui.componentFactory.add("insertImage",n),e.ui.componentFactory.add("imageInsert",n),e.ui.componentFactory.add("menuBar:insertImage",e=>this._createMenuBarComponent(e))}registerIntegration({name:e,observable:t,buttonViewCreator:i,formViewCreator:n,menuBarButtonViewCreator:o,requiresForm:a=!1,override:s=!1}){this._integrations.has(e)&&!s&&(0,r.logWarning)("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:i,menuBarButtonViewCreator:o,formViewCreator:n,requiresForm:a})}_createToolbarComponent(e){const t=this.editor,i=e.t,n=this._prepareIntegrations();if(!n.length)return null;let o;const a=n[0];if(1==n.length){if(!a.requiresForm)return a.buttonViewCreator(!0);o=a.buttonViewCreator(!0)}else{const t=a.buttonViewCreator(!1);o=new _.SplitButtonView(e,t),o.tooltip=!0,o.bind("label").to(this,"isImageSelected",e=>i(e?"Replace image":"Insert image"))}const s=this.dropdownView=(0,_.createDropdown)(e,o),r=n.map(({observable:e})=>"function"==typeof e?e():e);return s.bind("isEnabled").toMany(r,"isEnabled",(...e)=>e.some(e=>e)),s.once("change:isOpen",()=>{const e=n.flatMap(({formViewCreator:e})=>e(1==n.length)),i=new le(t.locale,e);s.panelView.children.add(i)}),s}_createMenuBarComponent(e){const t=e.t,i=this._prepareIntegrations();if(!i.length)return null;const n=i.flatMap(({menuBarButtonViewCreator:e})=>e(1==i.length)),o=new _.MenuBarMenuView(e),a=new _.MenuBarMenuListView(e);o.panelView.children.add(a),o.buttonView.set({icon:y.IconImage,label:t("Image")});for(const t of n){const i=new _.MenuBarMenuListItemView(e,o);i.children.add(t),a.items.add(i),t.delegate("execute").to(o)}return o}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return(0,r.logWarning)("image-insert-integrations-not-specified"),t;for(const i of e)this._integrations.has(i)?t.push(this._integrations.get(i)):["upload","assetManager","url"].includes(i)||(0,r.logWarning)("image-insert-unknown-integration",{item:i});return t.length||(0,r.logWarning)("image-insert-integrations-not-registered"),t}}var me=i(636),ge={attributes:{"data-cke":!0}};ge.setAttributes=T(),ge.insert=B().bind(null,"head"),ge.domAPI=E(),ge.insertStyleElement=z();C()(me.A,ge);me.A&&me.A.locals&&me.A.locals;class ue extends e.Plugin{static get requires(){return[ae,l.Widget,q,ce]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class de extends e.Plugin{static get requires(){return[Z,ee,f,oe,t.ClipboardPipeline]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new te(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,i=e.conversion,n=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToElement({model:"imageInline",view:(e,{writer:t})=>t.createEmptyElement("img")}),i.for("editingDowncast").elementToStructure({model:"imageInline",view:(e,{writer:i})=>n.toImageWidget(c(i),i,t("image widget"))}),i.for("downcast").add(J(n,"imageInline","src")).add(J(n,"imageInline","alt")).add(K(n,"imageInline")),i.for("upcast").elementToElement({view:g(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),a=e.plugins.get("ClipboardPipeline");this.listenTo(a,"inputTransformation",(a,s)=>{const r=Array.from(s.content.getChildren());let l;if(!r.every(n.isBlockImageView))return;l=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const c=t.createSelection(l);if("imageInline"===u(t.schema,c)){const e=new o.ViewUpcastWriter(i.document),t=r.map(t=>1===t.childCount?(Array.from(t.getAttributes()).forEach(i=>e.setAttribute(...i,n.findViewImgElement(t))),t.getChild(0)):t);s.content=e.createDocumentFragment(t)}}),this.listenTo(a,"contentInsertion",(e,i)=>{"paste"===i.method&&t.change(e=>{const t=e.createRangeIn(i.content);for(const e of t.getItems())e.is("element","imageInline")&&n.setImageNaturalSizeAttributes(e)})})}}class pe extends e.Plugin{static get requires(){return[de,l.Widget,q,ce]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class he extends e.Plugin{static get requires(){return[ue,pe]}static get pluginName(){return"Image"}static get isOfficialPlugin(){return!0}}class fe extends e.Plugin{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[f]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),i=e.getFirstPosition().findAncestor("caption");return i&&t.isBlockImage(i.parent)?i:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class be extends e.Command{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),i=e.plugins.get("ImageUtils");if(!e.plugins.has(ae))return this.isEnabled=!1,void(this.value=!1);const n=e.model.document.selection,o=n.getSelectedElement();if(!o){const e=t.getCaptionFromModelSelection(n);return this.isEnabled=!!e,void(this.value=!!e)}this.isEnabled=i.isImage(o),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(o):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change(e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)})}_showImageCaption(e,t){const i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageCaptionEditing"),o=this.editor.plugins.get("ImageUtils");let a=i.getSelectedElement();const s=n._getSavedCaption(a);o.isInlineImage(a)&&(this.editor.execute("imageTypeBlock"),a=i.getSelectedElement());const r=s||e.createElement("caption");e.append(r,a),t&&e.setSelection(r,"in")}_hideImageCaption(e){const t=this.editor,i=t.model.document.selection,n=t.plugins.get("ImageCaptionEditing"),o=t.plugins.get("ImageCaptionUtils");let a,s=i.getSelectedElement();s?a=o.getCaptionFromImageModelElement(s):(a=o.getCaptionFromModelSelection(i),s=a.parent),n._saveCaption(s,a),e.setSelection(s,"on"),e.remove(a)}}class ke extends e.Plugin{static get requires(){return[f,fe]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new be(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils"),a=e.t;e.conversion.for("upcast").elementToElement({view:e=>n.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer:t})=>i.isBlockImage(e.parent)?t.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(e,{writer:n})=>{if(!i.isBlockImage(e.parent))return null;const s=n.createEditableElement("figcaption");n.setCustomProperty("imageCaption",!0,s),s.placeholder=a("Enter image caption"),(0,o.enableViewPlaceholder)({view:t,element:s,keepOnFocus:!0});const r=e.parent.getAttribute("alt"),c=r?a("Caption for image: %0",[r]):a("Caption for the image");return(0,l.toWidgetEditable)(s,n,{label:c})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),n=e.commands.get("imageTypeInline"),o=e.commands.get("imageTypeBlock"),a=e=>{if(!e.return)return;const{oldElement:n,newElement:o}=e.return;if(!n)return;if(t.isBlockImage(n)){const e=i.getCaptionFromImageModelElement(n);if(e)return void this._saveCaption(o,e)}const a=this._getSavedCaption(n);a&&this._saveCaption(o,a)};n&&this.listenTo(n,"execute",a,{priority:"low"}),o&&this.listenTo(o,"execute",a,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?o.ModelElement.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",()=>{const o=t.document.differ.getChanges();for(const t of o){if("alt"!==t.attributeKey)continue;const o=t.range.start.nodeAfter;if(i.isBlockImage(o)){const t=n.getCaptionFromImageModelElement(o);if(!t)return;e.editing.reconvertItem(t)}}})}}class Ie extends e.Plugin{static get requires(){return[fe]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageCaptionUtils"),n=e.t;e.ui.componentFactory.add("toggleImageCaption",o=>{const a=e.commands.get("toggleImageCaption"),s=new _.ButtonView(o);return s.set({icon:y.IconCaption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(a,"value","isEnabled"),s.bind("label").to(a,"value",e=>n(e?"Toggle caption off":"Toggle caption on")),this.listenTo(s,"execute",()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const n=i.getCaptionFromModelSelection(e.model.document.selection);if(n){const i=e.editing.mapper.toViewElement(n);t.scrollToTheSelection(),t.change(e=>{e.addClass("image__caption_highlighted",i)})}e.editing.view.focus()}),s})}}var we=i(68),ve={attributes:{"data-cke":!0}};ve.setAttributes=T(),ve.insert=B().bind(null,"head"),ve.domAPI=E(),ve.insertStyleElement=z();C()(we.A,ve);we.A&&we.A.locals&&we.A.locals;class _e extends e.Plugin{static get requires(){return[ke,Ie]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}}function ye(e){const t=e.map(e=>e.replace("+","\\+"));return new RegExp(`^image\\/(${t.join("|")})$`)}function Ae(e){return new Promise((t,i)=>{const n=e.getAttribute("src");fetch(n).then(e=>e.blob()).then(e=>{const i=xe(e,n),o=i.replace("image/",""),a=new File([e],`image.${o}`,{type:i});t(a)}).catch(e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise((t,i)=>{const n=r.global.document.createElement("img");n.addEventListener("load",()=>{const e=r.global.document.createElement("canvas");e.width=n.width,e.height=n.height;e.getContext("2d").drawImage(n,0,0),e.toBlob(e=>e?t(e):i())}),n.addEventListener("error",()=>i()),n.src=e})}(e).then(t=>{const i=xe(t,e),n=i.replace("image/","");return new File([t],`image.${n}`,{type:i})})}(n).then(t).catch(i):i(e))})}function Ce(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src"))&&(!!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)||!!t.getAttribute("src").match(/^blob:/g))}function xe(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Ee extends e.Plugin{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",()=>this._createToolbarButton()),e.ui.componentFactory.add("imageUpload",()=>this._createToolbarButton()),e.ui.componentFactory.add("menuBar:uploadImage",()=>this._createMenuBarButton("standalone")),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,i=t.locale,n=t.commands.get("uploadImage"),o=t.config.get("image.upload.types"),a=ye(o),s=new e(t.locale),r=i.t;return s.set({acceptedType:o.map(e=>`image/${e}`).join(","),allowMultipleFiles:!0,label:r("Upload from computer"),icon:y.IconImageUpload}),s.bind("isEnabled").to(n),s.on("done",(e,i)=>{const n=Array.from(i).filter(e=>a.test(e.type));n.length&&(t.execute("uploadImage",{file:n}),t.editing.view.focus())}),s}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this.editor.commands.get("uploadImage"),n=this._createButton(_.FileDialogButtonView);return n.tooltip=!0,n.bind("label").to(t,"isImageSelected",i,"isAccessAllowed",(t,i)=>e(i?t?"Replace image from computer":"Upload image from computer":"You have no image upload permissions.")),n}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this._createButton(_.FileDialogButtonView);return i.withText=!0,i.bind("label").to(t,"isImageSelected",t=>e(t?"Replace from computer":"Upload from computer")),i.on("execute",()=>{t.dropdownView.isOpen=!1}),i}_createMenuBarButton(e){const t=this.editor.locale.t,i=this._createButton(_.MenuBarMenuListItemFileDialogButtonView);switch(i.withText=!0,e){case"standalone":i.label=t("Image from computer");break;case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=t("From computer")}return i}}var Se=i(260),Be=i(18),Ve={attributes:{"data-cke":!0}};Ve.setAttributes=T(),Ve.insert=B().bind(null,"head"),Ve.domAPI=E(),Ve.insertStyleElement=z();C()(Be.A,Ve);Be.A&&Be.A.locals&&Be.A.locals;var Te=i(612),Ue={attributes:{"data-cke":!0}};Ue.setAttributes=T(),Ue.insert=B().bind(null,"head"),Ue.domAPI=E(),Ue.insertStyleElement=z();C()(Te.A,Ue);Te.A&&Te.A.locals&&Te.A.locals;var ze=i(802),Pe={attributes:{"data-cke":!0}};Pe.setAttributes=T(),Pe.insert=B().bind(null,"head"),Pe.domAPI=E(),Pe.insertStyleElement=z();C()(ze.A,Pe);ze.A&&ze.A.locals&&ze.A.locals;class Re extends e.Plugin{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,i)=>{const n=this.editor,o=t.item,a=o.getAttribute("uploadId");if(!i.consumable.consume(t.item,e.name))return;const s=n.plugins.get("ImageUtils"),r=n.plugins.get(Se.FileRepository),l=a?t.attributeNewValue:null,c=this.placeholder,m=n.editing.mapper.toViewElement(o),g=i.writer;if("reading"==l)return Oe(m,g),void Fe(s,c,m,g);if("uploading"==l){const e=r.loaders.get(a);return Oe(m,g),void(e?(Ne(m,g),function(e,t,i,n){const o=function(e){const t=e.createUIElement("div",{class:"ck-progress-bar"});return e.setCustomProperty("progressBar",!0,t),t}(t);t.insert(t.createPositionAt(e,"end"),o),i.on("change:uploadedPercent",(e,t,i)=>{n.change(e=>{e.setStyle("width",i+"%",o)})})}(m,g,e,n.editing.view),function(e,t,i,n){if(n.data){const o=e.findViewImgElement(t);i.setAttribute("src",n.data,o)}}(s,m,g,e)):Fe(s,c,m,g))}"complete"==l&&r.loaders.get(a)&&function(e,t,i){const n=t.createUIElement("div",{class:"ck-image-upload-complete-icon"});t.insert(t.createPositionAt(e,"end"),n),setTimeout(()=>{i.change(e=>e.remove(e.createRangeOn(n)))},3e3)}(m,g,n.editing.view),function(e,t){Me(e,t,"progressBar")}(m,g),Ne(m,g),function(e,t){t.removeClass("ck-appear",e)}(m,g)}}function Oe(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function Fe(e,t,i,n){i.hasClass("ck-image-upload-placeholder")||n.addClass("ck-image-upload-placeholder",i);const o=e.findViewImgElement(i);o.getAttribute("src")!==t&&n.setAttribute("src",t,o),Le(i,"placeholder")||n.insert(n.createPositionAfter(o),function(e){const t=e.createUIElement("div",{class:"ck-upload-placeholder-loader"});return e.setCustomProperty("placeholder",!0,t),t}(n))}function Ne(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),Me(e,t,"placeholder")}function Le(e,t){for(const i of e.getChildren())if(i.getCustomProperty(t))return i}function Me(e,t,i){const n=Le(e,i);n&&t.remove(t.createRangeOn(n))}class De extends e.Command{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),i=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(i)}execute(e){const t=(0,r.toArray)(e.file),i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),o=Object.fromEntries(i.getAttributes());t.forEach((e,t)=>{const a=i.getSelectedElement();if(t&&a&&n.isImage(a)){const t=this.editor.model.createPositionAfter(a);this._uploadImage(e,o,t)}else this._uploadImage(e,o)})}_uploadImage(e,t,i){const n=this.editor,o=n.plugins.get(Se.FileRepository).createLoader(e),a=n.plugins.get("ImageUtils");o&&a.insertImage({...t,uploadId:o.id},i)}}class We extends e.Plugin{static get requires(){return[Se.FileRepository,_.Notification,t.ClipboardPipeline,f]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,i=e.conversion,n=e.plugins.get(Se.FileRepository),a=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline"),r=ye(e.config.get("image.upload.types")),l=new De(e);e.commands.add("uploadImage",l),e.commands.add("imageUpload",l),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add(e=>e.on("element:img",(e,t,i)=>{if(!i.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;const o=t.viewItem.getAttribute("data-ck-upload-id");if(!o)return;const[a]=Array.from(t.modelRange.getItems({shallow:!0})),s=n.loaders.get(o);a&&(i.writer.setAttribute("uploadId",o,a),i.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),s&&s.data&&i.writer.setAttribute("uploadStatus",s.status,a))},{priority:"low"})),this.listenTo(e.editing.view.document,"clipboardInput",(t,i)=>{if(je(i.dataTransfer))return;const n=Array.from(i.dataTransfer.files).filter(e=>!!e&&r.test(e.type));if(!n.length)return;t.stop(),e.model.change(t=>{i.targetRanges&&t.setSelection(i.targetRanges.map(t=>e.editing.mapper.toModelRange(t))),e.execute("uploadImage",{file:n})});if(!e.commands.get("uploadImage").isAccessAllowed){const t=e.plugins.get("Notification"),i=e.locale.t;t.showWarning(i("You have no image upload permissions."),{namespace:"image"})}}),this.listenTo(s,"inputTransformation",(t,i)=>{const s=Array.from(e.editing.view.createRangeIn(i.content)).map(e=>e.item).filter(e=>Ce(a,e)&&!e.getAttribute("uploadProcessed")).map(e=>({promise:Ae(e),imageElement:e}));if(!s.length)return;const r=new o.ViewUpcastWriter(e.editing.view.document);for(const e of s){r.setAttribute("uploadProcessed",!0,e.imageElement);const t=n.createLoader(e.promise);t&&(r.setAttribute("src","",e.imageElement),r.setAttribute("uploadId",t.id,e.imageElement))}}),e.editing.view.document.on("dragover",(e,t)=>{t.preventDefault()}),t.on("change",()=>{const i=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),o=new Set;for(const t of i)if("insert"==t.type&&"$text"!=t.name){const i=t.position.nodeAfter,a="$graveyard"==t.position.root.rootName;for(const t of qe(e,i)){const i=t.getAttribute("uploadId"),s=t.getAttribute("uploadStatus");if(!i||"complete"==s)continue;const r=n.loaders.get(i);if(r)if(a){if(!o.has(i)){Array.from(this._uploadImageElements.get(i)).every(e=>"$graveyard"==e.root.rootName)&&r.abort()}}else o.add(i),this._uploadImageElements.has(i)?this._uploadImageElements.get(i).add(t):this._uploadImageElements.set(i,new Set([t])),"idle"==r.status&&this._readAndUpload(r);else!a&&this._uploadedImages.has(i)&&e.model.enqueueChange({isUndoable:!1},e=>{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(i),imageElement:t})})}}}),this.on("uploadComplete",(e,{imageElement:t,data:i})=>{const n=i.urls?i.urls:i;this.editor.model.change(e=>{e.setAttribute("src",n.default,t),this._parseAndSetSrcsetAttributeOnImage(n,t,e),a.setImageNaturalSizeAttributes(t)})},{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,i=t.model,n=t.locale.t,o=t.plugins.get(Se.FileRepository),a=t.plugins.get(_.Notification),s=t.plugins.get("ImageUtils"),l=this._uploadImageElements;return i.enqueueChange({isUndoable:!1},t=>{const i=l.get(e.id);for(const e of i)t.setAttribute("uploadStatus","reading",e)}),e.read().then(()=>{const o=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image"));for(const n of l.get(e.id)){if(r.env.isSafari){const e=t.editing.mapper.toViewElement(n),i=s.findViewImgElement(e);t.editing.view.once("render",()=>{if(!i.parent)return;const e=t.editing.view.domConverter.mapViewToDom(i.parent);if(!e)return;const n=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=n})}i.enqueueChange({isUndoable:!1},e=>{e.setAttribute("uploadStatus","uploading",n)})}return o}).then(o=>{i.enqueueChange({isUndoable:!1},i=>{for(const t of l.get(e.id))i.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:o,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this._uploadedImages.set(e.id,o)}),c()}).catch(o=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw o;"error"==e.status&&o&&a.showWarning(o,{title:n("Upload failed"),namespace:"upload"}),i.enqueueChange({isUndoable:!1},t=>{for(const i of l.get(e.id))"$graveyard"!==i.root.rootName&&t.remove(i)}),c()});function c(){i.enqueueChange({isUndoable:!1},t=>{for(const i of l.get(e.id))t.removeAttribute("uploadId",i),t.removeAttribute("uploadStatus",i);l.delete(e.id)}),o.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,i){let n=0;const o=Object.keys(e).filter(e=>{const t=parseInt(e,10);if(!isNaN(t))return n=Math.max(n,t),!0}).map(t=>`${e[t]} ${t}w`).join(", ");if(""!=o){const e={srcset:o};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=n),i.setAttributes(e,t)}}_registerConverters(e){const{conversion:t,plugins:i}=this.editor,n=i.get(Se.FileRepository),o=i.get(f);t.for("dataDowncast").add(t=>{t.on(`attribute:uploadId:${e}`,(e,t,i)=>{if(!i.consumable.test(t.item,e.name))return;const a=n.loaders.get(t.attributeNewValue);if(!a||!a.data)return null;const s=i.mapper.toViewElement(t.item),r=o.findViewImgElement(s);r&&(i.consumable.consume(t.item,e.name),i.writer.setAttribute("data-ck-upload-id",a.id,r))})})}}function je(e){return Array.from(e.types).includes("text/html")&&""!==e.getData("text/html")}function qe(e,t){const i=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter(e=>i.isImage(e.item)).map(e=>e.item)}class He extends e.Plugin{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[We,Ee,Re]}}class $e extends _.View{urlInputView;keystrokes;constructor(e){super(e),this.set("imageURLInputValue",""),this.set("isImageSelected",!1),this.set("isEnabled",!0),this.keystrokes=new r.KeystrokeHandler,this.urlInputView=this._createUrlInputView(),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-url"],tabindex:"-1"},children:[this.urlInputView,{tag:"div",attributes:{class:["ck","ck-image-insert-url__action-row"]}}]})}render(){super.render(),(0,_.submitHandler)({view:this}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}_createUrlInputView(){const e=this.locale,t=e.t,i=new _.LabeledFieldView(e,_.createLabeledInputText);return i.bind("label").to(this,"isImageSelected",e=>t(e?"Update image URL":"Insert image via URL")),i.bind("isEnabled").to(this),i.fieldView.inputMode="url",i.fieldView.placeholder="https://example.com/image.png",i.fieldView.bind("value").to(this,"imageURLInputValue",e=>e||""),i.fieldView.on("input",()=>{this.imageURLInputValue=i.fieldView.element.value.trim()}),i}focus(){this.urlInputView.focus()}}class Ke extends e.Plugin{_imageInsertUI;_formView;static get pluginName(){return"ImageInsertViaUrlUI"}static get isOfficialPlugin(){return!0}static get requires(){return[ce,_.Dialog]}init(){this.editor.ui.componentFactory.add("insertImageViaUrl",()=>this._createToolbarButton()),this.editor.ui.componentFactory.add("menuBar:insertImageViaUrl",()=>this._createMenuBarButton("standalone"))}afterInit(){this._imageInsertUI=this.editor.plugins.get("ImageInsertUI"),this._imageInsertUI.registerIntegration({name:"url",observable:()=>this.editor.commands.get("insertImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createInsertUrlButton(e){const t=new e(this.editor.locale);return t.icon=y.IconImageUrl,t.on("execute",()=>{this._showModal()}),t}_createToolbarButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(_.ButtonView);return t.tooltip=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",t=>e(t?"Update image URL":"Insert image via URL")),t}_createDropdownButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(_.ButtonView);return t.withText=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",t=>e(t?"Update image URL":"Insert via URL")),t}_createMenuBarButton(e){const t=this.editor.locale.t,i=this._createInsertUrlButton(_.MenuBarMenuListItemButtonView);switch(i.withText=!0,e){case"standalone":i.label=t("Image via URL");break;case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=t("Via URL")}return i}_createInsertUrlView(){const e=this.editor,t=e.locale,i=e.commands.get("replaceImageSource"),n=e.commands.get("insertImage"),o=new $e(t);return o.bind("isImageSelected").to(this._imageInsertUI),o.bind("isEnabled").toMany([n,i],"isEnabled",(...e)=>e.some(e=>e)),o}_showModal(){const e=this.editor,t=e.locale.t,i=e.plugins.get("Dialog");this._formView||(this._formView=this._createInsertUrlView(),this._formView.on("submit",()=>this._handleSave()));const n=e.commands.get("replaceImageSource");this._formView.imageURLInputValue=n.value||"",i.show({id:"insertImageViaUrl",title:t("Image via URL"),isModal:!0,content:this._formView,actionButtons:[{label:t("Cancel"),withText:!0,onExecute:()=>i.hide()},{label:this._imageInsertUI.isImageSelected?t("Save"):t("Insert"),class:"ck-button-action",withText:!0,onExecute:()=>this._handleSave()}]})}_handleSave(){this.editor.commands.get("replaceImageSource").isEnabled?this.editor.execute("replaceImageSource",{source:this._formView.imageURLInputValue}):this.editor.execute("insertImage",{source:this._formView.imageURLInputValue}),this.editor.plugins.get("Dialog").hide()}}class Ge extends e.Plugin{static get pluginName(){return"ImageInsertViaUrl"}static get isOfficialPlugin(){return!0}static get requires(){return[Ke,ce]}}class Je extends e.Plugin{static get pluginName(){return"ImageInsert"}static get isOfficialPlugin(){return!0}static get requires(){return[He,Ge,ce]}}class Ye extends e.Command{refresh(){const e=this.editor,t=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);this.isEnabled=!!t,t&&t.hasAttribute("resizedWidth")?this.value={width:t.getAttribute("resizedWidth"),height:null}:this.value=null}execute(e){const t=this.editor,i=t.model,n=t.plugins.get("ImageUtils"),o=n.getClosestSelectedImageElement(i.document.selection);this.value={width:e.width,height:null},o&&i.change(t=>{t.setAttribute("resizedWidth",e.width,o),t.removeAttribute("resizedHeight",o),n.setImageNaturalSizeAttributes(o)})}}class Qe extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageResizeEditing"}static get licenseFeatureCode(){return"IR"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new Ye(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0})),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0}))}_registerConverters(e){const t=this.editor,i=t.plugins.get("ImageUtils");t.conversion.for("downcast").add(t=>t.on(`attribute:resizedWidth:${e}`,(e,t,i)=>{if(!i.consumable.consume(t.item,e.name))return;const n=i.writer,o=i.mapper.toViewElement(t.item);null!==t.attributeNewValue?(n.setStyle("width",t.attributeNewValue,o),n.addClass("image_resized",o)):(n.removeStyle("width",o),n.removeClass("image_resized",o))})),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:e=>({key:"style",value:{height:e}})}),t.conversion.for("editingDowncast").add(t=>t.on(`attribute:resizedHeight:${e}`,(t,n,o)=>{if(!o.consumable.consume(n.item,t.name))return;const a=o.writer,s=o.mapper.toViewElement(n.item),r="imageInline"===e?i.findViewImgElement(s):s;null!==n.attributeNewValue?a.setStyle("height",n.attributeNewValue,r):a.removeStyle("height",r)})),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>p(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>p(e)?null:e.getStyle("height")}}),t.conversion.for("upcast").add(t=>{t.on("element:"+("imageBlock"===e?"figure":"img"),(e,t,i)=>{i.consumable.consume(t.viewItem,{classes:["image_resized"]})})})}}const Xe=(()=>({small:y.IconObjectSizeSmall,medium:y.IconObjectSizeMedium,large:y.IconObjectSizeLarge,custom:y.IconObjectSizeCustom,original:y.IconObjectSizeFull}))();class Ze extends e.Plugin{static get requires(){return[Qe]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),i=e.commands.get("resizeImage");this.bind("isEnabled").to(i);for(const e of t)this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:i,value:n,icon:o}=e;t.ui.componentFactory.add(i,i=>{const a=new _.ButtonView(i),s=t.commands.get("resizeImage"),l=this._getOptionLabelValue(e,!0);if(!Xe[o])throw new r.CKEditorError("imageresizebuttons-missing-icon",t,e);if(a.set({label:l,icon:Xe[o],tooltip:l,isToggleable:!0}),a.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&et(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(a,"execute",()=>{e._showForm(this._resizeUnit)})}else{const e=n?n+this._resizeUnit:null;a.bind("isOn").to(s,"value",s,"isEnabled",tt(e)),this.listenTo(a,"execute",()=>{t.execute("resizeImage",{width:e})})}return a})}_registerImageResizeDropdown(e){const t=this.editor,i=t.t,n=e.find(e=>!e.value),o=o=>{const a=t.commands.get("resizeImage"),s=(0,_.createDropdown)(o,_.DropdownButtonView),r=s.buttonView,l=i("Resize image");return r.set({tooltip:l,commandValue:n.value,icon:Xe.medium,isToggleable:!0,label:this._getOptionLabelValue(n),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),r.bind("label").to(a,"value",e=>e&&e.width?e.width:this._getOptionLabelValue(n)),s.bind("isEnabled").to(this),(0,_.addListToDropdown)(s,()=>this._getResizeDropdownListItemDefinitions(e,a),{ariaLabel:i("Image resize list"),role:"menu"}),this.listenTo(s,"execute",e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())}),s};t.ui.componentFactory.add("resizeImage",o),t.ui.componentFactory.add("imageResize",o)}_getOptionLabelValue(e,t=!1){const i=this.editor.t;return e.label?e.label:t?et(e)?i("Custom image size"):e.value?i("Resize image to %0",e.value+this._resizeUnit):i("Resize image to the original size"):et(e)?i("Custom"):e.value?e.value+this._resizeUnit:i("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:i}=this,n=new r.Collection,o=e.map(e=>et(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null});for(const e of o){let a=null;if(i.plugins.has("ImageCustomResizeUI")&&et(e)){const n=i.plugins.get("ImageCustomResizeUI");a={type:"button",model:new _.UIModel({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};const s=Object.values(o).map(e=>e.valueWithUnits);a.model.bind("isOn").to(t,"value",t,"isEnabled",it(s))}else a={type:"button",model:new _.UIModel({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},a.model.bind("isOn").to(t,"value",t,"isEnabled",tt(e.valueWithUnits));a.model.bind("isEnabled").to(t,"isEnabled"),n.add(a)}return n}}function et(e){return"custom"===e.value}function tt(e){return(t,i)=>!(void 0===t||!i)&&(null===e&&t===e||null!==t&&t.width===e)}function it(e){return(t,i)=>!e.some(e=>tt(e)(t,i))}const nt="image_resized";class ot extends e.Plugin{static get requires(){return[l.WidgetResize,f]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils");t.addObserver(Y),this.listenTo(t.document,"imageLoaded",(n,o)=>{if(!o.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const a=e.editing.view.domConverter,s=a.domToView(o.target),r=i.getImageWidgetFromImageView(s);let c=this.editor.plugins.get(l.WidgetResize).getResizerByViewElement(r);if(c)return void c.redraw();const m=e.editing.mapper,g=m.toModelElement(r);c=e.plugins.get(l.WidgetResize).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:g,viewElement:r,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>a.mapViewToDom(m.toViewElement(g)),isCentered:()=>"alignCenter"==g.getAttribute("imageStyle"),onCommit(i){t.change(e=>{e.removeClass(nt,r)}),e.execute("resizeImage",{width:i})}}),c.on("updateSize",()=>{r.hasClass(nt)||t.change(e=>{e.addClass(nt,r)});const e="imageInline"===g.name?s:r;e.getStyle("height")&&t.change(t=>{t.removeStyle("height",e)})}),c.bind("isEnabled").to(this)})}}function at(e){if(!e)return null;const[,t,i]=e.trim().match(/([.,\d]+)(%|px)$/)||[],n=Number.parseFloat(t);return Number.isNaN(n)?null:{value:n,unit:i}}function st(e,t,i){return"px"===i?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function rt(e){const{editing:t}=e,i=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!i)return null;const n=t.mapper.toViewElement(i);return{model:i,view:n,dom:t.view.domConverter.mapViewToDom(n)}}function lt(e,t){const i=rt(e);if(!i)return null;const n=at(i.model.getAttribute("resizedWidth")||null);if(!n)return null;if(n.unit===t)return n;return st((0,l.calculateResizeHostAncestorWidth)(i.dom),{unit:"px",value:new r.Rect(i.dom).width},t)}var ct=i(679),mt={attributes:{"data-cke":!0}};mt.setAttributes=T(),mt.insert=B().bind(null,"head"),mt.domAPI=E(),mt.insertStyleElement=z();C()(ct.A,mt);ct.A&&ct.A.locals&&ct.A.locals;class gt extends _.View{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,i){super(e),this.focusTracker=new r.FocusTracker,this.keystrokes=new r.KeystrokeHandler,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new _.FormRowView(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new _.ViewCollection,this._validators=i,this.keystrokes.set("Esc",(e,t)=>{this.fire("cancel"),t()}),this._focusCycler=new _.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),(0,_.submitHandler)({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:y.IconPreviousArrow,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new _.FormHeaderView(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new _.LabeledFieldView(this.locale,_.createLabeledInputNumber);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(null===e)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}function ut(e,t){const i=rt(e);if(!i)return null;const n=(0,l.calculateResizeHostAncestorWidth)(i.dom),o=at(window.getComputedStyle(i.dom).minWidth)||{value:1,unit:"px"};return{unit:t,lower:Math.max(.1,st(n,o,t).value),upper:"px"===t?n:100}}class dt extends e.Plugin{_balloon;_form;static get requires(){return[_.ContextualBalloon]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new((0,_.CssTransitionDisablerMixin)(gt))(t.locale,e,function(e){const t=e.t;return[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0]}(t)),this._form.render(),this.listenTo(this._form,"submit",()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))}),this.listenTo(this._form.labeledInput,"change:errorText",()=>{t.ui.update()}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),(0,_.clickOutsideHandler)({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,i=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:W(t)});const n=lt(t,e),o=n?n.value.toFixed(1):"",a=ut(t,e);i.fieldView.value=i.fieldView.element.value=o,a&&Object.assign(i.fieldView,{min:a.lower.toFixed(1),max:Math.ceil(a.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}var pt=i(632),ht={attributes:{"data-cke":!0}};ht.setAttributes=T(),ht.insert=B().bind(null,"head"),ht.domAPI=E(),ht.insertStyleElement=z();C()(pt.A,ht);pt.A&&pt.A.locals&&pt.A.locals;class ft extends e.Plugin{static get requires(){return[Qe,ot,dt,Ze]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}}class bt extends e.Command{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map(e=>{if(e.isDefault)for(const t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]}))}refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled?e.hasAttribute("imageStyle")?this.value=e.getAttribute("imageStyle"):this.value=this._defaultStyles[e.name]:this.value=!1}execute(e={}){const t=this.editor,i=t.model,n=t.plugins.get("ImageUtils");i.change(t=>{const o=e.value,{setImageSizes:a=!0}=e;let s=n.getClosestSelectedImageElement(i.document.selection);o&&this.shouldConvertImageType(o,s)&&(this.editor.execute(n.isBlockImage(s)?"imageTypeInline":"imageTypeBlock",{setImageSizes:a}),s=n.getClosestSelectedImageElement(i.document.selection)),!o||this._styles.get(o).isDefault?t.removeAttribute("imageStyle",s):t.setAttribute("imageStyle",o,s),a&&n.setImageNaturalSizeAttributes(s)})}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const kt={get inline(){return{name:"inline",title:"In line",icon:y.IconObjectInline,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:y.IconObjectInlineLeft,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:y.IconObjectLeft,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:y.IconObjectCenter,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:y.IconObjectInlineRight,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:y.IconObjectRight,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:y.IconObjectCenter,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:y.IconObjectInlineRight,modelElements:["imageBlock"],className:"image-style-side"}}},It=(()=>({full:y.IconObjectFullWidth,left:y.IconObjectLeft,right:y.IconObjectRight,center:y.IconObjectCenter,inlineLeft:y.IconObjectInlineLeft,inlineRight:y.IconObjectInlineRight,inline:y.IconObjectInline}))(),wt=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function vt(e){(0,r.logWarning)("image-style-configuration-definition-invalid",e)}const _t={normalizeStyles:function(e){return(e.configuredStyles.options||[]).map(e=>function(e){e="string"==typeof e?kt[e]?{...kt[e]}:{name:e}:function(e,t){const i={...t};for(const n in e)Object.prototype.hasOwnProperty.call(t,n)||(i[n]=e[n]);return i}(kt[e.name],e);"string"==typeof e.icon&&(e.icon=It[e.icon]||e.icon);return e}(e)).filter(t=>function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:i}){const{modelElements:n,name:o}=e;if(!(n&&n.length&&o))return vt({style:e}),!1;{const o=[t?"imageBlock":null,i?"imageInline":null];if(!n.some(e=>o.includes(e)))return(0,r.logWarning)("image-style-missing-dependency",{style:e,missingPlugins:n.map(e=>"imageBlock"===e?"ImageBlockEditing":"ImageInlineEditing")}),!1}return!0}(t,e))},getDefaultStylesConfiguration:function(e,t){return e&&t?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:e?{options:["block","side"]}:t?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(e){return e.has("ImageBlockEditing")&&e.has("ImageInlineEditing")?[...wt]:[]},warnInvalidStyle:vt};function yt(e){return(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=Ct(i.attributeNewValue,e),a=Ct(i.attributeOldValue,e),s=n.mapper.toViewElement(i.item),r=n.writer;a&&r.removeClass(a.className,s),o&&r.addClass(o.className,s)}}function At(e){const t={imageInline:e.filter(e=>!e.isDefault&&e.modelElements.includes("imageInline")),imageBlock:e.filter(e=>!e.isDefault&&e.modelElements.includes("imageBlock"))};return(e,i,n)=>{if(!i.modelRange)return;const o=i.viewItem,a=(0,r.first)(i.modelRange.getItems());if(a&&n.schema.checkAttribute(a,"imageStyle"))for(const e of t[a.name])n.consumable.consume(o,{classes:e.className})&&n.writer.setAttribute("imageStyle",e.name,a)}}function Ct(e,t){for(const i of t)if(i.name===e)return i}class xt extends e.Plugin{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[f]}normalizedStyles;init(){const e=this.editor,t=e.plugins.has("ImageBlockEditing"),i=e.plugins.has("ImageInlineEditing");e.config.define("image.styles",_t.getDefaultStylesConfiguration(t,i)),this.normalizedStyles=_t.normalizeStyles({configuredStyles:e.config.get("image.styles"),isBlockPluginLoaded:t,isInlinePluginLoaded:i}),this._setupConversion(t,i),this._setupPostFixer(),e.commands.add("imageStyle",new bt(e,this.normalizedStyles))}_setupConversion(e,t){const i=this.editor,n=i.model.schema,o=yt(this.normalizedStyles),a=At(this.normalizedStyles);i.editing.downcastDispatcher.on("attribute:imageStyle",o),i.data.downcastDispatcher.on("attribute:imageStyle",o),e&&(n.extend("imageBlock",{allowAttributes:"imageStyle"}),n.setAttributeProperties("imageStyle",{isFormatting:!0}),i.data.upcastDispatcher.on("element:figure",a,{priority:"low"})),t&&(n.extend("imageInline",{allowAttributes:"imageStyle"}),n.setAttributeProperties("imageStyle",{isFormatting:!0}),i.data.upcastDispatcher.on("element:img",a,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,i=e.plugins.get(f),n=new Map(this.normalizedStyles.map(e=>[e.name,e]));t.registerPostFixer(e=>{let o=!1;for(const a of t.differ.getChanges())if("insert"==a.type||"attribute"==a.type&&"imageStyle"==a.attributeKey){let t="insert"==a.type?a.position.nodeAfter:a.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!i.isImage(t))continue;const s=t.getAttribute("imageStyle");if(!s)continue;const r=n.get(s);r&&r.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),o=!0)}return o})}}function Et(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function St(e){return e}var Bt=i(581),Vt={attributes:{"data-cke":!0}};Vt.setAttributes=T(),Vt.insert=B().bind(null,"head"),Vt.domAPI=E(),Vt.insertStyleElement=z();C()(Bt.A,Vt);Bt.A&&Bt.A.locals&&Bt.A.locals;class Tt extends e.Plugin{static get requires(){return[xt]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],i=Ut(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of i)this._createButton(e);const n=Ut([...t.filter(Et),..._t.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const e of n)this._createDropdown(e,i)}_createDropdown(e,t){const i=this.editor.ui.componentFactory;i.add(e.name,n=>{let o;const{defaultItem:a,items:s,title:r}=e,l=s.filter(e=>t.find(({name:t})=>zt(t)===e)).map(e=>{const t=i.create(e);return e===a&&(o=t),t});s.length!==l.length&&_t.warnInvalidStyle({dropdown:e});const c=(0,_.createDropdown)(n,_.SplitButtonView),m=c.buttonView,g=m.arrowView;return(0,_.addToolbarToDropdown)(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),m.set({label:Pt(r,o.label),class:null,tooltip:!0}),g.unbind("label"),g.set({label:r}),m.bind("icon").toMany(l,"isOn",(...e)=>{const t=e.findIndex(St);return t<0?o.icon:l[t].icon}),m.bind("label").toMany(l,"isOn",(...e)=>{const t=e.findIndex(St);return Pt(r,t<0?o.label:l[t].label)}),m.bind("isOn").toMany(l,"isOn",(...e)=>e.some(St)),m.bind("class").toMany(l,"isOn",(...e)=>e.some(St)?"ck-splitbutton_flatten":void 0),m.on("execute",()=>{l.some(({isOn:e})=>e)?c.isOpen=!c.isOpen:o.fire("execute")}),c.bind("isEnabled").toMany(l,"isEnabled",(...e)=>e.some(St)),this.listenTo(c,"execute",()=>{this.editor.editing.view.focus()}),c})}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(zt(t),i=>{const n=this.editor.commands.get("imageStyle"),o=new _.ButtonView(i);return o.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),o.bind("isEnabled").to(n,"isEnabled"),o.bind("isOn").to(n,"value",e=>e===t),o.on("execute",this._executeCommand.bind(this,t)),o})}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function Ut(e,t){for(const i of e)t[i.title]&&(i.title=t[i.title]);return e}function zt(e){return`imageStyle:${e}`}function Pt(e,t){return(e?e+": ":"")+t}class Rt extends e.Plugin{static get requires(){return[xt,Tt]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}}class Ot extends e.Plugin{static get requires(){return[l.WidgetToolbarRepository,f]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,i=e.plugins.get(l.WidgetToolbarRepository),n=e.plugins.get("ImageUtils");var o;i.register("image",{ariaLabel:t("Image toolbar"),items:(o=e.config.get("image.toolbar")||[],o.map(e=>Et(e)?e.name:e)),getRelatedElement:e=>n.getClosestSelectedImageWidget(e)})}}class Ft extends e.Plugin{static get requires(){return[Z,f]}static get pluginName(){return"PictureEditing"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.model.schema.extend("imageBlock",{allowAttributes:["sources"]}),e.plugins.has("ImageInlineEditing")&&e.model.schema.extend("imageInline",{allowAttributes:["sources"]}),this._setupConversion(),this._setupImageUploadEditingIntegration()}_setupConversion(){const e=this.editor,t=e.conversion,i=e.plugins.get("ImageUtils");t.for("upcast").add($(i)),t.for("downcast").add(G(i))}_setupImageUploadEditingIntegration(){const e=this.editor;if(!e.plugins.has("ImageUploadEditing"))return;const t=e.plugins.get("ImageUploadEditing");this.listenTo(t,"uploadComplete",(t,{imageElement:i,data:n})=>{const o=n.sources;o&&e.model.change(e=>{e.setAttributes({sources:o},i)})})}}})(),(window.CKEditor5=window.CKEditor5||{}).image=n})();
5
+ */(()=>{var e={12:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.noop=function(){}},18:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}",""]);const s=r},29:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,":root{--ck-form-default-width:340px}.ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form.ck-form_default-width{width:var(--ck-form-default-width)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-number,.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}@media screen and (max-width:600px){.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit{align-items:stretch;flex-direction:column;padding:0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit>.ck{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text{justify-content:center}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding{padding-bottom:var(--ck-spacing-large)}}[dir=ltr] .ck.ck-form.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-form.ck-responsive-form>:not(:last-child){margin-left:0}",""]);const s=r},68:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,":root{--ck-content-color-image-caption-background:#f7f7f7;--ck-content-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-content-color-image-caption-background);break-before:avoid;caption-side:bottom;color:var(--ck-content-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;overflow-wrap:anywhere;padding:.6em;word-break:normal}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-content-color-image-caption-background)}}",""]);const s=r},135:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.eq=function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}},163:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},185:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}",""]);const s=r},220:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',""]);const s=r},237:e=>{"use strict";e.exports=CKEditor5.dll},251:(e,t,i)=>{e.exports=i(237)("./src/undo.js")},260:(e,t,i)=>{e.exports=i(237)("./src/upload.js")},305:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i="",n=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),n&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),n&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i}).join("")},t.i=function(e,i,n,a,o){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(n)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(r[l]=!0)}for(var c=0;c<e.length;c++){var g=[].concat(e[c]);n&&r[g[0]]||(void 0!==o&&(void 0===g[5]||(g[1]="@layer".concat(g[5].length>0?" ".concat(g[5]):""," {").concat(g[1],"}")),g[5]=o),i&&(g[2]?(g[1]="@media ".concat(g[2]," {").concat(g[1],"}"),g[2]=i):g[2]=i),a&&(g[4]?(g[1]="@supports (".concat(g[4],") {").concat(g[1],"}"),g[4]=a):g[4]="".concat(a)),t.push(g))}},t}},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},331:(e,t,i)=>{e.exports=i(237)("./src/clipboard.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},378:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getSymbols=function(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}},424:e=>{"use strict";var t={};e.exports=function(e,i){var n=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(i)}},450:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.argumentsTag="[object Arguments]",t.arrayBufferTag="[object ArrayBuffer]",t.arrayTag="[object Array]",t.bigInt64ArrayTag="[object BigInt64Array]",t.bigUint64ArrayTag="[object BigUint64Array]",t.booleanTag="[object Boolean]",t.dataViewTag="[object DataView]",t.dateTag="[object Date]",t.errorTag="[object Error]",t.float32ArrayTag="[object Float32Array]",t.float64ArrayTag="[object Float64Array]",t.functionTag="[object Function]",t.int16ArrayTag="[object Int16Array]",t.int32ArrayTag="[object Int32Array]",t.int8ArrayTag="[object Int8Array]",t.mapTag="[object Map]",t.numberTag="[object Number]",t.objectTag="[object Object]",t.regexpTag="[object RegExp]",t.setTag="[object Set]",t.stringTag="[object String]",t.symbolTag="[object Symbol]",t.uint16ArrayTag="[object Uint16Array]",t.uint32ArrayTag="[object Uint32Array]",t.uint8ArrayTag="[object Uint8Array]",t.uint8ClampedArrayTag="[object Uint8ClampedArray]"},517:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})}},581:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,":root{--ck-content-image-style-spacing:1.5em;--ck-content-inline-image-style-spacing:calc(var(--ck-content-image-style-spacing)/2)}.ck-content .image.image-style-block-align-left,.ck-content .image.image-style-block-align-right{max-width:calc(100% - var(--ck-content-image-style-spacing))}.ck-content .image.image-style-align-left,.ck-content .image.image-style-align-right{clear:none}.ck-content .image.image-style-side{float:right;margin-left:var(--ck-content-image-style-spacing);max-width:50%}.ck-content .image.image-style-align-left{float:left;margin-right:var(--ck-content-image-style-spacing)}.ck-content .image.image-style-align-right{float:right;margin-left:var(--ck-content-image-style-spacing)}.ck-content .image.image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image.image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-content-image-style-spacing)}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-content-image-style-spacing)}.ck-content p+.image.image-style-align-left,.ck-content p+.image.image-style-align-right,.ck-content p+.image.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-content-inline-image-style-spacing);margin-top:var(--ck-content-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-content-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-content-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}",""]);const s=r},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},612:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0s,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0s}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',""]);const s=r},632:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}",""]);const s=r},636:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}",""]);const s=r},679:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,":root{--ck-image-custom-resize-form-width:340px}@media screen and (max-width:600px){:root{--ck-image-custom-resize-form-width:300px}}.ck.ck-image-custom-resize-form.ck-responsive-form{width:var(--ck-image-custom-resize-form-width)}",""]);const s=r},695:(e,t,i)=>{e.exports=i(983).isEqual},719:e=>{"use strict";var t=[];function i(e){for(var i=-1,n=0;n<t.length;n++)if(t[n].identifier===e){i=n;break}return i}function n(e,n){for(var o={},r=[],s=0;s<e.length;s++){var l=e[s],c=n.base?l[0]+n.base:l[0],g=o[c]||0,m="".concat(c," ").concat(g);o[c]=g+1;var u=i(m),d={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==u)t[u].references++,t[u].updater(d);else{var p=a(d,n);n.byIndex=s,t.splice(s,0,{identifier:m,updater:p,references:1})}r.push(m)}return r}function a(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,a){var o=n(e=e||[],a=a||{});return function(e){e=e||[];for(var r=0;r<o.length;r++){var s=i(o[r]);t[s].references--}for(var l=n(e,a),c=0;c<o.length;c++){var g=i(o[c]);0===t[g].references&&(t[g].updater(),t.splice(g,1))}o=l}}},723:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getTag=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},784:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPlainObject=function(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}},792:e=>{"use strict";e.exports=function(e){return e[1]}},799:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,":root{--ck-text-alternative-form-width:340px}@media screen and (max-width:600px){:root{--ck-text-alternative-form-width:300px}}.ck.ck-text-alternative-form.ck-responsive-form{width:var(--ck-text-alternative-form-width)}",""]);const s=r},802:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',""]);const s=r},811:(e,t,i)=>{"use strict";i.d(t,{A:()=>s});var n=i(792),a=i.n(n),o=i(305),r=i.n(o)()(a());r.push([e.id,".ck.ck-image-insert-url{padding:var(--ck-spacing-large) var(--ck-spacing-large) 0;width:400px}.ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width);padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}",""]);const s=r},834:(e,t,i)=>{e.exports=i(237)("./src/typing.js")},847:(e,t,i)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=i(784),a=i(378),o=i(723),r=i(450),s=i(135);function l(e,t,i,n,a,o,r){const s=r(e,t,i,n,a,o);if(void 0!==s)return s;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return e===t;case"number":return e===t||Object.is(e,t);case"object":return c(e,t,o,r)}return c(e,t,o,r)}function c(e,t,i,g){if(Object.is(e,t))return!0;let m=o.getTag(e),u=o.getTag(t);if(m===r.argumentsTag&&(m=r.objectTag),u===r.argumentsTag&&(u=r.objectTag),m!==u)return!1;switch(m){case r.stringTag:return e.toString()===t.toString();case r.numberTag:{const i=e.valueOf(),n=t.valueOf();return s.eq(i,n)}case r.booleanTag:case r.dateTag:case r.symbolTag:return Object.is(e.valueOf(),t.valueOf());case r.regexpTag:return e.source===t.source&&e.flags===t.flags;case r.functionTag:return e===t}const d=(i=i??new Map).get(e),p=i.get(t);if(null!=d&&null!=p)return d===t;i.set(e,t),i.set(t,e);try{switch(m){case r.mapTag:if(e.size!==t.size)return!1;for(const[n,a]of e.entries())if(!t.has(n)||!l(a,t.get(n),n,e,t,i,g))return!1;return!0;case r.setTag:{if(e.size!==t.size)return!1;const n=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<n.length;o++){const r=n[o],s=a.findIndex(n=>l(r,n,void 0,e,t,i,g));if(-1===s)return!1;a.splice(s,1)}return!0}case r.arrayTag:case r.uint8ArrayTag:case r.uint8ClampedArrayTag:case r.uint16ArrayTag:case r.uint32ArrayTag:case r.bigUint64ArrayTag:case r.int8ArrayTag:case r.int16ArrayTag:case r.int32ArrayTag:case r.bigInt64ArrayTag:case r.float32ArrayTag:case r.float64ArrayTag:if("undefined"!=typeof Buffer&&Buffer.isBuffer(e)!==Buffer.isBuffer(t))return!1;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!l(e[n],t[n],n,e,t,i,g))return!1;return!0;case r.arrayBufferTag:return e.byteLength===t.byteLength&&c(new Uint8Array(e),new Uint8Array(t),i,g);case r.dataViewTag:return e.byteLength===t.byteLength&&e.byteOffset===t.byteOffset&&c(new Uint8Array(e),new Uint8Array(t),i,g);case r.errorTag:return e.name===t.name&&e.message===t.message;case r.objectTag:{if(!(c(e.constructor,t.constructor,i,g)||n.isPlainObject(e)&&n.isPlainObject(t)))return!1;const o=[...Object.keys(e),...a.getSymbols(e)],r=[...Object.keys(t),...a.getSymbols(t)];if(o.length!==r.length)return!1;for(let n=0;n<o.length;n++){const a=o[n],r=e[a];if(!Object.hasOwn(t,a))return!1;if(!l(r,t[a],a,e,t,i,g))return!1}return!0}default:return!1}}finally{i.delete(e),i.delete(t)}}t.isEqualWith=function(e,t,i){return l(e,t,void 0,void 0,void 0,void 0,i)}},863:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function n(e,t,n,a){var o;if(n)o="";else{o="",a.supports&&(o+="@supports (".concat(a.supports,") {")),a.media&&(o+="@media ".concat(a.media," {"));var r=void 0!==a.layer;r&&(o+="@layer".concat(a.layer.length>0?" ".concat(a.layer):""," {")),o+=a.css,r&&(o+="}"),a.media&&(o+="}"),a.supports&&(o+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,o);else{var s=document.createTextNode(o),l=e.childNodes;l[t]&&e.removeChild(l[t]),l.length?e.insertBefore(s,l[t]):e.appendChild(s)}}var a={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=a.singletonCounter++,i=a.singleton||(a.singleton=e.insertStyleElement(e));return{update:function(e){n(i,t,!1,e)},remove:function(e){n(i,t,!0,e)}}}},901:(e,t,i)=>{e.exports=i(237)("./src/widget.js")},983:(e,t,i)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=i(847),a=i(12);t.isEqual=function(e,t){return n.isEqualWith(e,t,a.noop)}}},t={};function i(n){var a=t[n];if(void 0!==a)return a.exports;var o=t[n]={id:n,exports:{}};return e[n](o,o.exports,i),o.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{AutoImage:()=>I,Image:()=>he,ImageBlock:()=>ue,ImageBlockEditing:()=>oe,ImageCaption:()=>_e,ImageCaptionEditing:()=>ke,ImageCaptionUI:()=>Ie,ImageCaptionUtils:()=>fe,ImageCustomResizeUI:()=>dt,ImageEditing:()=>Z,ImageInline:()=>pe,ImageInlineEditing:()=>de,ImageInsert:()=>Je,ImageInsertUI:()=>ce,ImageInsertViaUrl:()=>Ge,ImageInsertViaUrlUI:()=>Ke,ImageLoadObserver:()=>Y,ImagePlaceholder:()=>ae,ImageResize:()=>ft,ImageResizeButtons:()=>Ze,ImageResizeEditing:()=>Qe,ImageResizeHandles:()=>at,ImageSizeAttributes:()=>ee,ImageStyle:()=>Rt,ImageStyleCommand:()=>bt,ImageStyleEditing:()=>xt,ImageStyleUI:()=>Ut,ImageTextAlternative:()=>q,ImageTextAlternativeCommand:()=>w,ImageTextAlternativeEditing:()=>v,ImageTextAlternativeUI:()=>W,ImageToolbar:()=>Ft,ImageTypeCommand:()=>te,ImageUpload:()=>$e,ImageUploadEditing:()=>De,ImageUploadProgress:()=>Oe,ImageUploadUI:()=>xe,ImageUtils:()=>f,InsertImageCommand:()=>Q,PictureEditing:()=>Nt,ReplaceImageSourceCommand:()=>X,ResizeImageCommand:()=>Ye,ToggleImageCaptionCommand:()=>be,UploadImageCommand:()=>Me,_IMAGE_DEFAULT_DROPDOWN_DEFINITIONS:()=>wt,_IMAGE_DEFAULT_ICONS:()=>It,_IMAGE_DEFAULT_OPTIONS:()=>kt,_ImageCustomResizeFormView:()=>mt,_ImageInsertFormView:()=>le,_ImageInsertUrlView:()=>He,_ImageStyleUtils:()=>_t,_ImageTextAlternativeFormView:()=>L,_checkIfImageWidthAndHeightStylesAreBothSet:()=>p,_createBlockImageViewElement:()=>g,_createInlineImageViewElement:()=>c,_determineImageTypeForInsertionAtSelection:()=>u,_downcastImageAttribute:()=>J,_downcastImageSourcesAttribute:()=>G,_downcastImageSrcsetAttribute:()=>K,_fetchLocalImage:()=>Ae,_getImageBalloonPositionData:()=>D,_getImageSizeValueIfInPx:()=>d,_getImageViewElementMatcher:()=>m,_getSelectedImageEditorNodes:()=>st,_getSelectedImagePossibleResizeRange:()=>ut,_getSelectedImageWidthInUnits:()=>lt,_isLocalImage:()=>Ce,_modelToViewImageStyleAttribute:()=>At,_repositionImageContextualBalloon:()=>M,_tryCastImageDimensionsToUnit:()=>rt,_tryParseImageDimensionWithUnit:()=>ot,_upcastImageFigure:()=>$,_upcastImagePicture:()=>H,_viewToModelImageStyleAttribute:()=>Ct,createImageTypeRegExp:()=>ye,isHtmlInDataTransfer:()=>We});var e=i(782),t=i(331),a=i(783),o=i(251),r=i(834),s=i(584),l=i(901);function c(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}function g(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function m(e,t){const i=e.plugins.get("ImageUtils"),n=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>{if(!i.isInlineImageView(e))return null;if(!n)return a(e);return("block"==e.getStyle("display")||e.findAncestor(i.isBlockImageView)?"imageBlock":"imageInline")!==t?null:a(e)};function a(e){const t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function u(e,t){const i=(0,s.first)(t.getSelectedBlocks());return!i||e.isObject(i)||i.isEmpty&&"listItem"!=i.name?"imageBlock":"imageInline"}function d(e){return e&&e.endsWith("px")?parseInt(e):null}function p(e){const t=d(e.getStyle("width")),i=d(e.getStyle("height"));return!(!t||!i)}const h=/^(image|image-inline)$/;class f extends e.Plugin{_domEmitter=new((0,s.DomEmitterMixin)());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,i=null,n={}){const a=this.editor,o=a.model,r=o.document.selection,s=b(a,t||r,i);e={...Object.fromEntries(r.getAttributes()),...e};for(const t in e)o.schema.checkAttribute(s,t)||delete e[t];return o.change(i=>{const{setImageSizes:a=!0}=n,r=i.createElement(s,e);return o.insertObject(r,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==s?void 0:"auto"}),r.parent?(a&&this.setImageNaturalSizeAttributes(r),r):null})}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change(i=>{const n=new s.global.window.Image;this._domEmitter.listenTo(n,"load",()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(i.batch,t=>{t.setAttribute("width",n.naturalWidth,e),t.setAttribute("height",n.naturalHeight,e)}),this._domEmitter.stopListening(n,"load")}),n.src=t}))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const i=e.getSelectedElement();if(i&&this.isImageWidget(i))return i;let n=t.parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:h})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const i=b(e,t,null);if("imageBlock"==i){const i=function(e,t){const i=(0,l.findOptimalInsertionRange)(e,t),n=i.start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,e.model);if(e.model.schema.checkChild(i,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&function(e){return[...e.focus.getAncestors()].every(e=>!e.is("element","imageBlock"))}(e)}toImageWidget(e,t,i){t.setCustomProperty("image",!0,e);return(0,l.toWidget)(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${i}`:i}})}isImageWidget(e){return!!e.getCustomProperty("image")&&(0,l.isWidget)(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:i}of t.createRangeIn(e))if(this.isInlineImageView(i))return i}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function b(e,t,i){const n=e.model.schema,a=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?i||("inline"===a?"imageInline":"auto"!==a?"imageBlock":t.is("selection")?u(n,t):n.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}const k=new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class I extends e.Plugin{static get requires(){return[t.Clipboard,f,o.Undo,r.Delete]}static get pluginName(){return"AutoImage"}static get isOfficialPlugin(){return!0}_timeoutId;_positionToInsert;constructor(e){super(e),this._timeoutId=null,this._positionToInsert=null}init(){const e=this.editor,t=e.model.document,i=e.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",()=>{const e=t.selection.getFirstRange(),i=a.ModelLivePosition.fromPosition(e.start);i.stickiness="toPrevious";const n=a.ModelLivePosition.fromPosition(e.end);n.stickiness="toNext",t.once("change:data",()=>{this._embedImageBetweenPositions(i,n),i.detach(),n.detach()},{priority:"high"})}),e.commands.get("undo").on("execute",()=>{this._timeoutId&&(s.global.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)},{priority:"high"})}_embedImageBetweenPositions(e,t){const i=this.editor,n=new a.ModelLiveRange(e,t),o=n.getWalker({ignoreElementEnd:!0}),r=Object.fromEntries(i.model.document.selection.getAttributes()),s=this.editor.plugins.get("ImageUtils");let l="";for(const e of o)e.item.is("$textProxy")&&(l+=e.item.data);l=l.trim(),l.match(k)?(this._positionToInsert=a.ModelLivePosition.fromPosition(e),this._timeoutId=setTimeout(()=>{if(!i.commands.get("insertImage").isEnabled)return void n.detach();i.model.change(e=>{let t;this._timeoutId=null,e.remove(n),n.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(t=this._positionToInsert.toPosition()),s.insertImage({...r,src:l},t),this._positionToInsert.detach(),this._positionToInsert=null});i.plugins.get("Delete").requestUndoOnBackspace()},100)):n.detach()}}class w extends e.Command{refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,i=t.plugins.get("ImageUtils"),n=t.model,a=i.getClosestSelectedImageElement(n.document.selection);n.change(t=>{t.setAttribute("alt",e.newValue,a)})}}class v extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new w(this.editor))}}var _=i(311),y=i(355),A=i(719),C=i.n(A),E=i(863),x=i.n(E),S=i(424),T=i.n(S),B=i(517),V=i.n(B),U=i(163),z=i.n(U),P=i(799),O={attributes:{"data-cke":!0}};O.setAttributes=V(),O.insert=T().bind(null,"head"),O.domAPI=x(),O.insertStyleElement=z();C()(P.A,O);P.A&&P.A.locals&&P.A.locals;var R=i(220),F={attributes:{"data-cke":!0}};F.setAttributes=V(),F.insert=T().bind(null,"head"),F.domAPI=x(),F.insertStyleElement=z();C()(R.A,F);R.A&&R.A.locals&&R.A.locals;var N=i(29),j={attributes:{"data-cke":!0}};j.setAttributes=V(),j.insert=T().bind(null,"head"),j.domAPI=x(),j.insertStyleElement=z();C()(N.A,j);N.A&&N.A.locals&&N.A.locals;class L extends _.View{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new _.FormRowView(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new _.ViewCollection,this.keystrokes.set("Esc",(e,t)=>{this.fire("cancel"),t()}),this._focusCycler=new _.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),(0,_.submitHandler)({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:y.IconPreviousArrow,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new _.FormHeaderView(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new _.LabeledFieldView(this.locale,_.createLabeledInputText);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function M(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const i=D(e);t.updatePosition(i)}}function D(e){const t=e.editing.view,i=_.BalloonPanelView.defaultPositions,n=e.plugins.get("ImageUtils");return{target:t.domConverter.mapViewToDom(n.getClosestSelectedImageWidget(t.document.selection)),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast,i.viewportStickyNorth]}}class W extends e.Plugin{_balloon;_form;static get requires(){return[_.ContextualBalloon]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",i=>{const n=e.commands.get("imageTextAlternative"),a=new _.ButtonView(i);return a.set({label:t("Change image text alternative"),icon:y.IconTextAlternative,tooltip:!0}),a.bind("isEnabled").to(n,"isEnabled"),a.bind("isOn").to(n,"value",e=>!!e),this.listenTo(a,"execute",()=>{this._showForm()}),a})}_createForm(){const e=this.editor,t=e.editing.view.document,i=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new((0,_.CssTransitionDisablerMixin)(L))(e.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this.listenTo(e.ui,"update",()=>{i.getClosestSelectedImageWidget(t.selection)?this._isVisible&&M(e):this._hideForm(!0)}),(0,_.clickOutsideHandler)({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),i=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:D(e)}),i.fieldView.value=i.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class q extends e.Plugin{static get requires(){return[v,W]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function $(e){const t=(t,i,n)=>{if(!n.consumable.test(i.viewItem,{name:!0,classes:"image"}))return;const a=e.findViewImgElement(i.viewItem);if(!a||!n.consumable.test(a,{name:!0}))return;n.consumable.consume(i.viewItem,{name:!0,classes:"image"});const o=n.convertItem(a,i.modelCursor),r=(0,s.first)(o.modelRange.getItems());r?(n.convertChildren(i.viewItem,r),n.updateConversionResult(r,i)):n.consumable.revert(i.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}function H(e){const t=["srcset","media","type","sizes"],i=(i,n,a)=>{const o=n.viewItem;if(!a.consumable.test(o,{name:!0}))return;const r=new Map;for(const e of o.getChildren())if(e.is("element","source")){const i={};for(const n of t)e.hasAttribute(n)&&a.consumable.test(e,{attributes:n})&&(i[n]=e.getAttribute(n));Object.keys(i).length&&r.set(e,i)}const l=e.findViewImgElement(o);if(!l)return;let c=n.modelCursor.parent;if(!c.is("element","imageBlock")){const e=a.convertItem(l,n.modelCursor);n.modelRange=e.modelRange,n.modelCursor=e.modelCursor,c=(0,s.first)(e.modelRange.getItems())}a.consumable.consume(o,{name:!0});for(const[e,t]of r)a.consumable.consume(e,{attributes:Object.keys(t)});r.size&&a.writer.setAttribute("sources",Array.from(r.values()),c),a.convertChildren(o,c)};return e=>{e.on("element:picture",i)}}function K(e,t){const i=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const a=n.writer,o=n.mapper.toViewElement(i.item),r=e.findViewImgElement(o);null===i.attributeNewValue?(a.removeAttribute("srcset",r),a.removeAttribute("sizes",r)):i.attributeNewValue&&(a.setAttribute("srcset",i.attributeNewValue,r),a.setAttribute("sizes","100vw",r))};return e=>{e.on(`attribute:srcset:${t}`,i)}}function G(e){const t=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const a=n.writer,o=n.mapper.toViewElement(i.item),r=e.findViewImgElement(o),s=i.attributeNewValue;if(s&&s.length){const e=[];let t=r.parent;for(;t&&t.is("attributeElement");){const i=t.parent;a.unwrap(a.createRangeOn(r),t),e.unshift(t),t=i}const i=r.parent.is("element","picture"),n=i?r.parent:a.createContainerElement("picture",null);i||a.insert(a.createPositionBefore(r),n),a.remove(a.createRangeIn(n)),a.insert(a.createPositionAt(n,"end"),s.map(e=>a.createEmptyElement("source",e))),a.move(a.createRangeOn(r),a.createPositionAt(n,"end"));for(const t of e)a.wrap(a.createRangeOn(n),t)}else if(r.parent.is("element","picture")){const e=r.parent;a.move(a.createRangeOn(r),a.createPositionBefore(e)),a.remove(e)}};return e=>{e.on("attribute:sources:imageBlock",t),e.on("attribute:sources:imageInline",t)}}function J(e,t,i){const n=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const a=n.writer,o=n.mapper.toViewElement(i.item),r=e.findViewImgElement(o);a.setAttribute(i.attributeKey,i.attributeNewValue||"",r)};return e=>{e.on(`attribute:${i}:${t}`,n)}}class Y extends a.Observer{observe(e){this.listenTo(e,"load",(e,t)=>{const i=t.target;this.checkShouldIgnoreEventFromTarget(i)||"IMG"==i.tagName&&this._fireEvents(t)},{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class Q extends e.Command{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&(0,s.logWarning)("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&(0,s.logWarning)("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=(0,s.toArray)(e.source),i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),a=Object.fromEntries(i.getAttributes());t.forEach((t,o)=>{const r=i.getSelectedElement();if("string"==typeof t&&(t={src:t}),o&&r&&n.isImage(r)){const i=this.editor.model.createPositionAfter(r);n.insertImage({...t,...a},i,e.imageType)}else e.breakBlock?n.insertImage({...t,...a},i.getFirstPosition(),e.imageType):n.insertImage({...t,...a},null,e.imageType)})}}class X extends e.Command{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(t),this.value=this.isEnabled?t.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),i=this.editor.plugins.get("ImageUtils");this.editor.model.change(n=>{n.setAttribute("src",e.source,t),this.cleanupImage(n,t),i.setImageNaturalSizeAttributes(t)})}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class Z extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(Y),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const i=new Q(e),n=new X(e);e.commands.add("insertImage",i),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",i)}}class ee extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,i=t.plugins.get("ImageUtils"),n="imageBlock"===e?"figure":"img";function a(t,n,a,o,r=!1){t.on(`attribute:${n}:${e}`,(t,n,s)=>{if(!s.consumable.consume(n.item,t.name))return;const l=s.writer,c=s.mapper.toViewElement(n.item),g=i.findViewImgElement(c);null!==n.attributeNewValue?l.setAttribute(a,n.attributeNewValue,g):l.removeAttribute(a,g);const m=n.item.getAttribute("width"),u=n.item.getAttribute("height"),d=m&&u;if(d&&r&&l.setAttribute("loading","lazy",g),n.item.hasAttribute("sources"))return;const p=n.item.hasAttribute("resizedWidth");("imageInline"!==e||p||o)&&d&&l.setStyle("aspect-ratio",`${m}/${u}`,g)})}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>p(e)?d(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>p(e)?d(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add(e=>{a(e,"width","width",!0,!0),a(e,"height","height",!0,!0)}),t.conversion.for("dataDowncast").add(e=>{a(e,"width","width",!1),a(e,"height","height",!1)}),t.conversion.for("upcast").add(e=>{e.on("element:img",(e,t,i)=>{const n=t.viewItem.getAttribute("width"),a=t.viewItem.getAttribute("height");n&&a&&i.consumable.consume(t.viewItem,{styles:["aspect-ratio"]})})})}}class te extends e.Command{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=e.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=e.isInlineImage(t):this.isEnabled=e.isBlockImage(t)}execute(e={}){const t=this.editor,i=this.editor.model,n=t.plugins.get("ImageUtils"),a=n.getClosestSelectedImageElement(i.document.selection),o=Object.fromEntries(a.getAttributes());return o.src||o.uploadId?i.change(t=>{const{setImageSizes:r=!0}=e,s=Array.from(i.markers).filter(e=>e.getRange().containsItem(a)),l=n.insertImage(o,i.createSelection(a,"on"),this._modelElementName,{setImageSizes:r});if(!l)return null;const c=t.createRangeOn(l);for(const e of s){const i=e.getRange(),n="$graveyard"!=i.root.rootName?i.getJoined(c,!0):c;t.updateMarker(e,{range:n})}return{oldElement:a,newElement:l}}):null}}var ie=i(185),ne={attributes:{"data-cke":!0}};ne.setAttributes=V(),ne.insert=T().bind(null,"head"),ne.domAPI=x(),ne.insertStyleElement=z();C()(ie.A,ne);ie.A&&ie.A.locals&&ie.A.locals;class ae extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,i=e.plugins.get("ImageUtils");t.for("editingDowncast").add(e=>{e.on("attribute:placeholder",(e,t,n)=>{if(!n.consumable.test(t.item,e.name))return;if(!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;n.consumable.consume(t.item,e.name);const a=n.writer,o=n.mapper.toViewElement(t.item),r=i.findViewImgElement(o);t.attributeNewValue?(a.addClass("image_placeholder",r),a.setStyle("background-image",`url(${t.attributeNewValue})`,r),a.setCustomProperty("editingPipeline:doNotReuseOnce",!0,r)):(a.removeClass("image_placeholder",r),a.removeStyle("background-image",r))})})}_setupLoadListener(){const e=this.editor,t=e.model,i=e.editing,n=i.view,a=e.plugins.get("ImageUtils");n.addObserver(Y),this.listenTo(n.document,"imageLoaded",(e,o)=>{const r=n.domConverter.mapDomToView(o.target);if(!r)return;const s=a.getImageWidgetFromImageView(r);if(!s)return;const l=i.mapper.toModelElement(s);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},e=>{e.removeAttribute("placeholder",l)})})}}class oe extends e.Plugin{static get requires(){return[Z,ee,f,ae,t.ClipboardPipeline]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new te(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,i=e.conversion,n=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>g(t)}),i.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:i})=>n.toImageWidget(g(i),i,t("image widget"))}),i.for("downcast").add(J(n,"imageBlock","src")).add(J(n,"imageBlock","alt")).add(K(n,"imageBlock")),i.for("upcast").elementToElement({view:m(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add($(n))}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),o=e.plugins.get("ClipboardPipeline");this.listenTo(o,"inputTransformation",(o,r)=>{const s=Array.from(r.content.getChildren());let l;if(!s.every(n.isInlineImageView))return;l=r.targetRanges?e.editing.mapper.toModelRange(r.targetRanges[0]):t.document.selection.getFirstRange();const c=t.createSelection(l);if("imageBlock"===u(t.schema,c)){const e=new a.ViewUpcastWriter(i.document),t=s.map(t=>e.createElement("figure",{class:"image"},t));r.content=e.createDocumentFragment(t)}}),this.listenTo(o,"contentInsertion",(e,i)=>{"paste"===i.method&&t.change(e=>{const t=e.createRangeIn(i.content);for(const e of t.getItems())e.is("element","imageBlock")&&n.setImageNaturalSizeAttributes(e)})})}}var re=i(811),se={attributes:{"data-cke":!0}};se.setAttributes=V(),se.insert=T().bind(null,"head"),se.domAPI=x(),se.insertStyleElement=z();C()(re.A,se);re.A&&re.A.locals&&re.A.locals;class le extends _.View{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){super(e),this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,this._focusables=new _.ViewCollection,this.children=this.createCollection(),this._focusCycler=new _.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const e of t)this.children.add(e),this._focusables.add(e),e instanceof _.CollapsibleView&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),(0,_.submitHandler)({view:this});for(const e of this._focusables)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class ce extends e.Plugin{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[f]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,i=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",()=>{this.isImageSelected=i.isImage(t.getSelectedElement())});const n=e=>this._createToolbarComponent(e);e.ui.componentFactory.add("insertImage",n),e.ui.componentFactory.add("imageInsert",n),e.ui.componentFactory.add("menuBar:insertImage",e=>this._createMenuBarComponent(e))}registerIntegration({name:e,observable:t,buttonViewCreator:i,formViewCreator:n,menuBarButtonViewCreator:a,requiresForm:o=!1,override:r=!1}){this._integrations.has(e)&&!r&&(0,s.logWarning)("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:i,menuBarButtonViewCreator:a,formViewCreator:n,requiresForm:o})}_createToolbarComponent(e){const t=this.editor,i=e.t,n=this._prepareIntegrations();if(!n.length)return null;let a;const o=n[0];if(1==n.length){if(!o.requiresForm)return o.buttonViewCreator(!0);a=o.buttonViewCreator(!0)}else{const t=o.buttonViewCreator(!1);a=new _.SplitButtonView(e,t),a.tooltip=!0,a.bind("label").to(this,"isImageSelected",e=>i(e?"Replace image":"Insert image"))}const r=this.dropdownView=(0,_.createDropdown)(e,a),s=n.map(({observable:e})=>"function"==typeof e?e():e);return r.bind("isEnabled").toMany(s,"isEnabled",(...e)=>e.some(e=>e)),r.once("change:isOpen",()=>{const e=n.flatMap(({formViewCreator:e})=>e(1==n.length)),i=new le(t.locale,e);r.panelView.children.add(i)}),r}_createMenuBarComponent(e){const t=e.t,i=this._prepareIntegrations();if(!i.length)return null;const n=i.flatMap(({menuBarButtonViewCreator:e})=>e(1==i.length)),a=new _.MenuBarMenuView(e),o=new _.MenuBarMenuListView(e);a.panelView.children.add(o),a.buttonView.set({icon:y.IconImage,label:t("Image")});for(const t of n){const i=new _.MenuBarMenuListItemView(e,a);i.children.add(t),o.items.add(i),t.delegate("execute").to(a)}return a}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return(0,s.logWarning)("image-insert-integrations-not-specified"),t;for(const i of e)this._integrations.has(i)?t.push(this._integrations.get(i)):["upload","assetManager","url"].includes(i)||(0,s.logWarning)("image-insert-unknown-integration",{item:i});return t.length||(0,s.logWarning)("image-insert-integrations-not-registered"),t}}var ge=i(636),me={attributes:{"data-cke":!0}};me.setAttributes=V(),me.insert=T().bind(null,"head"),me.domAPI=x(),me.insertStyleElement=z();C()(ge.A,me);ge.A&&ge.A.locals&&ge.A.locals;class ue extends e.Plugin{static get requires(){return[oe,l.Widget,q,ce]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class de extends e.Plugin{static get requires(){return[Z,ee,f,ae,t.ClipboardPipeline]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new te(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,i=e.conversion,n=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToElement({model:"imageInline",view:(e,{writer:t})=>t.createEmptyElement("img")}),i.for("editingDowncast").elementToStructure({model:"imageInline",view:(e,{writer:i})=>n.toImageWidget(c(i),i,t("image widget"))}),i.for("downcast").add(J(n,"imageInline","src")).add(J(n,"imageInline","alt")).add(K(n,"imageInline")),i.for("upcast").elementToElement({view:m(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),o=e.plugins.get("ClipboardPipeline");this.listenTo(o,"inputTransformation",(o,r)=>{const s=Array.from(r.content.getChildren());let l;if(!s.every(n.isBlockImageView))return;l=r.targetRanges?e.editing.mapper.toModelRange(r.targetRanges[0]):t.document.selection.getFirstRange();const c=t.createSelection(l);if("imageInline"===u(t.schema,c)){const e=new a.ViewUpcastWriter(i.document),t=s.map(t=>1===t.childCount?(Array.from(t.getAttributes()).forEach(i=>e.setAttribute(...i,n.findViewImgElement(t))),t.getChild(0)):t);r.content=e.createDocumentFragment(t)}}),this.listenTo(o,"contentInsertion",(e,i)=>{"paste"===i.method&&t.change(e=>{const t=e.createRangeIn(i.content);for(const e of t.getItems())e.is("element","imageInline")&&n.setImageNaturalSizeAttributes(e)})})}}class pe extends e.Plugin{static get requires(){return[de,l.Widget,q,ce]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class he extends e.Plugin{static get requires(){return[ue,pe]}static get pluginName(){return"Image"}static get isOfficialPlugin(){return!0}}class fe extends e.Plugin{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[f]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),i=e.getFirstPosition().findAncestor("caption");return i&&t.isBlockImage(i.parent)?i:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class be extends e.Command{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),i=e.plugins.get("ImageUtils");if(!e.plugins.has(oe))return this.isEnabled=!1,void(this.value=!1);const n=e.model.document.selection,a=n.getSelectedElement();if(!a){const e=t.getCaptionFromModelSelection(n);return this.isEnabled=!!e,void(this.value=!!e)}this.isEnabled=i.isImage(a),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(a):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change(e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)})}_showImageCaption(e,t){const i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageCaptionEditing"),a=this.editor.plugins.get("ImageUtils");let o=i.getSelectedElement();const r=n._getSavedCaption(o);a.isInlineImage(o)&&(this.editor.execute("imageTypeBlock"),o=i.getSelectedElement());const s=r||e.createElement("caption");e.append(s,o),t&&e.setSelection(s,"in")}_hideImageCaption(e){const t=this.editor,i=t.model.document.selection,n=t.plugins.get("ImageCaptionEditing"),a=t.plugins.get("ImageCaptionUtils");let o,r=i.getSelectedElement();r?o=a.getCaptionFromImageModelElement(r):(o=a.getCaptionFromModelSelection(i),r=o.parent),n._saveCaption(r,o),e.setSelection(r,"on"),e.remove(o)}}class ke extends e.Plugin{static get requires(){return[f,fe]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new be(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils"),o=e.t;e.conversion.for("upcast").elementToElement({view:e=>n.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer:t})=>i.isBlockImage(e.parent)?t.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(e,{writer:n})=>{if(!i.isBlockImage(e.parent))return null;const r=n.createEditableElement("figcaption");n.setCustomProperty("imageCaption",!0,r),r.placeholder=o("Enter image caption"),(0,a.enableViewPlaceholder)({view:t,element:r,keepOnFocus:!0});const s=e.parent.getAttribute("alt"),c=s?o("Caption for image: %0",[s]):o("Caption for the image");return(0,l.toWidgetEditable)(r,n,{label:c})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),n=e.commands.get("imageTypeInline"),a=e.commands.get("imageTypeBlock"),o=e=>{if(!e.return)return;const{oldElement:n,newElement:a}=e.return;if(!n)return;if(t.isBlockImage(n)){const e=i.getCaptionFromImageModelElement(n);if(e)return void this._saveCaption(a,e)}const o=this._getSavedCaption(n);o&&this._saveCaption(a,o)};n&&this.listenTo(n,"execute",o,{priority:"low"}),a&&this.listenTo(a,"execute",o,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?a.ModelElement.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",()=>{const a=t.document.differ.getChanges();for(const t of a){if("alt"!==t.attributeKey)continue;const a=t.range.start.nodeAfter;if(i.isBlockImage(a)){const t=n.getCaptionFromImageModelElement(a);if(!t)return;e.editing.reconvertItem(t)}}})}}class Ie extends e.Plugin{static get requires(){return[fe]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageCaptionUtils"),n=e.t;e.ui.componentFactory.add("toggleImageCaption",a=>{const o=e.commands.get("toggleImageCaption"),r=new _.ButtonView(a);return r.set({icon:y.IconCaption,tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(o,"value","isEnabled"),r.bind("label").to(o,"value",e=>n(e?"Toggle caption off":"Toggle caption on")),this.listenTo(r,"execute",()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const n=i.getCaptionFromModelSelection(e.model.document.selection);if(n){const i=e.editing.mapper.toViewElement(n);t.scrollToTheSelection(),t.change(e=>{e.addClass("image__caption_highlighted",i)})}e.editing.view.focus()}),r})}}var we=i(68),ve={attributes:{"data-cke":!0}};ve.setAttributes=V(),ve.insert=T().bind(null,"head"),ve.domAPI=x(),ve.insertStyleElement=z();C()(we.A,ve);we.A&&we.A.locals&&we.A.locals;class _e extends e.Plugin{static get requires(){return[ke,Ie]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}}function ye(e){const t=e.map(e=>e.replace("+","\\+"));return new RegExp(`^image\\/(${t.join("|")})$`)}function Ae(e){return new Promise((t,i)=>{const n=e.getAttribute("src");fetch(n).then(e=>e.blob()).then(e=>{const i=Ee(e,n),a=i.replace("image/",""),o=new File([e],`image.${a}`,{type:i});t(o)}).catch(e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise((t,i)=>{const n=s.global.document.createElement("img");n.addEventListener("load",()=>{const e=s.global.document.createElement("canvas");e.width=n.width,e.height=n.height;e.getContext("2d").drawImage(n,0,0),e.toBlob(e=>e?t(e):i())}),n.addEventListener("error",()=>i()),n.src=e})}(e).then(t=>{const i=Ee(t,e),n=i.replace("image/","");return new File([t],`image.${n}`,{type:i})})}(n).then(t).catch(i):i(e))})}function Ce(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src"))&&(!!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)||!!t.getAttribute("src").match(/^blob:/g))}function Ee(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class xe extends e.Plugin{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",()=>this._createToolbarButton()),e.ui.componentFactory.add("imageUpload",()=>this._createToolbarButton()),e.ui.componentFactory.add("menuBar:uploadImage",()=>this._createMenuBarButton("standalone")),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,i=t.locale,n=t.commands.get("uploadImage"),a=t.config.get("image.upload.types"),o=ye(a),r=new e(t.locale),s=i.t;return r.set({acceptedType:a.map(e=>`image/${e}`).join(","),allowMultipleFiles:!0,label:s("Upload from computer"),icon:y.IconImageUpload}),r.bind("isEnabled").to(n),r.on("done",(e,i)=>{const n=Array.from(i).filter(e=>o.test(e.type));n.length&&(t.execute("uploadImage",{file:n}),t.editing.view.focus())}),r}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this.editor.commands.get("uploadImage"),n=this._createButton(_.FileDialogButtonView);return n.tooltip=!0,n.bind("label").to(t,"isImageSelected",i,"isAccessAllowed",(t,i)=>e(i?t?"Replace image from computer":"Upload image from computer":"You have no image upload permissions.")),n}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this._createButton(_.FileDialogButtonView);return i.withText=!0,i.bind("label").to(t,"isImageSelected",t=>e(t?"Replace from computer":"Upload from computer")),i.on("execute",()=>{t.dropdownView.isOpen=!1}),i}_createMenuBarButton(e){const t=this.editor.locale.t,i=this._createButton(_.MenuBarMenuListItemFileDialogButtonView);switch(i.withText=!0,e){case"standalone":i.label=t("Image from computer");break;case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=t("From computer")}return i}}var Se=i(260),Te=i(18),Be={attributes:{"data-cke":!0}};Be.setAttributes=V(),Be.insert=T().bind(null,"head"),Be.domAPI=x(),Be.insertStyleElement=z();C()(Te.A,Be);Te.A&&Te.A.locals&&Te.A.locals;var Ve=i(612),Ue={attributes:{"data-cke":!0}};Ue.setAttributes=V(),Ue.insert=T().bind(null,"head"),Ue.domAPI=x(),Ue.insertStyleElement=z();C()(Ve.A,Ue);Ve.A&&Ve.A.locals&&Ve.A.locals;var ze=i(802),Pe={attributes:{"data-cke":!0}};Pe.setAttributes=V(),Pe.insert=T().bind(null,"head"),Pe.domAPI=x(),Pe.insertStyleElement=z();C()(ze.A,Pe);ze.A&&ze.A.locals&&ze.A.locals;class Oe extends e.Plugin{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,i)=>{const n=this.editor,a=t.item,o=a.getAttribute("uploadId");if(!i.consumable.consume(t.item,e.name))return;const r=n.plugins.get("ImageUtils"),s=n.plugins.get(Se.FileRepository),l=o?t.attributeNewValue:null,c=this.placeholder,g=n.editing.mapper.toViewElement(a),m=i.writer;if("reading"==l)return Re(g,m),void Fe(r,c,g,m);if("uploading"==l){const e=s.loaders.get(o);return Re(g,m),void(e?(Ne(g,m),function(e,t,i,n){const a=function(e){const t=e.createUIElement("div",{class:"ck-progress-bar"});return e.setCustomProperty("progressBar",!0,t),t}(t);t.insert(t.createPositionAt(e,"end"),a),i.on("change:uploadedPercent",(e,t,i)=>{n.change(e=>{e.setStyle("width",i+"%",a)})})}(g,m,e,n.editing.view),function(e,t,i,n){if(n.data){const a=e.findViewImgElement(t);i.setAttribute("src",n.data,a)}}(r,g,m,e)):Fe(r,c,g,m))}"complete"==l&&s.loaders.get(o)&&function(e,t,i){const n=t.createUIElement("div",{class:"ck-image-upload-complete-icon"});t.insert(t.createPositionAt(e,"end"),n),setTimeout(()=>{i.change(e=>e.remove(e.createRangeOn(n)))},3e3)}(g,m,n.editing.view),function(e,t){Le(e,t,"progressBar")}(g,m),Ne(g,m),function(e,t){t.removeClass("ck-appear",e)}(g,m)}}function Re(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function Fe(e,t,i,n){i.hasClass("ck-image-upload-placeholder")||n.addClass("ck-image-upload-placeholder",i);const a=e.findViewImgElement(i);a.getAttribute("src")!==t&&n.setAttribute("src",t,a),je(i,"placeholder")||n.insert(n.createPositionAfter(a),function(e){const t=e.createUIElement("div",{class:"ck-upload-placeholder-loader"});return e.setCustomProperty("placeholder",!0,t),t}(n))}function Ne(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),Le(e,t,"placeholder")}function je(e,t){for(const i of e.getChildren())if(i.getCustomProperty(t))return i}function Le(e,t,i){const n=je(e,i);n&&t.remove(t.createRangeOn(n))}class Me extends e.Command{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),i=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(i)}execute(e){const t=(0,s.toArray)(e.file),i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),a=Object.fromEntries(i.getAttributes());t.forEach((e,t)=>{const o=i.getSelectedElement();if(t&&o&&n.isImage(o)){const t=this.editor.model.createPositionAfter(o);this._uploadImage(e,a,t)}else this._uploadImage(e,a)})}_uploadImage(e,t,i){const n=this.editor,a=n.plugins.get(Se.FileRepository).createLoader(e),o=n.plugins.get("ImageUtils");a&&o.insertImage({...t,uploadId:a.id},i)}}class De extends e.Plugin{static get requires(){return[Se.FileRepository,_.Notification,t.ClipboardPipeline,f]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,i=e.conversion,n=e.plugins.get(Se.FileRepository),o=e.plugins.get("ImageUtils"),r=e.plugins.get("ClipboardPipeline"),s=ye(e.config.get("image.upload.types")),l=new Me(e);e.commands.add("uploadImage",l),e.commands.add("imageUpload",l),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add(e=>e.on("element:img",(e,t,i)=>{if(!i.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;const a=t.viewItem.getAttribute("data-ck-upload-id");if(!a)return;const[o]=Array.from(t.modelRange.getItems({shallow:!0})),r=n.loaders.get(a);o&&(i.writer.setAttribute("uploadId",a,o),i.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),r&&r.data&&i.writer.setAttribute("uploadStatus",r.status,o))},{priority:"low"})),this.listenTo(e.editing.view.document,"clipboardInput",(t,i)=>{if(We(i.dataTransfer))return;const n=Array.from(i.dataTransfer.files).filter(e=>!!e&&s.test(e.type));if(!n.length)return;t.stop(),e.model.change(t=>{i.targetRanges&&t.setSelection(i.targetRanges.map(t=>e.editing.mapper.toModelRange(t))),e.execute("uploadImage",{file:n})});if(!e.commands.get("uploadImage").isAccessAllowed){const t=e.plugins.get("Notification"),i=e.locale.t;t.showWarning(i("You have no image upload permissions."),{namespace:"image"})}}),this.listenTo(r,"inputTransformation",(t,i)=>{const r=Array.from(e.editing.view.createRangeIn(i.content)).map(e=>e.item).filter(e=>Ce(o,e)&&!e.getAttribute("uploadProcessed")).map(e=>({promise:Ae(e),imageElement:e}));if(!r.length)return;const s=new a.ViewUpcastWriter(e.editing.view.document);for(const e of r){s.setAttribute("uploadProcessed",!0,e.imageElement);const t=n.createLoader(e.promise);t&&(s.setAttribute("src","",e.imageElement),s.setAttribute("uploadId",t.id,e.imageElement))}}),e.editing.view.document.on("dragover",(e,t)=>{t.preventDefault()}),t.on("change",()=>{const i=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),a=new Set;for(const t of i)if("insert"==t.type&&"$text"!=t.name){const i=t.position.nodeAfter,o="$graveyard"==t.position.root.rootName;for(const t of qe(e,i)){const i=t.getAttribute("uploadId"),r=t.getAttribute("uploadStatus");if(!i||"complete"==r)continue;const s=n.loaders.get(i);if(s)if(o){if(!a.has(i)){Array.from(this._uploadImageElements.get(i)).every(e=>"$graveyard"==e.root.rootName)&&s.abort()}}else a.add(i),this._uploadImageElements.has(i)?this._uploadImageElements.get(i).add(t):this._uploadImageElements.set(i,new Set([t])),"idle"==s.status&&this._readAndUpload(s);else!o&&this._uploadedImages.has(i)&&e.model.enqueueChange({isUndoable:!1},e=>{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(i),imageElement:t})})}}}),this.on("uploadComplete",(e,{imageElement:t,data:i})=>{const n=i.urls?i.urls:i;this.editor.model.change(e=>{e.setAttribute("src",n.default,t),this._parseAndSetSrcsetAttributeOnImage(n,t,e),o.setImageNaturalSizeAttributes(t)})},{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,i=t.model,n=t.locale.t,a=t.plugins.get(Se.FileRepository),o=t.plugins.get(_.Notification),r=t.plugins.get("ImageUtils"),l=this._uploadImageElements;return i.enqueueChange({isUndoable:!1},t=>{const i=l.get(e.id);for(const e of i)t.setAttribute("uploadStatus","reading",e)}),e.read().then(()=>{const a=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image"));for(const n of l.get(e.id)){if(s.env.isSafari){const e=t.editing.mapper.toViewElement(n),i=r.findViewImgElement(e);t.editing.view.once("render",()=>{if(!i.parent)return;const e=t.editing.view.domConverter.mapViewToDom(i.parent);if(!e)return;const n=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=n})}i.enqueueChange({isUndoable:!1},e=>{e.setAttribute("uploadStatus","uploading",n)})}return a}).then(a=>{i.enqueueChange({isUndoable:!1},i=>{for(const t of l.get(e.id))i.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:a,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this._uploadedImages.set(e.id,a)}),c()}).catch(a=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw a;"error"==e.status&&a&&o.showWarning(a,{title:n("Upload failed"),namespace:"upload"}),i.enqueueChange({isUndoable:!1},t=>{for(const i of l.get(e.id))"$graveyard"!==i.root.rootName&&t.remove(i)}),c()});function c(){i.enqueueChange({isUndoable:!1},t=>{for(const i of l.get(e.id))t.removeAttribute("uploadId",i),t.removeAttribute("uploadStatus",i);l.delete(e.id)}),a.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,i){let n=0;const a=Object.keys(e).filter(e=>{const t=parseInt(e,10);if(!isNaN(t))return n=Math.max(n,t),!0}).map(t=>`${e[t]} ${t}w`).join(", ");if(""!=a){const e={srcset:a};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=n),i.setAttributes(e,t)}}_registerConverters(e){const{conversion:t,plugins:i}=this.editor,n=i.get(Se.FileRepository),a=i.get(f);t.for("dataDowncast").add(t=>{t.on(`attribute:uploadId:${e}`,(e,t,i)=>{if(!i.consumable.test(t.item,e.name))return;const o=n.loaders.get(t.attributeNewValue);if(!o||!o.data)return null;const r=i.mapper.toViewElement(t.item),s=a.findViewImgElement(r);s&&(i.consumable.consume(t.item,e.name),i.writer.setAttribute("data-ck-upload-id",o.id,s))})})}}function We(e){return Array.from(e.types).includes("text/html")&&""!==e.getData("text/html")}function qe(e,t){const i=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter(e=>i.isImage(e.item)).map(e=>e.item)}class $e extends e.Plugin{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[De,xe,Oe]}}class He extends _.View{urlInputView;keystrokes;constructor(e){super(e),this.set("imageURLInputValue",""),this.set("isImageSelected",!1),this.set("isEnabled",!0),this.keystrokes=new s.KeystrokeHandler,this.urlInputView=this._createUrlInputView(),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-url"],tabindex:"-1"},children:[this.urlInputView,{tag:"div",attributes:{class:["ck","ck-image-insert-url__action-row"]}}]})}render(){super.render(),(0,_.submitHandler)({view:this}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}_createUrlInputView(){const e=this.locale,t=e.t,i=new _.LabeledFieldView(e,_.createLabeledInputText);return i.bind("label").to(this,"isImageSelected",e=>t(e?"Update image URL":"Insert image via URL")),i.bind("isEnabled").to(this),i.fieldView.inputMode="url",i.fieldView.placeholder="https://example.com/image.png",i.fieldView.bind("value").to(this,"imageURLInputValue",e=>e||""),i.fieldView.on("input",()=>{this.imageURLInputValue=i.fieldView.element.value.trim()}),i}focus(){this.urlInputView.focus()}}class Ke extends e.Plugin{_imageInsertUI;_formView;static get pluginName(){return"ImageInsertViaUrlUI"}static get isOfficialPlugin(){return!0}static get requires(){return[ce,_.Dialog]}init(){this.editor.ui.componentFactory.add("insertImageViaUrl",()=>this._createToolbarButton()),this.editor.ui.componentFactory.add("menuBar:insertImageViaUrl",()=>this._createMenuBarButton("standalone"))}afterInit(){this._imageInsertUI=this.editor.plugins.get("ImageInsertUI"),this._imageInsertUI.registerIntegration({name:"url",observable:()=>this.editor.commands.get("insertImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createInsertUrlButton(e){const t=new e(this.editor.locale);return t.icon=y.IconImageUrl,t.on("execute",()=>{this._showModal()}),t}_createToolbarButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(_.ButtonView);return t.tooltip=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",t=>e(t?"Update image URL":"Insert image via URL")),t}_createDropdownButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(_.ButtonView);return t.withText=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",t=>e(t?"Update image URL":"Insert via URL")),t}_createMenuBarButton(e){const t=this.editor.locale.t,i=this._createInsertUrlButton(_.MenuBarMenuListItemButtonView);switch(i.withText=!0,e){case"standalone":i.label=t("Image via URL");break;case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=t("Via URL")}return i}_createInsertUrlView(){const e=this.editor,t=e.locale,i=e.commands.get("replaceImageSource"),n=e.commands.get("insertImage"),a=new He(t);return a.bind("isImageSelected").to(this._imageInsertUI),a.bind("isEnabled").toMany([n,i],"isEnabled",(...e)=>e.some(e=>e)),a}_showModal(){const e=this.editor,t=e.locale.t,i=e.plugins.get("Dialog");this._formView||(this._formView=this._createInsertUrlView(),this._formView.on("submit",()=>this._handleSave()));const n=e.commands.get("replaceImageSource");this._formView.imageURLInputValue=n.value||"",i.show({id:"insertImageViaUrl",title:t("Image via URL"),isModal:!0,content:this._formView,actionButtons:[{label:t("Cancel"),withText:!0,onExecute:()=>i.hide()},{label:this._imageInsertUI.isImageSelected?t("Save"):t("Insert"),class:"ck-button-action",withText:!0,onExecute:()=>this._handleSave()}]})}_handleSave(){this.editor.commands.get("replaceImageSource").isEnabled?this.editor.execute("replaceImageSource",{source:this._formView.imageURLInputValue}):this.editor.execute("insertImage",{source:this._formView.imageURLInputValue}),this.editor.plugins.get("Dialog").hide()}}class Ge extends e.Plugin{static get pluginName(){return"ImageInsertViaUrl"}static get isOfficialPlugin(){return!0}static get requires(){return[Ke,ce]}}class Je extends e.Plugin{static get pluginName(){return"ImageInsert"}static get isOfficialPlugin(){return!0}static get requires(){return[$e,Ge,ce]}}class Ye extends e.Command{refresh(){const e=this.editor,t=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);this.isEnabled=!!t,t&&t.hasAttribute("resizedWidth")?this.value={width:t.getAttribute("resizedWidth"),height:null}:this.value=null}execute(e){const t=this.editor,i=t.model,n=t.plugins.get("ImageUtils"),a=n.getClosestSelectedImageElement(i.document.selection);this.value={width:e.width,height:null},a&&i.change(t=>{t.setAttribute("resizedWidth",e.width,a),t.removeAttribute("resizedHeight",a),n.setImageNaturalSizeAttributes(a)})}}class Qe extends e.Plugin{static get requires(){return[f]}static get pluginName(){return"ImageResizeEditing"}static get licenseFeatureCode(){return"IR"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new Ye(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0})),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0}))}_registerConverters(e){const t=this.editor,i=t.plugins.get("ImageUtils");t.conversion.for("downcast").add(t=>t.on(`attribute:resizedWidth:${e}`,(e,t,i)=>{if(!i.consumable.consume(t.item,e.name))return;const n=i.writer,a=i.mapper.toViewElement(t.item);null!==t.attributeNewValue?(n.setStyle("width",t.attributeNewValue,a),n.addClass("image_resized",a)):(n.removeStyle("width",a),n.removeClass("image_resized",a))})),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:e=>({key:"style",value:{height:e}})}),t.conversion.for("editingDowncast").add(t=>t.on(`attribute:resizedHeight:${e}`,(t,n,a)=>{if(!a.consumable.consume(n.item,t.name))return;const o=a.writer,r=a.mapper.toViewElement(n.item),s="imageInline"===e?i.findViewImgElement(r):r;null!==n.attributeNewValue?o.setStyle("height",n.attributeNewValue,s):o.removeStyle("height",s)})),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>p(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>p(e)?null:e.getStyle("height")}}),t.conversion.for("upcast").add(t=>{t.on("element:"+("imageBlock"===e?"figure":"img"),(e,t,i)=>{i.consumable.consume(t.viewItem,{classes:["image_resized"]})})})}}const Xe=(()=>({small:y.IconObjectSizeSmall,medium:y.IconObjectSizeMedium,large:y.IconObjectSizeLarge,custom:y.IconObjectSizeCustom,original:y.IconObjectSizeFull}))();class Ze extends e.Plugin{static get requires(){return[Qe]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),i=e.commands.get("resizeImage");this.bind("isEnabled").to(i);for(const e of t)this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:i,value:n,icon:a}=e;t.ui.componentFactory.add(i,i=>{const o=new _.ButtonView(i),r=t.commands.get("resizeImage"),l=this._getOptionLabelValue(e,!0);if(!Xe[a])throw new s.CKEditorError("imageresizebuttons-missing-icon",t,e);if(o.set({label:l,icon:Xe[a],tooltip:l,isToggleable:!0}),o.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&et(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(o,"execute",()=>{e._showForm(this._resizeUnit)})}else{const e=n?n+this._resizeUnit:null;o.bind("isOn").to(r,"value",r,"isEnabled",tt(e)),this.listenTo(o,"execute",()=>{t.execute("resizeImage",{width:e})})}return o})}_registerImageResizeDropdown(e){const t=this.editor,i=t.t,n=e.find(e=>!e.value),a=a=>{const o=t.commands.get("resizeImage"),r=(0,_.createDropdown)(a,_.DropdownButtonView),s=r.buttonView,l=i("Resize image");return s.set({tooltip:l,commandValue:n.value,icon:Xe.medium,isToggleable:!0,label:this._getOptionLabelValue(n),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),s.bind("label").to(o,"value",e=>e&&e.width?e.width:this._getOptionLabelValue(n)),r.bind("isEnabled").to(this),(0,_.addListToDropdown)(r,()=>this._getResizeDropdownListItemDefinitions(e,o),{ariaLabel:i("Image resize list"),role:"menu"}),this.listenTo(r,"execute",e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())}),r};t.ui.componentFactory.add("resizeImage",a),t.ui.componentFactory.add("imageResize",a)}_getOptionLabelValue(e,t=!1){const i=this.editor.t;return e.label?e.label:t?et(e)?i("Custom image size"):e.value?i("Resize image to %0",e.value+this._resizeUnit):i("Resize image to the original size"):et(e)?i("Custom"):e.value?e.value+this._resizeUnit:i("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:i}=this,n=new s.Collection,a=e.map(e=>et(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null});for(const e of a){let o=null;if(i.plugins.has("ImageCustomResizeUI")&&et(e)){const n=i.plugins.get("ImageCustomResizeUI");o={type:"button",model:new _.UIModel({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};const r=Object.values(a).map(e=>e.valueWithUnits);o.model.bind("isOn").to(t,"value",t,"isEnabled",it(r))}else o={type:"button",model:new _.UIModel({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},o.model.bind("isOn").to(t,"value",t,"isEnabled",tt(e.valueWithUnits));o.model.bind("isEnabled").to(t,"isEnabled"),n.add(o)}return n}}function et(e){return"custom"===e.value}function tt(e){return(t,i)=>!(void 0===t||!i)&&(null===e&&t===e||null!==t&&t.width===e)}function it(e){return(t,i)=>!e.some(e=>tt(e)(t,i))}const nt="image_resized";class at extends e.Plugin{static get requires(){return[l.WidgetResize,f]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils");t.addObserver(Y),this.listenTo(t.document,"imageLoaded",(n,a)=>{if(!a.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const o=e.editing.view.domConverter,r=o.domToView(a.target),s=i.getImageWidgetFromImageView(r);let c=this.editor.plugins.get(l.WidgetResize).getResizerByViewElement(s);if(c)return void c.redraw();const g=e.editing.mapper,m=g.toModelElement(s);c=e.plugins.get(l.WidgetResize).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:m,viewElement:s,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>o.mapViewToDom(g.toViewElement(m)),isCentered:()=>"alignCenter"==m.getAttribute("imageStyle"),onCommit(i){t.change(e=>{e.removeClass(nt,s)}),e.execute("resizeImage",{width:i})}}),c.on("updateSize",()=>{s.hasClass(nt)||t.change(e=>{e.addClass(nt,s)});const e="imageInline"===m.name?r:s;e.getStyle("height")&&t.change(t=>{t.removeStyle("height",e)})}),c.bind("isEnabled").to(this)})}}function ot(e){if(!e)return null;const[,t,i]=e.trim().match(/([.,\d]+)(%|px)$/)||[],n=Number.parseFloat(t);return Number.isNaN(n)?null:{value:n,unit:i}}function rt(e,t,i){return"px"===i?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function st(e){const{editing:t}=e,i=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!i)return null;const n=t.mapper.toViewElement(i);return{model:i,view:n,dom:t.view.domConverter.mapViewToDom(n)}}function lt(e,t){const i=st(e);if(!i)return null;const n=ot(i.model.getAttribute("resizedWidth")||null);if(!n)return null;if(n.unit===t)return n;return rt((0,l.calculateResizeHostAncestorWidth)(i.dom),{unit:"px",value:new s.Rect(i.dom).width},t)}var ct=i(679),gt={attributes:{"data-cke":!0}};gt.setAttributes=V(),gt.insert=T().bind(null,"head"),gt.domAPI=x(),gt.insertStyleElement=z();C()(ct.A,gt);ct.A&&ct.A.locals&&ct.A.locals;class mt extends _.View{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,i){super(e),this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new _.FormRowView(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new _.ViewCollection,this._validators=i,this.keystrokes.set("Esc",(e,t)=>{this.fire("cancel"),t()}),this._focusCycler=new _.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),(0,_.submitHandler)({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:y.IconPreviousArrow,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new _.ButtonView(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new _.FormHeaderView(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new _.LabeledFieldView(this.locale,_.createLabeledInputNumber);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(null===e)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}function ut(e,t){const i=st(e);if(!i)return null;const n=(0,l.calculateResizeHostAncestorWidth)(i.dom),a=ot(window.getComputedStyle(i.dom).minWidth)||{value:1,unit:"px"};return{unit:t,lower:Math.max(.1,rt(n,a,t).value),upper:"px"===t?n:100}}class dt extends e.Plugin{_balloon;_form;static get requires(){return[_.ContextualBalloon]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new((0,_.CssTransitionDisablerMixin)(mt))(t.locale,e,function(e){const t=e.t;return[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0]}(t)),this._form.render(),this.listenTo(this._form,"submit",()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))}),this.listenTo(this._form.labeledInput,"change:errorText",()=>{t.ui.update()}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),(0,_.clickOutsideHandler)({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,i=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:D(t)});const n=lt(t,e),a=n?n.value.toFixed(1):"",o=ut(t,e);i.fieldView.value=i.fieldView.element.value=a,o&&Object.assign(i.fieldView,{min:o.lower.toFixed(1),max:Math.ceil(o.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}var pt=i(632),ht={attributes:{"data-cke":!0}};ht.setAttributes=V(),ht.insert=T().bind(null,"head"),ht.domAPI=x(),ht.insertStyleElement=z();C()(pt.A,ht);pt.A&&pt.A.locals&&pt.A.locals;class ft extends e.Plugin{static get requires(){return[Qe,at,dt,Ze]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}}class bt extends e.Command{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map(e=>{if(e.isDefault)for(const t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]}))}refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled?e.hasAttribute("imageStyle")?this.value=e.getAttribute("imageStyle"):this.value=this._defaultStyles[e.name]:this.value=!1}execute(e={}){const t=this.editor,i=t.model,n=t.plugins.get("ImageUtils");i.change(t=>{const a=e.value,{setImageSizes:o=!0}=e;let r=n.getClosestSelectedImageElement(i.document.selection);a&&this.shouldConvertImageType(a,r)&&(this.editor.execute(n.isBlockImage(r)?"imageTypeInline":"imageTypeBlock",{setImageSizes:o}),r=n.getClosestSelectedImageElement(i.document.selection)),!a||this._styles.get(a).isDefault?t.removeAttribute("imageStyle",r):t.setAttribute("imageStyle",a,r),o&&n.setImageNaturalSizeAttributes(r)})}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const kt={get inline(){return{name:"inline",title:"In line",icon:y.IconObjectInline,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:y.IconObjectInlineLeft,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:y.IconObjectLeft,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:y.IconObjectCenter,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:y.IconObjectInlineRight,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:y.IconObjectRight,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:y.IconObjectCenter,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:y.IconObjectInlineRight,modelElements:["imageBlock"],className:"image-style-side"}}},It=(()=>({full:y.IconObjectFullWidth,left:y.IconObjectLeft,right:y.IconObjectRight,center:y.IconObjectCenter,inlineLeft:y.IconObjectInlineLeft,inlineRight:y.IconObjectInlineRight,inline:y.IconObjectInline}))(),wt=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function vt(e){(0,s.logWarning)("image-style-configuration-definition-invalid",e)}const _t={normalizeStyles:function(e){return(e.configuredStyles.options||[]).map(e=>function(e){e="string"==typeof e?kt[e]?{...kt[e]}:{name:e}:function(e,t){const i={...t};for(const n in e)Object.prototype.hasOwnProperty.call(t,n)||(i[n]=e[n]);return i}(kt[e.name],e);"string"==typeof e.icon&&(e.icon=It[e.icon]||e.icon);return e}(e)).filter(t=>function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:i}){const{modelElements:n,name:a}=e;if(!(n&&n.length&&a))return vt({style:e}),!1;{const a=[t?"imageBlock":null,i?"imageInline":null];if(!n.some(e=>a.includes(e)))return(0,s.logWarning)("image-style-missing-dependency",{style:e,missingPlugins:n.map(e=>"imageBlock"===e?"ImageBlockEditing":"ImageInlineEditing")}),!1}return!0}(t,e))},getDefaultStylesConfiguration:function(e,t){return e&&t?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:e?{options:["block","side"]}:t?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(e){return e.has("ImageBlockEditing")&&e.has("ImageInlineEditing")?[...wt]:[]},warnInvalidStyle:vt};var yt=i(695);function At(e){return(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const a=Et(i.attributeNewValue,e),o=Et(i.attributeOldValue,e),r=n.mapper.toViewElement(i.item),s=n.writer;o&&s.removeClass(o.className,r),a&&s.addClass(a.className,r)}}function Ct(e){const t={imageInline:e.filter(e=>!e.isDefault&&e.modelElements.includes("imageInline")),imageBlock:e.filter(e=>!e.isDefault&&e.modelElements.includes("imageBlock"))};return(i,n,a)=>{if(!n.modelRange)return;const o=n.viewItem,r=(0,s.first)(n.modelRange.getItems());if(r&&a.schema.checkAttribute(r,"imageStyle")){for(const e of t[r.name])a.consumable.consume(o,{classes:e.className})&&a.writer.setAttribute("imageStyle",e.name,r);!function(e,t,i,n){if(!e.consumable.test(t,{styles:["float"]}))return;let a=null;const o=i.is("element","imageBlock")?"Block":"";switch(t.getStyle("float")){case"left":a=`align${o}Left`;break;case"right":a=`align${o}Right`}if(!a)return;const r=Et(a,n);if(!r)return;const s=kt[r.name];if(!yt(r,s))return;e.writer.setAttribute("imageStyle",a,i),e.consumable.consume(t,{styles:["float"]})}(a,o,r,e)}}}function Et(e,t){for(const i of t)if(i.name===e)return i}class xt extends e.Plugin{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[f]}normalizedStyles;init(){const e=this.editor,t=e.plugins.has("ImageBlockEditing"),i=e.plugins.has("ImageInlineEditing");e.config.define("image.styles",_t.getDefaultStylesConfiguration(t,i)),this.normalizedStyles=_t.normalizeStyles({configuredStyles:e.config.get("image.styles"),isBlockPluginLoaded:t,isInlinePluginLoaded:i}),this._setupConversion(t,i),this._setupPostFixer(),e.commands.add("imageStyle",new bt(e,this.normalizedStyles))}_setupConversion(e,t){const i=this.editor,n=i.model.schema,a=At(this.normalizedStyles),o=Ct(this.normalizedStyles);i.editing.downcastDispatcher.on("attribute:imageStyle",a),i.data.downcastDispatcher.on("attribute:imageStyle",a),e&&(n.extend("imageBlock",{allowAttributes:"imageStyle"}),n.setAttributeProperties("imageStyle",{isFormatting:!0}),i.data.upcastDispatcher.on("element:figure",o,{priority:"low"})),t&&(n.extend("imageInline",{allowAttributes:"imageStyle"}),n.setAttributeProperties("imageStyle",{isFormatting:!0}),i.data.upcastDispatcher.on("element:img",o,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,i=e.plugins.get(f),n=new Map(this.normalizedStyles.map(e=>[e.name,e]));t.registerPostFixer(e=>{let a=!1;for(const o of t.differ.getChanges())if("insert"==o.type||"attribute"==o.type&&"imageStyle"==o.attributeKey){let t="insert"==o.type?o.position.nodeAfter:o.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!i.isImage(t))continue;const r=t.getAttribute("imageStyle");if(!r)continue;const s=n.get(r);s&&s.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),a=!0)}return a})}}function St(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function Tt(e){return e}var Bt=i(581),Vt={attributes:{"data-cke":!0}};Vt.setAttributes=V(),Vt.insert=T().bind(null,"head"),Vt.domAPI=x(),Vt.insertStyleElement=z();C()(Bt.A,Vt);Bt.A&&Bt.A.locals&&Bt.A.locals;class Ut extends e.Plugin{static get requires(){return[xt]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],i=zt(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of i)this._createButton(e);const n=zt([...t.filter(St),..._t.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const e of n)this._createDropdown(e,i)}_createDropdown(e,t){const i=this.editor.ui.componentFactory;i.add(e.name,n=>{let a;const{defaultItem:o,items:r,title:s}=e,l=r.filter(e=>t.find(({name:t})=>Pt(t)===e)).map(e=>{const t=i.create(e);return e===o&&(a=t),t});r.length!==l.length&&_t.warnInvalidStyle({dropdown:e});const c=(0,_.createDropdown)(n,_.SplitButtonView),g=c.buttonView,m=g.arrowView;return(0,_.addToolbarToDropdown)(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),g.set({label:Ot(s,a.label),class:null,tooltip:!0}),m.unbind("label"),m.set({label:s}),g.bind("icon").toMany(l,"isOn",(...e)=>{const t=e.findIndex(Tt);return t<0?a.icon:l[t].icon}),g.bind("label").toMany(l,"isOn",(...e)=>{const t=e.findIndex(Tt);return Ot(s,t<0?a.label:l[t].label)}),g.bind("isOn").toMany(l,"isOn",(...e)=>e.some(Tt)),g.bind("class").toMany(l,"isOn",(...e)=>e.some(Tt)?"ck-splitbutton_flatten":void 0),g.on("execute",()=>{l.some(({isOn:e})=>e)?c.isOpen=!c.isOpen:a.fire("execute")}),c.bind("isEnabled").toMany(l,"isEnabled",(...e)=>e.some(Tt)),this.listenTo(c,"execute",()=>{this.editor.editing.view.focus()}),c})}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(Pt(t),i=>{const n=this.editor.commands.get("imageStyle"),a=new _.ButtonView(i);return a.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),a.bind("isEnabled").to(n,"isEnabled"),a.bind("isOn").to(n,"value",e=>e===t),a.on("execute",this._executeCommand.bind(this,t)),a})}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function zt(e,t){for(const i of e)t[i.title]&&(i.title=t[i.title]);return e}function Pt(e){return`imageStyle:${e}`}function Ot(e,t){return(e?e+": ":"")+t}class Rt extends e.Plugin{static get requires(){return[xt,Ut]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}}class Ft extends e.Plugin{static get requires(){return[l.WidgetToolbarRepository,f]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,i=e.plugins.get(l.WidgetToolbarRepository),n=e.plugins.get("ImageUtils");var a;i.register("image",{ariaLabel:t("Image toolbar"),items:(a=e.config.get("image.toolbar")||[],a.map(e=>St(e)?e.name:e)),getRelatedElement:e=>n.getClosestSelectedImageWidget(e)})}}class Nt extends e.Plugin{static get requires(){return[Z,f]}static get pluginName(){return"PictureEditing"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.model.schema.extend("imageBlock",{allowAttributes:["sources"]}),e.plugins.has("ImageInlineEditing")&&e.model.schema.extend("imageInline",{allowAttributes:["sources"]}),this._setupConversion(),this._setupImageUploadEditingIntegration()}_setupConversion(){const e=this.editor,t=e.conversion,i=e.plugins.get("ImageUtils");t.for("upcast").add(H(i)),t.for("downcast").add(G(i))}_setupImageUploadEditingIntegration(){const e=this.editor;if(!e.plugins.has("ImageUploadEditing"))return;const t=e.plugins.get("ImageUploadEditing");this.listenTo(t,"uploadComplete",(t,{imageElement:i,data:n})=>{const a=n.sources;a&&e.model.change(e=>{e.setAttributes({sources:a},i)})})}}})(),(window.CKEditor5=window.CKEditor5||{}).image=n})();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
  :root{
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
  :root{