/*!
* @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md.
*/
!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 of %1","Align cell text to the bottom":"Align cell text to the bottom","Align cell text to the center":"Align cell text to the center","Align cell text to the left":"Align cell text to the left","Align cell text to the middle":"Align cell text to the middle","Align cell text to the right":"Align cell text to the right","Align cell text to the top":"Align cell text to the top","Align table to the left":"Align table to the left","Align table to the right":"Align table to the right",Alignment:"Alignment",Aquamarine:"Aquamarine",Background:"Background",Big:"Big",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold",Border:"Border","Bulleted List":"Bulleted List",Cancel:"Cancel","Cannot upload file:":"Cannot upload file:","Cell properties":"Cell properties","Center table":"Center table","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Code:"Code",Color:"Color","Color picker":"Color picker",Column:"Column",Dashed:"Dashed","Decrease indent":"Decrease indent",Default:"Default","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Dimensions:"Dimensions","Document colors":"Document colors",Dotted:"Dotted",Double:"Double",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Font Background Color":"Font Background Color","Font Color":"Font Color","Font Family":"Font Family","Font Size":"Font Size","Full size image":"Full size image",Green:"Green",Grey:"Grey",Groove:"Groove","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Height:"Height","Horizontal text alignment toolbar":"Horizontal text alignment toolbar",Huge:"Huge","Image toolbar":"Image toolbar","image widget":"image widget","Increase indent":"Increase indent","Insert code block":"Insert code block","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Inset:"Inset",Italic:"Italic","Justify cell text":"Justify cell text","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link URL":"Link URL","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next",None:"None","Numbered List":"Numbered List","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab",Orange:"Orange",Outset:"Outset",Padding:"Padding",Paragraph:"Paragraph","Plain text":"Plain text",Previous:"Previous",Purple:"Purple",Red:"Red",Redo:"Redo","Remove color":"Remove color","Rich Text Editor, %0":"Rich Text Editor, %0",Ridge:"Ridge","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image",Small:"Small",Solid:"Solid","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically",Strikethrough:"Strikethrough",Style:"Style",Subscript:"Subscript",Superscript:"Superscript","Table alignment toolbar":"Table alignment toolbar","Table cell text alignment":"Table cell text alignment","Table properties":"Table properties","Table toolbar":"Table toolbar","Text alternative":"Text alternative",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"This link has no URL":"This link has no URL",Tiny:"Tiny","To-do List":"To-do List",Turquoise:"Turquoise",Underline:"Underline",Undo:"Undo",Unlink:"Unlink","Upload failed":"Upload failed","Upload in progress":"Upload in progress","Vertical text alignment toolbar":"Vertical text alignment toolbar",White:"White","Widget toolbar":"Widget toolbar",Width:"Width",Yellow:"Yellow"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.BalloonEditor=e():t.BalloonEditor=e()}(window,(function(){return function(t){var e={};function o(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=e,o.d=function(t,e,i){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(i,n,function(e){return t[e]}.bind(null,n));return i},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=122)}([function(t,e,o){"use strict";o.d(e,"b",(function(){return i})),o.d(e,"a",(function(){return n}));class i extends Error{constructor(t,e,o){t=n(t),o&&(t+=" "+JSON.stringify(o)),super(t),this.name="CKEditorError",this.context=e,this.data=o}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const o=new i(t.message,e);throw o.stack=t.stack,o}}function n(t){const e=t.match(/^([^:]+):/);return e?t+` Read more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-${e[1]}\n`:t}},function(t,e,o){"use strict";var i,n=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},r=function(){var t={};return function(e){if(void 0===t[e]){var o=document.querySelector(e);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(t){o=null}t[e]=o}return t[e]}}(),s=[];function a(t){for(var e=-1,o=0;o
").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ")).indexOf("
")>-1&&(r=`
${r}
`),n=r),n=this._htmlDataProcessor.toView(n);const s=new lo(this,"inputTransformation");this.fire(s,{content:n,dataTransfer:i}),s.stop.called&&t.stop(),o.scrollToTheSelection()},{priority:"low"}),this.listenTo(this,"inputTransformation",(t,e)=>{if(!e.content.isEmpty){const o=this.editor.data,i=this.editor.model,n=o.toModel(e.content,"$clipboardHolder");if(0==n.childCount)return;i.insertContent(n),t.stop()}},{priority:"low"}),this.listenTo(i,"copy",n,{priority:"low"}),this.listenTo(i,"cut",(e,o)=>{t.isReadOnly?o.preventDefault():n(e,o)},{priority:"low"}),this.listenTo(i,"clipboardOutput",(o,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this._htmlDataProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",function t(e){let o="";if(e.is("text")||e.is("textProxy"))o=e.data;else if(e.is("img")&&e.hasAttribute("alt"))o=e.getAttribute("alt");else{let i=null;for(const n of e.getChildren()){const e=t(n);i&&(i.is("containerElement")||n.is("containerElement"))&&(Au.includes(i.name)||Au.includes(n.name)?o+="\n":o+="\n\n"),o+=e,i=n}}return o}(i.content))),"cut"==i.method&&t.model.deleteContent(e.selection)},{priority:"low"})}}class Pu{constructor(t){this.document=t}createDocumentFragment(t){return new Cn(this.document,t)}createElement(t,e,o){return new Mi(this.document,t,e,o)}createText(t){return new No(this.document,t)}clone(t,e=!1){return t._clone(e)}appendChild(t,e){return e._appendChild(t)}insertChild(t,e,o){return o._insertChild(t,e)}removeChildren(t,e,o){return o._removeChildren(t,e)}remove(t){const e=t.parent;return e?this.removeChildren(e.getChildIndex(t),1,e):[]}replace(t,e){const o=t.parent;if(o){const i=o.getChildIndex(t);return this.removeChildren(i,1,o),this.insertChild(i,e,o),!0}return!1}unwrapElement(t){const e=t.parent;if(e){const o=e.getChildIndex(t);this.remove(t),this.insertChild(o,t.getChildren(),e)}}rename(t,e){const o=new Mi(this.document,t,e.getAttributes(),e.getChildren());return this.replace(e,o)?o:null}setAttribute(t,e,o){o._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,o){y(t)&&void 0===o&&(o=e),o._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,o){o._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}createPositionAt(t,e){return Zi._createAt(t,e)}createPositionAfter(t){return Zi._createAfter(t)}createPositionBefore(t){return Zi._createBefore(t)}createRange(t,e){return new tn(t,e)}createRangeOn(t){return tn._createOn(t)}createRangeIn(t){return tn._createIn(t)}createSelection(t,e,o){return new nn(t,e,o)}}class Su extends _d{refresh(){this.isEnabled=bh(this.editor.model)}execute(t){const e=this.editor,o=e.model,i=e.plugins.get(hd);o.change(e=>{const n=Array.isArray(t.file)?t.file:[t.file];for(const t of n)Eu(e,o,i,t)})}}function Eu(t,e,o,i){const n=o.createLoader(i);n&&ph(t,e,{uploadId:n.id})}class Ru extends Rl{static get requires(){return[hd,yu,Tu]}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,e=t.model.document,o=t.model.schema,i=t.conversion,n=t.plugins.get(hd),r=mu(t.config.get("image.upload.types"));o.extend("image",{allowAttributes:["uploadId","uploadStatus"]}),t.commands.add("imageUpload",new Su(t)),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",(e,o)=>{if(i=o.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const n=Array.from(o.dataTransfer.files).filter(t=>!!t&&r.test(t.type)),s=o.targetRanges.map(e=>t.editing.mapper.toModelRange(e));t.model.change(o=>{o.setSelection(s),n.length&&(e.stop(),t.model.enqueueChange("default",()=>{t.execute("imageUpload",{file:n})}))})}),this.listenTo(t.plugins.get(Tu),"inputTransformation",(e,o)=>{const i=Array.from(t.editing.view.createRangeIn(o.content)).filter(t=>{return!(!(e=t.item).is("element","img")||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))&&!t.item.getAttribute("uploadProcessed");var e}).map(t=>{return{promise:(e=t.item,new Promise((t,o)=>{const i=e.getAttribute("src");fetch(i).then(t=>t.blob()).then(e=>{const o=function(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}(e,i),n=o.replace("image/",""),r=new File([e],"image."+n,{type:o});t(r)}).catch(o)})),imageElement:t.item};var e});if(!i.length)return;const r=new Pu(t.editing.view.document);for(const t of i){r.setAttribute("uploadProcessed",!0,t.imageElement);const e=n.createLoader(t.promise);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 o=e.differ.getChanges({includeChangesInGraveyard:!0});for(const e of o)if("insert"==e.type&&"$text"!=e.name){const o=e.position.nodeAfter,i="$graveyard"==e.position.root.rootName;for(const e of Iu(t,o)){const t=e.getAttribute("uploadId");if(!t)continue;const o=n.loaders.get(t);o&&(i?o.abort():"idle"==o.status&&this._readAndUpload(o,e))}}})}_readAndUpload(t,e){const o=this.editor,i=o.model,n=o.locale.t,r=o.plugins.get(hd),s=o.plugins.get(yu);return i.enqueueChange("transparent",t=>{t.setAttribute("uploadStatus","reading",e)}),t.read().then(()=>{const n=t.upload();if(gn.isSafari){const t=wh(o.editing.mapper.toViewElement(e));o.editing.view.once("render",()=>{if(!t.parent)return;const e=o.editing.view.domConverter.mapViewToDom(t.parent);if(!e)return;const i=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=i})}return i.enqueueChange("transparent",t=>{t.setAttribute("uploadStatus","uploading",e)}),n}).then(t=>{i.enqueueChange("transparent",o=>{o.setAttributes({uploadStatus:"complete",src:t.default},e),this._parseAndSetSrcsetAttributeOnImage(t,e,o)}),a()}).catch(o=>{if("error"!==t.status&&"aborted"!==t.status)throw o;"error"==t.status&&o&&s.showWarning(o,{title:n("Upload failed"),namespace:"upload"}),a(),i.enqueueChange("transparent",t=>{t.remove(e)})});function a(){i.enqueueChange("transparent",t=>{t.removeAttribute("uploadId",e),t.removeAttribute("uploadStatus",e)}),r.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,o){let i=0;const n=Object.keys(t).filter(t=>{const e=parseInt(t,10);if(!isNaN(e))return i=Math.max(i,e),!0}).map(e=>`${t[e]} ${e}w`).join(", ");""!=n&&o.setAttribute("srcset",{data:n,width:i},e)}}function Iu(t,e){return Array.from(t.model.createRangeOn(e)).filter(t=>t.item.is("image")).map(t=>t.item)}class Vu{constructor(t){this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}begin(t,e,o){const i=new Zr(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const o of e)if(t.classList.contains("ck-widget__resizer__handle-"+o))return o}(t),this._referenceCoordinates=function(t,e){const o=new Zr(t),i=e.split("-"),n={x:"right"==i[1]?o.right:o.left,y:"bottom"==i[0]?o.bottom:o.top};return n.x+=t.ownerDocument.defaultView.scrollX,n.y+=t.ownerDocument.defaultView.scrollY,n}(e,function(t){const e=t.split("-"),o={top:"bottom",bottom:"top",left:"right",right:"left"};return`${o[e[0]]}-${o[e[1]]}`}(this.activeHandlePosition)),this.originalWidth=i.width,this.originalHeight=i.height,this.aspectRatio=i.width/i.height;const n=o.style.width;n&&n.match(/^\d+\.?\d*%$/)?this.originalWidthPercents=parseFloat(n):this.originalWidthPercents=function(t,e){const o=t.parentElement,i=parseFloat(o.ownerDocument.defaultView.getComputedStyle(o).width);return e.width/i*100}(o,i)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}Co(Vu,Wi);class Ou{constructor(t){this._options=t,this._domResizerWrapper=null,this._viewResizerWrapper=null,this.set("isEnabled",!0),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())},{priority:"high"})}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change(o=>{const i=o.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const o=this.toDomElement(e);return t._appendHandles(o),t._appendSizeUI(o),t._domResizerWrapper=o,t.on("change:isEnabled",(t,e,i)=>{o.style.display=i?"":"none"}),o.style.display=t.isEnabled?"":"none",o}));o.insert(o.createPositionAt(e,"end"),i),o.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=i})}begin(t){this.state=new Vu(this._options),this._sizeUI.bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change(t=>{const o=this._options.unit||"%",i=("%"===o?e.widthPercents:e.width)+o;t.setStyle("width",i,this._options.viewElement)});const o=this._getHandleHost(),i=new Zr(o);e.handleHostWidth=Math.round(i.width),e.handleHostHeight=Math.round(i.height);const n=new Zr(o);e.width=Math.round(n.width),e.height=Math.round(n.height),this.redraw(i),this.state.update(e)}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change(()=>{this._cleanup(),this._options.onCommit(e)})}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;var o;(o=e)&&o.ownerDocument&&o.ownerDocument.contains(o)&&this._options.editor.editing.view.change(o=>{const i=e.parentElement,n=this._getHandleHost(),r=t||new Zr(n);o.setStyle("width",r.width+"px",this._viewResizerWrapper),o.setStyle("height",r.height+"px",this._viewResizerWrapper);const s=n.offsetLeft,a=n.offsetTop,l=n.offsetHeight,c=n.offsetWidth;i.isSameNode(n)||(o.setStyle("left",s+"px",this._viewResizerWrapper),o.setStyle("top",a+"px",this._viewResizerWrapper),o.setStyle("height",l+"px",this._viewResizerWrapper),o.setStyle("width",c+"px",this._viewResizerWrapper))})}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeUI.dismiss(),this._sizeUI.isVisible=!1;this._options.editor.editing.view.change(t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)})}_proposeNewSize(t){const e=this.state,o={x:(i=t).pageX,y:i.pageY};var i;const n=!this._options.isCentered||this._options.isCentered(this),r={x:e._referenceCoordinates.x-(o.x+e.originalWidth),y:o.y-e.originalHeight-e._referenceCoordinates.y};n&&e.activeHandlePosition.endsWith("-right")&&(r.x=o.x-(e._referenceCoordinates.x+e.originalWidth)),n&&(r.x*=2);const s={width:Math.abs(e.originalWidth+r.x),height:Math.abs(e.originalHeight+r.y)};s.dominant=s.width/e.aspectRatio>s.height?"width":"height",s.max=s[s.dominant];const a={width:s.width,height:s.height};return"width"==s.dominant?a.height=a.width/e.aspectRatio:a.width=a.height*e.aspectRatio,{width:Math.round(a.width),height:Math.round(a.height),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*a.width*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const i of e)t.appendChild(new Ol({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(o=i,"ck-widget__resizer__handle-"+o)}}).render());var o}_appendSizeUI(t){const e=new Mu;e.render(),this._sizeUI=e,t.appendChild(e.element)}}Co(Ou,Wi);class Mu extends Xl{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("activeHandlePosition",t=>t?"ck-orientation-"+t:"")],style:{display:t.if("isVisible","none",t=>!t)}},children:[{text:t.to("label")}]})}bindToState(t,e){this.bind("isVisible").to(e,"proposedWidth",e,"proposedHeight",(t,e)=>null!==t&&null!==e),this.bind("label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",(e,o,i)=>"px"===t.unit?`${e}×${o}`:i+"%"),this.bind("activeHandlePosition").to(e)}dismiss(){this.unbind(),this.isVisible=!1}}var Nu=function(t,e,o){var i=!0,n=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return z(o)&&(i="leading"in o?!!o.leading:i,n="trailing"in o?!!o.trailing:n),qr(t,e,{leading:i,maxWait:e,trailing:n})};o(74);class Bu extends Rl{static get pluginName(){return"WidgetResize"}init(){this.set("_visibleResizer",null),this.set("_activeResizer",null),this._resizers=new Map;const t=tr.window.document;this.editor.model.schema.setAttributeProperties("width",{isFormatting:!0}),this._observer=Object.create(cr),this._observer.listenTo(t,"mousedown",this._mouseDownListener.bind(this)),this._observer.listenTo(t,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(t,"mouseup",this._mouseUpListener.bind(this));const e=()=>{this._visibleResizer&&this._visibleResizer.redraw()},o=Nu(e,200);this.on("change:_visibleResizer",e),this.editor.ui.on("update",o),this._observer.listenTo(tr.window,"resize",o);const i=this.editor.editing.view.document.selection;i.on("change",()=>{const t=i.getSelectedElement();this._visibleResizer=this._getResizerByViewElement(t)||null})}destroy(){this._observer.stopListening();for(const t of this._resizers.values())t.destroy()}attachTo(t){const e=new Ou(t),o=this.editor.plugins;if(e.attach(),o.has("WidgetToolbarRepository")){const t=o.get("WidgetToolbarRepository");e.on("begin",()=>{t.forceDisabled("resize")},{priority:"lowest"}),e.on("cancel",()=>{t.clearForceDisabled("resize")},{priority:"highest"}),e.on("commit",()=>{t.clearForceDisabled("resize")},{priority:"highest"})}return this._resizers.set(t.viewElement,e),e}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_getResizerByViewElement(t){return this._resizers.get(t)}_mouseDownListener(t,e){if(!Ou.isResizeHandle(e.target))return;const o=e.target;this._activeResizer=this._getResizerByHandle(o),this._activeResizer&&this._activeResizer.begin(o)}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}Co(Bu,Wi);class zu extends _d{refresh(){const t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=fh(t),t&&t.hasAttribute("width")?this.value={width:t.getAttribute("width"),height:null}:this.value=null}execute(t){const e=this.editor.model,o=e.document.selection.getSelectedElement();e.change(e=>{e.setAttribute("width",t.width,o)})}}o(76);function Fu(t,e,o){return o.createRange(Du(t,e,!0,o),Du(t,e,!1,o))}function Du(t,e,o,i){let n=t.textNode||(o?t.nodeBefore:t.nodeAfter),r=null;for(;n&&n.getAttribute("linkHref")==e;)r=n,n=o?n.previousSibling:n.nextSibling;return r?i.createPositionAt(r,o?"before":"after"):t}class Lu extends _d{constructor(t){super(t),this.manualDecorators=new Ao}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute("linkHref");for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id);this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"linkHref")}execute(t,e={}){const o=this.editor.model,i=o.document.selection,n=[],r=[];for(const t in e)e[t]?n.push(t):r.push(t);o.change(e=>{if(i.isCollapsed){const s=i.getFirstPosition();if(i.hasAttribute("linkHref")){const a=Fu(s,i.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,a),n.forEach(t=>{e.setAttribute(t,!0,a)}),r.forEach(t=>{e.removeAttribute(t,a)}),e.setSelection(a)}else if(""!==t){const r=zo(i.getAttributes());r.set("linkHref",t),n.forEach(t=>{r.set(t,!0)});const a=e.createText(t,r);o.insertContent(a,s),e.setSelection(e.createRangeOn(a))}}else{const s=o.schema.getValidRanges(i.getRanges(),"linkHref");for(const o of s)e.setAttribute("linkHref",t,o),n.forEach(t=>{e.setAttribute(t,!0,o)}),r.forEach(t=>{e.removeAttribute(t,o)})}})}_getDecoratorStateFromModel(t){return this.editor.model.document.selection.getAttribute(t)}}class ju extends _d{refresh(){this.isEnabled=this.editor.model.document.selection.hasAttribute("linkHref")}execute(){const t=this.editor,e=this.editor.model,o=e.document.selection,i=t.commands.get("link");e.change(t=>{const n=o.isCollapsed?[Fu(o.getFirstPosition(),o.getAttribute("linkHref"),e)]:o.getRanges();for(const e of n)if(t.removeAttribute("linkHref",e),i)for(const o of i.manualDecorators)t.removeAttribute(o.id,e)})}}var Hu=function(t,e,o){var i=t.length;return o=void 0===o?i:o,!e&&o>=i?t:ni(t,e,o)},Wu=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var qu=function(t){return Wu.test(t)};var Uu=function(t){return t.split("")},$u="[\\ud800-\\udfff]",Gu="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Ku="\\ud83c[\\udffb-\\udfff]",Ju="[^\\ud800-\\udfff]",Yu="(?:\\ud83c[\\udde6-\\uddff]){2}",Qu="[\\ud800-\\udbff][\\udc00-\\udfff]",Xu="(?:"+Gu+"|"+Ku+")"+"?",Zu="[\\ufe0e\\ufe0f]?"+Xu+("(?:\\u200d(?:"+[Ju,Yu,Qu].join("|")+")[\\ufe0e\\ufe0f]?"+Xu+")*"),tg="(?:"+[Ju+Gu+"?",Gu,Yu,Qu,$u].join("|")+")",eg=RegExp(Ku+"(?="+Ku+")|"+tg+Zu,"g");var og=function(t){return t.match(eg)||[]};var ig=function(t){return qu(t)?og(t):Uu(t)};var ng=function(t){return function(e){e=Zo(e);var o=qu(e)?ig(e):void 0,i=o?o[0]:e.charAt(0),n=o?Hu(o,1).join(""):e.slice(1);return i[t]()+n}}("toUpperCase");const rg=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,sg=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;function ag(t,e){const o=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,o),o}function lg(t){return function(t){return t.replace(rg,"").match(sg)}(t=String(t))?t:"#"}class cg{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach(t=>this._definitions.add(t)):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",(t,e,o)=>{if(!o.consumable.test(e.item,"attribute:linkHref"))return;const i=o.writer,n=i.document.selection;for(const t of this._definitions){const r=i.createAttributeElement("a",t.attributes,{priority:5});i.setCustomProperty("link",!0,r),t.callback(e.attributeNewValue)?e.item.is("selection")?i.wrap(n.getFirstRange(),r):i.wrap(o.mapper.toViewRange(e.range),r):i.unwrap(o.mapper.toViewRange(e.range),r)}},{priority:"high"})}}}class dg{constructor({id:t,label:e,attributes:o,defaultValue:i}){this.id=t,this.set("value"),this.defaultValue=i,this.label=e,this.attributes=o}}Co(dg,Wi);class hg{constructor(t,e,o){this.model=t,this.attribute=o,this._modelSelection=t.document.selection,this._overrideUid=null,this._isNextGravityRestorationSkipped=!1,e.listenTo(this._modelSelection,"change:range",(t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&ug(this._modelSelection.getFirstPosition(),o)||this._restoreGravity())})}handleForwardMovement(t,e){const o=this.attribute;if(!(this._isGravityOverridden||t.isAtStart&&this._hasSelectionAttribute))return fg(t,o)&&this._hasSelectionAttribute?(this._preventCaretMovement(e),this._removeSelectionAttribute(),!0):gg(t,o)||mg(t,o)&&this._hasSelectionAttribute?(this._preventCaretMovement(e),this._overrideGravity(),!0):void 0}handleBackwardMovement(t,e){const o=this.attribute;return this._isGravityOverridden?fg(t,o)&&this._hasSelectionAttribute?(this._preventCaretMovement(e),this._restoreGravity(),this._removeSelectionAttribute(),!0):(this._preventCaretMovement(e),this._restoreGravity(),t.isAtStart&&this._removeSelectionAttribute(),!0):fg(t,o)&&!this._hasSelectionAttribute?(this._preventCaretMovement(e),this._setSelectionAttributeFromTheNodeBefore(t),!0):t.isAtEnd&&mg(t,o)?this._hasSelectionAttribute?void(pg(t,o)&&(this._skipNextAutomaticGravityRestoration(),this._overrideGravity())):(this._preventCaretMovement(e),this._setSelectionAttributeFromTheNodeBefore(t),!0):t.isAtStart?this._hasSelectionAttribute?(this._removeSelectionAttribute(),this._preventCaretMovement(e),!0):void 0:void(pg(t,o)&&(this._skipNextAutomaticGravityRestoration(),this._overrideGravity()))}get _isGravityOverridden(){return!!this._overrideUid}get _hasSelectionAttribute(){return this._modelSelection.hasAttribute(this.attribute)}_overrideGravity(){this._overrideUid=this.model.change(t=>t.overrideSelectionGravity())}_restoreGravity(){this.model.change(t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null})}_preventCaretMovement(t){t.preventDefault()}_removeSelectionAttribute(){this.model.change(t=>{t.removeSelectionAttribute(this.attribute)})}_setSelectionAttributeFromTheNodeBefore(t){const e=this.attribute;this.model.change(o=>{o.setSelectionAttribute(this.attribute,t.nodeBefore.getAttribute(e))})}_skipNextAutomaticGravityRestoration(){this._isNextGravityRestorationSkipped=!0}}function ug(t,e){return gg(t,e)||mg(t,e)}function gg(t,e){const{nodeBefore:o,nodeAfter:i}=t,n=!!o&&o.hasAttribute(e);return!!i&&i.hasAttribute(e)&&(!n||o.getAttribute(e)!==i.getAttribute(e))}function mg(t,e){const{nodeBefore:o,nodeAfter:i}=t,n=!!o&&o.hasAttribute(e),r=!!i&&i.hasAttribute(e);return n&&(!r||o.getAttribute(e)!==i.getAttribute(e))}function fg(t,e){const{nodeBefore:o,nodeAfter:i}=t,n=!!o&&o.hasAttribute(e);if(!!i&&i.hasAttribute(e)&&n)return i.getAttribute(e)!==o.getAttribute(e)}function pg(t,e){return ug(t.getShiftedBy(-1),e)}o(78);const bg=/^(https?:)?\/\//;class wg extends Rl{static get pluginName(){return"LinkEditing"}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor,e=t.locale;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:ag}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>ag(lg(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new Lu(t)),t.commands.add("unlink",new ju(t));const o=function(t,e){const o={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach(t=>(t.label&&o[t.label]&&(t.label=o[t.label]),t)),e}(t.t,function(t){const e=[];if(t)for(const[o,i]of Object.entries(t)){const t=Object.assign({},i,{id:"link"+ng(o)});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter(t=>"automatic"===t.mode)),this._enableManualDecorators(o.filter(t=>"manual"===t.mode)),function({view:t,model:e,emitter:o,attribute:i,locale:n}){const r=new hg(e,o,i),s=e.document.selection;o.listenTo(t.document,"keydown",(t,e)=>{if(!s.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const o=e.keyCode==pn.arrowright,i=e.keyCode==pn.arrowleft;if(!o&&!i)return;const a=s.getFirstPosition(),l=n.contentLanguageDirection;let c;c="ltr"===l&&o||"rtl"===l&&i?r.handleForwardMovement(a,e):r.handleBackwardMovement(a,e),c&&t.stop()},{priority:uo.get("high")+1})}({view:t.editing.view,model:t.model,emitter:this,attribute:"linkHref",locale:e}),this._setupLinkHighlight(),this._enableInsertContentSelectionAttributesFixer()}_enableAutomaticDecorators(t){const e=this.editor,o=new cg;e.config.get("link.addTargetToExternalLinks")&&o.add({id:"linkIsExternal",mode:"automatic",callback:t=>bg.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),o.add(t),o.length&&e.conversion.for("downcast").add(o.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,o=e.commands.get("link").manualDecorators;t.forEach(t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),o.add(new dg(t)),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,i)=>{if(e){const e=o.get(t.id).attributes,n=i.createAttributeElement("a",e,{priority:5});return i.setCustomProperty("link",!0,n),n}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:o.get(t.id).attributes},model:{key:t.id}})})}_setupLinkHighlight(){const t=this.editor,e=t.editing.view,o=new Set;e.document.registerPostFixer(e=>{const i=t.model.document.selection;let n=!1;if(i.hasAttribute("linkHref")){const r=Fu(i.getFirstPosition(),i.getAttribute("linkHref"),t.model),s=t.editing.mapper.toViewRange(r);for(const t of s.getItems())t.is("a")&&!t.hasClass("ck-link_selected")&&(e.addClass("ck-link_selected",t),o.add(t),n=!0)}return n}),t.conversion.for("editingDowncast").add(t=>{function i(){e.change(t=>{for(const e of o.values())t.removeClass("ck-link_selected",e),o.delete(e)})}t.on("insert",i,{priority:"highest"}),t.on("remove",i,{priority:"highest"}),t.on("attribute",i,{priority:"highest"}),t.on("selection",i,{priority:"highest"})})}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;t.on("insertContent",()=>{const o=e.anchor.nodeBefore,i=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&o&&o.hasAttribute("linkHref")&&(i&&i.hasAttribute("linkHref")||t.change(e=>{[...t.document.selection.getAttributeKeys()].filter(t=>t.startsWith("link")).forEach(t=>e.removeSelectionAttribute(t))}))},{priority:"low"})}}class kg extends Or{constructor(t){super(t),this.domEventType="click"}onDomEvent(t){this.fire(t.type,t)}}o(80);class _g extends Xl{constructor(t,e){super(t);const o=t.t;this.focusTracker=new gc,this.keystrokes=new Al,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(o("Save"),Fh,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(o("Cancel"),Dh,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new Vl,this._focusCycler=new wc({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form"];e.manualDecorators.length&&i.push("ck-link-form_layout-vertical"),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,t),{})}render(){super.render(),zh({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Oh(this.locale,Nh);return e.label=t("Link URL"),e.fieldView.placeholder="https://example.com",e}_createButton(t,e,o,i){const n=new uc(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n.extendTemplate({attributes:{class:o}}),i&&n.delegate("execute").to(this,i),n}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const o of t.manualDecorators){const i=new Rc(this.locale);i.set({name:o.id,label:o.label,withText:!0}),i.bind("isOn").toMany([o,t],"value",(t,e)=>void 0===e&&void 0===t?o.defaultValue:t),i.on("execute",()=>{o.set("value",!i.isOn)}),e.add(i)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Xl;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)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}o(82);class vg extends Xl{constructor(t){super(t);const e=t.t;this.focusTracker=new gc,this.keystrokes=new Al,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),'',"edit"),this.set("href"),this._focusables=new Vl,this._focusCycler=new wc({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"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createButton(t,e,o){const i=new uc(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.delegate("execute").to(this,o),i}_createPreviewButton(){const t=new uc(this.locale),e=this.bindTemplate,o=this.t;return t.set({withText:!0,tooltip:o("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",t=>t&&lg(t)),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",t=>t||o("This link has no URL")),t.bind("isEnabled").to(this,"href",t=>!!t),t.template.tag="a",t.template.eventListeners={},t}}class yg extends Rl{static get requires(){return[fc]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(kg),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(fc),this._createToolbarLinkButton(),this._enableUserBalloonInteractions()}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new vg(t.locale),o=t.commands.get("link"),i=t.commands.get("unlink");return e.bind("href").to(o,"value"),e.editButtonView.bind("isEnabled").to(o),e.unlinkButtonView.bind("isEnabled").to(i),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("Ctrl+K",(t,e)=>{this._addFormView(),e()}),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),o=new _g(t.locale,e);return 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",()=>{t.execute("link",o.urlInputView.fieldView.element.value,o.getDecoratorSwitchesState()),this._closeFormView()}),this.listenTo(o,"cancel",()=>{this._closeFormView()}),o.keystrokes.set("Esc",(t,e)=>{this._closeFormView(),e()}),o}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),o=t.t;t.keystrokes.set("Ctrl+K",(t,e)=>{e(),this._showUI(!0)}),t.ui.componentFactory.add("link",t=>{const i=new uc(t);return i.isEnabled=!0,i.label=o("Link"),i.icon='',i.keystroke="Ctrl+K",i.tooltip=!0,i.isToggleable=!0,i.bind("isEnabled").to(e,"isEnabled"),i.bind("isOn").to(e,"value",t=>!!t),this.listenTo(i,"execute",()=>this._showUI(!0)),i})}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",()=>{this._getSelectedLinkElement()&&this._showUI()}),this.editor.keystrokes.set("Tab",(t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())},{priority:"high"}),this.editor.keystrokes.set("Esc",(t,e)=>{this._isUIVisible&&(this._hideUI(),e())}),Ic({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),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)}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let o=this._getSelectedLinkElement(),i=r();const n=()=>{const t=this._getSelectedLinkElement(),e=r();o&&!t||!o&&e!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),o=t,i=e};function r(){return e.selection.focus.getAncestors().reverse().find(t=>t.is("element"))}this.listenTo(t.ui,"update",n),this.listenTo(this._balloon,"change:visibleView",n)}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(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=t.document,o=this._getSelectedLinkElement();return{target:o?t.domConverter.mapViewToDom(o):t.domConverter.viewRangeToDom(e.selection.getFirstRange())}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection;if(e.isCollapsed)return xg(e.getFirstPosition());{const o=e.getFirstRange().getTrimmed(),i=xg(o.start),n=xg(o.end);return i&&i==n&&t.createRangeIn(i).getTrimmed().isEqual(o)?i:null}}}function xg(t){return t.getAncestors().find(t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e})}class Cg extends _d{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document,o=Array.from(e.selection.getSelectedBlocks()).filter(e=>Tg(e,t.schema)),i=!0===this.value;t.change(t=>{if(i){let e=o[o.length-1].nextSibling,i=Number.POSITIVE_INFINITY,n=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=o;)r>n.getAttribute("listIndent")&&(r=n.getAttribute("listIndent")),n.getAttribute("listIndent")==r&&t[e?"unshift":"push"](n),n=n[e?"previousSibling":"nextSibling"]}}function Tg(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class Pg extends _d{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let o=Array.from(e.selection.getSelectedBlocks());t.change(t=>{const e=o[o.length-1];let i=e.nextSibling;for(;i&&"listItem"==i.name&&i.getAttribute("listIndent")>e.getAttribute("listIndent");)o.push(i),i=i.nextSibling;this._indentBy<0&&(o=o.reverse());for(const e of o){const o=e.getAttribute("listIndent")+this._indentBy;o<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",o,e)}})}_checkEnabled(){const t=zd(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),o=t.getAttribute("listType");let i=t.previousSibling;for(;i&&i.is("listItem")&&i.getAttribute("listIndent")>=e;){if(i.getAttribute("listIndent")==e)return i.getAttribute("listType")==o;i=i.previousSibling}return!1}return!0}}function Sg(t,e){const o=e.mapper,i=e.writer,n="numbered"==t.getAttribute("listType")?"ol":"ul",r=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=Mg,e}(i),s=i.createContainerElement(n,null);return i.insert(i.createPositionAt(s,0),r),o.bindElements(t,r),r}function Eg(t,e,o,i){const n=e.parent,r=o.mapper,s=o.writer;let a=r.toViewPosition(i.createPositionBefore(t));const l=Vg(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),c=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else a=c&&"listItem"==c.name?r.toViewPosition(i.createPositionAt(c,"end")):r.toViewPosition(i.createPositionBefore(t));if(a=Ig(a),s.insert(a,n),c&&"listItem"==c.name){const t=r.toViewElement(c),o=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of o)if(t.item.is("li")){const i=s.breakContainer(s.createPositionBefore(t.item)),n=t.item.parent,r=s.createPositionAt(e,"end");Rg(s,r.nodeBefore,r.nodeAfter),s.move(s.createRangeOn(n),r),o.position=i}}else{const o=n.nextSibling;if(o&&(o.is("ul")||o.is("ol"))){let i=null;for(const e of o.getChildren()){const o=r.toModelElement(e);if(!(o&&o.getAttribute("listIndent")>t.getAttribute("listIndent")))break;i=e}i&&(s.breakContainer(s.createPositionAfter(i)),s.move(s.createRangeOn(i.parent),s.createPositionAt(e,"end")))}}Rg(s,n,n.nextSibling),Rg(s,n.previousSibling,n)}function Rg(t,e,o){return!e||!o||"ul"!=e.name&&"ol"!=e.name||e.name!=o.name||e.getAttribute("class")!==o.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function Ig(t){return t.getLastMatchingPosition(t=>t.item.is("uiElement"))}function Vg(t,e){const o=!!e.sameIndent,i=!!e.smallerIndent,n=e.listIndent;let r=t;for(;r&&"listItem"==r.name;){const t=r.getAttribute("listIndent");if(o&&n==t||i&&n>t)return r;r=r.previousSibling}return null}function Og(t,e,o,i){t.ui.componentFactory.add(e,n=>{const r=t.commands.get(e),s=new uc(n);return s.set({label:o,icon:i,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",()=>{t.execute(e),t.editing.view.focus()}),s})}function Mg(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:zi.call(this)}function Ng(t){return(e,o,i)=>{const n=i.consumable;if(!n.test(o.item,"insert")||!n.test(o.item,"attribute:listType")||!n.test(o.item,"attribute:listIndent"))return;n.consume(o.item,"insert"),n.consume(o.item,"attribute:listType"),n.consume(o.item,"attribute:listIndent");const r=o.item;Eg(r,Sg(r,i),i,t)}}function Bg(t,e,o){if(!o.consumable.consume(e.item,"attribute:listType"))return;const i=o.mapper.toViewElement(e.item),n=o.writer;n.breakContainer(n.createPositionBefore(i)),n.breakContainer(n.createPositionAfter(i));const r=i.parent,s="numbered"==e.attributeNewValue?"ol":"ul";n.rename(s,r)}function zg(t,e,o){const i=o.mapper.toViewElement(e.item).parent,n=o.writer;Rg(n,i,i.nextSibling),Rg(n,i.previousSibling,i);for(const t of e.item.getChildren())o.consumable.consume(t,"insert")}function Fg(t,e,o){if("listItem"!=e.item.name){let t=o.mapper.toViewPosition(e.range.start);const i=o.writer,n=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=i.breakContainer(t),"li"==t.parent.name);){const e=t,o=i.createPositionAt(t.parent,"end");if(!e.isEqual(o)){const t=i.remove(i.createRange(e,o));n.push(t)}t=i.createPositionAfter(t.parent)}if(n.length>0){for(let e=0;e