PageSourceSearch

https://www.jobsgopublic.com/_next/static/chunks/a08f5dc9.fab84bac070eee10.js

js jobsgopublic.com collected 2026-10-02 06:17:57 UTC 75,017 bytes, 2 lines download raw bytes

1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f6dad5c4-91a8-4f35-9977-d4f8f47bde44",e._sentryDebugIdIdentifier="sentry-dbid-f6dad5c4-91a8-4f35-9977-d4f8f47bde44")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3869],{10890:(e,t,i)=>{i.d(t,{$X:()=>w,BR:()=>eb,CR:()=>e$,DV:()=>R,Dq:()=>J,EV:()=>S,FR:()=>A,FU:()=>eQ,Gn:()=>$,H0:()=>ek,H_:()=>Y,Hg:()=>y,IK:()=>W,Il:()=>eL,Jr:()=>eU,ME:()=>P,ND:()=>ey,Ni:()=>G,OI:()=>eD,R6:()=>N,RK:()=>K,T3:()=>B,U1:()=>eF,UD:()=>eM,Uz:()=>e_,V9:()=>eR,VR:()=>_,WG:()=>x,Wx:()=>el,XC:()=>e0,Xb:()=>ee,Xg:()=>f,YX:()=>et,Yk:()=>ev,_V:()=>Z,_X:()=>ea,b7:()=>eq,bG:()=>eH,bs:()=>eZ,cN:()=>O,d6:()=>eK,e5:()=>eE,f1:()=>b,fT:()=>eV,g5:()=>D,g_:()=>ew,hz:()=>eT,j5:()=>eo,jB:()=>V,jP:()=>eJ,kW:()=>ei,o7:()=>F,oM:()=>ep,pv:()=>I,qI:()=>en,rO:()=>q,sC:()=>ez,sK:()=>U,sl:()=>eI,t7:()=>eA,ts:()=>ef,tv:()=>ej,tw:()=>T,uL:()=>eN,uN:()=>M,uX:()=>eP,vR:()=>X,v_:()=>eO,vf:()=>Q,vy:()=>es,wG:()=>L,xb:()=>H,xe:()=>j,ym:()=>eu,yw:()=>z,zT:()=>v});var n=i(72494),s=i(2032),a=i(53509),l=i(7097),r=i(10742),o=i(18430),u=i(68019),m=i(7717),g=i(33719),c=i(84435),d=i(53097),h=i(37202),p=i(87047);function f(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}function I(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function b(e,t){let i=e.plugins.get("ImageUtils"),n=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>i.isInlineImageView(e)?n&&("block"==e.getStyle("display")||e.findAncestor(i.isBlockImageView)?"imageBlock":"imageInline")!==t?null:s(e):null;function s(e){let t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function w(e,t){let i=(0,o.$1)(t.getSelectedBlocks());return!i||e.isObject(i)||i.isEmpty&&"listItem"!=i.name?"imageBlock":"imageInline"}function _(e){return e&&e.endsWith("px")?parseInt(e):null}function v(e){let t=_(e.getStyle("width")),i=_(e.getStyle("height"));return!!(t&&i)}let k=/^(image|image-inline)$/;class y extends n.k_{_domEmitter=new((0,o.c5)());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,i=null,n={}){let s=this.editor,a=s.model,l=a.document.selection,r=E(s,t||l,i);for(let t in e={...Object.fromEntries(l.getAttributes()),...e})a.schema.checkAttribute(r,t)||delete e[t];return a.change(i=>{let{setImageSizes:s=!0}=n,l=i.createElement(r,e);return(a.insertObject(l,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==r?void 0:"auto"}),l.parent)?(s&&this.setImageNaturalSizeAttributes(l),l):null})}setImageNaturalSizeAttributes(e){let t=e.getAttribute("src");!t||e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change(i=>{let n=new o.Sf.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){let t=e.getFirstPosition();if(!t)return null;let 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){let t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:k})}isImageAllowed(){let e=this.editor.model.document.selection;return function(e,t){if("imageBlock"==E(e,t,null)){var i,n;let s,a=(i=t,n=e.model,(s=(0,u.iB)(i,n).start.parent).isEmpty&&!s.is("element","$root")?s.parent:s);if(e.model.schema.checkChild(a,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&[...e.focus.getAncestors()].every(e=>!e.is("element","imageBlock"))}toImageWidget(e,t,i){t.setCustomProperty("image",!0,e);let n=()=>{let t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${i}`:i};return(0,u.Ex)(e,t,{label:n})}isImageWidget(e){return!!e.getCustomProperty("image")&&(0,u.p4)(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;for(let{item:t}of this.editor.editing.view.createRangeIn(e))if(this.isInlineImageView(t))return t}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function E(e,t,i){let n=e.model.schema,s=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?i||("inline"===s?"imageInline":"auto"!==s?"imageBlock":t.is("selection")?w(n,t):n.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}let C=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 A extends n.k_{static get requires(){return[s.B0,y,l.Vn,r.ep]}static get pluginName(){return"AutoImage"}static get isOfficialPlugin(){return!0}_timeoutId;_positionToInsert;constructor(e){super(e),this._timeoutId=null,this._positionToInsert=null}init(){let e=this.editor,t=e.model.document,i=e.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",()=>{let e=t.selection.getFirstRange(),i=a.LwR.fromPosition(e.start);i.stickiness="toPrevious";let n=a.LwR.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&&(o.Sf.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)},{priority:"high"})}_embedImageBetweenPositions(e,t){let i=this.editor,n=new a.JkJ(e,t),s=n.getWalker({ignoreElementEnd:!0}),l=Object.fromEntries(i.model.document.selection.getAttributes()),r=this.editor.plugins.get("ImageUtils"),o="";for(let e of s)e.item.is("$textProxy")&&(o+=e.item.data);(o=o.trim()).match(C)?(this._positionToInsert=a.LwR.fromPosition(e),this._timeoutId=setTimeout(()=>{i.commands.get("insertImage").isEnabled?(i.model.change(e=>{let t;this._timeoutId=null,e.remove(n),n.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(t=this._positionToInsert.toPosition()),r.insertImage({...l,src:o},t),this._positionToInsert.detach(),this._positionToInsert=null}),i.plugins.get("Delete").requestUndoOnBackspace()):n.detach()},100)):n.detach()}}class B extends n.uB{refresh(){let 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){let t=this.editor,i=t.plugins.get("ImageUtils"),n=t.model,s=i.getClosestSelectedImageElement(n.document.selection);n.change(t=>
1{t.setAttribute("alt",e.newValue,s)})}}class S extends n.k_{static get requires(){return[y]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new B(this.editor))}}class x extends m.Ss{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new o.$x,this.keystrokes=new o.EP,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new m.Q9(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new m.s3,this.keystrokes.set("Esc",(e,t)=>{this.fire("cancel"),t()}),this._focusCycler=new m.H({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),(0,m.Z5)({view:this}),[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){let e=this.locale.t,t=new m._(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:g.saM,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){let e=this.locale.t,t=new m._(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){let e=this.locale.t,t=new m.Dy(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){let e=this.locale.t,t=new m.xE(this.locale,m.Vr);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function V(e){let t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){let i=T(e);t.updatePosition(i)}}function T(e){let t=e.editing.view,i=m.Jr.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 U extends n.k_{_balloon;_form;static get requires(){return[m.pU]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){let e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",i=>{let n=e.commands.get("imageTextAlternative"),s=new m._(i);return s.set({label:t("Change image text alternative"),icon:g.s2I,tooltip:!0}),s.bind("isEnabled").to(n,"isEnabled"),s.bind("isOn").to(n,"value",e=>!!e),this.listenTo(s,"execute",()=>{this._showForm()}),s})}_createForm(){let e=this.editor,t=e.editing.view.document,i=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new((0,m.wi)(x))(e.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this.listenTo(e.ui,"update",()=>{i.getClosestSelectedImageWidget(t.selection)?this._isVisible&&V(e):this._hideForm(!0)}),(0,m.wy)({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();let e=this.editor,t=e.commands.get("imageTextAlternative"),i=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:T(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 z extends n.k_{static get requires(){return[S,U]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function N(e){let t=(t,i,n)=>{if(!n.consumable.test(i.viewItem,{name:!0,classes:"image"}))return;let s=e.findViewImgElement(i.viewItem);if(!s||!n.consumable.test(s,{name:!0}))return;n.consumable.consume(i.viewItem,{name:!0,classes:"image"});let a=n.convertItem(s,i.modelCursor),l=(0,o.$1)(a.modelRange.getItems());l?(n.convertChildren(i.viewItem,l),n.updateConversionResult(l,i)):n.
1consumable.revert(i.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}function R(e){let t=["srcset","media","type","sizes"],i=(i,n,s)=>{let a=n.viewItem;if(!s.consumable.test(a,{name:!0}))return;let l=new Map;for(let e of a.getChildren())if(e.is("element","source")){let i={};for(let n of t)e.hasAttribute(n)&&s.consumable.test(e,{attributes:n})&&(i[n]=e.getAttribute(n));Object.keys(i).length&&l.set(e,i)}let r=e.findViewImgElement(a);if(!r)return;let u=n.modelCursor.parent;if(!u.is("element","imageBlock")){let e=s.convertItem(r,n.modelCursor);n.modelRange=e.modelRange,n.modelCursor=e.modelCursor,u=(0,o.$1)(e.modelRange.getItems())}for(let[e,t]of(s.consumable.consume(a,{name:!0}),l))s.consumable.consume(e,{attributes:Object.keys(t)});l.size&&s.writer.setAttribute("sources",Array.from(l.values()),u),s.convertChildren(a,u)};return e=>{e.on("element:picture",i)}}function F(e,t){let i=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;let s=n.writer,a=n.mapper.toViewElement(i.item),l=e.findViewImgElement(a);null===i.attributeNewValue?(s.removeAttribute("srcset",l),s.removeAttribute("sizes",l)):i.attributeNewValue&&(s.setAttribute("srcset",i.attributeNewValue,l),s.setAttribute("sizes","100vw",l))};return e=>{e.on(`attribute:srcset:${t}`,i)}}function O(e){let t=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;let s=n.writer,a=n.mapper.toViewElement(i.item),l=e.findViewImgElement(a),r=i.attributeNewValue;if(r&&r.length){let e=[],t=l.parent;for(;t&&t.is("attributeElement");){let i=t.parent;s.unwrap(s.createRangeOn(l),t),e.unshift(t),t=i}let i=l.parent.is("element","picture"),n=i?l.parent:s.createContainerElement("picture",null);for(let t of(i||s.insert(s.createPositionBefore(l),n),s.remove(s.createRangeIn(n)),s.insert(s.createPositionAt(n,"end"),r.map(e=>s.createEmptyElement("source",e))),s.move(s.createRangeOn(l),s.createPositionAt(n,"end")),e))s.wrap(s.createRangeOn(n),t)}else if(l.parent.is("element","picture")){let e=l.parent;s.move(s.createRangeOn(l),s.createPositionBefore(e)),s.remove(e)}};return e=>{e.on("attribute:sources:imageBlock",t),e.on("attribute:sources:imageInline",t)}}function P(e,t,i){let n=(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;let s=n.writer,a=n.mapper.toViewElement(i.item),l=e.findViewImgElement(a);s.setAttribute(i.attributeKey,i.attributeNewValue||"",l)};return e=>{e.on(`attribute:${i}:${t}`,n)}}class D extends a.nun{observe(e){this.listenTo(e,"load",(e,t)=>{let 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 L extends n.uB{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"!==t||(0,o.FF)("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"!==t||(0,o.FF)("image-inline-plugin-required")}refresh(){let e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){let t=(0,o.$r)(e.source),i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),s=Object.fromEntries(i.getAttributes());t.forEach((t,a)=>{let l=i.getSelectedElement();if("string"==typeof t&&(t={src:t}),a&&l&&n.isImage(l)){let i=this.editor.model.createPositionAfter(l);n.insertImage({...t,...s},i,e.imageType)}else e.breakBlock?n.insertImage({...t,...s},i.getFirstPosition(),e.imageType):n.insertImage({...t,...s},null,e.imageType)})}}class M extends n.uB{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){let 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){let 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 $ extends n.k_{static get requires(){return[y]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){let e=this.editor,t=e.conversion;e.editing.view.addObserver(D),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});let i=new L(e),n=new M(e);e.commands.add("insertImage",i),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",i)}}class W extends n.k_{static get requires(){return[y]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){let e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){let t=this.editor,i=t.plugins.get("ImageUtils"),n="imageBlock"===e?"figure":"img";function s(t,n,a,l,r=!1){t.on(`attribute:${n}:${e}`,(t,n,s)=>{if(!s.consumable.consume(n.item,t.name))return;let o=s.writer,u=s.mapper.toViewElement(n.item),m=i.findViewImgElement(u);null!==n.attributeNewValue?o.setAttribute(a,n.attributeNewValue,m):o.removeAttribute(a,m);let g=n.item.getAttribute("width"),c=n.item.getAttribute("height"),d=g&&c;if(d&&r&&o.setAttribute("loading","lazy",m),n.item.hasAttribute("sources"))return;let h=n.item.hasAttribute("resizedWidth");("imageInline"!==e||h||l)&&d&&o.setStyle("aspect-ratio",`${g}/${c}`,m)})}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>v(e)?_(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>v(e)?_(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add(e=>{s(e,"width","width",!0,!0),s(e,"height","height",!0,!0)}),t.conversion.for("dataDowncast").add(e=>{s(e,"width","width",!1),s(e,"height","height",!1)}),t.conversion.for("upcast").add(e=>{e.on("element:img",(e,t,i)=>{let n=t.viewItem.getAttribute("width"),s=t.viewItem.getAttribute("height");n&&s&&i.consumable.consume(t.viewItem,{styles:["aspect-ratio"]})})})}}class q extends n.uB{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){let 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={}){let t=this.editor,i=this.editor.model,n=t.plugins.get("ImageUtils"),s=n.getClosestSelectedImageElement(i.document.selection),a=Object.fromEntries(s.getAttributes());return a.src||a.uploadId?i.change(t=>{let{setImageSizes:l=!0}=e,r=Array.from(i.markers).filter(e=>e.getRange().containsItem(s)),o=n.insertImage(a,i.createSelection(s,"on"),this._modelElementName,{setImageSizes:l});if(!o)return null;let u=t.createRangeOn(o);for(let e of r){let i=e.getRange(),n="$graveyard"!=i.root.rootName?i.getJoined(u,!0):u;t.updateMarker(e,{range:n})}return{oldElement:s,newElement:o}}):null}}class H extends n.k_{static get requires(){return[y]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){let e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){let 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)||!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;n.consumable.consume(t.item,e.name);let s=n.writer,a=n.mapper.toViewElement(t.item),l=i.findViewImgElement(a);t.attributeNewValue?(s.addClass("image_placeholder",l),s.setStyle("background-image",`url(${t.attributeNewValue})`,l),s.setCustomProperty("editingPipeline:doNotReuseOnce",!0,l)):(s.removeClass("image_placeholder",l),s.removeStyle("background-image",l))})})}_setupLoadListener(){let e=this.editor,t=e.model,i=e.editing,n=i.view,s=e.plugins.get("ImageUtils");n.addObserver(D),this.listenTo(n.document,"imageLoaded",(e,a)=>{let l=n.domConverter.mapDomToView(a.target);if(!l)return;let r=s.getImageWidgetFromImageView(l);if(!r)return;let o=i.mapper.toModelElement(r);o&&o.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},e=>{e.removeAttribute("placeholder",o)})})}}class j extends n.k_{static get requires(){return[$,W,y,H,s.xz]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){let e=this.editor;
1e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new q(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){let e=this.editor,t=e.t,i=e.conversion,n=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>I(t)}),i.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:i})=>n.toImageWidget(I(i),i,t("image widget"))}),i.for("downcast").add(P(n,"imageBlock","src")).add(P(n,"imageBlock","alt")).add(F(n,"imageBlock")),i.for("upcast").elementToElement({view:b(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(N(n))}_setupClipboardIntegration(){let e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline");this.listenTo(s,"inputTransformation",(s,l)=>{let r,o=Array.from(l.content.getChildren());if(!o.every(n.isInlineImageView))return;r=l.targetRanges?e.editing.mapper.toModelRange(l.targetRanges[0]):t.document.selection.getFirstRange();let u=t.createSelection(r);if("imageBlock"===w(t.schema,u)){let e=new a.HZz(i.document),t=o.map(t=>e.createElement("figure",{class:"image"},t));l.content=e.createDocumentFragment(t)}}),this.listenTo(s,"contentInsertion",(e,i)=>{"paste"===i.method&&t.change(e=>{for(let t of e.createRangeIn(i.content).getItems())t.is("element","imageBlock")&&n.setImageNaturalSizeAttributes(t)})})}}class G extends m.Ss{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){for(const i of(super(e),this.focusTracker=new o.$x,this.keystrokes=new o.EP,this._focusables=new m.s3,this.children=this.createCollection(),this._focusCycler=new m.H({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),t))this.children.add(i),this._focusables.add(i),i instanceof m.Kn&&this._focusables.addMany(i.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){for(let e of(super.render(),(0,m.Z5)({view:this}),this._focusables))this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);let 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 n.k_{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[y]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){let 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())});let n=e=>this._createToolbarComponent(e),s=e=>this._createMenuBarComponent(e);e.ui.componentFactory.add("insertImage",n),e.ui.componentFactory.add("imageInsert",n),e.ui.componentFactory.add("menuBar:insertImage",s)}registerIntegration({name:e,observable:t,buttonViewCreator:i,formViewCreator:n,menuBarButtonViewCreator:s,requiresForm:a=!1,override:l=!1}){this._integrations.has(e)&&!l&&(0,o.FF)("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:i,menuBarButtonViewCreator:s,formViewCreator:n,requiresForm:a})}_createToolbarComponent(e){let t,i=this.editor,n=e.t,s=this._prepareIntegrations();if(!s.length)return null;let a=s[0];if(1==s.length){if(!a.requiresForm)return a.buttonViewCreator(!0);t=a.buttonViewCreator(!0)}else{let i=a.buttonViewCreator(!1);(t=new m.AO(e,i)).tooltip=!0,t.bind("label").to(this,"isImageSelected",e=>e?n("Replace image"):n("Insert image"))}let l=this.dropdownView=(0,m.yu)(e,t),r=s.map(({observable:e})=>"function"==typeof e?e():e);return l.bind("isEnabled").toMany(r,"isEnabled",(...e)=>e.some(e=>e)),l.once("change:isOpen",()=>{let e=s.flatMap(({formViewCreator:e})=>e(1==s.length)),t=new G(i.locale,e);l.panelView.children.add(t)}),l}_createMenuBarComponent(e){let t=e.t,i=this._prepareIntegrations();if(!i.length)return null;let n=i.flatMap(({menuBarButtonViewCreator:e})=>e(1==i.length)),s=new m.zj(e),a=new m.BY(e);for(let i of(s.panelView.children.add(a),s.buttonView.set({icon:g.dwH,label:t("Image")}),n)){let t=new m.I8(e,s);t.children.add(i),a.items.add(t),i.delegate("execute").to(s)}return s}_prepareIntegrations(){let e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return(0,o.FF)("image-insert-integrations-not-specified"),t;for(let i of e){if(!this._integrations.has(i)){["upload","assetManager","url"].includes(i)||(0,o.FF)("image-insert-unknown-integration",{item:i});continue}t.push(this._integrations.get(i))}return t.length||(0,o.FF)("image-insert-integrations-not-registered"),t}}class J extends n.k_{static get requires(){return[j,u.x0,z,K]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class X extends n.k_{static get requires(){return[$,W,y,H,s.xz]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){let e=this.editor;
1e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new q(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){let 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(f(i),i,t("image widget"))}),i.for("downcast").add(P(n,"imageInline","src")).add(P(n,"imageInline","alt")).add(F(n,"imageInline")),i.for("upcast").elementToElement({view:b(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){let e=this.editor,t=e.model,i=e.editing.view,n=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline");this.listenTo(s,"inputTransformation",(s,l)=>{let r,o=Array.from(l.content.getChildren());if(!o.every(n.isBlockImageView))return;r=l.targetRanges?e.editing.mapper.toModelRange(l.targetRanges[0]):t.document.selection.getFirstRange();let u=t.createSelection(r);if("imageInline"===w(t.schema,u)){let e=new a.HZz(i.document),t=o.map(t=>1===t.childCount?(Array.from(t.getAttributes()).forEach(i=>e.setAttribute(...i,n.findViewImgElement(t))),t.getChild(0)):t);l.content=e.createDocumentFragment(t)}}),this.listenTo(s,"contentInsertion",(e,i)=>{"paste"===i.method&&t.change(e=>{for(let t of e.createRangeIn(i.content).getItems())t.is("element","imageInline")&&n.setImageNaturalSizeAttributes(t)})})}}class Y extends n.k_{static get requires(){return[X,u.x0,z,K]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class Z extends n.k_{static get requires(){return[J,Y]}static get pluginName(){return"Image"}static get isOfficialPlugin(){return!0}}class Q extends n.k_{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[y]}getCaptionFromImageModelElement(e){for(let t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){let t=this.editor.plugins.get("ImageUtils"),i=e.getFirstPosition().findAncestor("caption");return i&&t.isBlockImage(i.parent)?i:null}matchImageCaptionViewElement(e){let t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class ee extends n.uB{refresh(){let e=this.editor,t=e.plugins.get("ImageCaptionUtils"),i=e.plugins.get("ImageUtils");if(!e.plugins.has(j)){this.isEnabled=!1,this.value=!1;return}let n=e.model.document.selection,s=n.getSelectedElement();if(!s){let e=t.getCaptionFromModelSelection(n);this.isEnabled=!!e,this.value=!!e;return}this.isEnabled=i.isImage(s),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(s):this.value=!1}execute(e={}){let{focusCaptionOnShow:t}=e;this.editor.model.change(e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)})}_showImageCaption(e,t){let i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageCaptionEditing"),s=this.editor.plugins.get("ImageUtils"),a=i.getSelectedElement(),l=n._getSavedCaption(a);s.isInlineImage(a)&&(this.editor.execute("imageTypeBlock"),a=i.getSelectedElement());let r=l||e.createElement("caption");e.append(r,a),t&&e.setSelection(r,"in")}_hideImageCaption(e){let t,i=this.editor,n=i.model.document.selection,s=i.plugins.get("ImageCaptionEditing"),a=i.plugins.get("ImageCaptionUtils"),l=n.getSelectedElement();l?t=a.getCaptionFromImageModelElement(l):l=(t=a.getCaptionFromModelSelection(n)).parent,s._saveCaption(l,t),e.setSelection(l,"on"),e.remove(t)}}class et extends n.k_{static get requires(){return[y,Q]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){let 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 ee(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){let e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils"),s=e.t;e.conversion.for("upcast").elementToElement({view:e=>n.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer
1: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;let l=n.createEditableElement("figcaption");n.setCustomProperty("imageCaption",!0,l),l.placeholder=s("Enter image caption"),(0,a.M5m)({view:t,element:l,keepOnFocus:!0});let r=e.parent.getAttribute("alt"),o=r?s("Caption for image: %0",[r]):s("Caption for the image");return(0,u.YN)(l,n,{label:o})}})}_setupImageTypeCommandsIntegration(){let e=this.editor,t=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),n=e.commands.get("imageTypeInline"),s=e.commands.get("imageTypeBlock"),a=e=>{if(!e.return)return;let{oldElement:n,newElement:s}=e.return;if(!n)return;if(t.isBlockImage(n)){let e=i.getCaptionFromImageModelElement(n);if(e)return void this._saveCaption(s,e)}let a=this._getSavedCaption(n);a&&this._saveCaption(s,a)};n&&this.listenTo(n,"execute",a,{priority:"low"}),s&&this.listenTo(s,"execute",a,{priority:"low"})}_getSavedCaption(e){let t=this._savedCaptionsMap.get(e);return t?a.WXz.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){let e=this.editor,t=e.model,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",()=>{for(let s of t.document.differ.getChanges()){if("alt"!==s.attributeKey)continue;let t=s.range.start.nodeAfter;if(i.isBlockImage(t)){let i=n.getCaptionFromImageModelElement(t);if(!i)return;e.editing.reconvertItem(i)}}})}}class ei extends n.k_{static get requires(){return[Q]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){let e=this.editor,t=e.editing.view,i=e.plugins.get("ImageCaptionUtils"),n=e.t;e.ui.componentFactory.add("toggleImageCaption",s=>{let a=e.commands.get("toggleImageCaption"),l=new m._(s);return l.set({icon:g.UKq,tooltip:!0,isToggleable:!0}),l.bind("isOn","isEnabled").to(a,"value","isEnabled"),l.bind("label").to(a,"value",e=>e?n("Toggle caption off"):n("Toggle caption on")),this.listenTo(l,"execute",()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});let n=i.getCaptionFromModelSelection(e.model.document.selection);if(n){let i=e.editing.mapper.toViewElement(n);t.scrollToTheSelection(),t.change(e=>{e.addClass("image__caption_highlighted",i)})}e.editing.view.focus()}),l})}}class en extends n.k_{static get requires(){return[et,ei]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}}function es(e){let t=e.map(e=>e.replace("+","\\+"));return RegExp(`^image\\/(${t.join("|")})$`)}function ea(e){return new Promise((t,i)=>{let n=e.getAttribute("src");fetch(n).then(e=>e.blob()).then(e=>{let i=er(e,n),s=i.replace("image/","");t(new File([e],`image.${s}`,{type:i}))}).catch(e=>{var s,a;return e&&"TypeError"===e.name?(a=s=n,new Promise((e,t)=>{let i=o.Sf.document.createElement("img");i.addEventListener("load",()=>{let n=o.Sf.document.createElement("canvas");n.width=i.width,n.height=i.height,n.getContext("2d").drawImage(i,0,0),n.toBlob(i=>i?e(i):t())}),i.addEventListener("error",()=>t()),i.src=a})).then(e=>{let t=er(e,s),i=t.replace("image/","");return new File([e],`image.${i}`,{type:t})}).then(t).catch(i):i(e)})})}function el(e,t){return!!e.isInlineImageView(t)&&!!t.getAttribute("src")&&(!!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)||!!t.getAttribute("src").match(/^blob:/g))}function er(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class eo extends n.k_{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){let e=this.editor;e.ui.componentFactory.add("uploadImage",()=>this._createToolbarButton()),e.ui.componentFactory.add("imageUpload",()=>this._createToolbarButton()),e.ui.componentFactory.add("menuBar:uploadImage",()=>this._createMenuBarButton("standalone")),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){let t=this.editor,i=t.locale,n=t.commands.get("uploadImage"),s=t.config.get("image.upload.types"),a=es(s),l=new e(t.locale),r=i.t;return l.set({acceptedType:s.map(e=>`image/${e}`).join(","),allowMultipleFiles:!0,label:r("Upload from computer"),icon:g.umz}),l.bind("isEnabled").to(n),l.on("done",(e,i)=>{let n=Array.from(i).filter(e=>a.test(e.type));n.length&&(t.execute("uploadImage",{file:n}),t.editing.view.focus())}),l}_createToolbarButton(){let e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this.editor.commands.get("uploadImage"),n=this._createButton(m.eF);return n.tooltip=!0,n.bind("label").to(t,"isImageSelected",i,"isAccessAllowed",(t,i)=>i?t?e("Replace image from computer"):e("Upload image from computer"):e("You have no image upload permissions.")),n}_createDropdownButton(){let e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this._createButton(m.eF);return i.withText=!0,i.bind("label").to(t,"isImageSelected",t=>t?e("Replace from computer"):e("Upload from computer")),i.on("execute",()=>{t.dropdownView.isOpen=!1}),i}_createMenuBarButton(e){let t=this.editor.locale.t,i=this._createButton(m.GG);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}}class eu extends n.k_{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){let e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,i)=>{var n,s,a,l,r,o,u,m,g;let d,h=this.editor,p=t.item,f=p.getAttribute("uploadId");if(!i.consumable.consume(t.item,e.name))return;let I=h.plugins.get("ImageUtils"),b=h.plugins.get(c.xn),w=f?t.attributeNewValue:null,_=this.placeholder,v=h.editing.mapper.toViewElement(p),k=i.writer;if("reading"==w){em(v,k),eg(I,_,v,k);return}if("uploading"==w){let e,t,i=b.loaders.get(f);em(v,k),i?(ec(v,k),n=v,s=k,a=i,l=h.editing.view,t=(e=(r=s).createUIElement("div",{class:"ck-progress-bar"}),r.setCustomProperty("progressBar",!0,e),e),s.insert(s.createPositionAt(n,"end"),t),a.on("change:uploadedPercent",(e,i,n)=>{l.change(e=>{e.setStyle("width",n+"%",t)})}),function(e,t,i,n){if(n.data){let s=e.findViewImgElement(t);i.setAttribute("src",n.data,s)}}(I,v,k,i)):eg(I,_,v,k);return}"complete"==w&&b.loaders.get(f)&&(o=v,u=k,m=h.editing.view,d=u.createUIElement("div",{class:"ck-image-upload-complete-icon"}),u.insert(u.createPositionAt(o,"end"),d),setTimeout(()=>{m.change(e=>e.remove(e.createRangeOn(d)))},3e3)),eh(v,k,"progressBar"),ec(v,k),g=v,k.removeClass("ck-appear",g)}}function em(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function eg(e,t,i,n){var s;let a;i.hasClass("ck-image-upload-placeholder")||n.addClass("ck-image-upload-placeholder",i);let l=e.findViewImgElement(i);l.getAttribute("src")!==t&&n.setAttribute("src",t,l),ed(i,"placeholder")||n.insert(n.createPositionAfter(l),(a=(s=n).createUIElement("div",{class:"ck-upload-placeholder-loader"}),s.setCustomProperty("placeholder",!0,a),a))}function ec(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),eh(e,t,"placeholder")}function ed(e,t){for(let i of e.getChildren())if(i.getCustomProperty(t))return i}function eh(e,t,i){let n=ed(e,i);n&&t.remove(t.createRangeOn(n))}class ep extends n.uB{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){let e=this.editor,t=e.plugins.get("ImageUtils"),i=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(i)}execute(e){let t=(0,o.$r)(e.file),i=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),s=Object.fromEntries(i.getAttributes());t.forEach((e,t)=>{let a=i.getSelectedElement();if(t&&a&&n.isImage(a)){let t=this.editor.model.createPositionAfter(a);this._uploadImage(e,s,t)}else this._uploadImage(e,s)})}_uploadImage(e,t,i){let n=this.editor,s=n.plugins.get(c.xn).createLoader(e),a=n.plugins.get("ImageUtils");s&&a.insertImage({...t,uploadId:s.id},i)}}class ef extends n.k_{static get requires(){return[c.xn,m.lV,s.xz,y]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){let e=this.editor,t=e.model.document,i=e.conversion,n=e.plugins.get(c.xn),s=e.plugins.get("ImageUtils"),l=e.plugins.get("ClipboardPipeline"),r=es(e.config.get("image.upload.types")),o=new ep(e);e.commands.add("uploadImage",o),e.commands.add("imageUpload",o),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add(e=>e.on("element:img",(e,t,i)=>{if(!i.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;let s=t.viewItem.getAttribute("data-ck-upload-id");if(!s)return;let[a]=Array.from(t.modelRange.getItems({shallow:!0})),l=n.loaders.get(s);a&&(i.writer.setAttribute("uploadId",s,a),i.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),l&&l.data&&i.writer.setAttribute("uploadStatus",l.status,a))},{priority:"low"})),this.listenTo(e.editing.view.document,"clipboardInput",(t,i)=>{if(eI(i.dataTransfer))return;let n=Array.from(i.dataTransfer.files).filter(e=>!!e&&r.test(e.type));if(n.length&&(t.stop(),e.model.change(t=>{i.targetRanges&&t.setSelection(i.targetRanges.map(t=>e.editing.mapper.toModelRange(t))),e.execute("uploadImage",{file:n})}),!e.commands.get("uploadImage").isAccessAllowed)){let t=e.plugins.get("Notification"),i=e.locale.t;t.showWarning(i("You have no image upload permissions."),{namespace:"image"})}}),this.listenTo(l,"inputTransformation",(t,i)=>{let l=Array.from(e.editing.view.createRangeIn(i.content)).map(e=>e.item).filter(e=>el(s,e)&&!e.getAttribute("uploadProcessed")).map(e=>({promise:ea(e),imageElement:e}));if(!l.length)return;let r=new a.HZz(e.editing.view.document);for(let e of l){r.setAttribute("uploadProcessed",!0,e.imageElement);let t=n.createLoader(e.promise);t&&(r.setAttribute("src","",e.imageElement),r.setAttribute("uploadId",t.id,e.imageElement))}}),e.editing.view.document.on("dragover",(e,t)=>{t.preventDefault()}),t.on("change",()=>{let i=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),s=new Set;for(let t of i)if("insert"==t.type&&"$text"!=t.name){let i=t.position.nodeAfter,a="$graveyard"==t.position.root.rootName;for(let t of function(e,t){let i=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter(e=>i.isImage(e.item)).map(e=>e.item)}(e,i)){let i=t.getAttribute("uploadId"),l=t.getAttribute("uploadStatus");if(!i||"complete"==l)continue;let r=n.loaders.get(i);if(!r){!a&&this._uploadedImages.has(i)&&e.model.enqueueChange({isUndoable:!1},e=>
1{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(i),imageElement:t})});continue}a?!s.has(i)&&Array.from(this._uploadImageElements.get(i)).every(e=>"$graveyard"==e.root.rootName)&&r.abort():(s.add(i),this._uploadImageElements.has(i)?this._uploadImageElements.get(i).add(t):this._uploadImageElements.set(i,new Set([t])),"idle"==r.status&&this._readAndUpload(r))}}}),this.on("uploadComplete",(e,{imageElement:t,data:i})=>{let n=i.urls?i.urls:i;this.editor.model.change(e=>{e.setAttribute("src",n.default,t),this._parseAndSetSrcsetAttributeOnImage(n,t,e),s.setImageNaturalSizeAttributes(t)})},{priority:"low"})}afterInit(){let e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){let t=this.editor,i=t.model,n=t.locale.t,s=t.plugins.get(c.xn),a=t.plugins.get(m.lV),l=t.plugins.get("ImageUtils"),r=this._uploadImageElements;return i.enqueueChange({isUndoable:!1},t=>{for(let i of r.get(e.id))t.setAttribute("uploadStatus","reading",i)}),e.read().then(()=>{let s=e.upload();for(let s of(t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image")),r.get(e.id))){if(o._K.isSafari){let e=t.editing.mapper.toViewElement(s),i=l.findViewImgElement(e);t.editing.view.once("render",()=>{if(!i.parent)return;let e=t.editing.view.domConverter.mapViewToDom(i.parent);if(!e)return;let n=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=n})}i.enqueueChange({isUndoable:!1},e=>{e.setAttribute("uploadStatus","uploading",s)})}return s}).then(s=>{i.enqueueChange({isUndoable:!1},i=>{for(let t of r.get(e.id))i.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:s,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this._uploadedImages.set(e.id,s)}),u()}).catch(s=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw s;"error"==e.status&&s&&a.showWarning(s,{title:n("Upload failed"),namespace:"upload"}),i.enqueueChange({isUndoable:!1},t=>{for(let i of r.get(e.id))"$graveyard"!==i.root.rootName&&t.remove(i)}),u()});function u(){i.enqueueChange({isUndoable:!1},t=>
1{for(let i of r.get(e.id))t.removeAttribute("uploadId",i),t.removeAttribute("uploadStatus",i);r.delete(e.id)}),s.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,i){let n=0,s=Object.keys(e).filter(e=>{let t=parseInt(e,10);if(!isNaN(t))return n=Math.max(n,t),!0}).map(t=>`${e[t]} ${t}w`).join(", ");if(""!=s){let e={srcset:s};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=n),i.setAttributes(e,t)}}_registerConverters(e){let{conversion:t,plugins:i}=this.editor,n=i.get(c.xn),s=i.get(y);t.for("dataDowncast").add(t=>{t.on(`attribute:uploadId:${e}`,(e,t,i)=>{if(!i.consumable.test(t.item,e.name))return;let a=n.loaders.get(t.attributeNewValue);if(!a||!a.data)return null;let l=i.mapper.toViewElement(t.item),r=s.findViewImgElement(l);r&&(i.consumable.consume(t.item,e.name),i.writer.setAttribute("data-ck-upload-id",a.id,r))})})}}function eI(e){return Array.from(e.types).includes("text/html")&&""!==e.getData("text/html")}class eb extends n.k_{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[ef,eo,eu]}}class ew extends m.Ss{urlInputView;keystrokes;constructor(e){super(e),this.set("imageURLInputValue",""),this.set("isImageSelected",!1),this.set("isEnabled",!0),this.keystrokes=new o.EP,this.urlInputView=this._createUrlInputView(),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-url"],tabindex:"-1"},children:[this.urlInputView,{tag:"div",attributes:{class:["ck","ck-image-insert-url__action-row"]}}]})}render(){super.render(),(0,m.Z5)({view:this}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}_createUrlInputView(){let e=this.locale,t=e.t,i=new m.xE(e,m.Vr);return i.bind("label").to(this,"isImageSelected",e=>e?t("Update image URL"):t("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 e_ extends n.k_{_imageInsertUI;_formView;static get pluginName(){return"ImageInsertViaUrlUI"}static get isOfficialPlugin(){return!0}static get requires(){return[K,m.lG]}init(){this.editor.ui.componentFactory.add("insertImageViaUrl",()=>this._createToolbarButton()),this.editor.ui.componentFactory.add("menuBar:insertImageViaUrl",()=>this._createMenuBarButton("standalone"))}afterInit(){this._imageInsertUI=this.editor.plugins.get("ImageInsertUI"),this._imageInsertUI.registerIntegration({name:"url",observable:()=>this.editor.commands.get("insertImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createInsertUrlButton(e){let t=new e(this.editor.locale);return t.icon=g.i3D,t.on("execute",()=>{this._showModal()}),t}_createToolbarButton(){let e=this.editor.locale.t,t=this._createInsertUrlButton(m._);return t.tooltip=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",t=>t?e("Update image URL"):e("Insert image via URL")),t}_createDropdownButton(){let e=this.editor.locale.t,t=this._createInsertUrlButton(m._);return t.withText=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",t=>t?e("Update image URL"):e("Insert via URL")),t}_createMenuBarButton(e){let t=this.editor.locale.t,i=this._createInsertUrlButton(m.kS);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(){let e=this.editor,t=e.locale,i=e.commands.get("replaceImageSource"),n=e.commands.get("insertImage"),s=new ew(t);return s.bind("isImageSelected").to(this._imageInsertUI),s.bind("isEnabled").toMany([n,i],"isEnabled",(...e)=>e.some(e=>e)),s}_showModal(){let e=this.editor,t=e.locale.t,i=e.plugins.get("Dialog");this._formView||(this._formView=this._createInsertUrlView(),this._formView.on("submit",()=>this._handleSave()));let n=e.commands.get("replaceImageSource");this._formView.imageURLInputValue=n.value||"",i.show({id:"insertImageViaUrl",title:t("Image via URL"),isModal:!0,content:this._formView,actionButtons:[{label:t("Cancel"),withText:!0,onExecute:()=>i.hide()},{label:t(this._imageInsertUI.isImageSelected?"Save":"Insert"),class:"ck-button-action",withText:!0,onExecute:()=>this._handleSave()}]})}_handleSave(){this.editor.commands.get("replaceImageSource").isEnabled?this.editor.execute("replaceImageSource",{source:this._formView.imageURLInputValue}):this.editor.execute("insertImage",{source:this._formView.imageURLInputValue}),this.editor.plugins.get("Dialog").hide()}}class ev extends n.k_{static get pluginName(){return"ImageInsertViaUrl"}static get isOfficialPlugin(){return!0}static get requires(){return[e_,K]}}class ek extends n.k_{static get pluginName(){return"ImageInsert"}static get isOfficialPlugin(){return!0}static get requires(){return[eb,ev,K]}}class ey extends n.uB{refresh(){let 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){let t=this.editor,i=t.model,n=t.plugins.get("ImageUtils"),s=n.getClosestSelectedImageElement(i.document.selection);this.value={width:e.width,height:null},s&&i.change(t=>{t.setAttribute("resizedWidth",e.width,s),t.removeAttribute("resizedHeight",s),n.setImageNaturalSizeAttributes(s)})}}class eE extends n.k_{static get requires(){return[y]}static get pluginName(){return"ImageResizeEditing"}static get licenseFeatureCode(){return"IR"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){let e=this.editor,t=new ey(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){let e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0})),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0}))}_registerConverters(e){let 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;let n=i.writer,s=i.mapper.toViewElement(t.item);null!==t.attributeNewValue?(n.setStyle("width",t.attributeNewValue,
1s),n.addClass("image_resized",s)):(n.removeStyle("width",s),n.removeClass("image_resized",s))})),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,s)=>{if(!s.consumable.consume(n.item,t.name))return;let a=s.writer,l=s.mapper.toViewElement(n.item),r="imageInline"===e?i.findViewImgElement(l):l;null!==n.attributeNewValue?a.setStyle("height",n.attributeNewValue,r):a.removeStyle("height",r)})),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>v(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>v(e)?null:e.getStyle("height")}}),t.conversion.for("upcast").add(t=>{t.on(`element:${"imageBlock"===e?"figure":"img"}`,(e,t,i)=>{i.consumable.consume(t.viewItem,{classes:["image_resized"]})})})}}let eC={small:g.B6B,medium:g.TlG,large:g.TTU,custom:g.FqE,original:g.fiX};class eA extends n.k_{static get requires(){return[eE]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){let e=this.editor,t=e.config.get("image.resizeOptions"),i=e.commands.get("resizeImage");for(let e of(this.bind("isEnabled").to(i),t))this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){let t=this.editor,{name:i,value:n,icon:s}=e;t.ui.componentFactory.add(i,i=>{let a=new m._(i),l=t.commands.get("resizeImage"),r=this._getOptionLabelValue(e,!0);if(!eC[s])throw new o.Yb("imageresizebuttons-missing-icon",t,e);if(a.set({label:r,icon:eC[s],tooltip:r,isToggleable:!0}),a.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&eB(e)){let e=t.plugins.get("ImageCustomResizeUI");this.listenTo(a,"execute",()=>{e._showForm(this._resizeUnit)})}else{let e=n?n+this._resizeUnit:null;a.bind("isOn").to(l,"value",l,"isEnabled",eS(e)),this.listenTo(a,"execute",()=>{t.execute("resizeImage",{width:e})})}return a})}_registerImageResizeDropdown(e){let t=this.editor,i=t.t,n=e.find(e=>!e.value),s=s=>{let a=t.commands.get("resizeImage"),l=(0,m.yu)(s,m.lU),r=l.buttonView,o=i("Resize image");return r.set({tooltip:o,commandValue:n.value,icon:eC.medium,isToggleable:!0,label:this._getOptionLabelValue(n),withText:!0,class:"ck-resize-image-button",ariaLabel:o,ariaLabelledBy:void 0}),r.bind("label").to(a,"value",e=>e&&e.width?e.width:this._getOptionLabelValue(n)),l.bind("isEnabled").to(this),(0,m.O)(l,()=>this._getResizeDropdownListItemDefinitions(e,a),{ariaLabel:i("Image resize list"),role:"menu"}),this.listenTo(l,"execute",e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())}),l};t.ui.componentFactory.add("resizeImage",s),t.ui.componentFactory.add("imageResize",s)}_getOptionLabelValue(e,t=!1){let i=this.editor.t;if(e.label)return e.label;if(t)if(eB(e))return i("Custom image size");else if(e.value)return i("Resize image to %0",e.value+this._resizeUnit);else return i("Resize image to the original size");return eB(e)?i("Custom"):e.value?e.value+this._resizeUnit:i("Original")}_getResizeDropdownListItemDefinitions(e,t){let{editor:i}=this,n=new o.pM,s=e.map(e=>eB(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null});for(let e of s){let a=null;if(i.plugins.has("ImageCustomResizeUI")&&eB(e)){let n=i.plugins.get("ImageCustomResizeUI");a={type:"button",model:new m.e_({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};let l=Object.values(s).map(e=>e.valueWithUnits);a.model.bind("isOn").to(t,"value",t,"isEnabled",function(e){return(t,i)=>!e.some(e=>eS(e)(t,i))}(l))}else(a={type:"button",model:new m.e_({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})}).model.bind("isOn").to(t,"value",t,"isEnabled",eS(e.valueWithUnits));a.model.bind("isEnabled").to(t,"isEnabled"),n.add(a)}return n}}function eB(e){return"custom"===e.value}function eS(e){return(t,i)=>void 0!==t&&!!i&&(null===e&&t===e||null!==t&&t.width===e)}let ex="image_resized";class eV extends n.k_{static get requires(){return[u.VE,y]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){let e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){let e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils");t.addObserver(D),this.listenTo(t.document,"imageLoaded",(n,s)=>{if(!s.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;let a=e.editing.view.domConverter,l=a.domToView(s.target),r=i.getImageWidgetFromImageView(l),o=this.editor.plugins.get(u.VE).getResizerByViewElement(r);if(o)return void o.redraw();let m=e.editing.mapper,g=m.toModelElement(r);(o=e.plugins.get(u.VE).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:g,viewElement:r,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>a.mapViewToDom(m.toViewElement(g)),isCentered:()=>"alignCenter"==g.getAttribute("imageStyle"),onCommit(i){t.change(e=>{e.removeClass(ex,r)}),e.execute("resizeImage",{width:i})}})).on("updateSize",()=>{r.hasClass(ex)||t.change(e=>{e.addClass(ex,r)});let e="imageInline"===g.name?l:r;e.getStyle("height")&&t.change(t=>{t.removeStyle("height",e)})}),o.bind("isEnabled").to(this)})}}function eT(e){if(!e)return null;let[,t,i]=e.trim().match(/([.,\d]+)(%|px)$/)||[],n=Number.parseFloat(t);return Number.isNaN(n)?null:{value:n,unit:i}}function eU(e,t,i){return"px"===i?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function ez(e){let{editing:t}=e,i=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!i)return null;let n=t.mapper.toViewElement(i),s=t.view.domConverter.mapViewToDom(n);return{model:i,view:n,dom:s}}function eN(e,t){let i=ez(e);if(!i)return null;let n=eT(i.model.getAttribute("resizedWidth")||null);return n?n.unit===t?n:eU((0,u.Wu)(i.dom),{value:new o.rw(i.dom).width},t):null}class eR extends m.Ss{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,i){super(e),this.focusTracker=new o.$x,this.keystrokes=new o.EP,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputVie
1w(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new m.Q9(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new m.s3,this._validators=i,this.keystrokes.set("Esc",(e,t)=>{this.fire("cancel"),t()}),this._focusCycler=new m.H({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),(0,m.Z5)({view:this}),[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){let e=this.locale.t,t=new m._(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:g.saM,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){let e=this.locale.t,t=new m._(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){let e=this.locale.t,t=new m.Dy(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){let e=this.locale.t,t=new m.xE(this.locale,m.F_);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){for(let e of(this.resetFormStatus(),this._validators)){let t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){let{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){let{rawSize:e}=this;if(null===e)return null;let t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){let{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}function eF(e,t){let i=ez(e);if(!i)return null;let n=(0,u.Wu)(i.dom),s=Math.max(.1,eU(n,eT(window.getComputedStyle(i.dom).minWidth)||{value:1},t).value),a="px"===t?n:100;return{unit:t,lower:s,upper:a}}class eO extends n.k_{_balloon;_form;static get requires(){return[m.pU]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){let t,i=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new((0,m.wi)(eR))(i.locale,e,(t=i.t,[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0])),this._form.render(),this.listenTo(this._form,"submit",()=>{this._form.isValid()&&(i.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))}),this.listenTo(this._form.labeledInput,"change:errorText",()=>{i.ui.update()}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),(0,m.wy)({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);let t=this.editor,i=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:T(t)});let n=eN(t,e),s=n?n.value.toFixed(1):"",a=eF(t,e);i.fieldView.value=i.fieldView.element.value=s,a&&Object.assign(i.fieldView,{min:a.lower.toFixed(1),max:Math.ceil(a.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class eP extends n.k_{static get requires(){return[eE,eV,eO,eA]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}}class eD extends n.uB{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map(e=>{if(e.isDefault)for(let t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]}))}refresh(){let 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={}){let t=this.editor,i=t.model,n=t.plugins.get("ImageUtils");i.change(t=>{let s=e.value,{setImageSizes:a=!0}=e,l=n.getClosestSelectedImageElement(i.document.selection);s&&this.shouldConvertImageType(s,l)&&(this.editor.execute(n.isBlockImage(l)?"imageTypeInline":"imageTypeBlock",{setImageSizes:a}),l=n.getClosestSelectedImageElement(i.document.selection)),!s||this._styles.get(s).isDefault?t.removeAttribute("imageStyle",l):t.setAttribute("imageStyle",s,l),a&&n.setImageNaturalSizeAttributes(l)})}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}let eL={get inline(){return{name:"inline",title:"In line",icon:g.cKN,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:g.xhb,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:g.m1L,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:g.yHl,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:g.i_b,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:g.$_F,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:g.yHl,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:g.i_b,modelElements:["imageBlock"],className:"image-style-side"}}},eM={full:g.itN,left:g.m1L,right:g.$_F,center:g.yHl,inlineLeft:g.xhb,inlineRight:g.i_b,inline:g.cKN},e$=[{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 eW(e){(0,o.FF)("image-style-configuration-definition-invalid",e)}let eq={normalizeStyles:function(e){return(e.configuredStyles.options||[]).map(e=>{var t;return"string"==typeof(t="string"==typeof(t=e)?eL[t]?{...eL[t]}:{name:t}:function(e,t){let i={...t};for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(i[n]=e[n]);return i}(eL[t.name],t)).icon&&(t.icon=eM[t.icon]||t.icon),t}).filter(t=>(function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:i}){let{modelElements:n,name:s}=e;if(!n||!n.length||!s)return eW({style:e}),!1;{let s=[t?"imageBlock":null,i?"imageInline":null];if(!n.some(e=>s.includes(e)))return(0,o.FF)("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")?[...e$]:[]}
1,warnInvalidStyle:eW};function eH(e){return(t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;let s=eG(i.attributeNewValue,e),a=eG(i.attributeOldValue,e),l=n.mapper.toViewElement(i.item),r=n.writer;a&&r.removeClass(a.className,l),s&&r.addClass(s.className,l)}}function ej(e){let t={imageInline:e.filter(e=>!e.isDefault&&e.modelElements.includes("imageInline")),imageBlock:e.filter(e=>!e.isDefault&&e.modelElements.includes("imageBlock"))};return(i,n,s)=>{if(!n.modelRange)return;let a=n.viewItem,l=(0,o.$1)(n.modelRange.getItems());if(l&&s.schema.checkAttribute(l,"imageStyle")){for(let e of t[l.name])s.consumable.consume(a,{classes:e.className})&&s.writer.setAttribute("imageStyle",e.name,l);!function(e,t,i,n){if(!e.consumable.test(t,{styles:["float"]}))return;let s=null;switch(t.getStyle("float")){case"left":s="alignLeft";break;case"right":s="alignRight"}if(!s)return;let a=eG(s,n);if(!a)return;let l=eL[a.name];d(a,l)&&(e.writer.setAttribute("imageStyle",s,i),e.consumable.consume(t,{styles:["float"]}))}(s,a,l,e)}}}function eG(e,t){for(let i of t)if(i.name===e)return i}class eK extends n.k_{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[y]}normalizedStyles;init(){let e=this.editor,t=e.plugins.has("ImageBlockEditing"),i=e.plugins.has("ImageInlineEditing");e.config.define("image.styles",eq.getDefaultStylesConfiguration(t,i)),this.normalizedStyles=eq.normalizeStyles({configuredStyles:e.config.get("image.styles"),isBlockPluginLoaded:t,isInlinePluginLoaded:i}),this._setupConversion(t,i),this._setupPostFixer(),e.commands.add("imageStyle",new eD(e,this.normalizedStyles))}_setupConversion(e,t){let i=this.editor,n=i.model.schema,s=eH(this.normalizedStyles),a=ej(this.normalizedStyles);i.editing.downcastDispatcher.on("attribute:imageStyle",s),i.data.downcastDispatcher.on("attribute:imageStyle",s),e&&(n.extend("imageBlock",{allowAttributes:"imageStyle"}),n.setAttributeProperties("imageStyle",{isFormatting:!0}),i.data.upcastDispatcher.on("element:figure",a,{priority:"low"})),t&&(n.extend("imageInline",{allowAttributes:"imageStyle"}),n.setAttributeProperties("imageStyle",{isFormatting:!0}),i.data.upcastDispatcher.on("element:img",a,{priority:"low"}))}_setupPostFixer(){let e=this.editor,t=e.model.document,i=e.plugins.get(y),n=new Map(this.normalizedStyles.map(e=>[e.name,e]));t.registerPostFixer(e=>{let s=!1;for(let a of t.differ.getChanges())if("insert"==a.type||"attribute"==a.type&&"imageStyle"==a.attributeKey){let t="insert"==a.type?a.position.nodeAfter:a.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!i.isImage(t))continue;let l=t.getAttribute("imageStyle");if(!l)continue;let r=n.get(l);r&&r.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),s=!0)}return s})}}class eJ extends n.k_{static get requires(){return[eK]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){let 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(){let e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],i=eX(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(let e of i)this._createButton(e);for(let n of eX([...t.filter(h.G),...eq.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles))this._createDropdown(n,i)}_createDropdown(e,t){let i=this.editor.ui.componentFactory;i.add(e.name,n=>{var s;let a,{defaultItem:l,items:r,title:o}=e,u=r.filter(e=>t.find(({name:t})=>eY(t)===e)).map(e=>{let t=i.create(e);return e===l&&(a=t),t});r.length!==u.length&&eq.warnInvalidStyle({dropdown:e});let g=(0,m.yu)(n,m.AO),c=g.buttonView,d=c.arrowView;return(0,m.fM)(g,u,{enableActiveItemFocusOnDropdownOpen:!0}),c.set({label:((s=o)?s+": ":"")+a.label,class:null,tooltip:!0}),d.unbind("label"),d.set({label:o}),c.bind("icon").toMany(u,"isOn",(...e)=>{let t=e.findIndex(p.D);return t<0?a.icon:u[t].icon}),c.bind("label").toMany(u,"isOn",(...e)=>{var t;let i=e.findIndex(p.D);return((t=o)?t+": ":"")+(i<0?a.label:u[i].label)}),c.bind("isOn").toMany(u,"isOn",(...e)=>e.some(p.D)),c.bind("class").toMany(u,"isOn",(...e)=>e.some(p.D)?"ck-splitbutton_flatten":void 0),c.on("execute",()=>{u.some(({isOn:e})=>e)?g.isOpen=!g.isOpen:a.fire("execute")}),g.bind("isEnabled").toMany(u,"isEnabled",(...e)=>e.some(p.D)),this.listenTo(g,"execute",()=>{this.editor.editing.view.focus()}),g})}_createButton(e){let t=e.name;this.editor.ui.componentFactory.add(eY(t),i=>{let n=this.editor.commands.get("imageStyle"),s=new m._(i);return s.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),s.bind("isEnabled").to(n,"isEnabled"),s.bind("isOn").to(n,"value",e=>e===t),s.on("execute",this._executeCommand.bind(this,t)),s})}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function eX(e,t){for(let i of e)t[i.title]&&(i.title=t[i.title]);return e}function eY(e){return`imageStyle:${e}`}class eZ extends n.k_{static get requires(){return[eK,eJ]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}}class eQ extends n.k_{static get requires(){return[u.oP,y]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){let e=this.editor,t=e.t,i=e.plugins.get(u.oP),n=e.plugins.get("ImageUtils");i.register("image",{ariaLabel:t("Image toolbar"),items:(e.config.get("image.toolbar")||[]).map(e=>(0,h.G)(e)?e.name:e),getRelatedElement:e=>n.getClosestSelectedImageWidget(e)})}}class e0 extends n.k_{static get requires(){return[$,y]}static get pluginName(){return"PictureEditing"}static get isOfficialPlugin(){return!0}afterInit(){let 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(){let e=this.editor,t=e.conversion,i=e.plugins.get("ImageUtils");t.for("upcast").add(R(i)),t.for("downcast").add(O(i))}_setupImageUploadEditingIntegration(){let e=this.editor;if(!e.plugins.has("ImageUploadEditing"))return;let t=e.plugins.get("ImageUploadEditing");this.listenTo(t,"uploadComplete",(t,{imageElement:i,data:n})=>{let s=n.sources;s&&e.model.change(e=>{e.setAttributes({sources:s},i)})})}}}}]);
2//# sourceMappingURL=a08f5dc9.fab84bac070eee10.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.