`}return t}function v_(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>{if(e.length==1){return" "}return e}))}const y_=["figcaption","li"];function x_(t){let e="";if(t.is("$text")||t.is("$textProxy")){e=t.data}else if(t.is("element","img")&&t.hasAttribute("alt")){e=t.getAttribute("alt")}else if(t.is("element","br")){e="\n"}else{let n=null;for(const o of t.getChildren()){const t=x_(o);if(n&&(n.is("containerElement")||o.is("containerElement"))){if(y_.includes(n.name)||y_.includes(o.name)){e+="\n"}else{e+="\n\n"}}e+=t;n=o}}return e}class E_ extends tC{static get pluginName(){return"Clipboard"}static get requires(){return[A_]}init(){const t=this.editor;const e=t.model.document;const n=t.editing.view;const o=n.document;this._htmlDataProcessor=new $p(o);n.addObserver(w_);this.listenTo(o,"clipboardInput",(e=>{if(t.isReadOnly){e.stop()}}),{priority:"highest"});this.listenTo(o,"clipboardInput",((t,e)=>{const o=e.dataTransfer;let i="";if(o.getData("text/html")){i=v_(o.getData("text/html"))}else if(o.getData("text/plain")){i=__(o.getData("text/plain"))}i=this._htmlDataProcessor.toView(i);const r=new ts(this,"inputTransformation");this.fire(r,{content:i,dataTransfer:o,asPlainText:e.asPlainText});if(r.stop.called){t.stop()}n.scrollToTheSelection()}),{priority:"low"});this.listenTo(this,"inputTransformation",((n,o)=>{if(!o.content.isEmpty){const i=this.editor.data;const r=this.editor.model;const s=i.toModel(o.content,"$clipboardHolder");if(s.childCount==0){return}if(o.asPlainText||D_(s)){const n=new Map(Array.from(e.selection.getAttributes()).filter((e=>t.model.schema.getAttributeProperties(e[0]).isFormatting)));r.change((t=>{const e=t.createRangeIn(s);for(const o of e.getItems()){if(o.is("$text")||o.is("$textProxy")){t.setAttributes(n,o)}}}))}r.insertContent(s);n.stop()}}),{priority:"low"});function i(n,i){const r=i.dataTransfer;i.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));o.fire("clipboardOutput",{dataTransfer:r,content:s,method:n.name})}this.listenTo(o,"copy",i,{priority:"low"});this.listenTo(o,"cut",((e,n)=>{if(t.isReadOnly){n.preventDefault()}else{i(e,n)}}),{priority:"low"});this.listenTo(o,"clipboardOutput",((n,o)=>{if(!o.content.isEmpty){o.dataTransfer.setData("text/html",this._htmlDataProcessor.toData(o.content));o.dataTransfer.setData("text/plain",x_(o.content))}if(o.method=="cut"){t.model.deleteContent(e.selection)}}),{priority:"low"})}}function D_(t){if(t.childCount>1){return false}const e=t.getChild(0);return[...e.getAttributeKeys()].length==0}class M_{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){if(Array.isArray(t)){t.forEach((t=>this._definitions.add(t)))}else{this._definitions.add(t)}}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref")){return}const o=n.writer;const i=o.document.selection;for(const t of this._definitions){const r=o.createAttributeElement("a",t.attributes,{priority:5});o.setCustomProperty("link",true,r);if(t.callback(e.attributeNewValue)){if(e.item.is("selection")){o.wrap(i.getFirstRange(),r)}else{o.wrap(n.mapper.toViewRange(e.range),r)}}else{o.unwrap(n.mapper.toViewRange(e.range),r)}}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:image",((t,e,n)=>{const o=n.mapper.toViewElement(e.item);const i=Array.from(o.getChildren()).find((t=>t.name==="a"));for(const t of this._definitions){const o=Hs(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of o){if(t==="class"){n.writer.addClass(e,i)}else{n.writer.setAttribute(t,e,i)}}}else{for(const[t,e]of o){if(t==="class"){n.writer.removeClass(e,i)}else{n.writer.removeAttribute(t,i)}}}}}))}}}function T_(t,e,n){var o=t.length;n=n===undefined?o:n;return!e&&n>=o?t:Ba(t,e,n)}var S_=T_;var I_="\\ud800-\\udfff",B_="\\u0300-\\u036f",N_="\\ufe20-\\ufe2f",P_="\\u20d0-\\u20ff",L_=B_+N_+P_,O_="\\ufe0e\\ufe0f";var z_="\\u200d";var R_=RegExp("["+z_+I_+L_+O_+"]");function j_(t){return R_.test(t)}var F_=j_;function V_(t){return t.split("")}var U_=V_;var H_="\\ud800-\\udfff",K_="\\u0300-\\u036f",G_="\\ufe20-\\ufe2f",q_="\\u20d0-\\u20ff",W_=K_+G_+q_,Y_="\\ufe0e\\ufe0f";var Q_="["+H_+"]",$_="["+W_+"]",Z_="\\ud83c[\\udffb-\\udfff]",J_="(?:"+$_+"|"+Z_+")",X_="[^"+H_+"]",tv="(?:\\ud83c[\\udde6-\\uddff]){2}",ev="[\\ud800-\\udbff][\\udc00-\\udfff]",nv="\\u200d";var ov=J_+"?",iv="["+Y_+"]?",rv="(?:"+nv+"(?:"+[X_,tv,ev].join("|")+")"+iv+ov+")*",sv=iv+ov+rv,av="(?:"+[X_+$_+"?",$_,tv,ev,Q_].join("|")+")";var cv=RegExp(Z_+"(?="+Z_+")|"+av+sv,"g");function lv(t){return t.match(cv)||[]}var dv=lv;function uv(t){return F_(t)?dv(t):U_(t)}var hv=uv;function fv(t){return function(e){e=Aa(e);var n=F_(e)?hv(e):undefined;var o=n?n[0]:e.charAt(0);var i=n?S_(n,1).join(""):e.slice(1);return o[t]()+i}}var mv=fv;var gv=mv("toUpperCase");var pv=gv;const kv=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;const bv=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;const wv=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i;const Cv=/^((\w+:(\/{2,})?)|(\W))/i;const Av="Ctrl+K";function _v(t){return t.is("attributeElement")&&!!t.getCustomProperty("link")}function vv(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});e.setCustomProperty("link",true,n);return n}function yv(t){t=String(t);return xv(t)?t:"#"}function xv(t){const e=t.replace(kv,"");return e.match(bv)}function Ev(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};e.forEach((t=>{if(t.label&&n[t.label]){t.label=n[t.label]}return t}));return e}function Dv(t){const e=[];if(t){for(const[n,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${pv(n)}`});e.push(t)}}return e}function Mv(t,e){if(!t){return false}return t.is("element","image")&&e.checkAttribute("image","linkHref")}function Tv(t){return wv.test(t)}function Sv(t,e){const n=Tv(t)?"mailto:":e;const o=!!n&&!Cv.test(t);return t&&o?n+t:t}class Iv extends nC{constructor(t){super(t);this.manualDecorators=new vs;this.automaticDecorators=new M_}restoreManualDecoratorStates(){for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}refresh(){const t=this.editor.model;const e=t.document;const n=iC(e.selection.getSelectedBlocks());if(Mv(n,t.schema)){this.value=n.getAttribute("linkHref");this.isEnabled=t.schema.checkAttribute(n,"linkHref")}else{this.value=e.selection.getAttribute("linkHref");this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"linkHref")}for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}execute(t,e={}){const n=this.editor.model;const o=n.document.selection;const i=[];const r=[];for(const t in e){if(e[t]){i.push(t)}else{r.push(t)}}n.change((e=>{if(o.isCollapsed){const s=o.getFirstPosition();if(o.hasAttribute("linkHref")){const a=XA(s,"linkHref",o.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a);i.forEach((t=>{e.setAttribute(t,true,a)}));r.forEach((t=>{e.removeAttribute(t,a)}));e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(t!==""){const r=Hs(o.getAttributes());r.set("linkHref",t);i.forEach((t=>{r.set(t,true)}));const a=e.createText(t,r);n.insertContent(a,s);e.setSelection(e.createPositionAfter(a))}["linkHref",...i,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(o.getRanges(),"linkHref");const a=[];for(const t of o.getSelectedBlocks()){if(n.schema.checkAttribute(t,"linkHref")){a.push(e.createRangeOn(t))}}const c=a.slice();for(const t of s){if(this._isRangeToUpdate(t,a)){c.push(t)}}for(const n of c){e.setAttribute("linkHref",t,n);i.forEach((t=>{e.setAttribute(t,true,n)}));r.forEach((t=>{e.removeAttribute(t,n)}))}}}))}_getDecoratorStateFromModel(t){const e=this.editor.model;const n=e.document;const o=iC(n.selection.getSelectedBlocks());if(Mv(o,e.schema)){return o.getAttribute(t)}return n.selection.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e){if(n.containsRange(t)){return false}}return true}}class Bv extends nC{refresh(){const t=this.editor.model;const e=t.document;const n=iC(e.selection.getSelectedBlocks());if(Mv(n,t.schema)){this.isEnabled=t.schema.checkAttribute(n,"linkHref")}else{this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"linkHref")}}execute(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;const o=t.commands.get("link");e.change((t=>{const i=n.isCollapsed?[XA(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:n.getRanges();for(const e of i){t.removeAttribute("linkHref",e);if(o){for(const n of o.manualDecorators){t.removeAttribute(n.id,e)}}}}))}}class Nv{constructor({id:t,label:e,attributes:n,defaultValue:o}){this.id=t;this.set("value");this.defaultValue=o;this.label=e;this.attributes=n}}_s(Nv,$c);var Pv=n(29);var Lv={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Lv.insert="head";Lv.singleton=true;var Ov=ik()(Pv["a"],Lv);var zv=Pv["a"].locals||{};const Rv="ck-link_selected";const jv="automatic";const Fv="manual";const Vv=/^(https?:)?\/\//;class Uv extends tC{static get pluginName(){return"LinkEditing"}static get requires(){return[WA,p_,E_]}constructor(t){super(t);t.config.define("link",{addTargetToExternalLinks:false})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"});t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:vv});t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>vv(yv(t),e)});t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:true}},model:{key:"linkHref",value:t=>t.getAttribute("href")}});t.commands.add("link",new Iv(t));t.commands.add("unlink",new Bv(t));const e=Ev(t.t,Dv(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>t.mode===jv)));this._enableManualDecorators(e.filter((t=>t.mode===Fv)));const n=t.plugins.get(WA);n.registerAttribute("linkHref");e_(t,"linkHref","a",Rv);this._enableInsertContentSelectionAttributesFixer();this._enableClickingAfterLink();this._enableTypingOverLink();this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor;const n=e.commands.get("link");const o=n.automaticDecorators;if(e.config.get("link.addTargetToExternalLinks")){o.add({id:"linkIsExternal",mode:jv,callback:t=>Vv.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}})}o.add(t);if(o.length){e.conversion.for("downcast").add(o.getDispatcher())}}_enableManualDecorators(t){if(!t.length){return}const e=this.editor;const n=e.commands.get("link");const o=n.manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id});o.add(new Nv(t));e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n})=>{if(e){const e=o.get(t.id).attributes;const i=n.createAttributeElement("a",e,{priority:5});n.setCustomProperty("link",true,i);return i}}});e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:o.get(t.id).attributes},model:{key:t.id}})}))}_enableInsertContentSelectionAttributesFixer(){const t=this.editor;const e=t.model;const n=e.document.selection;const o=t.commands.get("link");this.listenTo(e,"insertContent",(()=>{const t=n.anchor.nodeBefore;const i=n.anchor.nodeAfter;if(!n.hasAttribute("linkHref")){return}if(!t){return}if(!t.hasAttribute("linkHref")){return}if(i&&i.hasAttribute("linkHref")){return}e.change((t=>{Hv(t,o.manualDecorators)}))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor;const e=t.commands.get("link");t.editing.view.addObserver(qA);let n=false;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=true}));this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n){return}n=false;const o=t.model.document.selection;if(!o.isCollapsed){return}if(!o.hasAttribute("linkHref")){return}const i=o.getFirstPosition();const r=XA(i,"linkHref",o.getAttribute("linkHref"),t.model);if(i.isTouching(r.start)||i.isTouching(r.end)){t.model.change((t=>{Hv(t,e.manualDecorators)}))}}))}_enableTypingOverLink(){const t=this.editor;const e=t.editing.view;let n;let o;this.listenTo(e.document,"delete",(()=>{o=true}),{priority:"high"});this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;if(e.isCollapsed){return}if(o){o=false;return}if(!Gv(t)){return}if(Kv(t.model)){n=e.getAttributes()}}),{priority:"high"});this.listenTo(t.model,"insertContent",((e,[i])=>{o=false;if(!Gv(t)){return}if(!n){return}t.model.change((t=>{for(const[e,o]of n){t.setAttribute(e,o,i)}}));n=null}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor;const e=t.model;const n=e.document.selection;const o=t.editing.view;const i=t.commands.get("link");let r=false;let s=false;this.listenTo(o.document,"delete",((t,e)=>{s=e.domEvent.keyCode===Ll.backspace}),{priority:"high"});this.listenTo(e,"deleteContent",(()=>{r=false;const t=n.getFirstPosition();const o=n.getAttribute("linkHref");if(!o){return}const i=XA(t,"linkHref",o,e);r=i.containsPosition(t)||i.end.isEqual(t)}),{priority:"high"});this.listenTo(e,"deleteContent",(()=>{if(!s){return}s=false;if(r){return}t.model.enqueueChange((t=>{Hv(t,i.manualDecorators)}))}),{priority:"low"})}}function Hv(t,e){t.removeSelectionAttribute("linkHref");for(const n of e){t.removeSelectionAttribute(n.id)}}function Kv(t){const e=t.document.selection;const n=e.getFirstPosition();const o=e.getLastPosition();const i=n.nodeAfter;if(!i){return false}if(!i.is("$text")){return false}if(!i.hasAttribute("linkHref")){return false}const r=o.textNode||o.nodeBefore;if(i===r){return true}const s=XA(n,"linkHref",i.getAttribute("linkHref"),t);return s.containsRange(t.createRange(n,o),true)}function Gv(t){const e=t.plugins.get("Input");return e.isInput(t.model.change((t=>t.batch)))}class qv{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return true}}_s(qv,$c);class Wv extends qv{static get pluginName(){return"Notification"}init(){this.on("show:warning",((t,e)=>{window.alert(e.message)}),{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e=`show:${t.type}`+(t.namespace?`:${t.namespace}`:"");this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class Yv extends nC{constructor(t){super(t);this.stopListening(this.editor.model.document,"change");this.listenTo(this.editor.model.document,"change",(()=>this.refresh()),{priority:"low"})}refresh(){const t=this.editor.commands.get("imageInsert");const e=this.editor.commands.get("link");this.isEnabled=t.isEnabled||e.isEnabled}execute(){const t=this.editor;const e=this.editor.config.get("ckfinder.openerMethod")||"modal";if(e!="popup"&&e!="modal"){throw new ss["a"]("ckfinder-unknown-openermethod",t)}const n=this.editor.config.get("ckfinder.options")||{};n.chooseFiles=true;const o=n.onInit;if(!n.language){n.language=t.locale.uiLanguage}n.onInit=e=>{if(o){o(e)}e.on("files:choose",(n=>{const o=n.data.files.toArray();const i=o.filter((t=>!t.isImage()));const r=o.filter((t=>t.isImage()));for(const e of i){t.execute("link",e.getUrl())}const s=[];for(const t of r){const n=t.getUrl();s.push(n?n:e.request("file:getProxyUrl",{file:t}))}if(s.length){Qv(t,s)}}));e.on("file:choose:resizedImage",(e=>{const n=e.data.resizedUrl;if(!n){const e=t.plugins.get("Notification");const n=t.locale.t;e.showWarning(n("Could not obtain resized image URL."),{title:n("Selecting resized image failed"),namespace:"ckfinder"});return}Qv(t,[n])}))};window.CKFinder[e](n)}}function Qv(t,e){const n=t.commands.get("imageInsert");if(!n.isEnabled){const e=t.plugins.get("Notification");const n=t.locale.t;e.showWarning(n("Could not insert image at the current position."),{title:n("Inserting image failed"),namespace:"ckfinder"});return}t.execute("imageInsert",{source:e})}class $v extends tC{static get pluginName(){return"CKFinderEditing"}static get requires(){return[Wv,KA,Uv]}init(){const t=this.editor;t.commands.add("ckfinder",new Yv(t))}}class Zv extends qv{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",false);this._actions=new vs({idProperty:"_id"});this._actions.delegate("add","remove").to(this)}add(t){if(typeof t!=="string"){throw new ss["a"]("pendingactions-add-invalid-message",this)}const e=Object.create($c);e.set("message",t);this._actions.add(e);this.hasAny=true;return e}remove(t){this._actions.remove(t);this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}class Jv{constructor(){const t=new window.FileReader;this._reader=t;this._data=undefined;this.set("loaded",0);t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;this.total=t.size;return new Promise(((n,o)=>{e.onload=()=>{const t=e.result;this._data=t;n(t)};e.onerror=()=>{o("error")};e.onabort=()=>{o("aborted")};this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}_s(Jv,$c);class Xv extends tC{static get pluginName(){return"FileRepository"}static get requires(){return[Zv]}init(){this.loaders=new vs;this.loaders.on("add",(()=>this._updatePendingAction()));this.loaders.on("remove",(()=>this._updatePendingAction()));this._loadersMap=new Map;this._pendingAction=null;this.set("uploaded",0);this.set("uploadTotal",null);this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter){Object(ss["c"])("filerepository-no-upload-adapter");return null}const e=new ty(Promise.resolve(t),this.createUploadAdapter);this.loaders.add(e);this._loadersMap.set(t,e);if(t instanceof Promise){e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{}))}e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders){t+=e.uploaded}this.uploaded=t}));e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders){if(e.uploadTotal){t+=e.uploadTotal}}this.uploadTotal=t}));return e}destroyLoader(t){const e=t instanceof ty?t:this.getLoader(t);e._destroy();this.loaders.remove(e);this._loadersMap.forEach(((t,n)=>{if(t===e){this._loadersMap.delete(n)}}))}_updatePendingAction(){const t=this.editor.plugins.get(Zv);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t;const n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent));this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else{t.remove(this._pendingAction);this._pendingAction=null}}}_s(Xv,$c);class ty{constructor(t,e){this.id=ns();this._filePromiseWrapper=this._createFilePromiseWrapper(t);this._adapter=e(this);this._reader=new Jv;this.set("status","idle");this.set("uploaded",0);this.set("uploadTotal",null);this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0));this.set("uploadResponse",null)}get file(){if(!this._filePromiseWrapper){return Promise.resolve(null)}else{return this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null))}}get data(){return this._reader.data}read(){if(this.status!="idle"){throw new ss["a"]("filerepository-read-wrong-status",this)}this.status="reading";return this.file.then((t=>this._reader.read(t))).then((t=>{if(this.status!=="reading"){throw this.status}this.status="idle";return t})).catch((t=>{if(t==="aborted"){this.status="aborted";throw"aborted"}this.status="error";throw this._reader.error?this._reader.error:t}))}upload(){if(this.status!="idle"){throw new ss["a"]("filerepository-upload-wrong-status",this)}this.status="uploading";return this.file.then((()=>this._adapter.upload())).then((t=>{this.uploadResponse=t;this.status="idle";return t})).catch((t=>{if(this.status==="aborted"){throw"aborted"}this.status="error";throw t}))}abort(){const t=this.status;this.status="aborted";if(!this._filePromiseWrapper.isFulfilled){this._filePromiseWrapper.promise.catch((()=>{}));this._filePromiseWrapper.rejecter("aborted")}else if(t=="reading"){this._reader.abort()}else if(t=="uploading"&&this._adapter.abort){this._adapter.abort()}this._destroy()}_destroy(){this._filePromiseWrapper=undefined;this._reader=undefined;this._adapter=undefined;this.uploadResponse=undefined}_createFilePromiseWrapper(t){const e={};e.promise=new Promise(((n,o)=>{e.rejecter=o;e.isFulfilled=false;t.then((t=>{e.isFulfilled=true;n(t)})).catch((t=>{e.isFulfilled=true;o(t)}))}));return e}}_s(ty,$c);const ey="ckCsrfToken";const ny=40;const oy="abcdefghijklmnopqrstuvwxyz0123456789";function iy(){let t=ry(ey);if(!t||t.length!=ny){t=ay(ny);sy(ey,t)}return t}function ry(t){t=t.toLowerCase();const e=document.cookie.split(";");for(const n of e){const e=n.split("=");const o=decodeURIComponent(e[0].trim().toLowerCase());if(o===t){return decodeURIComponent(e[1])}}return null}function sy(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)+";path=/"}function ay(t){let e="";const n=new Uint8Array(t);window.crypto.getRandomValues(n);for(let t=0;t.5?o.toUpperCase():o}return e}class cy extends tC{static get requires(){return[Xv]}static get pluginName(){return"CKFinderUploadAdapter"}init(){const t=this.editor.config.get("ckfinder.uploadUrl");if(!t){return}this.editor.plugins.get(Xv).createUploadAdapter=e=>new ly(e,t,this.editor.t)}}class ly{constructor(t,e,n){this.loader=t;this.url=e;this.t=n}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest();this._initListeners(e,n,t);this._sendRequest(t)}))))}abort(){if(this.xhr){this.xhr.abort()}}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.url,true);t.responseType="json"}_initListeners(t,e,n){const o=this.xhr;const i=this.loader;const r=this.t;const s=r("Cannot upload file:")+` ${n.name}.`;o.addEventListener("error",(()=>e(s)));o.addEventListener("abort",(()=>e()));o.addEventListener("load",(()=>{const n=o.response;if(!n||!n.uploaded){return e(n&&n.error&&n.error.message?n.error.message:s)}t({default:n.url})}));if(o.upload){o.upload.addEventListener("progress",(t=>{if(t.lengthComputable){i.uploadTotal=t.total;i.uploaded=t.loaded}}))}}_sendRequest(t){const e=new FormData;e.append("upload",t);e.append("ckCsrfToken",iy());this.xhr.send(e)}}class dy extends tC{static get pluginName(){return"CKFinder"}static get requires(){return[$v,WC,cy]}}function*uy(t,e){for(const n of e){if(n&&t.getAttributeProperties(n[0]).copyOnEnter){yield n}}}class hy extends nC{execute(){const t=this.editor.model;const e=t.document;t.change((n=>{my(t,n,e.selection);this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model;const e=t.document;this.isEnabled=fy(t.schema,e.selection)}}function fy(t,e){if(e.rangeCount>1){return false}const n=e.anchor;if(!n||!t.checkChild(n,"softBreak")){return false}const o=e.getFirstRange();const i=o.start.parent;const r=o.end.parent;if((py(i,t)||py(r,t))&&i!==r){return false}return true}function my(t,e,n){const o=n.isCollapsed;const i=n.getFirstRange();const r=i.start.parent;const s=i.end.parent;const a=r==s;if(o){const o=uy(t.schema,n.getAttributes());gy(t,e,i.end);e.removeSelectionAttribute(n.getAttributeKeys());e.setSelectionAttribute(o)}else{const o=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:o});if(a){gy(t,e,n.focus)}else{if(o){e.setSelection(s,0)}}}}function gy(t,e,n){const o=e.createElement("softBreak");t.insertContent(o,n);e.setSelection(o,"after")}function py(t,e){if(t.is("rootElement")){return false}return e.isLimit(t)||py(t.parent,e)}class ky extends Xd{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(this.isEnabled&&n.keyCode==Ll.enter){let o;e.once("enter",(t=>o=t),{priority:"highest"});e.fire("enter",new th(e,n.domEvent,{isSoft:n.shiftKey}));if(o&&o.stop.called){t.stop()}}}))}observe(){}}class by extends tC{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor;const e=t.model.schema;const n=t.conversion;const o=t.editing.view;const i=o.document;e.register("softBreak",{allowWhere:"$text",isInline:true});n.for("upcast").elementToElement({model:"softBreak",view:"br"});n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")});o.addObserver(ky);t.commands.add("shiftEnter",new hy(t));this.listenTo(i,"enter",((e,n)=>{n.preventDefault();if(!n.isSoft){return}t.execute("shiftEnter");o.scrollToTheSelection()}),{priority:"low"})}}function wy(t){const e=t.t;const n=t.config.get("codeBlock.languages");for(const t of n){if(t.label==="Plain text"){t.label=e("Plain text")}if(t.class===undefined){t.class=`language-${t.language}`}}return n}function Cy(t,e,n){const o={};for(const i of t){if(e==="class"){o[i[e].split(" ").shift()]=i[n]}else{o[i[e]]=i[n]}}return o}function Ay(t){return t.data.match(/^(\s*)/)[0]}function _y(t,e){const n=t.createDocumentFragment();const o=e.split("\n").map((e=>t.createText(e)));const i=o[o.length-1];for(const e of o){t.append(e,n);if(e!==i){t.appendElement("softBreak",n)}}return n}function vy(t){const e=t.document.selection;const n=[];if(e.isCollapsed){n.push(e.anchor)}else{const o=e.getFirstRange().getWalker({ignoreElementEnd:true,direction:"backward"});for(const{item:e}of o){if(e.is("$textProxy")&&e.parent.is("element","codeBlock")){const o=Ay(e.textNode);const{parent:i,startOffset:r}=e.textNode;const s=t.createPositionAt(i,r+o.length);n.push(s)}}}return n}function yy(t){const e=iC(t.getSelectedBlocks());return e&&e.is("element","codeBlock")}class xy extends nC{refresh(){this.value=this._getValue();this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor;const n=e.model;const o=n.document.selection;const i=wy(e);const r=i[0];const s=Array.from(o.getSelectedBlocks());const a=t.forceValue===undefined?!this.value:t.forceValue;const c=t.language||r.language;n.change((t=>{if(a){this._applyCodeBlock(t,s,c)}else{this._removeCodeBlock(t,s)}}))}_getValue(){const t=this.editor.model.document.selection;const e=iC(t.getSelectedBlocks());const n=!!(e&&e.is("element","codeBlock"));return n?e.getAttribute("language"):false}_checkEnabled(){if(this.value){return true}const t=this.editor.model.document.selection;const e=this.editor.model.schema;const n=iC(t.getSelectedBlocks());if(!n){return false}return Ey(e,n)}_applyCodeBlock(t,e,n){const o=this.editor.model.schema;const i=e.filter((t=>Ey(o,t)));for(const e of i){t.rename(e,"codeBlock");t.setAttribute("language",n,e);o.removeDisallowedAttributes([e],t)}i.reverse().forEach(((e,n)=>{const o=i[n+1];if(e.previousSibling===o){t.appendElement("softBreak",o);t.merge(t.createPositionBefore(e))}}))}_removeCodeBlock(t,e){const n=e.filter((t=>t.is("element","codeBlock")));for(const e of n){const n=t.createRangeOn(e);for(const e of Array.from(n.getItems()).reverse()){if(e.is("element","softBreak")&&e.parent.is("element","codeBlock")){const{position:n}=t.split(t.createPositionBefore(e));t.rename(n.nodeAfter,"paragraph");t.removeAttribute("language",n.nodeAfter);t.remove(e)}}t.rename(e,"paragraph");t.removeAttribute("language",e)}}}function Ey(t,e){if(e.is("rootElement")||t.isLimit(e)){return false}return t.checkChild(e.parent,"codeBlock")}class Dy extends nC{constructor(t){super(t);this._indentSequence=t.config.get("codeBlock.indentSequence")}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor;const e=t.model;e.change((t=>{const n=vy(e);for(const e of n){t.insertText(this._indentSequence,e)}}))}_checkEnabled(){if(!this._indentSequence){return false}return yy(this.editor.model.document.selection)}}class My extends nC{constructor(t){super(t);this._indentSequence=t.config.get("codeBlock.indentSequence")}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor;const e=t.model;e.change((t=>{const n=vy(e);for(const e of n){const n=Ty(this.editor.model,e,this._indentSequence);if(n){t.remove(n)}}}))}_checkEnabled(){if(!this._indentSequence){return false}const t=this.editor.model;if(!yy(t.document.selection)){return false}return vy(t).some((e=>Ty(t,e,this._indentSequence)))}}function Ty(t,e,n){const o=Sy(e);if(!o){return null}const i=Ay(o);const r=i.lastIndexOf(n);if(r+n.length!==i.length){return null}if(r===-1){return null}const{parent:s,startOffset:a}=o;return t.createRange(t.createPositionAt(s,a+r),t.createPositionAt(s,a+r+n.length))}function Sy(t){let e=t.parent.getChild(t.index);if(!e||e.is("element","softBreak")){e=t.nodeBefore}if(!e||e.is("element","softBreak")){return null}return e}function Iy(t,e,n=false){const o=Cy(e,"language","class");const i=Cy(e,"language","label");return(e,r,s)=>{const{writer:a,mapper:c,consumable:l}=s;if(!l.consume(r.item,"insert")){return}const d=r.item.getAttribute("language");const u=c.toViewPosition(t.createPositionBefore(r.item));const h={};if(n){h["data-language"]=i[d];h.spellcheck="false"}const f=a.createContainerElement("pre",h);const m=a.createContainerElement("code",{class:o[d]||null});a.insert(a.createPositionAt(f,0),m);a.insert(u,f);c.bindElements(r.item,m)}}function By(t){return(e,n,o)=>{if(n.item.parent.name!=="codeBlock"){return}const{writer:i,mapper:r,consumable:s}=o;if(!s.consume(n.item,"insert")){return}const a=r.toViewPosition(t.createPositionBefore(n.item));i.insert(a,i.createText("\n"))}}function Ny(t,e){const n=Cy(e,"class","language");const o=e[0].language;return(e,i,r)=>{const s=i.viewItem;const a=s.getChild(0);if(!a||!a.is("element","code")){return}const{consumable:c,writer:l}=r;if(!c.test(s,{name:true})||!c.test(a,{name:true})){return}const d=l.createElement("codeBlock");const u=[...a.getClassNames()];if(!u.length){u.push("")}for(const t of u){const e=n[t];if(e){l.setAttribute("language",e,d);break}}if(!d.hasAttribute("language")){l.setAttribute("language",o,d)}const h=[...t.createRangeIn(a)].filter((t=>t.type==="text")).map((({item:t})=>t.data)).join("");const f=_y(l,h);l.append(f,d);if(!r.safeInsert(d,i.modelCursor)){return}c.consume(s,{name:true});c.consume(a,{name:true});r.updateConversionResult(d,i)}}const Py="paragraph";class Ly extends tC{static get pluginName(){return"CodeBlockEditing"}static get requires(){return[by]}constructor(t){super(t);t.config.define("codeBlock",{languages:[{language:"plaintext",label:"Plain text"},{language:"c",label:"C"},{language:"cs",label:"C#"},{language:"cpp",label:"C++"},{language:"css",label:"CSS"},{language:"diff",label:"Diff"},{language:"html",label:"HTML"},{language:"java",label:"Java"},{language:"javascript",label:"JavaScript"},{language:"php",label:"PHP"},{language:"python",label:"Python"},{language:"ruby",label:"Ruby"},{language:"typescript",label:"TypeScript"},{language:"xml",label:"XML"}],indentSequence:"\t"})}init(){const t=this.editor;const e=t.model.schema;const n=t.model;const o=wy(t);t.commands.add("codeBlock",new xy(t));t.commands.add("indentCodeBlock",new Dy(t));t.commands.add("outdentCodeBlock",new My(t));const i=t=>(e,n)=>{const o=this.editor.commands.get(t);if(o.isEnabled){this.editor.execute(t);n()}};t.keystrokes.set("Tab",i("indentCodeBlock"));t.keystrokes.set("Shift+Tab",i("outdentCodeBlock"));e.register("codeBlock",{allowWhere:"$block",isBlock:true,allowAttributes:["language"]});e.extend("$text",{allowIn:"codeBlock"});e.addAttributeCheck((t=>{if(t.endsWith("codeBlock $text")){return false}}));t.editing.downcastDispatcher.on("insert:codeBlock",Iy(n,o,true));t.data.downcastDispatcher.on("insert:codeBlock",Iy(n,o));t.data.downcastDispatcher.on("insert:softBreak",By(n),{priority:"high"});t.data.upcastDispatcher.on("element:pre",Ny(t.editing.view,o));this.listenTo(t.editing.view.document,"clipboardInput",((t,e)=>{const o=n.document.selection;if(!o.anchor.parent.is("element","codeBlock")){return}const i=e.dataTransfer.getData("text/plain");n.change((e=>{n.insertContent(_y(e,i),o);t.stop()}))}));this.listenTo(n,"getSelectedContent",((t,[o])=>{const i=o.anchor;if(o.isCollapsed||!i.parent.is("element","codeBlock")||!i.hasSameParentAs(o.focus)){return}n.change((n=>{const r=t.return;if(r.childCount>1||o.containsEntireContent(i.parent)){const e=n.createElement("codeBlock",i.parent.getAttributes());n.append(r,e);const o=n.createDocumentFragment();n.append(e,o);t.return=o}else{const t=r.getChild(0);if(e.checkAttribute(t,"code")){n.setAttribute("code",true,t)}}}))}))}afterInit(){const t=this.editor;const e=t.commands;const n=e.get("indent");const o=e.get("outdent");if(n){n.registerChildCommand(e.get("indentCodeBlock"))}if(o){o.registerChildCommand(e.get("outdentCodeBlock"))}this.listenTo(t.editing.view.document,"enter",((e,n)=>{const o=t.model.document.selection.getLastPosition().parent;if(!o.is("element","codeBlock")){return}if(!zy(t,n.isSoft)&&!Ry(t,n.isSoft)){Oy(t)}n.preventDefault();e.stop()}))}}function Oy(t){const e=t.model;const n=e.document;const o=n.selection.getLastPosition();const i=o.nodeBefore||o.textNode;let r;if(i&&i.is("$text")){r=Ay(i)}t.model.change((e=>{t.execute("shiftEnter");if(r){e.insertText(r,n.selection.anchor)}}))}function zy(t,e){const n=t.model;const o=n.document;const i=t.editing.view;const r=o.selection.getLastPosition();const s=r.nodeAfter;if(e||!o.selection.isCollapsed||!r.isAtStart){return false}if(!s||!s.is("element","softBreak")){return false}t.model.change((e=>{t.execute("enter");const n=o.selection.anchor.parent.previousSibling;e.rename(n,Py);e.setSelection(n,"in");t.model.schema.removeDisallowedAttributes([n],e);e.remove(s)}));i.scrollToTheSelection();return true}function Ry(t,e){const n=t.model;const o=n.document;const i=t.editing.view;const r=o.selection.getLastPosition();const s=r.nodeBefore;let a;if(e||!o.selection.isCollapsed||!r.isAtEnd||!s){return false}if(s.is("element","softBreak")){a=n.createRangeOn(s)}else if(s.is("$text")&&!s.data.match(/\S/)&&s.previousSibling&&s.previousSibling.is("element","softBreak")){a=n.createRange(n.createPositionBefore(s.previousSibling),n.createPositionAfter(s))}else{return false}t.model.change((e=>{e.remove(a);t.execute("enter");const n=o.selection.anchor.parent;e.rename(n,Py);t.model.schema.removeDisallowedAttributes([n],e)}));i.scrollToTheSelection();return true}class jy{constructor(t,e){if(e){Gc(this,e)}if(t){this.set(t)}}}_s(jy,$c);var Fy=n(30);var Vy={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Vy.insert="head";Vy.singleton=true;var Uy=ik()(Fy["a"],Vy);var Hy=Fy["a"].locals||{};class Ky extends Xk{constructor(t){super(t);const e=this.bindTemplate;this.set("icon");this.set("isEnabled",true);this.set("isOn",false);this.set("isToggleable",false);this.set("isVisible",true);this.set("keystroke");this.set("label");this.set("tabindex",-1);this.set("tooltip");this.set("tooltipPosition","s");this.set("type","button");this.set("withText",false);this.children=this.createCollection();this.actionView=this._createActionView();this.arrowView=this._createArrowView();this.keystrokes=new Fp;this.focusTracker=new Xp;this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",e.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render();this.children.add(this.actionView);this.children.add(this.arrowView);this.focusTracker.add(this.actionView.element);this.focusTracker.add(this.arrowView.element);this.keystrokes.listenTo(this.element);this.keystrokes.set("arrowright",((t,e)=>{if(this.focusTracker.focusedElement===this.actionView.element){this.arrowView.focus();e()}}));this.keystrokes.set("arrowleft",((t,e)=>{if(this.focusTracker.focusedElement===this.arrowView.element){this.actionView.focus();e()}}))}focus(){this.actionView.focus()}_createActionView(){const t=new sw;t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this);t.extendTemplate({attributes:{class:"ck-splitbutton__action"}});t.delegate("execute").to(this);return t}_createArrowView(){const t=new sw;const e=t.bindTemplate;t.icon=aw;t.extendTemplate({attributes:{class:"ck-splitbutton__arrow","aria-haspopup":true,"aria-expanded":e.to("isOn",(t=>String(t)))}});t.bind("isEnabled").to(this);t.delegate("execute").to(this,"open");return t}}var Gy='';var qy=n(31);var Wy={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Wy.insert="head";Wy.singleton=true;var Yy=ik()(qy["a"],Wy);var Qy=qy["a"].locals||{};class $y extends tC{init(){const t=this.editor;const e=t.t;const n=t.ui.componentFactory;const o=wy(t);const i=o[0];n.add("codeBlock",(n=>{const r=t.commands.get("codeBlock");const s=Sw(n,Ky);const a=s.buttonView;a.set({label:e("Insert code block"),tooltip:true,icon:Gy,isToggleable:true});a.bind("isOn").to(r,"value",(t=>!!t));a.on("execute",(()=>{t.execute("codeBlock",{language:i.language});t.editing.view.focus()}));s.on("execute",(e=>{t.execute("codeBlock",{language:e.source._codeBlockLanguage,forceValue:true});t.editing.view.focus()}));s.class="ck-code-block-dropdown";s.bind("isEnabled").to(r);Bw(s,this._getLanguageListItemDefinitions(o));return s}))}_getLanguageListItemDefinitions(t){const e=this.editor;const n=e.commands.get("codeBlock");const o=new vs;for(const e of t){const t={type:"button",model:new jy({_codeBlockLanguage:e.language,label:e.label,withText:true})};t.model.bind("isOn").to(n,"value",(e=>e===t.model._codeBlockLanguage));o.add(t)}return o}}class Zy extends tC{static get requires(){return[Ly,$y]}static get pluginName(){return"CodeBlock"}}class Jy extends nC{execute(){const t=this.editor.model;const e=t.document;t.change((n=>{Xy(this.editor.model,n,e.selection,t.schema);this.fire("afterExecute",{writer:n})}))}}function Xy(t,e,n,o){const i=n.isCollapsed;const r=n.getFirstRange();const s=r.start.parent;const a=r.end.parent;if(o.isLimit(s)||o.isLimit(a)){if(!i&&s==a){t.deleteContent(n)}return}if(i){const t=uy(e.model.schema,n.getAttributes());tx(e,r.start);e.setSelectionAttribute(t)}else{const o=!(r.start.isAtStart&&r.end.isAtEnd);const i=s==a;t.deleteContent(n,{leaveUnmerged:o});if(o){if(i){tx(e,n.focus)}else{e.setSelection(a,0)}}}}function tx(t,e){t.split(e);t.setSelection(e.parent.nextSibling,0)}class ex extends tC{static get pluginName(){return"Enter"}init(){const t=this.editor;const e=t.editing.view;const n=e.document;e.addObserver(ky);t.commands.add("enter",new Jy(t));this.listenTo(n,"enter",((n,o)=>{o.preventDefault();if(o.isSoft){return}t.execute("enter");e.scrollToTheSelection()}),{priority:"low"})}}class nx extends nC{execute(){const t=this.editor.model;const e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!ox(t.schema,n)){do{n=n.parent;if(!n){return}}while(!ox(t.schema,n))}t.change((t=>{t.setSelection(n,"in")}))}}function ox(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const ix=zl("Ctrl+A");class rx extends tC{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor;const e=t.editing.view;const n=e.document;t.commands.add("selectAll",new nx(t));this.listenTo(n,"keydown",((e,n)=>{if(Ol(n)===ix){t.execute("selectAll");n.preventDefault()}}))}}var sx='';class ax extends tC{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll");const o=new sw(e);const i=e.t;o.set({label:i("Select all"),icon:sx,keystroke:"Ctrl+A",tooltip:true});o.bind("isOn","isEnabled").to(n,"value","isEnabled");this.listenTo(o,"execute",(()=>{t.execute("selectAll");t.editing.view.focus()}));return o}))}}class cx extends tC{static get requires(){return[rx,ax]}static get pluginName(){return"SelectAll"}}class lx extends nC{constructor(t,e){super(t);this.direction=e;this._buffer=new n_(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model;const n=e.document;e.enqueueChange(this._buffer.batch,(o=>{this._buffer.lock();const i=o.createSelection(t.selection||n.selection);const r=i.isCollapsed;if(i.isCollapsed){e.modifySelection(i,{direction:this.direction,unit:t.unit})}if(this._shouldEntireContentBeReplacedWithParagraph(t.sequence||1)){this._replaceEntireContentWithParagraph(o);return}if(i.isCollapsed){return}let s=0;i.getFirstRange().getMinimalFlatRanges().forEach((t=>{s+=ml(t.getWalker({singleCharacters:true,ignoreElementEnd:true,shallow:true}))}));e.deleteContent(i,{doNotResetEntireContent:r,direction:this.direction});this._buffer.input(s);o.setSelection(i);this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1){return false}const e=this.editor.model;const n=e.document;const o=n.selection;const i=e.schema.getLimitElement(o);const r=o.isCollapsed&&o.containsEntireContent(i);if(!r){return false}if(!e.schema.checkChild(i,"paragraph")){return false}const s=i.getChild(0);if(s&&s.name==="paragraph"){return false}return true}_replaceEntireContentWithParagraph(t){const e=this.editor.model;const n=e.document;const o=n.selection;const i=e.schema.getLimitElement(o);const r=t.createElement("paragraph");t.remove(t.createRangeIn(i));t.insert(r,i);t.setSelection(r,0)}}class dx extends Xd{constructor(t){super(t);const e=t.document;let n=0;e.on("keyup",((t,e)=>{if(e.keyCode==Ll.delete||e.keyCode==Ll.backspace){n=0}}));e.on("keydown",((t,e)=>{const i={};if(e.keyCode==Ll.delete){i.direction="forward";i.unit="character"}else if(e.keyCode==Ll.backspace){i.direction="backward";i.unit="codePoint"}else{return}const r=El.isMac?e.altKey:e.ctrlKey;i.unit=r?"word":i.unit;i.sequence=++n;o(t,e.domEvent,i)}));if(El.isAndroid){e.on("beforeinput",((e,n)=>{if(n.domEvent.inputType!="deleteContentBackward"){return}const i={unit:"codepoint",direction:"backward",sequence:1};const r=n.domTarget.ownerDocument.defaultView.getSelection();if(r.anchorNode==r.focusNode&&r.anchorOffset+1!=r.focusOffset){i.selectionToRemove=t.domConverter.domSelectionToView(r)}o(e,n.domEvent,i)}))}function o(t,n,o){let i;e.once("delete",(t=>i=t),{priority:Number.POSITIVE_INFINITY});e.fire("delete",new th(e,n,o));if(i&&i.stop.called){t.stop()}}}observe(){}}class ux extends tC{static get pluginName(){return"Delete"}init(){const t=this.editor;const e=t.editing.view;const n=e.document;e.addObserver(dx);t.commands.add("forwardDelete",new lx(t,"forward"));t.commands.add("delete",new lx(t,"backward"));this.listenTo(n,"delete",((n,o)=>{const i={unit:o.unit,sequence:o.sequence};if(o.selectionToRemove){const e=t.model.createSelection();const n=[];for(const e of o.selectionToRemove.getRanges()){n.push(t.editing.mapper.toModelRange(e))}e.setTo(n);i.selection=e}t.execute(o.direction=="forward"?"forwardDelete":"delete",i);o.preventDefault();e.scrollToTheSelection()}));if(El.isAndroid){let t=null;this.listenTo(n,"delete",((e,n)=>{const o=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}}),{priority:"lowest"});this.listenTo(n,"keyup",((e,n)=>{if(t){const e=n.domTarget.ownerDocument.defaultView.getSelection();e.collapse(t.anchorNode,t.anchorOffset);e.extend(t.focusNode,t.focusOffset);t=null}}))}}}class hx extends tC{static get requires(){return[p_,ux]}static get pluginName(){return"Typing"}}const fx=new Map;function mx(t,e,n){let o=fx.get(t);if(!o){o=new Map;fx.set(t,o)}o.set(e,n)}function gx(t,e){const n=fx.get(t);if(n&&n.has(e)){return n.get(e)}return px}function px(t){return[t]}function kx(t,e,n={}){const o=gx(t.constructor,e.constructor);try{t=t.clone();return o(t,e,n)}catch(t){throw t}}function bx(t,e,n){t=t.slice();e=e.slice();const o=new wx(n.document,n.useRelations,n.forceWeakRemove);o.setOriginalOperations(t);o.setOriginalOperations(e);const i=o.originalOperations;if(t.length==0||e.length==0){return{operationsA:t,operationsB:e,originalOperations:i}}const r=new WeakMap;for(const e of t){r.set(e,0)}const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;while(a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const o=t.range.getDifference(e.range).map((e=>new Cg(e,t.key,t.oldValue,t.newValue,0)));const i=t.range.getIntersection(e.range);if(i){if(n.aIsStrong){o.push(new Cg(i,e.key,e.newValue,t.newValue,0))}}if(o.length==0){return[new Zg(0)]}return o}else{return[t]}}));mx(Cg,vg,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes);const o=n.map((e=>new Cg(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const n=_x(e,t.key,t.oldValue);if(n){o.unshift(n)}}return o}t.range=t.range._getTransformedByInsertion(e.position,e.howMany,false)[0];return[t]}));function _x(t,e,n){const o=t.nodes;const i=o.getNode(0).getAttribute(e);if(i==n){return null}const r=new tf(t.position,t.position.getShiftedBy(t.howMany));return new Cg(r,e,i,n,0)}mx(Cg,Dg,((t,e)=>{const n=[];if(t.range.start.hasSameParentAs(e.deletionPosition)){if(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition)){n.push(tf._createFromPositionAndShift(e.graveyardPosition,1))}}const o=t.range._getTransformedByMergeOperation(e);if(!o.isCollapsed){n.push(o)}return n.map((e=>new Cg(e,t.key,t.oldValue,t.newValue,t.baseVersion)))}));mx(Cg,_g,((t,e)=>{const n=vx(t.range,e);return n.map((e=>new Cg(e,t.key,t.oldValue,t.newValue,t.baseVersion)))}));function vx(t,e){const n=tf._createFromPositionAndShift(e.sourcePosition,e.howMany);let o=null;let i=[];if(n.containsRange(t,true)){o=t}else if(t.start.hasSameParentAs(n.start)){i=t.getDifference(n);o=t.getIntersection(n)}else{i=[t]}const r=[];for(let t of i){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart();const o=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,o);r.push(...t)}if(o){r.push(o._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,false)[0])}return r}mx(Cg,Mg,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition)){if(!e.graveyardPosition){t.range.end.offset++}return[t]}if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();n.range=new tf(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition));t.range.end=e.splitPosition.clone();t.range.end.stickiness="toPrevious";return[t,n]}t.range=t.range._getTransformedBySplitOperation(e);return[t]}));mx(vg,Cg,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const o=_x(t,e.key,e.newValue);if(o){n.push(o)}}return n}));mx(vg,vg,((t,e,n)=>{if(t.position.isEqual(e.position)&&n.aIsStrong){return[t]}t.position=t.position._getTransformedByInsertOperation(e);return[t]}));mx(vg,_g,((t,e)=>{t.position=t.position._getTransformedByMoveOperation(e);return[t]}));mx(vg,Mg,((t,e)=>{t.position=t.position._getTransformedBySplitOperation(e);return[t]}));mx(vg,Dg,((t,e)=>{t.position=t.position._getTransformedByMergeOperation(e);return[t]}));mx(yg,vg,((t,e)=>{if(t.oldRange){t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]}if(t.newRange){t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]}return[t]}));mx(yg,yg,((t,e,n)=>{if(t.name==e.name){if(n.aIsStrong){t.oldRange=e.newRange?e.newRange.clone():null}else{return[new Zg(0)]}}return[t]}));mx(yg,Dg,((t,e)=>{if(t.oldRange){t.oldRange=t.oldRange._getTransformedByMergeOperation(e)}if(t.newRange){t.newRange=t.newRange._getTransformedByMergeOperation(e)}return[t]}));mx(yg,_g,((t,e,n)=>{if(t.oldRange){t.oldRange=tf._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))}if(t.newRange){if(n.abRelation){const o=tf._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if(n.abRelation.side=="left"&&e.targetPosition.isEqual(t.newRange.start)){t.newRange.start.path=n.abRelation.path;t.newRange.end=o.end;return[t]}else if(n.abRelation.side=="right"&&e.targetPosition.isEqual(t.newRange.end)){t.newRange.start=o.start;t.newRange.end.path=n.abRelation.path;return[t]}}t.newRange=tf._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]}));mx(yg,Mg,((t,e,n)=>{if(t.oldRange){t.oldRange=t.oldRange._getTransformedBySplitOperation(e)}if(t.newRange){if(n.abRelation){const o=t.newRange._getTransformedBySplitOperation(e);if(t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement){t.newRange.start=$h._createAt(e.insertionPosition)}else if(t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement){t.newRange.start=$h._createAt(e.moveTargetPosition)}if(t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement){t.newRange.end=$h._createAt(e.moveTargetPosition)}else if(t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement){t.newRange.end=$h._createAt(e.insertionPosition)}else{t.newRange.end=o.end}return[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]}));mx(Dg,vg,((t,e)=>{if(t.sourcePosition.hasSameParentAs(e.position)){t.howMany+=e.howMany}t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e);t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e);return[t]}));mx(Dg,Dg,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(!n.bWasUndone){return[new Zg(0)]}else{const n=e.graveyardPosition.path.slice();n.push(0);t.sourcePosition=new $h(e.graveyardPosition.root,n);t.howMany=0;return[t]}}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&n.abRelation!="splitAtSource"){const o=t.targetPosition.root.rootName=="$graveyard";const i=e.targetPosition.root.rootName=="$graveyard";const r=o&&!i;const s=i&&!o;const a=s||!r&&n.aIsStrong;if(a){const n=e.targetPosition._getTransformedByMergeOperation(e);const o=t.targetPosition._getTransformedByMergeOperation(e);return[new _g(n,t.howMany,o,0)]}else{return[new Zg(0)]}}if(t.sourcePosition.hasSameParentAs(e.targetPosition)){t.howMany+=e.howMany}t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e);t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e);if(!t.graveyardPosition.isEqual(e.graveyardPosition)||!n.aIsStrong){t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)}return[t]}));mx(Dg,_g,((t,e,n)=>{const o=tf._createFromPositionAndShift(e.sourcePosition,e.howMany);if(e.type=="remove"&&!n.bWasUndone&&!n.forceWeakRemove){if(t.deletionPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.sourcePosition)){return[new Zg(0)]}}if(t.sourcePosition.hasSameParentAs(e.targetPosition)){t.howMany+=e.howMany}if(t.sourcePosition.hasSameParentAs(e.sourcePosition)){t.howMany-=e.howMany}t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e);t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e);if(!t.graveyardPosition.isEqual(e.targetPosition)){t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}return[t]}));mx(Dg,Mg,((t,e,n)=>{if(e.graveyardPosition){t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1);if(t.deletionPosition.isEqual(e.graveyardPosition)){t.howMany=e.howMany}}if(t.targetPosition.isEqual(e.splitPosition)){const o=e.howMany!=0;const i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(o||i||n.abRelation=="mergeTargetNotMoved"){t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e);return[t]}}if(t.sourcePosition.isEqual(e.splitPosition)){if(n.abRelation=="mergeSourceNotMoved"){t.howMany=0;t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e);return[t]}if(n.abRelation=="mergeSameElement"||t.sourcePosition.offset>0){t.sourcePosition=e.moveTargetPosition.clone();t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e);return[t]}}if(t.sourcePosition.hasSameParentAs(e.splitPosition)){t.howMany=e.splitPosition.offset}t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e);t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e);return[t]}));mx(_g,vg,((t,e)=>{const n=tf._createFromPositionAndShift(t.sourcePosition,t.howMany);const o=n._getTransformedByInsertOperation(e,false)[0];t.sourcePosition=o.start;t.howMany=o.end.offset-o.start.offset;if(!t.targetPosition.isEqual(e.position)){t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)}return[t]}));mx(_g,_g,((t,e,n)=>{const o=tf._createFromPositionAndShift(t.sourcePosition,t.howMany);const i=tf._createFromPositionAndShift(e.sourcePosition,e.howMany);let r=n.aIsStrong;let s=!n.aIsStrong;if(n.abRelation=="insertBefore"||n.baRelation=="insertAfter"){s=true}else if(n.abRelation=="insertAfter"||n.baRelation=="insertBefore"){s=false}let a;if(t.targetPosition.isEqual(e.targetPosition)&&s){a=t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany)}else{a=t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany)}if(yx(t,e)&&yx(e,t)){return[e.getReversed()]}const c=o.containsPosition(e.targetPosition);if(c&&o.containsRange(i,true)){o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);return xx([o],a)}const l=i.containsPosition(t.targetPosition);if(l&&i.containsRange(o,true)){o.start=o.start._getCombined(e.sourcePosition,e.getMovedRangeStart());o.end=o.end._getCombined(e.sourcePosition,e.getMovedRangeStart());return xx([o],a)}const d=Ls(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if(d=="prefix"||d=="extension"){o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);return xx([o],a)}if(t.type=="remove"&&e.type!="remove"&&!n.aWasUndone&&!n.forceWeakRemove){r=true}else if(t.type!="remove"&&e.type=="remove"&&!n.bWasUndone&&!n.forceWeakRemove){r=false}const u=[];const h=o.getDifference(i);for(const t of h){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany);t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=Ls(t.start.getParentPath(),e.getMovedRangeStart().getParentPath())=="same";const o=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);u.push(...o)}const f=o.getIntersection(i);if(f!==null&&r){f.start=f.start._getCombined(e.sourcePosition,e.getMovedRangeStart());f.end=f.end._getCombined(e.sourcePosition,e.getMovedRangeStart());if(u.length===0){u.push(f)}else if(u.length==1){if(i.start.isBefore(o.start)||i.start.isEqual(o.start)){u.unshift(f)}else{u.push(f)}}else{u.splice(1,0,f)}}if(u.length===0){return[new Zg(t.baseVersion)]}return xx(u,a)}));mx(_g,Mg,((t,e,n)=>{let o=t.targetPosition.clone();if(!t.targetPosition.isEqual(e.insertionPosition)||!e.graveyardPosition||n.abRelation=="moveTargetAfter"){o=t.targetPosition._getTransformedBySplitOperation(e)}const i=tf._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition)){if(!e.graveyardPosition){t.howMany++}t.targetPosition=o;return[t]}if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new tf(e.splitPosition,i.end);t=t._getTransformedBySplitOperation(e);const n=[new tf(i.start,e.splitPosition),t];return xx(n,o)}if(t.targetPosition.isEqual(e.splitPosition)&&n.abRelation=="insertAtSource"){o=e.moveTargetPosition}if(t.targetPosition.isEqual(e.insertionPosition)&&n.abRelation=="insertBetween"){o=t.targetPosition}const r=i._getTransformedBySplitOperation(e);const s=[r];if(e.graveyardPosition){const o=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);if(t.howMany>1&&o&&!n.aWasUndone){s.push(tf._createFromPositionAndShift(e.insertionPosition,1))}}return xx(s,o)}));mx(_g,Dg,((t,e,n)=>{const o=tf._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.sourcePosition)){if(t.type=="remove"&&!n.forceWeakRemove){if(!n.aWasUndone){const n=[];let o=e.graveyardPosition.clone();let i=e.targetPosition._getTransformedByMergeOperation(e);if(t.howMany>1){n.push(new _g(t.sourcePosition,t.howMany-1,t.targetPosition,0));o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1);i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1)}const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition);const s=new _g(o,1,r,0);const a=s.getMovedRangeStart().path.slice();a.push(0);const c=new $h(s.targetPosition.root,a);i=i._getTransformedByMove(o,r,1);const l=new _g(i,e.howMany,c,0);n.push(s);n.push(l);return n}}else{if(t.howMany==1){if(!n.bWasUndone){return[new Zg(0)]}else{t.sourcePosition=e.graveyardPosition.clone();t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e);return[t]}}}}const i=tf._createFromPositionAndShift(t.sourcePosition,t.howMany);const r=i._getTransformedByMergeOperation(e);t.sourcePosition=r.start;t.howMany=r.end.offset-r.start.offset;t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e);return[t]}));mx(xg,vg,((t,e)=>{t.position=t.position._getTransformedByInsertOperation(e);return[t]}));mx(xg,Dg,((t,e)=>{if(t.position.isEqual(e.deletionPosition)){t.position=e.graveyardPosition.clone();t.position.stickiness="toNext";return[t]}t.position=t.position._getTransformedByMergeOperation(e);return[t]}));mx(xg,_g,((t,e)=>{t.position=t.position._getTransformedByMoveOperation(e);return[t]}));mx(xg,xg,((t,e,n)=>{if(t.position.isEqual(e.position)){if(n.aIsStrong){t.oldName=e.newName}else{return[new Zg(0)]}}return[t]}));mx(xg,Mg,((t,e)=>{const n=t.position.path;const o=e.splitPosition.getParentPath();if(Ls(n,o)=="same"&&!e.graveyardPosition){const e=new xg(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}t.position=t.position._getTransformedBySplitOperation(e);return[t]}));mx(Eg,Eg,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue){return[new Zg(0)]}else{t.oldValue=e.newValue}}return[t]}));mx(Mg,vg,((t,e)=>{if(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const o=new $h(e.graveyardPosition.root,n);const i=Mg.getInsertionPosition(new $h(e.graveyardPosition.root,n));const r=new Mg(o,0,null,0);r.insertionPosition=i;t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e);t.insertionPosition=Mg.getInsertionPosition(t.splitPosition);t.graveyardPosition=r.insertionPosition.clone();t.graveyardPosition.stickiness="toNext";return[r,t]}if(t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)){t.howMany--}if(t.splitPosition.hasSameParentAs(e.targetPosition)){t.howMany+=e.howMany}t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e);t.insertionPosition=Mg.getInsertionPosition(t.splitPosition);if(t.graveyardPosition){t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)}return[t]}));mx(Mg,_g,((t,e,n)=>{const o=tf._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=o.start.isEqual(t.graveyardPosition)||o.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e);const o=t.graveyardPosition._getTransformedByMoveOperation(e);const i=o.path.slice();i.push(0);const r=new $h(o.root,i);const s=new _g(n,t.howMany,r,0);return[s]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);t.howMany-=n;if(t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition){return[new Zg(0)]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){return[new Zg(0)]}if(n.abRelation=="splitBefore"){t.howMany=0;t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e);return[t]}}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const o=t.splitPosition.root.rootName=="$graveyard";const i=e.splitPosition.root.rootName=="$graveyard";const r=o&&!i;const s=i&&!o;const a=s||!r&&n.aIsStrong;if(a){const n=[];if(e.howMany){n.push(new _g(e.moveTargetPosition,e.howMany,e.splitPosition,0))}if(t.howMany){n.push(new _g(t.splitPosition,t.howMany,t.moveTargetPosition,0))}return n}else{return[new Zg(0)]}}if(t.graveyardPosition){t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)}if(t.splitPosition.isEqual(e.insertionPosition)&&n.abRelation=="splitBefore"){t.howMany++;return[t]}if(e.splitPosition.isEqual(t.insertionPosition)&&n.baRelation=="splitBefore"){const n=e.insertionPosition.path.slice();n.push(0);const o=new $h(e.insertionPosition.root,n);const i=new _g(t.insertionPosition,1,o,0);return[t,i]}if(t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offsetthis.clearStack()))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection;const n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n});this.refresh()}clearStack(){this._stack=[];this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model;const i=o.document;const r=[];const s=t.map((t=>t.getTransformedByOperations(n)));const a=s.flat();for(const t of s){const e=t.filter((t=>!Mx(t,a)));Dx(e);const n=e.find((t=>t.root!=i.graveyard));if(n){r.push(n)}}if(r.length){o.change((t=>{t.setSelection(r,{backward:e})}))}}_undo(t,e){const n=this.editor.model;const o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1;const r=Array.from(o.history.getOperations(i));const s=bx([t.getReversed()],r,{useRelations:true,document:this.editor.model.document,padWithNoOps:false,forceWeakRemove:true});const a=s.operationsA;for(const i of a){e.addOperation(i);n.applyOperation(i);o.history.setOperationAsUndone(t,i)}}}}function Dx(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,true)))}class Tx extends Ex{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1;const n=this._stack.splice(e,1)[0];const o=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t);this.fire("revert",n.batch,o)}));this.refresh()}}class Sx extends Ex{execute(){const t=this._stack.pop();const e=this.editor.model.createBatch("transparent");this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1];const o=n.baseVersion+1;const i=this.editor.model.document.history.getOperations(o);this._restoreSelection(t.selection.ranges,t.selection.isBackward,i);this._undo(t.batch,e)}));this.refresh()}}class Ix extends tC{static get pluginName(){return"UndoEditing"}constructor(t){super(t);this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new Tx(t);this._redoCommand=new Sx(t);t.commands.add("undo",this._undoCommand);t.commands.add("redo",this._redoCommand);this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation){return}const o=n.batch;const i=this._redoCommand._createdBatches.has(o);const r=this._undoCommand._createdBatches.has(o);const s=this._batchRegistry.has(o);if(s||o.type=="transparent"&&!i&&!r){return}else{if(i){this._undoCommand.addBatch(o)}else if(!r){this._undoCommand.addBatch(o);this._redoCommand.clearStack()}}this._batchRegistry.add(o)}),{priority:"highest"});this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)}));t.keystrokes.set("CTRL+Z","undo");t.keystrokes.set("CTRL+Y","redo");t.keystrokes.set("CTRL+SHIFT+Z","redo")}}var Bx='';var Nx='';class Px extends tC{init(){const t=this.editor;const e=t.locale;const n=t.t;const o=e.uiLanguageDirection=="ltr"?Bx:Nx;const i=e.uiLanguageDirection=="ltr"?Nx:Bx;this._addButton("undo",n("Undo"),"CTRL+Z",o);this._addButton("redo",n("Redo"),"CTRL+Y",i)}_addButton(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const s=i.commands.get(t);const a=new sw(r);a.set({label:e,icon:o,keystroke:n,tooltip:true});a.bind("isEnabled").to(s,"isEnabled");this.listenTo(a,"execute",(()=>{i.execute(t);i.editing.view.focus()}));return a}))}}class Lx extends tC{static get requires(){return[Ix,Px]}static get pluginName(){return"Undo"}}class Ox extends tC{static get requires(){return[E_,ex,cx,by,hx,Lx]}static get pluginName(){return"Essentials"}}const zx={autoRefresh:true};const Rx=36e5;class jx{constructor(t,e=zx){if(!t){throw new ss["a"]("token-missing-token-url",this)}if(e.initValue){this._validateTokenValue(e.initValue)}this.set("value",e.initValue);if(typeof t==="function"){this._refresh=t}else{this._refresh=()=>Fx(t)}this._options=Object.assign({},zx,e)}init(){return new Promise(((t,e)=>{if(!this.value){this.refreshToken().then(t).catch(e);return}if(this._options.autoRefresh){this._registerRefreshTokenTimeout()}t(this)}))}refreshToken(){return this._refresh().then((t=>{this._validateTokenValue(t);this.set("value",t);if(this._options.autoRefresh){this._registerRefreshTokenTimeout()}})).then((()=>this))}destroy(){clearTimeout(this._tokenRefreshTimeout)}_validateTokenValue(t){const e=typeof t==="string";const n=!/^".*"$/.test(t);const o=e&&t.split(".").length===3;if(!(n&&o)){throw new ss["a"]("token-not-in-jwt-format",this)}}_registerRefreshTokenTimeout(){const t=this._getTokenRefreshTimeoutTime();clearTimeout(this._tokenRefreshTimeout);this._tokenRefreshTimeout=setTimeout((()=>{this.refreshToken()}),t)}_getTokenRefreshTimeoutTime(){try{const[,t]=this.value.split(".");const{exp:e}=JSON.parse(atob(t));if(!e){return Rx}const n=Math.floor((e*1e3-Date.now())/2);return n}catch(t){return Rx}}static create(t,e=zx){const n=new jx(t,e);return n.init()}}_s(jx,$c);function Fx(t){return new Promise(((e,n)=>{const o=new XMLHttpRequest;o.open("GET",t);o.addEventListener("load",(()=>{const t=o.status;const i=o.response;if(t<200||t>299){return n(new ss["a"]("token-cannot-download-new-token",null))}return e(i)}));o.addEventListener("error",(()=>n(new Error("Network Error"))));o.addEventListener("abort",(()=>n(new Error("Abort"))));o.send()}))}var Vx=jx;class Ux extends qv{static get pluginName(){return"CloudServices"}init(){const t=this.context.config;const e=t.get("cloudServices")||{};for(const t in e){this[t]=e[t]}if(!this.tokenUrl){this.token=null;return}this.token=new Ux.Token(this.tokenUrl);return this.token.init()}destroy(){super.destroy();if(this.token){this.token.destroy()}}}Ux.Token=Vx;const Hx=["length","The editor stylesheet could not be found in the document. Check your webpack config – style-loader should use data-cke=true attribute for the editor stylesheet.","join","then",".ck-content","data-cke",":root","EDITOR_STYLES","push","fetch","styleSheets","text","all","indexOf","cssRules","trim","cssText"];(function(t,e){const n=function(e){while(--e){t["push"](t["shift"]())}};n(++e)})(Hx,207);const Kx=function(t,e){t=t-0;let n=Hx[t];return n};function Gx(t){if(!t)return new Promise((t=>t("")));const e=[];for(const n of t)Kx("0x4")!==n?e["push"](window[Kx("0x6")](n)[Kx("0x0")]((t=>t[Kx("0x8")]()))):e[Kx("0x5")](qx());return Promise[Kx("0x9")](e)[Kx("0x0")]((t=>t[Kx("0x10")](" ")[Kx("0xc")]()))}function qx(){const t=[],e=[];for(const n of document[Kx("0x7")])if(n["ownerNode"]["hasAttribute"](Kx("0x2")))for(const o of n[Kx("0xb")])-1!==o[Kx("0xd")][Kx("0xa")](Kx("0x1"))?t[Kx("0x5")](o[Kx("0xd")]):-1!==o["cssText"]["indexOf"](Kx("0x3"))&&e[Kx("0x5")](o[Kx("0xd")]);return t[Kx("0xe")]||console["warn"](Kx("0xf")),[...e,...t]["join"](" ")[Kx("0xc")]()}class Wx extends nC{constructor(t){super(t),this["set"]("isBusy",!1)}["refresh"](){this["isEnabled"]=!this["isBusy"],this["value"]=this["isBusy"]?"pending":void 0}["execute"](t={}){const e=this["editor"],n=e["t"],o=t["converterUrl"]||"https://pdf-converter.cke-cs.com/v1/convert/",i=t["dataCallback"]||(t=>t["getData"]());return this["isBusy"]=!0,this["refresh"](),Gx(t["stylesheets"]||["EDITOR_STYLES"])["then"]((n=>{const r={html:'\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t'+i(e)+"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t",css:n,options:t["converterOptions"]},s={method:"POST",headers:{"Content-Type":"application/json",Accept:"application/pdf",...t["token"]&&{Authorization:t["token"]["value"]},"x-cs-app-id":t["appID"]||"cke5"},body:JSON["stringify"](r)};return window["fetch"](o,s)["then"]((t=>{if(200!==t["status"])throw t;return t["blob"]()}))["then"]((e=>{this["o"](e,t["fileName"]||"document.pdf")}))}))["catch"]((t=>{throw e["plugins"]["get"]("Notification")["showWarning"](n("An error occurred while generating the PDF.")),t}))["finally"]((()=>{this["isBusy"]=!1,this["refresh"]()}))}["o"](t,e){const n=document["createElement"]("a");n["href"]=window["URL"]["createObjectURL"](t),n["download"]=e,n["click"](),n["remove"]()}}var Yx='\n';var Qx=n(32);var $x={injectType:"singletonStyleTag",attributes:{"data-cke":true}};$x.insert="head";$x.singleton=true;var Zx=ik()(Qx["a"],$x);var Jx=Qx["a"].locals||{};class Xx extends tC{static get["pluginName"](){return"ExportPdf"}static get["requires"](){return[Wv,Ux]}["init"](){const t=this["editor"],e=t["t"],n=t["config"]["get"]("exportPdf")||{},o=t["plugins"]["get"]("CloudServices")["token"];t["commands"]["add"]("exportPdf",new Wx(t)),t["ui"]["componentFactory"]["add"]("exportPdf",(i=>{const r=t["commands"]["get"]("exportPdf"),s=new sw(i);s["set"]({label:e("Export to PDF"),icon:Yx,tooltip:!0}),s["bind"]("isOn","isEnabled")["to"](r,"isBusy","isEnabled"),s["extendTemplate"]({attributes:{class:[s["bindTemplate"]["if"]("isOn","ck-exportpdf_status-pending")]}});const a=new Xk;return a["setTemplate"]({tag:"span",attributes:{class:["ck","ck-exportpdf__spinner-container"]},children:[{tag:"span",attributes:{class:["ck","ck-exportpdf__spinner"]}}]}),s["children"]["add"](a),this["listenTo"](s,"execute",(()=>{t["execute"]("exportPdf",{...n,...o&&{token:o}}),t["editing"]["view"]["focus"]()})),s}))}}const tE=["CommentsRepository","authorId","hasAttribute","all","get","comments","styleSheets","getSuggestions","plugins","keys","data-cke","Users","trim","content","cssRules","length","warn","EDITOR_STYLES","name",".ck-content","has","getCommentThreads","then","ownerNode","join","cssText","author","push","map","createdAt","TrackChanges","indexOf"];(function(t,e){const n=function(e){while(--e){t["push"](t["shift"]())}};n(++e)})(tE,404);const eE=function(t,e){t=t-0;let n=tE[t];return n};function nE(t){if(!t)return new Promise((t=>t("")));const e=[];for(const n of t)eE("0x1d")!==n?e[eE("0x7")](window["fetch"](n)[eE("0x2")]((t=>t["text"]()))):e["push"](oE());return Promise[eE("0xf")](e)[eE("0x2")]((t=>t["join"](" ")[eE("0x18")]()))}function oE(){const t=[],e=[];for(const n of document[eE("0x12")])if(n[eE("0x3")][eE("0xe")](eE("0x16")))for(const o of n[eE("0x1a")])-1!==o[eE("0x5")][eE("0xb")](eE("0x1f"))?t[eE("0x7")](o[eE("0x5")]):-1!==o[eE("0x5")]["indexOf"](":root")&&e[eE("0x7")](o[eE("0x5")]);return t[eE("0x1b")]||console[eE("0x1c")]("The editor stylesheet could not be found in the document. Check your webpack config – style-loader should use data-cke=true attribute for the editor stylesheet."),[...e,...t][eE("0x4")](" ")[eE("0x18")]()}function iE(t){const e=t["plugins"][eE("0x0")]("Users"),n=t[eE("0x14")]["has"](eE("0xc")),o=t[eE("0x14")][eE("0x0")]("TrackChanges"),i={};if(e&&n){const e=rE(t["plugins"][eE("0x10")](eE("0xc"))[eE("0x1")]({skipNotAttached:!0,skipEmpty:!0}));Object[eE("0x15")](e)[eE("0x1b")]&&(i[eE("0x11")]=e)}if(e&&o){const e=t["plugins"][eE("0x10")](eE("0xa")),n=t[eE("0x14")]["get"](eE("0x17")),o=sE(e[eE("0x13")](),n["users"]);Object[eE("0x15")](o)[eE("0x1b")]&&(i["suggestions"]=o)}return i}function rE(t){const e={};if(!t["length"])return e;for(const n of t)n["comments"][eE("0x8")]((t=>{void 0===e[n["id"]]&&(e[n["id"]]=[]),e[n["id"]]["push"]({author:t[eE("0x6")][eE("0x1e")],content:t[eE("0x19")]})}));return e}function sE(t,e){const n={};if(!t[eE("0x1b")]||!e[eE("0x1b")])return n;for(const o of t)n[o["id"]]={author:e[eE("0x10")](o[eE("0xd")])["name"],created:o[eE("0x9")]};return n}class aE extends nC{constructor(t){super(t),this["set"]("isBusy",!1)}["refresh"](){this["isEnabled"]=!this["isBusy"],this["value"]=this["isBusy"]?"pending":void 0}["execute"](t={}){const e=this["editor"],n=e["t"],o=t["converterUrl"]||"https://docx-converter.cke-cs.com/v1/convert",i=t["converterOptions"]||{},r=!1!==i["auto_pagination"];return this["isBusy"]=!0,this["refresh"](),nE(t["stylesheets"]||["EDITOR_STYLES"])["then"]((n=>{const s=e["getData"]({pagination:r}),a={html:'
'+s+"
",css:n,options:{...i,...iE(e)}},c={method:"POST",headers:{"Content-Type":"application/json",Accept:"application/docx",...t["token"]&&{Authorization:t["token"]["value"]}},body:JSON["stringify"](a)};return window["fetch"](o,c)["then"]((t=>{if(200!==t["status"])throw t;return t["blob"]()}))["then"]((e=>{this["o"](e,t["fileName"]||"document.docx")}))}))["catch"]((t=>{throw e["plugins"]["get"]("Notification")["showWarning"](n("An error occurred while generating the Word file.")),t}))["finally"]((()=>{this["isBusy"]=!1,this["refresh"]()}))}["o"](t,e){const n=document["createElement"]("a");n["href"]=window["URL"]["createObjectURL"](t),n["download"]=e,n["click"](),n["remove"]()}}var cE='';var lE=n(33);var dE={injectType:"singletonStyleTag",attributes:{"data-cke":true}};dE.insert="head";dE.singleton=true;var uE=ik()(lE["a"],dE);var hE=lE["a"].locals||{};class fE extends tC{static get["pluginName"](){return"ExportWord"}static get["requires"](){return[Wv,Ux]}["init"](){const t=this["editor"],e=t["t"],n=t["config"]["get"]("exportWord")||{},o=t["plugins"]["get"]("CloudServices")["token"];t["commands"]["add"]("exportWord",new aE(t)),t["ui"]["componentFactory"]["add"]("exportWord",(i=>{const r=t["commands"]["get"]("exportWord"),s=new sw(i);s["set"]({label:e("Export to Word"),icon:cE,tooltip:!0}),s["bind"]("isOn","isEnabled")["to"](r,"isBusy","isEnabled"),s["extendTemplate"]({attributes:{class:[s["bindTemplate"]["if"]("isOn","ck-exportword_status-pending")]}});const a=new Xk;return a["setTemplate"]({tag:"span",attributes:{class:["ck","ck-exportword__spinner-container"]},children:[{tag:"span",attributes:{class:["ck","ck-exportword__spinner"]}}]}),s["children"]["add"](a),this["listenTo"](s,"execute",(()=>{t["execute"]("exportWord",{...n,...o&&{token:o}}),t["editing"]["view"]["focus"]()})),s}))}}class mE extends nC{constructor(t,e){super(t);this.attributeKey=e}refresh(){const t=this.editor.model;const e=t.document;this.value=e.selection.getAttribute(this.attributeKey);this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model;const n=e.document;const o=n.selection;const i=t.value;e.change((t=>{if(o.isCollapsed){if(i){t.setSelectionAttribute(this.attributeKey,i)}else{t.removeSelectionAttribute(this.attributeKey)}}else{const n=e.schema.getValidRanges(o.getRanges(),this.attributeKey);for(const e of n){if(i){t.setAttribute(this.attributeKey,i,e)}else{t.removeAttribute(this.attributeKey,e)}}}}))}}var gE='';class pE extends sw{constructor(t){super(t);const e=this.bindTemplate;this.set("color");this.set("hasBorder");this.icon=gE;this.extendTemplate({attributes:{style:{backgroundColor:e.to("color")},class:["ck","ck-color-grid__tile",e.if("hasBorder","ck-color-table__color-tile_bordered")]}})}render(){super.render();this.iconView.fillColor="hsl(0, 0%, 100%)"}}var kE=n(34);var bE={injectType:"singletonStyleTag",attributes:{"data-cke":true}};bE.insert="head";bE.singleton=true;var wE=ik()(kE["a"],bE);var CE=kE["a"].locals||{};class AE extends Xk{constructor(t,e){super(t);const n=e&&e.colorDefinitions||[];const o={};if(e&&e.columns){o.gridTemplateColumns=`repeat( ${e.columns}, 1fr)`}this.set("selectedColor");this.items=this.createCollection();this.focusTracker=new Xp;this.keystrokes=new Fp;this._focusCycler=new xb({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowleft",focusNext:"arrowright"}});this.items.on("add",((t,e)=>{e.isOn=e.color===this.selectedColor}));n.forEach((t=>{const e=new pE;e.set({color:t.color,label:t.label,tooltip:true,hasBorder:t.options.hasBorder});e.on("execute",(()=>{this.fire("execute",{value:t.color,hasBorder:t.options.hasBorder,label:t.label})}));this.items.add(e)}));this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:o}});this.on("change:selectedColor",((t,e,n)=>{for(const t of this.items){t.isOn=t.color===n}}))}focus(){if(this.items.length){this.items.first.focus()}}focusLast(){if(this.items.length){this.items.last.focus()}}render(){super.render();for(const t of this.items){this.focusTracker.add(t.element)}this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)}));this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)}));this.keystrokes.listenTo(this.element)}}class _E extends vs{constructor(t){super(t);this.set("isEmpty",true);this.on("change",(()=>{this.set("isEmpty",this.length===0)}))}add(t,e){if(this.find((e=>e.color===t.color))){return}super.add(t,e)}hasColor(t){return!!this.find((e=>e.color===t))}}_s(_E,$c);var vE='';var yE=n(35);var xE={injectType:"singletonStyleTag",attributes:{"data-cke":true}};xE.insert="head";xE.singleton=true;var EE=ik()(yE["a"],xE);var DE=yE["a"].locals||{};class ME extends Xk{constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){super(t);this.items=this.createCollection();this.colorDefinitions=e;this.focusTracker=new Xp;this.keystrokes=new Fp;this.set("selectedColor");this.removeButtonLabel=o;this.columns=n;this.documentColors=new _E;this.documentColorsCount=r;this._focusCycler=new xb({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}});this._documentColorsLabel=i;this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-table"]},children:this.items});this.items.add(this._removeColorButton())}updateDocumentColors(t,e){const n=t.document;const o=this.documentColorsCount;this.documentColors.clear();for(const i of n.getRootNames()){const r=n.getRoot(i);const s=t.createRangeIn(r);for(const t of s.getItems()){if(t.is("$textProxy")&&t.hasAttribute(e)){this._addColorToDocumentColors(t.getAttribute(e));if(this.documentColors.length>=o){return}}}}}updateSelectedColors(){const t=this.documentColorsGrid;const e=this.staticColorsGrid;const n=this.selectedColor;e.selectedColor=n;if(t){t.selectedColor=n}}render(){super.render();for(const t of this.items){this.focusTracker.add(t.element)}this.keystrokes.listenTo(this.element)}appendGrids(){if(this.staticColorsGrid){return}this.staticColorsGrid=this._createStaticColorsGrid();this.items.add(this.staticColorsGrid);if(this.documentColorsCount){const t=vk.bind(this.documentColors,this.documentColors);const e=new mb(this.locale);e.text=this._documentColorsLabel;e.extendTemplate({attributes:{class:["ck","ck-color-grid__label",t.if("isEmpty","ck-hidden")]}});this.items.add(e);this.documentColorsGrid=this._createDocumentColorsGrid();this.items.add(this.documentColorsGrid)}}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_removeColorButton(){const t=new sw;t.set({withText:true,icon:vE,tooltip:true,label:this.removeButtonLabel});t.class="ck-color-table__remove-color";t.on("execute",(()=>{this.fire("execute",{value:null})}));return t}_createStaticColorsGrid(){const t=new AE(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});t.delegate("execute").to(this);return t}_createDocumentColorsGrid(){const t=vk.bind(this.documentColors,this.documentColors);const e=new AE(this.locale,{columns:this.columns});e.delegate("execute").to(this);e.extendTemplate({attributes:{class:t.if("isEmpty","ck-hidden")}});e.items.bindTo(this.documentColors).using((t=>{const e=new pE;e.set({color:t.color,hasBorder:t.options&&t.options.hasBorder});if(t.label){e.set({label:t.label,tooltip:true})}e.on("execute",(()=>{this.fire("execute",{value:t.color})}));return e}));this.documentColors.on("change:isEmpty",((t,n,o)=>{if(o){e.selectedColor=null}}));return e}_addColorToDocumentColors(t){const e=this.colorDefinitions.find((e=>e.color===t));if(!e){this.documentColors.add({color:t,label:t,options:{hasBorder:false}})}else{this.documentColors.add(Object.assign({},e))}}}const TE="fontSize";const SE="fontFamily";const IE="fontColor";const BE="fontBackgroundColor";function NE(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e){n.model.values.push(t.model);n.view[t.model]=t.view;if(t.upcastAlso){n.upcastAlso[t.model]=t.upcastAlso}}return n}function PE(t){return e=>zE(e.getStyle(t))}function LE(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}function OE({dropdownView:t,colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r}){const s=t.locale;const a=new ME(s,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r});t.colorTableView=a;t.panelView.children.add(a);a.delegate("execute").to(t,"execute");return a}function zE(t){return t.replace(/\s/g,"")}class RE extends mE{constructor(t){super(t,SE)}}function jE(t){return t.map(FE).filter((t=>!!t))}function FE(t){if(typeof t==="object"){return t}if(t==="default"){return{title:"Default",model:undefined}}if(typeof t!=="string"){return}return VE(t)}function VE(t){const e=t.replace(/"|'/g,"").split(",");const n=e[0];const o=e.map(UE).join(", ");return{title:n,model:o,view:{name:"span",styles:{"font-family":o},priority:7}}}function UE(t){t=t.trim();if(t.indexOf(" ")>0){t=`'${t}'`}return t}class HE extends tC{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t);t.config.define(SE,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:false})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:SE});t.model.schema.setAttributeProperties(SE,{isFormatting:true,copyOnEnter:true});const e=jE(t.config.get("fontFamily.options")).filter((t=>t.model));const n=NE(SE,e);if(t.config.get("fontFamily.supportAllValues")){this._prepareAnyValueConverters()}else{t.conversion.attributeToElement(n)}t.commands.add(SE,new RE(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:SE,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})});t.conversion.for("upcast").attributeToAttribute({model:{key:SE,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}}var KE='';class GE extends tC{init(){const t=this.editor;const e=t.t;const n=this._getLocalizedOptions();const o=t.commands.get(SE);t.ui.componentFactory.add(SE,(i=>{const r=Sw(i);Bw(r,qE(n,o));r.buttonView.set({label:e("Font Family"),icon:KE,tooltip:true});r.extendTemplate({attributes:{class:"ck-font-family-dropdown"}});r.bind("isEnabled").to(o);this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam});t.editing.view.focus()}));return r}))}_getLocalizedOptions(){const t=this.editor;const e=t.t;const n=jE(t.config.get(SE).options);return n.map((t=>{if(t.title==="Default"){t.title=e("Default")}return t}))}}function qE(t,e){const n=new vs;for(const o of t){const t={type:"button",model:new jy({commandName:SE,commandParam:o.model,label:o.title,withText:true})};t.model.bind("isOn").to(e,"value",(t=>{if(t===o.model){return true}if(!t||!o.model){return false}return t.split(",")[0].replace(/'/g,"").toLowerCase()===o.model.toLowerCase()}));if(o.view&&o.view.styles){t.model.set("labelStyle",`font-family: ${o.view.styles["font-family"]}`)}n.add(t)}return n}class WE extends tC{static get requires(){return[HE,GE]}static get pluginName(){return"FontFamily"}}class YE extends mE{constructor(t){super(t,TE)}}function QE(t){return t.map((t=>ZE(t))).filter((t=>!!t))}const $E={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function ZE(t){if(eD(t)){return XE(t)}const e=tD(t);if(e){return XE(e)}if(t==="default"){return{model:undefined,title:"Default"}}if(nD(t)){return}return JE(t)}function JE(t){if(typeof t==="number"||typeof t==="string"){t={title:String(t),model:`${parseFloat(t)}px`}}t.view={name:"span",styles:{"font-size":t.model}};return XE(t)}function XE(t){if(!t.view.priority){t.view.priority=7}return t}function tD(t){return $E[t]||$E[t.model]}function eD(t){return typeof t==="object"&&t.title&&t.model&&t.view}function nD(t){let e;if(typeof t==="object"){if(!t.model){throw new ss["a"]("font-size-invalid-definition",null,t)}else{e=parseFloat(t.model)}}else{e=parseFloat(t)}return isNaN(e)}class oD extends tC{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t);t.config.define(TE,{options:["tiny","small","default","big","huge"],supportAllValues:false})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:TE});t.model.schema.setAttributeProperties(TE,{isFormatting:true,copyOnEnter:true});const e=t.config.get("fontSize.supportAllValues");const n=QE(this.editor.config.get("fontSize.options")).filter((t=>t.model));const o=NE(TE,n);if(e){this._prepareAnyValueConverters(o)}else{t.conversion.attributeToElement(o)}t.commands.add(TE,new YE(t))}_prepareAnyValueConverters(t){const e=this.editor;const n=t.model.values.filter((t=>!String(t).match(/[\d.]+[\w%]+/)));if(n.length){throw new ss["a"]("font-size-invalid-use-of-named-presets",null,{presets:n})}e.conversion.for("downcast").attributeToElement({model:TE,view:(t,{writer:e})=>{if(!t){return}return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}});e.conversion.for("upcast").attributeToAttribute({model:{key:TE,value:t=>t.getStyle("font-size")},view:{name:"span"}})}}var iD='';var rD=n(36);var sD={injectType:"singletonStyleTag",attributes:{"data-cke":true}};sD.insert="head";sD.singleton=true;var aD=ik()(rD["a"],sD);var cD=rD["a"].locals||{};class lD extends tC{init(){const t=this.editor;const e=t.t;const n=this._getLocalizedOptions();const o=t.commands.get(TE);t.ui.componentFactory.add(TE,(i=>{const r=Sw(i);Bw(r,dD(n,o));r.buttonView.set({label:e("Font Size"),icon:iD,tooltip:true});r.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}});r.bind("isEnabled").to(o);this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam});t.editing.view.focus()}));return r}))}_getLocalizedOptions(){const t=this.editor;const e=t.t;const n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};const o=QE(t.config.get(TE).options);return o.map((t=>{const e=n[t.title];if(e&&e!=t.title){t=Object.assign({},t,{title:e})}return t}))}}function dD(t,e){const n=new vs;for(const o of t){const t={type:"button",model:new jy({commandName:TE,commandParam:o.model,label:o.title,class:"ck-fontsize-option",withText:true})};if(o.view&&o.view.styles){t.model.set("labelStyle",`font-size:${o.view.styles["font-size"]}`)}if(o.view&&o.view.classes){t.model.set("class",`${t.model.class} ${o.view.classes}`)}t.model.bind("isOn").to(e,"value",(t=>t===o.model));n.add(t)}return n}class uD extends tC{static get requires(){return[oD,lD]}static get pluginName(){return"FontSize"}}class hD extends nC{refresh(){const t=this.editor.model;const e=t.document;const n=iC(e.selection.getSelectedBlocks());this.value=!!n&&n.is("element","paragraph");this.isEnabled=!!n&&fD(n,t.schema)}execute(t={}){const e=this.editor.model;const n=e.document;e.change((o=>{const i=(t.selection||n.selection).getSelectedBlocks();for(const t of i){if(!t.is("element","paragraph")&&fD(t,e.schema)){o.rename(t,"paragraph")}}}))}}function fD(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class mD extends nC{execute(t){const e=this.editor.model;let n=t.position;e.change((t=>{const o=t.createElement("paragraph");if(!e.schema.checkChild(n.parent,o)){const i=e.schema.findAllowedParent(n,o);if(!i){return}n=t.split(n,i).position}e.insertContent(o,n);t.setSelection(o,"in")}))}}class gD extends tC{static get pluginName(){return"Paragraph"}init(){const t=this.editor;const e=t.model;t.commands.add("paragraph",new hD(t));t.commands.add("insertParagraph",new mD(t));e.schema.register("paragraph",{inheritAllFrom:"$block"});t.conversion.elementToElement({model:"paragraph",view:"p"});t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>{if(!gD.paragraphLikeElements.has(t.name)){return null}if(t.isEmpty){return null}return e.createElement("paragraph")},view:/.+/,converterPriority:"low"})}}gD.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class pD extends nC{constructor(t,e){super(t);this.modelElements=e}refresh(){const t=iC(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name;this.isEnabled=!!t&&this.modelElements.some((e=>kD(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model;const n=e.document;const o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>kD(t,o,e.schema)));for(const e of i){if(!e.is("element",o)){t.rename(e,o)}}}))}}function kD(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const bD="paragraph";class wD extends tC{static get pluginName(){return"HeadingEditing"}constructor(t){super(t);t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[gD]}init(){const t=this.editor;const e=t.config.get("heading.options");const n=[];for(const o of e){if(o.model!==bD){t.model.schema.register(o.model,{inheritAllFrom:"$block"});t.conversion.elementToElement(o);n.push(o.model)}}this._addDefaultH1Conversion(t);t.commands.add("heading",new pD(t,n))}afterInit(){const t=this.editor;const e=t.commands.get("enter");const n=t.config.get("heading.options");if(e){this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;const r=n.some((t=>i.is("element",t.model)));if(r&&!i.is("element",bD)&&i.childCount===0){o.writer.rename(i,bD)}}))}}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:is.get("low")+1})}}function CD(t){const e=t.t;const n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];if(e&&e!=t.title){t.title=e}return t}))}var AD=n(37);var _D={injectType:"singletonStyleTag",attributes:{"data-cke":true}};_D.insert="head";_D.singleton=true;var vD=ik()(AD["a"],_D);var yD=AD["a"].locals||{};class xD extends tC{init(){const t=this.editor;const e=t.t;const n=CD(t);const o=e("Choose heading");const i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={};const s=new vs;const a=t.commands.get("heading");const c=t.commands.get("paragraph");const l=[a];for(const t of n){const e={type:"button",model:new jy({label:t.title,class:t.class,withText:true})};if(t.model==="paragraph"){e.model.bind("isOn").to(c,"value");e.model.set("commandName","paragraph");l.push(c)}else{e.model.bind("isOn").to(a,"value",(e=>e===t.model));e.model.set({commandName:"heading",commandValue:t.model})}s.add(e);r[t.model]=t.title}const d=Sw(e);Bw(d,s);d.buttonView.set({isOn:false,withText:true,tooltip:i});d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}});d.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some((t=>t))));d.buttonView.bind("label").to(a,"value",c,"value",((t,e)=>{const n=t||e&&"paragraph";return r[n]?r[n]:o}));this.listenTo(d,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:undefined);t.editing.view.focus()}));return d}))}}class ED extends tC{static get requires(){return[wD,xD]}static get pluginName(){return"Heading"}}class DD extends nC{refresh(){const t=this.editor.model;const e=t.document;this.value=e.selection.getAttribute("highlight");this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"highlight")}execute(t={}){const e=this.editor.model;const n=e.document;const o=n.selection;const i=t.value;e.change((t=>{const n=e.schema.getValidRanges(o.getRanges(),"highlight");if(o.isCollapsed){const e=o.getFirstPosition();if(o.hasAttribute("highlight")){const n=t=>t.item.hasAttribute("highlight")&&t.item.getAttribute("highlight")===this.value;const o=e.getLastMatchingPosition(n,{direction:"backward"});const r=e.getLastMatchingPosition(n);const s=t.createRange(o,r);if(!i||this.value===i){t.removeAttribute("highlight",s);t.removeSelectionAttribute("highlight")}else{t.setAttribute("highlight",i,s);t.setSelectionAttribute("highlight",i)}}else if(i){t.setSelectionAttribute("highlight",i)}}else{for(const e of n){if(i){t.setAttribute("highlight",i,e)}else{t.removeAttribute("highlight",e)}}}}))}}class MD extends tC{static get pluginName(){return"HighlightEditing"}constructor(t){super(t);t.config.define("highlight",{options:[{model:"yellowMarker",class:"marker-yellow",title:"Yellow marker",color:"var(--ck-highlight-marker-yellow)",type:"marker"},{model:"greenMarker",class:"marker-green",title:"Green marker",color:"var(--ck-highlight-marker-green)",type:"marker"},{model:"pinkMarker",class:"marker-pink",title:"Pink marker",color:"var(--ck-highlight-marker-pink)",type:"marker"},{model:"blueMarker",class:"marker-blue",title:"Blue marker",color:"var(--ck-highlight-marker-blue)",type:"marker"},{model:"redPen",class:"pen-red",title:"Red pen",color:"var(--ck-highlight-pen-red)",type:"pen"},{model:"greenPen",class:"pen-green",title:"Green pen",color:"var(--ck-highlight-pen-green)",type:"pen"}]})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"highlight"});const e=t.config.get("highlight.options");t.conversion.attributeToElement(TD(e));t.commands.add("highlight",new DD(t))}}function TD(t){const e={model:{key:"highlight",values:[]},view:{}};for(const n of t){e.model.values.push(n.model);e.view[n.model]={name:"mark",classes:n.class}}return e}var SD='';var ID='';var BD=n(38);var ND={injectType:"singletonStyleTag",attributes:{"data-cke":true}};ND.insert="head";ND.singleton=true;var PD=ik()(BD["a"],ND);var LD=BD["a"].locals||{};class OD extends tC{get localizedOptionTitles(){const t=this.editor.t;return{"Yellow marker":t("Yellow marker"),"Green marker":t("Green marker"),"Pink marker":t("Pink marker"),"Blue marker":t("Blue marker"),"Red pen":t("Red pen"),"Green pen":t("Green pen")}}static get pluginName(){return"HighlightUI"}init(){const t=this.editor.config.get("highlight.options");for(const e of t){this._addHighlighterButton(e)}this._addRemoveHighlightButton();this._addDropdown(t)}_addRemoveHighlightButton(){const t=this.editor.t;this._addButton("removeHighlight",t("Remove highlight"),vE)}_addHighlighterButton(t){const e=this.editor.commands.get("highlight");this._addButton("highlight:"+t.model,t.title,RD(t.type),t.model,n);function n(n){n.bind("isEnabled").to(e,"isEnabled");n.bind("isOn").to(e,"value",(e=>e===t.model));n.iconView.fillColor=t.color;n.isToggleable=true}}_addButton(t,e,n,o,i=(()=>{})){const r=this.editor;r.ui.componentFactory.add(t,(t=>{const s=new sw(t);const a=this.localizedOptionTitles[e]?this.localizedOptionTitles[e]:e;s.set({label:a,icon:n,tooltip:true});s.on("execute",(()=>{r.execute("highlight",{value:o});r.editing.view.focus()}));i(s);return s}))}_addDropdown(t){const e=this.editor;const n=e.t;const o=e.ui.componentFactory;const i=t[0];const r=t.reduce(((t,e)=>{t[e.model]=e;return t}),{});o.add("highlight",(s=>{const a=e.commands.get("highlight");const c=Sw(s,Ky);const l=c.buttonView;l.set({tooltip:n("Highlight"),lastExecuted:i.model,commandValue:i.model,isToggleable:true});l.bind("icon").to(a,"value",(t=>RD(u(t,"type"))));l.bind("color").to(a,"value",(t=>u(t,"color")));l.bind("commandValue").to(a,"value",(t=>u(t,"model")));l.bind("isOn").to(a,"value",(t=>!!t));l.delegate("execute").to(c);const d=t.map((t=>{const e=o.create("highlight:"+t.model);this.listenTo(e,"execute",(()=>c.buttonView.set({lastExecuted:t.model})));return e}));c.bind("isEnabled").toMany(d,"isEnabled",((...t)=>t.some((t=>t))));d.push(new Db);d.push(o.create("removeHighlight"));Iw(c,d);zD(c);c.toolbarView.ariaLabel=n("Text highlight toolbar");l.on("execute",(()=>{e.execute("highlight",{value:l.commandValue});e.editing.view.focus()}));function u(t,e){const n=!t||t===l.lastExecuted?l.lastExecuted:t;return r[n][e]}return c}))}}function zD(t){const e=t.buttonView.actionView;e.iconView.bind("fillColor").to(t.buttonView,"color")}function RD(t){return t==="marker"?SD:ID}class jD extends tC{static get requires(){return[MD,OD]}static get pluginName(){return"Highlight"}}class FD extends nC{refresh(){this.isEnabled=VD(this.editor.model)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertContent(n);let o=n.nextSibling;const i=o&&t.schema.checkChild(o,"$text");if(!i&&t.schema.checkChild(n.parent,"paragraph")){o=e.createElement("paragraph");t.insertContent(o,e.createPositionAfter(n))}if(o){e.setSelection(o,0)}}))}}function VD(t){const e=t.schema;const n=t.document.selection;return UD(n,e,t)&&!HD(n,e)}function UD(t,e,n){const o=KD(t,n);return e.checkChild(o,"horizontalLine")}function HD(t,e){const n=t.getSelectedElement();return n&&e.isObject(n)}function KD(t,e){const n=yA(t,e);const o=n.parent;if(o.isEmpty&&!o.is("element","$root")){return o.parent}return o}var GD=n(39);var qD={injectType:"singletonStyleTag",attributes:{"data-cke":true}};qD.insert="head";qD.singleton=true;var WD=ik()(GD["a"],qD);var YD=GD["a"].locals||{};class QD extends tC{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor;const e=t.model.schema;const n=t.t;const o=t.conversion;e.register("horizontalLine",{isObject:true,allowWhere:"$block"});o.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")});o.for("editingDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>{const o=n("Horizontal line");const i=e.createContainerElement("div");const r=e.createEmptyElement("hr");e.addClass("ck-horizontal-line",i);e.setCustomProperty("hr",true,i);e.insert(e.createPositionAt(i,0),r);return $D(i,e,o)}});o.for("upcast").elementToElement({view:"hr",model:"horizontalLine"});t.commands.add("horizontalLine",new FD(t))}}function $D(t,e,n){e.setCustomProperty("horizontalLine",true,t);return wA(t,e,{label:n})}var ZD='';class JD extends tC{init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("horizontalLine",(n=>{const o=t.commands.get("horizontalLine");const i=new sw(n);i.set({label:e("Horizontal line"),icon:ZD,tooltip:true});i.bind("isEnabled").to(o,"isEnabled");this.listenTo(i,"execute",(()=>{t.execute("horizontalLine");t.editing.view.focus()}));return i}))}}class XD extends tC{static get requires(){return[QD,JD]}static get pluginName(){return"HorizontalLine"}}class tM{constructor(t){this.document=t}createDocumentFragment(t){return new $l(this.document,t)}createElement(t,e,n){return new Rc(this.document,t,e,n)}createText(t){return new Fs(this.document,t)}clone(t,e=false){return t._clone(e)}appendChild(t,e){return e._appendChild(t)}insertChild(t,e,n){return n._insertChild(t,e)}removeChildren(t,e,n){return n._removeChildren(t,e)}remove(t){const e=t.parent;if(e){return this.removeChildren(e.getChildIndex(t),1,e)}return[]}replace(t,e){const n=t.parent;if(n){const o=n.getChildIndex(t);this.removeChildren(o,1,n);this.insertChild(o,e,n);return true}return false}unwrapElement(t){const e=t.parent;if(e){const n=e.getChildIndex(t);this.remove(t);this.insertChild(n,t.getChildren(),e)}}rename(t,e){const n=new Rc(this.document,t,e.getAttributes(),e.getChildren());return this.replace(e,n)?n:null}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){if(P(t)&&n===undefined){n=e}n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}createPositionAt(t,e){return ul._createAt(t,e)}createPositionAfter(t){return ul._createAfter(t)}createPositionBefore(t){return ul._createBefore(t)}createRange(t,e){return new hl(t,e)}createRangeOn(t){return hl._createOn(t)}createRangeIn(t){return hl._createIn(t)}createSelection(t,e,n){return new gl(t,e,n)}}class eM extends nC{refresh(){this.isEnabled=nM(this.editor.model)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("rawHtml");t.insertContent(n);e.setSelection(n,"on")}))}}function nM(t){const e=t.schema;const n=t.document.selection;return oM(n,e,t)&&!iM(n,e)}function oM(t,e,n){const o=rM(t,n);return e.checkChild(o,"rawHtml")}function iM(t,e){const n=t.getSelectedElement();return n&&e.isObject(n)}function rM(t,e){const n=yA(t,e);const o=n.parent;if(o.isEmpty&&!o.is("element","$root")){return o.parent}return o}class sM extends nC{refresh(){const t=this.editor.model;const e=t.document.selection;const n=aM(e);this.isEnabled=!!n}execute(t){const e=this.editor.model;const n=e.document.selection;const o=aM(n);e.change((e=>{e.setAttribute("value",t,o)}))}}function aM(t){const e=t.getSelectedElement();if(e&&e.is("element","rawHtml")){return e}return null}var cM='';var lM='';var dM='';var uM=n(40);var hM={injectType:"singletonStyleTag",attributes:{"data-cke":true}};hM.insert="head";hM.singleton=true;var fM=ik()(uM["a"],hM);var mM=uM["a"].locals||{};class gM extends tC{static get pluginName(){return"HtmlEmbedEditing"}constructor(t){super(t);t.config.define("htmlEmbed",{showPreviews:false,sanitizeHtml:t=>{Object(ss["c"])("html-embed-provide-sanitize-function");return{html:t,hasChanged:false}}})}init(){const t=this.editor;const e=t.model.schema;e.register("rawHtml",{isObject:true,allowWhere:"$block",allowAttributes:["value"]});t.commands.add("updateHtmlEmbed",new sM(t));t.commands.add("insertHtmlEmbed",new eM(t));this._setupConversion()}_setupConversion(){const t=this.editor;const e=t.t;const n=t.editing.view;const o=t.config.get("htmlEmbed");const i=new tM(n.document);const r=new $p(n.document);t.conversion.for("upcast").elementToElement({view:{name:"div",classes:"raw-html-embed"},model:(t,{writer:e})=>{const n=i.createDocumentFragment(t.getChildren());const o=r.toData(n);return e.createElement("rawHtml",{value:o})}});t.conversion.for("dataDowncast").elementToElement({model:"rawHtml",view:(t,{writer:e})=>e.createRawElement("div",{class:"raw-html-embed"},(function(e){e.innerHTML=t.getAttribute("value")||""}))});t.conversion.for("editingDowncast").elementToElement({triggerBy:{attributes:["value"]},model:"rawHtml",view:(i,{writer:r})=>{let a,c,l;const d=r.createContainerElement("div",{class:"raw-html-embed","data-html-embed-label":e("HTML snippet")});const u=r.createRawElement("div",{class:"raw-html-embed__content-wrapper"},(function(e){a=e;s({domElement:e,editor:t,state:c,props:l})}));const h={makeEditable(){c=Object.assign({},c,{isEditable:true});s({domElement:a,editor:t,state:c,props:l});n.change((t=>{t.setAttribute("data-cke-ignore-events","true",u)}));a.querySelector("textarea").focus()},save(e){if(e!==c.getRawHtmlValue()){t.execute("updateHtmlEmbed",e)}else{this.cancel()}},cancel(){c=Object.assign({},c,{isEditable:false});s({domElement:a,editor:t,state:c,props:l});n.change((t=>{t.removeAttribute("data-cke-ignore-events",u)}))}};c={showPreviews:o.showPreviews,isEditable:false,getRawHtmlValue:()=>i.getAttribute("value")||""};l={sanitizeHtml:o.sanitizeHtml,textareaPlaceholder:e("Paste raw HTML here..."),onEditClick(){h.makeEditable()},onSaveClick(t){h.save(t)},onCancelClick(){h.cancel()}};r.insert(r.createPositionAt(d,0),u);r.setCustomProperty("rawHtmlApi",h,d);r.setCustomProperty("rawHtml",true,d);return wA(d,r,{widgetLabel:e("HTML snippet"),hasSelectionHandle:true})}});function s({domElement:t,editor:e,state:n,props:o}){t.textContent="";const i=t.ownerDocument;let r;if(n.isEditable){const e={isDisabled:false,placeholder:o.textareaPlaceholder};r=c({domDocument:i,state:n,props:e});t.append(r)}else if(n.showPreviews){const e={sanitizeHtml:o.sanitizeHtml};t.append(l({domDocument:i,state:n,props:e}))}else{const e={isDisabled:true,placeholder:o.textareaPlaceholder};t.append(c({domDocument:i,state:n,props:e}))}const s={onEditClick:o.onEditClick,onSaveClick:()=>{o.onSaveClick(r.value)},onCancelClick:o.onCancelClick};t.prepend(a({editor:e,domDocument:i,state:n,props:s}))}function a({editor:t,domDocument:e,state:n,props:o}){const i=ob(e,"div",{class:"raw-html-embed__buttons-wrapper"});const r=pM(t.locale,"edit");const s=pM(t.locale,"save");const a=pM(t.locale,"cancel");if(n.isEditable){const t=s.cloneNode(true);const e=a.cloneNode(true);t.addEventListener("click",(t=>{t.preventDefault();o.onSaveClick()}));e.addEventListener("click",(t=>{t.preventDefault();o.onCancelClick()}));i.appendChild(t);i.appendChild(e)}else{const t=r.cloneNode(true);t.addEventListener("click",(t=>{t.preventDefault();o.onEditClick()}));i.appendChild(t)}return i}function c({domDocument:t,state:e,props:n}){const o=ob(t,"textarea",{placeholder:n.placeholder,class:"ck ck-reset ck-input ck-input-text raw-html-embed__source"});o.disabled=n.isDisabled;o.value=e.getRawHtmlValue();return o}function l({domDocument:t,state:e,props:n}){const o=ob(t,"div",{class:"raw-html-embed__preview"});const i=n.sanitizeHtml(e.getRawHtmlValue());o.innerHTML=i.html;return o}}}function pM(t,e){const n=t.t;const o=new sw(t);o.set({tooltipPosition:"sw",icon:cM,tooltip:true});o.render();if(e==="edit"){o.set({icon:cM,label:n("Edit source"),class:"raw-html-embed__edit-button"})}else if(e==="save"){o.set({icon:lM,label:n("Save changes"),class:"raw-html-embed__save-button"})}else{o.set({icon:dM,label:n("Cancel"),class:"raw-html-embed__cancel-button"})}o.destroy();return o.element.cloneNode(true)}var kM='';class bM extends tC{init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("htmlEmbed",(n=>{const o=t.commands.get("insertHtmlEmbed");const i=new sw(n);i.set({label:e("Insert HTML"),icon:kM,tooltip:true});i.bind("isEnabled").to(o,"isEnabled");this.listenTo(i,"execute",(()=>{t.execute("insertHtmlEmbed");t.editing.view.focus();const e=t.editing.view.document.selection.getSelectedElement();e.getCustomProperty("rawHtmlApi").makeEditable()}));return i}))}}class wM extends tC{static get requires(){return[gM,bM]}static get pluginName(){return"HtmlEmbed"}}var CM='';var AM=n(41);var _M={injectType:"singletonStyleTag",attributes:{"data-cke":true}};_M.insert="head";_M.singleton=true;var vM=ik()(AM["a"],_M);var yM=AM["a"].locals||{};const xM=["before","after"];const EM=(new DOMParser).parseFromString(CM,"image/svg+xml").firstChild;const DM="ck-widget__type-around_disabled";class MM extends tC{static get pluginName(){return"WidgetTypeAround"}constructor(t){super(t);this._currentFakeCaretModelElement=null}init(){const t=this.editor;const e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots){if(i){t.removeClass(DM,n)}else{t.addClass(DM,n)}}}));if(!i){t.model.change((t=>{t.removeSelectionAttribute(dA)}))}}));this._enableTypeAroundUIInjection();this._enableInsertingParagraphsOnButtonClick();this._enableInsertingParagraphsOnEnterKeypress();this._enableInsertingParagraphsOnTypingKeystroke();this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows();this._enableDeleteIntegration();this._enableInsertContentIntegration()}destroy(){this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor;const o=n.editing.view;n.execute("insertParagraph",{position:n.model.createPositionAt(t,e)});o.focus();o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{if(this.isEnabled){n(...t)}}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor;const e=t.model;const n=e.document.selection;const o=gA(n);if(!o){return false}const i=n.getSelectedElement();this._insertParagraph(i,o);return true}_enableTypeAroundUIInjection(){const t=this.editor;const e=t.model.schema;const n=t.locale.t;const o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,i)=>{const r=i.mapper.toViewElement(n.item);if(uA(r,n.item,e)){TM(i.writer,o,r)}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor;const e=t.model;const n=e.document.selection;const o=e.schema;const i=t.editing.view;this._listenToIfEnabled(i.document,"keydown",((t,e)=>{if(jl(e.keyCode)){this._handleArrowKeyPress(t,e)}}),{priority:is.get("high")+10});this._listenToIfEnabled(n,"change:range",((e,n)=>{if(!n.directChange){return}t.model.change((t=>{t.removeSelectionAttribute(dA)}))}));this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){const n=t.editing.mapper.toViewElement(e);if(uA(n,e,o)){return}}t.model.change((t=>{t.removeSelectionAttribute(dA)}))}));this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);if(t){i.removeClass(xM.map(r),t);this._currentFakeCaretModelElement=null}}const s=e.selection.getSelectedElement();if(!s){return}const a=n.mapper.toViewElement(s);if(!uA(a,s,o)){return}const c=gA(e.selection);if(!c){return}i.addClass(r(c),a);this._currentFakeCaretModelElement=s}));this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{if(!o){t.model.change((t=>{t.removeSelectionAttribute(dA)}))}}));function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}}_handleArrowKeyPress(t,e){const n=this.editor;const o=n.model;const i=o.document.selection;const r=o.schema;const s=n.editing.view;const a=e.keyCode;const c=Vl(a,n.locale.contentLanguageDirection);const l=s.document.selection.getSelectedElement();const d=n.editing.mapper.toModelElement(l);let u;if(uA(l,d,r)){u=this._handleArrowKeyPressOnSelectedWidget(c)}else if(i.isCollapsed){u=this._handleArrowKeyPressWhenSelectionNextToAWidget(c)}if(u){e.preventDefault();t.stop()}}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor;const n=e.model;const o=n.document.selection;const i=gA(o);return n.change((e=>{if(i){const n=i===(t?"after":"before");if(!n){e.removeSelectionAttribute(dA);return true}}else{e.setSelectionAttribute(dA,t?"after":"before");return true}return false}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor;const n=e.model;const o=n.schema;const i=e.plugins.get("Widget");const r=i._getObjectElementNextToSelection(t);const s=e.editing.mapper.toViewElement(r);if(uA(s,r,o)){n.change((e=>{i._setSelectionOverElement(r);e.setSelectionAttribute(dA,t?"before":"after")}));return true}return false}_enableInsertingParagraphsOnButtonClick(){const t=this.editor;const e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=hA(o.domTarget);if(!i){return}const r=fA(i);const s=mA(i,e.domConverter);const a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r);o.preventDefault();n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor;const e=t.editing.view;this._listenToIfEnabled(e.document,"enter",((n,o)=>{const i=e.document.selection.getSelectedElement();const r=t.editing.mapper.toModelElement(i);const s=t.model.schema;let a;if(this._insertParagraphAccordingToFakeCaretPosition()){a=true}else if(uA(i,r,s)){this._insertParagraph(r,o.isSoft?"before":"after");a=true}if(a){o.preventDefault();n.stop()}}))}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor;const e=t.editing.view;const n=[Ll.enter,Ll.delete,Ll.backspace];this._listenToIfEnabled(e.document,"keydown",((t,e)=>{if(!n.includes(e.keyCode)&&!s_(e)){this._insertParagraphAccordingToFakeCaretPosition()}}),{priority:is.get("high")+1})}_enableDeleteIntegration(){const t=this.editor;const e=t.editing.view;const n=t.model;const o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{const r=gA(n.document.selection);if(!r){return}const s=i.direction;const a=n.document.selection.getSelectedElement();const c=r==="before";const l=s=="forward";const d=c===l;if(d){t.execute("delete",{selection:n.createSelection(a,"on")})}else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e){if(!e.isCollapsed){n.change((n=>{n.setSelection(e);t.execute(l?"forwardDelete":"delete")}))}else{const i=n.createSelection(e.start);n.modifySelection(i,{direction:s});if(!i.focus.isEqual(e.start)){n.change((n=>{n.setSelection(e);t.execute(l?"forwardDelete":"delete")}))}else{const t=BM(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:true})}}}}i.preventDefault();e.stop()}),{priority:is.get("high")+1})}_enableInsertContentIntegration(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection")){return}const r=gA(n);if(!r){return}t.stop();return e.change((t=>{const i=n.getSelectedElement();const s=e.createPositionAt(i,r);const a=t.createSelection(s);const c=e.insertContent(o,a);t.setSelection(a);return c}))}),{priority:"high"})}}function TM(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);SM(n,e);IM(n);return n}));t.insert(t.createPositionAt(n,"end"),o)}function SM(t,e){for(const n of xM){const o=new vk({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n]},children:[t.ownerDocument.importNode(EM,true)]});t.appendChild(o.render())}}function IM(t){const e=new vk({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}function BM(t,e){let n=e;for(const o of e.getAncestors({parentFirst:true})){if(o.childCount>1||t.isLimit(o)){break}n=o}return n}var NM=n(42);var PM={injectType:"singletonStyleTag",attributes:{"data-cke":true}};PM.insert="head";PM.singleton=true;var LM=ik()(NM["a"],PM);var OM=NM["a"].locals||{};function zM(t){const e=t.model;return(n,o)=>{const i=o.keyCode==Ll.arrowup;const r=o.keyCode==Ll.arrowdown;const s=o.shiftKey;const a=e.document.selection;if(!i&&!r){return}const c=r;if(s&&UM(a,c)){return}const l=RM(t,a,c);if(!l||l.isCollapsed){return}if(VM(t,l,c)){e.change((t=>{const n=c?l.end:l.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n);t.setSelection(o)}else{t.setSelection(n)}}));n.stop();o.preventDefault();o.stopPropagation()}}}function RM(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition();const n=jM(o,t,"forward");if(!n){return null}const i=o.createRange(t,n);const r=FM(o.schema,i,"backward");if(r&&t.isBefore(r)){return o.createRange(t,r)}return null}else{const t=e.isCollapsed?e.focus:e.getFirstPosition();const n=jM(o,t,"backward");if(!n){return null}const i=o.createRange(n,t);const r=FM(o.schema,i,"forward");if(r&&t.isAfter(r)){return o.createRange(r,t)}return null}}function jM(t,e,n){const o=t.schema;const i=t.createRangeIn(e.root);const r=n=="forward"?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s)){return t}if(a==r&&o.isBlock(s)){return null}}return null}function FM(t,e,n){const o=n=="backward"?e.end:e.start;if(t.checkChild(o,"$text")){return o}for(const{nextPosition:o}of e.getWalker({direction:n})){if(t.checkChild(o,"$text")){return o}}}function VM(t,e,n){const o=t.model;const i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t);if(!t.focus.isAtEnd&&!e.start.isEqual(t.focus)){e=o.createRange(t.focus,e.end)}}const r=t.mapper.toViewRange(e);const s=i.viewRangeToDom(r);const a=Eh.getDomRangeRects(s);let c;for(const t of a){if(c===undefined){c=Math.round(t.bottom);continue}if(Math.round(t.top)>=c){return false}c=Math.max(c,Math.round(t.bottom))}return true}function UM(t,e){return!t.isCollapsed&&t.isBackward==e}class HM extends tC{static get pluginName(){return"Widget"}static get requires(){return[MM]}init(){const t=this.editor.editing.view;const e=t.document;this._previouslySelected=new Set;this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer;const i=o.document.selection;const r=i.getSelectedElement();let s=null;for(const t of i.getRanges()){for(const e of t){const t=e.item;if(bA(t)&&!GM(t,s)){o.addClass(kA,t);this._previouslySelected.add(t);s=t;if(t==r){o.setSelection(i.getRanges(),{fake:true,label:_A(r)})}}}}}),{priority:"low"});t.addObserver(qA);this.listenTo(e,"mousedown",((...t)=>this._onMousedown(...t)));this.listenTo(e,"keydown",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{priority:"high"});this.listenTo(e,"keydown",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{priority:is.get("high")-20});this.listenTo(e,"keydown",zM(this.editor.editing));this.listenTo(e,"delete",((t,e)=>{if(this._handleDelete(e.direction=="forward")){e.preventDefault();t.stop()}}),{priority:"high"})}_onMousedown(t,e){const n=this.editor;const o=n.editing.view;const i=o.document;let r=e.target;if(KM(r)){if((El.isSafari||El.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper;const o=r.is("attributeElement")?r.findAncestor((t=>!t.is("attributeElement"))):r;const i=t.toModelElement(o);e.preventDefault();this.editor.model.change((t=>{t.setSelection(i,"in")}))}return}if(!bA(r)){r=r.findAncestor(bA);if(!r){return}}e.preventDefault();if(!i.isFocused){o.focus()}const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode;if(!jl(n)){return}const o=this.editor.model;const i=o.schema;const r=o.document.selection;const s=r.getSelectedElement();const a=Vl(n,this.editor.locale.contentLanguageDirection);if(s&&i.isObject(s)){const n=a?r.getLastPosition():r.getFirstPosition();const s=i.getNearestSelectionRange(n,a?"forward":"backward");if(s){o.change((t=>{t.setSelection(s)}));e.preventDefault();t.stop()}return}if(!r.isCollapsed){return}const c=this._getObjectElementNextToSelection(a);if(c&&i.isObject(c)){this._setSelectionOverElement(c);e.preventDefault();t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=e.keyCode;if(!jl(n)){return}const o=this.editor.model;const i=o.schema;const r=o.document.selection.getSelectedElement();if(r&&i.isObject(r)){e.preventDefault();t.stop()}}_handleDelete(t){if(this.editor.isReadOnly){return}const e=this.editor.model.document;const n=e.selection;if(!n.isCollapsed){return}const o=this._getObjectElementNextToSelection(t);if(o){this.editor.model.change((t=>{let e=n.anchor.parent;while(e.isEmpty){const n=e;e=n.parent;t.remove(n)}this._setSelectionOverElement(o)}));return true}}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model;const n=e.schema;const o=e.document.selection;const i=e.createSelection(o);e.modifySelection(i,{direction:t?"forward":"backward"});const r=t?i.focus.nodeBefore:i.focus.nodeAfter;if(!!r&&n.isObject(r)){return r}return null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected){t.removeClass(kA,e)}this._previouslySelected.clear()}}function KM(t){while(t){if(t.is("editableElement")&&!t.is("rootElement")){return true}if(bA(t)){return false}t=t.parent}return false}function GM(t,e){if(!e){return false}return Array.from(t.getAncestors()).includes(e)}class qM extends nC{refresh(){const t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=BA(t);if(BA(t)&&t.hasAttribute("alt")){this.value=t.getAttribute("alt")}else{this.value=false}}execute(t){const e=this.editor.model;const n=e.document.selection.getSelectedElement();e.change((e=>{e.setAttribute("alt",t.newValue,n)}))}}class WM extends tC{static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new qM(this.editor))}}var YM=n(43);var QM={injectType:"singletonStyleTag",attributes:{"data-cke":true}};QM.insert="head";QM.singleton=true;var $M=ik()(YM["a"],QM);var ZM=YM["a"].locals||{};class JM extends Xk{constructor(t,e){super(t);const n=`ck-labeled-field-view-${ns()}`;const o=`ck-labeled-field-view-status-${ns()}`;this.fieldView=e(this,n,o);this.set("label");this.set("isEnabled",true);this.set("errorText",null);this.set("infoText",null);this.set("class");this.labelView=this._createLabelView(n);this.statusView=this._createStatusView(o);this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t))]},children:[this.labelView,this.fieldView,this.statusView]})}_createLabelView(t){const e=new mb(this.locale);e.for=t;e.bind("text").to(this,"label");return e}_createStatusView(t){const e=new Xk(this.locale);const n=this.bindTemplate;e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]});return e}focus(){this.fieldView.focus()}}var XM=n(44);var tT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};tT.insert="head";tT.singleton=true;var eT=ik()(XM["a"],tT);var nT=XM["a"].locals||{};class oT extends Xk{constructor(t){super(t);this.set("value");this.set("id");this.set("placeholder");this.set("isReadOnly",false);this.set("hasError",false);this.set("ariaDescribedById");const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{type:"text",class:["ck","ck-input","ck-input-text",e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",true),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to("input")}})}render(){super.render();const t=t=>{this.element.value=!t&&t!==0?"":t};t(this.value);this.on("change:value",((e,n,o)=>{t(o)}))}select(){this.element.select()}focus(){this.element.focus()}}function iT(t,e,n){const o=new oT(t.locale);o.set({id:e,ariaDescribedById:n});o.bind("isReadOnly").to(t,"isEnabled",(t=>!t));o.bind("hasError").to(t,"errorText",(t=>!!t));o.on("input",(()=>{t.errorText=null}));return o}function rT(t,e,n){const o=Sw(t.locale);o.set({id:e,ariaDescribedById:n});o.bind("isEnabled").to(t);return o}function sT({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault();t.fire("submit")}),{useCapture:true})}var aT=n(45);var cT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};cT.insert="head";cT.singleton=true;var lT=ik()(aT["a"],cT);var dT=aT["a"].locals||{};var uT=n(46);var hT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};hT.insert="head";hT.singleton=true;var fT=ik()(uT["a"],hT);var mT=uT["a"].locals||{};class gT extends Xk{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new Xp;this.keystrokes=new Fp;this.labeledInput=this._createLabeledInputView();this.saveButtonView=this._createButton(e("Save"),lM,"ck-button-save");this.saveButtonView.type="submit";this.cancelButtonView=this._createButton(e("Cancel"),dM,"ck-button-cancel","cancel");this._focusables=new Ck;this._focusCycler=new xb({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);sT({view:this});[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}))}_createButton(t,e,n,o){const i=new sw(this.locale);i.set({label:t,icon:e,tooltip:true});i.extendTemplate({attributes:{class:n}});if(o){i.delegate("execute").to(this,o)}return i}_createLabeledInputView(){const t=this.locale.t;const e=new JM(this.locale,iT);e.label=t("Text alternative");e.fieldView.placeholder=t("Text alternative");return e}}var pT='';var kT='';var bT=n(47);var wT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};wT.insert="head";wT.singleton=true;var CT=ik()(bT["a"],wT);var AT=bT["a"].locals||{};var _T=n(48);var vT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};vT.insert="head";vT.singleton=true;var yT=ik()(_T["a"],vT);var xT=_T["a"].locals||{};const ET=bb("px");class DT extends tC{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t);this.positionLimiter=()=>{const t=this.editor.editing.view;const e=t.document;const n=e.selection.editableElement;if(n){return t.domConverter.mapViewToDom(n.root)}return null};this.set("visibleView",null);this.view=new rA(t.locale);t.ui.view.body.add(this.view);t.ui.focusTracker.add(this.view.element);this._viewToStack=new Map;this._idToStack=new Map;this.set("_numberOfStacks",0);this.set("_singleViewMode",false);this._rotatorView=this._createRotatorView();this._fakePanelsView=this._createFakePanelsView()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view)){throw new ss["a"]("contextualballoon-add-view-exist",[this,t])}const e=t.stackId||"main";if(!this._idToStack.has(e)){this._idToStack.set(e,new Map([[t.view,t]]));this._viewToStack.set(t.view,this._idToStack.get(e));this._numberOfStacks=this._idToStack.size;if(!this._visibleStack||t.singleViewMode){this.showStack(e)}return}const n=this._idToStack.get(e);if(t.singleViewMode){this.showStack(e)}n.set(t.view,t);this._viewToStack.set(t.view,n);if(n===this._visibleStack){this._showView(t)}}remove(t){if(!this.hasView(t)){throw new ss["a"]("contextualballoon-remove-view-not-exist",[this,t])}const e=this._viewToStack.get(t);if(this._singleViewMode&&this.visibleView===t){this._singleViewMode=false}if(this.visibleView===t){if(e.size===1){if(this._idToStack.size>1){this._showNextStack()}else{this.view.hide();this.visibleView=null;this._rotatorView.hideView()}}else{this._showView(Array.from(e.values())[e.size-2])}}if(e.size===1){this._idToStack.delete(this._getStackId(e));this._numberOfStacks=this._idToStack.size}else{e.delete(t)}this._viewToStack.delete(t)}updatePosition(t){if(t){this._visibleStack.get(this.visibleView).position=t}this.view.pin(this._getBalloonPosition());this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e){throw new ss["a"]("contextualballoon-showstack-stack-not-exist",this)}if(this._visibleStack===e){return}this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){const e=Array.from(this._idToStack.entries()).find((e=>e[1]===t));return e[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;if(!t[e]){e=0}this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;if(!t[e]){e=t.length-1}this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new MT(this.editor.locale);const e=this.editor.locale.t;this.view.content.add(t);t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1));t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"});t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2){return""}const o=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[o,n])}));t.buttonNextView.on("execute",(()=>{if(t.focusTracker.isFocused){this.editor.editing.view.focus()}this._showNextStack()}));t.buttonPrevView.on("execute",(()=>{if(t.focusTracker.isFocused){this.editor.editing.view.focus()}this._showPrevStack()}));return t}_createFakePanelsView(){const t=new TT(this.editor.locale,this.view);t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>{const n=!e&&t>=2;return n?Math.min(t-1,2):0}));t.listenTo(this.view,"change:top",(()=>t.updatePosition()));t.listenTo(this.view,"change:left",(()=>t.updatePosition()));this.editor.ui.view.body.add(t);return t}_showView({view:t,balloonClassName:e="",withArrow:n=true,singleViewMode:o=false}){this.view.class=e;this.view.withArrow=n;this._rotatorView.showView(t);this.visibleView=t;this.view.pin(this._getBalloonPosition());this._fakePanelsView.updatePosition();if(o){this._singleViewMode=true}}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;if(t&&!t.limiter){t=Object.assign({},t,{limiter:this.positionLimiter})}return t}}class MT extends Xk{constructor(t){super(t);const e=t.t;const n=this.bindTemplate;this.set("isNavigationVisible",true);this.focusTracker=new Xp;this.buttonPrevView=this._createButtonView(e("Previous"),pT);this.buttonNextView=this._createButtonView(e("Next"),kT);this.content=this.createCollection();this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render();this.focusTracker.add(this.element)}showView(t){this.hideView();this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new sw(this.locale);n.set({label:t,icon:e,tooltip:true});return n}}class TT extends Xk{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0);this.set("left",0);this.set("height",0);this.set("width",0);this.set("numberOfPanels",0);this.content=this.createCollection();this._balloonPanelView=e;this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",ET),left:n.to("left",ET),width:n.to("width",ET),height:n.to("height",ET)}},children:this.content});this.on("change:numberOfPanels",((t,e,n,o)=>{if(n>o){this._addPanels(n-o)}else{this._removePanels(o-n)}this.updatePosition()}))}_addPanels(t){while(t--){const t=new Xk;t.setTemplate({tag:"div"});this.content.add(t);this.registerChild(t)}}_removePanels(t){while(t--){const t=this.content.last;this.content.remove(t);this.deregisterChild(t);t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView;const{width:n,height:o}=new Eh(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:o})}}}var ST='';function IT(t){const e=t.plugins.get("ContextualBalloon");if(IA(t.editing.view.document.selection)){const n=BT(t);e.updatePosition(n)}}function BT(t){const e=t.editing.view;const n=rA.defaultPositions;return{target:e.domConverter.viewToDom(e.document.selection.getSelectedElement()),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast]}}class NT extends tC{static get requires(){return[DT]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton();this._createForm()}destroy(){super.destroy();this._form.destroy()}_createButton(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative");const i=new sw(n);i.set({label:e("Change image text alternative"),icon:ST,tooltip:true});i.bind("isEnabled").to(o,"isEnabled");this.listenTo(i,"execute",(()=>{this._showForm()}));return i}))}_createForm(){const t=this.editor;const e=t.editing.view;const n=e.document;this._balloon=this.editor.plugins.get("ContextualBalloon");this._form=new gT(t.locale);this._form.render();this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value});this._hideForm(true)}));this.listenTo(this._form,"cancel",(()=>{this._hideForm(true)}));this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(true);e()}));this.listenTo(t.ui,"update",(()=>{if(!IA(n.selection)){this._hideForm(true)}else if(this._isVisible){IT(t)}}));Aw({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible){return}const t=this.editor;const e=t.commands.get("imageTextAlternative");const n=this._form.labeledInput;if(!this._isInBalloon){this._balloon.add({view:this._form,position:BT(t)})}n.fieldView.value=n.fieldView.element.value=e.value||"";this._form.labeledInput.fieldView.select()}_hideForm(t){if(!this._isInBalloon){return}if(this._form.focusTracker.isFocused){this._form.saveButtonView.focus()}this._balloon.remove(this._form);if(t){this.editor.editing.view.focus()}}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class PT extends tC{static get requires(){return[WM,NT]}static get pluginName(){return"ImageTextAlternative"}}var LT=n(49);var OT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};OT.insert="head";OT.singleton=true;var zT=ik()(LT["a"],OT);var RT=LT["a"].locals||{};class jT extends tC{static get requires(){return[KA,HM,PT]}static get pluginName(){return"Image"}}function FT(t,e){return n=>{const o=n.createEditableElement("figcaption");n.setCustomProperty("imageCaption",true,o);dk({view:t,element:o,text:e});return vA(o,n)}}function VT(t){return!!t.getCustomProperty("imageCaption")}function UT(t){for(const e of t.getChildren()){if(!!e&&e.is("element","caption")){return e}}return null}function HT(t){const e=t.parent;if(t.name=="figcaption"&&e&&e.name=="figure"&&e.hasClass("image")){return{name:true}}return null}class KT extends tC{static get pluginName(){return"ImageCaptionEditing"}init(){const t=this.editor;const e=t.editing.view;const n=t.model.schema;const o=t.data;const i=t.editing;const r=t.t;n.register("caption",{allowIn:"image",allowContentOf:"$block",isLimit:true});t.model.document.registerPostFixer((t=>this._insertMissingModelCaptionElement(t)));t.conversion.for("upcast").elementToElement({view:HT,model:"caption"});const s=t=>t.createContainerElement("figcaption");o.downcastDispatcher.on("insert:caption",GT(s,false));const a=FT(e,r("Enter image caption"));i.downcastDispatcher.on("insert:caption",GT(a));i.downcastDispatcher.on("insert",this._fixCaptionVisibility((t=>t.item)),{priority:"high"});i.downcastDispatcher.on("remove",this._fixCaptionVisibility((t=>t.position.parent)),{priority:"high"});e.document.registerPostFixer((t=>this._updateCaptionVisibility(t)))}_updateCaptionVisibility(t){const e=this.editor.editing.mapper;const n=this._lastSelectedCaption;let o;const i=this.editor.model.document.selection;const r=i.getSelectedElement();if(r&&r.is("element","image")){const t=UT(r);o=e.toViewElement(t)}const s=i.getFirstPosition();const a=WT(s.parent);if(a){o=e.toViewElement(a)}if(o){if(n){if(n===o){return QT(o,t)}else{YT(n,t);this._lastSelectedCaption=o;return QT(o,t)}}else{this._lastSelectedCaption=o;return QT(o,t)}}else{if(n){const e=YT(n,t);this._lastSelectedCaption=null;return e}else{return false}}}_fixCaptionVisibility(t){return(e,n,o)=>{const i=t(n);const r=WT(i);const s=this.editor.editing.mapper;const a=o.writer;if(r){const t=s.toViewElement(r);if(t){if(r.childCount){a.removeClass("ck-hidden",t)}else{a.addClass("ck-hidden",t)}}}}}_insertMissingModelCaptionElement(t){const e=this.editor.model;const n=e.document.differ.getChanges();const o=[];for(const t of n){if(t.type=="insert"&&t.name!="$text"){const n=t.position.nodeAfter;if(n.is("element","image")&&!UT(n)){o.push(n)}if(!n.is("element","image")&&n.childCount){for(const t of e.createRangeIn(n).getItems()){if(t.is("element","image")&&!UT(t)){o.push(t)}}}}}for(const e of o){t.appendElement("caption",e)}return!!o.length}}function GT(t,e=true){return(n,o,i)=>{const r=o.item;if(!r.childCount&&!e){return}if(BA(r.parent)){if(!i.consumable.consume(o.item,"insert")){return}const e=i.mapper.toViewElement(o.range.start.parent);const n=t(i.writer);const s=i.writer;if(!r.childCount){s.addClass("ck-hidden",n)}qT(n,o.item,e,i)}}}function qT(t,e,n,o){const i=o.writer.createPositionAt(n,"end");o.writer.insert(i,t);o.mapper.bindElements(e,t)}function WT(t){const e=t.getAncestors({includeSelf:true});const n=e.find((t=>t.name=="caption"));if(n&&n.parent&&n.parent.name=="image"){return n}return null}function YT(t,e){if(!t.childCount&&!t.hasClass("ck-hidden")){e.addClass("ck-hidden",t);return true}return false}function QT(t,e){if(t.hasClass("ck-hidden")){e.removeClass("ck-hidden",t);return true}return false}var $T=n(50);var ZT={injectType:"singletonStyleTag",attributes:{"data-cke":true}};ZT.insert="head";ZT.singleton=true;var JT=ik()($T["a"],ZT);var XT=$T["a"].locals||{};class tS extends tC{static get requires(){return[KT]}static get pluginName(){return"ImageCaption"}}class eS extends Xk{constructor(t){super(t);this.buttonView=new sw(t);this._fileInputView=new nS(t);this._fileInputView.bind("acceptedType").to(this);this._fileInputView.bind("allowMultipleFiles").to(this);this._fileInputView.delegate("done").to(this);this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]});this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class nS extends Xk{constructor(t){super(t);this.set("acceptedType");this.set("allowMultipleFiles",false);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{if(this.element&&this.element.files&&this.element.files.length){this.fire("done",this.element.files)}this.element.value=""}))}})}open(){this.element.click()}}function oS(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function iS(t){return new Promise(((e,n)=>{const o=t.getAttribute("src");fetch(o).then((t=>t.blob())).then((t=>{const n=sS(t,o);const i=n.replace("image/","");const r=`image.${i}`;const s=new File([t],r,{type:n});e(s)})).catch(n)}))}function rS(t){if(!t.is("element","img")||!t.getAttribute("src")){return false}return t.getAttribute("src").match(/^data:image\/\w+;base64,/g)||t.getAttribute("src").match(/^blob:/g)}function sS(t,e){if(t.type){return t.type}else if(e.match(/data:(image\/\w+);base64/)){return e.match(/data:(image\/\w+);base64/)[1].toLowerCase()}else{return"image/jpeg"}}var aS='';class cS extends tC{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("imageUpload",(n=>{const o=new eS(n);const i=t.commands.get("imageUpload");const r=t.config.get("image.upload.types");const s=oS(r);o.set({acceptedType:r.map((t=>`image/${t}`)).join(","),allowMultipleFiles:true});o.buttonView.set({label:e("Insert image"),icon:aS,tooltip:true});o.buttonView.bind("isEnabled").to(i);o.on("done",((e,n)=>{const o=Array.from(n).filter((t=>s.test(t.type)));if(o.length){t.execute("imageUpload",{file:o})}}));return o}))}}var lS='';var dS=n(51);var uS={injectType:"singletonStyleTag",attributes:{"data-cke":true}};uS.insert="head";uS.singleton=true;var hS=ik()(dS["a"],uS);var fS=dS["a"].locals||{};var mS=n(52);var gS={injectType:"singletonStyleTag",attributes:{"data-cke":true}};gS.insert="head";gS.singleton=true;var pS=ik()(mS["a"],gS);var kS=mS["a"].locals||{};var bS=n(53);var wS={injectType:"singletonStyleTag",attributes:{"data-cke":true}};wS.insert="head";wS.singleton=true;var CS=ik()(bS["a"],wS);var AS=bS["a"].locals||{};class _S extends tC{constructor(t){super(t);this.placeholder="data:image/svg+xml;utf8,"+encodeURIComponent(lS)}init(){const t=this.editor;t.editing.downcastDispatcher.on("attribute:uploadStatus:image",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const o=this.editor;const i=e.item;const r=i.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name)){return}const s=o.plugins.get(Xv);const a=r?e.attributeNewValue:null;const c=this.placeholder;const l=o.editing.mapper.toViewElement(i);const d=n.writer;if(a=="reading"){vS(l,d);xS(c,l,d);return}if(a=="uploading"){const t=s.loaders.get(r);vS(l,d);if(!t){xS(c,l,d)}else{ES(l,d);DS(l,d,t,o.editing.view);PS(l,d,t)}return}if(a=="complete"&&s.loaders.get(r)){TS(l,d,o.editing.view)}MS(l,d);ES(l,d);yS(l,d)}}function vS(t,e){if(!t.hasClass("ck-appear")){e.addClass("ck-appear",t)}}function yS(t,e){e.removeClass("ck-appear",t)}function xS(t,e,n){if(!e.hasClass("ck-image-upload-placeholder")){n.addClass("ck-image-upload-placeholder",e)}const o=LA(e);if(o.getAttribute("src")!==t){n.setAttribute("src",t,o)}if(!BS(e,"placeholder")){n.insert(n.createPositionAfter(o),IS(n))}}function ES(t,e){if(t.hasClass("ck-image-upload-placeholder")){e.removeClass("ck-image-upload-placeholder",t)}NS(t,e,"placeholder")}function DS(t,e,n,o){const i=SS(e);e.insert(e.createPositionAt(t,"end"),i);n.on("change:uploadedPercent",((t,e,n)=>{o.change((t=>{t.setStyle("width",n+"%",i)}))}))}function MS(t,e){NS(t,e,"progressBar")}function TS(t,e,n){const o=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),o);setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(o))))}),3e3)}function SS(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});t.setCustomProperty("progressBar",true,e);return e}function IS(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});t.setCustomProperty("placeholder",true,e);return e}function BS(t,e){for(const n of t.getChildren()){if(n.getCustomProperty(e)){return n}}}function NS(t,e,n){const o=BS(t,n);if(o){e.remove(e.createRangeOn(o))}}function PS(t,e,n){if(n.data){const o=LA(t);e.setAttribute("src",n.data,o)}}class LS extends nC{refresh(){const t=this.editor.model.document.selection.getSelectedElement();const e=t&&t.name==="image"||false;this.isEnabled=PA(this.editor.model)||e}execute(t){const e=this.editor;const n=e.model;const o=e.plugins.get(Xv);n.change((e=>{const i=Array.isArray(t.file)?t.file:[t.file];for(const t of i){OS(e,n,o,t)}}))}}function OS(t,e,n,o){const i=n.createLoader(o);if(!i){return}NA(t,e,{uploadId:i.id})}class zS extends tC{static get requires(){return[Xv,Wv,E_]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t);t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}})}init(){const t=this.editor;const e=t.model.document;const n=t.model.schema;const o=t.conversion;const i=t.plugins.get(Xv);const r=oS(t.config.get("image.upload.types"));n.extend("image",{allowAttributes:["uploadId","uploadStatus"]});t.commands.add("imageUpload",new LS(t));o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"});this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(RS(n.dataTransfer)){return}const o=Array.from(n.dataTransfer.files).filter((t=>{if(!t){return false}return r.test(t.type)}));const i=n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)));t.model.change((n=>{n.setSelection(i);if(o.length){e.stop();t.model.enqueueChange("default",(()=>{t.execute("imageUpload",{file:o})}))}}))}));this.listenTo(t.plugins.get(E_),"inputTransformation",((e,n)=>{const o=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>rS(t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:iS(t.item),imageElement:t.item})));if(!o.length){return}const r=new tM(t.editing.view.document);for(const t of o){r.setAttribute("uploadProcessed",true,t.imageElement);const e=i.createLoader(t.promise);if(e){r.setAttribute("src","",t.imageElement);r.setAttribute("uploadId",e.id,t.imageElement)}}}));t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()}));e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:true});for(const e of n){if(e.type=="insert"&&e.name!="$text"){const n=e.position.nodeAfter;const o=e.position.root.rootName=="$graveyard";for(const e of jS(t,n)){const t=e.getAttribute("uploadId");if(!t){continue}const n=i.loaders.get(t);if(!n){continue}if(o){n.abort()}else if(n.status=="idle"){this._readAndUpload(n,e)}}}}}))}_readAndUpload(t,e){const n=this.editor;const o=n.model;const i=n.locale.t;const r=n.plugins.get(Xv);const s=n.plugins.get(Wv);o.enqueueChange("transparent",(t=>{t.setAttribute("uploadStatus","reading",e)}));return t.read().then((()=>{const i=t.upload();if(El.isSafari){const t=n.editing.mapper.toViewElement(e);const o=LA(t);n.editing.view.once("render",(()=>{if(!o.parent){return}const t=n.editing.view.domConverter.mapViewToDom(o.parent);if(!t){return}const e=t.style.display;t.style.display="none";t._ckHack=t.offsetHeight;t.style.display=e}))}o.enqueueChange("transparent",(t=>{t.setAttribute("uploadStatus","uploading",e)}));return i})).then((t=>{o.enqueueChange("transparent",(n=>{n.setAttributes({uploadStatus:"complete",src:t.default},e);this._parseAndSetSrcsetAttributeOnImage(t,e,n)}));a()})).catch((n=>{if(t.status!=="error"&&t.status!=="aborted"){throw n}if(t.status=="error"&&n){s.showWarning(n,{title:i("Upload failed"),namespace:"upload"})}a();o.enqueueChange("transparent",(t=>{t.remove(e)}))}));function a(){o.enqueueChange("transparent",(t=>{t.removeAttribute("uploadId",e);t.removeAttribute("uploadStatus",e)}));r.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let o=0;const i=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e)){o=Math.max(o,e);return true}})).map((e=>`${t[e]} ${e}w`)).join(", ");if(i!=""){n.setAttribute("srcset",{data:i,width:o},e)}}}function RS(t){return Array.from(t.types).includes("text/html")&&t.getData("text/html")!==""}function jS(t,e){return Array.from(t.model.createRangeOn(e)).filter((t=>t.item.is("element","image"))).map((t=>t.item))}class FS extends tC{static get pluginName(){return"ImageUpload"}static get requires(){return[zS,cS,_S]}}var VS=n(54);var US={injectType:"singletonStyleTag",attributes:{"data-cke":true}};US.insert="head";US.singleton=true;var HS=ik()(VS["a"],US);var KS=VS["a"].locals||{};class GS extends Xk{constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("class",e.class||null);this.children=this.createCollection();if(e.children){e.children.forEach((t=>this.children.add(t)))}this.set("_role",null);this.set("_ariaLabelledBy",null);if(e.labelView){this.set({_role:"group",_ariaLabelledBy:e.labelView.id})}this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__row",n.to("class")],role:n.to("_role"),"aria-labelledby":n.to("_ariaLabelledBy")},children:this.children})}}var qS=n(55);var WS={injectType:"singletonStyleTag",attributes:{"data-cke":true}};WS.insert="head";WS.singleton=true;var YS=ik()(qS["a"],WS);var QS=qS["a"].locals||{};class $S extends Xk{constructor(t,e){super(t);const{insertButtonView:n,cancelButtonView:o}=this._createActionButtons(t);this.insertButtonView=n;this.cancelButtonView=o;this.dropdownView=this._createDropdownView(t);this.set("imageURLInputValue","");this.focusTracker=new Xp;this.keystrokes=new Fp;this._focusables=new Ck;this._focusCycler=new xb({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this.set("_integrations",new vs);if(e){for(const[t,n]of Object.entries(e)){if(t==="insertImageViaUrl"){n.fieldView.bind("value").to(this,"imageURLInputValue",(t=>t||""));n.fieldView.on("input",(()=>{this.imageURLInputValue=n.fieldView.element.value.trim()}))}n.name=t;this._integrations.add(n)}}this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:"-1"},children:[...this._integrations,new GS(t,{children:[this.insertButtonView,this.cancelButtonView],class:"ck-image-insert-form__action-row"})]})}render(){super.render();sT({view:this});const t=[...this._integrations,this.insertButtonView,this.cancelButtonView];t.forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}));this.keystrokes.listenTo(this.element);const e=t=>t.stopPropagation();this.keystrokes.set("arrowright",e);this.keystrokes.set("arrowleft",e);this.keystrokes.set("arrowup",e);this.keystrokes.set("arrowdown",e);this.listenTo(t[0].element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}getIntegration(t){return this._integrations.find((e=>e.name===t))}_createDropdownView(t){const e=t.t;const n=Sw(t,Ky);const o=n.buttonView;const i=n.panelView;o.set({label:e("Insert image"),icon:aS,tooltip:true});i.extendTemplate({attributes:{class:"ck-image-insert__panel"}});return n}_createActionButtons(t){const e=t.t;const n=new sw(t);const o=new sw(t);n.set({label:e("Insert"),icon:lM,class:"ck-button-save",type:"submit",withText:true,isEnabled:this.imageURLInputValue});o.set({label:e("Cancel"),icon:dM,class:"ck-button-cancel",withText:true});n.bind("isEnabled").to(this,"imageURLInputValue",(t=>!!t));n.delegate("execute").to(this,"submit");o.delegate("execute").to(this,"cancel");return{insertButtonView:n,cancelButtonView:o}}focus(){this._focusCycler.focusFirst()}}function ZS(t){const e=t.config.get("image.insert.integrations");const n=t.plugins.get("ImageInsertUI");const o={insertImageViaUrl:JS(t.locale)};if(!e){return o}if(e.find((t=>t==="openCKFinder"))&&t.ui.componentFactory.has("ckfinder")){const e=t.ui.componentFactory.create("ckfinder");e.set({withText:true,class:"ck-image-insert__ck-finder-button"});e.delegate("execute").to(n,"cancel");o.openCKFinder=e}return e.reduce(((e,n)=>{if(o[n]){e[n]=o[n]}else if(t.ui.componentFactory.has(n)){e[n]=t.ui.componentFactory.create(n)}return e}),{})}function JS(t){const e=t.t;const n=new JM(t,iT);n.set({label:e("Insert image via URL")});n.fieldView.placeholder="https://example.com/src/image.png";n.infoText=e("Paste the image source URL.");return n}class XS extends tC{static get pluginName(){return"ImageInsertUI"}init(){const t=this.editor;t.ui.componentFactory.add("imageInsert",(t=>this._createDropdownView(t)))}_createDropdownView(t){const e=this.editor;const n=new $S(t,ZS(e));const o=e.commands.get("imageUpload");const i=n.dropdownView;const r=i.buttonView;r.actionView=e.ui.componentFactory.create("imageUpload");r.actionView.extendTemplate({attributes:{class:"ck ck-button ck-splitbutton__action"}});return this._setUpDropdown(i,n,o)}_setUpDropdown(t,e,n){const o=this.editor;const i=o.t;const r=e.insertButtonView;const s=e.getIntegration("insertImageViaUrl");const a=t.panelView;t.bind("isEnabled").to(n);t.buttonView.once("open",(()=>{a.children.add(e)}));t.on("change:isOpen",(()=>{const n=o.model.document.selection.getSelectedElement();if(t.isOpen){e.focus();if(BA(n)){e.imageURLInputValue=n.getAttribute("src");r.label=i("Update");s.label=i("Update image URL")}else{e.imageURLInputValue="";r.label=i("Insert");s.label=i("Insert image via URL")}}}),{priority:"low"});e.delegate("submit","cancel").to(t);this.delegate("cancel").to(t);t.on("submit",(()=>{l();c()}));t.on("cancel",(()=>{l()}));function c(){const t=o.model.document.selection.getSelectedElement();if(BA(t)){o.model.change((n=>{n.setAttribute("src",e.imageURLInputValue,t);n.removeAttribute("srcset",t);n.removeAttribute("sizes",t)}))}else{o.execute("imageInsert",{source:e.imageURLInputValue})}}function l(){o.editing.view.focus();t.isOpen=false}return t}}class tI extends tC{static get pluginName(){return"ImageInsert"}static get requires(){return[FS,XS]}}class eI extends nC{constructor(t,e){super(t);this.defaultStyle=false;this.styles=e.reduce(((t,e)=>{t[e.name]=e;if(e.isDefault){this.defaultStyle=e.name}return t}),{})}refresh(){const t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=BA(t);if(!t){this.value=false}else if(t.hasAttribute("imageStyle")){const e=t.getAttribute("imageStyle");this.value=this.styles[e]?e:false}else{this.value=this.defaultStyle}}execute(t){const e=t.value;const n=this.editor.model;const o=n.document.selection.getSelectedElement();n.change((t=>{if(this.styles[e].isDefault){t.removeAttribute("imageStyle",o)}else{t.setAttribute("imageStyle",e,o)}}))}}function nI(t){return(e,n,o)=>{if(!o.consumable.consume(n.item,e.name)){return}const i=iI(n.attributeNewValue,t);const r=iI(n.attributeOldValue,t);const s=o.mapper.toViewElement(n.item);const a=o.writer;if(r){a.removeClass(r.className,s)}if(i){a.addClass(i.className,s)}}}function oI(t){const e=t.filter((t=>!t.isDefault));return(t,n,o)=>{if(!n.modelRange){return}const i=n.viewItem;const r=iC(n.modelRange.getItems());if(!o.schema.checkAttribute(r,"imageStyle")){return}for(const t of e){if(o.consumable.consume(i,{classes:t.className})){o.writer.setAttribute("imageStyle",t.name,r)}}}}function iI(t,e){for(const n of e){if(n.name===t){return n}}}var rI='';var sI='';var aI='';var cI='';const lI={full:{name:"full",title:"Full size image",icon:rI,isDefault:true},side:{name:"side",title:"Side image",icon:cI,className:"image-style-side"},alignLeft:{name:"alignLeft",title:"Left aligned image",icon:sI,className:"image-style-align-left"},alignCenter:{name:"alignCenter",title:"Centered image",icon:aI,className:"image-style-align-center"},alignRight:{name:"alignRight",title:"Right aligned image",icon:cI,className:"image-style-align-right"}};const dI={full:rI,left:sI,right:cI,center:aI};function uI(t=[]){return t.map(hI)}function hI(t){if(typeof t=="string"){const e=t;if(lI[e]){t=Object.assign({},lI[e])}else{Object(ss["c"])("image-style-not-found",{name:e});t={name:e}}}else if(lI[t.name]){const e=lI[t.name];const n=Object.assign({},t);for(const o in e){if(!Object.prototype.hasOwnProperty.call(t,o)){n[o]=e[o]}}t=n}if(typeof t.icon=="string"&&dI[t.icon]){t.icon=dI[t.icon]}return t}class fI extends tC{static get pluginName(){return"ImageStyleEditing"}init(){const t=this.editor;const e=t.model.schema;const n=t.data;const o=t.editing;t.config.define("image.styles",["full","side"]);const i=uI(t.config.get("image.styles"));e.extend("image",{allowAttributes:"imageStyle"});const r=nI(i);o.downcastDispatcher.on("attribute:imageStyle:image",r);n.downcastDispatcher.on("attribute:imageStyle:image",r);n.upcastDispatcher.on("element:figure",oI(i),{priority:"low"});t.commands.add("imageStyle",new eI(t,i))}}var mI=n(56);var gI={injectType:"singletonStyleTag",attributes:{"data-cke":true}};gI.insert="head";gI.singleton=true;var pI=ik()(mI["a"],gI);var kI=mI["a"].locals||{};class bI extends tC{static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor;const e=t.config.get("image.styles");const n=wI(uI(e),this.localizedDefaultStylesTitles);for(const t of n){this._createButton(t)}}_createButton(t){const e=this.editor;const n=`imageStyle:${t.name}`;e.ui.componentFactory.add(n,(n=>{const o=e.commands.get("imageStyle");const i=new sw(n);i.set({label:t.title,icon:t.icon,tooltip:true,isToggleable:true});i.bind("isEnabled").to(o,"isEnabled");i.bind("isOn").to(o,"value",(e=>e===t.name));this.listenTo(i,"execute",(()=>{e.execute("imageStyle",{value:t.name});e.editing.view.focus()}));return i}))}}function wI(t,e){for(const n of t){if(e[n.title]){n.title=e[n.title]}}return t}class CI extends tC{static get requires(){return[fI,bI]}static get pluginName(){return"ImageStyle"}}class AI extends tC{static get requires(){return[DT]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{if(yI(t.editing.view.document.selection)){e.stop()}}),{priority:"high"})}this._toolbarDefinitions=new Map;this._balloon=this.editor.plugins.get("ContextualBalloon");this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()}));this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()}));this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values()){t.view.destroy()}}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length){Object(ss["c"])("widget-toolbar-no-items",{toolbarId:t});return}const r=this.editor;const s=r.t;const a=new Uw(r.locale);a.ariaLabel=e||s("Widget toolbar");if(this._toolbarDefinitions.has(t)){throw new ss["a"]("widget-toolbar-duplicated",this,{toolbarId:t})}a.fillFromConfig(n,r.ui.componentFactory);this._toolbarDefinitions.set(t,{view:a,getRelatedElement:o,balloonClassName:i})}_updateToolbarsVisibility(){let t=0;let e=null;let n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(!this.isEnabled||!i){if(this._isToolbarInBalloon(o)){this._hideToolbar(o)}}else if(!this.editor.ui.focusTracker.isFocused){if(this._isToolbarVisible(o)){this._hideToolbar(o)}}else{const r=i.getAncestors().length;if(r>t){t=r;e=i;n=o}}}if(n){this._showToolbar(n,e)}}_hideToolbar(t){this._balloon.remove(t.view);this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){if(this._isToolbarVisible(t)){_I(this.editor,e)}else if(!this._isToolbarInBalloon(t)){this._balloon.add({view:t.view,position:vI(this.editor,e),balloonClassName:t.balloonClassName});this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values()){if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);_I(this.editor,e)}}}))}}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function _I(t,e){const n=t.plugins.get("ContextualBalloon");const o=vI(t,e);n.updatePosition(o)}function vI(t,e){const n=t.editing.view;const o=rA.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,EA]}}function yI(t){const e=t.getSelectedElement();return!!(e&&bA(e))}class xI extends tC{static get requires(){return[AI]}static get pluginName(){return"ImageToolbar"}afterInit(){const t=this.editor;const e=t.t;const n=t.plugins.get(AI);n.register("image",{ariaLabel:e("Image toolbar"),items:t.config.get("image.toolbar")||[],getRelatedElement:IA})}}class EI extends nC{constructor(t){super(t);this._childCommands=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return e.execute(t)}registerChildCommand(t){this._childCommands.push(t);t.on("change:isEnabled",(()=>this._checkEnabled()));this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){return this._childCommands.find((t=>t.isEnabled))}}class DI extends tC{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new EI(t));t.commands.add("outdent",new EI(t))}}var MI='';var TI='';class SI extends tC{static get pluginName(){return"IndentUI"}init(){const t=this.editor;const e=t.locale;const n=t.t;const o=e.uiLanguageDirection=="ltr"?MI:TI;const i=e.uiLanguageDirection=="ltr"?TI:MI;this._defineButton("indent",n("Increase indent"),o);this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(i=>{const r=o.commands.get(t);const s=new sw(i);s.set({label:e,icon:n,tooltip:true});s.bind("isOn","isEnabled").to(r,"value","isEnabled");this.listenTo(s,"execute",(()=>{o.execute(t);o.editing.view.focus()}));return s}))}}class II extends tC{static get pluginName(){return"Indent"}static get requires(){return[DI,SI]}}class BI extends nC{constructor(t,e){super(t);this._indentBehavior=e}refresh(){const t=this.editor;const e=t.model;const n=iC(e.document.selection.getSelectedBlocks());if(!n||!e.schema.checkAttribute(n,"blockIndent")){this.isEnabled=false;return}this.isEnabled=this._indentBehavior.checkEnabled(n.getAttribute("blockIndent"))}execute(){const t=this.editor.model;const e=NI(t);t.change((t=>{for(const n of e){const e=n.getAttribute("blockIndent");const o=this._indentBehavior.getNextIndent(e);if(o){t.setAttribute("blockIndent",o,n)}else{t.removeAttribute("blockIndent",n)}}}))}}function NI(t){const e=t.document.selection;const n=t.schema;const o=Array.from(e.getSelectedBlocks());return o.filter((t=>n.checkAttribute(t,"blockIndent")))}class PI{constructor(t){this.isForward=t.direction==="forward";this.offset=t.offset;this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||0);return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||0);const n=!t||t.endsWith(this.unit);if(!n){return this.isForward?this.offset+this.unit:undefined}const o=this.isForward?this.offset:-this.offset;const i=e+o;return i>0?i+this.unit:undefined}}class LI{constructor(t){this.isForward=t.direction==="forward";this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);if(this.isForward){return e=0}}getNextIndent(t){const e=this.classes.indexOf(t);const n=this.isForward?1:-1;return this.classes[e+n]}}const OI=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;const zI=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i;const RI=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i;const jI=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i;const FI=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i;const VI=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","rebeccapurple","currentcolor","transparent"]);function UI(t){if(t.startsWith("#")){return OI.test(t)}if(t.startsWith("rgb")){return zI.test(t)||RI.test(t)}if(t.startsWith("hsl")){return jI.test(t)||FI.test(t)}return VI.has(t.toLowerCase())}const HI=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function KI(t){return HI.includes(t)}const GI=/^([+-]?[0-9]*[.]?[0-9]+(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function qI(t){return GI.test(t)}const WI=/^[+-]?[0-9]*[.]?[0-9]+%$/;function YI(t){return WI.test(t)}const QI=["repeat-x","repeat-y","repeat","space","round","no-repeat"];function $I(t){return QI.includes(t)}const ZI=["center","top","bottom","left","right"];function JI(t){return ZI.includes(t)}const XI=["fixed","scroll","local"];function tB(t){return XI.includes(t)}const eB=/^url\(/;function nB(t){return eB.test(t)}function oB(t=""){if(t===""){return{top:undefined,right:undefined,bottom:undefined,left:undefined}}const e=aB(t);const n=e[0];const o=e[2]||n;const i=e[1]||n;const r=e[3]||i;return{top:n,bottom:o,right:i,left:r}}function iB(t){return e=>{const{top:n,right:o,bottom:i,left:r}=e;const s=[];if(![n,o,r,i].every((t=>!!t))){if(n){s.push([t+"-top",n])}if(o){s.push([t+"-right",o])}if(i){s.push([t+"-bottom",i])}if(r){s.push([t+"-left",r])}}else{s.push([t,rB(e)])}return s}}function rB({top:t,right:e,bottom:n,left:o}){const i=[];if(o!==e){i.push(t,e,n,o)}else if(n!==t){i.push(t,e,n)}else if(e!==t){i.push(t,e)}else{i.push(t)}return i.join(" ")}function sB(t){return e=>({path:t,value:oB(e)})}function aB(t){return t.replace(/, /g,",").split(" ").map((t=>t.replace(/,/g,", ")))}function cB(t){t.setNormalizer("margin",sB("margin"));t.setNormalizer("margin-top",(t=>({path:"margin.top",value:t})));t.setNormalizer("margin-right",(t=>({path:"margin.right",value:t})));t.setNormalizer("margin-bottom",(t=>({path:"margin.bottom",value:t})));t.setNormalizer("margin-left",(t=>({path:"margin.left",value:t})));t.setReducer("margin",iB("margin"));t.setStyleRelation("margin",["margin-top","margin-right","margin-bottom","margin-left"])}class lB extends tC{constructor(t){super(t);t.config.define("indentBlock",{offset:40,unit:"px"})}static get pluginName(){return"IndentBlock"}init(){const t=this.editor;const e=t.config.get("indentBlock");const n=!e.classes||!e.classes.length;const o=Object.assign({direction:"forward"},e);const i=Object.assign({direction:"backward"},e);if(n){t.data.addStyleProcessorRules(cB);this._setupConversionUsingOffset(t.conversion);t.commands.add("indentBlock",new BI(t,new PI(o)));t.commands.add("outdentBlock",new BI(t,new PI(i)))}else{this._setupConversionUsingClasses(e.classes);t.commands.add("indentBlock",new BI(t,new LI(o)));t.commands.add("outdentBlock",new BI(t,new LI(i)))}}afterInit(){const t=this.editor;const e=t.model.schema;const n=t.commands.get("indent");const o=t.commands.get("outdent");const i=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];i.forEach((t=>{if(e.isRegistered(t)){e.extend(t,{allowAttributes:"blockIndent"})}}));e.setAttributeProperties("blockIndent",{isFormatting:true});n.registerChildCommand(t.commands.get("indentBlock"));o.registerChildCommand(t.commands.get("outdentBlock"))}_setupConversionUsingOffset(){const t=this.editor.conversion;const e=this.editor.locale;const n=e.contentLanguageDirection==="rtl"?"margin-right":"margin-left";t.for("upcast").attributeToAttribute({view:{styles:{[n]:/[\s\S]+/}},model:{key:"blockIndent",value:t=>t.getStyle(n)}});t.for("downcast").attributeToAttribute({model:"blockIndent",view:t=>({key:"style",value:{[n]:t}})})}_setupConversionUsingClasses(t){const e={model:{key:"blockIndent",values:[]},view:{}};for(const n of t){e.model.values.push(n);e.view[n]={key:"class",value:[n]}}this.editor.conversion.attributeToAttribute(e)}}const dB="italic";class uB extends tC{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:dB});t.model.schema.setAttributeProperties(dB,{isFormatting:true,copyOnEnter:true});t.conversion.attributeToElement({model:dB,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]});t.commands.add(dB,new jC(t,dB));t.keystrokes.set("CTRL+I",dB)}}var hB='';const fB="italic";class mB extends tC{init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add(fB,(n=>{const o=t.commands.get(fB);const i=new sw(n);i.set({label:e("Italic"),icon:hB,keystroke:"CTRL+I",tooltip:true,isToggleable:true});i.bind("isOn","isEnabled").to(o,"value","isEnabled");this.listenTo(i,"execute",(()=>{t.execute(fB);t.editing.view.focus()}));return i}))}}class gB extends tC{static get requires(){return[uB,mB]}static get pluginName(){return"Italic"}}class pB extends eh{constructor(t){super(t);this.domEventType="click"}onDomEvent(t){this.fire(t.type,t)}}var kB=n(57);var bB={injectType:"singletonStyleTag",attributes:{"data-cke":true}};bB.insert="head";bB.singleton=true;var wB=ik()(kB["a"],bB);var CB=kB["a"].locals||{};class AB extends Xk{constructor(t,e,n){super(t);const o=t.t;this.focusTracker=new Xp;this.keystrokes=new Fp;this.urlInputView=this._createUrlInput(n);this.saveButtonView=this._createButton(o("Save"),lM,"ck-button-save");this.saveButtonView.type="submit";this.cancelButtonView=this._createButton(o("Cancel"),dM,"ck-button-cancel","cancel");this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e);this.children=this._createFormChildren(e.manualDecorators);this._focusables=new Ck;this._focusCycler=new xb({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form","ck-responsive-form"];if(e.manualDecorators.length){i.push("ck-link-form_layout-vertical","ck-vertical-form")}this.setTemplate({tag:"form",attributes:{class:i,tabindex:"-1"},children:this.children})}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>{t[e.name]=e.isOn;return t}),{})}render(){super.render();sT({view:this});const t=[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView];t.forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}));this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(t="https://"){const e=this.locale.t;const n=new JM(this.locale,iT);n.label=e("Link URL");n.fieldView.placeholder=t+"example.com";return n}_createButton(t,e,n,o){const i=new sw(this.locale);i.set({label:t,icon:e,tooltip:true});i.extendTemplate({attributes:{class:n}});if(o){i.delegate("execute").to(this,o)}return i}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const o=new Cw(this.locale);o.set({name:n.id,label:n.label,withText:true});o.bind("isOn").toMany([n,t],"value",((t,e)=>e===undefined&&t===undefined?n.defaultValue:t));o.on("execute",(()=>{n.set("value",!o.isOn)}));e.add(o)}return e}_createFormChildren(t){const e=this.createCollection();e.add(this.urlInputView);if(t.length){const t=new Xk;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}});e.add(t)}e.add(this.saveButtonView);e.add(this.cancelButtonView);return e}}var _B='';var vB=n(58);var yB={injectType:"singletonStyleTag",attributes:{"data-cke":true}};yB.insert="head";yB.singleton=true;var xB=ik()(vB["a"],yB);var EB=vB["a"].locals||{};class DB extends Xk{constructor(t){super(t);const e=t.t;this.focusTracker=new Xp;this.keystrokes=new Fp;this.previewButtonView=this._createPreviewButton();this.unlinkButtonView=this._createButton(e("Unlink"),_B,"unlink");this.editButtonView=this._createButton(e("Edit link"),cM,"edit");this.set("href");this._focusables=new Ck;this._focusCycler=new xb({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();const t=[this.previewButtonView,this.editButtonView,this.unlinkButtonView];t.forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}));this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const o=new sw(this.locale);o.set({label:t,icon:e,tooltip:true});o.delegate("execute").to(this,n);return o}_createPreviewButton(){const t=new sw(this.locale);const e=this.bindTemplate;const n=this.t;t.set({withText:true,tooltip:n("Open link in new tab")});t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&yv(t))),target:"_blank",rel:"noopener noreferrer"}});t.bind("label").to(this,"href",(t=>t||n("This link has no URL")));t.bind("isEnabled").to(this,"href",(t=>!!t));t.template.tag="a";t.template.eventListeners={};return t}}var MB='';const TB="link-ui";class SB extends tC{static get requires(){return[DT]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(pB);this.actionsView=this._createActionsView();this.formView=this._createFormView();this._balloon=t.plugins.get(DT);this._createToolbarLinkButton();this._enableUserBalloonInteractions();t.conversion.for("editingDowncast").markerToHighlight({model:TB,view:{classes:["ck-fake-link-selection"]}});t.conversion.for("editingDowncast").markerToElement({model:TB,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy();this.formView.destroy()}_createActionsView(){const t=this.editor;const e=new DB(t.locale);const n=t.commands.get("link");const o=t.commands.get("unlink");e.bind("href").to(n,"value");e.editButtonView.bind("isEnabled").to(n);e.unlinkButtonView.bind("isEnabled").to(o);this.listenTo(e,"edit",(()=>{this._addFormView()}));this.listenTo(e,"unlink",(()=>{t.execute("unlink");this._hideUI()}));e.keystrokes.set("Esc",((t,e)=>{this._hideUI();e()}));e.keystrokes.set(Av,((t,e)=>{this._addFormView();e()}));return e}_createFormView(){const t=this.editor;const e=t.commands.get("link");const n=t.config.get("link.defaultProtocol");const o=new AB(t.locale,e,n);o.urlInputView.fieldView.bind("value").to(e,"value");o.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t));o.saveButtonView.bind("isEnabled").to(e);this.listenTo(o,"submit",(()=>{const{value:e}=o.urlInputView.fieldView.element;const i=Sv(e,n);t.execute("link",i,o.getDecoratorSwitchesState());this._closeFormView()}));this.listenTo(o,"cancel",(()=>{this._closeFormView()}));o.keystrokes.set("Esc",((t,e)=>{this._closeFormView();e()}));return o}_createToolbarLinkButton(){const t=this.editor;const e=t.commands.get("link");const n=t.t;t.keystrokes.set(Av,((t,n)=>{n();if(e.isEnabled){this._showUI(true)}}));t.ui.componentFactory.add("link",(t=>{const o=new sw(t);o.isEnabled=true;o.label=n("Link");o.icon=MB;o.keystroke=Av;o.tooltip=true;o.isToggleable=true;o.bind("isEnabled").to(e,"isEnabled");o.bind("isOn").to(e,"value",(t=>!!t));this.listenTo(o,"execute",(()=>this._showUI(true)));return o}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{const t=this._getSelectedLinkElement();if(t){this._showUI()}}));this.editor.keystrokes.set("Tab",((t,e)=>{if(this._areActionsVisible&&!this.actionsView.focusTracker.isFocused){this.actionsView.focus();e()}}),{priority:"high"});this.editor.keystrokes.set("Esc",((t,e)=>{if(this._isUIVisible){this._hideUI();e()}}));Aw({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){if(this._areActionsInPanel){return}this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel){return}const t=this.editor;const e=t.commands.get("link");this._balloon.add({view:this.formView,position:this._getBalloonPositionData()});if(this._balloon.visibleView===this.formView){this.formView.urlInputView.fieldView.select()}this.formView.urlInputView.fieldView.element.value=e.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates();if(t.value!==undefined){this._removeFormView()}else{this._hideUI()}}_removeFormView(){if(this._isFormInPanel){this.formView.saveButtonView.focus();this._balloon.remove(this.formView);this.editor.editing.view.focus();this._hideFakeVisualSelection()}}_showUI(t=false){if(!this._getSelectedLinkElement()){this._showFakeVisualSelection();this._addActionsView();if(t){this._balloon.showStack("main")}this._addFormView()}else{if(this._areActionsVisible){this._addFormView()}else{this._addActionsView()}if(t){this._balloon.showStack("main")}}this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel){return}const t=this.editor;this.stopListening(t.ui,"update");this.stopListening(this._balloon,"change:visibleView");t.editing.view.focus();this._removeFormView();this._balloon.remove(this.actionsView);this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor;const e=t.editing.view.document;let n=this._getSelectedLinkElement();let o=r();const i=()=>{const t=this._getSelectedLinkElement();const e=r();if(n&&!t||!n&&e!==o){this._hideUI()}else if(this._isUIVisible){this._balloon.updatePosition(this._getBalloonPositionData())}n=t;o=e};function r(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",i);this.listenTo(this._balloon,"change:visibleView",i)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){const t=this._balloon.visibleView;return t==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view;const e=this.editor.model;const n=t.document;let o=null;if(e.markers.has(TB)){const e=Array.from(this.editor.editing.mapper.markerNameToElements(TB));const n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));o=t.domConverter.viewRangeToDom(n)}else{const e=this._getSelectedLinkElement();const i=n.selection.getFirstRange();o=e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(i)}return{target:o}}_getSelectedLinkElement(){const t=this.editor.editing.view;const e=t.document.selection;if(e.isCollapsed){return IB(e.getFirstPosition())}else{const n=e.getFirstRange().getTrimmed();const o=IB(n.start);const i=IB(n.end);if(!o||o!=i){return null}if(t.createRangeIn(o).getTrimmed().isEqual(n)){return o}else{return null}}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has(TB)){e.updateMarker(TB,{range:n})}else{if(n.start.isAtEnd){const o=t.document.selection.focus;const i=BB(n,o,e);e.addMarker(TB,{usingOperation:false,affectsData:false,range:i})}else{e.addMarker(TB,{usingOperation:false,affectsData:false,range:n})}}}))}_hideFakeVisualSelection(){const t=this.editor.model;if(t.markers.has(TB)){t.change((t=>{t.removeMarker(TB)}))}}}function IB(t){return t.getAncestors().find((t=>_v(t)))}function BB(t,e,n){const o=[t.start.path[0]+1,0];const i=n.createPositionFromPath(t.start.root,o,"toNext");const r=n.createRange(i,t.end);if(r.start.path[0]>t.end.path[0]){return n.createRange(e)}if(i.isAtStart&&i.isAtEnd){return BB(r,e,n)}return r}function NB(t,e){let n=t.start;const o=Array.from(t.getItems()).reduce(((t,o)=>{if(!(o.is("$text")||o.is("$textProxy"))){n=e.createPositionAfter(o);return""}return t+o.data}),"");return{text:o,range:e.createRange(n,t.end)}}class PB{constructor(t,e){this.model=t;this.testCallback=e;this.hasMatch=false;this.set("isEnabled",true);this.on("change:isEnabled",(()=>{if(this.isEnabled){this._startListening()}else{this.stopListening(t.document.selection);this.stopListening(t.document)}}));this._startListening()}_startListening(){const t=this.model;const e=t.document;this.listenTo(e.selection,"change:range",((t,{directChange:n})=>{if(!n){return}if(!e.selection.isCollapsed){if(this.hasMatch){this.fire("unmatched");this.hasMatch=false}return}this._evaluateTextBeforeSelection("selection")}));this.listenTo(e,"change:data",((t,e)=>{if(e.type=="transparent"){return}this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model;const o=n.document;const i=o.selection;const r=n.createRange(n.createPositionAt(i.focus.parent,0),i.focus);const{text:s,range:a}=NB(r,n);const c=this.testCallback(s);if(!c&&this.hasMatch){this.fire("unmatched")}this.hasMatch=!!c;if(c){const n=Object.assign(e,{text:s,range:a});if(typeof c=="object"){Object.assign(n,c)}this.fire(`matched:${t}`,n)}}}_s(PB,$c);const LB=4;const OB=new RegExp("(^|\\s)"+"("+"("+"(?:(?:(?:https?|ftp):)?\\/\\/)"+"(?:\\S+(?::\\S*)?@)?"+"(?:"+"(?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.)+"+"(?:[a-z\\u00a1-\\uffff]{2,})"+")"+"(?::\\d{2,5})?"+"(?:[/?#]\\S*)?"+")"+"|"+"("+"(www.|(\\S+@))"+"((?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.))+"+"(?:[a-z\\u00a1-\\uffff]{2,})"+")"+")$","i");const zB=2;class RB extends tC{static get pluginName(){return"AutoLink"}init(){const t=this.editor;const e=t.model.document.selection;e.on("change:range",(()=>{this.isEnabled=!e.anchor.parent.is("element","codeBlock")}));this._enableTypingHandling()}afterInit(){this._enableEnterHandling();this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor;const e=new PB(t.model,(t=>{if(!jB(t)){return}const e=FB(t.substr(0,t.length-1));if(e){return{url:e}}}));const n=t.plugins.get("Input");e.on("matched:data",((e,o)=>{const{batch:i,range:r,url:s}=o;if(!n.isInput(i)){return}const a=r.end.getShiftedBy(-1);const c=a.getShiftedBy(-s.length);const l=t.model.createRange(c,a);this._applyAutoLink(s,l)}));e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor;const e=t.model;const n=t.commands.get("enter");if(!n){return}n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling){return}const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor;const e=t.model;const n=t.commands.get("shiftEnter");if(!n){return}n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();const n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model;const{text:n,range:o}=NB(t,e);const i=FB(n);if(i){const t=e.createRange(o.end.getShiftedBy(-i.length),o.end);this._applyAutoLink(i,t)}}_applyAutoLink(t,e){const n=this.editor.model;if(!this.isEnabled||!VB(e,n)){return}n.enqueueChange((n=>{const o=this.editor.config.get("link.defaultProtocol");const i=Sv(t,o);n.setAttribute("linkHref",i,e)}))}}function jB(t){return t.length>LB&&t[t.length-1]===" "&&t[t.length-2]!==" "}function FB(t){const e=OB.exec(t);return e?e[zB]:null}function VB(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}class UB extends tC{static get requires(){return[Uv,SB,RB]}static get pluginName(){return"Link"}}class HB extends nC{constructor(t,e){super(t);this.type=e}refresh(){this.value=this._getValue();this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model;const e=t.document;const n=Array.from(e.selection.getSelectedBlocks()).filter((e=>GB(e,t.schema)));const o=this.value===true;t.change((t=>{if(o){let e=n[n.length-1].nextSibling;let o=Number.POSITIVE_INFINITY;let i=[];while(e&&e.name=="listItem"&&e.getAttribute("listIndent")!==0){const t=e.getAttribute("listIndent");if(t=n){if(r>i.getAttribute("listIndent")){r=i.getAttribute("listIndent")}if(i.getAttribute("listIndent")==r){t[e?"unshift":"push"](i)}i=i[e?"previousSibling":"nextSibling"]}}}function GB(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class qB extends nC{constructor(t,e){super(t);this._indentBy=e=="forward"?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model;const e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let o=e.nextSibling;while(o&&o.name=="listItem"&&o.getAttribute("listIndent")>e.getAttribute("listIndent")){n.push(o);o=o.nextSibling}if(this._indentBy<0){n=n.reverse()}for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;if(n<0){t.rename(e,"paragraph")}else{t.setAttribute("listIndent",n,e)}}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=iC(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem")){return false}if(this._indentBy>0){const e=t.getAttribute("listIndent");const n=t.getAttribute("listType");let o=t.previousSibling;while(o&&o.is("element","listItem")&&o.getAttribute("listIndent")>=e){if(o.getAttribute("listIndent")==e){return o.getAttribute("listType")==n}o=o.previousSibling}return false}return true}}function WB(t){const e=t.createContainerElement("li");e.getFillerOffset=nN;return e}function YB(t,e){const n=e.mapper;const o=e.writer;const i=t.getAttribute("listType")=="numbered"?"ol":"ul";const r=WB(o);const s=o.createContainerElement(i,null);o.insert(o.createPositionAt(s,0),r);n.bindElements(t,r);return r}function QB(t,e,n,o){const i=e.parent;const r=n.mapper;const s=n.writer;let a=r.toViewPosition(o.createPositionBefore(t));const c=JB(t.previousSibling,{sameIndent:true,smallerIndent:true,listIndent:t.getAttribute("listIndent")});const l=t.previousSibling;if(c&&c.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(c);a=s.breakContainer(s.createPositionAfter(t))}else{if(l&&l.name=="listItem"){a=r.toViewPosition(o.createPositionAt(l,"end"));const t=r.findMappedViewAncestor(a);const e=tN(t);if(e){a=s.createPositionBefore(e)}else{a=s.createPositionAt(t,"end")}}else{a=r.toViewPosition(o.createPositionBefore(t))}}a=ZB(a);s.insert(a,i);if(l&&l.name=="listItem"){const t=r.toViewElement(l);const n=s.createRange(s.createPositionAt(t,0),a);const o=n.getWalker({ignoreElementEnd:true});for(const t of o){if(t.item.is("element","li")){const n=s.breakContainer(s.createPositionBefore(t.item));const i=t.item.parent;const r=s.createPositionAt(e,"end");$B(s,r.nodeBefore,r.nodeAfter);s.move(s.createRangeOn(i),r);o.position=n}}}else{const n=i.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let o=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")){o=e}else{break}}if(o){s.breakContainer(s.createPositionAfter(o));s.move(s.createRangeOn(o.parent),s.createPositionAt(e,"end"))}}}$B(s,i,i.nextSibling);$B(s,i.previousSibling,i)}function $B(t,e,n){if(!e||!n||e.name!="ul"&&e.name!="ol"){return null}if(e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")){return null}return t.mergeContainers(t.createPositionAfter(e))}function ZB(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function JB(t,e){const n=!!e.sameIndent;const o=!!e.smallerIndent;const i=e.listIndent;let r=t;while(r&&r.name=="listItem"){const t=r.getAttribute("listIndent");if(n&&i==t||o&&i>t){return r}if(e.direction==="forward"){r=r.nextSibling}else{r=r.previousSibling}}return null}function XB(t,e,n,o){t.ui.componentFactory.add(e,(i=>{const r=t.commands.get(e);const s=new sw(i);s.set({label:n,icon:o,tooltip:true,isToggleable:true});s.bind("isOn","isEnabled").to(r,"value","isEnabled");s.on("execute",(()=>{t.execute(e);t.editing.view.focus()}));return s}))}function tN(t){for(const e of t.getChildren()){if(e.name=="ul"||e.name=="ol"){return e}}return null}function eN(t,e){const n=[];const o=t.parent;const i={ignoreElementEnd:true,startPosition:t,shallow:true,direction:e};const r=o.getAttribute("listIndent");const s=[...new Yh(i)].filter((t=>t.item.is("element"))).map((t=>t.item));for(const t of s){if(!t.is("element","listItem")){break}if(t.getAttribute("listIndent")r){continue}if(t.getAttribute("listType")!==o.getAttribute("listType")){break}if(t.getAttribute("listStyle")!==o.getAttribute("listStyle")){break}if(e==="backward"){n.unshift(t)}else{n.push(t)}}return n}function nN(){const t=!this.isEmpty&&(this.getChild(0).name=="ul"||this.getChild(0).name=="ol");if(this.isEmpty||t){return 0}return Hc.call(this)}function oN(t){return(e,n,o)=>{const i=o.consumable;if(!i.test(n.item,"insert")||!i.test(n.item,"attribute:listType")||!i.test(n.item,"attribute:listIndent")){return}i.consume(n.item,"insert");i.consume(n.item,"attribute:listType");i.consume(n.item,"attribute:listIndent");const r=n.item;const s=YB(r,o);QB(r,s,o,t)}}function iN(t){return(e,n,o)=>{const i=o.mapper.toViewPosition(n.position);const r=i.getLastMatchingPosition((t=>!t.item.is("element","li")));const s=r.nodeAfter;const a=o.writer;a.breakContainer(a.createPositionBefore(s));a.breakContainer(a.createPositionAfter(s));const c=s.parent;const l=c.previousSibling;const d=a.createRangeOn(c);const u=a.remove(d);if(l&&l.nextSibling){$B(a,l,l.nextSibling)}const h=o.mapper.toModelElement(s);wN(h.getAttribute("listIndent")+1,n.position,d.start,s,o,t);for(const t of a.createRangeIn(u).getItems()){o.mapper.unbindViewElement(t)}e.stop()}}function rN(t,e,n){if(!n.consumable.consume(e.item,"attribute:listType")){return}const o=n.mapper.toViewElement(e.item);const i=n.writer;i.breakContainer(i.createPositionBefore(o));i.breakContainer(i.createPositionAfter(o));const r=o.parent;const s=e.attributeNewValue=="numbered"?"ol":"ul";i.rename(s,r)}function sN(t,e,n){const o=n.mapper.toViewElement(e.item);const i=o.parent;const r=n.writer;$B(r,i,i.nextSibling);$B(r,i.previousSibling,i);for(const t of e.item.getChildren()){n.consumable.consume(t,"insert")}}function aN(t){return(e,n,o)=>{if(!o.consumable.consume(n.item,"attribute:listIndent")){return}const i=o.mapper.toViewElement(n.item);const r=o.writer;r.breakContainer(r.createPositionBefore(i));r.breakContainer(r.createPositionAfter(i));const s=i.parent;const a=s.previousSibling;const c=r.createRangeOn(s);r.remove(c);if(a&&a.nextSibling){$B(r,a,a.nextSibling)}wN(n.attributeOldValue+1,n.range.start,c.start,i,o,t);QB(n.item,i,o,t);for(const t of n.item.getChildren()){o.consumable.consume(t,"insert")}}}function cN(t,e,n){if(e.item.name!="listItem"){let t=n.mapper.toViewPosition(e.range.start);const o=n.writer;const i=[];while(t.parent.name=="ul"||t.parent.name=="ol"){t=o.breakContainer(t);if(t.parent.name!="li"){break}const e=t;const n=o.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=o.remove(o.createRange(e,n));i.push(t)}t=o.createPositionAfter(t.parent)}if(i.length>0){for(let e=0;e0){const e=$B(o,n,n.nextSibling);if(e&&e.parent==n){t.offset--}}}$B(o,t.nodeBefore,t.nodeAfter)}}}function lN(t,e,n){const o=n.mapper.toViewPosition(e.position);const i=o.nodeBefore;const r=o.nodeAfter;$B(n.writer,i,r)}function dN(t,e,n){if(n.consumable.consume(e.viewItem,{name:true})){const t=n.writer;const o=t.createElement("listItem");const i=AN(e.viewItem);t.setAttribute("listIndent",i,o);const r=e.viewItem.parent&&e.viewItem.parent.name=="ol"?"numbered":"bulleted";t.setAttribute("listType",r,o);if(!n.safeInsert(o,e.modelCursor)){return}const s=kN(o,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s);n.updateConversionResult(o,e)}}function uN(t,e,n){if(n.consumable.test(e.viewItem,{name:true})){const t=Array.from(e.viewItem.getChildren());for(const e of t){const t=!(e.is("element","li")||CN(e));if(t){e._remove()}}}}function hN(t,e,n){if(n.consumable.test(e.viewItem,{name:true})){if(e.viewItem.childCount===0){return}const t=[...e.viewItem.getChildren()];let n=false;let o=true;for(const e of t){if(n&&!CN(e)){e._remove()}if(e.is("$text")){if(o){e._data=e.data.replace(/^\s+/,"")}if(!e.nextSibling||CN(e.nextSibling)){e._data=e.data.replace(/\s+$/,"")}}else if(CN(e)){n=true}o=false}}}function fN(t){return(e,n)=>{if(n.isPhantom){return}const o=n.modelPosition.nodeBefore;if(o&&o.is("element","listItem")){const e=n.mapper.toViewElement(o);const i=e.getAncestors().find(CN);const r=t.createPositionAt(e,0).getWalker();for(const t of r){if(t.type=="elementStart"&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}else if(t.type=="elementEnd"&&t.item==i){n.viewPosition=t.nextPosition;break}}}}}function mN(t){return(e,n)=>{const o=n.viewPosition;const i=o.parent;const r=n.mapper;if(i.name=="ul"||i.name=="ol"){if(!o.isAtEnd){const e=r.toModelElement(o.nodeAfter);n.modelPosition=t.createPositionBefore(e)}else{const e=r.toModelElement(o.nodeBefore);const i=r.getModelLength(o.nodeBefore);n.modelPosition=t.createPositionBefore(e).getShiftedBy(i)}e.stop()}else if(i.name=="li"&&o.nodeBefore&&(o.nodeBefore.name=="ul"||o.nodeBefore.name=="ol")){const s=r.toModelElement(i);let a=1;let c=o.nodeBefore;while(c&&CN(c)){a+=r.getModelLength(c);c=c.previousSibling}n.modelPosition=t.createPositionBefore(s).getShiftedBy(a);e.stop()}}}function gN(t,e){const n=t.document.differ.getChanges();const o=new Map;let i=false;for(const o of n){if(o.type=="insert"&&o.name=="listItem"){r(o.position)}else if(o.type=="insert"&&o.name!="listItem"){if(o.name!="$text"){const n=o.position.nodeAfter;if(n.hasAttribute("listIndent")){e.removeAttribute("listIndent",n);i=true}if(n.hasAttribute("listType")){e.removeAttribute("listType",n);i=true}if(n.hasAttribute("listStyle")){e.removeAttribute("listStyle",n);i=true}for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem")))){r(e.previousPosition)}}const n=o.position.getShiftedBy(o.length);r(n)}else if(o.type=="remove"&&o.name=="listItem"){r(o.position)}else if(o.type=="attribute"&&o.attributeKey=="listIndent"){r(o.range.start)}else if(o.type=="attribute"&&o.attributeKey=="listType"){r(o.range.start)}}for(const t of o.values()){s(t);a(t)}return i;function r(t){const e=t.nodeBefore;if(!e||!e.is("element","listItem")){const e=t.nodeAfter;if(e&&e.is("element","listItem")){o.set(e,e)}}else{let t=e;if(o.has(t)){return}for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling){t=e;if(o.has(t)){return}}o.set(e,t)}}function s(t){let n=0;let o=null;while(t&&t.is("element","listItem")){const r=t.getAttribute("listIndent");if(r>n){let s;if(o===null){o=r-n;s=n}else{if(o>r){o=r}s=r-o}e.setAttribute("listIndent",s,t);i=true}else{o=null;n=t.getAttribute("listIndent")+1}t=t.nextSibling}}function a(t){let n=[];let o=null;while(t&&t.is("element","listItem")){const r=t.getAttribute("listIndent");if(o&&o.getAttribute("listIndent")>r){n=n.slice(0,r+1)}if(r!=0){if(n[r]){const o=n[r];if(t.getAttribute("listType")!=o){e.setAttribute("listType",o,t);i=true}}else{n[r]=t.getAttribute("listType")}}o=t;t=t.nextSibling}}}function pN(t,[e,n]){let o=e.is("documentFragment")?e.getChild(0):e;let i;if(!n){i=this.document.selection}else{i=this.createSelection(n)}if(o&&o.is("element","listItem")){const t=i.getFirstPosition();let e=null;if(t.parent.is("element","listItem")){e=t.parent}else if(t.nodeBefore&&t.nodeBefore.is("element","listItem")){e=t.nodeBefore}if(e){const t=e.getAttribute("listIndent");if(t>0){while(o&&o.is("element","listItem")){o._setAttribute("listIndent",o.getAttribute("listIndent")+t);o=o.nextSibling}}}}}function kN(t,e,n){const{writer:o,schema:i}=n;let r=o.createPositionAfter(t);for(const s of e){if(s.name=="ul"||s.name=="ol"){r=n.convertItem(s,r).modelCursor}else{const e=n.convertItem(s,o.createPositionAt(t,"end"));const a=e.modelRange.start.nodeAfter;const c=a&&a.is("element")&&!i.checkChild(t,a.name);if(c){if(e.modelCursor.parent.is("element","listItem")){t=e.modelCursor.parent}else{t=bN(e.modelCursor)}r=o.createPositionAfter(t)}}}return r}function bN(t){const e=new Yh({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function wN(t,e,n,o,i,r){const s=JB(e.nodeBefore,{sameIndent:true,smallerIndent:true,listIndent:t,foo:"b"});const a=i.mapper;const c=i.writer;const l=s?s.getAttribute("listIndent"):null;let d;if(!s){d=n}else if(l==t){const t=a.toViewElement(s).parent;d=c.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}d=ZB(d);for(const t of[...o.getChildren()]){if(CN(t)){d=c.move(c.createRangeOn(t),d).end;$B(c,t,t.nextSibling);$B(c,t.previousSibling,t)}}}function CN(t){return t.is("element","ol")||t.is("element","ul")}function AN(t){let e=0;let n=t.parent;while(n){if(n.is("element","li")){e++}else{const t=n.previousSibling;if(t&&t.is("element","li")){e++}}n=n.parent}return e}class _N extends tC{static get pluginName(){return"ListEditing"}static get requires(){return[gD]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data;const n=t.editing;t.model.document.registerPostFixer((e=>gN(t.model,e)));n.mapper.registerViewToModelLength("li",vN);e.mapper.registerViewToModelLength("li",vN);n.mapper.on("modelToViewPosition",fN(n.view));n.mapper.on("viewToModelPosition",mN(t.model));e.mapper.on("modelToViewPosition",fN(n.view));t.conversion.for("editingDowncast").add((e=>{e.on("insert",cN,{priority:"high"});e.on("insert:listItem",oN(t.model));e.on("attribute:listType:listItem",rN,{priority:"high"});e.on("attribute:listType:listItem",sN,{priority:"low"});e.on("attribute:listIndent:listItem",aN(t.model));e.on("remove:listItem",iN(t.model));e.on("remove",lN,{priority:"low"})}));t.conversion.for("dataDowncast").add((e=>{e.on("insert",cN,{priority:"high"});e.on("insert:listItem",oN(t.model))}));t.conversion.for("upcast").add((t=>{t.on("element:ul",uN,{priority:"high"});t.on("element:ol",uN,{priority:"high"});t.on("element:li",hN,{priority:"high"});t.on("element:li",dN)}));t.model.on("insertContent",pN,{priority:"high"});t.commands.add("numberedList",new HB(t,"numbered"));t.commands.add("bulletedList",new HB(t,"bulleted"));t.commands.add("indentList",new qB(t,"forward"));t.commands.add("outdentList",new qB(t,"backward"));const o=n.view.document;this.listenTo(o,"enter",((t,e)=>{const n=this.editor.model.document;const o=n.selection.getLastPosition().parent;if(n.selection.isCollapsed&&o.name=="listItem"&&o.isEmpty){this.editor.execute("outdentList");e.preventDefault();t.stop()}}));this.listenTo(o,"delete",((t,e)=>{if(e.direction!=="backward"){return}const n=this.editor.model.document.selection;if(!n.isCollapsed){return}const o=n.getFirstPosition();if(!o.isAtStart){return}const i=o.parent;if(i.name!=="listItem"){return}const r=i.previousSibling&&i.previousSibling.name==="listItem";if(r){return}this.editor.execute("outdentList");e.preventDefault();t.stop()}),{priority:"high"});const i=t=>(e,n)=>{const o=this.editor.commands.get(t);if(o.isEnabled){this.editor.execute(t);n()}};t.keystrokes.set("Tab",i("indentList"));t.keystrokes.set("Shift+Tab",i("outdentList"))}afterInit(){const t=this.editor.commands;const e=t.get("indent");const n=t.get("outdent");if(e){e.registerChildCommand(t.get("indentList"))}if(n){n.registerChildCommand(t.get("outdentList"))}}}function vN(t){let e=1;for(const n of t.getChildren()){if(n.name=="ul"||n.name=="ol"){for(const t of n.getChildren()){e+=vN(t)}}}return e}var yN='';var xN='';class EN extends tC{init(){const t=this.editor.t;XB(this.editor,"numberedList",t("Numbered List"),yN);XB(this.editor,"bulletedList",t("Bulleted List"),xN)}}class DN extends tC{static get requires(){return[_N,EN]}static get pluginName(){return"List"}}function MN(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,o,i){if(!i.consumable.consume(o.item,n.name)){return}const r=o.attributeNewValue;const s=i.writer;const a=i.mapper.toViewElement(o.item);const c=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(c);const l=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),l)}}function TN(t,e,n){e.setCustomProperty("media",true,t);return wA(t,e,{label:n})}function SN(t){const e=t.getSelectedElement();if(e&&IN(e)){return e}return null}function IN(t){return!!t.getCustomProperty("media")&&bA(t)}function BN(t,e,n,o){const i=t.createContainerElement("figure",{class:"media"});t.insert(t.createPositionAt(i,0),e.getMediaViewElement(t,n,o));return i}function NN(t){const e=t.getSelectedElement();if(e&&e.is("element","media")){return e}return null}function PN(t,e,n){t.change((o=>{const i=o.createElement("media",{url:e});t.insertContent(i,n);o.setSelection(i,"on")}))}class LN extends nC{refresh(){const t=this.editor.model;const e=t.document.selection;const n=t.schema;const o=yA(e,t);const i=NN(e);let r=o.parent;if(r.isEmpty&&!t.schema.isLimit(r)){r=r.parent}this.value=i?i.getAttribute("url"):null;this.isEnabled=n.checkChild(r,"media")}execute(t){const e=this.editor.model;const n=e.document.selection;const o=NN(n);if(o){e.change((e=>{e.setAttribute("url",t,o)}))}else{const o=yA(n,e);PN(e,t,o)}}}var ON='';const zN="0 0 64 42";class RN{constructor(t,e){const n=e.providers;const o=e.extraProviders||[];const i=new Set(e.removeProviders);const r=n.concat(o).filter((t=>{const e=t.name;if(!e){Object(ss["c"])("media-embed-no-provider-name",{provider:t});return false}return!i.has(e)}));this.locale=t;this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t){return new jN(this.locale)}t=t.trim();for(const e of this.providerDefinitions){const n=e.html;let o=e.url;if(!Array.isArray(o)){o=[o]}for(const e of o){const o=this._getUrlMatches(t,e);if(o){return new jN(this.locale,t,o,n)}}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n){return n}let o=t.replace(/^https?:\/\//,"");n=o.match(e);if(n){return n}o=o.replace(/^www\./,"");n=o.match(e);if(n){return n}return null}}class jN{constructor(t,e,n,o){this.url=this._getValidUrl(e);this._t=t.t;this._match=n;this._previewRenderer=o}getViewElement(t,e){const n={};let o;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){if(this.url){n["data-oembed-url"]=this.url}if(e.renderForEditingView){n.class="ck-media__wrapper"}const i=this._getPreviewHtml(e);o=t.createRawElement("div",n,(function(t){t.innerHTML=i}))}else{if(this.url){n.url=this.url}o=t.createEmptyElement("oembed",n)}t.setCustomProperty("media-content",true,o);return o}_getPreviewHtml(t){if(this._previewRenderer){return this._previewRenderer(this._match)}else{if(this.url&&t.renderForEditingView){return this._getPlaceholderHtml()}return""}}_getPlaceholderHtml(){const t=new ew;const e=new $b;t.text=this._t("Open media in new tab");e.content=ON;e.viewBox=zN;const n=new vk({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render();return n.outerHTML}_getValidUrl(t){if(!t){return null}if(t.match(/^https?/)){return t}return"https://"+t}}var FN=n(59);var VN={injectType:"singletonStyleTag",attributes:{"data-cke":true}};VN.insert="head";VN.singleton=true;var UN=ik()(FN["a"],VN);var HN=FN["a"].locals||{};class KN extends tC{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t);t.config.define("mediaEmbed",{providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>{const e=t[1];return'