/** * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md. */ (function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define([],t):'object'==typeof exports?exports.InlineEditor=t():e.InlineEditor=t()})('undefined'==typeof self?this:self,function(){return function(e){function t(n){if(o[n])return o[n].exports;var i=o[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,n){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var o=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(o,'a',o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=3)}([function(e,t,o){function n(e,t){for(var o=0;o{Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)).forEach((o)=>{if(!(o in e.prototype)){const n=Object.getOwnPropertyDescriptor(t,o);n.enumerable=!1,Object.defineProperty(e.prototype,o,n)}})})}function l(){let e='e';for(let t=0;8>t;t++)e+=na(65536*(1+Math.random())).toString(16).substring(1);return e}function d(e,t){return e[Ta]&&e[Ta][t]?e[Ta][t].emitter:null}function c(e,t){e[Pa]||(e[Pa]=t||l())}function u(e){return e[Pa]}function m(e){return e._events||Object.defineProperty(e,'_events',{value:{}}),e._events}function p(){return{callbacks:[],childEvents:[]}}function g(e,t){const o=m(e);if(o[t])return;let n=t,i=null;const r=[];for(;''!==n&&!o[n];)o[n]=p(),r.push(o[n]),i&&o[n].childEvents.push(i),i=n,n=n.substr(0,n.lastIndexOf(':'));if(''!==n){for(const e of r)e.callbacks=o[n].callbacks.slice();o[n].childEvents.push(i)}}function f(e,t){const o=m(e)[t];if(!o)return[];let n=[o.callbacks];for(let r=0;r{if(e.attrs.length&&e.attrs.length!==n)throw new ha('observable-bind-to-attrs-length: The number of attributes must match.');e.attrs.length||(e.attrs=this._bindAttrs)}),this._to=t.to,t.callback&&(this._bindings.get(o[0]).callback=t.callback),T(this._observable,this._to),A(this),this._bindAttrs.forEach((e)=>{C(this._observable,e)})}function w(e){return e.every((e)=>'string'==typeof e)}function y(...e){if(!e.length)throw new ha('observable-bind-to-parse-error: Invalid argument syntax in `to()`.');const t={to:[]};let o;return'function'==typeof e[e.length-1]&&(t.callback=e.pop()),e.forEach((e)=>{if('string'==typeof e)o.attrs.push(e);else if('object'==typeof e)o={observable:e,attrs:[]},t.to.push(o);else throw new ha('observable-bind-to-parse-error: Invalid argument syntax in `to()`.')}),t}function x(e,t,o,n){const i=e[zs],r=i.get(o),a=r||{};a[n]||(a[n]=new Set),a[n].add(t),r||i.set(o,a)}function A(e){let t;e._bindings.forEach((o,n)=>{e._to.forEach((i)=>{t=i.attrs[o.callback?0:e._bindAttrs.indexOf(n)],o.to.push([i.observable,t]),x(e._observable,o,i.observable,t)})})}function C(e,t){const o=e[js],n=o.get(t);let i;n.callback?i=n.callback.apply(e,n.to.map((e)=>e[0][e[1]])):(i=n.to[0],i=i[0][i[1]]),e.hasOwnProperty(t)?e[t]=i:e.set(t,i)}function T(e,t){t.forEach((t)=>{const o=e[zs];let n;o.get(t.observable)||e.listenTo(t.observable,'change',(i,r)=>{n=o.get(t.observable)[r],n&&n.forEach((t)=>{C(e,t.attr)})})})}function P(e){const t=new Map;for(const o in e)t.set(o,e[o]);return t}function E(e){return pa(e)?P(e):new Map(e)}function S(e){return!!(e&&e[Symbol.iterator])}function O(e){return'string'==typeof e?[new $s(e)]:(S(e)||(e=[e]),Array.from(e).map((e)=>'string'==typeof e?new $s(e):e))}function V(e,t,o,n,i){return{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:n,length:i}}}function R(e,t){const o=ta(e.length,t.length);for(let n=0;ne.add(t))}function U(e){return'string'==typeof e?[new Wd(e)]:(S(e)||(e=[e]),Array.from(e).map((e)=>'string'==typeof e?new Wd(e):e))}function Q(){for(const e of this.getChildren())if(!e.is('uiElement'))return null;return this.childCount}function J(e){return e.item.is('attributeElement')||e.item.is('uiElement')}function G(e){return'string'==typeof e?[new $s(e)]:(S(e)||(e=[e]),Array.from(e).map((e)=>'string'==typeof e?new $s(e):e))}function Y(e,t,o){const n=t.getRange(),i=Array.from(e.getAncestors());i.shift(),i.reverse();const r=i.some((e)=>{if(n.containsItem(e)){const t=o.toViewElement(e);return!!t.getCustomProperty('addHighlight')}});return!r}function X(){if(Z(this))return null;let e=this.parent;for(;e&&e.is('attributeElement');){if(1!e.is('uiElement')).length}function ee(){return null}function te(e){let t;if('string'!=typeof e)t=e.keyCode+(e.altKey?mc.alt:0)+(e.ctrlKey?mc.ctrl:0)+(e.shiftKey?mc.shift:0);else if(t=mc[e.toLowerCase()],!t)throw new ha('keyboard-unknown-key: Unknown key name.',{key:e});return t}function oe(e){return'string'==typeof e&&(e=ie(e)),e.map((e)=>'string'==typeof e?te(e):e).reduce((e,t)=>t+e,0)}function ne(e){return dc.mac?ie(e).map((e)=>uc[e.toLowerCase()]||e).reduce((e,t)=>e.slice(-1)in cc?e+t:e+'+'+t):e}function ie(e){return e.split(/\s*\+\s*/)}function re(e){e.on('keydown',(t,o)=>se(t,o,e.domConverter))}function ae(){return null}function se(e,t,o){if(t.keyCode==mc.arrowright){const e=t.domTarget.ownerDocument.defaultView.getSelection(),n=1==e.rangeCount&&e.getRangeAt(0).collapsed;if(n||t.shiftKey){const t=e.focusNode,i=e.focusOffset,r=o.domPositionToView(t,i);if(null===r)return;let a=!1;const s=r.getLastMatchingPosition((e)=>(e.item.is('uiElement')&&(a=!0),e.item.is('uiElement')||e.item.is('attributeElement')));if(a){const t=o.viewPositionToDom(s);n?e.collapse(t.parent,t.offset):e.extend(t.parent,t.offset)}}}}function le(e){return'string'==typeof e?[new Wd(e)]:(S(e)||(e=[e]),Array.from(e).map((e)=>'string'==typeof e?new Wd(e):e))}function de(e){const t=e.offset,o=e.parent;if(o.is('text'))return e;if(o.is('attributeElement')&&0===o.childCount){const e=o.parent,t=o.index;return o.remove(),de(new Xd(e,t))}const n=o.getChild(t-1),i=o.getChild(t);if(!n||!i)return e;if(n.is('text')&&i.is('text'))return ye(n,i);if(n.is('attributeElement')&&i.is('attributeElement')&&n.isSimilar(i)){const e=n.childCount;return n.appendChildren(i.getChildren()),i.remove(),de(new Xd(n,e))}return e}function ce(e,t){t=S(t)?[...t]:[t],Te(t);const o=ge(e);if(!o)throw new ha('view-writer-invalid-position-container');const n=he(e,!0),i=o.insertChildren(n.offset,t),r=n.getShiftedBy(i),a=de(n);if(0===i)return new Zd(a,a);else{a.isEqual(n)||r.offset--;const e=de(r);return new Zd(a,e)}}function ue(e){if(Ee(e),e.isCollapsed)return new gc;const{start:t,end:o}=fe(e,!0),n=t.parent,i=o.offset-t.offset,r=n.removeChildren(t.offset,i),a=de(t);return e.start=a,e.end=Xd.createFromPosition(a),new gc(r)}function me(e,t){let o;if(t.isAfter(e.end)){t=he(t,!0);const n=t.parent,i=n.childCount;e=fe(e,!0),o=ue(e),t.offset+=n.childCount-i}else o=ue(e);return ce(t,o)}function pe(e,t){if(!(t instanceof rc))throw new ha('view-writer-wrap-invalid-attribute');if(Ee(e),e.isCollapsed)return e;if(e.end.isEqual(e.start.getShiftedBy(1))){const o=e.start.nodeAfter;if(o instanceof rc&&xe(t,o))return e}if(Ce(e)&&xe(t,e.start.parent)){const t=e.start.parent.parent,o=e.start.parent.index;return Zd.createFromParentsAndOffsets(t,o,t,o+1)}const{start:o,end:n}=fe(e,!0),i=o.parent,r=be(i,o.offset,n.offset,t),a=ke(i,r.start.offset,r.end.offset,t),s=de(a.start);s.isEqual(a.start)||a.end.offset--;const l=de(a.end);return new Zd(s,l)}function ge(e){let t=e.parent;for(;!Pe(t);){if(!t)return;t=t.parent}return t}function fe(e,t=!1){const o=e.start,n=e.end;if(Ee(e),e.isCollapsed){const o=he(e.start,t);return new Zd(o,o)}const i=he(n,t),r=i.parent.childCount,a=he(o,t);return i.offset+=i.parent.childCount-r,new Zd(a,i)}function he(e,t=!1){const o=e.offset,n=e.parent;if(e.parent.is('emptyElement'))throw new ha('view-writer-cannot-break-empty-element');if(e.parent.is('uiElement'))throw new ha('view-writer-cannot-break-ui-element');if(!t&&n.is('text')&&Pe(n.parent))return Xd.createFromPosition(e);if(Pe(n))return Xd.createFromPosition(e);if(n.is('text'))return he(we(e),t);const i=n.childCount;if(o==i){const e=new Xd(n.parent,n.index+1);return he(e,t)}if(0===o){const e=new Xd(n.parent,n.index);return he(e,t)}else{const e=n.index+1,i=n.clone();n.parent.insertChildren(e,i);const r=n.childCount-o,a=n.removeChildren(o,r);i.appendChildren(a);const s=new Xd(n.parent,e);return he(s,t)}}function be(e,t,o,n){let r=t;const i=[];for(;rt.priority)&&e.getIdentity()t instanceof e))throw new ha('view-writer-insert-invalid-node');t.is('text')||Te(t.getChildren())}}function Pe(e){return e&&(e.is('containerElement')||e.is('documentFragment'))}function Ee(e){const t=ge(e.start),o=ge(e.end);if(!t||!o||t!==o)throw new ha('view-writer-invalid-range-container')}function Se(e){return(t,o,n,i)=>{const r=e instanceof Kd?e.clone(!0):e(o,n,i);if(r&&n.consume(o.item,'insert')){const e=i.mapper.toViewPosition(o.range.start);i.mapper.bindElements(o.item,r),fc.insert(e,r)}}}function Oe(){return(e,t,o,n)=>{if(o.consume(t.item,'insert')){const e=n.mapper.toViewPosition(t.range.start),o=new Wd(t.item.data);fc.insert(e,o)}}}function Ve(e){return(t,o,n,i)=>{let r,a;if(e instanceof Kd?(r=e.clone(!0),a=e.clone(!0)):(o.isOpening=!0,r=e(o,n,i),o.isOpening=!1,a=e(o,n,i)),r&&a){const e=o.markerRange,s=t.name;if(!e.isCollapsed||n.consume(e,s)){for(const t of e)if(!n.consume(t.item,s))return;const t=i.mapper;fc.insert(t.toViewPosition(e.start),r),e.isCollapsed||fc.insert(t.toViewPosition(e.end),a)}}}}function Re(e){return e=e||((e,t)=>({value:e,key:t})),(t,o,n,i)=>{if(n.consume(o.item,ze(t.name))){const{key:t,value:r}=e(o.attributeNewValue,o.attributeKey,o,n,i);i.mapper.toViewElement(o.item).setAttribute(t,r)}}}function Fe(e){return e=e||((e,t)=>({key:t})),(t,o,n,i)=>{if(n.consume(o.item,ze(t.name))){const{key:t}=e(o.attributeOldValue,o.attributeKey,o,n,i);i.mapper.toViewElement(o.item).removeAttribute(t)}}}function Ie(e){return(t,o,n,i)=>{const r=e instanceof Kd?e.clone(!0):e(o.attributeNewValue,o,n,i);if(!r)return;if(!n.consume(o.item,ze(t.name)))return;let a=i.mapper.toViewRange(o.range);if(null!==o.attributeOldValue&&!(e instanceof Kd)){const t=e(o.attributeOldValue,o,n,i);a=fc.unwrap(a,t)}fc.wrap(a,r)}}function Ne(e){return(t,o,n,i)=>{const r=e instanceof Kd?e.clone(!0):e(o.attributeOldValue,o,n,i);if(r&&n.consume(o.item,ze(t.name))){const e=i.mapper.toViewRange(o.range);fc.unwrap(e,r)}}}function Be(){return(e,t,o,n)=>{if(!o.consume(t.item,'remove'))return;let i=n.mapper.toViewPosition(t.sourcePosition),r;if(t.item.is('element'))i=i.getLastMatchingPosition((e)=>!e.item.is('containerElement')),i.parent.is('text')&&i.isAtEnd&&(i=Xd.createAfter(i.parent)),r=Zd.createOn(i.nodeAfter);else{const e=je(i,t.item.offsetSize);r=new Zd(i,e)}fc.remove(r.getTrimmed()),'$graveyard'==t.item.root.rootName&&n.mapper.unbindModelElement(t.item)}}function Me(e){return(t,o,n,i)=>{const r='function'==typeof e?e(o,n,i):e,a=o.item;if(r&&!o.markerRange.isCollapsed&&a.is('textProxy')&&n.consume(a,t.name)){r.id||(r.id=o.markerName);const e=qe(r),n=i.mapper.toViewRange(o.range);'addMarker'==t.name.split(':')[0]?fc.wrap(n,e):fc.unwrap(n,e)}}}function De(e){return(t,o,n,i)=>{const r='function'==typeof e?e(o,n,i):e,a=o.item;if(r&&!o.markerRange.isCollapsed&&a.is('element')&&n.test(o.item,t.name)){r.priority||(r.priority=10),r.id||(r.id=o.markerName);const e=i.mapper.toViewElement(a),s='addMarker'==t.name.split(':')[0],l=s?'addHighlight':'removeHighlight';if(e&&e.getCustomProperty(l)){n.consume(o.item,t.name);for(const e of Xs.createIn(a))n.consume(e.item,t.name);e.getCustomProperty(l)(e,s?r:r.id)}}}}function Le(e){return(t,o,n,i)=>{let r,a;if(e instanceof Kd?(r=e.clone(!0),a=e.clone(!0)):(o.isOpening=!0,r=e(o,n,i),o.isOpening=!1,a=e(o,n,i)),r&&a){const e=o.markerRange,s=t.name;if(!e.isCollapsed||n.consume(e,s)){for(const t of e)if(!n.consume(t.item,s))return;const t=i.mapper.toViewRange(e);fc.clear(t.getEnlarged(),a),r.isSimilar(a)||fc.clear(t.getEnlarged(),r)}}}}function ze(e){const t=e.split(':');return t[0]+':'+t[1]}function je(e,t){const o=new Qd({startPosition:e,singleCharacters:!0});let n=0;for(const i of o)if('text'==i.type&&(n++,n==t))return o.position}function qe(e){const t=new bc('span',e.attributes);if(e.class){const o=Array.isArray(e.class)?e.class:[e.class];t.addClass(...o)}return e.priority&&(t.priority=e.priority),t.setCustomProperty('highlightDescriptorId',e.id),t}function He(e,t){const o=new Set,n=new Map,i=new Js({startPosition:Ys.createAt(e,0),ignoreElementEnd:!0});for(const n of i)'$marker'==n.item.name&&o.add(n.item);for(const i of o){const e=i.getAttribute('data-name'),o=Ys.createBefore(i);n.has(e)?n.get(e).end=Ys.createFromPosition(o):n.set(e,new Xs(Ys.createFromPosition(o))),t.remove(i)}return n}function We(){return(e,t,o,n)=>{!t.output&&o.consume(t.input,{name:!0})&&(t.output=n.convertChildren(t.input,o,t))}}function $e(){return(e,t,o,n)=>{const i={name:'$text',inside:t.context};n.schema.check(i)&&o.consume(t.input)&&(t.output=n.batch.createText(t.input.data))}}function Ke(){const e=new Set(['insert','move','remove','reinsert']);this.listenTo(this.root.document,'change',(t,o,n)=>{e.has(o)&&Ue.call(this,o,n.range,n.sourcePosition)},{priority:'high'})}function Ue(e,t,o){const n=t.end.offset-t.start.offset;let i;switch(e){case'insert':const r='sticksToNext'==this.stickiness;i=this._getTransformedByInsertion(t.start,n,r);break;case'move':case'remove':case'reinsert':const a=Xs.createFromPositionAndShift(o,n),s=a.containsPosition(this)||a.start.isEqual(this)&&'sticksToNext'==this.stickiness||a.end.isEqual(this)&&'sticksToPrevious'==this.stickiness;if(s)i=this._getCombined(o,t.start);else{const e='sticksToNext'==this.stickiness;i=this._getTransformedByMove(o,t.start,n,e)}}if(!this.isEqual(i)){const e=Ys.createFromPosition(this);this.path=i.path,this.root=i.root,this.fire('change',e)}}function Qe(e,t,o,n){n||(n=e.model.batch()),o.isCollapsed||e.deleteContent(o,n);const i=new yc(e,n,o.anchor);let r;r=t.is('documentFragment')?t.getChildren():[t],i.handleNodes(r,{isFirst:!0,isLast:!0});const a=i.getSelectionRange();a?o.setRanges([a]):ka.warn('insertcontent-no-range: Cannot determine a proper selection range after insertion.')}function Je(e){return e.is('text')?'$text':e.name}function Ge(e,t,o={}){if(!e.isCollapsed){const n=t.document.schema;if(!o.doNotResetEntireContent&&nt(n,e))return void tt(t,e);const i=e.getFirstRange(),r=i.start,a=wc.createFromPosition(i.end);i.start.isTouching(i.end)||t.remove(i),o.leaveUnmerged||(Ye(t,r,a),n.removeDisallowedAttributes(r.parent.getChildren(),r,t)),e.setCollapsedAt(r),Xe(n,r)&&et(t,r,e),a.detach()}}function Ye(e,t,o){const n=t.parent,i=o.parent;if(n!=i&&n.parent&&i.parent&&Ze(t,o)){for(t=Ys.createAfter(n),o=Ys.createBefore(i),o.isEqual(t)||e.insert(i,t),e.merge(t);o.parent.isEmpty;){const t=o.parent;o=Ys.createBefore(t),e.remove(t)}Ye(e,t,o)}}function Xe(e,t){const o=e.check({name:'$text',inside:t}),n=e.check({name:'paragraph',inside:t});return!o&&n}function Ze(e,t){const o=e.root.document.schema,n=new Xs(e,t);for(const i of n.getWalker())if(o.objects.has(i.item.name)||o.limits.has(i.item.name))return!1;return!0}function et(e,t,o){const n=new Qs('paragraph');e.insert(n,t),o.setCollapsedAt(n)}function tt(e,t){const o=e.document.schema.getLimitElement(t);e.remove(Xs.createIn(o)),et(e,Ys.createAt(o),t)}function nt(e,t){const o=e.getLimitElement(t);if(!t.containsEntireContent(o))return!1;const n=t.getFirstRange();return n.start.parent!=n.end.parent&&e.check({name:'paragraph',inside:o.name})}function it(e){return!!e&&1==e.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(e)}function rt(e){return!!e&&1==e.length&&/[\ud800-\udbff]/.test(e)}function at(e){return!!e&&1==e.length&&/[\udc00-\udfff]/.test(e)}function st(e,t){return rt(e.charAt(t-1))&&at(e.charAt(t))}function lt(e,t){return it(e.charAt(t))}function dt(e,t,o={}){const n=e.model.schema,i='backward'!=o.direction,r=o.unit?o.unit:'character',a=t.focus,s=new Js({boundaries:mt(a,i),singleCharacters:!0,direction:i?'forward':'backward'}),l={walker:s,schema:n,isForward:i,unit:r};for(let n;n=s.next();){if(n.done)return;const e=ct(l,n.value);if(e)return void t.moveFocusTo(e)}}function ct(e,t){if('text'==t.type)return ut(e.walker,e.unit);if(t.type==(e.isForward?'elementStart':'elementEnd')){if(e.schema.objects.has(t.item.name))return Ys.createAt(t.item,e.isForward?'after':'before');if(e.schema.check({name:'$text',inside:t.nextPosition}))return t.nextPosition}else{if(e.schema.limits.has(t.item.name))return void e.walker.skip(()=>!0);if(e.schema.check({name:'$text',inside:t.nextPosition}))return t.nextPosition}}function ut(e,t){const o=e.position.textNode;if(o){const n=o.data;for(let i=e.position.offset-o.startOffset;st(n,i)||'character'==t&<(n,i);)e.next(),i=e.position.offset-o.startOffset}return e.position}function mt(e,t){const o=e.root,n=Ys.createAt(o,t?'end':0);return t?new Xs(e,n):new Xs(n,e)}function pt(e,t){const o=t.createDocumentFragment(),n=e.getFirstRange();if(!n||n.isCollapsed)return o;const i=n.start.root,r=n.start.getCommonPath(n.end),a=i.getNodeByPath(r);let s=n.start.parent==n.end.parent?n:Xs.createFromParentsAndOffsets(a,n.start.path[r.length],a,n.end.path[r.length]+1);const l=s.end.offset-s.start.offset;for(const n of s.getItems({shallow:!0}))n.is('textProxy')?t.appendText(n.data,n.getAttributes(),o):t.append(n.clone(!0),o);if(s!=n){const e=n._getTransformedByMove(s.start,Ys.createAt(o,0),l)[0],i=new Xs(Ys.createAt(o),e.start),r=new Xs(e.end,Ys.createAt(o,'end'));gt(r,t),gt(i,t)}return o}function gt(e,t){const o=[];Array.from(e.getItems({direction:'backward'})).map((e)=>Xs.createOn(e)).filter((t)=>{const o=(t.start.isAfter(e.start)||t.start.isEqual(e.start))&&(t.end.isBefore(e.end)||t.end.isEqual(e.end));return o}).forEach((e)=>{o.push(e.start.parent),t.remove(e)}),o.forEach((e)=>{for(let o=e;o.parent&&o.isEmpty;){const e=Xs.createOn(o);o=o.parent,t.remove(e)}})}function ft(e,t){t=_t(t);const o=t.reduce((e,t)=>e+t.offsetSize,0),n=e.parent;wt(e);const i=e.index;return n.insertChildren(i,t),vt(n,i+t.length),vt(n,i),new Xs(e,e.getShiftedBy(o))}function ht(e){if(!e.isFlat)throw new ha('operation-utils-remove-range-not-flat: Trying to remove a range which starts and ends in different element.');const t=e.start.parent;wt(e.start),wt(e.end);const o=t.removeChildren(e.start.index,e.end.index-e.start.index);return vt(t,e.start.index),o}function bt(e,t){if(!e.isFlat)throw new ha('operation-utils-move-range-not-flat: Trying to move a range which starts and ends in different element.');const o=ht(e);return t=t._getTransformedByDeletion(e.start,e.end.offset-e.start.offset),ft(t,o)}function kt(e,t,o){wt(e.start),wt(e.end);for(const n of e.getItems()){const e=n.is('textProxy')?n.textNode:n;null===o?e.removeAttribute(t):e.setAttribute(t,o),vt(e.parent,e.index)}vt(e.end.parent,e.end.index)}function _t(e){const t=[];e instanceof Array||(e=[e]);for(let o=0;oe+t.operations.length,0)}function Nt(e,t){const o=e[e.length-1];let n=o.operations.length+o.baseVersion;const r=new nu;for(let o=0;o{e.has(o)&&Xt.call(this,o,r,i,n.range,n.sourcePosition)},{priority:'high'})}function Xt(e,t,o,n,i){const r=n.end.offset-n.start.offset;let a=n.start;('move'==e||'remove'==e||'reinsert'==e)&&(a=a._getTransformedByInsertion(i,r));const s=this._getTransformedByDocumentChange(e,t,a,r,i);('move'==e||'remove'==e||'reinsert'==e)&&3==s.length&&(s[2]=n);const l=Xs.createFromRanges(s),d=!l.isEqual(this),c=this.containsPosition(a),u=i&&(this.containsPosition(i)||this.start.isEqual(i));if(d){const t=Xs.createFromRange(this);this.start=l.start,this.end=l.end,this.fire('change:range',t,{type:e,batch:o,range:n,sourcePosition:i})}else(c||u)&&this.fire('change:content',Xs.createFromRange(this),{type:e,batch:o,range:n,sourcePosition:i})}function Zt(e,t){if(e.size!=t.size)return!1;for(const o of e.entries()){const e=JSON.stringify(o[1]),n=JSON.stringify(t.get(o[0]));if(e!==n)return!1}return!0}function eo(e,t){return!t.has(e)&&(t.add(e),e.document.schema.itemExtends(e.name,'$block')&&e.parent)}function to(e,t){const o=e.parent.getAncestors({parentFirst:!0,includeSelf:!0}),n=o.find((e)=>eo(e,t));return o.forEach((e)=>t.add(e)),n}function oo(e){return e instanceof Ks||e instanceof $s?e.getAttributes():null}function no(e,t,o){if(!t||'transparent'==t.type)return;const n=e.range&&e.range.start.parent;!n||n.isEmpty||o.enqueueChanges(()=>{const e=Array.from(n.getAttributeKeys()).filter((e)=>e.startsWith(kp));for(const o of e)t.removeAttribute(o,n)})}function io(e,t,o){for(let n=o.length-1,i=t.length-1;0<=n&&0<=i;){const r=t[i];if(!e.hasItem(r))return!1;const a=e._extensionChains.get(r);if(a.includes(o[n]))n--,i--;else return!1}return!0}function ro(e){const t=e.textNode;if(t){const o=t.data,n=e.offset-t.startOffset;return!st(o,n)&&!lt(o,n)}return!0}function*ao(e,t){for(let o=!1;!o;){if(o=!0,e){const t=e.next();t.done||(o=!1,yield{walker:e,value:t.value})}if(t){const e=t.next();e.done||(o=!1,yield{walker:t,value:e.value})}}}function so(e){return!!(e&&ul(e.addEventListener))}function lo(e){return e['data-ck-expando']||(e['data-ck-expando']=l())}function co(e){let t=0;for(const o of e)t++;return t}function uo(e){return e instanceof Text&&e.data.substr(0,Bp)===Mp}function mo(e){return e.data.length==Bp&&uo(e)}function po(e){return uo(e)?e.data.slice(Bp):e.data}function go(e,t){let o=Dp.get(t);return o||(o=t(window.document),Dp.set(t,o)),e.isEqualNode(o)}function fo(e){e.on('keydown',ho)}function ho(e,t){if(t.keyCode==mc.arrowleft){const e=t.domTarget.ownerDocument.defaultView.getSelection();if(1==e.rangeCount&&e.getRangeAt(0).collapsed){const t=e.getRangeAt(0).startContainer,o=e.getRangeAt(0).startOffset;uo(t)&&o<=Bp&&e.collapse(t,0)}}}function bo(e,t,o){function i(n){const i=(c[n-1]===void 0?-1:c[n-1])+1,u=c[n+1]===void 0?-1:c[n+1],m=i>u?-1:1;d[n+m]&&(d[n]=d[n+m].slice(0)),d[n]||(d[n]=[]),d[n].push(i>u?r:a);let p=oa(i,u),g=p-n;for(;gn;m--)c[m]=i(m);c[n]=i(n),u++}while(c[n]!==l);return d[n].slice(1)}function ko(e,t,o){e.insertBefore(o,e.childNodes[t]||null)}function _o(e){const t=e.parentNode;t&&t.removeChild(e)}function vo(e){if('false'==e.getAttribute('contenteditable'))return!1;const t=e.findAncestor((e)=>e.hasAttribute('contenteditable'));return!t||'true'==t.getAttribute('contenteditable')}function wo(e){let t=0;for(;e.previousSibling;)e=e.previousSibling,t++;return t}function yo(e){const t=[];for(;e&&e.nodeType!=Node.DOCUMENT_NODE;)t.unshift(e),e=e.parentNode;return t}function xo(e,t){const o=yo(e),n=yo(t);let r=0;for(;o[r]==n[r]&&o[r];)r++;return 0==r?null:o[r-1]}function Ao(e,t,o){let n=yo(e);return o&&(n=n.slice(n.indexOf(o)+1)),n.some((e)=>e.tagName&&t.includes(e.tagName.toLowerCase()))}function Co(e,t){for(;e&&e!=zp.document;)t(e),e=e.parentNode}function To(e){return e==mc.arrowright||e==mc.arrowleft||e==mc.arrowup||e==mc.arrowdown}function Po(e){return'[object Range]'==Object.prototype.toString.apply(e)}function Eo(e){return'[object Window]'==Object.prototype.toString.apply(e)}function So(e){const t=e.ownerDocument.defaultView.getComputedStyle(e);return{top:parseInt(t.borderTopWidth,10),right:parseInt(t.borderRightWidth,10),bottom:parseInt(t.borderBottomWidth,10),left:parseInt(t.borderLeftWidth,10)}}function Oo(e,t){for(const o of ig)e[o]=t[o]}function Vo(e){return!!og(e)&&e===e.ownerDocument.body}function Ro({target:e,viewportOffset:t=0}){const o=Lo(e);for(let n=o,i=null;n;){let r;r=n==o?zo(e):zo(i),Io(r,()=>jo(e,n));const a=jo(e,n);Fo(n,a,t),n.parent==n?n=null:(i=n.frameElement,n=n.parent)}}function Fo(e,t,o){const n=t.clone().moveBy(0,o),i=t.clone().moveBy(0,-o),r=new ng(e).excludeScrollbarsAndBorders();if(![i,n].every((e)=>r.contains(e))){let{scrollX:a,scrollY:s}=e;Bo(i,r)?s-=r.top-t.top+o:No(n,r)&&(s+=t.bottom-r.bottom+o),Mo(t,r)?a-=r.left-t.left+o:Do(t,r)&&(a+=t.right-r.right+o),e.scrollTo(a,s)}}function Io(e,t){const o=Lo(e);for(let n,i;e!=o.document.body;)i=t(),n=new ng(e).excludeScrollbarsAndBorders(),n.contains(i)||(Bo(i,n)?e.scrollTop-=n.top-i.top:No(i,n)&&(e.scrollTop+=i.bottom-n.bottom),Mo(i,n)?e.scrollLeft-=n.left-i.left:Do(i,n)&&(e.scrollLeft+=i.right-n.right)),e=e.parentNode}function No(e,t){return e.bottom>t.bottom}function Bo(e,t){return e.topt.right}function Lo(e){return Po(e)?e.startContainer.ownerDocument.defaultView:e.ownerDocument.defaultView}function zo(e){if(Po(e)){let t=e.commonAncestorContainer;return t.nodeType==Node.TEXT_NODE&&(t=t.parentNode),t}return e.parentNode}function jo(e,t){const o=Lo(e),n=new ng(e);if(o===t)return n;for(let i=o;i!=t;){const e=i.frameElement,t=new ng(e).excludeScrollbarsAndBorders();n.moveBy(t.left,t.top),i=i.parent}return n}function qo(e,t){return(o,n)=>{const i=n.newSelection,r=new bp,a=[];for(const e of i.getRanges())a.push(t.toModelRange(e));r.setRanges(a,i.isBackward),r.isEqual(e.selection)||e.enqueueChanges(()=>{e.selection.setTo(r)})}}function Ho(){return(e,t,o,n)=>{const i=t.selection;if(!i.isCollapsed&&o.consume(i,'selection')){n.viewSelection.removeAllRanges();for(const e of i.getRanges()){const t=n.mapper.toViewRange(e);n.viewSelection.addRange(t,i.isBackward)}}}}function Wo(){return(e,t,o,n)=>{const i=t.selection;if(i.isCollapsed&&o.consume(i,'selection')){const e=i.getFirstPosition(),t=n.mapper.toViewPosition(e),o=fc.breakAttributes(t);n.viewSelection.removeAllRanges(),n.viewSelection.addRange(new Zd(o,o))}}}function $o(e){return(t,o,n,i)=>{const r=e instanceof Kd?e.clone(!0):e(o.value,o,o.selection,n,i);if(r){const e='selectionAttribute:'+o.key;Uo(o.selection,i.viewSelection,r,n,e)}}}function Ko(e){return(t,o,n,i)=>{const r='function'==typeof e?e(o,n,i):e;if(r){r.id||(r.id=o.markerName);const e=qe(r),t='selectionMarker:'+o.markerName;Uo(o.selection,i.viewSelection,e,n,t)}}}function Uo(e,t,o,n,i){if(!e.isCollapsed)return;if(!n.consume(e,i))return;let r=t.getFirstPosition();Qo(r.parent)&&(r=r.getLastMatchingPosition((e)=>e.item.is('uiElement'))),r=fc.wrapPosition(r,o),t.removeAllRanges(),t.addRange(new Zd(r,r))}function Qo(e){if(!e.is('element'))return!1;for(const t of e.getChildren())if(!t.is('uiElement'))return!1;return!0}function Jo(){return(e,t,o,n)=>{for(const i of n.viewSelection.getRanges())i.isCollapsed&&i.end.parent.document&&fc.mergeAttributes(i.start);n.viewSelection.removeAllRanges()}}function Go(){return(e,t,o,n)=>n.viewSelection.setFake(!1)}function Yo(e){return e instanceof HTMLTextAreaElement?e.value:e.innerHTML}function Xo(e,t){e instanceof HTMLTextAreaElement&&(e.value=t),e.innerHTML=t}function Zo(e){return(e+'').toLowerCase()}function en({origin:e,originKeystrokeHandler:t,originFocusTracker:o,toolbar:n,beforeFocus:i,afterBlur:r}){o.add(n.element),t.set('Alt+F10',(e,t)=>{o.isFocused&&!n.focusTracker.isFocused&&(i&&i(),n.focus(),t())}),n.keystrokes.set('Esc',(t,o)=>{n.focusTracker.isFocused&&(e.focus(),r&&r(),o())})}function tn(e){return Array.isArray(e)?{items:e}:e?Object.assign({items:[]},e):{items:[]}}function on(e){return e.every((e)=>'string'==typeof e)}function nn(e){return!!e&&((e.value&&(e=e.value),Array.isArray(e))?e.some(nn):!!(e instanceof bg))}function rn(e,t){return e.map((e)=>e instanceof bg?e.getValue(t):e)}function an(e,t,{node:o}){let n=rn(e,o);n=1==e.length&&e[0]instanceof _g?n[0]:n.reduce(bn,''),vn(n)?t.remove():t.set(n)}function sn(e){return{set(t){e.textContent=t},remove(){e.textContent=''}}}function ln(e,t,o){return{set(n){e.setAttributeNS(o,t,n)},remove(){e.removeAttributeNS(o,t)}}}function dn(e,t){return{set(o){e.style[t]=o},remove(){e.style[t]=null}}}function cn(e){const t=fg(e,(e)=>{if(e&&(e instanceof bg||yn(e)||wn(e)||xn(e)))return e});return t}function un(e){if('string'==typeof e?e=gn(e):e.text&&fn(e),e.on&&(e.eventListeners=pn(e.on),delete e.on),!e.text){e.attributes&&mn(e.attributes);const t=[];if(e.children)if(xn(e.children))t.push(e.children);else for(const o of e.children)yn(o)||wn(o)||so(o)?t.push(o):t.push(new hg(o));e.children=t}return e}function mn(e){for(const t in e)e[t].value&&(e[t].value=[].concat(e[t].value)),hn(e,t)}function pn(e){for(const t in e)hn(e,t);return e}function gn(e){return{text:[e]}}function fn(e){Array.isArray(e.text)||(e.text=[e.text])}function hn(e,t){Array.isArray(e[t])||(e[t]=[e[t]])}function bn(e,t){return vn(t)?e:vn(e)?t:`${e} ${t}`}function kn(e,t){for(const o in t)e[o]?e[o].push(...t[o]):e[o]=t[o]}function _n(e,t){if(t.attributes&&(!e.attributes&&(e.attributes={}),kn(e.attributes,t.attributes)),t.eventListeners&&(!e.eventListeners&&(e.eventListeners={}),kn(e.eventListeners,t.eventListeners)),t.text&&e.text.push(...t.text),t.children&&t.children.length){if(e.children.length!=t.children.length)throw new ha('ui-template-extend-children-mismatch: The number of children in extended definition does not match.');let o=0;for(const n of t.children)_n(e.children[o++],n)}}function vn(e){return!e&&0!==e}function wn(e){return e instanceof yg}function yn(e){return e instanceof hg}function xn(e){return e instanceof gg}function An(){return{children:[],bindings:[],attributes:{}}}function Cn(e){return'class'==e||'style'==e}function Tn(e){for(;e&&'html'!=e.tagName.toLowerCase();){if('static'!=zp.window.getComputedStyle(e).position)return e;e=e.parentElement}return null}function Pn({element:e,target:t,positions:o,limiter:n,fitInViewport:i}){za(t)&&(t=t()),za(n)&&(n=n());const r=Tn(e.parentElement),a=new ng(e),s=new ng(t);let l,d;if(!n&&!i)[d,l]=En(o[0],s,a);else{const e=n&&new ng(n).getVisible(),t=i&&new ng(zp.window);[d,l]=Sn(o,s,a,e,t)||En(o[0],s,a)}let{left:c,top:u}=On(l);if(r){const e=On(new ng(r)),t=So(r);c-=e.left,u-=e.top,c+=r.scrollLeft,u+=r.scrollTop,c-=t.left,u-=t.top}return{left:c,top:u,name:d}}function En(e,t,o){const{left:n,top:i,name:r}=e(t,o);return[r,o.clone().moveTo(n,i)]}function Sn(e,t,o,n,i){let r=0,a=0,s,l;const d=o.getArea();return e.some((e)=>{function c(){a=g,r=p,s=m,l=u}const[u,m]=En(e,t,o);let p,g;if(n)if(i){const e=n.getIntersection(i);p=e?e.getIntersectionArea(m):0}else p=n.getIntersectionArea(m);return i&&(g=i.getIntersectionArea(m)),i&&!n?g>a&&c():!i&&n?p>r&&c():g>a&&p>=r?c():g>=a&&p>r&&c(),p===d}),s?[l,s]:null}function On({left:e,top:t}){const{scrollX:o,scrollY:n}=zp.window;return{left:e+o,top:t+n}}function Vn(e){return og(e)?e:Po(e)?e.commonAncestorContainer:'function'==typeof e?Vn(e()):null}function Rn(e,t){return e.top-t.height-Rg.arrowVerticalOffset}function Fn(e){return e.bottom+Rg.arrowVerticalOffset}function In(e){return!!(e.focus&&'none'!=zp.window.getComputedStyle(e.element).display)}function Nn(e){return e.bindTemplate.to((t)=>{t.target===e.element&&t.preventDefault()})}function Bn(e){const t=e.files?Array.from(e.files):[],o=e.items?Array.from(e.items):[];return t.length?t:o.filter((e)=>'file'===e.kind).map((e)=>e.getAsFile())}function Mn(e,t){const o=t.target.ownerDocument,n=t.clientX,i=t.clientY;let r;return o.caretRangeFromPoint&&o.caretRangeFromPoint(n,i)?r=o.caretRangeFromPoint(n,i):t.rangeParent&&(r=o.createRange(),r.setStart(t.rangeParent,t.rangeOffset),r.collapse(!0)),r?e.domConverter.domRangeToView(r):e.selection.getFirstRange()}function Dn(e){return e=e.replace(//g,'>').replace(/\n\n/g,'

').replace(/\n/g,' ').replace(/^\s/,' ').replace(/\s$/,' ').replace(/\s\s/g,'  '),-1

')&&(e=`

${e}

`),e}function Ln(e){return e.replace(/(\s+)<\/span>/g,(e,t)=>1==t.length?' ':t)}function zn(e){let t='';if(e.is('text')||e.is('textProxy'))t=e.data;else if(e.is('img')&&e.hasAttribute('alt'))t=e.getAttribute('alt');else{let o=null;for(const n of e.getChildren()){const e=zn(n);o&&(o.is('containerElement')||n.is('containerElement'))&&(Hg.includes(o.name)||Hg.includes(n.name)?t+='\n':t+='\n\n'),t+=e,o=n}}return t}function jn(e,t,o,n){const i=o.isCollapsed,r=o.getFirstRange(),a=r.start.parent,s=r.end.parent;if(n.limits.has(a.name)||n.limits.has(s.name))return void(i||a!=s||e.deleteContent(o,t));if(i)qn(t,o,r.start);else{const n=!(r.start.isAtStart&&r.end.isAtEnd);e.deleteContent(o,t,{leaveUnmerged:n}),n&&(a==s?qn(t,o,o.focus):o.setCollapsedAt(s))}}function qn(e,t,o){const n=o.parent,i=new n.constructor(n.name,n.getAttributes());o.isAtEnd?e.insert(i,o.parent,'after'):o.isAtStart?e.insert(i,o.parent,'before'):e.split(o),t.setCollapsedAt(o.parent.nextSibling)}function Hn(e,t){function o(){a&&(i.push(a),a=null)}function n(e){return a&&a.type==e}const i=[];let r=0,a;return e.forEach((e)=>{'equal'==e?(o(),r++):'insert'==e?(n('insert')?a.values.push(t[r]):(o(),a={type:'insert',index:r,values:[t[r]]}),r++):n('delete')?a.howMany++:(o(),a={type:'delete',index:r,howMany:1})}),o(),i}function Wn(e){return!!e.ctrlKey||Zg.includes(e.keyCode)}function $n(e,t){return e instanceof Wd&&t instanceof Wd?e.data===t.data:e===t}function Kn(e){if(1==e.newChildren.length-e.oldChildren.length){const t=bo(e.oldChildren,e.newChildren,$n),o=Hn(t,e.newChildren);if(!(1e.node).reduce((e,t)=>e.getCommonAncestor(t,{includeSelf:!0}));return t?t.getAncestors({includeSelf:!0,parentFirst:!0}).find((e)=>e.is('containerElement')||e.is('rootElement')):void 0}function Qn(e){if(0==e.length)return!1;for(const t of e)if('children'===t.type&&!Kn(t))return!0;return!1}function Jn(e){return e.every((e)=>e.is('text'))}function Gn(e){let t=null,o=null;for(let n=0;ne.start.isBefore(t.start)?-1:1);for(let n=1;ne+t.data,'')}function ii(){return new Nf}function ri(e,t,o,n){if(S(e)){for(const i of e)ri(i,t,o,n);return}const i=Array.from(e.getAttributeKeys());i.push(t.key);const r={name:e.name||'$text',attributes:i,inside:o.context};n.schema.check(r)&&n.batch.setAttribute(t.key,t.value,e)}function ai(){return new Bf}function si(e){const t=e.next();return t.done?null:t.value}function li(e){return'blockQuote'==e.parent.name?e.parent:null}function di(e){let t=0,o;const n=[];for(;t{if(o.test(t.input,{name:!0,class:'image'})&&n.schema.check({name:'image',inside:t.context,attributes:'src'})){const e=Array.from(t.input.getChildren()).find((e)=>e.is('img'));if(e&&e.hasAttribute('src')&&o.test(e,{name:!0})){const i=n.convertItem(e,o,t);t.context.push(i);const r=n.convertChildren(t.input,o,t);t.context.pop(),n.batch.insert(r,i),t.output=i}}}}function gi(e,t,o=hi){for(const n of e)n.on(`addAttribute:${t}:image`,o()),n.on(`changeAttribute:${t}:image`,o()),n.on(`removeAttribute:${t}:image`,o())}function fi(){return(e,t,o,n)=>{const i=e.name.split(':'),r=i[0]+':'+i[1],a=t.item;if(o.consume(a,r)){const e=n.mapper.toViewElement(a),o=e.getChild(0),r=i[0];if('removeAttribute'==r){const e=t.attributeOldValue;e.data&&(o.removeAttribute('srcset'),o.removeAttribute('sizes'),e.width&&o.removeAttribute('width'))}else{const e=t.attributeNewValue;e.data&&(o.setAttribute('srcset',e.data),o.setAttribute('sizes','100vw'),e.width&&o.setAttribute('width',e.width))}}}}function hi(){return(e,t,o,n)=>{const i=e.name.split(':'),r=i[0]+':'+i[1],a=t.item;if(o.consume(a,r)){const e=n.mapper.toViewElement(a),o=e.getChild(0),r=i[0];'removeAttribute'==r?o.removeAttribute(t.attributeKey):o.setAttribute(t.attributeKey,t.attributeNewValue)}}}function bi(e,t,o,n){const i=t.input;if(o.test(i,{name:!0,attribute:['src']})){const e=ki({name:'image',attributes:['src']},t.context,n.schema);if(e){const r=Object.assign({},t);r.context=e,t.output=n.convertItem(i,o,r),lh.add(t.output)}}}function ki(e,t,o){t=t.slice();for(const n={name:e.name,attributes:e.attributes,inside:t};t.length&&!o.check(n);){const e=t.pop(),n='string'==typeof e?e:e.name;if(o.limits.has(n))return null}return t.length?t:null}function _i(e,t){if(t.output&&t.output.is('element')){const e=[];for(let o=t.output.childCount-1;0<=o;o--){const n=t.output.getChild(o);if(lh.has(n)){const i=t.output.childCount-o-1;let r=null;0t.priority)return!0;return!(e.priorityyi(t.class)}function yi(e){return Array.isArray(e)?e.sort().join(','):e}function xi(e){return!!e.getCustomProperty(ch)}function Ai(e,t={}){function o(e){return Array.isArray(e)?e:[e]}return e.setAttribute('contenteditable','false'),e.getFillerOffset=Si,e.addClass(mh),e.setCustomProperty(ch,!0),t.label&&Ti(e,t.label),Ci(e,(e,t)=>e.addClass(...o(t.class)),(e,t)=>e.removeClass(...o(t.class))),e}function Ci(e,t,o){const n=new dh;n.on('change:top',(n,i)=>{i.oldDescriptor&&o(e,i.oldDescriptor),i.newDescriptor&&t(e,i.newDescriptor)}),e.setCustomProperty('addHighlight',(e,t)=>n.add(t)),e.setCustomProperty('removeHighlight',(e,t)=>n.remove(t))}function Ti(e,t){e.setCustomProperty(uh,t)}function Pi(e){const t=e.getCustomProperty(uh);return t?'function'==typeof t?t():t:''}function Ei(e){return e.addClass('ck-editable'),e.setAttribute('contenteditable',e.isReadOnly?'false':'true'),e.on('change:isReadOnly',(t,o,n)=>{e.setAttribute('contenteditable',n?'false':'true')}),e.on('change:isFocused',(t,o,n)=>{n?e.addClass('ck-editable_focused'):e.removeClass('ck-editable_focused')}),e}function Si(){return null}function Oi(e,t){return e.setCustomProperty(gh,!0),Ai(e,{label:function(){const o=e.getChild(0),n=o.getAttribute('alt');return n?`${n} ${t}`:t}})}function Vi(e){return!!e.getCustomProperty(gh)&&xi(e)}function Ri(e){const t=e.getSelectedElement();return!!(t&&Vi(t))}function Fi(e){return e instanceof Qs&&'image'==e.name}function Ii(){return new Jd('figure',{class:'image'},new ac('img'))}function Ni(e){return e==mc.arrowright||e==mc.arrowleft||e==mc.arrowup||e==mc.arrowdown}function Bi(e){return e==mc.delete||e==mc.backspace}function Mi(e){return te(e)==_h}function Di(e){for(;e;){if(e instanceof Yd&&!(e instanceof Hp))return!0;e=e.parent}return!1}function Li({emitter:e,activator:t,callback:o,contextElements:n}){e.listenTo(document,'mousedown',(e,{target:i})=>{if(t()){for(const e of n)if(e.contains(i))return;o()}})}function zi({view:e}){e.listenTo(e.element,'submit',(t,o)=>{o.preventDefault(),e.fire('submit')},{useCapture:!0})}function ji(e){const t=e.plugins.get('ContextualBalloon');if(Ri(e.editing.view.selection)){const o=qi(e);t.updatePosition(o)}}function qi(e){const t=e.editing.view,o=Rg.defaultPositions;return{target:t.domConverter.viewToDom(t.selection.getSelectedElement()),positions:[o.northArrowSouth,o.southArrowNorth]}}function Hi(e){const t=/^image\/(jpeg|png|gif|bmp)$/;return t.test(e.type)}function Wi(e){const t=e.getSelectedElement();if(t)return Ys.createAfter(t);const o=e.getSelectedBlocks().next().value;if(o){if(o.isEmpty)return Ys.createAt(o);const t=Ys.createAfter(o);return e.focus.isTouching(t)?t:Ys.createBefore(o)}return e.focus}function $i(e){return Array.from(e.types).includes('text/html')&&''!==e.getData('text/html')}function Ki(){const e=new pc('div',{class:'ck-progress-bar'});return e.setCustomProperty(Zh,!0),e}function Ui(e){for(const t of e.getChildren())if(t.getCustomProperty(Zh))return t}function Qi(e,t){return t.check({name:'paragraph',inside:Ys.createBefore(e)})}function Ji(e,t,o,n){if(o.test(t.input,{name:t.input.name})&&Yi(t.input,t.context,n.schema,!1)){t.context.push('paragraph');const e=n.convertItem(t.input,o,t);t.context.pop(),t.output=e}}function Gi(e,t,o,n){if(!t.output)return;const r=nb.paragraphLikeElements.has(t.input.name)&&!t.output.is('element'),i=t.input.is('documentFragment')||t.input.is('element')&&t.output.is('element')||r;if(!i)return;const a=t.output.is('element');a&&t.context.push(t.output);let s=null;for(let a=0;a{ib.delete(e),t.insertElement('paragraph',e)})}}function er(e,t,o){return o.check({name:t,inside:Ys.createBefore(e)})}function tr(e,t){const o=new bf(t);o.bind('label','isOn','isEnabled','withText','keystroke','tooltip').to(e);const n=new hb(t);return new fb(t,o,n)}function or(e,t){const o=tr(e,t),n=o.listView=new ub(t);return n.items.bindTo(e.items).using((e)=>{const o=new mb(t);return o.bind(...Object.keys(e)).to(e),o}),n.items.delegate('execute').to(o),o.panelView.children.add(n),o.on('change:isOpen',(e,t,n)=>{n?nr(o):o.stopListening(document)}),o.on('execute',()=>{o.isOpen=!1}),o.keystrokes.set('arrowdown',(e,t)=>{o.isOpen&&(n.focus(),t())}),o.keystrokes.set('arrowup',(e,t)=>{o.isOpen&&(n.focusLast(),t())}),o}function nr(e){e.listenTo(document,'click',(t,{target:o})=>{e.element==o||e.element.contains(o)||(e.isOpen=!1)})}function ir(e,t){return Array.prototype.concat(...e.map((e)=>[e,t]))}function rr(e,t,o){const n=e.document;if(!n)throw new ha('view-placeholder-element-is-detached: Provided element is not placed in document.');ar(e),xb.has(n)||(xb.set(n,new Map),yb.listenTo(n,'render',()=>sr(n),{priority:'high'})),e.setAttribute('data-placeholder',t),xb.get(n).set(e,o),lr(e,o)}function ar(e){const t=e.document;e.removeClass('ck-placeholder'),e.removeAttribute('data-placeholder'),xb.has(t)&&xb.get(t).delete(e)}function sr(e){const t=xb.get(e);for(const[o,n]of t)lr(o,n)}function lr(e,t){const o=e.document;if(o){const n=o.selection,i=n.anchor;if(t&&!t())return void e.removeClass('ck-placeholder');const r=!Array.from(e.getChildren()).some((e)=>!e.is('uiElement'));return!o.isFocused&&r?void e.addClass('ck-placeholder'):void(r&&i&&i.parent!==e?e.addClass('ck-placeholder'):e.removeClass('ck-placeholder'))}}function dr(e,t){return()=>{const o=new Yd('figcaption');return o.document=e,o.setCustomProperty(Ab,!0),rr(o,t),Ei(o)}}function cr(e){for(const t of e.getChildren())if(t instanceof Qs&&'caption'==t.name)return t;return null}function ur(e){const t=e.parent;return'figcaption'==e.name&&t&&'figure'==t.name&&t.hasClass('image')?{name:!0}:null}function mr(e,t,o,n){if('insert'===t){const e=new Js({boundaries:o.range,ignoreElementEnd:!0});for(const t of e){const e=t.item;'elementStart'==t.type&&Fi(e)&&!cr(e)&&n.document.enqueueChanges(()=>{cr(e)||n.appendElement('caption',e)})}}}function pr(e,t=!0){return(o,n,i,r)=>{const a=n.item;if((a.childCount||t)&&Fi(a.parent)){if(!i.consume(n.item,'insert'))return;const t=r.mapper.toViewElement(n.range.start.parent),o=e instanceof Kd?e.clone(!0):e();a.childCount||o.addClass('ck-hidden'),gr(o,n.item,t,r.mapper)}}}function gr(e,t,o,n){const i=Xd.createAt(o,'end');fc.insert(i,e),n.bindElements(t,e)}function fr(e){const t=e.getAncestors({includeSelf:!0}),o=t.find((e)=>'caption'==e.name);return o&&o.parent&&'image'==o.parent.name?o:null}function hr(e){return(t,o,n,i)=>{const r=t.name.split(':')[0],a=r+':imageStyle';if(n.test(o.item,a)){const t=_r(o.attributeNewValue,e),s=_r(o.attributeOldValue,e),l=i.mapper.toViewElement(o.item),d=vr(r,s,l),c=wr(r,t,l);(d||c)&&n.consume(o.item,a)}}}function br(e){const t=e.filter((e)=>!e.isDefault);return(e,o,n,i)=>{for(const r of t)kr(r,o,n,i)}}function kr(e,t,o,n){const i=t.input,r=t.output;if(o.test(i,{class:e.className})&&Fi(r)){const a=[...r.getAttributeKeys(),'imageStyle'];n.schema.check({name:'image',inside:t.context,attributes:a})&&(o.consume(i,{class:e.className}),r.setAttribute('imageStyle',e.name))}}function _r(e,t){for(const o of t)if(o.name===e)return o}function vr(e,t,o){return t&&('changeAttribute'==e||'removeAttribute'==e)&&(o.removeClass(t.className),!0)}function wr(e,t,o){return t&&('addAttribute'==e||'changeAttribute'==e)&&(o.addClass(t.className),!0)}function yr(e){const t=Db.defaultStyles,o=Db.defaultIcons;if('string'==typeof e)t[e]?e=Object.assign({},t[e]):(ka.warn('image-style-not-found: There is no such image style of given name.',{name:e}),e={name:e});else if(t[e.name]){const o=t[e.name],n=Object.assign({},e);for(const t in o)e.hasOwnProperty(t)||(n[t]=o[t]);e=n}return'string'==typeof e.icon&&o[e.icon]&&(e.icon=o[e.icon]),e}function xr(e,t){return new Xs(Ar(e,t,!0),Ar(e,t,!1))}function Ar(e,t,o){let n=e.textNode||(o?e.nodeBefore:e.nodeAfter),i=null;for(;n&&n.getAttribute('linkHref')==t;)i=n,n=o?n.previousSibling:n.nextSibling;return i?Ys.createAt(i,o?'before':'after'):e}function Cr(e){return e.getAncestors().find((e)=>e instanceof Wb)}function Tr(e,t,o){const n=t?e[0]:e[e.length-1];if(n.is('listItem'))for(let i=n[t?'previousSibling':'nextSibling'],r=n.getAttribute('indent');i&&i.is('listItem')&&i.getAttribute('indent')>=o;)r>i.getAttribute('indent')&&(r=i.getAttribute('indent')),i.getAttribute('indent')==r&&e[t?'unshift':'push'](i),i=i[t?'previousSibling':'nextSibling']}function Pr(e,t){return t.check({name:'listItem',attributes:['type','indent'],inside:Ys.createBefore(e)})}function Er(e,t){const o=Sr(e,!1);if(o)return void t.setAttribute('type',o.getAttribute('type'),e);const n=Sr(e,!0);n&&t.setAttribute('type',n.getAttribute('type'),e)}function Sr(e,t){for(let o=e[t?'nextSibling':'previousSibling'];o&&o.is('listItem')&&o.getAttribute('indent')>=e.getAttribute('indent');){if(o.getAttribute('indent')==e.getAttribute('indent'))return o;o=o[t?'nextSibling':'previousSibling']}return null}function Or(){const e=!this.isEmpty&&('ul'==this.getChild(0).name||'ol'==this.getChild(0).name);return this.isEmpty||e?0:null}function Vr(e,t,o,n){if(o.test(t.item,'insert')&&o.test(t.item,'addAttribute:type')&&o.test(t.item,'addAttribute:indent')){o.consume(t.item,'insert'),o.consume(t.item,'addAttribute:type'),o.consume(t.item,'addAttribute:indent');const e=t.item,i=Kr(e,n.mapper),r=n.mapper.toViewPosition(Ys.createBefore(e));Jr(e,i,n.mapper,r)}}function Rr(e,t,o,n){if(!o.consume(t.item,'changeAttribute:type'))return;const i=n.mapper.toViewElement(t.item);fc.breakContainer(Xd.createBefore(i)),fc.breakContainer(Xd.createAfter(i));let r=i.parent;const a='numbered'==t.attributeNewValue?'ol':'ul';r=fc.rename(r,a),Qr(r,r.nextSibling),Qr(r.previousSibling,r)}function Fr(e,t,o,n){if(!o.consume(t.item,'remove'))return;let i=n.mapper.toViewPosition(t.sourcePosition);i=i.getLastMatchingPosition((e)=>!e.item.is('li'));const r=i.nodeAfter;fc.breakContainer(Xd.createBefore(r)),fc.breakContainer(Xd.createAfter(r));const a=r.parent,s=a.previousSibling,l=Zd.createOn(a);fc.remove(l),s&&s.nextSibling&&Qr(s,s.nextSibling),Gr(t.item.getAttribute('indent')+1,t.sourcePosition,l.start,r,n.mapper),'$graveyard'==t.item.root.rootName&&n.mapper.unbindModelElement(t.item)}function Ir(e,t,o,n){if(!o.consume(t.item,'changeAttribute:indent'))return;const i=n.mapper.toViewElement(t.item);fc.breakContainer(Xd.createBefore(i)),fc.breakContainer(Xd.createAfter(i));const r=i.parent,a=r.previousSibling,s=Zd.createOn(r);fc.remove(s);let l;a&&a.nextSibling&&(l=Qr(a,a.nextSibling)),l||(l=s.start),Gr(t.attributeOldValue+1,t.range.start,s.start,i,n.mapper),Jr(t.item,i,n.mapper,l)}function Nr(e,t,o,n){if('listItem'!=t.item.name){let e=n.mapper.toViewPosition(t.range.start);const o=[];for(;('ul'==e.parent.name||'ol'==e.parent.name)&&(e=fc.breakContainer(e),'li'==e.parent.name);){const t=e,n=Xd.createAt(e.parent,'end');if(!t.isEqual(n)){const e=fc.remove(new Zd(t,n));o.push(e)}e=Xd.createAfter(e.parent)}if(0e.is('ul')||e.is('ol')),i=new Qd({startPosition:Xd.createAt(e,0)});for(const e of i)if('elementStart'==e.type&&e.item.is('li')){t.viewPosition=e.previousPosition;break}else if('elementEnd'==e.type&&e.item==n){t.viewPosition=e.nextPosition;break}}}function jr(e,t){const o=t.viewPosition,n=o.parent,i=t.mapper;if('ul'==n.name||'ol'==n.name){if(!o.isAtEnd){const e=i.toModelElement(o.nodeAfter);t.modelPosition=Ys.createBefore(e)}else{const e=i.toModelElement(o.nodeBefore),n=i.getModelLength(o.nodeBefore);t.modelPosition=Ys.createBefore(e).getShiftedBy(n)}e.stop()}else if('li'==n.name&&o.nodeBefore&&('ul'==o.nodeBefore.name||'ol'==o.nodeBefore.name)){const r=i.toModelElement(n);let a=1,s=o.nodeBefore;for(;s&&(s.is('ul')||s.is('ol'));)a+=i.getModelLength(s),s=s.previousSibling;t.modelPosition=Ys.createBefore(r).getShiftedBy(a),e.stop()}}function qr(e){return(t,o,n,i)=>{if('transparent'!=i.type)if('remove'==o){const t=n.range.end.offset-n.range.start.offset,o=n.sourcePosition._getTransformedByInsertion(n.range.start,t,!0);Hr(o,e,i),Wr(o,!1,e,i)}else if('move'==o){const t=n.range.end.offset-n.range.start.offset,o=n.sourcePosition._getTransformedByInsertion(n.range.start,t,!0);Hr(o,e,i),Wr(o,!1,e,i),Hr(n.range.start,e,i),Wr(n.range.start,!1,e,i),Hr(n.range.end,e,i),Wr(n.range.end,!0,e,i)}else if('rename'==o&&'listItem'==n.oldName&&'listItem'!=n.newName){const t=n.element;e.enqueueChanges(()=>{i.removeAttribute('indent',t),i.removeAttribute('type',t)});const o=Ys.createAfter(n.element);Hr(o,e,i)}else'insert'==o&&(Hr(n.range.start,e,i),Wr(n.range.start,!1,e,i),Hr(n.range.end,e,i),Wr(n.range.end,!0,e,i))}}function Hr(e,t,o){let n=e.nodeAfter;n&&'listItem'==n.name&&t.enqueueChanges(()=>{const e=n.previousSibling,t=e&&e.is('listItem')?e.getAttribute('indent')+1:0;let i=n.getAttribute('indent')-t;const r=[];for(;n&&'listItem'==n.name&&n.getAttribute('indent')>t;){i>n.getAttribute('indent')&&(i=n.getAttribute('indent'));const e=n.getAttribute('indent')-i;r.push({item:n,indent:e}),n=n.nextSibling}if(0{const e=Yr(i,!t);if(e&&e!=i)for(const o=e.getAttribute('indent'),r=e.getAttribute('type');i&&i.is('listItem')&&i.getAttribute('indent')>=o;)i.getAttribute('type')!=r&&i.getAttribute('indent')==o&&n.setAttribute('type',r,i),i=i[t?'previousSibling':'nextSibling']})}function $r(e,[t,o]){let n=t.is('documentFragment')?t.getChild(0):t;if(n&&n.is('listItem')){const e=o.getFirstPosition();let t=null;if(e.parent.is('listItem')?t=e.parent:e.nodeBefore&&e.nodeBefore.is('listItem')&&(t=e.nodeBefore),t){const e=t.getAttribute('indent');if(0e){if(!l||t.mapper.toViewElement(c))return c;c=c[o];continue}if(!i)return null;c=c[o]}return null}function Qr(e,t){return e&&t&&('ul'==e.name||'ol'==e.name)&&e.name==t.name?fc.mergeContainers(Xd.createAfter(e)):null}function Jr(e,t,o,n){const i=t.parent;let r=Ur(e,{sameIndent:!0,smallerIndent:!0,checkAllSiblings:!0}),a;if(r&&r.getAttribute('indent')==e.getAttribute('indent')){const e=o.toViewElement(r);a=fc.breakContainer(Xd.createAfter(e))}else r=e.previousSibling,a=r&&'listItem'==r.name?r.getAttribute('indent')=o;)e=e[n],e.getAttribute('indent')==o&&(i=e);return i}function Xr(e){return e.getLastMatchingPosition((e)=>e.item.is('uiElement'))}function Zr(e){let t=1;for(const o of e.getChildren())if('ul'==o.name||'ol'==o.name)for(const e of o.getChildren())t+=Zr(e);return t}var ea=Number.POSITIVE_INFINITY,ta=Math.min,oa=Math.max,na=Math.floor;Object.defineProperty(t,'__esModule',{value:!0});var ia=Object.getPrototypeOf,ra=function(e){return ia(Object(e))},aa=function(e){var t=!1;if(null!=e&&'function'!=typeof e.toString)try{t=!!(e+'')}catch(t){}return t},sa=function(e){return!!e&&'object'==typeof e},la=Object.prototype,da=Function.prototype.toString,ca=la.hasOwnProperty,ua=da.call(Object),ma=la.toString,pa=function(e){if(!sa(e)||ma.call(e)!='[object Object]'||aa(e))return!1;var t=ra(e);if(null===t)return!0;var o=ca.call(t,'constructor')&&t.constructor;return'function'==typeof o&&o instanceof o&&da.call(o)==ua};class ga{constructor(e,t){this._config={},t&&this.define(t),e&&this._setObjectToTarget(this._config,e)}set(e,t){this._setToTarget(this._config,e,t)}define(e,t){this._setToTarget(this._config,e,t,!0)}get(e){return this._getFromSource(this._config,e)}_setToTarget(e,t,o,n=!1){if(pa(t))return void this._setObjectToTarget(e,t,n);const i=t.split('.');t=i.pop();for(const r of i)pa(e[r])||(e[r]={}),e=e[r];return pa(o)?(pa(e[t])||(e[t]={}),e=e[t],void this._setObjectToTarget(e,o,n)):void(n&&'undefined'!=typeof e[t]||(e[t]=o))}_getFromSource(e,t){const o=t.split('.');t=o.pop();for(const n of o){if(!pa(e[n])){e=null;break}e=e[n]}return e?e[t]:void 0}_setObjectToTarget(e,t,o){Object.keys(t).forEach((n)=>{this._setToTarget(e,n,t[n],o)})}}const fa='https://ckeditor5.github.io/docs/nightly/ckeditor5/latest/framework/guides/support/error-codes.html';class ha extends Error{constructor(e,t){e=n(e),t&&(e+=' '+JSON.stringify(t)),super(e),this.name='CKEditorError',this.data=t}static isCKEditorError(e){return e instanceof ha}}const ba={error(e,t){console.error(n(e),t)},warn(e,t){console.warn(n(e),t)}};var ka=ba;class _a{constructor(e,t=[]){this._editor=e,this._availablePlugins=new Map,this._plugins=new Map;for(const o of t)this._availablePlugins.set(o,o),o.pluginName&&this._availablePlugins.set(o.pluginName,o)}*[Symbol.iterator](){for(const e of this._plugins)'function'==typeof e[0]&&(yield e)}get(e){return this._plugins.get(e)}load(e,t=[]){function o(e){return u.includes(e)||a.get(e)||l.has(e)?void 0:n(e).catch((t)=>{throw ka.error('plugincollection-load: It was not possible to load the plugin.',{plugin:e}),t})}function n(e){return new Promise((n)=>{l.add(e),e.requires&&e.requires.forEach((n)=>{const r=i(n);if(t.includes(r))throw new ha('plugincollection-required: Cannot load a plugin because one of its dependencies is listed inthe `removePlugins` option.',{plugin:r,requiredBy:e});o(r)});const r=new e(s);a._add(e,r),d.push(r),n()})}function i(e){return'function'==typeof e?e:a._availablePlugins.get(e)}function r(e){return e.map((e)=>i(e)).filter((e)=>!!e)}const a=this,s=this._editor,l=new Set,d=[],c=r(e),u=r(t),m=function(e){const t=[];for(const o of e)i(o)||t.push(o);return t.length?t:null}(e);if(m){const e='plugincollection-plugin-not-found: Some plugins are not available and could not be loaded.';return ka.error(e,{plugins:m}),Promise.reject(new ha(e,{plugins:m}))}return Promise.all(c.map(o)).then(()=>d)}destroy(){const e=Array.from(this).map(([,e])=>e).filter((e)=>'function'==typeof e.destroy).map((e)=>e.destroy());return Promise.all(e)}_add(e,t){this._plugins.set(e,t);const o=e.pluginName;o&&(this._plugins.has(o)?ka.warn('plugincollection-plugin-name-conflict: Two plugins with the same name were loaded.',{pluginName:o,plugin1:this._plugins.get(o).constructor,plugin2:e}):this._plugins.set(o,t))}}class va{constructor(){this._commands=new Map}add(e,t){this._commands.set(e,t)}get(e){return this._commands.get(e)}execute(e,...t){const o=this.get(e);if(!o)throw new ha('commandcollection-command-not-found: Command does not exist.',{commandName:e});o.execute(...t)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const e of this.commands())e.destroy()}}let wa={};window.CKEDITOR_TRANSLATIONS=window.CKEDITOR_TRANSLATIONS||{},window.CKEDITOR_TRANSLATIONS.add=function(e,t){wa[e]=wa[e]||{},Object.assign(wa[e],t)};class ya{constructor(e){this.language=e||'en',this.t=(...e)=>this._t(...e)}_t(e,t){let o=i(this.language,e);return t&&(o=o.replace(/%(\d+)/g,(e,o)=>o{this._delegations||(this._delegations=new Map);for(const n of e){const e=this._delegations.get(n);e?e.set(t,o):this._delegations.set(n,new Map([[t,o]]))}}}},stopDelegating(e,t){if(this._delegations)if(!e)this._delegations.clear();else if(!t)this._delegations.delete(e);else{const o=this._delegations.get(e);o&&o.delete(t)}}};var Sa=Ea,Oa=function(e,t){return e===t||e!==e&&t!==t},Va=Object.prototype,Ra=Va.hasOwnProperty,Fa=function(e,t,o){var n=e[t];Ra.call(e,t)&&Oa(n,o)&&(o!==void 0||t in e)||(e[t]=o)},Ia=function(e,t,o,n){o||(o={});for(var i=-1,r=t.length;++ie?-1:1;return t*1.7976931348623157e308}return e===e?e:0},rs=function(e){var t=is(e),o=t%1;return t===t?o?t-o:t:0},as=oa,ss=function(e,t){if('function'!=typeof e)throw new TypeError('Expected a function');return t=as(void 0===t?e.length-1:rs(t),0),function(){for(var o=arguments,n=-1,i=as(o.length-t,0),r=Array(i);++ni?void 0:r,i=1),t=Object(t);++n{this.set(t,e[t])},this);_(this);const o=this[Ls];if(e in this&&!o.has(e))throw new ha('observable-set-cannot-override: Cannot override an existing property.');Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get(){return o.get(e)},set(t){const n=o.get(e);n===t&&o.has(e)||(o.set(e,t),this.fire('change:'+e,e,t,n))}}),this[e]=t},bind(...e){if(!e.length||!w(e))throw new ha('observable-bind-wrong-attrs: All attributes must be strings.');if(new Set(e).size!==e.length)throw new ha('observable-bind-duplicate-attrs: Attributes must be unique.');_(this);const t=this[js];e.forEach((e)=>{if(t.has(e))throw new ha('observable-bind-rebind: Cannot bind the same attribute more that once.')});const o=new Map;return e.forEach((e)=>{const n={attr:e,to:[]};t.set(e,n),o.set(e,n)}),{to:v,_observable:this,_bindAttrs:e,_to:[],_bindings:o}},unbind(...e){if(!(Ls in this))return;const t=this[js],o=this[zs];if(e.length){if(!w(e))throw new ha('observable-unbind-wrong-attrs: Attributes must be strings.');e.forEach((e)=>{const n=t.get(e);if(!n)return;let i,r,a,s;n.to.forEach((e)=>{i=e[0],r=e[1],a=o.get(i),s=a[r],s.delete(n),s.size||delete a[r],Object.keys(a).length||(o.delete(i),this.stopListening(i,'change'))}),t.delete(e)})}else o.forEach((e,t)=>{this.stopListening(t,'change')}),o.clear(),t.clear()},decorate(e){const t=this[e];if(!t)throw new ha('observablemixin-cannot-decorate-undefined: Cannot decorate an undefined method.',{object:this,methodName:e});this.on(e,(e,o)=>{e.return=t.apply(this,o)}),this[e]=function(...t){return this.fire(e,t)}}};var Hs=qs;Ds(qs,Sa);class Ws{constructor(e){this.parent=null,this._attrs=E(e)}get index(){let e;if(!this.parent)return null;if(null===(e=this.parent.getChildIndex(this)))throw new ha('model-node-not-found-in-parent: The node\'s parent does not contain this node.');return e}get startOffset(){let e;if(!this.parent)return null;if(null===(e=this.parent.getChildStartOffset(this)))throw new ha('model-node-not-found-in-parent: The node\'s parent does not contain this node.');return e}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const e=this.index;return null!==e&&this.parent.getChild(e+1)||null}get previousSibling(){const e=this.index;return null!==e&&this.parent.getChild(e-1)||null}get root(){let e=this;for(;e.parent;)e=e.parent;return e}get document(){return this.root==this?null:this.root.document||null}clone(){return new Ws(this._attrs)}getPath(){const e=[];for(let t=this;t.parent;)e.unshift(t.startOffset),t=t.parent;return e}getAncestors(e={includeSelf:!1,parentFirst:!1}){const t=[];for(let o=e.includeSelf?this:this.parent;o;)t[e.parentFirst?'push':'unshift'](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),n=e.getAncestors(t);let r=0;for(;o[r]==n[r]&&o[r];)r++;return 0==r?null:o[r-1]}remove(){this.parent.removeChildren(this.index)}hasAttribute(e){return this._attrs.has(e)}getAttribute(e){return this._attrs.get(e)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}setAttribute(e,t){this._attrs.set(e,t)}setAttributesTo(e){this._attrs=E(e)}removeAttribute(e){return this._attrs.delete(e)}clearAttributes(){this._attrs.clear()}toJSON(){const e={};return this._attrs.size&&(e.attributes=[...this._attrs]),e}}class $s extends Ws{constructor(e,t){super(t),this.data=e||''}get offsetSize(){return this.data.length}is(e){return'text'==e}clone(){return new $s(this.data,this.getAttributes())}toJSON(){const e=super.toJSON();return e.data=this.data,e}static fromJSON(e){return new $s(e.data,e.attributes)}}class Ks{constructor(e,t,o){if(this.textNode=e,0>t||t>e.offsetSize)throw new ha('model-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.');if(0>o||t+o>e.offsetSize)throw new ha('model-textproxy-wrong-length: Given length value is incorrect.');this.data=e.data.substring(t,t+o),this.offsetInText=t}get startOffset(){return null===this.textNode.startOffset?null:this.textNode.startOffset+this.offsetInText}get offsetSize(){return this.data.length}get endOffset(){return null===this.startOffset?null:this.startOffset+this.offsetSize}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(e){return'textProxy'==e}getPath(){const e=this.textNode.getPath();return 0e+t.offsetSize,0)}getNode(e){return this._nodes[e]||null}getNodeIndex(e){const t=this._nodes.indexOf(e);return-1==t?null:t}getNodeStartOffset(e){const t=this.getNodeIndex(e);return null===t?null:this._nodes.slice(0,t).reduce((e,t)=>e+t.offsetSize,0)}indexToOffset(e){if(e==this._nodes.length)return this.maxOffset;const t=this._nodes[e];if(!t)throw new ha('model-nodelist-index-out-of-bounds: Given index cannot be found in the node list.');return this.getNodeStartOffset(t)}offsetToIndex(e){let t=0;for(const o of this._nodes){if(e>=t&&ee.toJSON())}}class Qs extends Ws{constructor(e,t,o){super(t),this.name=e,this._children=new Us,o&&this.insertChildren(0,o)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}is(e,t=null){return t?'element'==e&&t==this.name:'element'==e||e==this.name}getChild(e){return this._children.getNode(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}clone(e=!1){const t=e?Array.from(this._children).map((e)=>e.clone(!0)):null;return new Qs(this.name,this.getAttributes(),t)}offsetToIndex(e){return this._children.offsetToIndex(e)}appendChildren(e){this.insertChildren(this.childCount,e)}insertChildren(e,t){t=O(t);for(const o of t)null!==o.parent&&o.remove(),o.parent=this;this._children.insertNodes(e,t)}removeChildren(e,t=1){const o=this._children.removeNodes(e,t);for(const n of o)n.parent=null;return o}getNodeByPath(e){let t=this;for(const o of e)t=t.getChild(t.offsetToIndex(o));return t}toJSON(){const e=super.toJSON();if(e.name=this.name,0e&&(e=this.boundaries.start.offset),i=t.offset-e}const r=t.offset-n.startOffset,a=new Ks(n,r-i,i);return t.offset-=i,this.position=t,V('text',a,e,t,i)}return t.path.pop(),this.position=t,this._visitedParent=o.parent,V('elementStart',o,e,t,1)}}var Gs=function(e){var t=e?e.length:0;return t?e[t-1]:void 0};class Ys{constructor(e,t){if(!e.is('element')&&!e.is('documentFragment'))throw new ha('model-position-root-invalid: Position root invalid.');if(!(t instanceof Array)||0===t.length)throw new ha('model-position-path-incorrect: Position path must be an array with at least one item.',{path:t});t=e.getPath().concat(t),e=e.root,this.root=e,this.path=t}get offset(){return Gs(this.path)}set offset(e){this.path[this.path.length-1]=e}get parent(){let e=this.root;for(let t=0;to?0:o,t}isAfter(e){return'after'==this.compareWith(e)}isBefore(e){return'before'==this.compareWith(e)}isEqual(e){return'same'==this.compareWith(e)}isTouching(e){let t=null,o=null;const n=this.compareWith(e);switch(n){case'same':return!0;case'before':t=Ys.createFromPosition(this),o=Ys.createFromPosition(e);break;case'after':t=Ys.createFromPosition(e),o=Ys.createFromPosition(this);break;default:return!1;}for(let n=t.parent;t.path.length+o.path.length;){if(t.isEqual(o))return!0;if(t.path.length>o.path.length){if(t.offset!==n.maxOffset)return!1;t.path=t.path.slice(0,-1),n=n.parent,t.offset++}else{if(0!==o.offset)return!1;o.path=o.path.slice(0,-1)}}}_getTransformedByDeletion(e,t){const o=Ys.createFromPosition(this);if(this.root!=e.root)return o;if('same'==R(e.getParentPath(),this.getParentPath())){if(e.offsetthis.offset)return null;o.offset-=t}}else if('prefix'==R(e.getParentPath(),this.getParentPath())){const n=e.path.length-1;if(e.offset<=this.path[n]){if(e.offset+t>this.path[n])return null;o.path[n]-=t}}return o}_getTransformedByInsertion(e,t,o){const n=Ys.createFromPosition(this);if(this.root!=e.root)return n;if('same'==R(e.getParentPath(),this.getParentPath()))(e.offsett+1;){const t=n.maxOffset-o.offset;0!=t&&e.push(new Xs(o,o.getShiftedBy(t))),o.path=o.path.slice(0,-1),o.offset++,n=n.parent}for(;o.path.length<=this.end.path.length;){const t=this.end.path[o.path.length-1],n=t-o.offset;0!=n&&e.push(new Xs(o,o.getShiftedBy(n))),o.offset=t,o.path.push(0)}return e}getWalker(e={}){return e.boundaries=this,new Js(e)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new Js(e);for(const o of t)yield o.item}*getPositions(e={}){e.boundaries=this;const t=new Js(e);yield t.position;for(const o of t)yield o.nextPosition}getTransformedByDelta(e){const t=[Xs.createFromRange(this)],o=new Set(['insert','move','remove','reinsert']);for(const n of e.operations)if(o.has(n.type))for(let o=0;oe.start.isAfter(t.start)?1:-1);const o=e.indexOf(t),n=new this(t.start,t.end);for(let t=o-1;0<=t&&e[t].end.isEqual(n.start);t++)n.start=Ys.createFromPosition(e[t].start);for(let t=o+1;to)return!1;var n=t.length-1;return o==n?t.pop():tl.call(t,o,1),!0},F.prototype.get=function(e){var t=this.__data__,o=Zs(t,e);return 0>o?void 0:t[o][1]},F.prototype.has=function(e){return-1n?o.push([e,t]):o[n][1]=t,this};var ol=F,nl=Function.prototype.toString,il=function(e){if(null!=e){try{return nl.call(e)}catch(t){}try{return e+''}catch(t){}}return''},rl=/[\\^$.*+?()[\]{}|]/g,al=/^\[object .+?Constructor\]$/,sl=Object.prototype,ll=Function.prototype.toString,dl=sl.hasOwnProperty,cl=RegExp('^'+ll.call(dl).replace(rl,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$'),ul=function(e){if(!Ma(e))return!1;var t=za(e)||aa(e)?cl:al;return t.test(il(e))},ml=function(e,t){var o=e[t];return ul(o)?o:void 0},pl=ml(Object,'create'),gl=pl,fl=Object.prototype,hl=fl.hasOwnProperty,bl=Object.prototype,kl=bl.hasOwnProperty;I.prototype.clear=function(){this.__data__=gl?gl(null):{}},I.prototype['delete']=function(e){return this.has(e)&&delete this.__data__[e]},I.prototype.get=function(e){var t=this.__data__;if(gl){var o=t[e];return o==='__lodash_hash_undefined__'?void 0:o}return hl.call(t,e)?t[e]:void 0},I.prototype.has=function(e){var t=this.__data__;return gl?t[e]!==void 0:kl.call(t,e)},I.prototype.set=function(e,t){var o=this.__data__;return o[e]=gl&&void 0===t?'__lodash_hash_undefined__':t,this};var _l=I,vl=ml(cs.a,'Map'),wl=vl,yl=function(e){var t=typeof e;return'string'==t||'number'==t||'symbol'==t||'boolean'==t?'__proto__'!==e:null===e},xl=function(e,t){var o=e.__data__;return yl(t)?o['string'==typeof t?'string':'hash']:o.map};N.prototype.clear=function(){this.__data__={hash:new _l,map:new(wl||ol),string:new _l}},N.prototype['delete']=function(e){return xl(this,e)['delete'](e)},N.prototype.get=function(e){return xl(this,e).get(e)},N.prototype.has=function(e){return xl(this,e).has(e)},N.prototype.set=function(e,t){return xl(this,e).set(e,t),this};var Al=N;B.prototype.clear=function(){this.__data__=new ol},B.prototype['delete']=function(e){return this.__data__['delete'](e)},B.prototype.get=function(e){return this.__data__.get(e)},B.prototype.has=function(e){return this.__data__.has(e)},B.prototype.set=function(e,t){var o=this.__data__;return o instanceof ol&&o.__data__.length==200&&(o=this.__data__=new Al(o.__data__)),o.set(e,t),this};var Cl=B,Tl=function(e,t){for(var o=-1,n=e.length;++othis._classes.add(e))}removeClass(...e){this._fireChange('attributes',this),e.forEach((e)=>this._classes.delete(e))}hasClass(...e){for(const t of e)if(!this._classes.has(t))return!1;return!0}getClassNames(){return this._classes.keys()}setStyle(e,t){if(this._fireChange('attributes',this),pa(e)){const t=Object.keys(e);for(const o of t)this._styles.set(o,e[o])}else this._styles.set(e,t)}getStyle(e){return this._styles.get(e)}getStyleNames(){return this._styles.keys()}hasStyle(...e){for(const t of e)if(!this._styles.has(t))return!1;return!0}removeStyle(...e){this._fireChange('attributes',this),e.forEach((e)=>this._styles.delete(e))}findAncestor(...e){const t=new $d(...e);for(let o=this.parent;o;){if(t.match(o))return o;o=o.parent}return null}setCustomProperty(e,t){this._customProperties.set(e,t)}getCustomProperty(e){return this._customProperties.get(e)}removeCustomProperty(e){return this._customProperties.delete(e)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const e=Array.from(this._classes).sort().join(','),t=Array.from(this._styles).map((e)=>`${e[0]}:${e[1]}`).sort().join(';'),o=Array.from(this._attrs).map((e)=>`${e[0]}="${e[1]}"`).sort().join(' ');return this.name+(''==e?'':` class="${e}"`)+(''==t?'':` style="${t}"`)+(''==o?'':` ${o}`)}}class Ud{constructor(e,t,o){if(this.textNode=e,0>t||t>e.data.length)throw new ha('view-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.');if(0>o||t+o>e.data.length)throw new ha('view-textproxy-wrong-length: Given length value is incorrect.');this.data=e.data.substring(t,t+o),this.offsetInText=t}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}is(e){return'textProxy'==e}getAncestors(e={includeSelf:!1,parentFirst:!1}){const t=[];for(let o=e.includeSelf?this.textNode:this.parent;null!==o;)t[e.parentFirst?'push':'unshift'](o),o=o.parent;return t}}class Qd{constructor(e={}){if(!e.boundaries&&!e.startPosition)throw new ha('view-tree-walker-no-start-position: Neither boundaries nor starting position have been defined.');if(e.direction&&'forward'!=e.direction&&'backward'!=e.direction)throw new ha('view-tree-walker-unknown-direction: Only `backward` and `forward` direction allowed.',{direction:e.direction});this.boundaries=e.boundaries||null,this.position=e.startPosition?Xd.createFromPosition(e.startPosition):Xd.createFromPosition(e.boundaries['backward'==e.direction?'end':'start']),this.direction=e.direction||'forward',this.singleCharacters=!!e.singleCharacters,this.shallow=!!e.shallow,this.ignoreElementEnd=!!e.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(e){let t,o,n;do n=this.position,({done:t,value:o}=this.next());while(!t&&e(o));t||(this.position=n)}next(){return'forward'==this.direction?this._next():this._previous()}_next(){let e=Xd.createFromPosition(this.position);const t=this.position,o=e.parent;if(null===o.parent&&e.offset===o.childCount)return{done:!0};if(o===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0};let n;if(o instanceof Wd){if(e.isAtEnd)return this.position=Xd.createAfter(o),this._next();n=o.data[e.offset]}else n=o.getChild(e.offset);if(n instanceof Kd)return this.shallow?e.offset++:e=new Xd(n,0),this.position=e,this._formatReturnValue('elementStart',n,t,e,1);if(!(n instanceof Wd)){if('string'==typeof n){let n;if(this.singleCharacters)n=1;else{const t=o===this._boundaryEndParent?this.boundaries.end.offset:o.data.length;n=t-e.offset}const i=new Ud(o,e.offset,n);return e.offset+=n,this.position=e,this._formatReturnValue('text',i,t,e,n)}return e=Xd.createAfter(o),this.position=e,this.ignoreElementEnd?this._next():this._formatReturnValue('elementEnd',o,t,e)}if(this.singleCharacters)return e=new Xd(n,0),this.position=e,this._next();else{let o=n.data.length,i=n;return n==this._boundaryEndParent?(o=this.boundaries.end.offset,i=new Ud(n,0,o),e=Xd.createAfter(i)):e.offset++,this.position=e,this._formatReturnValue('text',i,t,e,o)}}_previous(){let e=Xd.createFromPosition(this.position);const t=this.position,o=e.parent;if(null===o.parent&&0===e.offset)return{done:!0};if(o==this._boundaryStartParent&&e.offset==this.boundaries.start.offset)return{done:!0};let n;if(o instanceof Wd){if(e.isAtStart)return this.position=Xd.createBefore(o),this._previous();n=o.data[e.offset-1]}else n=o.getChild(e.offset-1);if(n instanceof Kd)return this.shallow?(e.offset--,this.position=e,this._formatReturnValue('elementStart',n,t,e,1)):(e=new Xd(n,n.childCount),this.position=e,this.ignoreElementEnd?this._previous():this._formatReturnValue('elementEnd',n,t,e));if(!(n instanceof Wd)){if('string'==typeof n){let n;if(!this.singleCharacters){const t=o===this._boundaryStartParent?this.boundaries.start.offset:0;n=e.offset-t}else n=1;e.offset-=n;const i=new Ud(o,e.offset,n);return this.position=e,this._formatReturnValue('text',i,t,e,n)}return e=Xd.createBefore(o),this.position=e,this._formatReturnValue('elementStart',o,t,e,1)}if(this.singleCharacters)return e=new Xd(n,n.data.length),this.position=e,this._previous();else{let o=n.data.length,i=n;if(n==this._boundaryStartParent){const t=this.boundaries.start.offset;i=new Ud(n,t,n.data.length-t),o=i.data.length,e=Xd.createBefore(i)}else e.offset--;return this.position=e,this._formatReturnValue('text',i,t,e,o)}}_formatReturnValue(e,t,o,n,i){return t instanceof Ud&&(t.offsetInText+t.data.length==t.textNode.data.length&&('forward'!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?o=Xd.createAfter(t.textNode):(n=Xd.createAfter(t.textNode),this.position=n)),0===t.offsetInText&&('backward'!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?o=Xd.createBefore(t.textNode):(n=Xd.createBefore(t.textNode),this.position=n))),{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:n,length:i}}}}class Jd extends Kd{constructor(e,t,o){super(e,t,o),this.getFillerOffset=Q}is(e,t=null){return t?'containerElement'==e&&t==this.name||super.is(e,t):'containerElement'==e||super.is(e)}}const Gd=Symbol('document');class Yd extends Jd{constructor(e,t,o){super(e,t,o),this.set('isReadOnly',!1),this.set('isFocused',!1)}get document(){return this.getCustomProperty(Gd)}set document(e){if(this.getCustomProperty(Gd))throw new ha('view-editableelement-document-already-set: View document is already set.');this.setCustomProperty(Gd,e),this.bind('isReadOnly').to(e),this.bind('isFocused').to(e,'isFocused',(t)=>t&&e.selection.editableElement==this),this.listenTo(e,'render',()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this},{priority:'high'})}}s(Yd,Hs);class Xd{constructor(e,t){this.parent=e,this.offset=t}get nodeAfter(){return this.parent.is('text')?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is('text')?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const e=this.parent.is('text')?this.parent.data.length:this.parent.childCount;return this.offset===e}get root(){return this.parent.root}get editableElement(){let e=this.parent;for(;!(e instanceof Yd);)if(e.parent)e=e.parent;else return null;return e}getShiftedBy(e){const t=Xd.createFromPosition(this),o=t.offset+e;return t.offset=0>o?0:o,t}getLastMatchingPosition(e,t={}){t.startPosition=this;const o=new Qd(t);return o.skip(e),o.position}getAncestors(){return this.parent.is('documentFragment')?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(e){const t=this.getAncestors(),o=e.getAncestors();let n=0;for(;t[n]==o[n]&&t[n];)n++;return 0==n?null:t[n-1]}isEqual(e){return this.parent==e.parent&&this.offset==e.offset}isBefore(e){return'before'==this.compareWith(e)}isAfter(e){return'after'==this.compareWith(e)}compareWith(e){if(this.isEqual(e))return'same';if(this.parent===e.parent)return 0>this.offset-e.offset?'before':'after';const t=this.getAncestors(),o=e.getAncestors(),n=R(t,o);let i;switch(n){case 0:return'different';case'prefix':i=t.length-1;break;case'extension':i=o.length-1;break;default:i=n-1;}const r=t[i],a=t[i+1],s=o[i+1];if(r===this.parent){const e=this.offset-s.index;return 0>=e?'before':'after'}if(r===e.parent){const t=a.index-e.offset;return 0>t?'before':'after'}const l=a.index-s.index;return 0>l?'before':'after'}static createAt(e,t){if(e instanceof Xd)return this.createFromPosition(e);else{const o=e;if('end'==t)t=o.is('text')?o.data.length:o.childCount;else{if('before'==t)return this.createBefore(o);if('after'==t)return this.createAfter(o);t||(t=0)}return new Xd(o,t)}}static createAfter(e){if(e.is('textProxy'))return new Xd(e.textNode,e.offsetInText+e.data.length);if(!e.parent)throw new ha('view-position-after-root: You can not make position after root.',{root:e});return new Xd(e.parent,e.index+1)}static createBefore(e){if(e.is('textProxy'))return new Xd(e.textNode,e.offsetInText);if(!e.parent)throw new ha('view-position-before-root: You can not make position before root.',{root:e});return new Xd(e.parent,e.index)}static createFromPosition(e){return new this(e.parent,e.offset)}}class Zd{constructor(e,t=null){this.start=Xd.createFromPosition(e),this.end=t?Xd.createFromPosition(t):Xd.createFromPosition(e)}*[Symbol.iterator](){yield*new Qd({boundaries:this,ignoreElementEnd:!0})}get isCollapsed(){return this.start.isEqual(this.end)}get isFlat(){return this.start.parent===this.end.parent}get root(){return this.start.root}getEnlarged(){let e=this.start.getLastMatchingPosition(J,{direction:'backward'}),t=this.end.getLastMatchingPosition(J);return e.parent.is('text')&&e.isAtStart&&(e=Xd.createBefore(e.parent)),t.parent.is('text')&&t.isAtEnd&&(t=Xd.createAfter(t.parent)),new Zd(e,t)}getTrimmed(){let e=this.start.getLastMatchingPosition(J);if(e.isAfter(this.end)||e.isEqual(this.end))return new Zd(e,e);let t=this.end.getLastMatchingPosition(J,{direction:'backward'});const o=e.nodeAfter,n=t.nodeBefore;return o&&o.is('text')&&(e=new Xd(o,0)),n&&n.is('text')&&(t=new Xd(n,n.data.length)),new Zd(e,t)}isEqual(e){return this==e||this.start.isEqual(e.start)&&this.end.isEqual(e.end)}containsPosition(e){return e.isAfter(this.start)&&e.isBefore(this.end)}containsRange(e,t=!1){e.isCollapsed&&(t=!1);const o=this.containsPosition(e.start)||t&&this.start.isEqual(e.start),n=this.containsPosition(e.end)||t&&this.end.isEqual(e.end);return o&&n}getDifference(e){const t=[];return this.isIntersecting(e)?(this.containsPosition(e.start)&&t.push(new Zd(this.start,e.start)),this.containsPosition(e.end)&&t.push(new Zd(e.end,this.end))):t.push(Zd.createFromRange(this)),t}getIntersection(e){if(this.isIntersecting(e)){let t=this.start,o=this.end;return this.containsPosition(e.start)&&(t=e.start),this.containsPosition(e.end)&&(o=e.end),new Zd(t,o)}return null}getWalker(e={}){return e.boundaries=this,new Qd(e)}getCommonAncestor(){return this.start.getCommonAncestor(this.end)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new Qd(e);for(const o of t)yield o.item}*getPositions(e={}){e.boundaries=this;const t=new Qd(e);yield t.position;for(const o of t)yield o.nextPosition}isIntersecting(e){return this.start.isBefore(e.end)&&this.end.isAfter(e.start)}static createFromParentsAndOffsets(e,t,o,n){return new this(new Xd(e,t),new Xd(o,n))}static createFromRange(e){return new this(e.start,e.end)}static createFromPositionAndShift(e,t){const o=e,n=e.getShiftedBy(t);return 0{if(!t.viewPosition){const e=this._modelToViewMapping.get(t.modelPosition.parent);t.viewPosition=this._findPositionIn(e,t.modelPosition.offset)}},{priority:'low'}),this.on('viewToModelPosition',(e,t)=>{if(t.modelPosition)return;let o=t.viewPosition.parent,n=this._viewToModelMapping.get(o);for(;!n;)o=o.parent,n=this._viewToModelMapping.get(o);const i=this._toModelOffset(t.viewPosition.parent,t.viewPosition.offset,o);t.modelPosition=Ys.createFromParentAndOffset(n,i)},{priority:'low'})}bindElements(e,t){this._modelToViewMapping.set(e,t),this._viewToModelMapping.set(t,e)}unbindViewElement(e){const t=this.toModelElement(e);this._unbindElements(t,e)}unbindModelElement(e){const t=this.toViewElement(e);this._unbindElements(e,t)}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap}toModelElement(e){return this._viewToModelMapping.get(e)}toViewElement(e){return this._modelToViewMapping.get(e)}toModelRange(e){return new Xs(this.toModelPosition(e.start),this.toModelPosition(e.end))}toViewRange(e){return new Zd(this.toViewPosition(e.start),this.toViewPosition(e.end))}toModelPosition(e){const t={viewPosition:e,mapper:this};return this.fire('viewToModelPosition',t),t.modelPosition}toViewPosition(e){const t={modelPosition:e,mapper:this};return this.fire('modelToViewPosition',t),t.viewPosition}registerViewToModelLength(e,t){this._viewToModelLengthCallbacks.set(e,t)}_toModelOffset(e,t,o){if(o!=e){const n=this._toModelOffset(e.parent,e.index,o),i=this._toModelOffset(e,t,e);return n+i}if(e.is('text'))return t;let n=0;for(let r=0;r=t;t++){const o=String.fromCharCode(t);e[o.toLowerCase()]=t}for(let t=48;57>=t;t++)e[t-48]=t;for(let t=112;123>=t;t++)e['f'+(t-111)]=t;return e}();class pc extends Kd{constructor(e,t,o){super(e,t,o),this.getFillerOffset=ae}is(e,t=null){return t?'uiElement'==e&&t==this.name||super.is(e,t):'uiElement'==e||super.is(e)}insertChildren(e,t){if(t&&(t instanceof Hd||0e.is('element')&&t.isSimilar(e));e&&(i=Zd.createIn(e))}i&&(i.end.isAfter(e.end)&&(i.end=e.end),i.start.isBefore(e.start)&&(i.start=e.start),ue(i))}},move:me,wrap:pe,wrapPosition:function(e,t){if(!(t instanceof rc))throw new ha('view-writer-wrap-invalid-attribute');if(t.isSimilar(e.parent))return ve(Xd.createFromPosition(e));e.parent.is('text')&&(e=we(e));const o=new rc;o.priority=ea,o.isSimilar=()=>!1,e.parent.insertChildren(e.offset,o);const n=new Zd(e,e.getShiftedBy(1));pe(n,t);const i=new Xd(o.parent,o.index);o.remove();const r=i.nodeBefore,a=i.nodeAfter;return r instanceof Wd&&a instanceof Wd?ye(r,a):ve(i)},unwrap:function(e,t){if(!(t instanceof rc))throw new ha('view-writer-unwrap-invalid-attribute');if(Ee(e),e.isCollapsed)return e;if(e.end.isEqual(e.start.getShiftedBy(1))){const o=e.start.nodeAfter;if(!t.isSimilar(o)&&o instanceof rc&&Ae(t,o))return e}const{start:o,end:n}=fe(e,!0),i=o.parent,r=be(i,o.offset,n.offset,t),a=de(r.start);a.isEqual(r.start)||r.end.offset--;const s=de(r.end);return new Zd(a,s)},rename:function(e,t){const o=new Jd(t,e.getAttributes());return ce(Xd.createAfter(e),o),me(Zd.createIn(e),Xd.createAt(o)),ue(Zd.createOn(e)),o}};const hc=[Wd,rc,Jd,ac,pc];class bc extends rc{isSimilar(e){return!!e.is('attributeElement')&&this.getCustomProperty('highlightDescriptorId')===e.getCustomProperty('highlightDescriptorId')}}class kc{constructor(){this._consumables=new Map}add(e,t){let o;return e.is('text')||e.is('documentFragment')?void this._consumables.set(e,!0):void(this._consumables.has(e)?o=this._consumables.get(e):(o=new _c,this._consumables.set(e,o)),o.add(t))}test(e,t){const o=this._consumables.get(e);return void 0===o?null:e.is('text')||e.is('documentFragment')?o:o.test(t)}consume(e,t){return!!this.test(e,t)&&(e.is('text')||e.is('documentFragment')?this._consumables.set(e,!1):this._consumables.get(e).consume(t),!0)}revert(e,t){const o=this._consumables.get(e);o!==void 0&&(e.is('text')||e.is('documentFragment')?this._consumables.set(e,!0):o.revert(t))}static consumablesFromElement(e){const t={name:!0,attribute:[],class:[],style:[]},o=e.getAttributeKeys();for(const n of o)'style'!=n&&'class'!=n&&t.attribute.push(n);const n=e.getClassNames();for(const o of n)t.class.push(o);const i=e.getStyleNames();for(const o of i)t.style.push(o);return t}static createFrom(e,t){if(t||(t=new kc),e.is('text'))return t.add(e),t;e.is('element')&&t.add(e,kc.consumablesFromElement(e)),e.is('documentFragment')&&t.add(e);for(const o of e.getChildren())t=kc.createFrom(o,t);return t}}class _c{constructor(){this._canConsumeName=null,this._consumables={attribute:new Map,style:new Map,class:new Map}}add(e){for(const t in e.name&&(this._canConsumeName=!0),this._consumables)t in e&&this._add(t,e[t])}test(e){if(e.name&&!this._canConsumeName)return this._canConsumeName;for(const t in this._consumables)if(t in e){const o=this._test(t,e[t]);if(!0!==o)return o}return!0}consume(e){for(const t in e.name&&(this._canConsumeName=!1),this._consumables)t in e&&this._consume(t,e[t])}revert(e){for(const t in e.name&&(this._canConsumeName=!0),this._consumables)t in e&&this._revert(t,e[t])}_add(e,t){const o=Ts(t)?t:[t],n=this._consumables[e];for(const i of o){if('attribute'===e&&('class'===i||'style'===i))throw new ha('viewconsumable-invalid-attribute: Classes and styles should be handled separately.');n.set(i,!0)}}_test(e,t){const o=Ts(t)?t:[t],n=this._consumables[e];for(const i of o)if('attribute'===e&&('class'===i||'style'===i)){const e=this._test(i,[...this._consumables[i].keys()]);if(!0!==e)return e}else{const e=n.get(i);if(e===void 0)return null;if(!e)return!1}return!0}_consume(e,t){const o=Ts(t)?t:[t],n=this._consumables[e];for(const i of o)'attribute'===e&&('class'===i||'style'===i)?this._consume(i,[...this._consumables[i].keys()]):n.set(i,!1)}_revert(e,t){const o=Ts(t)?t:[t],n=this._consumables[e];for(const i of o)if('attribute'===e&&('class'===i||'style'===i))this._revert(i,[...this._consumables[i].keys()]);else{const e=n.get(i);!1===e&&n.set(i,!0)}}}class vc{constructor(e={}){this.conversionApi=Object.assign({},e),this.conversionApi.convertItem=this._convertItem.bind(this),this.conversionApi.convertChildren=this._convertChildren.bind(this),this.conversionApi.batch=null}convert(e,t,o){this.conversionApi.batch=t,this.fire('viewCleanup',e);const n=kc.createFrom(e);let i=this._convertItem(e,n,o);if(!i)return t.createDocumentFragment();if(!i.is('documentFragment')){const e=t.createDocumentFragment();t.append(i,e),i=e}return i.markers=He(i,t),i}_convertItem(e,t,o={}){const n=Object.assign({},o,{input:e,output:null});return e.is('element')?this.fire('element:'+e.name,n,t,this.conversionApi):e.is('text')?this.fire('text',n,t,this.conversionApi):this.fire('documentFragment',n,t,this.conversionApi),n.output&&!(n.output instanceof Ws||n.output instanceof oc)?(ka.warn('view-conversion-dispatcher-incorrect-result: Incorrect conversion result was dropped.',[e,n.output]),null):n.output}_convertChildren(e,t,o){const n=this.conversionApi.batch,i=n.createDocumentFragment();for(const r of Array.from(e.getChildren())){const e=this._convertItem(r,t,o);(e instanceof Ws||e instanceof oc)&&n.append(e,i)}return i}}s(vc,Sa);class wc extends Ys{constructor(e,t,o){if(super(e,t),!this.root.is('rootElement'))throw new ha('model-liveposition-root-not-rootelement: LivePosition\'s root has to be an instance of RootElement.');this.stickiness=o||'sticksToNext',Ke.call(this)}detach(){this.stopListening()}}s(wc,Sa);class yc{constructor(e,t,o){this.dataController=e,this.batch=t,this.position=o,this.canMergeWith=new Set([this.position.parent]),this.schema=e.model.schema}handleNodes(e,t){e=Array.from(e);for(let o=0;othis.decorate(e))}get(e='main'){return this.stringify(this.model.getRoot(e))}stringify(e){const t=this.toView(e);return this.processor.toData(t)}toView(e){const t=Xs.createIn(e),o=new gc;return this.mapper.bindElements(e,o),this.modelToView.convertInsertion(t),this.mapper.clearBindings(),o}set(e,t='main'){const o=this.model.getRoot(t);this.model.enqueueChanges(()=>{this.model.selection.removeAllRanges(),this.model.selection.clearAttributes();const t=this.model.batch('transparent');t.remove(Xs.createIn(o)),t.insert(this.parse(e,t),o)})}parse(e,t,o='$root'){const n=this.processor.toView(e);return this.toModel(n,t,o)}toModel(e,t,o='$root'){return this.viewToModel.convert(e,t,{context:[o]})}destroy(){}insertContent(e,t,o){Qe(this,e,t,o)}deleteContent(e,t,o){Ge(e,t,o)}modifySelection(e,t){dt(this,e,t)}getSelectedContent(e,t){return pt(e,t)}hasContent(e){if(e instanceof Qs&&(e=Xs.createIn(e)),e.isCollapsed)return!1;for(const t of e.getItems())if(t.is('textProxy')||this.model.schema.objects.has(t.name))return!0;return!1}}s(xc,Hs);class Ac{constructor(e){this.baseVersion=e}toJSON(){const e=qd(this,!0);return e.__className=this.constructor.className,delete e.delta,delete e.isDocumentOperation,e}static get className(){return'engine.model.operation.Operation'}static fromJSON(e){return new this(e.baseVersion)}}xt.prototype.add=xt.prototype.push=function(e){return this.__data__.set(e,'__lodash_hash_undefined__'),this},xt.prototype.has=function(e){return this.__data__.has(e)};var Cc=xt,Tc=function(e,t){for(var o=-1,n=e.length;++os))return!1;var d=r.get(e);if(d)return d==t;var c=-1,u=!0,m=i&1?new Cc:void 0;for(r.set(e,t);++ce.maxOffset)throw new ha('move-operation-nodes-do-not-exist: The nodes which should be moved do not exist.');else if(e===t&&o=o&&this.targetPosition.path[e]e.clone(!0)));return new Qc(this.position,e,this.baseVersion)}getReversed(){const e=this.position.root.document.graveyard,t=new Ys(e,[0]);return new Uc(this.position,this.nodes.maxOffset,t,this.baseVersion+1)}_execute(){const e=this.nodes;this.nodes=new Us([...e].map((e)=>e.clone(!0)));const t=ft(this.position,e);return{range:t}}static get className(){return'engine.model.operation.InsertOperation'}static fromJSON(e,t){const o=[];for(const n of e.nodes)n.name?o.push(Qs.fromJSON(n)):o.push($s.fromJSON(n));return new Qc(Ys.fromJSON(e.position,t),o,e.baseVersion)}}class Jc extends Ac{constructor(e,t,o,n,i){super(i),this.name=e,this.oldRange=t?Xs.createFromRange(t):null,this.newRange=o?Xs.createFromRange(o):null,this._markers=n,this.isDocumentOperation=this._isDocumentOperation()}get type(){return'marker'}_isDocumentOperation(){return this.newRange?!!this.newRange.root.document:!this.oldRange||!!this.oldRange.root.document}clone(){return new Jc(this.name,this.oldRange,this.newRange,this._markers,this.baseVersion)}getReversed(){return new Jc(this.name,this.newRange,this.oldRange,this._markers,this.baseVersion+1)}_execute(){const e=this.newRange?'set':'remove';return this._markers[e](this.name,this.newRange),{name:this.name,type:e}}toJSON(){const e=super.toJSON();return delete e._markers,e}static get className(){return'engine.model.operation.MarkerOperation'}static fromJSON(e,t){return new Jc(e.name,e.oldRange?Xs.fromJSON(e.oldRange,t):null,e.newRange?Xs.fromJSON(e.newRange,t):null,t.markers,e.baseVersion)}}class Gc extends Ac{constructor(e){super(e),this.isDocumentOperation=!0}get type(){return'noop'}clone(){return new Gc(this.baseVersion)}getReversed(){return new Gc(this.baseVersion+1)}_execute(){return{}}static get className(){return'engine.model.operation.NoOperation'}}class Yc extends Ac{constructor(e,t,o,n){super(n),this.position=e,this.oldName=t,this.newName=o,this.isDocumentOperation=!!this.position.root.document}get type(){return'rename'}clone(){return new Yc(Ys.createFromPosition(this.position),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Yc(Ys.createFromPosition(this.position),this.newName,this.oldName,this.baseVersion+1)}_execute(){const e=this.position.nodeAfter;if(!(e instanceof Qs))throw new ha('rename-operation-wrong-position: Given position is invalid or node after it is not an instance of Element.');else if(e.name!==this.oldName)throw new ha('rename-operation-wrong-name: Element to change has different name than operation\'s old name.');return e.name!=this.newName&&(e.name=this.newName),{element:e,oldName:this.oldName}}static get className(){return'engine.model.operation.RenameOperation'}static fromJSON(e,t){return new Yc(Ys.fromJSON(e.position,t),e.oldName,e.newName,e.baseVersion)}}class Xc extends Ac{constructor(e,t,o,n,i){super(i),this.root=e,this.key=t,this.oldValue=o,this.newValue=n,this.isDocumentOperation=!!this.root.document}get type(){return null===this.oldValue?'addRootAttribute':null===this.newValue?'removeRootAttribute':'changeRootAttribute'}clone(){return new Xc(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new Xc(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_execute(){if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new ha('rootattribute-operation-wrong-old-value: Changed node has different attribute value than operation\'s old attribute value.',{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new ha('rootattribute-operation-attribute-exists: The attribute with given key already exists.',{root:this.root,key:this.key});return null===this.newValue?this.root.removeAttribute(this.key):this.root.setAttribute(this.key,this.newValue),{root:this.root,key:this.key,oldValue:this.oldValue,newValue:this.newValue}}static get className(){return'engine.model.operation.RootAttributeOperation'}static fromJSON(e,t){if(!t.hasRoot(e.root))throw new ha('rootattribute-operation-fromjson-no-root: Cannot create RootAttributeOperation. Root with specified name does not exist.',{rootName:e});return new Xc(t.getRoot(e.root),e.key,e.oldValue,e.newValue,e.baseVersion)}}const Zc={};Zc[Wc.className]=Wc,Zc[Qc.className]=Qc,Zc[Jc.className]=Jc,Zc[$c.className]=$c,Zc[Gc.className]=Gc,Zc[Ac.className]=Ac,Zc[Kc.className]=Kc,Zc[Uc.className]=Uc,Zc[Yc.className]=Yc,Zc[Xc.className]=Xc;class eu{static fromJSON(e,t){return Zc[e.__className].fromJSON(e,t)}}const tu=new Map;class ou{static fromJSON(e,t){if(!tu.has(e.__className))throw new ha('delta-fromjson-no-deserializer: This delta has no defined deserializer',{name:e.__className});const o=tu.get(e.__className),n=new o;for(const o of e.operations)n.addOperation(eu.fromJSON(o,t));for(const o in e)'__className'!=o&&void 0===n[o]&&(n[o]=e[o]);return n}static register(e){tu.set(e.className,e)}}class nu{constructor(){this.batch=null,this.operations=[]}get baseVersion(){return 0new Wc(t,e.key,e.oldValue,e.newValue,e.baseVersion))},AttributeOperation(e,t,o){if(e.key===t.key){const n=e.range.getDifference(t.range).map((t)=>new Wc(t,e.key,e.oldValue,e.newValue,e.baseVersion)),i=e.range.getIntersection(t.range);return i&&(o.isStrong?n.push(new Wc(i,t.key,t.newValue,e.newValue,e.baseVersion)):0===n.length&&n.push(new Gc(0))),n}return[e.clone()]},RootAttributeOperation:Ct,RenameOperation:Ct,MarkerOperation:Ct,MoveOperation(e,t){const o=Xs.createFromPositionAndShift(t.sourcePosition,t.howMany);let n=[];const i=Et(e.range.getDifference(o)),r=e.range.getIntersection(o);return null!==i&&(i.start=i.start._getTransformedByDeletion(t.sourcePosition,t.howMany),i.end=i.end._getTransformedByDeletion(t.sourcePosition,t.howMany),n=i._getTransformedByInsertion(t.getMovedRangeStart(),t.howMany,!0,!1).reverse()),null!==r&&(r.start=r.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),r.end=r.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),n.push(r)),n.map((t)=>new Wc(t,e.key,e.oldValue,e.newValue,e.baseVersion))}},RootAttributeOperation:{InsertOperation:Ct,AttributeOperation:Ct,RootAttributeOperation(e,t,o){return e.root!==t.root||e.key!==t.key||(e.newValue===t.newValue||o.isStrong)&&e.newValue!==t.newValue?[e.clone()]:[new Gc(e.baseVersion)]},RenameOperation:Ct,MarkerOperation:Ct,MoveOperation:Ct},RenameOperation:{InsertOperation(e,t){const o=e.clone();return o.position=o.position._getTransformedByInsertion(t.position,t.nodes.maxOffset,!0),[o]},AttributeOperation:Ct,RootAttributeOperation:Ct,RenameOperation(e,t,o){const n=e.clone();if(e.position.isEqual(t.position))if(o.isStrong)n.oldName=t.newName;else return[new Gc(e.baseVersion)];return[n]},MarkerOperation:Ct,MoveOperation(e,t){const o=e.clone(),n=o.position.isEqual(t.sourcePosition);return o.position=o.position._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!0,n),[o]}},MarkerOperation:{InsertOperation(e,t){const o=e.clone();return o.oldRange&&(o.oldRange=o.oldRange._getTransformedByInsertion(t.position,t.nodes.maxOffset,!1,!1)[0]),o.newRange&&(o.newRange=o.newRange._getTransformedByInsertion(t.position,t.nodes.maxOffset,!1,!1)[0]),[o]},AttributeOperation:Ct,RootAttributeOperation:Ct,RenameOperation:Ct,MarkerOperation(e,t,o){const n=e.clone();if(e.name==t.name)if(o.isStrong)n.oldRange=t.newRange;else return[new Gc(e.baseVersion)];return[n]},MoveOperation(e,t){const o=e.clone();if(o.oldRange){const e=o.oldRange._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany);o.oldRange=Xs.createFromRanges(e)}if(o.newRange){const e=o.newRange._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany);o.newRange=Xs.createFromRanges(e)}return[o]}},MoveOperation:{InsertOperation(e,t,o){let n=Xs.createFromPositionAndShift(e.sourcePosition,e.howMany);const i=e.isSticky&&!o.forceNotSticky;n=n._getTransformedByInsertion(t.position,t.nodes.maxOffset,!1,i)[0];const r=void 0===o.insertBefore?!o.isStrong:o.insertBefore,a=new e.constructor(n.start,n.end.offset-n.start.offset,e.targetPosition._getTransformedByInsertion(t.position,t.nodes.maxOffset,r),e.baseVersion);return a.isSticky=e.isSticky,[a]},AttributeOperation:Ct,RootAttributeOperation:Ct,RenameOperation:Ct,MarkerOperation:Ct,MoveOperation(e,t,o){const n=Xs.createFromPositionAndShift(e.sourcePosition,e.howMany),i=Xs.createFromPositionAndShift(t.sourcePosition,t.howMany);let r=o.isStrong;const a=e.isSticky&&!o.forceNotSticky,s=void 0===o.insertBefore?!r:o.insertBefore,l=e.targetPosition._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,s,t.isSticky&&!o.forceNotSticky);if(Pt(e,t)&&Pt(t,e))return[t.getReversed()];const d=n.containsPosition(t.targetPosition)||n.start.isEqual(t.targetPosition)&&a||n.end.isEqual(t.targetPosition)&&a;if(d&&n.containsRange(i,!0))return n.start=n.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!a),n.end=n.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,a),St([n],l,e);const c=i.containsPosition(e.targetPosition)||i.start.isEqual(e.targetPosition)&&t.isSticky&&!o.forceNotSticky||i.end.isEqual(e.targetPosition)&&t.isSticky&&!o.forceNotSticky;if(c&&i.containsRange(n,!0))return n.start=n.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),n.end=n.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),St([n],l,e);const u=R(e.sourcePosition.getParentPath(),t.sourcePosition.getParentPath());if('prefix'==u||'extension'==u)return n.start=n.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!a),n.end=n.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,a),St([n],l,e);o.forceWeakRemove||(e instanceof Uc&&!(t instanceof Uc)?r=!0:!(e instanceof Uc)&&t instanceof Uc&&(r=!1));const m=[],p=n.getDifference(i);for(const n of p){n.start=n.start._getTransformedByDeletion(t.sourcePosition,t.howMany),n.end=n.end._getTransformedByDeletion(t.sourcePosition,t.howMany);const e='same'==R(n.start.getParentPath(),t.getMovedRangeStart().getParentPath()),o=n._getTransformedByInsertion(t.getMovedRangeStart(),t.howMany,e,a);m.push(...o)}const g=n.getIntersection(i);return null!==g&&r&&!d&&(g.start=g.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),g.end=g.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),0===m.length?m.push(g):1==m.length?i.start.isBefore(n.start)||i.start.isEqual(n.start)?m.unshift(g):m.push(g):m.splice(1,0,g)),0===m.length?[new Gc(e.baseVersion)]:St(m,l,e)}}};var ot=function(e,t,o){var n=-1,i=e.length;0>t&&(t=-t>i?0:i+t),o=o>i?i:o,0>o&&(o+=i),i=t>o?0:o-t>>>0,t>>>=0;for(var r=Array(i);++n=200&&(r=Cu,a=!1,t=new Cc(t));outer:for(;++it?0:t,n)):[]},lm=function(e,t,o){var n=e?e.length:0;return n?(t=o||void 0===t?1:rs(t),t=n-t,ot(e,0,0>t?0:t)):[]},dm=function(e,t,o,n){for(var i=e.length,r=n?i:-1;(n?r--:++r=t?e:t)),e},um=function(e){return e?cm(rs(e),0,4294967295):0},mm=function(e,t,o,n){var i=e.length;for(o=rs(o),0>o&&(o=-o>i?0:i+o),n=void 0===n||n>i?i:rs(n),0>n&&(n+=i),n=o>n?0:um(n);ot?o:0,Wa(t,o)?e[t]:void 0},xm=function(e,t,o,n){for(var i=o-1,r=e.length;++it||r&&a&&l&&!s&&!d||n&&a&&l||!o&&l||!i)return 1;if(!n&&!r&&!d&&e>>1){for(;n>>1,a=e[r];null!==a&&!Ja(a)&&(o?a<=t:a=200){var d=t?null:jm(e);if(d)return xd(d);a=!1,i=Cu,l=new Cc}else l=t?[]:s;outer:for(;++nt)return[];for(var i=0,r=0,a=Array(hu(n/t));io&&(o=oa(n+o,0)),vu(e,t,o)):-1},initial:function(e){return lm(e,1)},intersection:bm,intersectionBy:km,intersectionWith:_m,join:function(e,t){return e?wm.call(e,t):''},last:Gs,lastIndexOf:function(e,t,o){var n=e?e.length:0;if(!n)return-1;var i=n;if(void 0!==o&&(i=rs(o),i=(0>i?oa(n+i,0):ta(i,n-1))+1),t!==t)return _u(e,i,!0);for(;i--;)if(e[i]===t)return i;return-1},nth:function(e,t){return e&&e.length?ym(e,rs(t)):void 0},pull:Em,pullAll:Pm,pullAllBy:function(e,t,o){return e&&e.length&&t&&t.length?Tm(e,t,im(o)):e},pullAllWith:function(e,t,o){return e&&e.length&&t&&t.length?Tm(e,t,void 0,o):e},pullAt:Nm,remove:function(e,t){var o=[];if(!(e&&e.length))return o;var n=-1,i=[],r=e.length;for(t=im(t,3);++nt?0:t)):[]},takeRight:function(e,t,o){var n=e?e.length:0;return n?(t=o||void 0===t?1:rs(t),t=n-t,ot(e,0>t?0:t,n)):[]},takeRightWhile:function(e,t){return e&&e.length?dm(e,im(t,3),!1,!0):[]},takeWhile:function(e,t){return e&&e.length?dm(e,im(t,3)):[]},union:Hm,unionBy:Wm,unionWith:$m,uniq:function(e){return e&&e.length?qm(e):[]},uniqBy:function(e,t){return e&&e.length?qm(e,im(t)):[]},uniqWith:function(e,t){return e&&e.length?qm(e,void 0,t):[]},unzip:Um,unzipWith:Qm,without:Jm,xor:Ym,xorBy:Xm,xorWith:Zm,zip:ep,zipObject:function(e,t){return tp(e||[],t||[],Fa)},zipObjectDeep:function(e,t){return tp(e||[],t||[],op)},zipWith:np};const rp=new Map,ap={transform(e,t,o){const n=ap.getTransformationCase(e,t)||ap.defaultTransform,i=n(e,t,Object.assign({},o)),r=ip.last(t.operations).baseVersion;return Ft(r,i)},defaultTransform(e,t,o){const n=[];let i=t.operations,r=[];for(const a of e.operations){const e=[a];for(const t of i)for(let n=0;n{const n=cp(e,t,o);return e.range.containsPosition(t.position)&&n.push($t(t,e)),n}),dp(iu,ru,(e,t,o)=>{if(!t.position)return cp(e,t,o);const n=o.undoMode,i=new Ys(t.position.root,t.position.path.slice(0,-1)),r=cp(e,t,o);if(n||!(t._cloneOperation instanceof Qc))return r;for(const n of e.operations)if(n.range.containsPosition(i)||n.range.start.isEqual(i)){const e=new iu,o=i.getShiftedBy(1),a=Ys.createFromPosition(o);a.path.push(0);const s=t._cloneOperation.nodes.getNode(0).getAttribute(n.key);e.addOperation(new Wc(new Xs(o,a),n.key,s===void 0?null:s,n.newValue,0)),r.push(e);break}return r}),dp(mu,au,(e,t,o)=>{if(!t.position)return cp(e,t,o);const n=o.undoMode;return!n&&e.position.isEqual(t.position)?[t.getReversed(),e.clone()]:cp(e,t,o)}),dp(lp,ru,Wt),dp(lp,au,Wt),dp(lp,cu,Wt),dp(lp,uu,Wt),dp(lp,su,Wt),dp(lp,du,Wt),dp(su,au,(e,t,o)=>{const n=o.undoMode;if(n||!t.position)return cp(e,t,o);const i=e.sourcePosition.root==t.position.root&&'same'===R(e.sourcePosition.getParentPath(),t.position.getParentPath()),r=e.sourcePosition.offset<=t.position.offset&&e.sourcePosition.offset+e.howMany>t.position.offset;return i&&r?[t.getReversed(),e.clone()]:cp(e,t,o)}),dp(au,mu,(e,t,o)=>{if(!e.position)return cp(e,t,o);const n=o.undoMode;return!n&&e.position.isEqual(t.position)?[Kt()]:cp(e,t,o)}),dp(au,su,(e,t,o)=>{const n=o.undoMode;if(n||!e.position)return cp(e,t,o);const i=e.position.root==t.sourcePosition.root&&'same'===R(e.position.getParentPath(),t.sourcePosition.getParentPath()),r=t.sourcePosition.offset<=e.position.offset&&t.sourcePosition.offset+t.howMany>e.position.offset;return i&&r?[Kt()]:cp(e,t,o)}),dp(ru,ru,(e,t,o)=>{const n=o.undoMode;if(n)return cp(e,t,o);if(!e.position||!t.position)return cp(e,t,o);const i=e.position.getParentPath(),r=t.position.getParentPath();if(e.position.root==t.position.root&&'same'==R(i,r))if(e=e.clone(),e.position.offsett._cloneOperation.sourcePosition.offset&&e._cloneOperation.sourcePosition.offset--;const o=Xs.createFromPositionAndShift(e.position,e._moveOperation.howMany),n=Xs.createFromPositionAndShift(t.position,t._moveOperation.howMany),i=o.getDifference(n);let r=0;for(const e of i)r+=e.end.offset-e.start.offset;return 0==r?(e.operations.pop(),e.addOperation(new Gc(e.operations[0].baseVersion+1))):e.operations[1].howMany=r,[e]}else{const n=Object.assign({},o);return n.isStrong=!0,n.insertBefore=!0,cp(e,t,n)}return cp(e,t,o)}),dp(ru,uu,(e,t,o)=>e.position?e.position.root==t.position.root&&'same'===R(t.position.path,e.position.getParentPath())?[Kt()]:cp(e,t,o):cp(e,t,o)),dp(ru,cu,(e,t,o)=>{if(!e.position)return cp(e,t,o);const n=e.position.root==t.range.start.root,i=n&&'same'===R(e.position.getParentPath(),t.range.start.getParentPath()),r=t.range.start.offset=e.position.offset;if(i&&r)return[Kt()];if(n&&'same'===R(e.position.getParentPath(),t.range.end.getShiftedBy(-1).path)){const o=e.clone(),n=Ys.createFromPosition(t.range.start);n.path.push(t.howMany-1);const i=n.getShiftedBy(1);o._cloneOperation.position=i;const r=Ys.createFromPosition(n);r.path.push(e.position.offset),o._moveOperation.sourcePosition=r;const a=Ys.createFromPosition(i);return a.path.push(0),o._moveOperation.targetPosition=a,[o]}return cp(e,t,o)}),dp(ru,iu,(e,t,o)=>{if(!e.position)return cp(e,t,o);e=e.clone();const n=o.undoMode,i=new Ys(e.position.root,e.position.path.slice(0,-1));if(n||!(e._cloneOperation instanceof Qc))return[e];for(const n of t.operations)if(n.range.containsPosition(i)||n.range.start.isEqual(i)){null===n.newValue?e._cloneOperation.nodes.getNode(0).removeAttribute(n.key):e._cloneOperation.nodes.getNode(0).setAttribute(n.key,n.newValue);break}return[e]}),dp(uu,ru,(e,t,o)=>t.position?e.position.root==t.position.root&&'same'===R(e.position.path,t.position.getParentPath())?[t.getReversed(),e.clone()]:cp(e,t,o):cp(e,t,o)),dp(pu,iu,(e,t)=>{const o=[e.clone()];return t.range.containsPosition(e.position)&&o.push($t(e,t)),o}),dp(cu,ru,(e,t,o)=>{if(!t.position)return cp(e,t,o);const n=e.range.start.root==t.position.root,i=n&&'same'===R(e.range.start.getParentPath(),t.position.getParentPath()),r=e.range.start.offset=t.position.offset;if(i&&r)return[t.getReversed(),e.clone()];if(n&&'same'===R(t.position.getParentPath(),e.range.end.getShiftedBy(-1).path)){const t=e.clone();return t._insertOperation.position.offset++,t._moveOperation.howMany++,t._moveOperation.targetPosition.path[t._moveOperation.targetPosition.path.length-2]++,[t]}return cp(e,t,o)}),dp(du,ru,(e,t,o)=>{const n=o.undoMode,i=cp(e,t,o);if(n||!(t._cloneOperation instanceof Qc))return i;const r=t._cloneOperation.position.getShiftedBy(-1);if(r&&e.operations[0].position.isEqual(r)){const t=e.clone();t.operations[0].position=r.getShiftedBy(1),i.push(t)}return i}),dp(ru,du,(e,t,o)=>{e=e.clone();const n=o.undoMode;if(n||!(e._cloneOperation instanceof Qc))return[e];const i=e._cloneOperation.position.getShiftedBy(-1);if(i&&!n&&t.operations[0].position.isEqual(i)){const o=t.clone();return o.operations[0].position=i.getShiftedBy(1),o.operations[0].oldName=e._cloneOperation.nodes.getNode(0).name,[e,o]}return[e]}),dp(lu,ru,(e,t,o)=>{const n=cp(e,t,o),i=t._cloneOperation.position||t._cloneOperation.targetPosition;if(!i)return cp(e,t,o);const r=o.undoMode;if(r)return n;for(const r of n)if(r instanceof lu){const e=r._moveOperation,t=e.sourcePosition.getShiftedBy(e.howMany);t.isEqual(i)&&(e.howMany+=1)}return n}),dp(ru,lu,(e,t,o)=>{const n=o.undoMode;if(n)return cp(e,t,o);const i=e._cloneOperation.position||e._cloneOperation.targetPosition;if(!i)return cp(e,t,o);t=t.clone();const r=t._moveOperation,a=r.sourcePosition.getShiftedBy(r.howMany);return a.isEqual(i)&&(r.howMany+=1),cp(e,t,o)});class up extends Qs{constructor(e,t,o='main'){super(t),this._doc=e,this.rootName=o}get document(){return this._doc}is(e,t){return t?'rootElement'==e&&t==this.name||super.is(e,t):'rootElement'==e||super.is(e)}toJSON(){return this.rootName}}class mp extends nu{static get className(){return'engine.model.delta.RootAttributeDelta'}}ou.register(mp);class pp extends Ac{constructor(e,t,o){super(o),this.sourcePosition=Ys.createFromPosition(e),this.howMany=t,this.isDocumentOperation=!1}get type(){return'detach'}_execute(){if(this.sourcePosition.root.document)throw new ha('detach-operation-on-document-node: Cannot detach document node.');const e=ht(Xs.createFromPositionAndShift(this.sourcePosition,this.howMany));return{nodes:e}}static get className(){return'engine.model.operation.DetachOperation'}}class gp{constructor(e,t='default'){this.document=e,this.deltas=[],this.type=t}get baseVersion(){return 0{for(const t of e.getAttributeKeys())this.removeAttribute(t,e)};if(!(e instanceof Xs))t(e);else for(const o of e.getItems())t(o)}move(e,t,o){if(!(e instanceof Xs))throw new ha('batch-move-invalid-range: Invalid range to move.');if(!e.isFlat)throw new ha('batch-move-range-not-flat: Range to move is not flat.');const n=Ys.createAt(t,o);if(!Gt(e.root,n.root))throw new ha('batch-move-different-document: Range is going to be moved between different documents.');const i=new su;this.addDelta(i);const r=new $c(e.start,e.end.offset-e.start.offset,n,this.document.version);i.addOperation(r),this.document.applyOperation(r)}remove(e){const t=(e,t)=>{const o=new lu;this.addDelta(o);let n;if(e.root.document){const o=this.document.graveyard,i=new Ys(o,[0]);n=new Uc(e,t,i,this.document.version)}else n=new pp(e,t,this.document.version);o.addOperation(n),this.document.applyOperation(n)};if(e instanceof Xs){const o=e.getMinimalFlatRanges().reverse();for(const e of o)t(e.start,e.end.offset-e.start.offset)}else{const o=e.is('text')?e.offsetSize:1;t(Ys.createBefore(e),o)}}merge(e){const t=new au;this.addDelta(t);const o=e.nodeBefore,n=e.nodeAfter;if(!(o instanceof Qs))throw new ha('batch-merge-no-element-before: Node before merge position must be an element.');if(!(n instanceof Qs))throw new ha('batch-merge-no-element-after: Node after merge position must be an element.');const i=Ys.createFromParentAndOffset(n,0),r=Ys.createFromParentAndOffset(o,o.maxOffset),a=new $c(i,n.maxOffset,r,this.document.version);a.isSticky=!0,t.addOperation(a),this.document.applyOperation(a);const s=this.document.graveyard,l=new Ys(s,[0]),d=new Uc(e,1,l,this.document.version);t.addOperation(d),this.document.applyOperation(d)}rename(e,t){if(!(e instanceof Qs))throw new ha('batch-rename-not-element-instance: Trying to rename an object which is not an instance of Element.');const o=new du;this.addDelta(o);const n=new Yc(Ys.createBefore(e),e.name,t,this.document.version);o.addOperation(n),this.document.applyOperation(n)}split(e){const t=new ru;this.addDelta(t);const o=e.parent;if(!o.parent)throw new ha('batch-split-element-no-parent: Element with no parent can not be split.');const n=new Qs(o.name,o.getAttributes()),i=new Qc(Ys.createAfter(o),n,this.document.version);t.addOperation(i),this.document.applyOperation(i);const r=new $c(e,o.maxOffset-e.offset,Ys.createFromParentAndOffset(n,0),this.document.version);r.isSticky=!0,t.addOperation(r),this.document.applyOperation(r)}wrap(e,t){if(!e.isFlat)throw new ha('batch-wrap-range-not-flat: Range to wrap is not flat.');const o=t instanceof Qs?t:new Qs(t);if(0=t)break;yield e}}}getDelta(e){const t=this._historyPoints.get(e);return t===void 0?null:this._deltas[t]}setDeltaAsUndone(e,t){this._undoPairs.set(t,e),this._undoneDeltas.add(e)}isUndoingDelta(e){return this._undoPairs.has(e)}isUndoneDelta(e){return this._undoneDeltas.has(e)}getUndoneDelta(e){return this._undoPairs.get(e)}_getIndex(e){const t=this._historyPoints.get(e);if(t===void 0){const t=this._deltas[this._deltas.length-1],o=t.baseVersion+t.operations.length;if(0>e||e>=o)return-1;throw new ha('model-history-wrong-version: Given base version points to the middle of a delta.')}return t}}class hp extends Xs{constructor(e,t){super(e,t),Yt.call(this)}detach(){this.stopListening()}}s(hp,Sa);class bp{constructor(e,t){this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,e&&this.setRanges(e,t)}get anchor(){if(0{if(!(e instanceof Xs))throw new ha('model-selection-added-not-range: Trying to add an object that is not an instance of Range.');return this._ranges.every((t)=>!t.isEqual(e))});if(e.length!==this._ranges.length||o){this._removeAllRanges();for(const t of e)this._pushRange(t);this._lastRangeBackward=!!t,this.fire('change:range',{directChange:!0})}}setTo(e){e instanceof bp?this.setRanges(e.getRanges(),e.isBackward):e instanceof Xs?this.setRanges([e]):S(e)?this.setRanges(e):this.setRanges([new Xs(e)])}setIn(e){this.setRanges([Xs.createIn(e)])}setOn(e){this.setRanges([Xs.createOn(e)])}setCollapsedAt(e,t){const o=Ys.createAt(e,t),n=new Xs(o,o);this.setRanges([n])}collapseToStart(){const e=this.getFirstPosition();null!==e&&this.setRanges([new Xs(e,e)])}collapseToEnd(){const e=this.getLastPosition();null!==e&&this.setRanges([new Xs(e,e)])}moveFocusTo(e,t){if(null===this.anchor)throw new ha('model-selection-moveFocusTo-no-ranges: Cannot set selection focus if there are no ranges in selection.');const o=Ys.createAt(e,t);if('same'!=o.compareWith(this.focus)){const e=this.anchor;this._ranges.length&&this._popRange(),'before'==o.compareWith(e)?this.addRange(new Xs(o,e),!0):this.addRange(new Xs(e,o))}}getAttribute(e){return this._attrs.get(e)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(e){return this._attrs.has(e)}clearAttributes(){if(0{_p.has(t)&&this._updateAttributes(!1),no(o,n,this._document)})}get isCollapsed(){const e=this._ranges.length;return 0===e?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return 0{t.root==this._document.graveyard&&this._fixGraveyardSelection(t,n.sourcePosition),this.fire('change:range',{directChange:!1})}),t}_updateAttributes(e){const t=E(this._getSurroundingAttributes()),o=E(this.getAttributes());if(e)this._attributePriority=new Map,this._attrs=new Map;else for(const[e,t]of this._attributePriority)'low'==t&&(this._attrs.delete(e),this._attributePriority.delete(e));this._setAttributesTo(t,!1);const n=[];for(const[t,i]of this.getAttributes())o.has(t)&&o.get(t)===i||n.push(t);for(const[t]of o)this.hasAttribute(t)||n.push(t);0this._getItem(e));if(!this._getItem(e.name)._checkRequiredAttributes(e.attributes))return!1;for(const n of e.attributes)for(const e of o)if(e._hasMatchingPath('disallow',t,n))return!1;for(const n of e.attributes){if(n&&vp._isStoreAttributeKey(n))continue;let e=!1;for(const i of o)if(i._hasMatchingPath('allow',t,n)){e=!0;break}if(!e)return!1}return!0}hasItem(e){return this._items.has(e)}registerItem(e,t){if(this.hasItem(e))throw new ha('model-schema-item-exists: Item with specified name already exists in schema.');if(!!t&&!this.hasItem(t))throw new ha('model-schema-no-item: Item with specified name does not exist in schema.');this._items.set(e,new yp(this));const o=this.hasItem(t)?this._extensionChains.get(t).concat(e):[e];this._extensionChains.set(e,o)}itemExtends(e,t){if(!this.hasItem(e)||!this.hasItem(t))throw new ha('model-schema-no-item: Item with specified name does not exist in schema.');const o=this._extensionChains.get(e);return o.some((e)=>e==t)}checkAttributeInSelection(e,t){if(e.isCollapsed)return this.check({name:'$text',inside:e.getFirstPosition(),attributes:t});else{const o=e.getRanges();for(const e of o)for(const o of e){const e=o.item.name||'$text',n=Array.from(o.item.getAttributeKeys()).concat(t);if(this.check({name:e,inside:o.previousPosition,attributes:n}))return!0}}return!1}getValidRanges(e,t){const o=[];for(const n of e){let e=n.start,i=n.start;const r=n.end;for(const r of n.getWalker()){const n=r.item.name||'$text',a=Ys.createBefore(r.item);this.check({name:n,inside:a,attributes:t})||(!i.isEqual(e)&&o.push(new Xs(i,e)),i=r.nextPosition),e=r.nextPosition}i&&!i.isEqual(r)&&o.push(new Xs(i,r))}return o}getLimitElement(e){let t=Array.from(e.getRanges()).reduce((e,t)=>e?e.getCommonAncestor(t.getCommonAncestor()):t.getCommonAncestor(),null);for(;!this.limits.has(t.name)&&t.parent;)t=t.parent;return t}removeDisallowedAttributes(e,t,o){for(const n of e){const e=n.is('text')?'$text':n.name,i=Array.from(n.getAttributeKeys()),r=wp._normalizeQueryPath(t);if(!this.check({name:e,attributes:i,inside:r}))for(const t of n.getAttributeKeys())this.check({name:e,attributes:t,inside:r})||o.removeAttribute(t,n);n.is('element')&&this.removeDisallowedAttributes(n.getChildren(),r.concat(n.name),o)}}_getItem(e){if(!this.hasItem(e))throw new ha('model-schema-no-item: Item with specified name does not exist in schema.');return this._items.get(e)}static _normalizeQueryPath(e){let t=[];if(Ts(e))for(const o of e)o instanceof Qs?t.push(o.name):Ss(o)&&t.push(o);else if(e instanceof Ys){for(let o=e.parent;null!==o;)t.push(o.name),o=o.parent;t.reverse()}else Ss(e)&&(t=e.split(' '));return t}}class yp{constructor(e){this._schema=e,this._allowed=[],this._disallowed=[],this._requiredAttributes=[]}allow(e,t){this._addPath('_allowed',e,t)}disallow(e,t){this._addPath('_disallowed',e,t)}requireAttributes(e){this._requiredAttributes.push(e)}toJSON(){const e=qd(this);return e._schema='[model.Schema]',e}_addPath(e,t,o){t=t.slice(),Ts(o)||(o=[o]);for(const n of o)this[e].push({path:t,attribute:n})}_getPaths(e,t){const o='allow'===e?this._allowed:this._disallowed,n=[];for(const i of o)i.attribute===t&&n.push(i.path);return n}_checkRequiredAttributes(e){let t=!0;for(const o of this._requiredAttributes){t=!0;for(const n of o)if(-1==e.indexOf(n)){t=!1;break}if(t)break}return t}_hasMatchingPath(e,t,o){const n=this._getPaths(e,o);for(const i of n)if(io(this._schema,t,i))return!0;return!1}}class xp{constructor(){this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(e){return this._markers.has(e)}get(e){return this._markers.get(e)||null}set(e,t){const o=e instanceof Ap?e.name:e,n=this._markers.get(o);if(n){const e=n.getRange();if(e.isEqual(t))return n;this.remove(o)}const i=hp.createFromRange(t),r=new Ap(o,i);return this._markers.set(o,r),this.fire('add:'+o,r),r}remove(e){const t=e instanceof Ap?e.name:e,o=this._markers.get(t);return!!o&&(this._markers.delete(t),this.fire('remove:'+t,o),this._destroyMarker(o),!0)}*getMarkersAtPosition(e){for(const t of this)t.getRange().containsPosition(e)&&(yield t)}destroy(){for(const e of this._markers.values())this._destroyMarker(e);this._markers=null,this.stopListening()}*getMarkersGroup(e){for(const t of this._markers.values())t.name.startsWith(e+':')&&(yield t)}_destroyMarker(e){e.stopListening(),e._liveRange.detach(),e._liveRange=null}}s(xp,Sa);class Ap{constructor(e,t){this.name=e,this._liveRange=t,this._liveRange.delegate('change:range').to(this),this._liveRange.delegate('change:content').to(this)}getStart(){if(!this._liveRange)throw new ha('marker-destroyed: Cannot use a destroyed marker instance.');return Ys.createFromPosition(this._liveRange.start)}getEnd(){if(!this._liveRange)throw new ha('marker-destroyed: Cannot use a destroyed marker instance.');return Ys.createFromPosition(this._liveRange.end)}getRange(){if(!this._liveRange)throw new ha('marker-destroyed: Cannot use a destroyed marker instance.');return Xs.createFromRange(this._liveRange)}}s(Ap,Sa);const Cp='$graveyard';class Tp{constructor(){this.version=0,this.schema=new wp,this.history=new fp(this),this.markers=new xp,this.selection=new vp(this),this._pendingChanges=[],this.roots=new Map,this.selection.on('change:range',()=>{for(const e of this.selection.getRanges())if(!this._validateSelectionRange(e))throw new ha('document-selection-wrong-position: Range from document selection starts or ends at incorrect position.',{range:e})}),this.createRoot('$root',Cp)}get graveyard(){return this.getRoot(Cp)}applyOperation(e){if(e.baseVersion!==this.version)throw new ha('model-document-applyOperation-wrong-version: Only operations with matching versions can be applied.',{operation:e});const t=e._execute();e.isDocumentOperation&&(this.version++,this.history.addDelta(e.delta),this.fire('change',e.type,t,e.delta.batch,e.delta.type))}batch(e){return new gp(this,e)}createRoot(e='$root',t='main'){if(this.roots.has(t))throw new ha('model-document-createRoot-name-exists: Root with specified name already exists.',{name:t});const o=new up(this,e,t);return this.roots.set(t,o),o}destroy(){this.selection.destroy(),this.stopListening()}enqueueChanges(e){if(this._pendingChanges.push(e),1==this._pendingChanges.length){for(;this._pendingChanges.length;)this._pendingChanges[0](),this._pendingChanges.shift();this.fire('changesDone')}}getRoot(e='main'){if(!this.roots.has(e))throw new ha('model-document-getRoot-root-not-exist: Root with specified name does not exist.',{name:e});return this.roots.get(e)}hasRoot(e){return this.roots.has(e)}getRootNames(){return Array.from(this.roots.keys()).filter((e)=>e!=Cp)}getNearestSelectionRange(e,t='both'){if(this.schema.check({name:'$text',inside:e}))return new Xs(e);let o,n;('both'==t||'backward'==t)&&(o=new Js({startPosition:e,direction:'backward'})),('both'==t||'forward'==t)&&(n=new Js({startPosition:e}));for(const i of ao(o,n)){const e=i.walker==o?'elementEnd':'elementStart',t=i.value;if(t.type==e&&this.schema.objects.has(t.item.name))return Xs.createOn(t.item);if(this.schema.check({name:'$text',inside:t.nextPosition}))return new Xs(t.nextPosition)}return null}transformDeltas(e,t,o=!1){return sp.transformDeltaSets(e,t,o?this:null)}toJSON(){const e=qd(this);return e.selection='[engine.model.DocumentSelection]',e}_getDefaultRoot(){for(const e of this.roots.values())if(e!==this.graveyard)return e;return this.graveyard}_getDefaultRange(){const e=this._getDefaultRoot(),t=new Ys(e,[0]),o=this.getNearestSelectionRange(t);return o||new Xs(t)}_validateSelectionRange(e){return ro(e.start)&&ro(e.end)}}s(Tp,Sa);class Pp{constructor(e){const t=this.constructor.build&&this.constructor.build.plugins;this.config=new ga(e,this.constructor.build&&this.constructor.build.config),this.config.define('plugins',t),this.plugins=new _a(this,t),this.commands=new va,this.locale=new ya(this.config.get('language')),this.t=this.locale.t,this.document=new Tp,this.data=new xc(this.document),this.set('isReadOnly',!1)}initPlugins(){function e(e,t){return e.reduce((e,o)=>o[t]?e.then(o[t].bind(o)):e,Promise.resolve())}const t=this,o=this.config;return function(){const e=o.get('plugins')||[],n=o.get('removePlugins')||[];return t.plugins.load(e,n)}().then((t)=>e(t,'init').then(()=>e(t,'afterInit'))).then(()=>this.fire('pluginsReady'))}destroy(){return this.fire('destroy'),this.stopListening(),this.commands.destroy(),this.plugins.destroy().then(()=>{this.document.destroy(),this.data.destroy()})}execute(...e){this.commands.execute(...e)}static create(e){return new Promise((t)=>{const o=new this(e);t(o.initPlugins().then(()=>{o.fire('dataReady'),o.fire('ready')}).then(()=>o))})}}s(Pp,Hs);const Ep=Ds({},Sa,{listenTo(...e){const t=e[0];so(t)&&(e[0]=this._getProxyEmitter(t)||new Op(t)),Sa.listenTo.apply(this,e)},stopListening(...e){const t=e[0];if(so(t)){const o=this._getProxyEmitter(t);if(!o)return;e[0]=o}Sa.stopListening.apply(this,e)},_getProxyEmitter(e){return d(this,lo(e))}});var Sp=Ep;class Op{constructor(e){c(this,lo(e)),this._domNode=e}}Ds(Op.prototype,Sa,{on(e,t,o={}){if(Sa.on.call(this,e,t,o),!(this._domListeners&&this._domListeners[e])){const t=this._createDomListener(e,!!o.useCapture);this._domNode.addEventListener(e,t,!!o.useCapture),this._domListeners||(this._domListeners={}),this._domListeners[e]=t}},off(e,t){Sa.off.call(this,e,t);let o;!this._domListeners[e]||(o=this._events[e])&&o.callbacks.length||this._domListeners[e].removeListener()},_createDomListener(e,t){const o=(t)=>{this.fire(e,t)};return o.removeListener=()=>{this._domNode.removeEventListener(e,o,t),delete this._domListeners[e]},o}});class Vp{constructor(){this._listener=Object.create(Sp)}listenTo(e){this._listener.listenTo(e,'keydown',(e,t)=>{this._listener.fire('_keydown:'+te(t),t)})}set(e,t,o={}){const n=oe(e),i=o.priority;this._listener.listenTo(this._listener,'_keydown:'+n,(e,o)=>{t(o,()=>{o.preventDefault(),o.stopPropagation(),e.stop()}),e.return=!0},{priority:i})}press(e){return!!this._listener.fire('_keydown:'+te(e),e)}destroy(){this._listener.stopListening()}}class Rp extends Vp{constructor(e){super(),this.editor=e}set(e,t,o={}){if('string'==typeof t){const e=t;t=(t,o)=>{this.editor.execute(e),o()}}super.set(e,t,o)}}class Fp{constructor(e,t){this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel='',e&&this.setRanges(e,t)}setFake(e=!0,t={}){this._isFake=e,this._fakeSelectionLabel=e?t.label||'':'',this.fire('change')}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1],t=this._lastRangeBackward?e.end:e.start;return Xd.createFromPosition(t)}get focus(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1],t=this._lastRangeBackward?e.start:e.end;return Xd.createFromPosition(t)}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}addRange(e,t){if(!(e instanceof Zd))throw new ha('view-selection-invalid-range: Invalid Range.');this._pushRange(e),this._lastRangeBackward=!!t,this.fire('change')}*getRanges(){for(const e of this._ranges)yield Zd.createFromRange(e)}getFirstRange(){let e=null;for(const t of this._ranges)(!e||t.start.isBefore(e.start))&&(e=t);return e?Zd.createFromRange(e):null}getLastRange(){let e=null;for(const t of this._ranges)(!e||t.end.isAfter(e.end))&&(e=t);return e?Zd.createFromRange(e):null}getFirstPosition(){const e=this.getFirstRange();return e?Xd.createFromPosition(e.start):null}getLastPosition(){const e=this.getLastRange();return e?Xd.createFromPosition(e.end):null}isEqual(e){if(this.isFake!=e.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=e.fakeSelectionLabel)return!1;if(this.rangeCount!=e.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(e.anchor)||!this.focus.isEqual(e.focus))return!1;for(const t of this._ranges){let o=!1;for(const n of e._ranges)if(t.isEqual(n)){o=!0;break}if(!o)return!1}return!0}isSimilar(e){if(this.isBackward!=e.isBackward)return!1;const t=co(this.getRanges()),o=co(e.getRanges());if(t!=o)return!1;if(0==t)return!0;for(let t of this.getRanges()){t=t.getTrimmed();let o=!1;for(let n of e.getRanges())if(n=n.getTrimmed(),t.start.isEqual(n.start)&&t.end.isEqual(n.end)){o=!0;break}if(!o)return!1}return!0}removeAllRanges(){this._ranges.length&&(this._ranges=[],this.fire('change'))}setRanges(e,t){this._ranges=[];for(const o of e){if(!(o instanceof Zd))throw new ha('view-selection-invalid-range: Invalid Range.');this._pushRange(o)}this._lastRangeBackward=!!t,this.fire('change')}setTo(e){e instanceof Fp?(this._isFake=e._isFake,this._fakeSelectionLabel=e._fakeSelectionLabel,this.setRanges(e.getRanges(),e.isBackward)):e instanceof Zd?this.setRanges([e]):S(e)?this.setRanges(e):this.setRanges([new Zd(e)])}setIn(e){this.setRanges([Zd.createIn(e)])}setOn(e){this.setRanges([Zd.createOn(e)])}setCollapsedAt(e,t){const o=Xd.createAt(e,t),n=new Zd(o,o);this.setRanges([n])}collapseToStart(){const e=this.getFirstPosition();null!==e&&this.setRanges([new Zd(e,e)])}collapseToEnd(){const e=this.getLastPosition();null!==e&&this.setRanges([new Zd(e,e)])}moveFocusTo(e,t){if(null===this.anchor)throw new ha('view-selection-moveFocusTo-no-ranges: Cannot set selection focus if there are no ranges in selection.');const o=Xd.createAt(e,t);if('same'!=o.compareWith(this.focus)){const e=this.anchor;this._ranges.pop(),'before'==o.compareWith(e)?this.addRange(new Zd(o,e),!0):this.addRange(new Zd(e,o))}}getSelectedElement(){if(1!==this.rangeCount)return null;const e=this.getFirstRange(),t=e.start.nodeAfter,o=e.end.nodeBefore;return t instanceof Kd&&t==o?t:null}static createFromSelection(e){const t=new Fp;return t.setTo(e),t}_pushRange(e){for(const t of this._ranges)if(e.isIntersecting(t))throw new ha('view-selection-range-intersects: Trying to add a range that intersects with another range from selection.',{addedRange:e,intersectingRange:t});this._ranges.push(Zd.createFromRange(e))}}s(Fp,Sa);const Ip=(e)=>{const t=e.createElement('br');return t.dataset.ckeFiller=!0,t},Np=(e)=>e.createTextNode('\xA0'),Bp=7;let Mp='';for(let n=0;ne.name),n=e.getAttributeKeys();for(const o of n)t.setAttribute(o,e.getAttribute(o));for(const n of o)e.hasAttribute(n)||t.removeAttribute(n)}_updateChildren(e,t){function o(e,t){if(e===t)return!0;return n.isText(e)&&n.isText(t)?e.data===t.data:go(e,n.blockFiller)&&go(t,n.blockFiller)}const n=this.domConverter,r=n.mapViewToDom(e);if(r){const a=r.ownerDocument,s=t.inlineFillerPosition,l=r.childNodes,d=Array.from(n.viewChildrenToDom(e,a,{bind:!0}));s&&s.parent==e&&this._addInlineFiller(a,d,s.offset);const c=bo(l,d,o);let u=0;const i=new Set;for(const e of c)'insert'===e?(ko(r,u,d[u]),u++):'delete'===e?(i.add(l[u]),_o(l[u])):u++;for(const e of i)e.parentNode||this.domConverter.unbindDomElement(e)}}_updateSelection(){if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const e=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&e&&(this.selection.isFake?this._updateFakeSelection(e):(this._removeFakeSelection(),this._updateDomSelection(e)))}_updateFakeSelection(e){const t=e.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=t.createElement('div'),this._fakeSelectionContainer.style.position='fixed',this._fakeSelectionContainer.style.top=0,this._fakeSelectionContainer.style.left='-9999px',this._fakeSelectionContainer.appendChild(t.createTextNode('\xA0'))),this._fakeSelectionContainer.parentElement||e.appendChild(this._fakeSelectionContainer);const o=this.selection.fakeSelectionLabel||'\xA0';this._fakeSelectionContainer.firstChild.data=o;const n=t.getSelection();n.removeAllRanges();const i=t.createRange();i.selectNodeContents(this._fakeSelectionContainer),n.addRange(i),this.domConverter.bindFakeSelection(this._fakeSelectionContainer,this.selection)}_updateDomSelection(e){const t=e.ownerDocument.defaultView.getSelection();if(this._domSelectionNeedsUpdate(t)){const e=this.domConverter.viewPositionToDom(this.selection.anchor),o=this.domConverter.viewPositionToDom(this.selection.focus);t.collapse(e.parent,e.offset),t.extend(o.parent,o.offset)}}_domSelectionNeedsUpdate(e){if(!this.domConverter.isDomSelectionCorrect(e))return!0;const t=e&&this.domConverter.domSelectionToView(e);return t&&this.selection.isEqual(t)?!1:!this.selection.isCollapsed&&this.selection.isSimilar(t)?!1:!0}_removeDomSelection(){for(const e of this.domDocuments){const t=e.getSelection();if(t.rangeCount){const t=e.activeElement,o=this.domConverter.mapDomToView(t);t&&o&&e.getSelection().removeAllRanges()}}}_removeFakeSelection(){const e=this._fakeSelectionContainer;e&&e.remove()}_updateFocus(){if(this.isFocused){const e=this.selection.editableElement;e&&this.domConverter.focus(e)}}}s(Lp,Hs);var zp={window,document};class jp{constructor(e={}){this.blockFiller=e.blockFiller||Ip,this.preElements=['pre'],this.blockElements=['p','div','h1','h2','h3','h4','h5','h6'],this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap}bindFakeSelection(e,t){this._fakeSelectionMapping.set(e,Fp.createFromSelection(t))}fakeSelectionToView(e){return this._fakeSelectionMapping.get(e)}bindElements(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}unbindDomElement(e){const t=this._domToViewMapping.get(e);if(t){this._domToViewMapping.delete(e),this._viewToDomMapping.delete(t);for(const t of Array.from(e.childNodes))this.unbindDomElement(t)}}bindDocumentFragments(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}viewToDom(e,t,o={}){if(e.is('text')){const o=this._processDataFromViewText(e);return t.createTextNode(o)}else{if(this.mapViewToDom(e))return this.mapViewToDom(e);let n;if(e.is('documentFragment'))n=t.createDocumentFragment(),o.bind&&this.bindDocumentFragments(n,e);else{if(e.is('uiElement'))return n=e.render(t),o.bind&&this.bindElements(n,e),n;n=t.createElement(e.name),o.bind&&this.bindElements(n,e);for(const t of e.getAttributeKeys())n.setAttribute(t,e.getAttribute(t))}if(o.withChildren||void 0===o.withChildren)for(const i of this.viewChildrenToDom(e,t,o))n.appendChild(i);return n}}*viewChildrenToDom(e,t,o={}){const n=e.getFillerOffset&&e.getFillerOffset();let i=0;for(const r of e.getChildren())n===i&&(yield this.blockFiller(t)),yield this.viewToDom(r,t,o),i++;n===i&&(yield this.blockFiller(t))}viewRangeToDom(e){const t=this.viewPositionToDom(e.start),o=this.viewPositionToDom(e.end),n=document.createRange();return n.setStart(t.parent,t.offset),n.setEnd(o.parent,o.offset),n}viewPositionToDom(e){const t=e.parent;if(t.is('text')){const o=this.findCorrespondingDomText(t);if(!o)return null;let n=e.offset;return uo(o)&&(n+=Bp),{parent:o,offset:n}}else{let o,n,i;if(0===e.offset){if(o=this.mapViewToDom(t),!o)return null;i=o.childNodes[0]}else{const t=e.nodeBefore;if(n=t.is('text')?this.findCorrespondingDomText(t):this.mapViewToDom(e.nodeBefore),!n)return null;o=n.parentNode,i=n.nextSibling}if(this.isText(i)&&uo(i))return{parent:i,offset:Bp};const r=n?wo(n)+1:0;return{parent:o,offset:r}}}domToView(e,t={}){if(go(e,this.blockFiller))return null;const o=this.getParentUIElement(e,this._domToViewMapping);if(o)return o;if(this.isText(e)){if(mo(e))return null;else{const t=this._processDataFromDomText(e);return''===t?null:new Wd(t)}}else if(this.isComment(e))return null;else{if(this.mapDomToView(e))return this.mapDomToView(e);let o;if(this.isDocumentFragment(e))o=new gc,t.bind&&this.bindDocumentFragments(e,o);else{const n=t.keepOriginalCase?e.tagName:e.tagName.toLowerCase();o=new Kd(n),t.bind&&this.bindElements(e,o);const r=e.attributes;for(let e=r.length-1;0<=e;e--)o.setAttribute(r[e].name,r[e].value)}if(t.withChildren||void 0===t.withChildren)for(const n of this.domChildrenToView(e,t))o.appendChildren(n);return o}}*domChildrenToView(e,t={}){for(let o=0;on?0:n),new Xd(o,n)):null}if(0===t){const t=this.mapDomToView(e);if(t)return new Xd(t,0)}else{const o=e.childNodes[t-1],n=this.isText(o)?this.findCorrespondingViewText(o):this.mapDomToView(o);if(n&&n.parent)return new Xd(n.parent,n.index+1)}return null}mapDomToView(e){return this.getParentUIElement(e)||this._domToViewMapping.get(e)}findCorrespondingViewText(e){if(mo(e))return null;const t=this.getParentUIElement(e);if(t)return t;const o=e.previousSibling;if(o){if(!this.isElement(o))return null;const e=this.mapDomToView(o);if(e){const t=e.nextSibling;return t instanceof Wd?e.nextSibling:null}}else{const t=this.mapDomToView(e.parentNode);if(t){const e=t.getChild(0);return e instanceof Wd?e:null}}return null}mapViewToDom(e){return this._viewToDomMapping.get(e)}findCorrespondingDomText(e){const t=e.previousSibling;return t&&this.mapViewToDom(t)?this.mapViewToDom(t).nextSibling:!t&&e.parent&&this.mapViewToDom(e.parent)?this.mapViewToDom(e.parent).childNodes[0]:null}focus(e){const t=this.mapViewToDom(e);if(t&&t.ownerDocument.activeElement!==t){const{scrollX:e,scrollY:o}=zp.window,n=[];Co(t,(e)=>{const{scrollLeft:t,scrollTop:o}=e;n.push([t,o])}),t.focus(),Co(t,(e)=>{const[t,o]=n.shift();e.scrollLeft=t,e.scrollTop=o}),zp.window.scrollTo(e,o)}}isText(e){return e&&e.nodeType==Node.TEXT_NODE}isElement(e){return e&&e.nodeType==Node.ELEMENT_NODE}isDocumentFragment(e){return e&&e.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isComment(e){return e&&e.nodeType==Node.COMMENT_NODE}isDomSelectionBackward(e){if(e.isCollapsed)return!1;const t=document.createRange();t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset);const o=t.collapsed;return t.detach(),o}getParentUIElement(e){const t=yo(e);for(t.pop();t.length;){const e=t.pop(),o=this._domToViewMapping.get(e);if(o&&o.is('uiElement'))return o}return null}isDomSelectionCorrect(e){return this._isDomSelectionPositionCorrect(e.anchorNode,e.anchorOffset)&&this._isDomSelectionPositionCorrect(e.focusNode,e.focusOffset)}_isDomSelectionPositionCorrect(e,t){if(this.isText(e)&&uo(e)&&tthis.preElements.includes(e.name)))return t;if(' '==t.charAt(0)){const o=this._getTouchingViewTextNode(e,!1),n=o&&this._nodeEndsWithSpace(o);(n||!o)&&(t='\xA0'+t.substr(1))}if(' '==t.charAt(t.length-1)){const o=this._getTouchingViewTextNode(e,!0);o||(t=t.substr(0,t.length-1)+'\xA0')}return t.replace(/ {2}/g,' \xA0')}_nodeEndsWithSpace(e){if(e.getAncestors().some((e)=>this.preElements.includes(e.name)))return!1;const t=this._processDataFromViewText(e);return' '==t.charAt(t.length-1)}_processDataFromDomText(e){let t=po(e);if(Ao(e,this.preElements))return t;t=t.replace(/[ \n\t\r]{1,}/g,' ');const o=this._getTouchingDomTextNode(e,!1),n=this._getTouchingDomTextNode(e,!0);return(!o||/[^\S\u00A0]/.test(o.data.charAt(o.data.length-1)))&&(t=t.replace(/^ /,'')),n||(t=t.replace(/ $/,'')),t=t.replace(/ \u00A0/g,' '),(!o||/[^\S\u00A0]/.test(o.data.charAt(o.data.length-1)))&&(t=t.replace(/^\u00A0/,' ')),n&&'\xA0'!=n.data.charAt(0)||(t=t.replace(/\u00A0( *)$/,' $1')),t}_getTouchingViewTextNode(e,t){const o=new Qd({startPosition:t?Xd.createAfter(e):Xd.createBefore(e),direction:t?'forward':'backward'});for(const n of o){if(n.item.is('containerElement'))return null;if(n.item.is('text'))return n.item}return null}_getTouchingDomTextNode(e,t){if(!e.parentNode)return null;const o=t?'nextNode':'previousNode',n=e.ownerDocument,i=n.createTreeWalker(n.childNodes[0],NodeFilter.SHOW_TEXT);i.currentNode=e;const r=i[o]();if(null!==r){const t=xo(e,r);if(t&&!Ao(e,this.blockElements,t)&&!Ao(r,this.blockElements,t))return r}return null}}const qp=Symbol('rootName');class Hp extends Yd{constructor(e){super(e),this.rootName='main'}is(e,t=null){return t?'rootElement'==e&&t==this.name||super.is(e,t):'rootElement'==e||super.is(e)}get rootName(){return this.getCustomProperty(qp)}set rootName(e){this.setCustomProperty(qp,e)}}class Wp{constructor(e){this.document=e,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}}s(Wp,Sp);var $p=function(e,t,o){o='function'==typeof o?o:void 0;var n=o?o(e,t):void 0;return n===void 0?qc(e,t,o):!!n};class Kp extends Wp{constructor(e){super(e),this._config={childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0},this.domConverter=e.domConverter,this.renderer=e.renderer,this._domElements=[],this._mutationObserver=new window.MutationObserver(this._onMutations.bind(this))}flush(){this._onMutations(this._mutationObserver.takeRecords())}observe(e){this._domElements.push(e),this.isEnabled&&this._mutationObserver.observe(e,this._config)}enable(){super.enable();for(const e of this._domElements)this._mutationObserver.observe(e,this._config)}disable(){super.disable(),this._mutationObserver.disconnect()}destroy(){super.destroy(),this._mutationObserver.disconnect()}_onMutations(e){function t(e,t){if(!Array.isArray(e))return e===t||e.is('text')&&t.is('text')&&e.data===t.data}if(0===e.length)return;const o=this.domConverter,n=new Map,i=new Set;for(const t of e)if('childList'===t.type){const e=o.mapDomToView(t.target);if(e&&e.is('uiElement'))continue;e&&!this._isBogusBrMutation(t)&&i.add(e)}for(const t of e){const e=o.mapDomToView(t.target);if(!(e&&e.is('uiElement'))&&'characterData'===t.type){const e=o.findCorrespondingViewText(t.target);e&&!i.has(e.parent)?n.set(e,{type:'text',oldText:e.data,newText:po(t.target),node:e}):!e&&uo(t.target)&&i.add(o.mapDomToView(t.target.parentNode))}}const r=[];for(const t of n.values())this.renderer.markToSync('text',t.node),r.push(t);for(const n of i){const e=o.mapViewToDom(n),i=Array.from(n.getChildren()),a=Array.from(o.domChildrenToView(e));$p(i,a,t)||(this.renderer.markToSync('children',n),r.push({type:'children',oldChildren:i,newChildren:a,node:n}))}const a=e[0].target.ownerDocument.getSelection();let s=null;if(a&&a.anchorNode){const e=o.domPositionToView(a.anchorNode,a.anchorOffset),t=o.domPositionToView(a.focusNode,a.focusOffset);e&&t&&(s=new Fp,s.setCollapsedAt(e),s.moveFocusTo(t))}this.document.fire('mutations',r,s),this.document.render()}_isBogusBrMutation(e){let t=null;return null===e.nextSibling&&0===e.removedNodes.length&&1==e.addedNodes.length&&(t=this.domConverter.domToView(e.addedNodes[0],{withChildren:!1})),t&&t.is('element','br')}}var Up=Date.now,Qp=Up,Jp=function(e,t,o){function n(t){var o=f,n=h;return f=h=void 0,u=t,k=e.apply(n,o),k}function i(e){return u=e,_=setTimeout(s,t),m?n(e):k}function r(e){var o=e-c,n=e-u,i=t-o;return p?ta(i,b-n):i}function a(e){var o=e-c,n=e-u;return!c||o>=t||0>o||p&&n>=b}function s(){var e=Qp();return a(e)?l(e):void(_=setTimeout(s,r(e)))}function l(e){return(clearTimeout(_),_=void 0,g&&f)?n(e):(f=h=void 0,k)}function d(){var e=Qp(),o=a(e);if(f=arguments,h=this,c=e,o){if(void 0===_)return i(c);if(p)return clearTimeout(_),_=setTimeout(s,t),n(c)}return void 0===_&&(_=setTimeout(s,t)),k}var c=0,u=0,m=!1,p=!1,g=!0,f,h,b,k,_;if('function'!=typeof e)throw new TypeError('Expected a function');return t=os(t)||0,Ma(o)&&(m=!!o.leading,p='maxWait'in o,b=p?oa(os(o.maxWait)||0,t):b,g='trailing'in o?!!o.trailing:g),d.cancel=function(){void 0!==_&&clearTimeout(_),c=u=0,f=h=_=void 0},d.flush=function(){return void 0===_?k:l(Qp())},d};class Gp extends Wp{constructor(e){super(e),this.mutationObserver=e.getObserver(Kp),this.document=e,this.selection=e.selection,this.domConverter=e.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=Jp((e)=>this.document.fire('selectionChangeDone',e),200),this._clearInfiniteLoopInterval=setInterval(()=>this._clearInfiniteLoop(),1e3),this._loopbackCounter=0}observe(e){const t=e.ownerDocument;this._documents.has(t)||(this.listenTo(t,'selectionchange',()=>{this._handleSelectionChange(t)}),this._documents.add(t))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionChange(e){if(this.isEnabled&&(this.document.isFocused||this.document.isReadOnly)){this.mutationObserver.flush();const t=e.defaultView.getSelection(),o=this.domConverter.domSelectionToView(t);if(!(this.selection.isEqual(o)&&this.domConverter.isDomSelectionCorrect(t))){if(60<++this._loopbackCounter)return void ka.warn('selectionchange-infinite-loop: Selection change observer detected an infinite rendering loop.');if(this.selection.isSimilar(o))this.document.render();else{const e={oldSelection:this.selection,newSelection:o,domSelection:t};this.document.fire('selectionChange',e),this._fireSelectionChangeDoneDebounced(e)}}}}_clearInfiniteLoop(){this._loopbackCounter=0}}class Yp{constructor(e,t,o){this.document=e,this.domEvent=t,this.domTarget=t.target,Ds(this,o)}get target(){return this.document.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class Xp extends Wp{constructor(e){super(e),this.useCapture=!1}observe(e){const t='string'==typeof this.domEventType?[this.domEventType]:this.domEventType;t.forEach((t)=>{this.listenTo(e,t,(e,t)=>{this.isEnabled&&this.onDomEvent(t)},{useCapture:this.useCapture})})}fire(e,t,o){this.isEnabled&&this.document.fire(e,new Yp(this.document,t,o))}}class Zp extends Xp{constructor(e){super(e),this.domEventType=['focus','blur'],this.useCapture=!0,e.on('focus',()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout(()=>e.render(),0)}),e.on('blur',(t,o)=>{const n=e.selection.editableElement;(null===n||n===o.target)&&(e.isFocused=!1,e.render())})}onDomEvent(e){this.fire(e.type,e)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class eg extends Xp{constructor(e){super(e),this.domEventType=['keydown','keyup']}onDomEvent(e){this.fire(e.type,e,{keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey||e.metaKey,shiftKey:e.shiftKey,get keystroke(){return te(this)}})}}class tg extends Wp{constructor(e){super(e),this._fireSelectionChangeDoneDebounced=Jp((e)=>this.document.fire('selectionChangeDone',e),200)}observe(){const e=this.document;e.on('keydown',(t,o)=>{const n=e.selection;n.isFake&&To(o.keyCode)&&this.isEnabled&&(o.preventDefault(),this._handleSelectionMove(o.keyCode))},{priority:'lowest'})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(e){const t=this.document.selection,o=Fp.createFromSelection(t);o.setFake(!1),(e==mc.arrowleft||e==mc.arrowup)&&o.collapseToStart(),(e==mc.arrowright||e==mc.arrowdown)&&o.collapseToEnd();const n={oldSelection:t,newSelection:o,domSelection:null};this.document.fire('selectionChange',n),this._fireSelectionChangeDoneDebounced(n)}}var og=function(e){return!!e&&1===e.nodeType&&sa(e)&&!pa(e)};class ng{constructor(e){const t=Po(e);if(Object.defineProperty(this,'_source',{value:e._source||e,writable:!0,enumerable:!1}),og(e)||t){const o=t?e.startContainer:e;o.ownerDocument&&o.ownerDocument.body.contains(o)||ka.warn('rect-source-not-in-dom: The source of this rect does not belong to any rendered DOM tree.',{source:e}),t?Oo(this,ng.getDomRangeRects(e)[0]):Oo(this,e.getBoundingClientRect())}else if(Eo(e)){const{innerWidth:t,innerHeight:o}=e;Oo(this,{top:0,right:t,bottom:o,left:0,width:t,height:o})}else Oo(this,e)}clone(){return new ng(this)}moveTo(e,t){return this.top=t,this.right=e+this.width,this.bottom=t+this.height,this.left=e,this}moveBy(e,t){return this.top+=t,this.right+=e,this.left+=e,this.bottom+=t,this}getIntersection(e){const t={top:oa(this.top,e.top),right:ta(this.right,e.right),bottom:ta(this.bottom,e.bottom),left:oa(this.left,e.left)};return t.width=t.right-t.left,t.height=t.bottom-t.top,0>t.width||0>t.height?null:new ng(t)}getIntersectionArea(e){const t=this.getIntersection(e);return t?t.getArea():0}getArea(){return this.width*this.height}getVisible(){const e=this._source;let t=this.clone();if(!Vo(e))for(let o=e.parentNode||e.commonAncestorContainer;o&&!Vo(o);){const e=new ng(o),n=t.getIntersection(e);if(n)n.getArea()new ng(e))}});class rg{constructor(){this.domRoots=new Map,this.selection=new Fp,this.domConverter=new jp,this.roots=new Map,this.set('isReadOnly',!1),this.set('isFocused',!1),this.renderer=new Lp(this.domConverter,this.selection),this.renderer.bind('isFocused').to(this),this._observers=new Map,this.addObserver(Kp),this.addObserver(Gp),this.addObserver(Zp),this.addObserver(eg),this.addObserver(tg),fo(this),re(this),this.decorate('render')}addObserver(e){let t=this._observers.get(e);if(t)return t;t=new e(this),this._observers.set(e,t);for(const[o,n]of this.domRoots)t.observe(n,o);return t.enable(),t}getObserver(e){return this._observers.get(e)}createRoot(e,t='main'){const o='string'==typeof e?e:e.tagName,n=new Hp(o.toLowerCase(),t);return n.document=this,this.roots.set(t,n),n.on('change:children',(e,t)=>this.renderer.markToSync('children',t)),n.on('change:attributes',(e,t)=>this.renderer.markToSync('attributes',t)),n.on('change:text',(e,t)=>this.renderer.markToSync('text',t)),this.domConverter.isElement(e)&&this.attachDomRoot(e,t),n}attachDomRoot(e,t='main'){const o=this.getRoot(t);this.domRoots.set(t,e),this.domConverter.bindElements(e,o),this.renderer.markToSync('children',o),this.renderer.domDocuments.add(e.ownerDocument);for(const o of this._observers.values())o.observe(e,t)}getRoot(e='main'){return this.roots.get(e)}getDomRoot(e='main'){return this.domRoots.get(e)}render(){this.disableObservers(),this.renderer.render(),this.enableObservers()}focus(){if(!this.isFocused){const e=this.selection.editableElement;e?(this.domConverter.focus(e),this.render()):ka.warn('view-focus-no-selection: There is no selection in any editable to focus.')}}scrollToTheSelection(){const e=this.selection.getFirstRange();e&&Ro({target:this.domConverter.viewRangeToDom(e),viewportOffset:20})}disableObservers(){for(const e of this._observers.values())e.disable()}enableObservers(){for(const e of this._observers.values())e.enable()}destroy(){for(const e of this._observers.values())e.destroy()}}s(rg,Hs);class ag{constructor(e){this.model=e,this.view=new rg,this.mapper=new ec,this.modelToView=new nc(this.model,{mapper:this.mapper,viewSelection:this.view.selection}),this.listenTo(this.model,'change',(e,t,o)=>{this.modelToView.convertChange(t,o)},{priority:'low'}),this.listenTo(this.model,'changesDone',()=>{const e=this.model.selection;this.modelToView.convertSelection(e),this.view.render()},{priority:'low'}),this.listenTo(this.model.markers,'add',(e,t)=>{this.modelToView.convertMarker('addMarker',t.name,t.getRange())}),this.listenTo(this.model.markers,'remove',(e,t)=>{this.modelToView.convertMarker('removeMarker',t.name,t.getRange())}),this.listenTo(this.view,'selectionChange',qo(this.model,this.mapper)),this.modelToView.on('insert:$text',Oe(),{priority:'lowest'}),this.modelToView.on('remove',Be(),{priority:'low'}),this.modelToView.on('selection',Jo(),{priority:'low'}),this.modelToView.on('selection',Go(),{priority:'low'}),this.modelToView.on('selection',Ho(),{priority:'low'}),this.modelToView.on('selection',Wo(),{priority:'low'})}createRoot(e,t='main'){const o=this.view.createRoot(e,t),n=this.model.getRoot(t);return this.mapper.bindElements(n,o),o}destroy(){this.view.destroy(),this.stopListening()}}s(ag,Hs);class sg extends Pp{constructor(e,t){super(t),this.element=e,this.editing=new ag(this.document),this.editing.view.bind('isReadOnly').to(this),this.keystrokes=new Rp(this),this.keystrokes.listenTo(this.editing.view),this._attachToForm()}destroy(){return Promise.resolve().then(()=>this.keystrokes.destroy()).then(()=>this.editing.destroy()).then(super.destroy())}setData(e){this.data.set(e)}getData(){return this.data.get()}updateEditorElement(){Xo(this.element,this.getData())}loadDataFromEditorElement(){this.setData(Yo(this.element))}_attachToForm(){const e=this.element;if(e&&'textarea'===e.tagName.toLowerCase()&&e.form){let t;const o=e.form,n=()=>this.updateEditorElement();za(o.submit)&&(t=o.submit,o.submit=()=>{n(),t.apply(o)}),o.addEventListener('submit',n),this.on('destroy',()=>{o.removeEventListener('submit',n),t&&(o.submit=t)})}}static create(e,t){return new Promise((o)=>{const n=new this(e,t);o(n.initPlugins().then(()=>{n.fire('dataReady'),n.fire('ready')}).then(()=>n))})}}class lg{getHtml(e){const t=document.implementation.createHTMLDocument(''),o=t.createElement('div');return o.appendChild(e),o.innerHTML}}class dg{constructor(){this._domParser=new DOMParser,this._domConverter=new jp({blockFiller:Np}),this._htmlWriter=new lg}toData(e){const t=this._domConverter.viewToDom(e,document);return this._htmlWriter.getHtml(t)}toView(e){const t=this._toDom(e);return this._domConverter.domToView(t)}_toDom(e){const t=this._domParser.parseFromString(e,'text/html'),o=t.createDocumentFragment(),n=t.body.childNodes;for(;0this._focus(e),{useCapture:!0}),this.listenTo(e,'blur',()=>this._blur(),{useCapture:!0}),this._elements.add(e)}remove(e){e===this.focusedElement&&this._blur(e),this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e))}_focus(e){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=e,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout(()=>{this.focusedElement=null,this.isFocused=!1},0)}}s(ug,Sp),s(ug,Hs);class mg{constructor(e,t){this.editor=e,this.view=t,this.componentFactory=new cg(e),this.focusTracker=new ug,this._toolbarConfig=tn(e.config.get('toolbar')),e.editing.createRoot(t.editableElement)}init(){const e=this.editor,t=this.view;t.render(),t.panel.bind('isVisible').to(this.focusTracker,'isFocused'),this._toolbarConfig.viewportTopOffset&&(t.viewportTopOffset=this._toolbarConfig.viewportTopOffset),t.listenTo(e.editing.view,'render',()=>{t.panel.isVisible&&t.panel.pin({target:t.editableElement,positions:t.panelPositions})});const o=e.editing.view.getRoot();t.editable.bind('isReadOnly').to(o),t.editable.bind('isFocused').to(this.focusTracker),t.editable.name=o.rootName,this.focusTracker.add(t.editableElement),t.toolbar.fillFromConfig(this._toolbarConfig.items,this.componentFactory),en({origin:e.editing.view,originFocusTracker:this.focusTracker,originKeystrokeHandler:e.keystrokes,toolbar:t.toolbar})}destroy(){this.view.destroy()}}class pg{constructor(e={}){this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||'id',this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(e,t){let o;const n=this._idProperty;if(n in e){if(o=e[n],'string'!=typeof o)throw new ha('collection-add-invalid-id');if(this.get(o))throw new ha('collection-add-item-already-exists')}else e[n]=o=l();if(void 0===t)t=this._items.length;else if(t>this._items.length||0>t)throw new ha('collection-add-item-invalid-index');return this._items.splice(t,0,e),this._itemMap.set(o,e),this.fire('add',e,t),this}get(e){let t;if('string'==typeof e)t=this._itemMap.get(e);else if('number'==typeof e)t=this._items[e];else throw new ha('collection-get-invalid-arg: Index or id must be given.');return t||null}getIndex(e){let t;return t='string'==typeof e?this._itemMap.get(e):e,this._items.indexOf(t)}remove(e){let t=!1,o,n,i;const r=this._idProperty;if('string'==typeof e?(n=e,i=this._itemMap.get(n),t=!i,i&&(o=this._items.indexOf(i))):'number'==typeof e?(o=e,i=this._items[o],t=!i,i&&(n=i[r])):(i=e,n=i[r],o=this._items.indexOf(i),t=-1==o||!this._itemMap.get(n)),t)throw new ha('collection-remove-404: Item not found.');this._items.splice(o,1),this._itemMap.delete(n);const a=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(a),this.fire('remove',i),i}map(e,t){return this._items.map(e,t)}find(e,t){return this._items.find(e,t)}filter(e,t){return this._items.filter(e,t)}clear(){for(this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);this.length;)this.remove(0)}bindTo(e){if(this._bindToCollection)throw new ha('collection-bind-to-rebind: The collection cannot be bound more than once.');return this._bindToCollection=e,{as:(e)=>{this._setUpBindToBinding((t)=>new e(t))},using:(e)=>{'function'==typeof e?this._setUpBindToBinding((t)=>e(t)):this._setUpBindToBinding((t)=>t[e])}}}_setUpBindToBinding(e){const t=this._bindToCollection,o=(o,n,i)=>{const r=t._bindToCollection==this,a=t._bindToInternalToExternalMap.get(n);if(r&&a)this._bindToExternalToInternalMap.set(n,a),this._bindToInternalToExternalMap.set(a,n);else{const t=e(n);this._bindToExternalToInternalMap.set(n,t),this._bindToInternalToExternalMap.set(t,n),this.add(t,i)}};for(const n of t)o(null,n);this.listenTo(t,'add',o),this.listenTo(t,'remove',(e,t)=>{const o=this._bindToExternalToInternalMap.get(t);o&&this.remove(o)})}[Symbol.iterator](){return this._items[Symbol.iterator]()}}s(pg,Sa);class gg extends pg{constructor(e){super({idProperty:'viewUid'}),this.on('add',(e,t,o)=>{t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[o])}),this.on('remove',(e,t)=>{t.element&&this._parentElement&&t.element.remove()}),this.locale=e,this._parentElement=null}destroy(){this.map((e)=>e.destroy())}setParent(e){this._parentElement=e}delegate(...e){if(!e.length||!on(e))throw new ha('ui-viewcollection-delegate-wrong-events: All event names must be strings.');return{to:(t)=>{for(const o of this)for(const n of e)o.delegate(n).to(t);this.on('add',(o,n)=>{for(const i of e)n.delegate(i).to(t)}),this.on('remove',(o,n)=>{for(const i of e)n.stopDelegating(i,t)})}}}}s(pg,Hs);var fg=function(e,t){return jd(e,!0,!0,t)};class hg{constructor(e){Object.assign(this,un(cn(e))),this._isRendered=!1,this._revertData=null}render(){const e=this._renderNode({intoFragment:!0});return this._isRendered=!0,e}apply(e){return this._revertData=An(),this._renderNode({node:e,isApplying:!0,revertData:this._revertData}),e}revert(e){if(!this._revertData)throw new ha('ui-template-revert-not-applied: Attempting to revert a template which has not been applied yet.');this._revertTemplateFromNode(e,this._revertData)}*getViews(){function*e(t){if(t.children)for(const o of t.children)wn(o)?yield o:yn(o)&&(yield*e(o))}yield*e(this)}static bind(e,t){return{to(o,n){return new kg({eventNameOrFunction:o,attribute:o,observable:e,emitter:t,callback:n})},if(o,n,i){return new _g({observable:e,emitter:t,attribute:o,valueIfTrue:n,callback:i})}}}static extend(e,t){e._isRendered&&ka.warn('template-extend-render: Attempting to extend a template which has already been rendered.'),_n(e,un(cn(t)))}_renderNode(e){let t;if(t=e.node?this.tag&&this.text:this.tag?this.text:!this.text,t)throw new ha('ui-template-wrong-syntax: Node definition must have either "tag" or "text" when rendering a new Node.');return this.text?this._renderText(e):this._renderElement(e)}_renderElement(e){let t=e.node;return t||(t=e.node=document.createElementNS(this.ns||'http://www.w3.org/1999/xhtml',this.tag)),this._renderAttributes(e),this._renderElementChildren(e),this._setUpListeners(e),t}_renderText(e){let t=e.node;return t?e.revertData.text=t.textContent:t=e.node=document.createTextNode(''),nn(this.text)?this._bindToObservable({schema:this.text,updater:sn(t),data:e}):t.textContent=this.text.join(''),t}_renderAttributes(e){let t,o,n,i;if(this.attributes){const r=e.node,a=e.revertData;for(t in this.attributes)if(n=r.getAttribute(t),o=this.attributes[t],a&&(a.attributes[t]=n),i=Ma(o[0])&&o[0].ns?o[0].ns:null,nn(o)){const s=i?o[0].value:o;a&&Cn(t)&&s.unshift(n),this._bindToObservable({schema:s,updater:ln(r,t,i),data:e})}else'style'==t&&'string'!=typeof o[0]?this._renderStyleAttribute(o[0],e):(a&&n&&Cn(t)&&o.unshift(n),o=o.map((e)=>e?e.value||e:e).reduce((e,t)=>e.concat(t),[]).reduce(bn,''),vn(o)||r.setAttributeNS(i,t,o))}}_renderStyleAttribute(e,t){const o=t.node;for(const n in e){const i=e[n];nn(i)?this._bindToObservable({schema:[i],updater:dn(o,n),data:t}):o.style[n]=i}}_renderElementChildren(e){const t=e.node,o=e.intoFragment?document.createDocumentFragment():t,n=e.isApplying;let i=0;for(const r of this.children)if(xn(r)){if(!n){r.setParent(t);for(const e of r)o.appendChild(e.element)}}else if(wn(r))n||(!r.isRendered&&r.render(),o.appendChild(r.element));else if(so(r))o.appendChild(r);else if(n){const t=e.revertData,n=An();t.children.push(n),r._renderNode({node:o.childNodes[i++],isApplying:!0,revertData:n})}else o.appendChild(r.render());e.intoFragment&&t.appendChild(o)}_setUpListeners(e){if(this.eventListeners)for(const t in this.eventListeners){const o=this.eventListeners[t].map((o)=>{const[n,i]=t.split('@');return o.activateDomEventListener(n,i,e)});e.revertData&&e.revertData.bindings.push(o)}}_bindToObservable({schema:e,updater:t,data:o}){const n=o.revertData;an(e,t,o);const i=e.filter((e)=>!vn(e)).filter((e)=>e.observable).map((n)=>n.activateAttributeListener(e,t,o));n&&n.bindings.push(i)}_revertTemplateFromNode(e,t){for(const o of t.bindings)for(const e of o)e();if(t.text)return void(e.textContent=t.text);for(const o in t.attributes){const n=t.attributes[o];null===n?e.removeAttribute(o):e.setAttribute(o,n)}for(let o=0;oan(e,t,o);return this.emitter.listenTo(this.observable,'change:'+this.attribute,n),()=>{this.emitter.stopListening(this.observable,'change:'+this.attribute,n)}}}class kg extends bg{activateDomEventListener(e,t,o){const n=(e,o)=>{(!t||o.target.matches(t))&&('function'==typeof this.eventNameOrFunction?this.eventNameOrFunction(o):this.observable.fire(this.eventNameOrFunction,o))};return this.emitter.listenTo(o.node,e,n),()=>{this.emitter.stopListening(o.node,e,n)}}}class _g extends bg{getValue(e){const t=super.getValue(e);return!vn(t)&&(this.valueIfTrue||!0)}}var vg=o(8),wg=o.n(vg);class yg{constructor(e){this.element=null,this.isRendered=!1,this.locale=e,this.t=e&&e.t,this._viewCollections=new pg,this._unboundChildren=this.createCollection(),this._viewCollections.on('add',(t,o)=>{o.locale=e})}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=hg.bind(this,this)}createCollection(){const e=new gg;return this._viewCollections.add(e),e}registerChildren(e){S(e)||(e=[e]);for(const t of e)this._unboundChildren.add(t)}deregisterChildren(e){S(e)||(e=[e]);for(const t of e)this._unboundChildren.remove(t)}setTemplate(e){this.template=new hg(e)}extendTemplate(e){hg.extend(this.template,e)}render(){if(this.isRendered)throw new ha('ui-view-render-already-rendered: This View has already been rendered.');this.template&&(this.element=this.template.render(),this.registerChildren(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((e)=>e.destroy())}}s(yg,Sp),s(yg,Hs);var xg=o(11),Ag=o.n(xg);class Cg extends yg{constructor(e){super(e),this.body=this.createCollection()}render(){super.render(),this._renderBodyCollection()}destroy(){return this._bodyCollectionContainer.remove(),super.destroy()}_renderBodyCollection(){const e=this._bodyCollectionContainer=new hg({tag:'div',attributes:{class:['ck-body','ck-rounded-corners','ck-reset_all']},children:this.body}).render();document.body.appendChild(e)}}class Tg extends yg{constructor(e,t){super(e);const o=this.bindTemplate;t&&(this.element=this.editableElement=t),this.setTemplate({tag:'div',attributes:{class:[o.to('isFocused',(e)=>e?'ck-focused':'ck-blurred'),'ck-editor__editable','ck-rounded-corners'],contenteditable:o.to('isReadOnly',(e)=>!e)}}),this.set('isReadOnly',!1),this.set('isFocused',!1),this.externalElement=t}render(){super.render(),this.externalElement?this.template.apply(this.element=this.externalElement):this.editableElement=this.element}destroy(){this.externalElement&&this.template.revert(this.externalElement),super.destroy()}}class Pg extends Tg{constructor(e,o){super(e,o);const n=this.bindTemplate,i=this.t;this.set('name',null);this.extendTemplate({attributes:{role:'textbox',"aria-label":n.to('name',(e)=>i('ae',[e])),class:'ck-editor__editable_inline'}})}}var Eg=o(13),Sg=o.n(Eg);const Og=function(e){return(t)=>t+e}('px'),Vg=zp.document.body;class Rg extends yg{constructor(e){super(e);const t=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('className'),this.content=this.createCollection(),this.setTemplate({tag:'div',attributes:{class:['ck-balloon-panel',t.to('position',(e)=>`ck-balloon-panel_${e}`),t.if('isVisible','ck-balloon-panel_visible'),t.if('withArrow','ck-balloon-panel_with-arrow'),t.to('className')],style:{top:t.to('top',Og),left:t.to('left',Og)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(e){this.show();const t=Rg.defaultPositions,o=Object.assign({},{element:this.element,positions:[t.southArrowNorthWest,t.southArrowNorthEast,t.northArrowSouthWest,t.northArrowSouthEast],limiter:Vg,fitInViewport:!0},e),{top:n,left:i,name:r}=Pn(o);Object.assign(this,{top:n,left:i,position:r})}pin(e){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(e):this._stopPinning()},this._startPinning(e),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(e){this.attachTo(e);const t=Vn(e.target),o=e.limiter?Vn(e.limiter):Vg;this.listenTo(zp.document,'scroll',(n,i)=>{const r=i.target,a=t&&r.contains(t),s=o&&r.contains(o);(a||s||!t||!o)&&this.attachTo(e)},{useCapture:!0}),this.listenTo(zp.window,'resize',()=>{this.attachTo(e)})}_stopPinning(){this.stopListening(zp.document,'scroll'),this.stopListening(zp.window,'resize')}}Rg.arrowHorizontalOffset=30,Rg.arrowVerticalOffset=15,Rg.defaultPositions={northArrowSouth:(e,t)=>({top:Rn(e,t),left:e.left+e.width/2-t.width/2,name:'arrow_s'}),northArrowSouthEast:(e,t)=>({top:Rn(e,t),left:e.left+e.width/2-t.width+Rg.arrowHorizontalOffset,name:'arrow_se'}),northArrowSouthWest:(e,t)=>({top:Rn(e,t),left:e.left+e.width/2-Rg.arrowHorizontalOffset,name:'arrow_sw'}),northWestArrowSouth:(e,t)=>({top:Rn(e,t),left:e.left-t.width/2,name:'arrow_s'}),northWestArrowSouthWest:(e,t)=>({top:Rn(e,t),left:e.left-Rg.arrowHorizontalOffset,name:'arrow_sw'}),northWestArrowSouthEast:(e,t)=>({top:Rn(e,t),left:e.left-t.width+Rg.arrowHorizontalOffset,name:'arrow_se'}),northEastArrowSouth:(e,t)=>({top:Rn(e,t),left:e.right-t.width/2,name:'arrow_s'}),northEastArrowSouthEast:(e,t)=>({top:Rn(e,t),left:e.right-t.width+Rg.arrowHorizontalOffset,name:'arrow_se'}),northEastArrowSouthWest:(e,t)=>({top:Rn(e,t),left:e.right-Rg.arrowHorizontalOffset,name:'arrow_sw'}),southArrowNorth:(e,t)=>({top:Fn(e,t),left:e.left+e.width/2-t.width/2,name:'arrow_n'}),southArrowNorthEast:(e,t)=>({top:Fn(e,t),left:e.left+e.width/2-t.width+Rg.arrowHorizontalOffset,name:'arrow_ne'}),southArrowNorthWest:(e,t)=>({top:Fn(e,t),left:e.left+e.width/2-Rg.arrowHorizontalOffset,name:'arrow_nw'}),southWestArrowNorth:(e,t)=>({top:Fn(e,t),left:e.left-t.width/2,name:'arrow_n'}),southWestArrowNorthWest:(e,t)=>({top:Fn(e,t),left:e.left-Rg.arrowHorizontalOffset,name:'arrow_nw'}),southWestArrowNorthEast:(e,t)=>({top:Fn(e,t),left:e.left-t.width+Rg.arrowHorizontalOffset,name:'arrow_ne'}),southEastArrowNorth:(e,t)=>({top:Fn(e,t),left:e.right-t.width/2,name:'arrow_n'}),southEastArrowNorthEast:(e,t)=>({top:Fn(e,t),left:e.right-t.width+Rg.arrowHorizontalOffset,name:'arrow_ne'}),southEastArrowNorthWest:(e,t)=>({top:Fn(e,t),left:e.right-Rg.arrowHorizontalOffset,name:'arrow_nw'})};class Fg{constructor(e){if(Object.assign(this,e),e.actions&&e.keystrokeHandler)for(const t in e.actions){let o=e.actions[t];'string'==typeof o&&(o=[o]);for(const n of o)e.keystrokeHandler.set(n,(e,o)=>{this[t](),o()})}}get first(){return this.focusables.find(In)||null}get last(){return this.focusables.filter(In).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let e=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find((t,o)=>{const n=t.element===this.focusTracker.focusedElement;return n&&(e=o),n}),e)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(e){e&&e.focus()}_getFocusableItem(e){const t=this.current,o=this.focusables.length;if(!o)return null;if(null===t)return this[1===e?'first':'last'];let n=(t+o+e)%o;do{const t=this.focusables.get(n);if(In(t))return t;n=(n+o+e)%o}while(n!==t);return null}}class Ig extends yg{constructor(e){super(e),this.setTemplate({tag:'span',attributes:{class:['ck-toolbar__separator']}})}}var Ng=o(15),Bg=o.n(Ng);class Mg extends yg{constructor(e){super(e),this.items=this.createCollection(),this.focusTracker=new ug,this.keystrokes=new Vp,this._focusCycler=new Fg({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:['arrowleft','arrowup'],focusNext:['arrowright','arrowdown']}}),this.setTemplate({tag:'div',attributes:{class:['ck-toolbar']},children:this.items,on:{mousedown:Nn(this)}})}render(){super.render();for(const e of this.items)this.focusTracker.add(e.element);this.items.on('add',(e,t)=>{this.focusTracker.add(t.element)}),this.items.on('remove',(e,t)=>{this.focusTracker.remove(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}fillFromConfig(e,t){e.map((e)=>{'|'==e?this.items.add(new Ig):t.has(e)?this.items.add(t.create(e)):ka.warn('toolbarview-item-unavailable: The requested toolbar item is unavailable.',{name:e})})}}class Dg extends Cg{constructor(e,t){super(e),this.toolbar=new Mg(e),this.set('viewportTopOffset',0),this.toolbar.extendTemplate({attributes:{class:['ck-editor-toolbar','ck-toolbar_floating']}}),this.panel=new Rg(e),this.panel.withArrow=!1,this.panelPositions=this._getPanelPositions(),this.panel.extendTemplate({attributes:{class:'ck-toolbar-container'}}),this.editable=new Pg(e,t),this.body.add(this.panel),this.registerChildren(this.editable)}render(){super.render(),this.panel.content.add(this.toolbar)}get editableElement(){return this.editable.element}_getPanelPositionTop(e,t){let o;return o=e.top>t.height+this.viewportTopOffset?e.top-t.height:e.bottom>t.height+this.viewportTopOffset+50?this.viewportTopOffset:e.bottom,o}_getPanelPositions(){return[(e,t)=>({top:this._getPanelPositionTop(e,t),left:e.left,name:'toolbar_west'}),(e,t)=>({top:this._getPanelPositionTop(e,t),left:e.left+e.width-t.width,name:'toolbar_east'})]}}class Lg extends sg{constructor(e,t){super(e,t),this.document.createRoot(),this.data.processor=new dg,this.ui=new mg(this,new Dg(this.locale,e))}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then(()=>Xo(this.element,e))}static create(e,t){return new Promise((o)=>{const n=new this(e,t);o(n.initPlugins().then(()=>{n.ui.init(),n.fire('uiReady')}).then(()=>n.loadDataFromEditorElement()).then(()=>{n.fire('dataReady'),n.fire('ready')}).then(()=>n))})}}class zg{constructor(e){this.editor=e}destroy(){this.stopListening()}}s(zg,Hs);class jg{constructor(e){this.files=Bn(e),this._native=e}get types(){return this._native.types}getData(e){return this._native.getData(e)}setData(e,t){this._native.setData(e,t)}}class qg extends Xp{constructor(e){function t(t,o){o.preventDefault();const n=o.dropRange?[o.dropRange]:Array.from(e.selection.getRanges());e.fire('clipboardInput',{dataTransfer:o.dataTransfer,targetRanges:n})}super(e),this.domEventType=['paste','copy','cut','drop','dragover'],this.listenTo(e,'paste',t,{priority:'low'}),this.listenTo(e,'drop',t,{priority:'low'})}onDomEvent(e){const t={dataTransfer:new jg(e.clipboardData?e.clipboardData:e.dataTransfer)};'drop'==e.type&&(t.dropRange=Mn(this.document,e)),this.fire(e.type,e,t)}}const Hg=['figcaption','li'];class Wg extends zg{static get pluginName(){return'Clipboard'}init(){function e(e,i){const r=o.batch(),a=i.dataTransfer,s=t.data.toView(t.data.getSelectedContent(o.selection,r));i.preventDefault(),n.fire('clipboardOutput',{dataTransfer:a,content:s,method:e.name,batch:r})}const t=this.editor,o=t.document,n=t.editing.view;this._htmlDataProcessor=new dg,n.addObserver(qg),this.listenTo(n,'clipboardInput',(e,o)=>{if(t.isReadOnly)return;const i=o.dataTransfer;let r='';i.getData('text/html')?r=Ln(i.getData('text/html')):i.getData('text/plain')&&(r=Dn(i.getData('text/plain'))),r=this._htmlDataProcessor.toView(r),this.fire('inputTransformation',{content:r}),n.scrollToTheSelection()},{priority:'low'}),this.listenTo(this,'inputTransformation',(e,t)=>{if(!t.content.isEmpty){const e=this.editor.data,n=o.batch(),i=e.toModel(t.content,n,'$clipboardHolder');if(0==i.childCount)return;o.enqueueChanges(()=>{e.insertContent(i,o.selection,n)})}},{priority:'low'}),this.listenTo(n,'copy',e,{priority:'low'}),this.listenTo(n,'cut',(o,n)=>{t.isReadOnly?n.preventDefault():e(o,n)},{priority:'low'}),this.listenTo(n,'clipboardOutput',(e,n)=>{n.content.isEmpty||(n.dataTransfer.setData('text/html',this._htmlDataProcessor.toData(n.content)),n.dataTransfer.setData('text/plain',zn(n.content))),'cut'==n.method&&o.enqueueChanges(()=>{t.data.deleteContent(o.selection,n.batch)})},{priority:'low'})}}class $g{constructor(e){function t(){this.isEnabled=!1}this.editor=e,this.set('value',void 0),this.set('isEnabled',!1),this.decorate('execute'),this.listenTo(this.editor.document,'changesDone',()=>{this.refresh()}),this.on('execute',(e)=>{this.isEnabled||e.stop()},{priority:'high'}),this.listenTo(e,'change:isReadOnly',(e,o,n)=>{n?(this.on('change:isEnabled',t,{priority:'lowest'}),this.isEnabled=!1):(this.off('change:isEnabled',t),this.refresh())})}refresh(){this.isEnabled=!0}execute(){}destroy(){this.stopListening()}}s($g,Hs);class Kg extends $g{execute(){const e=this.editor.document,t=e.batch();e.enqueueChanges(()=>{jn(this.editor.data,t,e.selection,e.schema),this.fire('afterExecute',{batch:t})})}}class Ug extends Wp{constructor(e){super(e),e.on('keydown',(t,o)=>{this.isEnabled&&o.keyCode==mc.enter&&e.fire('enter',new Yp(e,o.domEvent))})}observe(){}}class Qg extends zg{static get pluginName(){return'Enter'}init(){const e=this.editor,t=e.editing.view;t.addObserver(Ug),e.commands.add('enter',new Kg(e)),this.listenTo(t,'enter',(o,n)=>{e.execute('enter'),n.preventDefault(),t.scrollToTheSelection()},{priority:'low'})}}class Jg{constructor(e,t=20){this.document=e,this.size=0,this.limit=t,this.isLocked=!1,this._changeCallback=(e,t,o,n)=>{this._onBatch(n)},this._selectionChangeCallback=()=>{this._reset()},e.on('change',this._changeCallback),e.selection.on('change:range',this._selectionChangeCallback),e.selection.on('change:attribute',this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.document.batch()),this._batch}input(e){this.size+=e,this.size>=this.limit&&this._reset(!0)}lock(){this.isLocked=!0}unlock(){this.isLocked=!1}destroy(){this.document.off('change',this._changeCallback),this.document.selection.off('change:range',this._selectionChangeCallback),this.document.selection.off('change:attribute',this._selectionChangeCallback)}_onBatch(e){'transparent'!=e.type&&e!==this._batch&&1>=co(e.getOperations())&&this._reset(!0)}_reset(e){(!this.isLocked||e)&&(this._batch=null,this.size=0)}}class Gg extends $g{constructor(e,t){super(e),this._buffer=new Jg(e.document,t)}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(e={}){const t=this.editor.document,o=e.text||'',n=o.length,i=e.range||t.selection.getFirstRange(),r=e.resultRange;t.enqueueChanges(()=>{const e=i.isCollapsed;this._buffer.lock(),e||this._buffer.batch.remove(i),o&&this._buffer.batch.insertText(o,t.selection.getAttributes(),i.start),r?this.editor.data.model.selection.setRanges([r]):e&&this.editor.data.model.selection.setCollapsedAt(i.start.getShiftedBy(n)),this._buffer.unlock(),this._buffer.input(n)})}}class Yg extends zg{static get pluginName(){return'Input'}init(){const e=this.editor,t=e.editing.view,o=new Gg(e,e.config.get('typing.undoStep')||20);e.commands.add('input',o),this.listenTo(t,'keydown',(e,t)=>{this._handleKeydown(t,o)},{priority:'lowest'}),this.listenTo(t,'mutations',(e,t,o)=>{this._handleMutations(t,o)})}_handleKeydown(e,t){const o=this.editor.document,n=t.buffer;!t.isEnabled||Wn(e)||o.selection.isCollapsed||(n.lock(),o.enqueueChanges(()=>{this.editor.data.deleteContent(o.selection,n.batch)}),n.unlock())}_handleMutations(e,t){new Xg(this.editor).handle(e,t)}}class Xg{constructor(e){this.editor=e,this.editing=this.editor.editing}handle(e,t){if(Qn(e))this._handleContainerChildrenMutations(e,t);else for(const o of e)this._handleTextMutation(o,t),this._handleTextNodeInsertion(o)}_handleContainerChildrenMutations(e,t){const o=Un(e);if(!o)return;const n=this.editor.editing.view.domConverter,i=n.mapViewToDom(o);if(!i)return;const r=new jp,a=this.editor.data.toModel(r.domToView(i),this.editor.commands.get('input').buffer.batch).getChild(0),s=this.editor.editing.mapper.toModelElement(o),l=Array.from(a.getChildren()),d=Array.from(s.getChildren());if(!Jn(l)||!Jn(d))return;const c=l.map((e)=>e.data).join('').replace(/\u00A0/g,' '),u=d.map((e)=>e.data).join('');if(u===c)return;const m=bo(u,c),{firstChangeAt:p,insertions:g,deletions:f}=Gn(m);let h=null;t&&(h=this.editing.mapper.toModelRange(t.getFirstRange()));const b=c.substr(p,g),k=Xs.createFromParentsAndOffsets(s,p,s,p+f);this.editor.execute('input',{text:b,range:k,resultRange:h})}_handleTextMutation(e,t){if('text'!=e.type)return;const o=e.newText.replace(/\u00A0/g,' '),n=e.oldText.replace(/\u00A0/g,' '),i=bo(n,o),{firstChangeAt:r,insertions:a,deletions:s}=Gn(i);let l=null;t&&(l=this.editing.mapper.toModelRange(t.getFirstRange()));const d=new Xd(e.node,r),c=this.editing.mapper.toModelPosition(d),u=Xs.createFromPositionAndShift(c,s),m=o.substr(r,a);this.editor.execute('input',{text:m,range:u,resultRange:l})}_handleTextNodeInsertion(e){if('children'==e.type){const t=Kn(e),o=new Xd(e.node,t.index),n=this.editing.mapper.toModelPosition(o),i=t.values[0].data;this.editor.execute('input',{text:i.replace(/\u00A0/g,' '),range:new Xs(n)})}}}const Zg=[te('arrowUp'),te('arrowRight'),te('arrowDown'),te('arrowLeft'),9,16,17,18,20,27,33,34,35,36,229];for(let n=112;135>=n;n++)Zg.push(n);class ef extends $g{constructor(e,t){super(e),this.direction=t,this._buffer=new Jg(e.document,e.config.get('typing.undoStep'))}execute(e={}){const t=this.editor.document,o=this.editor.data;t.enqueueChanges(()=>{this._buffer.lock();const n=bp.createFromSelection(t.selection),i=n.isCollapsed;if(n.isCollapsed&&o.modifySelection(n,{direction:this.direction,unit:e.unit}),this._shouldEntireContentBeReplacedWithParagraph(e.sequence||1))return void this._replaceEntireContentWithParagraph();if(n.isCollapsed)return;let r=0;n.getFirstRange().getMinimalFlatRanges().forEach((e)=>{r+=co(e.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))}),o.deleteContent(n,this._buffer.batch,{doNotResetEntireContent:i}),this._buffer.input(r),t.selection.setRanges(n.getRanges(),n.isBackward),this._buffer.unlock()})}_shouldEntireContentBeReplacedWithParagraph(e){if(1{(o.keyCode==mc.delete||o.keyCode==mc.backspace)&&(t=0)}),e.on('keydown',(o,n)=>{const i={};if(n.keyCode==mc.delete)i.direction='forward',i.unit='character';else if(n.keyCode==mc.backspace)i.direction='backward',i.unit='codePoint';else return;i.unit=n.altKey?'word':i.unit,i.sequence=++t,e.fire('delete',new Yp(e,n.domEvent,i))})}observe(){}}class of extends zg{static get pluginName(){return'Delete'}init(){const e=this.editor,t=e.editing.view;t.addObserver(tf),e.commands.add('forwardDelete',new ef(e,'forward')),e.commands.add('delete',new ef(e,'backward')),this.listenTo(t,'delete',(o,n)=>{e.execute('forward'==n.direction?'forwardDelete':'delete',{unit:n.unit,sequence:n.sequence}),n.preventDefault(),t.scrollToTheSelection()})}}class nf extends zg{static get requires(){return[Yg,of]}static get pluginName(){return'Typing'}}class rf extends $g{constructor(e){super(e),this._stack=[],this._createdBatches=new WeakSet,this.refresh()}refresh(){this.isEnabled=0e.start.root!=n.graveyard);t&&i.push(t)}i.length&&n.selection.setRanges(i,t)}_undo(e){const t=this.editor.document,o=t.batch();this._createdBatches.add(o);const n=e.deltas.slice();n.reverse();for(const i of n)if(i.operations.some((e)=>e.isDocumentOperation)){const e=i.baseVersion+i.operations.length,n=Array.from(t.history.getDeltas(e)),r=t.transformDeltas([i.getReversed()],n,!0),a=r.deltasA;for(const e of a){e.baseVersion=t.version,o.addDelta(e);for(const o of e.operations)t.applyOperation(o);t.history.setDeltaAsUndone(i,e)}}return o}}class af extends rf{execute(e=null){const t=e?this._stack.findIndex((t)=>t.batch==e):this._stack.length-1,o=this._stack.splice(t,1)[0];this.editor.document.enqueueChanges(()=>{const e=this._undo(o.batch),t=this.editor.document.history.getDeltas(o.batch.baseVersion);this._restoreSelection(o.selection.ranges,o.selection.isBackward,t),this.fire('revert',o.batch,e)}),this.refresh()}}class sf extends rf{execute(){const e=this._stack.pop();this.editor.document.enqueueChanges(()=>{const t=e.batch.deltas[e.batch.deltas.length-1],o=t.baseVersion+t.operations.length,n=this.editor.document.history.getDeltas(o);this._restoreSelection(e.selection.ranges,e.selection.isBackward,n),this._undo(e.batch)}),this.refresh()}}class lf extends zg{constructor(e){super(e),this._batchRegistry=new WeakSet}init(){this._undoCommand=new af(this.editor),this._redoCommand=new sf(this.editor),this.editor.commands.add('undo',this._undoCommand),this.editor.commands.add('redo',this._redoCommand),this.listenTo(this.editor.document,'change',(e,t,o,n)=>{this._batchRegistry.has(n)||'transparent'==n.type||(this._redoCommand._createdBatches.has(n)?this._undoCommand.addBatch(n):!this._undoCommand._createdBatches.has(n)&&(this._undoCommand.addBatch(n),this._redoCommand.clearStack()),this._batchRegistry.add(n))},{priority:'highest'}),this.listenTo(this._undoCommand,'revert',(e,t,o)=>{this._redoCommand.addBatch(o)})}}var df=o(17),cf=o.n(df);class uf extends yg{constructor(){super();const e=this.bindTemplate;this.set('content',''),this.set('viewBox','0 0 20 20'),this.setTemplate({tag:'svg',ns:'http://www.w3.org/2000/svg',attributes:{class:'ck-icon',viewBox:e.to('viewBox')}})}render(){super.render(),this._updateXMLContent(),this.on('change:content',()=>this._updateXMLContent())}_updateXMLContent(){if(this.content){const e=new DOMParser().parseFromString(this.content.trim(),'image/svg+xml').firstChild;for(this.element.innerHTML='';0'ck-tooltip_'+e),t.if('text','ck-hidden',(e)=>!e.trim())]},children:[{tag:'span',attributes:{class:['ck-tooltip__text']},children:[{text:t.to('text')}]}]})}}var ff=o(21),hf=o.n(ff);class bf extends yg{constructor(e){super(e);const t=this.bindTemplate;this.set('label'),this.set('keystroke'),this.set('tooltip'),this.set('tooltipPosition','s'),this.set('type','button'),this.set('isOn',!1),this.set('isEnabled',!0),this.set('isVisible',!0),this.set('withText',!1),this.set('icon'),this.set('tabindex',-1),this.children=this.createCollection(),this.tooltipView=this._createTooltipView(),this.labelView=this._createLabelView(),this.bind('_tooltipString').to(this,'tooltip',this,'label',this,'keystroke',this._getTooltipString.bind(this)),this.setTemplate({tag:'button',attributes:{class:['ck-button',t.to('isEnabled',(e)=>e?'ck-enabled':'ck-disabled'),t.if('isVisible','ck-hidden',(e)=>!e),t.to('isOn',(e)=>e?'ck-on':'ck-off'),t.if('withText','ck-button_with-text')],type:t.to('type',(e)=>e?e:'button'),tabindex:t.to('tabindex')},children:this.children,on:{mousedown:t.to((e)=>{e.preventDefault()}),click:t.to((e)=>{this.isEnabled?this.fire('execute'):e.preventDefault()})}})}render(){if(super.render(),this.icon){const e=this.iconView=new uf;e.bind('content').to(this,'icon'),this.children.add(e)}this.children.add(this.tooltipView),this.children.add(this.labelView)}focus(){this.element.focus()}_createTooltipView(){const e=new gf;return e.bind('text').to(this,'_tooltipString'),e.bind('position').to(this,'tooltipPosition'),e}_createLabelView(){const e=new yg;return e.setTemplate({tag:'span',attributes:{class:['ck-button__label']},children:[{text:this.bindTemplate.to('label')}]}),e}_getTooltipString(e,t,o){return e?'string'==typeof e?e:(o&&(o=ne(o)),e instanceof Function?e(t,o):`${t}${o?` (${o})`:''}`):''}}var kf=o(23),_f=o.n(kf),vf=o(24),wf=o.n(vf);class yf extends zg{static get requires(){return[lf]}static get pluginName(){return'Undo'}init(){const e=this.editor,o=e.t;this._addButton('undo',o('ac'),'CTRL+Z',_f.a),this._addButton('redo',o('ad'),'CTRL+Y',wf.a),e.keystrokes.set('CTRL+Z','undo'),e.keystrokes.set('CTRL+Y','redo'),e.keystrokes.set('CTRL+SHIFT+Z','redo')}_addButton(e,t,o,n){const i=this.editor,r=i.commands.get(e);i.ui.componentFactory.add(e,(a)=>{const s=new bf(a);return s.set({label:t,icon:n,keystroke:o,tooltip:!0}),s.bind('isEnabled').to(r,'isEnabled'),this.listenTo(s,'execute',()=>i.execute(e)),s})}}class xf extends zg{static get requires(){return[Wg,Qg,nf,yf]}}class Af{constructor(){const e=new window.FileReader;this._reader=e,this.set('loaded',0),e.onprogress=(e)=>{this.loaded=e.loaded}}get error(){return this._reader.error}read(e){const t=this._reader;return this.total=e.size,new Promise((o,n)=>{t.onload=()=>{o(t.result)},t.onerror=()=>{n('error')},t.onabort=()=>{n('aborted')},this._reader.readAsDataURL(e)})}abort(){this._reader.abort()}}s(Af,Hs);class Cf extends zg{static get pluginName(){return'FileRepository'}init(){this.loaders=new pg,this.set('uploaded',0),this.set('uploadTotal',null),this.bind('uploadedPercent').to(this,'uploaded',this,'uploadTotal',(e,t)=>t?100*(e/t):0)}getLoader(e){for(const t of this.loaders)if(t.file==e)return t;return null}createLoader(e){if(!this.createAdapter)return ka.error('filerepository-no-adapter: Upload adapter is not defined.'),null;const t=new Tf(e);return t._adapter=this.createAdapter(t),this.loaders.add(t),t.on('change:uploaded',()=>{let e=0;for(const t of this.loaders)e+=t.uploaded;this.uploaded=e}),t.on('change:uploadTotal',()=>{let e=0;for(const t of this.loaders)t.uploadTotal&&(e+=t.uploadTotal);this.uploadTotal=e}),t}destroyLoader(e){const t=e instanceof Tf?e:this.getLoader(e);t._destroy(),this.loaders.remove(t)}}s(Cf,Hs);class Tf{constructor(e,t){this.id=l(),this.file=e,this._adapter=t,this._reader=new Af,this.set('status','idle'),this.set('uploaded',0),this.set('uploadTotal',null),this.bind('uploadedPercent').to(this,'uploaded',this,'uploadTotal',(e,t)=>t?100*(e/t):0),this.set('uploadResponse',null)}read(){if('idle'!=this.status)throw new ha('filerepository-read-wrong-status: You cannot call read if the status is different than idle.');return this.status='reading',this._reader.read(this.file).then((e)=>(this.status='idle',e)).catch((e)=>{if('aborted'===e)throw this.status='aborted','aborted';throw this.status='error',this._reader.error})}upload(){if('idle'!=this.status)throw new ha('filerepository-upload-wrong-status: You cannot call upload if the status is different than idle.');return this.status='uploading',this._adapter.upload().then((e)=>(this.uploadResponse=e,this.status='idle',e)).catch((e)=>{if('aborted'===this.status)throw'aborted';throw this.status='error',e})}abort(){const e=this.status;this.status='aborted','reading'==e&&this._reader.abort(),'uploading'==e&&this._adapter.abort&&this._adapter.abort(),this._destroy()}_destroy(){this._reader=void 0,this._adapter=void 0,this.data=void 0,this.uploadResponse=void 0,this.file=void 0}}s(Tf,Hs);const Pf='ckCsrfToken',Ef=40,Sf='abcdefghijklmnopqrstuvwxyz0123456789';class Of extends zg{static get requires(){return[Cf]}static get pluginName(){return'CKFinderUploadAdapter'}init(){const e=this.editor.config.get('ckfinder.uploadUrl');e&&(this.editor.plugins.get(Cf).createAdapter=(t)=>new Vf(t,e,this.editor.t))}}class Vf{constructor(e,o,n){this.loader=e,this.url=o,this.t=n}upload(){return new Promise((e,t)=>{this._initRequest(),this._initListeners(e,t),this._sendRequest()})}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open('POST',this.url,!0),e.responseType='json'}_initListeners(e,o){const n=this.xhr,i=this.loader,r=this.t,t=r('m')+` ${i.file.name}.`;n.addEventListener('error',()=>o(t)),n.addEventListener('abort',()=>o()),n.addEventListener('load',()=>{const i=n.response;return i&&i.uploaded?void e({default:i.url}):o(i&&i.error&&i.error.message?i.error.message:t)}),n.upload&&n.upload.addEventListener('progress',(e)=>{e.lengthComputable&&(i.uploadTotal=e.total,i.uploaded=e.loaded)})}_sendRequest(){const e=new FormData;e.append('upload',this.loader.file),e.append('ckCsrfToken',Zn()),this.xhr.send(e)}}class Rf{constructor(e,t,o){let n;if('function'==typeof o)n=o;else{n=(t)=>{const{batch:n}=t;e.execute(o,{batch:n})}}e.document.on('change',(o,i,r,a)=>{if('transparent'==a.type)return;if('insert'!=i)return;const s=r.range.getItems().next().value;if(!(s instanceof Ks))return;const l=s.textNode,d=l.data;if('paragraph'!==l.parent.name||!d)return;const c=t.exec(d);c&&e.document.enqueueChanges(()=>{const t=e.document.batch(),o=Xs.createFromParentsAndOffsets(l.parent,0,l.parent,c[0].length);t.remove(o),n({fixBatch:t,match:c})})})}}class Ff{constructor(e,t,o){let n,i,r,a;t instanceof RegExp?n=t:r=t,'string'==typeof o?i=o:a=o,r=r||((e)=>{let t;const o=[],i=[];for(;null!==(t=n.exec(e))&&!(t&&4>t.length);){let{index:e,1:n,2:r,3:a}=t;e+=t[0].length-(n+r+a).length;const s=[e,e+n.length],l=[e+n.length+r.length,e+n.length+r.length+a.length];o.push(s),o.push(l),i.push([e+n.length,e+n.length+r.length])}return{remove:o,format:i}}),a=a||((e,t)=>{for(const o of t)e.setAttribute(i,!0,o)}),e.document.on('change',(t,o,n,s)=>{if('transparent'==s.type)return;if('insert'!==o)return;const l=e.document.selection;if(!l.isCollapsed||!l.focus||!l.focus.parent)return;const d=l.focus.parent,c=ni(d).slice(0,l.focus.offset),u=r(c),m=[];u.format.forEach((e)=>{void 0===e[0]||void 0===e[1]||m.push(hp.createFromParentsAndOffsets(d,e[0],d,e[1]))});const p=[];u.remove.slice().reverse().forEach((e)=>{void 0===e[0]||void 0===e[1]||p.push(hp.createFromParentsAndOffsets(d,e[0],d,e[1]))});m.length&&p.length&&e.document.enqueueChanges(()=>{const t=e.document.batch(),o=e.document.schema.getValidRanges(m,i);a(t,o),m.forEach((e)=>e.detach());for(const e of p)t.remove(e),e.detach()})})}}class If extends zg{static get pluginName(){return'Autoformat'}afterInit(){this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats()}_addListAutoformats(){const e=this.editor.commands;e.get('bulletedList')&&new Rf(this.editor,/^[*-]\s$/,'bulletedList'),e.get('numberedList')&&new Rf(this.editor,/^\d+[.|)]\s$/,'numberedList')}_addBasicStylesAutoformats(){const e=this.editor.commands;e.get('bold')&&(new Ff(this.editor,/(\*\*)([^*]+)(\*\*)$/g,'bold'),new Ff(this.editor,/(__)([^_]+)(__)$/g,'bold')),e.get('italic')&&(new Ff(this.editor,/(?:^|[^*])(\*)([^*_]+)(\*)$/g,'italic'),new Ff(this.editor,/(?:^|[^_])(_)([^_]+)(_)$/g,'italic')),e.get('code')&&new Ff(this.editor,/(`)([^`]+)(`)$/g,'code')}_addHeadingAutoformats(){Array.from(this.editor.commands.names()).filter((e)=>e.match(/^heading[1-6]$/)).forEach((e)=>{const t=e[7],o=new RegExp(`^(#{${t}})\\s$`);new Rf(this.editor,o,(t)=>{const{batch:o}=t;this.editor.execute(e,{batch:o})})})}_addBlockQuoteAutoformats(){this.editor.commands.get('blockQuote')&&new Rf(this.editor,/^>\s$/,'blockQuote')}}class Nf{constructor(){this._dispatchers=[],this._from=null}for(...e){return this._dispatchers=e,this}fromElement(e){return this._from={type:'element',name:e,priority:null},this}fromAttribute(e){return this._from={type:'attribute',key:e,priority:null},this}fromMarker(e){return this._from={type:'marker',name:e,priority:null},this}withPriority(e){return this._from.priority=e,this}toElement(e){const t=null===this._from.priority?'normal':this._from.priority;for(const o of this._dispatchers)if('element'==this._from.type)e='string'==typeof e?new Jd(e):e,o.on('insert:'+this._from.name,Se(e),{priority:t});else if('attribute'==this._from.type)e='string'==typeof e?new rc(e):e,o.on('addAttribute:'+this._from.key,Ie(e),{priority:t}),o.on('changeAttribute:'+this._from.key,Ie(e),{priority:t}),o.on('removeAttribute:'+this._from.key,Ne(e),{priority:t}),o.on('selectionAttribute:'+this._from.key,$o(e),{priority:t});else{const t=null===this._from.priority?'normal':this._from.priority;e='string'==typeof e?new pc(e):e,o.on('addMarker:'+this._from.name,Ve(e),{priority:t}),o.on('removeMarker:'+this._from.name,Le(e),{priority:t})}}toHighlight(e){const t=null===this._from.priority?'normal':this._from.priority;if('marker'!=this._from.type)throw new ha('build-model-converter-non-marker-to-highlight: Conversion to a highlight is supported only from model markers.');for(const o of this._dispatchers)o.on('addMarker:'+this._from.name,Me(e),{priority:t}),o.on('addMarker:'+this._from.name,De(e),{priority:t}),o.on('removeMarker:'+this._from.name,Me(e),{priority:t}),o.on('removeMarker:'+this._from.name,De(e),{priority:t}),o.on('selectionMarker:'+this._from.name,Ko(e),{priority:t})}toAttribute(e,t){if('attribute'!=this._from.type)throw new ha('build-model-converter-non-attribute-to-attribute: To-attribute conversion is supported only from model attributes.');let o=e?'string'==typeof e?t?function(){return{key:e,value:t}}:function(t){return{key:e,value:t}}:e:void 0;for(const n of this._dispatchers){const e={priority:this._from.priority||'normal'};n.on('addAttribute:'+this._from.key,Re(o),e),n.on('changeAttribute:'+this._from.key,Re(o),e),n.on('removeAttribute:'+this._from.key,Fe(o),e)}}}class Bf{constructor(){this._dispatchers=[],this._from=[]}for(...e){return this._dispatchers=e,this}fromElement(e){return this.from({name:e})}fromAttribute(e,t=/.*/){const o={};'style'===e||'class'===e?o[e]=t:(o.attribute={},o.attribute[e]=t);const n=new $d(o);return this._from.push({matcher:n,consume:!1,priority:null,attributeKey:e}),this}from(e){return e instanceof $d||(e=new $d(e)),this._from.push({matcher:e,consume:!1,priority:null}),this}consuming(e){const t=this._from[this._from.length-1];return t.consume=e,this}withPriority(e){const t=this._from[this._from.length-1];return t.priority=e,this}toElement(e){this._setCallback(function(t){return(o,n,i,r)=>{const a=r.batch,s=t.matcher.matchAll(n.input);if(s)for(const o of s){const s=e instanceof Function?e(n.input,a):a.createElement(e);if(!s)continue;const l=Array.from(s.getAttributeKeys());if(!r.schema.check({name:s.name,attributes:l,inside:n.context}))continue;if(!i.consume(n.input,t.consume||o.match))continue;n.context.push(s);const d=r.convertChildren(n.input,i,n);for(const e of Array.from(d))a.append(e,s);n.context.pop(),n.output=s;break}}},'normal')}toAttribute(e,t){this._setCallback(function(o){return(n,i,r,a)=>{const s=o.matcher.matchAll(i.input);if(s)for(const n of s){if(!r.consume(i.input,o.consume||n.match))continue;i.output||(i.output=a.convertChildren(i.input,r,i));let s;if(!(e instanceof Function))s={key:e,value:t?t:i.input.getAttribute(o.attributeKey)};else if(s=e(i.input),!s)return;ri(i.output,s,i,a);break}}},'low')}toMarker(e){this._setCallback(function(t){return(o,n,i,r)=>{const a=r.batch,s=t.matcher.matchAll(n.input);if(!s)return;let l;if(l=e instanceof Function?e(n.input):a.createElement('$marker',{"data-name":n.input.getAttribute('data-name')}),'$marker'!=l.name||'string'!=typeof l.getAttribute('data-name'))throw new ha('build-view-converter-invalid-marker: Invalid model element to mark marker range.');for(const e of s)if(i.consume(n.input,t.consume||e.match)){n.output=l;break}}},'normal')}_setCallback(e,t){for(const o of this._from){const n=o.matcher.getElementName(),i=n?'element:'+n:'element',r=e(o),a=null===o.priority?t:o.priority;for(const e of this._dispatchers)e.on(i,r,{priority:a})}}}class Mf extends $g{constructor(e,t){super(e),this.attributeKey=t}refresh(){const e=this.editor.document;this.value=e.selection.hasAttribute(this.attributeKey),this.isEnabled=e.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(e={}){const t=this.editor.document,o=t.selection,n=e.forceValue===void 0?!this.value:e.forceValue;t.enqueueChanges(()=>{if(o.isCollapsed)n?o.setAttribute(this.attributeKey,!0):o.removeAttribute(this.attributeKey);else{const i=t.schema.getValidRanges(o.getRanges(),this.attributeKey),r=e.batch||t.batch();for(const e of i)n?r.setAttribute(this.attributeKey,n,e):r.removeAttribute(this.attributeKey,e)}})}}const Df='bold';class Lf extends zg{init(){const e=this.editor,t=e.data,o=e.editing;e.document.schema.allow({name:'$inline',attributes:Df,inside:'$block'}),e.document.schema.allow({name:'$inline',attributes:Df,inside:'$clipboardHolder'}),ii().for(t.modelToView,o.modelToView).fromAttribute(Df).toElement('strong'),ai().for(t.viewToModel).fromElement('strong').fromElement('b').fromAttribute('style',{"font-weight":'bold'}).toAttribute(Df,!0),e.commands.add(Df,new Mf(e,Df))}}var zf=o(25),jf=o.n(zf);class qf extends zg{static get requires(){return[Lf]}static get pluginName(){return'Bold'}init(){const e=this.editor,o=e.t,t=e.commands.get('bold'),n='CTRL+B';e.ui.componentFactory.add('bold',(i)=>{const r=new bf(i);return r.set({label:o('a'),icon:jf.a,keystroke:n,tooltip:!0}),r.bind('isOn','isEnabled').to(t,'value','isEnabled'),this.listenTo(r,'execute',()=>e.execute('bold')),r}),e.keystrokes.set(n,'bold')}}const Hf='italic';class Wf extends zg{init(){const e=this.editor,t=e.data,o=e.editing;e.document.schema.allow({name:'$inline',attributes:Hf,inside:'$block'}),e.document.schema.allow({name:'$inline',attributes:Hf,inside:'$clipboardHolder'}),ii().for(t.modelToView,o.modelToView).fromAttribute(Hf).toElement('i'),ai().for(t.viewToModel).fromElement('em').fromElement('i').fromAttribute('style',{"font-style":'italic'}).toAttribute(Hf,!0),e.commands.add(Hf,new Mf(e,Hf))}}var $f=o(26),Kf=o.n($f);class Uf extends zg{static get requires(){return[Wf]}static get pluginName(){return'Italic'}init(){const e=this.editor,o=e.t,t=e.commands.get('italic'),n='CTRL+I';e.ui.componentFactory.add('italic',(i)=>{const r=new bf(i);return r.set({label:o('b'),icon:Kf.a,keystroke:n,tooltip:!0}),r.bind('isOn','isEnabled').to(t,'value','isEnabled'),this.listenTo(r,'execute',()=>e.execute('italic')),r}),e.keystrokes.set(n,'italic')}}class Qf extends $g{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.document,o=t.schema,n=e.batch||t.batch(),i=Array.from(t.selection.getSelectedBlocks());t.enqueueChanges(()=>{if(this.value)this._removeQuote(n,i.filter(li));else{const e=i.filter((e)=>li(e)||ci(o,e));this._applyQuote(n,e)}})}_getValue(){const e=si(this.editor.document.selection.getSelectedBlocks());return!!(e&&li(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.document.selection,t=this.editor.document.schema,o=si(e.getSelectedBlocks());return!!o&&ci(t,o)}_removeQuote(e,t){di(t).reverse().forEach((t)=>{if(t.start.isAtStart&&t.end.isAtEnd)return void e.unwrap(t.start.parent);if(t.start.isAtStart){const o=Ys.createBefore(t.start.parent);return void e.move(t,o)}t.end.isAtEnd||e.split(t.end);const o=Ys.createAfter(t.end.parent);e.move(t,o)})}_applyQuote(e,t){const o=[];di(t).reverse().forEach((t)=>{let n=li(t.start);n||(n=new Qs('blockQuote'),e.wrap(t,n)),o.push(n)}),o.reverse().reduce((t,o)=>t.nextSibling==o?(e.merge(Ys.createAfter(t)),t):o)}}class Jf extends zg{init(){const e=this.editor,t=e.document.schema;e.commands.add('blockQuote',new Qf(e)),t.registerItem('blockQuote'),t.allow({name:'blockQuote',inside:'$root'}),t.allow({name:'$block',inside:'blockQuote'}),ai().for(e.data.viewToModel).fromElement('blockquote').toElement('blockQuote'),ii().for(e.data.modelToView,e.editing.modelToView).fromElement('blockQuote').toElement('blockquote')}afterInit(){const e=this.editor.document.schema;e.hasItem('listItem')&&e.allow({name:'listItem',inside:'blockQuote',attributes:['type','indent']})}}var Gf=o(27),Yf=o.n(Gf),Xf=o(28),Zf=o.n(Xf);class eh extends zg{static get requires(){return[Jf]}static get pluginName(){return'BlockQuote'}init(){const e=this.editor,o=e.t,t=e.commands.get('blockQuote');e.ui.componentFactory.add('blockQuote',(n)=>{const i=new bf(n);return i.set({label:o('c'),icon:Yf.a,tooltip:!0}),i.bind('isOn','isEnabled').to(t,'value','isEnabled'),this.listenTo(i,'execute',()=>e.execute('blockQuote')),i})}afterInit(){const e=this.editor,t=e.commands.get('blockQuote');this.listenTo(this.editor.editing.view,'enter',(e,o)=>{const n=this.editor.document,i=n.selection.getLastPosition().parent;n.selection.isCollapsed&&i.isEmpty&&t.value&&(this.editor.execute('blockQuote'),this.editor.editing.view.scrollToTheSelection(),o.preventDefault(),e.stop())})}}const th=/^data:(\S*?);base64,/;class oh{constructor(e,t,o){if(!e)throw new Error('File must be provided');if(!t)throw new Error('Token must be provided');if(!o)throw new Error('Api address must be provided');this.file=mi(e)?ui(e):e,this._token=t,this._apiAddress=o}onProgress(e){return this.on('progress',(t,o)=>e(o)),this}onError(e){return this.once('error',(t,o)=>e(o)),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const e=new XMLHttpRequest;e.open('POST',this._apiAddress),e.setRequestHeader('Authorization',this._token.value),e.responseType='json',this.xhr=e}_attachXHRListeners(){function e(e){return()=>t.fire('error',e)}const t=this,o=this.xhr;o.addEventListener('error',e('Network Error')),o.addEventListener('abort',e('Abort')),o.upload&&o.upload.addEventListener('progress',(e)=>{e.lengthComputable&&this.fire('progress',{total:e.total,uploaded:e.loaded})}),o.addEventListener('load',()=>{const e=o.status,t=o.response;if(200>e||299{t.addEventListener('load',()=>{const e=t.status,i=t.response;return 200>e||299n('Network Error')),t.addEventListener('abort',()=>n('Abort')),t.send(e)})}}s(oh,Sa);const nh={refreshInterval:3.6e6,autoRefresh:!0};class ih{constructor(e,t=nh){if(!e)throw new Error('`tokenUrl` must be provided');this.set('value',t.initValue),this._tokenUrl=e,this._options=Object.assign({},nh,t)}init(){return new Promise((e,t)=>(this._options.autoRefresh&&this._startRefreshing(),this.value?void e(this):void this._refreshToken().then(e).catch(t)))}_refreshToken(){return new Promise((e,t)=>{const o=new XMLHttpRequest;o.open('GET',this._tokenUrl),o.addEventListener('load',()=>{const n=o.status,i=o.response;return 200>n||299t('Network Error')),o.addEventListener('abort',()=>t('Abort')),o.send()})}_startRefreshing(){this._refreshInterval=setInterval(this._refreshToken.bind(this),this._options.refreshInterval)}_stopRefreshing(){clearInterval(this._refreshInterval)}static create(e,t=nh){const o=new ih(e,t);return o.init()}}s(ih,Hs);class rh extends zg{init(){const e=this.editor,t=e.config,o=t.get('cloudServices')||{};for(const e in o)this[e]=o[e];return(this.uploadUrl||(this.uploadUrl='https://files.cke-cs.com/upload/'),!this.tokenUrl)?void(this.token=null):(this.token=new rh.Token(this.tokenUrl),this.token.init())}}rh.Token=ih;class ah extends zg{static get requires(){return[Cf,rh]}init(){const e=this.editor,t=e.plugins.get(rh),o=t.token,n=t.uploadUrl;o&&(this._uploadGateway=new ah._UploadGateway(o,n),e.plugins.get(Cf).createAdapter=(e)=>new sh(this._uploadGateway,e))}}class sh{constructor(e,t){this.uploadGateway=e,this.loader=t}upload(){return this.fileUploader=this.uploadGateway.upload(this.loader.file),this.fileUploader.on('progress',(e,t)=>{this.loader.uploadTotal=t.total,this.loader.uploaded=t.uploaded}),this.fileUploader.send()}abort(){this.fileUploader.abort()}}ah._UploadGateway=class{constructor(e,t){if(!e)throw new Error('Token must be provided');if(!t)throw new Error('Api address must be provided');this._token=e,this._apiAddress=t}upload(e){return new oh(e,this._token,this._apiAddress)}};const lh=new WeakSet;class dh{constructor(){this._stack=[]}add(e){const t=this._stack,o=t[0];this._insertDescriptor(e);const n=t[0];o===n||vi(o,n)||this.fire('change:top',{oldDescriptor:o,newDescriptor:n})}remove(e){const t=this._stack,o=t[0];this._removeDescriptor(e);const n=t[0];o===n||vi(o,n)||this.fire('change:top',{oldDescriptor:o,newDescriptor:n})}_insertDescriptor(e){const t=this._stack,o=t.findIndex((t)=>t.id===e.id);if(!vi(e,t[o])){-1t.id===e);-1Ii()),ii().for(r.modelToView).fromElement('image').toElement(()=>Oi(Ii(),a('o'))),gi([r.modelToView,i.modelToView],'src'),gi([r.modelToView,i.modelToView],'alt'),gi([r.modelToView,i.modelToView],'srcset',fi),ai().for(i.viewToModel).from({name:'img',attribute:{src:/./}}).toElement((e)=>new Qs('image',{src:e.getAttribute('src')})),i.viewToModel.on('element:img',bi,{priority:'low'}),i.viewToModel.on('element',_i,{priority:'low'}),ai().for(i.viewToModel).from({name:'img',attribute:{alt:/./}}).consuming({attribute:['alt']}).toAttribute((e)=>({key:'alt',value:e.getAttribute('alt')})),ai().for(i.viewToModel).from({name:'img',attribute:{srcset:/./}}).consuming({attribute:['srcset']}).toAttribute((e)=>{const t={data:e.getAttribute('srcset')};return e.hasAttribute('width')&&(t.width=e.getAttribute('width')),{key:'srcset',value:t}}),i.viewToModel.on('element:figure',pi())}}class hh extends Xp{constructor(e){super(e),this.domEventType='mousedown'}onDomEvent(e){this.fire(e.type,e)}}var bh=o(30),kh=o.n(bh);const _h=oe('Ctrl+A');class vh extends zg{static get pluginName(){return'Widget'}init(){const e=this.editor.editing.view;this._previouslySelected=new Set,this.editor.editing.modelToView.on('selection',(e,t,o,n)=>{this._clearPreviouslySelectedWidgets();const i=n.viewSelection,r=i.getSelectedElement();for(const a of i.getRanges())for(const e of a){const t=e.item;t.is('element')&&xi(t)&&(t.addClass(ph),this._previouslySelected.add(t),t==r&&i.setFake(!0,{label:Pi(r)}))}},{priority:'low'}),e.addObserver(hh),this.listenTo(e,'mousedown',(...e)=>this._onMousedown(...e)),this.listenTo(e,'keydown',(...e)=>this._onKeydown(...e),{priority:'high'})}_onMousedown(e,t){const o=this.editor,n=o.editing.view;let i=t.target;if(Di(i))return;if(!xi(i)&&(i=i.findAncestor(xi),!i))return;t.preventDefault(),n.isFocused||n.focus();const r=o.editing.mapper.toModelElement(i);o.document.enqueueChanges(()=>{this._setSelectionOverElement(r)})}_onKeydown(e,t){const o=t.keyCode,n=o==mc.delete||o==mc.arrowdown||o==mc.arrowright;let i=!1;Bi(o)?i=this._handleDelete(n):Ni(o)?i=this._handleArrowKeys(n):Mi(t)&&(i=this._selectAllNestedEditableContent()||this._selectAllContent()),i&&(t.preventDefault(),e.stop())}_handleDelete(e){if(this.editor.isReadOnly)return;const t=this.editor.document,o=t.selection;if(!o.isCollapsed)return;const n=this._getObjectElementNextToSelection(e);if(n)return t.enqueueChanges(()=>{const e=t.batch();for(let t=o.anchor.parent;t.isEmpty;){const o=t;t=o.parent,e.remove(o)}this._setSelectionOverElement(n)}),!0}_handleArrowKeys(e){const t=this.editor.document,o=t.schema,n=t.selection,i=n.getSelectedElement();if(i&&o.objects.has(i.name)){const o=e?n.getLastPosition():n.getFirstPosition(),i=t.getNearestSelectionRange(o,e?'forward':'backward');return i&&t.enqueueChanges(()=>{n.setRanges([i])}),!0}if(!n.isCollapsed)return;const r=this._getObjectElementNextToSelection(e);if(r instanceof Qs&&t.schema.objects.has(r.name))return t.enqueueChanges(()=>{this._setSelectionOverElement(r)}),!0}_selectAllNestedEditableContent(){const e=this.editor.document,t=e.selection,o=e.schema,n=o.getLimitElement(t);return t.getFirstRange().root!=n&&(e.enqueueChanges(()=>{t.setIn(n)}),!0)}_selectAllContent(){const e=this.editor.document,t=e.selection,o=this.editor.editing,n=o.view,i=n.selection,r=i.getSelectedElement();if(r&&xi(r)){const n=o.mapper.toModelElement(r.parent);return e.enqueueChanges(()=>{t.setRanges([Xs.createIn(n)])}),!0}return!1}_setSelectionOverElement(e){this.editor.document.selection.setRanges([Xs.createOn(e)])}_getObjectElementNextToSelection(e){const t=this.editor.document,o=t.schema,n=t.selection,i=this.editor.data,r=bp.createFromSelection(n);i.modifySelection(r,{direction:e?'forward':'backward'});const a=e?r.focus.nodeBefore:r.focus.nodeAfter;return a instanceof Qs&&o.objects.has(a.name)?a:null}_clearPreviouslySelectedWidgets(){for(const e of this._previouslySelected)e.removeClass(ph);this._previouslySelected.clear()}}class wh extends $g{refresh(){const e=this.editor.document.selection.getSelectedElement();this.isEnabled=Fi(e),this.value=Fi(e)&&e.hasAttribute('alt')&&e.getAttribute('alt')}execute(e){const t=this.editor.document,o=t.selection.getSelectedElement();t.enqueueChanges(()=>{const n=e.batch||t.batch();n.setAttribute('alt',e.newValue,o)})}}class yh extends zg{init(){this.editor.commands.add('imageTextAlternative',new wh(this.editor))}}var xh=o(32),Ah=o.n(xh);class Ch extends yg{constructor(e){super(e),this.set('text'),this.set('for');const t=this.bindTemplate;this.setTemplate({tag:'label',attributes:{class:['ck-label'],for:t.to('for')},children:[{text:t.to('text')}]})}}class Th extends yg{constructor(e,t){super(e);const o=`ck-input-${l()}`;this.set('label'),this.set('value'),this.set('isReadOnly',!1),this.labelView=this._createLabelView(o),this.inputView=this._createInputView(t,o);const n=this.bindTemplate;this.setTemplate({tag:'div',attributes:{class:[n.if('isReadOnly','ck-disabled')]},children:[this.labelView,this.inputView]})}_createLabelView(e){const t=new Ch(this.locale);return t.for=e,t.bind('text').to(this,'label'),t}_createInputView(e,t){const o=new e(this.locale);return o.id=t,o.bind('value').to(this),o.bind('isReadOnly').to(this),o}select(){this.inputView.select()}focus(){this.inputView.focus()}}var Ph=o(34),Eh=o.n(Ph);class Sh extends yg{constructor(e){super(e),this.set('value'),this.set('id'),this.set('placeholder'),this.set('isReadOnly',!1);const t=this.bindTemplate;this.setTemplate({tag:'input',attributes:{type:'text',class:['ck-input','ck-input-text'],id:t.to('id'),placeholder:t.to('placeholder'),readonly:t.to('isReadOnly'),value:t.to('value')}})}select(){this.element.select()}focus(){this.element.focus()}}var Oh=o(36),Vh=o.n(Oh);class Rh extends yg{constructor(e){super(e);const o=this.locale.t;this.focusTracker=new ug,this.keystrokes=new Vp,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(o('w')),this.saveButtonView.type='submit',this.cancelButtonView=this._createButton(o('x'),'cancel'),this._focusables=new gg,this._focusCycler=new Fg({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:'shift + tab',focusNext:'tab'}}),this.saveButtonView.extendTemplate({attributes:{class:['ck-button-action']}}),this.setTemplate({tag:'form',attributes:{class:['cke-text-alternative-form'],tabindex:'-1'},children:[this.labeledInput,{tag:'div',attributes:{class:['cke-text-alternative-form__actions']},children:[this.saveButtonView,this.cancelButtonView]}]})}render(){super.render(),this.keystrokes.listenTo(this.element),zi({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e)=>{this._focusables.add(e),this.focusTracker.add(e.element)})}_createButton(e,t){const o=new bf(this.locale);return o.label=e,o.withText=!0,t&&o.delegate('execute').to(this,t),o}_createLabeledInputView(){const e=this.locale.t,t=new Th(this.locale,Sh);return t.label=e('aa'),t}}class Fh extends zg{static get pluginName(){return'ContextualBalloon'}init(){this.view=new Rg,this.positionLimiter=()=>{const e=this.editor.editing.view,t=e.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},this._stack=new Map,this.editor.ui.view.body.add(this.view),this.editor.ui.focusTracker.add(this.view.element)}get visibleView(){const e=this._stack.get(this.view.content.get(0));return e?e.view:null}hasView(e){return this._stack.has(e)}add(e){if(this.hasView(e.view))throw new ha('contextualballoon-add-view-exist: Cannot add configuration of the same view twice.');this.visibleView&&this.view.content.remove(this.visibleView),this._stack.set(e.view,e),this._show(e)}remove(e){if(!this.hasView(e))throw new ha('contextualballoon-remove-view-not-exist: Cannot remove configuration of not existing view.');if(this.visibleView===e){this.view.content.remove(e),this._stack.delete(e);const t=Array.from(this._stack.values()).pop();t?this._show(t):this.view.hide()}else this._stack.delete(e)}updatePosition(e){e&&(this._stack.get(this.visibleView).position=e),this.view.pin(this._getBalloonPosition())}_show({view:e,balloonClassName:t=''}){this.view.className=t,this.view.content.add(e),this.view.pin(this._getBalloonPosition())}_getBalloonPosition(){let e=si(this._stack.values()).position;return e&&!e.limiter&&(e=Object.assign({},e,{limiter:this.positionLimiter})),e}}var Ih=o(38),Nh=o.n(Ih);class Bh extends zg{static get requires(){return[yh,Fh]}static get pluginName(){return'ImageTextAlternative'}init(){this._createButton(),this._createForm()}_createButton(){const e=this.editor,o=e.commands.get('imageTextAlternative'),n=e.t;e.ui.componentFactory.add('imageTextAlternative',(e)=>{const t=new bf(e);return t.set({label:n('n'),icon:Nh.a,tooltip:!0}),t.bind('isEnabled').to(o,'isEnabled'),this.listenTo(t,'execute',()=>this._showForm()),t})}_createForm(){const e=this.editor,t=e.editing.view;this._balloon=this.editor.plugins.get('ContextualBalloon'),this._form=new Rh(e.locale),this._form.render(),this.listenTo(this._form,'submit',()=>{e.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',(e,t)=>{this._hideForm(!0),t()}),this.listenTo(t,'render',()=>{Ri(t.selection)?this._isVisible&&ji(e):this._hideForm(!0)},{priority:'low'}),Li({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._form.element],callback:()=>this._hideForm()})}_showForm(){if(!this._isVisible){const e=this.editor,t=e.commands.get('imageTextAlternative'),o=this._form.labeledInput;this._balloon.hasView(this._form)||this._balloon.add({view:this._form,position:qi(e)}),o.value=o.inputView.element.value=t.value||'',this._form.labeledInput.select()}}_hideForm(e){this._isVisible&&(this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView==this._form}}var Mh=o(39),Dh=o.n(Mh);class Lh extends zg{static get requires(){return[fh,vh,Bh]}static get pluginName(){return'Image'}init(){const e=this.editor,t=e.plugins.get('ContextualToolbar');t&&this.listenTo(t,'show',(t)=>{Ri(e.editing.view.selection)&&t.stop()},{priority:'high'})}}class zh extends $g{execute(e){const t=this.editor,o=t.document,n=e.batch||o.batch(),i=e.file,r=o.selection,a=t.plugins.get(Cf);o.enqueueChanges(()=>{const s=a.createLoader(i);if(!s)return;const l=new Qs('image',{uploadId:s.id});let d;d=e.insertAt?new bp([new Xs(e.insertAt)]):o.selection,t.data.insertContent(l,d,n),l.parent&&r.setRanges([Xs.createOn(l)])})}}class jh extends zg{static get pluginName(){return'Notification'}init(){this.on('show:warning',(e,t)=>{window.alert(t.message)},{priority:'lowest'})}showSuccess(e,t={}){this._showNotification({message:e,type:'success',namespace:t.namespace,title:t.title})}showInfo(e,t={}){this._showNotification({message:e,type:'info',namespace:t.namespace,title:t.title})}showWarning(e,t={}){this._showNotification({message:e,type:'warning',namespace:t.namespace,title:t.title})}_showNotification(e){const t=`show:${e.type}`+(e.namespace?`:${e.namespace}`:'');this.fire(t,{message:e.message,type:e.type,title:e.title||''})}}class qh extends zg{static get requires(){return[Cf,jh]}init(){const e=this.editor,t=e.document,o=t.schema,n=e.plugins.get(Cf);o.allow({name:'image',attributes:['uploadId'],inside:'$root'}),o.allow({name:'image',attributes:['uploadStatus'],inside:'$root'}),o.requireAttributes('image',['uploadId']),e.commands.add('imageUpload',new zh(e)),e.editing.view.on('clipboardInput',(o,n)=>{if($i(n.dataTransfer))return;let i=new bp(n.targetRanges.map((t)=>e.editing.mapper.toModelRange(t)));for(const r of n.dataTransfer.files){const n=Wi(i);Hi(r)&&(e.execute('imageUpload',{file:r,insertAt:n}),o.stop()),i=t.selection}}),e.editing.view.on('dragover',(e,t)=>{t.preventDefault()}),t.on('change',(e,t,o)=>{if('insert'===t||'reinsert'===t||'remove'===t)for(const e of o.range)if('elementStart'===e.type&&'image'===e.item.name){const o=e.item,i=o.getAttribute('uploadId');if(i){const e=n.loaders.get(i);e&&('insert'===t&&'idle'==e.status&&this.load(e,o),'remove'===t&&e.abort())}}})}load(e,o){function n(){t.enqueueChanges(()=>{const e=t.batch('transparent');e.removeAttribute('uploadId',o),e.removeAttribute('uploadStatus',o)}),a.destroyLoader(e)}const i=this.editor,r=i.locale.t,t=i.document,a=i.plugins.get(Cf),s=i.plugins.get(jh);t.enqueueChanges(()=>{t.batch('transparent').setAttribute('uploadStatus','reading',o)}),e.read().then((n)=>{const r=i.editing.mapper.toViewElement(o),a=r.getChild(0),s=e.upload();return a.setAttribute('src',n),i.editing.view.render(),t.enqueueChanges(()=>{t.batch('transparent').setAttribute('uploadStatus','uploading',o)}),s}).then((e)=>{t.enqueueChanges(()=>{t.batch('transparent').setAttributes({uploadStatus:'complete',src:e.default},o);let n=0;const i=Object.keys(e).filter((e)=>{const t=parseInt(e,10);if(!isNaN(t))return n=oa(n,t),!0}).map((t)=>`${e[t]} ${t}w`).join(', ');''!=i&&t.batch('transparent').setAttribute('srcset',{data:i,width:n},o)}),n()}).catch((i)=>{'error'==e.status&&s.showWarning(i,{title:r('ab'),namespace:'upload'}),n(),t.enqueueChanges(()=>{t.batch('transparent').remove(o)})})}}class Hh extends yg{constructor(e){super(e),this.buttonView=new bf(e),this._fileInputView=new Wh(e),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 Wh extends yg{constructor(e){super(e),this.set('acceptedType'),this.set('allowMultipleFiles',!1);const t=this.bindTemplate;this.setTemplate({tag:'input',attributes:{class:['ck-hidden'],type:'file',tabindex:'-1',accept:t.to('acceptedType'),multiple:t.to('allowMultipleFiles')},on:{change:t.to(()=>{this.element&&this.element.files&&this.element.files.length&&this.fire('done',this.element.files),this.element.value=''})}})}open(){this.element.click()}}var $h=o(41),Kh=o.n($h);class Uh extends zg{static get requires(){return[qh]}init(){const e=this.editor,o=e.t;e.ui.componentFactory.add('insertImage',(t)=>{const n=new Hh(t),i=e.commands.get('imageUpload');return n.set({acceptedType:'image/*',allowMultipleFiles:!0}),n.buttonView.set({label:o('v'),icon:Kh.a,tooltip:!0}),n.bind('isEnabled').to(i),n.on('done',(t,o)=>{for(const n of Array.from(o)){const t=Wi(e.document.selection);Hi(n)&&e.execute('imageUpload',{file:n,insertAt:t})}}),n})}}var Qh=o(42),Jh=o.n(Qh),Gh=o(43),Yh=o.n(Gh);class Xh extends zg{static get requires(){return[qh]}constructor(e){super(e),this.placeholder='data:image/svg+xml;utf8,'+encodeURIComponent(Jh.a)}init(){const e=this.editor;e.editing.modelToView.on('addAttribute:uploadStatus:image',(...e)=>this.uploadStatusChange(...e)),e.editing.modelToView.on('changeAttribute:uploadStatus:image',(...e)=>this.uploadStatusChange(...e))}uploadStatusChange(e,t,o){const n=this.editor,i=t.item,r=i.getAttribute('uploadId');if(o.consume(t.item,ze(e.name))&&r){const e=n.plugins.get(Cf),o=this.placeholder,a=t.attributeNewValue,s=n.editing.mapper.toViewElement(i);if('reading'==a){s.addClass('ck-appear','ck-infinite-progress','ck-image-upload-placeholder');const e=s.getChild(0);return void e.setAttribute('src',o)}if('uploading'==a){const t=e.loaders.get(r);if(t){const e=Ki();s.removeClass('ck-infinite-progress','ck-image-upload-placeholder'),s.appendChildren(e),t.on('change:uploadedPercent',(t,o,i)=>{e.setStyle('width',i+'%'),n.editing.view.render()})}return}const l=Ui(s);l?l.remove():s.removeClass('ck-infinite-progress'),s.removeClass('ck-appear','ck-image-upload-placeholder')}}}const Zh=Symbol('progress-bar');class eb extends zg{static get pluginName(){return'ImageUpload'}static get requires(){return[Uh,Xh]}}class tb extends zg{static get requires(){return[ah,Lh,eb]}static get pluginName(){return'EasyImage'}}class ob extends $g{refresh(){const e=this.editor.document,t=si(e.selection.getSelectedBlocks());this.value=!!t&&t.is('paragraph'),this.isEnabled=!!t&&Qi(t,e.schema)}execute(e={}){const t=this.editor.document;t.enqueueChanges(()=>{const o=e.batch||t.batch(),n=(e.selection||t.selection).getSelectedBlocks();for(const e of n)!e.is('paragraph')&&Qi(e,t.schema)&&o.rename(e,'paragraph')})}}class nb extends zg{static get pluginName(){return'Paragraph'}init(){const e=this.editor,t=e.document,o=e.data,n=e.editing;e.commands.add('paragraph',new ob(e)),t.schema.registerItem('paragraph','$block'),ii().for(o.modelToView,n.modelToView).fromElement('paragraph').toElement('p'),ai().for(o.viewToModel).fromElement('p').toElement('paragraph'),o.viewToModel.on('element',Ji,{priority:'low'}),o.viewToModel.on('text',Ji,{priority:'lowest'}),o.viewToModel.on('element',Gi,{priority:'lowest'}),o.viewToModel.on('documentFragment',Gi,{priority:'lowest'}),t.on('change',(e,o,n,i)=>{'transparent'==i.type||Xi(t,i)}),t.on('changesDone',Zi,{priority:'lowest'}),e.on('dataReady',()=>{Xi(t,t.batch('transparent')),Zi()},{priority:'lowest'})}}nb.paragraphLikeElements=new Set(['blockquote','dd','div','dt','h1','h2','h3','h4','h5','h6','li','p','td']);const ib=new Map;class rb extends $g{constructor(e,t){super(e),this.modelElement=t}refresh(){const e=si(this.editor.document.selection.getSelectedBlocks());this.value=!!e&&e.is(this.modelElement),this.isEnabled=!!e&&er(e,this.modelElement,this.editor.document.schema)}execute(e={}){const t=this.editor,o=t.document;o.enqueueChanges(()=>{const t=e.batch||o.batch(),n=Array.from(o.selection.getSelectedBlocks()).filter((e)=>er(e,this.modelElement,o.schema));for(const e of n)e.is(this.modelElement)||t.rename(e,this.modelElement)})}}const ab='paragraph';class sb extends zg{constructor(e){super(e),e.config.define('heading',{options:[{modelElement:'paragraph',title:'Paragraph',class:'ck-heading_paragraph'},{modelElement:'heading1',viewElement:'h2',title:'Heading 1',class:'ck-heading_heading1'},{modelElement:'heading2',viewElement:'h3',title:'Heading 2',class:'ck-heading_heading2'},{modelElement:'heading3',viewElement:'h4',title:'Heading 3',class:'ck-heading_heading3'}]})}static get requires(){return[nb]}init(){const e=this.editor,t=e.data,o=e.editing,n=e.config.get('heading.options');for(const i of n)i.modelElement!==ab&&(e.document.schema.registerItem(i.modelElement,'$block'),ii().for(t.modelToView,o.modelToView).fromElement(i.modelElement).toElement(i.viewElement),ai().for(t.viewToModel).fromElement(i.viewElement).toElement(i.modelElement),e.commands.add(i.modelElement,new rb(e,i.modelElement)))}afterInit(){const e=this.editor,t=e.commands.get('enter'),o=e.config.get('heading.options');t&&this.listenTo(t,'afterExecute',(t,n)=>{const i=e.document.selection.getFirstPosition().parent,r=n.batch,a=o.some((e)=>i.is(e.modelElement));a&&!i.is(ab)&&0===i.childCount&&r.rename(i,ab)})}}class lb{constructor(e,t){t&&Ds(this,t),e&&this.set(e)}}s(lb,Hs);var db=o(45),cb=o.n(db);class ub extends yg{constructor(){super(),this.items=this.createCollection(),this.focusTracker=new ug,this.keystrokes=new Vp,this._focusCycler=new Fg({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:'arrowup',focusNext:'arrowdown'}}),this.setTemplate({tag:'ul',attributes:{class:['ck-reset','ck-list']},children:this.items})}render(){super.render();for(const e of this.items)this.focusTracker.add(e.element);this.items.on('add',(e,t)=>{this.focusTracker.add(t.element)}),this.items.on('remove',(e,t)=>{this.focusTracker.remove(t.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class mb extends yg{constructor(){super(),this.set('tabindex',-1),this.keystrokes=new Vp;const e=this.bindTemplate;this.setTemplate({tag:'li',attributes:{class:['ck-list__item',e.to('class'),e.if('isActive','ck-list__item_active')],style:e.to('style'),tabindex:e.to('tabindex')},children:[{text:e.to('label')}],on:{click:e.to('execute')}})}render(){super.render();const e=(e,t)=>{this.fire('execute'),t()};this.keystrokes.listenTo(this.element),this.keystrokes.set('Enter',e),this.keystrokes.set('Space',e)}focus(){this.element.focus()}}var pb=o(47),gb=o.n(pb);class fb extends yg{constructor(e,t,o){super(e),t.extendTemplate({attributes:{class:['ck-dropdown__button']}}),this.buttonView=t,this.panelView=o,this.set('isOpen',!1),this.focusTracker=new ug,this.keystrokes=new Vp,this.setTemplate({tag:'div',attributes:{class:['ck-dropdown']},children:[t,o]})}render(){super.render(),this.listenTo(this.buttonView,'execute',()=>{this.isOpen=!this.isOpen}),this.panelView.bind('isVisible').to(this,'isOpen'),this.keystrokes.listenTo(this.element),this.focusTracker.add(this.element);const e=(e,t)=>{this.isOpen&&(this.buttonView.focus(),this.isOpen=!1,t())};this.keystrokes.set('arrowdown',(e,t)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,t())}),this.keystrokes.set('arrowright',(e,t)=>{this.isOpen&&t()}),this.keystrokes.set('arrowleft',e),this.keystrokes.set('esc',e)}focus(){this.buttonView.focus()}}class hb extends yg{constructor(e){super(e);const t=this.bindTemplate;this.set('isVisible',!1),this.children=this.createCollection(),this.setTemplate({tag:'div',attributes:{class:['ck-reset','ck-dropdown__panel',t.if('isVisible','ck-dropdown__panel-visible')]},children:this.children,on:{selectstart:t.to((e)=>e.preventDefault())}})}}var bb=o(49),kb=o.n(bb);class _b extends zg{static get requires(){return[nb,sb]}static get pluginName(){return'Heading'}init(){const e=this.editor,o=new pg,n=this._getLocalizedOptions(),i=[],r=e.t,t=r('d'),a=r('e');for(const t of n){const n=e.commands.get(t.modelElement),r=new lb({commandName:t.modelElement,label:t.title,class:t.class});r.bind('isActive').to(n,'value'),o.add(r),i.push(n)}const s=new lb({withText:!0,items:o,tooltip:a});s.bind('isEnabled').to(...ir(i,'isEnabled'),(...e)=>e.some((e)=>e)),s.bind('label').to(...ir(i,'value'),(...e)=>{const o=e.findIndex((e)=>e);return n[o]?n[o].title:t}),e.ui.componentFactory.add('headings',(t)=>{const o=or(s,t);return o.extendTemplate({attributes:{class:['ck-heading-dropdown']}}),this.listenTo(o,'execute',(t)=>{e.execute(t.source.commandName),e.editing.view.focus()}),o})}_getLocalizedOptions(){const e=this.editor,o=e.t,t={Paragraph:o('f'),"Heading 1":o('g'),"Heading 2":o('h'),"Heading 3":o('i')};return e.config.get('heading.options').map((e)=>{const o=t[e.title];return o&&o!=e.title&&(e=Object.assign({},e,{title:o})),e})}}var vb=o(51),wb=o.n(vb);const yb={};Ds(yb,Sa);const xb=new WeakMap,Ab=Symbol('imageCaption');class Cb extends zg{init(){const e=this.editor,o=e.document,n=e.editing.view,i=o.schema,r=e.data,a=e.editing,s=e.t;this._createCaption=dr(n,s('p')),i.registerItem('caption','$block'),i.allow({name:'$inline',inside:'caption'}),i.allow({name:'caption',inside:'image'}),i.limits.add('caption'),o.on('change',mr),ai().for(r.viewToModel).from(ur).toElement('caption'),r.modelToView.on('insert:caption',pr(new Jd('figcaption'),!1)),a.modelToView.on('insert:caption',pr(this._createCaption)),a.modelToView.on('insert',(e,t)=>this._fixCaptionVisibility(t.item),{priority:'high'}),a.modelToView.on('remove',(e,t)=>this._fixCaptionVisibility(t.sourcePosition.parent),{priority:'high'}),this.listenTo(n,'render',()=>this._updateCaptionVisibility(),{priority:'high'})}_updateCaptionVisibility(){const e=this.editor.editing.mapper;let t;this._lastSelectedCaption&&!this._lastSelectedCaption.childCount&&this._lastSelectedCaption.addClass('ck-hidden');const o=this.editor.document.selection,n=o.getSelectedElement();if(n&&n.is('image')){const o=cr(n);t=e.toViewElement(o)}const i=o.getFirstPosition(),r=fr(i.parent);r&&(t=e.toViewElement(r)),t&&(t.removeClass('ck-hidden'),this._lastSelectedCaption=t)}_fixCaptionVisibility(e){const t=fr(e),o=this.editor.editing.mapper;if(t){const e=o.toViewElement(t);e&&(t.childCount?e.removeClass('ck-hidden'):e.addClass('ck-hidden'))}}}var Tb=o(53),Pb=o.n(Tb);class Eb extends zg{static get requires(){return[Cb]}static get pluginName(){return'ImageCaption'}}class Sb extends $g{constructor(e,t){super(e),this.style=t}refresh(){const e=this.editor.document.selection.getSelectedElement();this.isEnabled=Fi(e),this.value=!!e&&(this.style.isDefault?!e.hasAttribute('imageStyle'):e.getAttribute('imageStyle')==this.style.name)}execute(e={}){if(this.value)return;const t=this.editor.document,o=t.selection.getSelectedElement();t.enqueueChanges(()=>{const n=e.batch||t.batch();this.style.isDefault?n.removeAttribute('imageStyle',o):n.setAttribute('imageStyle',this.style.name,o)})}}var Ob=o(55),Vb=o.n(Ob),Rb=o(56),Fb=o.n(Rb),Ib=o(57),Nb=o.n(Ib),Bb=o(58),Mb=o.n(Bb);class Db extends zg{static get requires(){return[fh]}static get pluginName(){return'ImageStyleEngine'}init(){const e=this.editor,t=e.document,o=t.schema,n=e.data,i=e.editing;e.config.define('image.styles',['imageStyleFull','imageStyleSide']);const r=this.imageStyles;o.allow({name:'image',attributes:'imageStyle',inside:'$root'});const a=hr(r);i.modelToView.on('addAttribute:imageStyle:image',a),n.modelToView.on('addAttribute:imageStyle:image',a),i.modelToView.on('changeAttribute:imageStyle:image',a),n.modelToView.on('changeAttribute:imageStyle:image',a),i.modelToView.on('removeAttribute:imageStyle:image',a),n.modelToView.on('removeAttribute:imageStyle:image',a),n.viewToModel.on('element:figure',br(r),{priority:'low'});for(const t of r)e.commands.add(t.name,new Sb(e,t))}get imageStyles(){if(this._cachedImageStyles)return this._cachedImageStyles;const e=[],t=this.editor,o=this.localizedDefaultStylesTitles,n=t.config.get('image.styles');for(let t of n)t=yr(t),o[t.title]&&(t.title=o[t.title]),e.push(t);return this._cachedImageStyles=e}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Full size image":e('q'),"Side image":e('r'),"Left aligned image":e('s'),"Centered image":e('t'),"Right aligned image":e('u')}}}Db.defaultStyles={imageStyleFull:{name:'imageStyleFull',title:'Full size image',icon:Vb.a,isDefault:!0},imageStyleSide:{name:'imageStyleSide',title:'Side image',icon:Mb.a,className:'image-style-side'},imageStyleAlignLeft:{name:'imageStyleAlignLeft',title:'Left aligned image',icon:Fb.a,className:'image-style-align-left'},imageStyleAlignCenter:{name:'imageStyleAlignCenter',title:'Centered image',icon:Nb.a,className:'image-style-align-center'},imageStyleAlignRight:{name:'imageStyleAlignRight',title:'Right aligned image',icon:Mb.a,className:'image-style-align-right'}},Db.defaultIcons={full:Vb.a,left:Fb.a,right:Mb.a,center:Nb.a};var Lb=o(59),zb=o.n(Lb);class jb extends zg{static get requires(){return[Db]}static get pluginName(){return'ImageStyle'}init(){const e=this.editor,t=e.plugins.get(Db).imageStyles;for(const e of t)this._createButton(e)}_createButton(e){const t=this.editor,o=t.commands.get(e.name);t.ui.componentFactory.add(e.name,(n)=>{const i=new bf(n);return i.set({label:e.title,icon:e.icon,tooltip:!0}),i.bind('isEnabled').to(o,'isEnabled'),i.bind('isOn').to(o,'value'),this.listenTo(i,'execute',()=>t.execute(e.name)),i})}}class qb extends zg{static get requires(){return[Fh]}static get pluginName(){return'ImageToolbar'}afterInit(){const e=this.editor,t=e.config.get('image.toolbar');t&&t.length&&(this._balloon=this.editor.plugins.get('ContextualBalloon'),this._toolbar=new Mg,this._toolbar.extendTemplate({attributes:{class:'ck-editor-toolbar'}}),this._toolbar.fillFromConfig(t,e.ui.componentFactory),this.listenTo(e.editing.view,'render',()=>{this._checkIsVisible()},{priority:'low'}),this.listenTo(e.ui.focusTracker,'change:isFocused',()=>{this._checkIsVisible()},{priority:'low'}))}_checkIsVisible(){const e=this.editor;e.ui.focusTracker.isFocused?Ri(e.editing.view.selection)?this._showToolbar():this._hideToolbar():this._hideToolbar()}_showToolbar(){const e=this.editor;this._isVisible?ji(e):!this._balloon.hasView(this._toolbar)&&this._balloon.add({view:this._toolbar,position:qi(e),balloonClassName:'ck-toolbar-container ck-editor-toolbar-container'})}_hideToolbar(){this._isVisible&&this._balloon.remove(this._toolbar)}get _isVisible(){return this._balloon.visibleView==this._toolbar}}class Hb extends Xp{constructor(e){super(e),this.domEventType='click'}onDomEvent(e){this.fire(e.type,e)}}class Wb extends rc{}class $b extends $g{refresh(){const e=this.editor.document;this.value=e.selection.getAttribute('linkHref'),this.isEnabled=e.schema.checkAttributeInSelection(e.selection,'linkHref')}execute(e){const t=this.editor.document,o=t.selection;t.enqueueChanges(()=>{const n=t.batch();if(o.isCollapsed){const i=o.getFirstPosition();if(o.hasAttribute('linkHref')){const t=xr(o.getFirstPosition(),o.getAttribute('linkHref'));n.setAttribute('linkHref',e,t),o.setRanges([t])}else{const r=E(t.selection.getAttributes());r.set('linkHref',e);const a=n.createText(e,r);n.insert(a,i),o.setRanges([Xs.createOn(a)])}}else{const i=t.schema.getValidRanges(o.getRanges(),'linkHref');for(const t of i)n.setAttribute('linkHref',e,t)}})}}class Kb extends $g{refresh(){this.isEnabled=this.editor.document.selection.hasAttribute('linkHref')}execute(){const e=this.editor.document,t=e.selection;e.enqueueChanges(()=>{const o=t.isCollapsed?[xr(t.getFirstPosition(),t.getAttribute('linkHref'))]:t.getRanges(),n=e.batch();for(const e of o)n.removeAttribute('linkHref',e)})}}class Ub extends zg{init(){const e=this.editor,t=e.data,o=e.editing;e.document.schema.allow({name:'$inline',attributes:'linkHref',inside:'$block'}),e.document.schema.allow({name:'$inline',attributes:'linkHref',inside:'$clipboardHolder'}),ii().for(t.modelToView,o.modelToView).fromAttribute('linkHref').toElement((e)=>{const t=new Wb('a',{href:e});return t.priority=5,t}),ai().for(t.viewToModel).from({name:'a',attribute:{href:/.?/}}).toAttribute((e)=>({key:'linkHref',value:e.getAttribute('href')})),e.commands.add('link',new $b(e)),e.commands.add('unlink',new Kb(e))}}var Qb=o(61),Jb=o.n(Qb);class Gb extends yg{constructor(e){super(e);const o=e.t;this.focusTracker=new ug,this.keystrokes=new Vp,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(o('w')),this.saveButtonView.type='submit',this.cancelButtonView=this._createButton(o('x'),'cancel'),this.unlinkButtonView=this._createButton(o('y'),'unlink'),this._focusables=new gg,this._focusCycler=new Fg({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:'shift + tab',focusNext:'tab'}}),this.saveButtonView.extendTemplate({attributes:{class:['ck-button-action']}}),this.setTemplate({tag:'form',attributes:{class:['ck-link-form'],tabindex:'-1'},children:[this.urlInputView,{tag:'div',attributes:{class:['ck-link-form__actions']},children:[this.saveButtonView,this.cancelButtonView,this.unlinkButtonView]}]})}render(){super.render(),zi({view:this});const e=[this.urlInputView,this.saveButtonView,this.cancelButtonView,this.unlinkButtonView];e.forEach((e)=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const e=this.locale.t,t=new Th(this.locale,Sh);return t.label=e('z'),t.inputView.placeholder='https://example.com',t}_createButton(e,t){const o=new bf(this.locale);return o.label=e,o.withText=!0,t&&o.delegate('execute').to(this,t),o}}var Yb=o(63),Xb=o.n(Yb);const Zb='Ctrl+K';class ek extends zg{static get requires(){return[Ub,Fh]}static get pluginName(){return'Link'}init(){const e=this.editor;e.editing.view.addObserver(Hb),this.formView=this._createForm(),this._balloon=e.plugins.get(Fh),this._createToolbarLinkButton(),this._attachActions()}_createForm(){const e=this.editor,t=new Gb(e.locale),o=e.commands.get('link'),n=e.commands.get('unlink');return t.urlInputView.bind('value').to(o,'value'),t.urlInputView.bind('isReadOnly').to(o,'isEnabled',(e)=>!e),t.saveButtonView.bind('isEnabled').to(o),t.unlinkButtonView.bind('isEnabled').to(n),this.listenTo(t,'submit',()=>{e.execute('link',t.urlInputView.inputView.element.value),this._hidePanel(!0)}),this.listenTo(t,'unlink',()=>{e.execute('unlink'),this._hidePanel(!0)}),this.listenTo(t,'cancel',()=>this._hidePanel(!0)),t.keystrokes.set('Esc',(e,t)=>{this._hidePanel(!0),t()}),t}_createToolbarLinkButton(){const e=this.editor,o=e.commands.get('link'),n=e.t;e.keystrokes.set(Zb,(e,t)=>{t(),o.isEnabled&&this._showPanel(!0)}),e.ui.componentFactory.add('link',(e)=>{const t=new bf(e);return t.isEnabled=!0,t.label=n('l'),t.icon=Xb.a,t.keystroke=Zb,t.tooltip=!0,t.bind('isEnabled').to(o,'isEnabled'),this.listenTo(t,'execute',()=>this._showPanel(!0)),t})}_attachActions(){const e=this.editor.editing.view;this.listenTo(e,'click',()=>{const e=this._getSelectedLinkElement();e&&this._showPanel()}),this.editor.keystrokes.set('Tab',(e,t)=>{this._balloon.visibleView!==this.formView||this.formView.focusTracker.isFocused||(this.formView.focus(),t())},{priority:'high'}),this.editor.keystrokes.set('Esc',(e,t)=>{this._balloon.visibleView===this.formView&&(this._hidePanel(),t())}),Li({emitter:this.formView,activator:()=>this._balloon.hasView(this.formView),contextElements:[this._balloon.view.element],callback:()=>this._hidePanel()})}_showPanel(e){const t=this.editor,o=t.commands.get('link'),n=t.commands.get('unlink'),i=t.editing,r=i.view,a=r.selection.isCollapsed,s=this._getSelectedLinkElement();this.listenTo(r,'render',()=>{const e=this._getSelectedLinkElement(),t=r.selection.isCollapsed;a&&!t||s!==e?this._hidePanel(!0):this._balloon.updatePosition(this._getBalloonPositionData())}),this._balloon.hasView(this.formView)?e&&this._balloon.visibleView===this.formView&&this.formView.urlInputView.select():(this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),e&&this.formView.urlInputView.select()),this.formView.unlinkButtonView.isVisible=n.isEnabled,this.formView.urlInputView.inputView.element.value=o.value||''}_hidePanel(e){this.stopListening(this.editor.editing.view,'render');this._balloon.hasView(this.formView)&&(e&&this.editor.editing.view.focus(),this.stopListening(this.editor.editing.view,'render'),this._balloon.remove(this.formView))}_getBalloonPositionData(){const e=this.editor.editing.view,t=this._getSelectedLinkElement(),o=t?e.domConverter.mapViewToDom(t):e.domConverter.viewRangeToDom(e.selection.getFirstRange());return{target:o}}_getSelectedLinkElement(){const e=this.editor.editing.view.selection;if(e.isCollapsed)return Cr(e.getFirstPosition());else{const t=e.getFirstRange().getTrimmed(),o=Cr(t.start),n=Cr(t.end);return o&&o==n?Zd.createIn(o).getTrimmed().isEqual(t)?o:null:null}}}class tk extends $g{constructor(e,t){super(e),this.type='bulleted'==t?'bulleted':'numbered'}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.document,o=Array.from(t.selection.getSelectedBlocks()).filter((e)=>Pr(e,t.schema)),n=!0===this.value;t.enqueueChanges(()=>{const i=e.batch||t.batch();if(n){let e=o[o.length-1].nextSibling,t=ea,n=[];for(;e&&'listItem'==e.name&&0!==e.getAttribute('indent');){const o=e.getAttribute('indent');o{const e=o[o.length-1];for(let t=e.nextSibling;t&&'listItem'==t.name&&t.getAttribute('indent')>e.getAttribute('indent');)o.push(t),t=t.nextSibling;0>this._indentBy&&(o=o.reverse());for(const e of o){const o=e.getAttribute('indent')+this._indentBy;0>o?t.rename(e,'paragraph'):t.setAttribute('indent',o,e)}0>this._indentBy&&(o=o.reverse());for(const e of o)Er(e,t)})}_checkEnabled(){const e=si(this.editor.document.selection.getSelectedBlocks());if(!e||!e.is('listItem'))return!1;if(0=t;){if(n.getAttribute('indent')==t)return n.getAttribute('type')==o;n=n.previousSibling}return!1}return!0}}class nk extends Jd{constructor(e,t){super('li',e,t),this.getFillerOffset=Or}}class ik extends zg{static get requires(){return[nb]}init(){const e=this.editor,t=e.document.schema;t.registerItem('listItem','$block'),t.allow({name:'listItem',inside:'$root',attributes:['type','indent']}),t.requireAttributes('listItem',['type','indent']);const o=e.data,n=e.editing;this.editor.document.on('change',qr(this.editor.document),{priority:'high'}),this.editor.document.on('change',(e,t,o)=>{if('move'==t)for(const e of o.range.getItems())e.is('listItem')&&n.mapper.unbindModelElement(e)},{priority:'high'}),n.mapper.registerViewToModelLength('li',Zr),o.mapper.registerViewToModelLength('li',Zr),n.mapper.on('modelToViewPosition',zr),n.mapper.on('viewToModelPosition',jr),o.mapper.on('modelToViewPosition',zr),n.modelToView.on('insert',Nr,{priority:'high'}),n.modelToView.on('insert:listItem',Vr),o.modelToView.on('insert',Nr,{priority:'high'}),o.modelToView.on('insert:listItem',Vr),n.modelToView.on('changeAttribute:type:listItem',Rr),o.modelToView.on('changeAttribute:type:listItem',Rr),n.modelToView.on('remove:listItem',Fr),n.modelToView.on('remove',Br,{priority:'low'}),o.modelToView.on('remove:listItem',Fr),o.modelToView.on('remove',Br,{priority:'low'}),n.modelToView.on('changeAttribute:indent:listItem',Ir),o.modelToView.on('changeAttribute:indent:listItem',Ir),o.viewToModel.on('element:ul',Dr,{priority:'high'}),o.viewToModel.on('element:ol',Dr,{priority:'high'}),o.viewToModel.on('element:li',Lr,{priority:'high'}),o.viewToModel.on('element:li',Mr),o.on('insertContent',$r,{priority:'high'}),e.commands.add('numberedList',new tk(e,'numbered')),e.commands.add('bulletedList',new tk(e,'bulleted')),e.commands.add('indentList',new ok(e,'forward')),e.commands.add('outdentList',new ok(e,'backward'))}}var rk=o(64),ak=o.n(rk),sk=o(65),lk=o.n(sk);class dk extends zg{static get requires(){return[ik]}static get pluginName(){return'List'}init(){const e=this.editor.t;this._addButton('numberedList',e('j'),ak.a),this._addButton('bulletedList',e('k'),lk.a),this.listenTo(this.editor.editing.view,'enter',(e,t)=>{const o=this.editor.document,n=o.selection.getLastPosition().parent;o.selection.isCollapsed&&'listItem'==n.name&&n.isEmpty&&(this.editor.execute('outdentList'),t.preventDefault(),e.stop())}),this.listenTo(this.editor.editing.view,'delete',(e,t)=>{if('backward'===t.direction){const o=this.editor.document.selection;if(o.isCollapsed){const n=o.getFirstPosition();if(n.isAtStart){const o=n.parent;if('listItem'===o.name){const n=o.previousSibling&&'listItem'===o.previousSibling.name;n||(this.editor.execute('outdentList'),t.preventDefault(),e.stop())}}}}},{priority:'high'});const t=(e)=>(t,o)=>{const n=this.editor.commands.get(e);n.isEnabled&&(this.editor.execute(e),o())};this.editor.keystrokes.set('Tab',t('indentList')),this.editor.keystrokes.set('Shift+Tab',t('outdentList'))}_addButton(e,t,o){const n=this.editor,i=n.commands.get(e);n.ui.componentFactory.add(e,(r)=>{const a=new bf(r);return a.set({label:t,icon:o,tooltip:!0}),a.bind('isOn','isEnabled').to(i,'value','isEnabled'),this.listenTo(a,'execute',()=>n.execute(e)),a})}}class ck extends Lg{}t['default']=ck,ck.build={plugins:[xf,Of,If,qf,Uf,eh,tb,_b,Lh,Eb,jb,qb,ek,dk,nb,eb],config:{toolbar:{items:['headings','bold','italic','link','bulletedList','numberedList','blockQuote','undo','redo']},image:{toolbar:['imageStyleFull','imageStyleSide','|','imageTextAlternative']},language:'en'}}},function(e){var t=function(){return this}();try{t=t||Function('return this')()||(1,eval)('this')}catch(o){'object'==typeof window&&(t=window)}e.exports=t},function(e,t){'use strict';t.a=function(e){return e&&e.Object===Object?e:null}},function(e,t,o){'use strict';(function(e){var n=o(7),i=o(1),r={function:!0,object:!0},a=r[typeof exports]&&exports&&!exports.nodeType?exports:void 0,s=r[typeof e]&&e&&!e.nodeType?e:void 0,l=s&&s.exports===a?a:void 0,d=l?i.a.Buffer:void 0,c=d?function(e){return e instanceof d}:Object(n.a)(!1);t.a=c}).call(t,o(2)(e))},function(e,t){'use strict';t.a=function(e){return function(){return e}}},function(e,t,o){var n=o(9);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-hidden{display:none!important}.ck-reset,.ck-reset_all,.ck-reset_all *{box-sizing:border-box;width:auto;height:auto;position:static}:root{--ck-z-default:1;--ck-z-modal:999;--ck-color-base-foreground:#f7f7f7;--ck-color-base-background:#fff;--ck-color-base-border:#bfbfbf;--ck-color-base-action:#61b045;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#198cf0;--ck-color-base-active-focus:#0e7fe1;--ck-color-focus-border:#47a4f5;--ck-color-focus-shadow:#77baf8;--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:var(--ck-color-base-background);--ck-color-button-default-border:var(--ck-color-base-border);--ck-color-button-default-focus-background:#e6e6e6;--ck-color-button-default-focus-border:#a6a6a6;--ck-color-button-default-active-background:#d9d9d9;--ck-color-button-default-active-border:#999;--ck-color-button-default-active-shadow:#bfbfbf;--ck-color-button-default-disabled-background:#fff;--ck-color-button-default-disabled-border:#c7c7c7;--ck-color-button-on-background:var(--ck-color-base-foreground);--ck-color-button-on-border:#b8b8b8;--ck-color-button-on-focus-background:#dedede;--ck-color-button-on-focus-border:#9e9e9e;--ck-color-button-on-active-background:#d1d1d1;--ck-color-button-on-active-border:#919191;--ck-color-button-on-active-shadow:#b8b8b8;--ck-color-button-on-disabled-background:#fff;--ck-color-button-on-disabled-border:#bfbfbf;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-border:#4f8f38;--ck-color-button-action-focus-background:#579e3d;--ck-color-button-action-focus-border:#478132;--ck-color-button-action-active-background:#53973b;--ck-color-button-action-active-border:#43792f;--ck-color-button-action-active-shadow:#498433;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-disabled-border:#4d8c36;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dropdown-symbol:#707070;--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:#c7c7c7;--ck-color-input-disabled-text:#5c5c5c;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-item-background-hover:var(--ck-color-base-foreground);--ck-color-list-item-background-active:var(--ck-color-base-active);--ck-color-list-item-background-active-focus:var(--ck-color-base-active-focus);--ck-color-list-item-text-active:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-editor-border:var(--ck-color-base-border);--ck-color-editor-toolbar-background:var(--ck-color-base-foreground);--ck-color-editor-toolbar-button-on-background:#dedede;--ck-color-editor-toolbar-button-on-border:transparent;--ck-color-editor-toolbar-button-on-focus-background:#c4c4c4;--ck-color-editor-toolbar-button-on-focus-border:transparent;--ck-color-editor-toolbar-button-on-active-background:#bababa;--ck-color-editor-toolbar-button-on-active-border:transparent;--ck-color-editor-toolbar-button-on-active-shadow:#a1a1a1;--ck-color-editor-toolbar-button-on-disabled-background:#dedede;--ck-color-editor-toolbar-button-on-disabled-border:transparent;--ck-color-editor-dropdown-background:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#c2c2c2;--ck-color-block-quote-border:#ccc;--ck-color-upload-bar-background:#6cb5f9;--ck-color-upload-infinite-background:rgba(0,0,0,.1);--ck-disabled-opacity:.5;--ck-focus-outer-shadow:0 0 3px 2px var(--ck-color-focus-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:12px;--ck-line-height-base:1.67;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em}.ck-reset,.ck-reset_all,.ck-reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;vertical-align:middle;transition:none;word-wrap:break-word}.ck-reset_all,.ck-reset_all *{border-collapse:collapse;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);color:var(--ck-color-text);text-align:left;white-space:nowrap;cursor:auto;float:none}.ck-reset_all .ck-rtl *{text-align:right}.ck-reset_all iframe{vertical-align:inherit}.ck-reset_all textarea{white-space:pre-wrap}.ck-reset_all input[type=password],.ck-reset_all input[type=text],.ck-reset_all textarea{cursor:text}.ck-reset_all input[type=password][disabled],.ck-reset_all input[type=text][disabled],.ck-reset_all textarea[disabled]{cursor:default}.ck-reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.ck-reset_all button::-moz-focus-inner{padding:0;border:0}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 0 var(--ck-color-shadow-drop);--ck-spacing-unit:0.8em;--ck-spacing-large:calc(var(--ck-spacing-unit) * 1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit) * 0.8);--ck-spacing-small:calc(var(--ck-spacing-unit) * 0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit) * 0.25)}'},function(e){e.exports=function(e){var t='undefined'!=typeof window&&window.location;if(!t)throw new Error('fixUrls requires window.location');if(!e||'string'!=typeof e)return e;var o=t.protocol+'//'+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,'/'),i=e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(i))return e;var r;return r=0===i.indexOf('//')?i:0===i.indexOf('/')?o+i:n+i.replace(/^\.\//,''),'url('+JSON.stringify(r)+')'});return i}},function(e,t,o){var n=o(12);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-editor__editable{border-radius:0}.ck-editor__editable.ck-rounded-corners,.ck-rounded-corners .ck-editor__editable{border-radius:var(--ck-border-radius)}.ck-editor__editable.ck-focused{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0}.ck-editor__editable_inline{overflow:auto;padding:0 var(--ck-spacing-standard);border:1px solid transparent}.ck-editor-toolbar .ck-button,.ck-editor-toolbar .ck-button:focus{border-width:0}.ck-editor-toolbar .ck-button.ck-disabled,.ck-editor-toolbar .ck-button:not(:hover):not(:focus):not(.ck-on){background:var(--ck-color-editor-toolbar-background)}.ck-editor-toolbar .ck-button.ck-on{background:var(--ck-color-editor-toolbar-button-on-background);border-color:var(--ck-color-editor-toolbar-button-on-border)}.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):focus,.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-editor-toolbar-button-on-focus-background);border-color:var(--ck-color-editor-toolbar-button-on-focus-border)}.ck-editor-toolbar .ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-editor-toolbar-button-on-active-background);border-color:var(--ck-color-editor-toolbar-button-on-active-border);box-shadow:inset 0 2px 2px var(--ck-color-editor-toolbar-button-on-active-shadow)}.ck-editor-toolbar .ck-button.ck-on.ck-disabled{background:var(--ck-color-editor-toolbar-button-on-disabled-background);border-color:var(--ck-color-editor-toolbar-button-on-disabled-border)}.ck-editor-toolbar .ck-button.ck-dropdown__button{border-width:1px}.ck-editor-toolbar .ck-button.ck-dropdown__button:not(:hover):not(:focus):not(.ck-on){background:var(--ck-color-editor-dropdown-background)}.ck-toolbar-container .ck-editor-toolbar{background:var(--ck-color-editor-toolbar-background)}.ck-toolbar-container.ck-editor-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-editor-toolbar-background)}.ck-toolbar-container.ck-editor-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-editor-toolbar-background)}'},function(e,t,o){var n=o(14);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-z-default)}.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-z-default) + 1)}.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-z-default)}.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-z-default) + 1)}.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-z-default)}.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-z-default) + 1)}.ck-balloon-panel_visible{display:block}:root{--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:15px;--ck-balloon-arrow-half-width:10px}.ck-balloon-panel{border-radius:0}.ck-balloon-panel.ck-rounded-corners,.ck-rounded-corners .ck-balloon-panel{border-radius:var(--ck-border-radius)}.ck-balloon-panel{box-shadow:var(--ck-drop-shadow),0 0;min-height:15px;background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border)}.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck-balloon-panel.ck-balloon-panel_with-arrow:before{width:0;height:0;border-style:solid}.ck-balloon-panel[class*=arrow_n]:after,.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border)}.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background);margin-top:var(--ck-balloon-arrow-offset)}.ck-balloon-panel[class*=arrow_s]:after,.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent}.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent;margin-bottom:var(--ck-balloon-arrow-offset)}.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(-1 * var(--ck-balloon-arrow-half-width));top:calc(-1 * var(--ck-balloon-arrow-height))}.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(2 * var(--ck-balloon-arrow-half-width));top:calc(-1 * var(--ck-balloon-arrow-height))}.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(2 * var(--ck-balloon-arrow-half-width));top:calc(-1 * var(--ck-balloon-arrow-height))}.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck-balloon-panel.ck-balloon-panel_arrow_s:before{left:50%;margin-left:calc(-1 * var(--ck-balloon-arrow-half-width));bottom:calc(-1 * var(--ck-balloon-arrow-height))}.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{left:calc(2 * var(--ck-balloon-arrow-half-width));bottom:calc(-1 * var(--ck-balloon-arrow-height))}.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck-balloon-panel.ck-balloon-panel_arrow_se:before{right:calc(2 * var(--ck-balloon-arrow-half-width));bottom:calc(-1 * var(--ck-balloon-arrow-height))}'},function(e,t,o){var n=o(16);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-toolbar{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck-toolbar__separator{display:inline-block}.ck-toolbar__newline{display:block;clear:left}.ck-toolbar{border-radius:0}.ck-rounded-corners .ck-toolbar,.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-toolbar{padding:var(--ck-spacing-small);border:1px solid var(--ck-color-toolbar-border);white-space:normal}.ck-toolbar>*{margin-right:var(--ck-spacing-small)}.ck-toolbar>:last-child{margin-right:0}.ck-toolbar-container .ck-toolbar{border:0}.ck-toolbar_floating{white-space:nowrap}.ck-toolbar__separator{width:1px;height:calc(1em + 2 * var(--ck-spacing-medium));vertical-align:middle;background:var(--ck-color-toolbar-border)}.ck-toolbar__newline{height:var(--ck-spacing-small)}'},function(e,t,o){var n=o(18);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='svg.ck-icon{font-size:1em;vertical-align:middle}svg.ck-icon,svg.ck-icon *{color:inherit;cursor:inherit}svg.ck-icon *{fill:currentColor}:root{--ck-icon-min-size:calc(var(--ck-font-size-base) * var(--ck-line-height-base))}svg.ck-icon{width:calc(var(--ck-line-height-base) * var(--ck-font-size-normal));height:calc(var(--ck-line-height-base) * var(--ck-font-size-normal));min-width:var(--ck-icon-min-size);min-height:var(--ck-icon-min-size)}'},function(e,t,o){var n=o(20);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-tooltip,.ck-tooltip__text:after{position:absolute;pointer-events:none;-webkit-backface-visibility:hidden}.ck-tooltip{visibility:hidden;opacity:0;display:none;z-index:var(--ck-z-modal)}.ck-tooltip__text{display:inline-block}.ck-tooltip__text:after{content:"";width:0;height:0}:root{--ck-tooltip-arrow-size:5px}.ck-tooltip{left:50%}.ck-tooltip.ck-tooltip_s{bottom:calc(-1 * var(--ck-tooltip-arrow-size));transform:translateY(100%)}.ck-tooltip.ck-tooltip_s .ck-tooltip__text:after{top:calc(-1 * var(--ck-tooltip-arrow-size));transform:translateX(-50%);border-color:transparent transparent var(--ck-color-tooltip-background);border-width:0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size)}.ck-tooltip.ck-tooltip_n{top:calc(-1 * var(--ck-tooltip-arrow-size));transform:translateY(-100%)}.ck-tooltip.ck-tooltip_n .ck-tooltip__text:after{bottom:calc(-1 * var(--ck-tooltip-arrow-size));transform:translateX(-50%);border-color:var(--ck-color-tooltip-background) transparent transparent;border-width:var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0}.ck-tooltip__text{border-radius:0}.ck-rounded-corners .ck-tooltip__text,.ck-tooltip__text.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-tooltip__text{font-size:.9em;line-height:1.5;color:var(--ck-color-tooltip-text);padding:var(--ck-spacing-small) var(--ck-spacing-medium);background:var(--ck-color-tooltip-background);position:relative;left:-50%}.ck-tooltip__text:after{border-style:solid;left:50%}.ck-tooltip,.ck-tooltip__text:after{transition:opacity .2s ease-in-out .2s}'},function(e,t,o){var n=o(22);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-button,a.ck-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck-button .ck-tooltip,a.ck-button .ck-tooltip{display:block}.ck-button,a.ck-button{display:inline-block;position:relative}.ck-button:hover .ck-tooltip,a.ck-button:hover .ck-tooltip{visibility:visible;opacity:1}.ck-button .ck-button__label,.ck-button:focus:not(:hover) .ck-tooltip,a.ck-button .ck-button__label,a.ck-button:focus:not(:hover) .ck-tooltip{display:none}.ck-button,a.ck-button{background:var(--ck-color-button-default-background);border-color:var(--ck-color-button-default-border)}.ck-button:not(.ck-disabled):focus,.ck-button:not(.ck-disabled):hover,a.ck-button:not(.ck-disabled):focus,a.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-focus-background);border-color:var(--ck-color-button-default-focus-border)}.ck-button:not(.ck-disabled):active,a.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background);border-color:var(--ck-color-button-default-active-border);box-shadow:inset 0 2px 2px var(--ck-color-button-default-active-shadow)}.ck-button.ck-disabled,a.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background);border-color:var(--ck-color-button-default-disabled-border)}.ck-button,a.ck-button{border-radius:0}.ck-button.ck-rounded-corners,.ck-rounded-corners .ck-button,.ck-rounded-corners a.ck-button,a.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-button,a.ck-button{border-width:1px;border-style:solid;white-space:nowrap;cursor:default;vertical-align:middle;padding:var(--ck-spacing-small);font-size:inherit}.ck-button:focus,a.ck-button:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0}.ck-button .ck-icon,a.ck-button .ck-icon{float:left}.ck-button.ck-disabled .ck-icon,a.ck-button.ck-disabled .ck-icon{opacity:var(--ck-disabled-opacity)}.ck-button.ck-disabled .ck-button__label,a.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck-button.ck-button_with-text,a.ck-button.ck-button_with-text{padding:var(--ck-spacing-small) var(--ck-spacing-standard)}.ck-button.ck-button_with-text .ck-icon,a.ck-button.ck-button_with-text .ck-icon{margin-left:calc(-1 * var(--ck-spacing-small));margin-right:var(--ck-spacing-small)}.ck-button.ck-button_with-text .ck-button__label,a.ck-button.ck-button_with-text .ck-button__label{display:block}.ck-button.ck-on,a.ck-button.ck-on{background:var(--ck-color-button-on-background);border-color:var(--ck-color-button-on-border)}.ck-button.ck-on:not(.ck-disabled):focus,.ck-button.ck-on:not(.ck-disabled):hover,a.ck-button.ck-on:not(.ck-disabled):focus,a.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-focus-background);border-color:var(--ck-color-button-on-focus-border)}.ck-button.ck-on:not(.ck-disabled):active,a.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background);border-color:var(--ck-color-button-on-active-border);box-shadow:inset 0 2px 2px var(--ck-color-button-on-active-shadow)}.ck-button.ck-on.ck-disabled,a.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background);border-color:var(--ck-color-button-on-disabled-border)}.ck-button .ck-icon,a.ck-button .ck-icon{use,use *{color:inherit}}.ck-button .ck-button__label,a.ck-button .ck-button__label{font-size:inherit;float:left;height:var(--ck-line-height-base)em;line-height:inherit;font-weight:inherit;color:inherit;cursor:inherit}.ck-button-action,a.ck-button-action{background:var(--ck-color-button-action-background);border-color:var(--ck-color-button-action-border)}.ck-button-action:not(.ck-disabled):focus,.ck-button-action:not(.ck-disabled):hover,a.ck-button-action:not(.ck-disabled):focus,a.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-focus-background);border-color:var(--ck-color-button-action-focus-border)}.ck-button-action:not(.ck-disabled):active,a.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background);border-color:var(--ck-color-button-action-active-border);box-shadow:inset 0 2px 2px var(--ck-color-button-action-active-shadow)}.ck-button-action.ck-disabled,a.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background);border-color:var(--ck-color-button-action-disabled-border)}.ck-button-action,a.ck-button-action{text-shadow:0 -1px var(--ck-color-button-action-border);color:var(--ck-color-button-action-text)}.ck-button-action:active,.ck-button-action:focus,.ck-button-action:hover,a.ck-button-action:active,a.ck-button-action:focus,a.ck-button-action:hover{text-shadow:0 -1px var(--ck-color-button-action-active-border)}.ck-button-bold,a.ck-button-bold{font-weight:700}'},function(e){e.exports=''},function(e){e.exports=''},function(e){e.exports=''},function(e){e.exports=''},function(e){e.exports=''},function(e,t,o){var n=o(29);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='blockquote{overflow:hidden}:root{--ck-block-quote-border-width:5px;--ck-block-quote-padding:20px}blockquote{border-left:solid 5px var(--ck-color-block-quote-border);padding-left:var(--ck-block-quote-padding);margin-left:0;font-style:italic}'},function(e,t,o){var n=o(31);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports=':root{--ck-widget-outline-thickness:3px;--ck-color-widget-border-blurred:#ddd;--ck-color-widget-border-hover:#ffd25c;--ck-color-widget-editable-focused-background:var(--ck-color-base-background),}.ck-widget{margin:var(--ck-spacing-standard) 0;padding:0}.ck-widget.ck-widget_selected,.ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-widget-border-blurred)}.ck-widget:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-widget-border-hover)}.ck-widget .ck-editable{border:1px solid transparent}.ck-widget .ck-editable.ck-editable_focused,.ck-widget .ck-editable:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;background-color:var(--ck-color-widget-editable-focused-background)}'},function(e,t,o){var n=o(33);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-label{display:block}.cke-voice-label{display:none}.ck-label{font-weight:700}'},function(e,t,o){var n=o(35);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports=':root{--ck-input-text-min-width:21em}.ck-input-text{border-radius:0}.ck-input-text.ck-rounded-corners,.ck-rounded-corners .ck-input-text{border-radius:var(--ck-border-radius)}.ck-input-text{box-shadow:var(--ck-inner-shadow),0 0;background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);padding:var(--ck-spacing-small) var(--ck-spacing-medium);min-width:var(--ck-input-text-min-width)}.ck-input-text:focus{outline:none;border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),var(--ck-inner-shadow)}.ck-input-text[readonly]{border:1px solid var(--ck-color-input-disabled-border);background:var(--ck-color-input-disabled-background);color:var(--ck-color-input-disabled-text)}'},function(e,t,o){var n=o(37);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.cke-text-alternative-form{overflow:hidden}.cke-text-alternative-form__actions{clear:both}.cke-text-alternative-form__actions .ck-button{float:right}.cke-text-alternative-form__actions .ck-button+.ck-button+.ck-button{float:left}.cke-text-alternative-form{padding:var(--ck-spacing-large)}.cke-text-alternative-form:focus{outline:none}.cke-text-alternative-form .ck-label{margin-bottom:var(--ck-spacing-small)}.cke-text-alternative-form__actions{padding-top:var(--ck-spacing-large)}.cke-text-alternative-form__actions .ck-button+.ck-button{margin-right:var(--ck-spacing-medium)}'},function(e){e.exports=''},function(e,t,o){var n=o(40);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-editor__editable .image{clear:both}.ck-editor__editable .image>img{display:block}.ck-editor__editable .image{text-align:center}.ck-editor__editable .image>img{margin:0 auto;max-width:100%}'},function(e){e.exports=''},function(e){e.exports='Uploading image\u2026\n'},function(e,t,o){var n=o(44);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='figure.image{position:relative;overflow:hidden}figure.image.ck-infinite-progress:before{content:"";position:absolute;top:0;right:0}figure.image .ck-progress-bar{position:absolute;top:0;left:0}:root{--ck-image-upload-progress-line-width:30px}figure.image.ck-appear{animation:a .7s}figure.image.ck-infinite-progress:before{width:var(--ck-image-upload-progress-line-width);height:2px;background:var(--ck-color-upload-infinite-background);animation-name:b;animation-duration:1.5s;animation-iteration-count:infinite;transition-timing-function:linear}figure.image.ck-image-upload-placeholder>img{width:100%}figure.image .ck-progress-bar{height:2px;width:0;background:var(--ck-color-upload-bar-background);transition:width .1s}@keyframes a{0%{opacity:0}to{opacity:1}}@keyframes b{0%{width:var(--ck-image-upload-progress-line-width);right:0}50%{width:calc(var(--ck-image-upload-progress-line-width) * 1.5)}to{right:100%}}'},function(e,t,o){var n=o(46);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-list{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}.ck-list__item{display:block}.ck-list__item:focus{position:relative;z-index:var(--ck-z-default)}.ck-list{border-radius:0}.ck-list.ck-rounded-corners,.ck-rounded-corners .ck-list{border-radius:var(--ck-border-radius)}.ck-list{list-style-type:none;background:var(--ck-color-list-background)}.ck-list__item{padding:var(--ck-spacing-medium);cursor:default;min-width:12em}.ck-list__item:focus,.ck-list__item:hover{background:var(--ck-color-list-item-background-hover)}.ck-list__item:focus{box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck-list__item_active{background:var(--ck-color-list-item-background-active);color:var(--ck-color-list-item-text-active)}.ck-list__item_active:focus,.ck-list__item_active:hover{background:var(--ck-color-list-item-background-active-focus)}'},function(e,t,o){var n=o(48);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-dropdown{display:inline-block;position:relative}.ck-dropdown:after{content:"";width:0;height:0;pointer-events:none;z-index:var(--ck-z-default);position:absolute;top:50%;transform:translateY(-50%)}.ck-dropdown__panel{-webkit-backface-visibility:hidden;display:none;z-index:var(--ck-z-modal);position:absolute;left:0;transform:translateY(100%)}.ck-dropdown__panel-visible{display:inline-block}.ck-dropdown{font-size:inherit}.ck-dropdown:after{border-style:solid;border-width:.4em .4em 0;border-color:var(--ck-color-dropdown-symbol) transparent;right:var(--ck-spacing-standard)}.ck-dropdown .ck-button.ck-dropdown__button{padding-right:calc(2 * var(--ck-spacing-standard))}.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:7em;overflow:hidden;text-overflow:ellipsis}.ck-dropdown__panel{border-radius:0}.ck-dropdown__panel.ck-rounded-corners,.ck-rounded-corners .ck-dropdown__panel{border-radius:var(--ck-border-radius)}.ck-dropdown__panel{box-shadow:var(--ck-drop-shadow),0 0;background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:1px}'},function(e,t,o){var n=o(50);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-heading_heading1{font-size:calc(var(--ck-font-size-normal) * 1.5)}.ck-heading_heading2{font-size:calc(var(--ck-font-size-normal) * 1.3)}.ck-heading_heading3{font-size:calc(var(--ck-font-size-normal) * 1.1)}[class*=ck-heading_]{line-height:calc(1.8 * var(--ck-font-size-base));padding:calc(.8 * var(--ck-font-size-base))}[class*=ck-heading_heading]{font-weight:700}.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}'},function(e,t,o){var n=o(52);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-placeholder:before{content:attr(data-placeholder);pointer-events:none;cursor:text;color:var(--ck-color-engine-placeholder-text)}'},function(e,t,o){var n=o(54);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports=':root{--ck-color-image-caption-background:var(--ck-color-base-foreground);--ck-color-image-caption-text:var(--ck-color-base-text)}.ck-editor__editable .image>figcaption{color:var(--ck-color-image-caption-text);background-color:var(--ck-color-image-caption-background);padding:var(--ck-spacing-standard);font-size:var(--ck-font-size-small);outline-offset:-1px}'},function(e){e.exports=''},function(e){e.exports=''},function(e){e.exports=''},function(e){e.exports=''},function(e,t,o){var n=o(60);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports=':root{--ck-image-spacing:calc(5 * var(--ck-spacing-small));--ck-image-max-width:50%}.ck-editor__editable .image-style-align-center,.ck-editor__editable .image-style-align-left,.ck-editor__editable .image-style-align-right,.ck-editor__editable .image-style-side{max-width:var(--ck-image-max-width)}.ck-editor__editable .image-style-side{float:right;margin-left:var(--ck-image-spacing)}.ck-editor__editable .image-style-align-left{float:left;margin-right:var(--ck-image-spacing)}.ck-editor__editable .image-style-align-center{margin-left:auto;margin-right:auto}.ck-editor__editable .image-style-align-right{float:right;margin-left:var(--ck-image-spacing)}'},function(e,t,o){var n=o(62);'string'==typeof n&&(n=[[e.i,n,'']]);var i={singleton:!0},r;i.transform=r;o(0)(n,i);n.locals&&(e.exports=n.locals),!1},function(e){e.exports='.ck-link-form{overflow:hidden}.ck-link-form__actions{clear:both}.ck-link-form__actions .ck-button{float:right}.ck-link-form__actions .ck-button:last-child{float:left}.ck-link-form{padding:var(--ck-spacing-large)}.ck-link-form:focus{outline:none}.ck-link-form .ck-input-text{width:100%}.ck-link-form .ck-label{margin-bottom:var(--ck-spacing-tiny)}.ck-link-form__actions{padding-top:var(--ck-spacing-large)}.ck-link-form__actions .ck-button+.ck-button{margin-right:var(--ck-spacing-medium)}.ck-link-form__actions .ck-button:last-child{margin-right:calc(4 * var(--ck-spacing-medium))}'},function(e){e.exports=''},function(e){e.exports=''},function(e){e.exports=''}])['default']}); //# sourceMappingURL=ckeditor.js.map ;CKEDITOR_TRANSLATIONS.add('en',{a:"Bold",b:"Italic",c:"Block quote",d:"Choose heading",e:"Heading",f:"Paragraph",g:"Heading 1",h:"Heading 2",i:"Heading 3",j:"Numbered List",k:"Bulleted List",l:"Link",m:"Cannot upload file:",n:"Change image text alternative",o:"image widget",p:"Enter image caption",q:"Full size image",r:"Side image",s:"Left aligned image",t:"Centered image",u:"Right aligned image",v:"Insert image",w:"Save",x:"Cancel",y:"Unlink",z:"Link URL",aa:"Text alternative",ab:"Upload failed",ac:"Undo",ad:"Redo",ae:"Rich Text Editor, %0"})