-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimage.js
5 lines (5 loc) · 108 KB
/
image.js
1
2
3
4
5
!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 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","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"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
/*!
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md.
*/(()=>{var e={501:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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=o},934:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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=o},406:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.push([e.id,":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@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-color-image-caption-background)}}",""]);const r=o},429:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.push([e.id,".ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}",""]);const r=o},489:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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;padding:var(--ck-list-button-padding);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: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-collapsible,.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}",""]);const r=o},571:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.push([e.id,".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}",""]);const r=o},278:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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=o},895:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.push([e.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-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-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-image-style-spacing);max-width:50%}.ck-content .image.image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image.image-style-align-right{float:right;margin-left:var(--ck-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-image-style-spacing)}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-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-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-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=o},854:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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:0ms,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:0ms}.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=o},424:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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=o},184:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.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=o},285:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});var n=i(935),o=i.n(n)()((function(e){return e[1]}));o.push([e.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}",""]);const r=o},935:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var i=e(t);return t[2]?"@media ".concat(t[2]," {").concat(i,"}"):i})).join("")},t.i=function(e,i,n){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(n)for(var r=0;r<this.length;r++){var a=this[r][0];null!=a&&(o[a]=!0)}for(var s=0;s<e.length;s++){var l=[].concat(e[s]);n&&o[l[0]]||(i&&(l[2]?l[2]="".concat(i," and ").concat(l[2]):l[2]=i),t.push(l))}},t}},591:(e,t,i)=>{"use strict";var n,o=function(){return void 0===n&&(n=Boolean(window&&document&&document.all&&!window.atob)),n},r=function(){var e={};return function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}e[t]=i}return e[t]}}(),a=[];function s(e){for(var t=-1,i=0;i<a.length;i++)if(a[i].identifier===e){t=i;break}return t}function l(e,t){for(var i={},n=[],o=0;o<e.length;o++){var r=e[o],l=t.base?r[0]+t.base:r[0],c=i[l]||0,u="".concat(l," ").concat(c);i[l]=c+1;var g=s(u),m={css:r[1],media:r[2],sourceMap:r[3]};-1!==g?(a[g].references++,a[g].updater(m)):a.push({identifier:u,updater:f(m,t),references:1}),n.push(u)}return n}function c(e){var t=document.createElement("style"),n=e.attributes||{};if(void 0===n.nonce){var o=i.nc;o&&(n.nonce=o)}if(Object.keys(n).forEach((function(e){t.setAttribute(e,n[e])})),"function"==typeof e.insert)e.insert(t);else{var a=r(e.insert||"head");if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}return t}var u,g=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function m(e,t,i,n){var o=i?"":n.media?"@media ".concat(n.media," {").concat(n.css,"}"):n.css;if(e.styleSheet)e.styleSheet.cssText=g(t,o);else{var r=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(r,a[t]):e.appendChild(r)}}function d(e,t,i){var n=i.css,o=i.media,r=i.sourceMap;if(o?e.setAttribute("media",o):e.removeAttribute("media"),r&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var p=null,h=0;function f(e,t){var i,n,o;if(t.singleton){var r=h++;i=p||(p=c(t)),n=m.bind(null,i,r,!1),o=m.bind(null,i,r,!0)}else i=c(t),n=d.bind(null,i,t),o=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(i)};return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else o()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=o());var i=l(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var n=0;n<i.length;n++){var o=s(i[n]);a[o].references--}for(var r=l(e,t),c=0;c<i.length;c++){var u=s(i[c]);0===a[u].references&&(a[u].updater(),a.splice(u,1))}i=r}}}},331:(e,t,i)=>{e.exports=i(237)("./src/clipboard.js")},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},834:(e,t,i)=>{e.exports=i(237)("./src/typing.js")},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},251:(e,t,i)=>{e.exports=i(237)("./src/undo.js")},260:(e,t,i)=>{e.exports=i(237)("./src/upload.js")},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},901:(e,t,i)=>{e.exports=i(237)("./src/widget.js")},237:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function i(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={id:n,exports:{}};return e[n](r,r.exports,i),r.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})},i.nc=void 0;var n={};(()=>{"use strict";i.r(n),i.d(n,{AutoImage:()=>k,Image:()=>Z,ImageBlock:()=>Q,ImageBlockEditing:()=>W,ImageCaption:()=>ae,ImageCaptionEditing:()=>ie,ImageCaptionUI:()=>ne,ImageCaptionUtils:()=>ee,ImageCustomResizeUI:()=>ho,ImageEditing:()=>P,ImageInline:()=>Y,ImageInsert:()=>Ve,ImageInsertUI:()=>K,ImageInsertViaUrl:()=>Te,ImageResize:()=>ko,ImageResizeButtons:()=>io,ImageResizeEditing:()=>eo,ImageResizeHandles:()=>so,ImageSizeAttributes:()=>N,ImageStyle:()=>Uo,ImageStyleEditing:()=>Eo,ImageStyleUI:()=>Bo,ImageTextAlternative:()=>V,ImageTextAlternativeEditing:()=>w,ImageTextAlternativeUI:()=>T,ImageToolbar:()=>jo,ImageUpload:()=>Ae,ImageUploadEditing:()=>Ce,ImageUploadProgress:()=>ke,ImageUploadUI:()=>ue,ImageUtils:()=>h,PictureEditing:()=>Ro});var e=i(782),t=i(331),o=i(783),r=i(251),a=i(834),s=i(584),l=i(901);function c(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function u(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 g(e,t){const i=(0,s.first)(t.getSelectedBlocks());return!i||e.isObject(i)||i.isEmpty&&"listItem"!=i.name?"imageBlock":"imageInline"}function m(e){return e&&e.endsWith("px")?parseInt(e):null}function d(e){const t=m(e.getStyle("width")),i=m(e.getStyle("height"));return!(!t||!i)}const p=/^(image|image-inline)$/;class h extends e.Plugin{constructor(){super(...arguments),this._domEmitter=new((0,s.DomEmitterMixin)())}static get pluginName(){return"ImageUtils"}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,r=o.model,a=r.document.selection,s=f(o,t||a,i);e={...Object.fromEntries(a.getAttributes()),...e};for(const t in e)r.schema.checkAttribute(s,t)||delete e[t];return r.change((i=>{const{setImageSizes:o=!0}=n,a=i.createElement(s,e);return r.insertObject(a,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==s?void 0:"auto"}),a.parent?(o&&this.setImageNaturalSizeAttributes(a),a):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:p})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const i=f(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 f(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")?g(n,t):n.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}const b=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 k extends e.Plugin{static get requires(){return[t.Clipboard,h,r.Undo,a.Delete]}static get pluginName(){return"AutoImage"}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.LivePosition.fromPosition(e.start);i.stickiness="toPrevious";const n=o.LivePosition.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 o.LiveRange(e,t),r=n.getWalker({ignoreElementEnd:!0}),a=Object.fromEntries(i.model.document.selection.getAttributes()),s=this.editor.plugins.get("ImageUtils");let l="";for(const e of r)e.item.is("$textProxy")&&(l+=e.item.data);l=l.trim(),l.match(b)?(this._positionToInsert=o.LivePosition.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({...a,src:l},t),this._positionToInsert.detach(),this._positionToInsert=null}));i.plugins.get("Delete").requestUndoOnBackspace()}),100)):n.detach()}}class v 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 w extends e.Plugin{static get requires(){return[h]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new v(this.editor))}}var I=i(311),_=i(591),y=i.n(_),x=i(285),C={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(x.A,C);x.A.locals;var E=i(501),A={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(E.A,A);E.A.locals;class S extends I.View{constructor(t){super(t);const i=this.locale.t;this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(i("Save"),e.icons.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(i("Cancel"),e.icons.cancel,"ck-button-cancel","cancel"),this._focusables=new I.ViewCollection,this._focusCycler=new I.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),(0,I.submitHandler)({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(e,t,i,n){const o=new I.ButtonView(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o.extendTemplate({attributes:{class:i}}),n&&o.delegate("execute").to(this,n),o}_createLabeledInputView(){const e=this.locale.t,t=new I.LabeledFieldView(this.locale,I.createLabeledInputText);return t.label=e("Text alternative"),t}}function B(e){const t=e.editing.view,i=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 T extends e.Plugin{static get requires(){return[I.ContextualBalloon]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const t=this.editor,i=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),r=new I.ButtonView(n);return r.set({label:i("Change image text alternative"),icon:e.icons.textAlternative,tooltip:!0}),r.bind("isEnabled").to(o,"isEnabled"),r.bind("isOn").to(o,"value",(e=>!!e)),this.listenTo(r,"execute",(()=>{this._showForm()})),r}))}_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,I.CssTransitionDisablerMixin)(S))(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._form.keystrokes.set("Esc",((e,t)=>{this._hideForm(!0),t()})),this.listenTo(e.ui,"update",(()=>{i.getClosestSelectedImageWidget(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const i=B(e);t.updatePosition(i)}}(e):this._hideForm(!0)})),(0,I.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:B(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 V extends e.Plugin{static get requires(){return[w,T]}static get pluginName(){return"ImageTextAlternative"}}function z(e,t){const i=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=n.writer,r=n.mapper.toViewElement(i.item),a=e.findViewImgElement(r);null===i.attributeNewValue?(o.removeAttribute("srcset",a),o.removeAttribute("sizes",a)):i.attributeNewValue&&(o.setAttribute("srcset",i.attributeNewValue,a),o.setAttribute("sizes","100vw",a))};return e=>{e.on(`attribute:srcset:${t}`,i)}}function U(e,t,i){const n=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=n.writer,r=n.mapper.toViewElement(i.item),a=e.findViewImgElement(r);o.setAttribute(i.attributeKey,i.attributeNewValue||"",a)};return e=>{e.on(`attribute:${i}:${t}`,n)}}class j 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 R 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"),o=Object.fromEntries(i.getAttributes());t.forEach(((e,t)=>{const r=i.getSelectedElement();if("string"==typeof e&&(e={src:e}),t&&r&&n.isImage(r)){const t=this.editor.model.createPositionAfter(r);n.insertImage({...e,...o},t)}else n.insertImage({...e,...o})}))}}class O 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 P extends e.Plugin{static get requires(){return[h]}static get pluginName(){return"ImageEditing"}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(j),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const i=new R(e),n=new O(e);e.commands.add("insertImage",i),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",i)}}class N extends e.Plugin{static get requires(){return[h]}static get pluginName(){return"ImageSizeAttributes"}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.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,r){t.on(`attribute:${n}:${e}`,((t,n,a)=>{if(!a.consumable.consume(n.item,t.name))return;const s=a.writer,l=a.mapper.toViewElement(n.item),c=i.findViewImgElement(l);if(null!==n.attributeNewValue?s.setAttribute(o,n.attributeNewValue,c):s.removeAttribute(o,c),n.item.hasAttribute("sources"))return;const u=n.item.hasAttribute("resizedWidth");if("imageInline"===e&&!u&&!r)return;const g=n.item.getAttribute("width"),m=n.item.getAttribute("height");g&&m&&s.setStyle("aspect-ratio",`${g}/${m}`,c)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>d(e)?m(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>d(e)?m(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{o(e,"width","width",!0),o(e,"height","height",!0)})),t.conversion.for("dataDowncast").add((e=>{o(e,"width","width",!1),o(e,"height","height",!1)}))}}class F extends e.Command{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),r=Object.fromEntries(o.getAttributes());return r.src||r.uploadId?i.change((t=>{const{setImageSizes:a=!0}=e,s=Array.from(i.markers).filter((e=>e.getRange().containsItem(o))),l=n.insertImage(r,i.createSelection(o,"on"),this._modelElementName,{setImageSizes:a});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:o,newElement:l}})):null}}var L=i(571),D={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(L.A,D);L.A.locals;class M extends e.Plugin{static get requires(){return[h]}static get pluginName(){return"ImagePlaceholder"}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,r=n.mapper.toViewElement(t.item),a=i.findViewImgElement(r);t.attributeNewValue?(o.addClass("image_placeholder",a),o.setStyle("background-image",`url(${t.attributeNewValue})`,a),o.setCustomProperty("editingPipeline:doNotReuseOnce",!0,a)):(o.removeClass("image_placeholder",a),o.removeStyle("background-image",a))}))}))}_setupLoadListener(){const e=this.editor,t=e.model,i=e.editing,n=i.view,o=e.plugins.get("ImageUtils");n.addObserver(j),this.listenTo(n.document,"imageLoaded",((e,r)=>{const a=n.domConverter.mapDomToView(r.target);if(!a)return;const s=o.getImageWidgetFromImageView(a);if(!s)return;const l=i.mapper.toModelElement(s);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},(e=>{e.removeAttribute("placeholder",l)}))}))}}class W extends e.Plugin{static get requires(){return[P,N,h,M,t.ClipboardPipeline]}static get pluginName(){return"ImageBlockEditing"}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 F(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})=>c(t)}),i.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:i})=>n.toImageWidget(c(i),i,t("image widget"))}),i.for("downcast").add(U(n,"imageBlock","src")).add(U(n,"imageBlock","alt")).add(z(n,"imageBlock")),i.for("upcast").elementToElement({view:u(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(function(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 r=n.convertItem(o,i.modelCursor),a=(0,s.first)(r.modelRange.getItems());a?(n.convertChildren(i.viewItem,a),n.updateConversionResult(a,i)):n.consumable.revert(i.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}(n))}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),r=e.plugins.get("ClipboardPipeline");this.listenTo(r,"inputTransformation",((r,a)=>{const s=Array.from(a.content.getChildren());let l;if(!s.every(n.isInlineImageView))return;l=a.targetRanges?e.editing.mapper.toModelRange(a.targetRanges[0]):t.document.selection.getFirstRange();const c=t.createSelection(l);if("imageBlock"===g(t.schema,c)){const e=new o.UpcastWriter(i.document),t=s.map((t=>e.createElement("figure",{class:"image"},t)));a.content=e.createDocumentFragment(t)}})),this.listenTo(r,"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 q=i(489),$={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(q.A,$);q.A.locals;class H extends I.View{constructor(e,t=[]){super(e),this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,this._focusables=new I.ViewCollection,this.children=this.createCollection(),this._focusCycler=new I.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 I.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,I.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 K extends e.Plugin{static get pluginName(){return"ImageInsertUI"}static get requires(){return[h]}constructor(e){super(e),this._integrations=new Map,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:r=!1}){this._integrations.has(e)&&(0,s.logWarning)("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:i,menuBarButtonViewCreator:o,formViewCreator:n,requiresForm:r})}_createToolbarComponent(e){const t=this.editor,i=e.t,n=this._prepareIntegrations();if(!n.length)return null;let o;const r=n[0];if(1==n.length){if(!r.requiresForm)return r.buttonViewCreator(!0);o=r.buttonViewCreator(!0)}else{const t=r.buttonViewCreator(!1);o=new I.SplitButtonView(e,t),o.tooltip=!0,o.bind("label").to(this,"isImageSelected",(e=>i(e?"Replace image":"Insert image")))}const a=this.dropdownView=(0,I.createDropdown)(e,o),s=n.map((({observable:e})=>"function"==typeof e?e():e));return a.bind("isEnabled").toMany(s,"isEnabled",((...e)=>e.some((e=>e)))),a.once("change:isOpen",(()=>{const e=n.map((({formViewCreator:e})=>e(1==n.length))),i=new H(t.locale,e);a.panelView.children.add(i)})),a}_createMenuBarComponent(t){const i=t.t,n=this._prepareIntegrations();if(!n.length)return null;let o;const r=n[0];if(1==n.length)o=r.menuBarButtonViewCreator(!0);else{o=new I.MenuBarMenuView(t);const r=new I.MenuBarMenuListView(t);o.panelView.children.add(r),o.buttonView.set({icon:e.icons.image,label:i("Image")});for(const e of n){const i=new I.MenuBarMenuListItemView(t,o),n=e.menuBarButtonViewCreator(!1);i.children.add(n),r.items.add(i)}}return o}_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 G=i(934),J={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(G.A,J);G.A.locals;class Q extends e.Plugin{static get requires(){return[W,l.Widget,V,K]}static get pluginName(){return"ImageBlock"}}class X extends e.Plugin{static get requires(){return[P,N,h,M,t.ClipboardPipeline]}static get pluginName(){return"ImageInlineEditing"}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 F(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(function(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}(i),i,t("image widget"))}),i.for("downcast").add(U(n,"imageInline","src")).add(U(n,"imageInline","alt")).add(z(n,"imageInline")),i.for("upcast").elementToElement({view:u(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"),r=e.plugins.get("ClipboardPipeline");this.listenTo(r,"inputTransformation",((r,a)=>{const s=Array.from(a.content.getChildren());let l;if(!s.every(n.isBlockImageView))return;l=a.targetRanges?e.editing.mapper.toModelRange(a.targetRanges[0]):t.document.selection.getFirstRange();const c=t.createSelection(l);if("imageInline"===g(t.schema,c)){const e=new o.UpcastWriter(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));a.content=e.createDocumentFragment(t)}})),this.listenTo(r,"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 Y extends e.Plugin{static get requires(){return[X,l.Widget,V,K]}static get pluginName(){return"ImageInline"}}class Z extends e.Plugin{static get requires(){return[Q,Y]}static get pluginName(){return"Image"}}class ee extends e.Plugin{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[h]}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 te extends e.Command{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),i=e.plugins.get("ImageUtils");if(!e.plugins.has(W))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 r=i.getSelectedElement();const a=n._getSavedCaption(r);o.isInlineImage(r)&&(this.editor.execute("imageTypeBlock"),r=i.getSelectedElement());const s=a||e.createElement("caption");e.append(s,r),t&&e.setSelection(s,"in")}_hideImageCaption(e){const t=this.editor,i=t.model.document.selection,n=t.plugins.get("ImageCaptionEditing"),o=t.plugins.get("ImageCaptionUtils");let r,a=i.getSelectedElement();a?r=o.getCaptionFromImageModelElement(a):(r=o.getCaptionFromModelSelection(i),a=r.parent),n._saveCaption(a,r),e.setSelection(a,"on"),e.remove(r)}}class ie extends e.Plugin{static get requires(){return[h,ee]}static get pluginName(){return"ImageCaptionEditing"}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 te(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"),r=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 a=n.createEditableElement("figcaption");n.setCustomProperty("imageCaption",!0,a),a.placeholder=r("Enter image caption"),(0,o.enablePlaceholder)({view:t,element:a,keepOnFocus:!0});const s=e.parent.getAttribute("alt"),c=s?r("Caption for image: %0",[s]):r("Caption for the image");return(0,l.toWidgetEditable)(a,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"),r=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 r=this._getSavedCaption(n);r&&this._saveCaption(o,r)};n&&this.listenTo(n,"execute",r,{priority:"low"}),o&&this.listenTo(o,"execute",r,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?o.Element.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 ne extends e.Plugin{static get requires(){return[ee]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor,i=t.editing.view,n=t.plugins.get("ImageCaptionUtils"),o=t.t;t.ui.componentFactory.add("toggleImageCaption",(r=>{const a=t.commands.get("toggleImageCaption"),s=new I.ButtonView(r);return s.set({icon:e.icons.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(a,"value","isEnabled"),s.bind("label").to(a,"value",(e=>o(e?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:!0});const e=n.getCaptionFromModelSelection(t.model.document.selection);if(e){const n=t.editing.mapper.toViewElement(e);i.scrollToTheSelection(),i.change((e=>{e.addClass("image__caption_highlighted",n)}))}t.editing.view.focus()})),s}))}}var oe=i(406),re={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(oe.A,re);oe.A.locals;class ae extends e.Plugin{static get requires(){return[ie,ne]}static get pluginName(){return"ImageCaption"}}function se(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function le(e){return new Promise(((t,i)=>{const n=e.getAttribute("src");fetch(n).then((e=>e.blob())).then((e=>{const i=ce(e,n),o=i.replace("image/",""),r=new File([e],`image.${o}`,{type:i});t(r)})).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=ce(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.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class ue extends e.Plugin{static get pluginName(){return"ImageUploadUI"}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(t){const i=this.editor,n=i.locale,o=i.commands.get("uploadImage"),r=i.config.get("image.upload.types"),a=se(r),s=new t(i.locale),l=n.t;return s.set({acceptedType:r.map((e=>`image/${e}`)).join(","),allowMultipleFiles:!0,label:l("Upload from computer"),icon:e.icons.imageUpload}),s.bind("isEnabled").to(o),s.on("done",((e,t)=>{const n=Array.from(t).filter((e=>a.test(e.type)));n.length&&(i.execute("uploadImage",{file:n}),i.editing.view.focus())})),s}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this._createButton(I.FileDialogButtonView);return i.tooltip=!0,i.bind("label").to(t,"isImageSelected",(t=>e(t?"Replace image from computer":"Upload image from computer"))),i}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this._createButton(I.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(I.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 ge=i(260),me=i(184),de={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(me.A,de);me.A.locals;var pe=i(854),he={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(pe.A,he);pe.A.locals;var fe=i(424),be={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(fe.A,be);fe.A.locals;class ke extends e.Plugin{static get pluginName(){return"ImageUploadProgress"}constructor(e){super(e),this.uploadStatusChange=(e,t,i)=>{const n=this.editor,o=t.item,r=o.getAttribute("uploadId");if(!i.consumable.consume(t.item,e.name))return;const a=n.plugins.get("ImageUtils"),s=n.plugins.get(ge.FileRepository),l=r?t.attributeNewValue:null,c=this.placeholder,u=n.editing.mapper.toViewElement(o),g=i.writer;if("reading"==l)return ve(u,g),void we(a,c,u,g);if("uploading"==l){const e=s.loaders.get(r);return ve(u,g),void(e?(Ie(u,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)}))}))}(u,g,e,n.editing.view),function(e,t,i,n){if(n.data){const o=e.findViewImgElement(t);i.setAttribute("src",n.data,o)}}(a,u,g,e)):we(a,c,u,g))}"complete"==l&&s.loaders.get(r)&&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)}(u,g,n.editing.view),function(e,t){ye(e,t,"progressBar")}(u,g),Ie(u,g),function(e,t){t.removeClass("ck-appear",e)}(u,g)},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)}}function ve(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function we(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),_e(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 Ie(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),ye(e,t,"placeholder")}function _e(e,t){for(const i of e.getChildren())if(i.getCustomProperty(t))return i}function ye(e,t,i){const n=_e(e,i);n&&t.remove(t.createRangeOn(n))}class xe extends e.Command{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"),o=Object.fromEntries(i.getAttributes());t.forEach(((e,t)=>{const r=i.getSelectedElement();if(t&&r&&n.isImage(r)){const t=this.editor.model.createPositionAfter(r);this._uploadImage(e,o,t)}else this._uploadImage(e,o)}))}_uploadImage(e,t,i){const n=this.editor,o=n.plugins.get(ge.FileRepository).createLoader(e),r=n.plugins.get("ImageUtils");o&&r.insertImage({...t,uploadId:o.id},i)}}class Ce extends e.Plugin{static get requires(){return[ge.FileRepository,I.Notification,t.ClipboardPipeline,h]}static get pluginName(){return"ImageUploadEditing"}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(ge.FileRepository),r=e.plugins.get("ImageUtils"),a=e.plugins.get("ClipboardPipeline"),s=se(e.config.get("image.upload.types")),l=new xe(e);e.commands.add("uploadImage",l),e.commands.add("imageUpload",l),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(e.editing.view.document,"clipboardInput",((t,i)=>{if(n=i.dataTransfer,Array.from(n.types).includes("text/html")&&""!==n.getData("text/html"))return;var n;const o=Array.from(i.dataTransfer.files).filter((e=>!!e&&s.test(e.type)));o.length&&(t.stop(),e.model.change((t=>{i.targetRanges&&t.setSelection(i.targetRanges.map((t=>e.editing.mapper.toModelRange(t)))),e.execute("uploadImage",{file:o})})))})),this.listenTo(a,"inputTransformation",((t,i)=>{const a=Array.from(e.editing.view.createRangeIn(i.content)).map((e=>e.item)).filter((e=>function(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src")||!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)&&!t.getAttribute("src").match(/^blob:/g))}(r,e)&&!e.getAttribute("uploadProcessed"))).map((e=>({promise:le(e),imageElement:e})));if(!a.length)return;const s=new o.UpcastWriter(e.editing.view.document);for(const e of a){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(),o=new Set;for(const t of i)if("insert"==t.type&&"$text"!=t.name){const i=t.position.nodeAfter,r="$graveyard"==t.position.root.rootName;for(const t of Ee(e,i)){const e=t.getAttribute("uploadId");if(!e)continue;const i=n.loaders.get(e);i&&(r?o.has(e)||i.abort():(o.add(e),this._uploadImageElements.set(e,t),"idle"==i.status&&this._readAndUpload(i)))}}})),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),r.setImageNaturalSizeAttributes(t)}))}),{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(e){const t=this.editor,i=t.model,n=t.locale.t,o=t.plugins.get(ge.FileRepository),r=t.plugins.get(I.Notification),a=t.plugins.get("ImageUtils"),l=this._uploadImageElements;return i.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","reading",l.get(e.id))})),e.read().then((()=>{const o=e.upload(),r=l.get(e.id);if(s.env.isSafari){const e=t.editing.mapper.toViewElement(r),i=a.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}))}return t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image")),i.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",r)})),o})).then((o=>{i.enqueueChange({isUndoable:!1},(i=>{const r=l.get(e.id);i.setAttribute("uploadStatus","complete",r),t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this.fire("uploadComplete",{data:o,imageElement:r})})),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&&r.showWarning(o,{title:n("Upload failed"),namespace:"upload"}),i.enqueueChange({isUndoable:!1},(t=>{t.remove(l.get(e.id))})),c()}));function c(){i.enqueueChange({isUndoable:!1},(t=>{const i=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)}}}function Ee(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 Ae extends e.Plugin{static get pluginName(){return"ImageUpload"}static get requires(){return[Ce,ue,ke]}}class Se extends I.View{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:"div",attributes:{class:["ck","ck-image-insert-url"]},children:[this.urlInputView,{tag:"div",attributes:{class:["ck","ck-image-insert-url__action-row"]}}]})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}_createUrlInputView(){const e=this.locale,t=e.t,i=new I.LabeledFieldView(e,I.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 Be extends e.Plugin{static get pluginName(){return"ImageInsertViaUrlUI"}static get requires(){return[K,I.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(t){const i=new t(this.editor.locale);return i.icon=e.icons.imageUrl,i.on("execute",(()=>{this._showModal()})),i}_createToolbarButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(I.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(I.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(I.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 Se(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:this._imageInsertUI.isImageSelected?t("Update image URL"):t("Insert image via URL"),isModal:!0,content:this._formView,actionButtons:[{label:t("Cancel"),withText:!0,onExecute:()=>i.hide()},{label:t("Accept"),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 Te extends e.Plugin{static get pluginName(){return"ImageInsertViaUrl"}static get requires(){return[Be,K]}}class Ve extends e.Plugin{static get pluginName(){return"ImageInsert"}static get requires(){return[Ae,Te,K]}}const ze=function(e,t){for(var i=-1,n=null==e?0:e.length,o=Array(n);++i<n;)o[i]=t(e[i],i,e);return o};const Ue=function(){this.__data__=[],this.size=0};const je=function(e,t){return e===t||e!=e&&t!=t};const Re=function(e,t){for(var i=e.length;i--;)if(je(e[i][0],t))return i;return-1};var Oe=Array.prototype.splice;const Pe=function(e){var t=this.__data__,i=Re(t,e);return!(i<0)&&(i==t.length-1?t.pop():Oe.call(t,i,1),--this.size,!0)};const Ne=function(e){var t=this.__data__,i=Re(t,e);return i<0?void 0:t[i][1]};const Fe=function(e){return Re(this.__data__,e)>-1};const Le=function(e,t){var i=this.__data__,n=Re(i,e);return n<0?(++this.size,i.push([e,t])):i[n][1]=t,this};function De(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}De.prototype.clear=Ue,De.prototype.delete=Pe,De.prototype.get=Ne,De.prototype.has=Fe,De.prototype.set=Le;const Me=De;const We=function(){this.__data__=new Me,this.size=0};const qe=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i};const $e=function(e){return this.__data__.get(e)};const He=function(e){return this.__data__.has(e)};const Ke="object"==typeof global&&global&&global.Object===Object&&global;var Ge="object"==typeof self&&self&&self.Object===Object&&self;const Je=Ke||Ge||Function("return this")();const Qe=Je.Symbol;var Xe=Object.prototype,Ye=Xe.hasOwnProperty,Ze=Xe.toString,et=Qe?Qe.toStringTag:void 0;const tt=function(e){var t=Ye.call(e,et),i=e[et];try{e[et]=void 0;var n=!0}catch(e){}var o=Ze.call(e);return n&&(t?e[et]=i:delete e[et]),o};var it=Object.prototype.toString;const nt=function(e){return it.call(e)};var ot=Qe?Qe.toStringTag:void 0;const rt=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":ot&&ot in Object(e)?tt(e):nt(e)};const at=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)};const st=function(e){if(!at(e))return!1;var t=rt(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t};const lt=Je["__core-js_shared__"];var ct,ut=(ct=/[^.]+$/.exec(lt&<.keys&<.keys.IE_PROTO||""))?"Symbol(src)_1."+ct:"";const gt=function(e){return!!ut&&ut in e};var mt=Function.prototype.toString;const dt=function(e){if(null!=e){try{return mt.call(e)}catch(e){}try{return e+""}catch(e){}}return""};var pt=/^\[object .+?Constructor\]$/,ht=Function.prototype,ft=Object.prototype,bt=ht.toString,kt=ft.hasOwnProperty,vt=RegExp("^"+bt.call(kt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const wt=function(e){return!(!at(e)||gt(e))&&(st(e)?vt:pt).test(dt(e))};const It=function(e,t){return null==e?void 0:e[t]};const _t=function(e,t){var i=It(e,t);return wt(i)?i:void 0};const yt=_t(Je,"Map");const xt=_t(Object,"create");const Ct=function(){this.__data__=xt?xt(null):{},this.size=0};const Et=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t};var At=Object.prototype.hasOwnProperty;const St=function(e){var t=this.__data__;if(xt){var i=t[e];return"__lodash_hash_undefined__"===i?void 0:i}return At.call(t,e)?t[e]:void 0};var Bt=Object.prototype.hasOwnProperty;const Tt=function(e){var t=this.__data__;return xt?void 0!==t[e]:Bt.call(t,e)};const Vt=function(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=xt&&void 0===t?"__lodash_hash_undefined__":t,this};function zt(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}zt.prototype.clear=Ct,zt.prototype.delete=Et,zt.prototype.get=St,zt.prototype.has=Tt,zt.prototype.set=Vt;const Ut=zt;const jt=function(){this.size=0,this.__data__={hash:new Ut,map:new(yt||Me),string:new Ut}};const Rt=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};const Ot=function(e,t){var i=e.__data__;return Rt(t)?i["string"==typeof t?"string":"hash"]:i.map};const Pt=function(e){var t=Ot(this,e).delete(e);return this.size-=t?1:0,t};const Nt=function(e){return Ot(this,e).get(e)};const Ft=function(e){return Ot(this,e).has(e)};const Lt=function(e,t){var i=Ot(this,e),n=i.size;return i.set(e,t),this.size+=i.size==n?0:1,this};function Dt(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t<i;){var n=e[t];this.set(n[0],n[1])}}Dt.prototype.clear=jt,Dt.prototype.delete=Pt,Dt.prototype.get=Nt,Dt.prototype.has=Ft,Dt.prototype.set=Lt;const Mt=Dt;const Wt=function(e,t){var i=this.__data__;if(i instanceof Me){var n=i.__data__;if(!yt||n.length<199)return n.push([e,t]),this.size=++i.size,this;i=this.__data__=new Mt(n)}return i.set(e,t),this.size=i.size,this};function qt(e){var t=this.__data__=new Me(e);this.size=t.size}qt.prototype.clear=We,qt.prototype.delete=qe,qt.prototype.get=$e,qt.prototype.has=He,qt.prototype.set=Wt;const $t=qt;const Ht=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this};const Kt=function(e){return this.__data__.has(e)};function Gt(e){var t=-1,i=null==e?0:e.length;for(this.__data__=new Mt;++t<i;)this.add(e[t])}Gt.prototype.add=Gt.prototype.push=Ht,Gt.prototype.has=Kt;const Jt=Gt;const Qt=function(e,t){for(var i=-1,n=null==e?0:e.length;++i<n;)if(t(e[i],i,e))return!0;return!1};const Xt=function(e,t){return e.has(t)};const Yt=function(e,t,i,n,o,r){var a=1&i,s=e.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=r.get(e),u=r.get(t);if(c&&u)return c==t&&u==e;var g=-1,m=!0,d=2&i?new Jt:void 0;for(r.set(e,t),r.set(t,e);++g<s;){var p=e[g],h=t[g];if(n)var f=a?n(h,p,g,t,e,r):n(p,h,g,e,t,r);if(void 0!==f){if(f)continue;m=!1;break}if(d){if(!Qt(t,(function(e,t){if(!Xt(d,t)&&(p===e||o(p,e,i,n,r)))return d.push(t)}))){m=!1;break}}else if(p!==h&&!o(p,h,i,n,r)){m=!1;break}}return r.delete(e),r.delete(t),m};const Zt=Je.Uint8Array;const ei=function(e){var t=-1,i=Array(e.size);return e.forEach((function(e,n){i[++t]=[n,e]})),i};const ti=function(e){var t=-1,i=Array(e.size);return e.forEach((function(e){i[++t]=e})),i};var ii=Qe?Qe.prototype:void 0,ni=ii?ii.valueOf:void 0;const oi=function(e,t,i,n,o,r,a){switch(i){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!r(new Zt(e),new Zt(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return je(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=ei;case"[object Set]":var l=1&n;if(s||(s=ti),e.size!=t.size&&!l)return!1;var c=a.get(e);if(c)return c==t;n|=2,a.set(e,t);var u=Yt(s(e),s(t),n,o,r,a);return a.delete(e),u;case"[object Symbol]":if(ni)return ni.call(e)==ni.call(t)}return!1};const ri=function(e,t){for(var i=-1,n=t.length,o=e.length;++i<n;)e[o+i]=t[i];return e};const ai=Array.isArray;const si=function(e,t,i){var n=t(e);return ai(e)?n:ri(n,i(e))};const li=function(e,t){for(var i=-1,n=null==e?0:e.length,o=0,r=[];++i<n;){var a=e[i];t(a,i,e)&&(r[o++]=a)}return r};const ci=function(){return[]};var ui=Object.prototype.propertyIsEnumerable,gi=Object.getOwnPropertySymbols;const mi=gi?function(e){return null==e?[]:(e=Object(e),li(gi(e),(function(t){return ui.call(e,t)})))}:ci;const di=function(e,t){for(var i=-1,n=Array(e);++i<e;)n[i]=t(i);return n};const pi=function(e){return null!=e&&"object"==typeof e};const hi=function(e){return pi(e)&&"[object Arguments]"==rt(e)};var fi=Object.prototype,bi=fi.hasOwnProperty,ki=fi.propertyIsEnumerable;const vi=hi(function(){return arguments}())?hi:function(e){return pi(e)&&bi.call(e,"callee")&&!ki.call(e,"callee")};const wi=function(){return!1};var Ii="object"==typeof exports&&exports&&!exports.nodeType&&exports,_i=Ii&&"object"==typeof module&&module&&!module.nodeType&&module,yi=_i&&_i.exports===Ii?Je.Buffer:void 0;const xi=(yi?yi.isBuffer:void 0)||wi;var Ci=/^(?:0|[1-9]\d*)$/;const Ei=function(e,t){var i=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==i||"symbol"!=i&&Ci.test(e))&&e>-1&&e%1==0&&e<t};const Ai=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991};var Si={};Si["[object Float32Array]"]=Si["[object Float64Array]"]=Si["[object Int8Array]"]=Si["[object Int16Array]"]=Si["[object Int32Array]"]=Si["[object Uint8Array]"]=Si["[object Uint8ClampedArray]"]=Si["[object Uint16Array]"]=Si["[object Uint32Array]"]=!0,Si["[object Arguments]"]=Si["[object Array]"]=Si["[object ArrayBuffer]"]=Si["[object Boolean]"]=Si["[object DataView]"]=Si["[object Date]"]=Si["[object Error]"]=Si["[object Function]"]=Si["[object Map]"]=Si["[object Number]"]=Si["[object Object]"]=Si["[object RegExp]"]=Si["[object Set]"]=Si["[object String]"]=Si["[object WeakMap]"]=!1;const Bi=function(e){return pi(e)&&Ai(e.length)&&!!Si[rt(e)]};const Ti=function(e){return function(t){return e(t)}};var Vi="object"==typeof exports&&exports&&!exports.nodeType&&exports,zi=Vi&&"object"==typeof module&&module&&!module.nodeType&&module,Ui=zi&&zi.exports===Vi&&Ke.process,ji=function(){try{var e=zi&&zi.require&&zi.require("util").types;return e||Ui&&Ui.binding&&Ui.binding("util")}catch(e){}}();var Ri=ji&&ji.isTypedArray;const Oi=Ri?Ti(Ri):Bi;var Pi=Object.prototype.hasOwnProperty;const Ni=function(e,t){var i=ai(e),n=!i&&vi(e),o=!i&&!n&&xi(e),r=!i&&!n&&!o&&Oi(e),a=i||n||o||r,s=a?di(e.length,String):[],l=s.length;for(var c in e)!t&&!Pi.call(e,c)||a&&("length"==c||o&&("offset"==c||"parent"==c)||r&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Ei(c,l))||s.push(c);return s};var Fi=Object.prototype;const Li=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Fi)};const Di=function(e,t){return function(i){return e(t(i))}}(Object.keys,Object);var Mi=Object.prototype.hasOwnProperty;const Wi=function(e){if(!Li(e))return Di(e);var t=[];for(var i in Object(e))Mi.call(e,i)&&"constructor"!=i&&t.push(i);return t};const qi=function(e){return null!=e&&Ai(e.length)&&!st(e)};const $i=function(e){return qi(e)?Ni(e):Wi(e)};const Hi=function(e){return si(e,$i,mi)};var Ki=Object.prototype.hasOwnProperty;const Gi=function(e,t,i,n,o,r){var a=1&i,s=Hi(e),l=s.length;if(l!=Hi(t).length&&!a)return!1;for(var c=l;c--;){var u=s[c];if(!(a?u in t:Ki.call(t,u)))return!1}var g=r.get(e),m=r.get(t);if(g&&m)return g==t&&m==e;var d=!0;r.set(e,t),r.set(t,e);for(var p=a;++c<l;){var h=e[u=s[c]],f=t[u];if(n)var b=a?n(f,h,u,t,e,r):n(h,f,u,e,t,r);if(!(void 0===b?h===f||o(h,f,i,n,r):b)){d=!1;break}p||(p="constructor"==u)}if(d&&!p){var k=e.constructor,v=t.constructor;k==v||!("constructor"in e)||!("constructor"in t)||"function"==typeof k&&k instanceof k&&"function"==typeof v&&v instanceof v||(d=!1)}return r.delete(e),r.delete(t),d};const Ji=_t(Je,"DataView");const Qi=_t(Je,"Promise");const Xi=_t(Je,"Set");const Yi=_t(Je,"WeakMap");var Zi="[object Map]",en="[object Promise]",tn="[object Set]",nn="[object WeakMap]",on="[object DataView]",rn=dt(Ji),an=dt(yt),sn=dt(Qi),ln=dt(Xi),cn=dt(Yi),un=rt;(Ji&&un(new Ji(new ArrayBuffer(1)))!=on||yt&&un(new yt)!=Zi||Qi&&un(Qi.resolve())!=en||Xi&&un(new Xi)!=tn||Yi&&un(new Yi)!=nn)&&(un=function(e){var t=rt(e),i="[object Object]"==t?e.constructor:void 0,n=i?dt(i):"";if(n)switch(n){case rn:return on;case an:return Zi;case sn:return en;case ln:return tn;case cn:return nn}return t});const gn=un;var mn="[object Arguments]",dn="[object Array]",pn="[object Object]",hn=Object.prototype.hasOwnProperty;const fn=function(e,t,i,n,o,r){var a=ai(e),s=ai(t),l=a?dn:gn(e),c=s?dn:gn(t),u=(l=l==mn?pn:l)==pn,g=(c=c==mn?pn:c)==pn,m=l==c;if(m&&xi(e)){if(!xi(t))return!1;a=!0,u=!1}if(m&&!u)return r||(r=new $t),a||Oi(e)?Yt(e,t,i,n,o,r):oi(e,t,l,i,n,o,r);if(!(1&i)){var d=u&&hn.call(e,"__wrapped__"),p=g&&hn.call(t,"__wrapped__");if(d||p){var h=d?e.value():e,f=p?t.value():t;return r||(r=new $t),o(h,f,i,n,r)}}return!!m&&(r||(r=new $t),Gi(e,t,i,n,o,r))};const bn=function e(t,i,n,o,r){return t===i||(null==t||null==i||!pi(t)&&!pi(i)?t!=t&&i!=i:fn(t,i,n,o,e,r))};const kn=function(e,t,i,n){var o=i.length,r=o,a=!n;if(null==e)return!r;for(e=Object(e);o--;){var s=i[o];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++o<r;){var l=(s=i[o])[0],c=e[l],u=s[1];if(a&&s[2]){if(void 0===c&&!(l in e))return!1}else{var g=new $t;if(n)var m=n(c,u,l,e,t,g);if(!(void 0===m?bn(u,c,3,n,g):m))return!1}}return!0};const vn=function(e){return e==e&&!at(e)};const wn=function(e){for(var t=$i(e),i=t.length;i--;){var n=t[i],o=e[n];t[i]=[n,o,vn(o)]}return t};const In=function(e,t){return function(i){return null!=i&&(i[e]===t&&(void 0!==t||e in Object(i)))}};const _n=function(e){var t=wn(e);return 1==t.length&&t[0][2]?In(t[0][0],t[0][1]):function(i){return i===e||kn(i,e,t)}};const yn=function(e){return"symbol"==typeof e||pi(e)&&"[object Symbol]"==rt(e)};var xn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Cn=/^\w*$/;const En=function(e,t){if(ai(e))return!1;var i=typeof e;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=e&&!yn(e))||(Cn.test(e)||!xn.test(e)||null!=t&&e in Object(t))};function An(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var i=function(){var n=arguments,o=t?t.apply(this,n):n[0],r=i.cache;if(r.has(o))return r.get(o);var a=e.apply(this,n);return i.cache=r.set(o,a)||r,a};return i.cache=new(An.Cache||Mt),i}An.Cache=Mt;const Sn=An;var Bn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tn=/\\(\\)?/g;const Vn=function(e){var t=Sn(e,(function(e){return 500===i.size&&i.clear(),e})),i=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Bn,(function(e,i,n,o){t.push(n?o.replace(Tn,"$1"):i||e)})),t}));var zn=Qe?Qe.prototype:void 0,Un=zn?zn.toString:void 0;const jn=function e(t){if("string"==typeof t)return t;if(ai(t))return ze(t,e)+"";if(yn(t))return Un?Un.call(t):"";var i=t+"";return"0"==i&&1/t==-1/0?"-0":i};const Rn=function(e){return null==e?"":jn(e)};const On=function(e,t){return ai(e)?e:En(e,t)?[e]:Vn(Rn(e))};const Pn=function(e){if("string"==typeof e||yn(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t};const Nn=function(e,t){for(var i=0,n=(t=On(t,e)).length;null!=e&&i<n;)e=e[Pn(t[i++])];return i&&i==n?e:void 0};const Fn=function(e,t,i){var n=null==e?void 0:Nn(e,t);return void 0===n?i:n};const Ln=function(e,t){return null!=e&&t in Object(e)};const Dn=function(e,t,i){for(var n=-1,o=(t=On(t,e)).length,r=!1;++n<o;){var a=Pn(t[n]);if(!(r=null!=e&&i(e,a)))break;e=e[a]}return r||++n!=o?r:!!(o=null==e?0:e.length)&&Ai(o)&&Ei(a,o)&&(ai(e)||vi(e))};const Mn=function(e,t){return null!=e&&Dn(e,t,Ln)};const Wn=function(e,t){return En(e)&&vn(t)?In(Pn(e),t):function(i){var n=Fn(i,e);return void 0===n&&n===t?Mn(i,e):bn(t,n,3)}};const qn=function(e){return e};const $n=function(e){return function(t){return null==t?void 0:t[e]}};const Hn=function(e){return function(t){return Nn(t,e)}};const Kn=function(e){return En(e)?$n(Pn(e)):Hn(e)};const Gn=function(e){return"function"==typeof e?e:null==e?qn:"object"==typeof e?ai(e)?Wn(e[0],e[1]):_n(e):Kn(e)};const Jn=function(e){return function(t,i,n){for(var o=-1,r=Object(t),a=n(t),s=a.length;s--;){var l=a[e?s:++o];if(!1===i(r[l],l,r))break}return t}}();const Qn=function(e,t){return function(i,n){if(null==i)return i;if(!qi(i))return e(i,n);for(var o=i.length,r=t?o:-1,a=Object(i);(t?r--:++r<o)&&!1!==n(a[r],r,a););return i}}((function(e,t){return e&&Jn(e,t,$i)}));const Xn=function(e,t){var i=-1,n=qi(e)?Array(e.length):[];return Qn(e,(function(e,o,r){n[++i]=t(e,o,r)})),n};const Yn=function(e,t){return(ai(e)?ze:Xn)(e,Gn(t,3))};class Zn 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 eo extends e.Plugin{static get requires(){return[h]}static get pluginName(){return"ImageResizeEditing"}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 Zn(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]})}_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 r=o.writer,a=o.mapper.toViewElement(n.item),s="imageInline"===e?i.findViewImgElement(a):a;null!==n.attributeNewValue?r.setStyle("height",n.attributeNewValue,s):r.removeStyle("height",s)})))),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>d(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>d(e)?null:e.getStyle("height")}})}}const to=(()=>({small:e.icons.objectSizeSmall,medium:e.icons.objectSizeMedium,large:e.icons.objectSizeLarge,custom:e.icons.objectSizeCustom,original:e.icons.objectSizeFull}))();class io extends e.Plugin{static get requires(){return[eo]}static get pluginName(){return"ImageResizeButtons"}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 r=new I.ButtonView(i),a=t.commands.get("resizeImage"),l=this._getOptionLabelValue(e,!0);if(!to[o])throw new s.CKEditorError("imageresizebuttons-missing-icon",t,e);if(r.set({label:l,icon:to[o],tooltip:l,isToggleable:!0}),r.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&no(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(r,"execute",(()=>{e._showForm(this._resizeUnit)}))}else{const e=n?n+this._resizeUnit:null;r.bind("isOn").to(a,"value",oo(e)),this.listenTo(r,"execute",(()=>{t.execute("resizeImage",{width:e})}))}return r}))}_registerImageResizeDropdown(e){const t=this.editor,i=t.t,n=e.find((e=>!e.value)),o=o=>{const r=t.commands.get("resizeImage"),a=(0,I.createDropdown)(o,I.DropdownButtonView),s=a.buttonView,l=i("Resize image");return s.set({tooltip:l,commandValue:n.value,icon:to.medium,isToggleable:!0,label:this._getOptionLabelValue(n),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),s.bind("label").to(r,"value",(e=>e&&e.width?e.width:this._getOptionLabelValue(n))),a.bind("isEnabled").to(this),(0,I.addListToDropdown)(a,(()=>this._getResizeDropdownListItemDefinitions(e,r)),{ariaLabel:i("Image resize list"),role:"menu"}),this.listenTo(a,"execute",(e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())})),a};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?no(e)?i("Custom image size"):e.value?i("Resize image to %0",e.value+this._resizeUnit):i("Resize image to the original size"):no(e)?i("Custom"):e.value?e.value+this._resizeUnit:i("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:i}=this,n=new s.Collection,o=e.map((e=>no(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null}));for(const e of o){let r=null;if(i.plugins.has("ImageCustomResizeUI")&&no(e)){const n=i.plugins.get("ImageCustomResizeUI");r={type:"button",model:new I.ViewModel({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};const a=Yn(o,"valueWithUnits");r.model.bind("isOn").to(t,"value",ro(a))}else r={type:"button",model:new I.ViewModel({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},r.model.bind("isOn").to(t,"value",oo(e.valueWithUnits));r.model.bind("isEnabled").to(t,"isEnabled"),n.add(r)}return n}}function no(e){return"custom"===e.value}function oo(e){return t=>null===e&&t===e||null!==t&&t.width===e}function ro(e){return t=>!e.some((e=>oo(e)(t)))}const ao="image_resized";class so extends e.Plugin{static get requires(){return[l.WidgetResize,h]}static get pluginName(){return"ImageResizeHandles"}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(j),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 r=e.editing.view.domConverter,a=r.domToView(o.target),s=i.getImageWidgetFromImageView(a);let c=this.editor.plugins.get(l.WidgetResize).getResizerByViewElement(s);if(c)return void c.redraw();const u=e.editing.mapper,g=u.toModelElement(s);c=e.plugins.get(l.WidgetResize).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:g,viewElement:s,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>r.mapViewToDom(u.toViewElement(g)),isCentered:()=>"alignCenter"==g.getAttribute("imageStyle"),onCommit(i){t.change((e=>{e.removeClass(ao,s)})),e.execute("resizeImage",{width:i})}}),c.on("updateSize",(()=>{s.hasClass(ao)||t.change((e=>{e.addClass(ao,s)}));const e="imageInline"===g.name?a:s;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),c.bind("isEnabled").to(this)}))}}function lo(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 co(e,t,i){return"px"===i?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function uo(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)}}var go=i(429),mo={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(go.A,mo);go.A.locals;class po extends I.View{constructor(t,i,n){super(t);const o=this.locale.t;this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,this.unit=i,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(o("Save"),e.icons.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(o("Cancel"),e.icons.cancel,"ck-button-cancel","cancel"),this._focusables=new I.ViewCollection,this._validators=n,this._focusCycler=new I.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),(0,I.submitHandler)({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(e,t,i,n){const o=new I.ButtonView(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o.extendTemplate({attributes:{class:i}}),n&&o.delegate("execute").to(this,n),o}_createLabeledInputView(){const e=this.locale.t,t=new I.LabeledFieldView(this.locale,I.createLabeledInputNumber);return t.label=e("Resize image (in %0)",this.unit),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}`}}class ho extends e.Plugin{static get requires(){return[I.ContextualBalloon]}static get pluginName(){return"ImageCustomResizeUI"}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,I.CssTransitionDisablerMixin)(po))(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)})),this._form.keystrokes.set("Esc",((e,t)=>{this._hideForm(!0),t()})),(0,I.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:B(t)});const n=function(e,t){const i=uo(e);if(!i)return null;const n=lo(i.model.getAttribute("resizedWidth")||null);return n?n.unit===t?n:co((0,l.calculateResizeHostAncestorWidth)(i.dom),{unit:"px",value:new s.Rect(i.dom).width},t):null}(t,e),o=n?n.value.toFixed(1):"",r=function(e,t){const i=uo(e);if(!i)return null;const n=(0,l.calculateResizeHostAncestorWidth)(i.dom),o=lo(window.getComputedStyle(i.dom).minWidth)||{value:1,unit:"px"};return{unit:t,lower:Math.max(.1,co(n,o,t).value),upper:"px"===t?n:100}}(t,e);i.fieldView.value=i.fieldView.element.value=o,r&&Object.assign(i.fieldView,{min:r.lower.toFixed(1),max:Math.ceil(r.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 fo=i(278),bo={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(fo.A,bo);fo.A.locals;class ko extends e.Plugin{static get requires(){return[eo,so,ho,io]}static get pluginName(){return"ImageResize"}}class vo extends e.Command{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:r=!0}=e;let a=n.getClosestSelectedImageElement(i.document.selection);o&&this.shouldConvertImageType(o,a)&&(this.editor.execute(n.isBlockImage(a)?"imageTypeInline":"imageTypeBlock",{setImageSizes:r}),a=n.getClosestSelectedImageElement(i.document.selection)),!o||this._styles.get(o).isDefault?t.removeAttribute("imageStyle",a):t.setAttribute("imageStyle",o,a),r&&n.setImageNaturalSizeAttributes(a)}))}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const wo={get inline(){return{name:"inline",title:"In line",icon:e.icons.objectInline,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:e.icons.objectLeft,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:e.icons.objectBlockLeft,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:e.icons.objectCenter,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:e.icons.objectRight,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:e.icons.objectBlockRight,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:e.icons.objectCenter,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:e.icons.objectRight,modelElements:["imageBlock"],className:"image-style-side"}}},Io=(()=>({full:e.icons.objectFullWidth,left:e.icons.objectBlockLeft,right:e.icons.objectBlockRight,center:e.icons.objectCenter,inlineLeft:e.icons.objectLeft,inlineRight:e.icons.objectRight,inline:e.icons.objectInline}))(),_o=[{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 yo(e){(0,s.logWarning)("image-style-configuration-definition-invalid",e)}const xo={normalizeStyles:function(e){return(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?wo[e]?{...wo[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}(wo[e.name],e);"string"==typeof e.icon&&(e.icon=Io[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 yo({style:e}),!1;{const o=[t?"imageBlock":null,i?"imageInline":null];if(!n.some((e=>o.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")?[..._o]:[]},warnInvalidStyle:yo,DEFAULT_OPTIONS:wo,DEFAULT_ICONS:Io,DEFAULT_DROPDOWN_DEFINITIONS:_o};function Co(e,t){for(const i of t)if(i.name===e)return i}class Eo extends e.Plugin{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[h]}init(){const{normalizeStyles:e,getDefaultStylesConfiguration:t}=xo,i=this.editor,n=i.plugins.has("ImageBlockEditing"),o=i.plugins.has("ImageInlineEditing");i.config.define("image.styles",t(n,o)),this.normalizedStyles=e({configuredStyles:i.config.get("image.styles"),isBlockPluginLoaded:n,isInlinePluginLoaded:o}),this._setupConversion(n,o),this._setupPostFixer(),i.commands.add("imageStyle",new vo(i,this.normalizedStyles))}_setupConversion(e,t){const i=this.editor,n=i.model.schema,o=(r=this.normalizedStyles,(e,t,i)=>{if(!i.consumable.consume(t.item,e.name))return;const n=Co(t.attributeNewValue,r),o=Co(t.attributeOldValue,r),a=i.mapper.toViewElement(t.item),s=i.writer;o&&s.removeClass(o.className,a),n&&s.addClass(n.className,a)});var r;const a=function(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,r=(0,s.first)(i.modelRange.getItems());if(r&&n.schema.checkAttribute(r,"imageStyle"))for(const e of t[r.name])n.consumable.consume(o,{classes:e.className})&&n.writer.setAttribute("imageStyle",e.name,r)}}(this.normalizedStyles);i.editing.downcastDispatcher.on("attribute:imageStyle",o),i.data.downcastDispatcher.on("attribute:imageStyle",o),e&&(n.extend("imageBlock",{allowAttributes:"imageStyle"}),i.data.upcastDispatcher.on("element:figure",a,{priority:"low"})),t&&(n.extend("imageInline",{allowAttributes:"imageStyle"}),i.data.upcastDispatcher.on("element:img",a,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,i=e.plugins.get(h),n=new Map(this.normalizedStyles.map((e=>[e.name,e])));t.registerPostFixer((e=>{let o=!1;for(const r of t.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let t="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!i.isImage(t))continue;const a=t.getAttribute("imageStyle");if(!a)continue;const s=n.get(a);s&&s.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),o=!0)}return o}))}}var Ao=i(895),So={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};y()(Ao.A,So);Ao.A.locals;class Bo extends e.Plugin{static get requires(){return[Eo]}static get pluginName(){return"ImageStyleUI"}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=To(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of i)this._createButton(e);const n=To([...t.filter(at),...xo.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:r,items:a,title:s}=e,l=a.filter((e=>t.find((({name:t})=>Vo(t)===e)))).map((e=>{const t=i.create(e);return e===r&&(o=t),t}));a.length!==l.length&&xo.warnInvalidStyle({dropdown:e});const c=(0,I.createDropdown)(n,I.SplitButtonView),u=c.buttonView,g=u.arrowView;return(0,I.addToolbarToDropdown)(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),u.set({label:zo(s,o.label),class:null,tooltip:!0}),g.unbind("label"),g.set({label:s}),u.bind("icon").toMany(l,"isOn",((...e)=>{const t=e.findIndex(qn);return t<0?o.icon:l[t].icon})),u.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(qn);return zo(s,t<0?o.label:l[t].label)})),u.bind("isOn").toMany(l,"isOn",((...e)=>e.some(qn))),u.bind("class").toMany(l,"isOn",((...e)=>e.some(qn)?"ck-splitbutton_flatten":void 0)),u.on("execute",(()=>{l.some((({isOn:e})=>e))?c.isOpen=!c.isOpen:o.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...e)=>e.some(qn))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(Vo(t),(i=>{const n=this.editor.commands.get("imageStyle"),o=new I.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 To(e,t){for(const i of e)t[i.title]&&(i.title=t[i.title]);return e}function Vo(e){return`imageStyle:${e}`}function zo(e,t){return(e?e+": ":"")+t}class Uo extends e.Plugin{static get requires(){return[Eo,Bo]}static get pluginName(){return"ImageStyle"}}class jo extends e.Plugin{static get requires(){return[l.WidgetToolbarRepository,h]}static get pluginName(){return"ImageToolbar"}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=>at(e)?e.name:e))),getRelatedElement:e=>n.getClosestSelectedImageWidget(e)})}}class Ro extends e.Plugin{static get requires(){return[P,h]}static get pluginName(){return"PictureEditing"}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(function(e){const t=["srcset","media","type","sizes"],i=(i,n,o)=>{const r=n.viewItem;if(!o.consumable.test(r,{name:!0}))return;const a=new Map;for(const e of r.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&&a.set(e,i)}const l=e.findViewImgElement(r);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,s.first)(e.modelRange.getItems())}o.consumable.consume(r,{name:!0});for(const[e,t]of a)o.consumable.consume(e,{attributes:Object.keys(t)});a.size&&o.writer.setAttribute("sources",Array.from(a.values()),c),o.convertChildren(r,c)};return e=>{e.on("element:picture",i)}}(i)),t.for("downcast").add(function(e){const t=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const o=n.writer,r=n.mapper.toViewElement(i.item),a=e.findViewImgElement(r),s=i.attributeNewValue;if(s&&s.length){const e=o.createContainerElement("picture",null,s.map((e=>o.createEmptyElement("source",e)))),t=[];let i=a.parent;for(;i&&i.is("attributeElement");){const e=i.parent;o.unwrap(o.createRangeOn(a),i),t.unshift(i),i=e}o.insert(o.createPositionBefore(a),e),o.move(o.createRangeOn(a),o.createPositionAt(e,"end"));for(const i of t)o.wrap(o.createRangeOn(e),i)}else if(a.parent.is("element","picture")){const e=a.parent;o.move(o.createRangeOn(a),o.createPositionBefore(e)),o.remove(e)}};return e=>{e.on("attribute:sources:imageBlock",t),e.on("attribute:sources:imageInline",t)}}(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})();