{"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){const e=t[\"fa\"]=t[\"fa\"]||{};e.dictionary=Object.assign(e.dictionary||{},{\"%0 of %1\":\"0% از 1%\",\"Align center\":\"تراز وسط\",\"Align left\":\"تراز چپ\",\"Align right\":\"تراز راست\",Aquamarine:\"زمرد کبود\",Big:\"بزرگ\",Black:\"سیاه\",\"Block quote\":\" بلوک نقل قول\",Blue:\"آبی\",\"Blue marker\":\"نشانگر آبی\",Bold:\"درشت\",\"Bulleted List\":\"لیست نشانهدار\",Cancel:\"لغو\",\"Cannot upload file:\":\"فایل آپلود نمیشود:\",\"Centered image\":\"تصویر در وسط\",\"Change image text alternative\":\"تغییر متن جایگزین تصویر\",\"Choose heading\":\"انتخاب عنوان\",Column:\"ستون\",\"Could not insert image at the current position.\":\"نمیتوان تصویر را در موقعیت فعلی وارد کرد\",\"Could not obtain resized image URL.\":\"نمیتوان آدرس اینترنتی تصویر تغییر اندازه یافته را بدست آورد\",\"Decrease indent\":\"کاهش تورفتگی\",Default:\"پیش فرض\",\"Delete column\":\"حذف ستون\",\"Delete row\":\"حذف سطر\",\"Dim grey\":\"خاکستری تیره\",\"Document colors\":\"رنگ اسناد\",Downloadable:\"قابل بارگیری\",\"Dropdown toolbar\":\"نوارابزار کشویی\",\"Edit link\":\"ویرایش پیوند\",\"Editor toolbar\":\"نوارابزار ویرایشگر\",\"Enter image caption\":\"عنوان تصویر را وارد کنید\",\"Font Background Color\":\"رنگ پس زمینه فونت\",\"Font Color\":\"رنگ فونت\",\"Font Family\":\"خانواده فونت\",\"Font Size\":\"اندازه فونت\",\"Full size image\":\"تصویر در اندازه کامل\",Green:\"سبز\",\"Green marker\":\"نشانگر سبز\",\"Green pen\":\"قلم سبز\",Grey:\"خاکستری\",\"Header column\":\"ستون سربرگ\",\"Header row\":\"سطر سربرگ\",Heading:\"عنوان\",\"Heading 1\":\"عنوان 1\",\"Heading 2\":\"عنوان 2\",\"Heading 3\":\"عنوان 3\",\"Heading 4\":\"عنوان 4\",\"Heading 5\":\"عنوان 5\",\"Heading 6\":\"عنوان 6\",Highlight:\"برجسته\",\"Horizontal line\":\"خط افقی\",Huge:\"بسیار بزرگ\",\"Image resize list\":\"\",\"Image toolbar\":\"نوارابزار تصویر\",\"image widget\":\"ابزاره تصویر\",\"Increase indent\":\"افزایش تورفتگی\",Insert:\"\",\"Insert column left\":\"درج ستون در سمت چپ\",\"Insert column right\":\"درج ستون در سمت راست\",\"Insert image\":\"قرار دادن تصویر\",\"Insert image or file\":\"وارد کردن تصویر یا فایل\",\"Insert image via URL\":\"\",\"Insert media\":\"وارد کردن رسانه\",\"Insert paragraph after block\":\"درج پاراگراف بعد از بلوک\",\"Insert paragraph before block\":\"درج پاراگراف قبل از بلوک\",\"Insert row above\":\"درج سطر در بالا\",\"Insert row below\":\"درج سطر در پایین\",\"Insert table\":\"درج جدول\",\"Inserting image failed\":\"وارد کردن تصویر انجام نشد\",Italic:\"کج\",Justify:\"هم تراز کردن\",\"Left aligned image\":\"تصویر تراز شده چپ\",\"Light blue\":\"آبی روشن\",\"Light green\":\"سبز روشن\",\"Light grey\":\"خاکستری روشن\",Link:\"پیوند\",\"Link URL\":\"نشانی اینترنتی پیوند\",\"Media URL\":\"آدرس اینترنتی رسانه\",\"media widget\":\"ویجت رسانه\",\"Merge cell down\":\"ادغام سلول پایین\",\"Merge cell left\":\"ادغام سلول چپ\",\"Merge cell right\":\"ادغام سلول راست\",\"Merge cell up\":\"ادغام سلول بالا\",\"Merge cells\":\"ادغام سلول ها\",Next:\"بعدی\",\"Numbered List\":\"لیست عددی\",\"Open in a new tab\":\"بازکردن در برگه جدید\",\"Open link in new tab\":\"باز کردن پیوند در برگه جدید\",Orange:\"نارنجی\",Original:\"\",Paragraph:\"پاراگراف\",\"Paste the image source URL.\":\"\",\"Paste the media URL in the input.\":\"آدرس رسانه را در ورودی قرار دهید\",\"Pink marker\":\"نشانگر صورتی\",Previous:\"قبلی\",Purple:\"بنفش\",Red:\"قرمز\",\"Red pen\":\"قلم قرمز\",Redo:\"باز انجام\",\"Remove color\":\"حذف رنگ\",\"Remove Format\":\"حذف کردن قالب\",\"Remove highlight\":\"حذف برجسته\",\"Resize image\":\"\",\"Resize image to %0\":\"\",\"Resize image to the original size\":\"\",\"Rich Text Editor\":\"ویرایشگر متن غنی\",\"Rich Text Editor, %0\":\"ویرایشگر متن غنی، %0\",\"Right aligned image\":\"تصویر تراز شده راست\",Row:\"سطر\",Save:\"ذخیره\",\"Select all\":\"انتخاب همه\",\"Select column\":\"\",\"Select row\":\"\",\"Selecting resized image failed\":\"انتخاب تصویر تغییر اندازه یافته انجام نشد\",\"Show more items\":\"\",\"Side image\":\"تصویر جانبی\",Small:\"کوچک\",\"Split cell horizontally\":\"تقسیم افقی سلول\",\"Split cell vertically\":\"تقسیم عمودی سلول\",\"Table toolbar\":\"نوارابزار جدول\",\"Text alignment\":\"تراز متن\",\"Text alignment toolbar\":\"نوار ابزار ترازبندی متن\",\"Text alternative\":\"متن جایگزین\",\"Text highlight toolbar\":\"نوارابزار برجستگی متن\",\"The URL must not be empty.\":\"آدرس اینترنتی URL نباید خالی باشد.\",\"This link has no URL\":\"این پیوند نشانی اینترنتی ندارد\",\"This media URL is not supported.\":\"این آدرس اینترنتی رسانه پشتیبانی نمیشود\",Tiny:\"بسیار کوچک\",\"Tip: Paste the URL into the content to embed faster.\":\"نکته : آدرس را در محتوا قراردهید تا سریع تر جاسازی شود\",Turquoise:\"فیروزه ای\",Undo:\"بازگردانی\",Unlink:\"لغو پیوند\",Update:\"\",\"Update image URL\":\"\",\"Upload failed\":\"آپلود ناموفق بود\",\"Upload in progress\":\"آپلود در حال انجام\",White:\"سفید\",\"Widget toolbar\":\"نوار ابزار ویجت\",Yellow:\"زرد\",\"Yellow marker\":\"نشانگر زرد\"});e.getPluralForm=function(t){return t>1}})(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(o){if(e[o]){return e[o].exports}var i=e[o]={i:o,l:false,exports:{}};t[o].call(i.exports,i,i.exports,n);i.l=true;return i.exports}n.m=t;n.c=e;n.d=function(t,e,o){if(!n.o(t,e)){Object.defineProperty(t,e,{enumerable:true,get:o})}};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 o=Object.create(null);n.r(o);Object.defineProperty(o,\"default\",{enumerable:true,value:t});if(e&2&&typeof t!=\"string\")for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o};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=66)}([function(t,e,n){\"use strict\";n.d(e,\"a\",(function(){return i}));n.d(e,\"c\",(function(){return r}));n.d(e,\"b\",(function(){return s}));const o=\"https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html\";class i extends Error{constructor(t,e,n){const o=`${t}${n?` ${JSON.stringify(n)}`:\"\"}${a(t)}`;super(o);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 i(t.message,e);n.stack=t.stack;throw n}}function r(t,e){console.warn(...c(t,e))}function s(t,e){console.error(...c(t,e))}function a(t){return`\\nRead more: ${o}#error-${t}`}function c(t,e){const n=a(t);return e?[t,e,n]:[t,n]}},function(t,e,n){\"use strict\";var o=function t(){var e;return function t(){if(typeof e===\"undefined\"){e=Boolean(window&&document&&document.all&&!window.atob)}return e}}();var i=function t(){var e={};return function t(n){if(typeof e[n]===\"undefined\"){var o=document.querySelector(n);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement){try{o=o.contentDocument.head}catch(t){o=null}}e[n]=o}return e[n]}}();var r=[];function s(t){var e=-1;for(var n=0;n
\").replace(/\\r?\\n/g,\"
\").replace(/^\\s/,\" \").replace(/\\s$/,\" \").replace(/\\s\\s/g,\" \");if(t.includes(\"
\")||t.includes(\"
\")){t=`
${t}
`}return t}function v_(t){return t.replace(/(\\s+)<\\/span>/g,((t,e)=>{if(e.length==1){return\" \"}return e}))}const y_=[\"figcaption\",\"li\"];function x_(t){let e=\"\";if(t.is(\"$text\")||t.is(\"$textProxy\")){e=t.data}else if(t.is(\"element\",\"img\")&&t.hasAttribute(\"alt\")){e=t.getAttribute(\"alt\")}else if(t.is(\"element\",\"br\")){e=\"\\n\"}else{let n=null;for(const o of t.getChildren()){const t=x_(o);if(n&&(n.is(\"containerElement\")||o.is(\"containerElement\"))){if(y_.includes(n.name)||y_.includes(o.name)){e+=\"\\n\"}else{e+=\"\\n\\n\"}}e+=t;n=o}}return e}class D_ extends tC{static get pluginName(){return\"Clipboard\"}static get requires(){return[A_]}init(){const t=this.editor;const e=t.model.document;const n=t.editing.view;const o=n.document;this._htmlDataProcessor=new $p(o);n.addObserver(w_);this.listenTo(o,\"clipboardInput\",(e=>{if(t.isReadOnly){e.stop()}}),{priority:\"highest\"});this.listenTo(o,\"clipboardInput\",((t,e)=>{const o=e.dataTransfer;let i=\"\";if(o.getData(\"text/html\")){i=v_(o.getData(\"text/html\"))}else if(o.getData(\"text/plain\")){i=__(o.getData(\"text/plain\"))}i=this._htmlDataProcessor.toView(i);const r=new ts(this,\"inputTransformation\");this.fire(r,{content:i,dataTransfer:o,asPlainText:e.asPlainText});if(r.stop.called){t.stop()}n.scrollToTheSelection()}),{priority:\"low\"});this.listenTo(this,\"inputTransformation\",((n,o)=>{if(!o.content.isEmpty){const i=this.editor.data;const r=this.editor.model;const s=i.toModel(o.content,\"$clipboardHolder\");if(s.childCount==0){return}if(o.asPlainText||E_(s)){const n=new Map(Array.from(e.selection.getAttributes()).filter((e=>t.model.schema.getAttributeProperties(e[0]).isFormatting)));r.change((t=>{const e=t.createRangeIn(s);for(const o of e.getItems()){if(o.is(\"$text\")||o.is(\"$textProxy\")){t.setAttributes(n,o)}}}))}r.insertContent(s);n.stop()}}),{priority:\"low\"});function i(n,i){const r=i.dataTransfer;i.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));o.fire(\"clipboardOutput\",{dataTransfer:r,content:s,method:n.name})}this.listenTo(o,\"copy\",i,{priority:\"low\"});this.listenTo(o,\"cut\",((e,n)=>{if(t.isReadOnly){n.preventDefault()}else{i(e,n)}}),{priority:\"low\"});this.listenTo(o,\"clipboardOutput\",((n,o)=>{if(!o.content.isEmpty){o.dataTransfer.setData(\"text/html\",this._htmlDataProcessor.toData(o.content));o.dataTransfer.setData(\"text/plain\",x_(o.content))}if(o.method==\"cut\"){t.model.deleteContent(e.selection)}}),{priority:\"low\"})}}function E_(t){if(t.childCount>1){return false}const e=t.getChild(0);return[...e.getAttributeKeys()].length==0}class M_{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){if(Array.isArray(t)){t.forEach((t=>this._definitions.add(t)))}else{this._definitions.add(t)}}getDispatcher(){return t=>{t.on(\"attribute:linkHref\",((t,e,n)=>{if(!n.consumable.test(e.item,\"attribute:linkHref\")){return}const o=n.writer;const i=o.document.selection;for(const t of this._definitions){const r=o.createAttributeElement(\"a\",t.attributes,{priority:5});o.setCustomProperty(\"link\",true,r);if(t.callback(e.attributeNewValue)){if(e.item.is(\"selection\")){o.wrap(i.getFirstRange(),r)}else{o.wrap(n.mapper.toViewRange(e.range),r)}}else{o.unwrap(n.mapper.toViewRange(e.range),r)}}}),{priority:\"high\"})}}getDispatcherForLinkedImage(){return t=>{t.on(\"attribute:linkHref:image\",((t,e,n)=>{const o=n.mapper.toViewElement(e.item);const i=Array.from(o.getChildren()).find((t=>t.name===\"a\"));for(const t of this._definitions){const o=Hs(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of o){if(t===\"class\"){n.writer.addClass(e,i)}else{n.writer.setAttribute(t,e,i)}}}else{for(const[t,e]of o){if(t===\"class\"){n.writer.removeClass(e,i)}else{n.writer.removeAttribute(t,i)}}}}}))}}}function T_(t,e,n){var o=t.length;n=n===undefined?o:n;return!e&&n>=o?t:Na(t,e,n)}var S_=T_;var I_=\"\\\\ud800-\\\\udfff\",N_=\"\\\\u0300-\\\\u036f\",B_=\"\\\\ufe20-\\\\ufe2f\",P_=\"\\\\u20d0-\\\\u20ff\",z_=N_+B_+P_,L_=\"\\\\ufe0e\\\\ufe0f\";var O_=\"\\\\u200d\";var R_=RegExp(\"[\"+O_+I_+z_+L_+\"]\");function j_(t){return R_.test(t)}var F_=j_;function V_(t){return t.split(\"\")}var U_=V_;var H_=\"\\\\ud800-\\\\udfff\",K_=\"\\\\u0300-\\\\u036f\",G_=\"\\\\ufe20-\\\\ufe2f\",q_=\"\\\\u20d0-\\\\u20ff\",W_=K_+G_+q_,Y_=\"\\\\ufe0e\\\\ufe0f\";var Q_=\"[\"+H_+\"]\",$_=\"[\"+W_+\"]\",Z_=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",J_=\"(?:\"+$_+\"|\"+Z_+\")\",X_=\"[^\"+H_+\"]\",tv=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",ev=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",nv=\"\\\\u200d\";var ov=J_+\"?\",iv=\"[\"+Y_+\"]?\",rv=\"(?:\"+nv+\"(?:\"+[X_,tv,ev].join(\"|\")+\")\"+iv+ov+\")*\",sv=iv+ov+rv,av=\"(?:\"+[X_+$_+\"?\",$_,tv,ev,Q_].join(\"|\")+\")\";var cv=RegExp(Z_+\"(?=\"+Z_+\")|\"+av+sv,\"g\");function lv(t){return t.match(cv)||[]}var dv=lv;function uv(t){return F_(t)?dv(t):U_(t)}var hv=uv;function fv(t){return function(e){e=Aa(e);var n=F_(e)?hv(e):undefined;var o=n?n[0]:e.charAt(0);var i=n?S_(n,1).join(\"\"):e.slice(1);return o[t]()+i}}var mv=fv;var gv=mv(\"toUpperCase\");var pv=gv;const kv=/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g;const bv=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;const wv=/^[\\S]+@((?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.))+(?:[a-z\\u00a1-\\uffff]{2,})$/i;const Cv=/^((\\w+:(\\/{2,})?)|(\\W))/i;const Av=\"Ctrl+K\";function _v(t){return t.is(\"attributeElement\")&&!!t.getCustomProperty(\"link\")}function vv(t,{writer:e}){const n=e.createAttributeElement(\"a\",{href:t},{priority:5});e.setCustomProperty(\"link\",true,n);return n}function yv(t){t=String(t);return xv(t)?t:\"#\"}function xv(t){const e=t.replace(kv,\"\");return e.match(bv)}function Dv(t,e){const n={\"Open in a new tab\":t(\"Open in a new tab\"),Downloadable:t(\"Downloadable\")};e.forEach((t=>{if(t.label&&n[t.label]){t.label=n[t.label]}return t}));return e}function Ev(t){const e=[];if(t){for(const[n,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${pv(n)}`});e.push(t)}}return e}function Mv(t,e){if(!t){return false}return t.is(\"element\",\"image\")&&e.checkAttribute(\"image\",\"linkHref\")}function Tv(t){return wv.test(t)}function Sv(t,e){const n=Tv(t)?\"mailto:\":e;const o=!!n&&!Cv.test(t);return t&&o?n+t:t}class Iv extends nC{constructor(t){super(t);this.manualDecorators=new vs;this.automaticDecorators=new M_}restoreManualDecoratorStates(){for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}refresh(){const t=this.editor.model;const e=t.document;const n=iC(e.selection.getSelectedBlocks());if(Mv(n,t.schema)){this.value=n.getAttribute(\"linkHref\");this.isEnabled=t.schema.checkAttribute(n,\"linkHref\")}else{this.value=e.selection.getAttribute(\"linkHref\");this.isEnabled=t.schema.checkAttributeInSelection(e.selection,\"linkHref\")}for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}execute(t,e={}){const n=this.editor.model;const o=n.document.selection;const i=[];const r=[];for(const t in e){if(e[t]){i.push(t)}else{r.push(t)}}n.change((e=>{if(o.isCollapsed){const s=o.getFirstPosition();if(o.hasAttribute(\"linkHref\")){const a=XA(s,\"linkHref\",o.getAttribute(\"linkHref\"),n);e.setAttribute(\"linkHref\",t,a);i.forEach((t=>{e.setAttribute(t,true,a)}));r.forEach((t=>{e.removeAttribute(t,a)}));e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(t!==\"\"){const r=Hs(o.getAttributes());r.set(\"linkHref\",t);i.forEach((t=>{r.set(t,true)}));const a=e.createText(t,r);n.insertContent(a,s);e.setSelection(e.createPositionAfter(a))}[\"linkHref\",...i,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(o.getRanges(),\"linkHref\");const a=[];for(const t of o.getSelectedBlocks()){if(n.schema.checkAttribute(t,\"linkHref\")){a.push(e.createRangeOn(t))}}const c=a.slice();for(const t of s){if(this._isRangeToUpdate(t,a)){c.push(t)}}for(const n of c){e.setAttribute(\"linkHref\",t,n);i.forEach((t=>{e.setAttribute(t,true,n)}));r.forEach((t=>{e.removeAttribute(t,n)}))}}}))}_getDecoratorStateFromModel(t){const e=this.editor.model;const n=e.document;const o=iC(n.selection.getSelectedBlocks());if(Mv(o,e.schema)){return o.getAttribute(t)}return n.selection.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e){if(n.containsRange(t)){return false}}return true}}class Nv extends nC{refresh(){const t=this.editor.model;const e=t.document;const n=iC(e.selection.getSelectedBlocks());if(Mv(n,t.schema)){this.isEnabled=t.schema.checkAttribute(n,\"linkHref\")}else{this.isEnabled=t.schema.checkAttributeInSelection(e.selection,\"linkHref\")}}execute(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;const o=t.commands.get(\"link\");e.change((t=>{const i=n.isCollapsed?[XA(n.getFirstPosition(),\"linkHref\",n.getAttribute(\"linkHref\"),e)]:n.getRanges();for(const e of i){t.removeAttribute(\"linkHref\",e);if(o){for(const n of o.manualDecorators){t.removeAttribute(n.id,e)}}}}))}}class Bv{constructor({id:t,label:e,attributes:n,defaultValue:o}){this.id=t;this.set(\"value\");this.defaultValue=o;this.label=e;this.attributes=n}}_s(Bv,$c);var Pv=n(29);var zv={injectType:\"singletonStyleTag\",attributes:{\"data-cke\":true}};zv.insert=\"head\";zv.singleton=true;var Lv=ik()(Pv[\"a\"],zv);var Ov=Pv[\"a\"].locals||{};const Rv=\"ck-link_selected\";const jv=\"automatic\";const Fv=\"manual\";const Vv=/^(https?:)?\\/\\//;class Uv extends tC{static get pluginName(){return\"LinkEditing\"}static get requires(){return[WA,p_,D_]}constructor(t){super(t);t.config.define(\"link\",{addTargetToExternalLinks:false})}init(){const t=this.editor;t.model.schema.extend(\"$text\",{allowAttributes:\"linkHref\"});t.conversion.for(\"dataDowncast\").attributeToElement({model:\"linkHref\",view:vv});t.conversion.for(\"editingDowncast\").attributeToElement({model:\"linkHref\",view:(t,e)=>vv(yv(t),e)});t.conversion.for(\"upcast\").elementToAttribute({view:{name:\"a\",attributes:{href:true}},model:{key:\"linkHref\",value:t=>t.getAttribute(\"href\")}});t.commands.add(\"link\",new Iv(t));t.commands.add(\"unlink\",new Nv(t));const e=Dv(t.t,Ev(t.config.get(\"link.decorators\")));this._enableAutomaticDecorators(e.filter((t=>t.mode===jv)));this._enableManualDecorators(e.filter((t=>t.mode===Fv)));const n=t.plugins.get(WA);n.registerAttribute(\"linkHref\");e_(t,\"linkHref\",\"a\",Rv);this._enableInsertContentSelectionAttributesFixer();this._enableClickingAfterLink();this._enableTypingOverLink();this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor;const n=e.commands.get(\"link\");const o=n.automaticDecorators;if(e.config.get(\"link.addTargetToExternalLinks\")){o.add({id:\"linkIsExternal\",mode:jv,callback:t=>Vv.test(t),attributes:{target:\"_blank\",rel:\"noopener noreferrer\"}})}o.add(t);if(o.length){e.conversion.for(\"downcast\").add(o.getDispatcher())}}_enableManualDecorators(t){if(!t.length){return}const e=this.editor;const n=e.commands.get(\"link\");const o=n.manualDecorators;t.forEach((t=>{e.model.schema.extend(\"$text\",{allowAttributes:t.id});o.add(new Bv(t));e.conversion.for(\"downcast\").attributeToElement({model:t.id,view:(e,{writer:n})=>{if(e){const e=o.get(t.id).attributes;const i=n.createAttributeElement(\"a\",e,{priority:5});n.setCustomProperty(\"link\",true,i);return i}}});e.conversion.for(\"upcast\").elementToAttribute({view:{name:\"a\",attributes:o.get(t.id).attributes},model:{key:t.id}})}))}_enableInsertContentSelectionAttributesFixer(){const t=this.editor;const e=t.model;const n=e.document.selection;const o=t.commands.get(\"link\");this.listenTo(e,\"insertContent\",(()=>{const t=n.anchor.nodeBefore;const i=n.anchor.nodeAfter;if(!n.hasAttribute(\"linkHref\")){return}if(!t){return}if(!t.hasAttribute(\"linkHref\")){return}if(i&&i.hasAttribute(\"linkHref\")){return}e.change((t=>{Hv(t,o.manualDecorators)}))}),{priority:\"low\"})}_enableClickingAfterLink(){const t=this.editor;const e=t.commands.get(\"link\");t.editing.view.addObserver(qA);let n=false;this.listenTo(t.editing.view.document,\"mousedown\",(()=>{n=true}));this.listenTo(t.editing.view.document,\"selectionChange\",(()=>{if(!n){return}n=false;const o=t.model.document.selection;if(!o.isCollapsed){return}if(!o.hasAttribute(\"linkHref\")){return}const i=o.getFirstPosition();const r=XA(i,\"linkHref\",o.getAttribute(\"linkHref\"),t.model);if(i.isTouching(r.start)||i.isTouching(r.end)){t.model.change((t=>{Hv(t,e.manualDecorators)}))}}))}_enableTypingOverLink(){const t=this.editor;const e=t.editing.view;let n;let o;this.listenTo(e.document,\"delete\",(()=>{o=true}),{priority:\"high\"});this.listenTo(t.model,\"deleteContent\",(()=>{const e=t.model.document.selection;if(e.isCollapsed){return}if(o){o=false;return}if(!Gv(t)){return}if(Kv(t.model)){n=e.getAttributes()}}),{priority:\"high\"});this.listenTo(t.model,\"insertContent\",((e,[i])=>{o=false;if(!Gv(t)){return}if(!n){return}t.model.change((t=>{for(const[e,o]of n){t.setAttribute(e,o,i)}}));n=null}),{priority:\"high\"})}_handleDeleteContentAfterLink(){const t=this.editor;const e=t.model;const n=e.document.selection;const o=t.editing.view;const i=t.commands.get(\"link\");let r=false;let s=false;this.listenTo(o.document,\"delete\",((t,e)=>{s=e.domEvent.keyCode===zl.backspace}),{priority:\"high\"});this.listenTo(e,\"deleteContent\",(()=>{r=false;const t=n.getFirstPosition();const o=n.getAttribute(\"linkHref\");if(!o){return}const i=XA(t,\"linkHref\",o,e);r=i.containsPosition(t)||i.end.isEqual(t)}),{priority:\"high\"});this.listenTo(e,\"deleteContent\",(()=>{if(!s){return}s=false;if(r){return}t.model.enqueueChange((t=>{Hv(t,i.manualDecorators)}))}),{priority:\"low\"})}}function Hv(t,e){t.removeSelectionAttribute(\"linkHref\");for(const n of e){t.removeSelectionAttribute(n.id)}}function Kv(t){const e=t.document.selection;const n=e.getFirstPosition();const o=e.getLastPosition();const i=n.nodeAfter;if(!i){return false}if(!i.is(\"$text\")){return false}if(!i.hasAttribute(\"linkHref\")){return false}const r=o.textNode||o.nodeBefore;if(i===r){return true}const s=XA(n,\"linkHref\",i.getAttribute(\"linkHref\"),t);return s.containsRange(t.createRange(n,o),true)}function Gv(t){const e=t.plugins.get(\"Input\");return e.isInput(t.model.change((t=>t.batch)))}class qv{constructor(t){this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return true}}_s(qv,$c);class Wv extends qv{static get pluginName(){return\"Notification\"}init(){this.on(\"show:warning\",((t,e)=>{window.alert(e.message)}),{priority:\"lowest\"})}showSuccess(t,e={}){this._showNotification({message:t,type:\"success\",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:\"info\",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:\"warning\",namespace:e.namespace,title:e.title})}_showNotification(t){const e=`show:${t.type}`+(t.namespace?`:${t.namespace}`:\"\");this.fire(e,{message:t.message,type:t.type,title:t.title||\"\"})}}class Yv extends nC{constructor(t){super(t);this.stopListening(this.editor.model.document,\"change\");this.listenTo(this.editor.model.document,\"change\",(()=>this.refresh()),{priority:\"low\"})}refresh(){const t=this.editor.commands.get(\"imageInsert\");const e=this.editor.commands.get(\"link\");this.isEnabled=t.isEnabled||e.isEnabled}execute(){const t=this.editor;const e=this.editor.config.get(\"ckfinder.openerMethod\")||\"modal\";if(e!=\"popup\"&&e!=\"modal\"){throw new ss[\"a\"](\"ckfinder-unknown-openermethod\",t)}const n=this.editor.config.get(\"ckfinder.options\")||{};n.chooseFiles=true;const o=n.onInit;if(!n.language){n.language=t.locale.uiLanguage}n.onInit=e=>{if(o){o(e)}e.on(\"files:choose\",(n=>{const o=n.data.files.toArray();const i=o.filter((t=>!t.isImage()));const r=o.filter((t=>t.isImage()));for(const e of i){t.execute(\"link\",e.getUrl())}const s=[];for(const t of r){const n=t.getUrl();s.push(n?n:e.request(\"file:getProxyUrl\",{file:t}))}if(s.length){Qv(t,s)}}));e.on(\"file:choose:resizedImage\",(e=>{const n=e.data.resizedUrl;if(!n){const e=t.plugins.get(\"Notification\");const n=t.locale.t;e.showWarning(n(\"Could not obtain resized image URL.\"),{title:n(\"Selecting resized image failed\"),namespace:\"ckfinder\"});return}Qv(t,[n])}))};window.CKFinder[e](n)}}function Qv(t,e){const n=t.commands.get(\"imageInsert\");if(!n.isEnabled){const e=t.plugins.get(\"Notification\");const n=t.locale.t;e.showWarning(n(\"Could not insert image at the current position.\"),{title:n(\"Inserting image failed\"),namespace:\"ckfinder\"});return}t.execute(\"imageInsert\",{source:e})}class $v extends tC{static get pluginName(){return\"CKFinderEditing\"}static get requires(){return[Wv,KA,Uv]}init(){const t=this.editor;t.commands.add(\"ckfinder\",new Yv(t))}}class Zv extends qv{static get pluginName(){return\"PendingActions\"}init(){this.set(\"hasAny\",false);this._actions=new vs({idProperty:\"_id\"});this._actions.delegate(\"add\",\"remove\").to(this)}add(t){if(typeof t!==\"string\"){throw new ss[\"a\"](\"pendingactions-add-invalid-message\",this)}const e=Object.create($c);e.set(\"message\",t);this._actions.add(e);this.hasAny=true;return e}remove(t){this._actions.remove(t);this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}class Jv{constructor(){const t=new window.FileReader;this._reader=t;this._data=undefined;this.set(\"loaded\",0);t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;this.total=t.size;return new Promise(((n,o)=>{e.onload=()=>{const t=e.result;this._data=t;n(t)};e.onerror=()=>{o(\"error\")};e.onabort=()=>{o(\"aborted\")};this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}_s(Jv,$c);class Xv extends tC{static get pluginName(){return\"FileRepository\"}static get requires(){return[Zv]}init(){this.loaders=new vs;this.loaders.on(\"add\",(()=>this._updatePendingAction()));this.loaders.on(\"remove\",(()=>this._updatePendingAction()));this._loadersMap=new Map;this._pendingAction=null;this.set(\"uploaded\",0);this.set(\"uploadTotal\",null);this.bind(\"uploadedPercent\").to(this,\"uploaded\",this,\"uploadTotal\",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter){Object(ss[\"c\"])(\"filerepository-no-upload-adapter\");return null}const e=new ty(Promise.resolve(t),this.createUploadAdapter);this.loaders.add(e);this._loadersMap.set(t,e);if(t instanceof Promise){e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{}))}e.on(\"change:uploaded\",(()=>{let t=0;for(const e of this.loaders){t+=e.uploaded}this.uploaded=t}));e.on(\"change:uploadTotal\",(()=>{let t=0;for(const e of this.loaders){if(e.uploadTotal){t+=e.uploadTotal}}this.uploadTotal=t}));return e}destroyLoader(t){const e=t instanceof ty?t:this.getLoader(t);e._destroy();this.loaders.remove(e);this._loadersMap.forEach(((t,n)=>{if(t===e){this._loadersMap.delete(n)}}))}_updatePendingAction(){const t=this.editor.plugins.get(Zv);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t;const n=t=>`${e(\"Upload in progress\")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent));this._pendingAction.bind(\"message\").to(this,\"uploadedPercent\",n)}}else{t.remove(this._pendingAction);this._pendingAction=null}}}_s(Xv,$c);class ty{constructor(t,e){this.id=ns();this._filePromiseWrapper=this._createFilePromiseWrapper(t);this._adapter=e(this);this._reader=new Jv;this.set(\"status\",\"idle\");this.set(\"uploaded\",0);this.set(\"uploadTotal\",null);this.bind(\"uploadedPercent\").to(this,\"uploaded\",this,\"uploadTotal\",((t,e)=>e?t/e*100:0));this.set(\"uploadResponse\",null)}get file(){if(!this._filePromiseWrapper){return Promise.resolve(null)}else{return this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null))}}get data(){return this._reader.data}read(){if(this.status!=\"idle\"){throw new ss[\"a\"](\"filerepository-read-wrong-status\",this)}this.status=\"reading\";return this.file.then((t=>this._reader.read(t))).then((t=>{if(this.status!==\"reading\"){throw this.status}this.status=\"idle\";return t})).catch((t=>{if(t===\"aborted\"){this.status=\"aborted\";throw\"aborted\"}this.status=\"error\";throw this._reader.error?this._reader.error:t}))}upload(){if(this.status!=\"idle\"){throw new ss[\"a\"](\"filerepository-upload-wrong-status\",this)}this.status=\"uploading\";return this.file.then((()=>this._adapter.upload())).then((t=>{this.uploadResponse=t;this.status=\"idle\";return t})).catch((t=>{if(this.status===\"aborted\"){throw\"aborted\"}this.status=\"error\";throw t}))}abort(){const t=this.status;this.status=\"aborted\";if(!this._filePromiseWrapper.isFulfilled){this._filePromiseWrapper.promise.catch((()=>{}));this._filePromiseWrapper.rejecter(\"aborted\")}else if(t==\"reading\"){this._reader.abort()}else if(t==\"uploading\"&&this._adapter.abort){this._adapter.abort()}this._destroy()}_destroy(){this._filePromiseWrapper=undefined;this._reader=undefined;this._adapter=undefined;this.uploadResponse=undefined}_createFilePromiseWrapper(t){const e={};e.promise=new Promise(((n,o)=>{e.rejecter=o;e.isFulfilled=false;t.then((t=>{e.isFulfilled=true;n(t)})).catch((t=>{e.isFulfilled=true;o(t)}))}));return e}}_s(ty,$c);const ey=\"ckCsrfToken\";const ny=40;const oy=\"abcdefghijklmnopqrstuvwxyz0123456789\";function iy(){let t=ry(ey);if(!t||t.length!=ny){t=ay(ny);sy(ey,t)}return t}function ry(t){t=t.toLowerCase();const e=document.cookie.split(\";\");for(const n of e){const e=n.split(\"=\");const o=decodeURIComponent(e[0].trim().toLowerCase());if(o===t){return decodeURIComponent(e[1])}}return null}function sy(t,e){document.cookie=encodeURIComponent(t)+\"=\"+encodeURIComponent(e)+\";path=/\"}function ay(t){let e=\"\";const n=new Uint8Array(t);window.crypto.getRandomValues(n);for(let t=0;t