From 8d1621cec14427afb5cd3d68797042ec6bc713f6 Mon Sep 17 00:00:00 2001
From: Ankita
Date: Thu, 9 Sep 2021 14:19:08 +0530
Subject: [PATCH] word count
---
.../script-slide/script-slide.component.html | 8 ++--
.../script-slide/script-slide.component.ts | 47 ++++++++++++++++++-
.../script-view/script-view.component.html | 2 +
.../script-view/script-view.component.ts | 3 +-
scriptmanager/static/scriptmanager/main.js | 2 +-
5 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/scriptmanager/src/app/script/script-slide/script-slide.component.html b/scriptmanager/src/app/script/script-slide/script-slide.component.html
index 4d21994..4b00c78 100644
--- a/scriptmanager/src/app/script/script-slide/script-slide.component.html
+++ b/scriptmanager/src/app/script/script-slide/script-slide.component.html
@@ -25,9 +25,10 @@
Visual Cue
-
+
+ Word Count : {{ visual_cue }}
@@ -39,8 +40,9 @@
+ (onBlur)="saveSlide(true)" [styles]="quillStyles" theme="snow" (ngModelChange)="onNarrationChange($event)">
+
Word Count : {{ narration }}
diff --git a/scriptmanager/src/app/script/script-slide/script-slide.component.ts b/scriptmanager/src/app/script/script-slide/script-slide.component.ts
index 0b2b4ab..721a2fb 100644
--- a/scriptmanager/src/app/script/script-slide/script-slide.component.ts
+++ b/scriptmanager/src/app/script/script-slide/script-slide.component.ts
@@ -1,6 +1,7 @@
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
// import * as ClassicEditor from '@ckeditor/ckeditor5-build-classic';
+//import { EditorChangeContent, EditorChangeSelection } from 'ngx-quill'
@Component({
selector: 'app-script-slide',
@@ -22,6 +23,8 @@ export class ScriptSlideComponent implements OnInit {
public comment = false;
public ckEditorCue: boolean = false;
public ckEditorNarration: boolean = false;
+ public visual_cue : number = 0;
+ narration = 0;
public quillStyles = {
'height': '200px',
@@ -32,6 +35,44 @@ export class ScriptSlideComponent implements OnInit {
editorForm: FormGroup;
+
+
+ onChange(event: any): void {
+ if(event == ''){
+ this.visual_cue = 0;
+ }else
+ if(event == null){
+ this.visual_cue = 0;
+ }else{
+ var s = event;
+ var regex = /(<([^>]+)>)/ig;
+ s = s.replace(regex, " ");
+ var regex_space = /\s{2,}/ig;
+ s = s.trim().replace(regex_space,' ')
+ var len = s.split(" ").length;
+ this.visual_cue = len;
+ }
+}
+
+ onNarrationChange(event: any): void {
+ if(event == ''){
+ this.narration = 0;
+ }else
+ if(event == null){
+ this.narration = 0;
+ }else{
+ var s = event;
+ var regex = /(<([^>]+)>)/ig;
+ s = s.replace(regex, " ");
+ var regex_space = /\s{2,}/ig;
+ s = s.trim().replace(regex_space,' ')
+ var len = s.split(" ").length;
+ this.narration = len;
+ }
+ }
+
+
+
// public Editor = ClassicEditor;
// public ckeditorConfig = {
// toolbar: ['heading', '|', 'bold', 'italic', 'bulletedList', 'numberedList', '|', 'undo', 'redo']
@@ -77,6 +118,7 @@ export class ScriptSlideComponent implements OnInit {
public insertSlide() {
this.insertSlideEmitter.emit(this.index + 1);
+
}
public checkSlide() {
@@ -109,13 +151,16 @@ export class ScriptSlideComponent implements OnInit {
public changeNarrationToEditor() {
this.ckEditorNarration = true;
}
-
+
+
ngOnInit() {
this.editorForm = new FormGroup({
'cue': new FormControl(),
'narration': new FormControl()
})
this.checkSlide()
+
}
}
+
diff --git a/scriptmanager/src/app/script/script-view/script-view.component.html b/scriptmanager/src/app/script/script-view/script-view.component.html
index 99a9494..2954106 100644
--- a/scriptmanager/src/app/script/script-view/script-view.component.html
+++ b/scriptmanager/src/app/script/script-view/script-view.component.html
@@ -80,9 +80,11 @@
").replace(/\n/g,"
").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ")).indexOf("
")>-1&&(t=`
${t}
`),t}(r.getData("text/plain"))),i=this._htmlDataProcessor.toView(i),this.fire("inputTransformation",{content:i,dataTransfer:r}),n.scrollToTheSelection()},{priority:"low"}),this.listenTo(this,"inputTransformation",(t,e)=>{if(!e.content.isEmpty){const t=this.editor.model,n=this.editor.data.toModel(e.content,"$clipboardHolder");if(0==n.childCount)return;t.insertContent(n)}},{priority:"low"}),this.listenTo(r,"copy",i,{priority:"low"}),this.listenTo(r,"cut",(e,n)=>{t.isReadOnly?n.preventDefault():i(e,n)},{priority:"low"}),this.listenTo(r,"clipboardOutput",(n,r)=>{r.content.isEmpty||(r.dataTransfer.setData("text/html",this._htmlDataProcessor.toData(r.content)),r.dataTransfer.setData("text/plain",function t(e){let n="";if(e.is("text")||e.is("textProxy"))n=e.data;else if(e.is("img")&&e.hasAttribute("alt"))n=e.getAttribute("alt");else{let r=null;for(const i of e.getChildren()){const e=t(i);r&&(r.is("containerElement")||i.is("containerElement"))&&(Ea.includes(r.name)||Ea.includes(i.name)?n+="\n":n+="\n\n"),n+=e,r=i}}return n}(r.content))),"cut"==r.method&&t.model.deleteContent(e.selection)},{priority:"low"})}}class Pa{constructor(t){this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",()=>{this.refresh()}),this.on("execute",t=>{this.isEnabled||t.stop()},{priority:"high"}),this.listenTo(t,"change:isReadOnly",(t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Ta,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Ta),this.refresh())}execute(){}destroy(){this.stopListening()}}function Ta(t){t.return=!1,t.stop()}Se(Pa,Qe);class Na extends Pa{execute(){const t=this.editor.model,e=t.document;t.change(n=>{!function(t,e,n,r){const i=n.isCollapsed,o=n.getFirstRange(),s=o.start.parent,a=o.end.parent;if(r.isLimit(s)||r.isLimit(a))i||s!=a||t.deleteContent(n);else if(i)Ia(e,o.start);else{const r=!(o.start.isAtStart&&o.end.isAtEnd),i=s==a;t.deleteContent(n,{leaveUnmerged:r}),r&&(i?Ia(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})})}}function Ia(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}class Ma extends _r{constructor(t){super(t);const e=this.document;e.on("keydown",(t,n)=>{if(this.isEnabled&&n.keyCode==En.enter){let r;e.once("enter",t=>r=t,{priority:"highest"}),e.fire("enter",new Br(e,n.domEvent,{isSoft:n.shiftKey})),r&&r.stop.called&&t.stop()}})}observe(){}}class Da extends Ca{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Ma),t.commands.add("enter",new Na(t)),this.listenTo(n,"enter",(n,r)=>{r.preventDefault(),r.isSoft||(t.execute("enter"),e.scrollToTheSelection())},{priority:"low"})}}class ja extends Pa{execute(){const t=this.editor.model,e=t.document;t.change(n=>{!function(t,e,n){const r=n.isCollapsed,i=n.getFirstRange(),o=i.end.parent,s=i.start.parent==o;if(r)La(e,i.end);else{const r=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:r}),s?La(e,n.focus):r&&e.setSelection(o,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})})}refresh(){const t=this.editor.model;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const r=e.getFirstRange(),i=r.start.parent,o=r.end.parent;return!Ra(i,t)&&!Ra(o,t)||i===o}(t.schema,t.document.selection)}}function La(t,e){const n=t.createElement("softBreak");t.insert(n,e),t.setSelection(n,"after")}function Ra(t,e){return!t.is("rootElement")&&(e.isLimit(t)||Ra(t.parent,e))}class Fa extends Ca{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.conversion,n=t.editing.view,r=n.document;t.model.schema.register("softBreak",{allowWhere:"$text",isInline:!0}),e.for("upcast").elementToElement({model:"softBreak",view:"br"}),e.for("downcast").elementToElement({model:"softBreak",view:(t,e)=>e.createEmptyElement("br")}),n.addObserver(Ma),t.commands.add("shiftEnter",new ja(t)),this.listenTo(r,"enter",(e,r)=>{r.preventDefault(),r.isSoft&&(t.execute("shiftEnter"),n.scrollToTheSelection())},{priority:"low"})}}class Ba{constructor(t,e=20){this.model=t,this.size=0,this.limit=e,this.isLocked=!1,this._changeCallback=((t,e)=>{"transparent"!=e.type&&e!==this._batch&&this._reset(!0)}),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(){return this._batch||(this._batch=this.model.createBatch()),this._batch}input(t){this.size+=t,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}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){this.isLocked&&!t||(this._batch=null,this.size=0)}}class Va extends Pa{constructor(t,e){super(t),this._buffer=new Ba(t.model,e)}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,r=t.text||"",i=r.length,o=t.range||n.selection.getFirstRange(),s=t.resultRange;e.enqueueChange(this._buffer.batch,t=>{const a=o.isCollapsed;this._buffer.lock(),e.deleteContent(e.createSelection(o)),r&&e.insertContent(t.createText(r,n.selection.getAttributes()),o.start),s?t.setSelection(s):a&&t.setSelection(o.start.getShiftedBy(i)),this._buffer.unlock(),this._buffer.input(i)})}}const qa=[On("arrowUp"),On("arrowRight"),On("arrowDown"),On("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 kp=112;kp<=135;kp++)qa.push(kp);function za(t){if(0==t.length)return!1;for(const e of t)if("children"===e.type&&!Ua(e))return!0;return!1}function Ua(t){if(t.newChildren.length-t.oldChildren.length!=1)return;const e=function(t,e){const n=[];let r,i=0;return t.forEach(t=>{"equal"==t?(o(),i++):"insert"==t?(s("insert")?r.values.push(e[i]):(o(),r={type:"insert",index:i,values:[e[i]]}),i++):s("delete")?r.howMany++:(o(),r={type:"delete",index:i,howMany:1})}),o(),n;function o(){r&&(n.push(r),r=null)}function s(t){return r&&r.type==t}}(ir(t.oldChildren,t.newChildren,Ha),t.newChildren);if(e.length>1)return;const n=e[0];return n.values[0]&&n.values[0].is("text")?n:void 0}function Ha(t,e){return t&&t.is("text")&&e&&e.is("text")?t.data===e.data:t===e}class Wa{constructor(t){this.editor=t,this.editing=this.editor.editing}handle(t,e){if(za(t))this._handleContainerChildrenMutations(t,e);else for(const n of t)this._handleTextMutation(n,e),this._handleTextNodeInsertion(n)}_handleContainerChildrenMutations(t,e){const n=function(t){const e=t.map(t=>t.node).reduce((t,e)=>t.getCommonAncestor(e,{includeSelf:!0}));if(e)return e.getAncestors({includeSelf:!0,parentFirst:!0}).find(t=>t.is("containerElement")||t.is("rootElement"))}(t);if(!n)return;const r=this.editor.editing.view.domConverter.mapViewToDom(n),i=new pr,o=this.editor.data.toModel(i.domToView(r)).getChild(0),s=this.editor.editing.mapper.toModelElement(n);if(!s)return;const a=Array.from(o.getChildren()),l=Array.from(s.getChildren()),u=a[a.length-1],c=l[l.length-1];u&&u.is("softBreak")&&c&&!c.is("softBreak")&&a.pop();const d=this.editor.model.schema;if(!Ga(a,d)||!Ga(l,d))return;const h=a.map(t=>t.is("text")?t.data:"@").join("").replace(/\u00A0/g," "),f=l.map(t=>t.is("text")?t.data:"@").join("").replace(/\u00A0/g," ");if(f===h)return;const p=ir(f,h),{firstChangeAt:g,insertions:m,deletions:v}=Ya(p);let y=null;e&&(y=this.editing.mapper.toModelRange(e.getFirstRange()));const b=h.substr(g,m),w=this.editor.model.createRange(this.editor.model.createPositionAt(s,g),this.editor.model.createPositionAt(s,g+v));this.editor.execute("input",{text:b,range:w,resultRange:y})}_handleTextMutation(t,e){if("text"!=t.type)return;const n=t.newText.replace(/\u00A0/g," "),r=t.oldText.replace(/\u00A0/g," ");if(r===n)return;const i=ir(r,n),{firstChangeAt:o,insertions:s,deletions:a}=Ya(i);let l=null;e&&(l=this.editing.mapper.toModelRange(e.getFirstRange()));const u=this.editing.view.createPositionAt(t.node,o),c=this.editing.mapper.toModelPosition(u),d=this.editor.model.createRange(c,c.getShiftedBy(a)),h=n.substr(o,s);this.editor.execute("input",{text:h,range:d,resultRange:l})}_handleTextNodeInsertion(t){if("children"!=t.type)return;const e=Ua(t),n=this.editing.view.createPositionAt(t.node,e.index),r=this.editing.mapper.toModelPosition(n);this.editor.execute("input",{text:e.values[0].data.replace(/\u00A0/g," "),range:this.editor.model.createRange(r)})}}function Ga(t,e){return t.every(t=>e.isInline(t))}function Ya(t){let e=null,n=null;for(let o=0;o{n.deleteContent(n.document.selection)}),t.unlock()}r.document.on("keydown",(t,s)=>(function(t){const s=n.document,a=r.document.isComposing,l=e&&e.isEqual(s.selection);e=null,i.isEnabled&&(function(t){return!!t.ctrlKey||qa.includes(t.keyCode)}(t)||s.selection.isCollapsed||a&&229===t.keyCode||!a&&229===t.keyCode&&l||o())})(s),{priority:"lowest"}),r.document.on("compositionstart",function(){const t=n.document,e=1!==t.selection.rangeCount||t.selection.getFirstRange().isFlat;t.selection.isCollapsed||e||o()},{priority:"lowest"}),r.document.on("compositionend",()=>{e=n.createSelection(n.document.selection)},{priority:"lowest"})}(t),function(t){t.editing.view.document.on("mutations",(e,n,r)=>{new Wa(t).handle(n,r)})}(t)}}class $a extends Pa{constructor(t,e){super(t),this.direction=e,this._buffer=new Ba(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,r=>{this._buffer.lock();const i=r.createSelection(n.selection),o=i.isCollapsed;if(i.isCollapsed&&e.modifySelection(i,{direction:this.direction,unit:t.unit}),this._shouldEntireContentBeReplacedWithParagraph(t.sequence||1))return void this._replaceEntireContentWithParagraph(r);if(i.isCollapsed)return;let s=0;i.getFirstRange().getMinimalFlatRanges().forEach(t=>{s+=hn(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))}),e.deleteContent(i,{doNotResetEntireContent:o}),this._buffer.input(s),r.setSelection(i),this._buffer.unlock()})}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,r=e.schema.getLimitElement(n);if(!n.isCollapsed||!n.containsEntireContent(r))return!1;if(!e.schema.checkChild(r,"paragraph"))return!1;const i=r.getChild(0);return!i||"paragraph"!==i.name}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.schema.getLimitElement(e.document.selection),r=t.createElement("paragraph");t.remove(t.createRangeIn(n)),t.insert(r,n),t.setSelection(r,0)}}class Za extends _r{constructor(t){super(t);const e=t.document;let n=0;e.on("keyup",(t,e)=>{e.keyCode!=En.delete&&e.keyCode!=En.backspace||(n=0)}),e.on("keydown",(t,r)=>{const i={};if(r.keyCode==En.delete)i.direction="forward",i.unit="character";else{if(r.keyCode!=En.backspace)return;i.direction="backward",i.unit="codePoint"}let o;i.unit=(Cn.isMac?r.altKey:r.ctrlKey)?"word":i.unit,i.sequence=++n,e.once("delete",t=>o=t,{priority:Number.POSITIVE_INFINITY});const s=new Br(e,r.domEvent,i);e.fire("delete",s),o&&o.stop.called&&t.stop()})}observe(){}}function Qa(t){return t.every(t=>t.is("containerElement"))}class Ja extends Ca{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Za),t.commands.add("forwardDelete",new $a(t,"forward")),t.commands.add("delete",new $a(t,"backward")),this.listenTo(n,"delete",(n,r)=>{t.execute("forward"==r.direction?"forwardDelete":"delete",{unit:r.unit,sequence:r.sequence}),r.preventDefault(),e.scrollToTheSelection()}),function(t){const e=t.model,n=t.editing.view;let r=null,i=e.createSelection(e.document.selection),o=Date.now();e.document.selection.on("change",function(t){const n=e.createSelection(t.source);i.isEqual(n)||(r=i,i=n,o=Date.now())}),n.document.on("mutations",function(n,s){za(s)&&function(t){for(const e of t){if("children"!==e.type)continue;const t=e.oldChildren,n=e.newChildren;if(!Qa(t))continue;const r=ir(t,n),i=r.some(t=>"delete"===t),o=r.some(t=>"insert"===t);if(i&&!o)return!0}return!1}(s)&&(Date.now()-o<200&&r&&!r.isCollapsed&&i.isCollapsed&&i.getLastPosition().isEqual(r.getLastPosition())&&e.enqueueChange(t=>{t.setSelection(r)}),t.execute("delete"),n.stop())},{priority:"highest"})}(t)}}class Xa extends Ca{static get requires(){return[Ka,Ja]}static get pluginName(){return"Typing"}}class tl extends Po{get type(){return"noop"}clone(){return new tl(this.baseVersion)}getReversed(){return new tl(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}const el=new Map;function nl(t,e,n){let r=el.get(t);r||(r=new Map,el.set(t,r)),r.set(e,n)}function rl(t){return[t]}function il(t,e,n={}){const r=function(t,e){const n=el.get(t);return n&&n.has(e)?n.get(e):rl}(t.constructor,e.constructor);try{return r(t=t.clone(),e,n)}catch(r){throw Xr.a.error("Error during operation transformation!",r.message),Xr.a.error("Transformed operation",t),Xr.a.error("Operation transformed by",e),Xr.a.error("context.aIsStrong",n.aIsStrong),Xr.a.error("context.aWasUndone",n.aWasUndone),Xr.a.error("context.bWasUndone",n.bWasUndone),Xr.a.error("context.abRelation",n.abRelation),Xr.a.error("context.baRelation",n.baRelation),r}}function ol(t,e,n){if(t=t.slice(),e=e.slice(),0==t.length||0==e.length)return{operationsA:t,operationsB:e};const r=new WeakMap;for(const a of t)r.set(a,0);const i={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length},o=new sl(n.document,n.useRelations,n.forceWeakRemove);o.setOriginalOperations(t),o.setOriginalOperations(e);let s=0;for(;s{if(t.key===e.key){const r=t.range.getDifference(e.range).map(e=>new Bo(e,t.key,t.oldValue,t.newValue,0)),i=t.range.getIntersection(e.range);return i&&n.aIsStrong&&r.push(new Bo(i,e.key,e.newValue,t.newValue,0)),0==r.length?[new tl(0)]:r}return[t]}),nl(Bo,zo,(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).map(e=>new Bo(e,t.key,t.oldValue,t.newValue,t.baseVersion));if(e.shouldReceiveAttributes){const r=ul(e,t.key,t.oldValue);r&&n.unshift(r)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]}),nl(Bo,Go,(t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(Ti._createFromPositionAndShift(e.graveyardPosition,1));const r=t.range._getTransformedByMergeOperation(e);return r.isCollapsed||n.push(r),n.map(e=>new Bo(e,t.key,t.oldValue,t.newValue,t.baseVersion))}),nl(Bo,qo,(t,e)=>(function(t,e){const n=Ti._createFromPositionAndShift(e.sourcePosition,e.howMany);let r=null,i=[];n.containsRange(t,!0)?r=t:t.start.hasSameParentAs(n.start)?(i=t.getDifference(n),r=t.getIntersection(n)):i=[t];const o=[];for(let s of i){s=s._getTransformedByDeletion(e.sourcePosition,e.howMany);const t=e.getMovedRangeStart(),n=s.start.hasSameParentAs(t);s=s._getTransformedByInsertion(t,e.howMany,n),o.push(...s)}return r&&o.push(r._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]),o})(t.range,e).map(e=>new Bo(e,t.key,t.oldValue,t.newValue,t.baseVersion))),nl(Bo,Yo,(t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new Ti(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]}),nl(zo,Bo,(t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const r=ul(t,e.key,e.newValue);r&&n.push(r)}return n}),nl(zo,zo,(t,e,n)=>t.position.isEqual(e.position)&&n.aIsStrong?[t]:(t.position=t.position._getTransformedByInsertOperation(e),[t])),nl(zo,qo,(t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t])),nl(zo,Yo,(t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t])),nl(zo,Go,(t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t])),nl(Uo,zo,(t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t])),nl(Uo,Uo,(t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new tl(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]}),nl(Uo,Go,(t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t])),nl(Uo,qo,(t,e,n)=>{if(t.oldRange&&(t.oldRange=Ti._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const r=Ti._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.start.path=n.abRelation.path,t.newRange.end=r.end,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=r.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=Ti._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]}),nl(Uo,Yo,(t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const r=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=Pi._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=Pi._createAt(e.moveTargetPosition)),t.newRange.end=t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?Pi._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?Pi._createAt(e.insertionPosition):r.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]}),nl(Go,zo,(t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t])),nl(Go,Go,(t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new Pi(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new tl(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const r="$graveyard"==t.targetPosition.root.rootName,i="$graveyard"==e.targetPosition.root.rootName;if(i&&!r||(!r||i)&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),r=t.targetPosition._getTransformedByMergeOperation(e);return[new qo(n,t.howMany,r,0)]}return[new tl(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]}),nl(Go,qo,(t,e,n)=>{const r=Ti._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&r.containsPosition(t.sourcePosition)?[new tl(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])}),nl(Go,Yo,(t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const r=0!=e.howMany,i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(r||i||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}),nl(qo,zo,(t,e)=>{const n=Ti._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]}),nl(qo,qo,(t,e,n)=>{const r=Ti._createFromPositionAndShift(t.sourcePosition,t.howMany),i=Ti._createFromPositionAndShift(e.sourcePosition,e.howMany);let o,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),o=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),cl(t,e)&&cl(e,t))return[e.getReversed()];if(r.containsPosition(e.targetPosition)&&r.containsRange(i,!0))return r.start=r.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),r.end=r.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),dl([r],o);if(i.containsPosition(t.targetPosition)&&i.containsRange(r,!0))return r.start=r.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),r.end=r.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),dl([r],o);const l=Ee(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return r.start=r.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),r.end=r.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),dl([r],o);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const u=[],c=r.getDifference(i);for(const h of c){h.start=h.start._getTransformedByDeletion(e.sourcePosition,e.howMany),h.end=h.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const t="same"==Ee(h.start.getParentPath(),e.getMovedRangeStart().getParentPath()),n=h._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,t);u.push(...n)}const d=r.getIntersection(i);return null!==d&&s&&(d.start=d.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),d.end=d.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===u.length?u.push(d):1==u.length?i.start.isBefore(r.start)||i.start.isEqual(r.start)?u.unshift(d):u.push(d):u.splice(1,0,d)),0===u.length?[new tl(t.baseVersion)]:dl(u,o)}),nl(qo,Yo,(t,e,n)=>{let r=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(r=t.targetPosition._getTransformedBySplitOperation(e));const i=Ti._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=r,[t];if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new Ti(e.splitPosition,i.end);return t=t._getTransformedBySplitOperation(e),dl([new Ti(i.start,e.splitPosition),t],r)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(r=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(r=t.targetPosition);const o=[i._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const r=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);t.howMany>1&&r&&!n.aWasUndone&&o.push(Ti._createFromPositionAndShift(e.insertionPosition,1))}return dl(o,r)}),nl(qo,Go,(t,e,n)=>{const r=Ti._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&r.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new tl(0)]}else if(!n.aWasUndone){const n=[];let r=e.graveyardPosition.clone(),i=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new qo(t.sourcePosition,t.howMany-1,t.targetPosition,0)),r=r._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const o=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new qo(r,1,o,0),a=s.getMovedRangeStart().path.slice();a.push(0);const l=new Pi(s.targetPosition.root,a);i=i._getTransformedByMove(r,o,1);const u=new qo(i,e.howMany,l,0);return n.push(s),n.push(u),n}const i=Ti._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=i.start,t.howMany=i.end.offset-i.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]}),nl(Ho,zo,(t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t])),nl(Ho,Go,(t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t])),nl(Ho,qo,(t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t])),nl(Ho,Ho,(t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new tl(0)];t.oldName=e.newName}return[t]}),nl(Ho,Yo,(t,e)=>"same"!=Ee(t.position.path,e.splitPosition.getParentPath())||e.graveyardPosition?(t.position=t.position._getTransformedBySplitOperation(e),[t]):[t,new Ho(t.position.getShiftedBy(1),t.oldName,t.newName,0)]),nl(Wo,Wo,(t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new tl(0)];t.oldValue=e.newValue}return[t]}),nl(Yo,zo,(t,e)=>(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 r=new Pi(e.graveyardPosition.root,n),i=Yo.getInsertionPosition(new Pi(e.graveyardPosition.root,n)),o=new Yo(r,0,null,0);return o.insertionPosition=i,t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yo.getInsertionPosition(t.splitPosition),t.graveyardPosition=o.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[o,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yo.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]}),nl(Yo,qo,(t,e,n)=>{const r=Ti._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=r.start.isEqual(t.graveyardPosition)||r.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e),r=t.graveyardPosition._getTransformedByMoveOperation(e),i=r.path.slice();i.push(0);const o=new Pi(r.root,i);return[new qo(n,t.howMany,o,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}return t.splitPosition.hasSameParentAs(e.sourcePosition)&&r.containsPosition(t.splitPosition)?(t.howMany-=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset),t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new tl(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new tl(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const r="$graveyard"==t.splitPosition.root.rootName,i="$graveyard"==e.splitPosition.root.rootName;if(i&&!r||(!r||i)&&n.aIsStrong){const n=[];return e.howMany&&n.push(new qo(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new qo(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new tl(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const r=new Pi(e.insertionPosition.root,n);return[t,new qo(t.insertionPosition,1,r,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset0}addBatch(t){const e=this.editor.model.document.selection,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 r=this.editor.model,i=r.document,o=[];for(const s of t){const t=fl(s,n).find(t=>t.start.root!=i.graveyard);t&&o.push(t)}o.length&&r.change(t=>{t.setSelection(o,{backward:e})})}_undo(t,e){const n=this.editor.model,r=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter(t=>t.isDocumentOperation);i.reverse();for(const o of i){const t=Array.from(r.history.getOperations(o.baseVersion+1)),i=ol([o.getReversed()],t,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const s of i)e.addOperation(s),n.applyOperation(s),r.history.setOperationAsUndone(o,s)}}}function fl(t,e){const n=t.getTransformedByOperations(e);n.sort((t,e)=>t.start.isBefore(e.start)?-1:1);for(let r=1;re.batch==t):this._stack.length-1,n=this._stack.splice(e,1)[0],r=this.editor.model.createBatch();this.editor.model.enqueueChange(r,()=>{this._undo(n.batch,r);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,r)}),this.refresh()}}class gl extends hl{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch();this.editor.model.enqueueChange(e,()=>{const n=this.editor.model.document.history.getOperations(t.batch.operations[t.batch.operations.length-1].baseVersion+1);this._restoreSelection(t.selection.ranges,t.selection.isBackward,n),this._undo(t.batch,e)}),this.refresh()}}class ml extends Ca{constructor(t){super(t),this._batchRegistry=new WeakSet}init(){const t=this.editor;this._undoCommand=new pl(t),this._redoCommand=new gl(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 r=n.batch;this._batchRegistry.has(r)||"transparent"==r.type||(this._redoCommand._createdBatches.has(r)?this._undoCommand.addBatch(r):this._undoCommand._createdBatches.has(r)||(this._undoCommand.addBatch(r),this._redoCommand.clearStack()),this._batchRegistry.add(r))},{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")}}n(60);class vl extends ua{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon"],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",()=>{this._updateXMLContent(),this._colorFillPaths()}),this.on("change:fillColor",()=>{this._colorFillPaths()})}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");for(e&&(this.viewBox=e),this.element.innerHTML="";t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach(t=>{t.style.fill=this.fillColor})}}n(62);class yl extends ua{constructor(t){super(t),this.set("text",""),this.set("position","s");const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip",e.to("position",t=>"ck-tooltip_"+t),e.if("text","ck-hidden",t=>!t.trim())]},children:[{tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:e.to("text")}]}]})}}n(64);class bl extends ua{constructor(t){super(t);const e=this.bindTemplate,n=ge();this.set("class"),this.set("labelStyle"),this.set("icon"),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("keystroke"),this.set("label"),this.set("tabindex",-1),this.set("tooltip"),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(n),this.iconView=new vl,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this)),this.setTemplate({tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",t=>!t),e.if("isVisible","ck-hidden",t=>!t),e.to("isOn",t=>t?"ck-on":"ck-off"),e.if("withText","ck-button_with-text")],type:e.to("type",t=>t||"button"),tabindex:e.to("tabindex"),"aria-labelledby":`ck-editor__aria-label_${n}`,"aria-disabled":e.if("isEnabled",!0,t=>!t),"aria-pressed":e.if("isOn",!0)},children:this.children,on:{mousedown:e.to(t=>{t.preventDefault()}),click:e.to(t=>{this.isEnabled?this.fire("execute"):t.preventDefault()})}})}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.tooltipView),this.children.add(this.labelView)}focus(){this.element.focus()}_createTooltipView(){const t=new yl;return t.bind("text").to(this,"_tooltipString"),t.bind("position").to(this,"tooltipPosition"),t}_createLabelView(t){const e=new ua;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:this.bindTemplate.to("labelStyle"),id:`ck-editor__aria-label_${t}`},children:[{text:this.bindTemplate.to("label")}]}),e}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=function(t){return Cn.isMac?Tn(t).map(t=>Sn[t.toLowerCase()]||t).reduce((t,e)=>t.slice(-1)in An?t+e:t+"+"+e):t}(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var wl=n(21),_l=n.n(wl),kl=n(22),xl=n.n(kl);class Cl extends Ca{init(){const t=this.editor.t;this._addButton("undo",t("be"),"CTRL+Z",_l.a),this._addButton("redo",t("bf"),"CTRL+Y",xl.a)}_addButton(t,e,n,r){const i=this.editor;i.ui.componentFactory.add(t,o=>{const s=i.commands.get(t),a=new bl(o);return a.set({label:e,icon:r,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",()=>i.execute(t)),a})}}class Al extends Ca{static get requires(){return[ml,Cl]}static get pluginName(){return"Undo"}}class Sl extends Ca{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new gn({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new he.b("pendingactions-add-invalid-message: The message must be a string.");const e=Object.create(Qe);return e.set("message",t),this._actions.add(e),this.hasAny=!0,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 El{constructor(){const t=new window.FileReader;this._reader=t,this.set("loaded",0),t.onprogress=(t=>{this.loaded=t.loaded})}get error(){return this._reader.error}read(t){const e=this._reader;return this.total=t.size,new Promise((n,r)=>{e.onload=(()=>{n(e.result)}),e.onerror=(()=>{r("error")}),e.onabort=(()=>{r("aborted")}),this._reader.readAsDataURL(t)})}abort(){this._reader.abort()}}Se(El,Qe);class Ol extends Ca{static get pluginName(){return"FileRepository"}static get requires(){return[Sl]}init(){this.loaders=new gn,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)return Xr.a.error("filerepository-no-upload-adapter: Upload adapter is not defined."),null;const e=new Pl(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then(t=>{this._loadersMap.set(t,e)}),e.file.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)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t}),e}destroyLoader(t){const e=t instanceof Pl?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach((t,n)=>{t===e&&this._loadersMap.delete(n)})}_updatePendingAction(){const t=this.editor.plugins.get(Sl);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("at")} ${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}}Se(Ol,Qe);class Pl{constructor(t,e){this.id=ge(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new El,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(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then(t=>this._filePromiseWrapper?t:null):Promise.resolve(null)}read(){if("idle"!=this.status)throw new he.b("filerepository-read-wrong-status: You cannot call read if the status is different than idle.");return this.status="reading",this._filePromiseWrapper.promise.then(t=>this._reader.read(t)).then(t=>(this.status="idle",t)).catch(t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t})}upload(){if("idle"!=this.status)throw new he.b("filerepository-upload-wrong-status: You cannot call upload if the status is different than idle.");return this.status="uploading",this._filePromiseWrapper.promise.then(()=>this._adapter.upload()).then(t=>(this.uploadResponse=t,this.status="idle",t)).catch(t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t})}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():this._filePromiseWrapper.rejecter("aborted"),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.data=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise((n,r)=>{e.resolver=n,e.rejecter=r,e.isFulfilled=!1,t.then(t=>{e.isFulfilled=!0,n(t)}).catch(t=>{e.isFulfilled=!0,r(t)})}),e}}Se(Pl,Qe);const Tl="ckCsrfToken",Nl=40,Il="abcdefghijklmnopqrstuvwxyz0123456789";class Ml extends Ca{static get requires(){return[Ol]}static get pluginName(){return"CKFinderUploadAdapter"}init(){const t=this.editor.config.get("ckfinder.uploadUrl");t&&(this.editor.plugins.get(Ol).createUploadAdapter=(e=>new Dl(e,t,this.editor.t)))}}class Dl{constructor(t,e,n){this.loader=t,this.url=e,this.t=n}upload(){return this.loader.file.then(t=>new Promise((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.url,!0),t.responseType="json"}_initListeners(t,e,n){const r=this.xhr,i=this.loader,o=(0,this.t)("a")+` ${n.name}.`;r.addEventListener("error",()=>e(o)),r.addEventListener("abort",()=>e()),r.addEventListener("load",()=>{const n=r.response;if(!n||!n.uploaded)return e(n&&n.error&&n.error.message?n.error.message:o);t({default:n.url})}),r.upload&&r.upload.addEventListener("progress",t=>{t.lengthComputable&&(i.uploadTotal=t.total,i.uploaded=t.loaded)})}_sendRequest(t){const e=new FormData;e.append("upload",t),e.append("ckCsrfToken",function(){let t=function(t){t=t.toLowerCase();const e=document.cookie.split(";");for(const n of e){const e=n.split("=");if(decodeURIComponent(e[0].trim().toLowerCase())===t)return decodeURIComponent(e[1])}return null}(Tl);return t&&t.length==Nl||(t=function(t){let e="";const n=new Uint8Array(Nl);window.crypto.getRandomValues(n);for(let r=0;r.5?t.toUpperCase():t}return e}(),e=t,document.cookie=encodeURIComponent(Tl)+"="+encodeURIComponent(e)+";path=/"),t;var e}()),this.xhr.send(e)}}class jl{constructor(t,e,n){let r,i=null;"function"==typeof n?r=n:(i=t.commands.get(n),r=(()=>{t.execute(n)})),t.model.document.on("change",(n,o)=>{if(i&&!i.isEnabled)return;if("transparent"==o.type)return;const s=Array.from(t.model.document.differ.getChanges()),a=s[0];if(1!=s.length||"insert"!==a.type||"$text"!=a.name||1!=a.length)return;const l=a.position.textNode||a.position.nodeAfter;if(!l.parent.is("paragraph"))return;const u=e.exec(l.data);u&&t.model.enqueueChange(t=>{const e=t.createPositionAt(l.parent,0),n=t.createPositionAt(l.parent,u[0].length),i=new Vi(e,n);!1!==r({match:u})&&t.remove(i),i.detach()})})}}class Ll{constructor(t,e,n){let r,i,o,s;e instanceof RegExp?r=e:o=e,"string"==typeof n?i=n:s=n,o=o||(t=>{let e;const n=[],i=[];for(;null!==(e=r.exec(t))&&!(e&&e.length<4);){let{index:t,1:r,2:o,3:s}=e;const a=[t+=e[0].length-(r+o+s).length,t+r.length],l=[t+r.length+o.length,t+r.length+o.length+s.length];n.push(a),n.push(l),i.push([t+r.length,t+r.length+o.length])}return{remove:n,format:i}}),s=s||((e,n)=>{const r=t.model.schema.getValidRanges(n,i);for(const t of r)e.setAttribute(i,!0,t);e.removeSelectionAttribute(i)}),t.model.document.on("change",(e,n)=>{if("transparent"==n.type)return;const r=t.model.document.selection;if(!r.isCollapsed)return;const i=Array.from(t.model.document.differ.getChanges()),a=i[0];if(1!=i.length||"insert"!==a.type||"$text"!=a.name||1!=a.length)return;const l=r.focus.parent,u=function(t){return Array.from(l.getChildren()).reduce((t,e)=>t+e.data,"")}().slice(0,r.focus.offset),c=o(u),d=Rl(l,c.format,t.model),h=Rl(l,c.remove,t.model);d.length&&h.length&&t.model.enqueueChange(t=>{if(!1!==s(t,d))for(const e of h.reverse())t.remove(e)})})}}function Rl(t,e,n){return e.filter(t=>void 0!==t[0]&&void 0!==t[1]).map(e=>n.createRange(n.createPositionAt(t,e[0]),n.createPositionAt(t,e[1])))}function Fl(t,e){return(n,r)=>{if(!t.commands.get(e).isEnabled)return!1;const i=t.model.schema.getValidRanges(r,e);for(const t of i)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class Bl extends Pa{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,r=void 0===t.forceValue?!this.value:t.forceValue;e.change(t=>{if(n.isCollapsed)r?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)r?t.setAttribute(this.attributeKey,r,e):t.removeAttribute(this.attributeKey,e)}})}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const r of n.getRanges())for(const t of r.getItems())if(e.checkAttribute(t,this.attributeKey))return t.hasAttribute(this.attributeKey);return!1}}const Vl="bold";class ql extends Ca{init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Vl}),t.model.schema.setAttributeProperties(Vl,{isFormatting:!0}),t.conversion.attributeToElement({model:Vl,view:"strong",upcastAlso:["b",{styles:{"font-weight":"bold"}}]}),t.commands.add(Vl,new Bl(t,Vl)),t.keystrokes.set("CTRL+B",Vl)}}var zl=n(23),Ul=n.n(zl);const Hl="bold";class Wl extends Ca{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Hl,n=>{const r=t.commands.get(Hl),i=new bl(n);return i.set({label:e("b"),icon:Ul.a,keystroke:"CTRL+B",tooltip:!0}),i.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(i,"execute",()=>t.execute(Hl)),i})}}const Gl="italic";class Yl extends Ca{init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Gl}),t.model.schema.setAttributeProperties(Gl,{isFormatting:!0}),t.conversion.attributeToElement({model:Gl,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Gl,new Bl(t,Gl)),t.keystrokes.set("CTRL+I",Gl)}}var Kl=n(24),$l=n.n(Kl);const Zl="italic";class Ql extends Ca{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Zl,n=>{const r=t.commands.get(Zl),i=new bl(n);return i.set({label:e("g"),icon:$l.a,keystroke:"CTRL+I",tooltip:!0}),i.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(i,"execute",()=>t.execute(Zl)),i})}}function Jl(t){const e=t.next();return e.done?null:e.value}class Xl extends Pa{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,r=Array.from(e.document.selection.getTopMostBlocks()),i=void 0===t.forceValue?!this.value:t.forceValue;e.change(t=>{if(i){const e=r.filter(t=>tu(t)||nu(n,t));this._applyQuote(t,e)}else this._removeQuote(t,r.filter(tu))})}_getValue(){const t=Jl(this.editor.model.document.selection.getTopMostBlocks());return!(!t||!tu(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.schema,e=Jl(this.editor.model.document.selection.getSelectedBlocks());return!!e&&nu(t,e)}_removeQuote(t,e){eu(t,e).reverse().forEach(e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)})}_applyQuote(t,e){const n=[];eu(t,e).reverse().forEach(e=>{let r=tu(e.start);r||(r=t.createElement("blockQuote"),t.wrap(e,r)),n.push(r)}),n.reverse().reduce((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n)}}function tu(t){return"blockQuote"==t.parent.name?t.parent:null}function eu(t,e){let n,r=0;const i=[];for(;r{if(t.endsWith("blockQuote")&&"blockQuote"==e.name)return!1}),t.conversion.elementToElement({model:"blockQuote",view:"blockquote"}),t.model.document.registerPostFixer(n=>{const r=t.model.document.differ.getChanges();for(const t of r)if("insert"==t.type){const r=t.position.nodeAfter;if(!r)continue;if(r.is("blockQuote")&&r.isEmpty)return n.remove(r),!0;if(r.is("blockQuote")&&!e.checkChild(t.position,r))return n.unwrap(r),!0;if(r.is("element")){const t=n.createRangeIn(r);for(const r of t.getItems())if(r.is("blockQuote")&&!e.checkChild(n.createPositionBefore(r),r))return n.unwrap(r),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1})}afterInit(){const t=this.editor.commands.get("blockQuote");this.listenTo(this.editor.editing.view.document,"enter",(e,n)=>{const r=this.editor.model.document,i=r.selection.getLastPosition().parent;r.selection.isCollapsed&&i.isEmpty&&t.value&&(this.editor.execute("blockQuote"),this.editor.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())})}}var iu=n(25),ou=n.n(iu);n(66);class su extends Ca{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",n=>{const r=t.commands.get("blockQuote"),i=new bl(n);return i.set({label:e("c"),icon:ou.a,tooltip:!0}),i.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(i,"execute",()=>t.execute("blockQuote")),i})}}var au=n(26),lu=n.n(au);class uu extends Ca{static get pluginName(){return"CKFinderUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("ckfinder",n=>{const r=t.commands.get("ckfinder"),i=new bl(n);return i.set({label:e("d"),icon:lu.a,tooltip:!0}),i.bind("isEnabled").to(r),i.on("execute",()=>{t.execute("ckfinder"),t.editing.view.focus()}),i})}}class cu extends Ca{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){this.fire(`show:${t.type}`+(t.namespace?`:${t.namespace}`:""),{message:t.message,type:t.type,title:t.title||""})}}class du extends Pa{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("imageUpload"),e=this.editor.commands.get("link");this.isEnabled=t&&e&&(t.isEnabled||e.isEnabled)}execute(){const t=this.editor,e=this.editor.config.get("ckfinder.openerMethod")||"modal";if("popup"!=e&&"modal"!=e)throw new he.b('ckfinder-unknown-openerMethod: The openerMethod config option must by "popup" or "modal".');const n=this.editor.config.get("ckfinder.options")||{};n.chooseFiles=!0;const r=n.onInit;n.language||(n.language=t.locale.language),n.onInit=(e=>{r&&r(),e.on("files:choose",n=>{const r=n.data.files.toArray(),i=r.filter(t=>!t.isImage()),o=r.filter(t=>t.isImage());for(const e of i)t.execute("link",e.getUrl());const s=[];for(const t of o){const n=t.getUrl();s.push(n||e.request("file:getProxyUrl",{file:t}))}s.length&&hu(t,s)}),e.on("file:choose:resizedImage",e=>{const n=e.data.resizedUrl;if(n)hu(t,[n]);else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("ap"),{title:n("aq"),namespace:"ckfinder"})}})}),window.CKFinder[e](n)}}function hu(t,e){if(t.commands.get("imageUpload").isEnabled)t.execute("imageInsert",{source:e});else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("ar"),{title:n("as"),namespace:"ckfinder"})}}class fu extends Ca{static get pluginName(){return"CKFinderEditing"}static get requires(){return[cu]}init(){const t=this.editor;t.commands.add("ckfinder",new du(t))}}const pu=/^data:(\S*?);base64,/;class gu{constructor(t,e,n){if(!t)throw new Error("File must be provided");if(!e)throw new Error("Token must be provided");if(!n)throw new Error("Api address must be provided");this.file=function(t){if("string"!=typeof t)return!1;const e=t.match(pu);return!(!e||!e.length)}(t)?function(t,e=512){try{const n=t.match(pu)[1],r=atob(t.replace(pu,"")),i=[];for(let t=0;tt(n)),this}onError(t){return this.once("error",(e,n)=>t(n)),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const t=new XMLHttpRequest;t.open("POST",this._apiAddress),t.setRequestHeader("Authorization",this._token.value),t.responseType="json",this.xhr=t}_attachXHRListeners(){const t=this,e=this.xhr;function n(e){return()=>t.fire("error",e)}e.addEventListener("error",n("Network Error")),e.addEventListener("abort",n("Abort")),e.upload&&e.upload.addEventListener("progress",t=>{t.lengthComputable&&this.fire("progress",{total:t.total,uploaded:t.loaded})}),e.addEventListener("load",()=>{const t=e.status,n=e.response;if(t<200||t>299)return this.fire("error",n.message||n.error)})}_sendRequest(){const t=new FormData,e=this.xhr;return t.append("file",this.file),new Promise((n,r)=>{e.addEventListener("load",()=>{const t=e.status,i=e.response;return t<200||t>299?r(i.message?new Error(i.message):i.error):n(i)}),e.addEventListener("error",()=>r(new Error("Network Error"))),e.addEventListener("abort",()=>r(new Error("Abort"))),e.send(t)})}}Se(gu,be);var mu=gu;const vu={refreshInterval:36e5,autoRefresh:!0};class yu{constructor(t,e=vu){if(!t)throw new Error("A `tokenUrl` must be provided as the first constructor argument.");this.set("value",e.initValue),this._refresh="function"==typeof t?t:()=>(function(t){return new Promise((e,n)=>{const r=new XMLHttpRequest;r.open("GET",t),r.addEventListener("load",()=>{const t=r.status,i=r.response;return t<200||t>299?n(new Error("Cannot download new token!")):e(i)}),r.addEventListener("error",()=>n(new Error("Network Error"))),r.addEventListener("abort",()=>n(new Error("Abort"))),r.send()})})(t),this._options=Object.assign({},vu,e)}init(){return new Promise((t,e)=>{this._options.autoRefresh&&this._startRefreshing(),this.value?t(this):this._refreshToken().then(t).catch(e)})}_refreshToken(){return this._refresh().then(t=>this.set("value",t)).then(()=>this)}destroy(){this._stopRefreshing()}_startRefreshing(){this._refreshInterval=setInterval(()=>this._refreshToken(),this._options.refreshInterval)}_stopRefreshing(){clearInterval(this._refreshInterval)}static create(t,e=vu){return new yu(t,e).init()}}Se(yu,Qe);class bu extends Ca{static get pluginName(){return"CloudServices"}init(){const t=this.editor.config.get("cloudServices")||{};for(const e in t)this[e]=t[e];if(this.tokenUrl)return this.token=new bu.Token(this.tokenUrl),this.token.init();this.token=null}}bu.Token=yu;class wu extends Ca{static get requires(){return[Ol,bu]}init(){const t=this.editor,e=t.plugins.get(bu),n=e.token;n&&(this._uploadGateway=new wu._UploadGateway(n,e.uploadUrl),t.plugins.get(Ol).createUploadAdapter=(t=>new _u(this._uploadGateway,t)))}}class _u{constructor(t,e){this.uploadGateway=t,this.loader=e}upload(){return this.loader.file.then(t=>(this.fileUploader=this.uploadGateway.upload(t),this.fileUploader.on("progress",(t,e)=>{this.loader.uploadTotal=e.total,this.loader.uploaded=e.uploaded}),this.fileUploader.send()))}abort(){this.fileUploader.abort()}}wu._UploadGateway=class{constructor(t,e){if(!t)throw new Error("Token must be provided");if(!e)throw new Error("Api address must be provided");this._token=t,this._apiAddress=e}upload(t){return new mu(t,this._token,this._apiAddress)}};class ku extends _r{constructor(t){super(t),this._observedElements=new Set}observe(t,e){this.document.getRoot(e).on("change:children",(e,n)=>{this.view.once("render",()=>this._updateObservedElements(t,n))})}_updateObservedElements(t,e){if(!e.is("element")||e.is("attributeElement"))return;const n=this.view.domConverter.mapViewToDom(e);if(n){for(const t of n.querySelectorAll("img"))this._observedElements.has(t)||(this.listenTo(t,"load",(t,e)=>this._fireEvents(e)),this._observedElements.add(t));for(const e of this._observedElements)t.contains(e)||(this.stopListening(e),this._observedElements.delete(e))}}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}destroy(){this._observedElements.clear(),super.destroy()}}function xu(t){return n=>{n.on(`attribute:${t}:image`,e)};function e(t,e,n){if(!n.consumable.consume(e.item,t.name))return;const r=n.writer,i=n.mapper.toViewElement(e.item).getChild(0);null!==e.attributeNewValue?r.setAttribute(e.attributeKey,e.attributeNewValue,i):r.removeAttribute(e.attributeKey,i)}}class Cu{constructor(){this._stack=[]}add(t,e){const n=this._stack,r=n[0];this._insertDescriptor(t);const i=n[0];r===i||Au(r,i)||this.fire("change:top",{oldDescriptor:r,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,r=n[0];this._removeDescriptor(t);const i=n[0];r===i||Au(r,i)||this.fire("change:top",{oldDescriptor:r,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex(e=>e.id===t.id);if(Au(t,e[n]))return;n>-1&&e.splice(n,1);let r=0;for(;e[r]&&Su(e[r],t);)r++;e.splice(r,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex(e=>e.id===t);n>-1&&e.splice(n,1)}}function Au(t,e){return t&&e&&t.priority==e.priority&&Eu(t.classes)==Eu(e.classes)}function Su(t,e){return t.priority>e.priority||!(t.priorityEu(e.classes)}function Eu(t){return Array.isArray(t)?t.sort().join(","):t}Se(Cu,be);var Ou=n(27),Pu=n.n(Ou);const Tu="ck-widget",Nu="ck-widget_selected";function Iu(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function Mu(t,e,n={}){return Cn.isEdge||e.setAttribute("contenteditable","false",t),e.addClass(Tu,t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=Ru,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandler&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handler"},function(t){const e=this.toDomElement(t),n=new vl;return n.set("content",Pu.a),n.render(),e.appendChild(n.element),e});e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handler"],t)}(t,e),function(t,e,n,r){const i=new Cu;i.on("change:top",(e,i)=>{i.oldDescriptor&&r(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)}),e.setCustomProperty("addHighlight",(t,e,n)=>i.add(e,n),t),e.setCustomProperty("removeHighlight",(t,e,n)=>i.remove(e,n),t)}(t,e,(t,e,n)=>n.addClass(r(e.classes),t),(t,e,n)=>n.removeClass(r(e.classes),t)),t;function r(t){return Array.isArray(t)?t:[t]}}function Du(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function ju(t,e){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),Cn.isEdge||(e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",(n,r,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",(n,r,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)}),t}function Lu(t,e){const n=t.getSelectedElement();if(n&&e.schema.isBlock(n))return e.createPositionAfter(n);const r=t.getSelectedBlocks().next().value;if(r){if(r.isEmpty)return e.createPositionAt(r,0);const n=e.createPositionAfter(r);return t.focus.isTouching(n)?n:e.createPositionBefore(r)}return t.focus}function Ru(){return null}function Fu(t){const e=t.getSelectedElement();return e&&function(t){return!!t.getCustomProperty("image")&&Iu(t)}(e)?e:null}function Bu(t){return!!t&&t.is("image")}function Vu(t,e,n={}){const r=t.createElement("image",n),i=Lu(e.document.selection,e);e.insertContent(r,i),r.parent&&t.setSelection(r,"on")}function qu(t){const e=t.schema,n=t.document.selection;return function(t,e,n){const r=function(t,e){const n=Lu(t,e).parent;return n.isEmpty&&!n.is("$root")?n.parent:n}(t,n);return e.checkChild(r,"image")}(n,e,t)&&!function(t,e){const n=t.getSelectedElement();return n&&e.isObject(n)}(n,e)&&[...n.focus.getAncestors()].every(t=>!t.is("image"))}class zu extends Pa{refresh(){this.isEnabled=qu(this.editor.model)}execute(t){const e=this.editor.model;e.change(n=>{const r=Array.isArray(t.source)?t.source:[t.source];for(const t of r)Vu(n,e,{src:t})})}}class Uu extends Ca{init(){const t=this.editor,e=t.model.schema,n=t.t,r=t.conversion;t.editing.view.addObserver(ku),e.register("image",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["alt","src","srcset"]}),r.for("dataDowncast").elementToElement({model:"image",view:(t,e)=>Hu(e)}),r.for("editingDowncast").elementToElement({model:"image",view:(t,e)=>(function(t,e,n){return e.setCustomProperty("image",!0,t),Mu(t,e,{label:function(){const e=t.getChild(0).getAttribute("alt");return e?`${e} ${n}`:n}})})(Hu(e),e,n("h"))}),r.for("downcast").add(xu("src")).add(xu("alt")).add(function(){return e=>{e.on("attribute:srcset:image",t)};function t(t,e,n){if(!n.consumable.consume(e.item,t.name))return;const r=n.writer,i=n.mapper.toViewElement(e.item).getChild(0);if(null===e.attributeNewValue){const t=e.attributeOldValue;t.data&&(r.removeAttribute("srcset",i),r.removeAttribute("sizes",i),t.width&&r.removeAttribute("width",i))}else{const t=e.attributeNewValue;t.data&&(r.setAttribute("srcset",t.data,i),r.setAttribute("sizes","100vw",i),t.width&&r.setAttribute("width",t.width,i))}}}()),r.for("upcast").elementToElement({view:{name:"img",attributes:{src:!0}},model:(t,e)=>e.createElement("image",{src:t.getAttribute("src")})}).attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}}).add(function(){return e=>{e.on("element:figure",t)};function t(t,e,n){if(!n.consumable.test(e.viewItem,{name:!0,classes:"image"}))return;const r=Array.from(e.viewItem.getChildren()).find(t=>t.is("img"));if(!r||!r.hasAttribute("src")||!n.consumable.test(r,{name:!0}))return;const i=n.convertItem(r,e.modelCursor),o=Jl(i.modelRange.getItems());o&&(n.convertChildren(e.viewItem,n.writer.createPositionAt(o,0)),e.modelRange=i.modelRange,e.modelCursor=i.modelCursor)}}()),t.commands.add("imageInsert",new zu(t))}}function Hu(t){const e=t.createEmptyElement("img"),n=t.createContainerElement("figure",{class:"image"});return t.insert(t.createPositionAt(n,0),e),n}class Wu extends Vr{constructor(t){super(t),this.domEventType="mousedown"}onDomEvent(t){this.fire(t.type,t)}}n(68);const Gu=Pn("Ctrl+A");class Yu extends Ca{static get pluginName(){return"Widget"}init(){const t=this.editor.editing.view,e=t.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",(t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const r=n.writer,i=r.document.selection,o=i.getSelectedElement();let s=null;for(const a of i.getRanges())for(const t of a){const e=t.item;Iu(e)&&!Ku(e,s)&&(r.addClass(Nu,e),this._previouslySelected.add(e),s=e,e==o&&r.setSelection(i.getRanges(),{fake:!0,label:Du(o)}))}},{priority:"low"}),t.addObserver(Wu),this.listenTo(e,"mousedown",(...t)=>this._onMousedown(...t)),this.listenTo(e,"keydown",(...t)=>this._onKeydown(...t),{priority:"high"}),this.listenTo(e,"delete",(t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())},{priority:"high"})}_onMousedown(t,e){const n=this.editor,r=n.editing.view,i=r.document;let o=e.target;if(function(t){for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Iu(t))return!1;t=t.parent}return!1}(o)){if(Cn.isSafari&&e.domEvent.detail>=3){const t=n.editing.mapper.toModelElement(o);this.editor.model.change(n=>{e.preventDefault(),n.setSelection(t,"in")})}return}if(!Iu(o)&&!(o=o.findAncestor(Iu)))return;e.preventDefault(),i.isFocused||r.focus();const s=n.editing.mapper.toModelElement(o);this._setSelectionOverElement(s)}_onKeydown(t,e){const n=e.keyCode,r=n==En.arrowdown||n==En.arrowright;let i=!1;n!=En.arrowright&&n!=En.arrowleft&&n!=En.arrowup&&n!=En.arrowdown?On(e)==Gu?i=this._selectAllNestedEditableContent()||this._selectAllContent():n===En.enter&&(i=this._handleEnterKey(e.shiftKey)):i=this._handleArrowKeys(r),i&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change(t=>{let r=e.anchor.parent;for(;r.isEmpty;){const e=r;r=e.parent,t.remove(e)}this._setSelectionOverElement(n)}),!0):void 0}_handleArrowKeys(t){const e=this.editor.model,n=e.schema,r=e.document.selection,i=r.getSelectedElement();if(i&&n.isObject(i)){const i=t?r.getLastPosition():r.getFirstPosition(),o=n.getNearestSelectionRange(i,t?"forward":"backward");return o&&e.change(t=>{t.setSelection(o)}),!0}if(!r.isCollapsed)return;const o=this._getObjectElementNextToSelection(t);return o&&n.isObject(o)?(this._setSelectionOverElement(o),!0):void 0}_handleEnterKey(t){const e=this.editor.model,n=e.document.selection.getSelectedElement();if(function(t,e){return t&&e.isObject(t)&&!e.isInline(t)}(n,e.schema))return e.change(r=>{let i=r.createPositionAt(n,t?"before":"after");const o=r.createElement("paragraph");if(e.schema.isBlock(n.parent)){const t=e.schema.findAllowedParent(i,o);i=r.split(i,t).position}r.insert(o,i),r.setSelection(o,"in")}),!0}_selectAllNestedEditableContent(){const t=this.editor.model,e=t.document.selection,n=t.schema.getLimitElement(e);return e.getFirstRange().root!=n&&(t.change(t=>{t.setSelection(t.createRangeIn(n))}),!0)}_selectAllContent(){const t=this.editor.model,e=this.editor.editing,n=e.view.document.selection.getSelectedElement();if(n&&Iu(n)){const r=e.mapper.toModelElement(n.parent);return t.change(t=>{t.setSelection(t.createRangeIn(r))}),!0}return!1}_setSelectionOverElement(t){this.editor.model.change(e=>{e.setSelection(e.createRangeOn(t))})}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,r=e.createSelection(e.document.selection);e.modifySelection(r,{direction:t?"forward":"backward"});const i=t?r.focus.nodeBefore:r.focus.nodeAfter;return i&&n.isObject(i)?i:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(Nu,e);this._previouslySelected.clear()}}function Ku(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}class $u extends Pa{refresh(){const t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=Bu(t),this.value=!(!Bu(t)||!t.hasAttribute("alt"))&&t.getAttribute("alt")}execute(t){const e=this.editor.model,n=e.document.selection.getSelectedElement();e.change(e=>{e.setAttribute("alt",t.newValue,n)})}}class Zu extends Ca{init(){this.editor.commands.add("imageTextAlternative",new $u(this.editor))}}function Qu({emitter:t,activator:e,callback:n,contextElements:r}){t.listenTo(document,"mousedown",(t,{target:i})=>{if(e()){for(const t of r)if(t.contains(i))return;n()}})}n(70);class Ju extends ua{constructor(t,e){super(t);const n=`ck-input-${ge()}`,r=`ck-status-${ge()}`;this.set("label"),this.set("value"),this.set("isReadOnly",!1),this.set("errorText",null),this.set("infoText",null),this.labelView=this._createLabelView(n),this.inputView=this._createInputView(e,n,r),this.statusView=this._createStatusView(r),this.bind("_statusText").to(this,"errorText",this,"infoText",(t,e)=>t||e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-input",this.bindTemplate.if("isReadOnly","ck-disabled")]},children:[this.labelView,this.inputView,this.statusView]})}_createLabelView(t){const e=new da(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createInputView(t,e,n){const r=new t(this.locale,n);return r.id=e,r.ariaDescribedById=n,r.bind("value").to(this),r.bind("isReadOnly").to(this),r.bind("hasError").to(this,"errorText",t=>!!t),r.on("input",()=>{this.errorText=null}),r}_createStatusView(t){const e=new ua(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-input__status",n.if("errorText","ck-labeled-input__status_error"),n.if("_statusText","ck-hidden",t=>!t)],id:t},children:[{text:n.to("_statusText")}]}),e}select(){this.inputView.select()}focus(){this.inputView.focus()}}n(72);class Xu extends ua{constructor(t){super(t),this.set("value"),this.set("id"),this.set("placeholder"),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById");const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{type:"text",class:["ck","ck-input","ck-input-text",e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to("input")}})}render(){super.render();const t=t=>{this.element.value=t||0===t?t:""};t(this.value),this.on("change:value",(e,n,r)=>{t(r)})}select(){this.element.select()}focus(){this.element.focus()}}function tc({view:t}){t.listenTo(t.element,"submit",(e,n)=>{n.preventDefault(),t.fire("submit")},{useCapture:!0})}var ec=n(7),nc=n.n(ec),rc=n(8),ic=n.n(rc);n(74);class oc extends ua{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new js,this.keystrokes=new Ss,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("ay"),nc.a,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("az"),ic.a,"ck-button-cancel","cancel"),this._focusables=new Us,this._focusCycler=new ya({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),tc({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)})}_createButton(t,e,n,r){const i=new bl(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),r&&i.delegate("execute").to(this,r),i}_createLabeledInputView(){const t=this.locale.t,e=new Ju(this.locale,Xu);return e.label=t("bt"),e.inputView.placeholder=t("bt"),e}}function sc({element:t,target:e,positions:n,limiter:r,fitInViewport:i}){E(e)&&(e=e()),E(r)&&(r=r());const o=function(t){for(;t&&"html"!=t.tagName.toLowerCase();){if("static"!=dr.window.getComputedStyle(t).position)return t;t=t.parentElement}return null}(t.parentElement),s=new si(t),a=new si(e);let l,u;if(r||i){const t=r&&new si(r).getVisible(),e=i&&new si(dr.window);[u,l]=function(t,e,n,r,i){let o,s,a=0,l=0;const u=n.getArea();return t.some(t=>{const[c,d]=ac(t,e,n);let h,f;if(r)if(i){const t=r.getIntersection(i);h=t?t.getIntersectionArea(d):0}else h=r.getIntersectionArea(d);function p(){l=f,a=h,o=d,s=c}return i&&(f=i.getIntersectionArea(d)),i&&!r?f>l&&p():!i&&r?h>a&&p():f>l&&h>=a?p():f>=l&&h>a&&p(),h===u}),o?[s,o]:null}(n,a,s,t,e)||ac(n[0],a,s)}else[u,l]=ac(n[0],a,s);let{left:c,top:d}=lc(l);if(o){const t=lc(new si(o)),e=ii(o);c-=t.left,d-=t.top,c+=o.scrollLeft,d+=o.scrollTop,c-=e.left,d-=e.top}return{left:c,top:d,name:u}}function ac(t,e,n){const{left:r,top:i,name:o}=t(e,n);return[o,n.clone().moveTo(r,i)]}function lc({left:t,top:e}){const{scrollX:n,scrollY:r}=dr.window;return{left:t+n,top:e+r}}n(76);const uc=ga("px"),cc=dr.document.body;class dc extends ua{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class"),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",t=>`ck-balloon-panel_${t}`),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",uc),left:e.to("left",uc)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=dc.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthWest,e.northArrowSouthEast],limiter:cc,fitInViewport:!0},t),r=dc._getOptimalPosition(n),i=parseInt(r.left),o=parseInt(r.top);Object.assign(this,{top:o,left:i,position:r.name})}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=(()=>{this.isVisible?this._startPinning(t):this._stopPinning()}),this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=hc(t.target),n=t.limiter?hc(t.limiter):cc;this.listenTo(dr.document,"scroll",(r,i)=>{const o=i.target,s=e&&o.contains(e),a=n&&o.contains(n);!s&&!a&&e&&n||this.attachTo(t)},{useCapture:!0}),this.listenTo(dr.window,"resize",()=>{this.attachTo(t)})}_stopPinning(){this.stopListening(dr.document,"scroll"),this.stopListening(dr.window,"resize")}}function hc(t){return ue(t)?t:ri(t)?t.commonAncestorContainer:"function"==typeof t?hc(t()):null}function fc(t,e){return t.top-e.height-dc.arrowVerticalOffset}function pc(t){return t.bottom+dc.arrowVerticalOffset}dc.arrowHorizontalOffset=25,dc.arrowVerticalOffset=10,dc._getOptimalPosition=sc,dc.defaultPositions={northArrowSouth:(t,e)=>({top:fc(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s"}),northArrowSouthEast:(t,e)=>({top:fc(t,e),left:t.left+t.width/2-e.width+dc.arrowHorizontalOffset,name:"arrow_se"}),northArrowSouthWest:(t,e)=>({top:fc(t,e),left:t.left+t.width/2-dc.arrowHorizontalOffset,name:"arrow_sw"}),northWestArrowSouth:(t,e)=>({top:fc(t,e),left:t.left-e.width/2,name:"arrow_s"}),northWestArrowSouthWest:(t,e)=>({top:fc(t,e),left:t.left-dc.arrowHorizontalOffset,name:"arrow_sw"}),northWestArrowSouthEast:(t,e)=>({top:fc(t,e),left:t.left-e.width+dc.arrowHorizontalOffset,name:"arrow_se"}),northEastArrowSouth:(t,e)=>({top:fc(t,e),left:t.right-e.width/2,name:"arrow_s"}),northEastArrowSouthEast:(t,e)=>({top:fc(t,e),left:t.right-e.width+dc.arrowHorizontalOffset,name:"arrow_se"}),northEastArrowSouthWest:(t,e)=>({top:fc(t,e),left:t.right-dc.arrowHorizontalOffset,name:"arrow_sw"}),southArrowNorth:(t,e)=>({top:pc(t),left:t.left+t.width/2-e.width/2,name:"arrow_n"}),southArrowNorthEast:(t,e)=>({top:pc(t),left:t.left+t.width/2-e.width+dc.arrowHorizontalOffset,name:"arrow_ne"}),southArrowNorthWest:(t,e)=>({top:pc(t),left:t.left+t.width/2-dc.arrowHorizontalOffset,name:"arrow_nw"}),southWestArrowNorth:(t,e)=>({top:pc(t),left:t.left-e.width/2,name:"arrow_n"}),southWestArrowNorthWest:(t,e)=>({top:pc(t),left:t.left-dc.arrowHorizontalOffset,name:"arrow_nw"}),southWestArrowNorthEast:(t,e)=>({top:pc(t),left:t.left-e.width+dc.arrowHorizontalOffset,name:"arrow_ne"}),southEastArrowNorth:(t,e)=>({top:pc(t),left:t.right-e.width/2,name:"arrow_n"}),southEastArrowNorthEast:(t,e)=>({top:pc(t),left:t.right-e.width+dc.arrowHorizontalOffset,name:"arrow_ne"}),southEastArrowNorthWest:(t,e)=>({top:pc(t),left:t.right-dc.arrowHorizontalOffset,name:"arrow_nw"})};var gc=n(28),mc=n.n(gc),vc=n(29),yc=n.n(vc);n(78),n(80);const bc=ga("px");class wc extends Ca{static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=(()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null}),this.set("visibleView",null),this.view=new dc(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new he.b("contextualballoon-add-view-exist: Cannot add configuration of the same view twice.");const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new he.b("contextualballoon-remove-view-not-exist: Cannot remove configuration of not existing view.");const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new he.b("contextualballoon-showstack-stack-not-exist: Cannot show not existing stack.");this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find(e=>e[1]===t)[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new _c(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",(t,e)=>!e&&t>1),t.on("change:isNavigationVisible",()=>this.updatePosition(),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",(t,n)=>{if(n<2)return"";const r=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("bi",[r,n])}),t.buttonNextView.on("execute",()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()}),t.buttonPrevView.on("execute",()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()}),t}_createFakePanelsView(){const t=new kc(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",(t,e)=>!e&&t>=2?Math.min(t-1,2):0),t.listenTo(this.view,"change:top",()=>t.updatePosition()),t.listenTo(this.view,"change:left",()=>t.updatePosition()),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:r=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),r&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&!t.limiter&&(t=Object.assign({},t,{limiter:this.positionLimiter})),t}}class _c extends ua{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new js,this.buttonPrevView=this._createButtonView(e("bj"),mc.a),this.buttonNextView=this._createButtonView(e("bk"),yc.a),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",t=>t?"":"ck-hidden")]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new bl(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class kc extends ua{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",t=>t?"":"ck-hidden")],style:{top:n.to("top",bc),left:n.to("left",bc),width:n.to("width",bc),height:n.to("height",bc)}},children:this.content}),this.on("change:numberOfPanels",(t,e,n,r)=>{n>r?this._addPanels(n-r):this._removePanels(r-n),this.updatePosition()})}_addPanels(t){for(;t--;){const t=new ua;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:r}=new si(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:r})}}}var xc=n(30),Cc=n.n(xc);function Ac(t){const e=t.editing.view,n=dc.defaultPositions;return{target:e.domConverter.viewToDom(e.document.selection.getSelectedElement()),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast]}}class Sc extends Ca{static get requires(){return[wc]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",n=>{const r=t.commands.get("imageTextAlternative"),i=new bl(n);return i.set({label:e("bl"),icon:Cc.a,tooltip:!0}),i.bind("isEnabled").to(r,"isEnabled"),this.listenTo(i,"execute",()=>this._showForm()),i})}_createForm(){const t=this.editor,e=t.editing.view.document;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new oc(t.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.inputView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this._form.keystrokes.set("Esc",(t,e)=>{this._hideForm(!0),e()}),this.listenTo(t.ui,"update",()=>{Fu(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(Fu(t.editing.view.document.selection)){const n=Ac(t);e.updatePosition(n)}}(t):this._hideForm(!0)}),Qu({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._balloon.hasView(this._form)||this._balloon.add({view:this._form,position:Ac(t)}),n.value=n.inputView.element.value=e.value||"",this._form.labeledInput.select()}_hideForm(t){this._isVisible&&(this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView==this._form}}class Ec extends Ca{static get requires(){return[Zu,Sc]}static get pluginName(){return"ImageTextAlternative"}}n(82);class Oc extends Ca{static get requires(){return[Uu,Yu,Ec]}static get pluginName(){return"Image"}}class Pc extends ua{constructor(t){super(t),this.buttonView=new bl(t),this._fileInputView=new Tc(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",()=>{this._fileInputView.open()})}focus(){this.buttonView.focus()}}class Tc extends ua{constructor(t){super(t),this.set("acceptedType"),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to(()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""})}})}open(){this.element.click()}}var Nc=n(31),Ic=n.n(Nc);function Mc(t){return/^image\/(jpeg|png|gif|bmp)$/.test(t.type)}function Dc(t){return new Promise((e,n)=>{const r=t.getAttribute("src");fetch(r).then(t=>t.blob()).then(t=>{const i=function(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}(t,r),o=function(t,e,n){try{return new File([t],e,{type:n})}catch(t){return null}}(t,`image.${i.replace("image/","")}`,i);o?e(o):n()}).catch(n)})}class jc extends Ca{init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageUpload",n=>{const r=new Pc(n),i=t.commands.get("imageUpload");return r.set({acceptedType:"image/*",allowMultipleFiles:!0}),r.buttonView.set({label:e("i"),icon:Ic.a,tooltip:!0}),r.buttonView.bind("isEnabled").to(i),r.on("done",(e,n)=>{const r=Array.from(n).filter(Mc);r.length&&t.execute("imageUpload",{file:r})}),r})}}var Lc=n(32),Rc=n.n(Lc);n(84),n(86),n(88);class Fc extends Ca{constructor(t){super(t),this.placeholder="data:image/svg+xml;utf8,"+encodeURIComponent(Rc.a)}init(){this.editor.editing.downcastDispatcher.on("attribute:uploadStatus:image",(...t)=>this.uploadStatusChange(...t))}uploadStatusChange(t,e,n){const r=this.editor,i=e.item,o=i.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=r.plugins.get(Ol),a=o?e.attributeNewValue:null,l=this.placeholder,u=r.editing.mapper.toViewElement(i),c=n.writer;if("reading"==a)return Bc(u,c),void Vc(l,u,c);if("uploading"==a){const t=s.loaders.get(o);return Bc(u,c),void(t?(qc(u,c),function(t,e,n,r){const i=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),i),n.on("change:uploadedPercent",(t,e,n)=>{r.change(t=>{t.setStyle("width",n+"%",i)})})}(u,c,t,r.editing.view)):Vc(l,u,c))}"complete"==a&&s.loaders.get(o)&&!Cn.isEdge&&function(t,e,n){const r=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),r),setTimeout(()=>{n.change(t=>t.remove(t.createRangeOn(r)))},3e3)}(u,c,r.editing.view),Uc(u,c,"progressBar"),qc(u,c),c.removeClass("ck-appear",u)}}function Bc(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function Vc(t,e,n){e.hasClass("ck-image-upload-placeholder")||n.addClass("ck-image-upload-placeholder",e);const r=e.getChild(0);r.getAttribute("src")!==t&&n.setAttribute("src",t,r),zc(e,"placeholder")||n.insert(n.createPositionAfter(r),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(n))}function qc(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),Uc(t,e,"placeholder")}function zc(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function Uc(t,e,n){const r=zc(t,n);r&&e.remove(e.createRangeOn(r))}class Hc{createDocumentFragment(t){return new Mn(t)}createElement(t,e,n){return new Le(t,e,n)}createText(t){return new Te(t)}clone(t,e=!1){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;return e?this.removeChildren(e.getChildIndex(t),1,e):[]}replace(t,e){const n=t.parent;if(n){const r=n.getChildIndex(t);return this.removeChildren(r,1,n),this.insertChild(r,e,n),!0}return!1}rename(t,e){const n=new Le(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){w(t)&&void 0===n&&(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 un._createAt(t,e)}createPositionAfter(t){return un._createAfter(t)}createPositionBefore(t){return un._createBefore(t)}createRange(t,e){return new cn(t,e)}createRangeOn(t){return cn._createOn(t)}createRangeIn(t){return cn._createIn(t)}createSelection(t,e,n){return new fn(t,e,n)}}class Wc extends Pa{refresh(){this.isEnabled=qu(this.editor.model)}execute(t){const e=this.editor,n=e.model,r=e.plugins.get(Ol);n.change(e=>{const i=Array.isArray(t.file)?t.file:[t.file];for(const t of i)Gc(e,n,r,t)})}}function Gc(t,e,n,r){const i=n.createLoader(r);i&&Vu(t,e,{uploadId:i.id})}class Yc extends Ca{static get requires(){return[Ol,cu]}init(){const t=this.editor,e=t.model.document,n=t.model.schema,r=t.conversion,i=t.plugins.get(Ol);n.extend("image",{allowAttributes:["uploadId","uploadStatus"]}),t.commands.add("imageUpload",new Wc(t)),r.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",(e,n)=>{if(function(t){return Array.from(t.types).includes("text/html")&&""!==t.getData("text/html")}(n.dataTransfer))return;const r=Array.from(n.dataTransfer.files).filter(t=>!!t&&Mc(t)),i=n.targetRanges.map(e=>t.editing.mapper.toModelRange(e));t.model.change(n=>{n.setSelection(i),r.length&&(e.stop(),t.model.enqueueChange("default",()=>{t.execute("imageUpload",{file:r})}))})}),t.plugins.has("Clipboard")&&this.listenTo(t.plugins.get("Clipboard"),"inputTransformation",(e,n)=>{const r=Array.from(t.editing.view.createRangeIn(n.content)).filter(t=>(function(t){return!(!t.is("element","img")||!t.getAttribute("src"))&&(t.getAttribute("src").match(/^data:image\/\w+;base64,/g)||t.getAttribute("src").match(/^blob:/g))})(t.item)&&!t.item.getAttribute("uploadProcessed")).map(t=>({promise:Dc(t.item),imageElement:t.item}));if(!r.length)return;const o=new Hc;for(const t of r){o.setAttribute("uploadProcessed",!0,t.imageElement);const e=i.createLoader(t.promise);e&&(o.setAttribute("src","",t.imageElement),o.setAttribute("uploadId",e.id,t.imageElement))}}),t.editing.view.document.on("dragover",(t,e)=>{e.preventDefault()}),e.on("change",()=>{const t=e.differ.getChanges({includeChangesInGraveyard:!0});for(const e of t)if("insert"==e.type&&"image"==e.name){const t=e.position.nodeAfter,n="$graveyard"==e.position.root.rootName,r=t.getAttribute("uploadId");if(!r)continue;const o=i.loaders.get(r);if(!o)continue;n?o.abort():"idle"==o.status&&this._readAndUpload(o,t)}})}_readAndUpload(t,e){const n=this.editor,r=n.model,i=n.locale.t,o=n.plugins.get(Ol),s=n.plugins.get(cu);return r.enqueueChange("transparent",t=>{t.setAttribute("uploadStatus","reading",e)}),t.read().then(i=>{const o=n.editing.mapper.toViewElement(e).getChild(0),s=t.upload();return n.editing.view.change(t=>{t.setAttribute("src",i,o)}),r.enqueueChange("transparent",t=>{t.setAttribute("uploadStatus","uploading",e)}),s}).then(t=>{r.enqueueChange("transparent",n=>{n.setAttributes({uploadStatus:"complete",src:t.default},e),this._parseAndSetSrcsetAttributeOnImage(t,e,n)}),a()}).catch(n=>{if("error"!==t.status&&"aborted"!==t.status)throw n;"error"==t.status&&n&&s.showWarning(n,{title:i("ai"),namespace:"upload"}),a(),r.enqueueChange("transparent",t=>{t.remove(e)})});function a(){r.enqueueChange("transparent",t=>{t.removeAttribute("uploadId",e),t.removeAttribute("uploadStatus",e)}),o.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let r=0;const i=Object.keys(t).filter(t=>{const e=parseInt(t,10);if(!isNaN(e))return r=Math.max(r,e),!0}).map(e=>`${t[e]} ${e}w`).join(", ");""!=i&&n.setAttribute("srcset",{data:i,width:r},e)}}class Kc extends Ca{static get pluginName(){return"ImageUpload"}static get requires(){return[Yc,jc,Fc]}}class $c extends Pa{refresh(){const t=this.editor.model,e=Jl(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("paragraph"),this.isEnabled=!!e&&Zc(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change(r=>{const i=(t.selection||n.selection).getSelectedBlocks();for(const t of i)!t.is("paragraph")&&Zc(t,e.schema)&&r.rename(t,"paragraph")})}}function Zc(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class Qc extends Ca{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model,n=t.data;t.commands.add("paragraph",new $c(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,e)=>Qc.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,converterPriority:"low"}),n.upcastDispatcher.on("element",(t,e,n)=>{n.consumable.test(e.viewItem,{name:e.viewItem.name})&&Xc(e.viewItem,e.modelCursor,n.schema)&&Object.assign(e,Jc(e.viewItem,e.modelCursor,n))},{priority:"low"}),n.upcastDispatcher.on("text",(t,e,n)=>{e.modelRange||Xc(e.viewItem,e.modelCursor,n.schema)&&Object.assign(e,Jc(e.viewItem,e.modelCursor,n))},{priority:"lowest"}),e.document.registerPostFixer(t=>this._autoparagraphEmptyRoots(t)),t.data.on("ready",()=>{e.enqueueChange("transparent",t=>this._autoparagraphEmptyRoots(t))},{priority:"lowest"})}_autoparagraphEmptyRoots(t){const e=this.editor.model;for(const n of e.document.getRootNames()){const r=e.document.getRoot(n);if(r.isEmpty&&"$graveyard"!=r.rootName&&e.schema.checkChild(r,"paragraph"))return t.insertElement("paragraph",r),!0}}}function Jc(t,e,n){const r=n.writer.createElement("paragraph");return n.writer.insert(r,e),n.convertItem(t,n.writer.createPositionAt(r,0))}function Xc(t,e,n){const r=n.createContext(e);return!!n.checkChild(r,"paragraph")&&!!n.checkChild(r.push("paragraph"),t)}Qc.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td"]);class td extends Pa{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Jl(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some(e=>ed(t,e,this.editor.model.schema))}execute(t){const e=this.editor.model,n=e.document,r=t.value;e.change(t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter(t=>ed(t,r,e.schema));for(const e of i)e.is(r)||t.rename(e,r)})}}function ed(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const nd="paragraph";class rd extends Ca{constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[Qc]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const r of e)r.model!==nd&&(t.model.schema.register(r.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(r),n.push(r.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new td(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",(e,r)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some(t=>i.is(t.model))&&!i.is(nd)&&0===i.childCount&&r.writer.rename(i,nd)})}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:me.get("low")+1})}}class id{constructor(t,e){e&&Ge(this,e),t&&this.set(t)}}Se(id,Qe);class od extends ua{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",t=>`ck-dropdown__panel_${t}`),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to(t=>t.preventDefault())}})}focus(){this.children.length&&this.children.first.focus()}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}n(90);class sd extends ua{constructor(t,e,n){super(t);const r=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class"),this.set("panelPosition","auto"),this.focusTracker=new js,this.keystrokes=new Ss,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",r.to("class"),r.if("isEnabled","ck-disabled",t=>!t)]},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"]}})}render(){super.render(),this.listenTo(this.buttonView,"open",()=>{this.isOpen=!this.isOpen}),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",()=>{if(this.isOpen)if("auto"===this.panelPosition){const t=sd.defaultPanelPositions;this.panelView.position=sc({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:[t.southEast,t.southWest,t.northEast,t.northWest]}).name}else this.panelView.position=this.panelPosition}),this.keystrokes.listenTo(this.element),this.focusTracker.add(this.element);const t=(t,e)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,e())};this.keystrokes.set("arrowdown",(t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())}),this.keystrokes.set("arrowright",(t,e)=>{this.isOpen&&e()}),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}}sd.defaultPanelPositions={southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.bottom-e.height,left:t.left-e.width+t.width,name:"nw"})};var ad=n(33),ld=n.n(ad);class ud extends bl{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new vl;return t.content=ld.a,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}n(92);class cd extends ua{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new js,this.keystrokes=new Ss,this._focusCycler=new ya({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}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)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class dd extends ua{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item"]},children:this.children})}focus(){this.children.first.focus()}}class hd extends ua{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}n(94);class fd extends bl{constructor(t){super(t),this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new ua;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}function pd(t,e=ud){const n=new e(t),r=new od(t),i=new sd(t,n,r);return n.bind("isEnabled").to(i),n instanceof ud?n.bind("isOn").to(i,"isOpen"):n.arrowView.bind("isOn").to(i,"isOpen"),function(t){(function(t){t.on("render",()=>{Qu({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})})})(t),function(t){t.on("execute",e=>{e.source instanceof fd||(t.isOpen=!1)})}(t),function(t){t.keystrokes.set("arrowdown",(e,n)=>{t.isOpen&&(t.panelView.focus(),n())}),t.keystrokes.set("arrowup",(e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())})}(t)}(i),i}function gd(t,e){const n=t.locale,r=t.listView=new cd(n);r.items.bindTo(e).using(({type:t,model:e})=>{if("separator"===t)return new hd(n);if("button"===t||"switchbutton"===t){const r=new dd(n);let i;return(i="button"===t?new bl(n):new fd(n)).bind(...Object.keys(e)).to(e),i.delegate("execute").to(r),r.children.add(i),r}}),t.panelView.children.add(r),r.items.delegate("execute").to(t)}n(96),n(98),n(17);class md extends Ca{init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("bm"),"Heading 1":e("bn"),"Heading 2":e("bo"),"Heading 3":e("bp"),"Heading 4":e("bq"),"Heading 5":e("br"),"Heading 6":e("bs")};return t.config.get("heading.options").map(t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t})}(t),r=e("e"),i=e("f");t.ui.componentFactory.add("heading",e=>{const o={},s=new gn,a=t.commands.get("heading"),l=t.commands.get("paragraph"),u=[a];for(const t of n){const e={type:"button",model:new id({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(l,"value"),e.model.set("commandName","paragraph"),u.push(l)):(e.model.bind("isOn").to(a,"value",e=>e===t.model),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),o[t.model]=t.title}const c=pd(e);return gd(c,s),c.buttonView.set({isOn:!1,withText:!0,tooltip:i}),c.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),c.bind("isEnabled").toMany(u,"isEnabled",(...t)=>t.some(t=>t)),c.buttonView.bind("label").to(a,"value",l,"value",(t,e)=>{const n=t||e&&"paragraph";return o[n]?o[n]:r}),this.listenTo(c,"execute",e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()}),c})}}function vd(t){for(const e of t.getChildren())if(e&&e.is("caption"))return e;return null}function yd(t){const e=t.parent;return"figcaption"==t.name&&e&&"figure"==e.name&&e.hasClass("image")?{name:!0}:null}class bd extends Ca{init(){const t=this.editor,e=t.editing.view,n=t.data,r=t.editing,i=t.t;t.model.schema.register("caption",{allowIn:"image",allowContentOf:"$block",isLimit:!0}),t.model.document.registerPostFixer(t=>this._insertMissingModelCaptionElement(t)),t.conversion.for("upcast").elementToElement({view:yd,model:"caption"}),n.downcastDispatcher.on("insert:caption",wd(t=>t.createContainerElement("figcaption"),!1));const o=function(t,e){return n=>{const r=n.createEditableElement("figcaption");return n.setCustomProperty("imageCaption",!0,r),Fs({view:t,element:r,text:e}),ju(r,n)}}(e,i("aj"));r.downcastDispatcher.on("insert:caption",wd(o)),r.downcastDispatcher.on("insert",this._fixCaptionVisibility(t=>t.item),{priority:"high"}),r.downcastDispatcher.on("remove",this._fixCaptionVisibility(t=>t.position.parent),{priority:"high"}),e.document.registerPostFixer(t=>this._updateCaptionVisibility(t))}_updateCaptionVisibility(t){const e=this.editor.editing.mapper,n=this._lastSelectedCaption;let r;const i=this.editor.model.document.selection,o=i.getSelectedElement();if(o&&o.is("image")){const t=vd(o);r=e.toViewElement(t)}const s=_d(i.getFirstPosition().parent);if(s&&(r=e.toViewElement(s)),r)return n?n===r?xd(r,t):(kd(n,t),this._lastSelectedCaption=r,xd(r,t)):(this._lastSelectedCaption=r,xd(r,t));if(n){const e=kd(n,t);return this._lastSelectedCaption=null,e}return!1}_fixCaptionVisibility(t){return(e,n,r)=>{const i=_d(t(n)),o=r.writer;if(i){const t=this.editor.editing.mapper.toViewElement(i);t&&(i.childCount?o.removeClass("ck-hidden",t):o.addClass("ck-hidden",t))}}}_insertMissingModelCaptionElement(t){const e=this.editor.model,n=e.document.differ.getChanges(),r=[];for(const i of n)if("insert"==i.type&&"$text"!=i.name){const t=i.position.nodeAfter;if(t.is("image")&&!vd(t)&&r.push(t),!t.is("image")&&t.childCount)for(const n of e.createRangeIn(t).getItems())n.is("image")&&!vd(n)&&r.push(n)}for(const i of r)t.appendElement("caption",i);return!!r.length}}function wd(t,e=!0){return(n,r,i)=>{const o=r.item;if((o.childCount||e)&&Bu(o.parent)){if(!i.consumable.consume(r.item,"insert"))return;const e=i.mapper.toViewElement(r.range.start.parent),n=t(i.writer),s=i.writer;o.childCount||s.addClass("ck-hidden",n),function(t,e,n,r){const i=r.writer.createPositionAt(n,"end");r.writer.insert(i,t),r.mapper.bindElements(e,t)}(n,r.item,e,i)}}}function _d(t){const e=t.getAncestors({includeSelf:!0}).find(t=>"caption"==t.name);return e&&e.parent&&"image"==e.parent.name?e:null}function kd(t,e){return!t.childCount&&!t.hasClass("ck-hidden")&&(e.addClass("ck-hidden",t),!0)}function xd(t,e){return!!t.hasClass("ck-hidden")&&(e.removeClass("ck-hidden",t),!0)}n(101);class Cd extends Pa{constructor(t,e){super(t),this.defaultStyle=!1,this.styles=e.reduce((t,e)=>(t[e.name]=e,e.isDefault&&(this.defaultStyle=e.name),t),{})}refresh(){const t=this.editor.model.document.selection.getSelectedElement();if(this.isEnabled=Bu(t),t)if(t.hasAttribute("imageStyle")){const e=t.getAttribute("imageStyle");this.value=!!this.styles[e]&&e}else this.value=this.defaultStyle;else this.value=!1}execute(t){const e=t.value,n=this.editor.model,r=n.document.selection.getSelectedElement();n.change(t=>{this.styles[e].isDefault?t.removeAttribute("imageStyle",r):t.setAttribute("imageStyle",e,r)})}}function Ad(t,e){for(const n of e)if(n.name===t)return n}var Sd=n(13),Ed=n.n(Sd),Od=n(14),Pd=n.n(Od),Td=n(15),Nd=n.n(Td),Id=n(11),Md=n.n(Id);const Dd={full:{name:"full",title:"Full size image",icon:Ed.a,isDefault:!0},side:{name:"side",title:"Side image",icon:Md.a,className:"image-style-side"},alignLeft:{name:"alignLeft",title:"Left aligned image",icon:Pd.a,className:"image-style-align-left"},alignCenter:{name:"alignCenter",title:"Centered image",icon:Nd.a,className:"image-style-align-center"},alignRight:{name:"alignRight",title:"Right aligned image",icon:Md.a,className:"image-style-align-right"}},jd={full:Ed.a,left:Pd.a,right:Md.a,center:Nd.a};function Ld(t=[]){return t.map(Rd)}function Rd(t){if("string"==typeof t){const e=t;Dd[e]?t=Object.assign({},Dd[e]):(Xr.a.warn("image-style-not-found: There is no such image style of given name.",{name:e}),t={name:e})}else if(Dd[t.name]){const e=Dd[t.name],n=Object.assign({},t);for(const r in e)t.hasOwnProperty(r)||(n[r]=e[r]);t=n}return"string"==typeof t.icon&&jd[t.icon]&&(t.icon=jd[t.icon]),t}class Fd extends Ca{static get pluginName(){return"ImageStyleEditing"}init(){const t=this.editor,e=t.model.schema,n=t.data,r=t.editing;t.config.define("image.styles",["full","side"]);const i=Ld(t.config.get("image.styles"));e.extend("image",{allowAttributes:"imageStyle"});const o=function(t){return(e,n,r)=>{if(!r.consumable.consume(n.item,e.name))return;const i=Ad(n.attributeNewValue,t),o=Ad(n.attributeOldValue,t),s=r.mapper.toViewElement(n.item),a=r.writer;o&&a.removeClass(o.className,s),i&&a.addClass(i.className,s)}}(i);r.downcastDispatcher.on("attribute:imageStyle:image",o),n.downcastDispatcher.on("attribute:imageStyle:image",o),n.upcastDispatcher.on("element:figure",function(t){const e=i.filter(t=>!t.isDefault);return(t,n,r)=>{if(!n.modelRange)return;const i=n.viewItem,o=Jl(n.modelRange.getItems());if(r.schema.checkAttribute(o,"imageStyle"))for(const s of e)r.consumable.consume(i,{classes:s.className})&&r.writer.setAttribute("imageStyle",s.name,o)}}(),{priority:"low"}),t.commands.add("imageStyle",new Cd(t,i))}}n(103);class Bd extends Ca{static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Full size image":t("j"),"Side image":t("k"),"Left aligned image":t("l"),"Centered image":t("m"),"Right aligned image":t("n")}}init(){const t=function(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}(Ld(this.editor.config.get("image.styles")),this.localizedDefaultStylesTitles);for(const e of t)this._createButton(e)}_createButton(t){const e=this.editor;e.ui.componentFactory.add(`imageStyle:${t.name}`,n=>{const r=e.commands.get("imageStyle"),i=new bl(n);return i.set({label:t.title,icon:t.icon,tooltip:!0}),i.bind("isEnabled").to(r,"isEnabled"),i.bind("isOn").to(r,"value",e=>e===t.name),this.listenTo(i,"execute",()=>e.execute("imageStyle",{value:t.name})),i})}}class Vd extends Ca{static get requires(){return[wc]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",e=>{(function(t){const e=t.getSelectedElement();return!(!e||!Iu(e))})(t.editing.view.document.selection)&&e.stop()},{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.listenTo(t.ui,"update",()=>{this._updateToolbarsVisibility()}),this.listenTo(t.ui.focusTracker,"change:isFocused",()=>{this._updateToolbarsVisibility()},{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{items:e,getRelatedElement:n,balloonClassName:r="ck-toolbar-container"}){const i=this.editor,o=new _a;if(this._toolbarDefinitions.has(t))throw new he.b("widget-toolbar-duplicated: Toolbar with the given id was already added.",{toolbarId:t});o.fillFromConfig(e,i.ui.componentFactory),this._toolbarDefinitions.set(t,{view:o,getRelatedElement:n,balloonClassName:r})}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const r of this._toolbarDefinitions.values()){const i=r.getRelatedElement(this.editor.editing.view.document.selection);if(this.editor.ui.focusTracker.isFocused)if(i){const o=i.getAncestors().length;o>t&&(t=o,e=i,n=r)}else this._isToolbarInBalloon(r)&&this._hideToolbar(r);else this._isToolbarVisible(r)&&this._hideToolbar(r)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view)}_showToolbar(t,e){this._isToolbarVisible(t)?function(t,e){const n=t.plugins.get("ContextualBalloon"),r=qd(t,e);n.updatePosition(r)}(this.editor,e):this._isToolbarInBalloon(t)||this._balloon.add({view:t.view,position:qd(this.editor,e),balloonClassName:t.balloonClassName})}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function qd(t,e){const n=dc.defaultPositions;return{target:t.editing.view.domConverter.viewToDom(e),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast]}}function zd(t,e,n){return n.createRange(Ud(t,e,!0,n),Ud(t,e,!1,n))}function Ud(t,e,n,r){let i=t.textNode||(n?t.nodeBefore:t.nodeAfter),o=null;for(;i&&i.getAttribute("linkHref")==e;)o=i,i=n?i.previousSibling:i.nextSibling;return o?r.createPositionAt(o,n?"before":"after"):t}class Hd extends Pa{refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"linkHref")}execute(t){const e=this.editor.model,n=e.document.selection;e.change(r=>{if(n.isCollapsed){const i=n.getFirstPosition();if(n.hasAttribute("linkHref")){const i=zd(n.getFirstPosition(),n.getAttribute("linkHref"),e);r.setAttribute("linkHref",t,i),r.setSelection(i)}else if(""!==t){const o=wi(n.getAttributes());o.set("linkHref",t);const s=r.createText(t,o);e.insertContent(s,i),r.setSelection(r.createRangeOn(s))}}else{const i=e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of i)r.setAttribute("linkHref",t,e)}})}}class Wd extends Pa{refresh(){this.isEnabled=this.editor.model.document.selection.hasAttribute("linkHref")}execute(){const t=this.editor.model,e=t.document.selection;t.change(n=>{const r=e.isCollapsed?[zd(e.getFirstPosition(),e.getAttribute("linkHref"),t)]:e.getRanges();for(const t of r)n.removeAttribute("linkHref",t)})}}const Gd=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Yd=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;function Kd(t,e){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function $d(t){return function(t){return t.replace(Gd,"").match(Yd)}(t=String(t))?t:"#"}class Zd{constructor(t,e,n){this.model=t,this.attribute=n,this._modelSelection=t.document.selection,this._overrideUid=null,this._isNextGravityRestorationSkipped=!1,e.listenTo(this._modelSelection,"change:range",(t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&Qd(this._modelSelection.getFirstPosition(),n)||this._restoreGravity())})}handleForwardMovement(t,e){const n=this.attribute;if(!(this._isGravityOverridden||t.isAtStart&&this._hasSelectionAttribute))return th(t,n)&&this._hasSelectionAttribute?(this._preventCaretMovement(e),this._removeSelectionAttribute(),!0):Jd(t,n)?(this._preventCaretMovement(e),this._overrideGravity(),!0):Xd(t,n)&&this._hasSelectionAttribute?(this._preventCaretMovement(e),this._overrideGravity(),!0):void 0}handleBackwardMovement(t,e){const n=this.attribute;return this._isGravityOverridden?th(t,n)&&this._hasSelectionAttribute?(this._preventCaretMovement(e),this._restoreGravity(),this._removeSelectionAttribute(),!0):(this._preventCaretMovement(e),this._restoreGravity(),t.isAtStart&&this._removeSelectionAttribute(),!0):th(t,n)&&!this._hasSelectionAttribute?(this._preventCaretMovement(e),this._setSelectionAttributeFromTheNodeBefore(t),!0):t.isAtEnd&&Xd(t,n)?this._hasSelectionAttribute?void(eh(t,n)&&(this._skipNextAutomaticGravityRestoration(),this._overrideGravity())):(this._preventCaretMovement(e),this._setSelectionAttributeFromTheNodeBefore(t),!0):t.isAtStart?this._hasSelectionAttribute?(this._removeSelectionAttribute(),this._preventCaretMovement(e),!0):void 0:void(eh(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=!0}}function Qd(t,e){return Jd(t,e)||Xd(t,e)}function Jd(t,e){const{nodeBefore:n,nodeAfter:r}=t,i=!!n&&n.hasAttribute(e);return!!r&&r.hasAttribute(e)&&(!i||n.getAttribute(e)!==r.getAttribute(e))}function Xd(t,e){const{nodeBefore:n,nodeAfter:r}=t,i=!!n&&n.hasAttribute(e),o=!!r&&r.hasAttribute(e);return i&&(!o||n.getAttribute(e)!==r.getAttribute(e))}function th(t,e){const{nodeBefore:n,nodeAfter:r}=t,i=!!n&&n.hasAttribute(e);if(r&&r.hasAttribute(e)&&i)return r.getAttribute(e)!==n.getAttribute(e)}function eh(t,e){return Qd(t.getShiftedBy(-1),e)}n(105);const nh="ck-link_selected";class rh extends Ca{init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:Kd}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>Kd($d(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new Hd(t)),t.commands.add("unlink",new Wd(t)),function(t,e,n,r){const i=new Zd(e,n,"linkHref"),o=e.document.selection;n.listenTo(t.document,"keydown",(t,e)=>{if(!o.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==En.arrowright;if(!n&&e.keyCode!=En.arrowleft)return;const r=o.getFirstPosition();let s;(s=n?i.handleForwardMovement(r,e):i.handleBackwardMovement(r,e))&&t.stop()},{priority:me.get("high")+1})}(t.editing.view,t.model,this),this._setupLinkHighlight()}_setupLinkHighlight(){const t=this.editor,e=t.editing.view,n=new Set;e.document.registerPostFixer(e=>{const r=t.model.document.selection;if(r.hasAttribute("linkHref")){const i=zd(r.getFirstPosition(),r.getAttribute("linkHref"),t.model),o=t.editing.mapper.toViewRange(i);for(const t of o.getItems())t.is("a")&&(e.addClass(nh,t),n.add(t))}}),t.conversion.for("editingDowncast").add(t=>{function r(){e.change(t=>{for(const e of n.values())t.removeClass(nh,e),n.delete(e)})}t.on("insert",r,{priority:"highest"}),t.on("remove",r,{priority:"highest"}),t.on("attribute",r,{priority:"highest"}),t.on("selection",r,{priority:"highest"})})}}class ih extends Vr{constructor(t){super(t),this.domEventType="click"}onDomEvent(t){this.fire(t.type,t)}}n(107);class oh extends ua{constructor(t){super(t);const e=t.t;this.focusTracker=new js,this.keystrokes=new Ss,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(e("ay"),nc.a,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("az"),ic.a,"ck-button-cancel","cancel"),this._focusables=new Us,this._focusCycler=new ya({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-link-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),tc({view:this}),[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new Ju(this.locale,Xu);return e.label=t("ba"),e.inputView.placeholder="https://example.com",e}_createButton(t,e,n,r){const i=new bl(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),r&&i.delegate("execute").to(this,r),i}}var sh=n(34),ah=n.n(sh),lh=n(35),uh=n.n(lh);n(109);class ch extends ua{constructor(t){super(t);const e=t.t;this.focusTracker=new js,this.keystrokes=new Ss,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("au"),ah.a,"unlink"),this.editButtonView=this._createButton(e("av"),uh.a,"edit"),this.set("href"),this._focusables=new Us,this._focusCycler=new ya({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render(),[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const r=new bl(this.locale);return r.set({label:t,icon:e,tooltip:!0}),r.delegate("execute").to(this,n),r}_createPreviewButton(){const t=new bl(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("aw")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",t=>t&&$d(t)),target:"_blank"}}),t.bind("label").to(this,"href",t=>t||n("ax")),t.bind("isEnabled").to(this,"href",t=>!!t),t.template.tag="a",t.template.eventListeners={},t}}var dh=n(36),hh=n.n(dh);const fh="Ctrl+K";class ph extends Ca{static get requires(){return[wc]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(ih),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(wc),this._createToolbarLinkButton(),this._enableUserBalloonInteractions()}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new ch(t.locale),n=t.commands.get("link"),r=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(r),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(fh,(t,e)=>{this._addFormView(),e()}),e}_createFormView(){const t=this.editor,e=new oh(t.locale),n=t.commands.get("link");return e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",t=>!t),e.saveButtonView.bind("isEnabled").to(n),this.listenTo(e,"submit",()=>{t.execute("link",e.urlInputView.inputView.element.value),this._closeFormView()}),this.listenTo(e,"cancel",()=>{this._closeFormView()}),e.keystrokes.set("Esc",(t,e)=>{this._closeFormView(),e()}),e}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set(fh,(t,n)=>{n(),e.isEnabled&&this._showUI(!0)}),t.ui.componentFactory.add("link",t=>{const r=new bl(t);return r.isEnabled=!0,r.label=n("ao"),r.icon=hh.a,r.keystroke=fh,r.tooltip=!0,r.bind("isOn","isEnabled").to(e,"value","isEnabled"),this.listenTo(r,"execute",()=>this._showUI(!0)),r})}_enableUserBalloonInteractions(){this.listenTo(this.editor.editing.view.document,"click",()=>{this._getSelectedLinkElement()&&this._showUI()}),this.editor.keystrokes.set("Tab",(t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())},{priority:"high"}),this.editor.keystrokes.set("Esc",(t,e)=>{this._isUIVisible&&(this._hideUI(),e())}),Qu({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.select(),this.formView.urlInputView.inputView.element.value=t.value||""}_closeFormView(){void 0!==this.editor.commands.get("link").value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus())}_showUI(t=!1){this.editor.commands.get("link").isEnabled&&(this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI())}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView)}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),r=i();function i(){return e.selection.focus.getAncestors().reverse().find(t=>t.is("element"))}this.listenTo(t.ui,"update",()=>{const t=this._getSelectedLinkElement(),e=i();n&&!t||!n&&e!==r?this._hideUI():this._balloon.updatePosition(this._getBalloonPositionData()),n=t,r=e})}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=t.document,n=this._getSelectedLinkElement();return{target:n?t.domConverter.mapViewToDom(n):t.domConverter.viewRangeToDom(e.selection.getFirstRange())}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection;if(e.isCollapsed)return gh(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),r=gh(n.start),i=gh(n.end);return r&&r==i&&t.createRangeIn(r).getTrimmed().isEqual(n)?r:null}}}function gh(t){return t.getAncestors().find(t=>(function(t){return t.is("attributeElement")&&!!t.getCustomProperty("link")})(t))}class mh extends Pa{constructor(t,e){super(t),this.type="bulleted"==e?"bulleted":"numbered"}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=Array.from(t.document.selection.getSelectedBlocks()).filter(e=>yh(e,t.schema)),n=!0===this.value;t.change(t=>{if(n){let n=e[e.length-1].nextSibling,r=Number.POSITIVE_INFINITY,i=[];for(;n&&"listItem"==n.name&&0!==n.getAttribute("listIndent");){const t=n.getAttribute("listIndent");t=n;)o>i.getAttribute("listIndent")&&(o=i.getAttribute("listIndent")),i.getAttribute("listIndent")==o&&t[e?"unshift":"push"](i),i=i[e?"previousSibling":"nextSibling"]}}function yh(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class bh extends Pa{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model;let e=Array.from(t.document.selection.getSelectedBlocks());t.change(t=>{const n=e[e.length-1];let r=n.nextSibling;for(;r&&"listItem"==r.name&&r.getAttribute("listIndent")>n.getAttribute("listIndent");)e.push(r),r=r.nextSibling;this._indentBy<0&&(e=e.reverse());for(const i of e){const e=i.getAttribute("listIndent")+this._indentBy;e<0?t.rename(i,"paragraph"):t.setAttribute("listIndent",e,i)}})}_checkEnabled(){const t=Jl(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let r=t.previousSibling;for(;r&&r.is("listItem")&&r.getAttribute("listIndent")>=e;){if(r.getAttribute("listIndent")==e)return r.getAttribute("listType")==n;r=r.previousSibling}return!1}return!0}}function wh(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:Ve.call(this)}function _h(t){return(e,n,r)=>{const i=r.consumable;if(!i.test(n.item,"insert")||!i.test(n.item,"attribute:listType")||!i.test(n.item,"attribute:listIndent"))return;i.consume(n.item,"insert"),i.consume(n.item,"attribute:listType"),i.consume(n.item,"attribute:listIndent");const o=n.item;jh(o,function(t,e){const n=e.mapper,r=e.writer,i="numbered"==t.getAttribute("listType")?"ol":"ul",o=function(t){const e=r.createContainerElement("li");return e.getFillerOffset=wh,e}(),s=r.createContainerElement(i,null);return r.insert(r.createPositionAt(s,0),o),n.bindElements(t,o),o}(o,r),r,t)}}function kh(t){return(e,n,r)=>{const i=r.mapper.toViewPosition(n.position).getLastMatchingPosition(t=>!t.item.is("li")).nodeAfter,o=r.writer;o.breakContainer(o.createPositionBefore(i)),o.breakContainer(o.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=o.createRangeOn(s),u=o.remove(l);a&&a.nextSibling&&Dh(o,a,a.nextSibling),Lh(r.mapper.toModelElement(i).getAttribute("listIndent")+1,n.position,l.start,i,r,t);for(const t of o.createRangeIn(u).getItems())r.mapper.unbindViewElement(t);e.stop()}}function xh(t,e,n){if(!n.consumable.consume(e.item,"attribute:listType"))return;const r=n.mapper.toViewElement(e.item),i=n.writer;i.breakContainer(i.createPositionBefore(r)),i.breakContainer(i.createPositionAfter(r));let o=r.parent;Dh(i,o=i.rename("numbered"==e.attributeNewValue?"ol":"ul",o),o.nextSibling),Dh(i,o.previousSibling,o);for(const s of e.item.getChildren())n.consumable.consume(s,"insert")}function Ch(t){return(e,n,r)=>{if(!r.consumable.consume(n.item,"attribute:listIndent"))return;const i=r.mapper.toViewElement(n.item),o=r.writer;o.breakContainer(o.createPositionBefore(i)),o.breakContainer(o.createPositionAfter(i));const s=i.parent,a=s.previousSibling,l=o.createRangeOn(s);o.remove(l),a&&a.nextSibling&&Dh(o,a,a.nextSibling),Lh(n.attributeOldValue+1,n.range.start,l.start,i,r,t),jh(n.item,i,r,t);for(const t of n.item.getChildren())r.consumable.consume(t,"insert")}}function Ah(t,e,n){if("listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const r=n.writer,i=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&"li"==(t=r.breakContainer(t)).parent.name;){const e=t,n=r.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=r.remove(r.createRange(e,n));i.push(t)}t=r.createPositionAfter(t.parent)}if(i.length>0){for(let e=0;e0){const e=Dh(r,n,n.nextSibling);e&&e.parent==n&&t.offset--}}Dh(r,t.nodeBefore,t.nodeAfter)}}}function Sh(t,e,n){const r=n.mapper.toViewPosition(e.position);Dh(n.writer,r.nodeBefore,r.nodeAfter)}function Eh(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,r=this.conversionApi.store,i=t.createElement("listItem");r.indent=r.indent||0,t.setAttribute("listIndent",r.indent,i),t.setAttribute("listType",e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted",i),r.indent++;const o=n.splitToAllowedParent(i,e.modelCursor);if(!o)return;t.insert(i,o.position);const s=function(t,e,n){const{writer:r,schema:i}=n;let o=r.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)o=n.convertItem(s,o).modelCursor;else{const e=n.convertItem(s,r.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!i.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("listItem")?e.modelCursor.parent:Ih(e.modelCursor),o=r.createPositionAfter(t))}return o}(i,e.viewItem.getChildren(),n);r.indent--,e.modelRange=t.createRange(e.modelCursor,s),e.modelCursor=o.cursorParent?t.createPositionAt(o.cursorParent,0):e.modelRange.end}}function Oh(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t)e.is("li")||e._remove()}}function Ph(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1,r=!0;for(const e of t)!n||e.is("ul")||e.is("ol")||e._remove(),e.is("text")?(r&&(e._data=e.data.replace(/^\s+/,"")),(!e.nextSibling||e.nextSibling.is("ul")||e.nextSibling.is("ol"))&&(e._data=e.data.replace(/\s+$/,""))):(e.is("ul")||e.is("ol"))&&(n=!0),r=!1}}function Th(t){return(e,n)=>{if(n.isPhantom)return;const r=n.modelPosition.nodeBefore;if(r&&r.is("listItem")){const e=n.mapper.toViewElement(r),i=e.getAncestors().find(t=>t.is("ul")||t.is("ol")),o=t.createPositionAt(e,0).getWalker();for(const t of o){if("elementStart"==t.type&&t.item.is("li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==i){n.viewPosition=t.nextPosition;break}}}}}function Nh(t,[e,n]){let r,i=e.is("documentFragment")?e.getChild(0):e;if(r=n?this.createSelection(n):this.document.selection,i&&i.is("listItem")){const t=r.getFirstPosition();let e=null;if(t.parent.is("listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;i&&i.is("listItem");)i._setAttribute("listIndent",i.getAttribute("listIndent")+t),i=i.nextSibling}}}function Ih(t){const e=new Si({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("listItem"));return n.value.item}function Mh(t,e){const n=!!e.sameIndent,r=!!e.smallerIndent,i=e.listIndent;let o=t;for(;o&&"listItem"==o.name;){const t=o.getAttribute("listIndent");if(n&&i==t||r&&i>t)return o;o=o.previousSibling}return null}function Dh(t,e,n){return e&&n&&("ul"==e.name||"ol"==e.name)&&e.name==n.name?t.mergeContainers(t.createPositionAfter(e)):null}function jh(t,e,n,r){const i=e.parent,o=n.mapper,s=n.writer;let a=o.toViewPosition(r.createPositionBefore(t));const l=Mh(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),u=t.previousSibling;if(l&&l.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=o.toViewElement(l);a=s.breakContainer(s.createPositionAfter(t))}else a=o.toViewPosition(u&&"listItem"==u.name?r.createPositionAt(u,"end"):r.createPositionBefore(t));if(a=Rh(a),s.insert(a,i),u&&"listItem"==u.name){const t=o.toViewElement(u),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const r of n)if(r.item.is("li")){const t=s.breakContainer(s.createPositionBefore(r.item)),i=r.item.parent,o=s.createPositionAt(e,"end");Dh(s,o.nodeBefore,o.nodeAfter),s.move(s.createRangeOn(i),o),n.position=t}}else{const n=i.nextSibling;if(n&&(n.is("ul")||n.is("ol"))){let r=null;for(const e of n.getChildren()){const n=o.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;r=e}r&&(s.breakContainer(s.createPositionAfter(r)),s.move(s.createRangeOn(r.parent),s.createPositionAt(e,"end")))}}Dh(s,i,i.nextSibling),Dh(s,i.previousSibling,i)}function Lh(t,e,n,r,i,o){const s=Mh(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=i.mapper,l=i.writer,u=s?s.getAttribute("listIndent"):null;let c;if(s)if(u==t){const t=a.toViewElement(s).parent;c=l.createPositionAfter(t)}else{const t=o.createPositionAt(s,"end");c=a.toViewPosition(t)}else c=n;c=Rh(c);for(const d of[...r.getChildren()])(d.is("ul")||d.is("ol"))&&(c=l.move(l.createRangeOn(d),c).end,Dh(l,d,d.nextSibling),Dh(l,d.previousSibling,d))}function Rh(t){return t.getLastMatchingPosition(t=>t.item.is("uiElement"))}class Fh extends Ca{static get requires(){return[Qc]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;t.model.document.registerPostFixer(e=>(function(t,e){const n=t.document.differ.getChanges(),r=new Map;let i=!1;for(const l of n)if("insert"==l.type&&"listItem"==l.name)o(l.position);else if("insert"==l.type&&"listItem"!=l.name){if("$text"!=l.name){const t=l.position.nodeAfter;t.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",t),i=!0),t.hasAttribute("listType")&&(e.removeAttribute("listType",t),i=!0)}o(l.position.getShiftedBy(l.length))}else"remove"==l.type&&"listItem"==l.name?o(l.position):"attribute"==l.type&&"listIndent"==l.attributeKey?o(l.range.start):"attribute"==l.type&&"listType"==l.attributeKey&&o(l.range.start);for(const l of r.values())s(l),a(l);return i;function o(t){const e=t.nodeBefore;if(e&&e.is("listItem")){let n=e;if(r.has(n))return;for(;n.previousSibling&&n.previousSibling.is("listItem");)if(r.has(n=n.previousSibling))return;r.set(t.nodeBefore,n)}else{const e=t.nodeAfter;e&&e.is("listItem")&&r.set(e,e)}}function s(t){let n=0,r=null;for(;t&&t.is("listItem");){const o=t.getAttribute("listIndent");if(o>n){let s;null===r?(r=o-n,s=n):(r>o&&(r=o),s=o-r),e.setAttribute("listIndent",s,t),i=!0}else r=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],r=null;for(;t&&t.is("listItem");){const o=t.getAttribute("listIndent");if(r&&r.getAttribute("listIndent")>o&&(n=n.slice(0,o+1)),0!=o)if(n[o]){const r=n[o];t.getAttribute("listType")!=r&&(e.setAttribute("listType",r,t),i=!0)}else n[o]=t.getAttribute("listType");r=t,t=t.nextSibling}}})(t.model,e)),n.mapper.registerViewToModelLength("li",Bh),e.mapper.registerViewToModelLength("li",Bh),n.mapper.on("modelToViewPosition",Th(n.view)),n.mapper.on("viewToModelPosition",function(t){return(e,n)=>{const r=n.viewPosition,i=r.parent,o=n.mapper;if("ul"==i.name||"ol"==i.name){if(r.isAtEnd){const e=o.toModelElement(r.nodeBefore),i=o.getModelLength(r.nodeBefore);n.modelPosition=t.createPositionBefore(e).getShiftedBy(i)}else{const e=o.toModelElement(r.nodeAfter);n.modelPosition=t.createPositionBefore(e)}e.stop()}else if("li"==i.name&&r.nodeBefore&&("ul"==r.nodeBefore.name||"ol"==r.nodeBefore.name)){const s=o.toModelElement(i);let a=1,l=r.nodeBefore;for(;l&&(l.is("ul")||l.is("ol"));)a+=o.getModelLength(l),l=l.previousSibling;n.modelPosition=t.createPositionBefore(s).getShiftedBy(a),e.stop()}}}(t.model)),e.mapper.on("modelToViewPosition",Th(n.view)),n.downcastDispatcher.on("insert",Ah,{priority:"high"}),n.downcastDispatcher.on("insert:listItem",_h(t.model)),e.downcastDispatcher.on("insert",Ah,{priority:"high"}),e.downcastDispatcher.on("insert:listItem",_h(t.model)),n.downcastDispatcher.on("attribute:listType:listItem",xh),e.downcastDispatcher.on("attribute:listType:listItem",xh),n.downcastDispatcher.on("attribute:listIndent:listItem",Ch(t.model)),e.downcastDispatcher.on("attribute:listIndent:listItem",Ch(t.model)),n.downcastDispatcher.on("remove:listItem",kh(t.model)),n.downcastDispatcher.on("remove",Sh,{priority:"low"}),e.downcastDispatcher.on("remove:listItem",kh(t.model)),e.downcastDispatcher.on("remove",Sh,{priority:"low"}),e.upcastDispatcher.on("element:ul",Oh,{priority:"high"}),e.upcastDispatcher.on("element:ol",Oh,{priority:"high"}),e.upcastDispatcher.on("element:li",Ph,{priority:"high"}),e.upcastDispatcher.on("element:li",Eh),t.model.on("insertContent",Nh,{priority:"high"}),t.commands.add("numberedList",new mh(t,"numbered")),t.commands.add("bulletedList",new mh(t,"bulleted")),t.commands.add("indentList",new bh(t,"forward")),t.commands.add("outdentList",new bh(t,"backward"));const r=this.editor.editing.view.document;this.listenTo(r,"enter",(t,e)=>{const n=this.editor.model.document,r=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==r.name&&r.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),this.listenTo(r,"delete",(t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const r=n.getFirstPosition();if(!r.isAtStart)return;const i=r.parent;"listItem"===i.name&&(i.previousSibling&&"listItem"===i.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop()))},{priority:"high"});const i=t=>(e,n)=>{this.editor.commands.get(t).isEnabled&&(this.editor.execute(t),n())};this.editor.keystrokes.set("Tab",i("indentList")),this.editor.keystrokes.set("Shift+Tab",i("outdentList"))}}function Bh(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=Bh(t);return e}var Vh=n(37),qh=n.n(Vh),zh=n(38),Uh=n.n(zh);class Hh extends Ca{init(){const t=this.editor.t;this._addButton("numberedList",t("o"),qh.a),this._addButton("bulletedList",t("p"),Uh.a)}_addButton(t,e,n){const r=this.editor;r.ui.componentFactory.add(t,i=>{const o=r.commands.get(t),s=new bl(i);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(s,"execute",()=>r.execute(t)),s})}}function Wh(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,r,i){if(!i.consumable.consume(r.item,n.name))return;const o=r.attributeNewValue,s=i.writer,a=i.mapper.toViewElement(r.item);s.remove(s.createRangeIn(a));const l=t.getMediaViewElement(s,o,e);s.insert(s.createPositionAt(a,0),l)}}function Gh(t,e,n,r){const i=t.createContainerElement("figure",{class:"media"});return i.getFillerOffset=$h,t.insert(t.createPositionAt(i,0),e.getMediaViewElement(t,n,r)),i}function Yh(t){const e=t.getSelectedElement();return e&&e.is("media")?e:null}function Kh(t,e,n){t.change(r=>{const i=r.createElement("media",{url:e});t.insertContent(i,n),r.setSelection(i,"on")})}function $h(){return null}class Zh extends Pa{refresh(){const t=this.editor.model,e=t.document.selection,n=t.schema,r=e.getFirstPosition(),i=Yh(e);let o=r.parent;o!=o.root&&(o=o.parent),this.value=i?i.getAttribute("url"):null,this.isEnabled=n.checkChild(o,"media")}execute(t){const e=this.editor.model,n=e.document.selection,r=Yh(n);if(r)e.change(e=>{e.setAttribute("url",t,r)});else{const r=Lu(n,e);Kh(e,t,r)}}}var Qh=n(39),Jh=n.n(Qh);const Xh="0 0 64 42";class tf{constructor(t,e){const n=e.providers,r=e.extraProviders||[],i=new Set(e.removeProviders),o=n.concat(r).filter(t=>{const e=t.name;return e?!i.has(e):(Xr.a.warn("media-embed-no-provider-name: The configured media provider has no name and cannot be used.",{provider:t}),!1)});this.locale=t,this.providerDefinitions=o}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new ef(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html;let r=e.url;Array.isArray(r)||(r=[r]);for(const e of r){const r=this._getUrlMatches(t,e);if(r)return new ef(this.locale,t,r,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let r=t.replace(/^https?:\/\//,"");return(n=r.match(e))?n:(n=(r=r.replace(/^www\./,"")).match(e))||null}}class ef{constructor(t,e,n,r){this.url=this._getValidUrl(e),this._t=t.t,this._match=n,this._previewRenderer=r}getViewElement(t,e){const n={};if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const r=this._getPreviewHtml(e);return t.createUIElement("div",n,function(t){const e=this.toDomElement(t);return e.innerHTML=r,e})}return this.url&&(n.url=this.url),t.createEmptyElement("oembed",n)}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new yl,e=new vl;return t.text=this._t("Open media in new tab"),e.content=Jh.a,e.viewBox=Xh,new Ws({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[e]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"new",href:this.url},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]},t]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}n(111);class nf extends Ca{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>''+`
'},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>''+`
'},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)/,/^youtube\.com\/embed\/([\w-]+)/,/^youtu\.be\/([\w-]+)/],html:t=>''+`
'},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^\/]+\/[^\/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^\/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^\/]+\/(\d+)/,/^vimeo\.com\/groups\/[^\/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^\/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>''+`
'},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:/^google\.com\/maps/},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new tf(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,r=t.conversion,i=t.config.get("mediaEmbed.previewsInData"),o=this.registry;t.commands.add("mediaEmbed",new Zh(t)),e.register("media",{isObject:!0,isBlock:!0,allowWhere:"$block",allowAttributes:["url"]}),r.for("dataDowncast").elementToElement({model:"media",view:(t,e)=>{const n=t.getAttribute("url");return Gh(e,o,n,{renderMediaPreview:n&&i})}}),r.for("dataDowncast").add(Wh(o,{renderMediaPreview:i})),r.for("editingDowncast").elementToElement({model:"media",view:(t,e)=>{const r=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),Mu(t,e,{label:n})}(Gh(e,o,r,{renderForEditingView:!0}),e,n("ak"))}}),r.for("editingDowncast").add(Wh(o,{renderForEditingView:!0})),r.for("upcast").elementToElement({view:{name:"oembed",attributes:{url:!0}},model:(t,e)=>{const n=t.getAttribute("url");if(o.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,e)=>{const n=t.getAttribute("data-oembed-url");if(o.hasMedia(n))return e.createElement("media",{url:n})}})}}const rf=/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:\/?#[\]@!$&'()*+,;=]+$/;class of extends Ca{static get requires(){return[Oa,Al]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get(Oa),"inputTransformation",()=>{const t=e.selection.getFirstRange(),n=fs.fromPosition(t.start);n.stickiness="toPrevious";const r=fs.fromPosition(t.end);r.stickiness="toNext",e.once("change:data",()=>{this._embedMediaBetweenPositions(n,r),n.detach(),r.detach()},{priority:"high"})}),t.commands.get("undo").on("execute",()=>{this._timeoutId&&(dr.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)},{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,r=n.plugins.get(nf).registry,i=new Vi(t,e),o=i.getWalker({ignoreElementEnd:!0});let s="";for(const a of o)a.item.is("textProxy")&&(s+=a.item.data);(s=s.trim()).match(rf)&&r.hasMedia(s)&&n.commands.get("mediaEmbed").isEnabled&&(this._positionToInsert=fs.fromPosition(t),this._timeoutId=dr.window.setTimeout(()=>{n.model.change(t=>{let e;this._timeoutId=null,t.remove(i),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),Kh(n.model,s,e),this._positionToInsert.detach(),this._positionToInsert=null})},100))}}n(113);class sf extends ua{constructor(t,e){super(e);const n=e.t;this.focusTracker=new js,this.keystrokes=new Ss,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("ay"),nc.a,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("az"),ic.a,"ck-button-cancel","cancel"),this._focusables=new Us,this._focusCycler=new ya({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),tc({view:this}),[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",(t,e)=>{e.stopPropagation()},{priority:"high"})}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.inputView.element.value.trim()}set url(t){this.urlInputView.inputView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new Ju(this.locale,Xu),n=e.inputView;return this._urlInputViewInfoDefault=t("bb"),this._urlInputViewInfoTip=t("bc"),e.label=t("bd"),e.infoText=this._urlInputViewInfoDefault,n.placeholder="https://example.com",n.on("input",()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault}),e}_createButton(t,e,n,r){const i=new bl(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),r&&i.delegate("execute").to(this,r),i}}var af=n(40),lf=n.n(af);class uf extends Ca{static get requires(){return[nf]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(nf).registry;this.form=new sf(function(t,e){return[e=>{if(!e.url.length)return t("am")},n=>{if(!e.hasMedia(n.url))return t("an")}]}(t.t,n),t.locale),t.ui.componentFactory.add("mediaEmbed",n=>{const r=pd(n);return this._setUpDropdown(r,this.form,e,t),this._setUpForm(this.form,r,e),r})}_setUpDropdown(t,e,n){const r=this.editor,i=r.t,o=t.buttonView;function s(){r.editing.view.focus(),t.isOpen=!1}t.bind("isEnabled").to(n),t.panelView.children.add(e),o.set({label:i("al"),icon:lf.a,tooltip:!0}),o.on("open",()=>{e.url=n.value||"",e.urlInputView.select(),e.focus()},{priority:"low"}),t.on("submit",()=>{e.isValid()&&(r.execute("mediaEmbed",e.url),s())}),t.on("change:isOpen",()=>e.resetFormStatus()),t.on("cancel",()=>s())}_setUpForm(t,e,n){t.delegate("submit","cancel").to(e),t.urlInputView.bind("value").to(n,"value"),t.urlInputView.bind("isReadOnly").to(n,"isEnabled",t=>!t),t.saveButtonView.bind("isEnabled").to(n)}}function cf(t){return t.replace(/(\s+)<\/span>/g,(t,e)=>1===e.length?" ":Array(e.length+1).join("\xa0 ").substr(0,e.length))}function df(t){const e={},n=t.getStyle("mso-list");return n&&(e.id=parseInt(n.match(/(^|\s+)l(\d+)/i)[2]),e.order=parseInt(n.match(/\s*lfo(\d+)/i)[1]),e.indent=parseInt(n.match(/\s*level(\d+)/i)[1])),e}function hf(t){return btoa(t.match(/\w{2}/g).map(t=>String.fromCharCode(parseInt(t,16))).join(""))}function ff(t,e){let n=e.parent;for(;n;){if(n.name===t)return n;n=n.parent}}function pf(t,e,n,r,i=1){e>i?r.setAttribute(t,e,n):r.removeAttribute(t,n)}function gf(t,e,n={}){const r=t.createElement("tableCell",n);t.insertElement("paragraph",r),t.insert(r,e)}function mf(t){return e=>{e.on(`element:${t}`,(t,e,n)=>{const r=e.viewItem;if(!n.consumable.test(r,{name:!0}))return;const i=n.writer.createElement("tableCell"),o=n.splitToAllowedParent(i,e.modelCursor);if(!o)return;n.writer.insert(i,o.position),n.consumable.consume(r,{name:!0});const s=n.writer.createPositionAt(i,0);n.convertChildren(r,s),i.childCount||n.writer.insertElement("paragraph",s),e.modelRange=n.writer.createRange(n.writer.createPositionBefore(i),n.writer.createPositionAfter(i)),e.modelCursor=e.modelRange.end})}}function vf(t){let e=0,n=0;const r=Array.from(t.getChildren()).filter(t=>"th"===t.name||"td"===t.name);for(;n1||r>1)&&this._recordSpans(this._row,this._column,r,n);const i=this._column,o=this._formatOutValue(e,i,r,n);return this._column++,this._cell++,this._shouldSkipRow()||this._shouldSkipColumn(i,n)?this.next():o}skipRow(t){this._skipRows.add(t)}_isOverEndRow(){return void 0!==this.endRow&&this._row>this.endRow}_formatOutValue(t,e,n=1,r=1){return{done:!1,value:{cell:t,row:this._row,column:e,rowspan:n,colspan:r,cellIndex:this._cell}}}_shouldSkipRow(){const t=this._rowthis.column)}_isSpanned(t,e){return!!this._spannedCells.has(t)&&this._spannedCells.get(t).has(e)}_recordSpans(t,e,n,r){for(let i=e+1;i<=e+r-1;i++)this._markSpannedCell(t,i);for(let i=t+1;ie.on("insert:table",(e,n,r)=>{const i=n.item;if(!r.consumable.consume(i,"insert"))return;r.consumable.consume(i,"attribute:headingRows:table"),r.consumable.consume(i,"attribute:headingColumns:table");const o=t&&t.asWidget,s=r.writer.createContainerElement("figure",{class:"table"}),a=r.writer.createContainerElement("table");let l;r.writer.insert(r.writer.createPositionAt(s,0),a),o&&(l=function(t,e){return e.setCustomProperty("table",!0,t),Mu(t,e,{hasSelectionHandler:!0})}(s,r.writer));const u=new yf(i),c={headingRows:i.getAttribute("headingRows")||0,headingColumns:i.getAttribute("headingColumns")||0},d=new Map;for(const f of u){const{row:e,cell:n}=f,o=Mf(If(e,c),a,r),s=i.getChild(e),l=d.get(e)||Tf(s,e,o,r);d.set(e,l),r.consumable.consume(n,"insert"),Pf(f,c,r.writer.createPositionAt(l,"end"),r,t)}const h=r.mapper.toViewPosition(n.range.start);r.mapper.bindElements(i,o?l:s),r.writer.insert(h,o?l:s)})}function xf(t={}){return e=>e.on("insert:tableRow",(e,n,r)=>{const i=n.item;if(!r.consumable.consume(i,"insert"))return;const o=i.parent,s=Rf(r.mapper.toViewElement(o)),a=o.getChildIndex(i),l=new yf(o,{startRow:a,endRow:a}),u={headingRows:o.getAttribute("headingRows")||0,headingColumns:o.getAttribute("headingColumns")||0},c=new Map;for(const d of l){const e=Mf(If(a,u),s,r),n=c.get(a)||Tf(i,a,e,r);c.set(a,n),r.consumable.consume(d.cell,"insert"),Pf(d,u,r.writer.createPositionAt(n,"end"),r,t)}})}function Cf(t={}){return e=>e.on("insert:tableCell",(e,n,r)=>{const i=n.item;if(!r.consumable.consume(i,"insert"))return;const o=i.parent,s=o.parent,a=s.getChildIndex(o),l=new yf(s,{startRow:a,endRow:a}),u={headingRows:s.getAttribute("headingRows")||0,headingColumns:s.getAttribute("headingColumns")||0};for(const c of l)if(c.cell===i){const e=r.mapper.toViewElement(o);return void Pf(c,u,r.writer.createPositionAt(e,o.getChildIndex(i)),r,t)}})}function Af(t={}){const e=!!t.asWidget;return t=>t.on("attribute:headingRows:table",(t,n,r)=>{const i=n.item;if(!r.consumable.consume(n.item,t.name))return;const o=Rf(r.mapper.toViewElement(i)),s=n.attributeOldValue,a=n.attributeNewValue;if(a>s){const t=Array.from(i.getChildren()).filter(({index:t})=>l(t,s-1,a));Lf(t,Mf("thead",o,r),r,"end");for(const n of t)for(const t of n.getChildren())Ef(t,"th",r,e);jf("tbody",o,r)}else{Lf(Array.from(i.getChildren()).filter(({index:t})=>l(t,a-1,s)).reverse(),Mf("tbody",o,r),r,0);const t=new yf(i,{startRow:a?a-1:a,endRow:s-1}),n={headingRows:i.getAttribute("headingRows")||0,headingColumns:i.getAttribute("headingColumns")||0};for(const i of t)Of(i,n,r,e);jf("thead",o,r)}function l(t,e,n){return t>e&&tt.on("attribute:headingColumns:table",(t,n,r)=>{const i=n.item;if(!r.consumable.consume(n.item,t.name))return;const o={headingRows:i.getAttribute("headingRows")||0,headingColumns:i.getAttribute("headingColumns")||0},s=n.attributeOldValue,a=n.attributeNewValue,l=(s>a?s:a)-1;for(const u of new yf(i))u.column>l||Of(u,o,r,e)})}function Ef(t,e,n,r){const i=n.writer,o=n.mapper.toViewElement(t);if(!o)return;let s;r?(s=ju(i.createEditableElement(e,o.getAttributes()),i),i.insert(i.createPositionAfter(o),s),i.move(i.createRangeIn(o),i.createPositionAt(s,0)),i.remove(i.createRangeOn(o))):s=i.rename(e,o),n.mapper.bindElements(t,s)}function Of(t,e,n,r){const{cell:i}=t,o=Nf(t,e),s=n.mapper.toViewElement(i);s&&s.name!==o&&Ef(i,o,n,r)}function Pf(t,e,n,r,i){const o=i&&i.asWidget,s=Nf(t,e),a=o?ju(r.writer.createEditableElement(s),r.writer):r.writer.createContainerElement(s),l=t.cell,u=l.getChild(0),c=1===l.childCount&&"paragraph"===u.name;if(r.writer.insert(n,a),c&&![...u.getAttributeKeys()].length){const t=l.getChild(0),e=r.writer.createPositionAt(a,"end");if(r.consumable.consume(t,"insert"),i.asWidget){const n=r.writer.createContainerElement("span");r.mapper.bindElements(t,n),r.writer.insert(e,n),r.mapper.bindElements(l,a)}else r.mapper.bindElements(l,a),r.mapper.bindElements(t,a)}else r.mapper.bindElements(l,a)}function Tf(t,e,n,r){r.consumable.consume(t,"insert");const i=r.writer.createContainerElement("tr");r.mapper.bindElements(t,i);const o=t.parent.getAttribute("headingRows")||0,s=r.writer.createPositionAt(n,o>0&&e>=o?e-o:e);return r.writer.insert(s,i),i}function Nf(t,e){const{row:n,column:r}=t,{headingColumns:i,headingRows:o}=e;return o&&o>n?"th":i&&i>r?"th":"td"}function If(t,e){return t{const n=r.createTable(t,i,o);e.insertContent(n,s),t.setSelection(t.createPositionAt(n.getNodeByPath([0,0,0]),0))})}}class Bf extends Pa{constructor(t,e={}){super(t),this.order=e.order||"below"}refresh(){const t=ff("table",this.editor.model.document.selection.getFirstPosition());this.isEnabled=!!t}execute(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),r=ff("tableCell",e.getFirstPosition()).parent,i=r.parent,o=i.getChildIndex(r);n.insertRows(i,{rows:1,at:"below"===this.order?o+1:o})}}class Vf extends Pa{constructor(t,e={}){super(t),this.order=e.order||"right"}refresh(){const t=ff("table",this.editor.model.document.selection.getFirstPosition());this.isEnabled=!!t}execute(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),r=ff("tableCell",e.getFirstPosition()),i=r.parent.parent,{column:o}=n.getCellLocation(r);n.insertColumns(i,{columns:1,at:"right"===this.order?o+1:o})}}class qf extends Pa{constructor(t,e={}){super(t),this.direction=e.direction||"horizontally"}refresh(){const t=ff("tableCell",this.editor.model.document.selection.getFirstPosition());this.isEnabled=!!t}execute(){const t=ff("tableCell",this.editor.model.document.selection.getFirstPosition()),e="horizontally"===this.direction,n=this.editor.plugins.get("TableUtils");e?n.splitCellHorizontally(t,2):n.splitCellVertically(t,2)}}class zf extends Pa{constructor(t,e){super(t),this.direction=e.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const t=this._getMergeableCell();this.isEnabled=!!t,this.value=t}execute(){const t=this.editor.model,e=ff("tableCell",t.document.selection.getFirstPosition()),n=this.value,r=this.direction;t.change(t=>{const i="right"==r||"down"==r,o=i?e:n,s=i?n:e,a=s.parent;!function(t,e,n){Uf(t)||(Uf(e)&&n.remove(n.createRangeIn(e)),n.move(n.createRangeIn(t),n.createPositionAt(e,"end"))),n.remove(t)}(s,o,t);const l=this.isHorizontal?"colspan":"rowspan",u=parseInt(e.getAttribute(l)||1),c=parseInt(n.getAttribute(l)||1);t.setAttribute(l,u+c,o),t.setSelection(t.createRangeIn(o)),a.childCount||function(t,e){const n=t.parent,r=n.getChildIndex(t);for(const{cell:i,row:o,rowspan:s}of new yf(n,{endRow:r}))o+s-1>=r&&pf("rowspan",s-1,i,e);e.remove(t)}(a,t)})}_getMergeableCell(){const t=ff("tableCell",this.editor.model.document.selection.getFirstPosition());if(!t)return;const e=this.editor.plugins.get("TableUtils"),n=this.isHorizontal?function(t,e,n){const r="right"==e?t.nextSibling:t.previousSibling;if(!r)return;const i="right"==e?t:r,o="right"==e?r:t,{column:s}=n.getCellLocation(i),{column:a}=n.getCellLocation(o);return s+parseInt(i.getAttribute("colspan")||1)===a?r:void 0}(t,this.direction,e):function(t,e){const n=t.parent,r=n.parent,i=r.getChildIndex(n);if("down"==e&&i===r.childCount-1||"up"==e&&0===i)return;const o=parseInt(t.getAttribute("rowspan")||1),s=r.getAttribute("headingRows")||0;if(s&&("down"==e&&i+o===s||"up"==e&&i===s))return;const a=parseInt(t.getAttribute("rowspan")||1),l="down"==e?i+a:i,u=[...new yf(r,{endRow:l})],c=u.find(e=>e.cell===t).column,d=u.find(({row:t,rowspan:n,column:r})=>r===c&&("down"==e?t===l:l===t+n));return d&&d.cell}(t,this.direction);if(!n)return;const r=this.isHorizontal?"rowspan":"colspan",i=parseInt(t.getAttribute(r)||1);return parseInt(n.getAttribute(r)||1)===i?n:void 0}}function Uf(t){return 1==t.childCount&&t.getChild(0).is("paragraph")&&t.getChild(0).isEmpty}class Hf extends Pa{refresh(){const t=ff("tableCell",this.editor.model.document.selection.getFirstPosition());this.isEnabled=!!t&&t.parent.parent.childCount>1}execute(){const t=this.editor.model,e=ff("tableCell",t.document.selection.getFirstPosition()).parent,n=e.parent,r=n.getChildIndex(e),i=n.getAttribute("headingRows")||0;t.change(t=>{i&&r<=i&&pf("headingRows",i-1,n,t,0);const o=[...new yf(n,{endRow:r})],s=new Map;o.filter(({row:t,rowspan:e})=>t===r&&e>1).forEach(({column:t,cell:e,rowspan:n})=>s.set(t,{cell:e,rowspanToSet:n-1})),o.filter(({row:t,rowspan:e})=>t<=r-1&&t+e>r).forEach(({cell:e,rowspan:n})=>pf("rowspan",n-1,e,t));const a=r+1,l=new yf(n,{includeSpanned:!0,startRow:a,endRow:a});let u;for(const{row:e,column:r,cell:i}of[...l])if(s.has(r)){const{cell:i,rowspanToSet:o}=s.get(r),a=u?t.createPositionAfter(u):t.createPositionAt(n.getChild(e),0);t.move(t.createRangeOn(i),a),pf("rowspan",o,i,t),u=i}else u=i;t.remove(e)})}}class Wf extends Pa{refresh(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),r=ff("tableCell",e.getFirstPosition());this.isEnabled=!!r&&n.getColumns(r.parent.parent)>1}execute(){const t=this.editor.model,e=ff("tableCell",t.document.selection.getFirstPosition()),n=e.parent,r=n.parent,i=r.getAttribute("headingColumns")||0,o=r.getChildIndex(n),s=[...new yf(r)],a=s.find(t=>t.cell===e).column;t.change(t=>{i&&o<=i&&t.setAttribute("headingColumns",i-1,r);for(const{cell:e,column:n,colspan:r}of s)n<=a&&r>1&&n+r>a?pf("colspan",r-1,e,t):n===a&&t.remove(e)})}}class Gf extends Pa{refresh(){const t=ff("tableCell",this.editor.model.document.selection.getFirstPosition()),e=!!t;this.isEnabled=e,this.value=e&&this._isInHeading(t,t.parent.parent)}execute(){const t=this.editor.model,e=ff("tableCell",t.document.selection.getFirstPosition()).parent,n=e.parent,r=n.getAttribute("headingRows")||0,i=e.index,o=r>i?i:i+1;t.change(t=>{if(o){const e=function(t,e,n){const r=[],i=new yf(t,{startRow:e>n?n:0,endRow:e-1});for(const{row:o,rowspan:s,cell:a}of i)s>1&&o+s>e&&r.push(a);return r}(n,o,r);for(const n of e)Yf(n,o,t)}pf("headingRows",o,n,t,0)})}_isInHeading(t,e){const n=parseInt(e.getAttribute("headingRows")||0);return!!n&&t.parent.index1&&(s.rowspan=a);const l=i.getChildIndex(r),u=l+o,c=[...new yf(i,{startRow:l,endRow:u,includeSpanned:!0})];let d;for(const{row:h,column:f,cell:p,colspan:g,cellIndex:m}of c)if(p===t&&(d=f,g>1&&(s.colspan=g)),void 0!==d&&d===f&&h===u){const t=i.getChild(h);gf(n,n.createPositionAt(t,m),s)}pf("rowspan",o,t,n)}class Kf extends Pa{refresh(){const t=ff("tableCell",this.editor.model.document.selection.getFirstPosition()),e=!!t;this.isEnabled=e,this.value=e&&this._isInHeading(t,t.parent.parent)}execute(){const t=this.editor.model,e=t.document.selection,n=this.editor.plugins.get("TableUtils"),r=ff("tableCell",e.getFirstPosition().parent),i=r.parent.parent,o=parseInt(i.getAttribute("headingColumns")||0),{column:s}=n.getCellLocation(r),a=o>s?s:s+1;t.change(t=>{pf("headingColumns",a,i,t,0)})}_isInHeading(t,e){const n=parseInt(e.getAttribute("headingColumns")||0),r=this.editor.plugins.get("TableUtils"),{column:i}=r.getCellLocation(t);return!!n&&i{const i=t.getAttribute("headingRows")||0;if(i>n&&e.setAttribute("headingRows",i+r,t),0===n||n===t.childCount)return void Zf(e,t,n,r,this.getColumns(t));const o=new yf(t,{endRow:n});let s=0;for(const{row:t,rowspan:a,colspan:l,cell:u}of o)tn&&e.setAttribute("rowspan",a+r,u),t===n&&(s+=l);Zf(e,t,n,r,s)})}insertColumns(t,e={}){const n=e.at||0,r=e.columns||1;this.editor.model.change(e=>{const i=t.getAttribute("headingColumns");n1)for(let t=a+1;t{if(o>1){const{newCellsSpan:r,updatedSpan:s}=Jf(o,e);pf("colspan",s,t,n);const a={};r>1&&(a.colspan=r),i>1&&(a.rowspan=i),Qf(o>e?e-1:o-1,n,n.createPositionAfter(t),a)}if(oe===t),u=a.filter(({cell:e,colspan:n,column:r})=>e!==t&&r===l||rl);for(const{cell:t,colspan:e}of u)n.setAttribute("colspan",e+s,t);const c={};i>1&&(c.rowspan=i),Qf(s,n,n.createPositionAfter(t),c);const d=r.getAttribute("headingColumns")||0;d>l&&pf("headingColumns",d+s,r,n)}})}splitCellHorizontally(t,e=2){const n=this.editor.model,r=t.parent,i=r.parent,o=i.getChildIndex(r),s=parseInt(t.getAttribute("rowspan")||1),a=parseInt(t.getAttribute("colspan")||1);n.change(n=>{if(s>1){const r=[...new yf(i,{startRow:o,endRow:o+s-1,includeSpanned:!0})],{newCellsSpan:l,updatedSpan:u}=Jf(s,e);pf("rowspan",u,t,n);const{column:c}=r.find(({cell:e})=>e===t),d={};l>1&&(d.rowspan=l),a>1&&(d.colspan=a);for(const{column:t,row:e,cellIndex:s}of r)e>=o+u&&t===c&&(e+o+u)%l==0&&Qf(1,n,n.createPositionAt(i.getChild(e),s),d)}if(so&&n.setAttribute("rowspan",i+r,e);const u={};a>1&&(u.colspan=a),Zf(n,i,o+1,r,1,u);const c=i.getAttribute("headingRows")||0;c>o&&pf("headingRows",c+r,i,n)}})}getColumns(t){return[...t.getChild(0).getChildren()].reduce((t,e)=>t+parseInt(e.getAttribute("colspan")||1),0)}}function Zf(t,e,n,r,i,o={}){for(let s=0;st&&r.push({cell:s,rowspan:t-i})}return r}(t);if(r.length){n=!0;for(const t of r)pf("rowspan",t.rowspan,t.cell,e,1)}return n}function tp(t,e){let n=!1;const r=function(t){const e={};for(const{row:n}of new yf(t,{includeSpanned:!0}))e[n]||(e[n]=0),e[n]+=1;return e}(t),i=r[0];if(!Object.values(r).every(t=>t===i)){const i=Object.values(r).reduce((t,e)=>e>t?e:t,0);for(const[o,s]of Object.entries(r)){const r=i-s;if(r){for(let n=0;nt.is("text"));for(const r of n)e.wrap(e.createRangeOn(r),"paragraph");return!!n.length}function op(t,e,n){if(!t.root.is("rootElement"))return!1;const r=e.toModelElement(t),i=function(t,e){const n=t.childCount>1,r=!![...e.getAttributes()].length;return n||r?"p":"span"}(r.parent,r);if(t.name!==i){e.unbindViewElement(t);const o=n.rename(i,t);return e.bindElements(r,o),!0}return!1}function sp(t){return t.is("p")||t.is("span")}function ap(t){return t.is("td")||t.is("th")}n(117);class lp extends Ca{init(){const t=this.editor,e=t.model,n=e.schema,r=t.conversion;n.register("table",{allowWhere:"$block",allowAttributes:["headingRows","headingColumns"],isLimit:!0,isObject:!0,isBlock:!0}),n.register("tableRow",{allowIn:"table",isLimit:!0}),n.register("tableCell",{allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0}),n.extend("$block",{allowIn:"tableCell"}),n.addChildCheck((t,e)=>{if("table"==e.name&&Array.from(t.getNames()).includes("table"))return!1}),r.for("upcast").add(t=>{t.on("element:table",(t,e,n)=>{const r=e.viewItem;if(!n.consumable.test(r,{name:!0}))return;const{rows:i,headingRows:o,headingColumns:s}=function(t){const e={headingRows:0,headingColumns:0},n=[],r=[];let i;for(const o of Array.from(t.getChildren()))if("tbody"===o.name||"thead"===o.name||"tfoot"===o.name){"thead"!==o.name||i||(i=o);const t=Array.from(o.getChildren()).filter(t=>t.is("element","tr"));for(const o of t)if("thead"===o.parent.name&&o.parent===i)e.headingRows++,n.push(o);else{r.push(o);const t=vf(o);t>e.headingColumns&&(e.headingColumns=t)}}return e.rows=[...n,...r],e}(r),a={};s&&(a.headingColumns=s),o&&(a.headingRows=o);const l=n.writer.createElement("table",a),u=n.splitToAllowedParent(l,e.modelCursor);if(u){if(n.writer.insert(l,u.position),n.consumable.consume(r,{name:!0}),i.length)i.forEach(t=>n.convertItem(t,n.writer.createPositionAt(l,"end")));else{const t=n.writer.createElement("tableRow");n.writer.insert(t,n.writer.createPositionAt(l,"end")),gf(n.writer,n.writer.createPositionAt(t,"end"))}e.modelRange=n.writer.createRange(n.writer.createPositionBefore(l),n.writer.createPositionAfter(l)),e.modelCursor=u.cursorParent?n.writer.createPositionAt(u.cursorParent,0):e.modelRange.end}})}),r.for("editingDowncast").add(kf({asWidget:!0})),r.for("dataDowncast").add(kf()),r.for("upcast").elementToElement({model:"tableRow",view:"tr"}),r.for("editingDowncast").add(xf({asWidget:!0})),r.for("dataDowncast").add(xf()),r.for("downcast").add(t=>t.on("remove:tableRow",(t,e,n)=>{t.stop();const r=n.writer,i=n.mapper,o=i.toViewPosition(e.position).getLastMatchingPosition(t=>!t.item.is("tr")).nodeAfter,s=o.parent,a=r.createRangeOn(o),l=r.remove(a);for(const u of r.createRangeIn(l).getItems())i.unbindViewElement(u);s.childCount||r.remove(r.createRangeOn(s))},{priority:"higher"})),r.for("upcast").add(mf("td")),r.for("upcast").add(mf("th")),r.for("editingDowncast").add(Cf({asWidget:!0})),r.for("dataDowncast").add(Cf()),r.attributeToAttribute({model:"colspan",view:"colspan"}),r.attributeToAttribute({model:"rowspan",view:"rowspan"}),r.for("editingDowncast").add(Sf({asWidget:!0})),r.for("dataDowncast").add(Sf()),r.for("editingDowncast").add(Af({asWidget:!0})),r.for("dataDowncast").add(Af()),function(t,e){e.view.document.registerPostFixer(n=>(function(t,e,n,r){let i=!1;const o=function(t){const e=Array.from(t._renderer.markedAttributes).filter(t=>!!t.parent).filter(sp).filter(t=>ap(t.parent)),n=Array.from(t._renderer.markedChildren).filter(t=>!!t.parent).filter(ap).reduce((t,e)=>[...t,...Array.from(e.getChildren()).filter(sp)],[]);return[...e,...n]}(r);for(const s of o)i=op(s,n,t)||i;return i&&function(t){const e=t.focus;return t.rangeCount&&(!t.anchor.root.is("rootElement")||!e.root.is("rootElement"))}(r.document.selection)&&function(t,e,n){const r=Array.from(t.getRanges()).map(t=>e.toViewRange(t));n.setSelection(r,{backward:t.isBackward})}(e.document.selection,n,t),i})(n,t,e.mapper,e.view))}(t.model,t.editing),t.commands.add("insertTable",new Ff(t)),t.commands.add("insertTableRowAbove",new Bf(t,{order:"above"})),t.commands.add("insertTableRowBelow",new Bf(t,{order:"below"})),t.commands.add("insertTableColumnLeft",new Vf(t,{order:"left"})),t.commands.add("insertTableColumnRight",new Vf(t,{order:"right"})),t.commands.add("removeTableRow",new Hf(t)),t.commands.add("removeTableColumn",new Wf(t)),t.commands.add("splitTableCellVertically",new qf(t,{direction:"vertically"})),t.commands.add("splitTableCellHorizontally",new qf(t,{direction:"horizontally"})),t.commands.add("mergeTableCellRight",new zf(t,{direction:"right"})),t.commands.add("mergeTableCellLeft",new zf(t,{direction:"left"})),t.commands.add("mergeTableCellDown",new zf(t,{direction:"down"})),t.commands.add("mergeTableCellUp",new zf(t,{direction:"up"})),t.commands.add("setTableColumnHeader",new Kf(t)),t.commands.add("setTableRowHeader",new Gf(t)),function(t){t.document.registerPostFixer(e=>(function(t,e){const n=e.document.differ.getChanges();let r=!1;const i=new Set;for(const o of n){let e;"table"==o.name&&"insert"==o.type&&(e=o.position.nodeAfter),"tableRow"!=o.name&&"tableCell"!=o.name||(e=ff("table",o.position)),ep(o)&&(e=ff("table",o.range.start)),e&&!i.has(e)&&(r=Xf(e,t)||r,r=tp(e,t)||r,i.add(e))}return r})(e,t))}(e),function(t){t.document.registerPostFixer(e=>(function(t,e){const n=e.document.differ.getChanges();let r=!1;for(const i of n)"remove"==i.type&&i.position.parent.is("tableCell")&&(r=ip(i.position.parent,t)||r),"insert"==i.type&&("table"==i.name&&(r=np(i.position.nodeAfter,t)||r),"tableRow"==i.name&&(r=rp(i.position.nodeAfter,t)||r),"tableCell"==i.name&&(r=ip(i.position.nodeAfter,t)||r));return r})(e,t))}(e),this.editor.keystrokes.set("Tab",(...t)=>this._handleTabOnSelectedTable(...t),{priority:"low"}),this.editor.keystrokes.set("Tab",this._getTabHandler(!0),{priority:"low"}),this.editor.keystrokes.set("Shift+Tab",this._getTabHandler(!1),{priority:"low"})}static get requires(){return[$f]}_handleTabOnSelectedTable(t,e){const n=this.editor,r=n.model.document.selection;if(!r.isCollapsed&&1===r.rangeCount&&r.getFirstRange().isFlat){const t=r.getSelectedElement();if(!t||!t.is("table"))return;e(),n.model.change(e=>{e.setSelection(e.createRangeIn(t.getChild(0).getChild(0)))})}}_getTabHandler(t){const e=this.editor;return(n,r)=>{const i=ff("tableCell",e.model.document.selection.getFirstPosition());if(!i)return;r();const o=i.parent,s=o.parent,a=s.getChildIndex(o),l=o.getChildIndex(i),u=0===l;if(!t&&u&&0===a)return;const c=l===o.childCount-1;if(t&&a===s.childCount-1&&c&&(e.execute("insertTableRowBelow"),a===s.childCount-1))return;let d;if(t&&c){const t=s.getChild(a+1);d=t.getChild(0)}else if(!t&&u){const t=s.getChild(a-1);d=t.getChild(t.childCount-1)}else d=o.getChild(l+(t?1:-1));e.model.change(t=>{t.setSelection(t.createRangeIn(d))})}}}n(119);class up extends ua{constructor(t){super(t);const e=this.bindTemplate;this.items=this.createCollection(),this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",(t,e)=>`${e} x ${t}`),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},children:this.items},{tag:"div",attributes:{class:["ck-insert-table-dropdown__label"]},children:[{text:e.to("label")}]}],on:{mousedown:e.to(t=>{t.preventDefault()}),click:e.to(()=>{this.fire("execute")})}});for(let n=0;n<100;n++){const t=new cp;t.on("over",()=>{const t=Math.floor(n/10),e=n%10;this.set("rows",t+1),this.set("columns",e+1)}),this.items.add(t)}this.on("change:columns",()=>{this._highlightGridBoxes()}),this.on("change:rows",()=>{this._highlightGridBoxes()})}focus(){}focusLast(){}_highlightGridBoxes(){const t=this.rows,e=this.columns;this.items.map((n,r)=>{const i=Math.floor(r/10){const r=t.commands.get("insertTable"),i=pd(n);i.bind("isEnabled").to(r),i.buttonView.set({icon:hp.a,label:e("q"),tooltip:!0});const o=new up(n);return i.panelView.children.add(o),o.delegate("execute").to(i),i.buttonView.on("open",()=>{o.rows=0,o.columns=0}),i.on("execute",()=>{t.execute("insertTable",{rows:o.rows,columns:o.columns}),t.editing.view.focus()}),i}),t.ui.componentFactory.add("tableColumn",t=>{const n=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:e("r"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableColumnLeft",label:e("s")}},{type:"button",model:{commandName:"insertTableColumnRight",label:e("t")}},{type:"button",model:{commandName:"removeTableColumn",label:e("u")}}];return this._prepareDropdown(e("v"),pp.a,n,t)}),t.ui.componentFactory.add("tableRow",t=>{const n=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:e("w"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowBelow",label:e("x")}},{type:"button",model:{commandName:"insertTableRowAbove",label:e("y")}},{type:"button",model:{commandName:"removeTableRow",label:e("z")}}];return this._prepareDropdown(e("aa"),mp.a,n,t)}),t.ui.componentFactory.add("mergeTableCells",t=>{const n=[{type:"button",model:{commandName:"mergeTableCellUp",label:e("ab")}},{type:"button",model:{commandName:"mergeTableCellRight",label:e("ac")}},{type:"button",model:{commandName:"mergeTableCellDown",label:e("ad")}},{type:"button",model:{commandName:"mergeTableCellLeft",label:e("ae")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:e("af")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:e("ag")}}];return this._prepareDropdown(e("ah"),yp.a,n,t)})}_prepareDropdown(t,e,n,r){const i=this.editor,o=pd(r),s=[],a=new gn;for(const l of n)wp(l,i,s,a);return gd(o,a),o.buttonView.set({label:t,icon:e,tooltip:!0}),o.bind("isEnabled").toMany(s,"isEnabled",(...t)=>t.some(t=>t)),this.listenTo(o,"execute",t=>{i.execute(t.source.commandName),i.editing.view.focus()}),o}}function wp(t,e,n,r){const i=t.model=new id(t.model),{commandName:o,bindIsOn:s}=t.model;if("separator"!==t.type){const t=e.commands.get(o);n.push(t),i.set({commandName:o}),i.bind("isEnabled").to(t),s&&i.bind("isOn").to(t,"value")}i.set({withText:!0}),r.add(t)}n(121),n.d(e,"default",function(){return _p});class _p extends xa{}_p.builtinPlugins=[class extends Ca{static get requires(){return[Oa,Da,Fa,Xa,Al]}static get pluginName(){return"Essentials"}},Ml,class extends Ca{static get pluginName(){return"Autoformat"}afterInit(){this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats()}_addListAutoformats(){const t=this.editor.commands;t.get("bulletedList")&&new jl(this.editor,/^[*-]\s$/,"bulletedList"),t.get("numberedList")&&new jl(this.editor,/^1[.|)]\s$/,"numberedList")}_addBasicStylesAutoformats(){const t=this.editor.commands;if(t.get("bold")){const t=Fl(this.editor,"bold");new Ll(this.editor,/(\*\*)([^*]+)(\*\*)$/g,t),new Ll(this.editor,/(__)([^_]+)(__)$/g,t)}if(t.get("italic")){const t=Fl(this.editor,"italic");new Ll(this.editor,/(?:^|[^*])(\*)([^*_]+)(\*)$/g,t),new Ll(this.editor,/(?:^|[^_])(_)([^_]+)(_)$/g,t)}if(t.get("code")){const t=Fl(this.editor,"code");new Ll(this.editor,/(`)([^`]+)(`)$/g,t)}}_addHeadingAutoformats(){const t=this.editor.commands.get("heading");t&&t.modelElements.filter(t=>t.match(/^heading[1-6]$/)).forEach(e=>{const n=new RegExp(`^(#{${e[7]}})\\s$`);new jl(this.editor,n,()=>{if(!t.isEnabled)return!1;this.editor.execute("heading",{value:e})})})}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&new jl(this.editor,/^>\s$/,"blockQuote")}},class extends Ca{static get requires(){return[ql,Wl]}static get pluginName(){return"Bold"}},class extends Ca{static get requires(){return[Yl,Ql]}static get pluginName(){return"Italic"}},class extends Ca{static get requires(){return[ru,su]}static get pluginName(){return"BlockQuote"}},class extends Ca{static get pluginName(){return"CKFinder"}static get requires(){return[fu,uu,Ml]}},class extends Ca{static get requires(){return[wu,Oc,Kc]}static get pluginName(){return"EasyImage"}},class extends Ca{static get requires(){return[rd,md]}static get pluginName(){return"Heading"}},Oc,class extends Ca{static get requires(){return[bd]}static get pluginName(){return"ImageCaption"}},class extends Ca{static get requires(){return[Fd,Bd]}static get pluginName(){return"ImageStyle"}},class extends Ca{static get requires(){return[Vd]}static get pluginName(){return"ImageToolbar"}afterInit(){const t=this.editor;t.plugins.get(Vd).register("image",{items:t.config.get("image.toolbar")||[],getRelatedElement:Fu})}},Kc,class extends Ca{static get requires(){return[rh,ph]}static get pluginName(){return"Link"}},class extends Ca{static get requires(){return[Fh,Hh]}static get pluginName(){return"List"}},class extends Ca{static get requires(){return[nf,uf,of,Yu]}static get pluginName(){return"MediaEmbed"}},Qc,class extends Ca{static get pluginName(){return"PasteFromOffice"}init(){this.listenTo(this.editor.plugins.get("Clipboard"),"inputTransformation",(t,e)=>{const n=e.dataTransfer.getData("text/html");!0!==e.pasteFromOfficeProcessed&&function(t){return!(!t||!t.match(//gi)&&!t.match(/xmlns:o="urn:schemas-microsoft-com/gi))}(n)&&(e.content=this._normalizeWordInput(n,e.dataTransfer),e.pasteFromOfficeProcessed=!0)},{priority:"high"})}_normalizeWordInput(t,e){const{body:n,stylesString:r}=function(t){const e=new DOMParser,n=function(t){return cf(cf(t)).replace(/([\s]*?)[\r\n]+(\s*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g,"\xa0").replace(/ <\/o:p>/g,"\xa0").replace(/>(\s*[\r\n]\s*)<")}(function(t){const e=t.match(/<\/body>(.*?)(<\/html>|$)/);return e&&e[1]&&(t=t.slice(0,e.index)+t.slice(e.index).replace(e[1],"")),t}(t=t.replace(/