{"version":3,"file":"ckeditor.js","sources":["webpack://ClassicEditor/ckeditor.js"],"sourcesContent":["/*!\n * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n(function(t){t[\"fa\"]=Object.assign(t[\"fa\"]||{},{a:\"نوارابزار جدول\",b:\"تعداد لغات : 0%\",c:\"تعداد حروف : 0%\",d:\" بلوک نقل قول\",e:\"انتخاب عنوان\",f:\"عنوان\",g:\"پیوند\",h:\"درج جدول\",i:\"ستون سربرگ\",j:\"درج ستون در سمت چپ\",k:\"درج ستون در سمت راست\",l:\"حذف ستون\",m:\"ستون\",n:\"سطر سربرگ\",o:\"درج سطر در پایین\",p:\"درج سطر در بالا\",q:\"حذف سطر\",r:\"سطر\",s:\"ادغام سلول بالا\",t:\"ادغام سلول راست\",u:\"ادغام سلول پایین\",v:\"ادغام سلول چپ\",w:\"تقسیم عمودی سلول\",x:\"تقسیم افقی سلول\",y:\"ادغام سلول ها\",z:\"Insert code block\",aa:\"تراز چپ\",ab:\"تراز راست\",ac:\"تراز وسط\",ad:\"هم تراز کردن\",ae:\"تراز متن\",af:\"نوارابزار تراز متن\",ag:\"افزایش تورفتگی\",ah:\"کاهش تورفتگی\",ai:\"درشت\",aj:\"کج\",ak:\"ابزاره تصویر\",al:\"قرار دادن تصویر\",am:\"آپلود ناموفق بود\",an:\"آپلود در حال انجام\",ao:\"اندازه فونت\",ap:\"پیش فرض\",aq:\"بسیار کوچک\",ar:\"کوچک\",as:\"بزرگ\",at:\"بسیار بزرگ\",au:\"رنگ فونت\",av:\"نوار ابزارک ها\",aw:\"پاراگراف\",ax:\"عنوان 1\",ay:\"عنوان 2\",az:\"عنوان 3\",ba:\"عنوان 4\",bb:\"عنوان 5\",bc:\"عنوان 6\",bd:\"تغییر متن جایگزین تصویر\",be:\"بازکردن در برگه جدید\",bf:\"قابل بارگیری\",bg:\"نوارابزار ویرایشگر\",bh:\"Show more items\",bi:\"نوارابزار کشویی\",bj:\"ویرایشگر متن غنی\",bk:\"ویرایشگر متن غنی، %0\",bl:\"حذف رنگ\",bm:\"رنگ اسناد\",bn:\"بازگردانی\",bo:\"باز انجام\",bp:\"Plain text\",bq:\"0% از 1%\",br:\"قبلی\",bs:\"بعدی\",bt:\"ذخیره\",bu:\"لغو\",bv:\"متن جایگزین\",bw:\"سیاه\",bx:\"خاکستری تیره\",by:\"خاکستری\",bz:\"خاکستری روشن\",ca:\"سفید\",cb:\"قرمز\",cc:\"نارنجی\",cd:\"زرد\",ce:\"سبز روشن\",cf:\"سبز\",cg:\"زمرد کبود\",ch:\"فیروزه ای\",ci:\"آبی روشن\",cj:\"آبی\",ck:\"بنفش\",cl:\"لغو پیوند\",cm:\"ویرایش پیوند\",cn:\"باز کردن پیوند در برگه جدید\",co:\"این پیوند نشانی اینترنتی ندارد\",cp:\"نشانی اینترنتی پیوند\"})})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));(function t(e,n){if(typeof exports===\"object\"&&typeof module===\"object\")module.exports=n();else if(typeof define===\"function\"&&define.amd)define([],n);else if(typeof exports===\"object\")exports[\"ClassicEditor\"]=n();else e[\"ClassicEditor\"]=n()})(window,(function(){return function(t){var e={};function n(i){if(e[i]){return e[i].exports}var o=e[i]={i:i,l:false,exports:{}};t[i].call(o.exports,o,o.exports,n);o.l=true;return o.exports}n.m=t;n.c=e;n.d=function(t,e,i){if(!n.o(t,e)){Object.defineProperty(t,e,{enumerable:true,get:i})}};n.r=function(t){if(typeof Symbol!==\"undefined\"&&Symbol.toStringTag){Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"})}Object.defineProperty(t,\"__esModule\",{value:true})};n.t=function(t,e){if(e&1)t=n(t);if(e&8)return t;if(e&4&&typeof t===\"object\"&&t&&t.__esModule)return t;var i=Object.create(null);n.r(i);Object.defineProperty(i,\"default\",{enumerable:true,value:t});if(e&2&&typeof t!=\"string\")for(var o in t)n.d(i,o,function(e){return t[e]}.bind(null,o));return i};n.n=function(t){var e=t&&t.__esModule?function e(){return t[\"default\"]}:function e(){return t};n.d(e,\"a\",e);return e};n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};n.p=\"\";return n(n.s=94)}([function(t,e,n){\"use strict\";n.d(e,\"b\",(function(){return o}));n.d(e,\"a\",(function(){return s}));const i=\"https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html\";class o extends Error{constructor(t,e,n){t=s(t);if(n){t+=\" \"+JSON.stringify(n)}super(t);this.name=\"CKEditorError\";this.context=e;this.data=n}is(t){return t===\"CKEditorError\"}static rethrowUnexpectedError(t,e){if(t.is&&t.is(\"CKEditorError\")){throw t}const n=new o(t.message,e);n.stack=t.stack;throw n}}function s(t){const e=t.match(/^([^:]+):/);if(!e){return t}return t+` Read more: ${i}#error-${e[1]}\\n`}},function(t,e,n){\"use strict\";var i=function t(){var e;return function t(){if(typeof e===\"undefined\"){e=Boolean(window&&document&&document.all&&!window.atob)}return e}}();var o=function t(){var e={};return function t(n){if(typeof e[n]===\"undefined\"){var i=document.querySelector(n);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement){try{i=i.contentDocument.head}catch(t){i=null}}e[n]=i}return e[n]}}();var s=[];function r(t){var e=-1;for(var n=0;n
\").replace(/^\\s/,\" \").replace(/\\s$/,\" \").replace(/\\s\\s/g,\" \");if(t.indexOf(\"
\")>-1){t=`
${t}
`}return t}function vv(t){return t.replace(/(\\s+)<\\/span>/g,(t,e)=>{if(e.length==1){return\" \"}return e})}const yv=[\"figcaption\",\"li\"];function xv(t){let e=\"\";if(t.is(\"text\")||t.is(\"textProxy\")){e=t.data}else if(t.is(\"img\")&&t.hasAttribute(\"alt\")){e=t.getAttribute(\"alt\")}else{let n=null;for(const i of t.getChildren()){const t=xv(i);if(n&&(n.is(\"containerElement\")||i.is(\"containerElement\"))){if(yv.includes(n.name)||yv.includes(i.name)){e+=\"\\n\"}else{e+=\"\\n\\n\"}}e+=t;n=i}}return e}class Cv extends Nw{static get pluginName(){return\"Clipboard\"}init(){const t=this.editor;const e=t.model.document;const n=t.editing.view;const i=n.document;this._htmlDataProcessor=new vm;n.addObserver(wv);this.listenTo(i,\"clipboardInput\",e=>{if(t.isReadOnly){e.stop()}},{priority:\"highest\"});this.listenTo(i,\"clipboardInput\",(t,e)=>{const i=e.dataTransfer;let o=\"\";if(i.getData(\"text/html\")){o=vv(i.getData(\"text/html\"))}else if(i.getData(\"text/plain\")){o=_v(i.getData(\"text/plain\"))}o=this._htmlDataProcessor.toView(o);this.fire(\"inputTransformation\",{content:o,dataTransfer:i});n.scrollToTheSelection()},{priority:\"low\"});this.listenTo(this,\"inputTransformation\",(t,e)=>{if(!e.content.isEmpty){const t=this.editor.data;const n=this.editor.model;const i=t.toModel(e.content,\"$clipboardHolder\");if(i.childCount==0){return}n.insertContent(i)}},{priority:\"low\"});function o(n,o){const s=o.dataTransfer;o.preventDefault();const r=t.data.toView(t.model.getSelectedContent(e.selection));i.fire(\"clipboardOutput\",{dataTransfer:s,content:r,method:n.name})}this.listenTo(i,\"copy\",o,{priority:\"low\"});this.listenTo(i,\"cut\",(e,n)=>{if(t.isReadOnly){n.preventDefault()}else{o(e,n)}},{priority:\"low\"});this.listenTo(i,\"clipboardOutput\",(n,i)=>{if(!i.content.isEmpty){i.dataTransfer.setData(\"text/html\",this._htmlDataProcessor.toData(i.content));i.dataTransfer.setData(\"text/plain\",xv(i.content))}if(i.method==\"cut\"){t.model.deleteContent(e.selection)}},{priority:\"low\"})}}class Av{createDocumentFragment(t){return new Ul(t)}createElement(t,e,n){return new Fc(t,e,n)}createText(t){return new Dr(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 i=n.getChildIndex(t);this.removeChildren(i,1,n);this.insertChild(i,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 Fc(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(I(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 Pv extends Fw{refresh(){this.isEnabled=Hk(this.editor.model)}execute(t){const e=this.editor;const n=e.model;const i=e.plugins.get(Q_);n.change(e=>{const o=Array.isArray(t.file)?t.file:[t.file];for(const t of o){Tv(e,n,i,t)}})}}function Tv(t,e,n,i){const o=n.createLoader(i);if(!o){return}jk(t,e,{uploadId:o.id})}class Sv extends Nw{static get requires(){return[Q_,gv,Cv]}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 i=t.conversion;const o=t.plugins.get(Q_);const s=j_(t.config.get(\"image.upload.types\"));n.extend(\"image\",{allowAttributes:[\"uploadId\",\"uploadStatus\"]});t.commands.add(\"imageUpload\",new Pv(t));i.for(\"upcast\").attributeToAttribute({view:{name:\"img\",key:\"uploadId\"},model:\"uploadId\"});this.listenTo(t.editing.view.document,\"clipboardInput\",(e,n)=>{if(Ev(n.dataTransfer)){return}const i=Array.from(n.dataTransfer.files).filter(t=>{if(!t){return false}return s.test(t.type)});const o=n.targetRanges.map(e=>t.editing.mapper.toModelRange(e));t.model.change(n=>{n.setSelection(o);if(i.length){e.stop();t.model.enqueueChange(\"default\",()=>{t.execute(\"imageUpload\",{file:i})})}})});this.listenTo(t.plugins.get(Cv),\"inputTransformation\",(e,n)=>{const i=Array.from(t.editing.view.createRangeIn(n.content)).filter(t=>q_(t.item)&&!t.item.getAttribute(\"uploadProcessed\")).map(t=>({promise:H_(t.item),imageElement:t.item}));if(!i.length){return}const s=new Av;for(const t of i){s.setAttribute(\"uploadProcessed\",true,t.imageElement);const e=o.createLoader(t.promise);if(e){s.setAttribute(\"src\",\"\",t.imageElement);s.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 i=e.position.root.rootName==\"$graveyard\";for(const e of Rv(t,n)){const t=e.getAttribute(\"uploadId\");if(!t){continue}const n=o.loaders.get(t);if(!n){continue}if(i){n.abort()}else if(n.status==\"idle\"){this._readAndUpload(n,e)}}}}})}_readAndUpload(t,e){const n=this.editor;const i=n.model;const o=n.locale.t;const s=n.plugins.get(Q_);const r=n.plugins.get(gv);i.enqueueChange(\"transparent\",t=>{t.setAttribute(\"uploadStatus\",\"reading\",e)});return t.read().then(()=>{const o=t.upload();if(Pl.isSafari){const t=n.editing.mapper.toViewElement(e);const i=t.getChild(0);n.editing.view.once(\"render\",()=>{if(!i.parent){return}const t=n.editing.view.domConverter.mapViewToDom(i.parent);if(!t){return}const e=t.style.display;t.style.display=\"none\";t._ckHack=t.offsetHeight;t.style.display=e})}i.enqueueChange(\"transparent\",t=>{t.setAttribute(\"uploadStatus\",\"uploading\",e)});return o}).then(t=>{i.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){r.showWarning(n,{title:o(\"am\"),namespace:\"upload\"})}a();i.enqueueChange(\"transparent\",t=>{t.remove(e)})});function a(){i.enqueueChange(\"transparent\",t=>{t.removeAttribute(\"uploadId\",e);t.removeAttribute(\"uploadStatus\",e)});s.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let i=0;const o=Object.keys(t).filter(t=>{const e=parseInt(t,10);if(!isNaN(e)){i=Math.max(i,e);return true}}).map(e=>`${t[e]} ${e}w`).join(\", \");if(o!=\"\"){n.setAttribute(\"srcset\",{data:o,width:i},e)}}}function Ev(t){return Array.from(t.types).includes(\"text/html\")&&t.getData(\"text/html\")!==\"\"}function Rv(t,e){return Array.from(t.model.createRangeOn(e)).filter(t=>t.item.is(\"image\")).map(t=>t.item)}class Ov extends Nw{static get pluginName(){return\"ImageUpload\"}static get requires(){return[Sv,$_,nv]}}const Mv=\"italic\";class Nv extends Nw{static get pluginName(){return\"ItalicEditing\"}init(){const t=this.editor;t.model.schema.extend(\"$text\",{allowAttributes:Mv});t.model.schema.setAttributeProperties(Mv,{isFormatting:true,copyOnEnter:true});t.conversion.attributeToElement({model:Mv,view:\"i\",upcastAlso:[\"em\",{styles:{\"font-style\":\"italic\"}}]});t.commands.add(Mv,new Jw(t,Mv));t.keystrokes.set(\"CTRL+I\",Mv)}}var Iv='';const Vv=\"italic\";class Bv extends Nw{init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add(Vv,n=>{const i=t.commands.get(Vv);const o=new Zb(n);o.set({label:e(\"aj\"),icon:Iv,keystroke:\"CTRL+I\",tooltip:true,isToggleable:true});o.bind(\"isOn\",\"isEnabled\").to(i,\"value\",\"isEnabled\");this.listenTo(o,\"execute\",()=>{t.execute(Vv);t.editing.view.focus()});return o})}}class Fv extends Nw{static get requires(){return[Nv,Bv]}static get pluginName(){return\"Italic\"}}function Dv(t,e,n){return n.createRange(zv(t,e,true,n),zv(t,e,false,n))}function zv(t,e,n,i){let o=t.textNode||(n?t.nodeBefore:t.nodeAfter);let s=null;while(o&&o.getAttribute(\"linkHref\")==e){s=o;o=n?o.previousSibling:o.nextSibling}return s?i.createPositionAt(s,n?\"before\":\"after\"):t}class Lv extends Fw{constructor(t){super(t);this.manualDecorators=new yr}restoreManualDecoratorStates(){for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}refresh(){const t=this.editor.model;const 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 n=this.editor.model;const i=n.document.selection;const o=[];const s=[];for(const t in e){if(e[t]){o.push(t)}else{s.push(t)}}n.change(e=>{if(i.isCollapsed){const r=i.getFirstPosition();if(i.hasAttribute(\"linkHref\")){const a=Dv(r,i.getAttribute(\"linkHref\"),n);e.setAttribute(\"linkHref\",t,a);o.forEach(t=>{e.setAttribute(t,true,a)});s.forEach(t=>{e.removeAttribute(t,a)});e.setSelection(a)}else if(t!==\"\"){const s=Hr(i.getAttributes());s.set(\"linkHref\",t);o.forEach(t=>{s.set(t,true)});const a=e.createText(t,s);n.insertContent(a,r);e.setSelection(e.createRangeOn(a))}}else{const r=n.schema.getValidRanges(i.getRanges(),\"linkHref\");for(const n of r){e.setAttribute(\"linkHref\",t,n);o.forEach(t=>{e.setAttribute(t,true,n)});s.forEach(t=>{e.removeAttribute(t,n)})}}})}_getDecoratorStateFromModel(t){const e=this.editor.model.document;return e.selection.getAttribute(t)||false}}class jv extends Fw{refresh(){this.isEnabled=this.editor.model.document.selection.hasAttribute(\"linkHref\")}execute(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;const i=t.commands.get(\"link\");e.change(t=>{const o=n.isCollapsed?[Dv(n.getFirstPosition(),n.getAttribute(\"linkHref\"),e)]:n.getRanges();for(const e of o){t.removeAttribute(\"linkHref\",e);if(i){for(const n of i.manualDecorators){t.removeAttribute(n.id,e)}}}})}}function Hv(t,e,n){var i=t.length;n=n===undefined?i:n;return!e&&n>=i?t:Oa(t,e,n)}var qv=Hv;var Wv=\"\\\\ud800-\\\\udfff\",Uv=\"\\\\u0300-\\\\u036f\",$v=\"\\\\ufe20-\\\\ufe2f\",Gv=\"\\\\u20d0-\\\\u20ff\",Kv=Uv+$v+Gv,Jv=\"\\\\ufe0e\\\\ufe0f\";var Qv=\"\\\\u200d\";var Yv=RegExp(\"[\"+Qv+Wv+Kv+Jv+\"]\");function Xv(t){return Yv.test(t)}var Zv=Xv;function ty(t){return t.split(\"\")}var ey=ty;var ny=\"\\\\ud800-\\\\udfff\",iy=\"\\\\u0300-\\\\u036f\",oy=\"\\\\ufe20-\\\\ufe2f\",sy=\"\\\\u20d0-\\\\u20ff\",ry=iy+oy+sy,ay=\"\\\\ufe0e\\\\ufe0f\";var cy=\"[\"+ny+\"]\",ly=\"[\"+ry+\"]\",dy=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",uy=\"(?:\"+ly+\"|\"+dy+\")\",hy=\"[^\"+ny+\"]\",fy=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",py=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",gy=\"\\\\u200d\";var my=uy+\"?\",by=\"[\"+ay+\"]?\",wy=\"(?:\"+gy+\"(?:\"+[hy,fy,py].join(\"|\")+\")\"+by+my+\")*\",ky=by+my+wy,_y=\"(?:\"+[hy+ly+\"?\",ly,fy,py,cy].join(\"|\")+\")\";var vy=RegExp(dy+\"(?=\"+dy+\")|\"+_y+ky,\"g\");function yy(t){return t.match(vy)||[]}var xy=yy;function Cy(t){return Zv(t)?xy(t):ey(t)}var Ay=Cy;function Py(t){return function(e){e=_a(e);var n=Zv(e)?Ay(e):undefined;var i=n?n[0]:e.charAt(0);var o=n?qv(n,1).join(\"\"):e.slice(1);return i[t]()+o}}var Ty=Py;var Sy=Ty(\"toUpperCase\");var Ey=Sy;const Ry=/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g;const Oy=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;function My(t){return t.is(\"attributeElement\")&&!!t.getCustomProperty(\"link\")}function Ny(t,e){const n=e.createAttributeElement(\"a\",{href:t},{priority:5});e.setCustomProperty(\"link\",true,n);return n}function Iy(t){t=String(t);return Vy(t)?t:\"#\"}function Vy(t){const e=t.replace(Ry,\"\");return e.match(Oy)}function By(t,e){const n={\"Open in a new tab\":t(\"be\"),Downloadable:t(\"bf\")};e.forEach(t=>{if(t.label&&n[t.label]){t.label=n[t.label]}return t});return e}function Fy(t){const e=[];if(t){for(const[n,i]of Object.entries(t)){const t=Object.assign({},i,{id:`link${Ey(n)}`});e.push(t)}}return e}class Dy{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 i=n.writer;const o=i.document.selection;for(const t of this._definitions){const s=i.createAttributeElement(\"a\",t.attributes,{priority:5});i.setCustomProperty(\"link\",true,s);if(t.callback(e.attributeNewValue)){if(e.item.is(\"selection\")){i.wrap(o.getFirstRange(),s)}else{i.wrap(n.mapper.toViewRange(e.range),s)}}else{i.unwrap(n.mapper.toViewRange(e.range),s)}}},{priority:\"high\"})}}}class zy{constructor({id:t,label:e,attributes:n}){this.id=t;this.set(\"value\");this.label=e;this.attributes=n}}vr(zy,Jc);function Ly({view:t,model:e,emitter:n,attribute:i,locale:o}){const s=new jy(e,n,i);const r=e.document.selection;n.listenTo(t.document,\"keydown\",(t,e)=>{if(!r.isCollapsed){return}if(e.shiftKey||e.altKey||e.ctrlKey){return}const n=e.keyCode==Vl.arrowright;const i=e.keyCode==Vl.arrowleft;if(!n&&!i){return}const a=r.getFirstPosition();const c=o.contentLanguageDirection;let l;if(c===\"ltr\"&&n||c===\"rtl\"&&i){l=s.handleForwardMovement(a,e)}else{l=s.handleBackwardMovement(a,e)}if(l){t.stop()}},{priority:or.get(\"high\")+1})}class jy{constructor(t,e,n){this.model=t;this.attribute=n;this._modelSelection=t.document.selection;this._overrideUid=null;this._isNextGravityRestorationSkipped=false;e.listenTo(this._modelSelection,\"change:range\",(t,e)=>{if(this._isNextGravityRestorationSkipped){this._isNextGravityRestorationSkipped=false;return}if(!this._isGravityOverridden){return}if(!e.directChange&&Hy(this._modelSelection.getFirstPosition(),n)){return}this._restoreGravity()})}handleForwardMovement(t,e){const n=this.attribute;if(this._isGravityOverridden){return}if(t.isAtStart&&this._hasSelectionAttribute){return}if(Uy(t,n)&&this._hasSelectionAttribute){this._preventCaretMovement(e);this._removeSelectionAttribute();return true}if(qy(t,n)){this._preventCaretMovement(e);this._overrideGravity();return true}if(Wy(t,n)&&this._hasSelectionAttribute){this._preventCaretMovement(e);this._overrideGravity();return true}}handleBackwardMovement(t,e){const n=this.attribute;if(this._isGravityOverridden){if(Uy(t,n)&&this._hasSelectionAttribute){this._preventCaretMovement(e);this._restoreGravity();this._removeSelectionAttribute();return true}else{this._preventCaretMovement(e);this._restoreGravity();if(t.isAtStart){this._removeSelectionAttribute()}return true}}else{if(Uy(t,n)&&!this._hasSelectionAttribute){this._preventCaretMovement(e);this._setSelectionAttributeFromTheNodeBefore(t);return true}if(t.isAtEnd&&Wy(t,n)){if(this._hasSelectionAttribute){if($y(t,n)){this._skipNextAutomaticGravityRestoration();this._overrideGravity()}return}else{this._preventCaretMovement(e);this._setSelectionAttributeFromTheNodeBefore(t);return true}}if(t.isAtStart){if(this._hasSelectionAttribute){this._removeSelectionAttribute();this._preventCaretMovement(e);return true}return}if($y(t,n)){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(n=>{n.setSelectionAttribute(this.attribute,t.nodeBefore.getAttribute(e))})}_skipNextAutomaticGravityRestoration(){this._isNextGravityRestorationSkipped=true}}function Hy(t,e){return qy(t,e)||Wy(t,e)}function qy(t,e){const{nodeBefore:n,nodeAfter:i}=t;const o=n?n.hasAttribute(e):false;const s=i?i.hasAttribute(e):false;return s&&(!o||n.getAttribute(e)!==i.getAttribute(e))}function Wy(t,e){const{nodeBefore:n,nodeAfter:i}=t;const o=n?n.hasAttribute(e):false;const s=i?i.hasAttribute(e):false;return o&&(!s||n.getAttribute(e)!==i.getAttribute(e))}function Uy(t,e){const{nodeBefore:n,nodeAfter:i}=t;const o=n?n.hasAttribute(e):false;const s=i?i.hasAttribute(e):false;if(!s||!o){return}return i.getAttribute(e)!==n.getAttribute(e)}function $y(t,e){return Hy(t.getShiftedBy(-1),e)}var Gy=n(68);const Ky=\"ck-link_selected\";const Jy=\"automatic\";const Qy=\"manual\";const Yy=/^(https?:)?\\/\\//;class Xy extends Nw{static get pluginName(){return\"LinkEditing\"}constructor(t){super(t);t.config.define(\"link\",{addTargetToExternalLinks:false})}init(){const t=this.editor;const e=t.locale;t.model.schema.extend(\"$text\",{allowAttributes:\"linkHref\"});t.conversion.for(\"dataDowncast\").attributeToElement({model:\"linkHref\",view:Ny});t.conversion.for(\"editingDowncast\").attributeToElement({model:\"linkHref\",view:(t,e)=>Ny(Iy(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 Lv(t));t.commands.add(\"unlink\",new jv(t));const n=By(t.t,Fy(t.config.get(\"link.decorators\")));this._enableAutomaticDecorators(n.filter(t=>t.mode===Jy));this._enableManualDecorators(n.filter(t=>t.mode===Qy));Ly({view:t.editing.view,model:t.model,emitter:this,attribute:\"linkHref\",locale:e});this._setupLinkHighlight()}_enableAutomaticDecorators(t){const e=this.editor;const n=new Dy;if(e.config.get(\"link.addTargetToExternalLinks\")){n.add({id:\"linkIsExternal\",mode:Jy,callback:t=>Yy.test(t),attributes:{target:\"_blank\",rel:\"noopener noreferrer\"}})}n.add(t);if(n.length){e.conversion.for(\"downcast\").add(n.getDispatcher())}}_enableManualDecorators(t){if(!t.length){return}const e=this.editor;const n=e.commands.get(\"link\");const i=n.manualDecorators;t.forEach(t=>{e.model.schema.extend(\"$text\",{allowAttributes:t.id});i.add(new zy(t));e.conversion.for(\"downcast\").attributeToElement({model:t.id,view:(e,n)=>{if(e){const e=i.get(t.id).attributes;const o=n.createAttributeElement(\"a\",e,{priority:5});n.setCustomProperty(\"link\",true,o);return o}}});e.conversion.for(\"upcast\").elementToAttribute({view:{name:\"a\",attributes:i.get(t.id).attributes},model:{key:t.id}})})}_setupLinkHighlight(){const t=this.editor;const e=t.editing.view;const n=new Set;e.document.registerPostFixer(e=>{const i=t.model.document.selection;let o=false;if(i.hasAttribute(\"linkHref\")){const s=Dv(i.getFirstPosition(),i.getAttribute(\"linkHref\"),t.model);const r=t.editing.mapper.toViewRange(s);for(const t of r.getItems()){if(t.is(\"a\")&&!t.hasClass(Ky)){e.addClass(Ky,t);n.add(t);o=true}}}return o});t.conversion.for(\"editingDowncast\").add(t=>{t.on(\"insert\",i,{priority:\"highest\"});t.on(\"remove\",i,{priority:\"highest\"});t.on(\"attribute\",i,{priority:\"highest\"});t.on(\"selection\",i,{priority:\"highest\"});function i(){e.change(t=>{for(const e of n.values()){t.removeClass(Ky,e);n.delete(e)}})}})}}class Zy extends Qu{constructor(t){super(t);this.domEventType=\"click\"}onDomEvent(t){this.fire(t.type,t)}}var tx=n(70);class ex extends mb{constructor(t,e=[]){super(t);const n=t.t;this.focusTracker=new Cm;this.keystrokes=new um;this.urlInputView=this._createUrlInput();this.saveButtonView=this._createButton(n(\"bt\"),h_,\"ck-button-save\");this.saveButtonView.type=\"submit\";this.cancelButtonView=this._createButton(n(\"bu\"),f_,\"ck-button-cancel\",\"cancel\");this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e);this.children=this._createFormChildren(e);this._focusables=new Lm;this._focusCycler=new Nb({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:\"shift + tab\",focusNext:\"tab\"}});const i=[\"ck\",\"ck-link-form\"];if(e.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;return t},{})}render(){super.render();u_({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(){const t=this.locale.t;const e=new c_(this.locale,d_);e.label=t(\"cp\");e.inputView.placeholder=\"https://example.com\";return e}_createButton(t,e,n,i){const o=new Zb(this.locale);o.set({label:t,icon:e,tooltip:true});o.extendTemplate({attributes:{class:n}});if(i){o.delegate(\"execute\").to(this,i)}return o}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t){const t=new aw(this.locale);t.set({name:n.id,label:n.label,withText:true});t.bind(\"isOn\").to(n,\"value\");t.on(\"execute\",()=>{n.set(\"value\",!t.isOn)});e.add(t)}return e}_createFormChildren(t){const e=this.createCollection();e.add(this.urlInputView);if(t.length){const t=new mb;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 nx='';var ix='';var ox=n(72);class sx extends mb{constructor(t){super(t);const e=t.t;this.focusTracker=new Cm;this.keystrokes=new um;this.previewButtonView=this._createPreviewButton();this.unlinkButtonView=this._createButton(e(\"cl\"),nx,\"unlink\");this.editButtonView=this._createButton(e(\"cm\"),ix,\"edit\");this.set(\"href\");this._focusables=new Lm;this._focusCycler=new Nb({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();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 i=new Zb(this.locale);i.set({label:t,icon:e,tooltip:true});i.delegate(\"execute\").to(this,n);return i}_createPreviewButton(){const t=new Zb(this.locale);const e=this.bindTemplate;const n=this.t;t.set({withText:true,tooltip:n(\"cn\")});t.extendTemplate({attributes:{class:[\"ck\",\"ck-link-actions__preview\"],href:e.to(\"href\",t=>t&&Iy(t)),target:\"_blank\",rel:\"noopener noreferrer\"}});t.bind(\"label\").to(this,\"href\",t=>t||n(\"co\"));t.bind(\"isEnabled\").to(this,\"href\",t=>!!t);t.template.tag=\"a\";t.template.eventListeners={};return t}}var rx='';const ax=\"Ctrl+K\";class cx extends Nw{static get requires(){return[S_]}static get pluginName(){return\"LinkUI\"}init(){const t=this.editor;t.editing.view.addObserver(Zy);this.actionsView=this._createActionsView();this.formView=this._createFormView();this._balloon=t.plugins.get(S_);this._createToolbarLinkButton();this._enableUserBalloonInteractions()}destroy(){super.destroy();this.formView.destroy()}_createActionsView(){const t=this.editor;const e=new sx(t.locale);const n=t.commands.get(\"link\");const i=t.commands.get(\"unlink\");e.bind(\"href\").to(n,\"value\");e.editButtonView.bind(\"isEnabled\").to(n);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(ax,(t,e)=>{this._addFormView();e()});return e}_createFormView(){const t=this.editor;const e=t.commands.get(\"link\");const n=new ex(t.locale,e.manualDecorators);n.urlInputView.bind(\"value\").to(e,\"value\");n.urlInputView.bind(\"isReadOnly\").to(e,\"isEnabled\",t=>!t);n.saveButtonView.bind(\"isEnabled\").to(e);this.listenTo(n,\"submit\",()=>{t.execute(\"link\",n.urlInputView.inputView.element.value,n.getDecoratorSwitchesState());this._closeFormView()});this.listenTo(n,\"cancel\",()=>{this._closeFormView()});n.keystrokes.set(\"Esc\",(t,e)=>{this._closeFormView();e()});return n}_createToolbarLinkButton(){const t=this.editor;const e=t.commands.get(\"link\");const n=t.t;t.keystrokes.set(ax,(t,e)=>{e();this._showUI(true)});t.ui.componentFactory.add(\"link\",t=>{const i=new Zb(t);i.isEnabled=true;i.label=n(\"g\");i.icon=rx;i.keystroke=ax;i.tooltip=true;i.isToggleable=true;i.bind(\"isEnabled\").to(e,\"isEnabled\");i.bind(\"isOn\").to(e,\"value\",t=>!!t);this.listenTo(i,\"execute\",()=>this._showUI(true));return i})}_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()}});cw({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.select()}this.formView.urlInputView.inputView.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()}}_showUI(t=false){if(!this._getSelectedLinkElement()){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)}_startUpdatingUI(){const t=this.editor;const e=t.editing.view.document;let n=this._getSelectedLinkElement();let i=s();const o=()=>{const t=this._getSelectedLinkElement();const e=s();if(n&&!t||!n&&e!==i){this._hideUI()}else if(this._isUIVisible){this._balloon.updatePosition(this._getBalloonPositionData())}n=t;i=e};function s(){return e.selection.focus.getAncestors().reverse().find(t=>t.is(\"element\"))}this.listenTo(t.ui,\"update\",o);this.listenTo(this._balloon,\"change:visibleView\",o)}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=t.document;const n=this._getSelectedLinkElement();const i=n?t.domConverter.mapViewToDom(n):t.domConverter.viewRangeToDom(e.selection.getFirstRange());return{target:i}}_getSelectedLinkElement(){const t=this.editor.editing.view;const e=t.document.selection;if(e.isCollapsed){return lx(e.getFirstPosition())}else{const n=e.getFirstRange().getTrimmed();const i=lx(n.start);const o=lx(n.end);if(!i||i!=o){return null}if(t.createRangeIn(i).getTrimmed().isEqual(n)){return i}else{return null}}}}function lx(t){return t.getAncestors().find(t=>My(t))}class dx extends Nw{static get requires(){return[Xy,cx]}static get pluginName(){return\"Link\"}}function ux(t,e){let n=e.parent;while(n){if(n.name===t){return n}n=n.parent}}function hx(t,e,n,i,o=1){if(e>o){i.setAttribute(t,e,n)}else{i.removeAttribute(t,n)}}function fx(t,e,n={}){const i=t.createElement(\"tableCell\",n);t.insertElement(\"paragraph\",i);t.insert(i,e)}function px(t){if(!t||!ct(t)){return t}const{top:e,right:n,bottom:i,left:o}=t;if(e==n&&n==i&&i==o){return e}}function gx(t,e){const n=parseFloat(t);if(Number.isNaN(n)){return t}if(String(n)!==String(t)){return t}return`${n}${e}`}function mx(){return t=>{t.on(\"element:table\",(t,e,n)=>{const i=e.viewItem;if(!n.consumable.test(i,{name:true})){return}const{rows:o,headingRows:s,headingColumns:r}=wx(i);const a={};if(r){a.headingColumns=r}if(s){a.headingRows=s}const c=n.writer.createElement(\"table\",a);const l=n.splitToAllowedParent(c,e.modelCursor);if(!l){return}n.writer.insert(c,l.position);n.consumable.consume(i,{name:true});if(o.length){o.forEach(t=>n.convertItem(t,n.writer.createPositionAt(c,\"end\")))}else{const t=n.writer.createElement(\"tableRow\");n.writer.insert(t,n.writer.createPositionAt(c,\"end\"));fx(n.writer,n.writer.createPositionAt(t,\"end\"))}e.modelRange=n.writer.createRange(n.writer.createPositionBefore(c),n.writer.createPositionAfter(c));if(l.cursorParent){e.modelCursor=n.writer.createPositionAt(l.cursorParent,0)}else{e.modelCursor=e.modelRange.end}})}}function bx(t){return e=>{e.on(`element:${t}`,(t,e,n)=>{const i=e.viewItem;if(!n.consumable.test(i,{name:true})){return}const o=n.writer.createElement(\"tableCell\");const s=n.splitToAllowedParent(o,e.modelCursor);if(!s){return}n.writer.insert(o,s.position);n.consumable.consume(i,{name:true});const r=n.writer.createPositionAt(o,0);n.convertChildren(i,r);if(!o.childCount){n.writer.insertElement(\"paragraph\",r)}e.modelRange=n.writer.createRange(n.writer.createPositionBefore(o),n.writer.createPositionAfter(o));e.modelCursor=e.modelRange.end})}}function wx(t){const e={headingRows:0,headingColumns:0};const n=[];const i=[];let o;for(const s of Array.from(t.getChildren())){if(s.name===\"tbody\"||s.name===\"thead\"||s.name===\"tfoot\"){if(s.name===\"thead\"&&!o){o=s}const t=Array.from(s.getChildren()).filter(t=>t.is(\"element\",\"tr\"));for(const s of t){if(s.parent.name===\"thead\"&&s.parent===o){e.headingRows++;n.push(s)}else{i.push(s);const t=kx(s,e,o);if(t>e.headingColumns){e.headingColumns=t}}}}}e.rows=[...n,...i];return e}function kx(t){let e=0;let n=0;const i=Array.from(t.getChildren()).filter(t=>t.name===\"th\"||t.name===\"td\");while(n]*>([\\S\\s]*)<\\/code>$/).exec(t)[1];return e.replace(/</g,\"<\").replace(/>/g,\">\")}const VA=\"paragraph\";class BA extends Nw{static get pluginName(){return\"CodeBlockEditing\"}static get requires(){return[wA]}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:\"xml\",label:\"HTML/XML\"},{language:\"java\",label:\"Java\"},{language:\"javascript\",label:\"JavaScript\"},{language:\"php\",label:\"PHP\"},{language:\"python\",label:\"Python\"},{language:\"ruby\",label:\"Ruby\"},{language:\"typescript\",label:\"TypeScript\"}],indentSequence:\"\\t\"})}init(){const t=this.editor;const e=t.model.schema;const n=t.model;const i=kA(t);t.commands.add(\"codeBlock\",new AA(t));t.commands.add(\"indentCodeBlock\",new TA(t));t.commands.add(\"outdentCodeBlock\",new SA(t));const o=t=>(e,n)=>{const i=this.editor.commands.get(t);if(i.isEnabled){this.editor.execute(t);n()}};t.keystrokes.set(\"Tab\",o(\"indentCodeBlock\"));t.keystrokes.set(\"Shift+Tab\",o(\"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\",OA(n,i,true));t.data.downcastDispatcher.on(\"insert:codeBlock\",OA(n,i));t.data.downcastDispatcher.on(\"insert:softBreak\",MA(n),{priority:\"high\"});t.data.upcastDispatcher.on(\"element:pre\",NA(t.data,i));this.listenTo(t.editing.view.document,\"clipboardInput\",(t,e)=>{const i=n.document.selection;if(!i.anchor.parent.is(\"codeBlock\")){return}const o=e.dataTransfer.getData(\"text/plain\");n.change(e=>{n.insertContent(yA(e,o),i);t.stop()})});this.listenTo(n,\"getSelectedContent\",(t,[i])=>{const o=i.anchor;if(i.isCollapsed||!o.parent.is(\"codeBlock\")||!o.hasSameParentAs(i.focus)){return}n.change(n=>{const s=t.return;if(s.childCount>1||i.containsEntireContent(o.parent)){const e=n.createElement(\"codeBlock\",o.parent.getAttributes());n.append(s,e);const i=n.createDocumentFragment();n.append(e,i);t.return=i}else{const t=s.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 i=e.get(\"outdent\");if(n){n.registerChildCommand(e.get(\"indentCodeBlock\"))}if(i){i.registerChildCommand(e.get(\"outdentCodeBlock\"))}this.listenTo(t.editing.view.document,\"enter\",(e,n)=>{const i=t.model.document.selection.getLastPosition().parent;if(!i.is(\"codeBlock\")){return}DA(t,n.isSoft)||zA(t,n.isSoft)||FA(t);n.preventDefault();e.stop()})}}function FA(t){const e=t.model;const n=e.document;const i=n.selection.getLastPosition();const o=i.nodeBefore||i.textNode;let s;if(o&&o.is(\"text\")){s=vA(o)}t.model.change(e=>{t.execute(\"shiftEnter\");if(s){e.insertText(s,n.selection.anchor)}})}function DA(t,e){const n=t.model;const i=n.document;const o=t.editing.view;const s=i.selection.getLastPosition();const r=s.nodeAfter;if(e||!i.selection.isCollapsed||!s.isAtStart){return false}if(!r||!r.is(\"softBreak\")){return false}t.model.change(e=>{t.execute(\"enter\");const n=i.selection.anchor.parent.previousSibling;e.rename(n,VA);e.setSelection(n,\"in\");t.model.schema.removeDisallowedAttributes([n],e);e.remove(r)});o.scrollToTheSelection();return true}function zA(t,e){const n=t.model;const i=n.document;const o=t.editing.view;const s=i.selection.getLastPosition();const r=s.nodeBefore;let a;if(e||!i.selection.isCollapsed||!s.isAtEnd||!r){return false}if(r.is(\"softBreak\")){a=n.createRangeOn(r)}else if(r.is(\"text\")&&!r.data.match(/\\S/)&&r.previousSibling&&r.previousSibling.is(\"softBreak\")){a=n.createRange(n.createPositionBefore(r.previousSibling),n.createPositionAfter(r))}else{return false}t.model.change(e=>{e.remove(a);t.execute(\"enter\");const n=i.selection.anchor.parent;e.rename(n,VA);t.model.schema.removeDisallowedAttributes([n],e)});o.scrollToTheSelection();return true}var LA=n(84);class jA extends mb{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 um;this.focusTracker=new Cm;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 Zb;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 Zb;const e=t.bindTemplate;t.icon=tw;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 HA='';var qA=n(86);class WA extends Nw{init(){const t=this.editor;const e=t.t;const n=t.ui.componentFactory;const i=kA(t);const o=i[0];n.add(\"codeBlock\",n=>{const s=t.commands.get(\"codeBlock\");const r=uw(n,jA);const a=r.buttonView;a.set({label:e(\"z\"),tooltip:true,icon:HA,isToggleable:true});a.bind(\"isOn\").to(s,\"value\",t=>!!t);a.on(\"execute\",()=>{t.execute(\"codeBlock\",{language:o.language});t.editing.view.focus()});r.on(\"execute\",e=>{t.execute(\"codeBlock\",{language:e.source._codeBlockLanguage,forceValue:true});t.editing.view.focus()});r.class=\"ck-code-block-dropdown\";r.bind(\"isEnabled\").to(s);fw(r,this._getLanguageListItemDefinitions(i));return r})}_getLanguageListItemDefinitions(t){const e=this.editor;const n=e.commands.get(\"codeBlock\");const i=new yr;for(const e of t){const t={type:\"button\",model:new uk({_codeBlockLanguage:e.language,label:e.label,withText:true})};t.model.bind(\"isOn\").to(n,\"value\",e=>e===t.model._codeBlockLanguage);i.add(t)}return i}}class UA extends Nw{static get requires(){return[BA,WA]}static get pluginName(){return\"CodeBlock\"}}class $A extends Fw{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 i=n.selection;const o=t.value;e.change(t=>{if(i.isCollapsed){if(o){t.setSelectionAttribute(this.attributeKey,o)}else{t.removeSelectionAttribute(this.attributeKey)}}else{const n=e.schema.getValidRanges(i.getRanges(),this.attributeKey);for(const e of n){if(o){t.setAttribute(this.attributeKey,o,e)}else{t.removeAttribute(this.attributeKey,e)}}}})}}var GA='';class KA extends Zb{constructor(t){super(t);const e=this.bindTemplate;this.set(\"color\");this.set(\"hasBorder\");this.icon=GA;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 JA=n(88);class QA extends mb{constructor(t,e){super(t);const n=e&&e.colorDefinitions||[];const i={};if(e&&e.columns){i.gridTemplateColumns=`repeat( ${e.columns}, 1fr)`}this.set(\"selectedColor\");this.items=this.createCollection();this.focusTracker=new Cm;this.keystrokes=new um;this._focusCycler=new Nb({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 KA;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:i}});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 YA extends yr{constructor(t){super(t);this.set(\"isEmpty\",true)}add(t,e){if(this.find(e=>e.color===t.color)){return}super.add(t,e);this.set(\"isEmpty\",false)}remove(t){const e=super.remove(t);if(this.length===0){this.set(\"isEmpty\",true)}return e}hasColor(t){return!!this.find(e=>e.color===t)}}vr(YA,Jc);var XA='';var ZA=n(90);class tP extends mb{constructor(t,{colors:e,columns:n,removeButtonLabel:i,documentColorsLabel:o,documentColorsCount:s}){super(t);this.items=this.createCollection();this.colorDefinitions=e;this.focusTracker=new Cm;this.keystrokes=new um;this.set(\"selectedColor\");this.removeButtonLabel=i;this.columns=n;this.documentColors=new YA;this.documentColorsCount=s;this._focusCycler=new Nb({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:\"arrowup\",focusNext:\"arrowdown\"}});this._documentColorsLabel=o;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 i=this.documentColorsCount;this.documentColors.clear();for(const o of n.getRootNames()){const s=n.getRoot(o);const r=t.createRangeIn(s);for(const t of r.getItems()){if(t.is(\"textProxy\")&&t.hasAttribute(e)){this._addColorToDocumentColors(t.getAttribute(e));if(this.documentColors.length>=i){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=qm.bind(this.documentColors,this.documentColors);const e=new Ab(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 Zb;t.set({withText:true,icon:XA,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 QA(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});t.delegate(\"execute\").to(this);return t}_createDocumentColorsGrid(){const t=qm.bind(this.documentColors,this.documentColors);const e=new QA(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 KA;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,i)=>{if(i){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 eP=\"fontSize\";const nP=\"fontFamily\";const iP=\"fontColor\";const oP=\"fontBackgroundColor\";function sP(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 rP(t){return e=>lP(e.getStyle(t))}function aP(t){return(e,n)=>n.createAttributeElement(\"span\",{style:`${t}:${e}`},{priority:7})}function cP({dropdownView:t,colors:e,columns:n,removeButtonLabel:i,documentColorsLabel:o,documentColorsCount:s}){const r=t.locale;const a=new tP(r,{colors:e,columns:n,removeButtonLabel:i,documentColorsLabel:o,documentColorsCount:s});t.colorTableView=a;t.panelView.children.add(a);a.delegate(\"execute\").to(t,\"execute\");return a}function lP(t){return t.replace(/\\s/g,\"\")}class dP extends $A{constructor(t){super(t,eP)}}function uP(t){return t.map(fP).filter(t=>!!t)}const hP={tiny:{title:\"Tiny\",model:\"tiny\",view:{name:\"span\",classes:\"text-tiny\",priority:7}},small:{title:\"Small\",model:\"small\",view:{name:\"span\",classes:\"text-small\",priority:7}},big:{title:\"Big\",model:\"big\",view:{name:\"span\",classes:\"text-big\",priority:7}},huge:{title:\"Huge\",model:\"huge\",view:{name:\"span\",classes:\"text-huge\",priority:7}}};function fP(t){if(typeof t===\"object\"){return t}if(hP[t]){return hP[t]}if(t===\"default\"){return{model:undefined,title:\"Default\"}}const e=parseFloat(t);if(isNaN(e)){return}return pP(e)}function pP(t){const e=String(t);return{title:e,model:t,view:{name:\"span\",styles:{\"font-size\":`${t}px`},priority:7}}}class gP extends Nw{static get pluginName(){return\"FontSizeEditing\"}constructor(t){super(t);t.config.define(eP,{options:[\"tiny\",\"small\",\"default\",\"big\",\"huge\"]});const e=uP(this.editor.config.get(\"fontSize.options\")).filter(t=>t.model);const n=sP(eP,e);t.conversion.attributeToElement(n);t.commands.add(eP,new dP(t))}init(){const t=this.editor;t.model.schema.extend(\"$text\",{allowAttributes:eP});t.model.schema.setAttributeProperties(eP,{isFormatting:true,copyOnEnter:true})}}var mP='';var bP=n(92);class wP extends Nw{init(){const t=this.editor;const e=t.t;const n=this._getLocalizedOptions();const i=t.commands.get(eP);t.ui.componentFactory.add(eP,o=>{const s=uw(o);fw(s,kP(n,i));s.buttonView.set({label:e(\"ao\"),icon:mP,tooltip:true});s.extendTemplate({attributes:{class:[\"ck-font-size-dropdown\"]}});s.bind(\"isEnabled\").to(i);this.listenTo(s,\"execute\",e=>{t.execute(e.source.commandName,{value:e.source.commandParam});t.editing.view.focus()});return s})}_getLocalizedOptions(){const t=this.editor;const e=t.t;const n={Default:e(\"ap\"),Tiny:e(\"aq\"),Small:e(\"ar\"),Big:e(\"as\"),Huge:e(\"at\")};const i=uP(t.config.get(eP).options);return i.map(t=>{const e=n[t.title];if(e&&e!=t.title){t=Object.assign({},t,{title:e})}return t})}}function kP(t,e){const n=new yr;for(const i of t){const t={type:\"button\",model:new uk({commandName:eP,commandParam:i.model,label:i.title,class:\"ck-fontsize-option\",withText:true})};if(i.view&&i.view.styles){t.model.set(\"labelStyle\",`font-size:${i.view.styles[\"font-size\"]}`)}if(i.view&&i.view.classes){t.model.set(\"class\",`${t.model.class} ${i.view.classes}`)}t.model.bind(\"isOn\").to(e,\"value\",t=>t===i.model);n.add(t)}return n}class _P extends Nw{static get requires(){return[gP,wP]}static get pluginName(){return\"FontSize\"}}class vP extends $A{constructor(t){super(t,iP)}}class yP extends Nw{static get pluginName(){return\"FontColorEditing\"}constructor(t){super(t);t.config.define(iP,{colors:[{color:\"hsl(0, 0%, 0%)\",label:\"Black\"},{color:\"hsl(0, 0%, 30%)\",label:\"Dim grey\"},{color:\"hsl(0, 0%, 60%)\",label:\"Grey\"},{color:\"hsl(0, 0%, 90%)\",label:\"Light grey\"},{color:\"hsl(0, 0%, 100%)\",label:\"White\",hasBorder:true},{color:\"hsl(0, 75%, 60%)\",label:\"Red\"},{color:\"hsl(30, 75%, 60%)\",label:\"Orange\"},{color:\"hsl(60, 75%, 60%)\",label:\"Yellow\"},{color:\"hsl(90, 75%, 60%)\",label:\"Light green\"},{color:\"hsl(120, 75%, 60%)\",label:\"Green\"},{color:\"hsl(150, 75%, 60%)\",label:\"Aquamarine\"},{color:\"hsl(180, 75%, 60%)\",label:\"Turquoise\"},{color:\"hsl(210, 75%, 60%)\",label:\"Light blue\"},{color:\"hsl(240, 75%, 60%)\",label:\"Blue\"},{color:\"hsl(270, 75%, 60%)\",label:\"Purple\"}],columns:5});t.conversion.for(\"upcast\").elementToAttribute({view:{name:\"span\",styles:{color:/[\\s\\S]+/}},model:{key:iP,value:rP(\"color\")}});t.conversion.for(\"downcast\").attributeToElement({model:iP,view:aP(\"color\")});t.commands.add(iP,new vP(t));t.model.schema.extend(\"$text\",{allowAttributes:iP});t.model.schema.setAttributeProperties(iP,{isFormatting:true,copyOnEnter:true})}}function xP(t,e){const n=t.t;const i={Black:n(\"bw\"),\"Dim grey\":n(\"bx\"),Grey:n(\"by\"),\"Light grey\":n(\"bz\"),White:n(\"ca\"),Red:n(\"cb\"),Orange:n(\"cc\"),Yellow:n(\"cd\"),\"Light green\":n(\"ce\"),Green:n(\"cf\"),Aquamarine:n(\"cg\"),Turquoise:n(\"ch\"),\"Light blue\":n(\"ci\"),Blue:n(\"cj\"),Purple:n(\"ck\")};return e.map(t=>{const e=i[t.label];if(e&&e!=t.label){t.label=e}return t})}function CP(t){return t.map(AP).filter(t=>!!t)}function AP(t){if(typeof t===\"string\"){return{model:t.replace(/ /g,\"\"),label:t,hasBorder:false,view:{name:\"span\",styles:{color:t}}}}else{return{model:t.color.replace(/ /g,\"\"),label:t.label||t.color,hasBorder:t.hasBorder===undefined?false:t.hasBorder,view:{name:\"span\",styles:{color:`${t.color}`}}}}}class PP extends Nw{constructor(t,{commandName:e,icon:n,componentName:i,dropdownLabel:o}){super(t);this.commandName=e;this.componentName=i;this.icon=n;this.dropdownLabel=o;this.columns=t.config.get(`${this.componentName}.columns`);this.colorTableView}init(){const t=this.editor;const e=t.locale;const n=e.t;const i=t.commands.get(this.commandName);const o=CP(t.config.get(this.componentName).colors);const s=xP(e,o);const r=t.config.get(`${this.componentName}.documentColors`);t.ui.componentFactory.add(this.componentName,e=>{const o=uw(e);this.colorTableView=cP({dropdownView:o,colors:s.map(t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}})),columns:this.columns,removeButtonLabel:n(\"bl\"),documentColorsLabel:r!==0?n(\"bm\"):undefined,documentColorsCount:r===undefined?this.columns:r});this.colorTableView.bind(\"selectedColor\").to(i,\"value\");o.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:true});o.extendTemplate({attributes:{class:\"ck-color-ui-dropdown\"}});o.bind(\"isEnabled\").to(i);o.on(\"execute\",(e,n)=>{t.execute(this.commandName,n);t.editing.view.focus()});o.on(\"change:isOpen\",(e,n,i)=>{o.colorTableView.appendGrids();if(i){if(r!==0){this.colorTableView.updateDocumentColors(t.model,this.componentName)}this.colorTableView.updateSelectedColors()}});return o})}}var TP='';class SP extends PP{constructor(t){const e=t.locale.t;super(t,{commandName:iP,componentName:iP,icon:TP,dropdownLabel:e(\"au\")})}static get pluginName(){return\"FontColorUI\"}}class EP extends Nw{static get requires(){return[yP,SP]}static get pluginName(){return\"FontColor\"}}const RP=[\"left\",\"right\",\"center\",\"justify\"];function OP(t){return RP.includes(t)}function MP(t,e){if(e.contentLanguageDirection==\"rtl\"){return t===\"right\"}else{return t===\"left\"}}const NP=\"alignment\";class IP extends Fw{refresh(){const t=this.editor;const e=t.locale;const n=zw(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=!!n&&this._canBeAligned(n);if(this.isEnabled&&n.hasAttribute(\"alignment\")){this.value=n.getAttribute(\"alignment\")}else{this.value=e.contentLanguageDirection===\"rtl\"?\"right\":\"left\"}}execute(t={}){const e=this.editor;const n=e.locale;const i=e.model;const o=i.document;const s=t.value;i.change(t=>{const e=Array.from(o.selection.getSelectedBlocks()).filter(t=>this._canBeAligned(t));const i=e[0].getAttribute(\"alignment\");const r=MP(s,n)||i===s||!s;if(r){VP(e,t)}else{BP(e,t,s)}})}_canBeAligned(t){return this.editor.model.schema.checkAttribute(t,NP)}}function VP(t,e){for(const n of t){e.removeAttribute(NP,n)}}function BP(t,e,n){for(const i of t){e.setAttribute(NP,n,i)}}class FP extends Nw{static get pluginName(){return\"AlignmentEditing\"}constructor(t){super(t);t.config.define(\"alignment\",{options:[...RP]})}init(){const t=this.editor;const e=t.locale;const n=t.model.schema;const i=t.config.get(\"alignment.options\").filter(OP);n.extend(\"$block\",{allowAttributes:\"alignment\"});t.model.schema.setAttributeProperties(\"alignment\",{isFormatting:true});const o=DP(i.filter(t=>!MP(t,e)));t.conversion.attributeToAttribute(o);t.commands.add(\"alignment\",new IP(t))}}function DP(t){const e={model:{key:\"alignment\",values:t.slice()},view:{}};for(const n of t){e.view[n]={key:\"style\",value:{\"text-align\":n}}}return e}var zP='';var LP='';var jP='';var HP='';const qP=new Map([[\"left\",zP],[\"right\",LP],[\"center\",jP],[\"justify\",HP]]);class WP extends Nw{get localizedOptionTitles(){const t=this.editor.t;return{left:t(\"aa\"),right:t(\"ab\"),center:t(\"ac\"),justify:t(\"ad\")}}static get pluginName(){return\"AlignmentUI\"}init(){const t=this.editor;const e=t.ui.componentFactory;const n=t.t;const i=t.config.get(\"alignment.options\");i.filter(OP).forEach(t=>this._addButton(t));e.add(\"alignment\",t=>{const o=uw(t);const s=i.map(t=>e.create(`alignment:${t}`));hw(o,s);o.buttonView.set({label:n(\"ae\"),tooltip:true});o.toolbarView.isVertical=true;o.toolbarView.ariaLabel=n(\"af\");o.extendTemplate({attributes:{class:\"ck-alignment-dropdown\"}});const r=t.contentLanguageDirection===\"rtl\"?LP:zP;o.buttonView.bind(\"icon\").toMany(s,\"isOn\",(...t)=>{const e=t.findIndex(t=>t);if(e<0){return r}return s[e].icon});o.bind(\"isEnabled\").toMany(s,\"isEnabled\",(...t)=>t.some(t=>t));return o})}_addButton(t){const e=this.editor;e.ui.componentFactory.add(`alignment:${t}`,n=>{const i=e.commands.get(\"alignment\");const o=new Zb(n);o.set({label:this.localizedOptionTitles[t],icon:qP.get(t),tooltip:true,isToggleable:true});o.bind(\"isEnabled\").to(i);o.bind(\"isOn\").to(i,\"value\",e=>e===t);this.listenTo(o,\"execute\",()=>{e.execute(\"alignment\",{value:t});e.editing.view.focus()});return o})}}class UP extends Nw{static get requires(){return[FP,WP]}static get pluginName(){return\"Alignment\"}}class $P extends Fw{constructor(t){super(t);this._childCommands=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();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 GP extends Nw{static get pluginName(){return\"IndentEditing\"}init(){const t=this.editor;t.commands.add(\"indent\",new $P(t));t.commands.add(\"outdent\",new $P(t))}}var KP='';var JP='';class QP extends Nw{static get pluginName(){return\"IndentUI\"}init(){const t=this.editor;const e=t.locale;const n=t.t;const i=e.uiLanguageDirection==\"ltr\"?KP:JP;const o=e.uiLanguageDirection==\"ltr\"?JP:KP;this._defineButton(\"indent\",n(\"ag\"),i);this._defineButton(\"outdent\",n(\"ah\"),o)}_defineButton(t,e,n){const i=this.editor;i.ui.componentFactory.add(t,o=>{const s=i.commands.get(t);const r=new Zb(o);r.set({label:e,icon:n,tooltip:true});r.bind(\"isOn\",\"isEnabled\").to(s,\"value\",\"isEnabled\");this.listenTo(r,\"execute\",()=>{i.execute(t);i.editing.view.focus()});return r})}}class YP extends Nw{static get pluginName(){return\"Indent\"}static get requires(){return[GP,QP]}}function XP(t){if(t.is(\"text\")||t.is(\"textProxy\")){return t.data}let e=\"\";let n=null;for(const i of t.getChildren()){const t=XP(i);if(n&&n.is(\"element\")){e+=\"\\n\"}e+=t;n=i}return e}class ZP extends Nw{constructor(t){super(t);this.set(\"characters\",0);this.set(\"words\",0);Object.defineProperties(this,{characters:{get(){return this.characters=this._getCharacters()}},words:{get(){return this.words=this._getWords()}}});this.set(\"_wordsLabel\");this.set(\"_charactersLabel\");this._config=t.config.get(\"wordCount\")||{};this._outputView;this._wordsMatchRegExp=Pl.features.isRegExpUnicodePropertySupported?new RegExp(\"[\\\\p{L}\\\\p{N}\\\\p{M}\\\\p{Pd}\\\\p{Pc}]+\",\"gu\"):/[_\\-a-zA-Z0-9À-ž]+/gu}static get pluginName(){return\"WordCount\"}init(){const t=this.editor;t.model.document.on(\"change:data\",iA(this._refreshStats.bind(this),250));if(typeof this._config.onUpdate==\"function\"){this.on(\"update\",(t,e)=>{this._config.onUpdate(e)})}if(Ks(this._config.container)){this._config.container.appendChild(this.wordCountContainer)}}destroy(){if(this._outputView){this._outputView.element.remove();this._outputView.destroy()}super.destroy()}get wordCountContainer(){const t=this.editor;const e=t.t;const n=t.config.get(\"wordCount.displayWords\");const i=t.config.get(\"wordCount.displayCharacters\");const o=qm.bind(this,this);const s=[];if(!this._outputView){this._outputView=new mb;if(n||n===undefined){this.bind(\"_wordsLabel\").to(this,\"words\",t=>e(\"b\",[t]));s.push({tag:\"div\",children:[{text:[o.to(\"_wordsLabel\")]}],attributes:{class:\"ck-word-count__words\"}})}if(i||i===undefined){this.bind(\"_charactersLabel\").to(this,\"characters\",t=>e(\"c\",[t]));s.push({tag:\"div\",children:[{text:[o.to(\"_charactersLabel\")]}],attributes:{class:\"ck-word-count__characters\"}})}this._outputView.setTemplate({tag:\"div\",attributes:{class:[\"ck\",\"ck-word-count\"]},children:s});this._outputView.render()}return this._outputView.element}_getCharacters(){const t=XP(this.editor.model.document.getRoot());return t.replace(/\\n/g,\"\").length}_getWords(){const t=XP(this.editor.model.document.getRoot());const e=t.match(this._wordsMatchRegExp)||[];return e.length}_refreshStats(){const t=this.words=this._getWords();const e=this.characters=this._getCharacters();this.fire(\"update\",{words:t,characters:e})}}class tT extends Fw{execute(){const t=this.editor.model;const e=t.document;t.change(n=>{eT(this.editor.model,n,e.selection,t.schema);this.fire(\"afterExecute\",{writer:n})})}}function eT(t,e,n,i){const o=n.isCollapsed;const s=n.getFirstRange();const r=s.start.parent;const a=s.end.parent;if(i.isLimit(r)||i.isLimit(a)){if(!o&&r==a){t.deleteContent(n)}return}if(o){const t=uA(e.model.schema,n.getAttributes());nT(e,s.start);e.setSelectionAttribute(t)}else{const i=!(s.start.isAtStart&&s.end.isAtEnd);const o=r==a;t.deleteContent(n,{leaveUnmerged:i});if(i){if(o){nT(e,n.focus)}else{e.setSelection(a,0)}}}}function nT(t,e){t.split(e);t.setSelection(e.parent.nextSibling,0)}class iT extends Nw{static get pluginName(){return\"Enter\"}init(){const t=this.editor;const e=t.editing.view;const n=e.document;e.addObserver(bA);t.commands.add(\"enter\",new tT(t));this.listenTo(n,\"enter\",(n,i)=>{i.preventDefault();if(i.isSoft){return}t.execute(\"enter\");e.scrollToTheSelection()},{priority:\"low\"})}}class oT{constructor(t,e=20){this.model=t;this.size=0;this.limit=e;this.isLocked=false;this._changeCallback=(t,e)=>{if(e.type!=\"transparent\"&&e!==this._batch){this._reset(true)}};this._selectionChangeCallback=()=>{this._reset()};this.model.document.on(\"change\",this._changeCallback);this.model.document.selection.on(\"change:range\",this._selectionChangeCallback);this.model.document.selection.on(\"change:attribute\",this._selectionChangeCallback)}get batch(){if(!this._batch){this._batch=this.model.createBatch()}return this._batch}input(t){this.size+=t;if(this.size>=this.limit){this._reset(true)}}lock(){this.isLocked=true}unlock(){this.isLocked=false}destroy(){this.model.document.off(\"change\",this._changeCallback);this.model.document.selection.off(\"change:range\",this._selectionChangeCallback);this.model.document.selection.off(\"change:attribute\",this._selectionChangeCallback)}_reset(t){if(!this.isLocked||t){this._batch=null;this.size=0}}}class sT extends Fw{constructor(t,e){super(t);this._buffer=new oT(t.model,e);this._batches=new WeakSet}get buffer(){return this._buffer}destroy(){super.destroy();this._buffer.destroy()}execute(t={}){const e=this.editor.model;const n=e.document;const i=t.text||\"\";const o=i.length;const s=t.range||n.selection.getFirstRange();const r=t.resultRange;e.enqueueChange(this._buffer.batch,t=>{const a=s.isCollapsed;this._buffer.lock();e.deleteContent(e.createSelection(s));if(i){e.insertContent(t.createText(i,n.selection.getAttributes()),s.start)}if(r){t.setSelection(r)}else if(a){t.setSelection(s.start.getShiftedBy(o))}this._buffer.unlock();this._buffer.input(o);this._batches.add(this._buffer.batch)})}}function rT(t){let e=null;const n=t.model;const i=t.editing.view;const o=t.commands.get(\"input\");if(Pl.isAndroid){i.document.on(\"beforeinput\",(t,e)=>s(e),{priority:\"lowest\"})}else{i.document.on(\"keydown\",(t,e)=>s(e),{priority:\"lowest\"})}i.document.on(\"compositionstart\",r,{priority:\"lowest\"});i.document.on(\"compositionend\",()=>{e=n.createSelection(n.document.selection)},{priority:\"lowest\"});function s(t){const s=n.document;const r=i.document.isComposing;const c=e&&e.isEqual(s.selection);e=null;if(!o.isEnabled){return}if(cT(t)||s.selection.isCollapsed){return}if(r&&t.keyCode===229){return}if(!r&&t.keyCode===229&&c){return}a()}function r(){const t=n.document;const e=t.selection.rangeCount===1?t.selection.getFirstRange().isFlat:true;if(t.selection.isCollapsed||e){return}a()}function a(){const t=o.buffer;t.lock();n.enqueueChange(t.batch,()=>{n.deleteContent(n.document.selection)});t.unlock()}}const aT=[Bl(\"arrowUp\"),Bl(\"arrowRight\"),Bl(\"arrowDown\"),Bl(\"arrowLeft\"),9,16,17,18,19,20,27,33,34,35,36,45,91,93,144,145,173,174,175,176,177,178,179,255];for(let t=112;t<=135;t++){aT.push(t)}function cT(t){if(t.ctrlKey){return true}return aT.includes(t.keyCode)}function lT(t,e){const n=[];let i=0;let o;t.forEach(t=>{if(t==\"equal\"){s();i++}else if(t==\"insert\"){if(r(\"insert\")){o.values.push(e[i])}else{s();o={type:\"insert\",index:i,values:[e[i]]}}i++}else{if(r(\"delete\")){o.howMany++}else{s();o={type:\"delete\",index:i,howMany:1}}}});s();return n;function s(){if(o){n.push(o);o=null}}function r(t){return o&&o.type==t}}function dT(t){if(t.length==0){return false}for(const e of t){if(e.type===\"children\"&&!uT(e)){return true}}return false}function uT(t){if(t.newChildren.length-t.oldChildren.length!=1){return}const e=vd(t.oldChildren,t.newChildren,hT);const n=lT(e,t.newChildren);if(n.length>1){return}const i=n[0];if(!(!!i.values[0]&&i.values[0].is(\"text\"))){return}return i}function hT(t,e){if(!!t&&t.is(\"text\")&&!!e&&e.is(\"text\")){return t.data===e.data}else{return t===e}}function fT(t){t.editing.view.document.on(\"mutations\",(e,n,i)=>{new pT(t).handle(n,i)})}class pT{constructor(t){this.editor=t;this.editing=this.editor.editing}handle(t,e){if(dT(t)){this._handleContainerChildrenMutations(t,e)}else{for(const n of t){this._handleTextMutation(n,e);this._handleTextNodeInsertion(n)}}}_handleContainerChildrenMutations(t,e){const n=gT(t);if(!n){return}const i=this.editor.editing.view.domConverter;const o=i.mapViewToDom(n);const s=new Dd;const r=this.editor.data.toModel(s.domToView(o)).getChild(0);const a=this.editor.editing.mapper.toModelElement(n);if(!a){return}const c=Array.from(r.getChildren());const l=Array.from(a.getChildren());const d=c[c.length-1];const u=l[l.length-1];if(d&&d.is(\"softBreak\")&&u&&!u.is(\"softBreak\")){c.pop()}const h=this.editor.model.schema;if(!mT(c,h)||!mT(l,h)){return}const f=c.map(t=>t.is(\"text\")?t.data:\"@\").join(\"\").replace(/\\u00A0/g,\" \");const p=l.map(t=>t.is(\"text\")?t.data:\"@\").join(\"\").replace(/\\u00A0/g,\" \");if(p===f){return}const g=vd(p,f);const{firstChangeAt:m,insertions:b,deletions:w}=bT(g);let k=null;if(e){k=this.editing.mapper.toModelRange(e.getFirstRange())}const _=f.substr(m,b);const v=this.editor.model.createRange(this.editor.model.createPositionAt(a,m),this.editor.model.createPositionAt(a,m+w));this.editor.execute(\"input\",{text:_,range:v,resultRange:k})}_handleTextMutation(t,e){if(t.type!=\"text\"){return}const n=t.newText.replace(/\\u00A0/g,\" \");const i=t.oldText.replace(/\\u00A0/g,\" \");if(i===n){return}const o=vd(i,n);const{firstChangeAt:s,insertions:r,deletions:a}=bT(o);let c=null;if(e){c=this.editing.mapper.toModelRange(e.getFirstRange())}const l=this.editing.view.createPositionAt(t.node,s);const d=this.editing.mapper.toModelPosition(l);const u=this.editor.model.createRange(d,d.getShiftedBy(a));const h=n.substr(s,r);this.editor.execute(\"input\",{text:h,range:u,resultRange:c})}_handleTextNodeInsertion(t){if(t.type!=\"children\"){return}const e=uT(t);const n=this.editing.view.createPositionAt(t.node,e.index);const i=this.editing.mapper.toModelPosition(n);const o=e.values[0].data;this.editor.execute(\"input\",{text:o.replace(/\\u00A0/g,\" \"),range:this.editor.model.createRange(i)})}}function gT(t){const e=t.map(t=>t.node).reduce((t,e)=>t.getCommonAncestor(e,{includeSelf:true}));if(!e){return}return e.getAncestors({includeSelf:true,parentFirst:true}).find(t=>t.is(\"containerElement\")||t.is(\"rootElement\"))}function mT(t,e){return t.every(t=>e.isInline(t))}function bT(t){let e=null;let n=null;for(let i=0;i{this._buffer.lock();const o=i.createSelection(t.selection||n.selection);const s=o.isCollapsed;if(o.isCollapsed){e.modifySelection(o,{direction:this.direction,unit:t.unit})}if(this._shouldEntireContentBeReplacedWithParagraph(t.sequence||1)){this._replaceEntireContentWithParagraph(i);return}if(o.isCollapsed){return}let r=0;o.getFirstRange().getMinimalFlatRanges().forEach(t=>{r+=pl(t.getWalker({singleCharacters:true,ignoreElementEnd:true,shallow:true}))});e.deleteContent(o,{doNotResetEntireContent:s});this._buffer.input(r);i.setSelection(o);this._buffer.unlock()})}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1){return false}const e=this.editor.model;const n=e.document;const i=n.selection;const o=e.schema.getLimitElement(i);const s=i.isCollapsed&&i.containsEntireContent(o);if(!s){return false}if(!e.schema.checkChild(o,\"paragraph\")){return false}const r=o.getChild(0);if(r&&r.name===\"paragraph\"){return false}return true}_replaceEntireContentWithParagraph(t){const e=this.editor.model;const n=e.document;const i=n.selection;const o=e.schema.getLimitElement(i);const s=t.createElement(\"paragraph\");t.remove(t.createRangeIn(o));t.insert(s,o);t.setSelection(s,0)}}class _T extends Kd{constructor(t){super(t);const e=t.document;let n=0;e.on(\"keyup\",(t,e)=>{if(e.keyCode==Vl.delete||e.keyCode==Vl.backspace){n=0}});e.on(\"keydown\",(t,e)=>{const o={};if(e.keyCode==Vl.delete){o.direction=\"forward\";o.unit=\"character\"}else if(e.keyCode==Vl.backspace){o.direction=\"backward\";o.unit=\"codePoint\"}else{return}const s=Pl.isMac?e.altKey:e.ctrlKey;o.unit=s?\"word\":o.unit;o.sequence=++n;i(t,e.domEvent,o)});if(Pl.isAndroid){e.on(\"beforeinput\",(e,n)=>{if(n.domEvent.inputType!=\"deleteContentBackward\"){return}const o={unit:\"codepoint\",direction:\"backward\",sequence:1};const s=n.domTarget.ownerDocument.defaultView.getSelection();if(s.anchorNode==s.focusNode&&s.anchorOffset+1!=s.focusOffset){o.selectionToRemove=t.domConverter.domSelectionToView(s)}i(e,n.domEvent,o)})}function i(t,n,i){let o;e.once(\"delete\",t=>o=t,{priority:Number.POSITIVE_INFINITY});e.fire(\"delete\",new Ju(e,n,i));if(o&&o.stop.called){t.stop()}}}observe(){}}class vT extends Nw{static get pluginName(){return\"Delete\"}init(){const t=this.editor;const e=t.editing.view;const n=e.document;e.addObserver(_T);t.commands.add(\"forwardDelete\",new kT(t,\"forward\"));t.commands.add(\"delete\",new kT(t,\"backward\"));this.listenTo(n,\"delete\",(n,i)=>{const o={unit:i.unit,sequence:i.sequence};if(i.selectionToRemove){const e=t.model.createSelection();const n=[];for(const e of i.selectionToRemove.getRanges()){n.push(t.editing.mapper.toModelRange(e))}e.setTo(n);o.selection=e}t.execute(i.direction==\"forward\"?\"forwardDelete\":\"delete\",o);i.preventDefault();e.scrollToTheSelection()});if(Pl.isAndroid){let t=null;this.listenTo(n,\"delete\",(e,n)=>{const i=n.domTarget.ownerDocument.defaultView.getSelection();t={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.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 yT extends Nw{static get requires(){return[wT,vT]}static get pluginName(){return\"Typing\"}}const xT=new Map;function CT(t,e,n){let i=xT.get(t);if(!i){i=new Map;xT.set(t,i)}i.set(e,n)}function AT(t,e){const n=xT.get(t);if(n&&n.has(e)){return n.get(e)}return PT}function PT(t){return[t]}function TT(t,e,n={}){const i=AT(t.constructor,e.constructor);try{t=t.clone();return i(t,e,n)}catch(t){throw t}}function ST(t,e,n){t=t.slice();e=e.slice();const i=new ET(n.document,n.useRelations,n.forceWeakRemove);i.setOriginalOperations(t);i.setOriginalOperations(e);const o=i.originalOperations;if(t.length==0||e.length==0){return{operationsA:t,operationsB:e,originalOperations:o}}const s=new WeakMap;for(const e of t){s.set(e,0)}const r={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){const i=t.range.getDifference(e.range).map(e=>new Xp(e,t.key,t.oldValue,t.newValue,0));const o=t.range.getIntersection(e.range);if(o){if(n.aIsStrong){i.push(new Xp(o,e.key,e.newValue,t.newValue,0))}}if(i.length==0){return[new Eg(0)]}return i}else{return[t]}});CT(Xp,eg,(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 i=n.map(e=>new Xp(e,t.key,t.oldValue,t.newValue,t.baseVersion));if(e.shouldReceiveAttributes){const n=MT(e,t.key,t.oldValue);if(n){i.unshift(n)}}return i}t.range=t.range._getTransformedByInsertion(e.position,e.howMany,false)[0];return[t]});function MT(t,e,n){const i=t.nodes;const o=i.getNode(0).getAttribute(e);if(o==n){return null}const s=new Gh(t.position,t.position.getShiftedBy(t.howMany));return new Xp(s,e,o,n,0)}CT(Xp,sg,(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(Gh._createFromPositionAndShift(e.graveyardPosition,1))}}const i=t.range._getTransformedByMergeOperation(e);if(!i.isCollapsed){n.push(i)}return n.map(e=>new Xp(e,t.key,t.oldValue,t.newValue,t.baseVersion))});CT(Xp,tg,(t,e)=>{const n=NT(t.range,e);return n.map(e=>new Xp(e,t.key,t.oldValue,t.newValue,t.baseVersion))});function NT(t,e){const n=Gh._createFromPositionAndShift(e.sourcePosition,e.howMany);let i=null;let o=[];if(n.containsRange(t,true)){i=t}else if(t.start.hasSameParentAs(n.start)){o=t.getDifference(n);i=t.getIntersection(n)}else{o=[t]}const s=[];for(let t of o){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart();const i=t.start.hasSameParentAs(n);t=t._getTransformedByInsertion(n,e.howMany,i);s.push(...t)}if(i){s.push(i._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,false)[0])}return s}CT(Xp,rg,(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 Gh(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]});CT(eg,Xp,(t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const i=MT(t,e.key,e.newValue);if(i){n.push(i)}}return n});CT(eg,eg,(t,e,n)=>{if(t.position.isEqual(e.position)&&n.aIsStrong){return[t]}t.position=t.position._getTransformedByInsertOperation(e);return[t]});CT(eg,tg,(t,e)=>{t.position=t.position._getTransformedByMoveOperation(e);return[t]});CT(eg,rg,(t,e)=>{t.position=t.position._getTransformedBySplitOperation(e);return[t]});CT(eg,sg,(t,e)=>{t.position=t.position._getTransformedByMergeOperation(e);return[t]});CT(ng,eg,(t,e)=>{if(t.oldRange){t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]}if(t.newRange){t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]}return[t]});CT(ng,ng,(t,e,n)=>{if(t.name==e.name){if(n.aIsStrong){t.oldRange=e.newRange?e.newRange.clone():null}else{return[new Eg(0)]}}return[t]});CT(ng,sg,(t,e)=>{if(t.oldRange){t.oldRange=t.oldRange._getTransformedByMergeOperation(e)}if(t.newRange){t.newRange=t.newRange._getTransformedByMergeOperation(e)}return[t]});CT(ng,tg,(t,e,n)=>{if(t.oldRange){t.oldRange=Gh._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))}if(t.newRange){if(n.abRelation){const i=Gh._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=i.end;return[t]}else if(n.abRelation.side==\"right\"&&e.targetPosition.isEqual(t.newRange.end)){t.newRange.start=i.start;t.newRange.end.path=n.abRelation.path;return[t]}}t.newRange=Gh._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]});CT(ng,rg,(t,e,n)=>{if(t.oldRange){t.oldRange=t.oldRange._getTransformedBySplitOperation(e)}if(t.newRange){if(n.abRelation){const i=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=i.end}return[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]});CT(sg,eg,(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]});CT(sg,sg,(t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(!n.bWasUndone){return[new Eg(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 i=t.targetPosition.root.rootName==\"$graveyard\";const o=e.targetPosition.root.rootName==\"$graveyard\";const s=i&&!o;const r=o&&!i;const a=r||!s&&n.aIsStrong;if(a){const n=e.targetPosition._getTransformedByMergeOperation(e);const i=t.targetPosition._getTransformedByMergeOperation(e);return[new tg(n,t.howMany,i,0)]}else{return[new Eg(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]});CT(sg,tg,(t,e,n)=>{const i=Gh._createFromPositionAndShift(e.sourcePosition,e.howMany);if(e.type==\"remove\"&&!n.bWasUndone&&!n.forceWeakRemove){if(t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition)){return[new Eg(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]});CT(sg,rg,(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 i=e.howMany!=0;const o=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(i||o||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]});CT(tg,eg,(t,e)=>{const n=Gh._createFromPositionAndShift(t.sourcePosition,t.howMany);const i=n._getTransformedByInsertOperation(e,false)[0];t.sourcePosition=i.start;t.howMany=i.end.offset-i.start.offset;if(!t.targetPosition.isEqual(e.position)){t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)}return[t]});CT(tg,tg,(t,e,n)=>{const i=Gh._createFromPositionAndShift(t.sourcePosition,t.howMany);const o=Gh._createFromPositionAndShift(e.sourcePosition,e.howMany);let s=n.aIsStrong;let r=!n.aIsStrong;if(n.abRelation==\"insertBefore\"||n.baRelation==\"insertAfter\"){r=true}else if(n.abRelation==\"insertAfter\"||n.baRelation==\"insertBefore\"){r=false}let a;if(t.targetPosition.isEqual(e.targetPosition)&&r){a=t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany)}else{a=t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany)}if(IT(t,e)&&IT(e,t)){return[e.getReversed()]}const c=i.containsPosition(e.targetPosition);if(c&&i.containsRange(o,true)){i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);return VT([i],a)}const l=o.containsPosition(t.targetPosition);if(l&&o.containsRange(i,true)){i.start=i.start._getCombined(e.sourcePosition,e.getMovedRangeStart());i.end=i.end._getCombined(e.sourcePosition,e.getMovedRangeStart());return VT([i],a)}const d=Nr(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if(d==\"prefix\"||d==\"extension\"){i.start=i.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);i.end=i.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany);return VT([i],a)}if(t.type==\"remove\"&&e.type!=\"remove\"&&!n.aWasUndone&&!n.forceWeakRemove){s=true}else if(t.type!=\"remove\"&&e.type==\"remove\"&&!n.bWasUndone&&!n.forceWeakRemove){s=false}const u=[];const h=i.getDifference(o);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=Nr(t.start.getParentPath(),e.getMovedRangeStart().getParentPath())==\"same\";const i=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);u.push(...i)}const f=i.getIntersection(o);if(f!==null&&s){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(o.start.isBefore(i.start)||o.start.isEqual(i.start)){u.unshift(f)}else{u.push(f)}}else{u.splice(1,0,f)}}if(u.length===0){return[new Eg(t.baseVersion)]}return VT(u,a)});CT(tg,rg,(t,e,n)=>{let i=t.targetPosition.clone();if(!t.targetPosition.isEqual(e.insertionPosition)||!e.graveyardPosition||n.abRelation==\"moveTargetAfter\"){i=t.targetPosition._getTransformedBySplitOperation(e)}const o=Gh._createFromPositionAndShift(t.sourcePosition,t.howMany);if(o.end.isEqual(e.insertionPosition)){if(!e.graveyardPosition){t.howMany++}t.targetPosition=i;return[t]}if(o.start.hasSameParentAs(e.splitPosition)&&o.containsPosition(e.splitPosition)){let t=new Gh(e.splitPosition,o.end);t=t._getTransformedBySplitOperation(e);const n=[new Gh(o.start,e.splitPosition),t];return VT(n,i)}if(t.targetPosition.isEqual(e.splitPosition)&&n.abRelation==\"insertAtSource\"){i=e.moveTargetPosition}if(t.targetPosition.isEqual(e.insertionPosition)&&n.abRelation==\"insertBetween\"){i=t.targetPosition}const s=o._getTransformedBySplitOperation(e);const r=[s];if(e.graveyardPosition){const i=o.start.isEqual(e.graveyardPosition)||o.containsPosition(e.graveyardPosition);if(t.howMany>1&&i&&!n.aWasUndone){r.push(Gh._createFromPositionAndShift(e.insertionPosition,1))}}return VT(r,i)});CT(tg,sg,(t,e,n)=>{const i=Gh._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition)){if(t.type==\"remove\"&&!n.forceWeakRemove){if(!n.aWasUndone){const n=[];let i=e.graveyardPosition.clone();let o=e.targetPosition._getTransformedByMergeOperation(e);if(t.howMany>1){n.push(new tg(t.sourcePosition,t.howMany-1,t.targetPosition,0));i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1);o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1)}const s=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition);const r=new tg(i,1,s,0);const a=r.getMovedRangeStart().path.slice();a.push(0);const c=new $h(r.targetPosition.root,a);o=o._getTransformedByMove(i,s,1);const l=new tg(o,e.howMany,c,0);n.push(r);n.push(l);return n}}else{if(t.howMany==1){if(!n.bWasUndone){return[new Eg(0)]}else{t.sourcePosition=e.graveyardPosition.clone();t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e);return[t]}}}}const o=Gh._createFromPositionAndShift(t.sourcePosition,t.howMany);const s=o._getTransformedByMergeOperation(e);t.sourcePosition=s.start;t.howMany=s.end.offset-s.start.offset;t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e);return[t]});CT(ig,eg,(t,e)=>{t.position=t.position._getTransformedByInsertOperation(e);return[t]});CT(ig,sg,(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]});CT(ig,tg,(t,e)=>{t.position=t.position._getTransformedByMoveOperation(e);return[t]});CT(ig,ig,(t,e,n)=>{if(t.position.isEqual(e.position)){if(n.aIsStrong){t.oldName=e.newName}else{return[new Eg(0)]}}return[t]});CT(ig,rg,(t,e)=>{const n=t.position.path;const i=e.splitPosition.getParentPath();if(Nr(n,i)==\"same\"&&!e.graveyardPosition){const e=new ig(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}t.position=t.position._getTransformedBySplitOperation(e);return[t]});CT(og,og,(t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue){return[new Eg(0)]}else{t.oldValue=e.newValue}}return[t]});CT(rg,eg,(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 i=new $h(e.graveyardPosition.root,n);const o=rg.getInsertionPosition(new $h(e.graveyardPosition.root,n));const s=new rg(i,0,null,0);s.insertionPosition=o;t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e);t.insertionPosition=rg.getInsertionPosition(t.splitPosition);t.graveyardPosition=s.insertionPosition.clone();t.graveyardPosition.stickiness=\"toNext\";return[s,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=rg.getInsertionPosition(t.splitPosition);if(t.graveyardPosition){t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)}return[t]});CT(rg,tg,(t,e,n)=>{const i=Gh._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const o=i.start.isEqual(t.graveyardPosition)||i.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&o){const n=t.splitPosition._getTransformedByMoveOperation(e);const i=t.graveyardPosition._getTransformedByMoveOperation(e);const o=i.path.slice();o.push(0);const s=new $h(i.root,o);const r=new tg(n,t.howMany,s,0);return[r]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&i.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 Eg(0)]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){return[new Eg(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 i=t.splitPosition.root.rootName==\"$graveyard\";const o=e.splitPosition.root.rootName==\"$graveyard\";const s=i&&!o;const r=o&&!i;const a=r||!s&&n.aIsStrong;if(a){const n=[];if(e.howMany){n.push(new tg(e.moveTargetPosition,e.howMany,e.splitPosition,0))}if(t.howMany){n.push(new tg(t.splitPosition,t.howMany,t.moveTargetPosition,0))}return n}else{return[new Eg(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 i=new $h(e.insertionPosition.root,n);const o=new tg(t.insertionPosition,1,i,0);return[t,o]}if(t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset0}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 i=this.editor.model;const o=i.document;const s=[];for(const e of t){const t=FT(e,n);const i=t.find(t=>t.start.root!=o.graveyard);if(i){s.push(i)}}if(s.length){i.change(t=>{t.setSelection(s,{backward:e})})}}_undo(t,e){const n=this.editor.model;const i=n.document;this._createdBatches.add(e);const o=t.operations.slice().filter(t=>t.isDocumentOperation);o.reverse();for(const t of o){const o=t.baseVersion+1;const s=Array.from(i.history.getOperations(o));const r=ST([t.getReversed()],s,{useRelations:true,document:this.editor.model.document,padWithNoOps:false,forceWeakRemove:true});const a=r.operationsA;for(const o of a){e.addOperation(o);n.applyOperation(o);i.history.setOperationAsUndone(t,o)}}}}function FT(t,e){const n=t.getTransformedByOperations(e);n.sort((t,e)=>t.start.isBefore(e.start)?-1:1);for(let t=1;te.batch==t):this._stack.length-1;const n=this._stack.splice(e,1)[0];const i=this.editor.model.createBatch(\"transparent\");this.editor.model.enqueueChange(i,()=>{this._undo(n.batch,i);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,i)});this.refresh()}}class zT extends BT{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 i=n.baseVersion+1;const o=this.editor.model.document.history.getOperations(i);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o);this._undo(t.batch,e)});this.refresh()}}class LT extends Nw{static get pluginName(){return\"UndoEditing\"}constructor(t){super(t);this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new DT(t);this._redoCommand=new zT(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 i=n.batch;const o=this._redoCommand._createdBatches.has(i);const s=this._undoCommand._createdBatches.has(i);const r=this._batchRegistry.has(i);if(r||i.type==\"transparent\"&&!o&&!s){return}else{if(o){this._undoCommand.addBatch(i)}else if(!s){this._undoCommand.addBatch(i);this._redoCommand.clearStack()}}this._batchRegistry.add(i)},{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 jT='';var HT='';class qT extends Nw{init(){const t=this.editor;const e=t.locale;const n=t.t;const i=e.uiLanguageDirection==\"ltr\"?jT:HT;const o=e.uiLanguageDirection==\"ltr\"?HT:jT;this._addButton(\"undo\",n(\"bn\"),\"CTRL+Z\",i);this._addButton(\"redo\",n(\"bo\"),\"CTRL+Y\",o)}_addButton(t,e,n,i){const o=this.editor;o.ui.componentFactory.add(t,s=>{const r=o.commands.get(t);const a=new Zb(s);a.set({label:e,icon:i,keystroke:n,tooltip:true});a.bind(\"isEnabled\").to(r,\"isEnabled\");this.listenTo(a,\"execute\",()=>{o.execute(t);o.editing.view.focus()});return a})}}class WT extends Nw{static get requires(){return[LT,qT]}static get pluginName(){return\"Undo\"}}class UT extends Nw{static get requires(){return[Cv,iT,wA,yT,WT]}static get pluginName(){return\"Essentials\"}}n.d(e,\"default\",(function(){return $T}));class $T extends Tw{}$T.builtinPlugins=[Vw,Kw,ek,gk,F_,Ov,Fv,dx,zC,WC,cA,lA,UA,_P,EP,UP,YP,ZP,UT,ok]}])[\"default\"]}));"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}