diff --git a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts index e2d605349d82..840d6f5945af 100644 --- a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts +++ b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts @@ -91,7 +91,9 @@ export class WorkPackageQuickinfoMacroComponent implements OnInit { ngOnInit() { const element = this.elementRef.nativeElement as HTMLElement; - const id:string = element.dataset.id!; + // Prefer `data-display-id`; fall back to `data-id` for legacy + // stored markdown emitted before the attribute split. + const id:string = element.dataset.displayId ?? element.dataset.id!; this.detailed = element.dataset.detailed === 'true'; this.workPackageHoverCardUrl = this.pathHelper.workPackageHoverCardPath(id); diff --git a/frontend/src/vendor/ckeditor/ckeditor.js b/frontend/src/vendor/ckeditor/ckeditor.js index 9eade6d6bbc7..1c2d1da000a7 100644 --- a/frontend/src/vendor/ckeditor/ckeditor.js +++ b/frontend/src/vendor/ckeditor/ckeditor.js @@ -2,5 +2,5 @@ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. 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.OPEditor=t():e.OPEditor=t()}(self,(()=>(()=>{var e={428:e=>{var t=!0,o=!1,i=!1;function n(e,t,o){var i=e.attrIndex(t),n=[t,o];i<0?e.attrPush(n):e.attrs[i]=n}function s(e,t){for(var o=e[t].level-1,i=t-1;i>=0;i--)if(e[i].level===o)return i;return-1}function r(e,t){return"inline"===e[t].type&&function(e){return"paragraph_open"===e.type}(e[t-1])&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function a(e,n){if(e.children.unshift(function(e,o){var i=new o("html_inline","",0),n=t?' disabled="" ':"";0===e.content.indexOf("[ ] ")?i.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(i.content='');return i}(e,n)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),o)if(i){e.children.pop();var s="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+s+'">',e.children.push(function(e,t,o){var i=new o("html_inline","",0);return i.content='",i.attrs=[{for:t}],i}(e.content,s,n))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(n))}e.exports=function(e,l){l&&(t=!l.enabled,o=!!l.label,i=!!l.labelAfter),e.core.ruler.after("inline","github-task-lists",(function(e){for(var o=e.tokens,i=2;i{var i,n=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,t){if(!i[e]){i[e]={};for(var o=0;o>>8,o[2*i+1]=r%256}return o},decompressFromUint8Array:function(t){if(null==t)return s.decompress(t);for(var o=new Array(t.length/2),i=0,n=o.length;i>=1}else{for(n=1,i=0;i>=1}0==--u&&(u=Math.pow(2,m),m++),delete a[d]}else for(n=r[d],i=0;i>=1;0==--u&&(u=Math.pow(2,m),m++),r[c]=h++,d=String(l)}if(""!==d){if(Object.prototype.hasOwnProperty.call(a,d)){if(d.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--u&&(u=Math.pow(2,m),m++),delete a[d]}else for(n=r[d],i=0;i>=1;0==--u&&(u=Math.pow(2,m),m++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,f==t-1){g.push(o(p));break}f++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:s._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,o,i){var n,s,r,a,l,c,d,u=[],h=4,m=4,g=3,p="",f=[],b={val:i(0),position:o,index:1};for(n=0;n<3;n+=1)u[n]=n;for(r=0,l=Math.pow(2,2),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;switch(r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 2:return""}for(u[3]=d,s=d,f.push(d);;){if(b.index>t)return"";for(r=0,l=Math.pow(2,g),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;switch(d=r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;u[m++]=e(r),d=m-1,h--;break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;u[m++]=e(r),d=m-1,h--;break;case 2:return f.join("")}if(0==h&&(h=Math.pow(2,g),g++),u[d])p=u[d];else{if(d!==m)return null;p=s+s.charAt(0)}f.push(p),u[m++]=s+p.charAt(0),s=p,0==--h&&(h=Math.pow(2,g),g++)}}};return s}();void 0===(i=function(){return n}.call(t,o,t,e))||(e.exports=i)}},t={};function o(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,o),s.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";var e={};o.r(e),o.d(e,{decode:()=>qx,encode:()=>Wx,format:()=>Ux,parse:()=>sE});var t={};o.r(t),o.d(t,{Any:()=>lE,Cc:()=>cE,Cf:()=>dE,P:()=>rE,S:()=>aE,Z:()=>uE});var i={};o.r(i),o.d(i,{arrayReplaceAt:()=>LE,assign:()=>BE,escapeHtml:()=>QE,escapeRE:()=>XE,fromCodePoint:()=>jE,has:()=>NE,isMdAsciiPunct:()=>iT,isPunctChar:()=>oT,isSpace:()=>eT,isString:()=>FE,isValidEntityCode:()=>zE,isWhiteSpace:()=>tT,lib:()=>sT,normalizeReference:()=>nT,unescapeAll:()=>UE,unescapeMd:()=>WE});var n={};function s(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function r(e){return"string"==typeof e||e instanceof String}function a(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];if(null==t)return!1;return!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function l(e){return Object.getOwnPropertySymbols(e).filter((t=>Object.prototype.propertyIsEnumerable.call(e,t)))}function c(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}o.r(n),o.d(n,{parseLinkDestination:()=>aT,parseLinkLabel:()=>rT,parseLinkTitle:()=>lT});const d="[object RegExp]",u="[object String]",h="[object Number]",m="[object Boolean]",g="[object Arguments]",p="[object Symbol]",f="[object Date]",b="[object Map]",w="[object Set]",y="[object Array]",k="[object ArrayBuffer]",v="[object Object]",C="[object DataView]",A="[object Uint8Array]",x="[object Uint8ClampedArray]",E="[object Uint16Array]",T="[object Uint32Array]",P="[object Int8Array]",S="[object Int16Array]",I="[object Int32Array]",R="[object Float32Array]",O="[object Float64Array]";function V(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function D(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function F(e,t,o,i=new Map,n=void 0){const s=n?.(e,t,o,i);if(void 0!==s)return s;if(V(e))return e;if(i.has(e))return i.get(e);if(Array.isArray(e)){const t=new Array(e.length);i.set(e,t);for(let s=0;s{const r=t?.(o,i,n,s);if(void 0!==r)return r;if("object"==typeof e){if(c(e)===v&&"function"!=typeof e.constructor){const t={};return s.set(e,t),M(t,e,n,s),t}switch(Object.prototype.toString.call(e)){case h:case u:case m:{const t=new e.constructor(e?.valueOf());return M(t,e),t}case g:{const t={};return M(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}}))}function B(e){return"object"==typeof e&&null!==e}function L(e){return B(e)&&1===e.nodeType&&!a(e)}function z(e){return"function"==typeof e}function j(e){return N(e)}function q(e){return"__proto__"===e}function $(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===c(e)}function H(e){return null!=e&&"function"!=typeof e&&function(e){return Number.isSafeInteger(e)&&e>=0}(e.length)}function W(e){return D(e)}function U(e,t,o,i){if(V(e)&&(e=Object(e)),null==t||"object"!=typeof t)return e;if(i.has(t))return function(e){if(V(e))return e;if(Array.isArray(e)||D(e)||e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);const t=Object.getPrototypeOf(e);if(null==t)return Object.assign(Object.create(t),e);const o=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new o(e);if(e instanceof RegExp){const t=new o(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new o(e.buffer.slice(0));if(e instanceof Error){let t;return t=e instanceof AggregateError?new o(e.errors,e.message,{cause:e.cause}):new o(e.message,{cause:e.cause}),t.stack=e.stack,Object.assign(t,e),t}if("undefined"!=typeof File&&e instanceof File)return new o([e],e.name,{type:e.type,lastModified:e.lastModified});if("object"==typeof e){const o=Object.create(t);return Object.assign(o,e)}return e}(i.get(t));if(i.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e-1}function ee(e){return e.indexOf("windows")>-1}function te(e){return!!e.match(/gecko\/\d+/)}function oe(e){return e.indexOf(" applewebkit/")>-1&&-1===e.indexOf("chrome")}function ie(e){return!!e.match(/iphone|ipad/i)||X(e)&&navigator.maxTouchPoints>0}function ne(e){return e.indexOf("android")>-1}function se(e){return e.indexOf("chrome/")>-1&&e.indexOf("edge/")<0}function re(){let e=!1;try{e=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch{}return e}function ae(e,t,o,i){o=o||function(e,t){return e===t};const n=Array.isArray(e)?e:Array.prototype.slice.call(e),s=Array.isArray(t)?t:Array.prototype.slice.call(t),r=function(e,t,o){const i=le(e,t,o);if(-1===i)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const n=ce(e,i),s=ce(t,i),r=le(n,s,o),a=e.length-r,l=t.length-r;return{firstIndex:i,lastIndexOld:a,lastIndexNew:l}}(n,s,o),a=i?function(e,t){const{firstIndex:o,lastIndexOld:i,lastIndexNew:n}=e;if(-1===o)return Array(t).fill("equal");let s=[];o>0&&(s=s.concat(Array(o).fill("equal")));n-o>0&&(s=s.concat(Array(n-o).fill("insert")));i-o>0&&(s=s.concat(Array(i-o).fill("delete")));n0&&o.push({index:i,type:"insert",values:e.slice(i,s)});n-i>0&&o.push({index:i+(s-i),type:"delete",howMany:n-i});return o}(s,r);return a}function le(e,t,o){for(let i=0;i200||n>200||i+n>300)return de.fastDiff(e,t,o,!0);let s,r;if(nc?-1:1;d[i+h]&&(d[i]=d[i+h].slice(0)),d[i]||(d[i]=[]),d[i].push(n>c?s:r);let m=Math.max(n,c),g=m-i;for(;gc;m--)u[m]=h(m);u[c]=h(c),g++}while(u[c]!==l);return d[c].slice(1)}de.fastDiff=ae;class ue{source;name;path;stop;off;return;constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=function e(){e.called=!0},this.off=function e(){e.called=!0}}}const he=new Array(256).fill("").map(((e,t)=>("0"+t.toString(16)).slice(-2)));function me(){const[e,t,o,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+he[255&e]+he[e>>8&255]+he[e>>16&255]+he[e>>24&255]+he[255&t]+he[t>>8&255]+he[t>>16&255]+he[t>>24&255]+he[255&o]+he[o>>8&255]+he[o>>16&255]+he[o>>24&255]+he[255&i]+he[i>>8&255]+he[i>>16&255]+he[i>>24&255]}const ge={get(e="normal"){return"number"!=typeof e?this[e]||this.normal:e},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function pe(e,t){const o=ge.get(t.priority);let i=0,n=e.length;for(;i>1;ge.get(e[t].priority){if("object"==typeof t&&null!==t){if(i.has(t))return`[object ${t.constructor.name}]`;i.add(t)}return t},s=t?` ${JSON.stringify(t,n)}`:"",r=we(e),a=o?`\nOriginal error: ${o.name}: ${o.message}`:"";return e+s+r+a}(e,o,i)),this.name="CKEditorError",this.context=t,this.data=o,i&&(this.stack=i.stack)}is(e){return"CKEditorError"===e}static rethrowUnexpectedError(e,t){if(e.is&&e.is("CKEditorError"))throw e;throw new fe("unexpected-error",t,void 0,e)}}function be(e,t){console.warn(...ye(e,t))}function we(e){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${e}`}function ye(e,t){const o=we(e);return t?[e,t,o]:[e,o]}const _e=new Date(2026,2,31);if(globalThis.CKEDITOR_VERSION)throw new fe("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION="48.0.0";const ke=Symbol("listeningTo"),ve=Symbol("emitterId"),Ce=Symbol("delegations"),Ae=xe(Object);function xe(e){if(!e)return Ae;return class extends e{on(e,t,o){this.listenTo(this,e,t,o)}once(e,t,o){let i=!1;this.listenTo(this,e,((e,...o)=>{i||(i=!0,e.off(),t.call(this,e,...o))}),o)}off(e,t){this.stopListening(this,e,t)}listenTo(e,t,o,i={}){let n,s;this[ke]||(this[ke]={});const r=this[ke];Te(e)||Ee(e);const a=Te(e);(n=r[a])||(n=r[a]={emitter:e,callbacks:{}}),(s=n.callbacks[t])||(s=n.callbacks[t]=[]),s.push(o),function(e,t,o,i,n){t._addEventListener?t._addEventListener(o,i,n):e._addEventListener.call(t,o,i,n)}(this,e,t,o,i)}stopListening(e,t,o){const i=this[ke];let n=e&&Te(e);const s=i&&n?i[n]:void 0,r=s&&t?s.callbacks[t]:void 0;if(!(!i||e&&!s||t&&!r))if(o){Re(this,e,t,o);-1!==r.indexOf(o)&&(1===r.length?delete s.callbacks[t]:Re(this,e,t,o))}else if(r){for(;o=r.pop();)Re(this,e,t,o);delete s.callbacks[t]}else if(s){for(t in s.callbacks)this.stopListening(e,t);delete i[n]}else{for(n in i)this.stopListening(i[n].emitter);delete this[ke]}}fire(e,...t){try{const o=e instanceof ue?e:new ue(this,e),i=o.name;let n=function(e,t){if(!e._events)return null;let o=t;do{const t=e._events[o];if(t&&t.callbacks&&t.callbacks.length)return t.callbacks;const i=o.lastIndexOf(":");o=i>-1?o.substring(0,i):""}while(o);return null}(this,i);if(o.path.push(this),n){n=n.slice();for(let e=0;e{this[Ce]||(this[Ce]=new Map),e.forEach((e=>{const i=this[Ce].get(e);i?i.set(t,o):this[Ce].set(e,new Map([[t,o]]))}))}}}stopDelegating(e,t){if(this[Ce])if(e)if(t){const o=this[Ce].get(e);o&&o.delete(t)}else this[Ce].delete(e);else this[Ce].clear()}_addEventListener(e,t,o){!function(e,t){const o=Pe(e);if(o[t])return;let i=t,n=null;const s=[];for(;""!==i&&!o[i];)o[i]={callbacks:[],childEvents:[]},s.push(o[i]),n&&o[i].childEvents.push(n),n=i,i=i.substr(0,i.lastIndexOf(":"));if(""!==i){for(const e of s)e.callbacks=o[i].callbacks.slice();o[i].childEvents.push(n)}}(this,e);const i=Se(this,e),n={callback:t,priority:ge.get(o.priority)};for(const e of i)pe(e,n)}_removeEventListener(e,t){const o=Se(this,e);for(const e of o)for(let o=0;o{this.set(t,e[t])}),this);Le(this);const o=this[Oe];if(e in this&&!o.has(e))throw new fe("observable-set-cannot-override",this);Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get:()=>o.get(e),set(t){const i=o.get(e);let n=this.fire(`set:${e}`,e,t,i);void 0===n&&(n=t),i===n&&o.has(e)||(o.set(e,n),this.fire(`change:${e}`,e,n,i))}}),this[e]=t}bind(...e){if(!e.length||!qe(e))throw new fe("observable-bind-wrong-properties",this);if(new Set(e).size!==e.length)throw new fe("observable-bind-duplicate-properties",this);Le(this);const t=this[De];e.forEach((e=>{if(t.has(e))throw new fe("observable-bind-rebind",this)}));const o=new Map;return e.forEach((e=>{const i={property:e,to:[]};t.set(e,i),o.set(e,i)})),{to:ze,toMany:je,_observable:this,_bindProperties:e,_to:[],_bindings:o}}unbind(...e){if(!this[Oe])return;const t=this[De],o=this[Ve];if(e.length){if(!qe(e))throw new fe("observable-unbind-wrong-properties",this);e.forEach((e=>{const i=t.get(e);i&&(i.to.forEach((([e,t])=>{const n=o.get(e),s=n[t];s.delete(i),s.size||delete n[t],Object.keys(n).length||(o.delete(e),this.stopListening(e,"change"))})),t.delete(e))}))}else o.forEach(((e,t)=>{this.stopListening(t,"change")})),o.clear(),t.clear()}decorate(e){Le(this);const t=this[e];if(!t)throw new fe("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:e});this.on(e,((e,o)=>{e.return=t.apply(this,o)})),this[e]=function(...t){return this.fire(e,t)},this[e][Me]=t,this[Fe]||(this[Fe]=[]),this[Fe].push(e)}stopListening(e,t,o){if(!e&&this[Fe]){for(const e of this[Fe])this[e]=this[e][Me];delete this[Fe]}super.stopListening(e,t,o)}[Oe];[Fe];[De];[Ve]}}function Le(e){e[Oe]||(Object.defineProperty(e,Oe,{value:new Map}),Object.defineProperty(e,Ve,{value:new Map}),Object.defineProperty(e,De,{value:new Map}))}function ze(...e){const t=function(...e){if(!e.length)throw new fe("observable-bind-to-parse-error",null);const t={to:[]};let o;"function"==typeof e[e.length-1]&&(t.callback=e.pop());return e.forEach((e=>{if("string"==typeof e)o.properties.push(e);else{if("object"!=typeof e)throw new fe("observable-bind-to-parse-error",null);o={observable:e,properties:[]},t.to.push(o)}})),t}(...e),o=Array.from(this._bindings.keys()),i=o.length;if(!t.callback&&t.to.length>1)throw new fe("observable-bind-to-no-callback",this);if(i>1&&t.callback)throw new fe("observable-bind-to-extra-callback",this);var n;t.to.forEach((e=>{if(e.properties.length&&e.properties.length!==i)throw new fe("observable-bind-to-properties-length",this);e.properties.length||(e.properties=this._bindProperties)})),this._to=t.to,t.callback&&(this._bindings.get(o[0]).callback=t.callback),n=this._observable,this._to.forEach((e=>{const t=n[Ve];let o;t.get(e.observable)||n.listenTo(e.observable,"change",((i,s)=>{o=t.get(e.observable)[s],o&&o.forEach((e=>{$e(n,e.property)}))}))})),function(e){let t;e._bindings.forEach(((o,i)=>{e._to.forEach((n=>{t=n.properties[o.callback?0:e._bindProperties.indexOf(i)],o.to.push([n.observable,t]),function(e,t,o,i){const n=e[Ve],s=n.get(o),r=s||{};r[i]||(r[i]=new Set);r[i].add(t),s||n.set(o,r)}(e._observable,o,n.observable,t)}))}))}(this),this._bindProperties.forEach((e=>{$e(this._observable,e)}))}function je(e,t,o){if(this._bindings.size>1)throw new fe("observable-bind-to-many-not-one-binding",this);this.to(...function(e,t){const o=e.map((e=>[e,t]));return Array.prototype.concat.apply([],o)}(e,t),o)}function qe(e){return e.every((e=>"string"==typeof e))}function $e(e,t){const o=e[De].get(t);let i;o.callback?i=o.callback.apply(e,o.to.map((e=>e[0][e[1]]))):(i=o.to[0],i=i[0][i[1]]),Object.prototype.hasOwnProperty.call(e,t)?e[t]=i:e.set(t,i)}function He(e){let t=0;for(const o of e)t++;return t}function We(e,t){const o=Math.min(e.length,t.length);for(let i=0;i{this._setToTarget(e,i,t[i],o)}))}}function Je(e){return N(e,Ze)}function Ze(e){return L(e)||"function"==typeof e?e:void 0}function Qe(e){if(e){if(e.defaultView)return e instanceof e.defaultView.Document;if(e.ownerDocument&&e.ownerDocument.defaultView)return e instanceof e.ownerDocument.defaultView.Node}return!1}function Ye(e){const t=Object.prototype.toString.apply(e);return"[object Window]"==t||"[object global]"==t}const Xe=et(xe());function et(e){if(!e)return Xe;return class extends e{listenTo(e,t,o,i={}){if(Qe(e)||Ye(e)||e instanceof J.window.EventTarget){const n={capture:!!i.useCapture,passive:!!i.usePassive},s=this._getProxyEmitter(e,n)||new tt(e,n);this.listenTo(s,t,o,i)}else super.listenTo(e,t,o,i)}stopListening(e,t,o){if(Qe(e)||Ye(e)||e instanceof J.window.EventTarget){const i=this._getAllProxyEmitters(e);for(const e of i)this.stopListening(e,t,o)}else super.stopListening(e,t,o)}_getProxyEmitter(e,t){return function(e,t){const o=e[ke];return o&&o[t]?o[t].emitter:null}(this,ot(e,t))}_getAllProxyEmitters(e){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((t=>this._getProxyEmitter(e,t))).filter((e=>!!e))}}}class tt extends(xe()){_domNode;_options;constructor(e,t){super(),Ee(this,ot(e,t)),this._domNode=e,this._options=t}_domListeners;attach(e){if(this._domListeners&&this._domListeners[e])return;const t=this._createDomListener(e);this._domNode.addEventListener(e,t,this._options),this._domListeners||(this._domListeners={}),this._domListeners[e]=t}detach(e){let t;!this._domListeners[e]||(t=this._events[e])&&t.callbacks.length||this._domListeners[e].removeListener()}_addEventListener(e,t,o){this.attach(e),xe().prototype._addEventListener.call(this,e,t,o)}_removeEventListener(e,t){xe().prototype._removeEventListener.call(this,e,t),this.detach(e)}_createDomListener(e){const t=t=>{this.fire(e,t)};return t.removeListener=()=>{this._domNode.removeEventListener(e,t,this._options),delete this._domListeners[e]},t}}function ot(e,t){let o=function(e){return e["data-ck-expando"]||(e["data-ck-expando"]=me())}(e);for(const e of Object.keys(t).sort())t[e]&&(o+="-"+e);return o}function it(e){const t=[];let o=e;for(;o&&o.nodeType!=Node.DOCUMENT_NODE;)t.unshift(o),o=o.parentNode;return t}function nt(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 st(e){if(!e.target)return null;const t=e.target.ownerDocument,o=e.clientX,i=e.clientY;let n=null;return t.caretRangeFromPoint&&t.caretRangeFromPoint(o,i)?n=t.caretRangeFromPoint(o,i):e.rangeParent&&(n=t.createRange(),n.setStart(e.rangeParent,e.rangeOffset),n.collapse(!0)),n}function rt(e){return e&&e.parentNode?e.offsetParent===J.document.body?null:e.offsetParent:null}function at(e){return"[object Text]"==Object.prototype.toString.call(e)}function lt(e){return"[object Range]"==Object.prototype.toString.apply(e)}const ct=["top","right","bottom","left","width","height"],dt=new Set(["relative","absolute","fixed","sticky"]);class ut{top;right;bottom;left;width;height;_source;constructor(e){const t=lt(e);if(Object.defineProperty(this,"_source",{value:e._source||e,writable:!0,enumerable:!1}),gt(e)||t)if(t){const t=ut.getDomRangeRects(e);ht(this,ut.getBoundingRect(t))}else ht(this,e.getBoundingClientRect());else if(Ye(e)){const{innerWidth:t,innerHeight:o}=e;ht(this,{top:0,right:t,bottom:o,left:0,width:t,height:o})}else ht(this,e)}clone(){return new ut(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:Math.max(this.top,e.top),right:Math.min(this.right,e.right),bottom:Math.min(this.bottom,e.bottom),left:Math.max(this.left,e.left),width:0,height:0};if(t.width=t.right-t.left,t.height=t.bottom-t.top,t.width<0||t.height<0)return null;{const e=new ut(t);return e._source=this._source,e}}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(mt(e))return t;let o,i=e,n=e.parentNode||e.commonAncestorContainer;for(;n&&!mt(n);){const e="visible"===((s=n)instanceof HTMLElement?s.ownerDocument.defaultView.getComputedStyle(s).overflow:"visible");if(ft(i)&&(o=i),e||o&&"absolute"===pt(o)&&!ft(n)){i=n,n=n.parentNode;continue}const r=new ut(n),a=t.getIntersection(r);if(!a)return null;a.getArea(){const o=new ut(t);return o._source=e,o}))}static getBoundingRect(e){const t={left:Number.POSITIVE_INFINITY,top:Number.POSITIVE_INFINITY,right:Number.NEGATIVE_INFINITY,bottom:Number.NEGATIVE_INFINITY,width:0,height:0};let o=0;for(const i of e)o++,t.left=Math.min(t.left,i.left),t.top=Math.min(t.top,i.top),t.right=Math.max(t.right,i.right),t.bottom=Math.max(t.bottom,i.bottom);return 0==o?null:(t.width=t.right-t.left,t.height=t.bottom-t.top,new ut(t))}}function ht(e,t){for(const o of ct)e[o]=t[o]}function mt(e){return!!gt(e)&&e===e.ownerDocument.body}function gt(e){return null!==e&&"object"==typeof e&&1===e.nodeType&&"function"==typeof e.getBoundingClientRect}function pt(e){return e.ownerDocument.defaultView.getComputedStyle(e).position}function ft(e){return e instanceof HTMLElement&&dt.has(pt(e))}class bt{_element;_callback;static _observerInstance=null;static _elementCallbacks=null;constructor(e,t){bt._observerInstance||bt._createObserver(),this._element=e,this._callback=t,bt._addElementCallback(e,t),bt._observerInstance.observe(e)}get element(){return this._element}destroy(){bt._deleteElementCallback(this._element,this._callback)}static _addElementCallback(e,t){bt._elementCallbacks||(bt._elementCallbacks=new Map);let o=bt._elementCallbacks.get(e);o||(o=new Set,bt._elementCallbacks.set(e,o)),o.add(t)}static _deleteElementCallback(e,t){const o=bt._getElementCallbacks(e);o&&(o.delete(t),o.size||(bt._elementCallbacks.delete(e),bt._observerInstance.unobserve(e))),bt._elementCallbacks&&!bt._elementCallbacks.size&&(bt._observerInstance=null,bt._elementCallbacks=null)}static _getElementCallbacks(e){return bt._elementCallbacks?bt._elementCallbacks.get(e):null}static _createObserver(){bt._observerInstance=new J.window.ResizeObserver((e=>{for(const t of e){const e=bt._getElementCallbacks(t.target);if(e)for(const o of e)o(t)}}))}}function wt(e,t){e instanceof HTMLTextAreaElement&&(e.value=t),e.innerHTML=t}function yt(e){return t=>t+e}function _t(e){let t=0;for(;e.previousSibling;)e=e.previousSibling,t++;return t}function kt(e,t,o){e.insertBefore(o,e.childNodes[t]||null)}function vt(e){return e&&e.nodeType===Node.COMMENT_NODE}function Ct(e){return!!e&&(at(e)?Ct(e.parentElement):!!e.getClientRects&&!!e.getClientRects().length)}function At({element:e,target:t,positions:o,limiter:i,fitInViewport:n,viewportOffsetConfig:s}){z(t)&&(t=t()),z(i)&&(i=i());const r=rt(e),a=Et(s),l=new ut(e),c=xt(t,a);let d;if(!c||!a.getIntersection(c))return null;const u={targetRect:c,elementRect:l,positionedElementAncestor:r,viewportRect:a};if(i||n){if(i){const e=xt(i,a);e&&(u.limiterRect=e)}d=function(e,t){const{elementRect:o}=t,i=o.getArea(),n=e.map((e=>new Tt(e,t))).filter((e=>!!e.name));let s=0,r=null;for(const e of n){const{limiterIntersectionArea:t,viewportIntersectionArea:o}=e;if(t===i)return e;const n=o**2+t**2;n>s&&(s=n,r=e)}return r}(o,u)}else d=new Tt(o[0],u);return d}function xt(e,t){const o=new ut(e).getVisible();return o?o.getIntersection(t):null}function Et(e){e=Object.assign({top:0,bottom:0,left:0,right:0},e);const t=new ut(J.window);return t.top+=e.top,t.height-=e.top,t.bottom-=e.bottom,t.height-=e.bottom,t.left+=e.left,t.right-=e.right,t.width-=e.left+e.right,t}class Tt{name;config;_positioningFunctionCoordinates;_options;_cachedRect;_cachedAbsoluteRect;constructor(e,t){const o=e(t.targetRect,t.elementRect,t.viewportRect,t.limiterRect);if(!o)return;const{left:i,top:n,name:s,config:r}=o;this.name=s,this.config=r,this._positioningFunctionCoordinates={left:i,top:n},this._options=t}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const e=this._options.limiterRect;return e?e.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=this._rect.toAbsoluteRect()),this._cachedAbsoluteRect}}function Pt(e){const t=e.parentNode;t&&t.removeChild(e)}function St(){const e=J.window.visualViewport;if(!e||!Y.isiOS&&!Y.isSafari)return{left:0,top:0};return{left:Math.max(Math.round(e.offsetLeft),0),top:Math.max(Math.round(e.offsetTop),0)}}function It({window:e,rect:t,alignToTop:o,forceScroll:i,viewportOffset:n}){const s=t.clone().moveBy(0,n.bottom),r=t.clone().moveBy(0,-n.top),a=new ut(e).excludeScrollbarsAndBorders(),l=o&&i,c=[r,s].every((e=>a.contains(e)));let{scrollX:d,scrollY:u}=e;const h=d,m=u;l?u-=a.top-t.top+n.top:c||(Vt(r,a)?u-=a.top-t.top+n.top:Ot(s,a)&&(u+=o?t.top-a.top-n.top:t.bottom-a.bottom+n.bottom)),c||(Dt(t,a)?d-=a.left-t.left+n.left:Ft(t,a)&&(d+=t.right-a.right+n.right)),d==h&&u===m||e.scrollTo(d,u)}function Rt({parent:e,getRect:t,alignToTop:o,forceScroll:i,ancestorOffset:n=0,limiterElement:s}){const r=Mt(e),a=o&&i;let l,c,d;const u=s||r.document.body;for(;e!=u;)c=t(),l=new ut(e).excludeScrollbarsAndBorders(),d=l.contains(c),a?e.scrollTop-=l.top-c.top+n:d||(Vt(c,l)?e.scrollTop-=l.top-c.top+n:Ot(c,l)&&(e.scrollTop+=o?c.top-l.top-n:c.bottom-l.bottom+n)),d||(Dt(c,l)?e.scrollLeft-=l.left-c.left+n:Ft(c,l)&&(e.scrollLeft+=c.right-l.right+n)),e=e.parentNode}function Ot(e,t){return e.bottom>t.bottom}function Vt(e,t){return e.topt.right}function Mt(e){return lt(e)?e.startContainer.ownerDocument.defaultView:e.ownerDocument.defaultView}function Nt(e){if(lt(e)){let t=e.commonAncestorContainer;return at(t)&&(t=t.parentNode),t}return e.parentNode}function Bt(e,t){const o=Mt(e),i=new ut(e);if(o===t)return i;{let e=o;for(;e!=t;){const t=e.frameElement,o=new ut(t).excludeScrollbarsAndBorders();i.moveBy(o.left,o.top),e=e.parent}}return i}const Lt={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},zt={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},jt={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},qt=Gt(),$t=Object.fromEntries(Object.entries(qt).map((([e,t])=>{let o;return o=t in jt?jt[t]:e.charAt(0).toUpperCase()+e.slice(1),[t,o]})));function Ht(e){let t;if("string"==typeof e){if(t=qt[e.toLowerCase()],!t)throw new fe("keyboard-unknown-key",null,{key:e})}else t=e.keyCode+(e.altKey?qt.alt:0)+(e.ctrlKey?qt.ctrl:0)+(e.shiftKey?qt.shift:0)+(e.metaKey?qt.cmd:0);return t}function Wt(e){return"string"==typeof e&&(e=function(e){return e.split("+").map((e=>e.trim()))}(e)),e.map((e=>"string"==typeof e?function(e){if(e.endsWith("!"))return Ht(e.slice(0,-1));const t=Ht(e);return(Y.isMac||Y.isiOS)&&t==qt.ctrl?qt.cmd:t}(e):e)).reduce(((e,t)=>t+e),0)}function Ut(e,t){let o=Wt(e);const i=t?"Mac"===t:Y.isMac||Y.isiOS;return Object.entries(i?Lt:zt).reduce(((e,[t,i])=>(o&qt[t]&&(o&=~qt[t],e+=i),e)),"")+(o?$t[o]:"")}function Kt(e,t){const o="ltr"===t;switch(e){case qt.arrowleft:return o?"left":"right";case qt.arrowright:return o?"right":"left";case qt.arrowup:return"up";case qt.arrowdown:return"down"}}function Gt(){const e={pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let t=65;t<=90;t++){e[String.fromCharCode(t).toLowerCase()]=t}for(let t=48;t<=57;t++)e[t-48]=t;for(let t=112;t<=123;t++)e["f"+(t-111)]=t;return Object.assign(e,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),e}const Jt=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig","ur","urd"];function Zt(e){return Jt.includes(e)?"rtl":"ltr"}function Qt(e){return Array.isArray(e)?e:[e]}function Yt(e,t,o=1,i){if("number"!=typeof o)throw new fe("translation-service-quantity-not-a-number",null,{quantity:o});const n=i||J.window.CKEDITOR_TRANSLATIONS,s=function(e){return Object.keys(e).length}(n);1===s&&(e=Object.keys(n)[0]);const r=t.id||t.string;if(0===s||!function(e,t,o){return!!o[e]&&!!o[e].dictionary[t]}(e,r,n))return 1!==o?t.plural:t.string;const a=n[e].dictionary,l=n[e].getPluralForm||(e=>1===e?0:1),c=a[r];if("string"==typeof c)return c;return c[Number(l(o))]}J.window.CKEDITOR_TRANSLATIONS||(J.window.CKEDITOR_TRANSLATIONS={});class Xt{uiLanguage;uiLanguageDirection;contentLanguage;contentLanguageDirection;t;translations;constructor({uiLanguage:e="en",contentLanguage:t,translations:o}={}){this.uiLanguage=e,this.contentLanguage=t||this.uiLanguage,this.uiLanguageDirection=Zt(this.uiLanguage),this.contentLanguageDirection=Zt(this.contentLanguage),this.translations=function(e){return Array.isArray(e)?e.reduce(((e,t)=>G(e,t))):e}(o),this.t=(e,t)=>this._t(e,t)}_t(e,t=[]){t=Qt(t),"string"==typeof e&&(e={string:e});const o=!!e.plural?t[0]:1;return function(e,t){return e.replace(/%(\d+)/g,((e,o)=>othis._items.length||t<0)throw new fe("collection-add-item-invalid-index",this);let o=0;for(const i of e){const e=this._getItemIdBeforeAdding(i),n=t+o;this._items.splice(n,0,i),this._itemMap.set(e,i),this.fire("add",i,n),o++}return this.fire("change",{added:e,removed:[],index:t}),this}get(e){let t;if("string"==typeof e)t=this._itemMap.get(e);else{if("number"!=typeof e)throw new fe("collection-get-invalid-arg",this);t=this._items[e]}return t||null}has(e){if("string"==typeof e)return this._itemMap.has(e);{const t=e[this._idProperty];return t&&this._itemMap.has(t)}}getIndex(e){let t;return t="string"==typeof e?this._itemMap.get(e):e,t?this._items.indexOf(t):-1}remove(e){const[t,o]=this._remove(e);return this.fire("change",{added:[],removed:[t],index:o}),t}map(e,t){return this._items.map(e,t)}forEach(e,t){this._items.forEach(e,t)}find(e,t){return this._items.find(e,t)}filter(e,t){return this._items.filter(e,t)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const e=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:e,index:0})}bindTo(e){if(this._bindToCollection)throw new fe("collection-bind-to-rebind",this);return this._bindToCollection=e,{as:e=>{this._setUpBindToBinding((t=>new e(t)))},using:e=>{"function"==typeof e?this._setUpBindToBinding(e):this._setUpBindToBinding((t=>t[e]))}}}_setUpBindToBinding(e){const t=this._bindToCollection,o=(o,i,n)=>{const s=t._bindToCollection==this,r=t._bindToInternalToExternalMap.get(i);if(s&&r)this._bindToExternalToInternalMap.set(i,r),this._bindToInternalToExternalMap.set(r,i);else{const o=e(i);if(!o)return void this._skippedIndexesFromExternal.push(n);let s=n;for(const e of this._skippedIndexesFromExternal)n>e&&s--;for(const e of t._skippedIndexesFromExternal)s>=e&&s++;this._bindToExternalToInternalMap.set(i,o),this._bindToInternalToExternalMap.set(o,i),this.add(o,s);for(let e=0;e{const i=this._bindToExternalToInternalMap.get(t);i&&this.remove(i),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((e,t)=>(ot&&e.push(t),e)),[])}))}_getItemIdBeforeAdding(e){const t=this._idProperty;let o;if(t in e){if(o=e[t],"string"!=typeof o)throw new fe("collection-add-invalid-id",this);if(this.get(o))throw new fe("collection-add-item-already-exists",this)}else e[t]=o=me();return o}_remove(e){let t,o,i,n=!1;const s=this._idProperty;if("string"==typeof e?(o=e,i=this._itemMap.get(o),n=!i,i&&(t=this._items.indexOf(i))):"number"==typeof e?(t=e,i=this._items[t],n=!i,i&&(o=i[s])):(i=e,o=i[s],t=this._items.indexOf(i),n=-1==t||!this._itemMap.get(o)),n)throw new fe("collection-remove-404",this);this._items.splice(t,1),this._itemMap.delete(o);const r=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(r),this.fire("remove",i,t),[i,t]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function to(e){const t=e.next();return t.done?null:t.value}class oo extends(et(Be())){_elements=new Set;_externalViews=new Set;_blurTimeout=null;constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null)}get elements(){return Array.from(this._elements.values())}get externalViews(){return Array.from(this._externalViews.values())}add(e){if(no(e))this._addElement(e);else if(io(e))this._addView(e);else{if(!e.element)throw new fe("focustracker-add-view-missing-element",{focusTracker:this,view:e});this._addElement(e.element)}}remove(e){no(e)?this._removeElement(e):io(e)?this._removeView(e):this._removeElement(e.element)}_addElement(e){if(this._elements.has(e))throw new fe("focustracker-add-element-already-exist",this);this.listenTo(e,"focus",(()=>{const t=this.externalViews.find((t=>function(e,t){if(so(e,t))return!0;return!!t.focusTracker.externalViews.find((t=>so(e,t)))}(e,t)));t?this._focus(t.element):this._focus(e)}),{useCapture:!0}),this.listenTo(e,"blur",(()=>{this._blur()}),{useCapture:!0}),this._elements.add(e)}_removeElement(e){this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e)),e===this.focusedElement&&this._blur()}_addView(e){e.element&&this._addElement(e.element),this.listenTo(e.focusTracker,"change:focusedElement",(()=>{e.focusTracker.focusedElement?e.element&&this._focus(e.element):this._blur()})),this._externalViews.add(e)}_removeView(e){e.element&&this._removeElement(e.element),this.stopListening(e.focusTracker),this._externalViews.delete(e)}destroy(){this.stopListening(),this._elements.clear(),this._externalViews.clear(),this.isFocused=!1,this.focusedElement=null}_focus(e){this._clearBlurTimeout(),this.focusedElement=e,this.isFocused=!0}_blur(){if(this.elements.find((e=>e.contains(document.activeElement))))return;this.externalViews.find((e=>e.focusTracker.isFocused&&!e.focusTracker._blurTimeout))||(this._clearBlurTimeout(),this._blurTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0))}_clearBlurTimeout(){clearTimeout(this._blurTimeout),this._blurTimeout=null}}function io(e){return"focusTracker"in e&&e.focusTracker instanceof oo}function no(e){return L(e)}function so(e,t){return!!t.element&&t.element.contains(document.activeElement)&&e.contains(t.element)}class ro{_listener;constructor(){this._listener=new(et())}listenTo(e){this._listener.listenTo(e,"keydown",((e,t)=>{this._listener.fire("_keydown:"+Ht(t),t)}))}set(e,t,o={}){const i=Wt(e),n=o.priority;this._listener.listenTo(this._listener,"_keydown:"+i,((e,i)=>{o.filter&&!o.filter(i)||(t(i,(()=>{i.preventDefault(),i.stopPropagation(),e.stop()})),e.return=!0)}),{priority:n})}press(e){return!!this._listener.fire("_keydown:"+Ht(e),e)}stopListening(e){this._listener.stopListening(e)}destroy(){this.stopListening()}}function ao(e){return Ue(e)?new Map(e):function(e){const t=new Map;for(const o in e)t.set(o,e[o]);return t}(e)}function lo(e,t,o){const i=e.length,n=t.length;for(let t=i-1;t>=o;t--)e[t+n]=e[t];for(let i=0;ie(...n)),t)}return i.cancel=()=>{clearTimeout(o)},i}function uo(e){try{if(!e.startsWith("ey"))return null;const t=atob(e.replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(t)}catch{return null}}function ho(e,t){return!!(o=e.charAt(t-1))&&1==o.length&&/[\ud800-\udbff]/.test(o)&&function(e){return!!e&&1==e.length&&/[\udc00-\udfff]/.test(e)}(e.charAt(t));var o}function mo(e,t){return!!(o=e.charAt(t))&&1==o.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(o);var o}const go=fo();function po(e,t){const o=String(e).matchAll(go);return Array.from(o).some((e=>e.indexe.source)).join("|")+")";return new RegExp(`${e}|${t}(?:‍${t})*`,"ug")}function bo(e){if(!e)return null;const t=function(e){const t=e.split(".");if(3!=t.length)return null;return t[1]}(e);return t?uo(t):null}function wo(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function yo(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function _o(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(_o).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}function ko(e){if(Array.isArray(e))return e.map(yo);if("symbol"==typeof e)return[e];const t=[],o=(e=_o(e)).length;if(0===o)return t;let i=0,n="",s="",r=!1;for(46===e.charCodeAt(0)&&(t.push(""),i++);i{const i=e[t];Object.hasOwn(e,t)&&Co(i,o)&&(void 0!==o||t in e)||(e[t]=o)},xo=/^(?:0|[1-9]\d*)$/;function Eo(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&eo),(()=>{}))}function Oo(e){const t=e?.constructor;return e===("function"==typeof t?t.prototype:Object.prototype)}function Vo(e){if(!e)return 0===e?e:0;if((e=function(e){return To(e)?NaN:Number(e)}(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e==e?e:0}function Do(e,t){if((e=function(e){const t=Vo(e),o=t%1;return o?t-o:t}(e))<1||!Number.isSafeInteger(e))return[];const o=new Array(e);for(let i=0;i`${e}`)),o=new Set(t);i=e,"undefined"!=typeof Buffer&&Buffer.isBuffer(i)&&(o.add("offset"),o.add("parent"));var i;W(e)&&(o.add("buffer"),o.add("byteLength"),o.add("byteOffset"));const n=Mo(e).filter((e=>!o.has(e)));if(Array.isArray(e))return[...t,...n];return[...t.filter((t=>Object.hasOwn(e,t))),...n]}(e):Oo(e)?function(e){const t=Mo(e);return t.filter((e=>"constructor"!==e))}(e):Mo(e);default:return Mo(Object(e))}}function Mo(e){const t=[];for(const o in e)t.push(o);return t}function No(e,...t){for(let o=0;o{null!==s&&(e.apply(n,s),n=void 0,s=null)};let c=null;const d=()=>{null!=c&&clearTimeout(c),c=setTimeout((()=>{c=null,a&&l(),u()}),t)},u=()=>{null!==c&&(clearTimeout(c),c=null),n=void 0,s=null},h=function(...e){if(o?.aborted)return;n=this,s=e;const t=null==c;d(),r&&t&&l()};return h.schedule=d,h.cancel=u,h.flush=()=>{l()},o?.addEventListener("abort",u,{once:!0}),h}function zo(e,t=0,o={}){"object"!=typeof o&&(o={});const{leading:i=!1,trailing:n=!0,maxWait:s}=o,r=Array(2);let a;i&&(r[0]="leading"),n&&(r[1]="trailing");let l=null;const c=Lo((function(...t){a=e.apply(this,t),l=null}),t,{edges:r}),d=function(...t){return null!=s&&(null===l&&(l=Date.now()),Date.now()-l>=s)?(a=e.apply(this,t),l=Date.now(),c.cancel(),c.schedule(),a):(c.apply(this,t),a)};return d.cancel=c.cancel,d.flush=()=>(c.flush(),a),d}function jo(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let o=0;return(...i)=>{if(++o>=e)return t(...i)}}function qo(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}function $o(e,t,o){return Ho(e,t,void 0,void 0,void 0,void 0,o)}function Ho(e,t,o,i,n,s,r){const a=r(e,t,o,i,n,s);if(void 0!==a)return a;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return e===t;case"number":return e===t||Object.is(e,t);case"object":return Wo(e,t,s,r)}return Wo(e,t,s,r)}function Wo(e,t,o,i){if(Object.is(e,t))return!0;let n=c(e),s=c(t);if(n===g&&(n=v),s===g&&(s=v),n!==s)return!1;switch(n){case u:return e.toString()===t.toString();case h:return Co(e.valueOf(),t.valueOf());case m:case f:case p:return Object.is(e.valueOf(),t.valueOf());case d:return e.source===t.source&&e.flags===t.flags;case"[object Function]":return e===t}const r=(o=o??new Map).get(e),a=o.get(t);if(null!=r&&null!=a)return r===t;o.set(e,t),o.set(t,e);try{switch(n){case b:if(e.size!==t.size)return!1;for(const[n,s]of e.entries())if(!t.has(n)||!Ho(s,t.get(n),n,e,t,o,i))return!1;return!0;case w:{if(e.size!==t.size)return!1;const n=Array.from(e.values()),s=Array.from(t.values());for(let r=0;rHo(a,n,void 0,e,t,o,i)));if(-1===l)return!1;s.splice(l,1)}return!0}case y:case A:case x:case E:case T:case"[object BigUint64Array]":case P:case S:case I:case"[object BigInt64Array]":case R:case O:if("undefined"!=typeof Buffer&&Buffer.isBuffer(e)!==Buffer.isBuffer(t))return!1;if(e.length!==t.length)return!1;for(let n=0;n{}),$o(e,t,((...i)=>{const n=o(...i);return void 0!==n?Boolean(n):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?Uo(Array.from(e),Array.from(t),jo(2,o)):void 0}))}function Ko(e,t){return $o(e,t,K)}function Go(e){if(V(e))return e;const t=c(e);if(!function(e){switch(c(e)){case g:case y:case k:case C:case m:case f:case R:case O:case P:case S:case I:case b:case h:case v:case d:case w:case u:case p:case A:case x:case E:case T:return!0;default:return!1}}(e))return{};if(o=e,Array.isArray(o)){const t=Array.from(e);return e.length>0&&"string"==typeof e[0]&&Object.hasOwn(e,"index")&&(t.index=e.index,t.input=e.input),t}var o;if(W(e)){const t=e;return new(0,t.constructor)(t.buffer,t.byteOffset,t.length)}if(t===k)return new ArrayBuffer(e.byteLength);if(t===C){const t=e,o=t.buffer,i=t.byteOffset,n=t.byteLength,s=new ArrayBuffer(n),r=new Uint8Array(o,i,n);return new Uint8Array(s).set(r),new DataView(s)}if(t===m||t===h||t===u){const o=new(0,e.constructor)(e.valueOf());return t===u?function(e,t){const o=t.valueOf().length;for(const i in t)Object.hasOwn(t,i)&&(Number.isNaN(Number(i))||Number(i)>=o)&&(e[i]=t[i])}(o,e):Jo(o,e),o}if(t===f)return new Date(Number(e));if(t===d){const t=e,o=new RegExp(t.source,t.flags);return o.lastIndex=t.lastIndex,o}if(t===p)return Object(Symbol.prototype.valueOf.call(e));if(t===b){const t=e,o=new Map;return t.forEach(((e,t)=>{o.set(t,e)})),o}if(t===w){const t=e,o=new Set;return t.forEach((e=>{o.add(e)})),o}if(t===g){const t=e,o={};return Jo(o,t),o.length=t.length,o[Symbol.iterator]=t[Symbol.iterator],o}const i={};return function(e,t){const o=Object.getPrototypeOf(t);if(null!==o){"function"==typeof t.constructor&&Object.setPrototypeOf(e,o)}}(i,e),Jo(i,e),function(e,t){const o=Object.getOwnPropertySymbols(t);for(let i=0;iei([[t,r]],e)))}Zo.has(s)||(Zo.set(s,new Map),s.registerPostFixer((e=>ei(Zo.get(s),e))),s.on("change:isComposing",(()=>{e.change((e=>ei(Zo.get(s),e)))}),{priority:"high"})),t.is("editableElement")&&t.on("change:placeholder",((e,t,o)=>r(o))),t.placeholder?r(t.placeholder):o&&r(o),o&&function(){Qo||be("enableViewPlaceholder-deprecated-text-option");Qo=!0}()}function Xo(e,t){return!!t.hasClass("ck-placeholder")&&(e.removeClass("ck-placeholder",t),!0)}function ei(e,t){const o=[];let i=!1;for(const[n,s]of e)s.isDirectHost&&(o.push(n),ti(t,n,s)&&(i=!0));for(const[n,s]of e){if(s.isDirectHost)continue;const e=oi(n);e!==s.hostElement&&s.hostElement&&(t.removeAttribute("data-placeholder",s.hostElement),Xo(t,s.hostElement),s.hostElement=null,i=!0),e&&(o.includes(e)||(s.hostElement=e,ti(t,n,s)&&(i=!0)))}return i}function ti(e,t,o){const{text:i,isDirectHost:n,hostElement:s}=o;let r=!1;s.getAttribute("data-placeholder")!==i&&(e.setAttribute("data-placeholder",i,s),r=!0);return(n||1==t.childCount)&&function(e,t){if(!e.isAttached())return!1;if(function(e){for(const t of e.getChildren())if(!t.is("uiElement"))return!0;return!1}(e))return!1;const o=e.document,i=o.selection.anchor;return!(o.isComposing&&i&&i.parent===e||!t&&o.isFocused&&(!i||i.parent===e))}(s,o.keepOnFocus)?function(e,t){return!t.hasClass("ck-placeholder")&&(e.addClass("ck-placeholder",t),!0)}(e,s)&&(r=!0):Xo(e,s)&&(r=!0),r}function oi(e){if(e.childCount){const t=e.getChild(0);if(t.is("element")&&!t.is("uiElement")&&!t.is("attributeElement"))return t}return null}class ii{is(){throw new Error("is() method is abstract")}}class ni extends(xe(ii)){document;parent;constructor(e){super(),this.document=e,this.parent=null}get index(){let e;if(!this.parent)return null;if(-1==(e=this.parent.getChildIndex(this)))throw new fe("view-node-not-found-in-parent",this);return e}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}isAttached(){return this.root.is("rootElement")}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.index),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),i=e.getAncestors(t);let n=0;for(;o[n]==i[n]&&o[n];)n++;return 0===n?null:o[n-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),i=We(t,o);switch(i){case"prefix":return!0;case"extension":return!1;default:return t[i]e.data.length)throw new fe("view-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.data.length)throw new fe("view-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get offsetSize(){return this.data.length}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}getAncestors(e={}){const t=[];let o=e.includeSelf?this.textNode:this.parent;for(;null!==o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}}ri.prototype.is=function(e){return"$textProxy"===e||"view:$textProxy"===e||"textProxy"===e||"view:textProxy"===e};class ai{_consumables=new Map;add(e,t){let o;e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):(this._consumables.has(e)?o=this._consumables.get(e):(o=new li(e),this._consumables.set(e,o)),o.add(t?ci(t):e._getConsumables()))}test(e,t){const o=this._consumables.get(e);return void 0===o?null:e.is("$text")||e.is("documentFragment")?o:o.test(ci(t))}consume(e,t){if(e.is("$text")||e.is("documentFragment"))return!!this.test(e,t)&&(this._consumables.set(e,!1),!0);const o=this._consumables.get(e);return void 0!==o&&o.consume(ci(t))}revert(e,t){const o=this._consumables.get(e);void 0!==o&&(e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):o.revert(ci(t)))}static createFrom(e,t){if(t||(t=new ai),e.is("$text"))t.add(e);else if(e.is("element")||e.is("documentFragment")){t.add(e);for(const o of e.getChildren())ai.createFrom(o,t)}return t}}class li{element;_canConsumeName=null;_attributes=new Map;constructor(e){this.element=e}add(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes)if(o){let e=this._attributes.get(t);e&&"boolean"!=typeof e||(e=new Map,this._attributes.set(t,e)),e.set(o,!0)}else{if("style"==t||"class"==t)throw new fe("viewconsumable-invalid-attribute",this);this._attributes.set(t,!0)}}test(e){if(e.name&&!this._canConsumeName)return this._canConsumeName;for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(void 0===e)return null;if(!1===e)return!1;if(!0!==e)if(o){const t=e.get(o);if(void 0===t)return null;if(!t)return!1}else for(const t of e.values())if(!t)return!1}return!0}consume(e){if(!this.test(e))return!1;e.name&&(this._canConsumeName=!1);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if("boolean"==typeof e)for(const[e]of this.element._getConsumables(t,o).attributes)this._attributes.set(e,!1);else if(o)for(const[,i]of this.element._getConsumables(t,o).attributes)e.set(i,!1);else for(const t of e.keys())e.set(t,!1)}return!0}revert(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(!1!==e){if(void 0!==e&&!0!==e)if(o){!1===e.get(o)&&e.set(o,!0)}else for(const t of e.keys())e.set(t,!0)}else this._attributes.set(t,!0)}}}function ci(e){const t=[];return"attributes"in e&&e.attributes&&di(t,e.attributes),"classes"in e&&e.classes&&di(t,e.classes,"class"),"styles"in e&&e.styles&&di(t,e.styles,"style"),{name:e.name||!1,attributes:t}}function di(e,t,o){if("string"!=typeof t)for(const i of t)Array.isArray(i)?e.push(i):e.push(o?[o,i]:[i]);else e.push(o?[o,t]:[t])}class ui{_patterns=[];constructor(...e){this.add(...e)}add(...e){for(let t of e)("string"==typeof t||t instanceof RegExp)&&(t={name:t}),this._patterns.push(t)}match(...e){for(const t of e)for(const e of this._patterns){const o=this._isElementMatching(t,e);if(o)return{element:t,pattern:e,match:o}}return null}matchAll(...e){const t=[];for(const o of e)for(const e of this._patterns){const i=this._isElementMatching(o,e);i&&t.push({element:o,pattern:e,match:i})}return t.length>0?t:null}getElementName(){if(1!==this._patterns.length)return null;const e=this._patterns[0],t=e.name;return"function"==typeof e||!t||t instanceof RegExp?null:t}_isElementMatching(e,t){if("function"==typeof t){const o=t(e);return o&&"object"==typeof o?ci(o):o}const o={};if(t.name&&(o.name=function(e,t){if(e instanceof RegExp)return!!t.match(e);return e===t}(t.name,e.name),!o.name))return null;const i=[];return t.attributes&&!function(e,t,o){let i;"object"!=typeof e||e instanceof RegExp||Array.isArray(e)?i=["class","style"]:(void 0!==e.style&&be("matcher-pattern-deprecated-attributes-style-key",e),void 0!==e.class&&be("matcher-pattern-deprecated-attributes-class-key",e));return t._collectAttributesMatch(mi(e),o,i)}(t.attributes,e,i)||t.classes&&!function(e,t,o){return t._collectAttributesMatch(mi(e,"class"),o)}(t.classes,e,i)||t.styles&&!function(e,t,o){return t._collectAttributesMatch(mi(e,"style"),o)}(t.styles,e,i)?null:(i.length&&(o.attributes=i),o)}}function hi(e,t){return!0===e||e===t||e instanceof RegExp&&!!String(t).match(e)}function mi(e,t){if(Array.isArray(e))return e.map((e=>"object"!=typeof e||e instanceof RegExp?t?[t,e,!0]:[e,!0]:(void 0!==e.key&&void 0!==e.value||be("matcher-pattern-missing-key-or-value",e),t?[t,e.key,e.value]:[e.key,e.value])));if("object"!=typeof e||e instanceof RegExp)return[t?[t,e,!0]:[e,!0]];const o=[];for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&o.push(t?[t,i,e[i]]:[i,e[i]]);return o}class gi{_styles;_cachedStyleNames=null;_cachedExpandedStyleNames=null;_styleProcessor;constructor(e){this._styles={},this._styleProcessor=e}get isEmpty(){return!Object.entries(this._styles).length}get size(){return this.isEmpty?0:this.getStyleNames().length}setTo(e){this.clear();const t=function(e){let t=null,o=0,i=0,n=null;const s=new Map;if(""===e)return s;";"!=e.charAt(e.length-1)&&(e+=";");for(let r=0;rt===e));return Array.isArray(t)}set(e,t){if(this._cachedStyleNames=null,this._cachedExpandedStyleNames=null,s(e))for(const[t,o]of Object.entries(e))this._styleProcessor.toNormalizedForm(t,o,this._styles);else this._styleProcessor.toNormalizedForm(e,t,this._styles)}remove(e){const t={};for(const o of Qt(e)){const e=fi(o),i=vo(this._styles,e);if(i)bi(t,e,i);else{const e=this.getAsString(o);void 0!==e&&this._styleProcessor.toNormalizedForm(o,e,t)}}Object.keys(t).length&&(wi(this._styles,t),this._cachedStyleNames=null,this._cachedExpandedStyleNames=null)}getNormalized(e){return this._styleProcessor.getNormalized(e,this._styles)}toString(){return this.isEmpty?"":this.getStylesEntries().map((e=>e.join(":"))).sort().join(";")+";"}getAsString(e){if(this.isEmpty)return;if(this._styles[e]&&!s(this._styles[e]))return this._styles[e];const t=this._styleProcessor.getReducedForm(e,this._styles).find((([t])=>t===e));return Array.isArray(t)?t[1]:void 0}getStyleNames(e=!1){return this.isEmpty?[]:e?(this._cachedExpandedStyleNames||=this._styleProcessor.getStyleNames(this._styles),this._cachedExpandedStyleNames):(this._cachedStyleNames||=this.getStylesEntries().map((([e])=>e)),this._cachedStyleNames)}keys(){return this.getStyleNames()}clear(){this._styles={},this._cachedStyleNames=null,this._cachedExpandedStyleNames=null}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.getStyleNames())if(!e.has(t)||e.getAsString(t)!==this.getAsString(t))return!1;return!0}getStylesEntries(){const e=[],t=Object.keys(this._styles);for(const o of t)e.push(...this._styleProcessor.getReducedForm(o,this._styles));return e}_clone(){const e=new this.constructor(this._styleProcessor);return e.set(this.getNormalized()),e}_getTokensMatch(e,t){const o=[];for(const i of this.getStyleNames(!0))if(hi(e,i)){if(!0===t){o.push(i);continue}hi(t,this.getAsString(i))&&o.push(i)}return o.length?o:void 0}_getConsumables(e){const t=[];if(e){t.push(e);for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o)}else for(const e of this.getStyleNames()){for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o);t.push(e)}return t}_canMergeFrom(e){for(const t of e.getStyleNames())if(this.has(t)&&this.getAsString(t)!==e.getAsString(t))return!1;return!0}_mergeFrom(e){for(const t of e.getStyleNames())this.has(t)||this.set(t,e.getAsString(t))}_isMatching(e){for(const t of e.getStyleNames())if(!this.has(t)||this.getAsString(t)!==e.getAsString(t))return!1;return!0}}class pi{_normalizers;_extractors;_reducers;_consumables;constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(e,t,o){if(s(t))bi(o,fi(e),t);else if(this._normalizers.has(e)){const i=this._normalizers.get(e),{path:n,value:s}=i(t);bi(o,n,s)}else bi(o,e,t)}getNormalized(e,t){if(!e)return G({},t);if(void 0!==t[e])return t[e];if(this._extractors.has(e)){const o=this._extractors.get(e);if("string"==typeof o)return vo(t,o);const i=o(e,t);if(i)return i}return vo(t,fi(e))}getReducedForm(e,t){const o=this.getNormalized(e,t);if(void 0===o)return[];if(this._reducers.has(e)){return this._reducers.get(e)(o)}return[[e,o]]}getStyleNames(e){const t=new Set;for(const o of this._consumables.keys()){const i=this.getNormalized(o,e);i&&("object"!=typeof i||Object.keys(i).length)&&t.add(o)}for(const o of Object.keys(e))t.add(o);return Array.from(t)}getRelatedStyles(e){return this._consumables.get(e)||[]}setNormalizer(e,t){this._normalizers.set(e,t)}setExtractor(e,t){this._extractors.set(e,t)}setReducer(e,t){this._reducers.set(e,t)}setStyleRelation(e,t){this._mapStyleNames(e,t);for(const o of t)this._mapStyleNames(o,[e])}_mapStyleNames(e,t){this._consumables.has(e)||this._consumables.set(e,[]),this._consumables.get(e).push(...t)}}function fi(e){return e.replace("-",".")}function bi(e,t,o){let i=o;s(o)&&!Array.isArray(o)&&(i=G({},vo(e,t),o)),Ro(e,t,i)}function wi(e,t){for(const o of Object.keys(t))null===e[o]||Array.isArray(e[o])||"object"!=typeof e[o]||"object"!=typeof t[o]?delete e[o]:(wi(e[o],t[o]),Object.keys(e[o]).length||delete e[o])}class yi{_set=new Set;get isEmpty(){return 0==this._set.size}get size(){return this._set.size}has(e){return this._set.has(e)}keys(){return Array.from(this._set.keys())}setTo(e){this.clear();for(const t of e.split(/\s+/))t&&this._set.add(t);return this}set(e){for(const t of Qt(e))t&&this._set.add(t)}remove(e){for(const t of Qt(e))this._set.delete(t)}clear(){this._set.clear()}toString(){return Array.from(this._set).join(" ")}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.keys())if(!e.has(t))return!1;return!0}_clone(){const e=new this.constructor;return e._set=new Set(this._set),e}_getTokensMatch(e){const t=[];if(!0===e){for(const e of this._set.keys())t.push(e);return t}if("string"==typeof e){for(const o of e.split(/\s+/)){if(!this._set.has(o))return;t.push(o)}return t}for(const o of this._set.keys())o.match(e)&&t.push(o);return t.length?t:void 0}_getConsumables(e){return e?[e]:this.keys()}_canMergeFrom(){return!0}_mergeFrom(e){for(const t of e._set.keys())this._set.has(t)||this._set.add(t)}_isMatching(e){for(const t of e._set.keys())if(!this._set.has(t))return!1;return!0}}class _i extends ni{name;_unsafeAttributesToRender=[];_attrs;_children;_customProperties=new Map;get _classes(){return this._attrs.get("class")}get _styles(){return this._attrs.get("style")}constructor(e,t,o,i){super(e),this.name=t,this._attrs=this._parseAttributes(o),this._children=[],i&&this._insertChild(0,i)}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes&&(yield"class"),this._styles&&(yield"style");for(const e of this._attrs.keys())"class"!=e&&"style"!=e&&(yield e)}*getAttributes(){for(const[e,t]of this._attrs.entries())yield[e,String(t)]}getAttribute(e){return this._attrs.has(e)?String(this._attrs.get(e)):void 0}hasAttribute(e,t){return!!this._attrs.has(e)&&(void 0===t||(vi(this.name,e)||ki(this.name,e)?this._attrs.get(e).has(t):this._attrs.get(e)===t))}isSimilar(e){if(!(e instanceof _i))return!1;if(this===e)return!0;if(this.name!=e.name)return!1;if(this._attrs.size!==e._attrs.size)return!1;for(const[t,o]of this._attrs){const i=e._attrs.get(t);if(void 0===i)return!1;if("string"==typeof o||"string"==typeof i){if(i!==o)return!1}else if(!o.isSimilar(i))return!1}return!0}hasClass(...e){for(const t of e)if(!this._classes||!this._classes.has(t))return!1;return!0}getClassNames(){const e=this._classes?this._classes.keys():[],t=e[Symbol.iterator]();return Object.assign(e,{next:t.next.bind(t)})}getStyle(e){return this._styles&&this._styles.getAsString(e)}getNormalizedStyle(e){return this._styles&&this._styles.getNormalized(e)}getStyleNames(e){return this._styles?this._styles.getStyleNames(e):[]}hasStyle(...e){for(const t of e)if(!this._styles||!this._styles.has(t))return!1;return!0}findAncestor(...e){const t=new ui(...e);let o=this.parent;for(;o&&!o.is("documentFragment");){if(t.match(o))return o;o=o.parent}return null}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const e=this._classes?this._classes.keys().sort().join(","):"",t=this._styles&&String(this._styles),o=Array.from(this._attrs).filter((([e])=>"style"!=e&&"class"!=e)).map((e=>`${e[0]}="${e[1]}"`)).sort().join(" ");return this.name+(""==e?"":` class="${e}"`)+(t?` style="${t}"`:"")+(""==o?"":` ${o}`)}shouldRenderUnsafeAttribute(e){return this._unsafeAttributesToRender.includes(e)}toJSON(){const e=super.toJSON();if(e.name=this.name,e.type="Element",this._attrs.size&&(e.attributes=Object.fromEntries(this.getAttributes())),this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=[];if(e)for(const o of this.getChildren())t.push(o._clone(e));const o=new this.constructor(this.document,this.name,this._attrs,t);return o._customProperties=new Map(this._customProperties),o.getFillerOffset=this.getFillerOffset,o._unsafeAttributesToRender=this._unsafeAttributesToRender,o}_appendChild(e){return this._insertChild(this.childCount,e)}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const i=function(e,t){if("string"==typeof t)return[new si(e,t)];Ue(t)||(t=[t]);const o=[];for(const i of t)"string"==typeof i?o.push(new si(e,i)):i instanceof ri?o.push(new si(e,i.data)):o.push(i);return o}(this.document,t);for(const t of i)null!==t.parent&&t._remove(),t.parent=this,t.document=this.document,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;ot&&e.selection.editableElement==this)),this.listenTo(e.selection,"change",(()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this}))}destroy(){this.stopListening()}toJSON(){const e=super.toJSON();return e.type="EditableElement",e.isReadOnly=this.isReadOnly,e.isFocused=this.isFocused,e}}xi.prototype.is=function(e,t){return t?t===this.name&&("editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};const Ei=Symbol("rootName");class Ti extends xi{constructor(e,t){super(e,t),this.rootName="main"}get rootName(){return this.getCustomProperty(Ei)}set rootName(e){this._setCustomProperty(Ei,e)}toJSON(){return this.rootName}set _name(e){this.name=e}}Ti.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Pi{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;constructor(e={}){if(!e.boundaries&&!e.startPosition)throw new fe("view-tree-walker-no-start-position",null);if(e.direction&&"forward"!=e.direction&&"backward"!=e.direction)throw new fe("view-tree-walker-unknown-direction",e.startPosition,{direction:e.direction});this.boundaries=e.boundaries||null,e.startPosition?this._position=Si._createAt(e.startPosition):this._position=Si._createAt(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}get position(){return this._position}skip(e){let t,o;do{o=this.position,t=this.next()}while(!t.done&&e(t.value));t.done||(this._position=o)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone()}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&e.offset===o.childCount)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let i;if(o&&o.is("view:$text")){if(e.isAtEnd)return this._position=Si._createAfter(o),this._next();i=o.data[e.offset]}else i=o.getChild(e.offset);if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{i=(o===this._boundaryEndParent?this.boundaries.end.offset:o.data.length)-e.offset}const n=new ri(o,e.offset,i);return e.offset+=i,this._position=e,this._formatReturnValue("text",n,t,e,i)}if(i&&i.is("view:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e=new Si(i,0);return this._position=e,this._formatReturnValue("elementStart",i,t,e,1)}if(i&&i.is("view:$text")){if(this.singleCharacters)return e=new Si(i,0),this._position=e,this._next();let o,n=i.data.length;return i==this._boundaryEndParent?(n=this.boundaries.end.offset,o=new ri(i,0,n),e=Si._createAfter(o)):(o=new ri(i,0,i.data.length),e.offset++),this._position=e,this._formatReturnValue("text",o,t,e,n)}return e=Si._createAfter(o),this._position=e,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",o,t,e)}_previous(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&0===e.offset)return{done:!0,value:void 0};if(o==this._boundaryStartParent&&e.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let i;if(o.is("view:$text")){if(e.isAtStart)return this._position=Si._createBefore(o),this._previous();i=o.data[e.offset-1]}else i=o.getChild(e.offset-1);if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{const t=o===this._boundaryStartParent?this.boundaries.start.offset:0;i=e.offset-t}e.offset-=i;const n=new ri(o,e.offset,i);return this._position=e,this._formatReturnValue("text",n,t,e,i)}if(i&&i.is("view:element"))return this.shallow?(e.offset--,this._position=e,this._formatReturnValue("elementStart",i,t,e,1)):(e=new Si(i,i.childCount),this._position=e,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",i,t,e));if(i&&i.is("view:$text")){if(this.singleCharacters)return e=new Si(i,i.data.length),this._position=e,this._previous();let o,n=i.data.length;if(i==this._boundaryStartParent){const t=this.boundaries.start.offset;o=new ri(i,t,i.data.length-t),n=o.data.length,e=Si._createBefore(o)}else o=new ri(i,0,i.data.length),e.offset--;return this._position=e,this._formatReturnValue("text",o,t,e,n)}return e=Si._createBefore(o),this._position=e,this._formatReturnValue("elementStart",o,t,e,1)}_formatReturnValue(e,t,o,i,n){return t.is("view:$textProxy")&&(t.offsetInText+t.data.length==t.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?o=Si._createAfter(t.textNode):(i=Si._createAfter(t.textNode),this._position=i)),0===t.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?o=Si._createBefore(t.textNode):(i=Si._createBefore(t.textNode),this._position=i))),{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:i,length:n}}}}class Si extends ii{parent;offset;constructor(e,t){super(),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 xi);){if(!e.parent)return null;e=e.parent}return e}getShiftedBy(e){const t=Si._createAt(this),o=t.offset+e;return t.offset=o<0?0:o,t}getLastMatchingPosition(e,t={}){t.startPosition=this;const o=new Pi(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 i=0;for(;t[i]==o[i]&&t[i];)i++;return 0===i?null:t[i-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.root!==e.root)return"different";if(this.isEqual(e))return"same";const t=this.parent.is("node")?this.parent.getPath():[],o=e.parent.is("node")?e.parent.getPath():[];t.push(this.offset),o.push(e.offset);const i=We(t,o);switch(i){case"prefix":return"before";case"extension":return"after";default:return t[i]0?new this(o,i):new this(i,o)}static _createIn(e){return this._createFromParentsAndOffsets(e,0,e,e.childCount)}static _createOn(e){const t=e.is("$textProxy")?e.offsetSize:1;return this._createFromPositionAndShift(Si._createBefore(e),t)}}function Ri(e){return!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))}Ii.prototype.is=function(e){return"range"===e||"view:range"===e};class Oi extends(xe(ii)){_ranges;_lastRangeBackward;_isFake;_fakeSelectionLabel;constructor(...e){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",e.length&&this.setTo(...e)}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];return(this._lastRangeBackward?e.end:e.start).clone()}get focus(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?e.start:e.end).clone()}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}*getRanges(){for(const e of this._ranges)yield e.clone()}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?e.clone():null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?e.clone():null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():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 i of e._ranges)if(t.isEqual(i)){o=!0;break}if(!o)return!1}return!0}isSimilar(e){if(this.isBackward!=e.isBackward)return!1;const t=He(this.getRanges());if(t!=He(e.getRanges()))return!1;if(0==t)return!0;for(let t of this.getRanges()){t=t.getTrimmed();let o=!1;for(let i of e.getRanges())if(i=i.getTrimmed(),t.start.isEqual(i.start)&&t.end.isEqual(i.end)){o=!0;break}if(!o)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...e){let[t,o,i]=e;if("object"==typeof o&&(i=o,o=void 0),null===t)this._setRanges([]),this._setFakeOptions(i);else if(t instanceof Oi||t instanceof Vi)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof Ii)this._setRanges([t],i&&i.backward),this._setFakeOptions(i);else if(t instanceof Si)this._setRanges([new Ii(t)]),this._setFakeOptions(i);else if(t instanceof ni){const e=!!i&&!!i.backward;let n;if(void 0===o)throw new fe("view-selection-setto-required-second-parameter",this);n="in"==o?Ii._createIn(t):"on"==o?Ii._createOn(t):new Ii(Si._createAt(t,o)),this._setRanges([n],e),this._setFakeOptions(i)}else{if(!Ue(t))throw new fe("view-selection-setto-not-selectable",this);this._setRanges(t,i&&i.backward),this._setFakeOptions(i)}this.fire("change")}setFocus(e,t){if(null===this.anchor)throw new fe("view-selection-setfocus-no-ranges",this);const o=Si._createAt(e,t);if("same"==o.compareWith(this.focus))return;const i=this.anchor;this._ranges.pop(),"before"==o.compareWith(i)?this._addRange(new Ii(o,i),!0):this._addRange(new Ii(i,o)),this.fire("change")}toJSON(){const e={ranges:Array.from(this.getRanges()).map((e=>e.toJSON()))};return this.isBackward&&(e.isBackward=!0),this.isFake&&(e.isFake=!0),e}_setRanges(e,t=!1){e=Array.from(e),this._ranges=[];for(const t of e)this._addRange(t);this._lastRangeBackward=!!t}_setFakeOptions(e={}){this._isFake=!!e.fake,this._fakeSelectionLabel=e.fake&&e.label||""}_addRange(e,t=!1){if(!(e instanceof Ii))throw new fe("view-selection-add-range-not-range",this);this._pushRange(e),this._lastRangeBackward=!!t}_pushRange(e){for(const t of this._ranges)if(e.isIntersecting(t))throw new fe("view-selection-range-intersects",this,{addedRange:e,intersectingRange:t});this._ranges.push(new Ii(e.start,e.end))}}Oi.prototype.is=function(e){return"selection"===e||"view:selection"===e};class Vi extends(xe(ii)){_selection;constructor(...e){super(),this._selection=new Oi,this._selection.delegate("change").to(this),e.length&&this._selection.setTo(...e)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(e){return this._selection.isEqual(e)}isSimilar(e){return this._selection.isSimilar(e)}toJSON(){return this._selection.toJSON()}_setTo(...e){this._selection.setTo(...e)}_setFocus(e,t){this._selection.setFocus(e,t)}}Vi.prototype.is=function(e){return"selection"===e||"documentSelection"==e||"view:selection"==e||"view:documentSelection"==e};class Di extends ue{startRange;_eventPhase;_currentTarget;constructor(e,t,o){super(e,t),this.startRange=o,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const Fi=Symbol("bubblingEmitter"),Mi=Symbol("bubblingCallbacks"),Ni=Symbol("bubblingContexts");function Bi(e){return class extends e{fire(e,...t){try{const o=e instanceof ue?e:new ue(this,e),i=ji(this),n=$i(this);if(Li(o,"capturing",this),zi(i,"$capture",o,...t))return o.return;const s=o.startRange||this.selection.getFirstRange(),r=s?s.getContainedElement():null,a=!!r&&function(e,t){for(const o of e)if(o(t))return!0;return!1}(n,r);let l=r||function(e){if(!e)return null;const t=e.start.parent,o=e.end.parent,i=t.getPath(),n=o.getPath();return i.length>n.length?t:o}(s);if(Li(o,"atTarget",l),!a){if(zi(i,"$text",o,...t))return o.return;Li(o,"bubbling",l)}for(;l;){if(l.is("element")&&zi(i,l,o,...t))return o.return;l=l.parent,Li(o,"bubbling",l)}return Li(o,"bubbling",this),zi(i,"$document",o,...t),o.return}catch(e){fe.rethrowUnexpectedError(e,this)}}_addEventListener(e,t,o){const i=Qt(o.context||"$document"),n=ji(this),s=qi(this);for(const e of i)"function"==typeof e&&$i(this).add(e);const r=function(e,t,o){return function(i,n){const{currentTarget:s,eventArgs:r}=n;if("string"!=typeof s){if(s.is("rootElement")&&t.includes("$root"))o.call(e,i,...r);else if(t.includes(s.name))o.call(e,i,...r);else for(const n of t)if("function"==typeof n&&n(s))return void o.call(e,i,...r)}else t.includes(s)&&o.call(e,i,...r)}}(this,i,t);s.set(t,r),this.listenTo(n,e,r,o)}_removeEventListener(e,t){const o=ji(this),i=qi(this),n=i.get(t);n&&(i.delete(t),this.stopListening(o,e,n))}}}function Li(e,t,o){e instanceof Di&&(e._eventPhase=t,e._currentTarget=o)}function zi(e,t,o,...i){return e.fire(o,{currentTarget:t,eventArgs:i}),!!o.stop.called}function ji(e){return e[Fi]||(e[Fi]=new(xe())),e[Fi]}function qi(e){return e[Mi]||(e[Mi]=new Map),e[Mi]}function $i(e){return e[Ni]||(e[Ni]=new Set),e[Ni]}class Hi extends(Bi(Be())){selection;roots;stylesProcessor;_postFixers=new Set;constructor(e){super(),this.selection=new Vi,this.roots=new eo({idProperty:"rootName"}),this.stylesProcessor=e,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1)}getRoot(e="main"){return this.roots.get(e)}registerPostFixer(e){this._postFixers.add(e)}destroy(){this.roots.forEach((e=>e.destroy())),this.stopListening()}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(t=o(e),t)break}while(t)}}class Wi extends _i{static DEFAULT_PRIORITY=10;_priority=10;_id=null;_clonesGroup=null;constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Ui}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new fe("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(e){return null!==this.id||null!==e.id?this.id===e.id:super.isSimilar(e)&&this.priority==e.priority}toJSON(){const e=super.toJSON();return e.type="AttributeElement",e}_clone(e=!1){const t=super._clone(e);return t._priority=this._priority,t._id=this._id,t}_canMergeAttributesFrom(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canMergeAttributesFrom(e)}_canSubtractAttributesOf(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canSubtractAttributesOf(e)}}function Ui(){if(Ki(this))return null;let e=this.parent;for(;e&&e.is("attributeElement");){if(Ki(e)>1)return null;e=e.parent}return!e||Ki(e)>1?null:this.childCount}function Ki(e){return Array.from(e.getChildren()).filter((e=>!e.is("uiElement"))).length}Wi.prototype.is=function(e,t){return t?t===this.name&&("attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e):"attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Gi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Ji}toJSON(){const e=super.toJSON();return e.type="EmptyElement",e}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-emptyelement-cannot-add",[this,t]);return 0}}function Ji(){return null}Gi.prototype.is=function(e,t){return t?t===this.name&&("emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e):"emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Zi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Yi}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-uielement-cannot-add",[this,t]);return 0}render(e,t){return this.toDomElement(e)}toDomElement(e){const t=e.createElement(this.name);for(const e of this.getAttributeKeys())t.setAttribute(e,this.getAttribute(e));return t}toJSON(){const e=super.toJSON();return e.type="UIElement",e}}function Qi(e){e.document.on("arrowKey",((t,o)=>function(e,t,o){if(t.keyCode==qt.arrowright){const e=t.domTarget.ownerDocument.defaultView.getSelection(),i=1==e.rangeCount&&e.getRangeAt(0).collapsed;if(i||t.shiftKey){const t=e.focusNode,n=e.focusOffset,s=o.domPositionToView(t,n);if(null===s)return;let r=!1;const a=s.getLastMatchingPosition((e=>(e.item.is("uiElement")&&(r=!0),!(!e.item.is("uiElement")&&!e.item.is("attributeElement")))));if(r){const t=o.viewPositionToDom(a);i?e.collapse(t.parent,t.offset):e.extend(t.parent,t.offset)}}}}(0,o,e.domConverter)),{priority:"low"})}function Yi(){return null}Zi.prototype.is=function(e,t){return t?t===this.name&&("uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e):"uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Xi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=en}toJSON(){const e=super.toJSON();return e.type="RawElement",e}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-rawelement-cannot-add",[this,t]);return 0}render(e,t){}}function en(){return null}Xi.prototype.is=function(e,t){return t?t===this.name&&("rawElement"===e||"view:rawElement"===e||"element"===e||"view:element"===e):"rawElement"===e||"view:rawElement"===e||e===this.name||e==="view:"+this.name||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class tn extends(xe(ii)){document;_children=[];_customProperties=new Map;constructor(e,t){super(),this.document=e,t&&this._insertChild(0,t)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}get name(){}get getFillerOffset(){}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}_appendChild(e){return this._insertChild(this.childCount,e)}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const i=function(e,t){if("string"==typeof t)return[new si(e,t)];Ue(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new si(e,t):t instanceof ri?new si(e,t.data):t))}(this.document,t);for(const t of i)null!==t.parent&&t._remove(),t.parent=this,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;o{const o=e[e.length-1],i=!t.is("uiElement");return o&&o.breakAttributes==i?o.nodes.push(t):e.push({breakAttributes:i,nodes:[t]}),e}),[]);let i=null,n=e;for(const{nodes:e,breakAttributes:t}of o){const o=this._insertNodes(n,e,t);i||(i=o.start),n=o.end}return i?new Ii(i,n):new Ii(e)}remove(e){const t=e instanceof Ii?e:Ii._createOn(e);if(hn(t,this.document),t.isCollapsed)return new tn(this.document);const{start:o,end:i}=this._breakAttributesRange(t,!0),n=o.parent,s=i.offset-o.offset,r=n._removeChildren(o.offset,s);for(const e of r)this._removeFromClonedElementsGroup(e);const a=this.mergeAttributes(o);return t.start=a,t.end=a.clone(),new tn(this.document,r)}clear(e,t){hn(e,this.document);const o=e.getWalker({direction:"backward",ignoreElementEnd:!0});for(const i of o){const o=i.item;let n;if(o.is("element")&&t.isSimilar(o))n=Ii._createOn(o);else if(!i.nextPosition.isAfter(e.start)&&o.is("$textProxy")){const e=o.getAncestors().find((e=>e.is("element")&&t.isSimilar(e)));e&&(n=Ii._createIn(e))}n&&(n.end.isAfter(e.end)&&(n.end=e.end),n.start.isBefore(e.start)&&(n.start=e.start),this.remove(n))}}move(e,t){let o;if(t.isAfter(e.end)){const i=(t=this._breakAttributes(t,!0)).parent,n=i.childCount;e=this._breakAttributesRange(e,!0),o=this.remove(e),t.offset+=i.childCount-n}else o=this.remove(e);return this.insert(t,o)}wrap(e,t){if(!(t instanceof Wi))throw new fe("view-writer-wrap-invalid-attribute",this.document);if(hn(e,this.document),e.isCollapsed){let i=e.start;i.parent.is("element")&&(o=i.parent,!Array.from(o.getChildren()).some((e=>!e.is("uiElement"))))&&(i=i.getLastMatchingPosition((e=>e.item.is("uiElement")))),i=this._wrapPosition(i,t);const n=this.document.selection;return n.isCollapsed&&n.getFirstPosition().isEqual(e.start)&&this.setSelection(i),new Ii(i)}return this._wrapRange(e,t);var o}unwrap(e,t){if(!(t instanceof Wi))throw new fe("view-writer-unwrap-invalid-attribute",this.document);if(hn(e,this.document),e.isCollapsed)return e;const{start:o,end:i}=this._breakAttributesRange(e,!0),n=o.parent,s=this._unwrapChildren(n,o.offset,i.offset,t),r=this.mergeAttributes(s.start);r.isEqual(s.start)||s.end.offset--;const a=this.mergeAttributes(s.end);return new Ii(r,a)}rename(e,t){const o=new Ci(this.document,e,t.getAttributes());return this.insert(Si._createAfter(t),o),this.move(Ii._createIn(t),Si._createAt(o,0)),this.remove(Ii._createOn(t)),o}clearClonedElementsGroup(e){this._cloneGroups.delete(e)}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}createSlot(e="children"){if(!this._slotFactory)throw new fe("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,e)}_registerSlotFactory(e){this._slotFactory=e}_clearSlotFactory(){this._slotFactory=null}_insertNodes(e,t,o){let i,n;if(i=o?nn(e):e.parent.is("$text")?e.parent.parent:e.parent,!i)throw new fe("view-writer-invalid-position-container",this.document);n=o?this._breakAttributes(e,!0):e.parent.is("$text")?an(e):e;const s=i._insertChild(n.offset,t);for(const e of t)this._addToClonedElementsGroup(e);const r=n.getShiftedBy(s),a=this.mergeAttributes(n);a.isEqual(n)||r.offset--;const l=this.mergeAttributes(r);return new Ii(a,l)}_wrapChildren(e,t,o,i){let n=t;const s=[];for(;n!1,e.parent._insertChild(e.offset,o);const i=new Ii(e,e.getShiftedBy(1));this.wrap(i,t);const n=new Si(o.parent,o.index);o._remove();const s=n.nodeBefore,r=n.nodeAfter;return s&&s.is("view:$text")&&r&&r.is("view:$text")?ln(s,r):rn(n)}_breakAttributesRange(e,t=!1){const o=e.start,i=e.end;if(hn(e,this.document),e.isCollapsed){const o=this._breakAttributes(e.start,t);return new Ii(o,o)}const n=this._breakAttributes(i,t),s=n.parent.childCount,r=this._breakAttributes(o,t);return n.offset+=n.parent.childCount-s,new Ii(r,n)}_breakAttributes(e,t=!1){const o=e.offset,i=e.parent;if(e.parent.is("emptyElement"))throw new fe("view-writer-cannot-break-empty-element",this.document);if(e.parent.is("uiElement"))throw new fe("view-writer-cannot-break-ui-element",this.document);if(e.parent.is("rawElement"))throw new fe("view-writer-cannot-break-raw-element",this.document);if(!t&&i.is("$text")&&un(i.parent))return e.clone();if(un(i))return e.clone();if(i.is("$text"))return this._breakAttributes(an(e),t);if(o==i.childCount){const e=new Si(i.parent,i.index+1);return this._breakAttributes(e,t)}if(0===o){const e=new Si(i.parent,i.index);return this._breakAttributes(e,t)}{const e=i.index+1,n=i._clone();i.parent._insertChild(e,n),this._addToClonedElementsGroup(n);const s=i.childCount-o,r=i._removeChildren(o,s);n._appendChild(r);const a=new Si(i.parent,e);return this._breakAttributes(a,t)}}_addToClonedElementsGroup(e){if(!e.root.is("rootElement"))return;if(e.is("element"))for(const t of e.getChildren())this._addToClonedElementsGroup(t);const t=e.id;if(!t)return;let o=this._cloneGroups.get(t);o||(o=new Set,this._cloneGroups.set(t,o)),o.add(e),e._clonesGroup=o}_removeFromClonedElementsGroup(e){if(e.is("element"))for(const t of e.getChildren())this._removeFromClonedElementsGroup(t);const t=e.id;if(!t)return;const o=this._cloneGroups.get(t);o&&o.delete(e)}}function nn(e){let t=e.parent;for(;!un(t);){if(!t)return;t=t.parent}return t}function sn(e,t){return e.priorityt.priority)&&e.getIdentity()o instanceof e)))throw new fe("view-writer-insert-invalid-node-type",t);o.is("$text")||dn(o.getChildren(),t)}}function un(e){return e&&(e.is("containerElement")||e.is("documentFragment"))}function hn(e,t){const o=nn(e.start),i=nn(e.end);if(!o||!i||o!==i)throw new fe("view-writer-invalid-range-container",t)}const mn=e=>e.createTextNode(" "),gn=e=>{const t=e.createElement("span");return t.dataset.ckeFiller="true",t.innerText=" ",t},pn=e=>{const t=e.createElement("br");return t.dataset.ckeFiller="true",t},fn="⁠".repeat(7);function bn(e){return"string"==typeof e?e.substr(0,7)===fn:at(e)&&e.data.substr(0,7)===fn}function wn(e){return 7==e.data.length&&bn(e)}function yn(e){const t="string"==typeof e?e:e.data;return bn(e)?t.slice(7):t}function _n(e,t){if(t.keyCode==qt.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;bn(t)&&o<=7&&e.collapse(t,0)}}}class kn extends(Be()){domDocuments=new Set;domConverter;markedAttributes=new Set;markedChildren=new Set;markedTexts=new Set;selection;_inlineFiller=null;_fakeSelectionContainer=null;constructor(e,t){super(),this.domConverter=e,this.selection=t,this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),Y.isBlink&&!Y.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()}))}markToSync(e,t){if("text"===e)this.domConverter.mapViewToDom(t.parent)&&this.markedTexts.add(t);else{if(!this.domConverter.mapViewToDom(t))return;if("attributes"===e)this.markedAttributes.add(t);else{if("children"!==e)throw new fe("view-renderer-unknown-type",this);this.markedChildren.add(t)}}}render(){if(this.isComposing&&!Y.isAndroid)return;let e=null;const t=!(Y.isBlink&&!Y.isAndroid)||!this.isSelecting;for(const e of this.markedChildren)this._updateChildrenMappings(e);t?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?e=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(e=this.selection.getFirstPosition(),this.markedChildren.add(e.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(e=this.domConverter.domPositionToView(this._inlineFiller),e&&e.parent.is("$text")&&(e=Si._createBefore(e.parent)));for(const e of this.markedAttributes)this._updateAttrs(e);for(const t of this.markedChildren)this._updateChildren(t,{inlineFillerPosition:e});for(const t of this.markedTexts)!this.markedChildren.has(t.parent)&&this.domConverter.mapViewToDom(t.parent)&&this._updateText(t,{inlineFillerPosition:e});if(t)if(e){const t=this.domConverter.viewPositionToDom(e),o=t.parent.ownerDocument;bn(t.parent)?this._inlineFiller=t.parent:this._inlineFiller=vn(o,t.parent,t.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.domConverter._clearTemporaryCustomProperties(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(e){const t=this.domConverter.mapViewToDom(e);if(!t)return;const o=Array.from(t.childNodes),i=Array.from(this.domConverter.viewChildrenToDom(e,{withChildren:!1})),n=this._diffNodeLists(o,i),s=this._findUpdateActions(n,o,i,Cn);if(-1!==s.indexOf("update")){const t={equal:0,insert:0,delete:0};for(const n of s)if("update"===n){const n=t.equal+t.insert,s=t.equal+t.delete,r=e.getChild(n);!r||r.is("uiElement")||r.is("rawElement")||this._updateElementMappings(r,o[s]),Pt(i[n]),t.equal++}else t[n]++}}_updateElementMappings(e,t){this.domConverter.unbindDomElement(t),this.domConverter.bindElements(t,e),this.markedChildren.add(e),this.markedAttributes.add(e)}_getInlineFillerPosition(){const e=this.selection.getFirstPosition();return e.parent.is("$text")?Si._createBefore(e.parent):e}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=this.domConverter.viewPositionToDom(e);return!!(t&&at(t.parent)&&bn(t.parent))}_removeInlineFiller(){const e=this._inlineFiller;if(!bn(e))throw new fe("view-renderer-filler-was-lost",this);wn(e)?e.remove():e.data=e.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=e.parent,o=e.offset;if(!this.domConverter.mapViewToDom(t.root))return!1;if(!t.is("element"))return!1;if(!function(e){if("false"==e.getAttribute("contenteditable"))return!1;const t=e.findAncestor((e=>e.hasAttribute("contenteditable")));return!t||"true"==t.getAttribute("contenteditable")}(t))return!1;const i=e.nodeBefore,n=e.nodeAfter;return!(i instanceof si||n instanceof si)&&(!!(o!==t.getFillerOffset()||i&&i.is("element","br"))&&(!Y.isAndroid||!i&&!n))}_updateText(e,t){const o=this.domConverter.findCorrespondingDomText(e);let i=this.domConverter.viewToDom(e).data;const n=t.inlineFillerPosition;n&&n.parent==e.parent&&n.offset==e.index&&(i=fn+i),this._updateTextNode(o,i)}_updateAttrs(e){const t=this.domConverter.mapViewToDom(e);if(t){for(const o of Array.from(t.attributes)){const i=o.name;e.hasAttribute(i)||this.domConverter.removeDomElementAttribute(t,i)}for(const o of e.getAttributeKeys())this.domConverter.setDomElementAttribute(t,o,e.getAttribute(o),e)}}_updateChildren(e,t){const o=this.domConverter.mapViewToDom(e);if(!o)return;if(Y.isAndroid){let e=null;for(const t of Array.from(o.childNodes)){if(e&&at(e)&&at(t)){o.normalize();break}e=t}}const i=t.inlineFillerPosition,n=o.childNodes,s=Array.from(this.domConverter.viewChildrenToDom(e,{bind:!0}));i&&i.parent===e&&vn(o.ownerDocument,s,i.offset);const r=this._diffNodeLists(n,s),a=this._findUpdateActions(r,n,s,An);let l=0;const c=new Set;for(const e of a)"delete"===e?(c.add(n[l]),Pt(n[l])):"equal"!==e&&"update"!==e||l++;l=0;for(const e of a)"insert"===e?(kt(o,l,s[l]),l++):"update"===e?(this._updateTextNode(n[l],s[l].data),l++):"equal"===e&&(this._markDescendantTextToSync(this.domConverter.domToView(s[l])),l++);for(const e of c)e.parentNode||this.domConverter.unbindDomElement(e)}_diffNodeLists(e,t){return de(e=function(e,t){const o=Array.from(e);if(0==o.length||!t)return o;o[o.length-1]==t&&o.pop();return o}(e,this._fakeSelectionContainer),t,xn.bind(null,this.domConverter))}_findUpdateActions(e,t,o,i){if(-1===e.indexOf("insert")||-1===e.indexOf("delete"))return e;let n=[],s=[],r=[];const a={equal:0,insert:0,delete:0};for(const l of e)"insert"===l?r.push(o[a.equal+a.insert]):"delete"===l?s.push(t[a.equal+a.delete]):(n=n.concat(de(s,r,i).map((e=>"equal"===e?"update":e))),n.push("equal"),s=[],r=[]),a[l]++;return n.concat(de(s,r,i).map((e=>"equal"===e?"update":e)))}_updateTextNode(e,t){const o=e.data;o!=t&&(Y.isAndroid&&this.isComposing&&o.replace(/\u00A0/g," ")==t.replace(/\u00A0/g," ")||this._updateTextNodeInternal(e,t))}_updateTextNodeInternal(e,t){const o=ae(e.data,t);for(const t of o)"insert"===t.type?e.insertData(t.index,t.values.join("")):e.deleteData(t.index,t.howMany)}_markDescendantTextToSync(e){if(e)if(e.is("$text"))this.markedTexts.add(e);else if(e.is("element"))for(const t of e.getChildren())this._markDescendantTextToSync(t)}_updateSelection(){if(Y.isBlink&&!Y.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;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._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(e)):this.isComposing&&Y.isAndroid||this._updateDomSelection(e):!this.selection.isFake&&this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected&&this._removeFakeSelection()}_updateFakeSelection(e){const t=e.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(e){const t=e.createElement("div");return t.className="ck-fake-selection-container",Object.assign(t.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),t.textContent=" ",t}(t));const o=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(o,this.selection),!this._fakeSelectionNeedsUpdate(e))return;o.parentElement&&o.parentElement==e||e.appendChild(o),o.textContent=this.selection.fakeSelectionLabel||" ";const i=t.getSelection(),n=t.createRange();i.removeAllRanges(),n.selectNodeContents(o),i.addRange(n)}_updateDomSelection(e){const t=e.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(t))return;const o=this.domConverter.viewPositionToDom(this.selection.anchor),i=this.domConverter.viewPositionToDom(this.selection.focus);t.setBaseAndExtent(o.parent,o.offset,i.parent,i.offset),Y.isGecko&&function(e,t){let o=e.parent,i=e.offset;at(o)&&wn(o)&&(i=_t(o)+1,o=o.parentNode);if(o.nodeType!=Node.ELEMENT_NODE||i!=o.childNodes.length-1)return;const n=o.childNodes[i];n&&"BR"==n.tagName&&t.addRange(t.getRangeAt(0))}(i,t)}_domSelectionNeedsUpdate(e){if(!this.domConverter.isDomSelectionCorrect(e))return!0;const t=e&&this.domConverter.domSelectionToView(e);return(!t||!this.selection.isEqual(t))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(t))}_fakeSelectionNeedsUpdate(e){const t=this._fakeSelectionContainer,o=e.ownerDocument.getSelection();return!t||t.parentElement!==e||(o.anchorNode!==t&&!t.contains(o.anchorNode)||t.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const e of this.domDocuments){const t=e.getSelection();if(t.rangeCount){const o=e.activeElement,i=this.domConverter.mapDomToView(o);o&&i&&t.removeAllRanges()}}}_removeFakeSelection(){const e=this._fakeSelectionContainer;e&&e.remove()}_updateFocus(){if(this.isFocused){const e=this.selection.editableElement;e&&this.domConverter.focus(e)}}}function vn(e,t,o){const i=t instanceof Array?t:t.childNodes,n=i[o];if(at(n))return n.data=fn+n.data,n;{const n=e.createTextNode(fn);return Array.isArray(t)?i.splice(o,0,n):kt(t,o,n),n}}function Cn(e,t){return Qe(e)&&Qe(t)&&!at(e)&&!at(t)&&!vt(e)&&!vt(t)&&e.tagName.toLowerCase()===t.tagName.toLowerCase()}function An(e,t){return Qe(e)&&Qe(t)&&at(e)&&at(t)}function xn(e,t,o){return t===o||(at(t)&&at(o)?t.data===o.data:!(!e.isBlockFiller(t)||!e.isBlockFiller(o)))}const En=pn(J.document),Tn=mn(J.document),Pn=gn(J.document),Sn="data-ck-unsafe-attribute-",In="data-ck-unsafe-element";class Rn{document;renderingMode;blockFillerMode;preElements;blockElements;inlineObjectElements;unsafeElements;_domDocument;_domToViewMapping=new WeakMap;_viewToDomMapping=new WeakMap;_fakeSelectionMapping=new WeakMap;_rawContentElementMatcher=new ui;_inlineObjectElementMatcher=new ui;_elementsWithTemporaryCustomProperties=new Set;constructor(e,{blockFillerMode:t,renderingMode:o="editing"}={}){this.document=e,this.renderingMode=o,this.blockFillerMode=t||("editing"===o?"br":"nbsp"),this.preElements=["pre","textarea"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?J.document:J.document.implementation.createHTMLDocument("")}get domDocument(){return this._domDocument}bindFakeSelection(e,t){this._fakeSelectionMapping.set(e,new Oi(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 e.children)this.unbindDomElement(t)}}bindDocumentFragments(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}shouldRenderAttribute(e,t,o){return"data"===this.renderingMode||!(e=e.toLowerCase()).startsWith("on")&&("srcdoc"!==e&&("img"===o&&("src"===e||"srcset"===e)||("source"===o&&"srcset"===e||!t.replace(/\s+/g,"").match(/^(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(e,t){if("data"===this.renderingMode)return void(e.innerHTML=t);const o=(new DOMParser).parseFromString(t,"text/html"),i=o.createDocumentFragment(),n=o.body.childNodes;for(;n.length>0;)i.appendChild(n[0]);const s=o.createTreeWalker(i,NodeFilter.SHOW_ELEMENT),r=[];let a;for(;a=s.nextNode();)r.push(a);for(const e of r){for(const t of e.getAttributeNames())this.setDomElementAttribute(e,t,e.getAttribute(t));const t=e.tagName.toLowerCase();this._shouldRenameElement(t)&&(Bn(t),e.replaceWith(this._createReplacementDomElement(t,e)))}for(;e.firstChild;)e.firstChild.remove();e.append(i)}viewToDom(e,t={}){if(e.is("$text")){const t=this._processDataFromViewText(e);return this._domDocument.createTextNode(t)}{const o=e;if(this.mapViewToDom(o)){if(!o.getCustomProperty("editingPipeline:doNotReuseOnce"))return this.mapViewToDom(o);this._elementsWithTemporaryCustomProperties.add(o)}let i;if(o.is("documentFragment"))i=this._domDocument.createDocumentFragment(),t.bind&&this.bindDocumentFragments(i,o);else{if(o.is("uiElement"))return i="$comment"===o.name?this._domDocument.createComment(o.getCustomProperty("$rawContent")):o.render(this._domDocument,this),t.bind&&this.bindElements(i,o),i;this._shouldRenameElement(o.name)?(Bn(o.name),i=this._createReplacementDomElement(o.name)):i=o.hasAttribute("xmlns")?this._domDocument.createElementNS(o.getAttribute("xmlns"),o.name):this._domDocument.createElement(o.name),o.is("rawElement")&&o.render(i,this),t.bind&&this.bindElements(i,o);for(const e of o.getAttributeKeys())this.setDomElementAttribute(i,e,o.getAttribute(e),o)}if(!1!==t.withChildren)for(const e of this.viewChildrenToDom(o,t))i instanceof HTMLTemplateElement?i.content.appendChild(e):i.appendChild(e);return i}}setDomElementAttribute(e,t,o,i){const n=this.shouldRenderAttribute(t,o,e.tagName.toLowerCase())||i&&i.shouldRenderUnsafeAttribute(t);n||be("domconverter-unsafe-attribute-detected",{domElement:e,key:t,value:o}),function(e){try{J.document.createAttribute(e)}catch{return!1}return!0}(t)?(e.hasAttribute(t)&&!n?e.removeAttribute(t):e.hasAttribute(Sn+t)&&n&&e.removeAttribute(Sn+t),e.setAttribute(n?t:Sn+t,o)):be("domconverter-invalid-attribute-detected",{domElement:e,key:t,value:o})}removeDomElementAttribute(e,t){t!=In&&(e.removeAttribute(t),e.removeAttribute(Sn+t))}*viewChildrenToDom(e,t={}){const o=e.getFillerOffset&&e.getFillerOffset();let i=0;for(const n of e.getChildren()){o===i&&(yield this._getBlockFiller());const e=n.is("element")&&!!n.getCustomProperty("dataPipeline:transparentRendering")&&!to(n.getAttributes());if(e&&"data"==this.renderingMode)if(n.is("rawElement")){const e=this._domDocument.createElement(n.name);n.render(e,this),yield*[...e.childNodes]}else yield*this.viewChildrenToDom(n,t);else e&&be("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:n}),yield this.viewToDom(n,t);i++}o===i&&(yield this._getBlockFiller())}viewRangeToDom(e){const t=this.viewPositionToDom(e.start),o=this.viewPositionToDom(e.end),i=this._domDocument.createRange();return i.setStart(t.parent,t.offset),i.setEnd(o.parent,o.offset),i}viewPositionToDom(e){const t=e.parent;if(t.is("$text")){const o=this.findCorrespondingDomText(t);if(!o)return null;let i=e.offset;return bn(o)&&(i+=7),o.data&&i>o.data.length&&(i=o.data.length),{parent:o,offset:i}}{let o,i,n;if(0===e.offset){if(o=this.mapViewToDom(t),!o)return null;n=o.childNodes[0]}else{const t=e.nodeBefore;if(i=t.is("$text")?this.findCorrespondingDomText(t):this.mapViewToDom(t),!i)return null;o=i.parentNode,n=i.nextSibling}if(at(n)&&bn(n))return{parent:n,offset:7};return{parent:o,offset:i?_t(i)+1:0}}}domToView(e,t={}){const o=[],i=this._domToView(e,t,o),n=i.next().value;return n?(i.next(),this._processDomInlineNodes(null,o,t),"br"==this.blockFillerMode&&Mn(n)||n.is("$text")&&0==n.data.length?null:n):null}*domChildrenToView(e,t={},o=[]){let i=[];i=e instanceof HTMLTemplateElement?[...e.content.childNodes]:[...e.childNodes];for(let n=0;n{const{scrollLeft:t,scrollTop:o}=e;n.push([t,o])})),t.focus({preventScroll:!0}),On(t,(e=>{const[t,o]=n.shift();e.scrollLeft=t,e.scrollTop=o})),J.window.scrollTo(o,i)}_clearDomSelection(){const e=this.mapViewToDom(this.document.selection.editableElement);if(!e)return;const t=e.ownerDocument.defaultView.getSelection(),o=this.domSelectionToView(t);o&&o.rangeCount>0&&t.removeAllRanges()}isElement(e){return e&&e.nodeType==Node.ELEMENT_NODE}isDocumentFragment(e){return e&&e.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(e){return"br"==this.blockFillerMode?e.isEqualNode(En):!!Nn(e,this.blockElements)||(e.isEqualNode(Pn)||function(e,t){const o=e.isEqualNode(Tn);return o&&Vn(e,t)&&1===e.parentNode.childNodes.length}(e,this.blockElements))}isDomSelectionBackward(e){if(e.isCollapsed)return!1;const t=this._domDocument.createRange();try{t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset)}catch{return!1}const o=t.collapsed;return t.detach(),o}getHostViewElement(e){const t=it(e);for(t.pop();t.length;){const e=t.pop(),o=this._domToViewMapping.get(e);if(o&&(o.is("uiElement")||o.is("rawElement")))return o}return null}isDomSelectionCorrect(e){return this._isDomSelectionPositionCorrect(e.anchorNode,e.anchorOffset)&&this._isDomSelectionPositionCorrect(e.focusNode,e.focusOffset)}registerRawContentMatcher(e){this._rawContentElementMatcher.add(e)}registerInlineObjectMatcher(e){this._inlineObjectElementMatcher.add(e)}_clearTemporaryCustomProperties(){for(const e of this._elementsWithTemporaryCustomProperties)e._removeCustomProperty("editingPipeline:doNotReuseOnce");this._elementsWithTemporaryCustomProperties.clear()}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return mn(this._domDocument);case"markedNbsp":return gn(this._domDocument);case"br":return pn(this._domDocument)}}_isDomSelectionPositionCorrect(e,t){if(at(e)&&bn(e)&&t<7)return!1;if(this.isElement(e)&&bn(e.childNodes[t]))return!1;const o=this.mapDomToView(e);return!o||!o.is("uiElement")&&!o.is("rawElement")}*_domToView(e,t,o){if("br"!=this.blockFillerMode&&Nn(e,this.blockElements))return null;const i=this.getHostViewElement(e);if(i)return i;if(vt(e)&&t.skipComments)return null;if(at(e)){if(wn(e))return null;{const t=e.data;if(""===t)return null;const i=new si(this.document,t);return o.push(i),i}}{let i=this.mapDomToView(e);if(i)return this._isInlineObjectElement(i)&&o.push(i),i;if(this.isDocumentFragment(e))i=new tn(this.document),t.bind&&this.bindDocumentFragments(e,i);else{i=this._createViewElement(e,t),t.bind&&this.bindElements(e,i);const n=e.attributes;if(n)for(let e=n.length,t=0;t0?t[e-1]:null,l=e+1e.is("element")&&t.includes(e.name)))}(e,this.preElements))return!0;for(const t of e.getAncestors({parentFirst:!0}))if(t.is("element")&&t.hasStyle("white-space")&&"inherit"!==t.getStyle("white-space"))return["pre","pre-wrap","break-spaces"].includes(t.getStyle("white-space"));return!1}_getTouchingInlineViewNode(e,t){const o=new Pi({startPosition:t?Si._createAfter(e):Si._createBefore(e),direction:t?"forward":"backward"});for(const{item:e}of o){if(e.is("$textProxy"))return e;if(!e.is("element")||!e.getCustomProperty("dataPipeline:transparentRendering")){if(e.is("element","br"))return null;if(this._isInlineObjectElement(e))return e;if(e.is("containerElement")||this._isBlockViewElement(e))return null}}return null}_isBlockDomElement(e){return this.isElement(e)&&this.blockElements.includes(e.tagName.toLowerCase())}_isBlockViewElement(e){return e.is("element")&&this.blockElements.includes(e.name)}_isInlineObjectElement(e){return!!e.is("element")&&("br"==e.name||this.inlineObjectElements.includes(e.name)||!!this._inlineObjectElementMatcher.match(e))}_createViewElement(e,t){if(vt(e))return new Zi(this.document,"$comment");const o=t.keepOriginalCase?e.tagName:e.tagName.toLowerCase();return new _i(this.document,o)}_isViewElementWithRawContent(e,t){return!1!==t.withChildren&&e.is("element")&&!!this._rawContentElementMatcher.match(e)}_shouldRenameElement(e){const t=e.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(t)}_createReplacementDomElement(e,t){const o=this._domDocument.createElement("span");if(o.setAttribute(In,e),t){for(;t.firstChild;)o.appendChild(t.firstChild);for(const e of t.getAttributeNames())o.setAttribute(e,t.getAttribute(e))}return o}}function On(e,t){let o=e;for(;o;)t(o),o=o.parentElement}function Vn(e,t){const o=e.parentNode;return!!o&&!!o.tagName&&t.includes(o.tagName.toLowerCase())}function Dn(e,t,o){return" "==t&&e&&e.is("element")&&1==e.childCount&&o.includes(e.name)}function Fn(e,t){return" "==t&&e&&e.is("element","span")&&1==e.childCount&&e.hasAttribute("data-cke-filler")}function Mn(e){return e.is("element","br")&&e.hasAttribute("data-cke-filler")}function Nn(e,t){return"BR"===e.tagName&&Vn(e,t)&&1===e.parentNode.childNodes.length}function Bn(e){"script"===e&&be("domconverter-unsafe-script-element-detected"),"style"===e&&be("domconverter-unsafe-style-element-detected")}class Ln extends(et()){view;document;_isEnabled=!1;constructor(e){super(),this.view=e,this.document=e.document}get isEnabled(){return this._isEnabled}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(e){return e&&3===e.nodeType&&(e=e.parentNode),!(!e||1!==e.nodeType)&&e.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}class zn{view;document;domEvent;domTarget;constructor(e,t,o){this.view=e,this.document=e.document,this.domEvent=t,this.domTarget=t.target,No(this,o)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class jn extends Ln{useCapture=!1;usePassive=!1;observe(e){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((t=>{this.listenTo(e,t,((e,t)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(t.target)&&this.onDomEvent(t)}),{useCapture:this.useCapture,usePassive:this.usePassive})}))}stopObserving(e){this.stopListening(e)}fire(e,t,o){this.isEnabled&&this.document.fire(e,new zn(this.view,t,o))}}class qn extends jn{domEventType=["keydown","keyup"];onDomEvent(e){const t={keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,metaKey:e.metaKey,get keystroke(){return Ht(this)}};this.fire(e.type,e,t)}}class $n extends Ln{_fireSelectionChangeDoneDebounced;constructor(e){super(e),this._fireSelectionChangeDoneDebounced=zo((e=>{this.document.fire("selectionChangeDone",e)}),200)}observe(){const e=this.document;e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&o.preventDefault()}),{context:"$capture"}),e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&this._handleSelectionMove(o.keyCode)}),{priority:"lowest"})}stopObserving(){}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(e){const t=this.document.selection,o=new Oi(t.getRanges(),{backward:t.isBackward,fake:!1});e!=qt.arrowleft&&e!=qt.arrowup||o.setTo(o.getFirstPosition()),e!=qt.arrowright&&e!=qt.arrowdown||o.setTo(o.getLastPosition());const i={oldSelection:t,newSelection:o,domSelection:null};this.document.fire("selectionChange",i),this._fireSelectionChangeDoneDebounced(i)}}class Hn extends Ln{domConverter;_config;_domElements;_mutationObserver;constructor(e){super(e),this._config={childList:!0,characterData:!0,subtree:!0},this.domConverter=e.domConverter,this._domElements=new Set,this._mutationObserver=new window.MutationObserver(this._onMutations.bind(this))}flush(){this._onMutations(this._mutationObserver.takeRecords())}observe(e){this._domElements.add(e),this.isEnabled&&this._mutationObserver.observe(e,this._config)}stopObserving(e){if(this._domElements.delete(e),this.isEnabled){this._mutationObserver.disconnect();for(const e of this._domElements)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){if(0===e.length)return;const t=this.domConverter,o=new Set,i=new Set;for(const o of e){const e=t.mapDomToView(o.target);e&&(e.is("uiElement")||e.is("rawElement")||"childList"!==o.type||this._isBogusBrMutation(o)||i.add(e))}for(const n of e){const e=t.mapDomToView(n.target);if((!e||!e.is("uiElement")&&!e.is("rawElement"))&&"characterData"===n.type){const e=t.findCorrespondingViewText(n.target);e&&!i.has(e.parent)?o.add(e):!e&&bn(n.target)&&i.add(t.mapDomToView(n.target.parentNode))}}const n=[];for(const e of o)n.push({type:"text",node:e});for(const e of i){const o=t.mapViewToDom(e);Uo(Array.from(e.getChildren()),Array.from(t.domChildrenToView(o,{withChildren:!1})),Wn)||n.push({type:"children",node:e})}n.length&&this.document.fire("mutations",{mutations:n})}_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")}}function Wn(e,t){if(!Array.isArray(e))return e===t||!(!e.is("$text")||!t.is("$text"))&&e.data===t.data}class Un extends jn{_renderTimeoutId=null;_isFocusChanging=!1;domEventType=["focus","blur"];constructor(e){super(e),this.useCapture=!0;const t=this.document;t.on("focus",(()=>this._handleFocus())),t.on("blur",((e,t)=>this._handleBlur(t))),t.on("beforeinput",(()=>{t.isFocused||this._handleFocus()}),{priority:"highest"})}flush(){this._isFocusChanging&&(this._isFocusChanging=!1,this.document.isFocused=!0)}onDomEvent(e){this.fire(e.type,e)}destroy(){this._clearTimeout(),super.destroy()}_handleFocus(){this._clearTimeout(),this._isFocusChanging=!0,this._renderTimeoutId=setTimeout((()=>{this._renderTimeoutId=null,this.flush(),this.view.change((()=>{}))}),50)}_handleBlur(e){const t=this.document.selection.editableElement;null!==t&&t!==e.target||(this.document.isFocused=!1,this._isFocusChanging=!1,this.view.change((()=>{})))}_clearTimeout(){this._renderTimeoutId&&(clearTimeout(this._renderTimeoutId),this._renderTimeoutId=null)}}class Kn extends Ln{mutationObserver;focusObserver;selection;domConverter;_documents=new WeakSet;_fireSelectionChangeDoneDebounced;_clearInfiniteLoopInterval;_documentIsSelectingInactivityTimeoutDebounced;_loopbackCounter=0;_pendingSelectionChange=new Set;constructor(e){super(e),this.mutationObserver=e.getObserver(Hn),this.focusObserver=e.getObserver(Un),this.selection=this.document.selection,this.domConverter=e.domConverter,this._fireSelectionChangeDoneDebounced=zo((e=>{this.document.fire("selectionChangeDone",e)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=zo((()=>this.document.isSelecting=!1),5e3),this.view.document.on("change:isFocused",((e,t,o)=>{if(o&&this._pendingSelectionChange.size){for(const e of Array.from(this._pendingSelectionChange))this._handleSelectionChange(e);this._pendingSelectionChange.clear()}}))}observe(e){const t=e.ownerDocument,o=()=>{this.document.isSelecting&&(this._handleSelectionChange(t),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(e,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(e,"keydown",o,{priority:"highest",useCapture:!0}),this.listenTo(e,"keyup",o,{priority:"highest",useCapture:!0}),this._documents.has(t)||(this.listenTo(t,"mouseup",o,{priority:"highest",useCapture:!0}),this.listenTo(t,"selectionchange",(()=>{this.document.isComposing&&!Y.isAndroid||(this._handleSelectionChange(t),this._documentIsSelectingInactivityTimeoutDebounced())})),this.listenTo(this.view.document,"compositionstart",(()=>{this._handleSelectionChange(t)}),{priority:"lowest"}),this._documents.add(t))}stopObserving(e){this.stopListening(e)}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_reportInfiniteLoop(){}_handleSelectionChange(e){if(!this.isEnabled)return;const t=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(t.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(t);if(0!=o.rangeCount)if(this.view.hasDomSelection=!0,this.focusObserver.flush(),this.view.document.isFocused||this.view.document.isReadOnly){if(this._pendingSelectionChange.delete(e),!this.selection.isEqual(o)||!this.domConverter.isDomSelectionCorrect(t))if(++this._loopbackCounter>60)this._reportInfiniteLoop();else if(function(e){return Array.from(e.getRanges()).flatMap((e=>[e.start.root,e.end.root])).every((e=>e&&e.is("rootElement")))}(o))if(this.selection.isSimilar(o))this.view.forceRender();else{const e={oldSelection:this.selection,newSelection:o,domSelection:t};this.document.fire("selectionChange",e),this._fireSelectionChangeDoneDebounced(e)}else this.view.forceRender()}else this._pendingSelectionChange.add(e);else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class Gn extends jn{domEventType=["compositionstart","compositionupdate","compositionend"];constructor(e){super(e);const t=this.document;t.on("compositionstart",(()=>{t.isComposing=!0})),t.on("compositionend",(()=>{t.isComposing=!1}))}onDomEvent(e){this.fire(e.type,e,{data:e.data})}}class Jn{_files;_native;constructor(e,t={}){this._files=t.cacheFiles?Zn(e):null,this._native=e}get files(){return this._files||(this._files=Zn(this._native)),this._files}get types(){return this._native.types}getData(e){return this._native.getData(e)}setData(e,t){this._native.setData(e,t)}set effectAllowed(e){this._native.effectAllowed=e}get effectAllowed(){return this._native.effectAllowed}set dropEffect(e){this._native.dropEffect=e}get dropEffect(){return this._native.dropEffect}setDragImage(e,t,o){this._native.setDragImage(e,t,o)}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}function Zn(e){const t=Array.from(e.files||[]),o=Array.from(e.items||[]);return t.length?t:o.filter((e=>"file"===e.kind)).map((e=>e.getAsFile()))}class Qn extends jn{domEventType="beforeinput";onDomEvent(e){const t=e.getTargetRanges(),o=this.view,i=o.document;let n=null,s=null,r=[];if(e.dataTransfer&&(n=new Jn(e.dataTransfer)),null!==e.data?s=e.data:n&&(s=n.getData("text/plain")),i.selection.isFake)r=Array.from(i.selection.getRanges()),e.preventDefault();else if(t.length)r=t.map((t=>{let i=o.domConverter.domPositionToView(t.startContainer,t.startOffset);const n=o.domConverter.domPositionToView(t.endContainer,t.endOffset);if(i&&bn(t.startContainer)&&t.startOffset<7){e.preventDefault();let o=7-t.startOffset;i=i.getLastMatchingPosition((e=>!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))||!(!e.item.is("$textProxy")||!o--)),{direction:"backward",singleCharacters:!0})}return function(e,t){for(;e.parentNode;){if(at(e)){if(t!=e.data.length)return!1}else if(t!=e.childNodes.length)return!1;if((t=_t(e)+1)<(e=e.parentNode).childNodes.length&&bn(e.childNodes[t]))return!0}return!1}(t.endContainer,t.endOffset)&&e.preventDefault(),i?o.createRange(i,n):n?o.createRange(n):void 0})).filter((e=>!!e));else if(Y.isAndroid){const t=e.target.ownerDocument.defaultView.getSelection();r=Array.from(o.domConverter.domSelectionToView(t).getRanges())}if(Y.isAndroid&&"insertCompositionText"==e.inputType&&s&&s.endsWith("\n"))this.fire(e.type,e,{inputType:"insertParagraph",targetRanges:[o.createRange(r[0].end)]});else if(["insertText","insertReplacementText"].includes(e.inputType)&&s&&s.includes("\n")){const t=s.split(/\n{1,2}/g);let o=r;e.preventDefault();for(let s=0;s{if(this.isEnabled&&((o=t.keyCode)==qt.arrowright||o==qt.arrowleft||o==qt.arrowup||o==qt.arrowdown)){const o=new Di(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(o,t),o.stop.called&&e.stop()}var o}))}observe(){}stopObserving(){}}class Xn extends Ln{constructor(e){super(e);const t=this.document;t.on("keydown",((e,o)=>{if(!this.isEnabled||o.keyCode!=qt.tab||o.ctrlKey)return;const i=new Di(t,"tab",t.selection.getFirstRange());t.fire(i,o),i.stop.called&&e.stop()}))}observe(){}stopObserving(){}}class es extends(Be()){document;domConverter;domRoots=new Map;_renderer;_initialDomRootAttributes=new WeakMap;_observers=new Map;_writer;_ongoingChange=!1;_postFixersInProgress=!1;_renderingDisabled=!1;_hasChangedSinceTheLastRendering=!1;constructor(e){super(),this.document=new Hi(e),this.domConverter=new Rn(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new kn(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new on(this.document),this.addObserver(Hn),this.addObserver(Un),this.addObserver(Kn),this.addObserver(qn),this.addObserver($n),this.addObserver(Gn),this.addObserver(Yn),this.addObserver(Qn),this.addObserver(Xn),this.document.on("arrowKey",_n,{priority:"low"}),Qi(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0})),Y.isiOS&&this.listenTo(this.document,"blur",((e,t)=>{this.domConverter.mapDomToView(t.domEvent.relatedTarget)||this.domConverter._clearDomSelection()})),this.listenTo(this.document,"mutations",((e,{mutations:t})=>{t.forEach((e=>this._renderer.markToSync(e.type,e.node)))}),{priority:"low"}),this.listenTo(this.document,"mutations",(()=>{this.forceRender()}),{priority:"lowest"})}attachDomRoot(e,t="main"){const o=this.document.getRoot(t);o._name=e.tagName.toLowerCase();const i={};for(const{name:t,value:n}of Array.from(e.attributes))i[t]=n,"class"===t?this._writer.addClass(n.split(" "),o):o.hasAttribute(t)||this._writer.setAttribute(t,n,o);this._initialDomRootAttributes.set(e,i);const n=()=>{this._writer.setAttribute("contenteditable",(!o.isReadOnly).toString(),o),o.isReadOnly?this._writer.addClass("ck-read-only",o):this._writer.removeClass("ck-read-only",o)};n(),this.domRoots.set(t,e),this.domConverter.bindElements(e,o),this._renderer.markToSync("children",o),this._renderer.markToSync("attributes",o),this._renderer.domDocuments.add(e.ownerDocument),o.on("change:children",((e,t)=>this._renderer.markToSync("children",t))),o.on("change:attributes",((e,t)=>this._renderer.markToSync("attributes",t))),o.on("change:text",((e,t)=>this._renderer.markToSync("text",t))),o.on("change:isReadOnly",(()=>this.change(n))),o.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const o of this._observers.values())o.observe(e,t)}detachDomRoot(e){const t=this.domRoots.get(e);Array.from(t.attributes).forEach((({name:e})=>t.removeAttribute(e)));const o=this._initialDomRootAttributes.get(t);for(const e in o)t.setAttribute(e,o[e]);this.domRoots.delete(e),this.domConverter.unbindDomElement(t);for(const e of this._observers.values())e.stopObserving(t)}getDomRoot(e="main"){return this.domRoots.get(e)}addObserver(e){let t=this._observers.get(e);if(t)return t;t=new e(this),this._observers.set(e,t);for(const[e,o]of this.domRoots)t.observe(o,e);return t.enable(),t}getObserver(e){return this._observers.get(e)}disableObservers(){for(const e of this._observers.values())e.disable()}enableObservers(){for(const e of this._observers.values())e.enable()}scrollToTheSelection({alignToTop:e,forceScroll:t,viewportOffset:o=20,ancestorOffset:i=20}={}){const n=this.document.selection.getFirstRange();if(!n)return;const s=j({alignToTop:e,forceScroll:t,viewportOffset:o,ancestorOffset:i});"number"==typeof o&&(o={top:o,bottom:o,left:o,right:o});const r={target:this.domConverter.viewRangeToDom(n),viewportOffset:o,ancestorOffset:i,alignToTop:e,forceScroll:t};this.fire("scrollToTheSelection",r,s),function({target:e,viewportOffset:t=0,ancestorOffset:o=0,alignToTop:i,forceScroll:n}){const s=Mt(e);let r=s,a=null;for(t=function(e){return"number"==typeof e?{top:e,bottom:e,left:e,right:e}:e}(t);r;){let l;l=Nt(r==s?e:a),Rt({parent:l,getRect:()=>Bt(e,r),alignToTop:i,ancestorOffset:o,forceScroll:n});let c=Bt(e,r);const d=Bt(l,r);if(c.height>d.height){const e=c.getIntersection(d);e&&(c=e)}if(It({window:r,rect:c,viewportOffset:t,alignToTop:i,forceScroll:n}),r.parent!=r){if(a=r.frameElement,r=r.parent,!a)return}else r=null}}(r)}focus(){if(!this.document.isFocused){const e=this.document.selection.editableElement;e&&(this.domConverter.focus(e),this.forceRender())}}change(e){if(this.isRenderingInProgress||this._postFixersInProgress)throw new fe("cannot-change-view-tree",this);try{if(this._ongoingChange)return e(this._writer);this._ongoingChange=!0;const t=e(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),t}catch(e){fe.rethrowUnexpectedError(e,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(Un).flush(),this.change((()=>{}))}destroy(){for(const e of this._observers.values())e.destroy();this.document.destroy(),this.stopListening()}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}_disableRendering(e){this._renderingDisabled=e,0==e&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class ts{is(){throw new Error("is() method is abstract")}}class os extends ts{textNode;data;offsetInText;constructor(e,t,o){if(super(),this.textNode=e,t<0||t>e.offsetSize)throw new fe("model-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.offsetSize)throw new fe("model-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const e=this.textNode.getPath();return e.length>0&&(e[e.length-1]+=this.offsetInText),e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}hasAttribute(e){return this.textNode.hasAttribute(e)}getAttribute(e){return this.textNode.getAttribute(e)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}os.prototype.is=function(e){return"$textProxy"===e||"model:$textProxy"===e||"textProxy"===e||"model:textProxy"===e};class is{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;_visitedParent;constructor(e){if(!e||!e.boundaries&&!e.startPosition)throw new fe("model-tree-walker-no-start-position",null);const t=e.direction||"forward";if("forward"!=t&&"backward"!=t)throw new fe("model-tree-walker-unknown-direction",e,{direction:t});this.direction=t,this.boundaries=e.boundaries||null,e.startPosition?this._position=e.startPosition.clone():this._position=ss._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",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,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}get position(){return this._position}skip(e){let t,o,i,n;do{i=this.position,n=this._visitedParent,({done:t,value:o}=this.next())}while(!t&&e(o));t||(this._position=i,this._visitedParent=n)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone(),this._visitedParent=e.parent}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const e=this.position,t=this.position.clone(),o=this._visitedParent;if(null===o.parent&&t.offset===o.maxOffset)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const i=rs(t,o),n=i||as(t,o,i);if(n&&n.is("model:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(t))return{done:!0,value:void 0};t.offset++}else t.path.push(0),this._visitedParent=n;return this._position=t,ns("elementStart",n,e,t,1)}if(n&&n.is("model:$text")){let i;if(this.singleCharacters)i=1;else{let e=n.endOffset;this._boundaryEndParent==o&&this.boundaries.end.offsete&&(e=this.boundaries.start.offset),i=t.offset-e}const n=t.offset-s.startOffset,r=new os(s,n-i,i);return t.offset-=i,this._position=t,ns("text",r,e,t,i)}return t.path.pop(),this._position=t,this._visitedParent=o.parent,ns("elementStart",o,e,t,1)}}function ns(e,t,o,i,n){return{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:i,length:n}}}class ss extends ts{root;path;stickiness;constructor(e,t,o="toNone"){if(super(),!e.is("element")&&!e.is("documentFragment"))throw new fe("model-position-root-invalid",e);if(!Array.isArray(t)||0===t.length)throw new fe("model-position-path-incorrect-format",e,{path:t});e.is("rootElement")?t=t.slice():(t=[...e.getPath(),...t],e=e.root),this.root=e,this.path=t,this.stickiness=o}get offset(){return this.path[this.path.length-1]}set offset(e){this.path[this.path.length-1]=e}get parent(){let e=this.root;for(let t=0;t1)return!1;if(1===t)return cs(e,this,o);if(-1===t)return cs(this,e,o)}return this.path.length===e.path.length||(this.path.length>e.path.length?ds(this.path,t):ds(e.path,t))}hasSameParentAs(e){if(this.root!==e.root)return!1;return"same"==We(this.getParentPath(),e.getParentPath())}getTransformedByOperation(e){let t;switch(e.type){case"insert":t=this._getTransformedByInsertOperation(e);break;case"move":case"remove":case"reinsert":t=this._getTransformedByMoveOperation(e);break;case"split":t=this._getTransformedBySplitOperation(e);break;case"merge":t=this._getTransformedByMergeOperation(e);break;default:t=ss._createAt(this)}return t}_getTransformedByInsertOperation(e){return this._getTransformedByInsertion(e.position,e.howMany)}_getTransformedByMoveOperation(e){return this._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany)}_getTransformedBySplitOperation(e){const t=e.movedRange;return t.containsPosition(this)||t.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(e.splitPosition,e.moveTargetPosition):e.graveyardPosition?this._getTransformedByMove(e.graveyardPosition,e.insertionPosition,1):this._getTransformedByInsertion(e.insertionPosition,1)}_getTransformedByMergeOperation(e){const t=e.movedRange;let o;return t.containsPosition(this)||t.start.isEqual(this)?(o=this._getCombined(e.sourcePosition,e.targetPosition),e.sourcePosition.isBefore(e.targetPosition)&&(o=o._getTransformedByDeletion(e.deletionPosition,1))):o=this.isEqual(e.deletionPosition)?ss._createAt(e.deletionPosition):this._getTransformedByMove(e.deletionPosition,e.graveyardPosition,1),o}_getTransformedByDeletion(e,t){const o=ss._createAt(this);if(this.root!=e.root)return o;if("same"==We(e.getParentPath(),this.getParentPath())){if(e.offsetthis.offset)return null;o.offset-=t}}else if("prefix"==We(e.getParentPath(),this.getParentPath())){const i=e.path.length-1;if(e.offset<=this.path[i]){if(e.offset+t>this.path[i])return null;o.path[i]-=t}}return o}_getTransformedByInsertion(e,t){const o=ss._createAt(this);if(this.root!=e.root)return o;if("same"==We(e.getParentPath(),this.getParentPath()))(e.offset=t;){if(e.path[i]+n!==o.maxOffset)return!1;n=1,i--,o=o.parent}return!0}(e,o+1))}function ds(e,t){for(;tt+1;){const t=i.maxOffset-o.offset;0!==t&&e.push(new us(o,o.getShiftedBy(t))),o.path=o.path.slice(0,-1),o.offset++,i=i.parent}for(;o.path.length<=this.end.path.length;){const t=this.end.path[o.path.length-1],i=t-o.offset;0!==i&&e.push(new us(o,o.getShiftedBy(i))),o.offset=t,o.path.push(0)}return e}getWalker(e={}){return e.boundaries=this,new is(e)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new is(e);for(const e of t)yield e.item}*getPositions(e={}){e.boundaries=this;const t=new is(e);yield t.position;for(const e of t)yield e.nextPosition}getTransformedByOperation(e){switch(e.type){case"insert":return this._getTransformedByInsertOperation(e);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(e);case"split":return[this._getTransformedBySplitOperation(e)];case"merge":return[this._getTransformedByMergeOperation(e)]}return[new us(this.start,this.end)]}getTransformedByOperations(e){const t=[new us(this.start,this.end)];for(const o of e)for(let e=0;e0?new this(o,i):new this(i,o)}static _createIn(e){return new this(ss._createAt(e,0),ss._createAt(e,e.maxOffset))}static _createOn(e){return this._createFromPositionAndShift(ss._createBefore(e),e.offsetSize)}static _createFromRanges(e){if(0===e.length)throw new fe("range-create-from-ranges-empty-array",null);if(1==e.length)return e[0].clone();const t=e[0];e.sort(((e,t)=>e.start.isAfter(t.start)?1:-1));const o=e.indexOf(t),i=new this(t.start,t.end);for(let t=o-1;t>=0&&e[t].end.isEqual(i.start);t--)i.start=ss._createAt(e[t].start);for(let t=o+1;t{if(t.viewPosition)return;const o=this._modelToViewMapping.get(t.modelPosition.parent);if(!o)throw new fe("mapping-model-position-view-parent-not-found",this,{modelPosition:t.modelPosition});t.viewPosition=this.findPositionIn(o,t.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((e,t)=>{if(t.modelPosition)return;const o=this.findMappedViewAncestor(t.viewPosition),i=this._viewToModelMapping.get(o),n=this._toModelOffset(t.viewPosition.parent,t.viewPosition.offset,o);t.modelPosition=ss._createAt(i,n)}),{priority:"low"})}bindElements(e,t){this._modelToViewMapping.set(e,t),this._viewToModelMapping.set(t,e)}unbindViewElement(e,t={}){const o=this.toModelElement(e);if(this._elementToMarkerNames.has(e))for(const t of this._elementToMarkerNames.get(e))this._unboundMarkerNames.add(t);if(t.defer)this._deferredBindingRemovals.set(e,e.root);else{this._viewToModelMapping.delete(e)&&this._cache.stopTracking(e),this._modelToViewMapping.get(o)==e&&this._modelToViewMapping.delete(o)}}unbindModelElement(e){const t=this.toViewElement(e);if(this._modelToViewMapping.delete(e),this._viewToModelMapping.get(t)==e){this._viewToModelMapping.delete(t)&&this._cache.stopTracking(t)}}bindElementToMarker(e,t){const o=this._markerNameToElements.get(t)||new Set;o.add(e);const i=this._elementToMarkerNames.get(e)||new Set;i.add(t),this._markerNameToElements.set(t,o),this._elementToMarkerNames.set(e,i)}unbindElementFromMarkerName(e,t){const o=this._markerNameToElements.get(t);o&&(o.delete(e),0==o.size&&this._markerNameToElements.delete(t));const i=this._elementToMarkerNames.get(e);i&&(i.delete(t),0==i.size&&this._elementToMarkerNames.delete(e))}flushUnboundMarkerNames(){const e=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),e}flushDeferredBindings(){for(const[e,t]of this._deferredBindingRemovals)e.root==t&&this.unbindViewElement(e);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(e){return this._viewToModelMapping.get(e)}toViewElement(e){return this._modelToViewMapping.get(e)}toModelRange(e){return new us(this.toModelPosition(e.start),this.toModelPosition(e.end))}toViewRange(e){return new Ii(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,t={}){const o={modelPosition:e,mapper:this,isPhantom:t.isPhantom};return this.fire("modelToViewPosition",o),o.viewPosition}markerNameToElements(e){const t=this._markerNameToElements.get(e);if(!t)return null;const o=new Set;for(const e of t)if(e.is("attributeElement"))for(const t of e.getElementsWithSameId())o.add(t);else o.add(e);return o}registerViewToModelLength(e,t){this._viewToModelLengthCallbacks.set(e,t)}findMappedViewAncestor(e){let t=e.parent;for(;!this._viewToModelMapping.has(t);)t=t.parent;return t}_toModelOffset(e,t,o){if(o!=e){return this._toModelOffset(e.parent,e.index,o)+this._toModelOffset(e,t,e)}if(e.is("$text"))return t;let i=0;for(let o=0;o0;){const e=t.pop(),i=e.name&&this._viewToModelLengthCallbacks.size>0&&this._viewToModelLengthCallbacks.get(e.name);if(i)o+=i(e);else if(this._viewToModelMapping.has(e))o+=1;else if(e.is("$text"))o+=e.data.length;else{if(e.is("uiElement"))continue;for(const o of e.getChildren())t.push(o)}}return o}findPositionIn(e,t){if(0===t)return this._moveViewPositionToTextNode(new Si(e,0));if(0==this._viewToModelLengthCallbacks.size&&this._viewToModelMapping.has(e)){const o=this._cache.getClosest(e,t);return this._findPositionStartingFrom(o.viewPosition,o.modelOffset,t,e,!0)}return this._findPositionStartingFrom(new Si(e,0),0,t,e,!1)}_findPositionStartingFrom(e,t,o,i,n){let s,r=e.parent,a=e.offset;if(r.is("$text"))return new Si(r,o-t);let l=t,c=0;for(;l{this._clearCacheInsideParent(t,o.index)};_invalidateOnTextChangeCallback=(e,t)=>{this._clearCacheAfter(t)};save(e,t,o,i){const n=this._cachedMapping.get(o),s=n.cacheMap.get(i);if(s){const o=e.getChild(t-1),i=s.viewPosition.nodeBefore?this._nodeToCacheListIndex.get(s.viewPosition.nodeBefore):0;return void this._nodeToCacheListIndex.set(o,i)}const r={viewPosition:new Si(e,t),modelOffset:i};n.maxModelOffset=i>n.maxModelOffset?i:n.maxModelOffset,n.cacheMap.set(i,r);let a=n.cacheList.length-1;for(;a>=0&&n.cacheList[a].modelOffset>i;)a--;if(n.cacheList.splice(a+1,0,r),t>0){const o=e.getChild(t-1);this._nodeToCacheListIndex.set(o,a+1)}}getClosest(e,t){const o=this._cachedMapping.get(e);let i;if(o)if(t>o.maxModelOffset)i=o.cacheList[o.cacheList.length-1];else{const e=o.cacheMap.get(t);i=e||this._findInCacheList(o.cacheList,t)}else i=this.startTracking(e);return{modelOffset:i.modelOffset,viewPosition:i.viewPosition.clone()}}startTracking(e){const t={viewPosition:new Si(e,0),modelOffset:0},o={maxModelOffset:0,cacheList:[t],cacheMap:new Map([[0,t]])};return this._cachedMapping.set(e,o),e.on("change:children",this._invalidateOnChildrenChangeCallback),e.on("change:text",this._invalidateOnTextChangeCallback),t}stopTracking(e){e.off("change:children",this._invalidateOnChildrenChangeCallback),e.off("change:text",this._invalidateOnTextChangeCallback),this._cachedMapping.delete(e)}_clearCacheInsideParent(e,t){if(0==t)this._cachedMapping.has(e)?this._clearCacheAll(e):this._clearCacheInsideParent(e.parent,e.index);else{const o=e.getChild(t-1);this._clearCacheAfter(o)}}_clearCacheAll(e){const t=this._cachedMapping.get(e);t.maxModelOffset>0&&(t.maxModelOffset=0,t.cacheList.length=1,t.cacheMap.clear(),t.cacheMap.set(0,t.cacheList[0]))}_clearCacheAfter(e){const t=this._nodeToCacheListIndex.get(e);if(void 0===t){const t=e.parent;return void(this._cachedMapping.has(t)||this._clearCacheInsideParent(t.parent,t.index))}let o=e.parent;for(;!this._cachedMapping.has(o);)o=o.parent;this._clearCacheFromCacheIndex(o,t)}_clearCacheFromCacheIndex(e,t){0===t&&(t=1);const o=this._cachedMapping.get(e),i=o.cacheList[t-1];if(!i)return;o.maxModelOffset=i.modelOffset;const n=o.cacheList.splice(t);for(const e of n){o.cacheMap.delete(e.modelOffset);const t=e.viewPosition.nodeBefore;this._nodeToCacheListIndex.delete(t)}}_findInCacheList(e,t){let o=0,i=e.length-1,n=i-o>>1,s=e[n];for(;o>1),s=e[n];return s.modelOffset<=t?s:e[n-1]}}class gs{_consumable=new Map;_textProxyRegistry=new Map;add(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e)),this._consumable.has(e)||this._consumable.set(e,new Map),this._consumable.get(e).set(t,!0)}consume(e,t){return t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e)),!!this.test(e,t)&&(this._consumable.get(e).set(t,!1),!0)}test(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e));const o=this._consumable.get(e);if(void 0===o)return null;const i=o.get(t);return void 0===i?null:i}revert(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e));const o=this.test(e,t);return!1===o?(this._consumable.get(e).set(t,!0),!0):!0!==o&&null}verifyAllConsumed(e){const t=[];for(const[o,i]of this._consumable)for(const[n,s]of i){const i=n.split(":")[0];s&&e==i&&t.push({event:n,item:o.name||o.description})}if(t.length)throw new fe("conversion-model-consumable-not-consumed",null,{items:t})}_getSymbolForTextProxy(e){let t=null;const o=this._textProxyRegistry.get(e.startOffset);if(o){const i=o.get(e.endOffset);i&&(t=i.get(e.parent))}return t||(t=this._addSymbolForTextProxy(e)),t}_addSymbolForTextProxy(e){const t=e.startOffset,o=e.endOffset,i=e.parent,n=Symbol("$textProxy:"+e.data);let s,r;return s=this._textProxyRegistry.get(t),s||(s=new Map,this._textProxyRegistry.set(t,s)),r=s.get(o),r||(r=new Map,s.set(o,r)),r.set(i,n),n}}function ps(e){const t=e.split(":");return"insert"==t[0]?t[0]:"addMarker"==t[0]||"removeMarker"==t[0]?e:t.length>1?t[0]+":"+t[1]:t[0]}class fs extends(xe()){_conversionApi;_firedEventsMap;constructor(e){super(),this._conversionApi={dispatcher:this,...e},this._firedEventsMap=new WeakMap}convertChanges(e,t,o){const i=e.getRefreshedItems(),n=this._createConversionApi(o,i);for(const t of e.getMarkersToRemove())this._convertMarkerRemove(t.name,t.range,n);const s=this._reduceChanges(e.getChanges(),i);for(const e of s)"insert"===e.type?this._convertInsert(us._createFromPositionAndShift(e.position,e.length),n):"reinsert"===e.type?this._convertReinsert(us._createFromPositionAndShift(e.position,e.length),n):"remove"===e.type?this._convertRemove(e.position,e.length,e.name,n):this._convertAttribute(e.range,e.attributeKey,e.attributeOldValue,e.attributeNewValue,n);n.mapper.flushDeferredBindings();for(const e of n.mapper.flushUnboundMarkerNames()){const o=t.get(e).getRange();this._convertMarkerRemove(e,o,n),this._convertMarkerAdd(e,o,n)}for(const t of e.getMarkersToAdd())this._convertMarkerAdd(t.name,t.range,n);n.consumable.verifyAllConsumed("insert")}convert(e,t,o,i={}){const n=this._createConversionApi(o,void 0,i);this._convertInsert(e,n);for(const[e,o]of t)this._convertMarkerAdd(e,o,n);n.consumable.verifyAllConsumed("insert")}convertSelection(e,t,o){const i=this._createConversionApi(o);this.fire("cleanSelection",{selection:e},i);const n=e.getFirstPosition().root;if(!i.mapper.toViewElement(n))return;const s=Array.from(t.getMarkersAtPosition(e.getFirstPosition()));if(this._addConsumablesForSelection(i.consumable,e,s),this.fire("selection",{selection:e},i),e.isCollapsed){for(const t of s)if(i.consumable.test(e,"addMarker:"+t.name)){const o=t.getRange();if(!bs(e.getFirstPosition(),t,i.mapper))continue;const n={item:e,markerName:t.name,markerRange:o};this.fire(`addMarker:${t.name}`,n,i)}for(const t of e.getAttributeKeys())if(i.consumable.test(e,"attribute:"+t)){const o={item:e,range:e.getFirstRange(),attributeKey:t,attributeOldValue:null,attributeNewValue:e.getAttribute(t)};this.fire(`attribute:${t}:$text`,o,i)}}}_convertInsert(e,t,o={}){o.doNotAddConsumables||this._addConsumablesForInsert(t.consumable,e);for(const o of e.getWalker({shallow:!0}))this._testAndFire("insert",ws(o),t)}_convertRemove(e,t,o,i){this.fire(`remove:${o}`,{position:e,length:t},i)}_convertAttribute(e,t,o,i,n){this._addConsumablesForRange(n.consumable,e,`attribute:${t}`);for(const s of e){const e={item:s.item,range:us._createFromPositionAndShift(s.previousPosition,s.length),attributeKey:t,attributeOldValue:o,attributeNewValue:i};this._testAndFire(`attribute:${t}`,e,n)}}_convertReinsert(e,t){const o=Array.from(e.getWalker({shallow:!0}));this._addConsumablesForInsert(t.consumable,o);for(const e of o.map(ws))this.fire(`remove:${e.item.is("element")?e.item.name:"$text"}`,{position:e.range.start,length:e.item.offsetSize,reconversion:!0},t),this._testAndFire("insert",{...e,reconversion:!0},t)}_convertMarkerAdd(e,t,o){if("$graveyard"==t.root.rootName)return;const i=`addMarker:${e}`;if(o.consumable.add(t,i),this.fire(i,{markerName:e,markerRange:t},o),o.consumable.consume(t,i)){this._addConsumablesForRange(o.consumable,t,i);for(const n of t.getItems()){if(!o.consumable.test(n,i))continue;const s={item:n,range:us._createOn(n),markerName:e,markerRange:t};this.fire(i,s,o)}}}_convertMarkerRemove(e,t,o){"$graveyard"!=t.root.rootName&&this.fire(`removeMarker:${e}`,{markerName:e,markerRange:t},o)}_reduceChanges(e,t){const o={changes:e,refreshedItems:t};return this.fire("reduceChanges",o),o.changes}_addConsumablesForInsert(e,t){for(const o of t){const t=o.item;if(null===e.test(t,"insert")){e.add(t,"insert");for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o)}}return e}_addConsumablesForRange(e,t,o){for(const i of t.getItems())e.add(i,o);return e}_addConsumablesForSelection(e,t,o){e.add(t,"selection");for(const i of o)e.add(t,"addMarker:"+i.name);for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o);return e}_testAndFire(e,t,o){const i=function(e,t){const o=t.item.is("element")?t.item.name:"$text";return`${e}:${o}`}(e,t),n=t.item.is("$textProxy")?o.consumable._getSymbolForTextProxy(t.item):t.item,s=this._firedEventsMap.get(o),r=s.get(n);if(r){if(r.has(i))return;r.add(i)}else s.set(n,new Set([i]));this.fire(i,t,o)}_testAndFireAddAttributes(e,t){const o={item:e,range:us._createOn(e)};for(const e of o.item.getAttributeKeys())o.attributeKey=e,o.attributeOldValue=null,o.attributeNewValue=o.item.getAttribute(e),this._testAndFire(`attribute:${e}`,o,t)}_createConversionApi(e,t=new Set,o={}){const i={...this._conversionApi,consumable:new gs,writer:e,options:o,convertItem:e=>this._convertInsert(us._createOn(e),i),convertChildren:e=>this._convertInsert(us._createIn(e),i,{doNotAddConsumables:!0}),convertAttributes:e=>this._testAndFireAddAttributes(e,i),canReuseView:e=>!t.has(i.mapper.toModelElement(e))};return this._firedEventsMap.set(i,new Map),i}}function bs(e,t,o){const i=t.getRange(),n=Array.from(e.getAncestors());n.shift(),n.reverse();return!n.some((e=>{if(i.containsItem(e)){return!!o.toViewElement(e).getCustomProperty("addHighlight")}}))}function ws(e){return{item:e.item,range:us._createFromPositionAndShift(e.previousPosition,e.length)}}class ys extends ts{parent=null;_attrs;_index=null;_startOffset=null;constructor(e){super(),this._attrs=ao(e)}get document(){return null}get index(){return this._index}get startOffset(){return this._startOffset}get offsetSize(){return 1}get endOffset(){return null===this.startOffset?null:this.startOffset+this.offsetSize}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}isAttached(){return null!==this.parent&&this.root.isAttached()}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.startOffset),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),i=e.getAncestors(t);let n=0;for(;o[n]==i[n]&&o[n];)n++;return 0===n?null:o[n-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),i=We(t,o);switch(i){case"prefix":return!0;case"extension":return!1;default:return t[i](e[t[0]]=t[1],e)),{})),e}_clone(e){return new this.constructor(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(e,t){this._attrs.set(e,t)}_setAttributesTo(e){this._attrs=ao(e)}_removeAttribute(e){return this._attrs.delete(e)}_clearAttributes(){this._attrs.clear()}}ys.prototype.is=function(e){return"node"===e||"model:node"===e};class _s extends(xe(ts)){_lastRangeBackward=!1;_attrs=new Map;_ranges=[];constructor(...e){super(),e.length&&this.setTo(...e)}get anchor(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.end:e.start}return null}get focus(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.start:e.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(e){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 i of e._ranges)if(t.isEqual(i)){o=!0;break}if(!o)return!1}return!0}*getRanges(){for(const e of this._ranges)yield new us(e.start,e.end)}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?new us(e.start,e.end):null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?new us(e.start,e.end):null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():null}setTo(...e){let[t,o,i]=e;if("object"==typeof o&&(i=o,o=void 0),null===t)this._setRanges([]);else if(t instanceof _s)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof us)this._setRanges([t],!!i&&!!i.backward);else if(t instanceof ss)this._setRanges([new us(t)]);else if(t instanceof ys){const e=!!i&&!!i.backward;let n;if("in"==o)n=us._createIn(t);else if("on"==o)n=us._createOn(t);else{if(void 0===o)throw new fe("model-selection-setto-required-second-parameter",[this,t]);n=new us(ss._createAt(t,o))}this._setRanges([n],e)}else{if(!Ue(t))throw new fe("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,i&&!!i.backward)}}_setRanges(e,t=!1){const o=Array.from(e),i=o.some((t=>{if(!(t instanceof us))throw new fe("model-selection-set-ranges-not-range",[this,e]);return this._ranges.every((e=>!e.isEqual(t)))}));(o.length!==this._ranges.length||i)&&(this._replaceAllRanges(o),this._lastRangeBackward=!!t,this.fire("change:range",{directChange:!0}))}setFocus(e,t){if(null===this.anchor)throw new fe("model-selection-setfocus-no-ranges",[this,e]);const o=ss._createAt(e,t);if("same"==o.compareWith(this.focus))return;const i=this.anchor;this._ranges.length&&this._popRange(),"before"==o.compareWith(i)?(this._pushRange(new us(o,i)),this._lastRangeBackward=!0):(this._pushRange(new us(i,o)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(e){return this._attrs.get(e)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(e){return this._attrs.has(e)}removeAttribute(e){this.hasAttribute(e)&&(this._attrs.delete(e),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}setAttribute(e,t){this.getAttribute(e)!==t&&(this._attrs.set(e,t),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const e=new WeakSet;for(const t of this.getRanges()){const o=Cs(t.start,e);xs(o,t)&&(yield o);const i=t.getWalker();for(const o of i){const n=o.item;"elementEnd"==o.type&&vs(n,e,t)?yield n:"elementStart"==o.type&&n.is("model:element")&&n.root.document.model.schema.isBlock(n)&&i.jumpTo(ss._createAt(n,"end"))}const n=Cs(t.end,e);Es(n,t)&&(yield n)}}containsEntireContent(e=this.anchor.root){const t=ss._createAt(e,0),o=ss._createAt(e,"end");return t.isTouching(this.getFirstPosition())&&o.isTouching(this.getLastPosition())}toJSON(){const e={ranges:Array.from(this.getRanges()).map((e=>e.toJSON()))},t=Object.fromEntries(this.getAttributes());return Object.keys(t).length&&(e.attributes=t),this.isBackward&&(e.isBackward=!0),e}_pushRange(e){this._checkRange(e),this._ranges.push(new us(e.start,e.end))}_checkRange(e){for(let t=0;t0;)this._popRange()}_popRange(){this._ranges.pop()}}function ks(e,t){return!t.has(e)&&(t.add(e),e.root.document.model.schema.isBlock(e)&&!!e.parent)}function vs(e,t,o){return ks(e,t)&&As(e,o)}function Cs(e,t){const o=e.parent.root.document.model.schema,i=e.parent.getAncestors({parentFirst:!0,includeSelf:!0});let n=!1;const s=i.find((e=>!n&&(n=o.isLimit(e),!n&&ks(e,t))));return i.forEach((e=>t.add(e))),s}function As(e,t){const o=function(e){const t=e.root.document.model.schema;let o=e.parent;for(;o;){if(t.isBlock(o))return o;o=o.parent}}(e);if(!o)return!0;return!t.containsRange(us._createOn(o),!0)}function xs(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.start.isTouching(ss._createAt(e,e.maxOffset))&&As(e,t))}function Es(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.end.isTouching(ss._createAt(e,0))&&As(e,t))}_s.prototype.is=function(e){return"selection"===e||"model:selection"===e};class Ts extends(xe(us)){constructor(e,t){super(e,t),Ps.call(this)}detach(){this.stopListening()}toRange(){return new us(this.start,this.end)}static fromRange(e){return new Ts(e.start,e.end)}}function Ps(){this.listenTo(this.root.document.model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&Ss.call(this,o)}),{priority:"low"})}function Ss(e){const t=this.getTransformedByOperation(e),o=us._createFromRanges(t),i=!o.isEqual(this),n=function(e,t){switch(t.type){case"insert":return e.containsPosition(t.position);case"move":case"remove":case"reinsert":case"merge":return e.containsPosition(t.sourcePosition)||e.start.isEqual(t.sourcePosition)||e.containsPosition(t.targetPosition);case"split":return e.containsPosition(t.splitPosition)||e.containsPosition(t.insertionPosition)}return!1}(this,e);let s=null;if(i){"$graveyard"==o.root.rootName&&(s="remove"==e.type?e.sourcePosition:e.deletionPosition);const t=this.toRange();this.start=o.start,this.end=o.end,this.fire("change:range",t,{deletionPosition:s})}else n&&this.fire("change:content",this.toRange(),{deletionPosition:s})}Ts.prototype.is=function(e){return"liveRange"===e||"model:liveRange"===e||"range"==e||"model:range"===e};class Is extends ys{_data;constructor(e,t){super(t),this._data=e||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const e=super.toJSON();return e.data=this.data,e}_clone(){return new Is(this.data,this.getAttributes())}static fromJSON(e){return new Is(e.data,e.attributes)}}Is.prototype.is=function(e){return"$text"===e||"model:$text"===e||"text"===e||"model:text"===e||"node"===e||"model:node"===e};const Rs="selection:";class Os extends(xe(ts)){_selection;constructor(e){super(),this._selection=new Vs(e),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(e){return this._selection.containsEntireContent(e)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(e){return this._selection.getAttribute(e)}hasAttribute(e){return this._selection.hasAttribute(e)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(e){this._selection.observeMarkers(e)}toJSON(){return this._selection.toJSON()}_setFocus(e,t){this._selection.setFocus(e,t)}_setTo(...e){this._selection.setTo(...e)}_setAttribute(e,t){this._selection.setAttribute(e,t)}_removeAttribute(e){this._selection.removeAttribute(e)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(e){this._selection.restoreGravity(e)}static _getStoreAttributeKey(e){return Rs+e}static _isStoreAttributeKey(e){return e.startsWith(Rs)}}Os.prototype.is=function(e){return"selection"===e||"model:selection"==e||"documentSelection"==e||"model:documentSelection"==e};class Vs extends _s{markers=new eo({idProperty:"name"});_model;_document;_attributePriority=new Map;_selectionRestorePosition=null;_hasChangedRange=!1;_overriddenGravityRegister=new Set;_observedMarkers=new Set;constructor(e){super(),this._model=e.model,this._document=e,this.listenTo(this._model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&"marker"!=o.type&&"rename"!=o.type&&"noop"!=o.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((e,t,o,i)=>{this._updateMarker(t,i)})),this.listenTo(this._document,"change",((e,t)=>{!function(e,t){const o=e.document.differ;for(const i of o.getChanges()){if("insert"!=i.type)continue;const o=i.position.parent;i.length===o.maxOffset&&e.enqueueChange(t,(e=>{const t=Array.from(o.getAttributeKeys()).filter((e=>e.startsWith(Rs)));for(const i of t)e.removeAttribute(i,o)}))}}(this._model,t)}))}get isCollapsed(){return 0===this._ranges.length?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 this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let e=0;ee.toJSON()))),e}_validateSelectionRanges(e){for(const t of e)if(!this._document._validateSelectionRange(t))throw new fe("document-selection-wrong-position",this,{range:t})}_prepareRange(e){if(this._checkRange(e),e.root==this._document.graveyard)return;const t=Ts.fromRange(e);return t.on("change:range",((e,o,i)=>{if(this._hasChangedRange=!0,t.root==this._document.graveyard){this._selectionRestorePosition=i.deletionPosition;const e=this._ranges.indexOf(t);this._ranges.splice(e,1),t.detach()}})),t}updateMarkers(){if(!this._observedMarkers.size)return;const e=[];let t=!1;for(const t of this._model.markers){const o=t.name.split(":",1)[0];if(!this._observedMarkers.has(o))continue;const i=t.getRange();for(const o of this.getRanges())i.containsRange(o,!o.isCollapsed)&&e.push(t)}const o=Array.from(this.markers);for(const o of e)this.markers.has(o)||(this.markers.add(o),t=!0);for(const o of Array.from(this.markers))e.includes(o)||(this.markers.remove(o),t=!0);t&&this.fire("change:marker",{oldMarkers:o,directChange:!1})}_updateMarker(e,t){const o=e.name.split(":",1)[0];if(!this._observedMarkers.has(o))return;let i=!1;const n=Array.from(this.markers),s=this.markers.has(e);if(t){let o=!1;for(const e of this.getRanges())if(t.containsRange(e,!e.isCollapsed)){o=!0;break}o&&!s?(this.markers.add(e),i=!0):!o&&s&&(this.markers.remove(e),i=!0)}else s&&(this.markers.remove(e),i=!0);i&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateAttributes(e){const t=ao(this._getSurroundingAttributes()),o=ao(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);const i=[];for(const[e,t]of this.getAttributes())o.has(e)&&o.get(e)===t||i.push(e);for(const[e]of o)this.hasAttribute(e)||i.push(e);i.length>0&&this.fire("change:attribute",{attributeKeys:i,directChange:!1})}_setAttribute(e,t,o=!0){const i=o?"normal":"low";if("low"==i&&"normal"==this._attributePriority.get(e))return!1;return super.getAttribute(e)!==t&&(this._attrs.set(e,t),this._attributePriority.set(e,i),!0)}_removeAttribute(e,t=!0){const o=t?"normal":"low";return("low"!=o||"normal"!=this._attributePriority.get(e))&&(this._attributePriority.set(e,o),!!super.hasAttribute(e)&&(this._attrs.delete(e),!0))}_setAttributesTo(e){const t=new Set;for(const[t,o]of this.getAttributes())e.get(t)!==o&&this._removeAttribute(t,!1);for(const[o,i]of e){this._setAttribute(o,i,!1)&&t.add(o)}return t}*getStoredAttributes(){const e=this.getFirstPosition().parent;if(this.isCollapsed&&e.isEmpty)for(const t of e.getAttributeKeys())if(t.startsWith(Rs)){const o=t.substr(10);yield[o,e.getAttribute(t)]}}_getSurroundingAttributes(){const e=this.getFirstPosition(),t=this._model.schema;if("$graveyard"==e.root.rootName)return null;let o=null;if(this.isCollapsed){const i=e.textNode?e.textNode:e.nodeBefore,n=e.textNode?e.textNode:e.nodeAfter;if(this.isGravityOverridden||(o=Ds(i,t)),o||(o=Ds(n,t)),!this.isGravityOverridden&&!o){let e=i;for(;e&&!o;)e=e.previousSibling,o=Ds(e,t)}if(!o){let e=n;for(;e&&!o;)e=e.nextSibling,o=Ds(e,t)}o||(o=this.getStoredAttributes())}else{const e=this.getFirstRange();for(const i of e){if(i.item.is("element")&&t.isObject(i.item)){o=Ds(i.item,t);break}if("text"==i.type){o=i.item.getAttributes();break}}}return o}_fixGraveyardSelection(e){const t=this._model.schema.getNearestSelectionRange(e);t&&this._pushRange(t)}}function Ds(e,t){if(!e)return null;if(e instanceof os||e instanceof Is)return e.getAttributes();if(!t.isInline(e))return null;if(!t.isObject(e))return[];const o=[];for(const[i,n]of e.getAttributes())t.checkAttribute("$text",i)&&!1!==t.getAttributeProperties(i).copyFromObject&&o.push([i,n]);return o}class Fs{_nodes=[];_offsetToNode=[];constructor(e){e&&this._insertNodes(0,e)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._offsetToNode.length}getNode(e){return this._nodes[e]||null}getNodeAtOffset(e){return this._offsetToNode[e]||null}getNodeIndex(e){return e.index}getNodeStartOffset(e){return e.startOffset}indexToOffset(e){if(e==this._nodes.length)return this.maxOffset;const t=this._nodes[e];if(!t)throw new fe("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(t)}offsetToIndex(e){if(e==this._offsetToNode.length)return this._nodes.length;const t=this._offsetToNode[e];if(!t)throw new fe("model-nodelist-offset-out-of-bounds",this,{offset:e,nodeList:this});return this.getNodeIndex(t)}_insertNodes(e,t){const o=[];for(const e of t){if(!(e instanceof ys))throw new fe("model-nodelist-insertnodes-not-node",this);o.push(e)}let i=this.indexToOffset(e);lo(this._nodes,o,e),lo(this._offsetToNode,function(e){const t=[];let o=0;for(const i of e)for(let e=0;enull!==e.index)),this._offsetToNode=this._offsetToNode.filter((e=>null!==e.index));let t=0;for(let e=0;ee.toJSON()))}}class Ms extends ys{name;_children=new Fs;constructor(e,t,o){super(t),this.name=e,o&&this._insertChild(0,o)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}offsetToIndex(e){return this._children.offsetToIndex(e)}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}findAncestor(e,t={}){let o=t.includeSelf?this:this.parent;for(;o;){if(o.name===e)return o;o=o.parent}return null}toJSON(){const e=super.toJSON();if(e.name=this.name,this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=e?function(e){const t=[];for(const o of e)t.push(o._clone(!0));return t}(this._children):void 0;return new Ms(this.name,this.getAttributes(),t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Is(e)];Ue(e)||(e=[e]);const t=[];for(const o of e)"string"==typeof o?t.push(new Is(o)):o instanceof os?t.push(new Is(o.data,o.getAttributes())):t.push(o);return t}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}static fromJSON(e){let t;if(e.children){t=[];for(const o of e.children)o.name?t.push(Ms.fromJSON(o)):t.push(Is.fromJSON(o))}return new Ms(e.name,e.attributes,t)}}Ms.prototype.is=function(e,t){return t?t===this.name&&("element"===e||"model:element"===e):"element"===e||"model:element"===e||"node"===e||"model:node"===e};class Ns{_dispatchers;constructor(e){this._dispatchers=e}add(e){for(const t of this._dispatchers)e(t);return this}}class Bs extends Ns{elementToElement(e){return this.add(function(e){const t=Us(e.model),o=Ks(e.view,"container");t.attributes.length&&(t.children=!0);return i=>{i.on(`insert:${t.name}`,js(o,Ys(t)),{priority:e.converterPriority||"normal"}),(t.children||t.attributes.length)&&i.on("reduceChanges",Qs(t),{priority:"low"})}}(e))}elementToStructure(e){return this.add(function(e){const t=Us(e.model),o=Ks(e.view,"container");return t.children=!0,i=>{if(i._conversionApi.schema.checkChild(t.name,"$text"))throw new fe("conversion-element-to-structure-disallowed-text",i,{elementName:t.name});var n,s;i.on(`insert:${t.name}`,(n=o,s=Ys(t),(e,t,o)=>{if(!s(t.item,o.consumable,{preflight:!0}))return;const i=new Map;o.writer._registerSlotFactory(function(e,t,o){return(i,n)=>{const s=i.createContainerElement("$slot");let r=null;if("children"===n)r=Array.from(e.getChildren());else{if("function"!=typeof n)throw new fe("conversion-slot-mode-unknown",o.dispatcher,{modeOrFilter:n});r=Array.from(e.getChildren()).filter((e=>n(e)))}return t.set(s,r),s}}(t.item,i,o));const r=n(t.item,o,t);if(o.writer._clearSlotFactory(),!r)return;!function(e,t,o){const i=Array.from(t.values()).flat(),n=new Set(i);if(n.size!=i.length)throw new fe("conversion-slot-filter-overlap",o.dispatcher,{element:e});if(n.size!=e.childCount)throw new fe("conversion-slot-filter-incomplete",o.dispatcher,{element:e})}(t.item,i,o),s(t.item,o.consumable);const a=t.reconversion&&Hs(t.item,o)||o.mapper.toViewPosition(t.range.start);o.mapper.bindElements(t.item,r),o.writer.insert(a,r),o.convertAttributes(t.item),function(e,t,o,i){o.mapper.on("modelToViewPosition",r,{priority:"highest"});let n=null,s=null;for([n,s]of t)Xs(e,s,o,i),o.writer.setCustomProperty("$structureSlotParent",!0,n.parent),o.writer.move(o.writer.createRangeIn(n),o.writer.createPositionBefore(n)),o.writer.remove(n);function r(e,t){const o=t.modelPosition.nodeAfter,i=s.indexOf(o);i<0||(t.viewPosition=t.mapper.findPositionIn(n,i))}o.mapper.off("modelToViewPosition",r)}(r,i,o,{reconversion:t.reconversion})}),{priority:e.converterPriority||"normal"}),i.on("reduceChanges",Qs(t),{priority:"low"})}}(e))}attributeToElement(e){return this.add(function(e){e=j(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=Ks(e.view[o],"attribute");else e.view=Ks(e.view,"attribute");const i=Gs(e);return t=>{t.on(o,zs(i),{priority:e.converterPriority||"normal"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=j(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=Js(e.view[o]);else e.view=Js(e.view);const i=Gs(e);return t=>{var n;t.on(o,(n=i,(e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const i=n(t.attributeOldValue,o,t),s=n(t.attributeNewValue,o,t);if(!i&&!s)return;o.consumable.consume(t.item,e.name);const r=o.mapper.toViewElement(t.item),a=o.writer;if(!r)throw new fe("conversion-attribute-to-attribute-on-text",o.dispatcher,t);if(null!==t.attributeOldValue&&i){let e=i.value;"style"==i.key&&(e="string"==typeof i.value?new gi(a.document.stylesProcessor).setTo(i.value).getStylesEntries().map((([e])=>e)):Object.keys(i.value)),a.removeAttribute(i.key,e,r)}if(null!==t.attributeNewValue&&s){let e=s.value;"style"==s.key&&"string"==typeof s.value&&(e=Object.fromEntries(new gi(a.document.stylesProcessor).setTo(s.value).getStylesEntries())),a.setAttribute(s.key,e,!1,r)}}),{priority:e.converterPriority||"normal"})}}(e))}markerToElement(e){return this.add(function(e){const t=Ks(e.view,"ui");return o=>{o.on(`addMarker:${e.model}`,qs(t),{priority:e.converterPriority||"normal"}),o.on(`removeMarker:${e.model}`,((e,t,o)=>{const i=o.mapper.markerNameToElements(t.markerName);if(i){for(const e of i)o.mapper.unbindElementFromMarkerName(e,t.markerName),o.writer.clear(o.writer.createRangeOn(e),e);o.writer.clearClonedElementsGroup(t.markerName),e.stop()}}),{priority:e.converterPriority||"normal"})}}(e))}markerToHighlight(e){return this.add(function(e){return t=>{var o;t.on(`addMarker:${e.model}`,(o=e.view,(e,t,i)=>{if(!t.item)return;if(!(t.item instanceof _s||t.item instanceof Os||t.item.is("$textProxy")))return;const n=Zs(o,t,i);if(!n)return;if(!i.consumable.consume(t.item,e.name))return;const s=i.writer,r=Ls(s,n),a=s.document.selection;if(t.item instanceof _s||t.item instanceof Os)s.wrap(a.getFirstRange(),r);else{const e=i.mapper.toViewRange(t.range),o=s.wrap(e,r);for(const e of o.getItems())if(e.is("attributeElement")&&e.isSimilar(r)){i.mapper.bindElementToMarker(e,t.markerName);break}}}),{priority:e.converterPriority||"normal"}),t.on(`addMarker:${e.model}`,function(e){return(t,o,i)=>{if(!o.item)return;if(!(o.item instanceof Ms))return;const n=Zs(e,o,i);if(!n)return;if(!i.consumable.test(o.item,t.name))return;const s=i.mapper.toViewElement(o.item);if(s&&s.getCustomProperty("addHighlight")){i.consumable.consume(o.item,t.name);for(const e of us._createIn(o.item))i.consumable.consume(e.item,t.name);s.getCustomProperty("addHighlight")(s,n,i.writer),i.mapper.bindElementToMarker(s,o.markerName)}}}(e.view),{priority:e.converterPriority||"normal"}),t.on(`removeMarker:${e.model}`,function(e){return(t,o,i)=>{if(o.markerRange.isCollapsed)return;const n=Zs(e,o,i);if(!n)return;const s=Ls(i.writer,n),r=i.mapper.markerNameToElements(o.markerName);if(r){for(const e of r)if(i.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("attributeElement"))i.writer.unwrap(i.writer.createRangeOn(e),s);else{e.getCustomProperty("removeHighlight")(e,n.id,i.writer)}i.writer.clearClonedElementsGroup(o.markerName),t.stop()}}}(e.view),{priority:e.converterPriority||"normal"})}}(e))}markerToData(e){return this.add(function(e){e=j(e);const t=e.model;let o=e.view;o||(o=o=>({group:t,name:o.substr(e.model.length+1)}));return i=>{var n;i.on(`addMarker:${t}`,(n=o,(e,t,o)=>{const i=n(t.markerName,o);if(!i)return;const s=t.markerRange;o.consumable.consume(s,e.name)&&(Ws(s,!1,o,t,i),Ws(s,!0,o,t,i),e.stop())}),{priority:e.converterPriority||"normal"}),i.on(`removeMarker:${t}`,function(e){return(t,o,i)=>{const n=e(o.markerName,i);if(!n)return;const s=i.mapper.markerNameToElements(o.markerName);if(s){for(const e of s)i.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("containerElement")?(r(`data-${n.group}-start-before`,e),r(`data-${n.group}-start-after`,e),r(`data-${n.group}-end-before`,e),r(`data-${n.group}-end-after`,e)):i.writer.clear(i.writer.createRangeOn(e),e);i.writer.clearClonedElementsGroup(o.markerName),t.stop()}function r(e,t){if(t.hasAttribute(e)){const o=new Set(t.getAttribute(e).split(","));o.delete(n.name),0==o.size?i.writer.removeAttribute(e,t):i.writer.setAttribute(e,Array.from(o).join(","),t)}}}}(o),{priority:e.converterPriority||"normal"})}}(e))}}function Ls(e,t){const o=e.createAttributeElement("span",t.attributes);return t.classes&&o._addClass(t.classes),"number"==typeof t.priority&&(o._priority=t.priority),o._id=t.id,o}function zs(e){return(t,o,i)=>{if(!i.consumable.test(o.item,t.name))return;const n=e(o.attributeOldValue,i,o),s=e(o.attributeNewValue,i,o);if(!n&&!s)return;i.consumable.consume(o.item,t.name);const r=i.writer,a=r.document.selection;if(o.item instanceof _s||o.item instanceof Os)r.wrap(a.getFirstRange(),s);else{let e=i.mapper.toViewRange(o.range);null!==o.attributeOldValue&&n&&(e=r.unwrap(e,n)),null!==o.attributeNewValue&&s&&r.wrap(e,s)}}}function js(e,t=tr){return(o,i,n)=>{if(!t(i.item,n.consumable,{preflight:!0}))return;const s=e(i.item,n,i);if(!s)return;t(i.item,n.consumable);const r=i.reconversion&&Hs(i.item,n)||n.mapper.toViewPosition(i.range.start);n.mapper.bindElements(i.item,s),n.writer.insert(r,s),n.convertAttributes(i.item),Xs(s,i.item.getChildren(),n,{reconversion:i.reconversion})}}function qs(e){return(t,o,i)=>{o.isOpening=!0;const n=e(o,i);o.isOpening=!1;const s=e(o,i);if(!n||!s)return;const r=o.markerRange;if(r.isCollapsed&&!i.consumable.consume(r,t.name))return;for(const e of r)if(!i.consumable.consume(e.item,t.name))return;const a=i.mapper,l=i.writer;l.insert(a.toViewPosition(r.start),n),i.mapper.bindElementToMarker(n,o.markerName),r.isCollapsed||(l.insert(a.toViewPosition(r.end),s),i.mapper.bindElementToMarker(s,o.markerName)),t.stop()}}function $s(e,t){const o=t.writer.remove(e);for(const e of t.writer.createRangeIn(o).getItems())t.mapper.unbindViewElement(e,{defer:!0});return e.start}function Hs(e,t){const o=t.mapper.toViewElement(e);return o&&$s(t.writer.createRangeOn(o),t)}function Ws(e,t,o,i,n){const s=t?e.start:e.end,r=s.nodeAfter&&s.nodeAfter.is("element")?s.nodeAfter:null,a=s.nodeBefore&&s.nodeBefore.is("element")?s.nodeBefore:null;if(r||a){let e,s;t&&r||!t&&!a?(e=r,s=!0):(e=a,s=!1);const l=o.mapper.toViewElement(e);if(l)return void function(e,t,o,i,n,s){const r=`data-${s.group}-${t?"start":"end"}-${o?"before":"after"}`,a=e.hasAttribute(r)?e.getAttribute(r).split(","):[];a.unshift(s.name),i.writer.setAttribute(r,a.join(","),e),i.mapper.bindElementToMarker(e,n.markerName)}(l,t,s,o,i,n)}!function(e,t,o,i,n){const s=`${n.group}-${t?"start":"end"}`,r=n.name?{name:n.name}:null,a=o.writer.createUIElement(s,r);o.writer.insert(e,a),o.mapper.bindElementToMarker(a,i.markerName)}(o.mapper.toViewPosition(s),t,o,i,n)}function Us(e){return"string"==typeof e&&(e={name:e}),{name:e.name,attributes:e.attributes?Qt(e.attributes):[],children:!!e.children}}function Ks(e,t){return"function"==typeof e?e:(o,i)=>function(e,t,o){"string"==typeof e&&(e={name:e});let i;const n=t.writer,s=Object.assign({},e.attributes);if("container"==o)i=n.createContainerElement(e.name,s);else if("attribute"==o){const t={priority:e.priority||Wi.DEFAULT_PRIORITY};i=n.createAttributeElement(e.name,s,t)}else i=n.createUIElement(e.name,s);if(e.styles){const t=Object.keys(e.styles);for(const o of t)n.setStyle(o,e.styles[o],i)}if(e.classes){const t=e.classes;if("string"==typeof t)n.addClass(t,i);else for(const e of t)n.addClass(e,i)}return i}(e,i,t)}function Gs(e){return e.model.values?(t,o,i)=>{const n=e.view[t];return n?n(t,o,i):null}:e.view}function Js(e){return"string"==typeof e?t=>({key:e,value:t}):"object"==typeof e?e.value?()=>e:t=>({key:e.key,value:t}):e}function Zs(e,t,o){const i="function"==typeof e?e(t,o):{...e};return i?(i.priority||(i.priority=10),i.id||(i.id=t.markerName),i):null}function Qs(e){const t=function(e){return(t,o)=>{if(!t.is("element",e.name))return!1;if("attribute"==o.type){if(e.attributes.includes(o.attributeKey))return!0}else if(e.children)return!0;return!1}}(e);return(e,o)=>{const i=[];o.reconvertedElements||(o.reconvertedElements=new Set);for(const e of o.changes){const n="attribute"==e.type?e.range.start.nodeAfter:e.position.parent;if(n&&t(n,e)&&"reinsert"!=e.type){if("insert"==e.type&&"rename"==e.action&&o.refreshedItems.add(e.position.nodeAfter),!o.reconvertedElements.has(n)){o.reconvertedElements.add(n);const e=ss._createBefore(n);let t=i.length;for(let o=i.length-1;o>=0;o--){const n=i[o],s=("attribute"==n.type?n.range.start:n.position).compareWith(e);if("before"==s||"remove"==n.type&&"same"==s)break;t=o}i.splice(t,0,{type:"reinsert",name:n.name,position:e,length:1})}}else i.push(e)}o.changes=i}}function Ys(e){return(t,o,i={})=>{const n=["insert"];for(const o of e.attributes)t.hasAttribute(o)&&n.push(`attribute:${o}`);return!!n.every((e=>o.test(t,e)))&&(i.preflight||n.forEach((e=>o.consume(t,e))),!0)}}function Xs(e,t,o,i){for(const n of t)er(e.root,n,o,i)||o.convertItem(n)}function er(e,t,o,i){const{writer:n,mapper:s}=o;if(!i.reconversion)return!1;const r=s.toViewElement(t);return!(!r||r.root==e)&&(!!o.canReuseView(r)&&(n.move(n.createRangeOn(r),s.toViewPosition(ss._createBefore(t))),!0))}function tr(e,t,{preflight:o}={}){return o?t.test(e,"insert"):t.consume(e,"insert")}function or(e){const{schema:t,document:o}=e.model;for(const i of o.getRoots())if(i.isEmpty&&!t.checkChild(i,"$text")&&t.checkChild(i,"paragraph"))return e.insertElement("paragraph",i),!0;return!1}function ir(e,t,o){const i=o.createContext(e);return!!o.checkChild(i,"paragraph")&&!!o.checkChild(i.push("paragraph"),t)}function nr(e,t){const o=t.createElement("paragraph");return t.insert(o,e),t.createPositionAt(o,0)}class sr extends Ns{elementToElement(e){return this.add(rr(e))}elementToAttribute(e){return this.add(function(e){e=j(e),cr(e);const t=dr(e,!1),o=ar(e.view),i=o?`element:${o}`:"element";return o=>{o.on(i,t,{priority:e.converterPriority||"low"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=j(e);let t=null;("string"==typeof e.view||e.view.key)&&(t=function(e){"string"==typeof e.view&&(e.view={key:e.view});const t=e.view.key,o=void 0===e.view.value?/[\s\S]*/:e.view.value;let i;if("class"==t||"style"==t){const e="class"==t?"classes":"styles";i={[e]:o}}else i={attributes:{[t]:o}};e.view.name&&(i.name=e.view.name);return e.view=i,t}(e));cr(e,t);const o=dr(e,!0);return t=>{t.on("element",o,{priority:e.converterPriority||"low"})}}(e))}elementToMarker(e){return this.add(function(e){const t=function(e){return(t,o)=>{const i="string"==typeof e?e:e(t,o);return o.writer.createElement("$marker",{"data-name":i})}}(e.model);return rr({...e,model:t})}(e))}dataToMarker(e){return this.add(function(e){e=j(e),e.model||(e.model=t=>t?e.view+":"+t:e.view);const t={view:e.view,model:e.model},o=lr(ur(t,"start")),i=lr(ur(t,"end"));return n=>{n.on(`element:${e.view}-start`,o,{priority:e.converterPriority||"normal"}),n.on(`element:${e.view}-end`,i,{priority:e.converterPriority||"normal"});const s=ge.low,r=ge.highest,a=ge.get(e.converterPriority)/r;n.on("element",function(e){return(t,o,i)=>{const n=`data-${e.view}`;function s(t,n){for(const s of n){const n=e.model(s,i),r=i.writer.createElement("$marker",{"data-name":n});i.writer.insert(r,t),o.modelCursor.isEqual(t)?o.modelCursor=o.modelCursor.getShiftedBy(1):o.modelCursor=o.modelCursor._getTransformedByInsertion(t,1),o.modelRange=o.modelRange._getTransformedByInsertion(t,1)[0]}}(i.consumable.test(o.viewItem,{attributes:n+"-end-after"})||i.consumable.test(o.viewItem,{attributes:n+"-start-after"})||i.consumable.test(o.viewItem,{attributes:n+"-end-before"})||i.consumable.test(o.viewItem,{attributes:n+"-start-before"}))&&(o.modelRange||Object.assign(o,i.convertChildren(o.viewItem,o.modelCursor)),i.consumable.consume(o.viewItem,{attributes:n+"-end-after"})&&s(o.modelRange.end,o.viewItem.getAttribute(n+"-end-after").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-start-after"})&&s(o.modelRange.end,o.viewItem.getAttribute(n+"-start-after").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-end-before"})&&s(o.modelRange.start,o.viewItem.getAttribute(n+"-end-before").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-start-before"})&&s(o.modelRange.start,o.viewItem.getAttribute(n+"-start-before").split(",")))}}(t),{priority:s+a})}}(e))}}function rr(e){const t=lr(e=j(e)),o=ar(e.view),i=o?`element:${o}`:"element";return o=>{o.on(i,t,{priority:e.converterPriority||"normal"})}}function ar(e){return"string"==typeof e?e:"object"==typeof e&&"string"==typeof e.name?e.name:null}function lr(e){const t=new ui(e.view);return(o,i,n)=>{const s=t.match(i.viewItem);if(!s)return;const r=s.match;if(r.name=!0,!n.consumable.test(i.viewItem,r))return;const a=function(e,t,o){return e instanceof Function?e(t,o):o.writer.createElement(e)}(e.model,i.viewItem,n);a&&n.safeInsert(a,i.modelCursor)&&(n.consumable.consume(i.viewItem,r),n.convertChildren(i.viewItem,a),n.updateConversionResult(a,i))}}function cr(e,t=null){const o=null===t||(e=>e.getAttribute(t)),i="object"!=typeof e.model?e.model:e.model.key,n="object"!=typeof e.model||void 0===e.model.value?o:e.model.value;e.model={key:i,value:n}}function dr(e,t){const o=new ui(e.view);return(i,n,s)=>{if(!n.modelRange&&t)return;const r=o.match(n.viewItem);if(!r)return;if(!function(e,t){const o="function"==typeof e?e(t):e;if("object"==typeof o&&!ar(o))return!1;return!o.classes&&!o.attributes&&!o.styles}(e.view,n.viewItem)?delete r.match.name:r.match.name=!0,!s.consumable.test(n.viewItem,r.match))return;const a=e.model.key,l="function"==typeof e.model.value?e.model.value(n.viewItem,s,n):e.model.value;if(null==l)return;n.modelRange||Object.assign(n,s.convertChildren(n.viewItem,n.modelCursor));const c=function(e,t,o,i){let n=!1;for(const s of Array.from(e.getItems({shallow:o})))i.schema.checkAttribute(s,t.key)&&(n=!0,s.hasAttribute(t.key)||i.writer.setAttribute(t.key,t.value,s));return n}(n.modelRange,{key:a,value:l},t,s);c&&(s.consumable.test(n.viewItem,{name:!0})&&(r.match.name=!0),s.consumable.consume(n.viewItem,r.match))}}function ur(e,t){return{view:`${e.view}-${t}`,model:(t,o)=>{const i=t.getAttribute("name"),n=e.model(i,o);return o.writer.createElement("$marker",{"data-name":n})}}}class hr extends(Be()){model;view;mapper;downcastDispatcher;constructor(e,t){super(),this.model=e,this.view=new es(t),this.mapper=new hs,this.downcastDispatcher=new fs({mapper:this.mapper,schema:e.schema});const o=this.model.document,i=o.selection,n=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(o,"change",(()=>{this.view.change((e=>{this.downcastDispatcher.convertChanges(o.differ,n,e),this.downcastDispatcher.convertSelection(i,n,e)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(e,t){return(o,i)=>{const n=i.newSelection,s=[];for(const e of n.getRanges())s.push(t.toModelRange(e));const r=e.createSelection(s,{backward:n.isBackward});r.isEqual(e.document.selection)||e.change((e=>{e.setSelection(r)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewPosition(t.range.start),s=i.createText(t.item.data);i.insert(n,s)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((e,t,o)=>{if(t.reconversion)return;const i=o.mapper.toViewPosition(t.position),n=t.position.getShiftedBy(t.length),s=o.mapper.toViewPosition(n,{isPhantom:!0});$s(o.writer.createRange(i,s).getTrimmed(),o)}),{priority:"low"}),this.downcastDispatcher.on("cleanSelection",((e,t,o)=>{const i=o.writer,n=i.document.selection;for(const e of n.getRanges())e.isCollapsed&&e.end.parent.isAttached()&&o.writer.mergeAttributes(e.start);i.setSelection(null)})),this.downcastDispatcher.on("selection",((e,t,o)=>{const i=t.selection;if(i.isCollapsed)return;if(!o.consumable.consume(i,"selection"))return;const n=[];for(const e of i.getRanges())n.push(o.mapper.toViewRange(e));o.writer.setSelection(n,{backward:i.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((e,t,o)=>{const i=t.selection;if(!i.isCollapsed)return;if(!o.consumable.consume(i,"selection"))return;const n=o.writer,s=i.getFirstPosition(),r=o.mapper.toViewPosition(s),a=n.breakAttributes(r);n.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((e=>{if("$graveyard"==e.rootName)return null;const t=new Ti(this.view.document,e.name);return t.rootName=e.rootName,this.mapper.bindElements(e,t),t}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(e){const t="string"==typeof e?e:e.name,o=this.model.markers.get(t);if(!o)throw new fe("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:t});this.model.change((()=>{this.model.markers._refresh(o)}))}reconvertItem(e){this.model.change((()=>{this.model.document.differ._refreshItem(e)}))}}class mr extends(Be()){_sourceDefinitions={};_attributeProperties=Object.create(null);_customChildChecks=new Map;_customAttributeChecks=new Map;_genericCheckSymbol=Symbol("$generic");_compiledDefinitions;constructor(){super(),this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((e,t)=>{t[0]=new gr(t[0])}),{priority:"highest"}),this.on("checkChild",((e,t)=>{t[0]=new gr(t[0]),t[1]=this.getDefinition(t[1])}),{priority:"highest"})}register(e,t){if(this._sourceDefinitions[e])throw new fe("schema-cannot-register-item-twice",this,{itemName:e});this._sourceDefinitions[e]=[Object.assign({},t)],this._clearCache()}extend(e,t){if(!this._sourceDefinitions[e])throw new fe("schema-cannot-extend-missing-item",this,{itemName:e});this._sourceDefinitions[e].push(Object.assign({},t)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(e){let t;return t="string"==typeof e?e:"is"in e&&(e.is("$text")||e.is("$textProxy"))?"$text":e.name,this.getDefinitions()[t]}isRegistered(e){return!!this.getDefinition(e)}isBlock(e){const t=this.getDefinition(e);return!(!t||!t.isBlock)}isLimit(e){const t=this.getDefinition(e);return!!t&&!(!t.isLimit&&!t.isObject)}isObject(e){const t=this.getDefinition(e);return!!t&&!!(t.isObject||t.isLimit&&t.isSelectable&&t.isContent)}isInline(e){const t=this.getDefinition(e);return!(!t||!t.isInline)}isSelectable(e){const t=this.getDefinition(e);return!!t&&!(!t.isSelectable&&!t.isObject)}isContent(e){const t=this.getDefinition(e);return!!t&&!(!t.isContent&&!t.isObject)}checkChild(e,t){return!!t&&this._checkContextMatch(e,t)}checkAttribute(e,t){const o=this.getDefinition(e.last);if(!o)return!1;const i=this._evaluateAttributeChecks(e,t);return void 0!==i?i:o.allowAttributes.includes(t)}checkMerge(e,t){if(e instanceof ss){const t=e.nodeBefore,o=e.nodeAfter;if(!(t instanceof Ms))throw new fe("schema-check-merge-no-element-before",this);if(!(o instanceof Ms))throw new fe("schema-check-merge-no-element-after",this);return this.checkMerge(t,o)}if(this.isLimit(e)||this.isLimit(t))return!1;for(const o of t.getChildren())if(!this.checkChild(e,o))return!1;return!0}addChildCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,i=this._customChildChecks.get(o)||[];i.push(e),this._customChildChecks.set(o,i)}addAttributeCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,i=this._customAttributeChecks.get(o)||[];i.push(e),this._customAttributeChecks.set(o,i)}setAttributeProperties(e,t){this._attributeProperties[e]=Object.assign(this.getAttributeProperties(e),t)}getAttributeProperties(e){return this._attributeProperties[e]||Object.create(null)}getLimitElement(e){let t;if(e instanceof ss)t=e.parent;else{t=(e instanceof us?[e]:Array.from(e.getRanges())).reduce(((e,t)=>{const o=t.getCommonAncestor();return e?e.getCommonAncestor(o,{includeSelf:!0}):o}),null)}for(;!this.isLimit(t)&&t.parent;)t=t.parent;return t}checkAttributeInSelection(e,t){if(e.isCollapsed){const o=[...e.getFirstPosition().getAncestors(),new Is("",e.getAttributes())];return this.checkAttribute(o,t)}{const o=e.getRanges();for(const e of o)for(const o of e)if(this.checkAttribute(o.item,t))return!0}return!1}*getValidRanges(e,t,o={}){e=function*(e){for(const t of e)yield*t.getMinimalFlatRanges()}(e);for(const i of e)yield*this._getValidRangesForRange(i,t,o)}getNearestSelectionRange(e,t="both"){if("$graveyard"==e.root.rootName)return null;if(this.checkChild(e,"$text"))return new us(e);let o,i;const n=e.getAncestors().reverse().find((e=>this.isLimit(e)))||e.root;"both"!=t&&"backward"!=t||(o=new is({boundaries:us._createIn(n),startPosition:e,direction:"backward"})),"both"!=t&&"forward"!=t||(i=new is({boundaries:us._createIn(n),startPosition:e}));for(const e of function*(e,t){let o=!1;for(;!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})}}}(o,i)){const t=e.walker==o?"elementEnd":"elementStart",i=e.value;if(i.type==t&&this.isObject(i.item))return us._createOn(i.item);if(this.checkChild(i.nextPosition,"$text"))return new us(i.nextPosition)}return null}findAllowedParent(e,t){let o=e.parent;for(;o;){if(this.checkChild(o,t))return o;if(this.isLimit(o))return null;o=o.parent}return null}setAllowedAttributes(e,t,o){const i=o.model;for(const[n,s]of Object.entries(t))i.schema.checkAttribute(e,n)&&o.setAttribute(n,s,e)}removeDisallowedAttributes(e,t){for(const o of e)if(o.is("$text"))Tr(this,o,t);else{const e=us._createIn(o).getPositions();for(const o of e){Tr(this,o.nodeBefore||o.parent,t)}}}getAttributesWithProperty(e,t,o){const i={};for(const[n,s]of e.getAttributes()){const e=this.getAttributeProperties(n);void 0!==e[t]&&(void 0!==o&&o!==e[t]||(i[n]=s))}return i}createContext(e){return new gr(e)}_clearCache(){this._compiledDefinitions=null}_compile(){const e={},t=this._sourceDefinitions,o=Object.keys(t);for(const i of o)e[i]=pr(t[i],i);const i=Object.values(e);for(const t of i)fr(e,t),br(e,t),wr(e,t),yr(e,t);for(const t of i)_r(e,t);for(const t of i)kr(e,t);for(const t of i)vr(e,t);for(const t of i)Cr(e,t);for(const t of i)Ar(e,t);this._compiledDefinitions=function(e){const t={};for(const o of Object.values(e))t[o.name]={name:o.name,isBlock:!!o.isBlock,isContent:!!o.isContent,isInline:!!o.isInline,isLimit:!!o.isLimit,isObject:!!o.isObject,isSelectable:!!o.isSelectable,allowIn:Array.from(o.allowIn).filter((t=>!!e[t])),allowChildren:Array.from(o.allowChildren).filter((t=>!!e[t])),allowAttributes:Array.from(o.allowAttributes)};return t}(e)}_checkContextMatch(e,t){const o=e.last;let i=this._evaluateChildChecks(e,t);if(i=void 0!==i?i:t.allowIn.includes(o.name),!i)return!1;const n=this.getDefinition(o),s=e.trimLast();return!!n&&(0==s.length||this._checkContextMatch(s,n))}_evaluateChildChecks(e,t){const o=this._customChildChecks.get(this._genericCheckSymbol)||[],i=this._customChildChecks.get(t.name)||[];for(const n of[...o,...i]){const o=n(e,t);if(void 0!==o)return o}}_evaluateAttributeChecks(e,t){const o=this._customAttributeChecks.get(this._genericCheckSymbol)||[],i=this._customAttributeChecks.get(t)||[];for(const n of[...o,...i]){const o=n(e,t);if(void 0!==o)return o}}*_getValidRangesForRange(e,t,o){let i=e.start,n=e.start;for(const s of e.getItems({shallow:!0})){if(s.is("element"))if(o.includeEmptyRanges&&s.isEmpty){const e=this.createContext(s);this.checkChild(e,"$text")&&this.checkAttribute(e.push("$text"),t)&&(yield us._createIn(s))}else yield*this._getValidRangesForRange(us._createIn(s),t,o);this.checkAttribute(s,t)||(i.isEqual(n)||(yield new us(i,n)),i=ss._createAfter(s)),n=ss._createAfter(s)}i.isEqual(n)||(yield new us(i,n))}findOptimalInsertionRange(e,t){const o=e.getSelectedElement();if(o&&this.isObject(o)&&!this.isInline(o))return"before"==t||"after"==t?new us(ss._createAt(o,t)):us._createOn(o);const i=to(e.getSelectedBlocks());if(!i)return new us(e.focus);if(i.isEmpty)return new us(ss._createAt(i,0));const n=ss._createAfter(i);return e.focus.isTouching(n)?new us(n):new us(ss._createBefore(i))}}class gr{_items;constructor(e){if(e instanceof gr)return e;let t;t="string"==typeof e?[e]:Array.isArray(e)?e:e.getAncestors({includeSelf:!0}),this._items=t.map(Er)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(e){const t=new gr([e]);return t._items=[...this._items,...t._items],t}trimLast(){const e=new gr([]);return e._items=this._items.slice(0,-1),e}getItem(e){return this._items[e]}*getNames(){yield*this._items.map((e=>e.name))}endsWith(e){return Array.from(this.getNames()).join(" ").endsWith(e)}startsWith(e){return Array.from(this.getNames()).join(" ").startsWith(e)}}function pr(e,t){const o={name:t,allowIn:new Set,allowChildren:new Set,disallowIn:new Set,disallowChildren:new Set,allowContentOf:new Set,allowWhere:new Set,allowAttributes:new Set,disallowAttributes:new Set,allowAttributesOf:new Set,inheritTypesFrom:new Set};return function(e,t){for(const o of e){const e=Object.keys(o).filter((e=>e.startsWith("is")));for(const i of e)t[i]=!!o[i]}}(e,o),xr(e,o,"allowIn"),xr(e,o,"allowChildren"),xr(e,o,"disallowIn"),xr(e,o,"disallowChildren"),xr(e,o,"allowContentOf"),xr(e,o,"allowWhere"),xr(e,o,"allowAttributes"),xr(e,o,"disallowAttributes"),xr(e,o,"allowAttributesOf"),xr(e,o,"inheritTypesFrom"),function(e,t){for(const o of e){const e=o.inheritAllFrom;e&&(t.allowContentOf.add(e),t.allowWhere.add(e),t.allowAttributesOf.add(e),t.inheritTypesFrom.add(e))}}(e,o),o}function fr(e,t){for(const o of t.allowIn){const i=e[o];i?i.allowChildren.add(t.name):t.allowIn.delete(o)}}function br(e,t){for(const o of t.allowChildren){const i=e[o];i?i.allowIn.add(t.name):t.allowChildren.delete(o)}}function wr(e,t){for(const o of t.disallowIn){const i=e[o];i?i.disallowChildren.add(t.name):t.disallowIn.delete(o)}}function yr(e,t){for(const o of t.disallowChildren){const i=e[o];i?i.disallowIn.add(t.name):t.disallowChildren.delete(o)}}function _r(e,t){for(const e of t.disallowChildren)t.allowChildren.delete(e);for(const e of t.disallowIn)t.allowIn.delete(e);for(const e of t.disallowAttributes)t.allowAttributes.delete(e)}function kr(e,t){for(const o of t.allowContentOf){const i=e[o];i&&(i.disallowChildren.forEach((o=>{t.allowChildren.has(o)||(t.disallowChildren.add(o),e[o].disallowIn.add(t.name))})),i.allowChildren.forEach((o=>{t.disallowChildren.has(o)||(t.allowChildren.add(o),e[o].allowIn.add(t.name))})))}}function vr(e,t){for(const o of t.allowWhere){const i=e[o];i&&(i.disallowIn.forEach((o=>{t.allowIn.has(o)||(t.disallowIn.add(o),e[o].disallowChildren.add(t.name))})),i.allowIn.forEach((o=>{t.disallowIn.has(o)||(t.allowIn.add(o),e[o].allowChildren.add(t.name))})))}}function Cr(e,t){for(const o of t.allowAttributesOf){const i=e[o];if(!i)return;i.allowAttributes.forEach((e=>{t.disallowAttributes.has(e)||t.allowAttributes.add(e)}))}}function Ar(e,t){for(const o of t.inheritTypesFrom){const i=e[o];if(i){const e=Object.keys(i).filter((e=>e.startsWith("is")));for(const o of e)o in t||(t[o]=i[o])}}}function xr(e,t,o){for(const i of e){let e=i[o];"string"==typeof e&&(e=[e]),Array.isArray(e)&&e.forEach((e=>t[o].add(e)))}}function Er(e){return"string"==typeof e||e.is("documentFragment")?{name:"string"==typeof e?e:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:e.is("element")?e.name:"$text",*getAttributeKeys(){yield*e.getAttributeKeys()},getAttribute:t=>e.getAttribute(t)}}function Tr(e,t,o){for(const i of t.getAttributeKeys())e.checkAttribute(t,i)||o.removeAttribute(i,t)}class Pr extends(xe()){conversionApi;_splitParts=new Map;_cursorParents=new Map;_modelCursor=null;_emptyElementsToKeep=new Set;constructor(e){super(),this.conversionApi={...e,consumable:null,writer:null,store:null,convertItem:(e,t)=>this._convertItem(e,t),convertChildren:(e,t)=>this._convertChildren(e,t),safeInsert:(e,t)=>this._safeInsert(e,t),updateConversionResult:(e,t)=>this._updateConversionResult(e,t),splitToAllowedParent:(e,t)=>this._splitToAllowedParent(e,t),getSplitParts:e=>this._getSplitParts(e),keepEmptyElement:e=>this._keepEmptyElement(e)}}convert(e,t,o=["$root"]){this.fire("viewCleanup",e),this._modelCursor=function(e,t){let o;for(const i of new gr(e)){const e={};for(const t of i.getAttributeKeys())e[t]=i.getAttribute(t);const n=t.createElement(i.name,e);o&&t.insert(n,o),o=ss._createAt(n,0)}return o}(o,t),this.conversionApi.writer=t,this.conversionApi.consumable=ai.createFrom(e),this.conversionApi.store={};const{modelRange:i}=this._convertItem(e,this._modelCursor),n=t.createDocumentFragment();if(i){this._removeEmptyElements();const e=this._modelCursor.parent,o=e._removeChildren(0,e.childCount);n._insertChild(0,o),n.markers=function(e,t){const o=new Set,i=new Map,n=us._createIn(e).getItems();for(const e of n)e.is("element","$marker")&&o.add(e);for(const e of o){const o=e.getAttribute("data-name"),n=t.createPositionBefore(e);i.has(o)?i.get(o).end=n.clone():i.set(o,new us(n.clone())),t.remove(e)}return i}(n,t)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,n}_convertItem(e,t){const o={viewItem:e,modelCursor:t,modelRange:null};if(e.is("element")?this.fire(`element:${e.name}`,o,this.conversionApi):e.is("$text")?this.fire("text",o,this.conversionApi):this.fire("documentFragment",o,this.conversionApi),o.modelRange&&!(o.modelRange instanceof us))throw new fe("view-conversion-dispatcher-incorrect-result",this);return{modelRange:o.modelRange,modelCursor:o.modelCursor}}_convertChildren(e,t){let o=t.is("position")?t:ss._createAt(t,0);const i=new us(o);for(const t of Array.from(e.getChildren())){const e=this._convertItem(t,o);e.modelRange instanceof us&&(i.end=e.modelRange.end,o=e.modelCursor)}return{modelRange:i,modelCursor:o}}_safeInsert(e,t){const o=this._splitToAllowedParent(e,t);return!!o&&(this.conversionApi.writer.insert(e,o.position),!0)}_updateConversionResult(e,t){const o=this._getSplitParts(e),i=this.conversionApi.writer;t.modelRange||(t.modelRange=i.createRange(i.createPositionBefore(e),i.createPositionAfter(o[o.length-1])));const n=this._cursorParents.get(e);t.modelCursor=n?i.createPositionAt(n,0):t.modelRange.end}_splitToAllowedParent(e,t){const{schema:o,writer:i}=this.conversionApi;let n=o.findAllowedParent(t,e);if(n){if(n===t.parent)return{position:t};this._modelCursor.parent.getAncestors().includes(n)&&(n=null)}if(!n)return ir(t,e,o)?{position:nr(t,i)}:null;const s=this.conversionApi.writer.split(t,n),r=[];for(const e of s.range.getWalker())if("elementEnd"==e.type)r.push(e.item);else{const t=r.pop(),o=e.item;this._registerSplitPair(t,o)}const a=s.range.end.parent;return this._cursorParents.set(e,a),{position:s.position,cursorParent:a}}_registerSplitPair(e,t){this._splitParts.has(e)||this._splitParts.set(e,[e]);const o=this._splitParts.get(e);this._splitParts.set(t,o),o.push(t)}_getSplitParts(e){let t;return t=this._splitParts.has(e)?this._splitParts.get(e):[e],t}_keepEmptyElement(e){this._emptyElementsToKeep.add(e)}_removeEmptyElements(){const e=new Map;for(const t of this._splitParts.keys())if(t.isEmpty&&!this._emptyElementsToKeep.has(t)){const o=e.get(t.parent)||[];o.push(t),this._splitParts.delete(t),e.set(t.parent,o)}for(const[t,o]of e)t._removeChildrenArray(o);e.size&&this._removeEmptyElements()}}class Sr{getHtml(e){const t=J.document.implementation.createHTMLDocument("").createElement("div");return t.appendChild(e),t.innerHTML}}class Ir{domParser;domConverter;htmlWriter;skipComments=!0;constructor(e){this.domParser=new DOMParser,this.domConverter=new Rn(e,{renderingMode:"data"}),this.htmlWriter=new Sr}toData(e){const t=this.domConverter.viewToDom(e);return this.htmlWriter.getHtml(t)}toView(e){const t=this._toDom(e);return this.domConverter.domToView(t,{skipComments:this.skipComments})}registerRawContentMatcher(e){this.domConverter.registerRawContentMatcher(e)}useFillerType(e){this.domConverter.blockFillerMode="marked"==e?"markedNbsp":"nbsp"}_toDom(e){/<(?:html|body|head|meta)(?:\s[^>]*)?>/i.test(e.trim().slice(0,1e4))||(e=`${e}`);const t=this.domParser.parseFromString(e,"text/html"),o=t.createDocumentFragment(),i=t.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);return o}}class Rr extends(xe()){model;mapper;downcastDispatcher;upcastDispatcher;viewDocument;stylesProcessor;htmlProcessor;processor;_viewWriter;constructor(e,t){super(),this.model=e,this.mapper=new hs,this.downcastDispatcher=new fs({mapper:this.mapper,schema:e.schema}),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewPosition(t.range.start),s=i.createText(t.item.data);i.insert(n,s)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.upcastDispatcher=new Pr({schema:e.schema}),this.viewDocument=new Hi(t),this.stylesProcessor=t,this.htmlProcessor=new Ir(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new on(this.viewDocument),this.upcastDispatcher.on("text",((e,t,{schema:o,consumable:i,writer:n})=>{let s=t.modelCursor;if(!i.test(t.viewItem))return;if(!o.checkChild(s,"$text")){if(!ir(s,"$text",o))return;if(0==t.viewItem.data.trim().length)return;s=nr(s,n)}i.consume(t.viewItem);const r=n.createText(t.viewItem.data);n.insert(r,s),t.modelRange=n.createRange(s,s.getShiftedBy(r.offsetSize)),t.modelCursor=t.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:i}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=i}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:i}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=i}}),{priority:"lowest"}),Be().prototype.decorate.call(this,"init"),Be().prototype.decorate.call(this,"set"),Be().prototype.decorate.call(this,"get"),Be().prototype.decorate.call(this,"toView"),Be().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},or)}),{priority:"lowest"})}get(e={}){const{rootName:t="main",trim:o="empty"}=e;if(!this._checkIfRootsExists([t]))throw new fe("datacontroller-get-non-existent-root",this);const i=this.model.document.getRoot(t);return i.isAttached()||be("datacontroller-get-detached-root",this),"empty"!==o||this.model.hasContent(i,{ignoreWhitespaces:!0})?this.stringify(i,e):""}stringify(e,t={}){const o=this.toView(e,t);return this.processor.toData(o)}toView(e,t={}){const o=this.viewDocument,i=this._viewWriter;this.mapper.clearBindings();const n=us._createIn(e),s=new tn(o);this.mapper.bindElements(e,s);const r=e.is("documentFragment")?e.markers:function(e){const t=[],o=e.root.document;if(!o)return new Map;const i=us._createIn(e);for(const e of o.model.markers){const o=e.getRange(),n=o.isCollapsed,s=o.start.isEqual(i.start)||o.end.isEqual(i.end);if(n&&s)t.push([e.name,o]);else{const n=i.getIntersection(o);n&&t.push([e.name,n])}}return t.sort((([e,t],[o,i])=>{if("after"!==t.end.compareWith(i.start))return 1;if("before"!==t.start.compareWith(i.end))return-1;switch(t.start.compareWith(i.start)){case"before":return 1;case"after":return-1;default:switch(t.end.compareWith(i.end)){case"before":return 1;case"after":return-1;default:return o.localeCompare(e)}}})),new Map(t)}(e);return this.downcastDispatcher.convert(n,r,i,t),s}init(e){if(this.model.document.version)throw new fe("datacontroller-init-document-not-empty",this);let t={};if("string"==typeof e?t.main=e:t=e,!this._checkIfRootsExists(Object.keys(t)))throw new fe("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(e=>{for(const o of Object.keys(t)){const i=this.model.document.getRoot(o);e.insert(this.parse(t[o],i),i,0)}})),Promise.resolve()}set(e,t={}){let o={};if("string"==typeof e?o.main=e:o=e,!this._checkIfRootsExists(Object.keys(o)))throw new fe("datacontroller-set-non-existent-root",this);this.model.enqueueChange(t.batchType||{},(e=>{e.setSelection(null),e.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const t of Object.keys(o)){const i=this.model.document.getRoot(t);e.remove(e.createRangeIn(i)),e.insert(this.parse(o[t],i),i,0)}}))}parse(e,t="$root"){const o=this.processor.toView(e);return this.toModel(o,t)}toModel(e,t="$root"){return this.model.change((o=>this.upcastDispatcher.convert(e,o,t)))}addStyleProcessorRules(e){e(this.stylesProcessor)}registerRawContentMatcher(e){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(e),this.htmlProcessor.registerRawContentMatcher(e)}destroy(){this.stopListening()}_checkIfRootsExists(e){for(const t of e)if(!this.model.document.getRoot(t))return!1;return!0}}class Or{_helpers=new Map;_downcast;_upcast;constructor(e,t){this._downcast=Qt(e),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Qt(t),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(e,t){const o=this._downcast.includes(t);if(!this._upcast.includes(t)&&!o)throw new fe("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:e,dispatchers:[t],isDowncast:o})}for(e){if(!this._helpers.has(e))throw new fe("conversion-for-unknown-group",this);return this._helpers.get(e)}elementToElement(e){this.for("downcast").elementToElement(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").elementToElement({model:t,view:o,converterPriority:e.converterPriority})}attributeToElement(e){this.for("downcast").attributeToElement(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").elementToAttribute({view:o,model:t,converterPriority:e.converterPriority})}attributeToAttribute(e){this.for("downcast").attributeToAttribute(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").attributeToAttribute({view:o,model:t})}_createConversionHelpers({name:e,dispatchers:t,isDowncast:o}){if(this._helpers.has(e))throw new fe("conversion-group-exists",this);const i=o?new Bs(t):new sr(t);this._helpers.set(e,i)}}function*Vr(e){if(e.model.values)for(const t of e.model.values){const o={key:e.model.key,value:t},i=e.view[t],n=e.upcastAlso?e.upcastAlso[t]:void 0;yield*Dr(o,i,n)}else yield*Dr(e.model,e.view,e.upcastAlso)}function*Dr(e,t,o){if(yield{model:e,view:t},o)for(const t of Qt(o))yield{model:e,view:t}}class Fr{baseVersion;isDocumentOperation;batch;constructor(e){this.baseVersion=e,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const e=Object.assign({},this);return e.__className=this.constructor.className,delete e.batch,delete e.isDocumentOperation,e}static get className(){return"Operation"}static fromJSON(e,t){return new this(e.baseVersion)}}function Mr(e,t){const o=Lr(t),i=o.reduce(((e,t)=>e+t.offsetSize),0),n=e.parent;jr(e);const s=e.index;return n._insertChild(s,o),zr(n,s+o.length),zr(n,s),new us(e,e.getShiftedBy(i))}function Nr(e){if(!e.isFlat)throw new fe("operation-utils-remove-range-not-flat",this);const t=e.start.parent;jr(e.start),jr(e.end);const o=t._removeChildren(e.start.index,e.end.index-e.start.index);return zr(t,e.start.index),o}function Br(e,t){if(!e.isFlat)throw new fe("operation-utils-move-range-not-flat",this);const o=Nr(e);return Mr(t=t._getTransformedByDeletion(e.start,e.end.offset-e.start.offset),o)}function Lr(e){const t=[];!function e(o){if("string"==typeof o)t.push(new Is(o));else if(o instanceof os)t.push(new Is(o.data,o.getAttributes()));else if(o instanceof ys)t.push(o);else if(Ue(o))for(const t of o)e(t)}(e);for(let e=1;ee.maxOffset)throw new fe("move-operation-nodes-do-not-exist",this);if(e===t&&o=o&&this.targetPosition.path[e]e._clone(!0)))),t=new Hr(this.position,e,this.baseVersion);return t.shouldReceiveAttributes=this.shouldReceiveAttributes,t}getReversed(){const e=this.position.root.document.graveyard,t=new ss(e,[0]);return new $r(this.position,this.nodes.maxOffset,t,this.baseVersion+1)}_validate(){const e=this.position.parent;if(!e||e.maxOffsete._clone(!0)))),Mr(this.position,e)}toJSON(){const e=super.toJSON();return e.position=this.position.toJSON(),e.nodes=this.nodes.toJSON(),e}static get className(){return"InsertOperation"}static fromJSON(e,t){const o=[];for(const t of e.nodes)t.name?o.push(Ms.fromJSON(t)):o.push(Is.fromJSON(t));const i=new Hr(ss.fromJSON(e.position,t),o,e.baseVersion);return i.shouldReceiveAttributes=e.shouldReceiveAttributes,i}}class Wr extends Fr{splitPosition;howMany;insertionPosition;graveyardPosition;constructor(e,t,o,i,n){super(n),this.splitPosition=e.clone(),this.splitPosition.stickiness="toNext",this.howMany=t,this.insertionPosition=o,this.graveyardPosition=i?i.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const e=this.insertionPosition.path.slice();return e.push(0),new ss(this.insertionPosition.root,e)}get movedRange(){const e=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new us(this.splitPosition,e)}get affectedSelectable(){const e=[us._createFromPositionAndShift(this.splitPosition,0),us._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&e.push(us._createFromPositionAndShift(this.graveyardPosition,0)),e}clone(){return new Wr(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const e=this.splitPosition.root.document.graveyard,t=new ss(e,[0]);return new Ur(this.moveTargetPosition,this.howMany,this.splitPosition,t,this.baseVersion+1)}_validate(){const e=this.splitPosition.parent,t=this.splitPosition.offset;if(!e||e.maxOffset1&&e.sourcePosition.isEqual(t.deletionPosition)?this._setRelation(e,t,"firstToMoveMerged"):e.howMany>1&&e.sourcePosition.getShiftedBy(e.howMany-1).isEqual(t.deletionPosition)&&this._setRelation(e,t,"lastToMoveMerged"):t instanceof $r&&(e.targetPosition.isEqual(t.sourcePosition)||e.targetPosition.isBefore(t.sourcePosition)?this._setRelation(e,t,"insertBefore"):this._setRelation(e,t,"insertAfter"));else if(e instanceof Wr){if(t instanceof Ur)e.splitPosition.isBefore(t.sourcePosition)&&this._setRelation(e,t,"splitBefore");else if(t instanceof $r)if(e.splitPosition.isEqual(t.sourcePosition)||e.splitPosition.isBefore(t.sourcePosition))this._setRelation(e,t,"splitBefore");else{const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.splitPosition)){const i=o.end.offset-e.splitPosition.offset,n=e.splitPosition.offset-o.start.offset;this._setRelation(e,t,{howMany:i,offset:n})}}}else if(e instanceof Ur)t instanceof Ur?(e.targetPosition.isEqual(t.sourcePosition)||this._setRelation(e,t,"mergeTargetNotMoved"),e.sourcePosition.isEqual(t.targetPosition)&&this._setRelation(e,t,"mergeSourceNotMoved"),e.sourcePosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeSameElement")):t instanceof Wr?e.sourcePosition.isEqual(t.splitPosition)&&this._setRelation(e,t,"splitAtSource"):t instanceof $r&&t.howMany>0&&(e.sourcePosition.isEqual(t.sourcePosition.getShiftedBy(t.howMany))&&this._setRelation(e,t,"mergeSourceAffected"),e.targetPosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeTargetWasBefore"));else if(e instanceof Kr){const o=e.newRange;if(!o)return;if(t instanceof Ur){const i=o.start.isEqual(t.targetPosition),n=o.start.isEqual(t.deletionPosition),s=o.end.isEqual(t.deletionPosition),r=o.end.isEqual(t.sourcePosition);(i||n||s||r)&&this._setRelation(e,t,{wasInLeftElement:i,wasStartBeforeMergedElement:n,wasEndBeforeMergedElement:s,wasInRightElement:r})}}}getContext(e,t,o){return{aIsStrong:o,aWasUndone:this._wasUndone(e),bWasUndone:this._wasUndone(t),abRelation:this._useRelations?this._getRelation(e,t):null,baRelation:this._useRelations?this._getRelation(t,e):null,forceWeakRemove:this._forceWeakRemove}}_wasUndone(e){const t=this.originalOperations.get(e);return t.wasUndone||this._history.isUndoneOperation(t)}_getRelation(e,t){const o=this.originalOperations.get(t),i=this._history.getUndoneOperation(o);if(!i)return null;const n=this.originalOperations.get(e),s=this._relations.get(n);return s&&s.get(i)||null}_setRelation(e,t,o){const i=this.originalOperations.get(e),n=this.originalOperations.get(t);let s=this._relations.get(i);s||(s=new Map,this._relations.set(i,s)),s.set(n,o)}}function aa(e,t){for(const o of e)o.baseVersion=t++}function la(e,t){for(let o=0;o{if(e.key===t.key&&e.range.start.hasSameParentAs(t.range.start)){const i=e.range.getDifference(t.range).map((t=>new Gr(t,e.key,e.oldValue,e.newValue,0))),n=e.range.getIntersection(t.range);return n&&o.aIsStrong&&i.push(new Gr(n,t.key,t.newValue,e.newValue,0)),0==i.length?[new Jr(0)]:i}return[e]})),oa(Gr,Hr,((e,t)=>{if(e.range.start.hasSameParentAs(t.position)&&e.range.containsPosition(t.position)){const o=e.range._getTransformedByInsertion(t.position,t.howMany,!t.shouldReceiveAttributes).map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)));if(t.shouldReceiveAttributes){const i=da(t,e.key,e.oldValue);i&&o.unshift(i)}return o}return e.range=e.range._getTransformedByInsertion(t.position,t.howMany,!1)[0],[e]})),oa(Gr,Ur,((e,t)=>{const o=[];e.range.start.hasSameParentAs(t.deletionPosition)&&(e.range.containsPosition(t.deletionPosition)||e.range.start.isEqual(t.deletionPosition))&&o.push(us._createFromPositionAndShift(t.graveyardPosition,1));const i=e.range._getTransformedByMergeOperation(t);return i.isCollapsed||o.push(i),o.map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),oa(Gr,$r,((e,t)=>{const o=function(e,t){const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);let i=null,n=[];o.containsRange(e,!0)?i=e:e.start.hasSameParentAs(o.start)?(n=e.getDifference(o),i=e.getIntersection(o)):n=[e];const s=[];for(let e of n){e=e._getTransformedByDeletion(t.sourcePosition,t.howMany);const o=t.getMovedRangeStart(),i=e.start.hasSameParentAs(o),n=e._getTransformedByInsertion(o,t.howMany,i);s.push(...n)}i&&s.push(i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!1)[0]);return s}(e.range,t);return o.map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),oa(Gr,Wr,((e,t)=>{if(e.range.end.isEqual(t.insertionPosition))return t.graveyardPosition||e.range.end.offset++,[e];if(e.range.start.hasSameParentAs(t.splitPosition)&&e.range.containsPosition(t.splitPosition)){const o=e.clone();return o.range=new us(t.moveTargetPosition.clone(),e.range.end._getCombined(t.splitPosition,t.moveTargetPosition)),e.range.end=t.splitPosition.clone(),e.range.end.stickiness="toPrevious",[e,o]}return e.range=e.range._getTransformedBySplitOperation(t),[e]})),oa(Hr,Gr,((e,t)=>{const o=[e];if(e.shouldReceiveAttributes&&e.position.hasSameParentAs(t.range.start)&&t.range.containsPosition(e.position)){const i=da(e,t.key,t.newValue);i&&o.push(i)}return o})),oa(Hr,Hr,((e,t,o)=>(e.position.isEqual(t.position)&&o.aIsStrong||(e.position=e.position._getTransformedByInsertOperation(t)),[e]))),oa(Hr,$r,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),oa(Hr,Wr,((e,t)=>(e.position=e.position._getTransformedBySplitOperation(t),[e]))),oa(Hr,Ur,((e,t)=>(e.position=e.position._getTransformedByMergeOperation(t),[e]))),oa(Kr,Hr,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByInsertOperation(t)[0]),e.newRange&&(e.newRange=e.newRange._getTransformedByInsertOperation(t)[0]),[e]))),oa(Kr,Kr,((e,t,o)=>{if(e.name==t.name){if(!o.aIsStrong)return[new Jr(0)];e.oldRange=t.newRange?t.newRange.clone():null}return[e]})),oa(Kr,Ur,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByMergeOperation(t)),e.newRange&&(e.newRange=e.newRange._getTransformedByMergeOperation(t)),[e]))),oa(Kr,$r,((e,t)=>{const o=[e];if(e.oldRange&&(e.oldRange=us._createFromRanges(e.oldRange._getTransformedByMoveOperation(t))),e.newRange){const i=e.newRange._getTransformedByMoveOperation(t);e.newRange=i[0];for(let t=1;t{if(e.oldRange&&(e.oldRange=e.oldRange._getTransformedBySplitOperation(t)),e.newRange){if(o.abRelation){const i=e.newRange._getTransformedBySplitOperation(t);return e.newRange.start.isEqual(t.splitPosition)?o.abRelation.wasStartBeforeMergedElement?e.newRange.start=ss._createAt(t.insertionPosition):o.abRelation.wasInLeftElement?e.newRange.start=ss._createAt(e.newRange.start):e.newRange.start=ss._createAt(t.moveTargetPosition):e.newRange.start=i.start,e.newRange.end.isEqual(t.splitPosition)?e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasEndBeforeMergedElement?e.newRange.end=ss._createAt(t.insertionPosition):o.abRelation.wasInRightElement?e.newRange.end=ss._createAt(t.moveTargetPosition):e.newRange.end=ss._createAt(e.newRange.end):e.newRange.end=i.end,[e]}e.newRange=e.newRange._getTransformedBySplitOperation(t)}return[e]})),oa(Ur,Hr,((e,t)=>(e.sourcePosition.hasSameParentAs(t.position)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByInsertOperation(t),e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t),[e]))),oa(Ur,Ur,((e,t,o)=>{if(e.sourcePosition.isEqual(t.sourcePosition)&&e.targetPosition.isEqual(t.targetPosition)){if(o.bWasUndone){const o=t.graveyardPosition.path.slice();return o.push(0),e.sourcePosition=new ss(t.graveyardPosition.root,o),e.howMany=0,[e]}return[new Jr(0)]}if(e.sourcePosition.isEqual(t.sourcePosition)&&!e.targetPosition.isEqual(t.targetPosition)&&!o.bWasUndone&&"splitAtSource"!=o.abRelation){const i="$graveyard"==e.targetPosition.root.rootName,n="$graveyard"==t.targetPosition.root.rootName;if(n&&!i||!(i&&!n)&&o.aIsStrong){const o=t.targetPosition._getTransformedByMergeOperation(t),i=e.targetPosition._getTransformedByMergeOperation(t);return[new $r(o,e.howMany,i,0)]}return[new Jr(0)]}return e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByMergeOperation(t),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),e.graveyardPosition.isEqual(t.graveyardPosition)&&o.aIsStrong||(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),oa(Ur,$r,((e,t,o)=>{const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);return"remove"==t.type&&!o.bWasUndone&&e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition)?[new Jr(0)]:(t.sourcePosition.getShiftedBy(t.howMany).isEqual(e.sourcePosition)?e.sourcePosition.stickiness="toNone":t.targetPosition.isEqual(e.sourcePosition)&&"mergeSourceAffected"==o.abRelation?e.sourcePosition.stickiness="toNext":t.sourcePosition.isEqual(e.targetPosition)?(e.targetPosition.stickiness="toNone",e.howMany-=t.howMany):t.targetPosition.isEqual(e.targetPosition)&&"mergeTargetWasBefore"==o.abRelation?(e.targetPosition.stickiness="toPrevious",e.howMany+=t.howMany):(e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition.hasSameParentAs(t.sourcePosition)&&(e.howMany-=t.howMany)),e.sourcePosition=e.sourcePosition._getTransformedByMoveOperation(t),e.targetPosition=e.targetPosition._getTransformedByMoveOperation(t),e.sourcePosition.stickiness="toPrevious",e.targetPosition.stickiness="toNext",e.graveyardPosition.isEqual(t.targetPosition)||(e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)),[e])})),oa(Ur,Wr,((e,t,o)=>{if(t.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByDeletion(t.graveyardPosition,1),e.deletionPosition.isEqual(t.graveyardPosition)&&(e.howMany=t.howMany)),e.targetPosition.isEqual(t.splitPosition)){if(t.graveyardPosition&&e.deletionPosition.isEqual(t.graveyardPosition)||"mergeTargetNotMoved"==o.abRelation)return e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),[e]}if(e.sourcePosition.isEqual(t.splitPosition)){if("mergeSourceNotMoved"==o.abRelation)return e.howMany=0,e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e];if("mergeSameElement"==o.abRelation||e.sourcePosition.offset>0)return e.sourcePosition=t.moveTargetPosition.clone(),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]}return e.sourcePosition.hasSameParentAs(t.splitPosition)&&(e.howMany=t.splitPosition.offset),e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]})),oa($r,Hr,((e,t)=>{const o=us._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByInsertOperation(t,!1)[0];return e.sourcePosition=o.start,e.howMany=o.end.offset-o.start.offset,e.targetPosition.isEqual(t.position)||(e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t)),[e]})),oa($r,$r,((e,t,o)=>{const i=us._createFromPositionAndShift(e.sourcePosition,e.howMany),n=us._createFromPositionAndShift(t.sourcePosition,t.howMany);let s,r=o.aIsStrong,a=!o.aIsStrong;if("insertBefore"==o.abRelation||"insertAfter"==o.baRelation?a=!0:"insertAfter"!=o.abRelation&&"insertBefore"!=o.baRelation||(a=!1),s=e.targetPosition.isEqual(t.targetPosition)&&a?e.targetPosition._getTransformedByDeletion(t.sourcePosition,t.howMany):e.targetPosition._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ua(e,t)&&ua(t,e))return[t.getReversed()];if(i.containsPosition(t.targetPosition)&&i.containsRange(n,!0))return i.start=i.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),i.end=i.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ha([i],s);if(n.containsPosition(e.targetPosition)&&n.containsRange(i,!0))return i.start=i.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),i.end=i.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),ha([i],s);const l=We(e.sourcePosition.getParentPath(),t.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return i.start=i.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),i.end=i.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ha([i],s);"remove"!=e.type||"remove"==t.type||o.aWasUndone||o.forceWeakRemove?"remove"==e.type||"remove"!=t.type||o.bWasUndone||o.forceWeakRemove||(r=!1):r=!0;const c=[],d=i.getDifference(n);for(const e of d){e.start=e.start._getTransformedByDeletion(t.sourcePosition,t.howMany),e.end=e.end._getTransformedByDeletion(t.sourcePosition,t.howMany);const o="same"==We(e.start.getParentPath(),t.getMovedRangeStart().getParentPath()),i=e._getTransformedByInsertion(t.getMovedRangeStart(),t.howMany,o);c.push(...i)}const u=i.getIntersection(n);return null!==u&&r&&(u.start=u.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),u.end=u.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),0===c.length?c.push(u):1==c.length?n.start.isBefore(i.start)||n.start.isEqual(i.start)?c.unshift(u):c.push(u):c.splice(1,0,u)),0===c.length?[new Jr(e.baseVersion)]:ha(c,s)})),oa($r,Wr,((e,t,o)=>{let i=e.targetPosition.clone();if(e.targetPosition.isEqual(t.insertionPosition)&&t.graveyardPosition&&"moveTargetAfter"!=o.abRelation||(i=e.targetPosition._getTransformedBySplitOperation(t)),e.sourcePosition.isEqual(t.insertionPosition)&&"firstToMoveMerged"==o.abRelation)return e.howMany++,e.targetPosition=i,[e];const n=us._createFromPositionAndShift(e.sourcePosition,e.howMany);if(n.end.isEqual(t.insertionPosition))return t.graveyardPosition&&"lastToMoveMerged"!=o.abRelation||e.howMany++,e.targetPosition=i,[e];if(n.start.hasSameParentAs(t.splitPosition)&&n.containsPosition(t.splitPosition)){let e=new us(t.splitPosition,n.end);e=e._getTransformedBySplitOperation(t);return ha([new us(n.start,t.splitPosition),e],i)}e.targetPosition.isEqual(t.splitPosition)&&"insertAtSource"==o.abRelation&&(i=t.moveTargetPosition),e.targetPosition.isEqual(t.insertionPosition)&&"insertBetween"==o.abRelation&&(i=e.targetPosition);const s=[n._getTransformedBySplitOperation(t)];if(t.graveyardPosition){const i=n.start.isEqual(t.graveyardPosition)||n.containsPosition(t.graveyardPosition);e.howMany>1&&i&&!o.aWasUndone&&s.push(us._createFromPositionAndShift(t.insertionPosition,1))}return ha(s,i)})),oa($r,Ur,((e,t,o)=>{const i=us._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition))if("remove"!=e.type||o.forceWeakRemove){if(1==e.howMany)return o.bWasUndone?(e.sourcePosition=t.graveyardPosition.clone(),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]):[new Jr(0)]}else if(!o.aWasUndone){const o=[];let i=t.graveyardPosition.clone(),n=t.targetPosition._getTransformedByMergeOperation(t);const s=e.targetPosition.getTransformedByOperation(t);e.howMany>1&&(o.push(new $r(e.sourcePosition,e.howMany-1,s,0)),i=i._getTransformedByMove(e.sourcePosition,s,e.howMany-1),n=n._getTransformedByMove(e.sourcePosition,s,e.howMany-1));const r=t.deletionPosition._getCombined(e.sourcePosition,s),a=new $r(i,1,r,0),l=a.getMovedRangeStart().path.slice();l.push(0);const c=new ss(a.targetPosition.root,l);n=n._getTransformedByMove(i,r,1);const d=new $r(n,t.howMany,c,0);return o.push(a),o.push(d),o}const n=us._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByMergeOperation(t);return e.sourcePosition=n.start,e.howMany=n.end.offset-n.start.offset,e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]})),oa(Zr,Hr,((e,t)=>(e.position=e.position._getTransformedByInsertOperation(t),[e]))),oa(Zr,Ur,((e,t)=>e.position.isEqual(t.deletionPosition)?(e.position=t.graveyardPosition.clone(),e.position.stickiness="toNext",[e]):(e.position=e.position._getTransformedByMergeOperation(t),[e]))),oa(Zr,$r,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),oa(Zr,Zr,((e,t,o)=>{if(e.position.isEqual(t.position)){if(!o.aIsStrong)return[new Jr(0)];e.oldName=t.newName}return[e]})),oa(Zr,Wr,((e,t)=>{if("same"==We(e.position.path,t.splitPosition.getParentPath())&&!t.graveyardPosition){const t=new Zr(e.position.getShiftedBy(1),e.oldName,e.newName,0);return[e,t]}return e.position=e.position._getTransformedBySplitOperation(t),[e]})),oa(Qr,Qr,((e,t,o)=>{if(e.root===t.root&&e.key===t.key){if(!o.aIsStrong)return[new Jr(0)];e.oldValue=t.newValue}return[e]})),oa(Yr,Yr,((e,t)=>e.rootName===t.rootName&&e.isAdd===t.isAdd?[new Jr(0)]:[e])),oa(Wr,Hr,((e,t)=>(e.splitPosition.hasSameParentAs(t.position)&&e.splitPosition.offset{if(!e.graveyardPosition&&!o.bWasUndone&&e.splitPosition.hasSameParentAs(t.sourcePosition)){const o=t.graveyardPosition.path.slice();o.push(0);const i=new ss(t.graveyardPosition.root,o),n=Wr.getInsertionPosition(new ss(t.graveyardPosition.root,o)),s=new Wr(i,0,n,null,0);return e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),e.graveyardPosition=s.insertionPosition.clone(),e.graveyardPosition.stickiness="toNext",[s,e]}return e.splitPosition.hasSameParentAs(t.deletionPosition)&&!e.splitPosition.isAfter(t.deletionPosition)&&e.howMany--,e.splitPosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),oa(Wr,$r,((e,t,o)=>{const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.graveyardPosition){const n=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);if(!o.bWasUndone&&n){const o=e.splitPosition._getTransformedByMoveOperation(t),i=e.graveyardPosition._getTransformedByMoveOperation(t),n=i.path.slice();n.push(0);const s=new ss(i.root,n);return[new $r(o,e.howMany,s,0)]}e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)}const n=e.splitPosition.isEqual(t.targetPosition);if(n&&("insertAtSource"==o.baRelation||"splitBefore"==o.abRelation))return e.howMany+=t.howMany,e.splitPosition=e.splitPosition._getTransformedByDeletion(t.sourcePosition,t.howMany),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),[e];if(n&&o.abRelation&&o.abRelation.howMany){const{howMany:t,offset:i}=o.abRelation;return e.howMany+=t,e.splitPosition=e.splitPosition.getShiftedBy(i),[e]}if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.splitPosition)){const o=t.howMany-(e.splitPosition.offset-t.sourcePosition.offset);return e.howMany-=o,e.splitPosition.hasSameParentAs(t.targetPosition)&&e.splitPosition.offset{if(e.splitPosition.isEqual(t.splitPosition)){if(!e.graveyardPosition&&!t.graveyardPosition)return[new Jr(0)];if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition))return[new Jr(0)];if("splitBefore"==o.abRelation)return e.howMany=0,e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t),[e]}if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition)){const i="$graveyard"==e.splitPosition.root.rootName,n="$graveyard"==t.splitPosition.root.rootName;if(n&&!i||!(i&&!n)&&o.aIsStrong){const o=[];return t.howMany&&o.push(new $r(t.moveTargetPosition,t.howMany,t.splitPosition,0)),e.howMany&&o.push(new $r(e.splitPosition,e.howMany,e.moveTargetPosition,0)),o}return[new Jr(0)]}if(e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t)),e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==o.abRelation)return e.howMany++,[e];if(t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==o.baRelation){const o=t.insertionPosition.path.slice();o.push(0);const i=new ss(t.insertionPosition.root,o);return[e,new $r(e.insertionPosition,1,i,0)]}return e.splitPosition.hasSameParentAs(t.splitPosition)&&e.splitPosition.offset{const o=t[0];o.isDocumentOperation&&pa.call(this,o)}),{priority:"low"})}function pa(e){const t=this.getTransformedByOperation(e);if(!this.isEqual(t)){const e=this.toPosition();this.path=t.path,this.root=t.root,this.fire("change",e)}}ma.prototype.is=function(e){return"livePosition"===e||"model:livePosition"===e||"position"==e||"model:position"===e};class fa{operations;isUndoable;isLocal;isUndo;isTyping;constructor(e={}){"string"==typeof e&&(e="transparent"===e?{isUndoable:!1}:{},be("batch-constructor-deprecated-string-type"));const{isUndoable:t=!0,isLocal:o=!0,isUndo:i=!1,isTyping:n=!1}=e;this.operations=[],this.isUndoable=t,this.isLocal=o,this.isUndo=i,this.isTyping=n}get baseVersion(){for(const e of this.operations)if(null!==e.baseVersion)return e.baseVersion;return null}addOperation(e){return e.isDocumentOperation&&(e.batch=this,this.operations.push(e)),e}}class ba{static _statesPriority=[void 0,"refresh","rename","move"];_markerCollection;_changesInElement=new Map;_elementsSnapshots=new Map;_elementChildrenSnapshots=new Map;_elementState=new Map;_changedMarkers=new Map;_changedRoots=new Map;_changeCount=0;_cachedChanges=null;_cachedChangesWithGraveyard=null;_refreshedItems=new Set;constructor(e){this._markerCollection=e}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size&&0==this._changedRoots.size}bufferOperation(e){const t=e;switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),o=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),o||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of i.getItems({shallow:!0}))this._setElementState(e,"move");break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=us._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._setElementState(t.position.nodeAfter,"rename");break}case"split":{const e=t.splitPosition.parent;if(!this._isInInsertedElement(e)){this._markRemove(e,t.splitPosition.offset,t.howMany);const o=us._createFromPositionAndShift(t.splitPosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&(this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1),this._setElementState(t.graveyardPosition.nodeAfter,"move"));break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const o=t.graveyardPosition.parent;this._markInsert(o,t.graveyardPosition.offset,1),this._setElementState(e,"move");const i=t.targetPosition.parent;if(!this._isInInsertedElement(i)){this._markInsert(i,t.targetPosition.offset,e.maxOffset);const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}break}case"detachRoot":case"addRoot":{const e=t.affectedSelectable;if(!e._isLoaded)return;if(e.isAttached()==t.isAdd)return;this._bufferRootStateChange(t.rootName,t.isAdd);break}case"addRootAttribute":case"removeRootAttribute":case"changeRootAttribute":{if(!t.root._isLoaded)return;const e=t.root.rootName;this._bufferRootAttributeChange(e,t.key,t.oldValue,t.newValue);break}}this._cachedChanges=null}bufferMarkerChange(e,t,o){t.range&&t.range.root.is("rootElement")&&!t.range.root._isLoaded&&(t.range=null),o.range&&o.range.root.is("rootElement")&&!o.range.root._isLoaded&&(o.range=null);let i=this._changedMarkers.get(e);i?i.newMarkerData=o:(i={newMarkerData:o,oldMarkerData:t},this._changedMarkers.set(e,i)),null==i.oldMarkerData.range&&null==o.range&&this._changedMarkers.delete(e)}getMarkersToRemove(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.oldMarkerData.range&&e.push({name:t,range:o.oldMarkerData.range});return e}getMarkersToAdd(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.newMarkerData.range&&e.push({name:t,range:o.newMarkerData.range});return e}getChangedMarkers(){return Array.from(this._changedMarkers).map((([e,t])=>({name:e,data:{oldRange:t.oldMarkerData.range,newRange:t.newMarkerData.range}})))}hasDataChanges(){if(this.getChanges().length)return!0;if(this._changedRoots.size>0)return!0;for(const{newMarkerData:e,oldMarkerData:t}of this._changedMarkers.values()){if(e.affectsData!==t.affectsData)return!0;if(e.affectsData){const o=e.range&&!t.range,i=!e.range&&t.range,n=e.range&&t.range&&!e.range.isEqual(t.range);if(o||i||n)return!0}}return!1}getChanges(e={}){if(this._cachedChanges)return e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let t=[];for(const e of this._changesInElement.keys()){const o=this._changesInElement.get(e).sort(((e,t)=>e.offset===t.offset?e.type!=t.type?"remove"==e.type?-1:1:0:e.offsete.position.root!=t.position.root?e.position.root.rootNamee));for(const e of t)delete e.changeCount,"attribute"==e.type&&(delete e.position,delete e.length);return this._changeCount=0,this._cachedChangesWithGraveyard=t,this._cachedChanges=t.filter(ka),e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getChangedRoots(){return Array.from(this._changedRoots.values()).map((e=>{const t={...e};return void 0!==t.state&&delete t.attributes,t}))}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementChildrenSnapshots.clear(),this._elementsSnapshots.clear(),this._elementState.clear(),this._changedMarkers.clear(),this._changedRoots.clear(),this._refreshedItems.clear(),this._cachedChanges=null}_refreshItem(e){if(this._isInInsertedElement(e.parent))return;this._markRemove(e.parent,e.startOffset,e.offsetSize),this._markInsert(e.parent,e.startOffset,e.offsetSize),this._refreshedItems.add(e),this._setElementState(e,"refresh");const t=us._createOn(e);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}this._cachedChanges=null}_bufferRootLoad(e){if(e.isAttached()){this._bufferRootStateChange(e.rootName,!0),this._markInsert(e,0,e.maxOffset);for(const t of e.getAttributeKeys())this._bufferRootAttributeChange(e.rootName,t,null,e.getAttribute(t));for(const t of this._markerCollection)if(t.getRange().root==e){const e=t.getData();this.bufferMarkerChange(t.name,{...e,range:null},e)}}}_bufferRootStateChange(e,t){if(!this._changedRoots.has(e))return void this._changedRoots.set(e,{name:e,state:t?"attached":"detached"});const o=this._changedRoots.get(e);void 0!==o.state?(delete o.state,void 0===o.attributes&&this._changedRoots.delete(e)):o.state=t?"attached":"detached"}_bufferRootAttributeChange(e,t,o,i){const n=this._changedRoots.get(e)||{name:e},s=n.attributes||{};if(s[t]){const e=s[t];i===e.oldValue?delete s[t]:e.newValue=i}else s[t]={oldValue:o,newValue:i};0===Object.entries(s).length?(delete n.attributes,void 0===n.state&&this._changedRoots.delete(e)):(n.attributes=s,this._changedRoots.set(e,n))}_markInsert(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const i={type:"insert",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,i)}_markRemove(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const i={type:"remove",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,i),this._removeAllNestedChanges(e,t,o)}_markAttribute(e){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const t={type:"attribute",offset:e.startOffset,howMany:e.offsetSize,count:this._changeCount++};this._markChange(e.parent,t)}_markChange(e,t){this._makeSnapshots(e);const o=this._getChangesForElement(e);this._handleChange(t,o),o.push(t);for(let e=0;eo&&this._elementState.set(e,t)}_getDiffActionForNode(e,t){if(!e.is("element"))return t;if(!this._elementsSnapshots.has(e))return t;const o=this._elementState.get(e);return o&&"move"!=o?o:t}_getChangesForElement(e){let t;return this._changesInElement.has(e)?t=this._changesInElement.get(e):(t=[],this._changesInElement.set(e,t)),t}_makeSnapshots(e){if(this._elementChildrenSnapshots.has(e))return;const t=ya(e.getChildren());this._elementChildrenSnapshots.set(e,t);for(const e of t)this._elementsSnapshots.set(e.node,e)}_handleChange(e,t){e.nodesToHandle=e.howMany;for(const o of t){const i=e.offset+e.howMany,n=o.offset+o.howMany;if("insert"==e.type&&("insert"==o.type&&(e.offset<=o.offset?o.offset+=e.howMany:e.offseto.offset){if(i>n){const e={type:"attribute",offset:n,howMany:i-n,count:this._changeCount++};this._handleChange(e,t),t.push(e)}e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}else e.offset>=o.offset&&e.offsetn?(e.nodesToHandle=i-n,e.offset=n):e.nodesToHandle=0);if("remove"==o.type&&e.offseto.offset){const n={type:"attribute",offset:o.offset,howMany:i-o.offset,count:this._changeCount++};this._handleChange(n,t),t.push(n),e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}"attribute"==o.type&&(e.offset>=o.offset&&i<=n?(e.nodesToHandle=0,e.howMany=0,e.offset=0):e.offset<=o.offset&&i>=n&&(o.howMany=0))}}e.howMany=e.nodesToHandle,delete e.nodesToHandle}_getInsertDiff(e,t,o,i,n){const s={type:"insert",position:ss._createAt(e,t),name:i.name,attributes:new Map(i.attributes),length:1,changeCount:this._changeCount++,action:o};return"insert"!=o&&n&&(s.before={name:n.name,attributes:new Map(n.attributes)}),s}_getRemoveDiff(e,t,o,i){return{type:"remove",action:o,position:ss._createAt(e,t),name:i.name,attributes:new Map(i.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(e,t,o){const i=[];o=new Map(o);for(const[n,s]of t){const t=o.has(n)?o.get(n):null;t!==s&&i.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:n,attributeOldValue:s,attributeNewValue:t,changeCount:this._changeCount++}),o.delete(n)}for(const[t,n]of o)i.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:t,attributeOldValue:null,attributeNewValue:n,changeCount:this._changeCount++});return i}_isInInsertedElement(e){const t=e.parent;if(!t)return!1;const o=this._changesInElement.get(t),i=e.startOffset;if(o)for(const e of o)if("insert"==e.type&&i>=e.offset&&ii){for(let t=0;t1500)for(let t=0;tthis._version+1&&this._gaps.set(this._version,e),this._version=e}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(e){if(e.baseVersion!==this.version)throw new fe("model-document-history-addoperation-incorrect-version",this,{operation:e,historyVersion:this.version});this._operations.push(e),this._version++,this._baseVersionToOperationIndex.set(e.baseVersion,this._operations.length-1)}getOperations(e,t=this.version){if(!this._operations.length)return[];const o=this._operations[0];void 0===e&&(e=o.baseVersion);let i=t-1;for(const[t,o]of this._gaps)e>t&&et&&ithis.lastOperation.baseVersion)return[];let n=this._baseVersionToOperationIndex.get(e);void 0===n&&(n=0);let s=this._baseVersionToOperationIndex.get(i);return void 0===s&&(s=this._operations.length-1),this._operations.slice(n,s+1)}getOperation(e){const t=this._baseVersionToOperationIndex.get(e);if(void 0!==t)return this._operations[t]}setOperationAsUndone(e,t){this._undoPairs.set(t,e),this._undoneOperations.add(e)}isUndoingOperation(e){return this._undoPairs.has(e)}isUndoneOperation(e){return this._undoneOperations.has(e)}getUndoneOperation(e){return this._undoPairs.get(e)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class Ca extends Ms{rootName;_document;_isAttached=!0;_isLoaded=!0;constructor(e,t,o="main"){super(t),this._document=e,this.rootName=o}get document(){return this._document}isAttached(){return this._isAttached}toJSON(){return this.rootName}}Ca.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e):"rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e||"node"===e||"model:node"===e};const Aa="$graveyard";class xa extends(xe()){model;history;selection;roots;differ;isReadOnly;_postFixers;_hasSelectionChangedFromTheLastChangeBlock;constructor(e){super(),this.model=e,this.history=new va,this.selection=new Os(this),this.roots=new eo({idProperty:"rootName"}),this.differ=new ba(e.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",Aa),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.differ.bufferOperation(o)}),{priority:"high"}),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.history.addOperation(o)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(e.markers,"update",((e,t,o,i,n)=>{const s={...t.getData(),range:i};this.differ.bufferMarkerChange(t.name,n,s),null===o&&t.on("change",((e,o)=>{const i=t.getData();this.differ.bufferMarkerChange(t.name,{...i,range:o},i)}))})),this.registerPostFixer((e=>{let t=!1;for(const o of this.roots)o.isAttached()||o.isEmpty||(e.remove(e.createRangeIn(o)),t=!0);for(const o of this.model.markers)o.getRange().root.isAttached()||(e.removeMarker(o),t=!0);return t}))}get version(){return this.history.version}set version(e){this.history.version=e}get graveyard(){return this.getRoot(Aa)}createRoot(e="$root",t="main"){if(this.roots.get(t))throw new fe("model-document-createroot-name-exists",this,{name:t});const o=new Ca(this,e,t);return this.roots.add(o),o}destroy(){this.selection.destroy(),this.stopListening()}getRoot(e="main"){return this.roots.get(e)}getRootNames(e=!1){return this.getRoots(e).map((e=>e.rootName))}getRoots(e=!1){return this.roots.filter((t=>t!=this.graveyard&&(e||t.isAttached())&&t._isLoaded))}registerPostFixer(e){this._postFixers.add(e)}toJSON(){const e=Go(this);return e.selection="[engine.model.DocumentSelection]",e.model="[engine.model.Model]",e}_handleChangeBlock(e){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(e),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",e.batch):this.fire("change",e.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){const e=this.getRoots();return e.length?e[0]:this.graveyard}_getDefaultRange(){const e=this._getDefaultRoot(),t=this.model,o=t.schema,i=t.createPositionFromPath(e,[0]);return o.getNearestSelectionRange(i)||t.createRange(i)}_validateSelectionRange(e){return e.start.isValid()&&e.end.isValid()&&Ea(e.start)&&Ea(e.end)}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(this.selection.refresh(),t=o(e),t)break}while(t)}}function Ea(e){const t=e.textNode;if(t){const o=t.data,i=e.offset-t.startOffset;return!ho(o,i)&&!mo(o,i)}return!0}class Ta extends(xe()){_markers=new Map;[Symbol.iterator](){return this._markers.values()}has(e){const t=e instanceof Pa?e.name:e;return this._markers.has(t)}get(e){return this._markers.get(e)||null}_set(e,t,o=!1,i=!1){const n=e instanceof Pa?e.name:e;if(n.includes(","))throw new fe("markercollection-incorrect-marker-name",this);const s=this._markers.get(n);if(s){const e=s.getData(),r=s.getRange();let a=!1;return r.isEqual(t)||(s._attachLiveRange(Ts.fromRange(t)),a=!0),o!=s.managedUsingOperations&&(s._managedUsingOperations=o,a=!0),"boolean"==typeof i&&i!=s.affectsData&&(s._affectsData=i,a=!0),a&&this.fire(`update:${n}`,s,r,t,e),s}const r=Ts.fromRange(t),a=new Pa(n,r,o,i);return this._markers.set(n,a),this.fire(`update:${n}`,a,null,t,{...a.getData(),range:null}),a}_remove(e){const t=e instanceof Pa?e.name:e,o=this._markers.get(t);return!!o&&(this._markers.delete(t),this.fire(`update:${t}`,o,o.getRange(),null,o.getData()),this._destroyMarker(o),!0)}_refresh(e){const t=e instanceof Pa?e.name:e,o=this._markers.get(t);if(!o)throw new fe("markercollection-refresh-marker-not-exists",this);const i=o.getRange();this.fire(`update:${t}`,o,i,i,o.getData())}*getMarkersAtPosition(e){for(const t of this)t.getRange().containsPosition(e)&&(yield t)}*getMarkersIntersectingRange(e){for(const t of this)null!==t.getRange().getIntersection(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._detachLiveRange()}}class Pa extends(xe(ts)){name;_managedUsingOperations;_affectsData;_liveRange;constructor(e,t,o,i){super(),this.name=e,this._liveRange=this._attachLiveRange(t),this._managedUsingOperations=o,this._affectsData=i}get managedUsingOperations(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.toRange()}toJSON(){return{name:this.name,range:this._liveRange?.toJSON(),usingOperations:this._managedUsingOperations,affectsData:this._affectsData}}_attachLiveRange(e){return this._liveRange&&this._detachLiveRange(),e.delegate("change:range").to(this),e.delegate("change:content").to(this),this._liveRange=e,e}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Pa.prototype.is=function(e){return"marker"===e||"model:marker"===e};class Sa extends Fr{sourcePosition;howMany;constructor(e,t){super(null),this.sourcePosition=e.clone(),this.howMany=t}get type(){return"detach"}get affectedSelectable(){return null}toJSON(){const e=super.toJSON();return e.sourcePosition=this.sourcePosition.toJSON(),e}_validate(){if(this.sourcePosition.root.document)throw new fe("detach-operation-on-document-node",this)}_execute(){Nr(us._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class Ia extends ts{markers=new Map;_children=new Fs;constructor(e){super(),e&&this._insertChild(0,e)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get nextSibling(){return null}get previousSibling(){return null}get root(){return this}get parent(){return null}get document(){return null}isAttached(){return!1}getAncestors(){return[]}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}getPath(){return[]}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}offsetToIndex(e){return this._children.offsetToIndex(e)}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}static fromJSON(e){const t=[];for(const o of e)o.name?t.push(Ms.fromJSON(o)):t.push(Is.fromJSON(o));return new Ia(t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Is(e)];Ue(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Is(e):e instanceof os?new Is(e.data,e.getAttributes()):e))}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}}Ia.prototype.is=function(e){return"documentFragment"===e||"model:documentFragment"===e};class Ra{model;batch;constructor(e,t){this.model=e,this.batch=t}createText(e,t){return new Is(e,t)}createElement(e,t){return new Ms(e,t)}createDocumentFragment(){return new Ia}cloneElement(e,t=!0){return e._clone(t)}insert(e,t,o=0){if(this._assertWriterUsedCorrectly(),e instanceof Is&&""==e.data)return;const i=ss._createAt(t,o);if(e.parent){if(Ma(e.root,i.root))return void this.move(us._createOn(e),i);if(e.root.document)throw new fe("model-writer-insert-forbidden-move",this);this.remove(e)}const n=i.root.document?i.root.document.version:null,s=e instanceof Ia?e._removeChildren(0,e.childCount):e,r=new Hr(i,s,n);if(e instanceof Is&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),e instanceof Ia)for(const[t,o]of e.markers){const e=ss._createAt(o.root,0),n={range:new us(o.start._getCombined(e,i),o.end._getCombined(e,i)),usingOperation:!0,affectsData:!0};this.model.markers.has(t)?this.updateMarker(t,n):this.addMarker(t,n)}}insertText(e,t,o,i){t instanceof Ia||t instanceof Ms||t instanceof ss?this.insert(this.createText(e),t,o):this.insert(this.createText(e,t),o,i)}insertElement(e,t,o,i){t instanceof Ia||t instanceof Ms||t instanceof ss?this.insert(this.createElement(e),t,o):this.insert(this.createElement(e,t),o,i)}append(e,t){this.insert(e,t,"end")}appendText(e,t,o){t instanceof Ia||t instanceof Ms?this.insert(this.createText(e),t,"end"):this.insert(this.createText(e,t),o,"end")}appendElement(e,t,o){t instanceof Ia||t instanceof Ms?this.insert(this.createElement(e),t,"end"):this.insert(this.createElement(e,t),o,"end")}setAttribute(e,t,o){if(this._assertWriterUsedCorrectly(),o instanceof us){const i=o.getMinimalFlatRanges();for(const o of i)Oa(this,e,t,o)}else Va(this,e,t,o)}setAttributes(e,t){for(const[o,i]of ao(e))this.setAttribute(o,i,t)}removeAttribute(e,t){if(this._assertWriterUsedCorrectly(),t instanceof us){const o=t.getMinimalFlatRanges();for(const t of o)Oa(this,e,null,t)}else Va(this,e,null,t)}clearAttributes(e){this._assertWriterUsedCorrectly();const t=e=>{for(const t of e.getAttributeKeys())this.removeAttribute(t,e)};if(e instanceof us)for(const o of e.getItems())t(o);else t(e)}move(e,t,o){if(this._assertWriterUsedCorrectly(),!(e instanceof us))throw new fe("writer-move-invalid-range",this);if(!e.isFlat)throw new fe("writer-move-range-not-flat",this);const i=ss._createAt(t,o);if(i.isEqual(e.start))return;if(this._addOperationForAffectedMarkers("move",e),!Ma(e.root,i.root))throw new fe("writer-move-different-document",this);const n=e.root.document?e.root.document.version:null,s=new $r(e.start,e.end.offset-e.start.offset,i,n);this.batch.addOperation(s),this.model.applyOperation(s)}remove(e){this._assertWriterUsedCorrectly();const t=(e instanceof us?e:us._createOn(e)).getMinimalFlatRanges().reverse();for(const e of t)this._addOperationForAffectedMarkers("move",e),Fa(e.start,e.end.offset-e.start.offset,this.batch,this.model)}merge(e){this._assertWriterUsedCorrectly();const t=e.nodeBefore,o=e.nodeAfter;if(this._addOperationForAffectedMarkers("merge",e),!(t instanceof Ms))throw new fe("writer-merge-no-element-before",this);if(!(o instanceof Ms))throw new fe("writer-merge-no-element-after",this);e.root.document?this._merge(e):this._mergeDetached(e)}createPositionFromPath(e,t,o){return this.model.createPositionFromPath(e,t,o)}createPositionAt(e,t){return this.model.createPositionAt(e,t)}createPositionAfter(e){return this.model.createPositionAfter(e)}createPositionBefore(e){return this.model.createPositionBefore(e)}createRange(e,t){return this.model.createRange(e,t)}createRangeIn(e){return this.model.createRangeIn(e)}createRangeOn(e){return this.model.createRangeOn(e)}createSelection(...e){return this.model.createSelection(...e)}_mergeDetached(e){const t=e.nodeBefore,o=e.nodeAfter;this.move(us._createIn(o),ss._createAt(t,"end")),this.remove(o)}_merge(e){const t=ss._createAt(e.nodeBefore,"end"),o=ss._createAt(e.nodeAfter,0),i=e.root.document.graveyard,n=new ss(i,[0]),s=e.root.document.version,r=new Ur(o,e.nodeAfter.maxOffset,t,n,s);this.batch.addOperation(r),this.model.applyOperation(r)}rename(e,t){if(this._assertWriterUsedCorrectly(),!(e instanceof Ms))throw new fe("writer-rename-not-element-instance",this);const o=e.root.document?e.root.document.version:null,i=new Zr(ss._createBefore(e),e.name,t,o);this.batch.addOperation(i),this.model.applyOperation(i)}split(e,t){this._assertWriterUsedCorrectly();let o,i,n=e.parent;if(!n.parent)throw new fe("writer-split-element-no-parent",this);if(t||(t=n.parent),!e.parent.getAncestors({includeSelf:!0}).includes(t))throw new fe("writer-split-invalid-limit-element",this);do{const t=n.root.document?n.root.document.version:null,s=n.maxOffset-e.offset,r=Wr.getInsertionPosition(e),a=new Wr(e,s,r,null,t);this.batch.addOperation(a),this.model.applyOperation(a),o||i||(o=n,i=e.parent.nextSibling),n=(e=this.createPositionAfter(e.parent)).parent}while(n!==t);return{position:e,range:new us(ss._createAt(o,"end"),ss._createAt(i,0))}}wrap(e,t){if(this._assertWriterUsedCorrectly(),!e.isFlat)throw new fe("writer-wrap-range-not-flat",this);const o=t instanceof Ms?t:new Ms(t);if(o.childCount>0)throw new fe("writer-wrap-element-not-empty",this);if(null!==o.parent)throw new fe("writer-wrap-element-attached",this);this.insert(o,e.start);const i=new us(e.start.getShiftedBy(1),e.end.getShiftedBy(1));this.move(i,ss._createAt(o,0))}unwrap(e){if(this._assertWriterUsedCorrectly(),null===e.parent)throw new fe("writer-unwrap-element-no-parent",this);this.move(us._createIn(e),this.createPositionAfter(e)),this.remove(e)}addMarker(e,t){if(this._assertWriterUsedCorrectly(),!t||"boolean"!=typeof t.usingOperation)throw new fe("writer-addmarker-no-usingoperation",this);const o=t.usingOperation,i=t.range,n=void 0!==t.affectsData&&t.affectsData;if(this.model.markers.has(e))throw new fe("writer-addmarker-marker-exists",this);if(!i)throw new fe("writer-addmarker-no-range",this);return o?(Da(this,e,null,i,n),this.model.markers.get(e)):this.model.markers._set(e,i,o,n)}updateMarker(e,t){this._assertWriterUsedCorrectly();const o="string"==typeof e?e:e.name,i=this.model.markers.get(o);if(!i)throw new fe("writer-updatemarker-marker-not-exists",this);if(!t)return be("writer-updatemarker-reconvert-using-editingcontroller",{markerName:o}),void this.model.markers._refresh(i);const n="boolean"==typeof t.usingOperation,s="boolean"==typeof t.affectsData,r=s?t.affectsData:i.affectsData;if(!n&&!t.range&&!s)throw new fe("writer-updatemarker-wrong-options",this);const a=i.getRange(),l=t.range?t.range:a;n&&t.usingOperation!==i.managedUsingOperations?t.usingOperation?Da(this,o,null,l,r):(Da(this,o,a,null,r),this.model.markers._set(o,l,void 0,r)):i.managedUsingOperations?Da(this,o,a,l,r):this.model.markers._set(o,l,void 0,r)}removeMarker(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?e:e.name;if(!this.model.markers.has(t))throw new fe("writer-removemarker-no-marker",this);const o=this.model.markers.get(t);if(!o.managedUsingOperations)return void this.model.markers._remove(t);Da(this,t,o.getRange(),null,o.affectsData)}addRoot(e,t="$root"){this._assertWriterUsedCorrectly();const o=this.model.document.getRoot(e);if(o&&o.isAttached())throw new fe("writer-addroot-root-exists",this);const i=this.model.document,n=new Yr(e,t,!0,i,i.version);return this.batch.addOperation(n),this.model.applyOperation(n),this.model.document.getRoot(e)}detachRoot(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?this.model.document.getRoot(e):e;if(!t||!t.isAttached())throw new fe("writer-detachroot-no-root",this);for(const e of this.model.markers)e.getRange().root===t&&this.removeMarker(e);for(const e of t.getAttributeKeys())this.removeAttribute(e,t);this.remove(this.createRangeIn(t));const o=this.model.document,i=new Yr(t.rootName,t.name,!1,o,o.version);this.batch.addOperation(i),this.model.applyOperation(i)}setSelection(...e){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...e)}setSelectionFocus(e,t){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(e,t)}setSelectionAttribute(e,t){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._setSelectionAttribute(e,t);else for(const[t,o]of ao(e))this._setSelectionAttribute(t,o)}removeSelectionAttribute(e){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._removeSelectionAttribute(e);else for(const t of e)this._removeSelectionAttribute(t)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(e){this.model.document.selection._restoreGravity(e)}_setSelectionAttribute(e,t){const o=this.model.document.selection;if(o.isCollapsed&&o.anchor.parent.isEmpty){const i=Os._getStoreAttributeKey(e);this.setAttribute(i,t,o.anchor.parent)}o._setAttribute(e,t)}_removeSelectionAttribute(e){const t=this.model.document.selection;if(t.isCollapsed&&t.anchor.parent.isEmpty){const o=Os._getStoreAttributeKey(e);this.removeAttribute(o,t.anchor.parent)}t._removeAttribute(e)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new fe("writer-incorrect-use",this)}_addOperationForAffectedMarkers(e,t){for(const o of this.model.markers){if(!o.managedUsingOperations)continue;const i=o.getRange();let n=!1;if("move"===e){const e=t;n=e.containsPosition(i.start)||e.start.isEqual(i.start)||e.containsPosition(i.end)||e.end.isEqual(i.end)}else{const e=t,o=e.nodeBefore,s=e.nodeAfter,r=i.start.parent==o&&i.start.isAtEnd,a=i.end.parent==s&&0==i.end.offset,l=i.end.nodeAfter==s,c=i.start.nodeAfter==s;n=r||a||l||c}n&&this.updateMarker(o.name,{range:i})}}}function Oa(e,t,o,i){const n=e.model,s=n.document;let r,a,l,c=i.start;for(const e of i.getWalker({shallow:!0}))l=e.item.getAttribute(t),r&&a!=l&&(a!=o&&d(),c=r),r=e.nextPosition,a=l;function d(){const i=new us(c,r),l=i.root.document?s.version:null,d=new Gr(i,t,a,o,l);e.batch.addOperation(d),n.applyOperation(d)}r instanceof ss&&r!=c&&a!=o&&d()}function Va(e,t,o,i){const n=e.model,s=n.document,r=i.getAttribute(t);let a,l;if(r!=o){if(i.root===i){const e=i.document?s.version:null;l=new Qr(i,t,r,o,e)}else{a=new us(ss._createBefore(i),e.createPositionAfter(i));const n=a.root.document?s.version:null;l=new Gr(a,t,r,o,n)}e.batch.addOperation(l),n.applyOperation(l)}}function Da(e,t,o,i,n){const s=e.model,r=s.document,a=new Kr(t,o,i,s.markers,!!n,r.version);e.batch.addOperation(a),s.applyOperation(a)}function Fa(e,t,o,i){let n;if(e.root.document){const o=i.document,s=new ss(o.graveyard,[0]);n=new $r(e,t,s,o.version)}else n=new Sa(e,t);o.addOperation(n),i.applyOperation(n)}function Ma(e,t){return e===t||e instanceof Ca&&t instanceof Ca}function Na(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.selection,i=t.schema,n=[];let s=!1;for(const e of o.getRanges()){const t=Ba(e,i);t&&!t.isEqual(e)?(n.push(t),s=!0):n.push(e)}s&&e.setSelection(function(e){const t=[...e],o=new Set;let i=1;for(;i!o.has(t)))}(n),{backward:o.isBackward});return!1}(t,e)))}function Ba(e,t){return e.isCollapsed?function(e,t){const o=e.start,i=t.getNearestSelectionRange(o);if(!i){const e=o.getAncestors().reverse().find((e=>t.isObject(e)));return e?us._createOn(e):null}if(!i.isCollapsed)return i;const n=i.start;if(o.isEqual(n))return null;return new us(n)}(e,t):function(e,t){const{start:o,end:i}=e,n=t.checkChild(o,"$text"),s=t.checkChild(i,"$text"),r=t.getLimitElement(o),a=t.getLimitElement(i);if(r===a){if(n&&s)return null;if(function(e,t,o){const i=e.nodeAfter&&!o.isLimit(e.nodeAfter)||o.checkChild(e,"$text"),n=t.nodeBefore&&!o.isLimit(t.nodeBefore)||o.checkChild(t,"$text");return i||n}(o,i,t)){const e=o.nodeAfter&&t.isSelectable(o.nodeAfter)?null:t.getNearestSelectionRange(o,"forward"),n=i.nodeBefore&&t.isSelectable(i.nodeBefore)?null:t.getNearestSelectionRange(i,"backward"),s=e?e.start:o,r=n?n.end:i;return new us(s,r)}}const l=r&&!r.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const e=o.nodeAfter&&i.nodeBefore&&o.nodeAfter.parent===i.nodeBefore.parent,n=l&&(!e||!za(o.nodeAfter,t)),s=c&&(!e||!za(i.nodeBefore,t));let d=o,u=i;return n&&(d=ss._createBefore(La(r,t))),s&&(u=ss._createAfter(La(a,t))),new us(d,u)}return null}(e,t)}function La(e,t){let o=e,i=o;for(;t.isLimit(i)&&i.parent;)o=i,i=i.parent;return o}function za(e,t){return e&&t.isSelectable(e)}function ja(e,t,o={}){if(t.isCollapsed)return;const i=t.getFirstRange();if("$graveyard"==i.root.rootName)return;const n=e.schema;e.change((e=>{if(!o.doNotResetEntireContent&&function(e,t){const o=e.getLimitElement(t);if(!t.containsEntireContent(o))return!1;const i=t.getFirstRange();if(i.start.parent==i.end.parent)return!1;return e.checkChild(o,"paragraph")}(n,t))return void function(e,t){const o=e.model.schema.getLimitElement(t);e.remove(e.createRangeIn(o)),Wa(e,e.createPositionAt(o,0),t)}(e,t);const s={};if(!o.doNotAutoparagraph){const e=t.getSelectedElement();e&&Object.assign(s,n.getAttributesWithProperty(e,"copyOnReplace",!0))}let r,a;o.doNotFixSelection?(r=ma.fromPosition(i.start,"toPrevious"),a=ma.fromPosition(i.end,"toNext")):[r,a]=function(e){const t=e.root.document.model,o=e.start;let i=e.end;if(t.hasContent(e,{ignoreMarkers:!0})){const o=function(e){const t=e.parent,o=t.root.document.model.schema,i=t.getAncestors({parentFirst:!0,includeSelf:!0});for(const e of i){if(o.isLimit(e))return null;if(o.isBlock(e))return e}}(i);if(o&&i.isTouching(t.createPositionAt(o,0))){const o=t.createSelection(e);t.modifySelection(o,{direction:"backward"});const n=o.getLastPosition(),s=t.createRange(n,i);t.hasContent(s,{ignoreMarkers:!0})||(i=n)}}return[ma.fromPosition(o,"toPrevious"),ma.fromPosition(i,"toNext")]}(i),r.isTouching(a)||e.remove(e.createRange(r,a)),o.leaveUnmerged||(!function(e,t,o){const i=e.model;if(!Ha(e.model.schema,t,o))return;const[n,s]=function(e,t){const o=e.getAncestors(),i=t.getAncestors();let n=0;for(;o[n]&&o[n]==i[n];)n++;return[o[n],i[n]]}(t,o);if(!n||!s)return;!i.hasContent(n,{ignoreMarkers:!0})&&i.hasContent(s,{ignoreMarkers:!0})?$a(e,t,o,n.parent):qa(e,t,o,n.parent)}(e,r,a),n.removeDisallowedAttributes(r.parent.getChildren(),e)),Ua(e,t,r),!o.doNotAutoparagraph&&function(e,t){const o=e.checkChild(t,"$text"),i=e.checkChild(t,"paragraph");return!o&&i}(n,r)&&Wa(e,r,t,s),r.detach(),a.detach()}))}function qa(e,t,o,i){const n=t.parent,s=o.parent;if(n!=i&&s!=i){for(t=e.createPositionAfter(n),(o=e.createPositionBefore(s)).isEqual(t)||e.insert(s,t),e.merge(t);o.parent.isEmpty;){const t=o.parent;o=e.createPositionBefore(t),e.remove(t)}Ha(e.model.schema,t,o)&&qa(e,t,o,i)}}function $a(e,t,o,i){const n=t.parent,s=o.parent;if(n!=i&&s!=i){for(t=e.createPositionAfter(n),(o=e.createPositionBefore(s)).isEqual(t)||e.insert(n,o);t.parent.isEmpty;){const o=t.parent;t=e.createPositionBefore(o),e.remove(o)}o=e.createPositionBefore(s),function(e,t){const o=t.nodeBefore,i=t.nodeAfter;o.name!=i.name&&e.rename(o,i.name);e.clearAttributes(o),e.setAttributes(Object.fromEntries(i.getAttributes()),o),e.merge(t)}(e,o),Ha(e.model.schema,t,o)&&$a(e,t,o,i)}}function Ha(e,t,o){const i=t.parent,n=o.parent;return i!=n&&(!e.isLimit(i)&&!e.isLimit(n)&&function(e,t,o){const i=new us(e,t);for(const e of i.getWalker())if(o.isLimit(e.item))return!1;return!0}(t,o,e))}function Wa(e,t,o,i={}){const n=e.createElement("paragraph");e.model.schema.setAllowedAttributes(n,i,e),e.insert(n,t),Ua(e,o,e.createPositionAt(n,0))}function Ua(e,t,o){t instanceof Os?e.setSelection(o):t.setTo(o)}function Ka(e,t){const o=[];Array.from(e.getItems({direction:"backward"})).map((e=>t.createRangeOn(e))).filter((t=>(t.start.isAfter(e.start)||t.start.isEqual(e.start))&&(t.end.isBefore(e.end)||t.end.isEqual(e.end)))).forEach((e=>{o.push(e.start.parent),t.remove(e)})),o.forEach((e=>{let o=e;for(;o.parent&&o.isEmpty;){const e=t.createRangeOn(o);o=o.parent,t.remove(e)}}))}class Ga{model;writer;position;canMergeWith;schema;_documentFragment;_documentFragmentPosition;_firstNode=null;_lastNode=null;_lastAutoParagraph=null;_filterAttributesAndChildrenOf=[];_affectedStart=null;_affectedEnd=null;_nodeToSelect=null;constructor(e,t,o){this.model=e,this.writer=t,this.position=o,this.canMergeWith=new Set([this.position.parent]),this.schema=e.schema,this._documentFragment=t.createDocumentFragment(),this._documentFragmentPosition=t.createPositionAt(this._documentFragment,0)}handleNodes(e){for(const t of Array.from(e))t.offsetSize>0&&this._handleNode(t);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesAndChildrenOf,this.writer),!1!==this.model._config?.get("experimentalFlags.modelInsertContentDeepSchemaVerification")&&this._removeDisallowedChildren(this._filterAttributesAndChildrenOf),this._filterAttributesAndChildrenOf=[]}_removeDisallowedChildren(e){const t=Array.from(e);for(const e of t){if(!e.is("element"))continue;const o=[],i=[],n=this.writer.createRangeIn(e).getWalker({ignoreElementEnd:!0});for(const{item:e}of n){const s=e.parent;this.schema.checkChild(s,e)||(e.is("element")&&!this.schema.isObject(e)?(i.push(e),t.push(s)):o.push(e),n.jumpTo(this.writer.createPositionAfter(e)))}for(const e of i)this.writer.unwrap(e);for(const e of o)this.writer.remove(e)}}_updateLastNodeFromAutoParagraph(e){const t=this.writer.createPositionAfter(this._lastNode),o=this.writer.createPositionAfter(e);if(o.isAfter(t)){if(this._lastNode=e,this.position.parent!=e||!this.position.isAtEnd)throw new fe("insertcontent-invalid-insertion-position",this);this.position=o,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?us._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new us(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(e){this._checkAndSplitToAllowedPosition(e)?(e=this._appendToFragment(e),this._firstNode||(this._firstNode=e),this._lastNode=e):this.schema.isObject(e)||this._handleDisallowedNode(e)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const e=ma.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=e.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=e.toPosition(),e.detach()}_handleDisallowedNode(e){e.is("element")&&this.handleNodes(e.getChildren())}_appendToFragment(e){if(!this.schema.checkChild(this.position,e))throw new fe("insertcontent-wrong-position",this,{node:e,position:this.position});return this.writer.insert(e,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(e.offsetSize),e.parent||(e=this._documentFragmentPosition.nodeBefore),this.schema.isObject(e)&&!this.schema.checkChild(this.position,"$text")?this._nodeToSelect=e:this._nodeToSelect=null,this._filterAttributesAndChildrenOf.push(e),e}_setAffectedBoundaries(e){this._affectedStart||(this._affectedStart=ma.fromPosition(e,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(e)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=ma.fromPosition(e,"toNext"))}_mergeOnLeft(){const e=this._firstNode;if(!(e instanceof Ms))return;if(!this._canMergeLeft(e))return;const t=ma._createBefore(e);t.stickiness="toNext";const o=ma.fromPosition(this.position,"toNext");this._affectedStart.isEqual(t)&&(this._affectedStart.detach(),this._affectedStart=ma._createAt(t.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=ma._createAt(t.nodeBefore,"end","toNext")),this.position=o.toPosition(),o.detach(),this._filterAttributesAndChildrenOf.push(this.position.parent),t.detach()}_mergeOnRight(){const e=this._lastNode;if(!(e instanceof Ms))return;if(!this._canMergeRight(e))return;const t=ma._createAfter(e);if(t.stickiness="toNext",!this.position.isEqual(t))throw new fe("insertcontent-invalid-insertion-position",this);this.position=ss._createAt(t.nodeBefore,"end");const o=ma.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(t)&&(this._affectedEnd.detach(),this._affectedEnd=ma._createAt(t.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=ma._createAt(t.nodeBefore,0,"toPrevious")),this.position=o.toPosition(),o.detach(),this._filterAttributesAndChildrenOf.push(this.position.parent),t.detach()}_canMergeLeft(e){const t=e.previousSibling;return t instanceof Ms&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(t,e)}_canMergeRight(e){const t=e.nextSibling;return t instanceof Ms&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(e,t)}_insertAutoParagraph(){this._insertPartialFragment();const e=this.writer.createElement("paragraph");this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0)}_checkAndSplitToAllowedPosition(e){const t=this._getAllowedIn(this.position.parent,e);if(!t)return!1;for(t!=this.position.parent&&this._insertPartialFragment();t!=this.position.parent;)if(this.position.isAtStart){const e=this.position.parent;this.position=this.writer.createPositionBefore(e),e.isEmpty&&e.parent===t&&this.writer.remove(e)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const e=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=e,this.canMergeWith.add(this.position.nodeAfter)}return this.schema.checkChild(this.position.parent,e)||this._insertAutoParagraph(),!0}_getAllowedIn(e,t){const o=this.schema.createContext(e);return this.schema.checkChild(o,t)||this.schema.checkChild(o,"paragraph")&&this.schema.checkChild(o.push("paragraph"),t)?e:this.schema.isLimit(e)?null:this._getAllowedIn(e.parent,t)}}function Ja(e,t,o,i={}){if(!e.schema.isObject(t))throw new fe("insertobject-element-not-an-object",e,{object:t});const n=o||e.document.selection;let s=n;i.findOptimalPosition&&e.schema.isBlock(t)&&(s=e.createSelection(e.schema.findOptimalInsertionRange(n,i.findOptimalPosition)));const r=to(n.getSelectedBlocks()),a={};return r&&Object.assign(a,e.schema.getAttributesWithProperty(r,"copyOnReplace",!0)),e.change((o=>{s.isCollapsed||e.deleteContent(s,{doNotAutoparagraph:!0});let n=t;const r=s.anchor.parent,l=e.schema.createContext(r);!e.schema.checkChild(l,t)&&e.schema.checkChild(l,"paragraph")&&e.schema.checkChild(l.push("paragraph"),t)&&(n=o.createElement("paragraph"),o.insert(t,n)),e.schema.setAllowedAttributes(n,a,o);const c=e.insertContent(n,s);return c.isCollapsed||i.setSelection&&function(e,t,o,i){const n=e.model;if("on"==o)return void e.setSelection(t,"on");if("after"!=o)throw new fe("insertobject-invalid-place-parameter-value",n);let s=t.nextSibling;if(n.schema.isInline(t))return void e.setSelection(t,"after");const r=s&&n.schema.checkChild(s,"$text");!r&&n.schema.checkChild(t.parent,"paragraph")&&(s=e.createElement("paragraph"),n.schema.setAllowedAttributes(s,i,e),n.insertContent(s,e.createPositionAfter(t)));s&&e.setSelection(s,0)}(o,t,i.setSelection,a),c}))}function Za(e,t){const{isForward:o,walker:i,unit:n,schema:s,treatEmojiAsSingleUnit:r}=e,{type:a,item:l,nextPosition:c}=t;if("text"==a)return"word"===e.unit?function(e,t){let o=e.position.textNode;o||(o=t?e.position.nodeAfter:e.position.nodeBefore);for(;o&&o.is("$text");){const i=e.position.offset-o.startOffset;if(Xa(o,i,t))o=t?e.position.nodeAfter:e.position.nodeBefore;else{if(Ya(o.data,i,t))break;e.next()}}return e.position}(i,o):function(e,t,o){const i=e.position.textNode;if(i){const n=i.data;let s=e.position.offset-i.startOffset;for(;ho(n,s)||"character"==t&&mo(n,s)||o&&po(n,s);)e.next(),s=e.position.offset-i.startOffset}return e.position}(i,n,r);if(a==(o?"elementStart":"elementEnd")){if(s.isSelectable(l))return ss._createAt(l,o?"after":"before");if(s.checkChild(c,"$text"))return c}else{if(s.isLimit(l))return void i.skip((()=>!0));if(s.checkChild(c,"$text"))return c}}function Qa(e,t){const o=e.root,i=ss._createAt(o,t?"end":0);return t?new us(e,i):new us(i,e)}function Ya(e,t,o){const i=t+(o?0:-1);return' ,.?!:;"-()'.includes(e.charAt(i))}function Xa(e,t,o){return t===(o?e.offsetSize:0)}class el extends(Be()){markers;document;schema;_config;_pendingChanges;_currentWriter;constructor(e){super(),this.markers=new Ta,this.document=new xa(this),this.schema=new mr,this._config=e,this._pendingChanges=[],this._currentWriter=null,["deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((e=>this.decorate(e))),this.on("applyOperation",((e,t)=>{t[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck((()=>!0),"$marker"),Na(this),this.document.registerPostFixer(or),this.on("insertContent",((e,[t,o])=>{e.return=function(e,t,o){return e.change((i=>{const n=o||e.document.selection;n.isCollapsed||e.deleteContent(n,{doNotAutoparagraph:!0});const s=new Ga(e,i,n.anchor),r=[];let a;if(t.is("documentFragment")){if(t.markers.size){const e=[];for(const[o,i]of t.markers){const{start:t,end:n}=i,s=t.isEqual(n);e.push({position:t,name:o,isCollapsed:s},{position:n,name:o,isCollapsed:s})}e.sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:o,name:n,isCollapsed:s}of e){let e=null,a=null;const l=o.parent===t&&o.isAtStart,c=o.parent===t&&o.isAtEnd;l||c?s&&(a=l?"start":"end"):(e=i.createElement("$marker"),i.insert(e,o)),r.push({name:n,element:e,collapsed:a})}}a=t.getChildren()}else a=[t];s.handleNodes(a);let l=s.getSelectionRange();if(t.is("documentFragment")&&r.length){const e=l?Ts.fromRange(l):null,t={};for(let e=r.length-1;e>=0;e--){const{name:o,element:n,collapsed:a}=r[e],l=!t[o];if(l&&(t[o]=[]),n){const e=i.createPositionAt(n,"before");t[o].push(e),i.remove(n)}else{const e=s.getAffectedRange();if(!e){a&&t[o].push(s.position);continue}a?t[o].push(e[a]):t[o].push(l?e.start:e.end)}}for(const[e,[o,n]]of Object.entries(t))o&&n&&o.root===n.root&&o.root.document&&!i.model.markers.has(e)&&i.addMarker(e,{usingOperation:!0,affectsData:!0,range:new us(o,n)});e&&(l=e.toRange(),e.detach())}l&&(n instanceof Os?i.setSelection(l):n.setTo(l));const c=s.getAffectedRange()||e.createRange(n.anchor);return s.destroy(),c}))}(this,t,o)})),this.on("insertObject",((e,[t,o,i])=>{e.return=Ja(this,t,o,i)})),this.on("canEditAt",(e=>{const t=!this.document.isReadOnly;e.return=t,t||e.stop()}))}change(e){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new fa,callback:e}),this._runPendingChanges()[0]):e(this._currentWriter)}catch(e){fe.rethrowUnexpectedError(e,this)}}enqueueChange(e,t){try{e?"function"==typeof e?(t=e,e=new fa):e instanceof fa||(e=new fa(e)):e=new fa,this._pendingChanges.push({batch:e,callback:t}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(e){fe.rethrowUnexpectedError(e,this)}}applyOperation(e){e._execute()}insertContent(e,t,o,...i){const n=tl(t,o);return this.fire("insertContent",[e,n,o,...i])}insertObject(e,t,o,i,...n){const s=tl(t,o);return this.fire("insertObject",[e,s,i,i,...n])}deleteContent(e,t){ja(this,e,t)}modifySelection(e,t){!function(e,t,o={}){const i=e.schema,n="backward"!=o.direction,s=o.unit?o.unit:"character",r=!!o.treatEmojiAsSingleUnit,a=t.focus,l=new is({boundaries:Qa(a,n),singleCharacters:!0,direction:n?"forward":"backward"}),c={walker:l,schema:i,isForward:n,unit:s,treatEmojiAsSingleUnit:r};let d;for(;d=l.next();){if(d.done)return;const o=Za(c,d.value);if(o)return void(t instanceof Os?e.change((e=>{e.setSelectionFocus(o)})):t.setFocus(o))}}(this,e,t)}getSelectedContent(e){return function(e,t){return e.change((e=>{const o=e.createDocumentFragment(),i=t.getFirstRange();if(!i||i.isCollapsed)return o;const n=i.start.root,s=i.start.getCommonPath(i.end),r=n.getNodeByPath(s);let a;a=i.start.parent==i.end.parent?i:e.createRange(e.createPositionAt(r,i.start.path[s.length]),e.createPositionAt(r,i.end.path[s.length]+1));const l=a.end.offset-a.start.offset;for(const t of a.getItems({shallow:!0}))t.is("$textProxy")?e.appendText(t.data,t.getAttributes(),o):e.append(e.cloneElement(t,!0),o);if(a!=i){const t=i._getTransformedByMove(a.start,e.createPositionAt(o,0),l)[0],n=e.createRange(e.createPositionAt(o,0),t.start);Ka(e.createRange(t.end,e.createPositionAt(o,"end")),e),Ka(n,e)}return o}))}(this,e)}hasContent(e,t={}){let o;o=e.is("selection")?Array.from(e.getRanges()):e.is("range")?[e]:[us._createIn(e)];for(const e of o)if(this._rangeHasContent(e,t))return!0;return!1}_rangeHasContent(e,t){if(e.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=t;if(!i)for(const t of this.markers.getMarkersIntersectingRange(e))if(t.affectsData)return!0;for(const t of e.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}canEditAt(e){const t=tl(e);return this.fire("canEditAt",[t])}createPositionFromPath(e,t,o){return new ss(e,t,o)}createPositionAt(e,t){return ss._createAt(e,t)}createPositionAfter(e){return ss._createAfter(e)}createPositionBefore(e){return ss._createBefore(e)}createRange(e,t){return new us(e,t)}createRangeIn(e){return us._createIn(e)}createRangeOn(e){return us._createOn(e)}createSelection(...e){return new _s(...e)}createBatch(e){return new fa(e)}createOperationFromJSON(e){return ea.fromJSON(e,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const e=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const t=this._pendingChanges[0].batch;this._currentWriter=new Ra(this,t);const o=this._pendingChanges[0].callback(this._currentWriter);e.push(o),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return e}}function tl(e,t){if(e)return e instanceof _s||e instanceof Os?e:e instanceof ys?t||0===t?new _s(e,t):e.is("rootElement")?new _s(e,"in"):new _s(e,"on"):new _s(e)}class ol extends jn{domEventType="click";onDomEvent(e){this.fire(e.type,e)}}class il extends jn{domEventType=["mousedown","mouseup","mouseover","mouseout"];onDomEvent(e){this.fire(e.type,e)}}class nl extends jn{domEventType=["touchstart","touchend","touchmove"];onDomEvent(e){this.fire(e.type,e)}}class sl extends jn{domEventType=["pointerdown","pointerup","pointermove"];onDomEvent(e){this.fire(e.type,e)}}class rl{document;constructor(e){this.document=e}createDocumentFragment(e){return new tn(this.document,e)}createElement(e,t,o){return new _i(this.document,e,t,o)}createText(e){return new si(this.document,e)}clone(e,t=!1){return e._clone(t)}appendChild(e,t){return t._appendChild(e)}insertChild(e,t,o){return o._insertChild(e,t)}removeChildren(e,t,o){return o._removeChildren(e,t)}remove(e){const t=e.parent;return t?this.removeChildren(t.getChildIndex(e),1,t):[]}replace(e,t){const o=e.parent;if(o){const i=o.getChildIndex(e);return this.removeChildren(i,1,o),this.insertChild(i,t,o),!0}return!1}unwrapElement(e){const t=e.parent;if(t){const o=t.getChildIndex(e);this.remove(e),this.insertChild(o,e.getChildren(),t)}}rename(e,t){const o=new _i(this.document,e,t.getAttributes(),t.getChildren());return this.replace(t,o)?o:null}setAttribute(e,t,o){o._setAttribute(e,t)}removeAttribute(e,t){t._removeAttribute(e)}addClass(e,t){t._addClass(e)}removeClass(e,t){t._removeClass(e)}setStyle(e,t,o){a(e)&&void 0===o?t._setStyle(e):o._setStyle(e,t)}removeStyle(e,t){t._removeStyle(e)}setCustomProperty(e,t,o){o._setCustomProperty(e,t)}removeCustomProperty(e,t){return t._removeCustomProperty(e)}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}}const al=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ll=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,cl=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,dl=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,ul=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,hl=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,ml=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext","rebeccapurple","currentcolor","transparent"]);function gl(e){return e.startsWith("#")?al.test(e):e.startsWith("rgb")?ll.test(e)||cl.test(e):e.startsWith("hsl")?dl.test(e)||ul.test(e):ml.has(e.toLowerCase())}const pl=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function fl(e){return pl.includes(e)}const bl=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function wl(e){return bl.test(e)}const yl=/^[+-]?[0-9]*([.][0-9]+)?%$/;function _l(e){return yl.test(e)}const kl=["auto","cover","contain"];const vl=["repeat-x","repeat-y","repeat","space","round","no-repeat"];const Cl=["center","top","bottom","left","right"];function Al(e){return Cl.includes(e)}const xl=["fixed","scroll","local"];function El(e){return xl.includes(e)}const Tl=["border-box","padding-box","content-box"];function Pl(e){return Tl.includes(e)}const Sl=["border-box","padding-box","content-box","text"];function Il(e){return Sl.includes(e)}function Rl(e=""){if(""===e)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const t=Fl(e),o=t[0],i=t[2]||o,n=t[1]||o;return{top:o,bottom:i,right:n,left:t[3]||n}}function Ol(e){return t=>{const{top:o,right:i,bottom:n,left:s}=t,r=[];return[o,i,s,n].every((e=>!!e))?r.push([e,Vl(t)]):(o&&r.push([e+"-top",o]),i&&r.push([e+"-right",i]),n&&r.push([e+"-bottom",n]),s&&r.push([e+"-left",s])),r}}function Vl({top:e,right:t,bottom:o,left:i}){const n=[];return i!==t?n.push(e,t,o,i):o!==e?n.push(e,t,o):t!==e?n.push(e,t):n.push(e),n.join(" ")}function Dl(e){return t=>({path:e,value:Rl(t)})}function Fl(e){const t=e.trim().slice(0,1500).matchAll(hl);return Array.from(t).map((e=>e[0]))}const Ml={image:"none",repeat:"repeat",position:"0% 0%",size:"auto",origin:"padding-box",clip:"border-box",attachment:"scroll"},Nl=["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient","conic-gradient","repeating-conic-gradient","url"];function Bl(e){e.setNormalizer("background-color",(e=>({path:"background.color",value:e})));for(const t in Ml)e.setNormalizer(`background-${t}`,Ll(`background.${t}`)),e.setReducer(`background-${t}`,zl(`background-${t}`));e.setNormalizer("background",(e=>{const t=function(e){return $l(e).map(jl).filter((e=>null!==e))}(e);t.length||t.push({...ql(),color:e});const o=function(e){const t={image:[],position:[],size:[],repeat:[],attachment:[],origin:[],clip:[]};for(const o of e)t.position.push(o.position.join(" ")),t.size.push(o.size.join(" ")),t.repeat.push(o.repeat.join(" ")),t.image.push(o.image),t.attachment.push(o.attachment),t.origin.push(o.origin),t.clip.push(o.clip);return e.at(-1)?.color&&(t.color=e.at(-1).color),t}(t);return{path:"background",value:o}})),e.setReducer("background",(e=>{const t=e,o=Object.keys(Ml).every((e=>{const o=t[e];return void 0!==o&&(!Array.isArray(o)||o.length>0)}));return o?function(e){const t=[],o=function(e){const t=function(e){let t=0;for(const o of Object.values(e))Array.isArray(o)&&o.length>t&&(t=o.length);return t}(e),o=Array.from({length:t},((t,o)=>{const i=ql();return e.image?.[o]&&(i.image=e.image[o]),e.position?.[o]&&(i.position=e.position[o].split(" ")),e.size?.[o]&&(i.size=e.size[o].split(" ")),e.repeat?.[o]&&(i.repeat=e.repeat[o].split(" ")),e.attachment?.[o]&&(i.attachment=e.attachment[o]),e.origin?.[o]&&(i.origin=e.origin[o]),e.clip?.[o]&&(i.clip=e.clip[o]),i}));return e.color&&(o.at(-1).color=e.color),o}(e).map((e=>function(e){const t=[];e.image&&e.image!==Ml.image&&t.push(e.image);const o=e.position.join(" "),i=!o||o===Ml.position;i||t.push(o);const n=e.size.join(" ");n&&n!==Ml.size&&(i&&t.push("0% 0%"),t.push("/",n));const s=e.repeat.join(" ");s&&s!==Ml.repeat&&t.push(s),e.attachment&&e.attachment!==Ml.attachment&&t.push(e.attachment);const r=e.origin===Ml.origin,a=e.clip===Ml.clip;return r&&a||(t.push(e.origin),e.clip!==e.origin&&t.push(e.clip)),e.color&&t.push(e.color),t.join(" ")}(e).trim())).filter(Boolean).join(", ");return o&&t.push(["background",o]),t}(t):function(e){const t=[];for(const o in Ml){const i=e[o];Array.isArray(i)&&t.push([`background-${o}`,i.join(", ")])}return void 0!==e.color&&t.push(["background-color",e.color]),t}(t)})),e.setStyleRelation("background",["background-color","background-image","background-repeat","background-position","background-size","background-attachment","background-origin","background-clip"])}function Ll(e){return t=>({path:e,value:$l(t)})}function zl(e){return t=>{const o=t.join(", ");return[[e,o]]}}function jl(e){const t={},{value:o,image:i}=function(e){for(const t of Nl){const o=t+"(",i=e.indexOf(o);if(i<0)continue;let n=t,s=0;for(let o=i+t.length;o"constructor"!==e)).length:0===t.length}return!0}(t)?null:{...ql(),...t}}function ql(){return{attachment:Ml.attachment,image:Ml.image,origin:Ml.origin,clip:Ml.clip,position:Ml.position.split(" "),repeat:Ml.repeat.split(" "),size:Ml.size.split(" ")}}function $l(e){const t=[];let o="",i=0;for(const n of e){if("("===n)i++;else if(")"===n)i--;else if(","===n&&0===i){t.push(o.trim()),o="";continue}o+=n}return o.trim()&&t.push(o.trim()),t}function Hl(e){e.setNormalizer("border",(e=>{const{color:t,style:o,width:i}=Ql(e);return{path:"border",value:{color:Rl(t),style:Rl(o),width:Rl(i)}}})),e.setNormalizer("border-top",Wl("top")),e.setNormalizer("border-right",Wl("right")),e.setNormalizer("border-bottom",Wl("bottom")),e.setNormalizer("border-left",Wl("left")),e.setNormalizer("border-color",Ul("color")),e.setNormalizer("border-width",Ul("width")),e.setNormalizer("border-style",Ul("style")),e.setNormalizer("border-top-color",Gl("color","top")),e.setNormalizer("border-top-style",Gl("style","top")),e.setNormalizer("border-top-width",Gl("width","top")),e.setNormalizer("border-right-color",Gl("color","right")),e.setNormalizer("border-right-style",Gl("style","right")),e.setNormalizer("border-right-width",Gl("width","right")),e.setNormalizer("border-bottom-color",Gl("color","bottom")),e.setNormalizer("border-bottom-style",Gl("style","bottom")),e.setNormalizer("border-bottom-width",Gl("width","bottom")),e.setNormalizer("border-left-color",Gl("color","left")),e.setNormalizer("border-left-style",Gl("style","left")),e.setNormalizer("border-left-width",Gl("width","left")),e.setExtractor("border-top",Jl("top")),e.setExtractor("border-right",Jl("right")),e.setExtractor("border-bottom",Jl("bottom")),e.setExtractor("border-left",Jl("left")),e.setExtractor("border-top-color","border.color.top"),e.setExtractor("border-right-color","border.color.right"),e.setExtractor("border-bottom-color","border.color.bottom"),e.setExtractor("border-left-color","border.color.left"),e.setExtractor("border-top-width","border.width.top"),e.setExtractor("border-right-width","border.width.right"),e.setExtractor("border-bottom-width","border.width.bottom"),e.setExtractor("border-left-width","border.width.left"),e.setExtractor("border-top-style","border.style.top"),e.setExtractor("border-right-style","border.style.right"),e.setExtractor("border-bottom-style","border.style.bottom"),e.setExtractor("border-left-style","border.style.left"),e.setReducer("border-color",Ol("border-color")),e.setReducer("border-style",Ol("border-style")),e.setReducer("border-width",Ol("border-width")),e.setReducer("border-top",Yl("top")),e.setReducer("border-right",Yl("right")),e.setReducer("border-bottom",Yl("bottom")),e.setReducer("border-left",Yl("left")),e.setReducer("border",function(){return t=>{const o=Zl(t,"top"),i=Zl(t,"right"),n=Zl(t,"bottom"),s=Zl(t,"left"),r=[o,i,n,s],a={width:e(r,"width"),style:e(r,"style"),color:e(r,"color")},l=Xl(a,"all");if(l.length)return l;const c=Object.entries(a).reduce(((e,[t,o])=>(o&&(e.push([`border-${t}`,o]),r.forEach((e=>delete e[t]))),e)),[]);return[...c,...Xl(o,"top"),...Xl(i,"right"),...Xl(n,"bottom"),...Xl(s,"left")]};function e(e,t){return e.map((e=>e[t])).reduce(((e,t)=>e==t?e:null))}}()),e.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),e.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),e.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),e.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),e.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),e.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function Wl(e){return t=>{const{color:o,style:i,width:n}=Ql(t),s={};return void 0!==o&&(s.color={[e]:o}),void 0!==i&&(s.style={[e]:i}),void 0!==n&&(s.width={[e]:n}),{path:"border",value:s}}}function Ul(e){return t=>({path:"border",value:Kl(t,e)})}function Kl(e,t){return{[t]:Rl(e)}}function Gl(e,t){return o=>({path:"border",value:{[e]:{[t]:o}}})}function Jl(e){return(t,o)=>{if(o.border)return Zl(o.border,e)}}function Zl(e,t){const o={};return e.width&&e.width[t]&&(o.width=e.width[t]),e.style&&e.style[t]&&(o.style=e.style[t]),e.color&&e.color[t]&&(o.color=e.color[t]),o}function Ql(e){const t={},o=Fl(e);for(const e of o)wl(e)||/thin|medium|thick/.test(e)?t.width=e:fl(e)?t.style=e:t.color=e;return t}function Yl(e){return t=>Xl(t,e)}function Xl(e,t){const o=[];if(e&&e.width&&o.push("width"),e&&e.style&&o.push("style"),e&&e.color&&o.push("color"),3==o.length){const i=o.map((t=>e[t])).join(" ");return["all"==t?["border",i]:[`border-${t}`,i]]}return"all"==t?[]:o.map((o=>[`border-${t}-${o}`,e[o]]))}function ec(e){e.setNormalizer("margin",Dl("margin")),e.setNormalizer("margin-top",(e=>({path:"margin.top",value:e}))),e.setNormalizer("margin-right",(e=>({path:"margin.right",value:e}))),e.setNormalizer("margin-bottom",(e=>({path:"margin.bottom",value:e}))),e.setNormalizer("margin-left",(e=>({path:"margin.left",value:e}))),e.setReducer("margin",Ol("margin")),e.setStyleRelation("margin",["margin-top","margin-right","margin-bottom","margin-left"])}function tc(e){e.setNormalizer("padding",Dl("padding")),e.setNormalizer("padding-top",(e=>({path:"padding.top",value:e}))),e.setNormalizer("padding-right",(e=>({path:"padding.right",value:e}))),e.setNormalizer("padding-bottom",(e=>({path:"padding.bottom",value:e}))),e.setNormalizer("padding-left",(e=>({path:"padding.left",value:e}))),e.setReducer("padding",Ol("padding")),e.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}Symbol("_treeDump");function oc(e,t=0,o={}){const{leading:i=!0,trailing:n=!0}=o;return zo(e,t,{leading:i,maxWait:t,trailing:n})}class ic{crashes=[];state="initializing";_crashNumberLimit;_now=Date.now;_minimumNonErrorTimePeriod;_boundErrorHandler;_listeners;constructor(e){if(this.crashes=[],this._crashNumberLimit="number"==typeof e.crashNumberLimit?e.crashNumberLimit:3,this._minimumNonErrorTimePeriod="number"==typeof e.minimumNonErrorTimePeriod?e.minimumNonErrorTimePeriod:5e3,this._boundErrorHandler=e=>{const t="error"in e?e.error:e.reason;t instanceof Error&&this._handleError(t,e)},this._listeners={},!this._restart)throw new Error("The Watchdog class was split into the abstract `Watchdog` class and the `EditorWatchdog` class. Please, use `EditorWatchdog` if you have used the `Watchdog` class previously.")}destroy(){this._stopErrorHandling(),this._listeners={}}on(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)}off(e,t){this._listeners[e]=this._listeners[e].filter((e=>e!==t))}_fire(e,...t){const o=this._listeners[e]||[];for(const e of o)e.apply(this,[null,...t])}_startErrorHandling(){window.addEventListener("error",this._boundErrorHandler),window.addEventListener("unhandledrejection",this._boundErrorHandler)}_stopErrorHandling(){window.removeEventListener("error",this._boundErrorHandler),window.removeEventListener("unhandledrejection",this._boundErrorHandler)}_handleError(e,t){if(this._shouldReactToError(e)){this.crashes.push({message:e.message,stack:e.stack,filename:t instanceof ErrorEvent?t.filename:void 0,lineno:t instanceof ErrorEvent?t.lineno:void 0,colno:t instanceof ErrorEvent?t.colno:void 0,date:this._now()});const o=this._shouldRestart();this.state="crashed",this._fire("stateChange"),this._fire("error",{error:e,causesRestart:o}),o?this._restart():(this.state="crashedPermanently",this._fire("stateChange"))}}_shouldReactToError(e){return e.is&&e.is("CKEditorError")&&void 0!==e.context&&null!==e.context&&"ready"===this.state&&this._isErrorComingFromThisItem(e)}_shouldRestart(){if(this.crashes.length<=this._crashNumberLimit)return!0;return(this.crashes[this.crashes.length-1].date-this.crashes[this.crashes.length-1-this._crashNumberLimit].date)/this._crashNumberLimit>this._minimumNonErrorTimePeriod}}function nc(e,t=new Set){const o=[e],i=new Set;let n=0;for(;o.length>n;){const e=o[n++];if(!i.has(e)&&sc(e)&&!t.has(e))if(i.add(e),Symbol.iterator in e)try{for(const t of e)o.push(t)}catch{}else for(const t in e)"defaultValue"!==t&&o.push(e[t])}return i}function sc(e){const t=Object.prototype.toString.call(e),o=typeof e;return!("number"===o||"boolean"===o||"string"===o||"symbol"===o||"function"===o||"[object Date]"===t||"[object RegExp]"===t||"[object Module]"===t||null==e||e._watchdogExcluded||e instanceof EventTarget||e instanceof Event)}function rc(e,t,o=new Set){if(e===t&&("object"==typeof(i=e)&&null!==i))return!0;var i;const n=nc(e,o),s=nc(t,o);for(const e of n)if(s.has(e))return!0;return!1}function ac(e,t,o){const i=t.root,n=t.roots||Object.create(null);o&&!n[o]&&(n[o]=i||Object.create(null));const s=function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&(t=e,!L(t));var t}(e),r=function(e,t,o){return t||!o?e.initialData||Object.create(null):{[o]:e.initialData}}(t,s,o),a=Array.from(new Set([...s?Object.keys(e):[],...Object.keys(n),...Object.keys(r)]));for(const e of a){const o=n[e]||Object.create(null);o.initialData="",o.placeholder??=lc(t,"placeholder",e),o.label??=lc(t,"label",e),n[e]=o}t.roots=n}function lc(e,t,o){const i=e[t];if(i)return"string"==typeof i?i:i[o]}class cc extends ic{_editor=null;_lifecyclePromise=null;_throttledSave;_data;_lastDocumentVersion;_elementOrData;_editorAttachTo=null;_isSingleRootEditor=!0;_isUsingConfigBasedCreator=!1;_editables={};_config;_excludedProps;constructor(e,t={}){super(t),this._throttledSave=oc(this._save.bind(this),"number"==typeof t.saveInterval?t.saveInterval:5e3),e&&(this._creator=(t,o)=>void 0===o?e.create(t):e.create(t,o)),this._destructor=e=>e.destroy()}get editor(){return this._editor}get _item(){return this._editor}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}_restart(){return Promise.resolve().then((()=>(this.state="initializing",this._fire("stateChange"),this._destroy()))).catch((e=>{console.error("An error happened during the editor destroying.",e)})).then((()=>{this._isUsingConfigBasedCreator?ac(this._isSingleRootEditor?"":{},this._config,!!this._isSingleRootEditor&&"main"):ac(this._isSingleRootEditor?this._editorAttachTo||"":this._editables,this._config,!!this._isSingleRootEditor&&"main");const e={...this._config,extraPlugins:this._config.extraPlugins||[],_watchdogInitialData:this._data};e.extraPlugins.push(dc);const t={};for(const[o,i]of Object.entries(this._data.roots)){const n=e.roots[o]||Object.create(null);n.initialData="",i.isLoaded?n.lazyLoad=!1:delete n.modelAttributes,t[o]=n}if(e.roots=t,delete e.initialData,delete e.root,this._isUsingConfigBasedCreator)return this.create(e,e.context);const o=this._isSingleRootEditor?this._editorAttachTo||"":this._editables;return this.create(o,e,e.context)})).then((()=>{this._fire("restart")}))}create(e=(this._isUsingConfigBasedCreator?this._config:this._elementOrData),t=(this._isUsingConfigBasedCreator?void 0:this._config),o){const i=this._detectConfigBasedCreator(e,t),n=i?void 0:e,s=i?e:t,r=i?t:o;return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>{if(super._startErrorHandling(),this._isUsingConfigBasedCreator=i,this._elementOrData=n,this._config=this._cloneEditorConfiguration(s||{}),this._config.context=r,i){this._editorAttachTo=null;const e=this._config.roots?Object.keys(this._config.roots).length:0,t=this._config.initialData,o=t&&"object"==typeof t;this._isSingleRootEditor=!o&&e<=1}else this._editorAttachTo=uc(n)?n:null,this._isSingleRootEditor=uc(n)||"string"==typeof n;return i?this._creator(this._config):this._creator(n,this._config)})).then((e=>{this._editor=e,e.model.document.on("change:data",this._throttledSave),this._lastDocumentVersion=e.model.document.version,this._data=this._getData(),this._editorAttachTo||(this._editables=this._getEditables()),this.state="ready",this._fire("stateChange")})).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}destroy(){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy()))).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling(),this._throttledSave.cancel();const e=this._editor;return this._editor=null,e.model.document.off("change:data",this._throttledSave),this._destructor(e)}))}_save(){const e=this._editor.model.document.version;try{this._data=this._getData(),this._editorAttachTo||(this._editables=this._getEditables()),this._lastDocumentVersion=e}catch(e){console.error(e,"An error happened during restoring editor data. Editor will be restored from the previously saved data.")}}_setExcludedProperties(e){this._excludedProps=e}_getData(){const e=this._editor,t=e.model.document.roots.filter((e=>e.isAttached()&&"$graveyard"!=e.rootName)),{plugins:o}=e,i=o.has("CommentsRepository")&&o.get("CommentsRepository"),n=o.has("TrackChanges")&&o.get("TrackChanges"),s={roots:{},markers:{},commentThreads:JSON.stringify([]),suggestions:JSON.stringify([])};t.forEach((e=>{s.roots[e.rootName]={content:JSON.stringify(Array.from(e.getChildren())),attributes:JSON.stringify(Array.from(e.getAttributes())),isLoaded:e._isLoaded}}));for(const t of e.model.markers)t._affectsData&&(s.markers[t.name]={rangeJSON:t.getRange().toJSON(),usingOperation:t._managedUsingOperations,affectsData:t._affectsData});return i&&(s.commentThreads=JSON.stringify(i.getCommentThreads({toJSON:!0,skipNotAttached:!0}))),n&&(s.suggestions=JSON.stringify(n.getSuggestions({toJSON:!0,skipNotAttached:!0}))),s}_getEditables(){const e={};for(const t of this.editor.model.document.getRootNames()){const o=this.editor.ui.getEditableElement(t);o&&(e[t]=o)}return e}_isErrorComingFromThisItem(e){return rc(this._editor,e.context,this._excludedProps)}_detectConfigBasedCreator(e,t){if("string"==typeof e||uc(e))return!1;if(t&&"object"==typeof t&&!("destroy"in t)&&Object.keys(t).length>0)return!1;if(e&&"object"==typeof e){const t=Object.values(e);if(t.length>0&&t.every((e=>"string"==typeof e||uc(e))))return!1}return!0}_cloneEditorConfiguration(e){return N(e,((e,t)=>uc(e)||"context"===t?e:void 0))}}class dc{editor;_data;constructor(e){this.editor=e,this._data=e.config.get("_watchdogInitialData")}init(){this.editor.data.on("init",(e=>{e.stop(),this.editor.model.enqueueChange({isUndoable:!1},(e=>{this._restoreCollaborationData(),this._restoreEditorData(e)})),this.editor.data.fire("ready")}),{priority:999})}_createNode(e,t){if("name"in t){const o=e.createElement(t.name,t.attributes);if(t.children)for(const i of t.children)o._appendChild(this._createNode(e,i));return o}return e.createText(t.data,t.attributes)}_restoreEditorData(e){const t=this.editor;Object.entries(this._data.roots).forEach((([o,{content:i,attributes:n}])=>{const s=JSON.parse(i),r=JSON.parse(n),a=t.model.document.getRoot(o);for(const[t,o]of r)e.setAttribute(t,o,a);for(const t of s){const o=this._createNode(e,t);e.insert(o,a,"end")}})),Object.entries(this._data.markers).forEach((([o,i])=>{const{document:n}=t.model,{rangeJSON:{start:s,end:r},...a}=i,l=n.getRoot(s.root),c=e.createPositionFromPath(l,s.path,s.stickiness),d=e.createPositionFromPath(l,r.path,r.stickiness),u=e.createRange(c,d);e.addMarker(o,{range:u,...a})}))}_restoreCollaborationData(){const e=JSON.parse(this._data.commentThreads),t=JSON.parse(this._data.suggestions);if(this.editor.plugins.has("CommentsRepository")){const t=this.editor.plugins.get("CommentsRepository");for(const e of t.getCommentThreads())t._removeCommentThread({threadId:e.id});e.forEach((e=>{const t=this.editor.config.get("collaboration.channelId");this.editor.plugins.get("CommentsRepository").addCommentThread({channelId:t,...e})}))}if(this.editor.plugins.has("TrackChangesEditing")){const e=this.editor.plugins.get("TrackChangesEditing");for(const t of e.getSuggestions())e._removeSuggestion(t);t.forEach((t=>{e.addSuggestionData(t)}))}}}function uc(e){return L(e)}const hc=Symbol("MainQueueId");class mc extends ic{_watchdogs=new Map;_watchdogConfig;_context=null;_contextProps=new Set;_actionQueues=new gc;_contextConfig;_item;constructor(e,t={}){super(t),this._watchdogConfig=t,this._creator=t=>e.create(t),this._destructor=e=>e.destroy(),this._actionQueues.onEmpty((()=>{"initializing"===this.state&&(this.state="ready",this._fire("stateChange"))}))}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}get context(){return this._context}create(e={}){return this._actionQueues.enqueue(hc,(()=>(this._contextConfig=e,this._create())))}getItem(e){return this._getWatchdog(e)._item}getItemState(e){return this._getWatchdog(e).state}add(e){const t=pc(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e.id,(()=>{if("destroyed"===this.state)throw new Error("Cannot add items to destroyed watchdog.");if(!this._context)throw new Error("Context was not created yet. You should call the `ContextWatchdog#create()` method first.");let t;if(this._watchdogs.has(e.id))throw new Error(`Item with the given id is already added: '${e.id}'.`);if("editor"===e.type)return t=new cc(null,this._watchdogConfig),t.setCreator(e.creator),t._setExcludedProperties(this._contextProps),e.destructor&&t.setDestructor(e.destructor),this._watchdogs.set(e.id,t),t.on("error",((o,{error:i,causesRestart:n})=>{this._fire("itemError",{itemId:e.id,error:i}),n&&this._actionQueues.enqueue(e.id,(()=>new Promise((o=>{const i=()=>{t.off("restart",i),this._fire("itemRestart",{itemId:e.id}),o()};t.on("restart",i)}))))})),void 0!==e.sourceElementOrData?t.create(e.sourceElementOrData,e.config,this._context):t.create(e.config,this._context);throw new Error(`Not supported item type: '${e.type}'.`)})))))}remove(e){const t=pc(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e,(()=>{const t=this._getWatchdog(e);return this._watchdogs.delete(e),t.destroy()})))))}destroy(){return this._actionQueues.enqueue(hc,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(hc,(()=>(this.state="initializing",this._fire("stateChange"),this._destroy().catch((e=>{console.error("An error happened during destroying the context or items.",e)})).then((()=>this._create())).then((()=>this._fire("restart"))))))}_create(){return Promise.resolve().then((()=>(this._startErrorHandling(),this._creator(this._contextConfig)))).then((e=>(this._context=e,this._contextProps=nc(this._context),Promise.all(Array.from(this._watchdogs.values()).map((e=>(e._setExcludedProperties(this._contextProps),e._isUsingConfigBasedCreator?e.create(void 0,this._context):e.create(void 0,void 0,this._context))))))))}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling();const e=this._context;return this._context=null,this._contextProps=new Set,Promise.all(Array.from(this._watchdogs.values()).map((e=>e.destroy()))).then((()=>this._destructor(e)))}))}_getWatchdog(e){const t=this._watchdogs.get(e);if(!t)throw new Error(`Item with the given id was not registered: ${e}.`);return t}_isErrorComingFromThisItem(e){for(const t of this._watchdogs.values())if(t._isErrorComingFromThisItem(e))return!1;return rc(this._context,e.context)}}class gc{_onEmptyCallbacks=[];_queues=new Map;_activeActions=0;onEmpty(e){this._onEmptyCallbacks.push(e)}enqueue(e,t){const o=e===hc;this._activeActions++,this._queues.get(e)||this._queues.set(e,Promise.resolve());const i=(o?Promise.all(this._queues.values()):Promise.all([this._queues.get(hc),this._queues.get(e)])).then(t),n=i.catch((()=>{}));return this._queues.set(e,n),i.finally((()=>{this._activeActions--,this._queues.get(e)===n&&0===this._activeActions&&this._onEmptyCallbacks.forEach((e=>e()))}))}}function pc(e){return Array.isArray(e)?e:[e]}class fc extends(Be()){editor;_disableStack=new Set;constructor(e){super(),this.editor=e,this.set("isEnabled",!0)}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",bc,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",bc),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}function bc(e){e.return=!1,e.stop()}class wc extends(Be()){editor;_isEnabledBasedOnSelection;_affectsData;_disableStack;static get _throwErrorWhenUsedAsAPlugin(){return!0}constructor(e){super(),this.editor=e,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._isEnabledBasedOnSelection=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.listenTo(e,"change:isReadOnly",(()=>{this.refresh()})),this.on("set:isEnabled",(t=>{if(!this.affectsData)return;const o=e.model.document.selection,i=!("$graveyard"==o.getFirstPosition().root.rootName)&&e.model.canEditAt(o);(e.isReadOnly||this._isEnabledBasedOnSelection&&!i)&&(t.return=!1,t.stop())}),{priority:"highest"}),this.on("execute",(e=>{this.isEnabled||e.stop()}),{priority:"high"})}get affectsData(){return this._affectsData}set affectsData(e){this._affectsData=e}refresh(){this.isEnabled=!0}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",yc,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",yc),this.refresh())}execute(...e){}destroy(){this.stopListening()}}function yc(e){e.return=!1,e.stop()}class _c{_commands;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 fe("commandcollection-command-not-found",this,{commandName:e});return 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()}}class kc extends(xe()){_context;_plugins=new Map;_availablePlugins;_contextPlugins;constructor(e,t=[],o=[]){super(),this._context=e,this._availablePlugins=new Map;for(const e of t)e.pluginName&&this._availablePlugins.set(e.pluginName,e);this._contextPlugins=new Map;for(const[e,t]of o)this._contextPlugins.set(e,t),this._contextPlugins.set(t,e),e.pluginName&&this._availablePlugins.set(e.pluginName,e)}*[Symbol.iterator](){for(const e of this._plugins)"function"==typeof e[0]&&(yield e)}get(e){const t=this._plugins.get(e);if(!t){let t=e;throw"function"==typeof e&&(t=e.pluginName||e.name),new fe("plugincollection-plugin-not-loaded",this._context,{plugin:t})}return t}has(e){return this._plugins.has(e)}async init(e,t=[],o=[]){const i=this,n=this._context;!function e(t,o=new Set){t.forEach((t=>{a(t)&&(o.has(t)||(o.add(t),t.pluginName&&!i._availablePlugins.has(t.pluginName)&&i._availablePlugins.set(t.pluginName,t),t.requires&&e(t.requires,o)))}))}(e),u(e);const s=[...function e(t,o=new Set){return t.map((e=>a(e)?e:i._availablePlugins.get(e))).reduce(((t,i)=>o.has(i)?t:(o.add(i),i.requires&&(u(i.requires,i),e(i.requires,o).forEach((e=>t.add(e)))),t.add(i))),new Set)}(e.filter((e=>!c(e,t))))];!function(e,t){for(const o of t){if("function"!=typeof o)throw new fe("plugincollection-replace-plugin-invalid-type",null,{pluginItem:o});const t=o.pluginName;if(!t)throw new fe("plugincollection-replace-plugin-missing-name",null,{pluginItem:o});if(o.requires&&o.requires.length)throw new fe("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:t});const n=i._availablePlugins.get(t);if(!n)throw new fe("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:t});const s=e.indexOf(n);if(-1===s){if(i._contextPlugins.has(n))return;throw new fe("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:t})}if(n.requires&&n.requires.length)throw new fe("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:t});e.splice(s,1,o),i._availablePlugins.set(t,o)}}(s,o);const r=function(e){return e.map((e=>{let t=i._contextPlugins.get(e);return t=t||new e(n),i._add(e,t),t}))}(s);return await h(r,"init"),await h(r,"afterInit"),r;function a(e){return"function"==typeof e}function l(e){return a(e)&&!!e.isContextPlugin}function c(e,t){return t.some((t=>t===e||(d(e)===t||d(t)===e)))}function d(e){return a(e)?e.pluginName||e.name:e}function u(e,o=null){e.map((e=>a(e)?e:i._availablePlugins.get(e)||e)).forEach((e=>{!function(e){if("function"!=typeof e)return;if(e._throwErrorWhenUsedAsAPlugin)throw new fe("plugincollection-plugin-invalid-constructor",n,{name:e.name})}(e),function(e,t){if(a(e))return;if(t)throw new fe("plugincollection-soft-required",n,{missingPlugin:e,requiredBy:d(t)});throw new fe("plugincollection-plugin-not-found",n,{plugin:e})}(e,o),function(e,t){if(!l(t))return;if(l(e))return;throw new fe("plugincollection-context-required",n,{plugin:d(e),requiredBy:d(t)})}(e,o),function(e,o){if(!o)return;if(!c(e,t))return;throw new fe("plugincollection-required",n,{plugin:d(e),requiredBy:d(o)})}(e,o)}))}function h(e,t){return e.reduce(((e,o)=>o[t]?i._contextPlugins.has(o)?e:e.then(o[t].bind(o)):e),Promise.resolve())}}destroy(){const e=[];for(const[,t]of this)"function"!=typeof t.destroy||this._contextPlugins.has(t)||e.push(t.destroy());return Promise.all(e)}_add(e,t){this._plugins.set(e,t);const o=e.pluginName;if(o){if(this._plugins.has(o))throw new fe("plugincollection-plugin-name-conflict",null,{pluginName:o,plugin1:this._plugins.get(o).constructor,plugin2:e});this._plugins.set(o,t)}}}class vc{config;plugins;locale;t;editors;static defaultConfig;static builtinPlugins;_contextOwner=null;constructor(e){const{translations:t,...o}=e||{};this.config=new Ge(o,this.constructor.defaultConfig);const i=this.constructor.builtinPlugins;this.config.define("plugins",i),this.plugins=new kc(this,i);const n=this.config.get("language")||{};this.locale=new Xt({uiLanguage:"string"==typeof n?n:n.ui,contentLanguage:this.config.get("language.content"),translations:t}),this.t=this.locale.t,this.editors=new eo}initPlugins(){const e=this.config.get("plugins")||[],t=this.config.get("substitutePlugins")||[];for(const o of e.concat(t)){if("function"!=typeof o)throw new fe("context-initplugins-constructor-only",null,{Plugin:o});if(!0!==o.isContextPlugin)throw new fe("context-initplugins-invalid-plugin",null,{Plugin:o})}return this.plugins.init(e,[],t)}destroy(){return Promise.all(Array.from(this.editors,(e=>e.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(e,t){if(this._contextOwner)throw new fe("context-addeditor-private-context");this.editors.add(e),t&&(this._contextOwner=e)}_removeEditor(e){return this.editors.has(e)&&this.editors.remove(e),this._contextOwner===e?this.destroy():Promise.resolve()}_getEditorConfig(){const e={};for(const t of this.config.names())["plugins","removePlugins","extraPlugins"].includes(t)||(e[t]=this.config.get(t));return e}static create(e){return new Promise((t=>{const o=new this(e);t(o.initPlugins().then((()=>o)))}))}static get _throwErrorWhenUsedAsAPlugin(){return!0}}class Cc extends(Be()){context;constructor(e){super(),this.context=e}destroy(){this.stopListening()}static get isContextPlugin(){return!0}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}class Ac extends ro{editor;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)}}const xc="contentEditing",Ec="common";class Tc{keystrokeInfos=new Map;_editor;constructor(e){this._editor=e;const t=e.config.get("menuBar.isVisible"),o=e.locale.t;this.addKeystrokeInfoCategory({id:xc,label:o("Content editing keystrokes"),description:o("These keyboard shortcuts allow for quick access to content editing features.")});const i=[{label:o("Close contextual balloons, dropdowns, and dialogs"),keystroke:"Esc"},{label:o("Open the accessibility help dialog"),keystroke:"Alt+0"},{label:o("Move focus between form fields (inputs, buttons, etc.)"),keystroke:[["Tab"],["Shift+Tab"]]},{label:o("Move focus to the toolbar, navigate between toolbars"),keystroke:"Alt+F10",mayRequireFn:!0},{label:o("Navigate through the toolbar or menu bar"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]},{label:o("Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content."),keystroke:[["Enter"],["Space"]]}];t&&i.push({label:o("Move focus to the menu bar, navigate between menu bars"),keystroke:"Alt+F9",mayRequireFn:!0}),this.addKeystrokeInfoCategory({id:"navigation",label:o("User interface and content navigation keystrokes"),description:o("Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface."),groups:[{id:"common",keystrokes:i}]})}addKeystrokeInfoCategory({id:e,label:t,description:o,groups:i}){this.keystrokeInfos.set(e,{id:e,label:t,description:o,groups:new Map}),this.addKeystrokeInfoGroup({categoryId:e,id:Ec}),i&&i.forEach((t=>{this.addKeystrokeInfoGroup({categoryId:e,...t})}))}addKeystrokeInfoGroup({categoryId:e=xc,id:t,label:o,keystrokes:i}){const n=this.keystrokeInfos.get(e);if(!n)throw new fe("accessibility-unknown-keystroke-info-category",this._editor,{groupId:t,categoryId:e});n.groups.set(t,{id:t,label:o,keystrokes:i||[]})}addKeystrokeInfos({categoryId:e=xc,groupId:t=Ec,keystrokes:o}){if(!this.keystrokeInfos.has(e))throw new fe("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:e,keystrokes:o});const i=this.keystrokeInfos.get(e);if(!i.groups.has(t))throw new fe("accessibility-unknown-keystroke-info-group",this._editor,{groupId:t,categoryId:e,keystrokes:o});i.groups.get(t).keystrokes.push(...o)}}function Pc(e){return Object.getPrototypeOf(e).constructor.editorName}function Sc(e){if(!e)return;const t=Array.isArray(e)?{items:e}:e,o=function e(t){return t.flatMap((t=>"string"==typeof t?[t]:e(t.items)))}(t.items||[]);return{isMultiline:o.includes("-"),shouldNotGroupWhenFull:!!t.shouldNotGroupWhenFull,items:(i=o,i.filter((e=>"|"!==e&&"-"!==e)))};var i}function Ic(){let e="unknown",t="unknown";return Y.isMac?e="mac":Y.isWindows?e="windows":Y.isiOS?e="ios":Y.isAndroid&&(e="android"),Y.isGecko?t="gecko":Y.isBlink?t="blink":Y.isSafari&&(t="safari"),{os:e,browser:t}}function Rc(){return localStorage.getItem("__ckeditor-session-id")||localStorage.setItem("__ckeditor-session-id",me()),localStorage.getItem("__ckeditor-session-id")}function Oc(){return J.window.CKEDITOR_PAGE_SESSION_ID=J.window.CKEDITOR_PAGE_SESSION_ID||me(),J.window.CKEDITOR_PAGE_SESSION_ID}class Vc extends(Be()){static get editorName(){return"Editor"}accessibility;commands;config;conversion;data;editing;locale;model;plugins;keystrokes;t;static defaultConfig;static builtinPlugins;_context;_readOnlyLocks;static get _throwErrorWhenUsedAsAPlugin(){return!0}constructor(e={}){if(super(),"object"!=typeof e||Array.isArray(e))throw new fe("editor-config-invalid-type");if("sanitizeHtml"in e)throw new fe("editor-config-sanitizehtml-not-supported");const t=this.constructor,{translations:o,...i}=t.defaultConfig||{},{translations:n=o,...s}=e,r=e.language||i.language;this._context=e.context||new vc({language:r,translations:n}),this._context._addEditor(this,!e.context);const a=Array.from(t.builtinPlugins||[]);this.config=new Ge(s,i),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),function(e){let t=e.get("licenseKey");!t&&window.CKEDITOR_GLOBAL_LICENSE_KEY&&(t=window.CKEDITOR_GLOBAL_LICENSE_KEY,e.set("licenseKey",t));if(!t)throw new fe("license-key-missing")}(this.config),this.plugins=new kc(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new _c,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new el(this.config),this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const l=new pi;this.data=new Rr(this.model,l),this.editing=new hr(this.model,l),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Or([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Ac(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new Tc(this),function(e){const t=e.config.get("licenseKey"),o=window[Symbol.for("cke distribution")]||"sh";function i(t,o){e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError(t,o)}if("GPL"==t)return void("cloud"==o&&i("distributionChannel"));const n=bo(t);if(!n)return void i("invalid");if(!function(e){return["exp","jti","vc"].every((t=>t in e))}(n))return void i("invalid");if(n.distributionChannel&&!Qt(n.distributionChannel).includes(o))return void i("distributionChannel");if(function(e){const t=Array.isArray(e)?e:[e],o=function(){const e=[];for(let t=0;t<256;t++){let o=t;for(let e=0;e<8;e++)1&o?o=3988292384^o>>>1:o>>>=1;e[t]=o}return e}();let i=-1;const n=t.map((e=>Array.isArray(e)?e.join(""):String(e))).join("");for(let e=0;e>>8^o[255&(i^n.charCodeAt(e))];return i=~i>>>0,i.toString(16).padStart(8,"0")}(function(e){return Object.getOwnPropertyNames(e).sort().filter((t=>"vc"!=t&&null!=e[t])).map((t=>e[t]))}(n))!=n.vc.toLowerCase())return void i("invalid");if(new Date(1e3*n.exp)<_e)return void i("expired");const s=n.licensedHosts;if(s&&s.length>0&&!function(e){const{hostname:t}=new URL(window.location.href);if(e.includes(t))return!0;const o=t.split(".");return e.filter((e=>e.includes("*"))).map((e=>e.split("."))).filter((e=>e.length<=o.length)).map((e=>Array(o.length-e.length).fill("*"===e[0]?"*":"").concat(e))).some((e=>o.every(((t,o)=>e[o]===t||"*"===e[o]))))}(s))return void i("domainLimit");if(["evaluation","trial"].includes(n.licenseType)&&1e3*n.exp{i("evaluationLimit")}),6e5);e.on("destroy",(()=>{clearTimeout(t)}))}n.usageEndpoint&&e.once("ready",(()=>{const o={requestId:me(),requestTime:Math.round(Date.now()/1e3),license:t,editor:Dc(e)};e._sendUsageRequest(n.usageEndpoint,o).then((e=>{const{status:t,message:o}=e;o&&console.warn(o),"ok"!=t&&i("usageLimit")}),(()=>{var e,t;e="license-key-validation-endpoint-not-reachable",t={url:n.usageEndpoint},console.error(...ye(e,t))}))}),{priority:"high"})}(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(e){throw new fe("editor-isreadonly-has-no-setter")}enableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new fe("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)||(this._readOnlyLocks.add(e),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new fe("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)&&(this._readOnlyLocks.delete(e),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}setData(e){this.data.set(e)}getData(e){return this.data.get(e)}initPlugins(){const e=this.config,t=e.get("plugins"),o=e.get("removePlugins")||[],i=e.get("extraPlugins")||[],n=e.get("substitutePlugins")||[];return this.plugins.init(t.concat(i),o,n).then((e=>(function(e){const t=e.config.get("licenseKey");if("GPL"===t)return;const o=bo(t);if(!o)return;const i=[...e.plugins].map((([e])=>e)).find((e=>{return!!e.pluginName&&(!!e.licenseFeatureCode&&(t=o,i=e.licenseFeatureCode,(t.removeFeatures||[]).includes(i)));var t,i}));i&&(e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError("pluginNotAllowed",i.pluginName))}(this),e)))}destroy(){let e=Promise.resolve();return"initializing"==this.state&&(e=new Promise((e=>this.once("ready",e)))),e.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(e,...t){try{return this.commands.execute(e,...t)}catch(e){fe.rethrowUnexpectedError(e,this)}}focus(){this.editing.view.focus()}static create(...e){throw new Error("This is an abstract method.")}static Context=vc;static EditorWatchdog=cc;static ContextWatchdog=mc;_showLicenseError(e,t){setTimeout((()=>{if("invalid"==e)throw new fe("invalid-license-key");if("expired"==e)throw new fe("license-key-expired");if("domainLimit"==e)throw new fe("license-key-domain-limit");if("pluginNotAllowed"==e){const e=t.replace(/(Editing|UI)$/,""),o=this.plugins.has(e);throw new fe("license-key-plugin-not-allowed",null,{pluginName:o?e:t})}if("featureNotAllowed"==e)throw new fe("license-key-feature-not-allowed",null,{featureName:t});if("evaluationLimit"==e)throw new fe("license-key-evaluation-limit");if("trialLimit"==e)throw new fe("license-key-trial-limit");if("developmentLimit"==e)throw new fe("license-key-development-limit");if("usageLimit"==e)throw new fe("license-key-usage-limit");if("distributionChannel"==e)throw new fe("license-key-invalid-distribution-channel")}),0),this._showLicenseError=()=>{}}async _sendUsageRequest(e,t){const o=new Headers({"Content-Type":"application/json"}),i=await fetch(new URL(e),{method:"POST",headers:o,body:JSON.stringify(t)});if(!i.ok)throw new Error(`HTTP Response: ${i.status}`);return i.json()}}function Dc(e){const t=function(e){return{sessionId:Rc(),pageSessionId:Oc(),hostname:window.location.hostname,version:globalThis.CKEDITOR_VERSION,type:Pc(e),plugins:(t=e.plugins,Array.from(t).filter((([e])=>!!e.pluginName)).map((([e])=>{const{pluginName:t,isContextPlugin:o,isOfficialPlugin:i,isPremiumPlugin:n}=e;return{isContext:!!o,isOfficial:!!i,isPremium:!!n,name:t}}))),distribution:{channel:window[Symbol.for("cke distribution")]||"sh"},env:Ic(),integration:Object.create(null),menuBar:{isVisible:!!e.config.get("menuBar.isVisible")},language:{ui:e.locale.uiLanguage,content:e.locale.contentLanguage},toolbar:{main:Sc(e.config.get("toolbar")),block:Sc(e.config.get("blockToolbar")),balloon:Sc(e.config.get("balloonToolbar"))}};var t}(e);return e.fire("collectUsageData",{setUsageData:function(e,o){if(void 0!==vo(t,e))throw new fe("editor-usage-data-path-already-set",{path:e});Ro(t,e,o)}}),t}function Fc(e){return class extends e{sourceElement;updateSourceElement(e){if(!this.sourceElement)throw new fe("editor-missing-sourceelement",this);const t=this.config.get("updateSourceElementOnDestroy"),o=this.sourceElement instanceof HTMLTextAreaElement;if(!t&&!o)return void wt(this.sourceElement,"");const i="string"==typeof e?e:this.data.get();wt(this.sourceElement,i)}}}function Mc(e,t,o="main",i=!1){const n=t.get("root"),s=t.get("roots")||Object.create(null);if(n){if(!o)throw new fe("editor-create-multi-root-with-main",null);if(o in s)throw new fe("editor-create-roots-with-main",null)}o&&!s[o]&&(s[o]=n||Object.create(null));const r=function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&!Bc(e)}(e),a=function(e,t,o){return t||!o?e.get("initialData")||Object.create(null):{[o]:e.get("initialData")}}(t,r,o),l=Array.from(new Set([...r?Object.keys(e):[],...Object.keys(s),...Object.keys(a)]));for(const o of l){const n=s[o]||Object.create(null),l=r?e[o]:e;if(!i&&Bc(l)){if(n.element)throw new fe("editor-create-root-element-overspecified",null);n.element=l}if(i&&Bc(n.element)&&be("editor-create-root-element-not-supported"),void 0===n.initialData)if(void 0===a[o])n.initialData=Bc(d=l||n.element||i&&t.get("attachTo")||"")?(c=d)instanceof HTMLTextAreaElement?c.value:c.innerHTML:d;else{if(l&&!Bc(l))throw new fe("editor-create-initial-data-overspecified",null);n.initialData=a[o]}else{if(l&&!Bc(l))throw new fe("editor-create-root-initial-data-overspecified",null);if(void 0!==a[o])throw new fe("editor-create-legacy-initial-data-overspecified",null)}n.placeholder??=Nc(t,"placeholder",o),n.label??=Nc(t,"label",o),s[o]=n}var c,d;if(i&&Bc(e)){if(t.get("attachTo"))throw new fe("editor-create-attachto-overspecified",null);t.set("attachTo",e)}if(!i&&t.get("attachTo"))throw new fe("editor-create-attachto-ignored",null);t.set("roots",s)}function Nc(e,t,o){const i=e.get(t);if(i)return"string"==typeof i?i:i[o]}function Bc(e){return L(e)}class Lc extends Cc{_actions;static get pluginName(){return"PendingActions"}static get isOfficialPlugin(){return!0}init(){this.set("hasAny",!1),this._actions=new eo({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(e){if("string"!=typeof e)throw new fe("pendingactions-add-invalid-message",this);const t=new(Be());return t.set("message",e),this._actions.add(t),this.hasAny=!0,t}remove(e){this._actions.remove(e),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}var zc='',jc='',qc='',$c='',Hc='',Wc='',Uc='',Kc='',Gc='',Jc='',Zc='',Qc='',Yc='',Xc='',ed='',td='',od='',id='',nd='';const sd={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const e in sd)Object.freeze(sd[e]);const rd=Object.freeze(sd),ad=function(e){var t,o,i=[],n=1;if("number"==typeof e)return{space:"rgb",values:[e>>>16,(65280&e)>>>8,255&e],alpha:1};if("number"==typeof e)return{space:"rgb",values:[e>>>16,(65280&e)>>>8,255&e],alpha:1};if(e=String(e).toLowerCase(),rd[e])i=rd[e].slice(),o="rgb";else if("transparent"===e)n=0,o="rgb",i=[0,0,0];else if("#"===e[0]){var s=e.slice(1),r=s.length;n=1,r<=4?(i=[parseInt(s[0]+s[0],16),parseInt(s[1]+s[1],16),parseInt(s[2]+s[2],16)],4===r&&(n=parseInt(s[3]+s[3],16)/255)):(i=[parseInt(s[0]+s[1],16),parseInt(s[2]+s[3],16),parseInt(s[4]+s[5],16)],8===r&&(n=parseInt(s[6]+s[7],16)/255)),i[0]||(i[0]=0),i[1]||(i[1]=0),i[2]||(i[2]=0),o="rgb"}else if(t=/^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\s*\(([^\)]*)\)/.exec(e)){var a=t[1],l="cmyk"===(o=a.replace(/a$/,""))?4:"gray"===o?1:3;i=t[2].trim().split(/\s*[,\/]\s*|\s+/),"color"===o&&(o=i.shift()),n=(i=i.map((function(e,t){if("%"===e[e.length-1])return e=parseFloat(e)/100,3===t?e:"rgb"===o?255*e:"h"===o[0]?100*e:"l"!==o[0]||t?"lab"===o?125*e:"lch"===o?t<2?150*e:360*e:"o"!==o[0]||t?"oklab"===o?.4*e:"oklch"===o?t<2?.4*e:360*e:e:e:100*e;if("h"===o[t]||2===t&&"h"===o[o.length-1]){if(void 0!==ld[e])return ld[e];if(e.endsWith("deg"))return parseFloat(e);if(e.endsWith("turn"))return 360*parseFloat(e);if(e.endsWith("grad"))return 360*parseFloat(e)/400;if(e.endsWith("rad"))return 180*parseFloat(e)/Math.PI}return"none"===e?0:parseFloat(e)}))).length>l?i.pop():1}else/[0-9](?:\s|\/|,)/.test(e)&&(i=e.match(/([0-9]+)/g).map((function(e){return parseFloat(e)})),o=e.match(/([a-z])/gi)?.join("")?.toLowerCase()||"rgb");return{space:o,values:i,alpha:n}};var ld={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};const cd={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const e in cd)Object.freeze(cd[e]);const dd=Object.freeze(cd),ud={};for(const e of Object.keys(dd))ud[dd[e]]=e;const hd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},md=hd,gd=(6/29)**3;function pd(e){const t=e>.0031308?1.055*e**(1/2.4)-.055:12.92*e;return Math.min(Math.max(0,t),1)}function fd(e){return e>.04045?((e+.055)/1.055)**2.4:e/12.92}for(const e of Object.keys(hd)){if(!("channels"in hd[e]))throw new Error("missing channels property: "+e);if(!("labels"in hd[e]))throw new Error("missing channel labels property: "+e);if(hd[e].labels.length!==hd[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:o}=hd[e];delete hd[e].channels,delete hd[e].labels,Object.defineProperty(hd[e],"channels",{value:t}),Object.defineProperty(hd[e],"labels",{value:o})}function bd(e){const t=function(){const e={},t=Object.keys(md);for(let{length:o}=t,i=0;i0;){const e=o.pop(),i=Object.keys(md[e]);for(let{length:n}=i,s=0;s1&&(n-=1)}return[360*n,100*s,100*c]},hd.rgb.hwb=function(e){const t=e[0],o=e[1];let i=e[2];const n=hd.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(o,i));return i=1-1/255*Math.max(t,Math.max(o,i)),[n,100*s,100*i]},hd.rgb.oklab=function(e){const t=fd(e[0]/255),o=fd(e[1]/255),i=fd(e[2]/255),n=Math.cbrt(.4122214708*t+.5363325363*o+.0514459929*i),s=Math.cbrt(.2119034982*t+.6806995451*o+.1073969566*i),r=Math.cbrt(.0883024619*t+.2817188376*o+.6299787005*i);return[100*(.2104542553*n+.793617785*s-.0040720468*r),100*(1.9779984951*n-2.428592205*s+.4505937099*r),100*(.0259040371*n+.7827717662*s-.808675766*r)]},hd.rgb.cmyk=function(e){const t=e[0]/255,o=e[1]/255,i=e[2]/255,n=Math.min(1-t,1-o,1-i);return[100*((1-t-n)/(1-n)||0),100*((1-o-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hd.rgb.keyword=function(e){const t=ud[e];if(t)return t;let o,i=Number.POSITIVE_INFINITY;for(const t of Object.keys(dd)){const r=dd[t],a=(s=r,((n=e)[0]-s[0])**2+(n[1]-s[1])**2+(n[2]-s[2])**2);agd?o**(1/3):7.787*o+16/116,i=i>gd?i**(1/3):7.787*i+16/116,n=n>gd?n**(1/3):7.787*n+16/116;return[116*i-16,500*(o-i),200*(i-n)]},hd.hsl.rgb=function(e){const t=e[0]/360,o=e[1]/100,i=e[2]/100;let n,s;if(0===o)return s=255*i,[s,s,s];const r=i<.5?i*(1+o):i+o-i*o,a=2*i-r,l=[0,0,0];for(let e=0;e<3;e++)n=t+1/3*-(e-1),n<0&&n++,n>1&&n--,s=6*n<1?a+6*(r-a)*n:2*n<1?r:3*n<2?a+(r-a)*(2/3-n)*6:a,l[e]=255*s;return l},hd.hsl.hsv=function(e){const t=e[0];let o=e[1]/100,i=e[2]/100,n=o;const s=Math.max(i,.01);i*=2,o*=i<=1?i:2-i,n*=s<=1?s:2-s;return[t,100*(0===i?2*n/(s+n):2*o/(i+o)),100*((i+o)/2)]},hd.hsv.rgb=function(e){const t=e[0]/60,o=e[1]/100;let i=e[2]/100;const n=Math.floor(t)%6,s=t-Math.floor(t),r=255*i*(1-o),a=255*i*(1-o*s),l=255*i*(1-o*(1-s));switch(i*=255,n){case 0:return[i,l,r];case 1:return[a,i,r];case 2:return[r,i,l];case 3:return[r,a,i];case 4:return[l,r,i];case 5:return[i,r,a]}},hd.hsv.hsl=function(e){const t=e[0],o=e[1]/100,i=e[2]/100,n=Math.max(i,.01);let s,r;r=(2-o)*i;const a=(2-o)*n;return s=o*n,s/=a<=1?a:2-a,s=s||0,r/=2,[t,100*s,100*r]},hd.hwb.rgb=function(e){const t=e[0]/360;let o=e[1]/100,i=e[2]/100;const n=o+i;let s;n>1&&(o/=n,i/=n);const r=Math.floor(6*t),a=1-i;s=6*t-r,1&r&&(s=1-s);const l=o+s*(a-o);let c,d,u;switch(r){default:case 6:case 0:c=a,d=l,u=o;break;case 1:c=l,d=a,u=o;break;case 2:c=o,d=a,u=l;break;case 3:c=o,d=l,u=a;break;case 4:c=l,d=o,u=a;break;case 5:c=a,d=o,u=l}return[255*c,255*d,255*u]},hd.cmyk.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=e[3]/100;return[255*(1-Math.min(1,t*(1-n)+n)),255*(1-Math.min(1,o*(1-n)+n)),255*(1-Math.min(1,i*(1-n)+n))]},hd.xyz.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100;let n,s,r;return n=3.2404542*t+-1.5371385*o+-.4985314*i,s=-.969266*t+1.8760108*o+.041556*i,r=.0556434*t+-.2040259*o+1.0572252*i,n=pd(n),s=pd(s),r=pd(r),[255*n,255*s,255*r]},hd.xyz.lab=function(e){let t=e[0],o=e[1],i=e[2];t/=95.047,o/=100,i/=108.883,t=t>gd?t**(1/3):7.787*t+16/116,o=o>gd?o**(1/3):7.787*o+16/116,i=i>gd?i**(1/3):7.787*i+16/116;return[116*o-16,500*(t-o),200*(o-i)]},hd.xyz.oklab=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=Math.cbrt(.8189330101*t+.3618667424*o-.1288597137*i),s=Math.cbrt(.0329845436*t+.9293118715*o+.0361456387*i),r=Math.cbrt(.0482003018*t+.2643662691*o+.633851707*i);return[100*(.2104542553*n+.793617785*s-.0040720468*r),100*(1.9779984951*n-2.428592205*s+.4505937099*r),100*(.0259040371*n+.7827717662*s-.808675766*r)]},hd.oklab.oklch=function(e){return hd.lab.lch(e)},hd.oklab.xyz=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=(.999999998*t+.396337792*o+.215803758*i)**3,s=(1.000000008*t-.105561342*o-.063854175*i)**3,r=(1.000000055*t-.089484182*o-1.291485538*i)**3;return[100*(1.227013851*n-.55779998*s+.281256149*r),100*(-.040580178*n+1.11225687*s-.071676679*r),100*(-.076381285*n-.421481978*s+1.58616322*r)]},hd.oklab.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=(t+.3963377774*o+.2158037573*i)**3,s=(t-.1055613458*o-.0638541728*i)**3,r=(t-.0894841775*o-1.291485548*i)**3;return[255*pd(4.0767416621*n-3.3077115913*s+.2309699292*r),255*pd(-1.2684380046*n+2.6097574011*s-.3413193965*r),255*pd(-.0041960863*n-.7034186147*s+1.707614701*r)]},hd.oklch.oklab=function(e){return hd.lch.lab(e)},hd.lab.xyz=function(e){let t,o,i;o=(e[0]+16)/116,t=e[1]/500+o,i=o-e[2]/200;const n=o**3,s=t**3,r=i**3;return o=n>gd?n:(o-16/116)/7.787,t=s>gd?s:(t-16/116)/7.787,i=r>gd?r:(i-16/116)/7.787,t*=95.047,o*=100,i*=108.883,[t,o,i]},hd.lab.lch=function(e){const t=e[0],o=e[1],i=e[2];let n;n=360*Math.atan2(i,o)/2/Math.PI,n<0&&(n+=360);return[t,Math.sqrt(o*o+i*i),n]},hd.lch.lab=function(e){const t=e[0],o=e[1],i=e[2]/360*2*Math.PI;return[t,o*Math.cos(i),o*Math.sin(i)]},hd.rgb.ansi16=function(e,t=null){const[o,i,n]=e;let s=null===t?hd.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let r=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(o/255));return 2===s&&(r+=60),r},hd.hsv.ansi16=function(e){return hd.rgb.ansi16(hd.hsv.rgb(e),e[2])},hd.rgb.ansi256=function(e){const t=e[0],o=e[1],i=e[2];if(t>>4==o>>4&&o>>4==i>>4)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(o/255*5)+Math.round(i/255*5)},hd.ansi16.rgb=function(e){let t=(e=e[0])%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const o=.5*(Math.trunc(e>50)+1);return[(1&t)*o*255,(t>>1&1)*o*255,(t>>2&1)*o*255]},hd.ansi256.rgb=function(e){if((e=e[0])>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},hd.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".slice(t.length)+t},hd.hex.rgb=function(e){const t=e.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!t)return[0,0,0];let o=t[0];3===t[0].length&&(o=[...o].map((e=>e+e)).join(""));const i=Number.parseInt(o,16);return[i>>16&255,i>>8&255,255&i]},hd.rgb.hcg=function(e){const t=e[0]/255,o=e[1]/255,i=e[2]/255,n=Math.max(Math.max(t,o),i),s=Math.min(Math.min(t,o),i),r=n-s;let a;return a=r<=0?0:n===t?(o-i)/r%6:n===o?2+(i-t)/r:4+(t-o)/r,a/=6,a%=1,[360*a,100*r,100*(r<1?s/(1-r):0)]},hd.hsl.hcg=function(e){const t=e[1]/100,o=e[2]/100,i=o<.5?2*t*o:2*t*(1-o);let n=0;return i<1&&(n=(o-.5*i)/(1-i)),[e[0],100*i,100*n]},hd.hsv.hcg=function(e){const t=e[1]/100,o=e[2]/100,i=t*o;let n=0;return i<1&&(n=(o-i)/(1-i)),[e[0],100*i,100*n]},hd.hcg.rgb=function(e){const t=e[0]/360,o=e[1]/100,i=e[2]/100;if(0===o)return[255*i,255*i,255*i];const n=[0,0,0],s=t%1*6,r=s%1,a=1-r;let l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=r,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=r;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=r,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-o)*i,[255*(o*n[0]+l),255*(o*n[1]+l),255*(o*n[2]+l)]},hd.hcg.hsv=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);let i=0;return o>0&&(i=t/o),[e[0],100*i,100*o]},hd.hcg.hsl=function(e){const t=e[1]/100,o=e[2]/100*(1-t)+.5*t;let i=0;return o>0&&o<.5?i=t/(2*o):o>=.5&&o<1&&(i=t/(2*(1-o))),[e[0],100*i,100*o]},hd.hcg.hwb=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);return[e[0],100*(o-t),100*(1-o)]},hd.hwb.hcg=function(e){const t=e[1]/100,o=1-e[2]/100,i=o-t;let n=0;return i<1&&(n=(o-i)/(1-i)),[e[0],100*i,100*n]},hd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},hd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},hd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},hd.gray.hsl=function(e){return[0,0,e[0]]},hd.gray.hsv=hd.gray.hsl,hd.gray.hwb=function(e){return[0,100,e[0]]},hd.gray.cmyk=function(e){return[0,0,0,e[0]]},hd.gray.lab=function(e){return[e[0],0,0]},hd.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),o=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".slice(o.length)+o},hd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};const _d=function(e){const t=bd(e),o={},i=Object.keys(t);for(let{length:e}=i,n=0;n1&&(t=o),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function Ad(e){const t=function(...t){const o=t[0];if(null==o)return o;o.length>1&&(t=o);const i=e(t);if("object"==typeof i)for(let{length:e}=i,t=0;te>o?o:eMath.round(o*e)/o,Pd=(Math.PI,e=>("#"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?Td(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?Td(parseInt(e.substring(6,8),16)/255,2):1})),Sd=({h:e,s:t,v:o,a:i})=>{const n=(200-t)*o/100;return{h:Td(e),s:Td(n>0&&n<200?t*o/100/(n<=100?n:200-n)*100:0),l:Td(n/2),a:Td(i,2)}},Id=e=>{const{h:t,s:o,l:i}=Sd(e);return`hsl(${t}, ${o}%, ${i}%)`},Rd=({h:e,s:t,v:o,a:i})=>{e=e/360*6,t/=100,o/=100;const n=Math.floor(e),s=o*(1-t),r=o*(1-(e-n)*t),a=o*(1-(1-e+n)*t),l=n%6;return{r:Td(255*[o,r,s,s,a,o][l]),g:Td(255*[a,o,o,r,s,s][l]),b:Td(255*[s,s,a,o,o,r][l]),a:Td(i,2)}},Od=e=>{const t=e.toString(16);return t.length<2?"0"+t:t},Vd=({r:e,g:t,b:o,a:i})=>{const n=i<1?Od(Td(255*i)):"";return"#"+Od(e)+Od(t)+Od(o)+n},Dd=({r:e,g:t,b:o,a:i})=>{const n=Math.max(e,t,o),s=n-Math.min(e,t,o),r=s?n===e?(t-o)/s:n===t?2+(o-e)/s:4+(e-t)/s:0;return{h:Td(60*(r<0?r+6:r)),s:Td(n?s/n*100:0),v:Td(n/255*100),a:i}},Fd=(e,t)=>{if(e===t)return!0;for(const o in e)if(e[o]!==t[o])return!1;return!0},Md={},Nd=e=>{let t=Md[e];return t||(t=document.createElement("template"),t.innerHTML=e,Md[e]=t),t},Bd=(e,t,o)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:o}))};let Ld=!1;const zd=e=>"touches"in e,jd=(e,t)=>{const o=zd(t)?t.touches[0]:t,i=e.el.getBoundingClientRect();Bd(e.el,"move",e.getMove({x:Ed((o.pageX-(i.left+window.pageXOffset))/i.width),y:Ed((o.pageY-(i.top+window.pageYOffset))/i.height)}))};class qd{constructor(e,t,o,i){const n=Nd(`
`);e.appendChild(n.content.cloneNode(!0));const s=e.querySelector(`[part=${t}]`);s.addEventListener("mousedown",this),s.addEventListener("touchstart",this),s.addEventListener("keydown",this),this.el=s,this.xy=i,this.nodes=[s.firstChild,s]}set dragging(e){const t=e?document.addEventListener:document.removeEventListener;t(Ld?"touchmove":"mousemove",this),t(Ld?"touchend":"mouseup",this)}handleEvent(e){switch(e.type){case"mousedown":case"touchstart":if(e.preventDefault(),!(e=>!(Ld&&!zd(e)||(Ld||(Ld=zd(e)),0)))(e)||!Ld&&0!=e.button)return;this.el.focus(),jd(this,e),this.dragging=!0;break;case"mousemove":case"touchmove":e.preventDefault(),jd(this,e);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":((e,t)=>{const o=t.keyCode;o>40||e.xy&&o<37||o<33||(t.preventDefault(),Bd(e.el,"move",e.getMove({x:39===o?.01:37===o?-.01:34===o?.05:33===o?-.05:35===o?1:36===o?-1:0,y:40===o?.01:38===o?-.01:0},!0)))})(this,e)}}style(e){e.forEach(((e,t)=>{for(const o in e)this.nodes[t].style.setProperty(o,e[o])}))}}class $d extends qd{constructor(e){super(e,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:e}){this.h=e,this.style([{left:e/360*100+"%",color:Id({h:e,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${Td(e)}`)}getMove(e,t){return{h:t?Ed(this.h+360*e.x,0,360):360*e.x}}}class Hd extends qd{constructor(e){super(e,"saturation",'aria-label="Color"',!0)}update(e){this.hsva=e,this.style([{top:100-e.v+"%",left:`${e.s}%`,color:Id(e)},{"background-color":Id({h:e.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${Td(e.s)}%, Brightness ${Td(e.v)}%`)}getMove(e,t){return{s:t?Ed(this.hsva.s+100*e.x,0,100):100*e.x,v:t?Ed(this.hsva.v-100*e.y,0,100):Math.round(100-100*e.y)}}}const Wd=Symbol("same"),Ud=Symbol("color"),Kd=Symbol("hsva"),Gd=Symbol("update"),Jd=Symbol("parts"),Zd=Symbol("css"),Qd=Symbol("sliders");class Yd extends HTMLElement{static get observedAttributes(){return["color"]}get[Zd](){return[':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}',"[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}","[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}"]}get[Qd](){return[Hd,$d]}get color(){return this[Ud]}set color(e){if(!this[Wd](e)){const t=this.colorModel.toHsva(e);this[Gd](t),this[Ud]=e}}constructor(){super();const e=Nd(``),t=this.attachShadow({mode:"open"});t.appendChild(e.content.cloneNode(!0)),t.addEventListener("move",this),this[Jd]=this[Qd].map((e=>new e(t)))}connectedCallback(){if(this.hasOwnProperty("color")){const e=this.color;delete this.color,this.color=e}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(e,t,o){const i=this.colorModel.fromAttr(o);this[Wd](i)||(this.color=i)}handleEvent(e){const t=this[Kd],o={...t,...e.detail};let i;this[Gd](o),Fd(o,t)||this[Wd](i=this.colorModel.fromHsva(o))||(this[Ud]=i,Bd(this,"color-changed",{value:i}))}[Wd](e){return this.color&&this.colorModel.equal(e,this.color)}[Gd](e){this[Kd]=e,this[Jd].forEach((t=>t.update(e)))}}const Xd={defaultColor:"#000",toHsva:e=>Dd(Pd(e)),fromHsva:({h:e,s:t,v:o})=>Vd(Rd({h:e,s:t,v:o,a:1})),equal:(e,t)=>e.toLowerCase()===t.toLowerCase()||Fd(Pd(e),Pd(t)),fromAttr:e=>e};class eu extends Yd{get colorModel(){return Xd}}class tu extends eo{_parentElement;constructor(e=[]){super(e,{idProperty:"viewUid"}),this.on("add",((e,t,o)=>{this._renderViewIntoCollectionParent(t,o)})),this.on("remove",((e,t)=>{t.element&&this._parentElement&&t.element.remove()})),this._parentElement=null}destroy(){this.map((e=>e.destroy()))}setParent(e){this._parentElement=e;for(const e of this)this._renderViewIntoCollectionParent(e)}delegate(...e){if(!e.length||!e.every((e=>"string"==typeof e)))throw new fe("ui-viewcollection-delegate-wrong-events",this);return{to:t=>{for(const o of this)for(const i of e)o.delegate(i).to(t);this.on("add",((o,i)=>{for(const o of e)i.delegate(o).to(t)})),this.on("remove",((o,i)=>{for(const o of e)i.stopDelegating(o,t)}))}}}_renderViewIntoCollectionParent(e,t){e.isRendered||e.render(),e.element&&this._parentElement&&this._parentElement.insertBefore(e.element,this._parentElement.children[t])}remove(e){return super.remove(e)}}class ou extends(xe()){ns;tag;text;attributes;children;eventListeners;_isRendered;_revertData;constructor(e){super(),Object.assign(this,mu(hu(e))),this._isRendered=!1,this._revertData=null}render(){const e=this._renderNode({intoFragment:!0});return this._isRendered=!0,e}apply(e){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:e,intoFragment:!1,isApplying:!0,revertData:this._revertData}),e}revert(e){if(!this._revertData)throw new fe("ui-template-revert-not-applied",[this,e]);this._revertTemplateFromNode(e,this._revertData)}*getViews(){yield*function*e(t){if(t.children)for(const o of t.children)yu(o)?yield o:_u(o)&&(yield*e(o))}(this)}static bind(e,t){return{to:(o,i)=>new nu({eventNameOrFunction:o,attribute:o,observable:e,emitter:t,callback:i}),if:(o,i,n)=>new su({observable:e,emitter:t,attribute:o,valueIfTrue:i,callback:n})}}static extend(e,t){if(e._isRendered)throw new fe("template-extend-render",[this,e]);bu(e,mu(hu(t)))}_renderNode(e){let t;if(t=e.node?this.tag&&this.text:this.tag?this.text:!this.text,t)throw new fe("ui-template-wrong-syntax",this);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(""),ru(this.text)?this._bindToObservable({schema:this.text,updater:cu(t),data:e}):t.textContent=this.text.join(""),t}_renderAttributes(e){if(!this.attributes)return;const t=e.node,o=e.revertData;for(const i in this.attributes){const n=t.getAttribute(i),s=this.attributes[i];o&&(o.attributes[i]=n);const r=vu(s)?s[0].ns:null;if(ru(s)){const a=vu(s)?s[0].value:s;o&&Cu(i)&&a.unshift(n),this._bindToObservable({schema:a,updater:du(t,i,r),data:e})}else if("style"==i&&"string"!=typeof s[0])this._renderStyleAttribute(s[0],e);else{o&&n&&Cu(i)&&s.unshift(n);const e=s.map((e=>e&&e.value||e)).reduce(((e,t)=>e.concat(t)),[]).reduce(pu,"");wu(e)||t.setAttributeNS(r,i,e)}}}_renderStyleAttribute(e,t){const o=t.node;for(const i in e){const n=e[i];ru(n)?this._bindToObservable({schema:[n],updater:uu(o,i),data:t}):au(i)?o.style.setProperty(i,n):o.style[i]=n}}_renderElementChildren(e){const t=e.node,o=e.intoFragment?document.createDocumentFragment():t,i=e.isApplying;let n=0;for(const s of this.children)if(ku(s)){if(!i){s.setParent(t);for(const e of s)o.appendChild(e.element)}}else if(yu(s))i||(s.isRendered||s.render(),o.appendChild(s.element));else if(Qe(s))o.appendChild(s);else if(i){const t={children:[],bindings:[],attributes:{}};e.revertData.children.push(t),s._renderNode({intoFragment:!1,node:o.childNodes[n++],isApplying:!0,revertData:t})}else o.appendChild(s.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[i,n]=t.split("@");return o.activateDomEventListener(i,n,e)}));e.revertData&&e.revertData.bindings.push(o)}}_bindToObservable({schema:e,updater:t,data:o}){const i=o.revertData;lu(e,t,o);const n=e.filter((e=>!wu(e))).filter((e=>e.observable)).map((i=>i.activateAttributeListener(e,t,o)));i&&i.bindings.push(n)}_revertTemplateFromNode(e,t){for(const e of t.bindings)for(const t of e)t();if(t.text)return void(e.textContent=t.text);const o=e;for(const e in t.attributes){const i=t.attributes[e];null===i?o.removeAttribute(e):o.setAttribute(e,i)}for(let e=0;elu(e,t,o);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,i),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,i)}}}class nu extends iu{eventNameOrFunction;constructor(e){super(e),this.eventNameOrFunction=e.eventNameOrFunction}activateDomEventListener(e,t,o){const i=(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,i),()=>{this.emitter.stopListening(o.node,e,i)}}}class su extends iu{valueIfTrue;constructor(e){super(e),this.valueIfTrue=e.valueIfTrue}getValue(e){return!wu(super.getValue(e))&&(this.valueIfTrue||!0)}}function ru(e){return!!e&&(e.value&&(e=e.value),Array.isArray(e)?e.some(ru):e instanceof iu)}function au(e){return/^--[a-zA-Z_-][\w-]*$/.test(e)}function lu(e,t,{node:o}){const i=function(e,t){return e.map((e=>e instanceof iu?e.getValue(t):e))}(e,o);let n;n=1==e.length&&e[0]instanceof su?i[0]:i.reduce(pu,""),wu(n)?t.remove():t.set(n)}function cu(e){return{set(t){e.textContent=t},remove(){e.textContent=""}}}function du(e,t,o){return{set(i){e.setAttributeNS(o,t,i)},remove(){e.removeAttributeNS(o,t)}}}function uu(e,t){return{set(o){au(t)?e.style.setProperty(t,o):e.style[t]=o},remove(){au(t)?e.style.removeProperty(t):e.style[t]=null}}}function hu(e){return N(e,(e=>{if(e&&(e instanceof iu||_u(e)||yu(e)||ku(e)))return e}))}function mu(e){if("string"==typeof e?e=function(e){return{text:[e]}}(e):e.text&&function(e){e.text=Qt(e.text)}(e),e.on&&(e.eventListeners=function(e){for(const t in e)gu(e,t);return e}(e.on),delete e.on),!e.text){e.attributes&&function(e){for(const t in e)e[t].value&&(e[t].value=Qt(e[t].value)),gu(e,t)}(e.attributes);const t=[];if(e.children)if(ku(e.children))t.push(e.children);else for(const o of e.children)_u(o)||yu(o)||Qe(o)?t.push(o):t.push(new ou(o));e.children=t}return e}function gu(e,t){e[t]=Qt(e[t])}function pu(e,t){return wu(t)?e:wu(e)?t:`${e} ${t}`}function fu(e,t){for(const o in t)e[o]?e[o].push(...t[o]):e[o]=t[o]}function bu(e,t){if(t.attributes&&(e.attributes||(e.attributes={}),fu(e.attributes,t.attributes)),t.eventListeners&&(e.eventListeners||(e.eventListeners={}),fu(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 fe("ui-template-extend-children-mismatch",e);let o=0;for(const i of t.children)bu(e.children[o++],i)}}function wu(e){return!e&&0!==e}function yu(e){return e instanceof Au}function _u(e){return e instanceof ou}function ku(e){return e instanceof tu}function vu(e){return s(e[0])&&e[0].ns}function Cu(e){return"class"==e||"style"==e}class Au extends(et(Be())){element;isRendered;locale;t;template;_viewCollections;_unboundChildren;_bindTemplate;constructor(e){super(),this.element=null,this.isRendered=!1,this.locale=e,this.t=e&&e.t,this._viewCollections=new eo,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((t,o)=>{o.locale=e,o.t=e&&e.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=ou.bind(this,this)}createCollection(e){const t=new tu(e);return this._viewCollections.add(t),t}registerChild(e){Ue(e)||(e=[e]);for(const t of e)this._unboundChildren.add(t)}deregisterChild(e){Ue(e)||(e=[e]);for(const t of e)this._unboundChildren.remove(t)}setTemplate(e){this.template=new ou(e)}extendTemplate(e){ou.extend(this.template,e)}render(){if(this.isRendered)throw new fe("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((e=>e.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}const xu={POLITE:"polite",ASSERTIVE:"assertive"};class Eu{editor;view;constructor(e){this.editor=e,e.once("ready",(()=>{for(const e of Object.values(xu))this.announce("",e)}))}announce(e,t=xu.POLITE){const o=this.editor;if(!o.ui.view)return;this.view||(this.view=new Tu(o.locale),o.ui.view.body.add(this.view));const{politeness:i,isUnsafeHTML:n}="string"==typeof t?{politeness:t}:t;let s=this.view.regionViews.find((e=>e.politeness===i));s||(s=new Pu(o,i),this.view.regionViews.add(s)),s.announce({announcement:e,isUnsafeHTML:n})}}class Tu extends Au{regionViews;constructor(e){super(e),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class Pu extends Au{politeness;_domConverter;_pruneAnnouncementsInterval;constructor(e,t){super(e.locale),this.setTemplate({tag:"div",attributes:{"aria-live":t,"aria-relevant":"additions"},children:[{tag:"ul",attributes:{class:["ck","ck-aria-live-region-list"]}}]}),e.on("destroy",(()=>{null!==this._pruneAnnouncementsInterval&&(clearInterval(this._pruneAnnouncementsInterval),this._pruneAnnouncementsInterval=null)})),this.politeness=t,this._domConverter=e.data.htmlProcessor.domConverter,this._pruneAnnouncementsInterval=setInterval((()=>{this.element&&this._listElement.firstChild&&this._listElement.firstChild.remove()}),5e3)}announce({announcement:e,isUnsafeHTML:t}){if(!e.trim().length)return;const o=document.createElement("li");t?this._domConverter.setContentOf(o,e):o.innerText=e,this._listElement.appendChild(o)}get _listElement(){return this.element.querySelector("ul")}}function Su({emitter:e,activator:t,callback:o,contextElements:i,listenerOptions:n}){e.listenTo(document,"mousedown",((e,n)=>{if(!t())return;const s="function"==typeof n.composedPath?n.composedPath():[],r="function"==typeof i?i():i;for(const e of r)if(e.contains(n.target)||s.includes(e))return;o()}),n)}function Iu(e){return class extends e{disableCssTransitions(){this._isCssTransitionsDisabled=!0}enableCssTransitions(){this._isCssTransitionsDisabled=!1}constructor(...e){super(...e),this.set("_isCssTransitionsDisabled",!1),this.initializeCssTransitionDisablerMixin()}initializeCssTransitionDisablerMixin(){this.template&&this.extendTemplate({attributes:{class:[this.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}}}function Ru(e){return class extends e{_onDragBound=this._onDrag.bind(this);_onDragEndBound=this._onDragEnd.bind(this);_lastDraggingCoordinates={x:0,y:0};constructor(...e){super(...e),this.on("render",(()=>{this._attachListeners()})),this.set("isDragging",!1)}_attachListeners(){this.listenTo(this.element,"mousedown",this._onDragStart.bind(this)),this.listenTo(this.element,"touchstart",this._onDragStart.bind(this))}_attachDragListeners(){this.listenTo(J.document,"mouseup",this._onDragEndBound),this.listenTo(J.document,"touchend",this._onDragEndBound),this.listenTo(J.document,"mousemove",this._onDragBound),this.listenTo(J.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(J.document,"mouseup",this._onDragEndBound),this.stopListening(J.document,"touchend",this._onDragEndBound),this.stopListening(J.document,"mousemove",this._onDragBound),this.stopListening(J.document,"touchmove",this._onDragBound)}_onDragStart(e,t){if(!this._isHandleElementPressed(t))return;this._attachDragListeners();let o=0,i=0;t instanceof MouseEvent?(o=t.clientX,i=t.clientY):(o=t.touches[0].clientX,i=t.touches[0].clientY),this._lastDraggingCoordinates={x:o,y:i},this.isDragging=!0}_onDrag(e,t){if(!this.isDragging)return void this._detachDragListeners();let o=0,i=0;t instanceof MouseEvent?(o=t.clientX,i=t.clientY):(o=t.touches[0].clientX,i=t.touches[0].clientY),t.preventDefault(),this.fire("drag",{deltaX:Math.round(o-this._lastDraggingCoordinates.x),deltaY:Math.round(i-this._lastDraggingCoordinates.y)}),this._lastDraggingCoordinates={x:o,y:i}}_onDragEnd(){this._detachDragListeners(),this.isDragging=!1}_isHandleElementPressed(e){return!!this.dragHandleElement&&(this.dragHandleElement===e.target||e.target instanceof HTMLElement&&this.dragHandleElement.contains(e.target))}}}function Ou({view:e}){e.listenTo(e.element,"submit",((t,o)=>{o.preventDefault(),e.fire("submit")}),{useCapture:!0})}function Vu({keystrokeHandler:e,focusTracker:t,gridItems:o,numberOfColumns:i,uiLanguageDirection:n}){const s="number"==typeof i?()=>i:i;function r(e){return i=>{const n=o.find((e=>e.element===t.focusedElement)),s=o.getIndex(n),r=e(s,o);o.get(r).focus(),i.stopPropagation(),i.preventDefault()}}function a(e,t){return e===t-1?0:e+1}function l(e,t){return 0===e?t-1:e-1}e.set("arrowright",r(((e,t)=>"rtl"===n?l(e,t.length):a(e,t.length)))),e.set("arrowleft",r(((e,t)=>"rtl"===n?a(e,t.length):l(e,t.length)))),e.set("arrowup",r(((e,t)=>{let o=e-s();return o<0&&(o=e+s()*Math.floor(t.length/s()),o>t.length-1&&(o-=s())),o}))),e.set("arrowdown",r(((e,t)=>{let o=e+s();return o>t.length-1&&(o=e%s()),o})))}class Du extends Au{id;constructor(e){super(e),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${me()}`;const t=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:t.to("for")},children:[{text:t.to("text")}]})}}class Fu extends Au{constructor(e,t){super(e);const o=e.t,i=new Du;i.text=o("Help Contents. To close this dialog press ESC."),this.setTemplate({tag:"div",attributes:{class:["ck","ck-accessibility-help-dialog__content"],"aria-labelledby":i.id,role:"document",tabindex:-1},children:[Ke(document,"p",{},o("Below, you can find a list of keyboard shortcuts that can be used in the editor.")),...this._createCategories(Array.from(t.values())),i]})}focus(){this.element.focus()}_createCategories(e){return e.map((e=>{const t=[Ke(document,"h3",{},e.label),...Array.from(e.groups.values()).map((e=>this._createGroup(e))).flat()];return e.description&&t.splice(1,0,Ke(document,"p",{},e.description)),Ke(document,"section",{},t)}))}_createGroup(e){const t=e.keystrokes.sort(((e,t)=>e.label.localeCompare(t.label))).map((e=>this._createGroupRow(e))).flat(),o=[Ke(document,"dl",{},t)];return e.label&&o.unshift(Ke(document,"h4",{},e.label)),o}_createGroupRow(e){const t=this.locale.t,o=Ke(document,"dt"),i=Ke(document,"dd"),n=function(e){if("string"==typeof e)return[[e]];if("string"==typeof e[0])return[e];return e}(e.keystroke),s=[];for(const e of n)s.push(e.map(Mu).join(""));return o.innerHTML=e.label,i.innerHTML=s.join(", ")+(e.mayRequireFn&&Y.isMac?` ${t("(may require Fn)")}`:""),[o,i]}}function Mu(e){return Ut(e).split("+").map((e=>`${e}`)).join("+")}class Nu extends Au{static presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];constructor(){super();const e=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.set("isVisible",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon",e.if("isVisible","ck-hidden",(e=>!e)),"ck-reset_all-excluded",e.if("isColorInherited","ck-icon_inherit-color")],viewBox:e.to("viewBox"),"aria-hidden":!0}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const e=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg");if(!e)throw new fe("ui-iconview-invalid-svg",this);const t=e.getAttribute("viewBox");t&&(this.viewBox=t);for(const{name:t,value:o}of Array.from(e.attributes))Nu.presentationalAttributeNames.includes(t)&&this.element.setAttribute(t,o);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;e.childNodes.length>0;)this.element.appendChild(e.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((e=>{e.style.fill=this.fillColor}))}}class Bu extends Au{constructor(){super(),this.set({style:void 0,text:void 0,id:void 0});const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:e.to("style"),id:e.to("id")},children:[{text:e.to("text")}]})}}class Lu extends Au{children;labelView;iconView;keystrokeView;_focusDelayed=null;constructor(e,t=new Bu){super(e);const o=this.bindTemplate,i=me();this.set("_ariaPressed",!1),this.set("_ariaChecked",!1),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",`ck-editor__aria-label_${i}`),this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("role",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._setupLabelView(t),this.iconView=new Nu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.iconView.bind("content").to(this,"icon"),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const n={tag:"button",attributes:{class:["ck","ck-button",o.to("class"),o.if("isEnabled","ck-disabled",(e=>!e)),o.if("isVisible","ck-hidden",(e=>!e)),o.to("isOn",(e=>e?"ck-on":"ck-off")),o.if("withText","ck-button_with-text"),o.if("withKeystroke","ck-button_with-keystroke")],role:o.to("role"),type:o.to("type",(e=>e||"button")),tabindex:o.to("tabindex"),"aria-checked":o.to("_ariaChecked"),"aria-pressed":o.to("_ariaPressed"),"aria-label":o.to("ariaLabel"),"aria-labelledby":o.to("ariaLabelledBy"),"aria-disabled":o.if("isEnabled",!0,(e=>!e)),"data-cke-tooltip-text":o.to("_tooltipString"),"data-cke-tooltip-position":o.to("tooltipPosition")},children:this.children,on:{click:o.to((e=>{this.isEnabled?this.fire("execute"):e.preventDefault()}))}};this.bind("_ariaPressed").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||zu(o))&&String(!!e))),this.bind("_ariaChecked").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||!zu(o))&&String(!!e))),Y.isSafari&&(this._focusDelayed||(this._focusDelayed=co((()=>this.focus()),0)),n.on.mousedown=o.to((()=>{this._focusDelayed()})),n.on.mouseup=o.to((()=>{this._focusDelayed.cancel()}))),this.setTemplate(n)}render(){super.render(),this.icon&&this.children.add(this.iconView),this.on("change:icon",((e,t,o,i)=>{o&&!i?this.children.add(this.iconView,0):!o&&i&&this.children.remove(this.iconView)})),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}destroy(){this._focusDelayed&&this._focusDelayed.cancel(),super.destroy()}_setupLabelView(e){return e.bind("text","style","id").to(this,"label","labelStyle","ariaLabelledBy"),e}_createKeystrokeView(){const e=new Au;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(e=>Ut(e)))}]}),e}_getTooltipString(e,t,o){return e?"string"==typeof e?e:(o&&(o=Ut(o)),e instanceof Function?e(t,o):`${t}${o?` (${o})`:""}`):""}}function zu(e){switch(e){case"radio":case"checkbox":case"option":case"switch":case"menuitemcheckbox":case"menuitemradio":return!0;default:return!1}}class ju extends Au{children;iconView;constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("label",t.label||""),this.set("class",t.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",o.to("class")]},children:this.children}),t.icon&&(this.iconView=new Nu,this.iconView.content=t.icon,this.children.add(this.iconView));const i=new Au(e);i.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:o.to("label")}]}),this.children.add(i)}}class qu extends(xe()){focusables;focusTracker;keystrokeHandler;actions;constructor(e){if(super(),this.focusables=e.focusables,this.focusTracker=e.focusTracker,this.keystrokeHandler=e.keystrokeHandler,this.actions=e.actions,e.actions&&e.keystrokeHandler)for(const t in e.actions){let o=e.actions[t];"string"==typeof o&&(o=[o]);for(const i of o)e.keystrokeHandler.set(i,((e,o)=>{this[t](),o()}),e.keystrokeHandlerOptions)}this.on("forwardCycle",(()=>this.focusFirst()),{priority:"low"}),this.on("backwardCycle",(()=>this.focusLast()),{priority:"low"})}get first(){return this.focusables.find($u)||null}get last(){return this.focusables.filter($u).slice(-1)[0]||null}get next(){return this._getDomFocusableItem(1)}get previous(){return this._getDomFocusableItem(-1)}get current(){let e=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((t,o)=>{const i=t.element===this.focusTracker.focusedElement;return i&&(e=o),i})),e)}focusFirst(){this._focus(this.first,1)}focusLast(){this._focus(this.last,-1)}focusNext(){const e=this.next;e&&this.focusables.getIndex(e)===this.current||e===this.first?this.fire("forwardCycle"):this._focus(e,1)}focusPrevious(){const e=this.previous;e&&this.focusables.getIndex(e)===this.current||e===this.last?this.fire("backwardCycle"):this._focus(e,-1)}chain(e){const t=()=>null===this.current?null:this.focusables.get(this.current);this.listenTo(e,"forwardCycle",(e=>{const o=t();this.focusNext(),o!==t()&&e.stop()}),{priority:"low"}),this.listenTo(e,"backwardCycle",(e=>{const o=t();this.focusPrevious(),o!==t()&&e.stop()}),{priority:"low"})}unchain(e){this.stopListening(e)}_focus(e,t){e&&this.focusTracker.focusedElement!==e.element&&e.focus(t)}_getDomFocusableItem(e){const t=this.focusables.length;if(!t)return null;const o=this.current;if(null===o)return this[1===e?"first":"last"];let i=this.focusables.get(o),n=(o+t+e)%t;do{const o=this.focusables.get(n);if($u(o)){i=o;break}n=(n+t+e)%t}while(n!==o);return i}}function $u(e){return Hu(e)&&Ct(e.element)}function Hu(e){return!(!("focus"in e)||"function"!=typeof e.focus)}class Wu extends Au{children;keystrokes;focusCycler;_focusTracker;_focusables;constructor(e){super(e),this.children=this.createCollection(),this.keystrokes=new ro,this._focusTracker=new oo,this._focusables=new tu,this.focusCycler=new qu({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__actions"]},children:this.children})}render(){super.render(),this.keystrokes.listenTo(this.element)}setButtons(e){for(const t of e){const e=new Lu(this.locale);let o;for(o in e.on("execute",(()=>t.onExecute())),t.onCreate&&t.onCreate(e),t)"onExecute"!=o&&"onCreate"!=o&&e.set(o,t[o]);this.children.add(e)}this._updateFocusCyclableItems()}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}_updateFocusCyclableItems(){Array.from(this.children).forEach((e=>{this._focusables.add(e),this._focusTracker.add(e.element)}))}}class Uu extends Au{children;constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__content"]},children:this.children})}reset(){for(;this.children.length;)this.children.remove(0)}}const Ku="screen-center",Gu="editor-center",Ju="editor-top-side",Zu="editor-top-center",Qu="editor-bottom-center",Yu="editor-above-center",Xu="editor-below-center",eh=yt("px");class th extends(Ru(Au)){parts;headerView;closeButtonView;actionsView;static defaultOffset=15;contentView;keystrokes;focusTracker;wasMoved=!1;_getCurrentDomRoot;_getViewportOffset;_focusables;_focusCycler;constructor(e,{getCurrentDomRoot:t,getViewportOffset:o,keystrokeHandlerOptions:i}){super(e);const n=this.bindTemplate,s=e.t;this.set("className",""),this.set("ariaLabel",s("Editor dialog")),this.set("isModal",!1),this.set("position",Ku),this.set("_isVisible",!1),this.set("_isTransparent",!1),this.set("_top",0),this.set("_left",0),this._getCurrentDomRoot=t,this._getViewportOffset=o,this.decorate("moveTo"),this.parts=this.createCollection(),this.keystrokes=new ro,this.focusTracker=new oo,this._focusables=new tu,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"},keystrokeHandlerOptions:i}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog-overlay",n.if("isModal","ck-dialog-overlay__transparent",(e=>!e)),n.if("_isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:[{tag:"div",attributes:{tabindex:"-1",class:["ck","ck-dialog",n.if("isModal","ck-dialog_modal"),n.to("className")],role:"dialog","aria-label":n.to("ariaLabel"),style:{top:n.to("_top",(e=>eh(e))),left:n.to("_left",(e=>eh(e))),visibility:n.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((e,t)=>{e.defaultPrevented||(this.fire("close",{source:"escKeyPress"}),t())})),this.on("drag",((e,{deltaX:t,deltaY:o})=>{this.wasMoved=!0,this.moveBy(t,o)})),this.listenTo(J.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(J.document,"scroll",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.on("change:_isVisible",((e,t,o)=>{o&&(this._isTransparent=!0,setTimeout((()=>{this.updatePosition(),this._isTransparent=!1,this.focus()}),10))})),this.keystrokes.listenTo(this.element)}get dragHandleElement(){return this.headerView&&!this.isModal?this.headerView.element:null}setupParts({icon:e,title:t,hasCloseButton:o=!0,content:i,actionButtons:n}){t&&(this.headerView=new ju(this.locale,{icon:e}),o&&(this.closeButtonView=this._createCloseButton(),this.headerView.children.add(this.closeButtonView)),this.headerView.label=t,this.ariaLabel=t,this.parts.add(this.headerView,0)),i&&(i instanceof Au&&(i=[i]),this.contentView=new Uu(this.locale),this.contentView.children.addMany(i),this.parts.add(this.contentView)),n&&(this.actionsView=new Wu(this.locale),this.actionsView.setButtons(n),this.parts.add(this.actionsView)),this._updateFocusCyclableItems()}focus(){this._focusCycler.focusFirst()}moveTo(e,t){const o=this._getViewportRect(),i=this._getDialogRect();e+i.width>o.right&&(e=o.right-i.width),e{var t;this._focusables.add(e),this.focusTracker.add(e.element),Hu(t=e)&&"focusCycler"in t&&t.focusCycler instanceof qu&&this._focusCycler.chain(e.focusCycler)}))}_createCloseButton(){const e=new Lu(this.locale),t=this.locale.t;return e.set({label:t("Close"),tooltip:!0,icon:$c}),e.on("execute",(()=>this.fire("close",{source:"closeButton"}))),e}}class oh extends fc{view;static _visibleDialogPlugin;_onHide;static get pluginName(){return"Dialog"}static get isOfficialPlugin(){return!0}constructor(e){super(e);const t=e.t;this._initShowHideListeners(),this._initFocusToggler(),this._initMultiRootIntegration(),this.set({id:null,isOpen:!1}),e.accessibility.addKeystrokeInfos({categoryId:"navigation",keystrokes:[{label:t("Move focus in and out of an active dialog window"),keystroke:"Ctrl+F6",mayRequireFn:!0}]})}destroy(){super.destroy(),oh._visibleDialogPlugin===this&&this._unlockBodyScroll()}_initShowHideListeners(){this.on("show",((e,t)=>{this._show(t)})),this.on("show",((e,t)=>{t.onShow&&t.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{oh._visibleDialogPlugin&&oh._visibleDialogPlugin._hide()})),this.on("hide",(()=>{this._onHide&&(this._onHide(this),this._onHide=void 0)}),{priority:"low"})}_initFocusToggler(){const e=this.editor;e.keystrokes.set("Ctrl+F6",((t,o)=>{this.isOpen&&!this.view.isModal&&(this.view.focusTracker.isFocused?e.editing.view.focus():this.view.focus(),o())}))}_initMultiRootIntegration(){const e=this.editor.model;e.document.on("change:data",(()=>{if(!this.view)return;const t=e.document.differ.getChangedRoots();for(const e of t)e.state&&this.view.updatePosition()}))}show(e){this.hide(),this.fire(`show:${e.id}`,e)}_show({id:e,icon:t,title:o,hasCloseButton:i=!0,content:n,actionButtons:s,className:r,isModal:a,position:l,onHide:c,keystrokeHandlerOptions:d}){const u=this.editor;this.view=new th(u.locale,{getCurrentDomRoot:()=>u.editing.view.getDomRoot(u.model.document.selection.anchor.root.rootName),getViewportOffset:()=>u.ui.viewportOffset,keystrokeHandlerOptions:d});const h=this.view;h.on("close",(()=>{this.hide()})),u.ui.view.body.add(h),u.keystrokes.listenTo(h.element),l||(l=a?Ku:Gu),a&&this._lockBodyScroll(),h.set({position:l,_isVisible:!0,className:r,isModal:a}),h.setupParts({icon:t,title:o,hasCloseButton:i,content:n,actionButtons:s}),this.id=e,c&&(this._onHide=c),this.isOpen=!0,oh._visibleDialogPlugin=this}hide(){oh._visibleDialogPlugin&&oh._visibleDialogPlugin.fire(`hide:${oh._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const e=this.editor,t=this.view;t.isModal&&this._unlockBodyScroll(),t.contentView&&t.contentView.reset(),e.ui.view.body.remove(t),e.ui.focusTracker.remove(t.element),e.keystrokes.stopListening(t.element),t.destroy(),e.editing.view.focus(),this.id=null,this.isOpen=!1,oh._visibleDialogPlugin=null}_lockBodyScroll(){document.documentElement.classList.add("ck-dialog-scroll-locked")}_unlockBodyScroll(){document.documentElement.classList.remove("ck-dialog-scroll-locked")}}class ih extends Lu{_checkIconHolderView=new nh;constructor(e,t=new Bu){super(e,t),this.set({hasCheckSpace:!1,_hasCheck:this.isToggleable});const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-list-item-button",o.if("isToggleable","ck-list-item-button_toggleable")]}}),this.bind("_hasCheck").to(this,"hasCheckSpace",this,"isToggleable",((e,t)=>e||t))}render(){super.render(),this._hasCheck&&this.children.add(this._checkIconHolderView,0),this._watchCheckIconHolderMount()}_watchCheckIconHolderMount(){this._checkIconHolderView.bind("isOn").to(this,"isOn",(e=>this.isToggleable&&e)),this.on("change:_hasCheck",((e,t,o)=>{const{children:i,_checkIconHolderView:n}=this;o?i.add(n,0):i.remove(n)}))}}class nh extends Au{children;_checkIconView=this._createCheckIconView();constructor(){super();const e=this.bindTemplate;this.children=this.createCollection(),this.set("isOn",!1),this.setTemplate({tag:"span",children:this.children,attributes:{class:["ck","ck-list-item-button__check-holder",e.to("isOn",(e=>e?"ck-on":"ck-off"))]}})}render(){super.render(),this.isOn&&this.children.add(this._checkIconView,0),this._watchCheckIconMount()}_watchCheckIconMount(){this.on("change:isOn",((e,t,o)=>{const{children:i,_checkIconView:n}=this;o&&!i.has(n)?i.add(n):!o&&i.has(n)&&i.remove(n)}))}_createCheckIconView(){const e=new Nu;return e.content=Hc,e.extendTemplate({attributes:{class:"ck-list-item-button__check-icon"}}),e}}class sh extends ih{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}class rh extends fc{contentView=null;static get requires(){return[oh]}static get pluginName(){return"AccessibilityHelp"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t;e.ui.componentFactory.add("accessibilityHelp",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0,withText:!1,label:t("Accessibility help")}),e})),e.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const e=this._createButton(sh);return e.label=t("Accessibility"),e})),e.keystrokes.set("Alt+0",((e,t)=>{this._toggleDialog(),t()})),this._setupRootLabels()}_createButton(e){const t=this.editor,o=t.plugins.get("Dialog"),i=new e(t.locale);return i.set({keystroke:"Alt+0",icon:zc,isToggleable:!0}),i.on("execute",(()=>this._toggleDialog())),i.bind("isOn").to(o,"id",(e=>"accessibilityHelp"===e)),i}_setupRootLabels(){const e=this.editor,t=e.editing.view,o=e.t;function i(e,t){const i=[t.getAttribute("aria-label"),o("Press %0 for help.",[Ut("Alt+0")])].filter((e=>e)).join(". ");e.setAttribute("aria-label",i,t)}e.ui.on("ready",(()=>{t.change((e=>{for(const o of t.document.roots)i(e,o)})),e.on("addRoot",((o,n)=>{const s=e.editing.view.document.getRoot(n.rootName);t.change((e=>i(e,s)))}),{priority:"low"})}))}_toggleDialog(){const e=this.editor,t=e.plugins.get("Dialog"),o=e.locale.t;this.contentView||(this.contentView=new Fu(e.locale,e.accessibility.keystrokeInfos)),"accessibilityHelp"===t.id?t.hide():t.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:o("Accessibility help"),icon:zc,hasCloseButton:!0,content:this.contentView})}}class ah extends tu{locale;_bodyCollectionContainer;static _bodyWrapper;constructor(e,t=[]){super(t),this.locale=e}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new ou({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection,role:"application"},children:this}).render(),ah._bodyWrapper&&ah._bodyWrapper.isConnected||(ah._bodyWrapper=Ke(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(ah._bodyWrapper)),ah._bodyWrapper.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove(),ah._bodyWrapper&&!ah._bodyWrapper.childElementCount&&(ah._bodyWrapper.remove(),delete ah._bodyWrapper)}}const lh=yt("px"),ch={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class dh extends Au{content;_pinWhenIsVisibleCallback;_resizeObserver;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("class",void 0),this._pinWhenIsVisibleCallback=null,this._resizeObserver=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","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("class")],style:{top:t.to("top",lh),left:t.to("left",lh)}},children:this.content})}destroy(){this.hide(),super.destroy()}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(e){const t=uh(e.target);if(t&&!Ct(t))return!1;this.show();const o=dh.defaultPositions,i=Object.assign({},{element:this.element,positions:[o.southArrowNorth,o.southArrowNorthMiddleWest,o.southArrowNorthMiddleEast,o.southArrowNorthWest,o.southArrowNorthEast,o.northArrowSouth,o.northArrowSouthMiddleWest,o.northArrowSouthMiddleEast,o.northArrowSouthWest,o.northArrowSouthEast,o.viewportStickyNorth],limiter:J.document.body,fitInViewport:!0},e),n=dh._getOptimalPosition(i)||ch,s=parseInt(n.left),r=parseInt(n.top),a=n.name,l=n.config||{},{withArrow:c=!0}=l;return this.top=r,this.left=s,this.position=a,this.withArrow=c,!0}pin(e){this.unpin(),this._startPinning(e)&&(this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(e):this._stopPinning()},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){if(!this.attachTo(e))return!1;let t=uh(e.target);const o=e.limiter?uh(e.limiter):J.document.body;if(this.listenTo(J.document,"scroll",((i,n)=>{const s=n.target,r=t&&s.contains(t),a=o&&s.contains(o);!r&&!a&&t&&o||this.attachTo(e)}),{useCapture:!0}),this.listenTo(J.window,"resize",(()=>{this.attachTo(e)})),!this._resizeObserver&&(t&&at(t)&&(t=t.parentElement),t)){const e=()=>{Ct(t)||this.unpin()};this._resizeObserver=new bt(t,e)}return!0}_stopPinning(){this.stopListening(J.document,"scroll"),this.stopListening(J.window,"resize"),this._resizeObserver&&(this._resizeObserver.destroy(),this._resizeObserver=null)}static generatePositions(e={}){const{sideOffset:t=dh.arrowSideOffset,heightOffset:o=dh.arrowHeightOffset,stickyVerticalOffset:i=dh.stickyVerticalOffset,config:n}=e;return{northWestArrowSouthWest:(e,o)=>({top:s(e,o),left:e.left-t,name:"arrow_sw",...n&&{config:n}}),northWestArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.left-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northWestArrowSouth:(e,t)=>({top:s(e,t),left:e.left-t.width/2,name:"arrow_s",...n&&{config:n}}),northWestArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.left-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northWestArrowSouthEast:(e,o)=>({top:s(e,o),left:e.left-o.width+t,name:"arrow_se",...n&&{config:n}}),northArrowSouthWest:(e,o)=>({top:s(e,o),left:e.left+e.width/2-t,name:"arrow_sw",...n&&{config:n}}),northArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.left+e.width/2-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northArrowSouth:(e,t)=>({top:s(e,t),left:e.left+e.width/2-t.width/2,name:"arrow_s",...n&&{config:n}}),northArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.left+e.width/2-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northArrowSouthEast:(e,o)=>({top:s(e,o),left:e.left+e.width/2-o.width+t,name:"arrow_se",...n&&{config:n}}),northEastArrowSouthWest:(e,o)=>({top:s(e,o),left:e.right-t,name:"arrow_sw",...n&&{config:n}}),northEastArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.right-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northEastArrowSouth:(e,t)=>({top:s(e,t),left:e.right-t.width/2,name:"arrow_s",...n&&{config:n}}),northEastArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.right-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northEastArrowSouthEast:(e,o)=>({top:s(e,o),left:e.right-o.width+t,name:"arrow_se",...n&&{config:n}}),southWestArrowNorthWest:e=>({top:r(e),left:e.left-t,name:"arrow_nw",...n&&{config:n}}),southWestArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.left-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southWestArrowNorth:(e,t)=>({top:r(e),left:e.left-t.width/2,name:"arrow_n",...n&&{config:n}}),southWestArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.left-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southWestArrowNorthEast:(e,o)=>({top:r(e),left:e.left-o.width+t,name:"arrow_ne",...n&&{config:n}}),southArrowNorthWest:e=>({top:r(e),left:e.left+e.width/2-t,name:"arrow_nw",...n&&{config:n}}),southArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.left+e.width/2-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southArrowNorth:(e,t)=>({top:r(e),left:e.left+e.width/2-t.width/2,name:"arrow_n",...n&&{config:n}}),southArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.left+e.width/2-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southArrowNorthEast:(e,o)=>({top:r(e),left:e.left+e.width/2-o.width+t,name:"arrow_ne",...n&&{config:n}}),southEastArrowNorthWest:e=>({top:r(e),left:e.right-t,name:"arrow_nw",...n&&{config:n}}),southEastArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.right-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southEastArrowNorth:(e,t)=>({top:r(e),left:e.right-t.width/2,name:"arrow_n",...n&&{config:n}}),southEastArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.right-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southEastArrowNorthEast:(e,o)=>({top:r(e),left:e.right-o.width+t,name:"arrow_ne",...n&&{config:n}}),westArrowEast:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.left-t.width-o,name:"arrow_e",...n&&{config:n}}),eastArrowWest:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.right+o,name:"arrow_w",...n&&{config:n}}),viewportStickyNorth:(e,t,o)=>{const s=new ut(J.document.body).getIntersection(o.getVisible());if(!s)return null;const r=s.getVisible();return e.getIntersection(r)&&r.top-e.top-ithis._showBalloon()),50,{leading:!0});_lastFocusedEditableElement=null;_balloonClass;constructor(e,t={}){super(),this.editor=e,this._balloonClass=t.balloonClass,e.on("ready",(()=>this._handleEditorReady()))}destroy(){const e=this._balloonView;e&&(e.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const e=this.editor;this._isEnabled()&&e.ui.view&&(e.ui.focusTracker.on("change:isFocused",((e,t,o)=>{this._updateLastFocusedEditableElement(),o?this._showBalloon():this._hideBalloon()})),e.ui.focusTracker.on("change:focusedElement",((e,t,o)=>{this._updateLastFocusedEditableElement(),o&&this._showBalloon()})),e.ui.on("update",(()=>{this._showBalloonThrottled()})))}_getNormalizedConfig(){return{side:"ltr"===this.editor.locale.contentLanguageDirection?"right":"left",position:"border",verticalOffset:0,horizontalOffset:5}}_showBalloon(){const e=this._getBalloonAttachOptions();e&&(this._balloonView||(this._balloonView=this._createBalloonView()),this._balloonView.pin(e))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_createBalloonView(){const e=this.editor,t=new dh,o=this._createBadgeContent();return t.content.add(o),this._balloonClass&&(t.class=this._balloonClass),e.ui.view.body.add(t),t}_getBalloonAttachOptions(){if(!this._lastFocusedEditableElement)return null;const e=this._getNormalizedConfig(),t="right"===e.side?function(e,t){return mh(e,t,((e,o)=>e.left+e.width-o.width-t.horizontalOffset))}(this._lastFocusedEditableElement,e):function(e,t){return mh(e,t,(e=>e.left+t.horizontalOffset))}(this._lastFocusedEditableElement,e);return{target:this._lastFocusedEditableElement,positions:[t]}}_updateLastFocusedEditableElement(){const e=this.editor,t=e.ui.focusTracker.isFocused,o=e.ui.focusTracker.focusedElement;if(!t||!o)return void(this._lastFocusedEditableElement=null);const i=Array.from(e.ui.getEditableElementsNames()).map((t=>e.ui.getEditableElement(t)));i.includes(o)?this._lastFocusedEditableElement=o:this._lastFocusedEditableElement=i[0]}}function mh(e,t,o){return(i,n)=>{const s=new ut(e);if(s.width<350||s.height<50)return null;let r;r="inside"===t.position?s.bottom-n.height:s.bottom-n.height/2,r-=t.verticalOffset;const a=o(s,n),l=i.clone().moveTo(a,r).getIntersection(n.clone().moveTo(a,r)).getVisible();return!l||l.getArea()\n',isColorInherited:!1}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/powered-by-ckeditor/?utm_source=ckeditor&utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo",target:"_blank",tabindex:"-1"},children:[...t?[{tag:"span",attributes:{class:["ck","ck-powered-by__label"]},children:[t]}]:[],o],on:{dragstart:i.to((e=>e.preventDefault()))}}]})}}class fh extends Lu{toggleSwitchView;constructor(e){super(e),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const e=new Au;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),e}}class bh extends(yh(Lu)){}class wh extends(yh(ih)){}function yh(e){return class extends e{_fileInputView;constructor(...e){super(...e),this._fileInputView=new _h(this.locale),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.on("execute",(()=>{this._fileInputView.open()})),this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render(),this.children.add(this._fileInputView)}}}class _h extends Au{constructor(e){super(e),this.set("acceptedType",void 0),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?.files?.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}class kh extends Au{buttonView;children;constructor(e,t){super(e);const o=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid",void 0),t&&this.children.addMany(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",o.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:o.if("isCollapsed","hidden"),"aria-labelledby":o.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}focus(){this.buttonView.focus()}_createButtonView(){const e=new Lu(this.locale),t=e.bindTemplate;return e.set({withText:!0,icon:Uc}),e.extendTemplate({attributes:{"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("label").to(this),e.bind("isOn").to(this,"isCollapsed",(e=>!e)),e.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),e}}function vh(e,t){const o=e.t,i={Black:o("Black"),"Dim grey":o("Dim grey"),Grey:o("Grey"),"Light grey":o("Light grey"),White:o("White"),Red:o("Red"),Orange:o("Orange"),Yellow:o("Yellow"),"Light green":o("Light green"),Green:o("Green"),Aquamarine:o("Aquamarine"),Turquoise:o("Turquoise"),"Light blue":o("Light blue"),Blue:o("Blue"),Purple:o("Purple")};return t.map((e=>{const t=i[e.label];return t&&t!=e.label&&(e.label=t),e}))}function Ch(e){return e.map(Ah).filter((e=>!!e))}function Ah(e){return"string"==typeof e?{model:e,label:e,hasBorder:!1,view:{name:"span",styles:{color:e}}}:{model:e.color,label:e.label||e.color,hasBorder:void 0!==e.hasBorder&&e.hasBorder,view:{name:"span",styles:{color:`${e.color}`}}}}class xh extends Lu{constructor(e){super(e);const t=this.bindTemplate;this.set("color",void 0),this.set("hasBorder",!1),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:t.to("color",(e=>Y.isMediaForcedColors?null:e))},class:["ck","ck-color-grid__tile",t.if("hasBorder","ck-color-selector__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}class Eh extends Au{columns;items;focusTracker;keystrokes;constructor(e,t){super(e);const o=t&&t.colorDefinitions?t.colorDefinitions:[];this.columns=t?.columns||5;const i={gridTemplateColumns:`repeat( ${this.columns}, 1fr)`};this.set("selectedColor",void 0),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this.items.on("add",((e,t)=>{t.isOn=t.color===this.selectedColor})),o.forEach((e=>{const t=new xh;t.set({color:e.color,label:e.label,tooltip:!0,hasBorder:e.options.hasBorder}),t.on("execute",(()=>{this.fire("execute",{value:e.color,hasBorder:e.options.hasBorder,label:e.label})})),this.items.add(t)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:i}}),this.on("change:selectedColor",((e,t,o)=>{for(const e of this.items)e.isOn=e.color===o}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}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),Vu({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:this.columns,uiLanguageDirection:this.locale?.uiLanguageDirection})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}function Th(e,t){if(!e)return"";const o=Ph(e);if(!o)return"";if(o.space===t)return e;if(i=o,!Object.keys(xd).includes(i.space))return"";var i;const n=xd[o.space][t];if(!n)return"";return function(e,t){switch(t){case"hex":return`#${e}`;case"rgb":return`rgb(${e[0]}, ${e[1]}, ${e[2]})`;case"hsl":return`hsl(${e[0]}, ${e[1]}%, ${e[2]}%)`;case"hwb":return`hwb(${e[0]}, ${e[1]}, ${e[2]})`;case"lab":return`lab(${e[0]}% ${e[1]} ${e[2]})`;case"lch":return`lch(${e[0]}% ${e[1]} ${e[2]})`;default:return""}}(n("hex"===o.space?o.hexValue:o.values),t)}function Ph(e){if(e.startsWith("#")){const t=ad(e);return{space:"hex",values:t.values,hexValue:e,alpha:t.alpha}}const t=ad(e);return t.space?t:null}class Sh extends Au{fieldView;labelView;statusView;fieldWrapperChildren;constructor(e,t){super(e);const o=`ck-labeled-field-view-${me()}`,i=`ck-labeled-field-view-status-${me()}`;this.fieldView=t(this,o,i),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(o),this.statusView=this._createStatusView(i),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((e,t)=>e||t));const n=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",n.to("class"),n.if("isEnabled","ck-disabled",(e=>!e)),n.if("isEmpty","ck-labeled-field-view_empty"),n.if("isFocused","ck-labeled-field-view_focused"),n.if("placeholder","ck-labeled-field-view_placeholder"),n.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(e){const t=new Du(this.locale);return t.for=e,t.bind("text").to(this,"label"),t}_createStatusView(e){const t=new Au(this.locale),o=this.bindTemplate;return t.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",o.if("errorText","ck-labeled-field-view__status_error"),o.if("_statusText","ck-hidden",(e=>!e))],id:e,role:o.if("errorText","alert")},children:[{text:o.to("_statusText")}]}),t}focus(e){this.fieldView.focus(e)}}class Ih extends Au{focusTracker;constructor(e){super(e),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("tabIndex",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.set("ariaLabel",void 0),this.focusTracker=new oo,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const t=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",t.if("isFocused","ck-input_focused"),t.if("isEmpty","ck-input-text_empty"),t.if("hasError","ck-error")],id:t.to("id"),placeholder:t.to("placeholder"),tabindex:t.to("tabIndex"),readonly:t.to("isReadOnly"),"aria-invalid":t.if("hasError",!0),"aria-describedby":t.to("ariaDescribedById"),"aria-label":t.to("ariaLabel")},on:{input:t.to(((...e)=>{this.fire("input",...e),this._updateIsEmpty()})),change:t.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((e,t,o)=>{this._setDomElementValue(o),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}reset(){this.value=this.element.value="",this._updateIsEmpty()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(e){this.element.value=e||0===e?e:""}}class Rh extends Ih{constructor(e){super(e),this.set("inputMode","text");const t=this.bindTemplate;this.extendTemplate({attributes:{inputmode:t.to("inputMode")}})}}class Oh extends Rh{constructor(e){super(e),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class Vh extends Rh{constructor(e,{min:t,max:o,step:i}={}){super(e);const n=this.bindTemplate;this.set("min",t),this.set("max",o),this.set("step",i),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:n.to("min"),max:n.to("max"),step:n.to("step")}})}}class Dh extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",t.to("position",(e=>`ck-dropdown__panel_${e}`)),t.if("isVisible","ck-dropdown__panel-visible")],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{const t=e.target;t instanceof Element&&"input"===t.tagName.toLocaleLowerCase()||e.preventDefault()}))}})}focus(){if(this.children.length){const e=this.children.first;"function"==typeof e.focus?e.focus():be("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const e=this.children.last;"function"==typeof e.focusLast?e.focusLast():e.focus()}}}class Fh extends Au{buttonView;panelView;focusTracker;keystrokes;listView;toolbarView;menuView;constructor(e,t,o){super(e);const i=this.bindTemplate;this.buttonView=t,this.panelView=o,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ro,this.focusTracker=new oo,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",i.to("class"),i.if("isEnabled","ck-disabled",(e=>!e))],id:i.to("id"),"aria-describedby":i.to("ariaDescribedById")},children:[t,o]}),t.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":i.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.on("change:isOpen",((e,t,o)=>{if(o)if("auto"===this.panelPosition){const e=Fh._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=e?e.name:this._defaultPanelPositionName}else this.panelView.position=this.panelPosition})),this.keystrokes.listenTo(this.element);const e=(e,t)=>{this.isOpen&&(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()}get _panelPositions(){const{south:e,north:t,southEast:o,southWest:i,northEast:n,northWest:s,southMiddleEast:r,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=Fh.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[o,i,r,a,e,n,s,l,c,t]:[i,o,a,r,e,s,n,c,l,t]}get _defaultPanelPositionName(){return"rtl"===this.locale.uiLanguageDirection?"sw":"se"}static defaultPanelPositions={south:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/2,name:"s"}),southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),southMiddleEast:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/4,name:"sme"}),southMiddleWest:(e,t)=>({top:e.bottom,left:e.left-3*(t.width-e.width)/4,name:"smw"}),north:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/2,name:"n"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),northMiddleEast:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/4,name:"nme"}),northMiddleWest:(e,t)=>({top:e.top-t.height,left:e.left-3*(t.width-e.width)/4,name:"nmw"})};static _getOptimalPosition=At}class Mh extends Lu{arrowView;constructor(e){super(e),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Uc,e.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),e}}class Nh extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",t.if("isVisible","ck-hidden",(e=>!e))],role:"presentation"},children:this.children})}focus(){this.children.first&&this.children.first.focus()}}class Bh extends Au{constructor(e){super(e),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class Lh extends Au{labelView;items;children;constructor(e,t=new Du){super(e);const o=this.bindTemplate,i=new zh(e);this.set({label:"",isVisible:!0}),this.labelView=t,this.labelView.bind("text").to(this,"label"),this.children=this.createCollection(),this.children.addMany([this.labelView,i]),i.set({role:"group",ariaLabelledBy:t.id}),i.focusTracker.destroy(),i.keystrokes.destroy(),this.items=i.items,this.setTemplate({tag:"li",attributes:{role:"presentation",class:["ck","ck-list__group",o.if("isVisible","ck-hidden",(e=>!e))]},children:this.children})}focus(){if(this.items){const e=this.items.find((e=>!(e instanceof Bh)));e&&e.focus()}}}class zh extends Au{focusables;items;focusTracker;keystrokes;_focusCycler;_listItemGroupToChangeListeners=new WeakMap;constructor(e){super(e);const t=this.bindTemplate;this.focusables=new tu,this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this._focusCycler=new qu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",void 0),this.set("role",void 0),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"],role:t.to("role"),"aria-label":t.to("ariaLabel"),"aria-labelledby":t.to("ariaLabelledBy")},children:this.items})}render(){super.render();for(const e of this.items)e instanceof Lh?this._registerFocusableItemsGroup(e):e instanceof Nh&&this._registerFocusableListItem(e);this.items.on("change",((e,t)=>{for(const e of t.removed)e instanceof Lh?this._deregisterFocusableItemsGroup(e):e instanceof Nh&&this._deregisterFocusableListItem(e);for(const e of Array.from(t.added).reverse())e instanceof Lh?this._registerFocusableItemsGroup(e,t.index):this._registerFocusableListItem(e,t.index)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_registerFocusableListItem(e,t){this.focusTracker.add(e.element),this.focusables.add(e,t)}_deregisterFocusableListItem(e){this.focusTracker.remove(e.element),this.focusables.remove(e)}_getOnGroupItemsChangeCallback(e){return(t,o)=>{for(const e of o.removed)this._deregisterFocusableListItem(e);for(const t of Array.from(o.added).reverse())this._registerFocusableListItem(t,this.items.getIndex(e)+o.index)}}_registerFocusableItemsGroup(e,t){Array.from(e.items).forEach(((e,o)=>{const i=void 0!==t?t+o:void 0;this._registerFocusableListItem(e,i)}));const o=this._getOnGroupItemsChangeCallback(e);this._listItemGroupToChangeListeners.set(e,o),e.items.on("change",o)}_deregisterFocusableItemsGroup(e){for(const t of e.items)this._deregisterFocusableListItem(t);e.items.off("change",this._listItemGroupToChangeListeners.get(e)),this._listItemGroupToChangeListeners.delete(e)}}class jh extends Au{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class qh extends Au{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function $h(e){if(Array.isArray(e))return{items:e,removeItems:[]};const t={items:[],removeItems:[]};return e?{...t,...e}:t}const Hh=(()=>({alignLeft:jc,bold:qc,importExport:'',paragraph:'',plus:'',text:'',threeVerticalDots:id,pilcrow:'',dragIndicator:''}))();class Wh extends Au{options;items;focusTracker;keystrokes;itemsView;children;focusables;_focusCycler;_behavior;constructor(e,t){super(e);const o=this.bindTemplate,i=this.t;this.options=t||{},this.set("ariaLabel",i("Editor toolbar")),this.set("maxWidth","auto"),this.set("role","toolbar"),this.set("isGrouping",!!this.options.shouldGroupWhenFull),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this.set("class",void 0),this.set("isCompact",!1),this.set("isVertical",!1),this.itemsView=new Uh(e),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const n="rtl"===e.uiLanguageDirection;this._focusCycler=new qu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[n?"arrowright":"arrowleft","arrowup"],focusNext:[n?"arrowleft":"arrowright","arrowdown"]}});const s=["ck","ck-toolbar",o.to("class"),o.if("isCompact","ck-toolbar_compact"),o.if("isGrouping","ck-toolbar_grouping"),o.if("isVertical","ck-toolbar_vertical")];var r;this.options.shouldGroupWhenFull&&this.options.isFloating&&s.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:s,role:o.to("role"),"aria-label":o.to("ariaLabel"),style:{maxWidth:o.to("maxWidth")},tabindex:-1},children:this.children,on:{mousedown:(r=this,r.bindTemplate.to((e=>{e.target===r.element&&e.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new Gh(this):new Kh(this)}render(){super.render(),this.focusTracker.add(this.element);for(const e of this.items)this.focusTracker.add(e);this.items.on("add",((e,t)=>{this.focusTracker.add(t)})),this.items.on("remove",((e,t)=>{this.focusTracker.remove(t)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(e,t,o){this.items.addMany(this._buildItemsFromConfig(e,t,o))}switchBehavior(e){this._behavior.type!==e&&(this._behavior.destroy(),this.itemsView.children.clear(),this.focusables.clear(),"dynamic"===e?(this._behavior=new Gh(this),this._behavior.render(this),this._behavior.refreshItems()):(this._behavior=new Kh(this),this._behavior.render(this)))}_buildItemsFromConfig(e,t,o){const i=$h(e),n=o||i.removeItems;return this._cleanItemsConfiguration(i.items,t,n).map((e=>s(e)?this._createNestedToolbarDropdown(e,t,n):"|"===e?new jh:"-"===e?new qh:t.create(e))).filter((e=>!!e))}_cleanItemsConfiguration(e,t,o){const i=e.filter(((e,i,n)=>"|"===e||-1===o.indexOf(e)&&("-"===e?!this.options.shouldGroupWhenFull||(be("toolbarview-line-break-ignored-when-grouping-items",n),!1):!(!s(e)&&!t.has(e))||(be("toolbarview-item-unavailable",{item:e}),!1))));return this._cleanSeparatorsAndLineBreaks(i)}_cleanSeparatorsAndLineBreaks(e){const t=e=>"-"!==e&&"|"!==e,o=e.length,i=e.findIndex(t);if(-1===i)return[];const n=o-e.slice().reverse().findIndex(t);return e.slice(i,n).filter(((e,o,i)=>{if(t(e))return!0;return!(o>0&&i[o-1]===e)}))}_createNestedToolbarDropdown(e,t,o){let{label:i,icon:n,items:s,tooltip:r=!0,withText:a=!1}=e;if(s=this._cleanItemsConfiguration(s,t,o),!s.length)return null;const l=Zh(this.locale);return i||be("toolbarview-nested-toolbar-dropdown-missing-label",e),l.class="ck-toolbar__nested-toolbar-dropdown",l.buttonView.set({label:i,tooltip:r,withText:!!a}),!1!==n?l.buttonView.icon=Hh[n]||n||id:l.buttonView.withText=!0,Qh(l,(()=>l.toolbarView._buildItemsFromConfig(s,t,o))),l}}class Uh extends Au{children;constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class Kh{type="static";constructor(e){e.isGrouping=!1,e.itemsView.children.bindTo(e.items).using((e=>e)),e.focusables.bindTo(e.items).using((e=>Hu(e)?e:null))}render(){}destroy(){}}class Gh{type="dynamic";view;viewChildren;viewFocusables;viewItemsView;viewFocusTracker;viewLocale;ungroupedItems;groupedItems;groupedItemsDropdown;resizeObserver=null;cachedPadding=null;shouldUpdateGroupingOnNextResize=!1;viewElement;constructor(e){this.view=e,this.viewChildren=e.children,this.viewFocusables=e.focusables,this.viewItemsView=e.itemsView,this.viewFocusTracker=e.focusTracker,this.viewLocale=e.locale,this.view.isGrouping=!0,this.ungroupedItems=e.createCollection(),this.groupedItems=e.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),e.itemsView.children.bindTo(this.ungroupedItems).using((e=>e)),this.ungroupedItems.on("change",this._updateFocusCyclableItems.bind(this)),e.children.on("change",this._updateFocusCyclableItems.bind(this)),e.items.on("change",((e,t)=>{const o=t.index,i=Array.from(t.added);for(const e of t.removed)o>=this.ungroupedItems.length?this.groupedItems.remove(e):this.ungroupedItems.remove(e);for(let e=o;ethis.ungroupedItems.length?this.groupedItems.add(t,e-this.ungroupedItems.length):this.ungroupedItems.add(t,e)}this._updateGrouping()}))}render(e){this.viewElement=e.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(e)}destroy(){this.groupedItemsDropdown.destroy(),this.viewChildren.length>1&&(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last)),this.resizeObserver.destroy()}refreshItems(){const e=this.view;if(e.items.length){for(let t=0;ti.right-this.cachedPadding:o.left{e&&e===t.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),e=t.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(e){e.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new jh),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const e=this.viewLocale,t=e.t,o=Zh(e);return o.class="ck-toolbar__grouped-dropdown",o.panelPosition="ltr"===e.uiLanguageDirection?"sw":"se",Qh(o,this.groupedItems),o.buttonView.set({label:t("Show more items"),tooltip:!0,tooltipPosition:"rtl"===e.uiLanguageDirection?"se":"sw",icon:id}),o}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((e=>{Hu(e)&&this.viewFocusables.add(e)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}class Jh extends Au{children;actionView;arrowView;keystrokes;focusTracker;constructor(e,t){super(e);const o=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(t),this.arrowView=this._createArrowView(),this.keystrokes=new ro,this.focusTracker=new oo,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",o.to("class"),o.if("isVisible","ck-hidden",(e=>!e)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((e,t)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),t())})),this.keystrokes.set("arrowleft",((e,t)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),t())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(e){const t=e||new Lu;return e||t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const e=new Lu,t=e.bindTemplate;return e.icon=Uc,e.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":t.to("isOn"),"aria-haspopup":!0,"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("isEnabled").to(this),e.bind("label").to(this),e.bind("tooltip").to(this),e.delegate("execute").to(this,"open"),e}}function Zh(e,t=Mh){const o="function"==typeof t?new t(e):t,i=new Dh(e),n=new Fh(e,o,i);return o.bind("isEnabled").to(n),o instanceof Jh?o.arrowView.bind("isOn").to(n,"isOpen"):o.bind("isOn").to(n,"isOpen"),function(e){(function(e){Su({emitter:e,activator:()=>e.isRendered&&e.isOpen,callback:()=>{e.isOpen=!1},contextElements:()=>[e.element,...om(e.focusTracker).filter((t=>!e.element.contains(t)))]})})(e),function(e){e.on("execute",(t=>{t.source instanceof fh||(e.isOpen=!1)}))}(e),function(e){e.focusTracker.on("change:isFocused",((t,o,i)=>{!i&&e.isOpen&&(e.isOpen=!1)}))}(e),function(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isOpen&&(e.panelView.focus(),o())})),e.keystrokes.set("arrowup",((t,o)=>{e.isOpen&&(e.panelView.focusLast(),o())}))}(e),function(e){e.on("change:isOpen",((t,o,i)=>{if(i)return;e.focusTracker.elements.some((e=>e.contains(J.document.activeElement)))&&e.buttonView.focus()}))}(e),function(e){e.on("change:isOpen",((t,o,i)=>{i&&e.panelView.focus()}),{priority:"low"})}(e)}(n),n}function Qh(e,t,o={}){e.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.isOpen?Yh(e,t,o):e.once("change:isOpen",(()=>Yh(e,t,o)),{priority:"highest"}),o.enableActiveItemFocusOnDropdownOpen&&tm(e,(()=>e.toolbarView.items.find((e=>e.isOn))))}function Yh(e,t,o){const i=e.locale,n=i.t,s=e.toolbarView=new Wh(i),r="function"==typeof t?t():t;s.ariaLabel=o.ariaLabel||n("Dropdown toolbar"),o.maxWidth&&(s.maxWidth=o.maxWidth),o.class&&(s.class=o.class),o.isCompact&&(s.isCompact=o.isCompact),o.isVertical&&(s.isVertical=!0),r instanceof tu?s.items.bindTo(r).using((e=>e)):s.items.addMany(r),e.panelView.children.add(s),e.focusTracker.add(s),s.items.delegate("execute").to(e)}function Xh(e,t,o={}){e.isOpen?em(e,t,o):e.once("change:isOpen",(()=>em(e,t,o)),{priority:"highest"}),tm(e,(()=>e.listView.items.find((e=>e instanceof Nh&&e.children.first.isOn))))}function em(e,t,o){const i=e.locale,n=e.listView=new zh(i),s="function"==typeof t?t():t;n.ariaLabel=o.ariaLabel,n.role=o.role,im(e,n.items,s,i),e.panelView.children.add(n),n.items.delegate("execute").to(e)}function tm(e,t){e.on("change:isOpen",(()=>{if(!e.isOpen)return;const o=t();o&&("function"==typeof o.focus?o.focus():be("ui-dropdown-focus-child-on-open-child-missing-focus",{view:o}))}),{priority:ge.low-10})}function om(e){return[...e.elements,...e.externalViews.flatMap((e=>om(e.focusTracker)))]}function im(e,t,o,i){!function(e){let t=0;const o=e=>e instanceof Nh&&e.children.first instanceof ih?e.children.first:null,i=e=>{const t=o(e);return t&&t.isToggleable?t:null},n=t=>{for(const i of e){const e=o(i);e&&(e.hasCheckSpace=t)}};e.on("change",((e,s)=>{const r=t>0;for(const e of s.removed)i(e)&&t--;for(const e of s.added){const i=o(e);i&&(i.isToggleable&&t++,i.hasCheckSpace=t>0)}const a=t>0;r!==a&&n(a)}))}(t),t.bindTo(o).using((t=>{if("separator"===t.type)return new Bh(i);if("group"===t.type){const o=new Lh(i);return o.set({label:t.label}),im(e,o.items,t.items,i),o.items.delegate("execute").to(e),o}if("button"===t.type||"switchbutton"===t.type){const e="menuitemcheckbox"===t.model.role||"menuitemradio"===t.model.role,o=new Nh(i);let n;return"button"===t.type?(n=new ih(i,t.labelView),n.set({isToggleable:e})):n=new fh(i),n.bind(...Object.keys(t.model)).to(t.model),n.delegate("execute").to(o),o.children.add(n),o}return null}))}const nm=(e,t,o)=>{const i=new Oh(e.locale);return i.set({id:t,ariaDescribedById:o}),i.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),i.bind("hasError").to(e,"errorText",(e=>!!e)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(i),i},sm=(e,t,o)=>{const i=new Vh(e.locale);return i.set({id:t,ariaDescribedById:o,inputMode:"numeric"}),i.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),i.bind("hasError").to(e,"errorText",(e=>!!e)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(i),i},rm=(e,t,o)=>{const i=Zh(e.locale);return i.set({id:t,ariaDescribedById:o}),i.bind("isEnabled").to(e),i};class am extends Au{hexInputRow;_debounceColorPickerEvent;_config;constructor(e,t={}){super(e),this.set({color:"",_hexColor:""}),this.hexInputRow=this._createInputRow();const o=this.createCollection();t.hideInput||o.add(this.hexInputRow),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker"],tabindex:-1},children:o}),this._config=t,this._debounceColorPickerEvent=zo((e=>{this.set("color",e),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((e,t,o)=>{e.return=Th(o,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=lm(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),lm(this.color)!=lm(this._hexColor)&&(this.color=this._hexColor)}))}render(){var e,t;if(super.render(),e="hex-color-picker",t=eu,void 0===customElements.get(e)&&customElements.define(e,t),this.picker=J.document.createElement("hex-color-picker"),this.picker.setAttribute("class","hex-color-picker"),this.picker.setAttribute("tabindex","-1"),this._createSlidersView(),this.element){this.hexInputRow.element?this.element.insertBefore(this.picker,this.hexInputRow.element):this.element.appendChild(this.picker);const e=document.createElement("style");e.textContent='[role="slider"]:focus [part$="pointer"] {border: 1px solid #fff;outline: 1px solid var(--ck-color-focus-border);box-shadow: 0 0 0 2px #fff;}',this.picker.shadowRoot.appendChild(e)}this.picker.addEventListener("color-changed",(e=>{const t=e.detail.value;this._debounceColorPickerEvent(t)}))}focus(){if(!this._config.hideInput&&(Y.isGecko||Y.isiOS||Y.isSafari||Y.isBlink)){this.hexInputRow.children.get(1).focus()}this.slidersView.first.focus()}_createSlidersView(){const e=[...this.picker.shadowRoot.children].filter((e=>"slider"===e.getAttribute("role"))).map((e=>new cm(e)));this.slidersView=this.createCollection(),e.forEach((e=>{this.slidersView.add(e)}))}_createInputRow(){const e=this._createColorInput();return new um(this.locale,e)}_createColorInput(){const e=new Sh(this.locale,nm),{t}=this.locale;return e.set({label:t("HEX"),class:"color-picker-hex-input"}),e.fieldView.bind("value").to(this,"_hexColor",(t=>e.isFocused?e.fieldView.value:t.startsWith("#")?t.substring(1):t)),e.fieldView.on("input",(()=>{const t=e.fieldView.element.value;if(t){const e=hm(t);e&&this._debounceColorPickerEvent(e)}})),e}isValid(){const{t:e}=this.locale;return!!this._config.hideInput||(this.resetValidationStatus(),!!this.hexInputRow.getParsedColor()||(this.hexInputRow.inputView.errorText=e('Please enter a valid color (e.g. "ff0000").'),!1))}resetValidationStatus(){this.hexInputRow.inputView.errorText=null}}function lm(e){let t=function(e){if(!e)return"";const t=Ph(e);return t?"hex"===t.space?t.hexValue:Th(e,"hex"):"#000"}(e);return t||(t="#000"),4===t.length&&(t="#"+[t[1],t[1],t[2],t[2],t[3],t[3]].join("")),t.toLowerCase()}class cm extends Au{constructor(e){super(),this.element=e}focus(){this.element.focus()}}class dm extends Au{constructor(e){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class um extends Au{children;inputView;constructor(e,t){super(e),this.inputView=t,this.children=this.createCollection([new dm,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return hm(this.inputView.fieldView.element.value)}}function hm(e){if(!e)return null;const t=e.trim().replace(/^#/,"");return[3,4,6,8].includes(t.length)&&/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test(t)?`#${t}`:null}class mm extends(Be(eo)){constructor(e){super(e),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(e,t){return this.find((t=>t.color===e.color))?this:super.add(e,t)}hasColor(e){return!!this.find((t=>t.color===e))}}class gm extends Au{items;colorDefinitions;focusTracker;columns;documentColors;documentColorsCount;staticColorsGrid;documentColorsGrid;colorPickerButtonView;removeColorButtonView;_focusables;_documentColorsLabel;_removeButtonLabel;_colorPickerLabel;constructor(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,focusTracker:a,focusables:l}){super(e);const c=this.bindTemplate;this.set("isVisible",!0),this.focusTracker=a,this.items=this.createCollection(),this.colorDefinitions=t,this.columns=o,this.documentColors=new mm,this.documentColorsCount=s,this._focusables=l,this._removeButtonLabel=i,this._colorPickerLabel=r,this._documentColorsLabel=n,this.setTemplate({tag:"div",attributes:{class:["ck-color-grids-fragment",c.if("isVisible","ck-hidden",(e=>!e))]},children:this.items}),this.removeColorButtonView=this._createRemoveColorButton(),this.items.add(this.removeColorButtonView)}updateDocumentColors(e,t){const o=e.document,i=this.documentColorsCount;this.documentColors.clear();for(const n of o.getRoots()){const o=e.createRangeIn(n);for(const e of o.getItems())if(e.is("$textProxy")&&e.hasAttribute(t)&&(this._addColorToDocumentColors(e.getAttribute(t)),this.documentColors.length>=i))return}}updateSelectedColors(){const e=this.documentColorsGrid,t=this.staticColorsGrid,o=this.selectedColor;t.selectedColor=o,e&&(e.selectedColor=o)}render(){if(super.render(),this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount){const e=ou.bind(this.documentColors,this.documentColors),t=new Au(this.locale);t.setTemplate({tag:"span",attributes:{class:["ck","ck-color-grid__label",e.if("isEmpty","ck-hidden")]},children:[{text:this._documentColorsLabel}]}),this.items.add(t),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}this._createColorPickerButton(),this._addColorSelectorElementsToFocusTracker()}focus(){this.removeColorButtonView.focus()}destroy(){super.destroy()}addColorPickerButton(){this.colorPickerButtonView&&(this.items.add(this.colorPickerButtonView),this.focusTracker.add(this.colorPickerButtonView.element),this._focusables.add(this.colorPickerButtonView))}_addColorSelectorElementsToFocusTracker(){this.focusTracker.add(this.removeColorButtonView.element),this._focusables.add(this.removeColorButtonView),this.staticColorsGrid&&(this.focusTracker.add(this.staticColorsGrid.element),this._focusables.add(this.staticColorsGrid)),this.documentColorsGrid&&(this.focusTracker.add(this.documentColorsGrid.element),this._focusables.add(this.documentColorsGrid))}_createColorPickerButton(){this.colorPickerButtonView=new Lu,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:'',class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const e=new Lu;return e.set({withText:!0,icon:'',label:this._removeButtonLabel}),e.class="ck-color-selector__remove-color",e.on("execute",(()=>{this.fire("execute",{value:null,source:"removeColorButton"})})),e.render(),e}_createStaticColorsGrid(){const e=new Eh(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return e.on("execute",((e,t)=>{this.fire("execute",{value:t.value,source:"staticColorsGrid"})})),e}_createDocumentColorsGrid(){const e=ou.bind(this.documentColors,this.documentColors),t=new Eh(this.locale,{columns:this.columns});return t.extendTemplate({attributes:{class:e.if("isEmpty","ck-hidden")}}),t.items.bindTo(this.documentColors).using((e=>{const t=new xh;return t.set({color:e.color,hasBorder:e.options?.hasBorder}),e.label&&t.set({label:e.label,tooltip:!0}),t.on("execute",(()=>{this.fire("execute",{value:e.color,source:"documentColorsGrid"})})),t})),this.documentColors.on("change:isEmpty",((e,o,i)=>{i&&(t.selectedColor=null)})),t}_addColorToDocumentColors(e){const t=this.colorDefinitions.find((t=>t.color===e));t?this.documentColors.add(Object.assign({},t)):this.documentColors.add({color:e,label:e,options:{hasBorder:!1}})}}class pm extends Au{items;colorPickerView;saveButtonView;cancelButtonView;actionBarView;focusTracker;keystrokes;_focusables;_colorPickerViewConfig;constructor(e,{focusTracker:t,focusables:o,keystrokes:i,colorPickerViewConfig:n}){super(e),this.items=this.createCollection(),this.focusTracker=t,this.keystrokes=i,this.set("isVisible",!1),this.set("selectedColor",void 0),this._focusables=o,this._colorPickerViewConfig=n;const s=this.bindTemplate,{saveButtonView:r,cancelButtonView:a}=this._createActionButtons();this.saveButtonView=r,this.cancelButtonView=a,this.actionBarView=this._createActionBarView({saveButtonView:r,cancelButtonView:a}),this.setTemplate({tag:"div",attributes:{class:["ck-color-picker-fragment",s.if("isVisible","ck-hidden",(e=>!e))]},children:this.items})}render(){super.render();const e=new am(this.locale,{...this._colorPickerViewConfig});this.colorPickerView=e,this.colorPickerView.render(),this.selectedColor&&(e.color=this.selectedColor),this.listenTo(this,"change:selectedColor",((t,o,i)=>{e.color=i})),this.items.add(this.colorPickerView),this.items.add(this.actionBarView),this._addColorPickersElementsToFocusTracker(),this._stopPropagationOnArrowsKeys(),this._executeOnEnterPress(),this._executeUponColorChange()}destroy(){super.destroy()}focus(){this.colorPickerView.focus()}resetValidationStatus(){this.colorPickerView.resetValidationStatus()}_executeOnEnterPress(){this.keystrokes.set("enter",(e=>{this.isVisible&&this.focusTracker.focusedElement!==this.cancelButtonView.element&&this.colorPickerView.isValid()&&(this.fire("execute",{value:this.selectedColor}),e.stopPropagation(),e.preventDefault())}))}_stopPropagationOnArrowsKeys(){const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}_addColorPickersElementsToFocusTracker(){for(const e of this.colorPickerView.slidersView)this.focusTracker.add(e.element),this._focusables.add(e);const e=this.colorPickerView.hexInputRow.children.get(1);e.element&&(this.focusTracker.add(e.element),this._focusables.add(e)),this.focusTracker.add(this.saveButtonView.element),this._focusables.add(this.saveButtonView),this.focusTracker.add(this.cancelButtonView.element),this._focusables.add(this.cancelButtonView)}_createActionBarView({saveButtonView:e,cancelButtonView:t}){const o=new Au,i=this.createCollection();return i.add(e),i.add(t),o.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector_action-bar"]},children:i}),o}_createActionButtons(){const e=this.locale,t=e.t,o=new Lu(e),i=new Lu(e);return o.set({icon:Hc,class:"ck-button-save",type:"button",withText:!1,label:t("Accept")}),i.set({icon:$c,class:"ck-button-cancel",type:"button",withText:!1,label:t("Cancel")}),o.on("execute",(()=>{this.colorPickerView.isValid()&&this.fire("execute",{source:"colorPickerSaveButton",value:this.selectedColor})})),i.on("execute",(()=>{this.fire("colorPicker:cancel")})),{saveButtonView:o,cancelButtonView:i}}_executeUponColorChange(){this.colorPickerView.on("colorSelected",((e,t)=>{this.fire("execute",{value:t.color,source:"colorPicker"}),this.set("selectedColor",t.color)}))}}class fm extends Au{focusTracker;keystrokes;items;colorGridsFragmentView;colorPickerFragmentView;_focusCycler;_focusables;_colorPickerViewConfig;constructor(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,colorPickerViewConfig:a}){super(e),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this._focusables=new tu,this._colorPickerViewConfig=a,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new gm(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new pm(e,{focusables:this._focusables,focusTracker:this.focusTracker,keystrokes:this.keystrokes,colorPickerViewConfig:a}),this.set("_isColorGridsFragmentVisible",!0),this.set("_isColorPickerFragmentVisible",!1),this.set("selectedColor",void 0),this.colorGridsFragmentView.bind("isVisible").to(this,"_isColorGridsFragmentVisible"),this.colorPickerFragmentView.bind("isVisible").to(this,"_isColorPickerFragmentVisible"),this.on("change:selectedColor",((e,t,o)=>{this.colorGridsFragmentView.set("selectedColor",o),this.colorPickerFragmentView.set("selectedColor",o)})),this.colorGridsFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.colorPickerFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector"]},children:this.items})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendUI(){this._appendColorGridsFragment(),this._colorPickerViewConfig&&this._appendColorPickerFragment()}showColorPickerFragment(){this.colorPickerFragmentView.colorPickerView&&!this._isColorPickerFragmentVisible&&(this._isColorPickerFragmentVisible=!0,this.colorPickerFragmentView.focus(),this.colorPickerFragmentView.resetValidationStatus(),this._isColorGridsFragmentVisible=!1)}showColorGridsFragment(){this._isColorGridsFragmentVisible||(this._isColorGridsFragmentVisible=!0,this.colorGridsFragmentView.focus(),this._isColorPickerFragmentVisible=!1)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}updateDocumentColors(e,t){this.colorGridsFragmentView.updateDocumentColors(e,t)}updateSelectedColors(){this.colorGridsFragmentView.updateSelectedColors()}_appendColorGridsFragment(){this.items.length||(this.items.add(this.colorGridsFragmentView),this.colorGridsFragmentView.delegate("execute").to(this),this.colorGridsFragmentView.delegate("colorPicker:show").to(this))}_appendColorPickerFragment(){2!==this.items.length&&(this.items.add(this.colorPickerFragmentView),this.colorGridsFragmentView.colorPickerButtonView&&this.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{this.showColorPickerFragment()})),this.colorGridsFragmentView.addColorPickerButton(),this.colorPickerFragmentView.delegate("execute").to(this),this.colorPickerFragmentView.delegate("colorPicker:cancel").to(this))}}class bm{editor;_components=new Map;constructor(e){this.editor=e}*names(){for(const e of this._components.values())yield e.originalName}add(e,t){this._components.set(wm(e),{callback:t,originalName:e})}create(e){if(!this.has(e))throw new fe("componentfactory-item-missing",this,{name:e});return this._components.get(wm(e)).callback(this.editor.locale)}has(e){return this._components.has(wm(e))}}function wm(e){return String(e).toLowerCase()}const ym="ck-tooltip";class _m extends(et()){tooltipTextView;balloonPanelView;static defaultBalloonPositions=dh.generatePositions({heightOffset:5,sideOffset:13});_currentElementWithTooltip=null;_currentTooltipPosition=null;_mutationObserver=null;_pinTooltipDebounced;_unpinTooltipDebounced;_watchdogExcluded;static _editors=new Set;static _instance=null;constructor(e){if(super(),_m._editors.add(e),_m._instance)return _m._instance;_m._instance=this,this.tooltipTextView=new Au(e.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new dh(e.locale),this.balloonPanelView.class=ym,this.balloonPanelView.content.add(this.tooltipTextView),this._mutationObserver=function(e){const t=new MutationObserver((()=>{e()}));return{attach(e){t.observe(e,{attributes:!0,attributeFilter:["data-cke-tooltip-text","data-cke-tooltip-position"]})},detach(){t.disconnect()}}}((()=>{this._updateTooltipPosition()})),this._pinTooltipDebounced=zo(this._pinTooltip,600),this._unpinTooltipDebounced=zo(this._unpinTooltip,400),this.listenTo(J.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(J.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(J.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(J.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(J.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(J.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(e){const t=e.ui.view&&e.ui.view.body;_m._editors.delete(e),this.stopListening(e.ui),t&&t.has(this.balloonPanelView)&&t.remove(this.balloonPanelView),_m._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),_m._instance=null)}static getPositioningFunctions(e){const t=_m.defaultBalloonPositions;return{s:[t.southArrowNorth,t.southArrowNorthEast,t.southArrowNorthWest],n:[t.northArrowSouth],e:[t.eastArrowWest],w:[t.westArrowEast],sw:[t.southArrowNorthEast],se:[t.southArrowNorthWest]}[e]}_onKeyDown(e,t){"Escape"===t.key&&this._currentElementWithTooltip&&(this._unpinTooltip(),t.stopPropagation())}_onEnterOrFocus(e,{target:t}){const o=km(t);o?o!==this._currentElementWithTooltip?(this._unpinTooltip(),"focus"===e.name&&!o.matches(":hover")||o.matches("[data-cke-tooltip-instant]")?this._pinTooltip(o,vm(o)):this._pinTooltipDebounced(o,vm(o))):this._unpinTooltipDebounced.cancel():"focus"===e.name&&this._unpinTooltip()}_onLeaveOrBlur(e,{target:t,relatedTarget:o}){if("mouseleave"===e.name){if(!L(t))return;const e=this.balloonPanelView.element,i=e&&(e===o||e.contains(o)),n=!i&&t===e;if(i)return void this._unpinTooltipDebounced.cancel();if(!n&&this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;const s=km(t),r=km(o);(n||s&&s!==r)&&(this._pinTooltipDebounced.cancel(),this._currentElementWithTooltip&&this._currentElementWithTooltip.matches("[data-cke-tooltip-instant]")||s&&s.matches("[data-cke-tooltip-instant]")?this._unpinTooltip():this._unpinTooltipDebounced())}else{if(this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;this._pinTooltipDebounced.cancel(),this._unpinTooltipDebounced()}}_onScroll(e,{target:t}){this._currentElementWithTooltip&&(t.contains(this.balloonPanelView.element)&&t.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(e,{text:t,position:o,cssClass:i}){this._unpinTooltip();const n=to(_m._editors.values()).ui.view.body;n.has(this.balloonPanelView)||n.add(this.balloonPanelView),this.tooltipTextView.text=t,this.balloonPanelView.class=[ym,i].filter((e=>e)).join(" "),this.balloonPanelView.pin({target:e,positions:_m.getPositioningFunctions(o)}),this._mutationObserver.attach(e);for(const e of _m._editors)this.listenTo(e.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=e,this._currentTooltipPosition=o}_unpinTooltip(){this._unpinTooltipDebounced.cancel(),this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const e of _m._editors)this.stopListening(e.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this.tooltipTextView.text="",this._mutationObserver.detach()}_updateTooltipPosition(){if(!this._currentElementWithTooltip)return;const e=vm(this._currentElementWithTooltip);Ct(this._currentElementWithTooltip)&&e.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:_m.getPositioningFunctions(e.position)}):this._unpinTooltip()}}function km(e){return L(e)?e.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function vm(e){return{text:e.dataset.ckeTooltipText,position:e.dataset.ckeTooltipPosition||"s",cssClass:e.dataset.ckeTooltipClass||""}}class Cm extends hh{licenseTypeMessage={evaluation:"For evaluation purposes only",trial:"For evaluation purposes only",development:"For development purposes only"};constructor(e){super(e,{balloonClass:"ck-evaluation-badge-balloon"})}_isEnabled(){const e=xm(this.editor.config.get("licenseKey"));return Boolean(e&&this.licenseTypeMessage[e])}_createBadgeContent(){const e=xm(this.editor.config.get("licenseKey"));return new Am(this.editor.locale,this.licenseTypeMessage[e])}_getNormalizedConfig(){const e=super._getNormalizedConfig(),t=this.editor.config.get("ui.poweredBy")||{};return{position:t.position||e.position,side:"left"===(t.side||e.side)?"right":"left",verticalOffset:e.verticalOffset,horizontalOffset:e.horizontalOffset}}}class Am extends Au{constructor(e,t){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-evaluation-badge"],"aria-hidden":!0},children:[{tag:"span",attributes:{class:["ck","ck-evaluation-badge__label"]},children:[t]}]})}}function xm(e){if("GPL"==e)return"GPL";const t=uo(e.split(".")[1]);return t?t.licenseType||"production":null}class Em extends Nh{constructor(e,t){super(e);const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item"]},on:{mouseenter:o.to("mouseenter")}}),this.delegate("mouseenter").to(t)}}const Tm={toggleMenusAndFocusItemsOnHover(e){e.on("menu:mouseenter",(t=>{if(e.isFocusBorderEnabled||e.isOpen){if(e.isOpen)for(const o of e.menus){const e=t.path[0],i=e instanceof Em&&e.children.first===o;o.isOpen=(t.path.includes(o)||i)&&o.isEnabled}t.source.focus()}}))},focusCycleMenusOnArrows(e){const t="rtl"===e.locale.uiLanguageDirection;function o(t,o){const i=e.children.getIndex(t),n=t.isOpen,s=e.children.length,r=e.children.get((i+s+o)%s);t.isOpen=!1,n&&(r.isOpen=!0),r.buttonView.focus()}e.on("menu:arrowright",(e=>{o(e.source,t?-1:1)})),e.on("menu:arrowleft",(e=>{o(e.source,t?1:-1)}))},closeMenusWhenTheBarCloses(e){e.on("change:isOpen",(()=>{e.isOpen||e.menus.forEach((e=>{e.isOpen=!1}))}))},closeMenuWhenAnotherOnTheSameLevelOpens(e){e.on("menu:change:isOpen",((t,o,i)=>{i&&e.menus.filter((e=>t.source.parentMenuView===e.parentMenuView&&t.source!==e&&e.isOpen)).forEach((e=>{e.isOpen=!1}))}))},closeOnClickOutside(e){Su({emitter:e,activator:()=>e.isOpen,callback:()=>e.close(),contextElements:()=>e.children.map((e=>e.element))})},enableFocusHighlightOnInteraction(e){let t=!1;e.on("change:isOpen",((o,i,n)=>{n||(t||(e.isFocusBorderEnabled=!1),t=!1)})),e.listenTo(e.element,"keydown",(()=>{t=!0}),{useCapture:!0}),e.listenTo(e.element,"keyup",(()=>{t=!1}),{useCapture:!0}),e.listenTo(e.element,"focus",(()=>{t&&(e.isFocusBorderEnabled=!0)}),{useCapture:!0})}},Pm={openAndFocusPanelOnArrowDownKey(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isEnabled&&e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnArrowRightKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowleft":"arrowright";e.keystrokes.set(t,((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&e.isEnabled&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!0}))},toggleOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!e.isOpen}))},openAndFocusOnEnterKeyPress(e){e.keystrokes.set("enter",((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen=!0,e.panelView.focus(),o())}))},closeOnArrowLeftKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowright":"arrowleft";e.keystrokes.set(t,((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnEscKey(e){e.keystrokes.set("esc",((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnParentClose(e){e.parentMenuView.on("change:isOpen",((t,o,i)=>{i||t.source!==e.parentMenuView||(e.isOpen=!1)}))}},Sm={southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),eastSouth:e=>({top:e.top,left:e.right-5,name:"es"}),eastNorth:(e,t)=>({top:e.top-t.height,left:e.right-5,name:"en"}),westSouth:(e,t)=>({top:e.top,left:e.left-t.width+5,name:"ws"}),westNorth:(e,t)=>({top:e.top-t.height,left:e.left-t.width+5,name:"wn"})},Im=[{menuId:"file",label:"File",groups:[{groupId:"export",items:["menuBar:exportPdf","menuBar:exportWord"]},{groupId:"import",items:["menuBar:importWord"]},{groupId:"revisionHistory",items:["menuBar:revisionHistory"]}]},{menuId:"edit",label:"Edit",groups:[{groupId:"undo",items:["menuBar:undo","menuBar:redo"]},{groupId:"selectAll",items:["menuBar:selectAll"]},{groupId:"findAndReplace",items:["menuBar:findAndReplace"]}]},{menuId:"view",label:"View",groups:[{groupId:"sourceEditingEnhanced",items:["menuBar:sourceEditingEnhanced"]},{groupId:"sourceEditing",items:["menuBar:sourceEditing"]},{groupId:"showBlocks",items:["menuBar:showBlocks"]},{groupId:"previewMergeFields",items:["menuBar:previewMergeFields"]},{groupId:"fullscreen",items:["menuBar:fullscreen"]},{groupId:"restrictedEditing",items:["menuBar:restrictedEditing"]}]},{menuId:"insert",label:"Insert",groups:[{groupId:"insertMainWidgets",items:["menuBar:insertImage","menuBar:ckbox","menuBar:ckfinder","menuBar:insertTable","menuBar:insertTableLayout"]},{groupId:"insertInline",items:["menuBar:link","menuBar:insertFootnote","menuBar:bookmark","menuBar:comment","menuBar:insertMergeField","menuBar:emoji"]},{groupId:"insertMinorWidgets",items:["menuBar:mediaEmbed","menuBar:insertTemplate","menuBar:specialCharacters","menuBar:blockQuote","menuBar:codeBlock","menuBar:htmlEmbed"]},{groupId:"insertStructureWidgets",items:["menuBar:horizontalLine","menuBar:pageBreak","menuBar:tableOfContents"]},{groupId:"restrictedEditingException",items:["menuBar:restrictedEditingException:inline","menuBar:restrictedEditingException:block"]}]},{menuId:"format",label:"Format",groups:[{groupId:"textAndFont",items:[{menuId:"text",label:"Text",groups:[{groupId:"basicStyles",items:["menuBar:bold","menuBar:italic","menuBar:underline","menuBar:strikethrough","menuBar:superscript","menuBar:subscript","menuBar:code"]},{groupId:"textPartLanguage",items:["menuBar:textPartLanguage"]}]},{menuId:"font",label:"Font",groups:[{groupId:"fontProperties",items:["menuBar:fontSize","menuBar:fontFamily"]},{groupId:"fontColors",items:["menuBar:fontColor","menuBar:fontBackgroundColor"]},{groupId:"highlight",items:["menuBar:highlight"]}]},"menuBar:heading"]},{groupId:"list",items:["menuBar:bulletedList","menuBar:numberedList","menuBar:multiLevelList","menuBar:todoList"]},{groupId:"indent",items:["menuBar:alignment","menuBar:lineHeight","menuBar:indent","menuBar:outdent"]},{groupId:"caseChange",items:["menuBar:caseChange"]},{groupId:"removeFormat",items:["menuBar:removeFormat"]}]},{menuId:"tools",label:"Tools",groups:[{groupId:"aiTools",items:["menuBar:aiAssistant","menuBar:aiCommands","menuBar:toggleAi","menuBar:aiQuickActions"]},{groupId:"tools",items:["menuBar:trackChanges","menuBar:commentsArchive"]}]},{menuId:"help",label:"Help",groups:[{groupId:"help",items:["menuBar:accessibilityHelp"]}]}];function Rm({normalizedConfig:e,locale:t,componentFactory:o,extraItems:i}){const n=j(e);return Om(e,n,i),function(e,t){const o=t.removeItems,i=[];t.items=t.items.filter((({menuId:e})=>!o.includes(e)||(i.push(e),!1))),Mm(t.items,(e=>{e.groups=e.groups.filter((({groupId:e})=>!o.includes(e)||(i.push(e),!1)));for(const t of e.groups)t.items=t.items.filter((e=>{const t=zm(e);return!o.includes(t)||(i.push(t),!1)}))}));for(const t of o)i.includes(t)||be("menu-bar-item-could-not-be-removed",{menuBarConfig:e,itemName:t})}(e,n),Om(e,n,n.addItems),function(e,t,o){Mm(t.items,(i=>{for(const n of i.groups)n.items=n.items.filter((n=>{const s="string"==typeof n&&!o.has(n);return s&&!t.isUsingDefaultConfig&&be("menu-bar-item-unavailable",{menuBarConfig:e,parentMenuConfig:j(i),componentName:n}),!s}))}))}(e,n,o),Dm(e,n),function(e,t){const o=t.t,i={File:o({string:"File",id:"MENU_BAR_MENU_FILE"}),Edit:o({string:"Edit",id:"MENU_BAR_MENU_EDIT"}),View:o({string:"View",id:"MENU_BAR_MENU_VIEW"}),Insert:o({string:"Insert",id:"MENU_BAR_MENU_INSERT"}),Format:o({string:"Format",id:"MENU_BAR_MENU_FORMAT"}),Tools:o({string:"Tools",id:"MENU_BAR_MENU_TOOLS"}),Help:o({string:"Help",id:"MENU_BAR_MENU_HELP"}),Text:o({string:"Text",id:"MENU_BAR_MENU_TEXT"}),Font:o({string:"Font",id:"MENU_BAR_MENU_FONT"})};Mm(e.items,(e=>{e.label in i&&(e.label=i[e.label])}))}(n,t),n}function Om(e,t,o){const i=[];if(0!=o.length){for(const e of o){const o=Bm(e.position),s=Lm(e.position);if("object"==typeof(n=e)&&"menu"in n)if(s){const n=t.items.findIndex((e=>e.menuId===s));if(-1!=n)"before"===o?(t.items.splice(n,0,e.menu),i.push(e)):"after"===o&&(t.items.splice(n+1,0,e.menu),i.push(e));else{Vm(t,e.menu,s,o)&&i.push(e)}}else"start"===o?(t.items.unshift(e.menu),i.push(e)):"end"===o&&(t.items.push(e.menu),i.push(e));else if(Nm(e))Mm(t.items,(t=>{if(t.menuId===s)"start"===o?(t.groups.unshift(e.group),i.push(e)):"end"===o&&(t.groups.push(e.group),i.push(e));else{const n=t.groups.findIndex((e=>e.groupId===s));-1!==n&&("before"===o?(t.groups.splice(n,0,e.group),i.push(e)):"after"===o&&(t.groups.splice(n+1,0,e.group),i.push(e)))}}));else{Vm(t,e.item,s,o)&&i.push(e)}}var n;for(const t of o)i.includes(t)||be("menu-bar-item-could-not-be-added",{menuBarConfig:e,addedItemConfig:t})}}function Vm(e,t,o,i){let n=!1;return Mm(e.items,(e=>{for(const{groupId:s,items:r}of e.groups){if(n)return;if(s===o)"start"===i?(r.unshift(t),n=!0):"end"===i&&(r.push(t),n=!0);else{const e=r.findIndex((e=>zm(e)===o));-1!==e&&("before"===i?(r.splice(e,0,t),n=!0):"after"===i&&(r.splice(e+1,0,t),n=!0))}}})),n}function Dm(e,t){const o=t.isUsingDefaultConfig;let i=!1;t.items=t.items.filter((t=>!!t.groups.length||(Fm(e,t,o),!1))),t.items.length?(Mm(t.items,(t=>{t.groups=t.groups.filter((e=>!!e.items.length||(i=!0,!1)));for(const n of t.groups)n.items=n.items.filter((t=>!(jm(t)&&!t.groups.length)||(Fm(e,t,o),i=!0,!1)))})),i&&Dm(e,t)):Fm(e,e,o)}function Fm(e,t,o){o||be("menu-bar-menu-empty",{menuBarConfig:e,emptyMenuConfig:t})}function Mm(e,t){if(Array.isArray(e))for(const t of e)o(t);function o(e){t(e);for(const t of e.groups)for(const e of t.items)jm(e)&&o(e)}}function Nm(e){return"object"==typeof e&&"group"in e}function Bm(e){return e.startsWith("start")?"start":e.startsWith("end")?"end":e.startsWith("after")?"after":"before"}function Lm(e){const t=e.match(/^[^:]+:(.+)/);return t?t[1]:null}function zm(e){return"string"==typeof e?e:e.menuId}function jm(e){return"object"==typeof e&&"menuId"in e}class qm extends(Be()){editor;componentFactory;focusTracker;tooltipManager;poweredBy;evaluationBadge;ariaLiveAnnouncer;isReady=!1;_editableElementsMap=new Map;_focusableToolbarDefinitions=[];_extraMenuBarElements=[];_lastFocusedForeignElement=null;_domEmitter;constructor(e){super();const t=e.editing.view;this.editor=e,this.componentFactory=new bm(e),this.focusTracker=new oo,this.tooltipManager=new _m(e),this.poweredBy=new gh(e),this.evaluationBadge=new Cm(e),this.ariaLiveAnnouncer=new Eu(e),this._initViewportOffset(this._readViewportOffsetFromConfig()),this.once("ready",(()=>{this._bindBodyCollectionWithFocusTracker(),this.isReady=!0})),this.listenTo(t.document,"layoutChanged",this.update.bind(this)),this.listenTo(t,"scrollToTheSelection",this._handleScrollToTheSelection.bind(this)),this._initFocusTracking(),this._initVisualViewportSupport()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor),this.poweredBy.destroy(),this.evaluationBadge.destroy();for(const e of this._editableElementsMap.values())e.ckeditorInstance=null,this.editor.keystrokes.stopListening(e);this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[],this._domEmitter&&this._domEmitter.stopListening()}setEditableElement(e,t){this._editableElementsMap.set(e,t),t.ckeditorInstance||(t.ckeditorInstance=this.editor),this.focusTracker.add(t);const o=()=>{this.editor.editing.view.getDomRoot(e)||this.editor.keystrokes.listenTo(t)};this.isReady?o():this.once("ready",o)}removeEditableElement(e){const t=this._editableElementsMap.get(e);t&&(this._editableElementsMap.delete(e),this.editor.keystrokes.stopListening(t),this.focusTracker.remove(t),t.ckeditorInstance=null)}getEditableElement(e="main"){return this._editableElementsMap.get(e)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(e,t={}){e.isRendered?(this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)):e.once("render",(()=>{this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)})),this._focusableToolbarDefinitions.push({toolbarView:e,options:t})}extendMenuBar(e){this._extraMenuBarElements.push(e)}initMenuBar(e){const t=e.element;this.focusTracker.add(t),this.editor.keystrokes.listenTo(t);const o=function(e){let t;return t="items"in e&&e.items?{items:e.items,removeItems:[],addItems:[],isVisible:!0,isUsingDefaultConfig:!1,...e}:{items:j(Im),addItems:[],removeItems:[],isVisible:!0,isUsingDefaultConfig:!0,...e},t}(this.editor.config.get("menuBar")||{});e.fillFromConfig(o,this.componentFactory,this._extraMenuBarElements),this.editor.keystrokes.set("Esc",((e,o)=>{t.contains(this.editor.ui.focusTracker.focusedElement)&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):this.editor.editing.view.focus(),o())})),this.editor.keystrokes.set("Alt+F9",((o,i)=>{t.contains(this.editor.ui.focusTracker.focusedElement)||(this._saveLastFocusedForeignElement(),e.isFocusBorderEnabled=!0,e.focus(),i())}))}_readViewportOffsetFromConfig(){const e=this.editor,t=e.config.get("ui.viewportOffset");if(t)return t;const o=e.config.get("toolbar.viewportTopOffset");return o?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:o}):{top:0}}_initFocusTracking(){const e=this.editor;let t;e.keystrokes.set("Alt+F10",((e,o)=>{this._saveLastFocusedForeignElement();const i=this._getCurrentFocusedToolbarDefinition();i&&t||(t=this._getFocusableCandidateToolbarDefinitions());for(let e=0;e{const i=this._getCurrentFocusedToolbarDefinition();i&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):e.editing.view.focus(),i.options.afterBlur&&i.options.afterBlur(),o())}))}_saveLastFocusedForeignElement(){const e=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(e)&&!Array.from(this.editor.editing.view.domRoots.values()).includes(e)&&(this._lastFocusedForeignElement=e)}_getFocusableCandidateToolbarDefinitions(){const e=[];for(const t of this._focusableToolbarDefinitions){const{toolbarView:o,options:i}=t;(Ct(o.element)||i.beforeFocus)&&e.push(t)}return e.sort(((e,t)=>$m(e)-$m(t))),e}_getCurrentFocusedToolbarDefinition(){for(const e of this._focusableToolbarDefinitions)if(e.toolbarView.element&&e.toolbarView.element.contains(this.focusTracker.focusedElement))return e;return null}_focusFocusableCandidateToolbar(e){const{toolbarView:t,options:{beforeFocus:o}}=e;return o&&o(),!!Ct(t.element)&&(t.focus(),!0)}_handleScrollToTheSelection(e,t){const o={top:0,bottom:0,left:0,right:0,...this.viewportOffset};t.viewportOffset.top+=o.top,t.viewportOffset.bottom+=o.bottom,t.viewportOffset.left+=o.left,t.viewportOffset.right+=o.right}_bindBodyCollectionWithFocusTracker(){const e=this.view.body;for(const t of e)this.focusTracker.add(t.element);e.on("add",((e,t)=>{this.focusTracker.add(t.element)})),e.on("remove",((e,t)=>{this.focusTracker.remove(t.element)}))}_initViewportOffset(e){this.on("set:viewportOffset",((e,t,o)=>{const i=this._getVisualViewportTopOffset(o);o.visualTop!==i&&(e.return={...o,visualTop:i})})),this.set("viewportOffset",e)}_initVisualViewportSupport(){if(!J.window.visualViewport)return;const e=()=>{const e=this._getVisualViewportTopOffset(this.viewportOffset);this.viewportOffset.visualTop!==e&&(this.viewportOffset={...this.viewportOffset,visualTop:e})};this._domEmitter=new(et()),this._domEmitter.listenTo(J.window.visualViewport,"scroll",e),this._domEmitter.listenTo(J.window.visualViewport,"resize",e)}_getVisualViewportTopOffset(e){const t=St().top,o=e.top||0;return t>o?0:o-t}}function $m(e){const{toolbarView:t,options:o}=e;let i=10;return Ct(t.element)&&i--,o.isContextual&&(i-=2),i}class Hm extends Au{body;menuBarView;toolbar;constructor(e){super(e),this.body=new ah(e)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class Wm extends Au{name=null;_editingView;_editableElement;_hasExternalElement;constructor(e,t,o){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:e.contentLanguage,dir:e.contentLanguageDirection}}),this.set("isFocused",!1),this._editableElement=o,this._hasExternalElement=!!this._editableElement,this._editingView=t}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}get hasExternalElement(){return this._hasExternalElement}_updateIsFocusedClasses(){const e=this._editingView;function t(t){e.change((o=>{const i=e.document.getRoot(t.name);o.addClass(t.isFocused?"ck-focused":"ck-blurred",i),o.removeClass(t.isFocused?"ck-blurred":"ck-focused",i)}))}e.isRenderingInProgress?function o(i){e.once("change:isRenderingInProgress",((e,n,s)=>{s?o(i):t(i)}))}(this):t(this)}}class Um extends Wm{_options;constructor(e,t,o,i={}){super(e,t,o),this._options=i,this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const e=this._editingView;e.change((t=>{const o=e.document.getRoot(this.name);t.setAttribute("aria-label",this.getEditableAriaLabel(),o)}))}getEditableAriaLabel(){const e=this.locale.t,t=this._options.label,o=this._editableElement,i=this.name;if("string"==typeof t)return t;if("object"==typeof t)return t[i];if("function"==typeof t)return t(this);if(o){const e=o.getAttribute("aria-label");if(e)return e}return e("Rich Text Editor. Editing area: %0",i)}}class Km extends Au{children;constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("class",["ck","ck-form__row",...Qt(t.class||[])]),this.children=this.createCollection(),t.children&&t.children.forEach((e=>this.children.add(e))),this.set("_role",null),this.set("_ariaLabelledBy",null),t.labelView&&this.set({_role:"group",_ariaLabelledBy:t.labelView.id}),this.setTemplate({tag:"div",attributes:{class:o.to("class",(e=>e.join(" "))),role:o.to("_role"),"aria-labelledby":o.to("_ariaLabelledBy")},children:this.children})}}class Gm extends Cc{static get pluginName(){return"Notification"}static get isOfficialPlugin(){return!0}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=e.namespace?`show:${e.type}:${e.namespace}`:`show:${e.type}`;this.fire(t,{message:e.message,type:e.type,title:e.title||""})}}class Jm extends(Be()){constructor(e,t){super(),t&&No(this,t),e&&this.set(e)}}const Zm=yt("px");class Qm extends fc{positionLimiter;visibleStack;_viewToStack=new Map;_idToStack=new Map;_view=null;_rotatorView=null;_fakePanelsView=null;static get pluginName(){return"ContextualBalloon"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.positionLimiter=()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},this.decorate("getPositionOptions"),this.set("visibleView",null),this.set("_numberOfStacks",0),this.set("_singleViewMode",!1)}destroy(){super.destroy(),this._view&&this._view.destroy(),this._rotatorView&&this._rotatorView.destroy(),this._fakePanelsView&&this._fakePanelsView.destroy()}get view(){return this._view||this._createPanelView(),this._view}hasView(e){return Array.from(this._viewToStack.keys()).includes(e)}add(e){if(this._view||this._createPanelView(),this.hasView(e.view))throw new fe("contextualballoon-add-view-exist",[this,e]);const t=e.stackId||"main";if(!this._idToStack.has(t))return this._idToStack.set(t,new Map([[e.view,e]])),this._viewToStack.set(e.view,this._idToStack.get(t)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!e.singleViewMode||this.showStack(t));const o=this._idToStack.get(t);e.singleViewMode&&this.showStack(t),o.set(e.view,e),this._viewToStack.set(e.view,o),o===this._visibleStack&&this._showView(e)}remove(e){if(!this.hasView(e))throw new fe("contextualballoon-remove-view-not-exist",[this,e]);const t=this._viewToStack.get(e);this._singleViewMode&&this.visibleView===e&&(this._singleViewMode=!1),this.visibleView===e&&(1===t.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(t.values())[t.size-2])),1===t.size?(this._idToStack.delete(this._getStackId(t)),this._numberOfStacks=this._idToStack.size):t.delete(e),this._viewToStack.delete(e)}updatePosition(e){e&&(this._visibleStack.get(this.visibleView).position=e),this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition()}getPositionOptions(){let e=Array.from(this._visibleStack.values()).pop().position;return e&&(e.limiter||(e=Object.assign({},e,{limiter:this.positionLimiter})),e=Object.assign({},e,{viewportOffsetConfig:{...this.editor.ui.viewportOffset,top:this.editor.ui.viewportOffset.visualTop}})),e}showStack(e){this.visibleStack=e;const t=this._idToStack.get(e);if(!t)throw new fe("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==t&&this._showView(Array.from(t.values()).pop())}_createPanelView(){this._view=new dh(this.editor.locale),this.editor.ui.view.body.add(this._view),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(e){return Array.from(this._idToStack.entries()).find((t=>t[1]===e))[0]}_showNextStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)+1;e[t]||(t=0),this.showStack(this._getStackId(e[t]))}_showPrevStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)-1;e[t]||(t=e.length-1),this.showStack(this._getStackId(e[t]))}_createRotatorView(){const e=new Ym(this.editor.locale),t=this.editor.locale.t;return this.view.content.add(e),e.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>1)),e.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),e.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((e,o)=>{if(o<2)return"";const i=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return t("%0 of %1",[i,o])})),e.buttonNextView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),e.buttonPrevView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),e}_createFakePanelsView(){const e=new Xm(this.editor.locale,this.view);return e.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>=2?Math.min(e-1,2):0)),e.listenTo(this.view,"change:top",(()=>e.updatePosition())),e.listenTo(this.view,"change:left",(()=>e.updatePosition())),this.editor.ui.view.body.add(e),e}_showView({view:e,balloonClassName:t="",withArrow:o=!0,singleViewMode:i=!1}){this.view.class=t,this.view.withArrow=o,this._rotatorView.showView(e),this.visibleView=e,this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition(),i&&(this._singleViewMode=!0)}}class Ym extends Au{focusTracker;buttonPrevView;buttonNextView;content;constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new oo,this.buttonPrevView=this._createButtonView(t("Previous"),ed),this.buttonNextView=this._createButtonView(t("Next"),Kc),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",o.to("isNavigationVisible",(e=>e?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:o.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(e){this.hideView(),this.content.add(e)}hideView(){this.content.clear()}_createButtonView(e,t){const o=new Lu(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o}}class Xm extends Au{content;_balloonPanelView;constructor(e,t){super(e);const o=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=t,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",o.to("numberOfPanels",(e=>e?"":"ck-hidden"))],style:{top:o.to("top",Zm),left:o.to("left",Zm),width:o.to("width",Zm),height:o.to("height",Zm)}},children:this.content}),this.on("change:numberOfPanels",((e,t,o,i)=>{o>i?this._addPanels(o-i):this._removePanels(i-o),this.updatePosition()}))}_addPanels(e){for(;e--;){const e=new Au;e.setTemplate({tag:"div"}),this.content.add(e),this.registerChild(e)}}_removePanels(e){for(;e--;){const e=this.content.last;this.content.remove(e),this.deregisterChild(e),e.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:e,left:t}=this._balloonPanelView,{width:o,height:i}=new ut(this._balloonPanelView.element);Object.assign(this,{top:e,left:t,width:o,height:i})}}}class eg extends ih{arrowView;constructor(e){super(e);const t=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e))),"data-cke-tooltip-disabled":t.to("isOn")},on:{mouseenter:t.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Uc,e.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),e}}class tg extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-menu-bar__menu__panel",t.to("position",(e=>`ck-menu-bar__menu__panel_position_${e}`)),t.if("isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{"input"!==e.target.tagName.toLocaleLowerCase()&&e.preventDefault()}))}})}focus(e=1){this.children.length&&(1===e?this.children.first.focus():this.children.last.focus())}}class og extends Au{buttonView;panelView;focusTracker;keystrokes;constructor(e){super(e);const t=this.bindTemplate;this.buttonView=new eg(e),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new tg(e),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ro,this.focusTracker=new oo,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("panelPosition","w"),this.set("class",void 0),this.set("parentMenuView",null),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar__menu",t.to("class"),t.if("isEnabled","ck-disabled",(e=>!e)),t.if("parentMenuView","ck-menu-bar__menu_top-level",(e=>!e))]},children:[this.buttonView,this.panelView]})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.keystrokes.listenTo(this.element),Pm.closeOnEscKey(this),this._closeOnDisabled(),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?(Pm.openOnButtonClick(this),Pm.openOnArrowRightKey(this),Pm.closeOnArrowLeftKey(this),Pm.openAndFocusOnEnterKeyPress(this),Pm.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),Pm.openAndFocusPanelOnArrowDownKey(this),Pm.toggleOnButtonClick(this))}_propagateArrowKeystrokeEvents(){this.keystrokes.set("arrowright",((e,t)=>{this.fire("arrowright"),t()})),this.keystrokes.set("arrowleft",((e,t)=>{this.fire("arrowleft"),t()}))}_closeOnDisabled(){this.on("change:isEnabled",((e,t,o)=>{o||(this.isOpen=!1)}))}_repositionPanelOnOpen(){this.on("change:isOpen",((e,t,o)=>{if(!o)return;const i=og._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=i?i.name:this._defaultMenuPositionName}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:e,southWest:t,northEast:o,northWest:i,westSouth:n,eastSouth:s,westNorth:r,eastNorth:a}=Sm;return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?[s,a,n,r]:[e,t,o,i]:this.parentMenuView?[n,r,s,a]:[t,e,i,o]}get _defaultMenuPositionName(){return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?"es":"se":this.parentMenuView?"ws":"sw"}static _getOptimalPosition=At}class ig extends zh{constructor(e){super(e),this.role="menu",this.items.on("change",this._setItemsCheckSpace.bind(this))}_setItemsCheckSpace(){const e=Array.from(this.items).some((e=>{const t=ng(e);return t&&t.isToggleable}));this.items.forEach((t=>{const o=ng(t);o&&(o.hasCheckSpace=e)}))}}function ng(e){return e instanceof Nh?e.children.map((e=>function(e){return"object"==typeof e&&"buttonView"in e&&e.buttonView instanceof Lu}(e)?e.buttonView:e)).find((e=>e instanceof ih)):null}class sg extends wh{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}const rg=["mouseenter","arrowleft","arrowright","change:isOpen"];class ag extends Au{children;menus=[];constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set({isOpen:!1,isFocusBorderEnabled:!1}),this._setupIsOpenUpdater(),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar",o.if("isFocusBorderEnabled","ck-menu-bar_focus-border-enabled")],"aria-label":t("Editor menu bar"),role:"menubar"},children:this.children})}fillFromConfig(e,t,o=[]){const i=Rm({normalizedConfig:e,locale:this.locale,componentFactory:t,extraItems:o}).items.map((e=>this._createMenu({componentFactory:t,menuDefinition:e})));this.children.addMany(i)}render(){super.render(),Tm.toggleMenusAndFocusItemsOnHover(this),Tm.closeMenusWhenTheBarCloses(this),Tm.closeMenuWhenAnotherOnTheSameLevelOpens(this),Tm.focusCycleMenusOnArrows(this),Tm.closeOnClickOutside(this),Tm.enableFocusHighlightOnInteraction(this)}focus(){this.children.first&&this.children.first.focus()}close(){for(const e of this.children)e.isOpen=!1}disable(){for(const e of this.children)e.isEnabled=!1}enable(){for(const e of this.children)e.isEnabled=!0}registerMenu(e,t=null){t?(e.delegate(...rg).to(t),e.parentMenuView=t):e.delegate(...rg).to(this,(e=>"menu:"+e)),e._attachBehaviors(),this.menus.push(e)}_createMenu({componentFactory:e,menuDefinition:t,parentMenuView:o}){const i=this.locale,n=new og(i);return this.registerMenu(n,o),n.buttonView.set({label:t.label}),n.once("change:isOpen",(()=>{const o=new ig(i);o.ariaLabel=t.label,n.panelView.children.add(o),o.items.addMany(this._createMenuItems({menuDefinition:t,parentMenuView:n,componentFactory:e}))})),n}_createMenuItems({menuDefinition:e,parentMenuView:t,componentFactory:o}){const i=this.locale,n=[];for(const r of e.groups){for(const e of r.items){const r=new Em(i,t);if(s(e))r.children.add(this._createMenu({componentFactory:o,menuDefinition:e,parentMenuView:t}));else{const i=this._createMenuItemContentFromFactory({componentName:e,componentFactory:o,parentMenuView:t});if(!i)continue;r.children.add(i)}n.push(r)}r!==e.groups[e.groups.length-1]&&n.push(new Bh(i))}return n}_createMenuItemContentFromFactory({componentName:e,parentMenuView:t,componentFactory:o}){const i=o.create(e);return i instanceof og||i instanceof sh||i instanceof sg?(this._registerMenuTree(i,t),i.on("execute",(()=>{this.close()})),i):(be("menu-bar-component-unsupported",{componentName:e,componentView:i}),null)}_registerMenuTree(e,t){if(!(e instanceof og))return void e.delegate("mouseenter").to(t);this.registerMenu(e,t);const o=e.panelView.children.filter((e=>e instanceof ig))[0];if(!o)return void e.delegate("mouseenter").to(t);const i=o.items.filter((e=>e instanceof Nh));for(const t of i)this._registerMenuTree(t.children.get(0),e)}_setupIsOpenUpdater(){let e;this.on("menu:change:isOpen",((t,o,i)=>{clearTimeout(e),i?this.isOpen=!0:e=setTimeout((()=>{this.isOpen=Array.from(this.children).some((e=>e.isOpen))}),0)}))}}class lg extends qm{view;constructor(e,t){super(e),this.view=t}init(){const e=this.editor,t=this.view,o=e.editing.view,i=t.editable,n=o.document.getRoot();i.name=n.rootName,t.render();const s=i.element;this.setEditableElement(i.name,s),t.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),this._initPlaceholder(),this._initToolbar(),this.initMenuBar(this.view.menuBarView),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.editor,t=this.view;t.toolbar.fillFromConfig(e.config.get("toolbar"),this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,o=t.document.getRoot(),i=e.config.get("roots")[o.rootName].placeholder;i&&(o.placeholder=i),Yo({view:t,element:o,isDirectHost:!1,keepOnFocus:!0})}}class cg extends Hm{toolbar;editable;menuBarView;constructor(e,t,o={}){super(e),this.toolbar=new Wh(e,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull}),this.menuBarView=new ag(e),this.editable=new Um(e,t,o.editableElement,{label:o.label}),this.toolbar.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}}),this.menuBarView.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}})}render(){super.render(),this.registerChild([this.menuBarView,this.toolbar,this.editable])}}class dg extends(Fc(Vc)){static get editorName(){return"DecoupledEditor"}ui;constructor(e,t={}){const{sourceElementOrData:o,editorConfig:i}=function(e,t){return"string"==typeof e||Bc(e)||t&&Object.keys(t).length?{sourceElementOrData:e,editorConfig:t}:{sourceElementOrData:"",editorConfig:e}}(e,t);super(i),Mc(o,this.config);const n=this.config.get("roots").main.element;if(L(n)){if("TEXTAREA"===n.tagName)throw new fe("editor-wrong-element",null);this.sourceElement=n,function(e,t){if(t.ckeditorInstance)throw new fe("editor-source-element-already-used",e);t.ckeditorInstance=e,e.once("destroy",(()=>{delete t.ckeditorInstance}))}(this,n)}this.model.document.createRoot();const s=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=new cg(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:s,label:this.config.get("roots").main.label});this.ui=new lg(this,r)}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(e)}))}static create(e,t={}){return new Promise((o=>{const i=new this(e,t);o(i.initPlugins().then((()=>i.ui.init())).then((()=>i.data.init(i.config.get("roots").main.initialData))).then((()=>i.fire("ready"))).then((()=>i)))}))}}class ug{model;limit;_isLocked;_size;_batch=null;_changeCallback;_selectionChangeCallback;constructor(e,t=20){this.model=e,this._size=0,this.limit=t,this._isLocked=!1,this._changeCallback=(e,t)=>{t.isLocal&&t.isUndoable&&t!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(e){this._size+=e,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(e=!1){this.isLocked&&!e||(this._batch=null,this._size=0)}}class hg extends wc{_buffer;constructor(e,t){super(e),this._buffer=new ug(e.model,t),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(e={}){const t=this.editor.model,o=t.document,i=e.text||"",n=i.length;let s=o.selection;if(e.selection?s=e.selection:e.range&&(s=t.createSelection(e.range)),!t.canEditAt(s))return;const r=e.resultRange;t.enqueueChange(this._buffer.batch,(e=>{this._buffer.lock();const a=Array.from(o.selection.getAttributes());t.deleteContent(s),i&&t.insertContent(e.createText(i,a),s),r?e.setSelection(r):s.is("documentSelection")||e.setSelection(s),this._buffer.unlock(),this._buffer.input(n)}))}}const mg=["insertText","insertReplacementText"],gg=[...mg,"insertCompositionText"];class pg extends Ln{focusObserver;constructor(e){super(e),this.focusObserver=e.getObserver(Un);const t=Y.isAndroid?gg:mg,o=e.document;o.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;const{data:s,targetRanges:r,inputType:a,domEvent:l,isComposing:c}=n;if(!t.includes(a))return;this.focusObserver.flush();const d=new ue(o,"insertText");o.fire(d,new zn(e,l,{text:s,selection:e.createSelection(r),isComposing:c})),d.stop.called&&i.stop()})),Y.isAndroid||o.on("compositionend",((t,{data:i,domEvent:n})=>{this.isEnabled&&i&&o.fire("insertText",new zn(e,n,{text:i,isComposing:!0}))}),{priority:"low"})}observe(){}stopObserving(){}}class fg extends fc{_typingQueue;static get pluginName(){return"Input"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=e.editing.view,i=e.editing.mapper,n=t.document.selection;this._typingQueue=new bg(e),o.addObserver(pg);const s=new hg(e,e.config.get("typing.undoStep")||20);e.commands.add("insertText",s),e.commands.add("input",s),this.listenTo(o.document,"beforeinput",(()=>{this._typingQueue.flush("next beforeinput")}),{priority:"high"}),this.listenTo(o.document,"insertText",((e,r)=>{const{text:a,selection:l}=r;if(o.document.selection.isFake&&l&&o.document.selection.isSimilar(l)&&r.preventDefault(),l&&Array.from(l.getRanges()).some((e=>!e.isCollapsed))&&r.preventDefault(),!s.isEnabled)return void r.preventDefault();let c;l&&(c=Array.from(l.getRanges()).filter((e=>e.root.is("rootElement"))).map((e=>i.toModelRange(e))).map((e=>Ba(e,t.schema)||e))),c&&c.length||(c=Array.from(n.getRanges()));let d=a;if(Y.isAndroid){const e=Array.from(c[0].getItems()).reduce(((e,t)=>e+(t.is("$textProxy")?t.data:"")),"");if(e&&(e.length<=d.length?d.startsWith(e)&&(d=d.substring(e.length),c[0].start=c[0].start.getShiftedBy(e.length)):e.startsWith(d)&&(c[0].start=c[0].start.getShiftedBy(d.length),d="")),0==d.length&&c[0].isCollapsed)return}const u={text:d,selection:t.createSelection(c)};this._typingQueue.push(u,Boolean(r.isComposing)),r.domEvent.defaultPrevented&&this._typingQueue.flush("beforeinput default prevented")})),Y.isAndroid?this.listenTo(o.document,"keydown",((e,i)=>{!n.isCollapsed&&229==i.keyCode&&o.document.isComposing&&wg(t,s)})):this.listenTo(o.document,"compositionstart",(()=>{n.isCollapsed||wg(t,s)}),{priority:"high"}),this.listenTo(o.document,"mutations",((e,{mutations:t})=>{if(this._typingQueue.hasAffectedElements())for(const{node:e}of t){const t=yg(e,i),o=i.toModelElement(t);if(this._typingQueue.isElementAffected(o))return void this._typingQueue.flush("mutations")}})),this.listenTo(o.document,"compositionend",(()=>{this._typingQueue.flush("before composition end")}),{priority:"high"}),this.listenTo(o.document,"compositionend",(()=>{this._typingQueue.flush("after composition end");const e=[];if(this._typingQueue.hasAffectedElements())for(const t of this._typingQueue.flushAffectedElements()){const o=i.toViewElement(t);o&&e.push({type:"children",node:o})}!e.length&&Y.isAndroid||o.document.fire("mutations",{mutations:e})}),{priority:"lowest"})}destroy(){super.destroy(),this._typingQueue.destroy()}}class bg{editor;flushDebounced=zo((()=>this.flush("timeout")),50);_queue=[];_isComposing=!1;_affectedElements=new Set;constructor(e){this.editor=e}destroy(){for(this.flushDebounced.cancel(),this._affectedElements.clear();this._queue.length;)this.shift()}get length(){return this._queue.length}push(e,t){const o={text:e.text};if(e.selection){o.selectionRanges=[];for(const t of e.selection.getRanges())o.selectionRanges.push(Ts.fromRange(t)),this._affectedElements.add(t.start.parent)}this._queue.push(o),this._isComposing||=t,this.flushDebounced()}shift(){const e=this._queue.shift(),t={text:e.text};if(e.selectionRanges){const o=e.selectionRanges.map((e=>function(e){const t=e.toRange();if(e.detach(),"$graveyard"==t.root.rootName)return null;return t}(e))).filter((e=>!!e));o.length&&(t.selection=this.editor.model.createSelection(o))}return t}flush(e){const t=this.editor,o=t.model,i=t.editing.view;if(this.flushDebounced.cancel(),!this._queue.length)return;const n=t.commands.get("insertText").buffer;o.enqueueChange(n.batch,(()=>{for(n.lock();this._queue.length;){const e=this.shift();t.execute("insertText",e)}n.unlock(),this._isComposing||this._affectedElements.clear(),this._isComposing=!1})),i.scrollToTheSelection()}isElementAffected(e){return this._affectedElements.has(e)}hasAffectedElements(){return this._affectedElements.size>0}flushAffectedElements(){const e=Array.from(this._affectedElements);return this._affectedElements.clear(),e}}function wg(e,t){if(!t.isEnabled)return;const o=t.buffer;o.lock(),e.enqueueChange(o.batch,(()=>{e.deleteContent(e.document.selection)})),o.unlock()}function yg(e,t){let o=e.is("$text")?e.parent:e;for(;!t.toModelElement(o);)o=o.parent;return o}class _g extends wc{direction;_buffer;constructor(e,t){super(e),this.direction=t,this._buffer=new ug(e.model,e.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(e={}){const t=this.editor.model,o=t.document;t.enqueueChange(this._buffer.batch,(i=>{this._buffer.lock();const n=i.createSelection(e.selection||o.selection);if(!t.canEditAt(n))return;const s=e.sequence||1,r=n.isCollapsed;if(n.isCollapsed&&t.modifySelection(n,{direction:this.direction,unit:e.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(s))return void this._replaceEntireContentWithParagraph(i);if(this._shouldReplaceFirstBlockWithParagraph(n,s))return void this.editor.execute("paragraph",{selection:n});if(n.isCollapsed)return;let a=0;n.getFirstRange().getMinimalFlatRanges().forEach((e=>{a+=He(e.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),t.deleteContent(n,{doNotResetEntireContent:r,direction:this.direction}),this._buffer.input(a),i.setSelection(n),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(e){if(e>1)return!1;const t=this.editor.model,o=t.document.selection,i=t.schema.getLimitElement(o);if(!(o.isCollapsed&&o.containsEntireContent(i)))return!1;if(!t.schema.checkChild(i,"paragraph"))return!1;const n=i.getChild(0);return!n||!n.is("element","paragraph")}_replaceEntireContentWithParagraph(e){const t=this.editor.model,o=t.document.selection,i=t.schema.getLimitElement(o),n=e.createElement("paragraph");e.remove(e.createRangeIn(i)),e.insert(n,i),e.setSelection(n,0)}_shouldReplaceFirstBlockWithParagraph(e,t){const o=this.editor.model;if(t>1||"backward"!=this.direction)return!1;if(!e.isCollapsed)return!1;const i=e.getFirstPosition(),n=o.schema.getLimitElement(i),s=n.getChild(0);return i.parent==s&&(!!e.containsEntireContent(s)&&(!!o.schema.checkChild(n,"paragraph")&&"paragraph"!=s.name))}}const kg="word",vg="selection",Cg="backward",Ag="forward",xg={deleteContent:{unit:vg,direction:Cg},deleteContentBackward:{unit:"codePoint",direction:Cg},deleteWordBackward:{unit:kg,direction:Cg},deleteHardLineBackward:{unit:vg,direction:Cg},deleteSoftLineBackward:{unit:vg,direction:Cg},deleteContentForward:{unit:"character",direction:Ag},deleteWordForward:{unit:kg,direction:Ag},deleteHardLineForward:{unit:vg,direction:Ag},deleteSoftLineForward:{unit:vg,direction:Ag}};class Eg extends Ln{constructor(e){super(e);const t=e.document;let o=0;t.on("keydown",(()=>{o++})),t.on("keyup",(()=>{o=0})),t.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;const{targetRanges:s,domEvent:r,inputType:a}=n,l=xg[a];if(!l)return;const c={direction:l.direction,unit:l.unit,sequence:o};c.unit==vg&&(c.selectionToRemove=e.createSelection(s[0])),"deleteContentBackward"===a&&(Y.isAndroid&&(c.sequence=1),function(e){if(1!=e.length||e[0].isCollapsed)return!1;const t=e[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let o=0;for(const{nextPosition:e,item:i}of t){if(e.parent.is("$text")){const t=e.parent.data,i=e.offset;if(ho(t,i)||mo(t,i)||po(t,i))continue;o++}else(i.is("containerElement")||i.is("emptyElement"))&&o++;if(o>1)return!0}return!1}(s)&&(c.unit=vg,c.selectionToRemove=e.createSelection(s)));const d=new Di(t,"delete",s[0]);t.fire(d,new zn(e,r,c)),d.stop.called&&i.stop()})),Y.isBlink&&function(e){const t=e.view,o=t.document;let i=null,n=!1;function s(e){return e==qt.backspace||e==qt.delete}function r(e){return e==qt.backspace?Cg:Ag}o.on("keydown",((e,{keyCode:t})=>{i=t,n=!1})),o.on("keyup",((a,{keyCode:l,domEvent:c})=>{const d=o.selection,u=e.isEnabled&&l==i&&s(l)&&!d.isCollapsed&&!n;if(i=null,u){const e=d.getFirstRange(),i=new Di(o,"delete",e),n={unit:vg,direction:r(l),selectionToRemove:d};o.fire(i,new zn(t,c,n))}})),o.on("beforeinput",((e,{inputType:t})=>{const o=xg[t];s(i)&&o&&o.direction==r(i)&&(n=!0)}),{priority:"high"}),o.on("beforeinput",((e,{inputType:t,data:o})=>{i==qt.delete&&"insertText"==t&&""==o&&e.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class Tg extends fc{_undoOnBackspace;static get pluginName(){return"Delete"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,i=e.model.document;t.addObserver(Eg),this._undoOnBackspace=!1;const n=new _g(e,"forward");e.commands.add("deleteForward",n),e.commands.add("forwardDelete",n),e.commands.add("delete",new _g(e,"backward")),this.listenTo(o,"delete",((i,n)=>{o.isComposing||n.preventDefault();const{direction:s,sequence:r,selectionToRemove:a,unit:l}=n,c="forward"===s?"deleteForward":"delete",d={sequence:r};if("selection"==l){const t=Array.from(a.getRanges()).map((t=>e.editing.mapper.toModelRange(t))).map((t=>Ba(t,e.model.schema)||t));d.selection=e.model.createSelection(t)}else d.unit=l;e.execute(c,d),t.scrollToTheSelection()}),{priority:"low"}),this.listenTo(o,"keydown",((n,s)=>{if(o.isComposing||s.keyCode!=qt.backspace||!i.selection.isCollapsed)return;const r=e.model.schema.getLimitElement(i.selection),a=e.model.createPositionAt(r,0);if(a.isTouching(i.selection.getFirstPosition())){s.preventDefault();const i=e.model.schema.getNearestSelectionRange(a,"forward");if(!i)return;const n=t.createSelection(e.editing.mapper.toViewRange(i)),r=n.getFirstRange(),l=new Di(document,"delete",r),c={unit:"selection",direction:"backward",selectionToRemove:n};o.fire(l,new zn(t,s.domEvent,c))}})),this.editor.plugins.has("UndoEditing")&&(this.listenTo(o,"delete",((t,o)=>{this._undoOnBackspace&&"backward"==o.direction&&1==o.sequence&&"codePoint"==o.unit&&(this._undoOnBackspace=!1,e.execute("undo"),o.preventDefault(),t.stop())}),{context:"$capture"}),this.listenTo(i,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class Pg extends fc{static get requires(){return[fg,Tg]}static get pluginName(){return"Typing"}static get isOfficialPlugin(){return!0}}function Sg(e,t){let o=e.start;return{text:Array.from(e.getWalker({ignoreElementEnd:!1})).reduce(((e,{item:i})=>i.is("$text")||i.is("$textProxy")?e+i.data:(o=t.createPositionAfter(i),"")),""),range:t.createRange(o,e.end)}}class Ig extends(Be()){model;testCallback;_hasMatch;constructor(e,t){super(),this.model=e,this.testCallback=t,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(e.document.selection),this.stopListening(e.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const e=this.model.document;this.listenTo(e.selection,"change:range",((t,{directChange:o})=>{o&&(e.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(e,"change:data",((e,t)=>{!t.isUndo&&t.isLocal&&this._evaluateTextBeforeSelection("data",{batch:t})}))}_evaluateTextBeforeSelection(e,t={}){const o=this.model,i=o.document.selection,n=o.createRange(o.createPositionAt(i.focus.parent,0),i.focus),{text:s,range:r}=Sg(n,o),a=this.testCallback(s);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const o=Object.assign(t,{text:s,range:r});"object"==typeof a&&Object.assign(o,a),this.fire(`matched:${e}`,o)}}}class Rg extends fc{attributes;_overrideUid;_isNextGravityRestorationSkipped=!1;static get pluginName(){return"TwoStepCaretMovement"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.attributes=new Set,this._overrideUid=null}init(){const e=this.editor,t=e.model,o=e.editing.view,i=e.locale,n=t.document.selection;this.listenTo(o.document,"arrowKey",((e,t)=>{if(!n.isCollapsed)return;if(t.shiftKey||t.altKey||t.ctrlKey)return;const o=t.keyCode==qt.arrowright,s=t.keyCode==qt.arrowleft;if(!o&&!s)return;const r=i.contentLanguageDirection;let a=!1;a="ltr"===r&&o||"rtl"===r&&s?this._handleForwardMovement(t):this._handleBackwardMovement(t),!0===a&&e.stop()}),{context:"$text",priority:"highest"}),this.listenTo(n,"change:range",((e,t)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!t.directChange&&Ng(n.getFirstPosition(),this.attributes)||this._restoreGravity())})),this._enableClickingAfterNode(),this._enableInsertContentSelectionAttributesFixer(),this._handleDeleteContentAfterNode()}registerAttribute(e){this.attributes.add(e)}_handleForwardMovement(e){const t=this.attributes,o=this.editor.model,i=o.document.selection,n=i.getFirstPosition();return!this._isGravityOverridden&&((!n.isAtStart||!Og(i,t))&&(!!Ng(n,t)&&(e&&Fg(e),Og(i,t)&&Ng(n,t,!0)?Dg(o,t):this._overrideGravity(),!0)))}_handleBackwardMovement(e){const t=this.attributes,o=this.editor.model,i=o.document.selection,n=i.getFirstPosition();return this._isGravityOverridden?(e&&Fg(e),this._restoreGravity(),Ng(n,t,!0)?Dg(o,t):Vg(o,t,n),!0):n.isAtStart?!!Og(i,t)&&(e&&Fg(e),Vg(o,t,n),!0):!Og(i,t)&&Ng(n,t,!0)?(e&&Fg(e),Vg(o,t,n),!0):!!Mg(n,t)&&(n.isAtEnd&&!Og(i,t)&&Ng(n,t)?(e&&Fg(e),Vg(o,t,n),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1))}_enableClickingAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,i=e.editing.view.document;e.editing.view.addObserver(il),e.editing.view.addObserver(nl);let n=!1,s=!1;this.listenTo(i,"touchstart",(()=>{s=!1,n=!0})),this.listenTo(i,"mousedown",(()=>{s=!0})),this.listenTo(i,"selectionChange",(()=>{const e=this.attributes;if(!s&&!n)return;if(s=!1,n=!1,!o.isCollapsed)return;if(!Og(o,e))return;const i=o.getFirstPosition();Ng(i,e)&&(i.isAtStart||Ng(i,e,!0)?Dg(t,e):this._isGravityOverridden||this._overrideGravity())}))}_enableInsertContentSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection,o=this.attributes;this.listenTo(e,"insertContent",(()=>{const i=t.getFirstPosition();Og(t,o)&&Ng(i,o)&&Dg(e,o)}),{priority:"low"})}_handleDeleteContentAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,i=e.editing.view;let n=!1,s=!1;this.listenTo(i.document,"delete",((e,t)=>{n="backward"===t.direction}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{if(!n)return;const e=o.getFirstPosition();s=Og(o,this.attributes)&&!Mg(e,this.attributes)}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{n&&(n=!1,s||e.model.enqueueChange((()=>{const e=o.getFirstPosition();Og(o,this.attributes)&&Ng(e,this.attributes)&&(e.isAtStart||Ng(e,this.attributes,!0)?Dg(t,this.attributes):this._isGravityOverridden||this._overrideGravity())})))}),{priority:"low"})}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((e=>e.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((e=>{e.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function Og(e,t){for(const o of t)if(e.hasAttribute(o))return!0;return!1}function Vg(e,t,o){const i=o.nodeBefore;e.change((o=>{if(i){const t=[],n=e.schema.isObject(i)&&e.schema.isInline(i);for(const[o,s]of i.getAttributes())!e.schema.checkAttribute("$text",o)||n&&!1===e.schema.getAttributeProperties(o).copyFromObject||t.push([o,s]);o.setSelectionAttribute(t)}else o.removeSelectionAttribute(t)}))}function Dg(e,t){e.change((e=>{e.removeSelectionAttribute(t)}))}function Fg(e){e.preventDefault()}function Mg(e,t){return Ng(e.getShiftedBy(-1),t)}function Ng(e,t,o=!1){const{nodeBefore:i,nodeAfter:n}=e;for(const e of t){const t=i?i.getAttribute(e):void 0,s=n?n.getAttribute(e):void 0;if((!o||void 0!==t&&void 0!==s)&&s!==t)return!0}return!1}Bg('"'),Bg("'"),Bg("'"),Bg('"'),Bg('"'),Bg("'");function Bg(e){return new RegExp(`(^|\\s)(${e})([^${e}]*)(${e})$`)}function Lg(e,t,o,i){return i.createRange(zg(e,t,o,!0,i),zg(e,t,o,!1,i))}function zg(e,t,o,i,n){let s=e.textNode||(i?e.nodeBefore:e.nodeAfter),r=null;for(;s&&s.getAttribute(t)==o;)r=s,s=i?s.previousSibling:s.nextSibling;return r?n.createPositionAt(r,i?"before":"after"):e}function jg(e,t,o,i){const n=e.editing.view,s=new Set;n.document.registerPostFixer((n=>{const r=e.model.document.selection;let a=!1;if(r.hasAttribute(t)){const l=Lg(r.getFirstPosition(),t,r.getAttribute(t),e.model),c=e.editing.mapper.toViewRange(l);for(const e of c.getItems())e.is("element",o)&&!e.hasClass(i)&&(n.addClass(i,e),s.add(e),a=!0)}return a})),e.conversion.for("editingDowncast").add((e=>{function t(){n.change((e=>{for(const t of s.values())e.removeClass(i,t),s.delete(t)}))}e.on("insert",t,{priority:"highest"}),e.on("remove",t,{priority:"highest"}),e.on("attribute",t,{priority:"highest"}),e.on("selection",t,{priority:"highest"})}))}function*qg(e,t){for(const o of t)o&&e.getAttributeProperties(o[0]).copyOnEnter&&(yield o)}class $g extends wc{execute(){this.editor.model.change((e=>{this.enterBlock(e),this.fire("afterExecute",{writer:e})}))}enterBlock(e){const t=this.editor.model,o=t.document.selection,i=t.schema,n=o.isCollapsed,s=o.getFirstRange(),r=s.start.parent,a=s.end.parent;if(i.isLimit(r)||i.isLimit(a))return n||r!=a||t.deleteContent(o),!1;if(n){const t=qg(e.model.schema,o.getAttributes());return Hg(e,s.start),e.setSelectionAttribute(t),!0}{const i=!(s.start.isAtStart&&s.end.isAtEnd),n=r==a;if(t.deleteContent(o,{leaveUnmerged:i}),i){if(n)return Hg(e,o.focus),!0;e.setSelection(a,0)}}return!1}}function Hg(e,t){e.split(t),e.setSelection(t.parent.nextSibling,0)}const Wg={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class Ug extends Ln{constructor(e){super(e);const t=this.document;let o=!1;t.on("keydown",((e,t)=>{o=t.shiftKey})),t.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;let s=n.inputType;Y.isSafari&&o&&"insertParagraph"==s&&(s="insertLineBreak");const r=n.domEvent,a=Wg[s];if(!a)return;const l=new Di(t,"enter",n.targetRanges[0]);t.fire(l,new zn(e,r,{isSoft:a.isSoft})),l.stop.called&&i.stop()}))}observe(){}stopObserving(){}}class Kg extends fc{static get pluginName(){return"Enter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,i=this.editor.t;t.addObserver(Ug),e.commands.add("enter",new $g(e)),this.listenTo(o,"enter",((i,n)=>{o.isComposing||n.preventDefault(),n.isSoft||(e.execute("enter"),t.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:i("Insert a hard break (a new paragraph)"),keystroke:"Enter"}]})}}class Gg extends wc{execute(){const e=this.editor.model,t=e.document;e.change((o=>{!function(e,t,o){const i=o.isCollapsed,n=o.getFirstRange(),s=n.start.parent,r=n.end.parent,a=s==r;if(i){const i=qg(e.schema,o.getAttributes());Jg(e,t,n.end),t.removeSelectionAttribute(o.getAttributeKeys()),t.setSelectionAttribute(i)}else{const i=!(n.start.isAtStart&&n.end.isAtEnd);e.deleteContent(o,{leaveUnmerged:i}),a?Jg(e,t,o.focus):i&&t.setSelection(r,0)}}(e,o,t.selection),this.fire("afterExecute",{writer:o})}))}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=function(e,t){if(t.rangeCount>1)return!1;const o=t.anchor;if(!o||!e.checkChild(o,"softBreak"))return!1;const i=t.getFirstRange(),n=i.start.parent,s=i.end.parent;if((Zg(n,e)||Zg(s,e))&&n!==s)return!1;return!0}(e.schema,t.selection)}}function Jg(e,t,o){const i=t.createElement("softBreak");e.insertContent(i,o),t.setSelection(i,"after")}function Zg(e,t){return!e.is("rootElement")&&(t.isLimit(e)||Zg(e.parent,t))}class Qg extends fc{static get pluginName(){return"ShiftEnter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.conversion,i=e.editing.view,n=i.document,s=this.editor.t;t.register("softBreak",{allowWhere:"$text",isInline:!0}),o.for("upcast").elementToElement({model:"softBreak",view:"br"}),o.for("downcast").elementToElement({model:"softBreak",view:(e,{writer:t})=>t.createEmptyElement("br")}),i.addObserver(Ug),e.commands.add("shiftEnter",new Gg(e)),this.listenTo(n,"enter",((t,o)=>{n.isComposing||o.preventDefault(),o.isSoft&&(e.execute("shiftEnter"),i.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:s("Insert a soft break (a <br> element)"),keystroke:"Shift+Enter"}]})}}class Yg extends(xe()){_stack=[];add(e,t){const o=this._stack,i=o[0];this._insertDescriptor(e);const n=o[0];i===n||Xg(i,n)||this.fire("change:top",{oldDescriptor:i,newDescriptor:n,writer:t})}remove(e,t){const o=this._stack,i=o[0];this._removeDescriptor(e);const n=o[0];i===n||Xg(i,n)||this.fire("change:top",{oldDescriptor:i,newDescriptor:n,writer:t})}_insertDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e.id));if(Xg(e,t[o]))return;o>-1&&t.splice(o,1);let i=0;for(;t[i]&&ep(t[i],e);)i++;t.splice(i,0,e)}_removeDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e));o>-1&&t.splice(o,1)}}function Xg(e,t){return e&&t&&e.priority==t.priority&&tp(e.classes)==tp(t.classes)}function ep(e,t){return e.priority>t.priority||!(e.prioritytp(t.classes)}function tp(e){return Array.isArray(e)?e.sort().join(","):e}const op="ck-widget_selected";function ip(e){return!!e.is("element")&&!!e.getCustomProperty("widget")}function np(e,t,o={}){if(!e.is("containerElement"))throw new fe("widget-to-widget-wrong-element-type",null,{element:e});return t.setAttribute("contenteditable","false",e),t.addClass("ck-widget",e),t.setCustomProperty("widget",!0,e),e.getFillerOffset=dp,t.setCustomProperty("widgetLabel",[],e),o.label&&function(e,t){const o=e.getCustomProperty("widgetLabel");o.push(t)}(e,o.label),o.hasSelectionHandle&&function(e,t){const o=t.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(e){const t=this.toDomElement(e),o=new Nu;return o.set("content",Wc),o.render(),t.appendChild(o.element),t}));t.insert(t.createPositionAt(e,0),o),t.addClass(["ck-widget_with-selection-handle"],e)}(e,t),ap(e,t),e}function sp(e,t,o){if(t.classes&&o.addClass(Qt(t.classes),e),t.attributes)for(const i in t.attributes)o.setAttribute(i,t.attributes[i],e)}function rp(e,t,o){if(t.classes&&o.removeClass(Qt(t.classes),e),t.attributes)for(const i in t.attributes)o.removeAttribute(i,e)}function ap(e,t,o=sp,i=rp){const n=new Yg;n.on("change:top",((t,n)=>{n.oldDescriptor&&i(e,n.oldDescriptor,n.writer),n.newDescriptor&&o(e,n.newDescriptor,n.writer)}));t.setCustomProperty("addHighlight",((e,t,o)=>n.add(t,o)),e),t.setCustomProperty("removeHighlight",((e,t,o)=>n.remove(t,o)),e)}function lp(e,t,o={}){return t.addClass(["ck-editor__editable","ck-editor__nested-editable"],e),!1!==o.withAriaRole&&t.setAttribute("role","textbox",e),e.isReadOnly||t.setAttribute("tabindex","-1",e),o.label&&t.setAttribute("aria-label",o.label,e),t.setAttribute("contenteditable",e.isReadOnly?"false":"true",e),e.on("change:isReadOnly",((o,i,n)=>{t.setAttribute("contenteditable",n?"false":"true",e),n?t.removeAttribute("tabindex",e):t.setAttribute("tabindex","-1",e)})),e.on("change:isFocused",((o,i,n)=>{n?t.addClass("ck-editor__nested-editable_focused",e):t.removeClass("ck-editor__nested-editable_focused",e)})),ap(e,t),e}function cp(e,t){const o=e.getSelectedElement();if(o){const i=gp(e);if(i)return t.createRange(t.createPositionAt(o,i))}return t.schema.findOptimalInsertionRange(e)}function dp(){return null}function up(e){const t=e=>{const{width:t,paddingLeft:o,paddingRight:i}=e.ownerDocument.defaultView.getComputedStyle(e);return parseFloat(t)-(parseFloat(o)||0)-(parseFloat(i)||0)},o=e.parentElement;if(!o)return 0;let i=t(o);let n=0,s=o;for(;isNaN(i);){if(s=s.parentElement,++n>5)return 0;i=t(s)}return i}const hp="widget-type-around";function mp(e,t,o){return!!e&&ip(e)&&!o.isInline(t)}function gp(e){return e.getAttribute(hp)}const pp=["before","after"],fp=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,bp="ck-widget__type-around_disabled";class wp extends fc{_currentFakeCaretModelElement=null;static get pluginName(){return"WidgetTypeAround"}static get isOfficialPlugin(){return!0}static get requires(){return[Kg,Tg]}init(){const e=this.editor,t=e.editing.view;this.on("change:isEnabled",((o,i,n)=>{t.change((e=>{for(const o of t.document.roots)n?e.removeClass(bp,o):e.addClass(bp,o)})),n||e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(e,t){const o=this.editor,i=o.editing.view,n=o.model.schema.getAttributesWithProperty(e,"copyOnReplace",!0);o.execute("insertParagraph",{position:o.model.createPositionAt(e,t),attributes:n}),i.focus(),i.scrollToTheSelection()}_listenToIfEnabled(e,t,o,i){this.listenTo(e,t,((...e)=>{this.isEnabled&&o(...e)}),i)}_insertParagraphAccordingToFakeCaretPosition(){const e=this.editor.model.document.selection,t=gp(e);if(!t)return!1;const o=e.getSelectedElement();return this._insertParagraph(o,t),!0}_enableTypeAroundUIInjection(){const e=this.editor,t=e.model.schema,o=e.locale.t,i={before:o("Insert paragraph before block"),after:o("Insert paragraph after block")};e.editing.downcastDispatcher.on("insert",((e,n,s)=>{const r=s.mapper.toViewElement(n.item);if(r&&mp(r,n.item,t)){!function(e,t,o){const i=e.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(e){const o=this.toDomElement(e);return function(e,t){for(const o of pp){const i=new ou({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${o}`],title:t[o],"aria-hidden":"true"},children:[e.ownerDocument.importNode(fp,!0)]});e.appendChild(i.render())}}(o,t),function(e){const t=new ou({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});e.appendChild(t.render())}(o),o}));e.insert(e.createPositionAt(o,"end"),i)}(s.writer,i,r);r.getCustomProperty("widgetLabel").push((()=>this.isEnabled?o("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const e=this.editor,t=e.model,o=t.document.selection,i=t.schema,n=e.editing.view;function s(e){return`ck-widget_type-around_show-fake-caret_${e}`}this._listenToIfEnabled(n.document,"arrowKey",((e,t)=>{this._handleArrowKeyPress(e,t)}),{context:[ip,"$text"],priority:"high"}),this._listenToIfEnabled(o,"change:range",((t,o)=>{o.directChange&&e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._listenToIfEnabled(t.document,"change:data",(()=>{const t=o.getSelectedElement();if(t){if(mp(e.editing.mapper.toViewElement(t),t,i))return}e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._listenToIfEnabled(e.editing.downcastDispatcher,"selection",((e,t,o)=>{const n=o.writer;if(this._currentFakeCaretModelElement){const e=o.mapper.toViewElement(this._currentFakeCaretModelElement);e&&(n.removeClass(pp.map(s),e),this._currentFakeCaretModelElement=null)}const r=t.selection.getSelectedElement();if(!r)return;const a=o.mapper.toViewElement(r);if(!mp(a,r,i))return;const l=gp(t.selection);l&&(n.addClass(s(l),a),this._currentFakeCaretModelElement=r)})),this._listenToIfEnabled(e.ui.focusTracker,"change:isFocused",((t,o,i)=>{i||e.model.change((e=>{e.removeSelectionAttribute(hp)}))}))}_handleArrowKeyPress(e,t){const o=this.editor,i=o.model,n=i.document.selection,s=i.schema,r=o.editing.view;if(t.shiftKey)return;const a=function(e,t){const o=Kt(e,t);return"down"===o||"right"===o}(t.keyCode,o.locale.contentLanguageDirection),l=r.document.selection.getSelectedElement();let c;mp(l,o.editing.mapper.toModelElement(l),s)?c=this._handleArrowKeyPressOnSelectedWidget(a):n.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):t.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(t.preventDefault(),e.stop())}_handleArrowKeyPressOnSelectedWidget(e){const t=this.editor.model,o=gp(t.document.selection);return t.change((t=>{if(!o)return t.setSelectionAttribute(hp,e?"after":"before"),!0;if(!(o===(e?"after":"before")))return t.removeSelectionAttribute(hp),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(e){const t=this.editor,o=t.model,i=o.schema,n=t.plugins.get("Widget"),s=n._getObjectElementNextToSelection(e);return!!mp(t.editing.mapper.toViewElement(s),s,i)&&(o.change((t=>{n._setSelectionOverElement(s),t.setSelectionAttribute(hp,e?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(e){const t=this.editor,o=t.model,i=o.schema,n=t.editing.mapper,s=o.document.selection,r=e?s.getLastPosition().nodeBefore:s.getFirstPosition().nodeAfter;return!!mp(n.toViewElement(r),r,i)&&(o.change((t=>{t.setSelection(r,"on"),t.setSelectionAttribute(hp,e?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const e=this.editor,t=e.editing.view;this._listenToIfEnabled(t.document,"mousedown",((o,i)=>{const n=i.domTarget.closest(".ck-widget__type-around__button");if(!n)return;const s=function(e){return e.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(n),r=function(e,t){const o=e.closest(".ck-widget");return t.mapDomToView(o)}(n,t.domConverter),a=e.editing.mapper.toModelElement(r);this._insertParagraph(a,s),i.preventDefault(),o.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const e=this.editor,t=e.model.document.selection,o=e.editing.view;this._listenToIfEnabled(o.document,"enter",((o,i)=>{if("atTarget"!=o.eventPhase)return;const n=t.getSelectedElement(),s=e.editing.mapper.toViewElement(n),r=e.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:mp(s,n,r)&&(this._insertParagraph(n,i.isSoft?"before":"after"),a=!0),a&&(i.preventDefault(),o.stop())}),{context:ip})}_enableInsertingParagraphsOnTypingKeystroke(){const e=this.editor.editing.view.document;this._listenToIfEnabled(e,"insertText",((t,o)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(o.selection=e.selection)}),{priority:"high"}),Y.isAndroid?this._listenToIfEnabled(e,"keydown",((e,t)=>{229==t.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(e,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"highest"})}_enableDeleteIntegration(){const e=this.editor,t=e.editing.view,o=e.model,i=o.schema;this._listenToIfEnabled(t.document,"delete",((t,n)=>{if("atTarget"!=t.eventPhase)return;const s=gp(o.document.selection);if(!s)return;const r=n.direction,a=o.document.selection.getSelectedElement(),l="forward"==r;if("before"===s===l)e.execute("delete",{selection:o.createSelection(a,"on")});else{const t=i.getNearestSelectionRange(o.createPositionAt(a,s),r);if(t)if(t.isCollapsed){const n=o.createSelection(t.start);if(o.modifySelection(n,{direction:r}),n.focus.isEqual(t.start)){const e=function(e,t){let o=t;for(const i of t.getAncestors({parentFirst:!0})){if(i.childCount>1||e.isLimit(i))break;o=i}return o}(i,t.start.parent);o.deleteContent(o.createSelection(e,"on"),{doNotAutoparagraph:!0})}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}n.preventDefault(),t.stop()}),{context:ip})}_enableInsertContentIntegration(){const e=this.editor,t=this.editor.model,o=t.document.selection;this._listenToIfEnabled(e.model,"insertContent",((e,[i,n])=>{if(n&&!n.is("documentSelection"))return;const s=gp(o);return s?(e.stop(),t.change((e=>{const n=o.getSelectedElement(),r=t.createPositionAt(n,s),a=e.createSelection(r),l=t.insertContent(i,a);return e.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"insertObject",((e,o)=>{const[,i,n={}]=o;if(i&&!i.is("documentSelection"))return;const s=gp(t);s&&(n.findOptimalPosition=s,o[3]=n)}),{priority:"high"})}_enableDeleteContentIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"deleteContent",((e,[o])=>{if(o&&!o.is("documentSelection"))return;gp(t)&&e.stop()}),{priority:"high"})}}function yp(e){const t=e.model;return(o,i)=>{const n=i.keyCode==qt.arrowup,s=i.keyCode==qt.arrowdown,r=i.shiftKey,a=t.document.selection;if(!n&&!s)return;const l=s,c=function(e,t,o){const i=e.model;if(o){const e=t.focus,o=_p(i,e,"forward");if(!o)return;const n=i.createRange(e,o),s=kp(i.schema,n,"backward");if(s)return i.createRange(e,s)}else{const e=t.focus,o=_p(i,e,"backward");if(!o)return;const n=i.createRange(o,e),s=kp(i.schema,n,"forward");if(s)return i.createRange(s,e)}}(e,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(r)return}(c.isCollapsed||function(e,t,o){const i=e.model,n=e.view.domConverter;if(o){const e=i.createSelection(t.start);i.modifySelection(e),e.focus.isAtEnd||t.start.isEqual(e.focus)||(t=i.createRange(e.focus,t.end))}const s=e.mapper.toViewRange(t),r=n.viewRangeToDom(s),a=ut.getDomRangeRects(r);let l;for(const e of a)if(void 0!==l){if(Math.round(e.top)>=l)return!1;l=Math.max(l,Math.round(e.bottom))}else l=Math.round(e.bottom);return!0}(e,c,l))&&(t.change((e=>{const o=l?c.end:c.start;if(r){const i=t.createSelection(a.anchor);i.setFocus(o),e.setSelection(i)}else e.setSelection(o)})),o.stop(),i.preventDefault(),i.stopPropagation())}}}function _p(e,t,o){const i=e.schema,n=e.createRangeIn(t.root),s="forward"==o?"elementStart":"elementEnd";for(const{previousPosition:e,item:r,type:a}of n.getWalker({startPosition:t,direction:o})){if(i.isLimit(r)&&!i.isInline(r))return e;if(a==s&&i.isBlock(r))return null}return null}function kp(e,t,o){const i="backward"==o?t.end:t.start;if(e.checkChild(i,"$text"))return i;for(const{nextPosition:i}of t.getWalker({direction:o}))if(e.checkChild(i,"$text"))return i}class vp extends fc{_previouslySelected=new Set;static get pluginName(){return"Widget"}static get isOfficialPlugin(){return!0}static get requires(){return[wp,Tg]}init(){const e=this.editor,t=e.editing.view,o=t.document,i=e.t;this.editor.editing.downcastDispatcher.on("selection",((t,o,i)=>{const n=i.writer,s=o.selection;if(s.isCollapsed)return;const r=s.getSelectedElement();if(!r)return;const a=e.editing.mapper.toViewElement(r);var l;ip(a)&&(i.consumable.consume(s,"selection")&&n.setSelection(n.createRangeOn(a),{fake:!0,label:(l=a,l.getCustomProperty("widgetLabel").reduce(((e,t)=>"function"==typeof t?e?e+". "+t():t():e?e+". "+t:t),""))}))})),this.editor.editing.downcastDispatcher.on("selection",((e,t,o)=>{this._clearPreviouslySelectedWidgets(o.writer);const i=o.writer,n=i.document.selection;let s=null;for(const e of n.getRanges())for(const t of e){const e=t.item;ip(e)&&!Cp(e,s)&&(i.addClass(op,e),this._previouslySelected.add(e),s=e)}}),{priority:"low"}),t.addObserver(il),t.addObserver(sl),this.listenTo(o,"mousedown",((...e)=>this._onMousedown(...e))),this.listenTo(o,"pointerdown",((...e)=>this._onPointerdown(...e))),this.listenTo(o,"arrowKey",((...e)=>{this._handleSelectionChangeOnArrowKeyPress(...e)}),{context:[ip,"$text"]}),this.listenTo(o,"arrowKey",((...e)=>{this._preventDefaultOnArrowKeyPress(...e)}),{context:"$root"}),this.listenTo(o,"arrowKey",yp(this.editor.editing),{context:"$text"}),this.listenTo(o,"delete",((e,t)=>{this._handleDelete("forward"==t.direction)&&(t.preventDefault(),e.stop())}),{context:"$root"}),this.listenTo(o,"tab",((e,o)=>{this._selectNextEditable(o.shiftKey?"backward":"forward")&&(t.scrollToTheSelection(),o.preventDefault(),e.stop())}),{context:e=>ip(e)||e.is("editableElement"),priority:"low"}),this.listenTo(o,"keydown",((e,t)=>{t.keystroke==qt.esc&&this._selectAncestorWidget()&&(t.preventDefault(),e.stop())}),{context:e=>e.is("editableElement"),priority:"low"}),e.accessibility.addKeystrokeInfoGroup({id:"widget",label:i("Keystrokes that can be used when a widget is selected (for example: image, table, etc.)"),keystrokes:[{label:i("Move focus from an editable area back to the parent widget"),keystroke:"Esc"},{label:i("Insert a new paragraph directly after a widget"),keystroke:"Enter"},{label:i("Insert a new paragraph directly before a widget"),keystroke:"Shift+Enter"},{label:i("Move the caret to allow typing directly before a widget"),keystroke:[["arrowup"],["arrowleft"]]},{label:i("Move the caret to allow typing directly after a widget"),keystroke:[["arrowdown"],["arrowright"]]}]})}_onMousedown(e,t){const o=t.target;o&&t.domEvent.detail>=3&&this._selectBlockContent(o)&&t.preventDefault()}_onPointerdown(e,t){if(!t.domEvent.isPrimary)return;const o=this.editor,i=o.editing.view,n=i.document;let s=t.target;if(!s)return;if(!ip(s)){const e=function(e){let t=e;for(;t;){if(t.is("editableElement")||ip(t))return t;t=t.parent}return null}(s);if(!e)return;if(ip(e))s=e;else{const e=function(e,t){const o=st(t.domEvent);let i=null;i=o?e.domConverter.domRangeToView(o):e.createRange(e.createPositionAt(t.target,0));if(!i)return null;const n=i.start;if(!n.parent)return null;let s=n.parent;n.parent.is("editableElement")&&(n.isAtEnd&&n.nodeBefore?s=n.nodeBefore:n.isAtStart&&n.nodeAfter&&(s=n.nodeAfter));if(s.is("$text"))return s.parent;return s}(i,t);if(!e||!ip(e))return;s=e}}(Y.isAndroid||Y.isiOS)&&t.preventDefault(),n.isFocused||i.focus();const r=o.editing.mapper.toModelElement(s);this._setSelectionOverElement(r)}_selectBlockContent(e){const t=this.editor,o=t.model,i=t.editing.mapper,n=o.schema,s=i.findMappedViewAncestor(this.editor.editing.view.createPositionAt(e,0)),r=function(e,t){for(const o of e.getAncestors({includeSelf:!0,parentFirst:!0})){if(t.checkChild(o,"$text"))return o;if(t.isLimit(o)&&!t.isObject(o))break}return null}(i.toModelElement(s),o.schema);return!!r&&(o.change((e=>{const t=n.isLimit(r)?null:function(e,t){const o=new is({startPosition:e});for(const{item:e}of o){if(t.isLimit(e)||!e.is("element"))return null;if(t.checkChild(e,"$text"))return e}return null}(e.createPositionAfter(r),n),o=e.createPositionAt(r,0),i=t?e.createPositionAt(t,0):e.createPositionAt(r,"end");e.setSelection(e.createRange(o,i))})),!0)}_handleSelectionChangeOnArrowKeyPress(e,t){const o=t.keyCode,i=this.editor.model,n=i.schema,s=i.document.selection,r=s.getSelectedElement(),a=Kt(o,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(!t.shiftKey&&!s.isCollapsed){if(function(e,t){const o=e.getFirstPosition(),i=e.getLastPosition(),n=o.nodeAfter,s=i.nodeBefore;return!!n&&t.isObject(n)||!!s&&t.isObject(s)}(s,n)){const o=l?s.getLastPosition():s.getFirstPosition(),r=n.getNearestSelectionRange(o,l?"forward":"backward");r&&(i.change((e=>{e.setSelection(r)})),t.preventDefault(),e.stop())}return}const d=function(e,t){const o=e.document.selection,i=o.getSelectedElement(),n=gp(o);if(i&&"before"==n)return e.createSelection(i,"before");if(i&&"after"==n)return e.createSelection(i,"after");return e.createSelection(o.getRanges(),{backward:i&&e.schema.isObject(i)?!t:o.isBackward})}(i,l),u=i.createSelection(d);if(i.modifySelection(u,{direction:l?"forward":"backward"}),u.isEqual(d))return;u.focus.isTouching(d.focus)&&n.checkChild(u.focus.parent,"$text")&&(l?!u.focus.isAtEnd:!u.focus.isAtStart)&&i.modifySelection(u,{direction:l?"forward":"backward"});const h=l?d.focus.nodeBefore:d.focus.nodeAfter,m=u.focus.nodeBefore,g=u.focus.nodeAfter,p=l?m:g;if(t.shiftKey)(r&&n.isObject(r)||p&&n.isObject(p)||h&&n.isObject(h))&&(i.change((e=>{e.setSelection(u)})),t.preventDefault(),e.stop());else if(p&&n.isObject(p)){if(n.isInline(p)&&c)return;i.change((e=>{e.setSelection(p,"on")})),t.preventDefault(),e.stop()}}_preventDefaultOnArrowKeyPress(e,t){const o=this.editor.model,i=o.schema,n=o.document.selection.getSelectedElement();n&&i.isObject(n)&&(t.preventDefault(),e.stop())}_handleDelete(e){const t=this.editor.model.document.selection;if(!this.editor.model.canEditAt(t))return;if(!t.isCollapsed)return;const o=this._getObjectElementNextToSelection(e);return o?(this.editor.model.change((e=>{let i=t.anchor.parent;for(;i.isEmpty;){const t=i;i=t.parent,e.remove(t)}this._setSelectionOverElement(o)})),!0):void 0}_setSelectionOverElement(e){this.editor.model.change((t=>{t.setSelection(t.createRangeOn(e))}))}_getObjectElementNextToSelection(e){const t=this.editor.model,o=t.schema,i=t.document.selection,n=t.createSelection(i);if(t.modifySelection(n,{direction:e?"forward":"backward"}),n.isEqual(i))return null;const s=e?n.focus.nodeBefore:n.focus.nodeAfter;return s&&o.isObject(s)?s:null}_clearPreviouslySelectedWidgets(e){for(const t of this._previouslySelected)e.removeClass(op,t);this._previouslySelected.clear()}_selectNextEditable(e){const t=this.editor.editing,o=t.view,i=this.editor.model,n=o.document.selection,s=i.document.selection;let r;if(s.rangeCount>1){const o=s.isBackward?s.getFirstRange():s.getLastRange();r=t.mapper.toViewPosition("forward"==e?o.end:o.start)}else r="forward"==e?n.getFirstPosition():n.getLastPosition();const a=this._findNextFocusRange(r,e);return!!a&&(i.change((e=>{e.setSelection(a)})),!0)}_findNextFocusRange(e,t){const o=this.editor.editing,i=o.view,n=this.editor.model,s=i.document.selection,r=s.editableElement,a=r.getPath();let l=s.getSelectedElement();l&&!ip(l)&&(l=null);const c="forward"==t?i.createRange(e,i.createPositionAt(e.root,"end")):i.createRange(i.createPositionAt(e.root,0),e);for(const{nextPosition:e}of c.getWalker({direction:t})){const i=e.parent;if(ip(i)&&i!=l){const e=o.mapper.toModelElement(i);if(!n.schema.isBlock(e))continue;if("extension"!=We(a,i.getPath()))return n.createRangeOn(e)}else if(i.is("editableElement")){if(i==r&&!l)continue;const s=o.mapper.toModelPosition(e),c=n.schema.getNearestSelectionRange(s,t);if(!c)continue;return i==r&&l?c:"extension"!=We(a,i.getPath())?n.createRangeIn(n.schema.getLimitElement(c)):c}}return null}_selectAncestorWidget(){const e=this.editor,t=e.editing.mapper,o=e.editing.view.document.selection.getFirstPosition().parent,i=(o.is("$text")?o.parent:o).findAncestor(ip);if(!i)return!1;const n=t.toModelElement(i);return!!n&&(e.model.change((e=>{e.setSelection(n,"on")})),!0)}}function Cp(e,t){return!!t&&Array.from(e.getAncestors()).includes(t)}class Ap extends fc{_toolbarDefinitions=new Map;_balloon;static get requires(){return[Qm]}static get pluginName(){return"WidgetToolbarRepository"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;if(e.plugins.has("BalloonToolbar")){const t=e.plugins.get("BalloonToolbar");this.listenTo(t,"show",(t=>{(function(e){const t=e.getSelectedElement();return!(!t||!ip(t))})(e.editing.view.document.selection)&&t.stop()}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const e of this._toolbarDefinitions.values())e.view.destroy()}register(e,{ariaLabel:t,items:o,getRelatedElement:i,balloonClassName:n="ck-toolbar-container",positions:s}){if(!o.length)return void be("widget-toolbar-no-items",{toolbarId:e});const r=this.editor,a=r.t,l=new Wh(r.locale);if(l.ariaLabel=t||a("Widget toolbar"),this._toolbarDefinitions.has(e))throw new fe("widget-toolbar-duplicated",this,{toolbarId:e});const c={view:l,getRelatedElement:i,balloonClassName:n,itemsConfig:o,positions:s,initialized:!1};r.ui.addToolbar(l,{isContextual:!0,beforeFocus:()=>{const e=i(r.editing.view.document.selection);e&&this._showToolbar(c,e)},afterBlur:()=>{this._hideToolbar(c)}}),this._toolbarDefinitions.set(e,c)}_updateToolbarsVisibility(){let e=0,t=null,o=null;for(const i of this._toolbarDefinitions.values()){const n=i.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&n)if(this.editor.ui.focusTracker.isFocused){const s=n.getAncestors().length;s>e&&(e=s,t=n,o=i)}else this._isToolbarVisible(i)&&this._hideToolbar(i);else this._isToolbarInBalloon(i)&&this._hideToolbar(i)}o&&this._showToolbar(o,t)}_hideToolbar(e){this._balloon.remove(e.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(e,t){this._isToolbarVisible(e)?xp(this.editor,t,e.positions):this._isToolbarInBalloon(e)||(e.initialized||(e.initialized=!0,e.view.fillFromConfig(e.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:e.view,position:Ep(this.editor,t,e.positions),balloonClassName:e.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const o=t.getRelatedElement(this.editor.editing.view.document.selection);xp(this.editor,o,e.positions)}})))}_isToolbarVisible(e){return this._balloon.visibleView===e.view}_isToolbarInBalloon(e){return this._balloon.hasView(e.view)}}function xp(e,t,o){const i=e.plugins.get("ContextualBalloon"),n=Ep(e,t,o);i.updatePosition(n)}function Ep(e,t,o){const i=e.editing.view,n=dh.defaultPositions;return{target:i.domConverter.mapViewToDom(t),positions:o||[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class Tp extends(Be()){_referenceCoordinates;_options;_originalWidth;_originalHeight;_originalWidthPercents;_aspectRatio;constructor(e){super(),this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=e,this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(e,t,o){const i=new ut(t);this.activeHandlePosition=function(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const o of t)if(e.classList.contains(Pp(o)))return o}(e),this._referenceCoordinates=function(e,t){const o=new ut(e),i=t.split("-"),n={x:"right"==i[1]?o.right:o.left,y:"bottom"==i[0]?o.bottom:o.top};return n.x+=e.ownerDocument.defaultView.scrollX,n.y+=e.ownerDocument.defaultView.scrollY,n}(t,function(e){const t=e.split("-"),o={top:"bottom",bottom:"top",left:"right",right:"left"};return`${o[t[0]]}-${o[t[1]]}`}(this.activeHandlePosition)),this._originalWidth=i.width,this._originalHeight=i.height,this._aspectRatio=i.width/i.height;const n=o.style.width;n&&n.match(/^\d+(\.\d*)?%$/)?this._originalWidthPercents=parseFloat(n):this._originalWidthPercents=function(e,t=new ut(e)){const o=up(e);return o?t.width/o*100:0}(o,i)}update(e){this.proposedWidth=e.width,this.proposedHeight=e.height,this.proposedWidthPercents=e.widthPercents,this.proposedHandleHostWidth=e.handleHostWidth,this.proposedHandleHostHeight=e.handleHostHeight}}function Pp(e){return`ck-widget__resizer__handle-${e}`}class Sp extends Au{constructor(){super();const e=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",e.to("_viewPosition",(e=>e?`ck-orientation-${e}`:""))],style:{display:e.if("_isVisible","none",(e=>!e))}},children:[{text:e.to("_label")}]})}_bindToState(e,t){this.bind("_isVisible").to(t,"proposedWidth",t,"proposedHeight",((e,t)=>null!==e&&null!==t)),this.bind("_label").to(t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",t,"proposedWidthPercents",((t,o,i)=>"px"===e.unit?`${t}×${o}`:`${i}%`)),this.bind("_viewPosition").to(t,"activeHandlePosition",t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",((e,t,o)=>t<50||o<50?"above-center":e))}_dismiss(){this.unbind(),this._isVisible=!1}}class Ip extends(Be()){_state;_sizeView;_options;_viewResizerWrapper=null;_initialViewWidth;constructor(e){super(),this._options=e,this.set("isEnabled",!0),this.set("isSelected",!1),this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((e,t)=>e&&t)),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(e=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),e.stop())}),{priority:"high"})}get state(){return this._state}show(){this._options.editor.editing.view.change((e=>{e.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){this._options.editor.editing.view.change((e=>{e.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const e=this,t=this._options.viewElement;this._options.editor.editing.view.change((o=>{const i=o.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(t){const o=this.toDomElement(t);return e._appendHandles(o),e._appendSizeUI(o),o}));o.insert(o.createPositionAt(t,"end"),i),o.addClass("ck-widget_with-resizer",t),this._viewResizerWrapper=i,this.isVisible||this.hide()})),this.on("change:isVisible",(()=>{this.isVisible?(this.show(),this.redraw()):this.hide()}))}begin(e){this._state=new Tp(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(e,this._getHandleHost(),this._getResizeHost())}updateSize(e){const t=this._proposeNewSize(e);this._options.editor.editing.view.change((e=>{const o=this._options.unit||"%",i=("%"===o?t.widthPercents:t.width)+o;e.setStyle("width",i,this._options.viewElement)}));const o=this._getHandleHost(),i=new ut(o),n=Math.round(i.width),s=Math.round(i.height),r=new ut(o);t.width=Math.round(r.width),t.height=Math.round(r.height),this.redraw(i),this.state.update({...t,handleHostWidth:n,handleHostHeight:s})}commit(){const e=this._options.unit||"%",t=("%"===e?this.state.proposedWidthPercents:this.state.proposedWidth)+e;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(t)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(e){const t=this._domResizerWrapper;if(!((o=t)&&o.ownerDocument&&o.ownerDocument.contains(o)))return;var o;const i=t.parentElement,n=this._getHandleHost(),s=this._viewResizerWrapper,r=[s.getStyle("width"),s.getStyle("height"),s.getStyle("left"),s.getStyle("top")];let a;if(i.isSameNode(n)){const t=e||new ut(n);a=[t.width+"px",t.height+"px",void 0,void 0]}else a=[n.offsetWidth+"px",n.offsetHeight+"px",n.offsetLeft+"px",n.offsetTop+"px"];"same"!==We(r,a)&&this._options.editor.editing.view.change((e=>{e.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},s)}))}containsHandle(e){return this._domResizerWrapper.contains(e)}static isResizeHandle(e){return e.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((e=>{e.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(e){const t=this.state,o={x:(i=e).pageX,y:i.pageY};var i;const n=!this._options.isCentered||this._options.isCentered(this),s={x:t._referenceCoordinates.x-(o.x+t.originalWidth),y:o.y-t.originalHeight-t._referenceCoordinates.y};n&&t.activeHandlePosition.endsWith("-right")&&(s.x=o.x-(t._referenceCoordinates.x+t.originalWidth)),n&&(s.x*=2);let r=Math.abs(t.originalWidth+s.x),a=Math.abs(t.originalHeight+s.y);return"width"==(r/t.aspectRatio>a?"width":"height")?a=r/t.aspectRatio:r=a*t.aspectRatio,{width:Math.round(r),height:Math.round(a),widthPercents:Math.min(Math.round(t.originalWidthPercents/t.originalWidth*r*100)/100,100)}}_getResizeHost(){const e=this._domResizerWrapper.parentElement;return this._options.getResizeHost(e)}_getHandleHost(){const e=this._domResizerWrapper.parentElement;return this._options.getHandleHost(e)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const i of t)e.appendChild(new ou({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(o=i,`ck-widget__resizer__handle-${o}`)}}).render());var o}_appendSizeUI(e){this._sizeView=new Sp,this._sizeView.render(),e.appendChild(this._sizeView.element)}}class Rp extends fc{_resizers=new Map;_observer;_redrawSelectedResizerThrottled;static get pluginName(){return"WidgetResize"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.editing,t=J.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),e.view.addObserver(il),this._observer=new(et()),this.listenTo(e.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(t,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(t,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=oc((()=>this.redrawSelectedResizer()),200),this.editor.ui.on("update",this._redrawSelectedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[e,t]of this._resizers)e.isAttached()||(this._resizers.delete(e),t.destroy())}),{priority:"lowest"}),this._observer.listenTo(J.window,"resize",this._redrawSelectedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const e=o.getSelectedElement(),t=this.getResizerByViewElement(e)||null;t?this.select(t):this.deselect()}))}redrawSelectedResizer(){this.selectedResizer&&this.selectedResizer.isVisible&&this.selectedResizer.redraw()}destroy(){super.destroy(),this._observer.stopListening();for(const e of this._resizers.values())e.destroy();this._redrawSelectedResizerThrottled.cancel()}select(e){this.deselect(),this.selectedResizer=e,this.selectedResizer.isSelected=!0}deselect(){this.selectedResizer&&(this.selectedResizer.isSelected=!1),this.selectedResizer=null}attachTo(e){const t=new Ip(e),o=this.editor.plugins;if(t.attach(),o.has("WidgetToolbarRepository")){const e=o.get("WidgetToolbarRepository");t.on("begin",(()=>{e.forceDisabled("resize")}),{priority:"lowest"}),t.on("cancel",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"}),t.on("commit",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(e.viewElement,t);const i=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(i)==t&&this.select(t),t}getResizerByViewElement(e){return this._resizers.get(e)}_getResizerByHandle(e){for(const t of this._resizers.values())if(t.containsHandle(e))return t}_mouseDownListener(e,t){const o=t.domTarget;Ip.isResizeHandle(o)&&(this._activeResizer=this._getResizerByHandle(o)||null,this._activeResizer&&(this._activeResizer.begin(o),e.stop(),t.preventDefault()))}_mouseMoveListener(e,t){this._activeResizer&&this._activeResizer.updateSize(t)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}class Op extends fc{static get pluginName(){return"OPMacroToc"}static get buttonName(){return"insertToc"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-toc",{allowWhere:"$block",isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"toc"},model:"op-macro-toc"}),o.for("editingDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>np(this.createTocViewElement(t),t,{label:this.label})}),o.for("dataDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>this.createTocDataElement(t)}),e.ui.componentFactory.add(Op.buttonName,(t=>{const o=new Lu(t);return o.set({label:this.label,withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-toc",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}get label(){return window.I18n.t("js.editor.macro.toc")}createTocViewElement(e){const t=e.createText(this.label),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createTocDataElement(e){return e.createContainerElement("macro",{class:"toc"})}}const Vp=Symbol("isOPEmbeddedTable");function Dp(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Vp)&&ip(e)}(t))}function Fp(e){return _.get(e.config,"_config.openProject.context.resource")}function Mp(e){return _.get(e.config,"_config.openProject.pluginContext")}function Np(e,t){return Mp(e).services[t]}function Bp(e){return Np(e,"pathHelperService")}function Lp(e){return Np(e,"i18n")}class zp extends fc{static get pluginName(){return"EmbeddedTableEditing"}static get buttonName(){return"insertEmbeddedTable"}init(){const e=this.editor,t=e.model,o=e.conversion,i=Mp(e);this.text={button:window.I18n.t("js.editor.macro.embedded_table.button"),macro_text:window.I18n.t("js.editor.macro.embedded_table.text")},t.schema.register("op-macro-embedded-table",{allowWhere:"$block",allowAttributes:["opEmbeddedTableQuery"],isBlock:!0,isObject:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"embedded-table"},model:(e,{writer:t})=>{const o=e.getAttribute("data-query-props");return t.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:o?JSON.parse(o):{}})}}),o.for("editingDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>{return o=this.createEmbeddedTableView(t),i=t,this.label,i.setCustomProperty(Vp,!0,o),np(o,i,{label:"your label here"});var o,i}}),o.for("dataDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>this.createEmbeddedTableDataElement(e,t)}),e.ui.componentFactory.add(zp.buttonName,(t=>{const o=new Lu(t);return o.set({label:this.text.button,withText:!0}),o.on("execute",(()=>i.runInZone((()=>{i.services.externalQueryConfiguration.show({currentQuery:{},callback:t=>e.model.change((o=>{const i=o.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:t});e.model.insertContent(i,e.model.document.selection)}))})})))),o}))}createEmbeddedTableView(e){const t=e.createText(this.text.macro_text),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createEmbeddedTableDataElement(e,t){const o=e.getAttribute("opEmbeddedTableQuery")||{};return t.createContainerElement("macro",{class:"embedded-table","data-query-props":JSON.stringify(o)})}}function jp(e,t,o){e.ui.componentFactory.add(t,(t=>{const i=new Lu(t);return i.set({label:I18n.t("js.button_edit"),icon:'\n',tooltip:!0}),i.on("execute",(()=>{const t=e.model.document.selection.getSelectedElement();t&&o(t)})),i}))}const qp="ck-toolbar-container";function $p(e,t,o,i){const n=t.config.get(o+".toolbar");if(!n||!n.length)return;const s=t.plugins.get("ContextualBalloon"),r=new Wh(t.locale);function a(){t.ui.focusTracker.isFocused&&i(t.editing.view.document.selection)?c()?function(e,t){const o=e.plugins.get("ContextualBalloon");if(t(e.editing.view.document.selection)){const t=Hp(e);o.updatePosition(t)}}(t,i):s.hasView(r)||s.add({view:r,position:Hp(t),balloonClassName:qp}):l()}function l(){c()&&s.remove(r)}function c(){return s.visibleView==r}r.fillFromConfig(n,t.ui.componentFactory),e.listenTo(t.editing.view,"render",a),e.listenTo(t.ui.focusTracker,"change:isFocused",a,{priority:"low"})}function Hp(e){const t=e.editing.view,o=dh.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast]}}class Wp extends fc{static get requires(){return[Qm]}static get pluginName(){return"EmbeddedTableToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditEmbeddedTableQuery",(e=>{const i=o.services.externalQueryConfiguration,n=e.getAttribute("opEmbeddedTableQuery")||{};o.runInZone((()=>{i.show({currentQuery:n,callback:o=>t.change((t=>{t.setAttribute("opEmbeddedTableQuery",o,e)}))})}))}))}afterInit(){$p(this,this.editor,"OPMacroEmbeddedTable",Dp)}}const Up=Symbol("isWpButtonMacroSymbol");function Kp(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Up)&&ip(e)}(t))}class Gp extends fc{static get pluginName(){return"OPMacroWpButtonEditing"}static get buttonName(){return"insertWorkPackageButton"}init(){const e=this.editor,t=e.model,o=e.conversion,i=Mp(e);t.schema.register("op-macro-wp-button",{allowWhere:["$block"],allowAttributes:["type","classes"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"create_work_package_link"},model:(e,{writer:t})=>{const o=e.getAttribute("data-type")||"",i=e.getAttribute("data-classes")||"";return t.createElement("op-macro-wp-button",{type:o,classes:i})}}),o.for("editingDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}),o.for("dataDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"create_work_package_link","data-type":e.getAttribute("type")||"","data-classes":e.getAttribute("classes")||""})}),e.ui.componentFactory.add(Gp.buttonName,(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.work_package_button.button"),withText:!0}),o.on("execute",(()=>{i.services.macros.configureWorkPackageButton().then((t=>e.model.change((o=>{const i=o.createElement("op-macro-wp-button",{});o.setAttribute("type",t.type,i),o.setAttribute("classes",t.classes,i),e.model.insertContent(i,e.model.document.selection)}))))})),o}))}macroLabel(e){return e?window.I18n.t("js.editor.macro.work_package_button.with_type",{typename:e}):window.I18n.t("js.editor.macro.work_package_button.without_type")}createMacroViewElement(e,t){const o=e.getAttribute("classes")||"",i=this.macroLabel(),n=t.createText(i),s=t.createContainerElement("span",{class:o});return t.insert(t.createPositionAt(s,0),n),function(e,t,o){return t.setCustomProperty(Up,!0,e),np(e,t,{label:o})}(s,t,{label:i})}}class Jp extends fc{static get requires(){return[Qm]}static get pluginName(){return"OPMacroWpButtonToolbar"}init(){const e=this.editor,t=Mp(e);jp(e,"opEditWpMacroButton",(o=>{const i=t.services.macros,n=o.getAttribute("type"),s=o.getAttribute("classes");i.configureWorkPackageButton(n,s).then((t=>e.model.change((e=>{e.setAttribute("classes",t.classes,o),e.setAttribute("type",t.type,o)}))))}))}afterInit(){$p(this,this.editor,"OPMacroWpButton",Kp)}}class Zp extends(Be()){total;_reader;_data;constructor(){super();const e=new window.FileReader;this._reader=e,this._data=void 0,this.set("loaded",0),e.onprogress=e=>{this.loaded=e.loaded}}get error(){return this._reader.error}get data(){return this._data}read(e){const t=this._reader;return this.total=e.size,new Promise(((o,i)=>{t.onload=()=>{const e=t.result;this._data=e,o(e)},t.onerror=()=>{i("error")},t.onabort=()=>{i("aborted")},this._reader.readAsDataURL(e)}))}abort(){this._reader.abort()}}class Qp extends fc{loaders=new eo;_loadersMap=new Map;_pendingAction=null;static get pluginName(){return"FileRepository"}static get isOfficialPlugin(){return!0}static get requires(){return[Lc]}init(){this.loaders.on("change",(()=>this._updatePendingAction())),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0))}getLoader(e){return this._loadersMap.get(e)||null}createLoader(e){if(!this.createUploadAdapter)return be("filerepository-no-upload-adapter"),null;const t=new Yp(Promise.resolve(e),this.createUploadAdapter);return this.loaders.add(t),this._loadersMap.set(e,t),e instanceof Promise&&t.file.then((e=>{this._loadersMap.set(e,t)})).catch((()=>{})),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 Yp?e:this.getLoader(e);t._destroy(),this.loaders.remove(t),this._loadersMap.forEach(((e,o)=>{e===t&&this._loadersMap.delete(o)}))}_updatePendingAction(){const e=this.editor.plugins.get(Lc);if(this.loaders.length){if(!this._pendingAction){const t=this.editor.t,o=e=>`${t("Upload in progress")} ${parseInt(e)}%.`;this._pendingAction=e.add(o(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",o)}}else e.remove(this._pendingAction),this._pendingAction=null}}class Yp extends(Be()){id;_filePromiseWrapper;_adapter;_reader;constructor(e,t){super(),this.id=me(),this._filePromiseWrapper=this._createFilePromiseWrapper(e),this._adapter=t(this),this._reader=new Zp,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((e=>this._filePromiseWrapper?e:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new fe("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((e=>this._reader.read(e))).then((e=>{if("reading"!==this.status)throw this.status;return this.status="idle",e})).catch((e=>{if("aborted"===e)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:e}))}upload(){if("idle"!=this.status)throw new fe("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>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",this._filePromiseWrapper.isFulfilled?"reading"==e?this._reader.abort():"uploading"==e&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(e){const t={};return t.promise=new Promise(((o,i)=>{t.rejecter=i,t.isFulfilled=!1,e.then((e=>{t.isFulfilled=!0,o(e)})).catch((e=>{t.isFulfilled=!0,i(e)}))})),t}}class Xp{constructor(e,t,o){this.loader=e,this.resource=t,this.editor=o}upload(){const e=this.resource,t=Np(this.editor,"attachmentsResourceService");return e?this.loader.file.then((o=>t.attachFiles(e,[o]).toPromise().then((e=>(this.editor.model.fire("op:attachment-added",e),this.buildResponse(e[0])))).catch((e=>{console.error("Failed upload %O",e)})))):(console.warn("resource not available in this CKEditor instance"),Promise.reject("Not possible to upload attachments without resource"))}buildResponse(e){return{default:e._links.staticDownloadLocation.href}}abort(){return!1}}function ef(e){return e}function tf(e,t,o){return"function"!=typeof o?tf(e,t,(()=>{})):of(e,t,(function e(t,i,n,s,r,a){const l=o(t,i,n,s,r,a);return void 0!==l?Boolean(l):of(t,i,e,a)}),new Map)}function of(e,t,o,i){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,o,i){if(null==t)return!0;if(Array.isArray(t))return nf(e,t,o,i);if(t instanceof Map)return function(e,t,o,i){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[n,s]of t.entries()){if(!1===o(e.get(n),s,n,e,t,i))return!1}return!0}(e,t,o,i);if(t instanceof Set)return function(e,t,o,i){if(0===t.size)return!0;if(!(e instanceof Set))return!1;return nf([...e],[...t],o,i)}(e,t,o,i);const n=Object.keys(t);if(null==e||V(e))return 0===n.length;if(0===n.length)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let s=0;s0?of(e,{...t},o,i):Co(e,t);default:return s(e)?"string"!=typeof t||""===t:Co(e,t)}}function nf(e,t,o,i){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const n=new Set;for(let s=0;s{}))}function rf(e){var t;return e=F(t=e,void 0,t,new Map,void 0),t=>sf(t,e)}function af(e,t){let o;if(o=Array.isArray(t)?t:"string"==typeof t&&wo(t)&&null==e?.[t]?ko(t):[t],0===o.length)return!1;let i=e;for(let e=0;e{i.preventDefault();const n=i.dropRange?[i.dropRange]:null,s=new ue(t,e);t.fire(s,{dataTransfer:i.dataTransfer,method:o.name,targetRanges:n,target:i.target,domEvent:i.domEvent}),s.stop.called&&i.stopPropagation()}}this.listenTo(t,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"dragover",o("dragging"),{priority:"low"})}onDomEvent(e){const t="clipboardData"in e?e.clipboardData:e.dataTransfer,o="drop"==e.type||"paste"==e.type,i={dataTransfer:new Jn(t,{cacheFiles:o})};if("drop"==e.type||"dragover"==e.type){const t=st(e);i.dropRange=t&&this.view.domConverter.domRangeToView(t)}this.fire(e.type,e,i)}}const uf=["figcaption","li"],hf=["ol","ul"];function mf(e,t){if(t.is("$text")||t.is("$textProxy"))return t.data;if(t.is("element","img")&&t.hasAttribute("alt"))return t.getAttribute("alt");if(t.is("element","br"))return"\n";let o="",i=null;for(const n of t.getChildren())o+=pf(n,i)+mf(e,n),i=n;if(t.is("rawElement")){const i=document.implementation.createHTMLDocument("").createElement("div");t.render(i,e),o+=gf(i)}return o}function gf(e){let t="";if(e.nodeType===Node.TEXT_NODE)return e.textContent;if("BR"===e.tagName)return"\n";for(const o of e.childNodes)t+=gf(o);return t}function pf(e,t){return t?e.is("element","li")&&!e.isEmpty&&e.getChild(0).is("containerElement")||hf.includes(e.name)&&hf.includes(t.name)?"\n\n":e.is("containerElement")||t.is("containerElement")?uf.includes(e.name)||uf.includes(t.name)?"\n":e.is("element")&&e.getCustomProperty("dataPipeline:transparentRendering")||t.is("element")&&t.getCustomProperty("dataPipeline:transparentRendering")?"":"\n\n":"":""}class ff extends fc{_markersToCopy=new Map;static get pluginName(){return"ClipboardMarkersUtils"}static get isOfficialPlugin(){return!0}_registerMarkerToCopy(e,t){this._markersToCopy.set(e,t)}_copySelectedFragmentWithMarkers(e,t,o=e=>e.model.getSelectedContent(e.model.document.selection)){return this.editor.model.change((i=>{const n=i.model.document.selection;i.setSelection(t);const s=this._insertFakeMarkersIntoSelection(i,i.model.document.selection,e),r=o(i),a=this._removeFakeMarkersInsideElement(i,r);for(const[e,t]of Object.entries(s)){a[e]||=i.createRangeIn(r);for(const e of t)i.remove(e)}r.markers.clear();for(const[e,t]of Object.entries(a))r.markers.set(e,t);return i.setSelection(n),r}))}_pasteMarkersIntoTransformedElement(e,t){const o=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change((e=>{const i=this._insertFakeMarkersElements(e,o),n=t(e),s=this._removeFakeMarkersInsideElement(e,n);for(const t of Object.values(i).flat())e.remove(t);for(const[t,o]of Object.entries(s))e.model.markers.has(t)||e.addMarker(t,{usingOperation:!0,affectsData:!0,range:o});return n}))}_pasteFragmentWithMarkers(e){const t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(const o of t)e.markers.set(o.name,o.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,o={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const i=this._markersToCopy.get(e);this._markersToCopy.set(e,o),t(),i?this._markersToCopy.set(e,i):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){const o=this._getMarkerClipboardConfig(e);if(!o)return!1;if(!t)return!0;const{allowedActions:i}=o;return"all"===i||i.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){const[t]=e.split(":");return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,o){const i=this._getCopyableMarkersFromSelection(e,t,o);return this._insertFakeMarkersElements(e,i)}_getCopyableMarkersFromSelection(e,t,o){const i=Array.from(t.getRanges()),n=new Set(i.flatMap((t=>Array.from(e.model.markers.getMarkersIntersectingRange(t)))));return Array.from(n).filter((e=>{if(!this._isMarkerCopyable(e.name,o))return!1;const{copyPartiallySelected:t}=this._getMarkerClipboardConfig(e.name);if(!t){const t=e.getRange();return i.some((e=>e.containsRange(t,!0)))}return!0})).map((e=>({name:"dragstart"===o?this._getUniqueMarkerName(e.name):e.name,range:e.getRange()})))}_getPasteMarkersFromRangeMap(e,t=null){const{model:o}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap((([e,i])=>{if(!this._hasMarkerConfiguration(e))return[{name:e,range:i}];if(this._isMarkerCopyable(e,t)){const t=this._getMarkerClipboardConfig(e),n=o.markers.has(e)&&"$graveyard"===o.markers.get(e).getRange().root.rootName;return(t.duplicateOnPaste||n)&&(e=this._getUniqueMarkerName(e)),[{name:e,range:i}]}return[]}))}_insertFakeMarkersElements(e,t){const o={},i=t.flatMap((e=>{const{start:t,end:o}=e.range;return[{position:t,marker:e,type:"start"},{position:o,marker:e,type:"end"}]})).sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:t,marker:n,type:s}of i){const i=e.createElement("$marker",{"data-name":n.name,"data-type":s});o[n.name]||(o[n.name]=[]),o[n.name].push(i),e.insert(i,t)}return o}_removeFakeMarkersInsideElement(e,t){return cf(this._getAllFakeMarkersFromElement(e,t).reduce(((t,o)=>{const i=o.markerElement&&e.createPositionBefore(o.markerElement);let n=t[o.name],s=!1;if(n?.start&&n?.end){this._getMarkerClipboardConfig(o.name).duplicateOnPaste?t[this._getUniqueMarkerName(o.name)]=t[o.name]:s=!0,n=null}return s||(t[o.name]={...n,[o.type]:i}),o.markerElement&&e.remove(o.markerElement),t}),{}),(o=>new us(o.start||e.createPositionFromPath(t,[0]),o.end||e.createPositionAt(t,"end"))))}_getAllFakeMarkersFromElement(e,t){const o=Array.from(e.createRangeIn(t)).flatMap((({item:e})=>{if(!e.is("element","$marker"))return[];const t=e.getAttribute("data-name"),o=e.getAttribute("data-type");return[{markerElement:e,name:t,type:o}]})),i=[],n=[];for(const e of o){if("end"===e.type){o.some((t=>t.name===e.name&&"start"===t.type))||i.push({markerElement:null,name:e.name,type:"start"})}if("start"===e.type){o.some((t=>t.name===e.name&&"end"===t.type))||n.unshift({markerElement:null,name:e.name,type:"end"})}}return[...i,...o,...n]}_getUniqueMarkerName(e){const t=e.split(":"),o=me().substring(1,6);return 3===t.length?`${t.slice(0,2).join(":")}:${o}`:`${t.join(":")}:${o}`}}class bf extends fc{static get pluginName(){return"ClipboardPipeline"}static get isOfficialPlugin(){return!0}static get requires(){return[ff]}init(){this.editor.editing.view.addObserver(df),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,o){const i=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===o},(()=>{const n=i._copySelectedFragmentWithMarkers(o,t);this.fire("outputTransformation",{dataTransfer:e,content:n,method:o})}))}_setupPasteDrop(){const e=this.editor,t=e.model,o=e.editing.view,i=o.document,n=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(i,"clipboardInput",((t,o)=>{"paste"!=o.method||e.model.canEditAt(e.model.document.selection)||t.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((e,t)=>{const i=t.dataTransfer;let n;if(t.content)n=t.content;else{let e="";i.getData("text/html")?e=function(e){return e.replace(/(\s+)<\/span>/g,((e,t)=>1==t.length?" ":t)).replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"

").replace(/\r?\n/g,"
").replace(/\t/g,"    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

")||s.includes("
"))&&(s=`

${s}

`),e=s),n=this.editor.data.htmlProcessor.toView(e)}var s;const r=new ue(this,"inputTransformation"),a=i.getData("application/ckeditor5-editor-id")||null;this.fire(r,{content:n,dataTransfer:i,sourceEditorId:a,targetRanges:t.targetRanges,method:t.method}),r.stop.called&&e.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((e,o)=>{if(o.content.isEmpty)return;const i=this.editor.data.toModel(o.content,"$clipboardHolder");0!=i.childCount&&(e.stop(),t.change((()=>{this.fire("contentInsertion",{content:i,method:o.method,sourceEditorId:o.sourceEditorId,dataTransfer:o.dataTransfer,targetRanges:o.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((e,t)=>{t.resultRange=n._pasteFragmentWithMarkers(t.content)}),{priority:"low"})}_setupCopyCut(){const e=this.editor,t=e.model.document,o=e.editing.view.document,i=(e,o)=>{const i=o.dataTransfer;o.preventDefault(),this._fireOutputTransformationEvent(i,t.selection,e.name)};this.listenTo(o,"copy",i,{priority:"low"}),this.listenTo(o,"cut",((t,o)=>{e.model.canEditAt(e.model.document.selection)?i(t,o):o.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((t,i)=>{const n=e.data.toView(i.content,{isClipboardPipeline:!0});o.fire("clipboardOutput",{dataTransfer:i.dataTransfer,content:n,method:i.method})}),{priority:"low"}),this.listenTo(o,"clipboardOutput",((o,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",mf(e.data.htmlProcessor.domConverter,i.content)),i.dataTransfer.setData("application/ckeditor5-editor-id",this.editor.id)),"cut"==i.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}const wf=yt("px");class yf extends Au{constructor(){super();const e=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",e.if("isVisible","ck-hidden",(e=>!e))],style:{left:e.to("left",(e=>wf(e))),top:e.to("top",(e=>wf(e))),width:e.to("width",(e=>wf(e)))}}})}}class _f extends fc{removeDropMarkerDelayed=co((()=>this.removeDropMarker()),40);_updateDropMarkerThrottled=oc((e=>this._updateDropMarker(e)),40);_reconvertMarkerThrottled=oc((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0);_dropTargetLineView=new yf;_domEmitter=new(et());_scrollables=new Map;static get pluginName(){return"DragDropTarget"}static get isOfficialPlugin(){return!0}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:e}of this._scrollables.values())e.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(e,t,o,i,n,s){this.removeDropMarkerDelayed.cancel();const r=kf(this.editor,e,t,o,i,n,s);return r?s&&s.containsRange(r)||r&&!this.editor.model.canEditAt(r)?(this.removeDropMarker(),null):(this._updateDropMarkerThrottled(r),r):null}getFinalDropRange(e,t,o,i,n,s){const r=kf(this.editor,e,t,o,i,n,s);return this.removeDropMarker(),r}removeDropMarker(){const e=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,e.markers.has("drop-target")&&e.change((e=>{e.removeMarker("drop-target")}))}_setupDropMarker(){const e=this.editor;e.ui.view.body.add(this._dropTargetLineView),e.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),e.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(t,{writer:o})=>{if(e.model.schema.checkChild(t.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(o);t.markerRange.isCollapsed?this._updateDropTargetLine(t.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(e){const t=this.editor,o=t.model.markers;t.model.change((t=>{o.has("drop-target")?o.get("drop-target").getRange().isEqual(e)||t.updateMarker("drop-target",{range:e}):t.addMarker("drop-target",{range:e,usingOperation:!1,affectsData:!1})}))}_createDropTargetPosition(e){return e.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(e){const t=this.toDomElement(e);return t.append("⁠",e.createElement("span"),"⁠"),t}))}_updateDropTargetLine(e){const t=this.editor.editing,o=e.start.nodeBefore,i=e.start.nodeAfter,n=e.start.parent,s=o?t.mapper.toViewElement(o):null,r=s?t.view.domConverter.mapViewToDom(s):null,a=i?t.mapper.toViewElement(i):null,l=a?t.view.domConverter.mapViewToDom(a):null,c=t.mapper.toViewElement(n);if(!c)return;const d=t.view.domConverter.mapViewToDom(c),u=this._getScrollableRect(c),{scrollX:h,scrollY:m}=J.window,g=r?new ut(r):null,p=l?new ut(l):null,f=new ut(d).excludeScrollbarsAndBorders(),b=g?g.bottom:f.top,w=p?p.top:f.bottom,y=J.window.getComputedStyle(d),_=b<=w?(b+w)/2:w;if(u.top<_&&_a.schema.checkChild(s,e)))){if(a.schema.checkChild(s,"$text"))return a.createRange(s);if(t)return Cf(e,xf(e,t.parent),i,n)}}}else if(a.schema.isInline(c))return Cf(e,c,i,n);if(a.schema.isBlock(c))return Cf(e,c,i,n);if(a.schema.checkChild(c,"$block")){const t=Array.from(c.getChildren()).filter((t=>t.is("element")&&!vf(e,t)));let o=0,s=t.length;if(0==s)return a.createRange(a.createPositionAt(c,"end"));for(;o{o?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")})),Y.isAndroid&&this.forceDisabled("noAndroidSupport"),e.plugins.has("BlockToolbar")){const t=e.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(t,"dragstart",((e,t)=>this._handleBlockDragStart(t))),this._domEmitter.listenTo(J.document,"dragover",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(J.document,"drop",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(J.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&t.setAttribute("draggable","true"),this.on("change:isEnabled",((e,o,i)=>{t.setAttribute("draggable",i?"true":"false")}))}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(e){if(!this.isEnabled)return;const t=this.editor.model,o=t.document.selection,i=this.editor.editing.view,n=Array.from(o.getSelectedBlocks()),s=t.createRange(t.createPositionBefore(n[0]),t.createPositionAfter(n[n.length-1]));t.change((e=>e.setSelection(s))),this._isBlockDragging=!0,i.focus(),i.getObserver(df).onDomEvent(e)}_handleBlockDragging(e){if(!this.isEnabled||!this._isBlockDragging)return;const t=e.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),o=e.clientY,i=document.elementFromPoint(t,o),n=this.editor.editing.view;i&&i.closest(".ck-editor__editable")&&n.getObserver(df).onDomEvent({...e,type:e.type,dataTransfer:e.dataTransfer,target:i,clientX:t,clientY:o,preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}class Tf extends fc{_draggedRange;_draggingUid;_draggableElement;_clearDraggableAttributesDelayed=co((()=>this._clearDraggableAttributes()),40);_blockMode=!1;_domEmitter=new(et());_previewContainer;static get pluginName(){return"DragDrop"}static get isOfficialPlugin(){return!0}static get requires(){return[bf,vp,_f,Ef]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(df),t.addObserver(sl),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(e,"change:isReadOnly",((e,t,o)=>{o?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((e,t,o)=>{o||this._finalizeDragging(!1)})),Y.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const e=this.editor,t=e.model,o=e.editing.view,i=o.document,n=e.plugins.get(_f);this.listenTo(i,"dragstart",((o,i)=>{if(i.target?.is("editableElement"))return void i.preventDefault();if(this._prepareDraggedRange(i.target),!this._draggedRange)return void i.preventDefault();this._draggingUid=me();const n=this.isEnabled&&e.model.canEditAt(this._draggedRange);i.dataTransfer.effectAllowed=n?"copyMove":"copy",i.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const s=t.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(i.dataTransfer,s,"dragstart");const{dataTransfer:r,domTarget:a,domEvent:l}=i,{clientX:c}=l;this._updatePreview({dataTransfer:r,domTarget:a,clientX:c}),i.stopPropagation(),n||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((e,t)=>{this._finalizeDragging(!t.dataTransfer.isCanceled&&"move"==t.dataTransfer.dropEffect)}),{priority:"low"}),this._domEmitter.listenTo(J.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{n.removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,t)=>{if(!this.isEnabled)return void(t.dataTransfer.dropEffect="none");const{clientX:o,clientY:i}=t.domEvent;n.updateDropMarker(t.target,t.targetRanges,o,i,this._blockMode,this._draggedRange)?(this._draggedRange||(t.dataTransfer.dropEffect="copy"),Y.isGecko||("copy"==t.dataTransfer.effectAllowed?t.dataTransfer.dropEffect="copy":["all","copyMove"].includes(t.dataTransfer.effectAllowed)&&(t.dataTransfer.dropEffect="move")),e.stop()):t.dataTransfer.dropEffect="none"}),{priority:"low"})}_setupClipboardInputIntegration(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get(_f);this.listenTo(t,"clipboardInput",((t,i)=>{if("drop"!=i.method)return;const{clientX:n,clientY:s}=i.domEvent,r=o.getFinalDropRange(i.target,i.targetRanges,n,s,this._blockMode,this._draggedRange);if(!r)return this._finalizeDragging(!1),void t.stop();this._draggedRange&&this._draggingUid!=i.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Pf(i.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(r,!0))return this._finalizeDragging(!1),void t.stop();i.targetRanges=[e.editing.mapper.toViewRange(r)]}),{priority:"high"})}_setupContentInsertionIntegration(){const e=this.editor.plugins.get(bf);e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o=t.targetRanges.map((e=>this.editor.editing.mapper.toModelRange(e)));this.editor.model.change((e=>e.setSelection(o)))}),{priority:"high"}),e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o="move"==Pf(t.dataTransfer),i=!t.resultRange||!t.resultRange.isCollapsed;this._finalizeDragging(i&&o)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const e=this.editor,t=e.editing.view,o=t.document;this.listenTo(o,"pointerdown",((i,n)=>{if(Y.isAndroid||!n)return;this._clearDraggableAttributesDelayed.cancel();let s=Sf(n.target);if(Y.isBlink&&!e.isReadOnly&&!s&&!o.selection.isCollapsed){const e=o.selection.getSelectedElement();e&&ip(e)||(s=o.selection.editableElement)}s&&(t.change((e=>{e.setAttribute("draggable","true",s)})),this._draggableElement=e.editing.mapper.toModelElement(s))})),this.listenTo(o,"pointerup",(()=>{Y.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const e=this.editor.editing;e.view.change((t=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&t.removeAttribute("draggable",e.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_finalizeDragging(e){const t=this.editor,o=t.model;if(t.plugins.get(_f).removeDropMarker(),this._clearDraggableAttributes(),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop")}this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(e&&this.isEnabled&&o.change((e=>{const t=o.createSelection(this._draggedRange);o.deleteContent(t,{doNotAutoparagraph:!0});const i=t.getFirstPosition().parent;i.isEmpty&&!o.schema.checkChild(i,"$text")&&o.schema.checkChild(i,"paragraph")&&e.insertElement("paragraph",i,0)})),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(e){const t=this.editor,o=t.model,i=o.document.selection,n=e?Sf(e):null;if(n){const e=t.editing.mapper.toModelElement(n);if(this._draggedRange=Ts.fromRange(o.createRangeOn(e)),this._blockMode=o.schema.isBlock(e),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}return}if(i.isCollapsed&&!i.getFirstPosition().parent.isEmpty)return;const s=Array.from(i.getSelectedBlocks()),r=i.getFirstRange();if(0==s.length)return void(this._draggedRange=Ts.fromRange(r));const a=If(o,s);if(s.length>1)this._draggedRange=Ts.fromRange(a),this._blockMode=!0;else if(1==s.length){const e=r.start.isTouching(a.start)&&r.end.isTouching(a.end);this._draggedRange=Ts.fromRange(e?a:r),this._blockMode=e}o.change((e=>e.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:e,domTarget:t,clientX:o}){const i=this.editor.editing.view,n=i.document.selection.editableElement,s=i.domConverter.mapViewToDom(n),r=J.window.getComputedStyle(s);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ke(J.document,"div",{style:"position: fixed; left: -999999px;"}),J.document.body.appendChild(this._previewContainer));const a=Ke(J.document,"div");a.className="ck ck-content ck-clipboard-preview";const l=new ut(s),c=parseFloat(r.paddingLeft),d=parseFloat(r.paddingRight),u=parseFloat(r.width)-c-d;if(s.contains(t)){if(!Y.isiOS)return;a.style.maxWidth=`${u}px`,a.style.padding="10px",a.style.minWidth="200px",a.style.minHeight="20px",a.style.boxSizing="border-box",a.style.backgroundColor="var(--ck-color-base-background)"}else if(Y.isiOS)a.style.width=`${u}px`,a.style.backgroundColor="var(--ck-color-base-background)";else{const e=l.left-o+c;a.style.width=`${u+e}px`,a.style.paddingLeft=`${e}px`}i.domConverter.setContentOf(a,e.getData("text/html")),e.setDragImage(a,0,0),this._previewContainer.appendChild(a)}}function Pf(e){return Y.isGecko?e.dropEffect:["all","copyMove"].includes(e.effectAllowed)?"move":"copy"}function Sf(e){if(e.is("editableElement"))return null;if(e.hasClass("ck-widget__selection-handle"))return e.findAncestor(ip);if(ip(e))return e;const t=e.findAncestor((e=>ip(e)||e.is("editableElement")));return ip(t)?t:null}function If(e,t){const o=t[0],i=t[t.length-1],n=o.getCommonAncestor(i),s=e.createPositionBefore(o),r=e.createPositionAfter(i);if(n&&n.is("element")&&!e.schema.isLimit(n)){const t=e.createRangeOn(n),o=s.isTouching(t.start),i=r.isTouching(t.end);if(o&&i)return If(e,[n])}return e.createRange(s,r)}class Rf extends fc{static get pluginName(){return"PastePlainText"}static get isOfficialPlugin(){return!0}static get requires(){return[bf]}init(){const e=this.editor,t=e.model,o=e.editing.view,i=t.document.selection;o.addObserver(df),e.plugins.get(bf).on("contentInsertion",((e,o)=>{(function(e,t){let o=t.createRangeIn(e);if(1==e.childCount){const i=e.getChild(0);i.is("element")&&t.schema.isBlock(i)&&!t.schema.isObject(i)&&!t.schema.isLimit(i)&&(o=t.createRangeIn(i))}for(const e of o.getItems()){if(!t.schema.isInline(e))return!1;if(Array.from(e.getAttributeKeys()).find((e=>t.schema.getAttributeProperties(e).isFormatting)))return!1}return!0})(o.content,t)&&t.change((e=>{const n=Array.from(i.getAttributes()).filter((([e])=>t.schema.getAttributeProperties(e).isFormatting));i.isCollapsed||t.deleteContent(i,{doNotAutoparagraph:!0}),n.push(...i.getAttributes());const s=e.createRangeIn(o.content);for(const o of s.getItems())for(const i of n)t.schema.checkAttribute(o,i[0])&&e.setAttribute(i[0],i[1],o)}))}))}}class Of extends fc{static get pluginName(){return"Clipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[ff,bf,Tf,Rf]}init(){const e=this.editor,t=this.editor.t;e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Copy selected content"),keystroke:"CTRL+C"},{label:t("Paste content"),keystroke:"CTRL+V"},{label:t("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}class Vf extends wc{_stack=[];_createdBatches=new WeakSet;constructor(e){super(e),this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(e.data,"set",((e,t)=>{t[1]={...t[1]};const o=t[1];o.batchType||(o.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(e.data,"set",((e,t)=>{t[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(e){const t=this.editor.model.document.selection,o={ranges:t.hasOwnRange?Array.from(t.getRanges()):[],isBackward:t.isBackward};this._stack.push({batch:e,selection:o}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(e,t,o){const i=this.editor.model,n=i.document,s=[],r=e.map((e=>e.getTransformedByOperations(o))),a=r.flat();for(const e of r){const t=e.filter((e=>e.root!=n.graveyard)).filter((e=>!Ff(e,a)));t.length&&(Df(t),s.push(t[0]))}s.length&&i.change((e=>{e.setSelection(s,{backward:t})}))}_undo(e,t){const o=this.editor.model,i=o.document;this._createdBatches.add(t);const n=e.operations.slice().filter((e=>e.isDocumentOperation));n.reverse();for(const e of n){const n=e.baseVersion+1,s=Array.from(i.history.getOperations(n)),r=sa([e.getReversed()],s,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let n of r){const s=n.affectedSelectable;s&&!o.canEditAt(s)&&(n=new Jr(n.baseVersion)),t.addOperation(n),o.applyOperation(n),i.history.setOperationAsUndone(e,n)}}}}function Df(e){e.sort(((e,t)=>e.start.isBefore(t.start)?-1:1));for(let t=1;tt!==e&&t.containsRange(e,!0)))}class Mf extends Vf{execute(e=null){const t=e?this._stack.findIndex((t=>t.batch==e)):this._stack.length-1,o=this._stack.splice(t,1)[0],i=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(i,(()=>{this._undo(o.batch,i);const e=this.editor.model.document.history.getOperations(o.batch.baseVersion);this._restoreSelection(o.selection.ranges,o.selection.isBackward,e)})),this.fire("revert",o.batch,i),this.refresh()}}class Nf extends Vf{execute(){const e=this._stack.pop(),t=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(t,(()=>{const o=e.batch.operations[e.batch.operations.length-1].baseVersion+1,i=this.editor.model.document.history.getOperations(o);this._restoreSelection(e.selection.ranges,e.selection.isBackward,i),this._undo(e.batch,t)})),this.fire("revert",e.batch,t),this.refresh()}}class Bf extends fc{_undoCommand;_redoCommand;_batchRegistry=new WeakSet;static get pluginName(){return"UndoEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;this._undoCommand=new Mf(e),this._redoCommand=new Nf(e),e.commands.add("undo",this._undoCommand),e.commands.add("redo",this._redoCommand),this.listenTo(e.model,"applyOperation",((e,t)=>{const o=t[0];if(!o.isDocumentOperation)return;const i=o.batch,n=this._redoCommand.createdBatches.has(i),s=this._undoCommand.createdBatches.has(i);this._batchRegistry.has(i)||(this._batchRegistry.add(i),i.isUndoable&&(n?this._undoCommand.addBatch(i):s||(this._undoCommand.addBatch(i),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((e,t,o)=>{this._redoCommand.addBatch(o)})),e.keystrokes.set("CTRL+Z","undo"),e.keystrokes.set("CTRL+Y","redo"),e.keystrokes.set("CTRL+SHIFT+Z","redo"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Undo"),keystroke:"CTRL+Z"},{label:t("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class Lf extends fc{static get pluginName(){return"UndoUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale,o=e.t,i="ltr"==t.uiLanguageDirection?nd:td,n="ltr"==t.uiLanguageDirection?td:nd;this._addButtonsToFactory("undo",o("Undo"),"CTRL+Z",i),this._addButtonsToFactory("redo",o("Redo"),"CTRL+Y",n)}_addButtonsToFactory(e,t,o,i){const n=this.editor;n.ui.componentFactory.add(e,(()=>{const n=this._createButton(Lu,e,t,o,i);return n.set({tooltip:!0}),n})),n.ui.componentFactory.add("menuBar:"+e,(()=>this._createButton(sh,e,t,o,i)))}_createButton(e,t,o,i,n){const s=this.editor,r=s.locale,a=s.commands.get(t),l=new e(r);return l.set({label:o,icon:n,keystroke:i}),l.bind("isEnabled").to(a,"isEnabled"),this.listenTo(l,"execute",(()=>{s.execute(t),s.editing.view.focus()})),l}}class zf extends fc{static get requires(){return[Bf,Lf]}static get pluginName(){return"Undo"}static get isOfficialPlugin(){return!0}}function jf(e){return e}function qf(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function $f(e,t){const o=e.plugins.get("ImageUtils"),i=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>{if(!o.isInlineImageView(e))return null;if(!i)return n(e);return("block"==e.getStyle("display")||e.findAncestor(o.isBlockImageView)?"imageBlock":"imageInline")!==t?null:n(e)};function n(e){const t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function Hf(e,t){const o=to(t.getSelectedBlocks());return!o||e.isObject(o)||o.isEmpty&&"listItem"!=o.name?"imageBlock":"imageInline"}function Wf(e){return e&&e.endsWith("px")?parseInt(e):null}function Uf(e){const t=Wf(e.getStyle("width")),o=Wf(e.getStyle("height"));return!(!t||!o)}const Kf=/^(image|image-inline)$/;class Gf extends fc{_domEmitter=new(et());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,o=null,i={}){const n=this.editor,s=n.model,r=s.document.selection,a=Jf(n,t||r,o);e={...Object.fromEntries(r.getAttributes()),...e};for(const t in e)s.schema.checkAttribute(a,t)||delete e[t];return s.change((o=>{const{setImageSizes:n=!0}=i,r=o.createElement(a,e);return s.insertObject(r,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==a?void 0:"auto"}),r.parent?(n&&this.setImageNaturalSizeAttributes(r),r):null}))}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change((o=>{const i=new J.window.Image;this._domEmitter.listenTo(i,"load",(()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(o.batch,(t=>{t.setAttribute("width",i.naturalWidth,e),t.setAttribute("height",i.naturalHeight,e)})),this._domEmitter.stopListening(i,"load")})),i.src=t})))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const o=e.getSelectedElement();if(o&&this.isImageWidget(o))return o;let i=t.parent;for(;i;){if(i.is("element")&&this.isImageWidget(i))return i;i=i.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:Kf})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const o=Jf(e,t,null);if("imageBlock"==o){const o=function(e,t){const o=cp(e,t),i=o.start.parent;if(i.isEmpty&&!i.is("element","$root"))return i.parent;return i}(t,e.model);if(e.model.schema.checkChild(o,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&function(e){return[...e.focus.getAncestors()].every((e=>!e.is("element","imageBlock")))}(e)}toImageWidget(e,t,o){t.setCustomProperty("image",!0,e);return np(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${o}`:o}})}isImageWidget(e){return!!e.getCustomProperty("image")&&ip(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:o}of t.createRangeIn(e))if(this.isInlineImageView(o))return o}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function Jf(e,t,o){const i=e.model.schema,n=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?o||("inline"===n?"imageInline":"auto"!==n?"imageBlock":t.is("selection")?Hf(i,t):i.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class Zf extends wc{refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,o=t.plugins.get("ImageUtils"),i=t.model,n=o.getClosestSelectedImageElement(i.document.selection);i.change((t=>{t.setAttribute("alt",e.newValue,n)}))}}class Qf extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new Zf(this.editor))}}class Yf extends Au{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new Km(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new tu,this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function Xf(e){const t=e.editing.view,o=dh.defaultPositions,i=e.plugins.get("ImageUtils");return{target:t.domConverter.mapViewToDom(i.getClosestSelectedImageWidget(t.document.selection)),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class eb extends fc{_balloon;_form;static get requires(){return[Qm]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",(o=>{const i=e.commands.get("imageTextAlternative"),n=new Lu(o);return n.set({label:t("Change image text alternative"),icon:'',tooltip:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>!!e)),this.listenTo(n,"execute",(()=>{this._showForm()})),n}))}_createForm(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Iu(Yf))(e.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this.listenTo(e.ui,"update",(()=>{o.getClosestSelectedImageWidget(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const o=Xf(e);t.updatePosition(o)}}(e):this._hideForm(!0)})),Su({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),o=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:Xf(e)}),o.fieldView.value=o.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class tb extends fc{static get requires(){return[Qf,eb]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function ob(e,t){const o=(t,o,i)=>{if(!i.consumable.consume(o.item,t.name))return;const n=i.writer,s=i.mapper.toViewElement(o.item),r=e.findViewImgElement(s);null===o.attributeNewValue?(n.removeAttribute("srcset",r),n.removeAttribute("sizes",r)):o.attributeNewValue&&(n.setAttribute("srcset",o.attributeNewValue,r),n.setAttribute("sizes","100vw",r))};return e=>{e.on(`attribute:srcset:${t}`,o)}}function ib(e,t,o){const i=(t,o,i)=>{if(!i.consumable.consume(o.item,t.name))return;const n=i.writer,s=i.mapper.toViewElement(o.item),r=e.findViewImgElement(s);n.setAttribute(o.attributeKey,o.attributeNewValue||"",r)};return e=>{e.on(`attribute:${o}:${t}`,i)}}class nb extends Ln{observe(e){this.listenTo(e,"load",((e,t)=>{const o=t.target;this.checkShouldIgnoreEventFromTarget(o)||"IMG"==o.tagName&&this._fireEvents(t)}),{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class sb extends wc{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&be("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&be("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=Qt(e.source),o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),n=Object.fromEntries(o.getAttributes());t.forEach(((t,s)=>{const r=o.getSelectedElement();if("string"==typeof t&&(t={src:t}),s&&r&&i.isImage(r)){const o=this.editor.model.createPositionAfter(r);i.insertImage({...t,...n},o,e.imageType)}else e.breakBlock?i.insertImage({...t,...n},o.getFirstPosition(),e.imageType):i.insertImage({...t,...n},null,e.imageType)}))}}class rb extends wc{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(t),this.value=this.isEnabled?t.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),o=this.editor.plugins.get("ImageUtils");this.editor.model.change((i=>{i.setAttribute("src",e.source,t),this.cleanupImage(i,t),o.setImageNaturalSizeAttributes(t)}))}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class ab extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(nb),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const o=new sb(e),i=new rb(e);e.commands.add("insertImage",o),e.commands.add("replaceImageSource",i),e.commands.add("imageInsert",o)}}class lb extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils"),i="imageBlock"===e?"figure":"img";function n(t,i,n,s,r=!1){t.on(`attribute:${i}:${e}`,((t,i,a)=>{if(!a.consumable.consume(i.item,t.name))return;const l=a.writer,c=a.mapper.toViewElement(i.item),d=o.findViewImgElement(c);null!==i.attributeNewValue?l.setAttribute(n,i.attributeNewValue,d):l.removeAttribute(n,d);const u=i.item.getAttribute("width"),h=i.item.getAttribute("height"),m=u&&h;if(m&&r&&l.setAttribute("loading","lazy",d),i.item.hasAttribute("sources"))return;const g=i.item.hasAttribute("resizedWidth");("imageInline"!==e||g||s)&&m&&l.setStyle("aspect-ratio",`${u}/${h}`,d)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:i,styles:{width:/.+/}},model:{key:"width",value:e=>Uf(e)?Wf(e.getStyle("width")):null}}).attributeToAttribute({view:{name:i,key:"width"},model:"width"}).attributeToAttribute({view:{name:i,styles:{height:/.+/}},model:{key:"height",value:e=>Uf(e)?Wf(e.getStyle("height")):null}}).attributeToAttribute({view:{name:i,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{n(e,"width","width",!0,!0),n(e,"height","height",!0,!0)})),t.conversion.for("dataDowncast").add((e=>{n(e,"width","width",!1),n(e,"height","height",!1)})),t.conversion.for("upcast").add((e=>{e.on("element:img",((e,t,o)=>{const i=t.viewItem.getAttribute("width"),n=t.viewItem.getAttribute("height");i&&n&&o.consumable.consume(t.viewItem,{styles:["aspect-ratio"]})}))}))}}class cb extends wc{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=e.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=e.isInlineImage(t):this.isEnabled=e.isBlockImage(t)}execute(e={}){const t=this.editor,o=this.editor.model,i=t.plugins.get("ImageUtils"),n=i.getClosestSelectedImageElement(o.document.selection),s=Object.fromEntries(n.getAttributes());return s.src||s.uploadId?o.change((t=>{const{setImageSizes:r=!0}=e,a=Array.from(o.markers).filter((e=>e.getRange().containsItem(n))),l=i.insertImage(s,o.createSelection(n,"on"),this._modelElementName,{setImageSizes:r});if(!l)return null;const c=t.createRangeOn(l);for(const e of a){const o=e.getRange(),i="$graveyard"!=o.root.rootName?o.getJoined(c,!0):c;t.updateMarker(e,{range:i})}return{oldElement:n,newElement:l}})):null}}class db extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,o=e.plugins.get("ImageUtils");t.for("editingDowncast").add((e=>{e.on("attribute:placeholder",((e,t,i)=>{if(!i.consumable.test(t.item,e.name))return;if(!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;i.consumable.consume(t.item,e.name);const n=i.writer,s=i.mapper.toViewElement(t.item),r=o.findViewImgElement(s);t.attributeNewValue?(n.addClass("image_placeholder",r),n.setStyle("background-image",`url(${t.attributeNewValue})`,r),n.setCustomProperty("editingPipeline:doNotReuseOnce",!0,r)):(n.removeClass("image_placeholder",r),n.removeStyle("background-image",r))}))}))}_setupLoadListener(){const e=this.editor,t=e.model,o=e.editing,i=o.view,n=e.plugins.get("ImageUtils");i.addObserver(nb),this.listenTo(i.document,"imageLoaded",((e,s)=>{const r=i.domConverter.mapDomToView(s.target);if(!r)return;const a=n.getImageWidgetFromImageView(r);if(!a)return;const l=o.mapper.toModelElement(a);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},(e=>{e.removeAttribute("placeholder",l)}))}))}}class ub extends fc{static get requires(){return[ab,lb,Gf,db,bf]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new cb(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,i=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>qf(t)}),o.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:o})=>i.toImageWidget(qf(o),o,t("image widget"))}),o.for("downcast").add(ib(i,"imageBlock","src")).add(ib(i,"imageBlock","alt")).add(ob(i,"imageBlock")),o.for("upcast").elementToElement({view:$f(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(function(e){const t=(t,o,i)=>{if(!i.consumable.test(o.viewItem,{name:!0,classes:"image"}))return;const n=e.findViewImgElement(o.viewItem);if(!n||!i.consumable.test(n,{name:!0}))return;i.consumable.consume(o.viewItem,{name:!0,classes:"image"});const s=to(i.convertItem(n,o.modelCursor).modelRange.getItems());s?(i.convertChildren(o.viewItem,s),i.updateConversionResult(s,o)):i.consumable.revert(o.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}(i))}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",((n,s)=>{const r=Array.from(s.content.getChildren());let a;if(!r.every(i.isInlineImageView))return;a=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageBlock"===Hf(t.schema,l)){const e=new rl(o.document),t=r.map((t=>e.createElement("figure",{class:"image"},t)));s.content=e.createDocumentFragment(t)}})),this.listenTo(n,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageBlock")&&i.setImageNaturalSizeAttributes(e)}))}))}}class hb extends Au{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this._focusables=new tu,this.children=this.createCollection(),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const e of t)this.children.add(e),this._focusables.add(e),e instanceof kh&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),Ou({view:this});for(const e of this._focusables)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class mb extends fc{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",(()=>{this.isImageSelected=o.isImage(t.getSelectedElement())}));const i=e=>this._createToolbarComponent(e);e.ui.componentFactory.add("insertImage",i),e.ui.componentFactory.add("imageInsert",i),e.ui.componentFactory.add("menuBar:insertImage",(e=>this._createMenuBarComponent(e)))}registerIntegration({name:e,observable:t,buttonViewCreator:o,formViewCreator:i,menuBarButtonViewCreator:n,requiresForm:s=!1,override:r=!1}){this._integrations.has(e)&&!r&&be("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:o,menuBarButtonViewCreator:n,formViewCreator:i,requiresForm:s})}_createToolbarComponent(e){const t=this.editor,o=e.t,i=this._prepareIntegrations();if(!i.length)return null;let n;const s=i[0];if(1==i.length){if(!s.requiresForm)return s.buttonViewCreator(!0);n=s.buttonViewCreator(!0)}else{const t=s.buttonViewCreator(!1);n=new Jh(e,t),n.tooltip=!0,n.bind("label").to(this,"isImageSelected",(e=>o(e?"Replace image":"Insert image")))}const r=this.dropdownView=Zh(e,n),a=i.map((({observable:e})=>"function"==typeof e?e():e));return r.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),r.once("change:isOpen",(()=>{const e=i.flatMap((({formViewCreator:e})=>e(1==i.length))),o=new hb(t.locale,e);r.panelView.children.add(o)})),r}_createMenuBarComponent(e){const t=e.t,o=this._prepareIntegrations();if(!o.length)return null;const i=o.flatMap((({menuBarButtonViewCreator:e})=>e(1==o.length))),n=new og(e),s=new ig(e);n.panelView.children.add(s),n.buttonView.set({icon:'',label:t("Image")});for(const t of i){const o=new Em(e,n);o.children.add(t),s.items.add(o),t.delegate("execute").to(n)}return n}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return be("image-insert-integrations-not-specified"),t;for(const o of e)this._integrations.has(o)?t.push(this._integrations.get(o)):["upload","assetManager","url"].includes(o)||be("image-insert-unknown-integration",{item:o});return t.length||be("image-insert-integrations-not-registered"),t}}class gb extends fc{static get requires(){return[ub,vp,tb,mb]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class pb extends fc{static get requires(){return[ab,lb,Gf,db,bf]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new cb(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,i=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToElement({model:"imageInline",view:(e,{writer:t})=>t.createEmptyElement("img")}),o.for("editingDowncast").elementToStructure({model:"imageInline",view:(e,{writer:o})=>i.toImageWidget(function(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}(o),o,t("image widget"))}),o.for("downcast").add(ib(i,"imageInline","src")).add(ib(i,"imageInline","alt")).add(ob(i,"imageInline")),o.for("upcast").elementToElement({view:$f(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",((n,s)=>{const r=Array.from(s.content.getChildren());let a;if(!r.every(i.isBlockImageView))return;a=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageInline"===Hf(t.schema,l)){const e=new rl(o.document),t=r.map((t=>1===t.childCount?(Array.from(t.getAttributes()).forEach((o=>e.setAttribute(...o,i.findViewImgElement(t)))),t.getChild(0)):t));s.content=e.createDocumentFragment(t)}})),this.listenTo(n,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageInline")&&i.setImageNaturalSizeAttributes(e)}))}))}}class fb extends fc{static get requires(){return[pb,vp,tb,mb]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class bb extends fc{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),o=e.getFirstPosition().findAncestor("caption");return o&&t.isBlockImage(o.parent)?o:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class wb extends wc{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),o=e.plugins.get("ImageUtils");if(!e.plugins.has(ub))return this.isEnabled=!1,void(this.value=!1);const i=e.model.document.selection,n=i.getSelectedElement();if(!n){const e=t.getCaptionFromModelSelection(i);return this.isEnabled=!!e,void(this.value=!!e)}this.isEnabled=o.isImage(n),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(n):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change((e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)}))}_showImageCaption(e,t){const o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageCaptionEditing"),n=this.editor.plugins.get("ImageUtils");let s=o.getSelectedElement();const r=i._getSavedCaption(s);n.isInlineImage(s)&&(this.editor.execute("imageTypeBlock"),s=o.getSelectedElement());const a=r||e.createElement("caption");e.append(a,s),t&&e.setSelection(a,"in")}_hideImageCaption(e){const t=this.editor,o=t.model.document.selection,i=t.plugins.get("ImageCaptionEditing"),n=t.plugins.get("ImageCaptionUtils");let s,r=o.getSelectedElement();r?s=n.getCaptionFromImageModelElement(r):(s=n.getCaptionFromModelSelection(o),r=s.parent),i._saveCaption(r,s),e.setSelection(r,"on"),e.remove(s)}}class yb extends fc{static get requires(){return[Gf,bb]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new wb(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),n=e.t;e.conversion.for("upcast").elementToElement({view:e=>i.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer:t})=>o.isBlockImage(e.parent)?t.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(e,{writer:i})=>{if(!o.isBlockImage(e.parent))return null;const s=i.createEditableElement("figcaption");i.setCustomProperty("imageCaption",!0,s),s.placeholder=n("Enter image caption"),Yo({view:t,element:s,keepOnFocus:!0});const r=e.parent.getAttribute("alt");return lp(s,i,{label:r?n("Caption for image: %0",[r]):n("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.plugins.get("ImageCaptionUtils"),i=e.commands.get("imageTypeInline"),n=e.commands.get("imageTypeBlock"),s=e=>{if(!e.return)return;const{oldElement:i,newElement:n}=e.return;if(!i)return;if(t.isBlockImage(i)){const e=o.getCaptionFromImageModelElement(i);if(e)return void this._saveCaption(n,e)}const s=this._getSavedCaption(i);s&&this._saveCaption(n,s)};i&&this.listenTo(i,"execute",s,{priority:"low"}),n&&this.listenTo(n,"execute",s,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?Ms.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,o=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",(()=>{const n=t.document.differ.getChanges();for(const t of n){if("alt"!==t.attributeKey)continue;const n=t.range.start.nodeAfter;if(o.isBlockImage(n)){const t=i.getCaptionFromImageModelElement(n);if(!t)return;e.editing.reconvertItem(t)}}}))}}class _b extends fc{static get requires(){return[bb]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageCaptionUtils"),i=e.t;e.ui.componentFactory.add("toggleImageCaption",(n=>{const s=e.commands.get("toggleImageCaption"),r=new Lu(n);return r.set({icon:'',tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(s,"value","isEnabled"),r.bind("label").to(s,"value",(e=>i(e?"Toggle caption off":"Toggle caption on"))),this.listenTo(r,"execute",(()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const i=o.getCaptionFromModelSelection(e.model.document.selection);if(i){const o=e.editing.mapper.toViewElement(i);t.scrollToTheSelection(),t.change((e=>{e.addClass("image__caption_highlighted",o)}))}e.editing.view.focus()})),r}))}}function kb(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function vb(e){return new Promise(((t,o)=>{const i=e.getAttribute("src");fetch(i).then((e=>e.blob())).then((e=>{const o=Cb(e,i),n=o.replace("image/",""),s=new File([e],`image.${n}`,{type:o});t(s)})).catch((e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise(((t,o)=>{const i=J.document.createElement("img");i.addEventListener("load",(()=>{const e=J.document.createElement("canvas");e.width=i.width,e.height=i.height;e.getContext("2d").drawImage(i,0,0),e.toBlob((e=>e?t(e):o()))})),i.addEventListener("error",(()=>o())),i.src=e}))}(e).then((t=>{const o=Cb(t,e),i=o.replace("image/","");return new File([t],`image.${i}`,{type:o})}))}(i).then(t).catch(o):o(e)))}))}function Cb(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Ab extends fc{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",(()=>this._createToolbarButton())),e.ui.componentFactory.add("imageUpload",(()=>this._createToolbarButton())),e.ui.componentFactory.add("menuBar:uploadImage",(()=>this._createMenuBarButton("standalone"))),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("uploadImage"),n=t.config.get("image.upload.types"),s=kb(n),r=new e(t.locale),a=o.t;return r.set({acceptedType:n.map((e=>`image/${e}`)).join(","),allowMultipleFiles:!0,label:a("Upload from computer"),icon:''}),r.bind("isEnabled").to(i),r.on("done",((e,o)=>{const i=Array.from(o).filter((e=>s.test(e.type)));i.length&&(t.execute("uploadImage",{file:i}),t.editing.view.focus())})),r}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this.editor.commands.get("uploadImage"),i=this._createButton(bh);return i.tooltip=!0,i.bind("label").to(t,"isImageSelected",o,"isAccessAllowed",((t,o)=>e(o?t?"Replace image from computer":"Upload image from computer":"You have no image upload permissions."))),i}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this._createButton(bh);return o.withText=!0,o.bind("label").to(t,"isImageSelected",(t=>e(t?"Replace from computer":"Upload from computer"))),o.on("execute",(()=>{t.dropdownView.isOpen=!1})),o}_createMenuBarButton(e){const t=this.editor.locale.t,o=this._createButton(sg);switch(o.withText=!0,e){case"standalone":o.label=t("Image from computer");break;case"insertOnly":o.label=t("Image");break;case"insertNested":o.label=t("From computer")}return o}}class xb extends fc{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,o)=>{const i=this.editor,n=t.item,s=n.getAttribute("uploadId");if(!o.consumable.consume(t.item,e.name))return;const r=i.plugins.get("ImageUtils"),a=i.plugins.get(Qp),l=s?t.attributeNewValue:null,c=this.placeholder,d=i.editing.mapper.toViewElement(n),u=o.writer;if("reading"==l)return Eb(d,u),void Tb(r,c,d,u);if("uploading"==l){const e=a.loaders.get(s);return Eb(d,u),void(e?(Pb(d,u),function(e,t,o,i){const n=function(e){const t=e.createUIElement("div",{class:"ck-progress-bar"});return e.setCustomProperty("progressBar",!0,t),t}(t);t.insert(t.createPositionAt(e,"end"),n),o.on("change:uploadedPercent",((e,t,o)=>{i.change((e=>{e.setStyle("width",o+"%",n)}))}))}(d,u,e,i.editing.view),function(e,t,o,i){if(i.data){const n=e.findViewImgElement(t);o.setAttribute("src",i.data,n)}}(r,d,u,e)):Tb(r,c,d,u))}"complete"==l&&a.loaders.get(s)&&function(e,t,o){const i=t.createUIElement("div",{class:"ck-image-upload-complete-icon"});t.insert(t.createPositionAt(e,"end"),i),setTimeout((()=>{o.change((e=>e.remove(e.createRangeOn(i))))}),3e3)}(d,u,i.editing.view),function(e,t){Ib(e,t,"progressBar")}(d,u),Pb(d,u),function(e,t){t.removeClass("ck-appear",e)}(d,u)}}function Eb(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function Tb(e,t,o,i){o.hasClass("ck-image-upload-placeholder")||i.addClass("ck-image-upload-placeholder",o);const n=e.findViewImgElement(o);n.getAttribute("src")!==t&&i.setAttribute("src",t,n),Sb(o,"placeholder")||i.insert(i.createPositionAfter(n),function(e){const t=e.createUIElement("div",{class:"ck-upload-placeholder-loader"});return e.setCustomProperty("placeholder",!0,t),t}(i))}function Pb(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),Ib(e,t,"placeholder")}function Sb(e,t){for(const o of e.getChildren())if(o.getCustomProperty(t))return o}function Ib(e,t,o){const i=Sb(e,o);i&&t.remove(t.createRangeOn(i))}class Rb extends wc{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(o)}execute(e){const t=Qt(e.file),o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),n=Object.fromEntries(o.getAttributes());t.forEach(((e,t)=>{const s=o.getSelectedElement();if(t&&s&&i.isImage(s)){const t=this.editor.model.createPositionAfter(s);this._uploadImage(e,n,t)}else this._uploadImage(e,n)}))}_uploadImage(e,t,o){const i=this.editor,n=i.plugins.get(Qp).createLoader(e),s=i.plugins.get("ImageUtils");n&&s.insertImage({...t,uploadId:n.id},o)}}class Ob extends fc{static get requires(){return[Qp,Gm,bf,Gf]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,o=e.conversion,i=e.plugins.get(Qp),n=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline"),r=kb(e.config.get("image.upload.types")),a=new Rb(e);e.commands.add("uploadImage",a),e.commands.add("imageUpload",a),o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add((e=>e.on("element:img",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;const n=t.viewItem.getAttribute("data-ck-upload-id");if(!n)return;const[s]=Array.from(t.modelRange.getItems({shallow:!0})),r=i.loaders.get(n);s&&(o.writer.setAttribute("uploadId",n,s),o.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),r&&r.data&&o.writer.setAttribute("uploadStatus",r.status,s))}),{priority:"low"}))),this.listenTo(e.editing.view.document,"clipboardInput",((t,o)=>{if(i=o.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const n=Array.from(o.dataTransfer.files).filter((e=>!!e&&r.test(e.type)));if(!n.length)return;t.stop(),e.model.change((t=>{o.targetRanges&&t.setSelection(o.targetRanges.map((t=>e.editing.mapper.toModelRange(t)))),e.execute("uploadImage",{file:n})}));if(!e.commands.get("uploadImage").isAccessAllowed){const t=e.plugins.get("Notification"),o=e.locale.t;t.showWarning(o("You have no image upload permissions."),{namespace:"image"})}})),this.listenTo(s,"inputTransformation",((t,o)=>{const s=Array.from(e.editing.view.createRangeIn(o.content)).map((e=>e.item)).filter((e=>function(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src")||!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)&&!t.getAttribute("src").match(/^blob:/g))}(n,e)&&!e.getAttribute("uploadProcessed"))).map((e=>({promise:vb(e),imageElement:e})));if(!s.length)return;const r=new rl(e.editing.view.document);for(const e of s){r.setAttribute("uploadProcessed",!0,e.imageElement);const t=i.createLoader(e.promise);t&&(r.setAttribute("src","",e.imageElement),r.setAttribute("uploadId",t.id,e.imageElement))}})),e.editing.view.document.on("dragover",((e,t)=>{t.preventDefault()})),t.on("change",(()=>{const o=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),n=new Set;for(const t of o)if("insert"==t.type&&"$text"!=t.name){const o=t.position.nodeAfter,s="$graveyard"==t.position.root.rootName;for(const t of Vb(e,o)){const o=t.getAttribute("uploadId"),r=t.getAttribute("uploadStatus");if(!o||"complete"==r)continue;const a=i.loaders.get(o);if(a)if(s){if(!n.has(o)){Array.from(this._uploadImageElements.get(o)).every((e=>"$graveyard"==e.root.rootName))&&a.abort()}}else n.add(o),this._uploadImageElements.has(o)?this._uploadImageElements.get(o).add(t):this._uploadImageElements.set(o,new Set([t])),"idle"==a.status&&this._readAndUpload(a);else!s&&this._uploadedImages.has(o)&&e.model.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(o),imageElement:t})}))}}})),this.on("uploadComplete",((e,{imageElement:t,data:o})=>{const i=o.urls?o.urls:o;this.editor.model.change((e=>{e.setAttribute("src",i.default,t),this._parseAndSetSrcsetAttributeOnImage(i,t,e),n.setImageNaturalSizeAttributes(t)}))}),{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,o=t.model,i=t.locale.t,n=t.plugins.get(Qp),s=t.plugins.get(Gm),r=t.plugins.get("ImageUtils"),a=this._uploadImageElements;return o.enqueueChange({isUndoable:!1},(t=>{const o=a.get(e.id);for(const e of o)t.setAttribute("uploadStatus","reading",e)})),e.read().then((()=>{const n=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Uploading image"));for(const i of a.get(e.id)){if(Y.isSafari){const e=t.editing.mapper.toViewElement(i),o=r.findViewImgElement(e);t.editing.view.once("render",(()=>{if(!o.parent)return;const e=t.editing.view.domConverter.mapViewToDom(o.parent);if(!e)return;const i=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=i}))}o.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",i)}))}return n})).then((n=>{o.enqueueChange({isUndoable:!1},(o=>{for(const t of a.get(e.id))o.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:n,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Image upload complete")),this._uploadedImages.set(e.id,n)})),l()})).catch((n=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw n;"error"==e.status&&n&&s.showWarning(n,{title:i("Upload failed"),namespace:"upload"}),o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))"$graveyard"!==o.root.rootName&&t.remove(o)})),l()}));function l(){o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))t.removeAttribute("uploadId",o),t.removeAttribute("uploadStatus",o);a.delete(e.id)})),n.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,o){let i=0;const n=Object.keys(e).filter((e=>{const t=parseInt(e,10);if(!isNaN(t))return i=Math.max(i,t),!0})).map((t=>`${e[t]} ${t}w`)).join(", ");if(""!=n){const e={srcset:n};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=i),o.setAttributes(e,t)}}_registerConverters(e){const{conversion:t,plugins:o}=this.editor,i=o.get(Qp),n=o.get(Gf);t.for("dataDowncast").add((t=>{t.on(`attribute:uploadId:${e}`,((e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const s=i.loaders.get(t.attributeNewValue);if(!s||!s.data)return null;const r=o.mapper.toViewElement(t.item),a=n.findViewImgElement(r);a&&(o.consumable.consume(t.item,e.name),o.writer.setAttribute("data-ck-upload-id",s.id,a))}))}))}}function Vb(e,t){const o=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter((e=>o.isImage(e.item))).map((e=>e.item))}class Db extends fc{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[Ob,Ab,xb]}}class Fb extends wc{refresh(){const e=this.editor,t=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);this.isEnabled=!!t,t&&t.hasAttribute("resizedWidth")?this.value={width:t.getAttribute("resizedWidth"),height:null}:this.value=null}execute(e){const t=this.editor,o=t.model,i=t.plugins.get("ImageUtils"),n=i.getClosestSelectedImageElement(o.document.selection);this.value={width:e.width,height:null},n&&o.change((t=>{t.setAttribute("resizedWidth",e.width,n),t.removeAttribute("resizedHeight",n),i.setImageNaturalSizeAttributes(n)}))}}class Mb extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageResizeEditing"}static get licenseFeatureCode(){return"IR"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new Fb(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0})),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0}))}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils");t.conversion.for("downcast").add((t=>t.on(`attribute:resizedWidth:${e}`,((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewElement(t.item);null!==t.attributeNewValue?(i.setStyle("width",t.attributeNewValue,n),i.addClass("image_resized",n)):(i.removeStyle("width",n),i.removeClass("image_resized",n))})))),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:e=>({key:"style",value:{height:e}})}),t.conversion.for("editingDowncast").add((t=>t.on(`attribute:resizedHeight:${e}`,((t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const s=n.writer,r=n.mapper.toViewElement(i.item),a="imageInline"===e?o.findViewImgElement(r):r;null!==i.attributeNewValue?s.setStyle("height",i.attributeNewValue,a):s.removeStyle("height",a)})))),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>Uf(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>Uf(e)?null:e.getStyle("height")}}),t.conversion.for("upcast").add((t=>{t.on("element:"+("imageBlock"===e?"figure":"img"),((e,t,o)=>{o.consumable.consume(t.viewItem,{classes:["image_resized"]})}))}))}}const Nb=(()=>({small:'',medium:'',large:'',custom:'',original:''}))();class Bb extends fc{static get requires(){return[Mb]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),o=e.commands.get("resizeImage");this.bind("isEnabled").to(o);for(const e of t)this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:o,value:i,icon:n}=e;t.ui.componentFactory.add(o,(o=>{const s=new Lu(o),r=t.commands.get("resizeImage"),a=this._getOptionLabelValue(e,!0);if(!Nb[n])throw new fe("imageresizebuttons-missing-icon",t,e);if(s.set({label:a,icon:Nb[n],tooltip:a,isToggleable:!0}),s.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&Lb(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(s,"execute",(()=>{e._showForm(this._resizeUnit)}))}else{const e=i?i+this._resizeUnit:null;s.bind("isOn").to(r,"value",r,"isEnabled",zb(e)),this.listenTo(s,"execute",(()=>{t.execute("resizeImage",{width:e})}))}return s}))}_registerImageResizeDropdown(e){const t=this.editor,o=t.t,i=e.find((e=>!e.value)),n=n=>{const s=t.commands.get("resizeImage"),r=Zh(n,Mh),a=r.buttonView,l=o("Resize image");return a.set({tooltip:l,commandValue:i.value,icon:Nb.medium,isToggleable:!0,label:this._getOptionLabelValue(i),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),a.bind("label").to(s,"value",(e=>e&&e.width?e.width:this._getOptionLabelValue(i))),r.bind("isEnabled").to(this),Xh(r,(()=>this._getResizeDropdownListItemDefinitions(e,s)),{ariaLabel:o("Image resize list"),role:"menu"}),this.listenTo(r,"execute",(e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())})),r};t.ui.componentFactory.add("resizeImage",n),t.ui.componentFactory.add("imageResize",n)}_getOptionLabelValue(e,t=!1){const o=this.editor.t;return e.label?e.label:t?Lb(e)?o("Custom image size"):e.value?o("Resize image to %0",e.value+this._resizeUnit):o("Resize image to the original size"):Lb(e)?o("Custom"):e.value?e.value+this._resizeUnit:o("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:o}=this,i=new eo,n=e.map((e=>Lb(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null}));for(const e of n){let s=null;if(o.plugins.has("ImageCustomResizeUI")&&Lb(e)){const i=o.plugins.get("ImageCustomResizeUI");s={type:"button",model:new Jm({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{i._showForm(this._resizeUnit)}})};const r=Object.values(n).map((e=>e.valueWithUnits));s.model.bind("isOn").to(t,"value",t,"isEnabled",jb(r))}else s={type:"button",model:new Jm({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},s.model.bind("isOn").to(t,"value",t,"isEnabled",zb(e.valueWithUnits));s.model.bind("isEnabled").to(t,"isEnabled"),i.add(s)}return i}}function Lb(e){return"custom"===e.value}function zb(e){return(t,o)=>!(void 0===t||!o)&&(null===e&&t===e||null!==t&&t.width===e)}function jb(e){return(t,o)=>!e.some((e=>zb(e)(t,o)))}const qb="image_resized";class $b extends fc{static get requires(){return[Rp,Gf]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils");t.addObserver(nb),this.listenTo(t.document,"imageLoaded",((i,n)=>{if(!n.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const s=e.editing.view.domConverter,r=s.domToView(n.target),a=o.getImageWidgetFromImageView(r);let l=this.editor.plugins.get(Rp).getResizerByViewElement(a);if(l)return void l.redraw();const c=e.editing.mapper,d=c.toModelElement(a);l=e.plugins.get(Rp).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>s.mapViewToDom(c.toViewElement(d)),isCentered:()=>"alignCenter"==d.getAttribute("imageStyle"),onCommit(o){t.change((e=>{e.removeClass(qb,a)})),e.execute("resizeImage",{width:o})}}),l.on("updateSize",(()=>{a.hasClass(qb)||t.change((e=>{e.addClass(qb,a)}));const e="imageInline"===d.name?r:a;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),l.bind("isEnabled").to(this)}))}}function Hb(e){if(!e)return null;const[,t,o]=e.trim().match(/([.,\d]+)(%|px)$/)||[],i=Number.parseFloat(t);return Number.isNaN(i)?null:{value:i,unit:o}}function Wb(e,t,o){return"px"===o?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function Ub(e){const{editing:t}=e,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!o)return null;const i=t.mapper.toViewElement(o);return{model:o,view:i,dom:t.view.domConverter.mapViewToDom(i)}}class Kb extends Au{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,o){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new Km(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new tu,this._validators=o,this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new Sh(this.locale,sm);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(null===e)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}class Gb extends fc{_balloon;_form;static get requires(){return[Qm]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Iu(Kb))(t.locale,e,function(e){const t=e.t;return[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0]}(t)),this._form.render(),this.listenTo(this._form,"submit",(()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))})),this.listenTo(this._form.labeledInput,"change:errorText",(()=>{t.ui.update()})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),Su({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,o=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:Xf(t)});const i=function(e,t){const o=Ub(e);if(!o)return null;const i=Hb(o.model.getAttribute("resizedWidth")||null);return i?i.unit===t?i:Wb(up(o.dom),{value:new ut(o.dom).width},t):null}(t,e),n=i?i.value.toFixed(1):"",s=function(e,t){const o=Ub(e);if(!o)return null;const i=up(o.dom),n=Hb(window.getComputedStyle(o.dom).minWidth)||{value:1};return{unit:t,lower:Math.max(.1,Wb(i,n,t).value),upper:"px"===t?i:100}}(t,e);o.fieldView.value=o.fieldView.element.value=n,s&&Object.assign(o.fieldView,{min:s.lower.toFixed(1),max:Math.ceil(s.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class Jb extends wc{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map((e=>{if(e.isDefault)for(const t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]})))}refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled?e.hasAttribute("imageStyle")?this.value=e.getAttribute("imageStyle"):this.value=this._defaultStyles[e.name]:this.value=!1}execute(e={}){const t=this.editor,o=t.model,i=t.plugins.get("ImageUtils");o.change((t=>{const n=e.value,{setImageSizes:s=!0}=e;let r=i.getClosestSelectedImageElement(o.document.selection);n&&this.shouldConvertImageType(n,r)&&(this.editor.execute(i.isBlockImage(r)?"imageTypeInline":"imageTypeBlock",{setImageSizes:s}),r=i.getClosestSelectedImageElement(o.document.selection)),!n||this._styles.get(n).isDefault?t.removeAttribute("imageStyle",r):t.setAttribute("imageStyle",n,r),s&&i.setImageNaturalSizeAttributes(r)}))}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const Zb={get inline(){return{name:"inline",title:"In line",icon:Qc,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Jc,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Yc,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Gc,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Zc,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Xc,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Gc,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Zc,modelElements:["imageBlock"],className:"image-style-side"}}},Qb=(()=>({full:'',left:Yc,right:Xc,center:Gc,inlineLeft:Jc,inlineRight:Zc,inline:Qc}))(),Yb=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Xb(e){be("image-style-configuration-definition-invalid",e)}const ew={normalizeStyles:function(e){const t=(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?Zb[e]?{...Zb[e]}:{name:e}:function(e,t){const o={...t};for(const i in e)Object.prototype.hasOwnProperty.call(t,i)||(o[i]=e[i]);return o}(Zb[e.name],e);"string"==typeof e.icon&&(e.icon=Qb[e.icon]||e.icon);return e}(e))).filter((t=>function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:o}){const{modelElements:i,name:n}=e;if(!(i&&i.length&&n))return Xb({style:e}),!1;{const n=[t?"imageBlock":null,o?"imageInline":null];if(!i.some((e=>n.includes(e))))return be("image-style-missing-dependency",{style:e,missingPlugins:i.map((e=>"imageBlock"===e?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(t,e)));return t},getDefaultStylesConfiguration:function(e,t){return e&&t?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:e?{options:["block","side"]}:t?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(e){return e.has("ImageBlockEditing")&&e.has("ImageInlineEditing")?[...Yb]:[]},warnInvalidStyle:Xb};function tw(e){const t={imageInline:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageInline"))),imageBlock:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageBlock")))};return(o,i,n)=>{if(!i.modelRange)return;const s=i.viewItem,r=to(i.modelRange.getItems());if(r&&n.schema.checkAttribute(r,"imageStyle")){for(const e of t[r.name])n.consumable.consume(s,{classes:e.className})&&n.writer.setAttribute("imageStyle",e.name,r);!function(e,t,o,i){if(!e.consumable.test(t,{styles:["float"]}))return;let n=null;switch(t.getStyle("float")){case"left":n="alignLeft";break;case"right":n="alignRight"}if(!n)return;const s=ow(n,i);if(!s)return;const r=Zb[s.name];if(!Ko(s,r))return;e.writer.setAttribute("imageStyle",n,o),e.consumable.consume(t,{styles:["float"]})}(n,s,r,e)}}}function ow(e,t){for(const o of t)if(o.name===e)return o}class iw extends fc{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}normalizedStyles;init(){const e=this.editor,t=e.plugins.has("ImageBlockEditing"),o=e.plugins.has("ImageInlineEditing");e.config.define("image.styles",ew.getDefaultStylesConfiguration(t,o)),this.normalizedStyles=ew.normalizeStyles({configuredStyles:e.config.get("image.styles"),isBlockPluginLoaded:t,isInlinePluginLoaded:o}),this._setupConversion(t,o),this._setupPostFixer(),e.commands.add("imageStyle",new Jb(e,this.normalizedStyles))}_setupConversion(e,t){const o=this.editor,i=o.model.schema,n=(s=this.normalizedStyles,(e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=ow(t.attributeNewValue,s),n=ow(t.attributeOldValue,s),r=o.mapper.toViewElement(t.item),a=o.writer;n&&a.removeClass(n.className,r),i&&a.addClass(i.className,r)});var s;const r=tw(this.normalizedStyles);o.editing.downcastDispatcher.on("attribute:imageStyle",n),o.data.downcastDispatcher.on("attribute:imageStyle",n),e&&(i.extend("imageBlock",{allowAttributes:"imageStyle"}),i.setAttributeProperties("imageStyle",{isFormatting:!0}),o.data.upcastDispatcher.on("element:figure",r,{priority:"low"})),t&&(i.extend("imageInline",{allowAttributes:"imageStyle"}),i.setAttributeProperties("imageStyle",{isFormatting:!0}),o.data.upcastDispatcher.on("element:img",r,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,o=e.plugins.get(Gf),i=new Map(this.normalizedStyles.map((e=>[e.name,e])));t.registerPostFixer((e=>{let n=!1;for(const s of t.differ.getChanges())if("insert"==s.type||"attribute"==s.type&&"imageStyle"==s.attributeKey){let t="insert"==s.type?s.position.nodeAfter:s.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!o.isImage(t))continue;const r=t.getAttribute("imageStyle");if(!r)continue;const a=i.get(r);a&&a.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),n=!0)}return n}))}}class nw extends fc{static get requires(){return[iw]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],o=sw(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of o)this._createButton(e);const i=sw([...t.filter(s),...ew.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const e of i)this._createDropdown(e,o)}_createDropdown(e,t){const o=this.editor.ui.componentFactory;o.add(e.name,(i=>{let n;const{defaultItem:s,items:r,title:a}=e,l=r.filter((e=>t.find((({name:t})=>rw(t)===e)))).map((e=>{const t=o.create(e);return e===s&&(n=t),t}));r.length!==l.length&&ew.warnInvalidStyle({dropdown:e});const c=Zh(i,Jh),d=c.buttonView,u=d.arrowView;return Qh(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:aw(a,n.label),class:null,tooltip:!0}),u.unbind("label"),u.set({label:a}),d.bind("icon").toMany(l,"isOn",((...e)=>{const t=e.findIndex(jf);return t<0?n.icon:l[t].icon})),d.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(jf);return aw(a,t<0?n.label:l[t].label)})),d.bind("isOn").toMany(l,"isOn",((...e)=>e.some(jf))),d.bind("class").toMany(l,"isOn",((...e)=>e.some(jf)?"ck-splitbutton_flatten":void 0)),d.on("execute",(()=>{l.some((({isOn:e})=>e))?c.isOpen=!c.isOpen:n.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...e)=>e.some(jf))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(rw(t),(o=>{const i=this.editor.commands.get("imageStyle"),n=new Lu(o);return n.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>e===t)),n.on("execute",this._executeCommand.bind(this,t)),n}))}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function sw(e,t){for(const o of e)t[o.title]&&(o.title=t[o.title]);return e}function rw(e){return`imageStyle:${e}`}function aw(e,t){return(e?e+": ":"")+t}function lw(e){return e.map((e=>s(e)?e.name:e))}const cw=Symbol("isWpButtonMacroSymbol");function dw(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(cw)&&ip(e)}(t))}class uw extends fc{static get pluginName(){return"OPChildPagesEditing"}static get buttonName(){return"insertChildPages"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-child-pages",{allowWhere:["$block"],allowAttributes:["page"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"child_pages"},model:(e,{writer:t})=>{const o=e.getAttribute("data-page")||"",i="true"==e.getAttribute("data-include-parent");return t.createElement("op-macro-child-pages",{page:o,includeParent:i})}}),o.for("editingDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}).add((e=>e.on("attribute:page",this.modelAttributeToView.bind(this)))).add((e=>e.on("attribute:includeParent",this.modelAttributeToView.bind(this)))),o.for("dataDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"child_pages","data-page":e.getAttribute("page")||"","data-include-parent":e.getAttribute("includeParent")||""})}),e.ui.componentFactory.add(uw.buttonName,(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.child_pages.button"),withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-child-pages",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}modelAttributeToView(e,t,o){const i=t.item;if(!i.is("element","op-macro-child-pages"))return;o.consumable.consume(t.item,e.name);const n=o.mapper.toViewElement(i);o.writer.remove(o.writer.createRangeIn(n)),this.setPlaceholderContent(o.writer,i,n)}macroLabel(){return window.I18n.t("js.editor.macro.child_pages.text")}pageLabel(e){return e&&e.length>0?e:window.I18n.t("js.editor.macro.child_pages.this_page")}includeParentText(e){return e?` (${window.I18n.t("js.editor.macro.child_pages.include_parent")})`:""}createMacroViewElement(e,t){const o=t.createContainerElement("div");return this.setPlaceholderContent(t,e,o),function(e,t,o){return t.setCustomProperty(cw,!0,e),np(e,t,{label:o})}(o,t,{label:this.macroLabel()})}setPlaceholderContent(e,t,o){const i=t.getAttribute("page"),n=t.getAttribute("includeParent"),s=this.macroLabel(),r=this.pageLabel(i),a=e.createContainerElement("span",{class:"macro-value"});let l=[e.createText(`${s} `)];e.insert(e.createPositionAt(a,0),e.createText(`${r}`)),l.push(a),l.push(e.createText(this.includeParentText(n))),e.insert(e.createPositionAt(o,0),l)}}class hw extends fc{static get requires(){return[Qm]}static get pluginName(){return"OPChildPagesToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditChildPagesMacroButton",(e=>{const i=o.services.macros,n=e.getAttribute("page"),s=e.getAttribute("includeParent"),r=n&&n.length>0?n:"";i.configureChildPages(r,s).then((o=>t.change((t=>{t.setAttribute("page",o.page,e),t.setAttribute("includeParent",o.includeParent,e)}))))}))}afterInit(){$p(this,this.editor,"OPChildPages",dw)}}class mw extends wc{constructor(e){super(e),this.affectsData=!1}execute(){const e=this.editor.model,t=e.document.selection;let o=e.schema.getLimitElement(t);if(t.containsEntireContent(o)||!gw(e.schema,o))do{if(o=o.parent,!o)return}while(!gw(e.schema,o));e.change((e=>{e.setSelection(o,"in")}))}}function gw(e,t){return e.isLimit(t)&&(e.checkChild(t,"$text")||e.checkChild(t,"paragraph"))}const pw=Wt("Ctrl+A");class fw extends fc{static get pluginName(){return"SelectAllEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=e.editing.view.document;e.commands.add("selectAll",new mw(e)),this.listenTo(o,"keydown",((t,o)=>{Ht(o)===pw&&(e.execute("selectAll"),o.preventDefault())})),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class bw extends fc{static get pluginName(){return"SelectAllUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(sh)))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("selectAll"),n=new e(t.locale),s=o.t;return n.set({label:s("Select all"),icon:'',keystroke:"Ctrl+A"}),n.bind("isEnabled").to(i,"isEnabled"),this.listenTo(n,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),n}}class ww extends fc{static get requires(){return[fw,bw]}static get pluginName(){return"SelectAll"}static get isOfficialPlugin(){return!0}}const yw="ckCsrfToken",_w="abcdefghijklmnopqrstuvwxyz0123456789";function kw(){let e=function(e){e=e.toLowerCase();const t=document.cookie.split(";");for(const o of t){const t=o.split("=");if(decodeURIComponent(t[0].trim().toLowerCase())===e)return decodeURIComponent(t[1])}return null}(yw);var t,o;return e&&40==e.length||(e=function(e){let t="";const o=new Uint8Array(e);window.crypto.getRandomValues(o);for(let e=0;e.5?i.toUpperCase():i}return t}(40),t=yw,o=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(o)+";path=/"),e}class vw{loader;url;t;xhr;constructor(e,t,o){this.loader=e,this.url=t,this.t=o}upload(){return this.loader.file.then((e=>new Promise(((t,o)=>{this._initRequest(),this._initListeners(t,o,e),this._sendRequest(e)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open("POST",this.url,!0),e.responseType="json"}_initListeners(e,t,o){const i=this.xhr,n=this.loader,s=(0,this.t)("Cannot upload file:")+` ${o.name}.`;i.addEventListener("error",(()=>t(s))),i.addEventListener("abort",(()=>t())),i.addEventListener("load",(()=>{const o=i.response;if(!o||!o.uploaded)return t(o&&o.error&&o.error.message?o.error.message:s);e({default:o.url})})),i.upload&&i.upload.addEventListener("progress",(e=>{e.lengthComputable&&(n.uploadTotal=e.total,n.uploaded=e.loaded)}))}_sendRequest(e){const t=new FormData;t.append("upload",e),t.append("ckCsrfToken",kw()),this.xhr.send(t)}}function Cw(e,t,o,i){let n,s=null;"function"==typeof i?n=i:(s=e.commands.get(i),n=()=>{e.execute(i)}),e.model.document.on("change:data",((r,a)=>{if(s&&!s.isEnabled||!t.isEnabled)return;const l=to(e.model.document.selection.getRanges());if(!l.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const c=Array.from(e.model.document.differ.getChanges()),d=c[0];if(1!=c.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const u=d.position.parent;if(u.is("element","codeBlock"))return;if(u.is("element","listItem")&&"function"!=typeof i&&!["numberedList","bulletedList","todoList"].includes(i))return;if(s&&!0===s.value)return;const h=u.getChild(0),m=e.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const g=o.exec(h.data.substr(0,l.end.offset));g&&e.model.enqueueChange((t=>{const o=e.model.document.selection,i=t.createPositionAt(u,0),s=t.createPositionAt(u,g[0].length),r=new Ts(i,s);if(!1!==n({match:g})){const e=Array.from(o.getAttributes());t.remove(r);const i=o.getFirstRange(),n=t.createRangeIn(u);!u.isEmpty||n.isEqual(i)||n.containsRange(i,!0)||t.remove(u),function(e,t,o){const i=e.model.schema,n=t.getFirstPosition();let s=new gr(n);i.checkChild(s,"$text")&&(s=s.push("$text"));for(const[t,n]of o)i.checkAttribute(s,t)&&e.setSelectionAttribute(t,n)}(t,o,e)}r.detach(),e.model.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function Aw(e,t,o,i){let n,s;o instanceof RegExp?n=o:s=o,s=s||(e=>{let t;const o=[],i=[];for(;null!==(t=n.exec(e))&&!(t&&t.length<4);){let{index:e,1:n,2:s,3:r}=t;const a=n+s+r;e+=t[0].length-a.length;const l=[e,e+n.length],c=[e+n.length+s.length,e+n.length+s.length+r.length];o.push(l),o.push(c),i.push([e+n.length,e+n.length+s.length])}return{remove:o,format:i}}),e.model.document.on("change:data",((o,n)=>{if(n.isUndo||!n.isLocal||!t.isEnabled)return;const r=e.model,a=r.document.selection;if(!a.isCollapsed)return;const l=Array.from(r.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const d=a.focus,u=d.parent,{text:h,range:m}=function(e,t){let o=e.start;const i=Array.from(e.getItems()).reduce(((e,i)=>!i.is("$text")&&!i.is("$textProxy")||i.getAttribute("code")?(o=t.createPositionAfter(i),""):e+i.data),"");return{text:i,range:t.createRange(o,e.end)}}(r.createRange(r.createPositionAt(u,0),d),r),g=s(h),p=xw(m.start,g.format,r),f=xw(m.start,g.remove,r);p.length&&f.length&&r.enqueueChange((t=>{if(!1!==i(t,p)){for(const e of f.reverse())t.remove(e);r.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function xw(e,t,o){return t.filter((e=>void 0!==e[0]&&void 0!==e[1])).map((t=>o.createRange(e.getShiftedBy(t[0]),e.getShiftedBy(t[1]))))}function Ew(e,t){return(o,i)=>{if(!e.commands.get(t).isEnabled)return!1;const n=e.model.schema.getValidRanges(i,t);for(const e of n)o.setAttribute(t,!0,e);o.removeSelectionAttribute(t)}}class Tw extends wc{attributeKey;constructor(e,t){super(e),this.attributeKey=t}refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,this.attributeKey)}execute(e={}){const t=this.editor.model,o=t.document.selection,i=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(o.isCollapsed)i?e.setSelectionAttribute(this.attributeKey,!0):e.removeSelectionAttribute(this.attributeKey);else{const n=t.schema.getValidRanges(o.getRanges(),this.attributeKey,{includeEmptyRanges:!0});for(const t of n){let o=t,n=this.attributeKey;t.isCollapsed&&(o=t.start.parent,n=Os._getStoreAttributeKey(this.attributeKey)),i?e.setAttribute(n,i,o):e.removeAttribute(n,o)}}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,o=e.document.selection;if(o.isCollapsed)return o.hasAttribute(this.attributeKey);for(const e of o.getRanges())for(const o of e.getItems())if(t.checkAttribute(o,this.attributeKey))return o.hasAttribute(this.attributeKey);return!1}}const Pw="bold";class Sw extends fc{static get pluginName(){return"BoldEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Pw}),e.model.schema.setAttributeProperties(Pw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:Pw,view:"strong",upcastAlso:["b",e=>{const t=e.getStyle("font-weight");return t&&("bold"==t||Number(t)>=600)?{name:!0,styles:["font-weight"]}:null}]}),e.commands.add(Pw,new Tw(e,Pw)),e.keystrokes.set("CTRL+B",Pw),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Bold text"),keystroke:"CTRL+B"}]})}}function Iw({editor:e,commandName:t,plugin:o,icon:i,label:n,keystroke:s}){return r=>{const a=e.commands.get(t),l=new r(e.locale);return l.set({label:n,icon:i,keystroke:s,isToggleable:!0}),l.bind("isEnabled").to(a,"isEnabled"),l.bind("isOn").to(a,"value"),l instanceof sh?l.set({role:"menuitemcheckbox"}):l.set({tooltip:!0}),o.listenTo(l,"execute",(()=>{e.execute(t),e.editing.view.focus()})),l}}const Rw="bold";class Ow extends fc{static get pluginName(){return"BoldUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Rw,plugin:this,icon:qc,label:t("Bold"),keystroke:"CTRL+B"});e.ui.componentFactory.add(Rw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Rw,(()=>o(sh)))}}const Vw="code";class Dw extends fc{static get pluginName(){return"CodeEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Rg]}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Vw}),e.model.schema.setAttributeProperties(Vw,{isFormatting:!0,copyOnEnter:!1}),e.conversion.attributeToElement({model:Vw,view:"code"}),e.commands.add(Vw,new Tw(e,Vw)),e.plugins.get(Rg).registerAttribute(Vw),jg(e,Vw,"code","ck-code_selected"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Move out of an inline code style"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}}const Fw="code";class Mw extends fc{static get pluginName(){return"CodeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Fw,plugin:this,icon:'',label:t("Code")});e.ui.componentFactory.add(Fw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Fw,(()=>o(sh)))}}const Nw="italic";class Bw extends fc{static get pluginName(){return"ItalicEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Nw}),e.model.schema.setAttributeProperties(Nw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:Nw,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),e.commands.add(Nw,new Tw(e,Nw)),e.keystrokes.set("CTRL+I",Nw),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Italic text"),keystroke:"CTRL+I"}]})}}const Lw="italic";class zw extends fc{static get pluginName(){return"ItalicUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Lw,plugin:this,icon:'',keystroke:"CTRL+I",label:t("Italic")});e.ui.componentFactory.add(Lw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Lw,(()=>o(sh)))}}const jw="strikethrough";class qw extends fc{static get pluginName(){return"StrikethroughEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:jw}),e.model.schema.setAttributeProperties(jw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:jw,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),e.commands.add(jw,new Tw(e,jw)),e.keystrokes.set("CTRL+SHIFT+X","strikethrough"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const $w="strikethrough";class Hw extends fc{static get pluginName(){return"StrikethroughUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:$w,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:t("Strikethrough")});e.ui.componentFactory.add($w,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+$w,(()=>o(sh)))}}class Ww extends wc{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.schema,i=t.document.selection,n=Array.from(i.getSelectedBlocks()),s=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(s){const t=n.filter((e=>Uw(e)||Gw(o,e)));this._applyQuote(e,t)}else this._removeQuote(e,n.filter(Uw))}))}_getValue(){const e=to(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!Uw(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.model.document.selection,t=this.editor.model.schema,o=to(e.getSelectedBlocks());return!!o&&Gw(t,o)}_removeQuote(e,t){Kw(e,t).reverse().forEach((t=>{if(t.start.isAtStart&&t.end.isAtEnd)return void e.unwrap(t.start.parent);if(t.start.isAtStart){const o=e.createPositionBefore(t.start.parent);return void e.move(t,o)}t.end.isAtEnd||e.split(t.end);const o=e.createPositionAfter(t.end.parent);e.move(t,o)}))}_applyQuote(e,t){const o=[];Kw(e,t).reverse().forEach((t=>{let i=Uw(t.start);i||(i=e.createElement("blockQuote"),e.wrap(t,i)),o.push(i)})),o.reverse().reduce(((t,o)=>t.nextSibling==o?(e.merge(e.createPositionAfter(t)),t):o))}}function Uw(e){return"blockQuote"==e.parent.name?e.parent:null}function Kw(e,t){let o,i=0;const n=[];for(;i{const i=e.model.document.differ.getChanges();for(const e of i)if("insert"==e.type){const i=e.position.nodeAfter;if(!i)continue;if(i.is("element","blockQuote")&&i.isEmpty)return o.remove(i),!0;if(i.is("element","blockQuote")&&!t.checkChild(e.position,i))return o.unwrap(i),!0;if(i.is("element")){const e=o.createRangeIn(i);for(const i of e.getItems())if(i.is("element","blockQuote")&&!t.checkChild(o.createPositionBefore(i),i))return o.unwrap(i),!0}}else if("remove"==e.type){const t=e.position.parent;if(t.is("element","blockQuote")&&t.isEmpty)return o.remove(t),!0}return!1}));const o=this.editor.editing.view.document,i=e.model.document.selection,n=e.commands.get("blockQuote");this.listenTo(o,"enter",((t,o)=>{if(!i.isCollapsed||!n.value)return;i.getLastPosition().parent.isEmpty&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"}),this.listenTo(o,"delete",((t,o)=>{if("backward"!=o.direction||!i.isCollapsed||!n.value)return;const s=i.getLastPosition().parent;s.isEmpty&&!s.previousSibling&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"})}}class Zw extends fc{static get pluginName(){return"BlockQuoteUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("blockQuote",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:blockQuote",(()=>{const e=this._createButton(sh);return e.set({role:"menuitemcheckbox"}),e}))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("blockQuote"),n=new e(t.locale),s=o.t;return n.set({label:s("Block quote"),icon:'',isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value"),this.listenTo(n,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),n}}class Qw extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=to(e.document.selection.getSelectedBlocks());this.value=!!t&&t.is("element","paragraph"),this.isEnabled=!!t&&Yw(t,e.schema)}execute(e={}){const t=this.editor.model,o=t.document,i=e.selection||o.selection;t.canEditAt(i)&&t.change((e=>{const o=i.getSelectedBlocks();for(const i of o)!i.is("element","paragraph")&&Yw(i,t.schema)&&e.rename(i,"paragraph")}))}}function Yw(e,t){return t.checkChild(e.parent,"paragraph")&&!t.isObject(e)}class Xw extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,o=e.attributes;let i=e.position;return t.canEditAt(i)?t.change((e=>{if(i=this._findPositionToInsertParagraph(i,e),!i)return null;const n=e.createElement("paragraph");return o&&t.schema.setAllowedAttributes(n,o,e),t.insertContent(n,i),e.setSelection(n,"in"),e.createPositionAt(n,0)})):null}_findPositionToInsertParagraph(e,t){const o=this.editor.model;if(o.schema.checkChild(e,"paragraph"))return e;const i=o.schema.findAllowedParent(e,"paragraph");if(!i)return null;const n=e.parent,s=o.schema.checkChild(n,"$text");return n.isEmpty||s&&e.isAtEnd?o.createPositionAfter(n):!n.isEmpty&&s&&e.isAtStart?o.createPositionBefore(n):t.split(e,i).position}}class ey extends fc{static get pluginName(){return"Paragraph"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new Qw(e)),e.commands.add("insertParagraph",new Xw(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(e,{writer:t})=>ey.paragraphLikeElements.has(e.name)?e.isEmpty?null:t.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}static paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"])}class ty extends wc{modelElements;constructor(e,t){super(e),this.modelElements=t}refresh(){const e=to(this.editor.model.document.selection.getSelectedBlocks());this.value=!!e&&this.modelElements.includes(e.name)&&e.name,this.isEnabled=!!e&&this.modelElements.some((t=>oy(e,t,this.editor.model.schema)))}execute(e){const t=this.editor.model,o=t.document,i=e.value;t.change((e=>{const n=Array.from(o.selection.getSelectedBlocks()).filter((e=>oy(e,i,t.schema)));for(const t of n)t.is("element",i)||e.rename(t,i)}))}}function oy(e,t,o){return o.checkChild(e.parent,t)&&!o.isObject(e)}const iy="paragraph";class ny extends fc{static get pluginName(){return"HeadingEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[ey]}init(){const e=this.editor,t=e.config.get("heading.options"),o=[];for(const i of t)"paragraph"!==i.model&&(e.model.schema.register(i.model,{inheritAllFrom:"$block"}),e.conversion.elementToElement(i),o.push(i.model));this._addDefaultH1Conversion(e),e.commands.add("heading",new ty(e,o))}afterInit(){const e=this.editor,t=e.commands.get("enter"),o=e.config.get("heading.options");t&&this.listenTo(t,"afterExecute",((t,i)=>{const n=e.model.document.selection.getFirstPosition().parent;o.some((e=>n.is("element",e.model)))&&!n.is("element",iy)&&0===n.childCount&&i.writer.rename(n,iy)}))}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:ge.low+1})}}function sy(e){const t=e.t,o={Paragraph:t("Paragraph"),"Heading 1":t("Heading 1"),"Heading 2":t("Heading 2"),"Heading 3":t("Heading 3"),"Heading 4":t("Heading 4"),"Heading 5":t("Heading 5"),"Heading 6":t("Heading 6")};return e.config.get("heading.options").map((e=>{const t=o[e.title];return t&&t!=e.title&&(e.title=t),e}))}class ry extends fc{static get pluginName(){return"HeadingUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=sy(e),i=t("Choose heading"),n=t("Heading");e.ui.componentFactory.add("heading",(t=>{const s={},r=new eo,a=e.commands.get("heading"),l=e.commands.get("paragraph"),c=[a];for(const e of o){const t={type:"button",model:new Jm({label:e.title,class:e.class,role:"menuitemradio",withText:!0})};"paragraph"===e.model?(t.model.bind("isOn").to(l,"value"),t.model.set("commandName","paragraph"),c.push(l)):(t.model.bind("isOn").to(a,"value",(t=>t===e.model)),t.model.set({commandName:"heading",commandValue:e.model})),r.add(t),s[e.model]=e.title}const d=Zh(t);return Xh(d,r,{ariaLabel:n,role:"menu"}),d.buttonView.set({ariaLabel:n,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:n}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...e)=>e.some((e=>e)))),d.buttonView.bind("label").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?i:s[o]?s[o]:i})),d.buttonView.bind("ariaLabel").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?n:s[o]?`${s[o]}, ${n}`:n})),this.listenTo(d,"execute",(t=>{const{commandName:o,commandValue:i}=t.source;e.execute(o,i?{value:i}:void 0),e.editing.view.focus()})),d})),e.ui.componentFactory.add("menuBar:heading",(i=>{const n=new og(i),s=e.commands.get("heading"),r=e.commands.get("paragraph"),a=[s],l=new ig(i);n.set({class:"ck-heading-dropdown"}),l.set({ariaLabel:t("Heading"),role:"menu"}),n.buttonView.set({label:t("Heading")}),n.panelView.children.add(l);for(const t of o){const o=new Em(i,n),c=new sh(i);o.children.add(c),l.items.add(o),c.set({isToggleable:!0,label:t.title,role:"menuitemradio",class:t.class}),c.delegate("execute").to(n),c.on("execute",(()=>{const o="paragraph"===t.model?"paragraph":"heading";e.execute(o,{value:t.model}),e.editing.view.focus()})),"paragraph"===t.model?(c.bind("isOn").to(r,"value"),a.push(r)):c.bind("isOn").to(s,"value",(e=>e===t.model))}return n.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),n}))}}new Set(["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"]);class ay{_definitions=new Set;_conflictChecker;get length(){return this._definitions.size}setConflictChecker(e){this._conflictChecker=e}add(e){Array.isArray(e)?e.forEach((e=>this._definitions.add(e))):this._definitions.add(e)}getDispatcher(){return e=>{const t=(e,t)=>{const o=t.createAttributeElement("a",e.attributes,{priority:5});e.classes&&t.addClass(e.classes,o);for(const i in e.styles)t.setStyle(i,e.styles[i],o);return t.setCustomProperty("link",!0,o),o},o=e=>(o,i,n)=>{if(i.attributeKey.startsWith("link")&&("linkHref"!=i.attributeKey||n.consumable.test(i.item,"attribute:linkHref"))&&(i.item.is("selection")||n.schema.isInline(i.item)))for(const o of this._definitions)o.callback(i.item.getAttribute("linkHref"))&&!this._conflictChecker?.(o,i.item)&&e?i.item.is("selection")?n.writer.wrap(n.writer.document.selection.getFirstRange(),t(o,n.writer)):n.writer.wrap(n.mapper.toViewRange(i.range),t(o,n.writer)):n.writer.unwrap(n.mapper.toViewRange(i.range),t(o,n.writer))};e.on("attribute",o(!1),{priority:ge.high-1}),e.on("attribute",o(!0),{priority:ge.high-2})}}getDispatcherForLinkedImage(){return e=>{const t=e=>(t,o,{writer:i,mapper:n})=>{if(!o.item.is("element","imageBlock")||!o.attributeKey.startsWith("link"))return;const s=n.toViewElement(o.item),r=Array.from(s.getChildren()).find((e=>e.is("element","a")));if(r)for(const t of this._definitions){const n=ao(t.attributes);if(t.callback(o.item.getAttribute("linkHref"))&&!this._conflictChecker?.(t,o.item)&&e){for(const[e,t]of n)"class"===e?i.addClass(t,r):i.setAttribute(e,t,!1,r);t.classes&&i.addClass(t.classes,r);for(const e in t.styles)i.setStyle(e,t.styles[e],r)}else{for(const[e,t]of n)"class"===e?i.removeClass(t,r):i.removeAttribute(e,t,r);t.classes&&i.removeClass(t.classes,r);for(const e in t.styles)i.removeStyle(e,r)}}};e.on("attribute",t(!1),{priority:ge.high-1}),e.on("attribute",t(!0),{priority:ge.high-2})}}}const ly=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,cy=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,dy=/^((\w+:(\/{2,})?)|(\W))/i,uy=["https?","ftps?","mailto"],hy="Ctrl+K";function my(e,{writer:t}){const o=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,o),o}function gy(e,t=uy){const o=String(e),i=t.join("|");return function(e,t){const o=e.replace(ly,"");return!!o.match(t)}(o,new RegExp(`${"^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))".replace("",i)}`,"i"))?o:"#"}function py(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function fy(e,t){const o=(i=e,cy.test(i)?"mailto:":t);var i;const n=!!o&&!by(e);return e&&n?o+e:e}function by(e){return dy.test(e)}function wy(e){let t="";for(const o of e.getItems()){if(!o.is("$text")&&!o.is("$textProxy"))return;t+=o.data}return t}function yy(e,t){if(e.attributes&&t.attributes){if(Object.keys(e.attributes).some((e=>!function(e){return"class"===e||"style"===e||"rel"===e}(e)&&e in t.attributes)))return!0}if(e.styles&&t.styles){if(Object.keys(e.styles).some((e=>e in t.styles)))return!0}return!1}function _y(e,t){const o=t.find((t=>t.id===e));return o?t.filter((t=>t.id!==e&&yy(o,t))).map((e=>e.id)):[]}class ky extends wc{manualDecorators=new eo;automaticDecorators=new ay;restoreManualDecoratorStates(){for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement()||to(t.getSelectedBlocks());py(o,e.schema)?(this.value=o.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttribute(o,"linkHref")):(this.value=t.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref"));for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}execute(e,t={},o){const i=this.editor.model,n=i.document.selection,s=function({decoratorStates:e,allDecorators:t}){const o={...e};for(const n in e)if(e[n]&&i(n)){const e=_y(n,t);for(const t of e)o[t]=!1}function i(e){return t.some((t=>t.id===e&&!t.value))}return o}({allDecorators:Array.from(this.manualDecorators),decoratorStates:t}),r=[],a=[];for(const e in s)s[e]?r.push(e):a.push(e);i.change((t=>{const s=o=>{t.setAttribute("linkHref",e,o),r.forEach((e=>t.setAttribute(e,!0,o))),a.forEach((e=>t.removeAttribute(e,o)))},l=(n,r)=>{const a=wy(n);if(!a)return n;let l=o;if(l||(l=r&&r==a?e:a),l!=a){const e=t.createDocumentFragment();for(const o of n.getItems()){const i=o;t.append(t.createText(i.data,i.getAttributes()),e)}const o=t.createRangeIn(e),r=function(e,t){const o=de(e,t),i={equal:0,insert:0,delete:0},n=[];let s="",r="";for(const a of[...o,null])"insert"==a?r+=t[i.equal+i.insert]:"delete"==a?s+=e[i.equal+i.delete]:(s.length||r.length)&&(n.push({offset:i.equal,actual:s,expected:r}),s="",r=""),a&&i[a]++;return n}(a,l);let c=0;for(const{offset:e,actual:n,expected:a}of r){const r=e+c,l=t.createRange(o.start.getShiftedBy(r),o.start.getShiftedBy(r+n.length)),d=vy(l,o).getAttributes(),u=Array.from(d).filter((([e])=>i.schema.getAttributeProperties(e).isFormatting)),h=t.createText(a,u);s(h),t.remove(l),t.insert(h,l.start),c+=a.length}return i.insertContent(e,n),t.createRange(n.start,n.start.getShiftedBy(l.length))}},c=e=>{const{plugins:o}=this.editor;if(t.setSelection(e.end),o.has("TwoStepCaretMovement"))o.get("TwoStepCaretMovement")._handleForwardMovement();else for(const e of["linkHref",...r,...a])t.removeSelectionAttribute(e)};if(n.isCollapsed){const a=n.getFirstPosition();if(n.hasAttribute("linkHref")){const e=n.getAttribute("linkHref"),t=Lg(a,"linkHref",e,i),o=l(t,e);s(o||t),o&&c(o)}else if(""!==e){const s=ao(n.getAttributes());s.set("linkHref",e),r.forEach((e=>{s.set(e,!0)}));c(i.insertContent(t.createText(o||e,s),a))}}else{const e=Array.from(n.getRanges()),o=i.schema.getValidRanges(e,"linkHref"),r=[];for(const e of n.getSelectedBlocks())i.schema.checkAttribute(e,"linkHref")&&r.push(t.createRangeOn(e));const a=r.slice();for(const e of o)this._isRangeToUpdate(e,r)&&a.push(e);const c=e.map((e=>({start:ma.fromPosition(e.start,"toPrevious"),end:ma.fromPosition(e.end,"toNext")})));for(let e of a){e=l(e,(e.start.textNode||e.start.nodeAfter).getAttribute("linkHref"))||e,s(e)}t.setSelection(c.map((e=>{const t=e.start.toPosition(),o=e.end.toPosition();return e.start.detach(),e.end.detach(),i.createRange(t,o)})))}})),this.restoreManualDecoratorStates()}_getDecoratorStateFromModel(e){const t=this.editor.model,o=t.document.selection,i=o.getSelectedElement();return py(i,t.schema)?i.getAttribute(e):o.getAttribute(e)}_isRangeToUpdate(e,t){for(const o of t)if(o.containsRange(e))return!1;return!0}}function vy(e,t){if(!e.isCollapsed)return to(e.getItems());const o=e.start;return o.textNode?o.textNode:!o.nodeBefore||o.isEqual(t.start)?o.nodeAfter:o.nodeBefore}class Cy extends wc{refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement();py(o,e.schema)?this.isEnabled=e.schema.checkAttribute(o,"linkHref"):this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref")}execute(){const e=this.editor,t=this.editor.model,o=t.document.selection,i=e.commands.get("link");t.change((e=>{const n=o.isCollapsed?[Lg(o.getFirstPosition(),"linkHref",o.getAttribute("linkHref"),t)]:t.schema.getValidRanges(o.getRanges(),"linkHref");for(const t of n)if(e.removeAttribute("linkHref",t),i)for(const o of i.manualDecorators)e.removeAttribute(o.id,t)}))}}class Ay extends(Be()){id;defaultValue;label;attributes;classes;styles;constructor({id:e,label:t,attributes:o,classes:i,styles:n,defaultValue:s}){super(),this.id=e,this.set("value",void 0),this.defaultValue=s,this.label=t,this.attributes=o,this.classes=i,this.styles=n}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}const xy="automatic",Ey=/^(https?:)?\/\//;class Ty extends fc{_linkOpeners=[];static get pluginName(){return"LinkEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Rg,fg,bf]}constructor(e){super(e),e.config.define("link",{allowCreatingEmptyLinks:!1,addTargetToExternalLinks:!1,toolbar:["linkPreview","|","editLink","linkProperties","unlink"]})}init(){const e=this.editor,t=this.editor.config.get("link.allowedProtocols");e.model.schema.extend("$text",{allowAttributes:"linkHref"}),e.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:my}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(e,o)=>my(gy(e,t),o)}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:e=>e.getAttribute("href")}}),e.commands.add("link",new ky(e)),e.commands.add("unlink",new Cy(e));const o=function(e,t){const o={"Open in a new tab":e("Open in a new tab"),Downloadable:e("Downloadable")};return t.forEach((e=>("label"in e&&o[e.label]&&(e.label=o[e.label]),e))),t}(e.t,function(e){const t=[];if(e)for(const[i,n]of Object.entries(e)){const e=Object.assign({},n,{id:`link${o=i,function(e){return e.substring(0,1).toUpperCase()+e.substring(1)}(_o(o))}`});t.push(e)}var o;return t}(e.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter((e=>e.mode===xy))),this._enableManualDecorators(o.filter((e=>"manual"===e.mode)));e.plugins.get(Rg).registerAttribute("linkHref"),jg(e,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableSelectionAttributesFixer(),this._enableClipboardIntegration(),this._enableDecoratorConflictPostfixer()}_registerLinkOpener(e){this._linkOpeners.push(e)}_enableAutomaticDecorators(e){const t=this.editor,o=t.commands.get("link"),i=o.automaticDecorators;t.config.get("link.addTargetToExternalLinks")&&i.add({id:"linkIsExternal",mode:xy,callback:e=>!!e&&Ey.test(e),attributes:{target:"_blank",rel:"noopener noreferrer"}}),i.add(e),i.setConflictChecker(((e,t)=>{for(const i of o.manualDecorators)if(t.hasAttribute(i.id)&&yy(e,i))return!0})),i.length&&t.conversion.for("downcast").add(i.getDispatcher())}_enableManualDecorators(e){if(!e.length)return;const t=this.editor,o=t.commands.get("link").manualDecorators;e.forEach((e=>{t.model.schema.extend("$text",{allowAttributes:e.id});const i=new Ay(e);o.add(i),t.conversion.for("downcast").add((e=>{const t=e=>{const t=e.createAttributeElement("a",i.attributes,{priority:5});i.classes&&e.addClass(i.classes,t);for(const o in i.styles)e.setStyle(o,i.styles[o],t);return e.setCustomProperty("link",!0,t),t},o=e=>(o,i,n)=>{if(i.item.is("selection")||n.schema.isInline(i.item)){if(!e&&i.attributeOldValue){if(!n.consumable.test(i.item,o.name))return;n.writer.unwrap(n.mapper.toViewRange(i.range),t(n.writer))}if(e&&i.attributeNewValue){if(!n.consumable.consume(i.item,o.name))return;i.item.is("selection")?n.writer.wrap(n.writer.document.selection.getFirstRange(),t(n.writer)):n.writer.wrap(n.mapper.toViewRange(i.range),t(n.writer))}}};e.on(`attribute:${i.id}`,o(!1),{priority:ge.high-1}),e.on(`attribute:${i.id}`,o(!0),{priority:ge.high-2})})),t.conversion.for("upcast").elementToAttribute({view:{name:"a",...i._createPattern()},model:{key:i.id}})}))}_enableLinkOpen(){const e=this.editor,t=e.editing.view.document,o=e=>{var t;this._linkOpeners.some((t=>t(e)))||(t=e,window.open(t,"_blank","noopener"))};this.listenTo(t,"click",((e,t)=>{if(!(Y.isMac?t.domEvent.metaKey:t.domEvent.ctrlKey))return;let i=t.domTarget;if("a"!=i.tagName.toLowerCase()&&(i=i.closest("a")),!i)return;const n=i.getAttribute("href");n&&(e.stop(),t.preventDefault(),o(n))}),{context:"$capture"}),this.listenTo(t,"keydown",((t,i)=>{const n=e.commands.get("link").value;!!n&&i.keyCode===qt.enter&&i.altKey&&(t.stop(),o(n))}))}_enableSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection;this.listenTo(t,"change:attribute",((o,{attributeKeys:i})=>{i.includes("linkHref")&&!t.hasAttribute("linkHref")&&e.change((t=>{var o;!function(e,t){e.removeSelectionAttribute("linkHref");for(const o of t)e.removeSelectionAttribute(o)}(t,(o=e.schema,o.getDefinition("$text").allowAttributes.filter((e=>e.startsWith("link")))))}))}))}_enableClipboardIntegration(){const e=this.editor,t=e.model,o=this.editor.config.get("link.defaultProtocol");o&&this.listenTo(e.plugins.get("ClipboardPipeline"),"contentInsertion",((e,i)=>{t.change((e=>{const t=e.createRangeIn(i.content);for(const i of t.getItems())if(i.hasAttribute("linkHref")){const t=fy(i.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,i)}}))}))}_enableDecoratorConflictPostfixer(){const e=this.editor,t=e.model,o=e.commands.get("link");t.document.registerPostFixer((e=>{let i=!1;const n=t.document.differ.getChanges(),s=new Set,r=new Set(o.manualDecorators.map((e=>e.id)));for(const e of n){if("attribute"===e.type){if("linkHref"!==e.attributeKey&&!r.has(e.attributeKey))continue;for(const t of e.range.getItems())t.hasAttribute("linkHref")&&s.add(t)}"insert"===e.type&&e.attributes.has("linkHref")&&e.position.nodeAfter&&s.add(e.position.nodeAfter)}for(const t of s){const n=[];for(const s of o.manualDecorators)if(t.hasAttribute(s.id)){for(let o=n.length-1;o>=0;o--){const r=n[o];yy(r,s)&&(e.removeAttribute(r.id,t),n.splice(o,1),i=!0)}n.push(s)}}return i}))}}class Py extends Lu{constructor(e){super(e);const t=this.bindTemplate;this.set({href:void 0,withText:!0}),this.extendTemplate({attributes:{class:["ck-link-toolbar__preview"],href:t.to("href"),target:"_blank",rel:"noopener noreferrer"},on:{click:t.to((e=>{if(this.href){const t=()=>e.preventDefault();this.fire("navigate",this.href,t)}}))}}),this.template.tag="a"}}class Sy extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;saveButtonView;displayedTextInputView;urlInputView;children;providersListChildren;_validators;_focusables=new tu;_focusCycler;constructor(e,t){super(e),this._validators=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.displayedTextInputView=this._createDisplayedTextInput(),this.urlInputView=this._createUrlInput(),this.providersListChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView()]),this._createFormChildren(),this.listenTo(this.providersListChildren,"add",(()=>{this.stopListening(this.providersListChildren,"add"),this.children.add(this._createProvidersListView())})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-link-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.urlInputView,this.saveButtonView,...this.providersListChildren,this.backButtonView,this.displayedTextInputView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.urlInputView.errorText=t,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Insert"),tooltip:!1,withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Link")});return t.children.add(this.backButtonView,0),t}_createProvidersListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link-form__providers-list"]}}),e.items.bindTo(this.providersListChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}_createDisplayedTextInput(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.label=e("Displayed text"),t.class="ck-labeled-field-view_full-width",t}_createUrlInput(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.fieldView.inputMode="url",t.label=e("Link URL"),t.class="ck-labeled-field-view_full-width",t}_createFormChildren(){this.children.add(new Km(this.locale,{children:[this.displayedTextInputView],class:["ck-form__row_large-top-padding"]})),this.children.add(new Km(this.locale,{children:[this.urlInputView,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding","ck-form__row_large-bottom-padding"]}))}get url(){const{element:e}=this.urlInputView.fieldView;return e?e.value.trim():null}}class Iy extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;listView;listChildren;emptyListInformation;children;_focusables=new tu;_focusCycler;constructor(e){super(e),this.listChildren=this.createCollection(),this.backButtonView=this._createBackButton(),this.listView=this._createListView(),this.emptyListInformation=this._createEmptyLinksListItemView(),this.children=this.createCollection([this._createHeaderView(),this.emptyListInformation]),this.set("title",""),this.set("emptyListPlaceholder",""),this.set("hasItems",!1),this.listenTo(this.listChildren,"change",(()=>{this.hasItems=this.listChildren.length>0})),this.on("change:hasItems",((e,t,o)=>{o?(this.children.remove(this.emptyListInformation),this.children.add(this.listView)):(this.children.remove(this.listView),this.children.add(this.emptyListInformation))})),this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-providers"],tabindex:"-1"},children:this.children})}render(){super.render();[this.listView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link-providers__list"]}}),e.items.bindTo(this.listChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createHeaderView(){const e=new ju(this.locale);return e.bind("label").to(this,"title"),e.children.add(this.backButtonView,0),e}_createEmptyLinksListItemView(){const e=new Au(this.locale);return e.setTemplate({tag:"p",attributes:{class:["ck","ck-link__empty-list-info"]},children:[{text:this.bindTemplate.to("emptyListPlaceholder")}]}),e}}class Ry extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;children;listChildren;_focusables=new tu;_focusCycler;constructor(e){super(e),this.backButtonView=this._createBackButton(),this.listChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView(),this._createListView()]),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-properties"],tabindex:"-1"},children:this.children}),this.keystrokes.set("Esc",((e,t)=>{this.fire("back"),t()}))}render(){super.render();[...this.listChildren,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"back"),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Link properties")});return t.children.add(this.backButtonView,0),t}_createListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link__list"]}}),e.items.bindTo(this.listChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}}class Oy extends Lu{arrowView;constructor(e){super(e),this.set({withText:!0}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-link__button"]}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Kc,e}}const Vy="link-ui";class Dy extends fc{toolbarView=null;formView=null;linkProviderItemsView=null;propertiesView=null;_balloon;_linksProviders=new eo;static get requires(){return[Qm,Ty]}static get pluginName(){return"LinkUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;this.set("selectedLinkableText",void 0),e.editing.view.addObserver(ol),this._balloon=e.plugins.get(Qm),this._registerComponents(),this._registerEditingOpeners(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:Vy,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:Vy,view:(e,{writer:t})=>{if(!e.markerRange.isCollapsed)return null;const o=t.createUIElement("span");return t.addClass(["ck-fake-link-selection","ck-fake-link-selection_collapsed"],o),o}}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Create link"),keystroke:hy},{label:t("Move out of a link"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}destroy(){super.destroy(),this.propertiesView&&this.propertiesView.destroy(),this.formView&&this.formView.destroy(),this.toolbarView&&this.toolbarView.destroy(),this.linkProviderItemsView&&this.linkProviderItemsView.destroy()}registerLinksListProvider(e){const t=this._linksProviders.filter((t=>(t.order||0)<=(e.order||0))).length;this._linksProviders.add(e,t)}_createViews(){const e=this.editor.commands.get("link");this.toolbarView=this._createToolbarView(),this.formView=this._createFormView(),e.manualDecorators.length&&(this.propertiesView=this._createPropertiesView()),this._enableUserBalloonInteractions()}_createToolbarView(){const e=this.editor,t=new Wh(e.locale),o=e.commands.get("link");t.class="ck-link-toolbar";let i=e.config.get("link.toolbar");return o.manualDecorators.length||(i=i.filter((e=>"linkProperties"!==e))),t.fillFromConfig(i,e.ui.componentFactory),t.keystrokes.set("Esc",((e,t)=>{this._hideUI(),t()})),t.keystrokes.set(hy,((e,t)=>{this._addFormView(),t()})),e.ui.addToolbar(t,{isContextual:!0,beforeFocus:()=>{this._getSelectedLinkElement()&&!this._isToolbarVisible&&this._showUI(!0)},afterBlur:()=>{this._hideUI(!1)}}),t}_createFormView(){const e=this.editor,t=e.locale.t,o=e.commands.get("link"),i=e.config.get("link.defaultProtocol"),n=new(Iu(Sy))(e.locale,function(e){const t=e.t,o=e.config.get("link.allowCreatingEmptyLinks");return[e=>{if(!o&&!e.url.length)return t("Link URL must not be empty.")}]}(e));return n.displayedTextInputView.bind("isEnabled").to(this,"selectedLinkableText",(e=>void 0!==e)),n.urlInputView.bind("isEnabled").to(o,"isEnabled"),n.saveButtonView.bind("isEnabled").to(o,"isEnabled"),n.saveButtonView.bind("label").to(o,"value",(e=>t(e?"Update":"Insert"))),this.listenTo(n,"submit",(()=>{if(n.isValid()){const t=fy(n.urlInputView.fieldView.element.value,i),o=n.displayedTextInputView.fieldView.element.value;e.execute("link",t,this._getDecoratorSwitchesState(),o!==this.selectedLinkableText?o:void 0),this._closeFormView()}})),this.listenTo(n.urlInputView,"change:errorText",(()=>{e.ui.update()})),this.listenTo(n,"cancel",(()=>{this._closeFormView()})),n.keystrokes.set("Esc",((e,t)=>{this._closeFormView(),t()})),n.providersListChildren.bindTo(this._linksProviders).using((e=>this._createLinksListProviderButton(e))),n}_createLinkProviderListView(e){return e.getListItems().map((({href:e,label:t,icon:o})=>{const i=new Lu;return i.set({label:t,icon:o,tooltip:!1,withText:!0}),i.on("execute",(()=>{this.formView.resetFormStatus(),this.formView.urlInputView.fieldView.value=e,this.editor.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()})),i}))}_createLinkProviderItemsView(e){const t=this.editor,o=t.locale.t,i=new Iy(t.locale),{emptyListPlaceholder:n,label:s}=e;return i.emptyListPlaceholder=n||o("No links available"),i.title=s,this.listenTo(i,"cancel",(()=>{t.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()})),i}_createPropertiesView(){const e=this.editor,t=this.editor.commands.get("link"),o=new(Iu(Ry))(e.locale);return this.listenTo(o,"back",(()=>{e.editing.view.focus(),this._removePropertiesView()})),o.listChildren.bindTo(t.manualDecorators).using((o=>{const i=new fh(e.locale);return i.set({label:o.label,withText:!0}),i.bind("isOn").toMany([o,t],"value",((e,t)=>void 0===t&&void 0===e?!!o.defaultValue:!!e)),i.on("execute",(()=>{e.execute("link",t.value,{...this._getDecoratorSwitchesState(),[o.id]:!i.isOn})})),i})),o}_getDecoratorSwitchesState(){const e=this.editor.commands.get("link");return Array.from(e.manualDecorators).reduce(((t,o)=>{const i=void 0===e.value&&void 0===o.value?o.defaultValue:o.value;return{...t,[o.id]:!!i}}),{})}_registerEditingOpeners(){this.editor.plugins.get(Ty)._registerLinkOpener((e=>{const t=this._getLinkProviderLinkByHref(e);if(!t)return!1;const{item:o,provider:i}=t;return!!i.navigate&&i.navigate(o)}))}_registerComponents(){const e=this.editor;e.ui.componentFactory.add("link",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:link",(()=>{const e=this._createButton(sh);return e.set({role:"menuitemcheckbox"}),e})),e.ui.componentFactory.add("linkPreview",(t=>{const o=new Py(t),i=e.config.get("link.allowedProtocols"),n=e.commands.get("link"),s=t.t;o.bind("isEnabled").to(n,"value",(e=>!!e)),o.bind("href").to(n,"value",(e=>e&&gy(e,i)));const r=e=>{if(!e)return o.label=void 0,o.icon=void 0,void(o.tooltip=s("Open link in new tab"));const t=this._getLinkProviderLinkByHref(e);if(t){const{label:e,tooltip:i,icon:n}=t.item;o.label=e,o.tooltip=i||!1,o.icon=n}else o.label=e,o.icon=void 0,o.tooltip=s("Open link in new tab")};return r(n.value),this.listenTo(n,"change:value",((e,t,o)=>{r(o)})),this.listenTo(o,"navigate",((e,t,o)=>{const i=this._getLinkProviderLinkByHref(t);if(!i)return;const{provider:n,item:s}=i,{navigate:r}=n;r&&r(s)&&(e.stop(),o())})),o})),e.ui.componentFactory.add("unlink",(t=>{const o=e.commands.get("unlink"),i=new Lu(t),n=t.t;return i.set({label:n("Unlink"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),this.listenTo(i,"execute",(()=>{e.execute("unlink"),this._hideUI()})),i})),e.ui.componentFactory.add("editLink",(t=>{const o=e.commands.get("link"),i=new Lu(t),n=t.t;return i.set({label:n("Edit link"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),this.listenTo(i,"execute",(()=>{this._addFormView()})),i})),e.ui.componentFactory.add("linkProperties",(t=>{const o=e.commands.get("link"),i=new Lu(t),n=t.t;return i.set({label:n("Link properties"),icon:'\n',tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled",o,"value",o,"manualDecorators",((e,t,o)=>e&&!!t&&o.length>0)),this.listenTo(i,"execute",(()=>{this._addPropertiesView()})),i}))}_createLinksListProviderButton(e){const t=this.editor.locale,o=new Oy(t);return o.set({label:e.label}),this.listenTo(o,"execute",(()=>{this._showLinksProviderView(e)})),o}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("link"),n=new e(t.locale),s=o.t;return n.set({label:s("Link"),icon:'',keystroke:hy,isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>!!e)),this.listenTo(n,"execute",(()=>{t.editing.view.scrollToTheSelection(),this._showUI(!0),this._getSelectedLinkElement()&&this._addFormView()})),n}_enableBalloonActivators(){const e=this.editor,t=e.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),e.keystrokes.set(hy,((t,o)=>{o(),e.commands.get("link").isEnabled&&(e.editing.view.scrollToTheSelection(),this._showUI(!0))}))}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",((e,t)=>{this._isToolbarVisible&&!this.toolbarView.focusTracker.isFocused&&(this.toolbarView.focus(),t())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((e,t)=>{this._isUIVisible&&(this._hideUI(),t())})),Su({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>{this._hideUI(!1)}})}_addToolbarView(){this.toolbarView||this._createViews(),this._isToolbarInPanel||this._balloon.add({view:this.toolbarView,position:this._getBalloonPositionData(),balloonClassName:"ck-toolbar-container"})}_addFormView(){if(this.formView||this._createViews(),this._isFormInPanel)return;const e=this.editor.commands.get("link");this.formView.disableCssTransitions(),this.formView.resetFormStatus(),this.formView.backButtonView.isVisible=e.isEnabled&&!!e.value,this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this.selectedLinkableText=this._getSelectedLinkableText(),this.formView.displayedTextInputView.fieldView.value=this.selectedLinkableText||"",this.formView.urlInputView.fieldView.value=e.value||"",this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions()}_addPropertiesView(){this.propertiesView||this._createViews(),this._arePropertiesInPanel||(this.propertiesView.disableCssTransitions(),this._balloon.add({view:this.propertiesView,position:this._getBalloonPositionData()}),this.propertiesView.enableCssTransitions(),this.propertiesView.focus())}_showLinksProviderView(e){this.linkProviderItemsView&&this._removeLinksProviderView(),this.linkProviderItemsView=this._createLinkProviderItemsView(e),this._addLinkProviderItemsView(e)}_addLinkProviderItemsView(e){this.linkProviderItemsView.listChildren.clear(),this.linkProviderItemsView.listChildren.addMany(this._createLinkProviderListView(e)),this._balloon.add({view:this.linkProviderItemsView,position:this._getBalloonPositionData()}),this.linkProviderItemsView.focus()}_closeFormView(){const e=this.editor.commands.get("link");this.selectedLinkableText=void 0,void 0!==e.value?this._removeFormView():this._hideUI()}_removePropertiesView(){this._arePropertiesInPanel&&this._balloon.remove(this.propertiesView)}_removeLinksProviderView(){this._isLinksListInPanel&&this._balloon.remove(this.linkProviderItemsView)}_removeFormView(e=!0){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this.formView.displayedTextInputView.fieldView.reset(),this.formView.urlInputView.fieldView.reset(),this._balloon.remove(this.formView),e&&this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(e=!1){this.formView||this._createViews(),this._getSelectedLinkElement()?(this._isToolbarVisible?this._addFormView():this._addToolbarView(),e&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addToolbarView(),e&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(e=!0){const t=this.editor;this._isUIInPanel&&(this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),e&&t.editing.view.focus(),this._removeLinksProviderView(),this._removePropertiesView(),this._removeFormView(e),this._isToolbarInPanel&&this._balloon.remove(this.toolbarView),this._hideFakeVisualSelection())}_startUpdatingUI(){const e=this.editor,t=e.editing.view.document;let o=this._getSelectedLinkElement(),i=s();const n=()=>{const e=this._getSelectedLinkElement(),t=s();o&&!e||!o&&t!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),o=e,i=t};function s(){return t.selection.focus.getAncestors().reverse().find((e=>e.is("element")))}this.listenTo(e.ui,"update",n),this.listenTo(this._balloon,"change:visibleView",n)}get _arePropertiesInPanel(){return!!this.propertiesView&&this._balloon.hasView(this.propertiesView)}get _isLinksListInPanel(){return!!this.linkProviderItemsView&&this._balloon.hasView(this.linkProviderItemsView)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _isToolbarInPanel(){return!!this.toolbarView&&this._balloon.hasView(this.toolbarView)}get _isPropertiesVisible(){return!!this.propertiesView&&this._balloon.visibleView===this.propertiesView}get _isFormVisible(){return!!this.formView&&this._balloon.visibleView==this.formView}get _isToolbarVisible(){return!!this.toolbarView&&this._balloon.visibleView===this.toolbarView}get _isUIInPanel(){return this._arePropertiesInPanel||this._isLinksListInPanel||this._isFormInPanel||this._isToolbarInPanel}get _isUIVisible(){return this._isPropertiesVisible||this._isLinksListInPanel||this._isFormVisible||this._isToolbarVisible}_getBalloonPositionData(){const e=this.editor.editing.view,t=e.document;if(this.editor.model.markers.has(Vy)){const t=this.editor.editing.mapper.markerNameToElements(Vy);if(t){const o=Array.from(t),i=e.createRange(e.createPositionBefore(o[0]),e.createPositionAfter(o[o.length-1]));return{target:e.domConverter.viewRangeToDom(i)}}}return{target:()=>{const o=this._getSelectedLinkElement();return o?e.domConverter.mapViewToDom(o):e.domConverter.viewRangeToDom(t.selection.getFirstRange())}}}_getSelectedLinkElement(){const e=this.editor.editing.view,t=e.document.selection,o=t.getSelectedElement();if(t.isCollapsed||o&&ip(o))return Fy(t.getFirstPosition());{const o=t.getFirstRange().getTrimmed(),i=Fy(o.start),n=Fy(o.end);return i&&i==n&&e.createRangeIn(i).getTrimmed().isEqual(o)?i:null}}_getSelectedLinkableText(){const e=this.editor.model,t=this.editor.editing,o=this._getSelectedLinkElement();if(!o)return wy(e.document.selection.getFirstRange());const i=t.view.createRangeOn(o);return wy(t.mapper.toModelRange(i))}_getLinkProviderLinkByHref(e){if(!e)return null;for(const t of this._linksProviders){const o=t.getItem?t.getItem(e):t.getListItems().find((t=>t.href===e));if(o)return{provider:t,item:o}}return null}_showFakeVisualSelection(){const e=this.editor.model;e.change((t=>{const o=e.document.selection.getFirstRange();if(e.markers.has(Vy))t.updateMarker(Vy,{range:o});else if(o.start.isAtEnd){const i=o.start.getLastMatchingPosition((({item:t})=>!e.schema.isContent(t)),{boundaries:o});t.addMarker(Vy,{usingOperation:!1,affectsData:!1,range:t.createRange(i,o.end)})}else t.addMarker(Vy,{usingOperation:!1,affectsData:!1,range:o})}))}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(Vy)&&e.change((e=>{e.removeMarker(Vy)}))}}function Fy(e){return e.getAncestors().find((e=>{return(t=e).is("attributeElement")&&!!t.getCustomProperty("link");var t}))||null}const My=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63}))|localhost)(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class Ny extends fc{static get requires(){return[Tg,Ty]}static get pluginName(){return"AutoLink"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.model.document.selection;e.on("change:range",(()=>{this.isEnabled=!e.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling(),this._enablePasteLinking()}_expandLinkRange(e,t){return t.textNode&&t.textNode.hasAttribute("linkHref")?Lg(t,"linkHref",t.textNode.getAttribute("linkHref"),e):null}_selectEntireLinks(e,t){const o=this.editor.model,i=o.document.selection,n=i.getFirstPosition(),s=i.getLastPosition();let r=t.getJoined(this._expandLinkRange(o,n)||t);r&&(r=r.getJoined(this._expandLinkRange(o,s)||t)),r&&(r.start.isBefore(n)||r.end.isAfter(s))&&e.setSelection(r)}_enablePasteLinking(){const e=this.editor,t=e.model,o=t.document.selection,i=e.plugins.get("ClipboardPipeline"),n=e.commands.get("link");i.on("inputTransformation",((e,i)=>{if(!this.isEnabled||!n.isEnabled||o.isCollapsed||"paste"!==i.method)return;if(o.rangeCount>1)return;const s=o.getFirstRange(),r=i.dataTransfer.getData("text/plain");if(!r)return;const a=r.match(My);a&&a[2]===r&&(t.change((e=>{this._selectEntireLinks(e,s),n.execute(r)})),e.stop())}),{priority:"high"})}_enableTypingHandling(){const e=this.editor,t=new Ig(e.model,(e=>{let t=e;if(!function(e){return e.length>4&&" "===e[e.length-1]&&" "!==e[e.length-2]}(t))return;t=t.slice(0,-1),"!.:,;?".includes(t[t.length-1])&&(t=t.slice(0,-1));const o=By(t);return o?{url:o,removedTrailingCharacters:e.length-t.length}:void 0}));t.on("matched:data",((t,o)=>{const{batch:i,range:n,url:s,removedTrailingCharacters:r}=o;if(!i.isTyping)return;const a=n.end.getShiftedBy(-r),l=a.getShiftedBy(-s.length),c=e.model.createRange(l,a);this._applyAutoLink(s,c)})),t.bind("isEnabled").to(this)}_enableEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("enter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition();let o;o=e.parent.previousSibling?.is("element")?t.createRangeIn(e.parent.previousSibling):t.createRange(t.createPositionAt(e.parent,0),e),this._checkAndApplyAutoLinkOnRange(o)}))}_enableShiftEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("shiftEnter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition(),o=t.createRange(t.createPositionAt(e.parent,0),e.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(o)}))}_checkAndApplyAutoLinkOnRange(e){const t=this.editor.model,{text:o,range:i}=Sg(e,t),n=By(o);if(n){const e=t.createRange(i.end.getShiftedBy(-n.length),i.end);this._applyAutoLink(n,e)}}_applyAutoLink(e,t){const o=this.editor.model,i=fy(e,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(e,t){return t.schema.checkAttributeInSelection(t.createSelection(e),"linkHref")}(t,o)&&by(i)&&!function(e){const t=e.start.nodeAfter;return!!t&&t.hasAttribute("linkHref")}(t)&&this._persistAutoLink(i,t)}_persistAutoLink(e,t){const o=this.editor.model,i=this.editor.plugins.get("Delete");o.enqueueChange((n=>{n.setAttribute("linkHref",e,t),o.enqueueChange((()=>{i.requestUndoOnBackspace()}))}))}}function By(e){const t=My.exec(e);return t?t[2]:null}function Ly(e){return e.map((e=>function(e){"number"==typeof e&&(e=String(e));if("object"==typeof e&&(t=e,t.title&&t.model&&t.view))return jy(e);var t;const o=function(e){return"string"==typeof e?zy[e]:zy[e.model]}(e);if(o)return jy(o);if("default"===e)return{model:void 0,title:"Default"};if(function(e){let t;if("object"==typeof e){if(!e.model)throw new fe("font-size-invalid-definition",null,e);t=parseFloat(e.model)}else t=parseFloat(e);return isNaN(t)}(e))return;return function(e){"string"==typeof e&&(e={title:e,model:`${parseFloat(e)}px`});return e.view={name:"span",styles:{"font-size":e.model}},jy(e)}(e)}(e))).filter((e=>void 0!==e))}const zy={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function jy(e){return e.view&&"string"!=typeof e.view&&!e.view.priority&&(e.view.priority=7),e}class qy{_startElement;_referenceIndent;_isForward;_includeSelf;_sameAttributes;_sameIndent;_lowerIndent;_higherIndent;constructor(e,t){this._startElement=e,this._referenceIndent=e.getAttribute("listIndent"),this._isForward="forward"==t.direction,this._includeSelf=!!t.includeSelf,this._sameAttributes=Qt(t.sameAttributes||[]),this._sameIndent=!!t.sameIndent,this._lowerIndent=!!t.lowerIndent,this._higherIndent=!!t.higherIndent}static first(e,t){return to(new this(e,t)[Symbol.iterator]())}*[Symbol.iterator](){const e=[];for(const{node:t}of new $y(this._getStartNode(),this._isForward?"forward":"backward")){const o=t.getAttribute("listIndent");if(othis._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){e.push(t);continue}}else{if(!this._sameIndent){if(this._higherIndent){e.length&&(yield*e,e.length=0);break}continue}if(this._sameAttributes.some((e=>t.getAttribute(e)!==this._startElement.getAttribute(e))))break}e.length&&(yield*e,e.length=0),yield t}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}class $y{_node;_isForward;_previousNodesByIndent=[];_previous=null;_previousNodeIndent=null;constructor(e,t="forward"){this._node=e,this._isForward="forward"===t}[Symbol.iterator](){return this}next(){if(!Uy(this._node))return{done:!0,value:void 0};const e=this._node.getAttribute("listIndent");let t=null;if(this._previous){const o=this._previousNodeIndent;e>o?this._previousNodesByIndent[o]=this._previous:ee.getAttribute("listItemId")!=t))}function s_(e){return Array.from(e).filter((e=>"$graveyard"!==e.root.rootName)).sort(((e,t)=>e.index-t.index))}function r_(e){const t=e.document.selection.getSelectedElement();return t&&e.schema.isObject(t)&&e.schema.isBlock(t)?t:null}function a_(e,t){return t.checkChild(e.parent,"listItem")&&t.checkChild(e,"$text")&&!t.isObject(e)}function l_(e){return"numbered"==e||"customNumbered"==e}function c_(e,t,o){return Gy(t,{direction:"forward"}).pop().index>e.index?t_(e,t,o):[]}class d_ extends wc{_direction;constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor,t=e.model,o=u_(t.document.selection),i=e.plugins.get("ListEditing").getListAttributeNames();t.change((e=>{const t=[];n_(o)&&!Zy(o[0])?("forward"==this._direction&&t.push(...o_(o,e,{attributeNames:i})),t.push(...e_(o[0],e))):"forward"==this._direction?t.push(...o_(o,e,{expand:!0,attributeNames:i})):t.push(...function(e,t,{attributeNames:o}){const i=Yy(e=Qt(e)),n=new Set,s=Math.min(...i.map((e=>e.getAttribute("listIndent")))),r=new Map;for(const e of i)r.set(e,qy.first(e,{lowerIndent:!0}));for(const e of i){if(n.has(e))continue;n.add(e);const i=e.getAttribute("listIndent")-1;if(i<0)i_(e,t,o);else{if(e.getAttribute("listIndent")==s){const o=c_(e,r.get(e),t);for(const e of o)n.add(e);if(o.length)continue}t.setAttribute("listIndent",i,e)}}return s_(n)}(o,e,{attributeNames:i}));for(const o of t){if(!o.hasAttribute("listType"))continue;const t=qy.first(o,{sameIndent:!0});t&&e.setAttribute("listType",t.getAttribute("listType"),o)}this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",s_(new Set(e)))}_checkEnabled(){let e=u_(this.editor.model.document.selection),t=e[0];if(!t)return!1;if("backward"==this._direction)return!0;if(n_(e)&&!Zy(e[0]))return!0;e=Yy(e),t=e[0];const o=qy.first(t,{sameIndent:!0});return!!o&&o.getAttribute("listType")==t.getAttribute("listType")}}function u_(e){const t=Array.from(e.getSelectedBlocks()),o=t.findIndex((e=>!Uy(e)));return-1!=o&&(t.length=o),t}class h_ extends wc{type;_listWalkerOptions;constructor(e,t,o={}){super(e),this.type=t,this._listWalkerOptions=o.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.document,i=r_(t),n=Array.from(o.selection.getSelectedBlocks()).filter((e=>t.schema.checkAttribute(e,"listType")||a_(e,t.schema))),s=void 0!==e.forceValue?!e.forceValue:this.value;t.change((r=>{if(s){const e=n[n.length-1],t=this.editor.plugins.get("ListEditing").getListAttributeNames(),o=Gy(e,{direction:"forward"}),i=[];o.length>1&&i.push(...e_(o[1],r)),i.push(...i_(n,r,t)),i.push(...function(e,t){const o=[];let i=Number.POSITIVE_INFINITY;for(const{node:n}of new $y(e.nextSibling)){const e=n.getAttribute("listIndent");if(0==e)break;e{const{firstElement:r,lastElement:a}=this._getMergeSubjectElements(i,e),l=r.getAttribute("listIndent")||0,c=a.getAttribute("listIndent"),d=a.getAttribute("listItemId");if(l!=c){const e=(u=a,Array.from(new qy(u,{direction:"forward",higherIndent:!0})));n.push(...o_([a,...e],t,{indentBy:l-c,expand:l{const t=e_(this._getStartBlock(),e);this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",s_(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&Uy(t)&&!Zy(t)}_getStartBlock(){const e=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?e:e.nextSibling}}class p_ extends fc{static get pluginName(){return"ListItemBoldIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("BoldEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("bold","listItemBold"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemBold",setAttributeOnDowncast(e,t,o,i){t&&(e.addClass("ck-list-marker-bold",o),!Y.isSafari||i&&i.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-bold","0",o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("BoldEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemBold"}),t.schema.setAttributeProperties("listItemBold",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemBold"),e.conversion.for("upcast").attributeToAttribute({model:"listItemBold",view:{name:"li",classes:"ck-list-marker-bold"}}))}}class f_ extends fc{static get pluginName(){return"ListItemItalicIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("ItalicEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("italic","listItemItalic"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemItalic",setAttributeOnDowncast(e,t,o,i){t&&(e.addClass("ck-list-marker-italic",o),!Y.isSafari||i&&i.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-italic","0",o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("ItalicEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemItalic"}),t.schema.setAttributeProperties("listItemItalic",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemItalic"),e.conversion.for("upcast").attributeToAttribute({model:"listItemItalic",view:{name:"li",classes:"ck-list-marker-italic"}}))}}class b_ extends fc{static get pluginName(){return"ListItemFontSizeIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);if(!e.plugins.has("FontSizeEditing")||!this.editor.config.get("list.enableListItemMarkerFormatting"))return;const i=Ly(e.config.get("fontSize.options"));t.registerFormatAttribute("fontSize","listItemFontSize"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontSize",setAttributeOnDowncast(e,t,o,n){if(t){const s=i.find((e=>e.model==t));s&&s.view&&"string"!=typeof s.view?s.view.styles?(e.addClass("ck-list-marker-font-size",o),e.setStyle("--ck-content-list-marker-font-size",s.view.styles["font-size"],o)):s.view.classes&&(e.addClass(`ck-list-marker-font-size-${t}`,o),!Y.isSafari||n&&n.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-font-size","0",o)):(e.addClass("ck-list-marker-font-size",o),e.setStyle("--ck-content-list-marker-font-size",t,o))}}})}afterInit(){const e=this.editor,t=e.model;if(!e.plugins.has("FontSizeEditing")||!this.editor.config.get("list.enableListItemMarkerFormatting"))return;t.schema.extend("$listItem",{allowAttributes:"listItemFontSize"}),t.schema.setAttributeProperties("listItemFontSize",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontSize"),e.conversion.for("upcast").elementToAttribute({model:{key:"listItemFontSize",value:e=>e.getStyle("--ck-content-list-marker-font-size")},view:{name:"li",classes:"ck-list-marker-font-size",styles:{"--ck-content-list-marker-font-size":/.*/}}});const o=Ly(e.config.get("fontSize.options"));for(const t of o)t.model&&t.view&&e.conversion.for("upcast").elementToAttribute({model:{key:"listItemFontSize",value:t.model},view:{name:"li",classes:`ck-list-marker-font-size-${t.model}`}})}}class w_ extends fc{static get pluginName(){return"ListItemFontColorIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("FontColorEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("fontColor","listItemFontColor"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontColor",setAttributeOnDowncast(e,t,o){t&&(e.addClass("ck-list-marker-color",o),e.setStyle("--ck-content-list-marker-color",t,o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("FontColorEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemFontColor"}),t.schema.setAttributeProperties("listItemFontColor",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontColor"),e.conversion.for("upcast").attributeToAttribute({model:{key:"listItemFontColor",value:e=>e.getStyle("--ck-content-list-marker-color")},view:{name:"li",classes:"ck-list-marker-color",styles:{"--ck-content-list-marker-color":/.*/}}}))}}class y_ extends fc{static get pluginName(){return"ListItemFontFamilyIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("FontFamilyEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("fontFamily","listItemFontFamily"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontFamily",setAttributeOnDowncast(e,t,o){t&&(e.addClass("ck-list-marker-font-family",o),e.setStyle("--ck-content-list-marker-font-family",t,o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("FontFamilyEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemFontFamily"}),t.schema.setAttributeProperties("listItemFontFamily",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontFamily"),e.conversion.for("upcast").attributeToAttribute({model:{key:"listItemFontFamily",value:e=>e.getStyle("--ck-content-list-marker-font-family")},view:{name:"li",classes:"ck-list-marker-font-family",styles:{"--ck-content-list-marker-font-family":/.*/}}}))}}class __ extends fc{_loadedFormatting={};static get pluginName(){return"ListFormatting"}static get isOfficialPlugin(){return!0}static get requires(){return[p_,f_,b_,w_,y_]}constructor(e){super(e),e.config.define("list.enableListItemMarkerFormatting",!0)}afterInit(){this.editor.config.get("list.enableListItemMarkerFormatting")&&this._registerPostfixerForListItemFormatting()}_registerPostfixerForListItemFormatting(){const e=this.editor.model;e.document.registerPostFixer((t=>{const o=e.document.differ.getChanges(),i=new Set;let n=!1;for(const e of o)if("attribute"===e.type)("listItemId"==e.attributeKey||"listType"==e.attributeKey||this._isInlineOrSelectionFormatting(e.attributeKey)||Object.values(this._loadedFormatting).includes(e.attributeKey))&&(Uy(e.range.start.nodeAfter)?i.add(e.range.start.nodeAfter):Uy(e.range.start.parent)&&i.add(e.range.start.parent));else if(Uy(e.position.nodeAfter)&&i.add(e.position.nodeAfter),Uy(e.position.nodeBefore)&&i.add(e.position.nodeBefore),Uy(e.position.parent)&&i.add(e.position.parent),"insert"==e.type&&"$text"!=e.name){const o=t.createRangeIn(e.position.nodeAfter);for(const e of o.getItems())Uy(e)&&i.add(e)}for(const o of i){const i=k_(e,o,Object.keys(this._loadedFormatting));for(const[e,s]of Object.entries(i)){const i=this._loadedFormatting[e];(s&&C_(t,o,i,s)||!s&&A_(t,o,i))&&(n=!0)}}return n}))}registerFormatAttribute(e,t){this._loadedFormatting[e]=t}_isInlineOrSelectionFormatting(e){return e.replace(/^selection:/,"")in this._loadedFormatting}}function k_(e,t,o){if(Zy(t))return v_(e,t,o);return v_(e,Ky(t)[0],o)}function v_(e,t,o){if(!function(e){return["numbered","bulleted","customNumbered","customBulleted"].includes(e.getAttribute("listType"))}(t)||e.schema.isLimit(t))return Object.fromEntries(o.map((e=>[e])));if(t.isEmpty)return Object.fromEntries(o.map((e=>[e,t.getAttribute(`selection:${e}`)])));const i=new Set(o),n={},s=e.createRangeIn(t).getWalker({ignoreElementEnd:!0});for(const{item:t}of s){for(const o of i)if(e.schema.checkAttribute(t,o)){const e=t.getAttribute(o);void 0===e?(i.delete(o),n[o]=void 0):void 0===n[o]?n[o]=e:n[o]!==e&&(i.delete(o),n[o]=void 0)}else o in n||(n[o]=void 0);if(!i.size)break;e.schema.isLimit(t)&&s.jumpTo(e.createPositionAfter(t))}return n}function C_(e,t,o,i){const n=Ky(t);let s=!1;for(const t of n)t.hasAttribute(o)&&t.getAttribute(o)===i||(e.setAttribute(o,i,t),s=!0);return s}function A_(e,t,o){const i=Ky(t);let n=!1;for(const t of i)t.hasAttribute(o)&&(e.removeAttribute(o,t),n=!0);return n}class x_ extends fc{static get pluginName(){return"ListUtils"}static get isOfficialPlugin(){return!0}expandListBlocksToCompleteList(e){return Xy(e)}isFirstBlockOfListItem(e){return Zy(e)}isListItemBlock(e){return Uy(e)}expandListBlocksToCompleteItems(e,t={}){return Yy(e,t)}isNumberedListType(e){return l_(e)}isFirstListItemInList(e){return function(e){return!qy.first(e,{sameIndent:!0,sameAttributes:"listType"})}(e)}}function E_(e){return e.is("element","ol")||e.is("element","ul")}function T_(e){return e.is("element","li")}function P_(e,t,o,i=R_(o,t)){return e.createAttributeElement(I_(o),null,{priority:2*t/100-100,id:i})}function S_(e,t,o){return e.createAttributeElement("li",null,{priority:(2*t+1)/100-100,id:o})}function I_(e){return"numbered"==e||"customNumbered"==e?"ol":"ul"}function R_(e,t){return`list-${e}-${t}`}function O_(e,t,o){const i=e.nodeBefore;if(Uy(i)){let e=i;for(const{node:n}of new $y(e,"backward")){if(e=n,o.has(e))return;if(o.add(e),t.has(i))return}t.add(e)}else{const o=e.nodeAfter;Uy(o)&&t.add(o)}}function V_(){return(e,t,o)=>{const{writer:i,schema:n}=o;if(!t.modelRange)return;const s=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>n.checkAttribute(e,"listItemId")));if(!s.length)return;const r=t.viewItem.getAttribute("data-list-item-id")||Wy.next();o.consumable.consume(t.viewItem,{attributes:"data-list-item-id"});const a=function(e){let t=0,o=e.parent;for(;o;){if(T_(o))t++;else{const e=o.previousSibling;e&&T_(e)&&t++}o=o.parent}return t}(t.viewItem);let l=t.viewItem.parent&&t.viewItem.parent.is("element","ol")?"numbered":"bulleted";const c=s[0].getAttribute("listType");c&&(l=c);const d={listItemId:r,listIndent:a,listType:l};for(const e of s)e.hasAttribute("listItemId")||i.setAttributes(d,e);s.length>1&&s[1].getAttribute("listItemId")!=d.listItemId&&o.keepEmptyElement(s[0])}}function D_(e,t,o,i){return()=>{const i=e.document.differ.getChanges(),r=[],a=new Set,l=new Set,c=new Set;for(const e of i)if("insert"==e.type&&"$text"!=e.name)O_(e.position,a,c),e.attributes.has("listItemId")?l.add(e.position.nodeAfter):O_(e.position.getShiftedBy(e.length),a,c);else if("remove"==e.type&&e.attributes.has("listItemId"))O_(e.position,a,c);else if("attribute"==e.type){const t=e.range.start.nodeAfter;o.includes(e.attributeKey)?(O_(e.range.start,a,c),null===e.attributeNewValue?(O_(e.range.start.getShiftedBy(1),a,c),s(t)&&r.push(t)):l.add(t)):Uy(t)&&s(t)&&r.push(t)}for(const e of a.values())r.push(...n(e,l));for(const e of new Set(r))t.reconvertItem(e)};function n(e,t){const i=[],n=new Set,a=[];for(const{node:l,previous:c}of new $y(e)){if(n.has(l))continue;const e=l.getAttribute("listIndent");c&&eo.includes(e)))),modelElement:l};const d=Gy(l,{direction:"forward"});for(const e of d)n.add(e),(s(e,d)||r(e,a,t))&&i.push(e)}return i}function s(e,n){const s=t.mapper.toViewElement(e);if(!s)return!1;if(function(e){e=e.parent;for(;e.is("attributeElement")&&["ol","ul","li"].includes(e.name);)e=e.parent;if(e.getCustomProperty("$structureSlotParent")&&!t.mapper.toModelElement(e))return!0;return!1}(s))return!0;if(i.fire("checkElement",{modelElement:e,viewElement:s}))return!0;if(!e.is("element","paragraph")&&!e.is("element","listItem"))return!1;const r=B_(e,o,n);return!(!r||!s.is("element","p"))||!(r||!s.is("element","span"))}function r(e,o,n){if(n.has(e))return!1;const s=t.mapper.toViewElement(e);let r=o.length-1;for(let e=s.parent;!e.is("editableElement");e=e.parent){const t=T_(e),n=E_(e);if(!n&&!t)continue;const s="checkAttributes:"+(t?"item":"list");if(i.fire(s,{viewElement:e,modelAttributes:o[r].modelAttributes,modelReferenceElement:o[r].modelElement}))break;if(n&&(r--,r<0))return!1}return!0}}function F_(e,t,o,{dataPipeline:i}={}){const n=function(e,t){const o=t.filter((e=>!1===e.consume)).map((e=>e.attributeName));return(t,i)=>{const n=[];for(const i of e)t.hasAttribute(i)&&!o.includes(i)&&n.push(`attribute:${i}`);return!!n.every((e=>!1!==i.test(t,e)))&&(n.forEach((e=>i.consume(t,e))),!0)}}(e,t);return(s,r,a)=>{const{writer:l,mapper:c,consumable:d}=a,u=r.item;if(!e.includes(r.attributeKey))return;if(!n(u,d))return;const h={...a.options,dataPipeline:i},m=function(e,t,o,i){const n=o.createRangeOn(e),s=t.toViewRange(n).getTrimmed(),r=s.getWalker();for(const{item:e}of r)if(e.is("element")&&e.getCustomProperty("listItemMarker"))r.jumpTo(i.createPositionAfter(e));else if(e.is("element")&&!e.getCustomProperty("listItemWrapper"))return e}(u,c,o,l);N_(m,l,c),function(e,t){let o=e.parent;for(;o.is("attributeElement")&&["ul","ol","li"].includes(o.name);){const i=o.parent;t.unwrap(t.createRangeOn(e),o),o=i}}(m,l);const g=function(e,t,o,i,{dataPipeline:n}){let s=i.createRangeOn(t);if(!Zy(e))return s;for(const r of o){if("itemMarker"!=r.scope)continue;const o=r.createElement(i,e,{dataPipeline:n});if(!o)continue;if(i.setCustomProperty("listItemMarker",!0,o),r.canInjectMarkerIntoElement&&r.canInjectMarkerIntoElement(e)?i.insert(i.createPositionAt(t,0),o):(i.insert(s.start,o),s=i.createRange(i.createPositionBefore(o),i.createPositionAfter(t))),!r.createWrapperElement||!r.canWrapElement)continue;const a=r.createWrapperElement(i,e,{dataPipeline:n});i.setCustomProperty("listItemWrapper",!0,a),r.canWrapElement(e)?s=i.wrap(s,a):(s=i.wrap(i.createRangeOn(o),a),s=i.createRange(s.start,i.createPositionAfter(t)))}return s}(u,m,t,l,h);!function(e,t,o,i,n){if(!e.hasAttribute("listIndent"))return;const s=e.getAttribute("listIndent");let r=e;for(let e=s;e>=0;e--){const s=S_(i,e,r.getAttribute("listItemId")),a=P_(i,e,r.getAttribute("listType"));for(const e of o)"list"!=e.scope&&"item"!=e.scope||!r.hasAttribute(e.attributeName)||e.setAttributeOnDowncast(i,r.getAttribute(e.attributeName),"list"==e.scope?a:s,n,r);if(t=i.wrap(t,s),t=i.wrap(t,a),0==e)break;if(r=qy.first(r,{lowerIndent:!0}),!r)break}}(u,g,t,l,h)}}function M_(e,{dataPipeline:t}={}){return(o,{writer:i})=>{if(!B_(o,e))return null;if(!t)return i.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const n=i.createContainerElement("p");return i.setCustomProperty("dataPipeline:transparentRendering",!0,n),n}}function N_(e,t,o){for(;e.parent.is("attributeElement")&&e.parent.getCustomProperty("listItemWrapper");)t.unwrap(t.createRangeOn(e),e.parent);const i=[];n(t.createPositionBefore(e).getWalker({direction:"backward"})),n(t.createRangeIn(e).getWalker());for(const e of i)t.remove(e);function n(e){for(const{item:t}of e){if(t.is("element")&&o.toModelElement(t))break;t.is("element")&&t.getCustomProperty("listItemMarker")&&i.push(t)}}}function B_(e,t,o=Ky(e)){if(!Uy(e))return!1;for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&"htmlEmptyBlock"!=o&&!t.includes(o))return!1;return o.length<2}const L_=["listType","listIndent","listItemId"];class z_ extends fc{_downcastStrategies=[];static get pluginName(){return"ListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Kg,Tg,x_,bf,__]}constructor(e){super(e),e.config.define("list.multiBlock",!0)}init(){const e=this.editor,t=e.model,o=e.config.get("list.multiBlock");if(e.plugins.has("LegacyListEditing"))throw new fe("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:L_}),o?(t.schema.extend("$container",{allowAttributesOf:"$listItem"}),t.schema.extend("$block",{allowAttributesOf:"$listItem"}),t.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):t.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const e of L_)t.schema.setAttributeProperties(e,{copyOnReplace:!0});e.commands.add("numberedList",new h_(e,"numbered")),e.commands.add("bulletedList",new h_(e,"bulleted")),e.commands.add("customNumberedList",new h_(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new h_(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new d_(e,"forward")),e.commands.add("outdentList",new d_(e,"backward")),e.commands.add("splitListItemBefore",new g_(e,"before")),e.commands.add("splitListItemAfter",new g_(e,"after")),o&&(e.commands.add("mergeListItemBackward",new m_(e,"backward")),e.commands.add("mergeListItemForward",new m_(e,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration(),this._setupListItemIdConversionStrategy()}afterInit(){const e=this.editor.commands,t=e.get("indent"),o=e.get("outdent");t&&t.registerChildCommand(e.get("indentList"),{priority:"high"}),o&&o.registerChildCommand(e.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(e){this._downcastStrategies.push(e)}getListAttributeNames(){return[...L_,...this._downcastStrategies.map((e=>e.attributeName))]}_setupDeleteIntegration(){const e=this.editor,t=e.commands.get("mergeListItemBackward"),o=e.commands.get("mergeListItemForward");this.listenTo(e.editing.view.document,"delete",((i,n)=>{const s=e.model.document.selection;r_(e.model)||e.model.change((()=>{const r=s.getFirstPosition();if(s.isCollapsed&&"backward"==n.direction){if(!r.isAtStart)return;const o=r.parent;if(!Uy(o))return;if(qy.first(o,{sameAttributes:"listType",sameIndent:!0})||0!==o.getAttribute("listIndent")){if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:j_(e.model,"backward")})}else Qy(o)||e.execute("splitListItemAfter"),e.execute("outdentList");n.preventDefault(),i.stop()}else{if(s.isCollapsed&&!s.getLastPosition().isAtEnd)return;if(!o||!o.isEnabled)return;o.execute({shouldMergeOnBlocksContentLevel:j_(e.model,"forward")}),n.preventDefault(),i.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const e=this.editor,t=e.model,o=e.commands,i=o.get("enter");this.listenTo(e.editing.view.document,"enter",((o,i)=>{const n=t.document,s=n.selection.getFirstPosition().parent;if(n.selection.isCollapsed&&Uy(s)&&s.isEmpty&&!i.isSoft){const t=Zy(s),n=Qy(s);t&&n?(e.execute("outdentList"),i.preventDefault(),o.stop()):t&&!n?(e.execute("splitListItemAfter"),i.preventDefault(),o.stop()):n&&(e.execute("splitListItemBefore"),i.preventDefault(),o.stop())}}),{context:"li"}),this.listenTo(i,"afterExecute",(()=>{const t=o.get("splitListItemBefore");if(t.refresh(),!t.isEnabled)return;2===Ky(e.model.document.selection.getLastPosition().parent).length&&t.execute()}))}_setupTabIntegration(){const e=this.editor;this.listenTo(e.editing.view.document,"tab",((t,o)=>{const i=o.shiftKey?"outdentList":"indentList";this.editor.commands.get(i).isEnabled&&(e.execute(i),o.stopPropagation(),o.preventDefault(),t.stop())}),{context:"li"})}_setupConversion(){const e=this.editor,t=e.model,o=this.getListAttributeNames(),i=e.config.get("list.multiBlock"),n=i?"paragraph":"listItem";e.conversion.for("upcast").elementToElement({view:"li",model:(e,{writer:t})=>t.createElement(n,{listType:""})}).elementToElement({view:"p",model:(e,{writer:t})=>e.parent&&e.parent.is("element","li")?t.createElement(n,{listType:""}):null,converterPriority:"high"}).add((e=>{e.on("element:li",V_())})),i||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:n,view:M_(o),converterPriority:"high"}).add((e=>{var i;e.on("attribute",F_(o,this._downcastStrategies,t)),e.on("remove",(i=t.schema,(e,t,o)=>{const{writer:n,mapper:s}=o,r=e.name.split(":")[1];if(!i.checkAttribute(r,"listItemId"))return;const a=s.toViewPosition(t.position),l=t.position.getShiftedBy(t.length),c=s.toViewPosition(l,{isPhantom:!0}),d=n.createRange(a,c).getTrimmed().end.nodeBefore;d&&N_(d,n,s)}))})),e.conversion.for("dataDowncast").elementToElement({model:n,view:M_(o,{dataPipeline:!0}),converterPriority:"high"}).add((e=>{e.on("attribute",F_(o,this._downcastStrategies,t,{dataPipeline:!0}))}));const s=(r=this._downcastStrategies,a=e.editing.view,(e,t)=>{if(t.modelPosition.offset>0)return;const o=t.modelPosition.parent;if(!Uy(o))return;if(!r.some((e=>"itemMarker"==e.scope&&e.canInjectMarkerIntoElement&&e.canInjectMarkerIntoElement(o))))return;const i=t.mapper.toViewElement(o),n=a.createRangeIn(i),s=n.getWalker();let l=n.start;for(const{item:e}of s){if(e.is("element")&&t.mapper.toModelElement(e)||e.is("$textProxy"))break;e.is("element")&&e.getCustomProperty("listItemMarker")&&(l=a.createPositionAfter(e),s.skip((({previousPosition:e})=>!e.isEqual(l))))}t.viewPosition=l});var r,a;e.editing.mapper.on("modelToViewPosition",s),e.data.mapper.on("modelToViewPosition",s),this.listenTo(t.document,"change:data",D_(t,e.editing,o,this),{priority:"high"}),this.on("checkAttributes:item",((e,{viewElement:t,modelAttributes:o})=>{t.id!=o.listItemId&&(e.return=!0,e.stop())})),this.on("checkAttributes:list",((e,{viewElement:t,modelAttributes:o})=>{t.name==I_(o.listType)&&t.id==R_(o.listType,o.listIndent)||(e.return=!0,e.stop())}))}_setupModelPostFixing(){const e=this.editor.model,t=this.getListAttributeNames();e.document.registerPostFixer((o=>function(e,t,o,i){const n=e.document.differ.getChanges(),s=new Set,r=new Set,a=i.editor.config.get("list.multiBlock");let l=!1;for(const i of n){if("insert"==i.type&&"$text"!=i.name){const n=i.position.nodeAfter;if(!e.schema.checkAttribute(n,"listItemId"))for(const e of Array.from(n.getAttributeKeys()))o.includes(e)&&(t.removeAttribute(e,n),l=!0);O_(i.position,r,s),i.attributes.has("listItemId")||O_(i.position.getShiftedBy(i.length),r,s);for(const{item:t,previousPosition:o}of e.createRangeIn(n))Uy(t)&&O_(o,r,s)}else"remove"==i.type?O_(i.position,r,s):"attribute"==i.type&&o.includes(i.attributeKey)&&(O_(i.range.start,r,s),null===i.attributeNewValue&&O_(i.range.start.getShiftedBy(1),r,s));if(!a&&"attribute"==i.type&&L_.includes(i.attributeKey)){const e=i.range.start.nodeAfter;null===i.attributeNewValue&&e&&e.is("element","listItem")?(t.rename(e,"paragraph"),l=!0):null===i.attributeOldValue&&e&&e.is("element")&&"listItem"!=e.name&&(t.rename(e,"listItem"),l=!0)}}const c=new Set;for(const e of r.values())l=i.fire("postFixer",{listNodes:new Hy(e),listHead:e,writer:t,seenIds:c})||l;return l}(e,o,t,this))),this.on("postFixer",((e,{listNodes:t,writer:o})=>{e.return=function(e,t){let o=0,i=-1,n=null,s=!1;for(const{node:r}of e){const e=r.getAttribute("listIndent");if(e>o){let a;null===n?(n=e-o,a=o):(n>e&&(n=e),a=e-n),a>i+1&&(a=i+1),t.setAttribute("listIndent",a,r),s=!0,i=a}else n=null,o=e+1,i=e}return s}(t,o)||e.return}),{priority:"high"}),this.on("postFixer",((e,{listNodes:t,writer:o,seenIds:i})=>{e.return=function(e,t,o){const i=new Set;let n=!1;for(const{node:s}of e){if(i.has(s))continue;let e=s.getAttribute("listType"),r=s.getAttribute("listItemId");if(t.has(r)&&(r=Wy.next()),t.add(r),s.is("element","listItem"))s.getAttribute("listItemId")!=r&&(o.setAttribute("listItemId",r,s),n=!0);else for(const t of Gy(s,{direction:"forward"}))i.add(t),t.getAttribute("listType")!=e&&(r=Wy.next(),e=t.getAttribute("listType")),t.getAttribute("listItemId")!=r&&(o.setAttribute("listItemId",r,t),n=!0)}return n}(t,i,o)||e.return}),{priority:"high"})}_setupClipboardIntegration(){const e=this.editor.model,t=this.editor.plugins.get("ClipboardPipeline");this.listenTo(e,"insertContent",function(e){return(t,[o,i])=>{const n=o.is("documentFragment")?Array.from(o.getChildren()):[o];if(!n.length)return;const s=(i?e.createSelection(i):e.document.selection).getFirstPosition();let r;if(Uy(s.parent))r=s.parent;else{if(!Uy(s.nodeBefore)||!Uy(s.nodeAfter))return;r=s.nodeBefore}e.change((e=>{const t=r.getAttribute("listType"),o=r.getAttribute("listIndent"),i=n[0].getAttribute("listIndent")||0,s=Math.max(o-i,0);for(const o of n){const i=Uy(o);r.is("element","listItem")&&o.is("element","paragraph")&&e.rename(o,"listItem"),e.setAttributes({listIndent:(i?o.getAttribute("listIndent"):0)+s,listItemId:i?o.getAttribute("listItemId"):Wy.next(),listType:t},o)}}))}}(e),{priority:"high"}),this.listenTo(t,"outputTransformation",((t,o)=>{e.change((e=>{const t=Array.from(o.content.getChildren()),i=t[t.length-1];if(t.length>1&&i.is("element")&&i.isEmpty){t.slice(0,-1).every(Uy)&&e.remove(i)}if("copy"==o.method||"cut"==o.method){const t=Array.from(o.content.getChildren());n_(t)&&i_(t,e,this.getListAttributeNames())}}))}))}_setupAccessibilityIntegration(){const e=this.editor,t=e.t;e.accessibility.addKeystrokeInfoGroup({id:"list",label:t("Keystrokes that can be used in a list"),keystrokes:[{label:t("Increase list item indent"),keystroke:"Tab"},{label:t("Decrease list item indent"),keystroke:"Shift+Tab"}]})}_setupListItemIdConversionStrategy(){this.registerDowncastStrategy({scope:"item",attributeName:"listItemId",setAttributeOnDowncast(e,t,o,i){i&&(i.skipListItemIds||i.isClipboardPipeline)||e.setAttribute("data-list-item-id",t,o)}})}}function j_(e,t){const o=e.document.selection;if(!o.isCollapsed)return!r_(e);if("forward"===t)return!0;const i=o.getFirstPosition().parent,n=i.previousSibling;return!e.schema.isObject(n)&&(!!n.isEmpty||n_([i,n]))}function q_(e,t,o,i){e.ui.componentFactory.add(t,(()=>{const n=$_(Lu,e,t,o,i);return n.set({tooltip:!0,isToggleable:!0}),n})),e.ui.componentFactory.add(`menuBar:${t}`,(()=>{const n=$_(sh,e,t,o,i);return n.set({role:"menuitemcheckbox",isToggleable:!0}),n}))}function $_(e,t,o,i,n){const s=t.commands.get(o),r=new e(t.locale);return r.set({label:i,icon:n}),r.bind("isOn","isEnabled").to(s,"value","isEnabled"),r.on("execute",(()=>{t.execute(o),t.editing.view.focus()})),r}class H_ extends fc{static get pluginName(){return"ListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||q_(this.editor,"numberedList",e("Numbered List"),''),this.editor.ui.componentFactory.has("bulletedList")||q_(this.editor,"bulletedList",e("Bulleted List"),'')}}const W_={},U_={},K_={},G_=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"},{listStyle:"arabic-indic",typeAttribute:null,listType:"numbered"}];for(const{listStyle:e,typeAttribute:t,listType:o}of G_)W_[e]=o,U_[e]=t,t&&(K_[t]=e);class J_ extends wc{constructor(e){super(e),this.on("execute",(()=>{this.refresh()}),{priority:"highest"})}refresh(){const e=this._getSelectedItems();this.value=this._getValue(e),this.isEnabled=!!e.length}execute(e={}){this.editor.model.change((t=>{const o=this._getSelectedItems(),i=void 0===e.forceValue?!this._getValue(o):e.forceValue;for(const e of o)i?t.setAttribute("todoListChecked",!0,e):t.removeAttribute("todoListChecked",e)}))}_getValue(e){return e.every((e=>e.getAttribute("todoListChecked")))}_getSelectedItems(){const e=this.editor.model,t=e.schema,o=e.document.selection.getFirstRange(),i=o.start.parent,n=[];t.checkAttribute(i,"todoListChecked")&&n.push(...Ky(i));for(const e of o.getItems({shallow:!0}))t.checkAttribute(e,"todoListChecked")&&!n.includes(e)&&n.push(...Ky(e));return n}}class Z_ extends jn{domEventType=["change"];onDomEvent(e){if(e.target){const t=this.view.domConverter.mapDomToView(e.target);t&&t.is("element","input")&&"checkbox"==t.getAttribute("type")&&t.findAncestor({classes:"todo-list__label"})&&this.fire("todoCheckboxChange",e)}}}const Q_=Wt("Ctrl+Enter");class Y_ extends fc{static get pluginName(){return"TodoListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.model,o=e.editing,i=e.plugins.get(z_),n=e.config.get("list.multiBlock")?"paragraph":"listItem";e.commands.add("todoList",new h_(e,"todo")),e.commands.add("checkTodoList",new J_(e)),o.view.addObserver(Z_),t.schema.extend("$listItem",{allowAttributes:"todoListChecked"}),t.schema.addAttributeCheck((e=>{const t=e.last;if(!t.getAttribute("listItemId")||"todo"!=t.getAttribute("listType"))return!1}),"todoListChecked"),e.conversion.for("upcast").add((e=>{e.on("element:input",((e,t,o)=>{const i=t.modelCursor,n=i.parent,s=t.viewItem;if(!o.consumable.test(s,{name:!0}))return;if("checkbox"!=s.getAttribute("type")||!i.isAtStart||!n.hasAttribute("listType"))return;o.consumable.consume(s,{name:!0});const r=o.writer;r.setAttribute("listType","todo",n),t.viewItem.hasAttribute("checked")&&r.setAttribute("todoListChecked",!0,n),t.modelRange=r.createRange(i)})),e.on("element:li",((e,t,o)=>{const{writer:i,schema:n}=o;if(!t.modelRange)return;const s=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>"todo"===e.getAttribute("listType")&&n.checkAttribute(e,"listItemId"))).reduce(((e,t)=>{const o=t.getAttribute("listItemId");return e.has(o)||e.set(o,Ky(t)),e}),new Map);for(const[,e]of s.entries())if(e.some((e=>e.getAttribute("todoListChecked"))))for(const t of e)i.setAttribute("todoListChecked",!0,t)}),{priority:"low"}),e.on("element:label",X_({name:"label",classes:"todo-list__label"})),e.on("element:label",X_({name:"label",classes:["todo-list__label","todo-list__label_without-description"]})),e.on("element:span",X_({name:"span",classes:"todo-list__label__description"})),e.on("element:ul",function(e){const t=new ui(e);return(e,o,i)=>{const n=t.match(o.viewItem);if(!n)return;const s=n.match;s.name=!1,i.consumable.consume(o.viewItem,s)}}({name:"ul",classes:"todo-list"}))})),e.conversion.for("downcast").elementToElement({model:n,view:(e,{writer:t})=>{if(ek(e,i.getListAttributeNames()))return t.createContainerElement("span",{class:"todo-list__label__description"})},converterPriority:"highest"}),i.registerDowncastStrategy({scope:"list",attributeName:"listType",setAttributeOnDowncast(e,t,o){"todo"==t?e.addClass("todo-list",o):e.removeClass("todo-list",o)}}),i.registerDowncastStrategy({scope:"itemMarker",attributeName:"todoListChecked",createElement(e,t,{dataPipeline:o}){if("todo"!=t.getAttribute("listType"))return null;const i=e.createUIElement("input",{type:"checkbox",...t.getAttribute("todoListChecked")?{checked:"checked"}:null,...o?{disabled:"disabled"}:{tabindex:"-1"}});if(o)return i;const n=e.createContainerElement("span",{contenteditable:"false"},i);return n.getFillerOffset=()=>null,n},canWrapElement:e=>ek(e,i.getListAttributeNames()),createWrapperElement(e,t,{dataPipeline:o}){const n=["todo-list__label"];return ek(t,i.getListAttributeNames())||n.push("todo-list__label_without-description"),e.createAttributeElement(o?"label":"span",{class:n.join(" ")})}}),i.on("checkElement",((e,{modelElement:t,viewElement:o})=>{const n=ek(t,i.getListAttributeNames());o.hasClass("todo-list__label__description")!=n&&(e.return=!0,e.stop())})),i.on("checkElement",((t,{modelElement:o,viewElement:i})=>{const n="todo"==o.getAttribute("listType")&&Zy(o);let s=!1;const r=e.editing.view.createPositionBefore(i).getWalker({direction:"backward"});for(const{item:t}of r){if(t.is("element")&&e.editing.mapper.toModelElement(t))break;t.is("element","input")&&"checkbox"==t.getAttribute("type")&&(s=!0)}s!=n&&(t.return=!0,t.stop())})),i.on("postFixer",((e,{listNodes:t,writer:o})=>{for(const{node:i,previousNodeInList:n}of t){if(!n)continue;if(n.getAttribute("listItemId")!=i.getAttribute("listItemId"))continue;const t=n.hasAttribute("todoListChecked"),s=i.hasAttribute("todoListChecked");s&&!t?(o.removeAttribute("todoListChecked",i),e.return=!0):!s&&t&&(o.setAttribute("todoListChecked",!0,i),e.return=!0)}})),t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges();let i=!1;for(const t of o)if("attribute"==t.type&&"listType"==t.attributeKey){const o=t.range.start.nodeAfter;"todo"==t.attributeOldValue&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),i=!0)}else if("insert"==t.type&&"$text"!=t.name)for(const{item:o}of e.createRangeOn(t.position.nodeAfter))o.is("element")&&"todo"!=o.getAttribute("listType")&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),i=!0);return i})),this.listenTo(o.view.document,"keydown",((t,o)=>{Ht(o)===Q_&&(e.execute("checkTodoList"),t.stop())}),{priority:"high"}),this.listenTo(o.view.document,"todoCheckboxChange",((e,t)=>{const i=t.target;if(!i||!i.is("element","input"))return;const n=o.view.createPositionAfter(i),s=o.mapper.toModelPosition(n).parent;s&&Uy(s)&&"todo"==s.getAttribute("listType")&&this._handleCheckmarkChange(s)})),this.listenTo(o.view.document,"arrowKey",function(e,t){return(o,i)=>{const n=Kt(i.keyCode,t.contentLanguageDirection),s=e.schema,r=e.document.selection;if(!r.isCollapsed)return;const a=r.getFirstPosition(),l=a.parent;if("right"==n&&a.isAtEnd){const t=s.getNearestSelectionRange(e.createPositionAfter(l),"forward");if(!t)return;const n=t.start.parent;n&&Uy(n)&&"todo"==n.getAttribute("listType")&&(e.change((e=>e.setSelection(t))),i.preventDefault(),i.stopPropagation(),o.stop())}else if("left"==n&&a.isAtStart&&Uy(l)&&"todo"==l.getAttribute("listType")){const t=s.getNearestSelectionRange(e.createPositionBefore(l),"backward");if(!t)return;e.change((e=>e.setSelection(t))),i.preventDefault(),i.stopPropagation(),o.stop()}}}(t,e.locale),{context:"$text"}),this.listenTo(o.mapper,"viewToModelPosition",((e,o)=>{const i=o.viewPosition.parent,n=i.is("attributeElement","li")&&0==o.viewPosition.offset,s=tk(i)&&o.viewPosition.offset<=1,r=i.is("element","span")&&"false"==i.getAttribute("contenteditable")&&tk(i.parent);if(!n&&!s&&!r)return;const a=o.modelPosition.nodeAfter;a&&"todo"==a.getAttribute("listType")&&(o.modelPosition=t.createPositionAt(a,0))}),{priority:"low"}),this._initAriaAnnouncements()}_handleCheckmarkChange(e){const t=this.editor,o=t.model,i=Array.from(o.document.selection.getRanges());o.change((o=>{o.setSelection(e,"end"),t.execute("checkTodoList"),o.setSelection(i)}))}_initAriaAnnouncements(){const{model:e,ui:t,t:o}=this.editor;let i=null;t&&e.document.selection.on("change:range",(()=>{const n=e.document.selection.focus.parent,s=ok(i),r=ok(n);s&&!r?t.ariaLiveAnnouncer.announce(o("Leaving a to-do list")):!s&&r&&t.ariaLiveAnnouncer.announce(o("Entering a to-do list")),i=n}))}}function X_(e){const t=new ui(e);return(e,o,i)=>{const n=t.match(o.viewItem);n&&i.consumable.consume(o.viewItem,n.match)&&Object.assign(o,i.convertChildren(o.viewItem,o.modelCursor))}}function ek(e,t){return(e.is("element","paragraph")||e.is("element","listItem"))&&"todo"==e.getAttribute("listType")&&Zy(e)&&function(e,t){for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return!0}(e,t)}function tk(e){return!!e&&e.is("attributeElement")&&e.hasClass("todo-list__label")}function ok(e){return!!e&&(!(!e.is("element","paragraph")&&!e.is("element","listItem"))&&"todo"==e.getAttribute("listType"))}class ik extends fc{static get pluginName(){return"TodoListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;q_(this.editor,"todoList",e("To-do List"),'')}}const nk=Symbol("isOPCodeBlock");function sk(e){return!!e.getCustomProperty(nk)&&ip(e)}function rk(e){const t=e.getSelectedElement();return!(!t||!sk(t))}function ak(e,t,o){const i=t.createContainerElement("pre",{title:window.I18n.t("js.editor.macro.toolbar_help")});return lk(t,e,i),function(e,t,o){return t.setCustomProperty(nk,!0,e),np(e,t,{label:o})}(i,t,o)}function lk(e,t,o){const i=(t.getAttribute("opCodeblockLanguage")||"language-text").replace(/^language-/,""),n=e.createContainerElement("div",{class:"op-uc-code-block--language"});ck(e,i,n,"text"),e.insert(e.createPositionAt(o,0),n);ck(e,t.getAttribute("opCodeblockContent"),o,"(empty)")}function ck(e,t,o,i){const n=e.createText(t||i);e.insert(e.createPositionAt(o,0),n)}class dk extends jn{constructor(e){super(e),this.domEventType="dblclick"}onDomEvent(e){this.fire(e.type,e)}}class uk extends fc{static get pluginName(){return"CodeBlockEditing"}init(){const e=this.editor,t=e.model.schema,o=e.conversion,i=e.editing.view,n=i.document,s=Mp(e);var r,a;t.register("codeblock",{isObject:!0,isBlock:!0,allowContentOf:"$block",allowWhere:["$root","$block"],allowIn:["$root"],allowAttributes:["opCodeblockLanguage","opCodeblockContent"]}),o.for("upcast").add(function(){return t=>{t.on("element:pre",e,{priority:"high"})};function e(e,t,o){if(!o.consumable.test(t.viewItem,{name:!0}))return;const i=Array.from(t.viewItem.getChildren()).find((e=>e.is("element","code")));if(!i||!o.consumable.consume(i,{name:!0}))return;const n=o.writer.createElement("codeblock");o.writer.setAttribute("opCodeblockLanguage",i.getAttribute("class"),n);const s=o.splitToAllowedParent(n,t.modelCursor);if(s){o.writer.insert(n,s.position);const e=i.getChild(0);if(e){o.consumable.consume(e,{name:!0});const t=e.data.replace(/\n$/,"");o.writer.setAttribute("opCodeblockContent",t,n)}t.modelRange=o.writer.createRange(o.writer.createPositionBefore(n),o.writer.createPositionAfter(n)),t.modelCursor=t.modelRange.end}}}()),o.for("editingDowncast").elementToElement({model:"codeblock",view:(e,{writer:t})=>ak(e,t,"Code block")}).add(function(){return t=>{t.on("attribute:opCodeblockContent",e),t.on("attribute:opCodeblockLanguage",e)};function e(e,t,o){const i=t.item;o.consumable.consume(t.item,e.name);const n=o.mapper.toViewElement(i);o.writer.remove(o.writer.createRangeOn(n.getChild(1))),o.writer.remove(o.writer.createRangeOn(n.getChild(0))),lk(o.writer,i,n)}}()),o.for("dataDowncast").add(function(){return t=>{t.on("insert:codeblock",e,{priority:"high"})};function e(e,t,o){const i=t.item,n=i.getAttribute("opCodeblockLanguage")||"language-text",s=i.getAttribute("opCodeblockContent");o.consumable.consume(i,"insert");const r=o.writer,a=r.createContainerElement("pre"),l=r.createContainerElement("div",{class:"op-uc-code-block--language"}),c=r.createContainerElement("code",{class:n}),d=r.createText(n),u=r.createText(s);r.insert(r.createPositionAt(c,0),u),r.insert(r.createPositionAt(l,0),d),r.insert(r.createPositionAt(a,0),l),r.insert(r.createPositionAt(a,0),c),o.mapper.bindElements(i,c),o.mapper.bindElements(i,a),o.mapper.bindElements(i,l);const h=o.mapper.toViewPosition(t.range.start);r.insert(h,a),e.stop()}}()),this.editor.editing.mapper.on("viewToModelPosition",(r=this.editor.model,a=e=>e.hasClass("op-uc-code-block"),(e,t)=>{const{mapper:o,viewPosition:i}=t,n=o.findMappedViewAncestor(i);if(!a(n))return;const s=o.toModelElement(n);t.modelPosition=r.createPositionAt(s,i.isAtStart?"before":"after")})),i.addObserver(dk),this.listenTo(n,"dblclick",((t,o)=>{let i=o.target,n=o.domEvent;if(n.shiftKey||n.altKey||n.metaKey)return;if(!sk(i)&&(i=i.findAncestor(sk),!i))return;o.preventDefault(),o.stopPropagation();const r=e.editing.mapper.toModelElement(i),a=s.services.macros,l=r.getAttribute("opCodeblockLanguage"),c=r.getAttribute("opCodeblockContent");a.editCodeBlock(c,l).then((t=>e.model.change((e=>{e.setAttribute("opCodeblockLanguage",t.languageClass,r),e.setAttribute("opCodeblockContent",t.content,r)}))))})),e.ui.componentFactory.add("insertCodeBlock",(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.code_block.button"),icon:'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n\n',tooltip:!0}),o.on("execute",(()=>{s.services.macros.editCodeBlock().then((t=>e.model.change((o=>{const i=o.createElement("codeblock");o.setAttribute("opCodeblockLanguage",t.languageClass,i),o.setAttribute("opCodeblockContent",t.content,i),e.model.insertContent(i,e.model.document.selection)}))))})),o}))}}class hk extends fc{static get requires(){return[Qm]}static get pluginName(){return"CodeBlockToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditCodeBlock",(e=>{const i=o.services.macros,n=e.getAttribute("opCodeblockLanguage"),s=e.getAttribute("opCodeblockContent");i.editCodeBlock(s,n).then((o=>t.change((t=>{t.setAttribute("opCodeblockLanguage",o.languageClass,e),t.setAttribute("opCodeblockContent",o.content,e)}))))}))}afterInit(){$p(this,this.editor,"OPCodeBlock",rk)}}function mk(e){return e.__currentlyDisabled=e.__currentlyDisabled||[],e.ui.view.toolbar?e.ui.view.toolbar.items._items:[]}function gk(e,t){mk(e).forEach((o=>{let i=o;o instanceof bh?i=o.buttonView:o!==t&&Object.prototype.hasOwnProperty.call(o,"isEnabled")||(i=null),i&&(i.isEnabled?i.isEnabled=!1:e.__currentlyDisabled.push(i))}))}function pk(e){mk(e).forEach((t=>{let o=t;t instanceof bh&&(o=t.buttonView),e.__currentlyDisabled.indexOf(o)<0&&(o.isEnabled=!0)})),e.__currentlyDisabled=[]}class fk{constructor(e){this.response=e}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return 401===this.statusCode}get unprocessableEntity(){return 422===this.statusCode}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}get isScript(){return this.contentType.match(/\b(?:java|ecma)script\b/)}async renderTurboStream(){if(!this.isTurboStream)return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`));window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js")}async activeScript(){if(!this.isScript)return Promise.reject(new Error(`Expected a Script response but got "${this.contentType}" instead`));{const e=document.createElement("script"),t=document.querySelector("meta[name=csp-nonce]");if(t){const o=""===t.nonce?t.content:t.nonce;o&&e.setAttribute("nonce",o)}e.innerHTML=await this.text,document.body.appendChild(e)}}}class bk{static register(e){this.interceptor=e}static get(){return this.interceptor}static reset(){this.interceptor=void 0}}function wk(e){const t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.content}class yk{constructor(e,t,o={}){this.method=e,this.options=o,this.originalUrl=t.toString()}async perform(){try{const e=bk.get();e&&await e(this)}catch(e){console.error(e)}const e=window.Turbo?window.Turbo.fetch:window.fetch,t=new fk(await e(this.url,this.fetchOptions));if(t.unauthenticated&&t.authenticationURL)return Promise.reject(window.location.href=t.authenticationURL);t.isScript&&await t.activeScript();return(t.ok||t.unprocessableEntity)&&t.isTurboStream&&await t.renderTurboStream(),t}addHeader(e,t){const o=this.additionalHeaders;o[e]=t,this.options.headers=o}sameHostname(){if(!this.originalUrl.startsWith("http:")&&!this.originalUrl.startsWith("https:"))return!0;try{return new URL(this.originalUrl).hostname===window.location.hostname}catch(e){return!0}}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:this.credentials,redirect:this.redirect,keepalive:this.keepalive}}get headers(){const e={"X-Requested-With":"XMLHttpRequest","Content-Type":this.contentType,Accept:this.accept};return this.sameHostname()&&(e["X-CSRF-Token"]=this.csrfToken),function(e){const t={};for(const o in e){const i=e[o];void 0!==i&&(t[o]=i)}return t}(Object.assign(e,this.additionalHeaders))}get csrfToken(){return function(e){const t=document.cookie?document.cookie.split("; "):[],o=`${encodeURIComponent(e)}=`,i=t.find((e=>e.startsWith(o)));if(i){const e=i.split("=").slice(1).join("=");if(e)return decodeURIComponent(e)}}(wk("csrf-param"))||wk("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:null==this.body||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";case"script":return"text/javascript, application/javascript";default:return"*/*"}}get body(){return this.options.body}get query(){const e=(this.originalUrl.split("?")[1]||"").split("#")[0],t=new URLSearchParams(e);let o=this.options.query;var i;o instanceof window.FormData?(i=o,o=[...i].reduce(((e,[t,o])=>e.concat("string"==typeof o?[[t,o]]:[])),[])):o=o instanceof window.URLSearchParams?o.entries():Object.entries(o||{}),function(e,t){for(const[o,i]of t)i instanceof window.File||(e.has(o)&&!o.includes("[]")?(e.delete(o),e.set(o,i)):e.append(o,i))}(t,o);const n=t.toString();return n.length>0?`?${n}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get credentials(){return this.options.credentials||"same-origin"}get keepalive(){return this.options.keepalive||!1}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){const e="[object String]"===Object.prototype.toString.call(this.body);return"application/json"===this.headers["Content-Type"]&&!e?JSON.stringify(this.body):this.body}}async function _k(e,t){return new yk("get",e,t).perform()}function kk(e,t){const{modelAttribute:o,styleName:i,attributeName:n,attributeType:s,viewElement:r,defaultValue:a,shouldUpcast:l=()=>!0,reduceBoxSides:c=!1}=t;e.for("upcast").attributeToAttribute({view:{name:r,styles:{[i]:/[\s\S]+/}},model:{key:o,value:(e,t,o)=>{if(!l(e))return;const n=xk(a,"",o),s=e.getNormalizedStyle(i),r=c?Ek(s):s;if(n!==r)return r;t.consumable.consume(e,{styles:i})}}}),n&&e.for("upcast").attributeToAttribute({view:{name:r,attributes:{[n]:/.+/}},model:{key:o,value:(e,t,o)=>{if("figure"==e.name||e.hasStyle(i)||"table"==e.name&&"figure"==e.parent.name&&e.parent.hasStyle(i))return;const r=xk(a,"",o);let l=e.getAttribute(n);if(l&&"length"==s){const e=parseFloat(l);l=isNaN(e)?r:e+(l.includes("%")?"%":"px")}if(r!==l)return l;t.consumable.consume(e,{attributes:n})}}})}function vk(e,t,o,i){const{conversion:n}=e;n.for("upcast").add((e=>{e.on(`element:${t}`,((e,t,n)=>{const{modelRange:s,viewItem:r}=t;if(!s)return;const a=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter((e=>r.hasStyle(e))),l=r.is("element","table")?r:r.findAncestor("table"),c=l.hasAttribute("border");if(!a.length&&!c)return;const d={styles:a};if(!n.consumable.test(r,d))return;const u=to(s.getItems({shallow:!0})),h=u.findAncestor("table",{includeSelf:!0});let m=i;h&&"layout"==h.getAttribute("tableType")&&(m={style:"none",color:"",width:""}),n.consumable.consume(r,d);const g={style:r.getNormalizedStyle("border-style"),color:r.getNormalizedStyle("border-color"),width:r.getNormalizedStyle("border-width")};if(c&&n.consumable.test(l,{attributes:"border"})){const e=parseFloat(l.getAttribute("border")||"1"),t=Number.isNaN(e)||!Number.isFinite(e)||e<0||"table"!=r.name&&e>1?"1px":`${e}px`;g.width={top:t,bottom:t,right:t,left:t,...g.width||{}},r.is("element","table")&&n.consumable.consume(l,{attributes:"border"})}const p={style:Ek(g.style),color:Ek(g.color),width:Ek(g.width)};p.style!==m.style&&n.writer.setAttribute(o.style,p.style,u),p.color!==m.color&&n.writer.setAttribute(o.color,p.color,u),p.width!==m.width&&n.writer.setAttribute(o.width,p.width,u)}))}))}function Ck(e,t){const{modelElement:o,modelAttribute:i,styleName:n}=t;e.for("downcast").attributeToAttribute({model:{name:o,key:i},view:e=>({key:"style",value:{[n]:e}})})}function Ak(e,t){const{modelAttribute:o,styleName:i}=t;e.for("downcast").add((e=>{e.on(`attribute:${o}:table`,((e,t,o)=>{const{item:n,attributeNewValue:s}=t,{mapper:r,writer:a}=o;if(!o.consumable.consume(t.item,e.name))return;const l=Array.from(r.toViewElement(n).getChildren()).find((e=>e.is("element","table")));s?a.setStyle(i,s,l):a.removeStyle(i,l)}))}))}function xk(e,t,o){const i=o.modelRange&&to(o.modelRange.getItems({shallow:!0})),n=i&&i.is("element")&&i.findAncestor("table",{includeSelf:!0});return n&&"layout"===n.getAttribute("tableType")?t:e}function Ek(e){if(!e)return;const t=["top","right","bottom","left"];if(!t.every((t=>e[t])))return e;const o=e.top;return t.every((t=>e[t]===o))?o:e}function Tk(e,t,o){const{conversion:i}=e;i.for("upcast").add((e=>{e.on(`element:${t}`,((e,t,i)=>{const{modelRange:n,viewItem:s}=t;if(!n)return;if(s.is("element","table"))return void i.consumable.consume(s,{attributes:"cellpadding"});const r=s.findAncestor("table");if(!r.hasAttribute("cellpadding")||!i.consumable.test(r,{attributes:"cellpadding"}))return;const a=n?.start?.nodeAfter,l=parseFloat(r.getAttribute("cellpadding")||"1"),c=Number.isNaN(l)||!Number.isFinite(l)||l<0?"0px":`${l}px`,d=a.getAttribute("tableCellPadding");if(d){if("object"==typeof d){const e={...o!==c&&{top:c},...o!==c&&{right:c},...o!==c&&{bottom:c},...o!==c&&{left:c},...d};i.writer.setAttribute("tableCellPadding",e,a)}}else o!==c&&i.writer.setAttribute("tableCellPadding",c,a)}),{priority:"low"})}))}const Pk={className:"table-style-align-left"},Sk={className:"table-style-align-center"},Ik={className:"table-style-align-right"},Rk={className:"table-style-block-align-left"},Ok={className:"table-style-block-align-right"},Vk=[{view:{name:/^(table|figure)$/,styles:{float:/^(left|none|right)$/}},getAlign:e=>{let t=e.getStyle("float");return"none"===t&&(t="center"),t},getConsumables(e){const t=e.getStyle("float"),o=["float"];return"left"===t&&e.hasStyle("margin-right")?o.push("margin-right"):"right"===t&&e.hasStyle("margin-left")&&o.push("margin-left"),{styles:o}}},{view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"auto"}},getAlign:()=>"center",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:/^(table|figure)$/,key:"class",value:"table-style-align-left"},getAlign:()=>"left",getConsumables:()=>({classes:Pk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Ik.className},getAlign:()=>"right",getConsumables:()=>({classes:Ik.className})},{view:{name:/^(table|figure)$/,key:"class",value:Sk.className},getAlign:()=>"center",getConsumables:()=>({classes:Sk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Rk.className},getAlign:()=>"blockLeft",getConsumables:()=>({classes:Rk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Ok.className},getAlign:()=>"blockRight",getConsumables:()=>({classes:Ok.className})},{view:{name:/^(table|figure)$/,styles:{"margin-left":"0","margin-right":"auto"}},getAlign:()=>"blockLeft",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"0"}},getAlign:()=>"blockRight",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:"table",attributes:{align:/^(left|center|right)$/}},getAlign:e=>e.getAttribute("align"),getConsumables:()=>({attributes:"align"})}],Dk={center:{align:"center",style:"margin-left: auto; margin-right: auto;",className:"table-style-align-center"},left:{align:"left",style:"float: left;",className:"table-style-align-left"},right:{align:"right",style:"float: right;",className:"table-style-align-right"},blockLeft:{align:void 0,style:"margin-left: 0; margin-right: auto;",className:Rk.className},blockRight:{align:void 0,style:"margin-left: auto; margin-right: 0;",className:Ok.className}};class Fk{_table;_startRow;_endRow;_startColumn;_endColumn;_includeAllSlots;_skipRows;_row;_rowIndex;_column;_cellIndex;_spannedCells;_nextCellAtColumn;_jumpedToStartRow=!1;constructor(e,t={}){this._table=e,this._startRow=void 0!==t.row?t.row:t.startRow||0,this._endRow=void 0!==t.row?t.row:t.endRow,this._startColumn=void 0!==t.column?t.column:t.startColumn||0,this._endColumn=void 0!==t.column?t.column:t.endColumn,this._includeAllSlots=!!t.includeAllSlots,this._skipRows=new Set,this._row=0,this._rowIndex=0,this._column=0,this._cellIndex=0,this._spannedCells=new Map,this._nextCellAtColumn=-1}[Symbol.iterator](){return this}next(){this._canJumpToStartRow()&&this._jumpToNonSpannedRowClosestToStartRow();const e=this._table.getChild(this._rowIndex);if(!e||this._isOverEndRow())return{done:!0,value:void 0};if(!e.is("element","tableRow"))return this._rowIndex++,this.next();if(this._isOverEndColumn())return this._advanceToNextRow();let t=null;const o=this._getSpanned();if(o)this._includeAllSlots&&!this._shouldSkipSlot()&&(t=this._formatOutValue(o.cell,o.row,o.column));else{const o=e.getChild(this._cellIndex);if(!o)return this._advanceToNextRow();const i=parseInt(o.getAttribute("colspan")||"1"),n=parseInt(o.getAttribute("rowspan")||"1");(i>1||n>1)&&this._recordSpans(o,n,i),this._shouldSkipSlot()||(t=this._formatOutValue(o)),this._nextCellAtColumn=this._column+i}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,t||this.next()}skipRow(e){this._skipRows.add(e)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(e,t=this._row,o=this._column){return{done:!1,value:new Mk(this,e,t,o)}}_shouldSkipSlot(){const e=this._skipRows.has(this._row),t=this._rowthis._endColumn;return e||t||o||i}_getSpanned(){const e=this._spannedCells.get(this._row);return e&&e.get(this._column)||null}_recordSpans(e,t,o){const i={cell:e,row:this._row,column:this._column};for(let e=this._row;e0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const e=this._getRowLength(0);for(let t=this._startRow;!this._jumpedToStartRow;t--)e===this._getRowLength(t)&&(this._row=t,this._rowIndex=t,this._jumpedToStartRow=!0)}_getRowLength(e){return[...this._table.getChild(e).getChildren()].reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}}class Mk{cell;row;column;cellAnchorRow;cellAnchorColumn;_cellIndex;_rowIndex;_table;constructor(e,t,o,i){this.cell=t,this.row=e._row,this.column=e._column,this.cellAnchorRow=o,this.cellAnchorColumn=i,this._cellIndex=e._cellIndex,this._rowIndex=e._rowIndex,this._table=e._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function Nk(e){return"header"===e||"header-row"===e||"header-column"===e}function Bk(e,t,o,i,n=1){null!=t&&null!=n&&t>n?i.setAttribute(e,t,o):i.removeAttribute(e,o)}function Lk(e,t,o={}){const i=e.createElement("tableCell",o);return e.insertElement("paragraph",i),e.insert(i,t),i}function zk(e,t){const o=t.parent.parent,i=parseInt(o.getAttribute("headingColumns")||"0"),{column:n}=e.getCellLocation(t);return!!i&&n0){Bk("headingRows",s-o,e,n,0)}const r=parseInt(t.getAttribute("headingColumns")||"0");if(r>0){Bk("headingColumns",r-i,e,n,0)}}(a,e,i,n,o),function(e,t,o,i,n){const s=Array.from(t.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),r=parseInt(t.getAttribute("footerRows")||"0"),a=s-r;if(r<1)return;let l=0;i>=a&&(l=i-Math.max(a,o)+1);Bk("footerRows",l,e,n,0)}(a,e,i,s,o),a}function Uk(e,t,o=0){const i=[],n=new Fk(e,{startRow:o,endRow:t-1});for(const e of n){const{row:o,cellHeight:n}=e;o1&&(a.rowspan=l);const c=parseInt(e.getAttribute("colspan")||"1");c>1&&(a.colspan=c);const d=s+r,u=[...new Fk(n,{startRow:s,endRow:d,includeAllSlots:!0})];let h,m=null;for(const t of u){const{row:i,column:n,cell:s}=t;s===e&&void 0===h&&(h=n),void 0!==h&&h===n&&i===d&&(m=Lk(o,t.getPositionBefore(),a))}return Bk("rowspan",r,e,o),m}function Gk(e,t){const o=[],i=new Fk(e);for(const e of i){const{column:i,cellWidth:n}=e;i1&&(s.colspan=r);const a=parseInt(e.getAttribute("rowspan")||"1");a>1&&(s.rowspan=a);const l=Lk(i,i.createPositionAfter(e),s);return Bk("colspan",n,e,i),l}function Zk(e,t,o,i,n,s){const r=parseInt(e.getAttribute("colspan")||"1"),a=parseInt(e.getAttribute("rowspan")||"1");if(o+r-1>n){Bk("colspan",n-o+1,e,s,1)}if(t+a-1>i){Bk("rowspan",i-t+1,e,s,1)}}function Qk(e,t){const o=t.getColumns(e),i=new Array(o).fill(0);for(const{column:t}of new Fk(e))i[t]++;const n=i.reduce(((e,t,o)=>t?e:[...e,o]),[]);if(n.length>0){const o=n[n.length-1];return t.removeColumns(e,{at:o}),!0}return!1}function Yk(e,t){const o=[],i=t.getRows(e);for(let t=0;t0){const i=o[o.length-1];return t.removeRows(e,{at:i}),!0}return!1}function Xk(e,t){Qk(e,t)||Yk(e,t)}function ev(e,t){const o=Array.from(new Fk(e,{startColumn:t.firstColumn,endColumn:t.lastColumn,row:t.lastRow}));if(o.every((({cellHeight:e})=>1===e)))return t.lastRow;const i=o[0].cellHeight-1;return t.lastRow+i}function tv(e,t){const o=Array.from(new Fk(e,{startRow:t.firstRow,endRow:t.lastRow,column:t.lastColumn}));if(o.every((({cellWidth:e})=>1===e)))return t.lastColumn;const i=o[0].cellWidth-1;return t.lastColumn+i}function ov(e){for(const t of e.getChildren())if(t.is("element","table"))return t}function iv(e){return t=>{t.on("element:table",((t,o,i)=>{const n=o.viewItem;if(!i.consumable.test(n,{name:!0}))return;const{rows:s,headingRows:r,headingColumns:a,footerRows:l}=function(e){let t,o=!0;const i=[],n=[],s=[];let r=null,a=null;const l=Array.from(e.getChildren());for(let e=0;ee.is("element","tr")));let d=null,u=null;for(const h of c){const m=Array.from(h.getChildren()).filter((e=>e.is("element","td")||e.is("element","th")));if("tfoot"===t.name){a||={element:t,rows:c},o=!1;const i=a.element===t;if(!i&&null===u)for(let t=e;t0&&(null===d||m.length===d)&&m.every((e=>e.is("element","th")))&&o?(i.push(h),o=!0):(n.push(h),o=!1),d=Math.max(d||0,m.length)}}const c=function(e){let t=new Map,o=0;const i=e.map((e=>{const i=[],n=Array.from(e.getChildren()).filter((e=>"th"===e.name||"td"===e.name)),s=new Map;for(;n.length||i.length0)i.push(e.cell);else{const e=n.shift();if(!e){i.push(null);continue}{const t=parseInt(e.getAttribute("colspan")||"1"),o=parseInt(e.getAttribute("rowspan")||"1");for(let n=0;n1&&s.set(i.length,{cell:e,remaining:o-1}),i.push(e)}}}for(const[e,o]of t.entries())o.remaining-=1,o.remaining>0&&!s.has(e)&&s.set(e,o);return t=s,o=Math.max(o,i.length),i}));for(const e of i)for(;e.lengthi.convertItem(e,i.writer.createPositionAt(d,"end")))),i.convertChildren(n,i.writer.createPositionAt(d,"end")),d.isEmpty){const e=i.writer.createElement("tableRow");i.writer.insert(e,i.writer.createPositionAt(d,"end")),Lk(i.writer,i.writer.createPositionAt(e,"end"))}i.updateConversionResult(d,o)}}))}}function nv(e){return t=>{t.on(`element:${e}`,((e,t,{writer:o})=>{if(!t.modelRange)return;const i=t.modelRange.start.nodeAfter,n=o.createPositionAt(i,0);if(t.viewItem.isEmpty)return void o.insertElement("paragraph",n);const s=Array.from(i.getChildren());if(s.every((e=>e.is("element","$marker")))){const e=o.createElement("paragraph");o.insert(e,o.createPositionAt(i,0));for(const t of s)o.move(o.createRangeOn(t),o.createPositionAt(e,"end"))}}),{priority:"low"})}}function sv(e){if(e.is("element","tableColumnGroup"))return e;const t=e.getChildren();return Array.from(t).find((e=>e.is("element","tableColumnGroup")))}function rv(e){const t=sv(e);return t?Array.from(t.getChildren()):[]}class av extends fc{static get pluginName(){return"TableUtils"}static get isOfficialPlugin(){return!0}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,o=t.parent,i=o.getChildIndex(t),n=new Fk(o,{row:i});for(const{cell:t,row:o,column:i}of n)if(t===e)return{row:o,column:i}}createTable(e,t){const o=e.createElement("table");return lv(e,o,0,t.rows||2,t.columns||2),t.footerRows&&this.setFooterRowsCount(e,o,t.footerRows),t.headingRows&&this.setHeadingRowsCount(e,o,t.headingRows),t.headingColumns&&this.setHeadingColumnsCount(e,o,t.headingColumns),o}insertRows(e,t={}){const o=this.editor.model,i=t.at||0,n=t.rows||1,s=void 0!==t.copyStructureFromAbove,r=t.copyStructureFromAbove?i-1:i,a=Hk(this.editor),l=!!this.editor.config.get("table.tableCellProperties.scopedHeaders"),c=this.getRows(e),d=this.getColumns(e);if(i>c)throw new fe("tableutils-insertrows-insert-out-of-range",this,{options:t});o.change((t=>{let o=e.getAttribute("headingRows")||0,u=e.getAttribute("footerRows")||0;if(o>i&&(o+=n),u&&i>c-u&&(u+=n),s||0!==i&&i!==c){const o=s?Math.max(i,r):i,c=new Fk(e,{endRow:o}),u=new Array(d).fill(1);for(const{row:e,column:o,cellHeight:a,cellWidth:l,cell:d}of c){const c=e+a-1,h=e<=r&&r<=c;e0){const n=Lk(t,c,r>1?{colspan:r}:void 0);a&&hv({table:e,writer:t,cell:n,row:i+o,column:s,scopedHeaders:l})}s+=Math.abs(r)-1}}}else{const o=lv(t,e,i,n,d);if(a)for(let n=0;n{let o=e.getAttribute("headingColumns");in-1)throw new fe("tableutils-removerows-row-index-out-of-range",this,{table:e,options:t});o.change((t=>{const o={first:s,last:r},{cellsToMove:i,cellsToTrim:a}=function(e,{first:t,last:o}){const i=new Map,n=[];for(const{row:s,column:r,cellHeight:a,cell:l}of new Fk(e,{endRow:o})){const e=s+a-1;if(s>=t&&s<=o&&e>o){const e=a-(o-s+1);i.set(r,{cell:l,rowspan:e})}if(s=t){let i;i=e>=o?o-t+1:e-t+1,n.push({cell:l,rowspan:a-i})}}return{cellsToMove:i,cellsToTrim:n}}(e,o);if(i.size){!function(e,t,o,i){const n=new Fk(e,{includeAllSlots:!0,row:t}),s=[...n],r=e.getChild(t);let a;for(const{column:e,cell:t,isAnchor:n}of s)if(o.has(e)){const{cell:t,rowspan:n}=o.get(e),s=a?i.createPositionAfter(a):i.createPositionAt(r,0);i.move(i.createRangeOn(t),s),Bk("rowspan",n,t,i),a=t}else n&&(a=t)}(e,r+1,i,t)}for(let o=r;o>=s;o--)t.remove(e.getChild(o));for(const{rowspan:e,cell:o}of a)Bk("rowspan",e,o,t);if(function(e,{first:t,last:o},i){const n=e.getAttribute("headingRows")||0;if(t=r){Bk("footerRows",o>=r?s-(i-o+1):t-1-i,e,n,0)}}(e,n,o,t),Qk(e,this)||Yk(e,this),Hk(this.editor)){let o=e.getAttribute("headingRows")||0;const i=this.getRows(e);for(;o{!function(e,t,o){const i=e.getAttribute("headingColumns")||0;if(i&&t.first=i;n--){for(const{cell:o,column:i,cellWidth:s}of[...new Fk(e)])i<=n&&s>1&&i+s>n?Bk("colspan",s-1,o,t):i===n&&t.remove(o);if(o[n]){const e=0===n?o[1]:o[n-1],i=parseFloat(o[n].getAttribute("columnWidth")),s=parseFloat(e.getAttribute("columnWidth"));t.remove(o[n]),t.setAttribute("columnWidth",i+s+"%",e)}}if(Yk(e,this)||Qk(e,this),Hk(this.editor)){let o=e.getAttribute("headingColumns")||0;const i=this.getColumns(e);for(;o{if(s>1){const{newCellsSpan:i,updatedSpan:r}=dv(s,t);Bk("colspan",r,e,o);const a={};i>1&&(a.colspan=i),n>1&&(a.rowspan=n);cv(s>t?t-1:s-1,o,o.createPositionAfter(e),a)}if(st===e)),c=a.filter((({cell:t,cellWidth:o,column:i})=>t!==e&&i===l||il));for(const{cell:e,cellWidth:t}of c)o.setAttribute("colspan",t+r,e);const d={};n>1&&(d.rowspan=n),cv(r,o,o.createPositionAfter(e),d);const u=i.getAttribute("headingColumns")||0;u>l&&Bk("headingColumns",u+r,i,o)}}))}splitCellHorizontally(e,t=2){const o=this.editor.model,i=e.parent,n=i.parent,s=n.getChildIndex(i),r=parseInt(e.getAttribute("rowspan")||"1"),a=parseInt(e.getAttribute("colspan")||"1");o.change((o=>{if(r>1){const i=[...new Fk(n,{startRow:s,endRow:s+r-1,includeAllSlots:!0})],{newCellsSpan:l,updatedSpan:c}=dv(r,t);Bk("rowspan",c,e,o);const{column:d}=i.find((({cell:t})=>t===e)),u={};l>1&&(u.rowspan=l),a>1&&(u.colspan=a);let h=0;for(const e of i){const{column:t,row:i}=e,n=t===d;h>=l&&n&&(h=0),i>=s+c&&n&&(h||cv(1,o,e.getPositionBefore(),u),h++)}}if(rs){const e=n+i;o.setAttribute("rowspan",e,t)}const d={};a>1&&(d.colspan=a),lv(o,n,s+1,i,1,d);const u=n.getAttribute("headingRows")||0;u>s&&Bk("headingRows",u+i,n,o);const h=n.getAttribute("footerRows")||0;l-h<=s&&Bk("footerRows",h+i,n,o)}}))}getColumns(e){return[...e.getChild(0).getChildren()].filter((e=>e.is("element","tableCell"))).reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}getRows(e){return Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0)}createTableWalker(e,t={}){return new Fk(e,t)}getSelectedTableCells(e){const t=[];for(const o of this.sortRanges(e.getRanges())){const e=o.getContainedElement();e&&e.is("element","tableCell")&&t.push(e)}return t}setFooterRowsCount(e,t,o){if(!this.editor.config.get("table.enableFooters"))return;const i=t.getAttribute("headingRows")||0,n=this.getRows(t),s=Math.min(o,n);if(Bk("footerRows",s,t,e,0),i+s>n){const o=n-s;this.setHeadingRowsCount(e,t,o)}}setHeadingRowsCount(e,t,o,i={}){const{updateCellType:n=!0,resetFormerHeadingCells:s=!0,autoExpand:r=!0}=i,a=this.getRows(t),l=!!this.editor.config.get("table.tableCellProperties.scopedHeaders"),c=t.getAttribute("headingRows")||0;let d=Math.min(o,a);if(d===c)return;Bk("headingRows",d,t,e,0);if(d+(t.getAttribute("footerRows")||0)>a){const o=a-d;this.setFooterRowsCount(e,t,o)}if(Hk(this.editor)){if(n){for(const{cell:o,row:i,column:n}of new Fk(t,{endRow:d-1}))hv({table:t,writer:e,cell:o,row:i,column:n,scopedHeaders:l});if(s&&dc){for(;dl){for(;de.parent.index));return this._getFirstLastIndexesObject(t)}getColumnIndexes(e){const t=e[0].findAncestor("table"),o=[...new Fk(t)].filter((t=>e.includes(t.cell))).map((e=>e.column));return this._getFirstLastIndexesObject(o)}isSelectionRectangular(e){if(e.length<2||!this._areCellInTheSameTableSection(e))return!1;const t=new Set,o=new Set;let i=0;for(const n of e){const{row:e,column:s}=this.getCellLocation(n),r=parseInt(n.getAttribute("rowspan"))||1,a=parseInt(n.getAttribute("colspan"))||1;t.add(e),o.add(s),r>1&&t.add(e+r-1),a>1&&o.add(s+a-1),i+=r*a}const n=function(e,t){const o=Array.from(e.values()),i=Array.from(t.values()),n=Math.max(...o),s=Math.min(...o),r=Math.max(...i),a=Math.min(...i);return(n-s+1)*(r-a+1)}(t,o);return n==i}sortRanges(e){return Array.from(e).sort(uv)}_getFirstLastIndexesObject(e){const t=e.sort(((e,t)=>e-t));return{first:t[0],last:t[t.length-1]}}_areCellInTheSameTableSection(e){const t=e[0].findAncestor("table"),o=this.getRows(t),i=this.getRowIndexes(e),n=parseInt(t.getAttribute("headingRows"))||0,s=parseInt(t.getAttribute("footerRows"))||0;if(!this._areIndexesInSameHeadingSection(i,n)||!this._areIndexesInSameFooterSection(i,o,s))return!1;const r=this.getColumnIndexes(e),a=parseInt(t.getAttribute("headingColumns"))||0;return this._areIndexesInSameHeadingSection(r,a)}_areIndexesInSameHeadingSection({first:e,last:t},o){return e=n===t>=n}}function lv(e,t,o,i,n,s={}){const r=[];for(let a=0;a=r&&i>=a)return void e.removeAttribute("tableCellType",n);let l="header";s&&(l=o{const n=o.getAttribute("headingRows")||0,s=o.getAttribute("footerRows")||0,r=i.createContainerElement("table",null,[]),a=i.createContainerElement("figure",{class:"table"},r),l=e.getRows(o);n>0&&i.insert(i.createPositionAt(r,"end"),i.createContainerElement("thead",null,i.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=n&&e.index0&&i.insert(i.createPositionAt(r,"end"),i.createContainerElement("tfoot",null,i.createSlot((e=>e.is("element","tableRow")&&e.index>=l-s))));for(const{positionOffset:e,filter:o}of t.additionalSlots)i.insert(i.createPositionAt(r,e),i.createSlot(o));return i.insert(i.createPositionAt(r,"after"),i.createSlot((e=>!e.is("element","tableRow")&&!t.additionalSlots.some((({filter:t})=>t(e)))))),t.asWidget?function(e,t){return t.setCustomProperty("table",!0,e),np(e,t,{hasSelectionHandle:!0})}(a,i):a}}function yv(e){return(o,{writer:i})=>{if(e.cellTypeEnabled?.()){return t(i,Nk(o.getAttribute("tableCellType"))?"th":"td")}const n=o.parent,s=n.parent,r=s.getChildIndex(n),a=new Fk(s,{row:r}),l=s.getAttribute("headingRows")||0,c=s.getAttribute("headingColumns")||0;let d=null;for(const e of a)if(e.cell==o){d=t(i,e.row{if(!t.parent.is("element","tableCell"))return null;if(!kv(t))return null;if(e.asWidget)return o.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const e=o.createContainerElement("p");return o.setCustomProperty("dataPipeline:transparentRendering",!0,e),e}}}function kv(e){return 1==e.parent.childCount&&!function(e){for(const t of e.getAttributeKeys())if(!t.startsWith("selection:")&&"htmlEmptyBlock"!=t)return!0;return!1}(e)}function vv(e){return(t,o)=>{const i=e.plugins.has("PlainTableOutput"),n=o.options.isClipboardPipeline,s=Av(e,t);return i||s||n?function(e,t,o){const i=o.plugins.get(av),n=t.writer,s=i.getRows(e),r=e.getAttribute("headingRows")||0,a=e.getAttribute("footerRows")||0,l=s-a,c=n.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=r&&e.indexe.is("element","tableRow")&&e.index>=l)),h=n.createSlot((e=>!e.is("element","tableRow"))),m=n.createContainerElement("thead",null,c),g=n.createContainerElement("tbody",null,d),p=n.createContainerElement("tfoot",null,u),f=[];r&&f.push(m);r+a{const n=e.plugins.has("PlainTableOutput"),s=i.isClipboardPipeline,r=Av(e,t);return(n||r||s)&&"table"===t.parent.name?o.createContainerElement("caption"):null}}function Av(e,t){const o=e.plugins.has("TableLayoutEditing"),i=e.config.get("table.tableLayout.stripFigureFromContentTable")??!1,n=t.findAncestor("table",{includeSelf:!0}),s=n?.getAttribute("tableType");return o&&(i||"layout"===s)}class xv extends wc{refresh(){const e=this.editor.model,t=e.document.selection,o=e.schema;this.isEnabled=function(e,t){const o=e.getFirstPosition().parent,i=o===o.root?o:o.parent;return t.checkChild(i,"table")}(t,o)}execute(e={}){const t=this.editor,o=t.model,i=t.plugins.get("TableUtils"),n=!!t.config.get("table.enableFooters"),s=t.config.get("table.defaultHeadings.rows"),r=t.config.get("table.defaultHeadings.columns"),a=t.config.get("table.defaultFooters");void 0===e.headingRows&&s&&(e.headingRows=s),void 0===e.headingColumns&&r&&(e.headingColumns=r),n&&void 0===e.footerRows&&a&&(e.footerRows=a),!n&&"footerRows"in e&&delete e.footerRows,o.change((t=>{const n=i.createTable(t,e);o.insertObject(n,null,null,{findOptimalPosition:"auto"}),t.setSelection(t.createPositionAt(n.getNodeByPath([0,0,0]),0))}))}}class Ev extends wc{order;constructor(e,t={}){super(e),this.order=t.order||"below"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),i="above"===this.order,n=o.getSelectionAffectedTableCells(t),s=o.getRowIndexes(n),r=i?s.first:s.last,a=n[0].findAncestor("table");o.insertRows(a,{at:i?r:r+1,copyStructureFromAbove:!i})}}class Tv extends wc{order;constructor(e,t={}){super(e),this.order=t.order||"right"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),i="left"===this.order,n=o.getSelectionAffectedTableCells(t),s=o.getColumnIndexes(n),r=i?s.first:s.last,a=n[0].findAncestor("table");o.insertColumns(a,{columns:1,at:i?r:r+1})}}class Pv extends wc{direction;constructor(e,t={}){super(e),this.direction=t.direction||"horizontally"}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===e.length}execute(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?e.splitCellHorizontally(t,2):e.splitCellVertically(t,2)}}class Sv extends wc{direction;isHorizontal;constructor(e,t){super(e),this.direction=t.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const e=this._getMergeableCell();this.value=e,this.isEnabled=!!e}execute(){const e=this.editor.model,t=e.document,o=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(t.selection)[0],i=this.value,n=this.direction;e.change((e=>{const t="right"==n||"down"==n,s=t?o:i,r=t?i:o,a=r.parent;!function(e,t,o){Iv(e)||(Iv(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end")));o.remove(e)}(r,s,e);const l=this.isHorizontal?"colspan":"rowspan",c=parseInt(o.getAttribute(l)||"1"),d=parseInt(i.getAttribute(l)||"1");e.setAttribute(l,c+d,s),e.setSelection(e.createRangeIn(s));const u=this.editor.plugins.get("TableUtils");Xk(a.findAncestor("table"),u)}))}_getMergeableCell(){const e=this.editor.model.document,t=this.editor.plugins.get("TableUtils"),o=t.getTableCellsContainingSelection(e.selection)[0];if(!o)return;const i=this.isHorizontal?function(e,t,o){const i=e.parent,n=i.parent,s="right"==t?e.nextSibling:e.previousSibling,r=(n.getAttribute("headingColumns")||0)>0;if(!s)return;const a="right"==t?e:s,l="right"==t?s:e,{column:c}=o.getCellLocation(a),{column:d}=o.getCellLocation(l),u=parseInt(a.getAttribute("colspan")||"1"),h=zk(o,a),m=zk(o,l);if(r&&h!=m)return;return c+u===d?s:void 0}(o,this.direction,t):function(e,t,o){const i=e.parent,n=i.parent,s=n.getChildIndex(i),r=o.getRows(n);if("down"==t&&s===r-1||"up"==t&&0===s)return null;const a=parseInt(e.getAttribute("rowspan")||"1"),l=n.getAttribute("headingRows")||0,c=n.getAttribute("footerRows")||0,d=r-c,u="up"==t&&s===d,h="up"==t&&s===l,m="down"==t&&s+a===l,g="down"==t&&s+a===d;if(l&&(m||h))return null;if(c&&(u||g))return null;const p=parseInt(e.getAttribute("rowspan")||"1"),f="down"==t?s+p:s,b=[...new Fk(n,{endRow:f})],w=b.find((t=>t.cell===e)),y=w.column,_=b.find((({row:e,cellHeight:o,column:i})=>i===y&&("down"==t?e===f:f===e+o)));return _&&_.cell?_.cell:null}(o,this.direction,t);if(!i)return;const n=this.isHorizontal?"rowspan":"colspan",s=parseInt(o.getAttribute(n)||"1");return parseInt(i.getAttribute(n)||"1")===s?i:void 0}}function Iv(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}class Rv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const i=o.findAncestor("table"),n=e.getRows(i)-1,s=e.getRowIndexes(t),r=0===s.first&&s.last===n;this.isEnabled=!r}else this.isEnabled=!1}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),i=t.getRowIndexes(o),n=o[0],s=n.findAncestor("table"),r=t.getCellLocation(n).column;e.change((e=>{const o=i.last-i.first+1;t.removeRows(s,{at:i.first,rows:o});const n=function(e,t,o,i){const n=e.getChild(Math.min(t,i-1));let s=n.getChild(0),r=0;for(const e of n.getChildren()){if(r>o)return s;s=e,r+=parseInt(e.getAttribute("colspan")||"1")}return s}(s,i.first,r,t.getRows(s));e.setSelection(e.createPositionAt(n,0))}))}}class Ov extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const i=o.findAncestor("table"),n=e.getColumns(i),{first:s,last:r}=e.getColumnIndexes(t);this.isEnabled=r-se.cell===t)).column,last:n.find((e=>e.cell===o)).column},r=function(e,t,o,i){const n=parseInt(o.getAttribute("colspan")||"1");return n>1?o:t.previousSibling||o.nextSibling?o.nextSibling||t.previousSibling:i.first?e.reverse().find((({column:e})=>ee>i.last)).cell}(n,t,o,s);this.editor.model.change((t=>{const o=s.last-s.first+1;e.removeColumns(i,{at:s.first,columns:o}),t.setSelection(t.createPositionAt(r,0))}))}}class Vv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection);if(0===o.length)return this.isEnabled=!1,void(this.value=!1);const i=o[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(i,"headingRows"),this.value=o.every((e=>this._isInHeading(e,e.parent.parent)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getRowIndexes(i),a=this.value?s:r+1,l=n.getAttribute("headingRows")||0;o.change((e=>{if(a){const t=Uk(n,a,a>l?l:0);for(const{cell:o}of t)Kk(o,a,e)}t.setHeadingRowsCount(e,n,a)}))}_isInHeading(e,t){const o=parseInt(t.getAttribute("headingRows")||"0");return!!o&&e.parent.indexthis._isInFooter(e,i)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getRowIndexes(i),a=t.getRows(n),l=this.value?a-(r+1):a-s,c=n.getAttribute("footerRows")||0;o.change((e=>{if(l){const t=a-l,o=a-c,i=Uk(n,t,t>o?o:0);for(const{cell:o}of i)Kk(o,t,e)}t.setFooterRowsCount(e,n,l)}))}_isInFooter(e,t){const o=parseInt(t.getAttribute("footerRows")||"0"),i=this.editor.plugins.get("TableUtils").getRows(t),n=e.parent.index;return!!o&&n>=i-o}}class Fv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection);if(0===o.length)return this.isEnabled=!1,void(this.value=!1);const i=o[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(i,"headingColumns"),this.value=o.every((t=>zk(e,t)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getColumnIndexes(i),a=this.value?s:r+1;o.change((e=>{if(a){const t=Gk(n,a);for(const{cell:o,column:i}of t)Jk(o,i,a,e)}t.setHeadingColumnsCount(e,n,a)}))}}class Mv extends wc{refresh(){const e=this.editor.plugins.get(av),t=e.getSelectedTableCells(this.editor.model.document.selection);this.isEnabled=e.isSelectionRectangular(t)}execute(){const e=this.editor.model,t=this.editor.plugins.get(av);e.change((o=>{const i=t.getSelectedTableCells(e.document.selection),n=i.shift(),{mergeWidth:s,mergeHeight:r}=function(e,t,o){let i=0,n=0;for(const e of t){const{row:t,column:s}=o.getCellLocation(e);i=Lv(e,s,i,"colspan"),n=Lv(e,t,n,"rowspan")}const{row:s,column:r}=o.getCellLocation(e),a=i-r,l=n-s;return{mergeWidth:a,mergeHeight:l}}(n,i,t);Bk("colspan",s,n,o),Bk("rowspan",r,n,o);for(const e of i)Nv(e,n,o);Xk(n.findAncestor("table"),t),o.setSelection(n,"in")}))}}function Nv(e,t,o){Bv(e)||(Bv(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end"))),o.remove(e)}function Bv(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}function Lv(e,t,o,i){const n=parseInt(e.getAttribute(i)||"1");return Math.max(o,t+n)}class zv extends wc{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),i=t.getRowIndexes(o),n=o[0].findAncestor("table"),s=[];for(let t=i.first;t<=i.last;t++)for(const o of n.getChild(t).getChildren())s.push(e.createRangeOn(o));e.change((e=>{e.setSelection(s)}))}}class jv extends wc{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection),i=o[0],n=o.pop(),s=i.findAncestor("table"),r=e.getCellLocation(i),a=e.getCellLocation(n),l=Math.min(r.column,a.column),c=Math.max(r.column,a.column),d=[];for(const e of new Fk(s,{startColumn:l,endColumn:c}))d.push(t.createRangeOn(e.cell));t.change((e=>{e.setSelection(d)}))}}function qv(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.differ.getChanges();let i=!1;const n=new Set;for(const t of o){let o=null;"insert"==t.type&&"table"==t.name&&(o=t.position.nodeAfter),"insert"!=t.type&&"remove"!=t.type||"tableRow"!=t.name&&"tableCell"!=t.name||(o=t.position.findAncestor("table")),Wv(t)&&(o=t.range.start.findAncestor("table")),o&&!n.has(o)&&(i=$v(o,e)||i,i=Hv(o,e)||i,n.add(o))}return i}(t,e)))}function $v(e,t){let o=!1;const i=function(e){const t=parseInt(e.getAttribute("headingRows")||"0"),o=parseInt(e.getAttribute("footerRows")||"0"),i=Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),n=i-o,s=[];for(const{row:o,cell:r,cellHeight:a}of new Fk(e)){if(a<2)continue;let e;if(e=o=n?i:n,o+a>e){const t=e-o;s.push({cell:r,rowspan:t})}}return s}(e);if(i.length){o=!0;for(const e of i)Bk("rowspan",e.rowspan,e.cell,t,1)}return o}function Hv(e,t){let o=!1;const i=function(e){const t=new Array(e.childCount).fill(0);for(const{rowIndex:o}of new Fk(e,{includeAllSlots:!0}))t[o]++;return t}(e),n=[];for(const[t,o]of i.entries())!o&&e.getChild(t).is("element","tableRow")&&n.push(t);if(n.length){o=!0;for(const o of n.reverse())t.remove(e.getChild(o)),i.splice(o,1)}const s=i.filter(((t,o)=>e.getChild(o).is("element","tableRow"))),r=s[0];if(!s.every((e=>e===r))){const i=s.reduce(((e,t)=>t>e?t:e),0);for(const[n,r]of s.entries()){const s=i-r;if(s){for(let o=0;ofunction(e,t){const o=t.document.differ.getChanges();let i=!1;for(const t of o)"insert"==t.type&&"table"==t.name&&(i=Kv(t.position.nodeAfter,e)||i),"insert"==t.type&&"tableRow"==t.name&&(i=Gv(t.position.nodeAfter,e)||i),"insert"==t.type&&"tableCell"==t.name&&(i=Jv(t.position.nodeAfter,e)||i),"remove"!=t.type&&"insert"!=t.type||!Zv(t)||(i=Jv(t.position.parent,e)||i);return i}(t,e)))}function Kv(e,t){let o=!1;for(const i of e.getChildren())i.is("element","tableRow")&&(o=Gv(i,t)||o);return o}function Gv(e,t){let o=!1;for(const i of e.getChildren())o=Jv(i,t)||o;return o}function Jv(e,t){if(0==e.childCount)return t.insertElement("paragraph",e),!0;const o=Array.from(e.getChildren()).filter((e=>e.is("$text")));for(const e of o)t.wrap(t.createRangeOn(e),"paragraph");return!!o.length}function Zv(e){return!!e.position.parent.is("element","tableCell")&&("insert"==e.type&&"$text"==e.name||"remove"==e.type)}function Qv(e,t,o){const i=o.getAttribute("headingRows")||0,n=o.getAttribute("footerRows")||0,s=e.getRows(o);if(i+n>s){return Bk("footerRows",Math.max(0,s-i),o,t,0),!0}return!1}function Yv(e,t){if(!e.is("element","paragraph"))return!1;const o=t.toViewElement(e);return!!o&&kv(e)!==o.is("element","span")}class Xv extends fc{_additionalSlots;static get pluginName(){return"TableEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[av]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,o=t.schema,i=e.conversion,n=e.plugins.get(av);e.config.define("table.enableFooters",!1);const s=!!e.config.get("table.enableFooters");o.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns",...s?["footerRows"]:[]]}),o.register("tableRow",{allowIn:"table",isLimit:!0}),o.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),i.for("upcast").add((e=>{e.on("element:figure",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{name:!0,classes:"table"}))return;const i=ov(t.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(t.viewItem,{name:!0,classes:"table"});const n=o.convertItem(i,t.modelCursor),s=to(n.modelRange.getItems());if(!s||!s.is("element","table"))return o.consumable.revert(t.viewItem,{name:!0,classes:"table"}),void(n.modelRange&&!n.modelRange.isCollapsed&&(t.modelRange=n.modelRange,t.modelCursor=n.modelCursor));o.convertChildren(t.viewItem,o.writer.createPositionAt(s,"end")),o.updateConversionResult(s,t)}))})),i.for("upcast").add(iv({enableFooters:s})),i.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows",...s?["footerRows"]:[]]},view:wv(n,{asWidget:!0,additionalSlots:this._additionalSlots})}),i.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows",...s?["footerRows"]:[]]},view:wv(n,{additionalSlots:this._additionalSlots})}),i.for("upcast").elementToElement({model:"tableRow",view:"tr"}),i.for("upcast").add((e=>{e.on("element:tr",((e,t)=>{t.viewItem.isEmpty&&0==t.modelCursor.index&&e.stop()}),{priority:"high"})})),i.for("downcast").elementToElement({model:"tableRow",view:(e,{writer:t})=>e.isEmpty?t.createEmptyElement("tr"):t.createContainerElement("tr")}),i.for("upcast").elementToElement({model:"tableCell",view:"td"}),i.for("upcast").elementToElement({model:"tableCell",view:"th"}),i.for("upcast").add(nv("td")),i.for("upcast").add(nv("th")),i.for("editingDowncast").elementToElement({model:"tableCell",view:yv({asWidget:!0,cellTypeEnabled:()=>Hk(this.editor)})}),i.for("dataDowncast").elementToElement({model:"tableCell",view:yv({cellTypeEnabled:()=>Hk(this.editor)})}),i.for("editingDowncast").elementToElement({model:"paragraph",view:_v({asWidget:!0}),converterPriority:"high"}),i.for("dataDowncast").elementToElement({model:"paragraph",view:_v(),converterPriority:"high"}),i.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),i.for("upcast").attributeToAttribute({model:{key:"colspan",value:eC("colspan")},view:"colspan"}),i.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),i.for("upcast").attributeToAttribute({model:{key:"rowspan",value:eC("rowspan")},view:"rowspan"}),this._addPlainTableOutputConverters(),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.config.define("table.defaultFooters",0),e.config.define("table.showHiddenBorders",!0),e.config.get("table.showHiddenBorders")&&e.editing.view.change((t=>{for(const o of e.editing.view.document.roots)t.addClass("ck-table-show-hidden-borders",o)})),e.commands.add("insertTable",new xv(e)),e.commands.add("insertTableRowAbove",new Ev(e,{order:"above"})),e.commands.add("insertTableRowBelow",new Ev(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new Tv(e,{order:"left"})),e.commands.add("insertTableColumnRight",new Tv(e,{order:"right"})),e.commands.add("removeTableRow",new Rv(e)),e.commands.add("removeTableColumn",new Ov(e)),e.commands.add("splitTableCellVertically",new Pv(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new Pv(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new Mv(e)),e.commands.add("mergeTableCellRight",new Sv(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new Sv(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new Sv(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new Sv(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new Fv(e)),e.commands.add("setTableRowHeader",new Vv(e)),s&&e.commands.add("setTableFooterRow",new Dv(e)),e.commands.add("selectTableRow",new zv(e)),e.commands.add("selectTableColumn",new jv(e)),qv(t),Uv(t),s&&function(e){const{model:t}=e,o=e.plugins.get(av);t.document.registerPostFixer((e=>{let i=!1;const n=t.document.differ.getChanges(),s=new Set;for(const e of n){let t=null;"attribute"!=e.type||"headingRows"!=e.attributeKey&&"footerRows"!=e.attributeKey?("insert"==e.type&&"tableRow"==e.name||"remove"==e.type&&"tableRow"==e.name)&&(t=e.position.parent):t=e.range.start.nodeAfter,t&&t.is("element","table")&&s.add(t)}for(const t of s)Qv(o,e,t)&&(i=!0);return i}))}(e),this.listenTo(t.document,"change:data",(()=>{Hk(e)||function(e,t){const o=e.document.differ,i=new Set,n=new Set,s=new Set;for(const e of o.getChanges()){let o;if("attribute"==e.type){const t=e.range.start.nodeAfter;if(!t||!t.is("element","table"))continue;if("headingRows"!=e.attributeKey&&"headingColumns"!=e.attributeKey&&"footerRows"!=e.attributeKey)continue;o=t}else"tableRow"!=e.name&&"tableCell"!=e.name||(o=e.position.findAncestor("table"));if(!o)continue;"insert"==e.type&&"tableRow"==e.name&&t.mapper.toViewElement(e.position.nodeAfter)&&i.add(e.position.nodeAfter);const r=o.getAttribute("headingRows")||0,a=o.getAttribute("headingColumns")||0,l=new Fk(o);for(const e of l){const o=t.mapper.toViewElement(e.cell);if(!o||!o.is("element"))continue;const l=e.rowYv(e,t.mapper)));for(const e of o)t.reconvertItem(e)}}(t,e.editing)}))}registerAdditionalSlot(e){this._additionalSlots.push(e)}_addPlainTableOutputConverters(){const e=this.editor;e.conversion.for("dataDowncast").elementToStructure({model:"table",view:vv(e),converterPriority:"high"}),e.plugins.has("TableCaptionEditing")&&e.conversion.for("dataDowncast").elementToElement({model:"caption",view:Cv(e),converterPriority:"high"}),e.plugins.has("TablePropertiesEditing")&&function(e){const t={"border-width":"tableBorderWidth","border-color":"tableBorderColor","border-style":"tableBorderStyle","background-color":"tableBackgroundColor"};for(const[o,i]of Object.entries(t))e.conversion.for("dataDowncast").add((t=>t.on(`attribute:${i}:table`,((t,i,n)=>{const{item:s,attributeNewValue:r}=i,{mapper:a,writer:l}=n,c=e.plugins.has("PlainTableOutput"),d=n.options.isClipboardPipeline,u=Av(e,s);if(!(c||u||d))return;if(!n.consumable.consume(s,t.name))return;const h=a.toViewElement(s);r?l.setStyle(o,r,h):l.removeStyle(o,h)}),{priority:"high"})))}(e)}}function eC(e){return t=>{const o=parseInt(t.getAttribute(e));return Number.isNaN(o)||o<=0?null:o}}class tC extends Au{items;keystrokes;focusTracker;constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new ro,this.focusTracker=new oo,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",((e,t)=>`${t} × ${e}`)),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":t.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:t.to("label")}]}],on:{mousedown:t.to((e=>{e.preventDefault()})),click:t.to((()=>{this.fire("execute")}))}}),this.on("boxover",((e,t)=>{const{row:o,column:i}=t.target.dataset;this.items.get(10*(parseInt(o,10)-1)+(parseInt(i,10)-1)).focus()})),this.focusTracker.on("change:focusedElement",((e,t,o)=>{if(!o)return;const{row:i,column:n}=o.dataset;this.set({rows:parseInt(i),columns:parseInt(n)})})),this.on("change:columns",(()=>this._highlightGridBoxes())),this.on("change:rows",(()=>this._highlightGridBoxes()))}render(){super.render(),Vu({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const e of this.items)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const e=this.rows,t=this.columns;this.items.map(((o,i)=>{const n=Math.floor(i/10){const i=e.commands.get("insertTable"),n=Zh(o);let s;return n.bind("isEnabled").to(i),n.buttonView.set({icon:od,label:t("Insert table"),tooltip:!0}),n.on("change:isOpen",(()=>{s||(s=new tC(o),n.panelView.children.add(s),s.delegate("execute").to(n),n.on("execute",(()=>{e.execute("insertTable",{rows:s.rows,columns:s.columns}),e.editing.view.focus()})))})),n})),e.ui.componentFactory.add("menuBar:insertTable",(o=>{const i=e.commands.get("insertTable"),n=new og(o),s=new tC(o);return s.delegate("execute").to(n),n.on("change:isOpen",((e,t,o)=>{o||s.reset()})),s.on("execute",(()=>{e.execute("insertTable",{rows:s.rows,columns:s.columns}),e.editing.view.focus()})),n.buttonView.set({label:t("Table"),icon:od}),n.panelView.children.add(s),n.bind("isEnabled").to(i),n})),e.ui.componentFactory.add("tableColumn",(e=>{const i=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:t("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:o?"insertTableColumnLeft":"insertTableColumnRight",label:t("Insert column left")}},{type:"button",model:{commandName:o?"insertTableColumnRight":"insertTableColumnLeft",label:t("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:t("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:t("Select column")}}];return this._prepareDropdown(t("Column"),'',i,e)})),e.ui.componentFactory.add("tableRow",(e=>{const o=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:t("Header row"),bindIsOn:!0}},i&&{type:"switchbutton",model:{commandName:"setTableFooterRow",label:t("Footer row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:t("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:t("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:t("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:t("Select row")}}].filter(Boolean);return this._prepareDropdown(t("Row"),'',o,e)})),e.ui.componentFactory.add("mergeTableCells",(e=>{const i=[{type:"button",model:{commandName:"mergeTableCellUp",label:t("Merge cell up")}},{type:"button",model:{commandName:o?"mergeTableCellRight":"mergeTableCellLeft",label:t("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:t("Merge cell down")}},{type:"button",model:{commandName:o?"mergeTableCellLeft":"mergeTableCellRight",label:t("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:t("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:t("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(t("Merge cells"),'',i,e)}))}_prepareDropdown(e,t,o,i){const n=this.editor,s=Zh(i),r=this._fillDropdownWithListOptions(s,o);return s.buttonView.set({label:e,icon:t,tooltip:!0}),s.bind("isEnabled").toMany(r,"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(s,"execute",(e=>{n.execute(e.source.commandName),e.source instanceof fh||n.editing.view.focus()})),s}_prepareMergeSplitButtonDropdown(e,t,o,i){const n=this.editor,s=Zh(i,Jh),r="mergeTableCells",a=n.commands.get(r),l=this._fillDropdownWithListOptions(s,o);return s.buttonView.set({label:e,icon:t,tooltip:!0,isEnabled:!0}),s.bind("isEnabled").toMany([a,...l],"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(s.buttonView,"execute",(()=>{n.execute(r),n.editing.view.focus()})),this.listenTo(s,"execute",(e=>{n.execute(e.source.commandName),n.editing.view.focus()})),s}_fillDropdownWithListOptions(e,t){const o=this.editor,i=[],n=new eo;for(const e of t)iC(e,o,i,n);return Xh(e,n),i}}function iC(e,t,o,i){if("button"===e.type||"switchbutton"===e.type){const i=e.model=new Jm(e.model),{commandName:n,bindIsOn:s}=e.model,r=t.commands.get(n);o.push(r),i.set({commandName:n}),i.bind("isEnabled").to(r),s&&i.bind("isOn").to(r,"value"),i.set({withText:!0})}i.add(e)}class nC extends fc{static get pluginName(){return"TableSelection"}static get isOfficialPlugin(){return!0}static get requires(){return[av,av]}init(){const e=this.editor,t=e.model,o=e.editing.view;this.listenTo(t,"deleteContent",((e,t)=>this._handleDeleteContent(e,t)),{priority:"high"}),this.listenTo(o.document,"insertText",((e,t)=>this._handleInsertTextEvent(e,t)),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const e=this.editor.plugins.get(av),t=this.editor.model.document.selection,o=e.getSelectedTableCells(t);return 0==o.length?null:o}getSelectionAsFragment(){const e=this.editor.plugins.get(av),t=this.getSelectedTableCells();return t?this.editor.model.change((o=>{const i=o.createDocumentFragment(),{first:n,last:s}=e.getColumnIndexes(t),{first:r,last:a}=e.getRowIndexes(t),l=t[0].findAncestor("table");let c=a,d=s;if(e.isSelectionRectangular(t)){const e={firstColumn:n,lastColumn:s,firstRow:r,lastRow:a};c=ev(l,e),d=tv(l,e)}const u=Wk(l,{startRow:r,startColumn:n,endRow:c,endColumn:d},o);return o.insert(u,i,0),i})):null}setCellSelection(e,t){const o=this._getCellsToSelect(e,t);this.editor.model.change((e=>{e.setSelection(o.cells.map((t=>e.createRangeOn(t))),{backward:o.backward})}))}getFocusCell(){const e=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return e&&e.is("element","tableCell")?e:null}getAnchorCell(){const e=to(this.editor.model.document.selection.getRanges()).getContainedElement();return e&&e.is("element","tableCell")?e:null}_defineSelectionConverter(){const e=this.editor,t=new Set;e.conversion.for("editingDowncast").add((e=>e.on("selection",((e,o,i)=>{const n=i.writer;!function(e){for(const o of t)e.removeClass("ck-editor__editable_selected",o);t.clear()}(n);const s=this.getSelectedTableCells();if(!s)return;for(const e of s){const o=i.mapper.toViewElement(e);n.addClass("ck-editor__editable_selected",o),t.add(o)}const r=i.mapper.toViewElement(s[s.length-1]);n.setSelection(r,0)}),{priority:"lowest"})))}_enablePluginDisabling(){const e=this.editor;this.on("change:isEnabled",(()=>{if(!this.isEnabled){const t=this.getSelectedTableCells();if(!t)return;e.model.change((o=>{const i=o.createPositionAt(t[0],0),n=e.model.schema.getNearestSelectionRange(i);o.setSelection(n)}))}}))}_handleDeleteContent(e,t){const o=this.editor.plugins.get(av),i=t[0],n=t[1],s=this.editor.model,r=!n||"backward"==n.direction,a=o.getSelectedTableCells(i);a.length&&(e.stop(),s.change((e=>{const t=a[r?a.length-1:0];s.change((e=>{for(const t of a)s.deleteContent(e.createSelection(t,"in"))}));const o=s.schema.getNearestSelectionRange(e.createPositionAt(t,0));i.is("documentSelection")?e.setSelection(o):i.setTo(o)})))}_handleInsertTextEvent(e,t){const o=this.editor,i=this.getSelectedTableCells();if(!i)return;const n=o.editing.view,s=o.editing.mapper,r=i.map((e=>n.createRangeOn(s.toViewElement(e))));t.selection=n.createSelection(r),t.preventDefault()}_getCellsToSelect(e,t){const o=this.editor.plugins.get("TableUtils"),i=o.getCellLocation(e),n=o.getCellLocation(t),s=Math.min(i.row,n.row),r=Math.max(i.row,n.row),a=Math.min(i.column,n.column),l=parseInt(t.getAttribute("colspan")||"1")-1,c=Math.max(i.column,n.column+l),d=new Array(r-s+1).fill(null).map((()=>[])),u={startRow:s,endRow:r,startColumn:a,endColumn:c};for(const{row:t,cell:o}of new Fk(e.findAncestor("table"),u))d[t-s].push(o);const h=n.rowe.reverse())),{cells:d.flat(),backward:h||m}}}class sC extends fc{static get pluginName(){return"TableClipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[ff,bf,nC,av]}init(){const e=this.editor.editing.view.document;this.listenTo(e,"copy",((e,t)=>this._onCopyCut(e,t))),this.listenTo(e,"cut",((e,t)=>this._onCopyCut(e,t))),this._listenToContentInsertion(),this.decorate("_replaceTableSlotCell")}_listenToContentInsertion(){const{editor:e}=this,t=e.plugins.get(bf),o=e.plugins.get(nC);let i=!1;t.on("contentInsertion",((e,t)=>{i="paste"===t.method})),this.listenTo(e.model,"insertContent",((e,[t,n])=>{(i||null!==o.getSelectedTableCells())&&this._onInsertContent(e,t,n)}),{priority:"high"}),t.on("contentInsertion",(()=>{i=!1}),{priority:"lowest"})}_onCopyCut(e,t){const o=this.editor.editing.view,i=this.editor.plugins.get(nC),n=this.editor.plugins.get(ff);i.getSelectedTableCells()&&("cut"!=e.name||this.editor.model.canEditAt(this.editor.model.document.selection))&&(t.preventDefault(),e.stop(),this.editor.model.enqueueChange({isUndoable:"cut"===e.name},(()=>{const s=n._copySelectedFragmentWithMarkers(e.name,this.editor.model.document.selection,(()=>i.getSelectionAsFragment()));o.document.fire("clipboardOutput",{dataTransfer:t.dataTransfer,content:this.editor.data.toView(s),method:e.name})})))}_onInsertContent(e,t,o){if(o&&!o.is("documentSelection"))return;const i=this.editor.model,n=this.editor.plugins.get(av),s=this.editor.plugins.get(ff),r=this.getTableIfOnlyTableInContent(t,i);if(!r)return;const a=n.getSelectionAffectedTableCells(i.document.selection);a.length?(e.stop(),t.is("documentFragment")?s._pasteMarkersIntoTransformedElement(t.markers,(e=>this._replaceSelectedCells(r,a,e))):this.editor.model.change((e=>{this._replaceSelectedCells(r,a,e)}))):Xk(r,n)}_replaceSelectedCells(e,t,o){const i=this.editor.plugins.get(av),n={width:i.getColumns(e),height:i.getRows(e)},s=function(e,t,o,i){const n=e[0].findAncestor("table"),s=i.getColumnIndexes(e),r=i.getRowIndexes(e),a={firstColumn:s.first,lastColumn:s.last,firstRow:r.first,lastRow:r.last},l=1===e.length;l&&(a.lastRow+=t.height-1,a.lastColumn+=t.width-1,function(e,t,o,i){const n=i.getColumns(e),s=i.getRows(e);o>n&&i.insertColumns(e,{at:n,columns:o-n});t>s&&i.insertRows(e,{at:s,rows:t-s})}(n,a.lastRow+1,a.lastColumn+1,i));l||!i.isSelectionRectangular(e)?function(e,t,o){const{firstRow:i,lastRow:n,firstColumn:s,lastColumn:r}=t,a={first:i,last:n},l={first:s,last:r};aC(e,s,a,o),aC(e,r+1,a,o),rC(e,i,l,o),rC(e,n+1,l,o,i)}(n,a,o):(a.lastRow=ev(n,a),a.lastColumn=tv(n,a));return a}(t,n,o,i),r=s.lastRow-s.firstRow+1,a=s.lastColumn-s.firstColumn+1;e=Wk(e,{startRow:0,startColumn:0,endRow:Math.min(r,n.height)-1,endColumn:Math.min(a,n.width)-1},o);const l=t[0].findAncestor("table"),c=this._replaceSelectedCellsWithPasted(e,n,l,s,o,i);if(this.editor.plugins.get("TableSelection").isEnabled){const e=i.sortRanges(c.map((e=>o.createRangeOn(e))));o.setSelection(e)}else o.setSelection(c[0],0);return l}_replaceSelectedCellsWithPasted(e,t,o,i,n,s){const{width:r,height:a}=t,l=function(e,t,o){const i=new Array(o).fill(null).map((()=>new Array(t).fill(null)));for(const{column:t,row:o,cell:n}of new Fk(e))i[o][t]=n;return i}(e,r,a),c=[...new Fk(o,{startRow:i.firstRow,endRow:i.lastRow,startColumn:i.firstColumn,endColumn:i.lastColumn,includeAllSlots:!0})],d=[];let u;for(const e of c){const{row:t,column:o}=e;o===i.firstColumn&&(u=e.getPositionBefore());const s=t-i.firstRow,c=o-i.firstColumn,h=l[s%a][c%r],m=h?n.cloneElement(h):null,g=this._replaceTableSlotCell(e,m,u,n);g&&(Zk(g,t,o,i.lastRow,i.lastColumn,n),d.push(g),u=n.createPositionAfter(g))}const h=parseInt(o.getAttribute("headingRows")||"0"),m=parseInt(o.getAttribute("headingColumns")||"0"),g=parseInt(o.getAttribute("footerRows")||"0"),p=s.getRows(o)-g,f=i.firstRowlC(e,t,o))).map((({cell:e})=>Kk(e,t,i)))}function aC(e,t,o,i){if(t<1)return;return Gk(e,t).filter((({row:e,cellHeight:t})=>lC(e,t,o))).map((({cell:e,column:o})=>Jk(e,o,t,i)))}function lC(e,t,o){const i=e+t-1,{first:n,last:s}=o;return e>=n&&e<=s||e=n}class cC extends fc{static get pluginName(){return"TableKeyboard"}static get isOfficialPlugin(){return!0}static get requires(){return[nC,av]}init(){const e=this.editor,t=e.editing.view.document,o=e.t;this.listenTo(t,"arrowKey",((...e)=>this._onArrowKey(...e)),{context:"table"}),this.listenTo(t,"tab",((...e)=>this._handleTabOnSelectedTable(...e)),{context:"figure"}),this.listenTo(t,"tab",((...e)=>this._handleTab(...e)),{context:["th","td"]}),e.accessibility.addKeystrokeInfoGroup({id:"table",label:o("Keystrokes that can be used in a table cell"),keystrokes:[{label:o("Move the selection to the next cell"),keystroke:"Tab"},{label:o("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:o("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:o("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(e,t){const o=this.editor.model.document.selection.getSelectedElement();o&&o.is("element","table")&&t.stopPropagation()}_handleTab(e,t){const o=this.editor,i=this.editor.plugins.get(av),n=this.editor.plugins.get("TableSelection"),s=o.model.document.selection,r=!t.shiftKey;let a=i.getTableCellsContainingSelection(s)[0];if(a||(a=n.getFocusCell()),!a)return;t.stopPropagation();const l=a.parent,c=l.parent,d=c.getChildIndex(l),u=l.getChildIndex(a)===l.childCount-1,h=d===i.getRows(c)-1;r&&h&&u&&o.execute("insertTableRowBelow")}_onArrowKey(e,t){const o=this.editor,i=Kt(t.keyCode,o.locale.contentLanguageDirection);this._handleArrowKeys(i,t.shiftKey)&&(t.preventDefault(),t.stopPropagation(),e.stop())}_handleArrowKeys(e,t){const o=this.editor.plugins.get(av),i=this.editor.plugins.get("TableSelection"),n=this.editor.model,s=n.document.selection,r=["right","down"].includes(e),a=o.getSelectedTableCells(s);if(a.length){let o;return o=t?i.getFocusCell():r?a[a.length-1]:a[0],this._navigateFromCellInDirection(o,e,t),!0}const l=s.focus.findAncestor("tableCell");if(!l)return!1;if(!s.isCollapsed)if(t){if(s.isBackward==r&&!s.containsEntireContent(l))return!1}else{const e=s.getSelectedElement();if(!e||!n.schema.isObject(e))return!1}return!!this._isSelectionAtCellEdge(s,l,r)&&(this._navigateFromCellInDirection(l,e,t),!0)}_isSelectionAtCellEdge(e,t,o){const i=this.editor.model,n=this.editor.model.schema,s=o?e.getLastPosition():e.getFirstPosition();if(!n.getLimitElement(s).is("element","tableCell")){return i.createPositionAt(t,o?"end":0).isTouching(s)}const r=i.createSelection(s);return i.modifySelection(r,{direction:o?"forward":"backward"}),s.isEqual(r.focus)}_navigateFromCellInDirection(e,t,o=!1){const i=this.editor.model,n=e.findAncestor("table"),s=[...new Fk(n,{includeAllSlots:!0})],{row:r,column:a}=s[s.length-1],l=s.find((({cell:t})=>t==e));let{row:c,column:d}=l;switch(t){case"left":d--;break;case"up":c--;break;case"right":d+=l.cellWidth;break;case"down":c+=l.cellHeight}if(c<0||c>r||d<0&&c<=0||d>a&&c>=r)return void i.change((e=>{e.setSelection(e.createRangeOn(n))}));d<0?(d=o?0:a,c--):d>a&&(d=o?a:0,c++);const u=s.find((e=>e.row==c&&e.column==d)).cell,h=["right","down"].includes(t),m=this.editor.plugins.get("TableSelection");if(o&&m.isEnabled){const t=m.getAnchorCell()||e;m.setCellSelection(t,u)}else{const e=i.createPositionAt(u,h?0:"end");i.change((t=>{t.setSelection(e)}))}}}class dC extends jn{domEventType=["mousemove","mouseleave"];onDomEvent(e){this.fire(e.type,e)}}class uC extends fc{static get pluginName(){return"TableMouse"}static get isOfficialPlugin(){return!0}static get requires(){return[nC,av]}init(){this.editor.editing.view.addObserver(dC),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(av);let o=!1;const i=e.plugins.get(nC);this.listenTo(e.editing.view.document,"mousedown",((n,s)=>{const r=e.model.document.selection;if(!this.isEnabled||!i.isEnabled)return;if(!s.domEvent.shiftKey)return;const a=i.getAnchorCell()||t.getTableCellsContainingSelection(r)[0];if(!a)return;const l=this._getModelTableCellFromDomEvent(s);l&&hC(a,l)&&(o=!0,i.setCellSelection(a,l),s.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{o=!1})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{o&&e.stop()}),{priority:"highest"})}_enableMouseDragSelection(){const e=this.editor;let t,o,i=!1,n=!1;const s=e.plugins.get(nC);this.listenTo(e.editing.view.document,"mousedown",((e,o)=>{this.isEnabled&&s.isEnabled&&(o.domEvent.shiftKey||o.domEvent.ctrlKey||o.domEvent.altKey||(t=this._getModelTableCellFromDomEvent(o)))})),this.listenTo(e.editing.view.document,"mousemove",((e,r)=>{if(!r.domEvent.buttons)return;if(!t)return;const a=this._getModelTableCellFromDomEvent(r);a&&hC(t,a)&&(o=a,i||o==t||(i=!0)),i&&(n=!0,s.setCellSelection(t,o),r.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{i=!1,n=!1,t=null,o=null})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{n&&e.stop()}),{priority:"highest"})}_getModelTableCellFromDomEvent(e){const t=e.target,o=this.editor.editing.view.createPositionAt(t,0);return this.editor.editing.mapper.toModelPosition(o).parent.findAncestor("tableCell",{includeSelf:!0})}}function hC(e,t){return e.parent.parent==t.parent.parent}class mC extends fc{static get requires(){return[Xv,oC,nC,uC,cC,sC,vp]}static get pluginName(){return"Table"}static get isOfficialPlugin(){return!0}}function gC(e){const t=pC(e);return t||fC(e)}function pC(e){const t=e.getSelectedElement();return t&&bC(t)?t:null}function fC(e){const t=e.getFirstPosition();if(!t)return null;let o=t.parent;for(;o;){if(o.is("element")&&bC(o))return o;o=o.parent}return null}function bC(e){return e.is("element")&&!!e.getCustomProperty("table")&&ip(e)}class wC extends Au{options;focusTracker;focusCycler;_focusables;dropdownView;inputView;keystrokes;_stillTyping;constructor(e,t){super(e),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=t,this.focusTracker=new oo,this._focusables=new tu,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new ro,this._stillTyping=!1,this.focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",((e,t,o)=>this._setInputValue(o)))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach((e=>{this.focusTracker.add(e.element),this._focusables.add(e)})),this.keystrokes.listenTo(this.element)}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const e=this.locale,t=e.t,o=this.bindTemplate,i=this._createColorSelector(e),n=Zh(e),s=new Au;return s.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:o.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",o.if("value","ck-hidden",(e=>""!=e))]}}]}),n.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),n.buttonView.children.add(s),n.buttonView.label=t("Color picker"),n.buttonView.tooltip=!0,n.panelPosition="rtl"===e.uiLanguageDirection?"se":"sw",n.panelView.children.add(i),n.bind("isEnabled").to(this,"isReadOnly",(e=>!e)),n.on("change:isOpen",((e,t,o)=>{o&&(i.updateSelectedColors(),i.showColorGridsFragment())})),n}_createInputTextView(){const e=this.locale,t=new Oh(e);return t.extendTemplate({on:{blur:t.bindTemplate.to("blur")}}),t.value=this.value,t.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(t),t.on("input",(()=>{const e=t.element.value,o=this.options.colorDefinitions.find((t=>e===t.label));this._stillTyping=!0,this.value=o&&o.color||e})),t.on("blur",(()=>{this._stillTyping=!1,this._setInputValue(t.element.value)})),t.delegate("input").to(this),t}_createColorSelector(e){const t=e.t,o=this.options.defaultColorValue||"",i=t(o?"Restore default":"Remove color"),n=new fm(e,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:i,colorPickerLabel:t("Color picker"),colorPickerViewConfig:!1!==this.options.colorPickerConfig&&{...this.options.colorPickerConfig,hideInput:!0}});n.appendUI(),n.on("execute",((e,t)=>{"colorPickerSaveButton"!==t.source?(this.value=t.value||o,this.fire("input"),"colorPicker"!==t.source&&(this.dropdownView.isOpen=!1)):this.dropdownView.isOpen=!1}));let s=this.value;return n.on("colorPicker:cancel",(()=>{this.value=s,this.fire("input"),this.dropdownView.isOpen=!1})),n.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{s=this.value})),n.bind("selectedColor").to(this,"value"),n}_setInputValue(e){if(!this._stillTyping){const t=yC(e),o=this.options.colorDefinitions.find((e=>t===yC(e.color)));this.inputView.value=o?o.label:e||""}}}function yC(e){return e.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const _C=e=>""===e;function kC(e){return{none:e("None"),solid:e("Solid"),dotted:e("Dotted"),dashed:e("Dashed"),double:e("Double"),groove:e("Groove"),ridge:e("Ridge"),inset:e("Inset"),outset:e("Outset")}}function vC(e){return e('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function CC(e){return e('The value is invalid. Try "10px" or "2em" or simply "2".')}function AC(e){return e=e.trim().toLowerCase(),_C(e)||gl(e)}function xC(e){return e=e.trim(),_C(e)||RC(e)||wl(e)||_l(e)}function EC(e){return e=e.trim(),_C(e)||RC(e)||wl(e)}function TC(e,t){const o=new eo,i=kC(e.t);for(const n in i){const s={type:"button",model:new Jm({_borderStyleValue:n,label:i[n],role:"menuitemradio",withText:!0})};"none"===n?s.model.bind("isOn").to(e,"borderStyle",(e=>"none"===t?!e:e===n)):s.model.bind("isOn").to(e,"borderStyle",(e=>e===n)),o.add(s)}return o}function PC(e){const{view:t,icons:o,toolbar:i,labels:n,propertyName:s,nameToValue:r,defaultValue:a}=e;for(const e in n){const l=new Lu(t.locale);l.set({role:"radio",isToggleable:!0,label:n[e],icon:o[e],tooltip:n[e]});const c=r?r(e):e;l.bind("isOn").to(t,s,(e=>{let t=e;return""===e&&a&&(t=a),c===t})),l.on("execute",(()=>{!a&&c&&t[s]===c?t[s]=void 0:t[s]=c})),i.items.add(l)}}const SC=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function IC(e){return(t,o,i)=>{const n=new wC(t.locale,{colorDefinitions:(s=e.colorConfig,s.map((e=>({color:e.model,label:e.label,options:{hasBorder:e.hasBorder}})))),columns:e.columns,defaultColorValue:e.defaultColorValue,colorPickerConfig:e.colorPickerConfig});var s;return n.inputView.set({id:o,ariaDescribedById:i}),n.bind("isReadOnly").to(t,"isEnabled",(e=>!e)),n.bind("hasError").to(t,"errorText",(e=>!!e)),n.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused").to(n),n}}function RC(e){const t=parseFloat(e);return!Number.isNaN(t)&&e===String(t)}class OC extends Au{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;cellTypeDropdown;paddingInput;widthInput;heightInput;horizontalAlignmentToolbar;verticalAlignmentToolbar;saveButtonView;cancelButtonView;backButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",padding:"",backgroundColor:"",width:"",height:"",horizontalAlignment:"",verticalAlignment:"",cellType:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:i,borderColorInput:n,borderRowLabel:s}=this._createBorderFields(),{backgroundRowLabel:r,backgroundInput:a}=this._createBackgroundFields(),{cellTypeRowLabel:l,cellTypeDropdown:c}=this._createCellTypeField(),{widthInput:d,operatorLabel:u,heightInput:h,dimensionsLabel:m}=this._createDimensionFields(),{horizontalAlignmentToolbar:g,verticalAlignmentToolbar:p,alignmentLabel:f}=this._createAlignmentFields();this.focusTracker=new oo,this.keystrokes=new ro,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=i,this.borderColorInput=n,this.backgroundInput=a,this.cellTypeDropdown=c,this.paddingInput=this._createPaddingField(),this.widthInput=d,this.heightInput=h,this.horizontalAlignmentToolbar=g,this.verticalAlignmentToolbar=p;const{saveButtonView:b,cancelButtonView:w}=this._createActionButtons();this.saveButtonView=b,this.cancelButtonView=w,this.backButtonView=this._createBackButton(),this._focusables=new tu,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const y=new ju(e,{label:this.t("Cell properties")});y.children.add(this.backButtonView,0),this.children.add(y),this.children.add(new Km(e,{labelView:s,children:[s,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new Km(e,{children:[new Km(e,{labelView:l,children:[l,c],class:"ck-table-form__cell-type-row"}),new Km(e,{labelView:r,children:[r,a],class:"ck-table-form__background-row"})]})),this.children.add(new Km(e,{children:[new Km(e,{labelView:m,children:[m,d,u,h],class:"ck-table-form__dimensions-row"}),new Km(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new Km(e,{labelView:f,children:[f,g,p],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new Km(e,{children:[this.cancelButtonView,this.saveButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-cell-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.cellTypeDropdown,this.backgroundInput,this.widthInput,this.heightInput,this.paddingInput,this.horizontalAlignmentToolbar,this.verticalAlignmentToolbar,this.cancelButtonView,this.saveButtonView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableCellProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=IC({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),i=this.locale,n=this.t,s=n("Style"),r=new Du(i);r.text=n("Border");const a=kC(n),l=new Sh(i,rm);l.set({label:s,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),Xh(l.fieldView,TC(this,t.style),{role:"menu",ariaLabel:s});const c=new Sh(i,nm);c.set({label:n("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",VC),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new Sh(i,o);return d.set({label:n("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",VC),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,i,n)=>{VC(i)||(this.borderColor="",this.borderWidth=""),VC(n)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:r,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Background");const i=IC({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),n=new Sh(e,i);return n.set({label:t("Color"),class:"ck-table-cell-properties-form__background"}),n.fieldView.bind("value").to(this,"backgroundColor"),n.fieldView.on("input",(()=>{this.backgroundColor=n.fieldView.value})),{backgroundRowLabel:o,backgroundInput:n}}_createCellTypeField(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Cell type");const i=this._cellTypeLabels,n=new Sh(e,rm);return n.set({label:t("Cell type"),class:"ck-table-cell-properties-form__cell-type"}),n.fieldView.buttonView.set({ariaLabel:t("Cell type"),ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:t("Cell type")}),n.fieldView.buttonView.bind("label").to(this,"cellType",(e=>i[e||"data"])),n.fieldView.on("execute",(e=>{this.cellType=e.source._cellTypeValue})),n.bind("isEmpty").to(this,"cellType",(e=>!e)),Xh(n.fieldView,this._getCellTypeDefinitions(),{role:"menu",ariaLabel:t("Cell type")}),{cellTypeRowLabel:o,cellTypeDropdown:n}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Dimensions");const i=new Sh(e,nm);i.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),i.fieldView.bind("value").to(this,"width"),i.fieldView.on("input",(()=>{this.width=i.fieldView.element.value}));const n=new Au(e);n.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const s=new Sh(e,nm);return s.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),s.fieldView.bind("value").to(this,"height"),s.fieldView.on("input",(()=>{this.height=s.fieldView.element.value})),{dimensionsLabel:o,widthInput:i,operatorLabel:n,heightInput:s}}_createPaddingField(){const e=this.locale,t=this.t,o=new Sh(e,nm);return o.set({label:t("Padding"),class:"ck-table-cell-properties-form__padding"}),o.fieldView.bind("value").to(this,"padding"),o.fieldView.on("input",(()=>{this.padding=o.fieldView.element.value})),o}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Du(e),i={left:jc,center:'',right:'',justify:'',top:'',middle:'',bottom:''};o.text=t("Table cell text alignment");const n=new Wh(e),s="rtl"===e.contentLanguageDirection;n.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Horizontal text alignment toolbar"),class:"ck-table-cell-properties-form__horizontal-alignment-toolbar"}),PC({view:this,icons:i,toolbar:n,labels:this._horizontalAlignmentLabels,propertyName:"horizontalAlignment",nameToValue:e=>{if(s){if("left"===e)return"right";if("right"===e)return"left"}return e},defaultValue:this.options.defaultTableCellProperties.horizontalAlignment});const r=new Wh(e);return r.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Vertical text alignment toolbar"),class:"ck-table-cell-properties-form__vertical-alignment-toolbar"}),PC({view:this,icons:i,toolbar:r,labels:this._verticalAlignmentLabels,propertyName:"verticalAlignment",defaultValue:this.options.defaultTableCellProperties.verticalAlignment}),{horizontalAlignmentToolbar:n,verticalAlignmentToolbar:r,alignmentLabel:o}}_createActionButtons(){const e=this.locale,t=this.t,o=new Lu(e),i=new Lu(e),n=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return o.set({label:t("Save"),class:"ck-button-action",type:"submit",withText:!0}),o.bind("isEnabled").toMany(n,"errorText",((...e)=>e.every((e=>!e)))),i.set({label:t("Cancel"),withText:!0}),i.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:i}}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_getCellTypeDefinitions(){const e=new eo,t=this._cellTypeLabels,o=["data","header"];this.options.showScopedHeaderOptions&&o.push("header-column","header-row");for(const i of o){const o={type:"button",model:new Jm({_cellTypeValue:i,label:t[i],role:"menuitemradio",withText:!0})};o.model.bind("isOn").to(this,"cellType",(e=>e===i)),e.add(o)}return e}get _horizontalAlignmentLabels(){const e=this.locale,t=this.t,o=t("Align cell text to the left"),i=t("Align cell text to the center"),n=t("Align cell text to the right"),s=t("Justify cell text");return"rtl"===e.uiLanguageDirection?{right:n,center:i,left:o,justify:s}:{left:o,center:i,right:n,justify:s}}get _verticalAlignmentLabels(){const e=this.t;return{top:e("Align cell text to the top"),middle:e("Align cell text to the middle"),bottom:e("Align cell text to the bottom")}}get _cellTypeLabels(){const e=this.t;return{data:e("Data cell"),header:e("Header cell"),"header-column":e("Column header"),"header-row":e("Row header")}}}function VC(e){return"none"!==e}const DC=(()=>[dh.defaultPositions.northArrowSouth,dh.defaultPositions.northArrowSouthWest,dh.defaultPositions.northArrowSouthEast,dh.defaultPositions.southArrowNorth,dh.defaultPositions.southArrowNorthWest,dh.defaultPositions.southArrowNorthEast,dh.defaultPositions.viewportStickyNorth])();function FC(e,t){const o=e.plugins.get("ContextualBalloon"),i=e.editing.view.document.selection;let n;"cell"===t?fC(i)&&(n=NC(e)):gC(i)&&(n=MC(e)),n&&o.updatePosition(n)}function MC(e){const t=qk(e.model.document.selection),o=e.editing.mapper.toViewElement(t);return{target:e.editing.view.domConverter.mapViewToDom(o),positions:DC}}function NC(e){const t=e.editing.mapper,o=e.editing.view.domConverter,i=e.model.document.selection;if(i.rangeCount>1)return{target:()=>function(e,t){const o=t.editing.mapper,i=t.editing.view.domConverter,n=Array.from(e).map((e=>{const t=BC(e.start),n=o.toViewElement(t);return new ut(i.mapViewToDom(n))}));return ut.getBoundingRect(n)}(i.getRanges(),e),positions:DC};const n=BC(i.getFirstPosition()),s=t.toViewElement(n);return{target:o.mapViewToDom(s),positions:DC}}function BC(e){return e.nodeAfter&&e.nodeAfter.is("element","tableCell")?e.nodeAfter:e.findAncestor("tableCell")}const LC={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment",cellType:"tableCellType"};class zC extends fc{_defaultContentTableCellProperties;_defaultLayoutTableCellProperties;_balloon;view;_viewWithContentTableDefaults;_viewWithLayoutTableDefaults;_undoStepBatch;_isReady;static get requires(){return[Qm]}static get pluginName(){return"TableCellPropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:SC,backgroundColors:SC})}init(){const e=this.editor,t=e.t;this._defaultContentTableCellProperties=bv(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._defaultLayoutTableCellProperties=pv(void 0,{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._balloon=e.plugins.get(Qm),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",(o=>{const i=new Lu(o);i.set({label:t("Cell properties"),icon:'',tooltip:!0}),this.listenTo(i,"execute",(()=>this._showView()));const n=Object.values(LC).map((t=>e.commands.get(t))).filter((e=>!!e));return i.bind("isEnabled").toMany(n,"isEnabled",((...e)=>e.some((e=>e)))),i}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,o=t.config.get("table.tableCellProperties"),i=!!t.config.get("table.tableCellProperties.scopedHeaders"),n=Ch(o.borderColors),s=vh(t.locale,n),r=Ch(o.backgroundColors),a=vh(t.locale,r),l=!1!==o.colorPicker,c=new OC(t.locale,{borderColors:s,backgroundColors:a,defaultTableCellProperties:e,colorPickerConfig:!!l&&(o.colorPicker||{}),showScopedHeaderOptions:i}),d=t.t;c.render(),this.listenTo(c,"submit",(()=>{this._hideView()})),this.listenTo(c,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),c.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Su({emitter:c,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const u=vC(d),h=CC(d);c.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),c.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:c.borderColorInput,commandName:"tableCellBorderColor",errorText:u,validator:AC})),c.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:c.borderWidthInput,commandName:"tableCellBorderWidth",errorText:h,validator:EC})),c.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:c.paddingInput,commandName:"tableCellPadding",errorText:h,validator:xC})),c.on("change:width",this._getValidatedPropertyChangeCallback({viewField:c.widthInput,commandName:"tableCellWidth",errorText:h,validator:xC})),c.on("change:height",this._getValidatedPropertyChangeCallback({viewField:c.heightInput,commandName:"tableCellHeight",errorText:h,validator:xC})),c.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:c.backgroundInput,commandName:"tableCellBackgroundColor",errorText:u,validator:AC})),c.on("change:horizontalAlignment",this._getPropertyChangeCallback("tableCellHorizontalAlignment")),c.on("change:verticalAlignment",this._getPropertyChangeCallback("tableCellVerticalAlignment"));const m=t.commands.get("tableCellType");return m&&(c.cellTypeDropdown.bind("isEnabled").to(m,"isEnabled"),c.on("change:cellType",this._getPropertyChangeCallback("tableCellType"))),c}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableCellBorderStyle");Object.entries(LC).flatMap((([t,o])=>{const i=e.get(o);if(!i)return[];const n=t;let s;s="cellType"===n?"":this.view===this._viewWithContentTableDefaults?this._defaultContentTableCellProperties[n]||"":this._defaultLayoutTableCellProperties[n]||"";return[[t,i.value||s]]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor,t=gC(e.editing.view.document.selection),o=t&&e.editing.mapper.toModelElement(t),i=!o||"layout"!==o.getAttribute("tableType");i&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableCellProperties):i||this._viewWithLayoutTableDefaults||(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableCellProperties)),this.view=i?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:NC(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;fC(e.editing.view.document.selection)?this._isViewVisible&&FC(e,"cell"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,i)=>{this._isReady&&this.editor.execute(e,{value:i,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:i,errorText:n}=e,s=zo((()=>{o.errorText=n}),500);return(e,n,r)=>{s.cancel(),this._isReady&&(i(r)?(this.editor.execute(t,{value:r,batch:this._undoStepBatch}),o.errorText=null):s())}}}class jC extends wc{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,o){switch(super(e),this.attributeName=t,this._defaultContentTableValue=o,t){case"tableCellType":this._defaultLayoutTableValue="data";break;case"tableCellBorderStyle":this._defaultLayoutTableValue="none";break;case"tableCellHorizontalAlignment":this._defaultLayoutTableValue="left";break;case"tableCellVerticalAlignment":this._defaultLayoutTableValue="middle";break;default:this._defaultLayoutTableValue=void 0}}refresh(){const e=this.editor.model.document.selection,t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e),o=qk(e);this._defaultValue=o&&"layout"===o.getAttribute("tableType")?this._defaultLayoutTableValue:this._defaultContentTableValue,this.isEnabled=!!t.length,this.value=this._getSingleValue(t)}execute(e={}){const{value:t,batch:o}=e,i=this.editor.model,n=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(i.document.selection),s=this._getValueToSet(t);i.enqueueChange(o,(e=>{s?n.forEach((t=>e.setAttribute(this.attributeName,s,t))):n.forEach((t=>e.removeAttribute(this.attributeName,t))),this.fire("afterExecute",{writer:e,tableCells:n,valueToSet:s})}))}_getAttribute(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}_getSingleValue(e){const t=this._getAttribute(e[0]);return e.every((e=>this._getAttribute(e)===t))?t:void 0}}class qC extends jC{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class $C extends fc{static get pluginName(){return"TableCellWidthEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Xv]}init(){const e=this.editor,t=bv(e.config.get("table.tableCellProperties.defaultProperties"));jk(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",attributeName:"width",attributeType:"length",defaultValue:t.width}),e.commands.add("tableCellWidth",new qC(e,t.width))}}class HC extends jC{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class WC extends jC{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class UC extends jC{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class KC extends jC{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class GC extends jC{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class JC extends jC{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class ZC extends jC{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class QC extends jC{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class YC extends jC{constructor(e){super(e,"tableCellType","data"),this.on("afterExecute",((e,t)=>{const{writer:o,tableCells:i}=t,n=this.editor.plugins.get(av),s=function(e){const t=new Map;for(const o of e){const e=o.findAncestor("table");t.has(e)||t.set(e,[]),t.get(e).push(o)}return t}(i);XC(n,o,s.keys())}))}refresh(){super.refresh();const e=qk(this.editor.model.document.selection);this.isEnabled&&e&&"layout"===e.getAttribute("tableType")&&(this.isEnabled=!1)}_getAttribute(e){return e?.getAttribute(this.attributeName)||"data"}}function XC(e,t,o){let i=!1;for(const n of o){let o=n.getAttribute("headingRows")||0,s=n.getAttribute("headingColumns")||0;const r=n.getAttribute("footerRows")||0,a=e.getRows(n)-r,l=s>o;if(l){const r=eA(e,n,"column",s,o);r!==s&&(e.setHeadingColumnsCount(t,n,r,{updateCellType:!1}),s=r,i=!0)}let c=eA(e,n,"row",o,s);if(r>0&&(c=Math.min(c,a)),c!==o&&(e.setHeadingRowsCount(t,n,c,{updateCellType:!1}),o=c,i=!0),!l){const r=eA(e,n,"column",s,o);r!==s&&(e.setHeadingColumnsCount(t,n,r,{updateCellType:!1}),i=!0)}}return i}function eA(e,t,o,i,n){const s="row"===o?e.getRows(t):e.getColumns(t);let r=i;for(let e=0;e=n&&(a=!0)}if(!s)return Math.min(r,e);a&&(r=Math.max(r,e+1))}return Math.min(r,s)}const tA=/^(top|middle|bottom)$/,oA=/^(left|center|right|justify)$/;class iA extends fc{static get pluginName(){return"TableCellPropertiesEditing"}static get licenseFeatureCode(){return"TCP"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[Xv,$C]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const i=bv(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection});e.data.addStyleProcessorRules(Hl),function(e,t){const{conversion:o}=e,{schema:i}=e.model,n={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};i.extend("tableCell",{allowAttributes:Object.values(n)});for(const e of Object.values(n))i.setAttributeProperties(e,{isFormatting:!0});vk(e,"td",n,t),vk(e,"th",n,t),Ck(o,{modelElement:"tableCell",modelAttribute:n.style,styleName:"border-style"}),Ck(o,{modelElement:"tableCell",modelAttribute:n.color,styleName:"border-color"}),Ck(o,{modelElement:"tableCell",modelAttribute:n.width,styleName:"border-width"})}(e,{color:i.borderColor,style:i.borderStyle,width:i.borderWidth}),e.commands.add("tableCellBorderStyle",new JC(e,i.borderStyle)),e.commands.add("tableCellBorderColor",new ZC(e,i.borderColor)),e.commands.add("tableCellBorderWidth",new QC(e,i.borderWidth)),jk(t,o,{modelAttribute:"tableCellHeight",styleName:"height",attributeName:"height",attributeType:"length",defaultValue:i.height}),e.commands.add("tableCellHeight",new WC(e,i.height)),e.data.addStyleProcessorRules(tc),jk(t,o,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:i.padding}),function(e,t){Tk(e,"td",t),Tk(e,"th",t)}(e,i.padding),e.commands.add("tableCellPadding",new HC(e,i.padding)),e.data.addStyleProcessorRules(Bl),jk(t,o,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",attributeName:"bgcolor",attributeType:"color",defaultValue:i.backgroundColor}),e.commands.add("tableCellBackgroundColor",new UC(e,i.backgroundColor)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellHorizontalAlignment"]}),e.setAttributeProperties("tableCellHorizontalAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellHorizontalAlignment"},view:e=>({key:"style",value:{"text-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"text-align":oA}},model:{key:"tableCellHorizontalAlignment",value:(e,t,i)=>{const n=xk(o,"left",i),s=e.getStyle("text-align");if(s!==n)return s;t.consumable.consume(e,{styles:"text-align"})}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:oA}},model:{key:"tableCellHorizontalAlignment",value:(e,t,i)=>{const n=xk(o,"left",i),s=e.getAttribute("align");if(s!==n)return s;t.consumable.consume(e,{attributes:"align"})}}})}(t,o,i.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new GC(e,i.horizontalAlignment)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellVerticalAlignment"]}),e.setAttributeProperties("tableCellVerticalAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellVerticalAlignment"},view:e=>({key:"style",value:{"vertical-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"vertical-align":tA}},model:{key:"tableCellVerticalAlignment",value:(e,t,i)=>{const n=xk(o,"middle",i),s=e.getStyle("vertical-align");if(s!==n)return s;t.consumable.consume(e,{styles:"vertical-align"})}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:tA}},model:{key:"tableCellVerticalAlignment",value:(e,t,i)=>{const n=xk(o,"middle",i),s=e.getAttribute("valign");if(s!==n)return s;t.consumable.consume(e,{attributes:"valign"})}}})}(t,o,i.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new KC(e,i.verticalAlignment)),function(e){const{model:t,conversion:o,editing:i,config:n}=e,{schema:s}=t;n.define("table.tableCellProperties.scopedHeaders",!0);const r=!!n.get("table.tableCellProperties.scopedHeaders"),a=e.plugins.get(av);s.extend("tableCell",{allowAttributes:["tableCellType"]}),s.setAttributeProperties("tableCellType",{isFormatting:!0}),s.addAttributeCheck((e=>{const t=Array.from(e).reverse().find((e=>"table"===e.name));if("layout"===t?.getAttribute("tableType"))return!1}),"tableCellType"),o.for("upcast").add((e=>{e.on("element:th",((e,t,o)=>{const{writer:i}=o,{modelRange:n}=t,s=n?.start.nodeAfter;s?.is("element","tableCell")&&!s.hasAttribute("tableCellType")&&i.setAttribute("tableCellType","header",s)})),e.on("element:table",((e,t,o)=>{const{writer:i}=o,{modelRange:n}=t,s=n?.start.nodeAfter;if(s?.is("element","table")&&"layout"===s.getAttribute("tableType"))for(const{cell:e}of new Fk(s)){if(Nk(e.getAttribute("tableCellType"))){i.setAttribute("tableType","content",s);break}}}),{priority:ge.low-1})})),r&&(o.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellType"},view:e=>{switch(e){case"header-row":return{key:"scope",value:"row"};case"header-column":return{key:"scope",value:"col"}}}}),o.for("upcast").add((e=>{e.on("element:th",((e,t,o)=>{const{writer:i,consumable:n}=o,{viewItem:s,modelRange:r}=t,a=r.start.nodeAfter,l=a?.getAttribute("tableCellType");if("header"===l&&n.consume(s,{attributes:["scope"]})){switch(s.getAttribute("scope")){case"row":i.setAttribute("tableCellType","header-row",a);break;case"col":i.setAttribute("tableCellType","header-column",a)}}}))})));t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges(),i=new Set;for(const e of o){if("attribute"===e.type&&("headingRows"===e.attributeKey||"headingColumns"===e.attributeKey)){const t=e.range.start.nodeAfter;t?.is("element","table")&&"$graveyard"!==t.root.rootName&&i.add(t)}if("attribute"===e.type&&"tableCellType"===e.attributeKey){const t=e.range.start.nodeAfter;if(t?.is("element","tableCell")&&"$graveyard"!==t.root.rootName){const e=t.findAncestor("table");e&&i.add(e)}}if("insert"===e.type&&e.position.nodeAfter)for(const{item:o}of t.createRangeOn(e.position.nodeAfter))if(o.is("element","tableCell")&&o.getAttribute("tableCellType")&&"$graveyard"!==o.root.rootName){const e=o.findAncestor("table");e&&i.add(e)}}return XC(a,e,i)})),t.document.on("change:data",(()=>{const{differ:e}=t.document,o=new Set;for(const t of e.getChanges())if("attribute"===t.type&&"tableCellType"===t.attributeKey){const e=t.range.start.nodeAfter;e.is("element","tableCell")&&o.add(e)}for(const e of o){const t=i.mapper.toViewElement(e),o=Nk(e.getAttribute("tableCellType"))?"th":"td";t?.name!==o&&i.reconvertItem(e)}}))}(e),e.commands.add("tableCellType",new YC(e))}}class nA extends wc{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,o){super(e),this.attributeName=t,this._defaultContentTableValue=o,this._defaultLayoutTableValue="tableBorderStyle"===t?"none":void 0}refresh(){const e=qk(this.editor.model.document.selection);this._defaultValue=e&&"layout"===e.getAttribute("tableType")?this._defaultLayoutTableValue:this._defaultContentTableValue,this.isEnabled=!!e,this.value=this._getValue(e)}execute(e={}){const t=this.editor.model,o=t.document.selection,{value:i,batch:n}=e,s=qk(o),r=this._getValueToSet(i);t.enqueueChange(n,(e=>{r?e.setAttribute(this.attributeName,r,s):e.removeAttribute(this.attributeName,s)}))}_getValue(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}}class sA extends nA{constructor(e,t){super(e,"tableBackgroundColor",t)}}class rA extends nA{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class aA extends nA{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class lA extends nA{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class cA extends nA{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class dA extends nA{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class uA extends nA{constructor(e,t){super(e,"tableAlignment",t)}}class hA extends fc{static get pluginName(){return"TablePropertiesEditing"}static get licenseFeatureCode(){return"TCP"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[Xv]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const i=fv(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),n=!0===e.config.get("table.tableProperties.alignment.useInlineStyles");e.data.addStyleProcessorRules(ec),e.data.addStyleProcessorRules(Hl),function(e,t){const{conversion:o}=e,{schema:i}=e.model,n={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};i.extend("table",{allowAttributes:Object.values(n)});for(const e of Object.values(n))i.setAttributeProperties(e,{isFormatting:!0});vk(e,"table",n,t),Ak(o,{modelAttribute:n.color,styleName:"border-color"}),Ak(o,{modelAttribute:n.style,styleName:"border-style"}),Ak(o,{modelAttribute:n.width,styleName:"border-width"})}(e,{color:i.borderColor,style:i.borderStyle,width:i.borderWidth}),e.commands.add("tableBorderColor",new rA(e,i.borderColor)),e.commands.add("tableBorderStyle",new aA(e,i.borderStyle)),e.commands.add("tableBorderWidth",new lA(e,i.borderWidth)),function(e,t,o,i){e.extend("table",{allowAttributes:["tableAlignment"]}),e.setAttributeProperties("tableAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment",values:["left","center","right","blockLeft","blockRight"]},view:{left:i?{key:"style",value:{float:"left","margin-right":"var(--ck-content-table-style-spacing, 1.5em)"}}:{key:"class",value:Pk.className},right:i?{key:"style",value:{float:"right","margin-left":"var(--ck-content-table-style-spacing, 1.5em)"}}:{key:"class",value:Ik.className},center:i?{key:"style",value:{"margin-left":"auto","margin-right":"auto"}}:{key:"class",value:Sk.className},blockLeft:i?{key:"style",value:{"margin-left":"0","margin-right":"auto"}}:{key:"class",value:Rk.className},blockRight:i?{key:"style",value:{"margin-left":"auto","margin-right":"0"}}:{key:"class",value:Ok.className}},converterPriority:"high"}),Vk.forEach((e=>{t.for("upcast").attributeToAttribute({view:e.view,model:{key:"tableAlignment",value:(t,i,n)=>{if(function(e){return"figure"==e.name&&!e.hasClass("table")}(t))return;const s=xk(o,"",n),r=e.getAlign(t),a=e.getConsumables(t);return i.consumable.consume(t,a),r!==s?r:void 0}}})})),t.for("upcast").add(function(e){return t=>{t.on("element:div",((t,o,i)=>{if(!i.consumable.test(o.viewItem,{name:!0,attributes:"align"}))return;const n=ov(o.viewItem);if(!n||!i.consumable.test(n,{name:!0}))return;i.consumable.consume(o.viewItem,{name:!0,attributes:"align"});const s=i.convertItem(n,o.modelCursor),r=to(s.modelRange.getItems());if(!r||!r.is("element","table"))return i.consumable.revert(o.viewItem,{name:!0,attributes:"align"}),void(s.modelRange&&!s.modelRange.isCollapsed&&(o.modelRange=s.modelRange,o.modelCursor=s.modelCursor));const a=function(e,t,o){if(e)switch(e){case"right":return"right"===t?"right":"left"===t?"left":"blockRight";case"center":return"center";case"left":return void 0===t?"blockLeft":"left";default:return o}return}(o.viewItem.getAttribute("align"),n.getAttribute("align"),xk(e,"",o));a&&i.writer.setAttribute("tableAlignment",a,r),i.convertChildren(o.viewItem,i.writer.createPositionAt(r,"end")),i.updateConversionResult(r,o)}))}}(o))}(t,o,i.alignment,n),e.commands.add("tableAlignment",new uA(e,i.alignment)),pA(t,o,{modelAttribute:"tableWidth",styleName:"width",attributeName:"width",attributeType:"length",defaultValue:i.width}),e.commands.add("tableWidth",new cA(e,i.width)),pA(t,o,{modelAttribute:"tableHeight",styleName:"height",attributeName:"height",attributeType:"length",defaultValue:i.height}),e.commands.add("tableHeight",new dA(e,i.height)),e.data.addStyleProcessorRules(Bl),function(e,t,o){const{modelAttribute:i}=o;e.extend("table",{allowAttributes:[i]}),e.setAttributeProperties(i,{isFormatting:!0}),kk(t,{viewElement:"table",...o}),Ak(t,o)}(t,o,{modelAttribute:"tableBackgroundColor",styleName:"background-color",attributeName:"bgcolor",attributeType:"color",defaultValue:i.backgroundColor}),e.commands.add("tableBackgroundColor",new sA(e,i.backgroundColor)),Tk(e,"table");const s=e.editing.view.document;this.listenTo(s,"clipboardOutput",((t,o)=>{e.editing.view.change((e=>{for(const{item:t}of e.createRangeIn(o.content))mA(t,e);o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content))}))}),{priority:"lowest"})}}function mA(e,t){if(!e.is("element","table"))return;const o=e.getAttribute("align"),i=e.getStyle("float"),n=e.getStyle("margin-left"),s=e.getStyle("margin-right");o&&"center"===o||i&&"right"===i&&o&&"right"===o?gA(t,o,e):void 0===i&&"auto"===n&&"0"===s&&gA(t,"right",e)}function gA(e,t,o){const i=e.createPositionBefore(o),n=e.createContainerElement("div",{align:t},o);e.insert(i,n)}function pA(e,t,o){const{modelAttribute:i}=o;e.extend("table",{allowAttributes:[i]}),e.setAttributeProperties(i,{isFormatting:!0}),kk(t,{viewElement:/^(table|figure)$/,shouldUpcast:e=>!("table"==e.name&&"figure"==e.parent.name||"figure"==e.name&&!e.hasClass("table")),...o}),Ck(t,{modelElement:"table",...o})}class fA extends Au{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;widthInput;heightInput;alignmentToolbar;saveButtonView;cancelButtonView;backButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:i,borderColorInput:n,borderRowLabel:s}=this._createBorderFields(),{backgroundRowLabel:r,backgroundInput:a}=this._createBackgroundFields(),{widthInput:l,operatorLabel:c,heightInput:d,dimensionsLabel:u}=this._createDimensionFields(),{alignmentToolbar:h,alignmentLabel:m}=this._createAlignmentFields();this.focusTracker=new oo,this.keystrokes=new ro,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=i,this.borderColorInput=n,this.backgroundInput=a,this.widthInput=l,this.heightInput=d,this.alignmentToolbar=h;const{saveButtonView:g,cancelButtonView:p}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=p,this.backButtonView=this._createBackButton(),this._focusables=new tu,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const f=new ju(e,{label:this.t("Table properties")});f.children.add(this.backButtonView,0),this.children.add(f),this.children.add(new Km(e,{labelView:s,children:[s,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new Km(e,{children:[new Km(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new Km(e,{labelView:r,children:[r,a],class:"ck-table-form__background-row"})]})),this.children.add(new Km(e,{labelView:m,children:[m,h],class:"ck-table-properties-form__alignment-row"})),this.children.add(new Km(e,{children:[this.cancelButtonView,this.saveButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderWidthInput,this.borderColorInput,this.widthInput,this.heightInput,this.backgroundInput,this.alignmentToolbar,this.cancelButtonView,this.saveButtonView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=IC({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),i=this.locale,n=this.t,s=n("Style"),r=new Du(i);r.text=n("Border");const a=kC(n),l=new Sh(i,rm);l.set({label:s,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),Xh(l.fieldView,TC(this,t.style),{role:"menu",ariaLabel:s});const c=new Sh(i,nm);c.set({label:n("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",bA),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new Sh(i,o);return d.set({label:n("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",bA),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,i,n)=>{bA(i)||(this.borderColor="",this.borderWidth=""),bA(n)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:r,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Background");const i=IC({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),n=new Sh(e,i);return n.set({label:t("Color"),class:"ck-table-properties-form__background"}),n.fieldView.bind("value").to(this,"backgroundColor"),n.fieldView.on("input",(()=>{this.backgroundColor=n.fieldView.value})),{backgroundRowLabel:o,backgroundInput:n}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Dimensions");const i=new Sh(e,nm);i.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),i.fieldView.bind("value").to(this,"width"),i.fieldView.on("input",(()=>{this.width=i.fieldView.element.value}));const n=new Au(e);n.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const s=new Sh(e,nm);return s.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),s.fieldView.bind("value").to(this,"height"),s.fieldView.on("input",(()=>{this.height=s.fieldView.element.value})),{dimensionsLabel:o,widthInput:i,operatorLabel:n,heightInput:s}}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Table Alignment");const i=new Wh(e);return i.set({role:"radiogroup",isCompact:!0,ariaLabel:t("Table alignment toolbar")}),PC({view:this,icons:{left:Jc,center:Gc,right:Zc,blockLeft:Yc,blockRight:Xc},toolbar:i,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:o,alignmentToolbar:i}}_createActionButtons(){const e=this.locale,t=this.t,o=new Lu(e),i=new Lu(e),n=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return o.set({label:t("Save"),class:"ck-button-action",type:"submit",withText:!0}),o.bind("isEnabled").toMany(n,"errorText",((...e)=>e.every((e=>!e)))),i.set({label:t("Cancel"),withText:!0}),i.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:i}}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}get _alignmentLabels(){const e=this.locale,t=this.t,o=t("Align table to the left with no text wrapping"),i=t("Align table to the right with no text wrapping"),n=t("Align table to the left with text wrapping"),s=t("Center table with no text wrapping"),r=t("Align table to the right with text wrapping");return"rtl"===e.uiLanguageDirection?{right:r,left:n,blockRight:i,center:s,blockLeft:o}:{blockLeft:o,center:s,blockRight:i,left:n,right:r}}}function bA(e){return"none"!==e}const wA={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class yA extends fc{_defaultContentTableProperties;_defaultLayoutTableProperties;_balloon;view=null;_viewWithContentTableDefaults=null;_viewWithLayoutTableDefaults=null;_undoStepBatch;_isReady;static get requires(){return[Qm]}static get pluginName(){return"TablePropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableProperties",{borderColors:SC,backgroundColors:SC})}init(){const e=this.editor;this._defaultContentTableProperties=fv(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._defaultLayoutTableProperties=pv(),this._balloon=e.plugins.get(Qm),e.ui.componentFactory.add("tableProperties",(()=>this._createTablePropertiesButton()))}_createTablePropertiesButton(){const e=this.editor,t=e.t,o=new Lu(e.locale);o.set({label:t("Table properties"),icon:'',tooltip:!0}),this.listenTo(o,"execute",(()=>this._showView()));const i=Object.values(wA).map((t=>e.commands.get(t)));return o.bind("isEnabled").toMany(i,"isEnabled",((...e)=>e.some((e=>e)))),o}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,o=t.config.get("table.tableProperties"),i=Ch(o.borderColors),n=vh(t.locale,i),s=Ch(o.backgroundColors),r=vh(t.locale,s),a=!1!==o.colorPicker,l=new fA(t.locale,{borderColors:n,backgroundColors:r,defaultTableProperties:e,colorPickerConfig:!!a&&(o.colorPicker||{})}),c=t.t;l.render(),this.listenTo(l,"submit",(()=>{this._hideView()})),this.listenTo(l,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),l.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Su({emitter:l,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const d=vC(c),u=CC(c);return l.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),l.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:l.borderColorInput,commandName:"tableBorderColor",errorText:d,validator:AC})),l.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:l.borderWidthInput,commandName:"tableBorderWidth",errorText:u,validator:EC})),l.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:l.backgroundInput,commandName:"tableBackgroundColor",errorText:d,validator:AC})),l.on("change:width",this._getValidatedPropertyChangeCallback({viewField:l.widthInput,commandName:"tableWidth",errorText:u,validator:xC})),l.on("change:height",this._getValidatedPropertyChangeCallback({viewField:l.heightInput,commandName:"tableHeight",errorText:u,validator:xC})),l.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),l}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(wA).map((([t,o])=>{const i=t,n=this.view===this._viewWithContentTableDefaults?this._defaultContentTableProperties[i]||"":this._defaultLayoutTableProperties[i]||"";return[i,e.get(o).value||n]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor,t=gC(e.editing.view.document.selection),o=t&&e.editing.mapper.toModelElement(t),i=!o||"layout"!==o.getAttribute("tableType");i&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableProperties):i||this._viewWithLayoutTableDefaults||(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableProperties)),this.view=i?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:MC(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;gC(e.editing.view.document.selection)?this._isViewVisible&&FC(e,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,i)=>{this._isReady&&this.editor.execute(e,{value:i,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:i,errorText:n}=e,s=zo((()=>{o.errorText=n}),500);return(e,n,r)=>{s.cancel(),this._isReady&&(i(r)?(this.editor.execute(t,{value:r,batch:this._undoStepBatch}),o.errorText=null):s())}}}function _A(e){const t=parseFloat(e);return e.endsWith("pt")?kA(96*t/72):e.endsWith("pc")?kA(12*t*96/72):e.endsWith("in")?kA(96*t):e.endsWith("cm")?kA(96*t/2.54):e.endsWith("mm")?kA(t/10*96/2.54):e}function kA(e){return Math.round(e)+"px"}function vA(e,t,o){if(!e.childCount)return;const i=new rl(e.document),n=function(e,t){const o=t.createRangeIn(e),i=[],n=new Set;for(const e of o.getItems()){if(!e.is("element")||!e.name.match(/^(p|h\d+|li|div)$/))continue;let t=VA(e);if(void 0===t||0!=parseFloat(t)||Array.from(e.getClassNames()).find((e=>e.startsWith("MsoList")))||(t=void 0),e.hasStyle("mso-list")&&"none"!==e.getStyle("mso-list")||void 0!==t&&n.has(t)){const o=RA(e);i.push({element:e,id:o.id,order:o.order,indent:o.indent,marginLeft:t}),void 0!==t&&n.add(t)}else n.clear()}return i}(e,i);if(!n.length)return;const s={},r=[];let a=AA();for(const e of n)if(void 0!==e.indent){EA(e)||(xA(i,r,a),a=AA(),r.length=0);const n=`${e.id}:${e.indent}`,l=Math.min(e.indent-1,r.length);if(lr.length-1||r[l].listElement.name!=a.type){0==l&&"ol"==a.type&&void 0!==e.id&&s[n]&&(a.startIndex=s[n]);const t=IA(a,i,o);if(0==r.length){const o=e.element.parent,n=o.getChildIndex(e.element)+1;i.insertChild(n,t,o)}else{const e=r[l-1].listItemElements;i.appendChild(t,e[e.length-1])}r[l]={...e,listElement:t,listItemElements:[]},0==l&&void 0!==e.id&&(s[n]=a.startIndex||1)}}const c="li"==e.element.name?e.element:i.createElement("li");CA(i,r,a,e,c,l),i.appendChild(c,r[l].listElement),r[l].listItemElements.push(c),0==l&&void 0!==e.id&&s[n]++,e.element!=c&&i.appendChild(e.element,c),OA(e.element,i),i.removeStyle("text-indent",e.element),i.removeStyle("margin-left",e.element)}else{const t=r.find((t=>t.marginLeft==e.marginLeft));if(t){const o=t.listItemElements;i.appendChild(e.element,o[o.length-1]),i.removeStyle("margin-left",e.element)}else r.length=0}xA(i,r,a)}function CA(e,t,o,i,n,s){if(void 0===i.marginLeft)return void(0==s&&(o.canApplyMarginOnList=!1));const r=parseFloat(i.marginLeft);let a=0;if(t.length>1){const e=t[t.length-2].listItemElements;if(e.length>0){const t=e[e.length-1].getStyle("margin-left");void 0!==t&&(a+=parseFloat(t))}}a+=40*t.length;const l=r-a,c=0!==l?kA(l):void 0;c&&(e.setStyle("margin-left",c,n),0==s&&o.canApplyMarginOnList&&(void 0===o.marginLeft&&(o.marginLeft=c),c!==o.marginLeft&&(o.canApplyMarginOnList=!1),o.topLevelListItemElements.push(n)))}function AA(){return{marginLeft:void 0,canApplyMarginOnList:!0,topLevelListItemElements:[]}}function xA(e,t,o){if(o.canApplyMarginOnList&&o.marginLeft&&o.topLevelListItemElements.length>0){e.setStyle("margin-left",o.marginLeft,t[0].listElement);for(const t of o.topLevelListItemElements)e.removeStyle("margin-left",t)}}function EA(e){const t=e.element.previousSibling;if(!t){const t=e.element.parent;return TA(t)&&(!t.previousSibling||TA(t.previousSibling))}return TA(t)}function TA(e){return e.is("element","ol")||e.is("element","ul")}function PA(e,t){const o=new RegExp(`@list l${e.id}:level${e.indent}\\s*({[^}]*)`,"gi"),i=/mso-level-number-format:([^;]{0,100});/gi,n=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,s=new RegExp(`@list\\s+l${e.id}:level\\d\\s*{[^{]*mso-level-text:"%\\d\\\\.`,"gi"),r=new RegExp(`@list l${e.id}:level\\d\\s*{[^{]*mso-level-number-format:`,"gi"),a=s.exec(t),l=r.exec(t),c=a&&!l,d=o.exec(t);let u="decimal",h="ol",m=null;if(d&&d[1]){const t=i.exec(d[1]);if(t&&t[1]&&(u=t[1].trim(),h="bullet"!==u&&"image"!==u?"ol":"ul"),"bullet"===u){const t=function(e){if("li"==e.name&&"ul"==e.parent.name&&e.parent.hasAttribute("type"))return e.parent.getAttribute("type");const t=function(e){if(e.getChild(0).is("$text"))return null;for(const t of e.getChildren()){if(!t.is("element","span"))continue;const e=t.getChild(0);if(e)return e.is("$text")?e:e.getChild(0)}return null}(e);if(!t)return null;const o=t._data;if("o"===o)return"circle";if("·"===o)return"disc";if("§"===o)return"square";return null}(e.element);t&&(u=t)}else{const e=n.exec(d[1]);e&&e[1]&&(m=parseInt(e[1]))}c&&(h="ol")}return{type:h,startIndex:m,style:SA(u),isLegalStyleList:c}}function SA(e){if(e.startsWith("arabic-leading-zero"))return"decimal-leading-zero";switch(e){case"alpha-upper":return"upper-alpha";case"alpha-lower":return"lower-alpha";case"roman-upper":return"upper-roman";case"roman-lower":return"lower-roman";case"circle":case"disc":case"square":return e;default:return null}}function IA(e,t,o){const i=t.createElement(e.type);return e.style&&t.setStyle("list-style-type",e.style,i),e.startIndex&&e.startIndex>1&&t.setAttribute("start",e.startIndex,i),e.isLegalStyleList&&o&&t.addClass("legal-list",i),i}function RA(e){const t=e.getStyle("mso-list");if(void 0===t)return{};const o=t.match(/(^|\s{1,100})l(\d+)/i),i=t.match(/\s{0,100}lfo(\d+)/i),n=t.match(/\s{0,100}level(\d+)/i);return o&&i&&n?{id:o[2],order:i[1],indent:parseInt(n[1])}:{indent:1}}function OA(e,t){const o=new ui({name:"span",styles:{"mso-list":"Ignore"}}),i=t.createRangeIn(e);for(const e of i)"elementStart"===e.type&&o.match(e.item)&&t.remove(e.item)}function VA(e){const t=e.getStyle("margin-left");return void 0===t||t.endsWith("px")?t:_A(t)}function DA(e,t){if(!e.childCount)return;const o=new rl(e.document),i=function(e,t){const o=t.createRangeIn(e),i=new ui({name:/v:(.+)/}),n=[];for(const e of o){if("elementStart"!=e.type)continue;const t=e.item,o=t.previousSibling,s=o&&o.is("element")?o.name:null,r=["Chart"],a=i.match(t),l=t.getAttribute("o:gfxdata"),c="v:shapetype"===s,d=l&&r.some((e=>t.getAttribute("id").includes(e)));a&&l&&!c&&!d&&n.push(e.item.getAttribute("id"))}return n}(e,o);!function(e,t,o){const i=o.createRangeIn(t),n=new ui({name:"img"}),s=[];for(const t of i)if(t.item.is("element")&&n.match(t.item)){const o=t.item,i=o.getAttribute("v:shapes")?o.getAttribute("v:shapes").split(" "):[];i.length&&i.every((t=>e.indexOf(t)>-1))?s.push(o):o.getAttribute("src")||s.push(o)}for(const e of s)o.remove(e)}(i,e,o),function(e,t,o){const i=o.createRangeIn(t),n=[];for(const t of i)if("elementStart"==t.type&&t.item.is("element","v:shape")){const o=t.item.getAttribute("id");if(e.includes(o))continue;s(t.item.parent.getChildren(),o)||n.push(t.item)}for(const e of n){const t={src:r(e)};e.hasAttribute("alt")&&(t.alt=e.getAttribute("alt"));const i=o.createElement("img",t);o.insertChild(e.index+1,i,e.parent)}function s(e,t){for(const o of e)if(o.is("element")){if("img"==o.name&&o.getAttribute("v:shapes")==t)return!0;if(s(o.getChildren(),t))return!0}return!1}function r(e){for(const t of e.getChildren())if(t.is("element")&&t.getAttribute("src"))return t.getAttribute("src")}}(i,e,o),function(e,t){const o=t.createRangeIn(e),i=new ui({name:/v:(.+)/}),n=[];for(const e of o)"elementStart"==e.type&&i.match(e.item)&&n.push(e.item);for(const e of n)t.remove(e)}(e,o);const n=function(e,t){const o=t.createRangeIn(e),i=new ui({name:"img"}),n=[];let s=0;for(const e of o)e.item.is("element")&&i.match(e.item)&&(e.item.getAttribute("src").startsWith("file://")&&n.push({element:e.item,imageIndex:s}),s++);return n}(e,o);n.length&&function(e,t,o){for(let i=0;iString.fromCharCode(parseInt(e,16)))).join(""))}function MA(e,t){for(const o of t.createRangeIn(e).getItems())o.is("element","table")&&("0px"===o.getStyle("width")&&t.removeStyle("width",o),"0"===o.getAttribute("width")&&t.removeAttribute("width",o))}function NA(e,t){const o=[],i=[];for(const{item:n}of e.createRangeIn(t))if(n.is("element")&&n.getStyle("mso-footnote-id")){o.unshift(n);const{nextSibling:e}=n;e?.is("$text")&&e.data.startsWith(" ")&&i.unshift(e)}for(const t of o)e.remove(t);for(const t of i){const o=t.data.substring(1);if(o.length>0){const i=t.parent,n=i.getChildIndex(t),s=e.createText(o);e.remove(t),e.insertChild(n,s,i)}else e.remove(t)}return t}function BA(e,t){const o=e.createElement("sup",{class:"footnote"}),i=e.createElement("a",{id:`ref-${t}`,href:`#${t}`});return e.appendChild(i,o),o}function LA(e,t){const o=e.createElement("li",{id:t,class:"footnote-definition"}),i=e.createElement("a",{href:`#ref-${t}`,class:"footnote-backlink"}),n=e.createElement("div",{class:"footnote-content"});return e.appendChild(e.createText("^"),i),e.appendChild(i,o),e.appendChild(n,o),{listItem:o,content:n}}const zA=//i,jA=/xmlns:o="urn:schemas-microsoft-com/i;class qA{document;hasMultiLevelListPlugin;hasTablePropertiesPlugin;constructor(e,t=!1,o=!1){this.document=e,this.hasMultiLevelListPlugin=t,this.hasTablePropertiesPlugin=o}isActive(e){return zA.test(e)||jA.test(e)}execute(e){const t=new rl(this.document),{body:o,stylesString:i}=e._parsedData;!function(e,t){const o=[];for(const i of t.createRangeIn(e)){const e=i.item;e.is("element","a")&&!e.hasAttribute("href")&&(e.hasAttribute("id")||e.hasAttribute("name"))&&o.push(e)}for(const e of o){const o=e.parent.getChildIndex(e)+1,i=e.getChildren();t.insertChild(o,i,e.parent)}}(o,t),vA(o,i,this.hasMultiLevelListPlugin),DA(o,e.dataTransfer.getData("text/rtf")),function(e,t,o=!1){for(const i of t.createRangeIn(e).getItems()){if(!i.is("element","table")&&!i.is("element","td")&&!i.is("element","th"))continue;if(o&&i.is("element","table")){const e=i.parent?.is("element","div")?i.parent:null,o=i.parent?.parent?.is("element","div")?i.parent.parent:null,n=e??o;n&&"center"===n.getAttribute("align")&&!i.getAttribute("align")?(t.setStyle("margin-left","auto",i),t.setStyle("margin-right","auto",i)):n&&"right"===n.getAttribute("align")&&!i.getAttribute("align")?(t.setStyle("margin-left","auto",i),t.setStyle("margin-right","0",i)):n||i.getAttribute("align")||(t.setStyle("margin-left","0",i),t.setStyle("margin-right","auto",i))}const e=["left","top","right","bottom"];if(e.every((e=>!i.hasStyle(`border-${e}-style`))))t.setStyle("border-style","none",i);else for(const o of e)i.hasStyle(`border-${o}-style`)||t.setStyle(`border-${o}-style`,"none",i);const n=["width","height",...e.map((e=>`border-${e}-width`)),...e.map((e=>`padding-${e}`))];for(const e of n)i.hasStyle(e)&&t.setStyle(e,_A(i.getStyle(e)),i)}}(o,t,this.hasTablePropertiesPlugin),MA(o,t),function(e,t){const o=new Map,i=new Map;let n=null;for(const{item:s}of t.createRangeIn(e))if(s.is("element"))if("footnote-list"!==s.getStyle("mso-element")){if(s.hasStyle("mso-footnote-id")){const e=s.findAncestor("element",(e=>"footnote"===e.getStyle("mso-element")));if(e){const t=e.getAttribute("id");i.set(t,e)}else{const e=s.getStyle("mso-footnote-id");o.set(e,s)}}}else n=s;if(!o.size||!n)return;const s=function(e){return e.createElement("ol",{class:"footnotes"})}(t);t.replace(n,s);for(const[e,n]of o){const o=i.get(e);if(!o)continue;t.replace(n,BA(t,e));const r=LA(t,e);NA(t,o);for(const e of o.getChildren()){let o=e;e.is("element")&&(o=t.clone(e,!0)),t.appendChild(o,r.content)}t.appendChild(r.listItem,s)}}(o,t),function(e){const t=[],o=new rl(e.document);for(const{item:i}of o.createRangeIn(e))if(i.is("element")){for(const e of i.getClassNames())/\bmso/gi.exec(e)&&o.removeClass(e,i);for(const e of i.getStyleNames())/\bmso/gi.exec(e)&&o.removeStyle(e,i);(i.is("element","w:sdt")||i.is("element","w:sdtpr")&&i.isEmpty||i.is("element","o:p")&&i.isEmpty)&&t.push(i)}for(const e of t){const t=e.parent,i=t.getChildIndex(e);o.insertChild(i,e.getChildren(),t),o.remove(e)}}(o),e.content=o}}function $A(e,t,o,{blockElements:i,inlineObjectElements:n}){let s=o.createPositionAt(e,"forward"==t?"after":"before");return s=s.getLastMatchingPosition((({item:e})=>e.is("element")&&!i.includes(e.name)&&!n.includes(e.name)),{direction:t}),"forward"==t?s.nodeAfter:s.nodeBefore}function HA(e,t){return!!e&&e.is("element")&&t.includes(e.name)}function WA(e){let t=e;for(;t;){if(t.is("element")){const e=t.getStyle?.("white-space");if("pre-wrap"===e)return!0}t=t.parent}return!1}function UA(e,t,o){const{parent:i,data:n}=e,s=n.replaceAll("\t"," ".repeat(o)),r=i.getChildIndex(e);t.remove(e),t.insertChild(r,t.createText(s),i)}const KA=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class GA{document;constructor(e){this.document=e}isActive(e){return KA.test(e)}execute(e){const t=new rl(this.document),{body:o}=e._parsedData;!function(e,t){for(const o of e.getChildren())if(o.is("element","b")&&"normal"===o.getStyle("font-weight")){const i=e.getChildIndex(o);t.remove(o),t.insertChild(i,o.getChildren(),e)}}(o,t),function(e,t){for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","li")){const o=e.getChild(0);o&&o.is("element","p")&&t.unwrapElement(o)}}}(o,t),function(e,t){const o=new Hi(t.document.stylesProcessor),i=new Rn(o,{renderingMode:"data"}),n=i.blockElements,s=i.inlineObjectElements,r=[];for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","br")){const o=$A(e,"forward",t,{blockElements:n,inlineObjectElements:s}),i=$A(e,"backward",t,{blockElements:n,inlineObjectElements:s}),a=HA(o,n);(HA(i,n)||a)&&r.push(e)}}for(const e of r)e.hasClass("Apple-interchange-newline")?t.remove(e):t.replace(e,t.createElement("p"))}(o,t),function(e,t,o){const i=new Set;for(const o of t.createRangeIn(e).getItems())o.is("view:$textProxy")&&o.data.includes("\t")&&WA(o.parent)&&i.add(o.textNode);for(const e of i)UA(e,t,o)}(o,t,8),e.content=o}}const JA=/(\s+)<\/span>/g,((e,t)=>1===t.length?" ":Array(t.length+1).join("  ").substr(0,t.length)))}function YA(e,t){const o=new DOMParser,i=function(e){return QA(QA(e)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/()[\r\n]+(<\/span>)/g,"$1 $2").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(e){const t="",o="",i=e.indexOf(t);if(i<0)return e;const n=e.indexOf(o,i+t.length);return e.substring(0,i+t.length)+(n>=0?e.substring(n):"")}(e=(e=e.replace(//,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(HT.source+"\\s*$"),/^$/,!1]];const UT=[["table",function(e,t,o,i){if(t+2>o)return!1;let n=t+1;if(e.sCount[n]=4)return!1;let s=e.bMarks[n]+e.tShift[n];if(s>=e.eMarks[n])return!1;const r=e.src.charCodeAt(s++);if(124!==r&&45!==r&&58!==r)return!1;if(s>=e.eMarks[n])return!1;const a=e.src.charCodeAt(s++);if(124!==a&&45!==a&&58!==a&&!eT(a))return!1;if(45===r&&eT(a))return!1;for(;s=4)return!1;c=BT(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const u=c.length;if(0===u||u!==d.length)return!1;if(i)return!0;const h=e.parentType;e.parentType="table";const m=e.md.block.ruler.getRules("blockquote"),g=[t,0];e.push("table_open","table",1).map=g,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;if(c=BT(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),f+=u-c.length,f>65536)break;if(n===t+2){e.push("tbody_open","tbody",1).map=p=[t+2,0]}e.push("tr_open","tr",1).map=[n,n+1];for(let t=0;t=4))break;i++,n=i}e.line=n;const s=e.push("code_block","code",0);return s.content=e.getLines(t,n,4+e.blkIndent,!1)+"\n",s.map=[t,e.line],!0}],["fence",function(e,t,o,i){let n=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(n+3>s)return!1;const r=e.src.charCodeAt(n);if(126!==r&&96!==r)return!1;let a=n;n=e.skipChars(n,r);let l=n-a;if(l<3)return!1;const c=e.src.slice(a,n),d=e.src.slice(n,s);if(96===r&&d.indexOf(String.fromCharCode(r))>=0)return!1;if(i)return!0;let u=t,h=!1;for(;(u++,!(u>=o))&&(n=a=e.bMarks[u]+e.tShift[u],s=e.eMarks[u],!(n=4||(n=e.skipChars(n,r),n-a=4)return!1;if(62!==e.src.charCodeAt(n))return!1;if(i)return!0;const a=[],l=[],c=[],d=[],u=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let m,g=!1;for(m=t;m=s)break;if(62===e.src.charCodeAt(n++)&&!t){let t,o,i=e.sCount[m]+1;32===e.src.charCodeAt(n)?(n++,i++,o=!1,t=!0):9===e.src.charCodeAt(n)?(t=!0,(e.bsCount[m]+i)%4==3?(n++,i++,o=!1):o=!0):t=!1;let r=i;for(a.push(e.bMarks[m]),e.bMarks[m]=n;n=s,l.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(t?1:0),c.push(e.sCount[m]),e.sCount[m]=r-i,d.push(e.tShift[m]),e.tShift[m]=n-e.bMarks[m];continue}if(g)break;let i=!1;for(let t=0,n=u.length;t";const b=[t,0];f.map=b,e.md.block.tokenize(e,t,m),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=r,e.parentType=h,b[1]=e.line;for(let o=0;o=4)return!1;let s=e.bMarks[t]+e.tShift[t];const r=e.src.charCodeAt(s++);if(42!==r&&45!==r&&95!==r)return!1;let a=1;for(;s=4)return!1;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(m=!0),(h=zT(e,l))>=0){if(d=!0,r=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(r,h-1)),m&&1!==u)return!1}else{if(!((h=LT(e,l))>=0))return!1;d=!1}if(m&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(i)return!0;const g=e.src.charCodeAt(h-1),p=e.tokens.length;d?(a=e.push("ordered_list_open","ol",1),1!==u&&(a.attrs=[["start",u]])):a=e.push("bullet_list_open","ul",1);const f=[l,0];a.map=f,a.markup=String.fromCharCode(g);let b=!1;const w=e.md.block.ruler.getRules("list"),y=e.parentType;for(e.parentType="list";l=n?1:i-t,m>4&&(m=1);const p=t+m;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(g);const f=[l,0];a.map=f,d&&(a.info=e.src.slice(r,h-1));const y=e.tight,_=e.tShift[l],k=e.sCount[l],v=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=p,e.tight=!0,e.tShift[l]=u-e.bMarks[l],e.sCount[l]=i,u>=n&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,o):e.md.block.tokenize(e,l,o,!0),e.tight&&!b||(c=!1),b=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[l]=_,e.sCount[l]=k,e.tight=y,a=e.push("list_item_close","li",-1),a.markup=String.fromCharCode(g),l=e.line,f[1]=l,l>=o)break;if(e.sCount[l]=4)break;let C=!1;for(let t=0,i=w.length;t=4)return!1;if(91!==e.src.charCodeAt(n))return!1;function a(t){const o=e.lineMax;if(t>=o||e.isEmpty(t))return null;let i=!1;if(e.sCount[t]-e.blkIndent>3&&(i=!0),e.sCount[t]<0&&(i=!0),!i){const i=e.md.block.ruler.getRules("reference"),n=e.parentType;e.parentType="reference";let s=!1;for(let n=0,r=i.length;n=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(n))return!1;let r=e.src.slice(n,s),a=0;for(;a=4)return!1;let r=e.src.charCodeAt(n);if(35!==r||n>=s)return!1;let a=1;for(r=e.src.charCodeAt(++n);35===r&&n6||nn&&eT(e.src.charCodeAt(l-1))&&(s=l),e.line=t+1;const c=e.push("heading_open","h"+String(a),1);c.markup="########".slice(0,a),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=e.src.slice(n,s).trim(),d.map=[t,e.line],d.children=[],e.push("heading_close","h"+String(a),-1).markup="########".slice(0,a),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,o){const i=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const n=e.parentType;e.parentType="paragraph";let s,r=0,a=t+1;for(;a3)continue;if(e.sCount[a]>=e.blkIndent){let t=e.bMarks[a]+e.tShift[a];const o=e.eMarks[a];if(t=o))){r=61===s?1:2;break}}if(e.sCount[a]<0)continue;let t=!1;for(let n=0,s=i.length;n3)continue;if(e.sCount[s]<0)continue;let t=!1;for(let n=0,r=i.length;n=o))&&!(e.sCount[r]=s){e.line=o;break}const t=e.line;let l=!1;for(let s=0;s=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),r=e.line,r0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],n={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(n),i},JT.prototype.scanDelims=function(e,t){const o=this.posMax,i=this.src.charCodeAt(e),n=e>0?this.src.charCodeAt(e-1):32;let s=e;for(;s?@[]^_`{|}~-".split("").forEach((function(e){XT[e.charCodeAt(0)]=1}));const tP={tokenize:function(e,t){const o=e.pos,i=e.src.charCodeAt(o);if(t)return!1;if(126!==i)return!1;const n=e.scanDelims(e.pos,!0);let s=n.length;const r=String.fromCharCode(i);if(s<2)return!1;let a;s%2&&(a=e.push("text","",0),a.content=r,s--);for(let t=0;t=0;o--){const i=t[o];if(95!==i.marker&&42!==i.marker)continue;if(-1===i.end)continue;const n=t[i.end],s=o>0&&t[o-1].end===i.end+1&&t[o-1].marker===i.marker&&t[o-1].token===i.token-1&&t[i.end+1].token===n.token+1,r=String.fromCharCode(i.marker),a=e.tokens[i.token];a.type=s?"strong_open":"em_open",a.tag=s?"strong":"em",a.nesting=1,a.markup=s?r+r:r,a.content="";const l=e.tokens[n.token];l.type=s?"strong_close":"em_close",l.tag=s?"strong":"em",l.nesting=-1,l.markup=s?r+r:r,l.content="",s&&(e.tokens[t[o-1].token].content="",e.tokens[t[i.end+1].token].content="",o--)}}const iP={tokenize:function(e,t){const o=e.pos,i=e.src.charCodeAt(o);if(t)return!1;if(95!==i&&42!==i)return!1;const n=e.scanDelims(e.pos,42===i);for(let t=0;t\x00-\x20]*)$/;const rP=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,aP=/^&([a-z][a-z0-9]{1,31});/i;function lP(e){const t={},o=e.length;if(!o)return;let i=0,n=-2;const s=[];for(let r=0;ra;l-=s[l]+1){const t=e[l];if(t.marker===o.marker&&(t.open&&t.end<0)){let i=!1;if((t.close||o.open)&&(t.length+o.length)%3==0&&(t.length%3==0&&o.length%3==0||(i=!0)),!i){const i=l>0&&!e[l-1].open?s[l-1]+1:0;s[r]=r-l+i,s[l]=i,o.open=!1,t.end=r,t.close=!1,c=-1,n=-2;break}}}-1!==c&&(t[o.marker][(o.open?3:0)+(o.length||0)%3]=c)}}const cP=[["text",function(e,t){let o=e.pos;for(;o0)return!1;const o=e.pos;if(o+3>e.posMax)return!1;if(58!==e.src.charCodeAt(o))return!1;if(47!==e.src.charCodeAt(o+1))return!1;if(47!==e.src.charCodeAt(o+2))return!1;const i=e.pending.match(YT);if(!i)return!1;const n=i[1],s=e.md.linkify.matchAtStart(e.src.slice(o-n.length));if(!s)return!1;let r=s.url;if(r.length<=n.length)return!1;r=r.replace(/\*+$/,"");const a=e.md.normalizeLink(r);if(!e.md.validateLink(a))return!1;if(!t){e.pending=e.pending.slice(0,-n.length);const t=e.push("link_open","a",1);t.attrs=[["href",a]],t.markup="linkify",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(r);const o=e.push("link_close","a",-1);o.markup="linkify",o.info="auto"}return e.pos+=r.length-n.length,!0}],["newline",function(e,t){let o=e.pos;if(10!==e.src.charCodeAt(o))return!1;const i=e.pending.length-1,n=e.posMax;if(!t)if(i>=0&&32===e.pending.charCodeAt(i))if(i>=1&&32===e.pending.charCodeAt(i-1)){let t=i-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o=i)return!1;let n=e.src.charCodeAt(o);if(10===n){for(t||e.push("hardbreak","br",0),o++;o=55296&&n<=56319&&o+1=56320&&t<=57343&&(s+=e.src[o+1],o++)}const r="\\"+s;if(!t){const t=e.push("text_special","",0);n<256&&0!==XT[n]?t.content=s:t.content=r,t.markup=r,t.info="escape"}return e.pos=o+1,!0}],["backticks",function(e,t){let o=e.pos;if(96!==e.src.charCodeAt(o))return!1;const i=o;o++;const n=e.posMax;for(;o=u)return!1;if(l=g,n=e.md.helpers.parseLinkDestination(e.src,g,e.posMax),n.ok){for(r=e.md.normalizeLink(n.str),e.md.validateLink(r)?g=n.pos:r="",l=g;g=u||41!==e.src.charCodeAt(g))&&(c=!0),g++}if(c){if(void 0===e.env.references)return!1;if(g=0?i=e.src.slice(l,g++):g=m+1):g=m+1,i||(i=e.src.slice(h,m)),s=e.env.references[nT(i)],!s)return e.pos=d,!1;r=s.href,a=s.title}if(!t){e.pos=h,e.posMax=m;const t=[["href",r]];e.push("link_open","a",1).attrs=t,a&&t.push(["title",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=g,e.posMax=u,!0}],["image",function(e,t){let o,i,n,s,r,a,l,c,d="";const u=e.pos,h=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const m=e.pos+2,g=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(g<0)return!1;if(s=g+1,s=h)return!1;for(c=s,a=e.md.helpers.parseLinkDestination(e.src,s,e.posMax),a.ok&&(d=e.md.normalizeLink(a.str),e.md.validateLink(d)?s=a.pos:d=""),c=s;s=h||41!==e.src.charCodeAt(s))return e.pos=u,!1;s++}else{if(void 0===e.env.references)return!1;if(s=0?n=e.src.slice(c,s++):s=g+1):s=g+1,n||(n=e.src.slice(m,g)),r=e.env.references[nT(n)],!r)return e.pos=u,!1;d=r.href,l=r.title}if(!t){i=e.src.slice(m,g);const t=[];e.md.inline.parse(i,e.md,e.env,t);const o=e.push("image","img",0),n=[["src",d],["alt",""]];o.attrs=n,o.children=t,o.content=i,l&&n.push(["title",l])}return e.pos=s,e.posMax=h,!0}],["autolink",function(e,t){let o=e.pos;if(60!==e.src.charCodeAt(o))return!1;const i=e.pos,n=e.posMax;for(;;){if(++o>=n)return!1;const t=e.src.charCodeAt(o);if(60===t)return!1;if(62===t)break}const s=e.src.slice(i+1,o);if(sP.test(s)){const o=e.md.normalizeLink(s);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const i=e.push("link_close","a",-1);i.markup="autolink",i.info="auto"}return e.pos+=s.length+2,!0}if(nP.test(s)){const o=e.md.normalizeLink("mailto:"+s);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const i=e.push("link_close","a",-1);i.markup="autolink",i.info="auto"}return e.pos+=s.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const o=e.posMax,i=e.pos;if(60!==e.src.charCodeAt(i)||i+2>=o)return!1;const n=e.src.charCodeAt(i+1);if(33!==n&&63!==n&&47!==n&&!function(e){const t=32|e;return t>=97&&t<=122}(n))return!1;const s=e.src.slice(i).match($T);if(!s)return!1;if(!t){const t=e.push("html_inline","",0);t.content=s[0],r=t.content,/^\s]/i.test(r)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--}var r;return e.pos+=s[0].length,!0}],["entity",function(e,t){const o=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(o))return!1;if(o+1>=i)return!1;if(35===e.src.charCodeAt(o+1)){const i=e.src.slice(o).match(rP);if(i){if(!t){const t="x"===i[1][0].toLowerCase()?parseInt(i[1].slice(1),16):parseInt(i[1],10),o=e.push("text_special","",0);o.content=zE(t)?jE(t):jE(65533),o.markup=i[0],o.info="entity"}return e.pos+=i[0].length,!0}}else{const i=e.src.slice(o).match(aP);if(i){const o=SE(i[0]);if(o!==i[0]){if(!t){const t=e.push("text_special","",0);t.content=o,t.markup=i[0],t.info="entity"}return e.pos+=i[0].length,!0}}}return!1}]],dP=[["balance_pairs",function(e){const t=e.tokens_meta,o=e.tokens_meta.length;lP(e.delimiters);for(let e=0;e0&&i++,"text"===n[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;r||e.pos++,s[t]=e.pos},uP.prototype.tokenize=function(e){const t=this.ruler.getRules(""),o=t.length,i=e.posMax,n=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(r){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},uP.prototype.parse=function(e,t,o,i){const n=new this.State(e,t,o,i);this.tokenize(n);const s=this.ruler2.getRules(""),r=s.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:i.match(o.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,o){const i=e.slice(t);return o.re.mailto||(o.re.mailto=new RegExp("^"+o.re.src_email_name+"@"+o.re.src_host_strict,"i")),o.re.mailto.test(i)?i.match(o.re.mailto)[0].length:0}}},yP="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function _P(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=lE.source,t.src_Cc=cE.source,t.src_Z=uE.source,t.src_P=rE.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");const o="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+o+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),o=e.__tlds__.slice();function i(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||o.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),o.push(t.src_xn),t.src_tlds=o.join("|"),t.email_fuzzy=RegExp(i(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(i(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(i(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(i(t.tpl_host_fuzzy_test),"i");const n=[];function s(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const o=e.__schemas__[t];if(null===o)return;const i={validate:null,link:null};if(e.__compiled__[t]=i,"[object Object]"===gP(o))return!function(e){return"[object RegExp]"===gP(e)}(o.validate)?pP(o.validate)?i.validate=o.validate:s(t,o):i.validate=function(e){return function(t,o){const i=t.slice(o);return e.test(i)?i.match(e)[0].length:0}}(o.validate),void(pP(o.normalize)?i.normalize=o.normalize:o.normalize?s(t,o):i.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===gP(e)}(o)?s(t,o):n.push(t)})),n.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const r=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(fP).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+r+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+r+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function kP(e,t){const o=e.__index__,i=e.__last_index__,n=e.__text_cache__.slice(o,i);this.schema=e.__schema__.toLowerCase(),this.index=o+t,this.lastIndex=i+t,this.raw=n,this.text=n,this.url=n}function vP(e,t){const o=new kP(e,t);return e.__compiled__[o.schema].normalize(o,e),o}function CP(e,t){if(!(this instanceof CP))return new CP(e,t);var o;t||(o=e,Object.keys(o||{}).reduce((function(e,t){return e||bP.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=mP({},bP,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=mP({},wP,e),this.__compiled__={},this.__tlds__=yP,this.__tlds_replaced__=!1,this.re={},_P(this)}CP.prototype.add=function(e,t){return this.__schemas__[e]=t,_P(this),this},CP.prototype.set=function(e){return this.__opts__=mP(this.__opts__,e),this},CP.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,o,i,n,s,r,a,l,c;if(this.re.schema_test.test(e))for(a=this.re.schema_search,a.lastIndex=0;null!==(t=a.exec(e));)if(n=this.testSchemaAt(e,t[2],a.lastIndex),n){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+n;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(i=e.match(this.re.email_fuzzy))&&(s=i.index+i[1].length,r=i.index+i[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=r))),this.__index__>=0},CP.prototype.pretest=function(e){return this.re.pretest.test(e)},CP.prototype.testSchemaAt=function(e,t,o){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,o,this):0},CP.prototype.match=function(e){const t=[];let o=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(vP(this,o)),o=this.__last_index__);let i=o?e.slice(o):e;for(;this.test(i);)t.push(vP(this,o)),i=i.slice(this.__last_index__),o+=this.__last_index__;return t.length?t:null},CP.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const o=this.testSchemaAt(e,t[2],t[0].length);return o?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+o,vP(this,0)):null},CP.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,o){return e!==o[t-1]})).reverse(),_P(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,_P(this),this)},CP.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},CP.prototype.onCompile=function(){};const AP=CP,xP=2147483647,EP=36,TP=/^xn--/,PP=/[^\0-\x7F]/,SP=/[\x2E\u3002\uFF0E\uFF61]/g,IP={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},RP=Math.floor,OP=String.fromCharCode;function VP(e){throw new RangeError(IP[e])}function DP(e,t){const o=e.split("@");let i="";o.length>1&&(i=o[0]+"@",e=o[1]);const n=function(e,t){const o=[];let i=e.length;for(;i--;)o[i]=t(e[i]);return o}((e=e.replace(SP,".")).split("."),t).join(".");return i+n}function FP(e){const t=[];let o=0;const i=e.length;for(;o=55296&&n<=56319&&o>1,e+=RP(e/t);e>455;i+=EP)e=RP(e/35);return RP(i+36*e/(e+38))},BP=function(e){const t=[],o=e.length;let i=0,n=128,s=72,r=e.lastIndexOf("-");r<0&&(r=0);for(let o=0;o=128&&VP("not-basic"),t.push(e.charCodeAt(o));for(let l=r>0?r+1:0;l=o&&VP("invalid-input");const r=(a=e.charCodeAt(l++))>=48&&a<58?a-48+26:a>=65&&a<91?a-65:a>=97&&a<123?a-97:EP;r>=EP&&VP("invalid-input"),r>RP((xP-i)/t)&&VP("overflow"),i+=r*t;const c=n<=s?1:n>=s+26?26:n-s;if(rRP(xP/d)&&VP("overflow"),t*=d}const c=t.length+1;s=NP(i-r,c,0==r),RP(i/c)>xP-n&&VP("overflow"),n+=RP(i/c),i%=c,t.splice(i++,0,n)}var a;return String.fromCodePoint(...t)},LP=function(e){const t=[],o=(e=FP(e)).length;let i=128,n=0,s=72;for(const o of e)o<128&&t.push(OP(o));const r=t.length;let a=r;for(r&&t.push("-");a=i&&tRP((xP-n)/l)&&VP("overflow"),n+=(o-i)*l,i=o;for(const o of e)if(oxP&&VP("overflow"),o===i){let e=n;for(let o=EP;;o+=EP){const i=o<=s?1:o>=s+26?26:o-s;if(eString.fromCodePoint(...e)},decode:BP,encode:LP,toASCII:function(e){return DP(e,(function(e){return PP.test(e)?"xn--"+LP(e):e}))},toUnicode:function(e){return DP(e,(function(e){return TP.test(e)?BP(e.slice(4).toLowerCase()):e}))}},jP={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},qP=/^(vbscript|javascript|file|data):/,$P=/^data:image\/(gif|png|jpeg|webp);/;function HP(e){const t=e.trim().toLowerCase();return!qP.test(t)||$P.test(t)}const WP=["http:","https:","mailto:"];function UP(e){const t=sE(e,!0);if(t.hostname&&(!t.protocol||WP.indexOf(t.protocol)>=0))try{t.hostname=zP.toASCII(t.hostname)}catch(e){}return Wx(Ux(t))}function KP(e){const t=sE(e,!0);if(t.hostname&&(!t.protocol||WP.indexOf(t.protocol)>=0))try{t.hostname=zP.toUnicode(t.hostname)}catch(e){}return qx(Ux(t),qx.defaultChars+"%")}function GP(e,t){if(!(this instanceof GP))return new GP(e,t);t||FE(e)||(t=e||{},e="default"),this.inline=new hP,this.block=new GT,this.core=new DT,this.renderer=new uT,this.linkify=new AP,this.validateLink=HP,this.normalizeLink=UP,this.normalizeLinkText=KP,this.utils=i,this.helpers=BE({},n),this.options={},this.configure(e),t&&this.set(t)}GP.prototype.set=function(e){return BE(this.options,e),this},GP.prototype.configure=function(e){const t=this;if(FE(e)){const t=e;if(!(e=jP[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(o){e.components[o].rules&&t[o].ruler.enableOnly(e.components[o].rules),e.components[o].rules2&&t[o].ruler2.enableOnly(e.components[o].rules2)})),this},GP.prototype.enable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.enable(e,!0))}),this),o=o.concat(this.inline.ruler2.enable(e,!0));const i=e.filter((function(e){return o.indexOf(e)<0}));if(i.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+i);return this},GP.prototype.disable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.disable(e,!0))}),this),o=o.concat(this.inline.ruler2.disable(e,!0));const i=e.filter((function(e){return o.indexOf(e)<0}));if(i.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+i);return this},GP.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},GP.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const o=new this.core.State(e,this,t);return this.core.process(o),o.tokens},GP.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},GP.prototype.parseInline=function(e,t){const o=new this.core.State(e,this,t);return o.inlineMode=!0,this.core.process(o),o.tokens},GP.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const JP=GP;var ZP=o(428),QP=o.n(ZP);const YP=/^(#{1,3})(\d+|[A-Z][A-Z0-9_]*-\d+)(?!\w)/;function XP(e,t){const o=e.pos,i=e.src;if(35!==i.charCodeAt(o))return!1;if(o>0&&/[\w#]/.test(i[o-1]))return!1;const n=YP.exec(i.slice(o));if(!n)return!1;if(t)return!0;const s=n[1].length,r=n[2],a=n[0],l=1===s?`${a}`:`${a}`;return e.push("html_inline","",0).content=l,e.pos=o+n[0].length,!0}class eS{constructor(e){this._htmlDP=new Ir(e),this._domConverter=new Rn(e)}toView(e){const t=JP({html:!0,breaks:!0,langPrefix:"language-"});let o=t.use(QP(),{label:!0});o.inline.ruler.before("text","op_workpackage_ref",XP);const i=o.renderer.rules.code_block;t.renderer.rules.code_block=function(e,t,o,n,s){return e[t].content=e[t].content.replace(/\n$/,""),i(e,t,o,n,s)};const n=o.render(e),s=this._htmlDP._toDom(n);!function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;t=o.nextNode();)t.previousElementSibling&&t.previousElementSibling.classList.contains("task-list-item-checkbox")&&(t.textContent=t.textContent.replace(/^\s+/,""))}(s),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&!e.parentElement)return NodeFilter.FILTER_ACCEPT}}),i=[];for(;t=o.nextNode();)i.push(t);for(const t of i){const o=document.createElement("p");e.insertBefore(o,t),Lx(t)?o.appendChild(t):t.remove()}}(s),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&e.parentElement&&"TD"===e.parentElement.tagName&&1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName)return NodeFilter.FILTER_ACCEPT}});let o;for(;o=t.nextNode();)o.childNodes[0].remove()}(s),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&e.parentElement&&"LI"===e.parentElement.tagName)return NodeFilter.FILTER_ACCEPT}});let o,i=[];for(;o=t.nextNode();)i.push(o);for(const e of i)e.parentElement.insertBefore(document.createElement("p"),e),e.remove()}(s),s.querySelectorAll("input.task-list-item-checkbox").forEach((e=>{const t=e.closest("li.task-list-item");t&&e.parentElement!==t&&(e.parentElement&&e.parentElement.removeChild(e),t.insertBefore(e,t.firstChild))}));return this._domConverter.domToView(s)}toData(e){const t=this._domConverter.viewToDom(e,document);!function(e,t,o){t=t.map((e=>e.toUpperCase())),o=o.map((e=>e.toUpperCase()));let i,n=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;i=n.nextNode();)i.parentElement&&t.indexOf(i.parentElement.nodeName)>=0&&(i.nodeValue=i.nodeValue.replace(/^[\u00a0]+/g," ").replace(/[\u00a0]+$/g," ")),Nx(i,o)||(i.nodeValue=_.escape(i.nodeValue))}(t,["strong","em"],["pre","code","table"]),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,(function(e){return"a"===e.nodeName.toLowerCase()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));for(;t=o.nextNode();)t.setAttribute("href",t.href)}(t),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&0===e.childNodes.length&&(!e.parentElement||"LI"===e.parentElement.tagName))return NodeFilter.FILTER_ACCEPT}});for(;t=o.nextNode();)t.appendChild(document.createElement("br"))}(t);const o=new Mx({headingStyle:"atx",codeBlockStyle:"fenced",blankReplacement:function(e,t){if("CODE"===t.tagName){const e=(t.getAttribute("class")||"").replace("language-",""),o=t.textContent||"";return"```"+e+"\n"+(o.length?o:"\n")+"```\n"}return"PRE"===t.tagName?e:t.isBlock?"\n\n":""}});return o.use([ex]),o.addRule("taskListItems",{filter:function(e){const t="checkbox"===e.type,o=e.parentNode&&"LI"===e.parentNode.nodeName,i=e.parentNode&&e.parentNode.parentNode&&"LI"===e.parentNode.parentNode.nodeName;return t&&(o||i)},replacement:function(e,t){return(t.checked?"[x]":"[ ]")+" "}}),o.addRule("orderedListItems",{filter:function(e){return"LI"===e.nodeName&&!!e.closest("ol")},replacement:function(e,t,o){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n");var i=t.parentNode,n=o.bulletListMarker+" ";if("OL"===i.nodeName){var s=i.getAttribute("start"),r=Array.prototype.indexOf.call(i.children,t);n=(s?Number(s)+r:r+1)+". "}var a=n.length,l=" ".repeat(a);return n+(e=e.replace(/\n/gm,"\n"+l))+(t.nextSibling&&!/\n$/.test(e)?"\n":"")}}),o.addRule("imageFigure",{filter:"img",replacement:function(e,t){const o=t.parentElement;return o&&o.classList.contains("op-uc-figure--content")?o.parentElement.outerHTML:t.outerHTML}}),o.addRule("figcaption",{filter:"figcaption",replacement:function(e,t){return""}}),o.addRule("markdownTables",{filter:function(e){return"TABLE"===e.nodeName&&(!e.parentElement||"FIGURE"!==e.parentElement.nodeName)},replacement:function(e,t){return t.outerHTML}}),o.addRule("htmlTables",{filter:function(e){const t=e.getElementsByTagName("table");return"FIGURE"===e.nodeName&&t.length},replacement:function(e,t){return t.querySelectorAll("td br[data-cke-filler]").forEach((e=>{e.nextElementSibling&&e.removeAttribute("data-cke-filler")})),t.outerHTML}}),o.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(e){return"~~"+e+"~~"}}),o.addRule("workPackageQuickinfo",{filter:e=>"OPCE-MACRO-WP-QUICKINFO"===e.nodeName,replacement:(e,t)=>{const o=t.getAttribute("data-id")||"";if(!o)return"";return"true"===t.getAttribute("data-detailed")?`###${o}`:`##${o}`}}),o.addRule("openProjectMacros",{filter:["macro"],replacement:(e,t)=>{t.innerHTML="";return t.outerHTML.replace("","\n")}}),o.addRule("mentions",{filter:e=>"MENTION"===e.nodeName&&e.classList.contains("mention"),replacement:(e,t)=>"work_package"===t.getAttribute("data-type")?t.getAttribute("data-text")||t.textContent||"":t.outerHTML}),o.addRule("emptyParagraphs",{filter:e=>"P"===e.nodeName&&(0===e.childNodes.length||1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName),replacement:(e,t)=>t.parentElement||t.nextSibling||t.previousSibling?1===t.childNodes.length&&Lx(t.childNodes[0])?Bx+"\n\n":"
\n\n":""}),o.addRule("openProjectPageBreak",{filter:e=>"DIV"===e.nodeName&&e.classList.contains("page-break"),replacement:(e,t)=>Bx}),o.turndown(t).replace(/\u00A0/," ").replace("###turndown-ignore###\n","")}}const tS='\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n \n\n';const oS={"(":")","[":"]","{":"}"};class iS extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"mention")}execute(e){const t=this.editor.model,o=t.document.selection,i="string"==typeof e.mention?{id:e.mention}:e.mention,n=i.id,s=e.range||o.getFirstRange();if(!t.canEditAt(s))return;const r=e.text||n,a=sS({_text:r,id:n},i);if(!n.startsWith(e.marker))throw new fe("mentioncommand-incorrect-id",this);t.change((e=>{const i=ao(o.getAttributes()),n=new Map(i.entries());n.set("mention",a);const l=t.insertContent(e.createText(r,n),s),c=l.start.nodeBefore,d=l.end.nodeAfter,u=d&&d.is("$text")&&d.data.startsWith(" ");let h=!1;if(c&&d&&c.is("$text")&&d.is("$text")){const e=c.data.slice(-1),t=e in oS,o=t&&d.data.startsWith(oS[e]);h=t&&o}h||u||t.insertContent(e.createText(" ",i),s.start.getShiftedBy(r.length))}))}}class nS extends fc{static get pluginName(){return"MentionEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=t.document;t.schema.extend("$text",{allowAttributes:"mention"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",attributes:"data-mention",classes:"mention"},model:{key:"mention",value:e=>rS(e)}}),e.conversion.for("downcast").attributeToElement({model:"mention",view:lS}),e.conversion.for("downcast").add(aS),o.registerPostFixer((e=>function(e,t,o){const i=t.differ.getChanges();let n=!1;for(const t of i){if("attribute"==t.type)continue;const i=t.position;if("$text"==t.name){const t=i.textNode&&i.textNode.nextSibling;n=dS(i.textNode,e)||n,n=dS(t,e)||n,n=dS(i.nodeBefore,e)||n,n=dS(i.nodeAfter,e)||n}if("$text"!=t.name&&"insert"==t.type){const t=i.nodeAfter;for(const o of e.createRangeIn(t).getItems())n=dS(o,e)||n}if("insert"==t.type&&o.isInline(t.name)){const t=i.nodeAfter&&i.nodeAfter.nextSibling;n=dS(i.nodeBefore,e)||n,n=dS(t,e)||n}}return n}(e,o,t.schema))),o.registerPostFixer((e=>function(e,t){const o=t.differ.getChanges();let i=!1;for(const t of o)if("attribute"===t.type&&"mention"!=t.attributeKey){const o=t.range.start.nodeBefore,n=t.range.end.nodeAfter;for(const s of[o,n])cS(s)&&s.getAttribute(t.attributeKey)!=t.attributeNewValue&&(e.setAttribute(t.attributeKey,t.attributeNewValue,s),i=!0)}return i}(e,o))),o.registerPostFixer((e=>function(e,t){const o=t.selection,i=o.focus;if(o.isCollapsed&&o.hasAttribute("mention")&&function(e){const t=e.isAtStart;return e.nodeBefore&&e.nodeBefore.is("$text")||t}(i))return e.removeSelectionAttribute("mention"),!0;return!1}(e,o))),e.commands.add("mention",new iS(e))}}function sS(e,t){return Object.assign({uid:me().slice(0,8)},e,t||{})}function rS(e,t){const o=e.getAttribute("data-mention"),i=e.getChild(0);if(!i)return;const n=e.getAttribute("data-mention-uid");return sS({id:o,_text:i.data},n?{uid:n,...t}:t)}function aS(e){e.on("attribute:mention",((e,t,o)=>{const i=t.attributeNewValue;if(!t.item.is("$textProxy")||!i)return;const n=t.range.start;(n.textNode||n.nodeAfter).data!=i._text&&o.consumable.consume(t.item,e.name)}),{priority:"highest"})}function lS(e,{writer:t,options:o}){if(e)return t.createAttributeElement("span",{class:"mention","data-mention":e.id,...!o.isClipboardPipeline&&{"data-mention-uid":e.uid}},{id:e.uid,priority:20})}function cS(e){if(!e||!e.is("$text")&&!e.is("$textProxy")||!e.hasAttribute("mention"))return!1;return e.data!=e.getAttribute("mention")._text}function dS(e,t){return!!cS(e)&&(t.removeAttribute("mention",e),!0)}class uS extends zh{selected;position;constructor(e){super(e),this.extendTemplate({attributes:{class:["ck-mentions"],tabindex:"-1"}})}selectFirst(){this.select(0)}selectNext(){const e=this.selected,t=this.items.getIndex(e);this.select(t+1)}selectPrevious(){const e=this.selected,t=this.items.getIndex(e);this.select(t-1)}select(e){let t=0;e>0&&e{o?(this.domElement.classList.add("ck-on"),this.domElement.classList.remove("ck-off")):(this.domElement.classList.add("ck-off"),this.domElement.classList.remove("ck-on"))})),this.listenTo(this.domElement,"click",(()=>{this.fire("execute")}))}render(){super.render(),this.element=this.domElement}focus(){this.domElement.focus()}}class mS extends Nh{item;marker;highlight(){this.children.first.isOn=!0}removeHighlight(){this.children.first.isOn=!1}}const gS=[qt.arrowup,qt.arrowdown,qt.esc],pS=[qt.enter,qt.tab];class fS extends fc{_mentionsView;_mentionsConfigurations;_balloon;_items=new eo;_lastRequested;_requestFeedDebounced;static get pluginName(){return"MentionUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Qm]}constructor(e){super(e),this._mentionsView=this._createMentionView(),this._mentionsConfigurations=new Map,this._requestFeedDebounced=zo(this._requestFeed,100),e.config.define("mention",{feeds:[]})}init(){const e=this.editor,t=e.config.get("mention.commitKeys")||pS,o=gS.concat(t);this._balloon=e.plugins.get(Qm),e.editing.view.document.on("keydown",((e,i)=>{var n;n=i.keyCode,o.includes(n)&&this._isUIVisible&&(i.preventDefault(),e.stop(),i.keyCode==qt.arrowdown&&this._mentionsView.selectNext(),i.keyCode==qt.arrowup&&this._mentionsView.selectPrevious(),t.includes(i.keyCode)&&this._mentionsView.executeSelected(),i.keyCode==qt.esc&&this._hideUIAndRemoveMarker())}),{priority:"highest"}),Su({emitter:this._mentionsView,activator:()=>this._isUIVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUIAndRemoveMarker()});const i=e.config.get("mention.feeds");for(const e of i){const{feed:t,marker:o,dropdownLimit:i}=e;if(!kS(o))throw new fe("mentionconfig-incorrect-marker",null,{marker:o});const n={marker:o,feedCallback:"function"==typeof t?t.bind(this.editor):_S(t),itemRenderer:e.itemRenderer,dropdownLimit:i};this._mentionsConfigurations.set(o,n)}this._setupTextWatcher(i),this.listenTo(e,"change:isReadOnly",(()=>{this._hideUIAndRemoveMarker()})),this.on("requestFeed:response",((e,t)=>this._handleFeedResponse(t))),this.on("requestFeed:error",(()=>this._hideUIAndRemoveMarker()))}destroy(){super.destroy(),this._mentionsView.destroy()}get _isUIVisible(){return this._balloon.visibleView===this._mentionsView}_createMentionView(){const e=this.editor.locale,t=new uS(e);return t.items.bindTo(this._items).using((o=>{const{item:i,marker:n}=o,{dropdownLimit:s}=this._mentionsConfigurations.get(n),r=s||this.editor.config.get("mention.dropdownLimit")||10;if(t.items.length>=r)return null;const a=new mS(e),l=this._renderItem(i,n);return l.delegate("execute").to(a),a.children.add(l),a.item=i,a.marker=n,a.on("execute",(()=>{t.fire("execute",{item:i,marker:n})})),a})),t.on("execute",((e,t)=>{const o=this.editor,i=o.model,n=t.item,s=t.marker,r=o.model.markers.get("mention"),a=i.createPositionAt(i.document.selection.focus),l=i.createPositionAt(r.getStart()),c=i.createRange(l,a);this._hideUIAndRemoveMarker(),o.execute("mention",{mention:n,text:n.text,marker:s,range:c}),o.editing.view.focus()})),t}_getItemRenderer(e){const{itemRenderer:t}=this._mentionsConfigurations.get(e);return t}_requestFeed(e,t){this._lastRequested=t;const{feedCallback:o}=this._mentionsConfigurations.get(e),i=o(t);i instanceof Promise?i.then((o=>{this._lastRequested==t?this.fire("requestFeed:response",{feed:o,marker:e,feedText:t}):this.fire("requestFeed:discarded",{feed:o,marker:e,feedText:t})})).catch((t=>{this.fire("requestFeed:error",{error:t}),be("mention-feed-callback-error",{marker:e})})):this.fire("requestFeed:response",{feed:i,marker:e,feedText:t})}_setupTextWatcher(e){const t=this.editor,o=e.map((e=>({...e,pattern:yS(e.marker,e.minimumCharacters||0)}))),i=new Ig(t.model,function(e){const t=t=>{const o=wS(e,t);if(!o)return!1;let i=0;0!==o.position&&(i=o.position-1);const n=t.substring(i);return o.pattern.test(n)};return t}(o));i.on("matched",((e,i)=>{const n=wS(o,i.text),s=t.model.document.selection.focus,r=t.model.createPositionAt(s.parent,n.position);if(function(e){const t=e.textNode&&e.textNode.hasAttribute("mention"),o=e.nodeBefore;return t||o&&o.is("$text")&&o.hasAttribute("mention")}(s)||function(e){const t=e.nodeAfter;return t&&t.is("$text")&&t.hasAttribute("mention")}(r))return void this._hideUIAndRemoveMarker();const a=function(e,t){let o=0;0!==e.position&&(o=e.position-1);const i=yS(e.marker,0),n=t.substring(o);return n.match(i)[2]}(n,i.text),l=n.marker.length+a.length,c=s.getShiftedBy(-l),d=s.getShiftedBy(-a.length),u=t.model.createRange(c,d);if(vS(t)){const e=t.model.markers.get("mention");t.model.change((t=>{t.updateMarker(e,{range:u})}))}else t.model.change((e=>{e.addMarker("mention",{range:u,usingOperation:!1,affectsData:!1})}));this._requestFeedDebounced(n.marker,a)})),i.on("unmatched",(()=>{this._hideUIAndRemoveMarker()}));const n=t.commands.get("mention");return i.bind("isEnabled").to(n),i}_handleFeedResponse(e){const{feed:t,marker:o}=e;if(!vS(this.editor))return;this._items.clear();for(const e of t){const t="object"!=typeof e?{id:e,text:e}:e;this._items.add({item:t,marker:o})}const i=this.editor.model.markers.get("mention");this._items.length?this._showOrUpdateUI(i):this._hideUIAndRemoveMarker()}_showOrUpdateUI(e){this._isUIVisible?this._balloon.updatePosition(this._getBalloonPanelPositionData(e,this._mentionsView.position)):this._balloon.add({view:this._mentionsView,position:this._getBalloonPanelPositionData(e,this._mentionsView.position),singleViewMode:!0,balloonClassName:"ck-mention-balloon"}),this._mentionsView.position=this._balloon.view.position,this._mentionsView.selectFirst()}_hideUIAndRemoveMarker(){this._balloon.hasView(this._mentionsView)&&this._balloon.remove(this._mentionsView),vS(this.editor)&&this.editor.model.change((e=>e.removeMarker("mention"))),this._mentionsView.position=void 0}_renderItem(e,t){const o=this.editor;let i,n=e.id;const s=this._getItemRenderer(t);if(s){const t=s(e);"string"!=typeof t?i=new hS(o.locale,t):n=t}if(!i){const e=new Lu(o.locale);e.label=n,e.withText=!0,i=e}return i}_getBalloonPanelPositionData(e,t){const o=this.editor,i=o.editing,n=i.view.domConverter,s=i.mapper;return{target:()=>{let t=e.getRange();"$graveyard"==t.start.root.rootName&&(t=o.model.document.selection.getFirstRange());const i=s.toViewRange(t);return ut.getDomRangeRects(n.viewRangeToDom(i)).pop()},limiter:()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},positions:bS(t,o.locale.uiLanguageDirection)}}}function bS(e,t){const o={caret_se:e=>({top:e.bottom+3,left:e.right,name:"caret_se",config:{withArrow:!1}}),caret_ne:(e,t)=>({top:e.top-t.height-3,left:e.right,name:"caret_ne",config:{withArrow:!1}}),caret_sw:(e,t)=>({top:e.bottom+3,left:e.right-t.width,name:"caret_sw",config:{withArrow:!1}}),caret_nw:(e,t)=>({top:e.top-t.height-3,left:e.right-t.width,name:"caret_nw",config:{withArrow:!1}})};return Object.prototype.hasOwnProperty.call(o,e)?[o[e]]:"rtl"!==t?[o.caret_se,o.caret_sw,o.caret_ne,o.caret_nw]:[o.caret_sw,o.caret_se,o.caret_nw,o.caret_ne]}function wS(e,t){let o;for(const i of e){const e=t.lastIndexOf(i.marker);e>0&&!t.substring(e-1).match(i.pattern)||(!o||e>=o.position)&&(o={marker:i.marker,position:e,minimumCharacters:i.minimumCharacters,pattern:i.pattern})}return o}function yS(e,t){const o=0==t?"*":`{${t},}`,i=Y.features.isRegExpUnicodePropertySupported?"\\p{Ps}\\p{Pi}\"'":"\\(\\[{\"'";e=e.replace(/[.*+?^${}()\-|[\]\\]/g,"\\$&");return new RegExp(`(?:^|[ ${i}])(${e})([^#@]${o})$`,"u")}function _S(e){return t=>e.filter((e=>("string"==typeof e?e:String(e.id)).toLowerCase().includes(t.toLowerCase())))}function kS(e){return!!e}function vS(e){return e.model.markers.has("mention")}class CS extends wc{refresh(){const e=this.editor.model,t=e.schema,o=e.document.selection;this.isEnabled=function(e,t,o){const i=function(e,t){const o=cp(e,t),i=o.start.parent;if(i.isEmpty&&!i.is("element","$root"))return i.parent;return i}(e,o);return t.checkChild(i,"pageBreak")}(o,t,e)}execute(){const e=this.editor.model;e.change((t=>{const o=t.createElement("pageBreak");e.insertObject(o,null,null,{setSelection:"after"})}))}}class AS extends fc{static get pluginName(){return"PageBreakEditing"}static get licenseFeatureCode(){return"PB"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.t,i=e.conversion;t.register("pageBreak",{inheritAllFrom:"$blockObject"}),i.for("dataDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>t.createContainerElement("div",{class:"page-break",style:"page-break-after: always"},t.createContainerElement("span",{style:"display: none"}))}),i.for("editingDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>{const i=o("Page break"),n=t.createContainerElement("div"),s=t.createRawElement("span",{class:"page-break__label"},(function(e){e.innerText=o("Page break")}));return t.addClass("page-break",n),t.insert(t.createPositionAt(n,0),s),function(e,t,o){return t.setCustomProperty("pageBreak",!0,e),np(e,t,{label:o})}(n,t,i)}}),i.for("upcast").elementToElement({view:e=>{const t="always"==e.getStyle("page-break-before"),o="always"==e.getStyle("page-break-after");if(!t&&!o)return null;if(1==e.childCount){const t=e.getChild(0);if(!t.is("element","span")||"none"!=t.getStyle("display"))return null}else if(e.childCount>1)return null;return{name:!0,styles:[...t?["page-break-before"]:[],...o?["page-break-after"]:[]],...e.hasClass("page-break")&&{classes:["page-break"]}}},model:"pageBreak",converterPriority:"high"}),e.commands.add("pageBreak",new CS(e))}}class xS extends fc{static get pluginName(){return"PageBreakUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("pageBreak",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:pageBreak",(()=>this._createButton(sh)))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("pageBreak"),n=new e(t.locale),s=o.t;return n.set({label:s("Page break"),icon:''}),n.bind("isEnabled").to(i,"isEnabled"),this.listenTo(n,"execute",(()=>{t.execute("pageBreak"),t.editing.view.focus()})),n}}class ES extends fc{adapter;_debouncedSave;_lastDocumentVersion;_savePromise;_domEmitter;_config;_pendingActions;_makeImmediateSave;_action=null;static get pluginName(){return"Autosave"}static get isOfficialPlugin(){return!0}static get requires(){return[Lc]}constructor(e){super(e);const t=e.config.get("autosave")||{},o=t.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=zo(this._save.bind(this),o),this._lastDocumentVersion=e.model.document.version,this._savePromise=null,this._domEmitter=new(et()),this._config=t,this._pendingActions=e.plugins.get(Lc),this._makeImmediateSave=!1}init(){const e=this.editor,t=e.model.document;this.listenTo(e,"ready",(()=>{this.listenTo(t,"change:data",((e,t)=>{this._saveCallbacks.length&&t.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(e,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((e,t)=>{this._pendingActions.hasAny&&(t.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((e=>e(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((e=>{throw this.state="error",this.state="saving",this._debouncedSave(),e})),this._savePromise)}_setPendingAction(){const e=this.editor.t;this._action||(this._action=this._pendingActions.add(e("Saving changes")))}get _saveCallbacks(){const e=[];return this.adapter&&this.adapter.save&&e.push(this.adapter.save),this._config.save&&e.push(this._config.save),e}}var TS=o(992);function PS(e){return e.trim().split(/\s+/).length}function SS(e){const t=e.length;let o=5381;for(let i=0;i>>0}function IS(e){const t=localStorage.getItem(e);if(!t)return null;try{return JSON.parse(TS.decompress(t))}catch(e){return console.error("Failed to load CKEditor revisions from localStorage: "+e.toString()),null}}class RS extends fc{init(){const e=this.editor,t=Lp(e);e.ui.componentFactory.add("opContentRevisions",(o=>{const i=Zh(o),n=new eo;return Xh(i,n,{role:"menu",ariaLabel:t.t("js.editor.revisions")}),i.buttonView.set({label:t.t("js.editor.revisions"),icon:'\n\n\n',tooltip:!0}),this.listenTo(i.buttonView,"execute",(async()=>{n.clear(),function(e,t){const o=e.config.get(VS),i=IS(o),n=Lp(e),s=Np(e,"timezone");if(!i?.items||i.items.count<=0){const e={type:"button",model:{label:n.t("js.editor.no_revisions"),withText:!0}};return void t.add(e)}const r=e.getData(),a=SS(r);for(let e=i.items.length;e>0;){e--;const o=i.items[e],r=s.formattedRelativeDateTime(o.timestamp),l=n.t("js.units.word",{count:PS(o.content)}),c=`${o.hash===a?`${n.t("js.label_current")} - `:""}${r} (${l})`,d={type:"button",model:{timestamp:o.timestamp,label:c,withText:!0}};t.add(d)}}(e,n)})),i.on("execute",(t=>{const{timestamp:o}=t.source;o&&e.execute("opContentRevisionApply",o)})),i}))}}class OS extends wc{async execute(e){const t=this.editor,o=t.config.get(VS),i=await IS(o);if(!i)return void console.error(`Trying to load revision ${e} but no record present.`);const n=i.items.find((t=>t.timestamp===e));n&&(t.setData(n.content),setTimeout((()=>{t.editing.view.focus()})))}}const VS="opContentRevisionKey",DS="op_ckeditor_rev";const FS="opce-macro-wp-quickinfo";const MS=[Op,class extends fc{static get requires(){return[zp,vp,Wp]}static get pluginName(){return"OPMacroEmbeddedTable"}static get buttonName(){return zp.buttonName}},class extends fc{static get requires(){return[Gp,vp,Jp]}static get pluginName(){return"OPMacroWpButton"}static get buttonName(){return Gp.buttonName}},class extends fc{static get requires(){return[uw,vp,hw]}static get pluginName(){return"OPChildPages"}static get buttonName(){return uw.buttonName}}],NS=[class extends fc{static get requires(){return[Qp,Db]}static get pluginName(){return"OpUploadPlugin"}init(){this.editor.plugins.get("FileRepository").createUploadAdapter=e=>{const t=Fp(this.editor);return new Xp(e,t,this.editor)}}},class extends fc{static get pluginName(){return"OPAttachmentListener"}init(){this.editor.model.on("op:attachment-removed",((e,t)=>{this.removeDeletedImage(t)}))}removeDeletedImage(e){let t=this.editor.model.document.getRoot();for(const o of Array.from(t.getChildren()))if("image"===o.name&&e.indexOf(o.getAttribute("src"))>-1){const e=this.editor.model.createSelection(o,"on");this.editor.model.deleteContent(e)}}}],BS=[class extends fc{static get requires(){return[rh,Of,Kg,ww,Qg,Pg,zf]}static get pluginName(){return"Essentials"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Qp]}static get pluginName(){return"CKFinderUploadAdapter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(Qp).createUploadAdapter=t=>new vw(t,e,this.editor.t))}},class extends fc{static get requires(){return[Tg]}static get pluginName(){return"Autoformat"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=this.editor.t;this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats(),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Revert autoformatting action"),keystroke:"Backspace"}]})}_addListAutoformats(){const e=this.editor.commands;e.get("bulletedList")&&Cw(this.editor,this,/^[*-]\s$/,"bulletedList"),e.get("numberedList")&&Cw(this.editor,this,/^1[.|)]\s$/,"numberedList"),e.get("todoList")&&Cw(this.editor,this,/^\[\s?\]\s$/,"todoList"),e.get("checkTodoList")&&Cw(this.editor,this,/^\[\s?x\s?\]\s$/,(()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")}))}_addBasicStylesAutoformats(){const e=this.editor.commands;if(e.get("bold")){const e=Ew(this.editor,"bold");Aw(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,e),Aw(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,e)}if(e.get("italic")){const e=Ew(this.editor,"italic");Aw(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,e),Aw(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,e)}if(e.get("code")){const e=Ew(this.editor,"code");Aw(this.editor,this,/(`)([^`]+)(`)$/g,e)}if(e.get("strikethrough")){const e=Ew(this.editor,"strikethrough");Aw(this.editor,this,/(~~)([^~]+)(~~)$/g,e)}}_addHeadingAutoformats(){const e=this.editor.commands.get("heading");e&&e.modelElements.filter((e=>e.match(/^heading[1-6]$/))).forEach((t=>{const o=t[7],i=new RegExp(`^(#{${o}})\\s$`);Cw(this.editor,this,i,(()=>{if(!e.isEnabled||e.value===t)return!1;this.editor.execute("heading",{value:t})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&Cw(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const e=this.editor,t=e.model.document.selection;e.commands.get("codeBlock")&&Cw(e,this,/^```$/,(()=>{if(t.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&Cw(this.editor,this,/^---$/,"horizontalLine")}},ES,class extends fc{static get requires(){return[Sw,Ow]}static get pluginName(){return"Bold"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Dw,Mw]}static get pluginName(){return"Code"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Bw,zw]}static get pluginName(){return"Italic"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[qw,Hw]}static get pluginName(){return"Strikethrough"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Jw,Zw]}static get pluginName(){return"BlockQuote"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[ny,ry]}static get pluginName(){return"Heading"}static get isOfficialPlugin(){return!0}},gb,fb,class extends fc{static get requires(){return[yb,_b]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[iw,nw]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Mb,$b,Gb,Bb]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Ap,Gf]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(Ap),i=e.plugins.get("ImageUtils");o.register("image",{ariaLabel:t("Image toolbar"),items:lw(e.config.get("image.toolbar")||[]),getRelatedElement:e=>i.getClosestSelectedImageWidget(e)})}},class extends fc{static get pluginName(){return"OpImageAttachmentLookup"}init(){const e=this.editor,t=e.conversion,o=Fp(e);t.for("editingDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,i){let n=o.attributeNewValue;if(!n||!e.lookupDownloadLocationByName)return;const s=e.lookupDownloadLocationByName(n);o.attributeNewValue=s||n}}(o)),t.for("dataDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,i){let n=o.attributeNewValue;if(!n||!e.lookupDownloadLocationByName)return;const s=e.lookupDownloadLocationByName(n);o.attributeNewValue=s||n;const r=i.writer,a=i.mapper.toViewElement(o.item);let l;l="imageInline"===o.item.name?a:a.getChild(0),s&&r.setAttribute("data-original-src",n,l)}}(o));const i=e.plugins.get("ImageUtils");i.decorate("setImageNaturalSizeAttributes"),i.on("setImageNaturalSizeAttributes",((e,[t])=>{console.log("model image element:",{element:t}),e.stop()}),{priority:"highest"})}},class extends fc{static get requires(){return[Ty,Dy,Ny]}static get pluginName(){return"Link"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[z_,H_]}static get pluginName(){return"List"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Y_,ik]}static get pluginName(){return"TodoList"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[AS,xS,vp]}static get pluginName(){return"PageBreak"}static get isOfficialPlugin(){return!0}},ey,Pg,class extends fc{toMentionAttribute(e,t){return rS(e,t)}static get pluginName(){return"Mention"}static get isOfficialPlugin(){return!0}static get requires(){return[nS,fS]}},function(e){const t=Mp(e),o=e.editing.view,i=o.document;o.addObserver(ol),e.listenTo(i,"click",((e,t)=>{if("A"===t.domTarget.nodeName&&t.domTarget.classList.contains("mention")){const e=document.createElement("a");e.target="_blank",e.href=t.domTarget.attributes.href.value,e.click()}})),e.conversion.for("upcast").elementToAttribute({view:{name:"mention",key:"data-mention",classes:"mention"},model:{key:"mention",value:o=>{const i=o.getAttribute("data-id"),n=o.getAttribute("data-type"),s=o.getAttribute("data-text"),r=function(e,o){const i=t.services.apiV3Service[`${o}s`].segment,n=window.OpenProject.urlRoot;return`${n}/${i}/${e}`}(i,n);return e.plugins.get("Mention").toMentionAttribute(o,{displayId:i,link:r,text:s,type:n})}},converterPriority:"high"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",key:"data-mention",classes:"mention"},model:{key:"mention",value:e=>{const t=[...e.getChildren()][0],o=t&&t.data;if(o){const e=`[Invalid mention: ${o}]`;t._data=e}}},converterPriority:"high"}),e.conversion.for("editingDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("a",{class:"mention",href:e.link,"data-mention":e.text,title:e.text})}}),e.conversion.for("dataDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("mention",{class:"mention","data-id":e.displayId,"data-type":e.type,"data-text":e.text})}})},class extends fc{static get pluginName(){return"PasteFromOffice"}static get licenseFeatureCode(){return"PFO"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[bf]}init(){const e=this.editor,t=e.plugins.get("ClipboardPipeline"),o=e.editing.view.document,i=[],n=this.editor.plugins.has("MultiLevelListEditing"),s=this.editor.plugins.has("TablePropertiesEditing");i.push(new qA(o,n,s)),i.push(new GA(o)),i.push(new ZA(o)),t.on("inputTransformation",((t,n)=>{if(n._isTransformedWithPasteFromOffice)return;if(e.model.document.selection.getFirstPosition().parent.is("element","codeBlock"))return;const s=n.dataTransfer.getData("text/html"),r=i.find((e=>e.isActive(s)));r&&(n._parsedData||(n._parsedData=YA(s,o.stylesProcessor)),r.execute(n),n._isTransformedWithPasteFromOffice=!0)}),{priority:"high"})}},class extends fc{static get pluginName(){return"OPHelpLinkPlugin"}init(){const e=this.editor,t=e.config.get("openProject.helpURL");e.ui.componentFactory.add("openProjectShowFormattingHelp",(e=>{const o=new Lu(e);return o.set({label:window.I18n.t("js.inplace.link_formatting_help"),icon:'',tooltip:!0}),o.on("execute",(()=>{window.open(t,"_blank")})),o}))}},class extends fc{static get pluginName(){return"OPPreview"}init(){const e=this.editor;let t=!1,o=null;e.ui.componentFactory.add("preview",(i=>{const n=new Lu(i);n.set({label:this.label,icon:'\n',tooltip:!0});let s=function(t){const i=e.ui.getEditableElement(),s=i?.parentElement;if(!s?.parentElement)return void console.error("Cannot show preview: invalid editor structure");const r=document.createElement("div");r.className="ck-editor__preview op-uc-container";Array.from(s.parentElement.children).filter((e=>e!==s&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove()));const a=Np(e,"ckEditorPreview");o=a.render(r,t),s.style.display="none",s.parentElement.insertBefore(r,s.nextSibling),gk(e,n)},r=function(){let o=function(e){return _.get(e.config,"_config.openProject.context.previewContext")}(e);(async function(e,t){return new yk("post",e,t).perform()})(Bp(e).api.v3.previewMarkup(o),{contentType:"text/plain; charset=UTF-8",responseKind:"html",body:e.getData()}).then((e=>e.html)).then(s).catch((o=>{console.error("Error fetching preview:",o),t=!1,pk(e)}))};return n.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot disable preview: invalid editor structure");o&&o(),Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove())),i.style.display="",pk(e)}()):(t=!0,r())})),n}))}get label(){return window.I18n.t("js.editor.preview")}},class extends fc{static get pluginName(){return"OPSourceCode"}init(){const e=this.editor;let t=!1,o={source:window.I18n.t("js.editor.mode.manual"),wysiwyg:window.I18n.t("js.editor.mode.wysiwyg")};e.ui.componentFactory.add("opShowSource",(i=>{const n=new Lu(i);n.set({label:o.source,class:"",icon:tS,tooltip:!0});return n.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot hide source: invalid editor structure");e.fire("op:source-code-disabled"),Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),i.style.display="",pk(e),n.set({label:o.source,class:"",icon:tS,tooltip:!0})}()):(t=!0,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot show source: invalid editor structure");const s=document.createElement("div");s.className="ck-editor__source",Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),i.style.display="none",i.parentElement.insertBefore(s,i.nextSibling),gk(e,n),e.fire("op:source-code-enabled"),n.set({label:o.wysiwyg,class:"-source-enabled",icon:'\n\n \n \n \n image/svg+xml\n \n \n \n \n \n \n \n \n\n',tooltip:!0})}())})),n}))}},class extends fc{static get requires(){return[ES,RS]}static get pluginName(){return"OpContentRevisions"}constructor(e){super(e);const t=this.getStorageKey(e);e.config.define(VS,t)}init(){const e=this.editor;e.commands.add("opContentRevisionApply",new OS(e)),e.once("ready",(()=>{const t=Date.now();e.plugins.get("Autosave")._domEmitter.stopListening(window,"beforeunload"),Object.keys(localStorage).forEach((e=>{if(e.startsWith(DS)){const o=IS(e);o?.updatedAt&&t-o.updatedAt>=288e5&&localStorage.removeItem(e)}}))}))}getStorageKey(e){const t=e.config.get("storageKey");return t||this.createLocalStorageKey(e)}createLocalStorageKey(e){const t=Fp(e),o=function(e){return _.get(e.config,"_config.openProject.context.field")}(e);let i="";return i=t?.href?t.href:location.pathname,o&&(i+=`_${o}`),`${DS}_${i}`}},class extends fc{static get requires(){return[vp]}static get pluginName(){return"OPMacroWpQuickinfo"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-wp-quickinfo",{allowWhere:"$text",isInline:!0,isObject:!0,allowAttributes:["wpId","detailed"]}),o.for("upcast").elementToElement({view:{name:FS},model:(e,{writer:t})=>{const o=e.getAttribute("data-id")||"",i="true"===e.getAttribute("data-detailed");return t.createElement("op-macro-wp-quickinfo",{wpId:o,detailed:i})},converterPriority:"high"}),o.for("editingDowncast").elementToElement({model:"op-macro-wp-quickinfo",view:(e,{writer:t})=>{const o=e.getAttribute("wpId")||"",i=!!e.getAttribute("detailed"),n=t.createContainerElement("span",{class:"op-macro-wp-quickinfo-widget"}),s=t.createRawElement(FS,{"data-id":o,"data-detailed":String(i)},(()=>{}));return t.insert(t.createPositionAt(n,0),s),np(n,t,{label:`#${o}`})}}),o.for("dataDowncast").elementToElement({model:"op-macro-wp-quickinfo",view:(e,{writer:t})=>{const o=e.getAttribute("wpId")||"",i=!!e.getAttribute("detailed"),n=t.createContainerElement(FS,{"data-id":o,"data-detailed":String(i)}),s=(i?"###":"##")+o;return t.insert(t.createPositionAt(n,0),t.createText(s)),n}})}afterInit(){const e=this.editor,t=e.commands.get("mention");t&&t.on("execute",((t,o)=>{const i=o&&o[0];if(!i||!i.mention)return;if("work_package"!==i.mention.type)return;const n=i.marker;if("##"!==n&&"###"!==n)return;t.stop();const s="###"===n,r=String(i.mention.displayId);e.model.change((t=>{const o=i.range||e.model.document.selection.getFirstRange();o&&t.remove(o);const n=t.createElement("op-macro-wp-quickinfo",{wpId:r,detailed:s});e.model.insertContent(n,e.model.document.selection),t.setSelection(t.createPositionAfter(n))}))}),{priority:"high"})}},class extends fc{static get pluginName(){return"CodeBlock"}static get requires(){return[uk,hk]}},function(e){e.data.processor=new eS(e.editing.view.document)},mC,class extends fc{static get requires(){return[Ap]}static get pluginName(){return"TableToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(Ap),i=e.config.get("table.contentToolbar"),n=e.config.get("table.tableToolbar");i&&o.register("tableContent",{ariaLabel:t("Table toolbar"),items:i,getRelatedElement:fC}),n&&o.register("table",{ariaLabel:t("Table toolbar"),items:n,getRelatedElement:pC})}},class extends fc{static get pluginName(){return"TableProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[hA,yA]}},class extends fc{static get pluginName(){return"TableCellProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[iA,zC]}},class extends fc{init(){const e=this.editor,t=(e.config.get("removePlugins")||[]).map((e=>e.pluginName)),o=window.I18n.t("js.editor.macro.dropdown.chose_macro");!0!==e.config.get("openProject.disableAllMacros")&&e.ui.componentFactory.add("macroList",(i=>{const n=[];for(const o of MS){if(-1!==t.indexOf(o.pluginName))continue;const i=e.ui.componentFactory.create(o.buttonName);n.push(i)}const s=Zh(i);return Qh(s,n,{isVertical:!0,class:"op-macro-list-button"}),s.buttonView.set({isOn:!1,withText:!0,tooltip:o,label:window.I18n.t("js.editor.macro.dropdown.macros")}),s}))}},class extends fc{get config(){const e="op-uc-";return{preFix:e,editorClasses:[`${e}container`,`${e}container_editing`],elementsWithCustomClassesMap:{paragraph:`${e}p`,heading1:`${e}h1`,heading2:`${e}h2`,heading3:`${e}h3`,heading4:`${e}h4`,heading5:`${e}h5`,heading6:`${e}h6`,blockQuote:`${e}blockquote`,figure:`${e}figure`,table:`${e}table`,thead:`${e}table--head`,tr:`${e}table--row`,td:`${e}table--cell`,th:[`${e}table--cell`,`${e}table--cell_head`],tableCell:`${e}table--cell`,tableRow:`${e}table--row`,ol:`${e}list`,ul:`${e}list`,list:`${e}list`,todo:`${e}list ${e}list_task-list`,listItem:`${e}list--item`,li:`${e}list--item`,imageInline:`${e}image ${e}image_inline`,imageBlock:`${e}image`,img:`${e}image`,codeblock:`${e}code-block`,caption:`${e}figure--description`,"op-macro-embedded-table":[`${e}placeholder`,`${e}embedded-table`],"op-macro-wp-button":[`${e}placeholder`,`${e}wp-button`],"op-macro-child-pages":[`${e}placeholder`,`${e}child-pages`],"op-macro-toc":[`${e}placeholder`,`${e}toc`],content:`${e}figure--content`},attributesWithCustomClassesMap:{code:`${e}code`,linkHref:`${e}link`,alignment:`${e}figure_align-`,tableAlignment:`${e}figure_align-`,todo:`${e}list_task-list`,numbered:`${e}list`,bulleted:`${e}list`,listType:null,headingColumns:null,width:null,uploadStatus:null},alignmentValuesMap:{left:"start",right:"end",blockLeft:"start",blockRight:"end",center:"center",default:"center"}}}init(){this._addCustomCSSClassesToTheEditorContainer(this.editor),this._addCustomCSSClassesToElements(this.config),this._addCustomCSSClassesToAttributes(this.config)}_addCustomCSSClassesToTheEditorContainer(e){e.sourceElement.classList.add(...this.config.editorClasses)}_addCustomCSSClassesToElements(e){this.editor.model.schema.extend("table",{allowAttributes:["figureClasses"]}),this.editor.conversion.for("upcast").add((t=>t.on("element:table",this._manageTableUpcast(e))),{priority:"high"}),this.editor.conversion.for("downcast").add((t=>t.on("insert",this._manageElementsInsertion(e),{priority:"low"})))}_addCustomCSSClassesToAttributes(e){this.editor.conversion.for("downcast").add((t=>t.on("attribute",this._manageAttributesInsertion(e),{priority:"low"})))}_manageTableUpcast(e){return(t,o,i)=>{const n=i.writer,s=o.viewItem,r=o.modelRange,a=r&&r.start.nodeAfter;if(!a)return;let l=a.getAttribute("figureClasses")||[],c=s.parent.getClassNames&&s.parent.getClassNames();const d=c?[...c].filter((e=>!!e)):[];l=[...l,...d];const u=d.filter((t=>t.startsWith(e.attributesWithCustomClassesMap.alignment)))[0],h=u&&u.replace(e.attributesWithCustomClassesMap.alignment,"")||e.alignmentValuesMap.default,m=Object.keys(e.alignmentValuesMap).find((t=>e.alignmentValuesMap[t]===h))||"center";if(!u){const t=`${e.attributesWithCustomClassesMap.alignment}${h}`;l=[...l,t]}n.setAttribute("figureClasses",l,a),"center"===m?n.setAttribute("alignment",null,a):n.setAttribute("alignment",m,a)}}_manageElementsInsertion(e){return(t,o,i)=>{const n=Object.keys(e.elementsWithCustomClassesMap),s=i.writer,r=o.item.name,a=o.item,l=i.mapper.toViewElement(a);let c=[l];const d=["imageBlock","table","tableCell","tableRow","listItem"].includes(r);if(n.includes(r)&&l){if(d)if("listItem"===r)c=this._manageListItems(s,a,l,c,e);else{const t=l,o=Array.from(s.createRangeIn(l).getItems());if("imageBlock"===r){const i=o.find((e=>e.is("element","img")));this._wrapInFigureContentContainer(i,t,e,s),c=[...c,i]}else if("table"===r||"tableRow"===r){const i=o.filter((e=>n.includes(e.name)));if(c=[...c,...i],"table"===r){if(!a.getAttribute("tableAlignment")){const o=`${e.attributesWithCustomClassesMap.alignment}${e.alignmentValuesMap.default}`;s.addClass(o,t)}}}}c.forEach((t=>{const o=d?t.name:r,i=e.elementsWithCustomClassesMap[o];s.addClass(i,t)}))}}}_manageAttributesInsertion(e){return(t,o,i)=>{const n=Object.keys(e.attributesWithCustomClassesMap),s=o.attributeKey,r=i.writer,a=o.item,l=i.mapper.toViewElement(a);if(n.includes(s))if("linkHref"===s||"code"===s){const t="linkHref"===s?"a":s,n="linkHref"===s?5:10,l=r.document.selection,c=r.createAttributeElement(t,{class:e.attributesWithCustomClassesMap[s]},{priority:n});a.is("selection")?r.wrap(l.getFirstRange(),c):r.wrap(i.mapper.toViewRange(o.range),c)}else if("tableAlignment"===s){const t=l,i=e.alignmentValuesMap[o.attributeNewValue]||e.alignmentValuesMap.default;Array.from(new Set(Object.values(e.alignmentValuesMap))).map((t=>`${e.attributesWithCustomClassesMap[s]}${t}`)).filter((e=>t.hasClass(e))).forEach((e=>r.removeClass(e,t))),t.hasStyle("float")&&r.removeStyle("float",t),r.addClass(`${e.attributesWithCustomClassesMap[s]}${i}`,t)}else if("listType"===s){this._manageListItems(r,a,l,[l],e).forEach((t=>{const o=t.name,i=e.elementsWithCustomClassesMap[o];r.addClass(i,t)}))}else if("headingColumns"===s){const t=o.attributeNewValue,i=Array.from(r.createRangeIn(l).getItems()).filter((t=>Object.keys(e.elementsWithCustomClassesMap).includes(t.name)));t?i.forEach((t=>{const o=t.name,i=e.elementsWithCustomClassesMap[o];r.addClass(i,t)})):i.filter((t=>t.hasClass(e.elementsWithCustomClassesMap.th[1]))).forEach((t=>{const o=t.nextSibling;o&&"th"!==o.name&&r.removeClass(e.elementsWithCustomClassesMap.th[1],t)}))}else if("width"===s)l.hasClass("image_resized")&&r.removeClass("image_resized",l);else if("uploadStatus"===s&&"complete"===o.attributeNewValue){let e=Array.from(r.createRangeIn(l).getItems()).find((e=>e.hasClass("ck-upload-placeholder-loader")));e&&r.remove(r.createRangeOn(e))}}}_manageListItems(e,t,o,i,n){const s=o.findAncestor("li"),r=o.findAncestor(/^(ul|ol)$/);if(!r)return i;const a=t.getAttribute("listType"),l=n.attributesWithCustomClassesMap[a];if("todo"===a)e.addClass(l,r);else{const t=n.attributesWithCustomClassesMap.todo;r.hasClass(t)&&e.removeClass(t,r)}return[...i,r,s]}_wrapInFigureContentContainer(e,t,o,i){const n=i.createContainerElement("div",{class:o.elementsWithCustomClassesMap.content});i.insert(i.createPositionAt(n,0),e),i.insert(i.createPositionAt(t,0),n)}}].concat(MS,NS);function LS(e){return function(t){const o=window.OpenProject.urlRoot+"/work_packages/auto_complete.json";let i=window.OpenProject.urlRoot+"/work_packages/";return this.config.get("disabledMentions").includes("work_package")?[]:new Promise(((n,s)=>{_k(o,{responseKind:"json",query:{q:t,scope:"all"}}).then((e=>e.json)).then((t=>{n(t.map((t=>{const o=t.displayId||t.id,n=`${e}${o}`;return{id:n,displayId:o,type:"work_package",text:n,name:t.to_s,link:i+o}})))})).catch((e=>{console.error("Error fetching work package mentions:",e),s(e)}))}))}}function zS(e){const t=document.createElement("span");return"user"!==e.type&&"work_package"!==e.type||(t.setAttribute("data-hover-card-trigger-target","trigger"),t.setAttribute("data-hover-card-url",`${e.link}/hover_card`)),t.classList.add("mention-list-item"),t.textContent=e.name,t}const jS=JSON.parse('[{"id":":grinning_face:","symbol":"😀","group":"people","keywords":["face","grin","grinning face"]},{"id":":beaming_face_with_smiling_eyes:","symbol":"😁","group":"people","keywords":["beaming face with smiling eyes","eye","face","grin","smile"]},{"id":":face_with_tears_of_joy:","symbol":"😂","group":"people","keywords":["face","face with tears of joy","joy","laugh","tear"]},{"id":":rolling_on_the_floor_laughing:","symbol":"🤣","group":"people","keywords":["face","floor","laugh","rolling","rolling on the floor laughing"]},{"id":":grinning_face_with_big_eyes:","symbol":"😃","group":"people","keywords":["face","grinning face with big eyes","mouth","open","smile"]},{"id":":grinning_face_with_smiling_eyes:","symbol":"😄","group":"people","keywords":["eye","face","grinning face with smiling eyes","mouth","open","smile"]},{"id":":grinning_face_with_sweat:","symbol":"😅","group":"people","keywords":["cold","face","grinning face with sweat","open","smile","sweat"]},{"id":":grinning_squinting_face:","symbol":"😆","group":"people","keywords":["face","grinning squinting face","laugh","mouth","satisfied","smile"]},{"id":":winking_face:","symbol":"😉","group":"people","keywords":["face","wink","winking face"]},{"id":":smiling_face_with_smiling_eyes:","symbol":"😊","group":"people","keywords":["blush","eye","face","smile","smiling face with smiling eyes"]},{"id":":face_savoring_food:","symbol":"😋","group":"people","keywords":["delicious","face","face savoring food","savouring","smile","yum"]},{"id":":smiling_face_with_sunglasses:","symbol":"😎","group":"people","keywords":["bright","cool","face","smiling face with sunglasses","sun","sunglasses"]},{"id":":smiling_face_with_heart-eyes:","symbol":"😍","group":"people","keywords":["eye","face","love","smile","smiling face with heart-eyes"]},{"id":":face_blowing_a_kiss:","symbol":"😘","group":"people","keywords":["face","face blowing a kiss","kiss"]},{"id":":kissing_face:","symbol":"😗","group":"people","keywords":["face","kiss","kissing face"]},{"id":":kissing_face_with_smiling_eyes:","symbol":"😙","group":"people","keywords":["eye","face","kiss","kissing face with smiling eyes","smile"]},{"id":":kissing_face_with_closed_eyes:","symbol":"😚","group":"people","keywords":["closed","eye","face","kiss","kissing face with closed eyes"]},{"id":":smiling_face:","symbol":"☺","group":"people","keywords":["face","outlined","relaxed","smile","smiling face"]},{"id":":slightly_smiling_face:","symbol":"🙂","group":"people","keywords":["face","slightly smiling face","smile"]},{"id":":hugging_face:","symbol":"🤗","group":"people","keywords":["face","hug","hugging"]},{"id":":star-struck:","symbol":"🤩","group":"people","keywords":["eyes","face","grinning","star","star-struck",""]},{"id":":thinking_face:","symbol":"🤔","group":"people","keywords":["face","thinking"]},{"id":":face_with_raised_eyebrow:","symbol":"🤨","group":"people","keywords":["distrust","face with raised eyebrow","skeptic",""]},{"id":":neutral_face:","symbol":"😐","group":"people","keywords":["deadpan","face","neutral"]},{"id":":expressionless_face:","symbol":"😑","group":"people","keywords":["expressionless","face","inexpressive","unexpressive"]},{"id":":face_without_mouth:","symbol":"😶","group":"people","keywords":["face","face without mouth","mouth","quiet","silent"]},{"id":":face_with_rolling_eyes:","symbol":"🙄","group":"people","keywords":["eyes","face","face with rolling eyes","rolling"]},{"id":":smirking_face:","symbol":"😏","group":"people","keywords":["face","smirk","smirking face"]},{"id":":persevering_face:","symbol":"😣","group":"people","keywords":["face","persevere","persevering face"]},{"id":":sad_but_relieved_face:","symbol":"😥","group":"people","keywords":["disappointed","face","relieved","sad but relieved face","whew"]},{"id":":face_with_open_mouth:","symbol":"😮","group":"people","keywords":["face","face with open mouth","mouth","open","sympathy"]},{"id":":zipper-mouth_face:","symbol":"🤐","group":"people","keywords":["face","mouth","zipper","zipper-mouth face"]},{"id":":hushed_face:","symbol":"😯","group":"people","keywords":["face","hushed","stunned","surprised"]},{"id":":sleepy_face:","symbol":"😪","group":"people","keywords":["face","sleep","sleepy face"]},{"id":":tired_face:","symbol":"😫","group":"people","keywords":["face","tired"]},{"id":":sleeping_face:","symbol":"😴","group":"people","keywords":["face","sleep","sleeping face","zzz"]},{"id":":relieved_face:","symbol":"😌","group":"people","keywords":["face","relieved"]},{"id":":face_with_tongue:","symbol":"😛","group":"people","keywords":["face","face with tongue","tongue"]},{"id":":winking_face_with_tongue:","symbol":"😜","group":"people","keywords":["eye","face","joke","tongue","wink","winking face with tongue"]},{"id":":squinting_face_with_tongue:","symbol":"😝","group":"people","keywords":["eye","face","horrible","squinting face with tongue","taste","tongue"]},{"id":":drooling_face:","symbol":"🤤","group":"people","keywords":["drooling","face"]},{"id":":unamused_face:","symbol":"😒","group":"people","keywords":["face","unamused","unhappy"]},{"id":":downcast_face_with_sweat:","symbol":"😓","group":"people","keywords":["cold","downcast face with sweat","face","sweat"]},{"id":":pensive_face:","symbol":"😔","group":"people","keywords":["dejected","face","pensive"]},{"id":":confused_face:","symbol":"😕","group":"people","keywords":["confused","face"]},{"id":":upside-down_face:","symbol":"🙃","group":"people","keywords":["face","upside-down"]},{"id":":money-mouth_face:","symbol":"🤑","group":"people","keywords":["face","money","money-mouth face","mouth"]},{"id":":astonished_face:","symbol":"😲","group":"people","keywords":["astonished","face","shocked","totally"]},{"id":":frowning_face:","symbol":"☹","group":"people","keywords":["face","frown","frowning face"]},{"id":":slightly_frowning_face:","symbol":"🙁","group":"people","keywords":["face","frown","slightly frowning face"]},{"id":":confounded_face:","symbol":"😖","group":"people","keywords":["confounded","face"]},{"id":":disappointed_face:","symbol":"😞","group":"people","keywords":["disappointed","face"]},{"id":":worried_face:","symbol":"😟","group":"people","keywords":["face","worried"]},{"id":":face_with_steam_from_nose:","symbol":"😤","group":"people","keywords":["face","face with steam from nose","triumph","won"]},{"id":":crying_face:","symbol":"😢","group":"people","keywords":["cry","crying face","face","sad","tear"]},{"id":":loudly_crying_face:","symbol":"😭","group":"people","keywords":["cry","face","loudly crying face","sad","sob","tear"]},{"id":":frowning_face_with_open_mouth:","symbol":"😦","group":"people","keywords":["face","frown","frowning face with open mouth","mouth","open"]},{"id":":anguished_face:","symbol":"😧","group":"people","keywords":["anguished","face"]},{"id":":fearful_face:","symbol":"😨","group":"people","keywords":["face","fear","fearful","scared"]},{"id":":weary_face:","symbol":"😩","group":"people","keywords":["face","tired","weary"]},{"id":":exploding_head:","symbol":"🤯","group":"people","keywords":["exploding head","shocked"]},{"id":":grimacing_face:","symbol":"😬","group":"people","keywords":["face","grimace","grimacing face"]},{"id":":anxious_face_with_sweat:","symbol":"😰","group":"people","keywords":["anxious face with sweat","blue","cold","face","rushed","sweat"]},{"id":":face_screaming_in_fear:","symbol":"😱","group":"people","keywords":["face","face screaming in fear","fear","munch","scared","scream"]},{"id":":flushed_face:","symbol":"😳","group":"people","keywords":["dazed","face","flushed"]},{"id":":zany_face:","symbol":"🤪","group":"people","keywords":["eye","goofy","large","small","zany face"]},{"id":":dizzy_face:","symbol":"😵","group":"people","keywords":["dizzy","face"]},{"id":":pouting_face:","symbol":"😡","group":"people","keywords":["angry","face","mad","pouting","rage","red"]},{"id":":angry_face:","symbol":"😠","group":"people","keywords":["angry","face","mad"]},{"id":":face_with_symbols_on_mouth:","symbol":"🤬","group":"people","keywords":["face with symbols on mouth","swearing",""]},{"id":":face_with_medical_mask:","symbol":"😷","group":"people","keywords":["cold","doctor","face","face with medical mask","mask","sick"]},{"id":":face_with_thermometer:","symbol":"🤒","group":"people","keywords":["face","face with thermometer","ill","sick","thermometer"]},{"id":":face_with_head-bandage:","symbol":"🤕","group":"people","keywords":["bandage","face","face with head-bandage","hurt","injury"]},{"id":":nauseated_face:","symbol":"🤢","group":"people","keywords":["face","nauseated","vomit"]},{"id":":face_vomiting:","symbol":"🤮","group":"people","keywords":["face vomiting","sick","vomit"]},{"id":":sneezing_face:","symbol":"🤧","group":"people","keywords":["face","gesundheit","sneeze","sneezing face"]},{"id":":smiling_face_with_halo:","symbol":"😇","group":"people","keywords":["angel","face","fantasy","halo","innocent","smiling face with halo"]},{"id":":cowboy_hat_face:","symbol":"🤠","group":"people","keywords":["cowboy","cowgirl","face","hat"]},{"id":":lying_face:","symbol":"🤥","group":"people","keywords":["face","lie","lying face","pinocchio"]},{"id":":shushing_face:","symbol":"🤫","group":"people","keywords":["quiet","shush","shushing face"]},{"id":":face_with_hand_over_mouth:","symbol":"🤭","group":"people","keywords":["face with hand over mouth","whoops",""]},{"id":":face_with_monocle:","symbol":"🧐","group":"people","keywords":["face with monocle","stuffy",""]},{"id":":nerd_face:","symbol":"🤓","group":"people","keywords":["face","geek","nerd"]},{"id":":smiling_face_with_horns:","symbol":"😈","group":"people","keywords":["face","fairy tale","fantasy","horns","smile","smiling face with horns"]},{"id":":angry_face_with_horns:","symbol":"👿","group":"people","keywords":["angry face with horns","demon","devil","face","fantasy","imp"]},{"id":":clown_face:","symbol":"🤡","group":"people","keywords":["clown","face"]},{"id":":ogre:","symbol":"👹","group":"people","keywords":["creature","face","fairy tale","fantasy","monster","ogre",""]},{"id":":goblin:","symbol":"👺","group":"people","keywords":["creature","face","fairy tale","fantasy","goblin","monster"]},{"id":":skull:","symbol":"💀","group":"people","keywords":["death","face","fairy tale","monster","skull"]},{"id":":skull_and_crossbones:","symbol":"☠","group":"people","keywords":["crossbones","death","face","monster","skull","skull and crossbones"]},{"id":":ghost:","symbol":"👻","group":"people","keywords":["creature","face","fairy tale","fantasy","ghost","monster"]},{"id":":alien:","symbol":"👽","group":"people","keywords":["alien","creature","extraterrestrial","face","fantasy","ufo"]},{"id":":alien_monster:","symbol":"👾","group":"people","keywords":["alien","creature","extraterrestrial","face","monster","ufo"]},{"id":":robot_face:","symbol":"🤖","group":"people","keywords":["face","monster","robot"]},{"id":":pile_of_poo:","symbol":"💩","group":"people","keywords":["dung","face","monster","pile of poo","poo","poop"]},{"id":":grinning_cat_face:","symbol":"😺","group":"people","keywords":["cat","face","grinning cat face","mouth","open","smile"]},{"id":":grinning_cat_face_with_smiling_eyes:","symbol":"😸","group":"people","keywords":["cat","eye","face","grin","grinning cat face with smiling eyes","smile"]},{"id":":cat_face_with_tears_of_joy:","symbol":"😹","group":"people","keywords":["cat","cat face with tears of joy","face","joy","tear"]},{"id":":smiling_cat_face_with_heart-eyes:","symbol":"😻","group":"people","keywords":["cat","eye","face","love","smile","smiling cat face with heart-eyes"]},{"id":":cat_face_with_wry_smile:","symbol":"😼","group":"people","keywords":["cat","cat face with wry smile","face","ironic","smile","wry"]},{"id":":kissing_cat_face:","symbol":"😽","group":"people","keywords":["cat","eye","face","kiss","kissing cat face"]},{"id":":weary_cat_face:","symbol":"🙀","group":"people","keywords":["cat","face","oh","surprised","weary"]},{"id":":crying_cat_face:","symbol":"😿","group":"people","keywords":["cat","cry","crying cat face","face","sad","tear"]},{"id":":pouting_cat_face:","symbol":"😾","group":"people","keywords":["cat","face","pouting"]},{"id":":see-no-evil_monkey:","symbol":"🙈","group":"people","keywords":["evil","face","forbidden","monkey","see","see-no-evil monkey"]},{"id":":hear-no-evil_monkey:","symbol":"🙉","group":"people","keywords":["evil","face","forbidden","hear","hear-no-evil monkey","monkey"]},{"id":":speak-no-evil_monkey:","symbol":"🙊","group":"people","keywords":["evil","face","forbidden","monkey","speak","speak-no-evil monkey"]},{"id":":baby:","symbol":"👶","group":"people","keywords":["baby","young"]},{"id":":child:","symbol":"🧒","group":"people","keywords":["child","gender-neutral","unspecified gender","young"]},{"id":":boy:","symbol":"👦","group":"people","keywords":["boy","young"]},{"id":":girl:","symbol":"👧","group":"people","keywords":["girl","Virgo","young","zodiac"]},{"id":":person:","symbol":"🧑","group":"people","keywords":["adult","gender-neutral","person","unspecified gender"]},{"id":":person_blond_hair:","symbol":"👱","group":"people","keywords":["blond","blond-haired person","person: blond hair"]},{"id":":man:","symbol":"👨","group":"people","keywords":["adult","man"]},{"id":":man_blond_hair:","symbol":"👱‍♂️","group":"people","keywords":["blond","blond-haired man","man","man: blond hair"]},{"id":":man_beard:","symbol":"🧔","group":"people","keywords":["beard","man: beard","person",""]},{"id":":woman:","symbol":"👩","group":"people","keywords":["adult","woman"]},{"id":":woman_blond_hair:","symbol":"👱‍♀️","group":"people","keywords":["blond-haired woman","blonde","woman","woman: blond hair"]},{"id":":older_person:","symbol":"🧓","group":"people","keywords":["adult","gender-neutral","old","older person","unspecified gender"]},{"id":":old_man:","symbol":"👴","group":"people","keywords":["adult","man","old"]},{"id":":old_woman:","symbol":"👵","group":"people","keywords":["adult","old","woman"]},{"id":":man_health_worker:","symbol":"👨‍⚕️","group":"people","keywords":["doctor","healthcare","man","man health worker","nurse","therapist"]},{"id":":woman_health_worker:","symbol":"👩‍⚕️","group":"people","keywords":["doctor","healthcare","nurse","therapist","woman","woman health worker"]},{"id":":man_student:","symbol":"👨‍🎓","group":"people","keywords":["graduate","man","student"]},{"id":":woman_student:","symbol":"👩‍🎓","group":"people","keywords":["graduate","student","woman"]},{"id":":man_teacher:","symbol":"👨‍🏫","group":"people","keywords":["instructor","man","professor","teacher"]},{"id":":woman_teacher:","symbol":"👩‍🏫","group":"people","keywords":["instructor","professor","teacher","woman"]},{"id":":man_judge:","symbol":"👨‍⚖️","group":"people","keywords":["justice","man","man judge","scales"]},{"id":":woman_judge:","symbol":"👩‍⚖️","group":"people","keywords":["judge","scales","woman"]},{"id":":man_farmer:","symbol":"👨‍🌾","group":"people","keywords":["farmer","gardener","man","rancher"]},{"id":":woman_farmer:","symbol":"👩‍🌾","group":"people","keywords":["farmer","gardener","rancher","woman"]},{"id":":man_cook:","symbol":"👨‍🍳","group":"people","keywords":["chef","cook","man"]},{"id":":woman_cook:","symbol":"👩‍🍳","group":"people","keywords":["chef","cook","woman"]},{"id":":man_mechanic:","symbol":"👨‍🔧","group":"people","keywords":["electrician","man","mechanic","plumber","tradesperson"]},{"id":":woman_mechanic:","symbol":"👩‍🔧","group":"people","keywords":["electrician","mechanic","plumber","tradesperson","woman"]},{"id":":man_factory_worker:","symbol":"👨‍🏭","group":"people","keywords":["assembly","factory","industrial","man","worker"]},{"id":":woman_factory_worker:","symbol":"👩‍🏭","group":"people","keywords":["assembly","factory","industrial","woman","worker"]},{"id":":man_office_worker:","symbol":"👨‍💼","group":"people","keywords":["architect","business","man","man office worker","manager","white-collar"]},{"id":":woman_office_worker:","symbol":"👩‍💼","group":"people","keywords":["architect","business","manager","white-collar","woman","woman office worker"]},{"id":":man_scientist:","symbol":"👨‍🔬","group":"people","keywords":["biologist","chemist","engineer","man","physicist","scientist"]},{"id":":woman_scientist:","symbol":"👩‍🔬","group":"people","keywords":["biologist","chemist","engineer","physicist","scientist","woman"]},{"id":":man_technologist:","symbol":"👨‍💻","group":"people","keywords":["coder","developer","inventor","man","software","technologist"]},{"id":":woman_technologist:","symbol":"👩‍💻","group":"people","keywords":["coder","developer","inventor","software","technologist","woman"]},{"id":":man_singer:","symbol":"👨‍🎤","group":"people","keywords":["actor","entertainer","man","rock","singer","star"]},{"id":":woman_singer:","symbol":"👩‍🎤","group":"people","keywords":["actor","entertainer","rock","singer","star","woman"]},{"id":":man_artist:","symbol":"👨‍🎨","group":"people","keywords":["artist","man","palette"]},{"id":":woman_artist:","symbol":"👩‍🎨","group":"people","keywords":["artist","palette","woman"]},{"id":":man_pilot:","symbol":"👨‍✈️","group":"people","keywords":["man","pilot","plane"]},{"id":":woman_pilot:","symbol":"👩‍✈️","group":"people","keywords":["pilot","plane","woman"]},{"id":":man_astronaut:","symbol":"👨‍🚀","group":"people","keywords":["astronaut","man","rocket"]},{"id":":woman_astronaut:","symbol":"👩‍🚀","group":"people","keywords":["astronaut","rocket","woman"]},{"id":":man_firefighter:","symbol":"👨‍🚒","group":"people","keywords":["firefighter","firetruck","man"]},{"id":":woman_firefighter:","symbol":"👩‍🚒","group":"people","keywords":["firefighter","firetruck","woman"]},{"id":":police_officer:","symbol":"👮","group":"people","keywords":["cop","officer","police"]},{"id":":man_police_officer:","symbol":"👮‍♂️","group":"people","keywords":["cop","man","officer","police"]},{"id":":woman_police_officer:","symbol":"👮‍♀️","group":"people","keywords":["cop","officer","police","woman"]},{"id":":detective:","symbol":"🕵","group":"people","keywords":["detective","sleuth","spy"]},{"id":":man_detective:","symbol":"🕵️‍♂️","group":"people","keywords":["detective","man","sleuth","spy"]},{"id":":woman_detective:","symbol":"🕵️‍♀️","group":"people","keywords":["detective","sleuth","spy","woman"]},{"id":":guard:","symbol":"💂","group":"people","keywords":["guard"]},{"id":":man_guard:","symbol":"💂‍♂️","group":"people","keywords":["guard","man"]},{"id":":woman_guard:","symbol":"💂‍♀️","group":"people","keywords":["guard","woman"]},{"id":":construction_worker:","symbol":"👷","group":"people","keywords":["construction","hat","worker"]},{"id":":man_construction_worker:","symbol":"👷‍♂️","group":"people","keywords":["construction","man","worker"]},{"id":":woman_construction_worker:","symbol":"👷‍♀️","group":"people","keywords":["construction","woman","worker"]},{"id":":prince:","symbol":"🤴","group":"people","keywords":["prince"]},{"id":":princess:","symbol":"👸","group":"people","keywords":["fairy tale","fantasy","princess"]},{"id":":person_wearing_turban:","symbol":"👳","group":"people","keywords":["person wearing turban","turban"]},{"id":":man_wearing_turban:","symbol":"👳‍♂️","group":"people","keywords":["man","man wearing turban","turban"]},{"id":":woman_wearing_turban:","symbol":"👳‍♀️","group":"people","keywords":["turban","woman","woman wearing turban"]},{"id":":man_with_chinese_cap:","symbol":"👲","group":"people","keywords":["gua pi mao","hat","man","man with Chinese cap"]},{"id":":woman_with_headscarf:","symbol":"🧕","group":"people","keywords":["headscarf","hijab","mantilla","tichel","woman with headscarf",""]},{"id":":man_in_tuxedo:","symbol":"🤵","group":"people","keywords":["groom","man","man in tuxedo","tuxedo"]},{"id":":bride_with_veil:","symbol":"👰","group":"people","keywords":["bride","bride with veil","veil","wedding"]},{"id":":pregnant_woman:","symbol":"🤰","group":"people","keywords":["pregnant","woman"]},{"id":":breast-feeding:","symbol":"🤱","group":"people","keywords":["baby","breast","breast-feeding","nursing"]},{"id":":baby_angel:","symbol":"👼","group":"people","keywords":["angel","baby","face","fairy tale","fantasy"]},{"id":":santa_claus:","symbol":"🎅","group":"people","keywords":["celebration","Christmas","claus","father","santa","Santa Claus"]},{"id":":mrs._claus:","symbol":"🤶","group":"people","keywords":["celebration","Christmas","claus","mother","Mrs.","Mrs. Claus"]},{"id":":mage:","symbol":"🧙","group":"people","keywords":["mage","sorcerer","sorceress","witch","wizard"]},{"id":":man_mage:","symbol":"🧙‍♂️","group":"people","keywords":["man mage","sorcerer","wizard"]},{"id":":woman_mage:","symbol":"🧙‍♀️","group":"people","keywords":["sorceress","witch","woman mage"]},{"id":":fairy:","symbol":"🧚","group":"people","keywords":["fairy","Oberon","Puck","Titania"]},{"id":":man_fairy:","symbol":"🧚‍♂️","group":"people","keywords":["man fairy","Oberon","Puck"]},{"id":":woman_fairy:","symbol":"🧚‍♀️","group":"people","keywords":["Titania","woman fairy"]},{"id":":vampire:","symbol":"🧛","group":"people","keywords":["Dracula","undead","vampire"]},{"id":":man_vampire:","symbol":"🧛‍♂️","group":"people","keywords":["Dracula","man vampire","undead"]},{"id":":woman_vampire:","symbol":"🧛‍♀️","group":"people","keywords":["undead","woman vampire"]},{"id":":merperson:","symbol":"🧜","group":"people","keywords":["mermaid","merman","merperson","merwoman"]},{"id":":merman:","symbol":"🧜‍♂️","group":"people","keywords":["merman","Triton"]},{"id":":mermaid:","symbol":"🧜‍♀️","group":"people","keywords":["mermaid","merwoman"]},{"id":":elf:","symbol":"🧝","group":"people","keywords":["elf","magical",""]},{"id":":man_elf:","symbol":"🧝‍♂️","group":"people","keywords":["magical","man elf"]},{"id":":woman_elf:","symbol":"🧝‍♀️","group":"people","keywords":["magical","woman elf"]},{"id":":genie:","symbol":"🧞","group":"people","keywords":["djinn","genie",""]},{"id":":man_genie:","symbol":"🧞‍♂️","group":"people","keywords":["djinn","man genie"]},{"id":":woman_genie:","symbol":"🧞‍♀️","group":"people","keywords":["djinn","woman genie"]},{"id":":zombie:","symbol":"🧟","group":"people","keywords":["undead","walking dead","zombie",""]},{"id":":man_zombie:","symbol":"🧟‍♂️","group":"people","keywords":["man zombie","undead","walking dead"]},{"id":":woman_zombie:","symbol":"🧟‍♀️","group":"people","keywords":["undead","walking dead","woman zombie"]},{"id":":person_frowning:","symbol":"🙍","group":"people","keywords":["frown","gesture","person frowning"]},{"id":":man_frowning:","symbol":"🙍‍♂️","group":"people","keywords":["frowning","gesture","man"]},{"id":":woman_frowning:","symbol":"🙍‍♀️","group":"people","keywords":["frowning","gesture","woman"]},{"id":":person_pouting:","symbol":"🙎","group":"people","keywords":["gesture","person pouting","pouting"]},{"id":":man_pouting:","symbol":"🙎‍♂️","group":"people","keywords":["gesture","man","pouting"]},{"id":":woman_pouting:","symbol":"🙎‍♀️","group":"people","keywords":["gesture","pouting","woman"]},{"id":":person_gesturing_no:","symbol":"🙅","group":"people","keywords":["forbidden","gesture","hand","person gesturing NO","prohibited"]},{"id":":man_gesturing_no:","symbol":"🙅‍♂️","group":"people","keywords":["forbidden","gesture","hand","man","man gesturing NO","prohibited"]},{"id":":woman_gesturing_no:","symbol":"🙅‍♀️","group":"people","keywords":["forbidden","gesture","hand","prohibited","woman","woman gesturing NO"]},{"id":":person_gesturing_ok:","symbol":"🙆","group":"people","keywords":["gesture","hand","OK","person gesturing OK"]},{"id":":man_gesturing_ok:","symbol":"🙆‍♂️","group":"people","keywords":["gesture","hand","man","man gesturing OK","OK"]},{"id":":woman_gesturing_ok:","symbol":"🙆‍♀️","group":"people","keywords":["gesture","hand","OK","woman","woman gesturing OK"]},{"id":":person_tipping_hand:","symbol":"💁","group":"people","keywords":["hand","help","information","person tipping hand","sassy","tipping"]},{"id":":man_tipping_hand:","symbol":"💁‍♂️","group":"people","keywords":["man","man tipping hand","sassy","tipping hand"]},{"id":":woman_tipping_hand:","symbol":"💁‍♀️","group":"people","keywords":["sassy","tipping hand","woman","woman tipping hand"]},{"id":":person_raising_hand:","symbol":"🙋","group":"people","keywords":["gesture","hand","happy","person raising hand","raised"]},{"id":":man_raising_hand:","symbol":"🙋‍♂️","group":"people","keywords":["gesture","man","man raising hand","raising hand"]},{"id":":woman_raising_hand:","symbol":"🙋‍♀️","group":"people","keywords":["gesture","raising hand","woman","woman raising hand"]},{"id":":person_bowing:","symbol":"🙇","group":"people","keywords":["apology","bow","gesture","person bowing","sorry"]},{"id":":man_bowing:","symbol":"🙇‍♂️","group":"people","keywords":["apology","bowing","favor","gesture","man","sorry"]},{"id":":woman_bowing:","symbol":"🙇‍♀️","group":"people","keywords":["apology","bowing","favor","gesture","sorry","woman"]},{"id":":person_facepalming:","symbol":"🤦","group":"people","keywords":["disbelief","exasperation","face","palm","person facepalming"]},{"id":":man_facepalming:","symbol":"🤦‍♂️","group":"people","keywords":["disbelief","exasperation","facepalm","man","man facepalming"]},{"id":":woman_facepalming:","symbol":"🤦‍♀️","group":"people","keywords":["disbelief","exasperation","facepalm","woman","woman facepalming"]},{"id":":person_shrugging:","symbol":"🤷","group":"people","keywords":["doubt","ignorance","indifference","person shrugging","shrug"]},{"id":":man_shrugging:","symbol":"🤷‍♂️","group":"people","keywords":["doubt","ignorance","indifference","man","man shrugging","shrug"]},{"id":":woman_shrugging:","symbol":"🤷‍♀️","group":"people","keywords":["doubt","ignorance","indifference","shrug","woman","woman shrugging"]},{"id":":person_getting_massage:","symbol":"💆","group":"people","keywords":["face","massage","person getting massage","salon"]},{"id":":man_getting_massage:","symbol":"💆‍♂️","group":"people","keywords":["face","man","man getting massage","massage"]},{"id":":woman_getting_massage:","symbol":"💆‍♀️","group":"people","keywords":["face","massage","woman","woman getting massage"]},{"id":":person_getting_haircut:","symbol":"💇","group":"people","keywords":["barber","beauty","haircut","parlor","person getting haircut"]},{"id":":man_getting_haircut:","symbol":"💇‍♂️","group":"people","keywords":["haircut","man","man getting haircut"]},{"id":":woman_getting_haircut:","symbol":"💇‍♀️","group":"people","keywords":["haircut","woman","woman getting haircut"]},{"id":":person_walking:","symbol":"🚶","group":"people","keywords":["hike","person walking","walk","walking"]},{"id":":man_walking:","symbol":"🚶‍♂️","group":"people","keywords":["hike","man","man walking","walk"]},{"id":":woman_walking:","symbol":"🚶‍♀️","group":"people","keywords":["hike","walk","woman","woman walking"]},{"id":":person_running:","symbol":"🏃","group":"people","keywords":["marathon","person running","running"]},{"id":":man_running:","symbol":"🏃‍♂️","group":"people","keywords":["man","marathon","racing","running"]},{"id":":woman_running:","symbol":"🏃‍♀️","group":"people","keywords":["marathon","racing","running","woman"]},{"id":":woman_dancing:","symbol":"💃","group":"people","keywords":["dancing","woman"]},{"id":":man_dancing:","symbol":"🕺","group":"people","keywords":["dance","man","man dancing"]},{"id":":people_with_bunny_ears:","symbol":"👯","group":"people","keywords":["bunny ear","dancer","partying","people with bunny ears"]},{"id":":men_with_bunny_ears:","symbol":"👯‍♂️","group":"people","keywords":["bunny ear","dancer","men","men with bunny ears","partying"]},{"id":":women_with_bunny_ears:","symbol":"👯‍♀️","group":"people","keywords":["bunny ear","dancer","partying","women","women with bunny ears"]},{"id":":person_in_steamy_room:","symbol":"🧖","group":"people","keywords":["person in steamy room","sauna","steam room",""]},{"id":":man_in_steamy_room:","symbol":"🧖‍♂️","group":"people","keywords":["man in steamy room","sauna","steam room"]},{"id":":woman_in_steamy_room:","symbol":"🧖‍♀️","group":"people","keywords":["sauna","steam room","woman in steamy room"]},{"id":":person_climbing:","symbol":"🧗","group":"people","keywords":["climber","person climbing"]},{"id":":man_climbing:","symbol":"🧗‍♂️","group":"people","keywords":["climber","man climbing"]},{"id":":woman_climbing:","symbol":"🧗‍♀️","group":"people","keywords":["climber","woman climbing"]},{"id":":person_in_lotus_position:","symbol":"🧘","group":"people","keywords":["meditation","person in lotus position","yoga",""]},{"id":":man_in_lotus_position:","symbol":"🧘‍♂️","group":"people","keywords":["man in lotus position","meditation","yoga"]},{"id":":woman_in_lotus_position:","symbol":"🧘‍♀️","group":"people","keywords":["meditation","woman in lotus position","yoga"]},{"id":":person_taking_bath:","symbol":"🛀","group":"people","keywords":["bath","bathtub","person taking bath"]},{"id":":person_in_bed:","symbol":"🛌","group":"people","keywords":["hotel","person in bed","sleep"]},{"id":":man_in_suit_levitating:","symbol":"🕴","group":"people","keywords":["business","man","man in suit levitating","suit"]},{"id":":speaking_head:","symbol":"🗣","group":"people","keywords":["face","head","silhouette","speak","speaking"]},{"id":":bust_in_silhouette:","symbol":"👤","group":"people","keywords":["bust","bust in silhouette","silhouette"]},{"id":":busts_in_silhouette:","symbol":"👥","group":"people","keywords":["bust","busts in silhouette","silhouette"]},{"id":":person_fencing:","symbol":"🤺","group":"people","keywords":["fencer","fencing","person fencing","sword"]},{"id":":horse_racing:","symbol":"🏇","group":"people","keywords":["horse","jockey","racehorse","racing"]},{"id":":skier:","symbol":"⛷","group":"people","keywords":["ski","skier","snow"]},{"id":":snowboarder:","symbol":"🏂","group":"people","keywords":["ski","snow","snowboard","snowboarder"]},{"id":":person_golfing:","symbol":"🏌","group":"people","keywords":["ball","golf","person golfing"]},{"id":":man_golfing:","symbol":"🏌️‍♂️","group":"people","keywords":["golf","man","man golfing"]},{"id":":woman_golfing:","symbol":"🏌️‍♀️","group":"people","keywords":["golf","woman","woman golfing"]},{"id":":person_surfing:","symbol":"🏄","group":"people","keywords":["person surfing","surfing"]},{"id":":man_surfing:","symbol":"🏄‍♂️","group":"people","keywords":["man","surfing"]},{"id":":woman_surfing:","symbol":"🏄‍♀️","group":"people","keywords":["surfing","woman"]},{"id":":person_rowing_boat:","symbol":"🚣","group":"people","keywords":["boat","person rowing boat","rowboat"]},{"id":":man_rowing_boat:","symbol":"🚣‍♂️","group":"people","keywords":["boat","man","man rowing boat","rowboat"]},{"id":":woman_rowing_boat:","symbol":"🚣‍♀️","group":"people","keywords":["boat","rowboat","woman","woman rowing boat"]},{"id":":person_swimming:","symbol":"🏊","group":"people","keywords":["person swimming","swim"]},{"id":":man_swimming:","symbol":"🏊‍♂️","group":"people","keywords":["man","man swimming","swim"]},{"id":":woman_swimming:","symbol":"🏊‍♀️","group":"people","keywords":["swim","woman","woman swimming"]},{"id":":person_bouncing_ball:","symbol":"⛹","group":"people","keywords":["ball","person bouncing ball"]},{"id":":man_bouncing_ball:","symbol":"⛹️‍♂️","group":"people","keywords":["ball","man","man bouncing ball"]},{"id":":woman_bouncing_ball:","symbol":"⛹️‍♀️","group":"people","keywords":["ball","woman","woman bouncing ball"]},{"id":":person_lifting_weights:","symbol":"🏋","group":"people","keywords":["lifter","person lifting weights","weight"]},{"id":":man_lifting_weights:","symbol":"🏋️‍♂️","group":"people","keywords":["man","man lifting weights","weight lifter"]},{"id":":woman_lifting_weights:","symbol":"🏋️‍♀️","group":"people","keywords":["weight lifter","woman","woman lifting weights"]},{"id":":person_biking:","symbol":"🚴","group":"people","keywords":["bicycle","biking","cyclist","person biking"]},{"id":":man_biking:","symbol":"🚴‍♂️","group":"people","keywords":["bicycle","biking","cyclist","man"]},{"id":":woman_biking:","symbol":"🚴‍♀️","group":"people","keywords":["bicycle","biking","cyclist","woman"]},{"id":":person_mountain_biking:","symbol":"🚵","group":"people","keywords":["bicycle","bicyclist","bike","cyclist","mountain","person mountain biking"]},{"id":":man_mountain_biking:","symbol":"🚵‍♂️","group":"people","keywords":["bicycle","bike","cyclist","man","man mountain biking","mountain"]},{"id":":woman_mountain_biking:","symbol":"🚵‍♀️","group":"people","keywords":["bicycle","bike","biking","cyclist","mountain","woman"]},{"id":":racing_car:","symbol":"🏎","group":"people","keywords":["car","racing"]},{"id":":motorcycle:","symbol":"🏍","group":"people","keywords":["motorcycle","racing"]},{"id":":person_cartwheeling:","symbol":"🤸","group":"people","keywords":["cartwheel","gymnastics","person cartwheeling"]},{"id":":man_cartwheeling:","symbol":"🤸‍♂️","group":"people","keywords":["cartwheel","gymnastics","man","man cartwheeling"]},{"id":":woman_cartwheeling:","symbol":"🤸‍♀️","group":"people","keywords":["cartwheel","gymnastics","woman","woman cartwheeling"]},{"id":":people_wrestling:","symbol":"🤼","group":"people","keywords":["people wrestling","wrestle","wrestler"]},{"id":":men_wrestling:","symbol":"🤼‍♂️","group":"people","keywords":["men","men wrestling","wrestle"]},{"id":":women_wrestling:","symbol":"🤼‍♀️","group":"people","keywords":["women","women wrestling","wrestle"]},{"id":":person_playing_water_polo:","symbol":"🤽","group":"people","keywords":["person playing water polo","polo","water"]},{"id":":man_playing_water_polo:","symbol":"🤽‍♂️","group":"people","keywords":["man","man playing water polo","water polo"]},{"id":":woman_playing_water_polo:","symbol":"🤽‍♀️","group":"people","keywords":["water polo","woman","woman playing water polo"]},{"id":":person_playing_handball:","symbol":"🤾","group":"people","keywords":["ball","handball","person playing handball"]},{"id":":man_playing_handball:","symbol":"🤾‍♂️","group":"people","keywords":["handball","man","man playing handball"]},{"id":":woman_playing_handball:","symbol":"🤾‍♀️","group":"people","keywords":["handball","woman","woman playing handball"]},{"id":":person_juggling:","symbol":"🤹","group":"people","keywords":["balance","juggle","multitask","person juggling","skill"]},{"id":":man_juggling:","symbol":"🤹‍♂️","group":"people","keywords":["juggling","man","multitask"]},{"id":":woman_juggling:","symbol":"🤹‍♀️","group":"people","keywords":["juggling","multitask","woman"]},{"id":":man_and_woman_holding_hands:","symbol":"👫","group":"people","keywords":["couple","hand","hold","man","man and woman holding hands","woman"]},{"id":":two_men_holding_hands:","symbol":"👬","group":"people","keywords":["couple","Gemini","man","twins","two men holding hands","zodiac"]},{"id":":two_women_holding_hands:","symbol":"👭","group":"people","keywords":["couple","hand","two women holding hands","woman"]},{"id":":kiss:","symbol":"💏","group":"people","keywords":["couple","kiss"]},{"id":":kiss_woman_man:","symbol":"👩‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man","woman"]},{"id":":kiss_man_man:","symbol":"👨‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man"]},{"id":":kiss_woman_woman:","symbol":"👩‍❤️‍💋‍👩","group":"people","keywords":["couple","kiss","woman"]},{"id":":couple_with_heart:","symbol":"💑","group":"people","keywords":["couple","couple with heart","love"]},{"id":":couple_with_heart_woman_man:","symbol":"👩‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man","woman"]},{"id":":couple_with_heart_man_man:","symbol":"👨‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man"]},{"id":":couple_with_heart_woman_woman:","symbol":"👩‍❤️‍👩","group":"people","keywords":["couple","couple with heart","love","woman"]},{"id":":family:","symbol":"👪","group":"people","keywords":["family"]},{"id":":family_man_woman_boy:","symbol":"👨‍👩‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl:","symbol":"👨‍👩‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_woman_girl_boy:","symbol":"👨‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","man","woman"]},{"id":":family_man_woman_boy_boy:","symbol":"👨‍👩‍👦‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl_girl:","symbol":"👨‍👩‍👧‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_man_boy:","symbol":"👨‍👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl:","symbol":"👨‍👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_man_girl_boy:","symbol":"👨‍👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_man_boy_boy:","symbol":"👨‍👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl_girl:","symbol":"👨‍👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_woman_boy:","symbol":"👩‍👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl:","symbol":"👩‍👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_woman_girl_boy:","symbol":"👩‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_woman_boy_boy:","symbol":"👩‍👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl_girl:","symbol":"👩‍👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_man_boy:","symbol":"👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_boy_boy:","symbol":"👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_girl:","symbol":"👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_girl_boy:","symbol":"👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_girl_girl:","symbol":"👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_boy:","symbol":"👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_boy_boy:","symbol":"👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_girl:","symbol":"👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_girl_boy:","symbol":"👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_girl_girl:","symbol":"👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":selfie:","symbol":"🤳","group":"people","keywords":["camera","phone","selfie"]},{"id":":flexed_biceps:","symbol":"💪","group":"people","keywords":["biceps","comic","flex","flexed biceps","muscle"]},{"id":":backhand_index_pointing_left:","symbol":"👈","group":"people","keywords":["backhand","backhand index pointing left","finger","hand","index","point"]},{"id":":backhand_index_pointing_right:","symbol":"👉","group":"people","keywords":["backhand","backhand index pointing right","finger","hand","index","point"]},{"id":":index_pointing_up:","symbol":"☝","group":"people","keywords":["finger","hand","index","index pointing up","point","up"]},{"id":":backhand_index_pointing_up:","symbol":"👆","group":"people","keywords":["backhand","backhand index pointing up","finger","hand","point","up"]},{"id":":middle_finger:","symbol":"🖕","group":"people","keywords":["finger","hand","middle finger"]},{"id":":backhand_index_pointing_down:","symbol":"👇","group":"people","keywords":["backhand","backhand index pointing down","down","finger","hand","point"]},{"id":":victory_hand:","symbol":"✌","group":"people","keywords":["hand","v","victory"]},{"id":":crossed_fingers:","symbol":"🤞","group":"people","keywords":["cross","crossed fingers","finger","hand","luck"]},{"id":":vulcan_salute:","symbol":"🖖","group":"people","keywords":["finger","hand","spock","vulcan","vulcan salute"]},{"id":":sign_of_the_horns:","symbol":"🤘","group":"people","keywords":["finger","hand","horns","rock-on","sign of the horns"]},{"id":":call_me_hand:","symbol":"🤙","group":"people","keywords":["call","call me hand","hand"]},{"id":":hand_with_fingers_splayed:","symbol":"🖐","group":"people","keywords":["finger","hand","hand with fingers splayed","splayed"]},{"id":":raised_hand:","symbol":"✋","group":"people","keywords":["hand","raised hand"]},{"id":":ok_hand:","symbol":"👌","group":"people","keywords":["hand","OK"]},{"id":":thumbs_up:","symbol":"👍","group":"people","keywords":["+1","hand","thumb","thumbs up","up"]},{"id":":thumbs_down:","symbol":"👎","group":"people","keywords":["-1","down","hand","thumb","thumbs down"]},{"id":":raised_fist:","symbol":"✊","group":"people","keywords":["clenched","fist","hand","punch","raised fist"]},{"id":":oncoming_fist:","symbol":"👊","group":"people","keywords":["clenched","fist","hand","oncoming fist","punch"]},{"id":":left-facing_fist:","symbol":"🤛","group":"people","keywords":["fist","left-facing fist","leftwards"]},{"id":":right-facing_fist:","symbol":"🤜","group":"people","keywords":["fist","right-facing fist","rightwards"]},{"id":":raised_back_of_hand:","symbol":"🤚","group":"people","keywords":["backhand","raised","raised back of hand"]},{"id":":waving_hand:","symbol":"👋","group":"people","keywords":["hand","wave","waving"]},{"id":":love-you_gesture:","symbol":"🤟","group":"people","keywords":["hand","ILY","love-you gesture"]},{"id":":writing_hand:","symbol":"✍","group":"people","keywords":["hand","write","writing hand"]},{"id":":clapping_hands:","symbol":"👏","group":"people","keywords":["clap","clapping hands","hand"]},{"id":":open_hands:","symbol":"👐","group":"people","keywords":["hand","open","open hands"]},{"id":":raising_hands:","symbol":"🙌","group":"people","keywords":["celebration","gesture","hand","hooray","raised","raising hands"]},{"id":":palms_up_together:","symbol":"🤲","group":"people","keywords":["palms up together","prayer",""]},{"id":":folded_hands:","symbol":"🙏","group":"people","keywords":["ask","folded hands","hand","please","pray","thanks"]},{"id":":handshake:","symbol":"🤝","group":"people","keywords":["agreement","hand","handshake","meeting","shake"]},{"id":":nail_polish:","symbol":"💅","group":"people","keywords":["care","cosmetics","manicure","nail","polish"]},{"id":":ear:","symbol":"👂","group":"people","keywords":["body","ear"]},{"id":":nose:","symbol":"👃","group":"people","keywords":["body","nose"]},{"id":":footprints:","symbol":"👣","group":"people","keywords":["clothing","footprint","footprints","print"]},{"id":":eyes:","symbol":"👀","group":"people","keywords":["eye","eyes","face"]},{"id":":eye:","symbol":"👁","group":"people","keywords":["body","eye"]},{"id":":eye_in_speech_bubble:","symbol":"👁️‍🗨️","group":"people","keywords":["eye","eye in speech bubble","speech bubble","witness"]},{"id":":brain:","symbol":"🧠","group":"people","keywords":["brain","intelligent"]},{"id":":tongue:","symbol":"👅","group":"people","keywords":["body","tongue"]},{"id":":mouth:","symbol":"👄","group":"people","keywords":["lips","mouth"]},{"id":":kiss_mark:","symbol":"💋","group":"people","keywords":["kiss","kiss mark","lips"]},{"id":":heart_with_arrow:","symbol":"💘","group":"people","keywords":["arrow","cupid","heart with arrow"]},{"id":":heart_with_ribbon:","symbol":"💝","group":"people","keywords":["heart with ribbon","ribbon","valentine"]},{"id":":sparkling_heart:","symbol":"💖","group":"people","keywords":["excited","sparkle","sparkling heart"]},{"id":":growing_heart:","symbol":"💗","group":"people","keywords":["excited","growing","growing heart","nervous","pulse"]},{"id":":beating_heart:","symbol":"💓","group":"people","keywords":["beating","beating heart","heartbeat","pulsating"]},{"id":":revolving_hearts:","symbol":"💞","group":"people","keywords":["revolving","revolving hearts"]},{"id":":two_hearts:","symbol":"💕","group":"people","keywords":["love","two hearts"]},{"id":":love_letter:","symbol":"💌","group":"people","keywords":["heart","letter","love","mail"]},{"id":":heavy_heart_exclamation:","symbol":"❣","group":"people","keywords":["exclamation","heavy heart exclamation","mark","punctuation"]},{"id":":broken_heart:","symbol":"💔","group":"people","keywords":["break","broken","broken heart"]},{"id":":red_heart:","symbol":"❤","group":"people","keywords":["heart","red heart"]},{"id":":orange_heart:","symbol":"🧡","group":"people","keywords":["orange","orange heart"]},{"id":":yellow_heart:","symbol":"💛","group":"people","keywords":["yellow","yellow heart"]},{"id":":green_heart:","symbol":"💚","group":"people","keywords":["green","green heart"]},{"id":":blue_heart:","symbol":"💙","group":"people","keywords":["blue","blue heart"]},{"id":":purple_heart:","symbol":"💜","group":"people","keywords":["purple","purple heart"]},{"id":":black_heart:","symbol":"🖤","group":"people","keywords":["black","black heart","evil","wicked"]},{"id":":heart_decoration:","symbol":"💟","group":"people","keywords":["heart","heart decoration"]},{"id":":zzz:","symbol":"💤","group":"people","keywords":["comic","sleep","zzz"]},{"id":":anger_symbol:","symbol":"💢","group":"people","keywords":["anger symbol","angry","comic","mad"]},{"id":":bomb:","symbol":"💣","group":"people","keywords":["bomb","comic"]},{"id":":collision:","symbol":"💥","group":"people","keywords":["boom","collision","comic"]},{"id":":sweat_droplets:","symbol":"💦","group":"people","keywords":["comic","splashing","sweat","sweat droplets"]},{"id":":dashing_away:","symbol":"💨","group":"people","keywords":["comic","dash","dashing away","running"]},{"id":":dizzy:","symbol":"💫","group":"people","keywords":["comic","dizzy","star"]},{"id":":speech_balloon:","symbol":"💬","group":"people","keywords":["balloon","bubble","comic","dialog","speech"]},{"id":":left_speech_bubble:","symbol":"🗨","group":"people","keywords":["dialog","left speech bubble","speech"]},{"id":":right_anger_bubble:","symbol":"🗯","group":"people","keywords":["angry","balloon","bubble","mad","right anger bubble"]},{"id":":thought_balloon:","symbol":"💭","group":"people","keywords":["balloon","bubble","comic","thought"]},{"id":":hole:","symbol":"🕳","group":"people","keywords":["hole"]},{"id":":glasses:","symbol":"👓","group":"people","keywords":["clothing","eye","eyeglasses","eyewear","glasses"]},{"id":":sunglasses:","symbol":"🕶","group":"people","keywords":["dark","eye","eyewear","glasses","sunglasses"]},{"id":":necktie:","symbol":"👔","group":"people","keywords":["clothing","necktie","tie"]},{"id":":t-shirt:","symbol":"👕","group":"people","keywords":["clothing","shirt","t-shirt","tshirt"]},{"id":":jeans:","symbol":"👖","group":"people","keywords":["clothing","jeans","pants","trousers"]},{"id":":scarf:","symbol":"🧣","group":"people","keywords":["neck","scarf"]},{"id":":gloves:","symbol":"🧤","group":"people","keywords":["gloves","hand"]},{"id":":coat:","symbol":"🧥","group":"people","keywords":["coat","jacket"]},{"id":":socks:","symbol":"🧦","group":"people","keywords":["socks","stocking"]},{"id":":dress:","symbol":"👗","group":"people","keywords":["clothing","dress"]},{"id":":kimono:","symbol":"👘","group":"people","keywords":["clothing","kimono"]},{"id":":bikini:","symbol":"👙","group":"people","keywords":["bikini","clothing","swim"]},{"id":":woman’s_clothes:","symbol":"👚","group":"people","keywords":["clothing","woman","woman’s clothes"]},{"id":":purse:","symbol":"👛","group":"people","keywords":["clothing","coin","purse"]},{"id":":handbag:","symbol":"👜","group":"people","keywords":["bag","clothing","handbag","purse"]},{"id":":clutch_bag:","symbol":"👝","group":"people","keywords":["bag","clothing","clutch bag","pouch"]},{"id":":shopping_bags:","symbol":"🛍","group":"people","keywords":["bag","hotel","shopping","shopping bags"]},{"id":":backpack:","symbol":"🎒","group":"people","keywords":["backpack","bag","rucksack","satchel","school"]},{"id":":man’s_shoe:","symbol":"👞","group":"people","keywords":["clothing","man","man’s shoe","shoe"]},{"id":":running_shoe:","symbol":"👟","group":"people","keywords":["athletic","clothing","running shoe","shoe","sneaker"]},{"id":":high-heeled_shoe:","symbol":"👠","group":"people","keywords":["clothing","heel","high-heeled shoe","shoe","woman"]},{"id":":woman’s_sandal:","symbol":"👡","group":"people","keywords":["clothing","sandal","shoe","woman","woman’s sandal"]},{"id":":woman’s_boot:","symbol":"👢","group":"people","keywords":["boot","clothing","shoe","woman","woman’s boot"]},{"id":":crown:","symbol":"👑","group":"people","keywords":["clothing","crown","king","queen"]},{"id":":woman’s_hat:","symbol":"👒","group":"people","keywords":["clothing","hat","woman","woman’s hat"]},{"id":":top_hat:","symbol":"🎩","group":"people","keywords":["clothing","hat","top","tophat"]},{"id":":graduation_cap:","symbol":"🎓","group":"people","keywords":["cap","celebration","clothing","graduation","hat"]},{"id":":billed_cap:","symbol":"🧢","group":"people","keywords":["baseball cap","billed cap"]},{"id":":rescue_worker’s_helmet:","symbol":"⛑","group":"people","keywords":["aid","cross","face","hat","helmet","rescue worker’s helmet"]},{"id":":prayer_beads:","symbol":"📿","group":"people","keywords":["beads","clothing","necklace","prayer","religion"]},{"id":":lipstick:","symbol":"💄","group":"people","keywords":["cosmetics","lipstick","makeup"]},{"id":":ring:","symbol":"💍","group":"people","keywords":["diamond","ring"]},{"id":":gem_stone:","symbol":"💎","group":"people","keywords":["diamond","gem","gem stone","jewel"]},{"id":":monkey_face:","symbol":"🐵","group":"nature","keywords":["face","monkey"]},{"id":":monkey:","symbol":"🐒","group":"nature","keywords":["monkey"]},{"id":":gorilla:","symbol":"🦍","group":"nature","keywords":["gorilla"]},{"id":":dog_face:","symbol":"🐶","group":"nature","keywords":["dog","face","pet"]},{"id":":dog:","symbol":"🐕","group":"nature","keywords":["dog","pet"]},{"id":":poodle:","symbol":"🐩","group":"nature","keywords":["dog","poodle"]},{"id":":wolf_face:","symbol":"🐺","group":"nature","keywords":["face","wolf"]},{"id":":fox_face:","symbol":"🦊","group":"nature","keywords":["face","fox"]},{"id":":cat_face:","symbol":"🐱","group":"nature","keywords":["cat","face","pet"]},{"id":":cat:","symbol":"🐈","group":"nature","keywords":["cat","pet"]},{"id":":lion_face:","symbol":"🦁","group":"nature","keywords":["face","Leo","lion","zodiac"]},{"id":":tiger_face:","symbol":"🐯","group":"nature","keywords":["face","tiger"]},{"id":":tiger:","symbol":"🐅","group":"nature","keywords":["tiger"]},{"id":":leopard:","symbol":"🐆","group":"nature","keywords":["leopard"]},{"id":":horse_face:","symbol":"🐴","group":"nature","keywords":["face","horse"]},{"id":":horse:","symbol":"🐎","group":"nature","keywords":["equestrian","horse","racehorse","racing"]},{"id":":unicorn_face:","symbol":"🦄","group":"nature","keywords":["face","unicorn"]},{"id":":zebra:","symbol":"🦓","group":"nature","keywords":["stripe","zebra"]},{"id":":deer:","symbol":"🦌","group":"nature","keywords":["deer"]},{"id":":cow_face:","symbol":"🐮","group":"nature","keywords":["cow","face"]},{"id":":ox:","symbol":"🐂","group":"nature","keywords":["bull","ox","Taurus","zodiac"]},{"id":":water_buffalo:","symbol":"🐃","group":"nature","keywords":["buffalo","water"]},{"id":":cow:","symbol":"🐄","group":"nature","keywords":["cow"]},{"id":":pig_face:","symbol":"🐷","group":"nature","keywords":["face","pig"]},{"id":":pig:","symbol":"🐖","group":"nature","keywords":["pig","sow"]},{"id":":boar:","symbol":"🐗","group":"nature","keywords":["boar","pig"]},{"id":":pig_nose:","symbol":"🐽","group":"nature","keywords":["face","nose","pig"]},{"id":":ram:","symbol":"🐏","group":"nature","keywords":["Aries","male","ram","sheep","zodiac"]},{"id":":ewe:","symbol":"🐑","group":"nature","keywords":["ewe","female","sheep"]},{"id":":goat:","symbol":"🐐","group":"nature","keywords":["Capricorn","goat","zodiac"]},{"id":":camel:","symbol":"🐪","group":"nature","keywords":["camel","dromedary","hump"]},{"id":":two-hump_camel:","symbol":"🐫","group":"nature","keywords":["bactrian","camel","hump","two-hump camel"]},{"id":":giraffe:","symbol":"🦒","group":"nature","keywords":["giraffe","spots"]},{"id":":elephant:","symbol":"🐘","group":"nature","keywords":["elephant"]},{"id":":rhinoceros:","symbol":"🦏","group":"nature","keywords":["rhinoceros"]},{"id":":mouse_face:","symbol":"🐭","group":"nature","keywords":["face","mouse"]},{"id":":mouse:","symbol":"🐁","group":"nature","keywords":["mouse"]},{"id":":rat:","symbol":"🐀","group":"nature","keywords":["rat"]},{"id":":hamster_face:","symbol":"🐹","group":"nature","keywords":["face","hamster","pet"]},{"id":":rabbit_face:","symbol":"🐰","group":"nature","keywords":["bunny","face","pet","rabbit"]},{"id":":rabbit:","symbol":"🐇","group":"nature","keywords":["bunny","pet","rabbit"]},{"id":":chipmunk:","symbol":"🐿","group":"nature","keywords":["chipmunk","squirrel"]},{"id":":hedgehog:","symbol":"🦔","group":"nature","keywords":["hedgehog","spiny"]},{"id":":bat:","symbol":"🦇","group":"nature","keywords":["bat","vampire"]},{"id":":bear_face:","symbol":"🐻","group":"nature","keywords":["bear","face"]},{"id":":koala:","symbol":"🐨","group":"nature","keywords":["bear","koala"]},{"id":":panda_face:","symbol":"🐼","group":"nature","keywords":["face","panda"]},{"id":":paw_prints:","symbol":"🐾","group":"nature","keywords":["feet","paw","paw prints","print"]},{"id":":turkey:","symbol":"🦃","group":"nature","keywords":["bird","turkey"]},{"id":":chicken:","symbol":"🐔","group":"nature","keywords":["bird","chicken"]},{"id":":rooster:","symbol":"🐓","group":"nature","keywords":["bird","rooster"]},{"id":":hatching_chick:","symbol":"🐣","group":"nature","keywords":["baby","bird","chick","hatching"]},{"id":":baby_chick:","symbol":"🐤","group":"nature","keywords":["baby","bird","chick"]},{"id":":front-facing_baby_chick:","symbol":"🐥","group":"nature","keywords":["baby","bird","chick","front-facing baby chick"]},{"id":":bird:","symbol":"🐦","group":"nature","keywords":["bird"]},{"id":":penguin:","symbol":"🐧","group":"nature","keywords":["bird","penguin"]},{"id":":dove:","symbol":"🕊","group":"nature","keywords":["bird","dove","fly","peace"]},{"id":":eagle:","symbol":"🦅","group":"nature","keywords":["bird","eagle"]},{"id":":duck:","symbol":"🦆","group":"nature","keywords":["bird","duck"]},{"id":":owl:","symbol":"🦉","group":"nature","keywords":["bird","owl","wise"]},{"id":":frog_face:","symbol":"🐸","group":"nature","keywords":["face","frog"]},{"id":":crocodile:","symbol":"🐊","group":"nature","keywords":["crocodile"]},{"id":":turtle:","symbol":"🐢","group":"nature","keywords":["terrapin","tortoise","turtle"]},{"id":":lizard:","symbol":"🦎","group":"nature","keywords":["lizard","reptile"]},{"id":":snake:","symbol":"🐍","group":"nature","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":dragon_face:","symbol":"🐲","group":"nature","keywords":["dragon","face","fairy tale"]},{"id":":dragon:","symbol":"🐉","group":"nature","keywords":["dragon","fairy tale"]},{"id":":sauropod:","symbol":"🦕","group":"nature","keywords":["brachiosaurus","brontosaurus","diplodocus","sauropod"]},{"id":":t-rex:","symbol":"🦖","group":"nature","keywords":["T-Rex","Tyrannosaurus Rex"]},{"id":":spouting_whale:","symbol":"🐳","group":"nature","keywords":["face","spouting","whale"]},{"id":":whale:","symbol":"🐋","group":"nature","keywords":["whale"]},{"id":":dolphin:","symbol":"🐬","group":"nature","keywords":["dolphin","flipper"]},{"id":":fish:","symbol":"🐟","group":"nature","keywords":["fish","Pisces","zodiac"]},{"id":":tropical_fish:","symbol":"🐠","group":"nature","keywords":["fish","tropical"]},{"id":":blowfish:","symbol":"🐡","group":"nature","keywords":["blowfish","fish"]},{"id":":shark:","symbol":"🦈","group":"nature","keywords":["fish","shark"]},{"id":":octopus:","symbol":"🐙","group":"nature","keywords":["octopus"]},{"id":":spiral_shell:","symbol":"🐚","group":"nature","keywords":["shell","spiral"]},{"id":":crab:","symbol":"🦀","group":"nature","keywords":["Cancer","crab","zodiac"]},{"id":":shrimp:","symbol":"🦐","group":"nature","keywords":["food","shellfish","shrimp","small"]},{"id":":squid:","symbol":"🦑","group":"nature","keywords":["food","molusc","squid"]},{"id":":snail:","symbol":"🐌","group":"nature","keywords":["snail"]},{"id":":butterfly:","symbol":"🦋","group":"nature","keywords":["butterfly","insect","pretty"]},{"id":":bug:","symbol":"🐛","group":"nature","keywords":["bug","insect"]},{"id":":ant:","symbol":"🐜","group":"nature","keywords":["ant","insect"]},{"id":":honeybee:","symbol":"🐝","group":"nature","keywords":["bee","honeybee","insect"]},{"id":":lady_beetle:","symbol":"🐞","group":"nature","keywords":["beetle","insect","lady beetle","ladybird","ladybug"]},{"id":":cricket:","symbol":"🦗","group":"nature","keywords":["cricket","grasshopper",""]},{"id":":spider:","symbol":"🕷","group":"nature","keywords":["insect","spider"]},{"id":":spider_web:","symbol":"🕸","group":"nature","keywords":["spider","web"]},{"id":":scorpion:","symbol":"🦂","group":"nature","keywords":["scorpio","Scorpio","scorpion","zodiac"]},{"id":":bouquet:","symbol":"💐","group":"nature","keywords":["bouquet","flower"]},{"id":":cherry_blossom:","symbol":"🌸","group":"nature","keywords":["blossom","cherry","flower"]},{"id":":white_flower:","symbol":"💮","group":"nature","keywords":["flower","white flower"]},{"id":":rosette:","symbol":"🏵","group":"nature","keywords":["plant","rosette"]},{"id":":rose:","symbol":"🌹","group":"nature","keywords":["flower","rose"]},{"id":":wilted_flower:","symbol":"🥀","group":"nature","keywords":["flower","wilted"]},{"id":":hibiscus:","symbol":"🌺","group":"nature","keywords":["flower","hibiscus"]},{"id":":sunflower:","symbol":"🌻","group":"nature","keywords":["flower","sun","sunflower"]},{"id":":blossom:","symbol":"🌼","group":"nature","keywords":["blossom","flower"]},{"id":":tulip:","symbol":"🌷","group":"nature","keywords":["flower","tulip"]},{"id":":seedling:","symbol":"🌱","group":"nature","keywords":["seedling","young"]},{"id":":evergreen_tree:","symbol":"🌲","group":"nature","keywords":["evergreen tree","tree"]},{"id":":deciduous_tree:","symbol":"🌳","group":"nature","keywords":["deciduous","shedding","tree"]},{"id":":palm_tree:","symbol":"🌴","group":"nature","keywords":["palm","tree"]},{"id":":cactus:","symbol":"🌵","group":"nature","keywords":["cactus","plant"]},{"id":":sheaf_of_rice:","symbol":"🌾","group":"nature","keywords":["ear","grain","rice","sheaf of rice"]},{"id":":herb:","symbol":"🌿","group":"nature","keywords":["herb","leaf"]},{"id":":shamrock:","symbol":"☘","group":"nature","keywords":["plant","shamrock"]},{"id":":four_leaf_clover:","symbol":"🍀","group":"nature","keywords":["4","clover","four","four-leaf clover","leaf"]},{"id":":maple_leaf:","symbol":"🍁","group":"nature","keywords":["falling","leaf","maple"]},{"id":":fallen_leaf:","symbol":"🍂","group":"nature","keywords":["fallen leaf","falling","leaf"]},{"id":":leaf_fluttering_in_wind:","symbol":"🍃","group":"nature","keywords":["blow","flutter","leaf","leaf fluttering in wind","wind"]},{"id":":grapes:","symbol":"🍇","group":"food","keywords":["fruit","grape","grapes"]},{"id":":melon:","symbol":"🍈","group":"food","keywords":["fruit","melon"]},{"id":":watermelon:","symbol":"🍉","group":"food","keywords":["fruit","watermelon"]},{"id":":tangerine:","symbol":"🍊","group":"food","keywords":["fruit","orange","tangerine"]},{"id":":lemon:","symbol":"🍋","group":"food","keywords":["citrus","fruit","lemon"]},{"id":":banana:","symbol":"🍌","group":"food","keywords":["banana","fruit"]},{"id":":pineapple:","symbol":"🍍","group":"food","keywords":["fruit","pineapple"]},{"id":":red_apple:","symbol":"🍎","group":"food","keywords":["apple","fruit","red"]},{"id":":green_apple:","symbol":"🍏","group":"food","keywords":["apple","fruit","green"]},{"id":":pear:","symbol":"🍐","group":"food","keywords":["fruit","pear"]},{"id":":peach:","symbol":"🍑","group":"food","keywords":["fruit","peach"]},{"id":":cherries:","symbol":"🍒","group":"food","keywords":["berries","cherries","cherry","fruit","red"]},{"id":":strawberry:","symbol":"🍓","group":"food","keywords":["berry","fruit","strawberry"]},{"id":":kiwi_fruit:","symbol":"🥝","group":"food","keywords":["food","fruit","kiwi"]},{"id":":tomato:","symbol":"🍅","group":"food","keywords":["fruit","tomato","vegetable"]},{"id":":coconut:","symbol":"🥥","group":"food","keywords":["coconut","palm","piña colada"]},{"id":":avocado:","symbol":"🥑","group":"food","keywords":["avocado","food","fruit"]},{"id":":eggplant:","symbol":"🍆","group":"food","keywords":["aubergine","eggplant","vegetable"]},{"id":":potato:","symbol":"🥔","group":"food","keywords":["food","potato","vegetable"]},{"id":":carrot:","symbol":"🥕","group":"food","keywords":["carrot","food","vegetable"]},{"id":":ear_of_corn:","symbol":"🌽","group":"food","keywords":["corn","ear","ear of corn","maize","maze"]},{"id":":hot_pepper:","symbol":"🌶","group":"food","keywords":["hot","pepper"]},{"id":":cucumber:","symbol":"🥒","group":"food","keywords":["cucumber","food","pickle","vegetable"]},{"id":":broccoli:","symbol":"🥦","group":"food","keywords":["broccoli","wild cabbage"]},{"id":":mushroom:","symbol":"🍄","group":"food","keywords":["mushroom","toadstool"]},{"id":":peanuts:","symbol":"🥜","group":"food","keywords":["food","nut","peanut","peanuts","vegetable"]},{"id":":chestnut:","symbol":"🌰","group":"food","keywords":["chestnut","plant"]},{"id":":bread:","symbol":"🍞","group":"food","keywords":["bread","loaf"]},{"id":":croissant:","symbol":"🥐","group":"food","keywords":["bread","crescent roll","croissant","food","french"]},{"id":":baguette_bread:","symbol":"🥖","group":"food","keywords":["baguette","bread","food","french"]},{"id":":pretzel:","symbol":"🥨","group":"food","keywords":["pretzel","twisted",""]},{"id":":pancakes:","symbol":"🥞","group":"food","keywords":["crêpe","food","hotcake","pancake","pancakes"]},{"id":":cheese_wedge:","symbol":"🧀","group":"food","keywords":["cheese","cheese wedge"]},{"id":":meat_on_bone:","symbol":"🍖","group":"food","keywords":["bone","meat","meat on bone"]},{"id":":poultry_leg:","symbol":"🍗","group":"food","keywords":["bone","chicken","drumstick","leg","poultry"]},{"id":":cut_of_meat:","symbol":"🥩","group":"food","keywords":["chop","cut of meat","lambchop","porkchop","steak"]},{"id":":bacon:","symbol":"🥓","group":"food","keywords":["bacon","food","meat"]},{"id":":hamburger:","symbol":"🍔","group":"food","keywords":["burger","hamburger"]},{"id":":french_fries:","symbol":"🍟","group":"food","keywords":["french","fries"]},{"id":":pizza:","symbol":"🍕","group":"food","keywords":["cheese","pizza","slice"]},{"id":":hot_dog:","symbol":"🌭","group":"food","keywords":["frankfurter","hot dog","hotdog","sausage"]},{"id":":sandwich:","symbol":"🥪","group":"food","keywords":["bread","sandwich"]},{"id":":taco:","symbol":"🌮","group":"food","keywords":["mexican","taco"]},{"id":":burrito:","symbol":"🌯","group":"food","keywords":["burrito","mexican","wrap"]},{"id":":stuffed_flatbread:","symbol":"🥙","group":"food","keywords":["falafel","flatbread","food","gyro","kebab","stuffed"]},{"id":":egg:","symbol":"🥚","group":"food","keywords":["egg","food"]},{"id":":cooking:","symbol":"🍳","group":"food","keywords":["cooking","egg","frying","pan"]},{"id":":shallow_pan_of_food:","symbol":"🥘","group":"food","keywords":["casserole","food","paella","pan","shallow","shallow pan of food"]},{"id":":pot_of_food:","symbol":"🍲","group":"food","keywords":["pot","pot of food","stew"]},{"id":":bowl_with_spoon:","symbol":"🥣","group":"food","keywords":["bowl with spoon","breakfast","cereal","congee",""]},{"id":":green_salad:","symbol":"🥗","group":"food","keywords":["food","green","salad"]},{"id":":popcorn:","symbol":"🍿","group":"food","keywords":["popcorn"]},{"id":":canned_food:","symbol":"🥫","group":"food","keywords":["can","canned food"]},{"id":":bento_box:","symbol":"🍱","group":"food","keywords":["bento","box"]},{"id":":rice_cracker:","symbol":"🍘","group":"food","keywords":["cracker","rice"]},{"id":":rice_ball:","symbol":"🍙","group":"food","keywords":["ball","Japanese","rice"]},{"id":":cooked_rice:","symbol":"🍚","group":"food","keywords":["cooked","rice"]},{"id":":curry_rice:","symbol":"🍛","group":"food","keywords":["curry","rice"]},{"id":":steaming_bowl:","symbol":"🍜","group":"food","keywords":["bowl","noodle","ramen","steaming"]},{"id":":spaghetti:","symbol":"🍝","group":"food","keywords":["pasta","spaghetti"]},{"id":":roasted_sweet_potato:","symbol":"🍠","group":"food","keywords":["potato","roasted","sweet"]},{"id":":oden:","symbol":"🍢","group":"food","keywords":["kebab","oden","seafood","skewer","stick"]},{"id":":sushi:","symbol":"🍣","group":"food","keywords":["sushi"]},{"id":":fried_shrimp:","symbol":"🍤","group":"food","keywords":["fried","prawn","shrimp","tempura"]},{"id":":fish_cake_with_swirl:","symbol":"🍥","group":"food","keywords":["cake","fish","fish cake with swirl","pastry","swirl"]},{"id":":dango:","symbol":"🍡","group":"food","keywords":["dango","dessert","Japanese","skewer","stick","sweet"]},{"id":":dumpling:","symbol":"🥟","group":"food","keywords":["dumpling","empanada","gyōza","jiaozi","pierogi","potsticker"]},{"id":":fortune_cookie:","symbol":"🥠","group":"food","keywords":["fortune cookie","prophecy"]},{"id":":takeout_box:","symbol":"🥡","group":"food","keywords":["oyster pail","takeout box"]},{"id":":soft_ice_cream:","symbol":"🍦","group":"food","keywords":["cream","dessert","ice","icecream","soft","sweet"]},{"id":":shaved_ice:","symbol":"🍧","group":"food","keywords":["dessert","ice","shaved","sweet"]},{"id":":ice_cream:","symbol":"🍨","group":"food","keywords":["cream","dessert","ice","sweet"]},{"id":":doughnut:","symbol":"🍩","group":"food","keywords":["dessert","donut","doughnut","sweet"]},{"id":":cookie:","symbol":"🍪","group":"food","keywords":["cookie","dessert","sweet"]},{"id":":birthday_cake:","symbol":"🎂","group":"food","keywords":["birthday","cake","celebration","dessert","pastry","sweet"]},{"id":":shortcake:","symbol":"🍰","group":"food","keywords":["cake","dessert","pastry","shortcake","slice","sweet"]},{"id":":pie:","symbol":"🥧","group":"food","keywords":["filling","pastry","pie",""]},{"id":":chocolate_bar:","symbol":"🍫","group":"food","keywords":["bar","chocolate","dessert","sweet"]},{"id":":candy:","symbol":"🍬","group":"food","keywords":["candy","dessert","sweet"]},{"id":":lollipop:","symbol":"🍭","group":"food","keywords":["candy","dessert","lollipop","sweet"]},{"id":":custard:","symbol":"🍮","group":"food","keywords":["custard","dessert","pudding","sweet"]},{"id":":honey_pot:","symbol":"🍯","group":"food","keywords":["honey","honeypot","pot","sweet"]},{"id":":baby_bottle:","symbol":"🍼","group":"food","keywords":["baby","bottle","drink","milk"]},{"id":":glass_of_milk:","symbol":"🥛","group":"food","keywords":["drink","glass","glass of milk","milk"]},{"id":":hot_beverage:","symbol":"☕","group":"food","keywords":["beverage","coffee","drink","hot","steaming","tea"]},{"id":":teacup_without_handle:","symbol":"🍵","group":"food","keywords":["beverage","cup","drink","tea","teacup","teacup without handle"]},{"id":":sake:","symbol":"🍶","group":"food","keywords":["bar","beverage","bottle","cup","drink","sake"]},{"id":":bottle_with_popping_cork:","symbol":"🍾","group":"food","keywords":["bar","bottle","bottle with popping cork","cork","drink","popping"]},{"id":":wine_glass:","symbol":"🍷","group":"food","keywords":["bar","beverage","drink","glass","wine"]},{"id":":cocktail_glass:","symbol":"🍸","group":"food","keywords":["bar","cocktail","drink","glass"]},{"id":":tropical_drink:","symbol":"🍹","group":"food","keywords":["bar","drink","tropical"]},{"id":":beer_mug:","symbol":"🍺","group":"food","keywords":["bar","beer","drink","mug"]},{"id":":clinking_beer_mugs:","symbol":"🍻","group":"food","keywords":["bar","beer","clink","clinking beer mugs","drink","mug"]},{"id":":clinking_glasses:","symbol":"🥂","group":"food","keywords":["celebrate","clink","clinking glasses","drink","glass"]},{"id":":tumbler_glass:","symbol":"🥃","group":"food","keywords":["glass","liquor","shot","tumbler","whisky"]},{"id":":cup_with_straw:","symbol":"🥤","group":"food","keywords":["cup with straw","juice","soda",""]},{"id":":chopsticks:","symbol":"🥢","group":"food","keywords":["chopsticks","hashi",""]},{"id":":fork_and_knife_with_plate:","symbol":"🍽","group":"food","keywords":["cooking","fork","fork and knife with plate","knife","plate"]},{"id":":fork_and_knife:","symbol":"🍴","group":"food","keywords":["cooking","cutlery","fork","fork and knife","knife"]},{"id":":spoon:","symbol":"🥄","group":"food","keywords":["spoon","tableware"]},{"id":":kitchen_knife:","symbol":"🔪","group":"food","keywords":["cooking","hocho","kitchen knife","knife","tool","weapon"]},{"id":":amphora:","symbol":"🏺","group":"food","keywords":["amphora","Aquarius","cooking","drink","jug","zodiac"]},{"id":":globe_showing_europe-africa:","symbol":"🌍","group":"travel","keywords":["Africa","earth","Europe","globe","globe showing Europe-Africa","world"]},{"id":":globe_showing_americas:","symbol":"🌎","group":"travel","keywords":["Americas","earth","globe","globe showing Americas","world"]},{"id":":globe_showing_asia-australia:","symbol":"🌏","group":"travel","keywords":["Asia","Australia","earth","globe","globe showing Asia-Australia","world"]},{"id":":globe_with_meridians:","symbol":"🌐","group":"travel","keywords":["earth","globe","globe with meridians","meridians","world"]},{"id":":world_map:","symbol":"🗺","group":"travel","keywords":["map","world"]},{"id":":map_of_japan:","symbol":"🗾","group":"travel","keywords":["Japan","map","map of Japan"]},{"id":":snow-capped_mountain:","symbol":"🏔","group":"travel","keywords":["cold","mountain","snow","snow-capped mountain"]},{"id":":mountain:","symbol":"⛰","group":"travel","keywords":["mountain"]},{"id":":volcano:","symbol":"🌋","group":"travel","keywords":["eruption","mountain","volcano"]},{"id":":mount_fuji:","symbol":"🗻","group":"travel","keywords":["fuji","mount fuji","mountain"]},{"id":":camping:","symbol":"🏕","group":"travel","keywords":["camping"]},{"id":":beach_with_umbrella:","symbol":"🏖","group":"travel","keywords":["beach","beach with umbrella","umbrella"]},{"id":":desert:","symbol":"🏜","group":"travel","keywords":["desert"]},{"id":":desert_island:","symbol":"🏝","group":"travel","keywords":["desert","island"]},{"id":":national_park:","symbol":"🏞","group":"travel","keywords":["national park","park"]},{"id":":stadium:","symbol":"🏟","group":"travel","keywords":["stadium"]},{"id":":classical_building:","symbol":"🏛","group":"travel","keywords":["classical","classical building"]},{"id":":building_construction:","symbol":"🏗","group":"travel","keywords":["building construction","construction"]},{"id":":houses:","symbol":"🏘","group":"travel","keywords":["houses"]},{"id":":derelict_house:","symbol":"🏚","group":"travel","keywords":["derelict","house"]},{"id":":house:","symbol":"🏠","group":"travel","keywords":["home","house"]},{"id":":house_with_garden:","symbol":"🏡","group":"travel","keywords":["garden","home","house","house with garden"]},{"id":":office_building:","symbol":"🏢","group":"travel","keywords":["building","office building"]},{"id":":japanese_post_office:","symbol":"🏣","group":"travel","keywords":["Japanese","Japanese post office","post"]},{"id":":post_office:","symbol":"🏤","group":"travel","keywords":["European","post","post office"]},{"id":":hospital:","symbol":"🏥","group":"travel","keywords":["doctor","hospital","medicine"]},{"id":":bank:","symbol":"🏦","group":"travel","keywords":["bank","building"]},{"id":":hotel:","symbol":"🏨","group":"travel","keywords":["building","hotel"]},{"id":":love_hotel:","symbol":"🏩","group":"travel","keywords":["hotel","love"]},{"id":":convenience_store:","symbol":"🏪","group":"travel","keywords":["convenience","store"]},{"id":":school:","symbol":"🏫","group":"travel","keywords":["building","school"]},{"id":":department_store:","symbol":"🏬","group":"travel","keywords":["department","store"]},{"id":":factory:","symbol":"🏭","group":"travel","keywords":["building","factory"]},{"id":":japanese_castle:","symbol":"🏯","group":"travel","keywords":["castle","Japanese"]},{"id":":castle:","symbol":"🏰","group":"travel","keywords":["castle","European"]},{"id":":wedding:","symbol":"💒","group":"travel","keywords":["chapel","romance","wedding"]},{"id":":tokyo_tower:","symbol":"🗼","group":"travel","keywords":["Tokyo","tower"]},{"id":":statue_of_liberty:","symbol":"🗽","group":"travel","keywords":["liberty","statue","Statue of Liberty"]},{"id":":church:","symbol":"⛪","group":"travel","keywords":["Christian","church","cross","religion"]},{"id":":mosque:","symbol":"🕌","group":"travel","keywords":["islam","mosque","Muslim","religion"]},{"id":":synagogue:","symbol":"🕍","group":"travel","keywords":["Jew","Jewish","religion","synagogue","temple"]},{"id":":shinto_shrine:","symbol":"⛩","group":"travel","keywords":["religion","shinto","shrine"]},{"id":":kaaba:","symbol":"🕋","group":"travel","keywords":["islam","kaaba","Muslim","religion"]},{"id":":fountain:","symbol":"⛲","group":"travel","keywords":["fountain"]},{"id":":tent:","symbol":"⛺","group":"travel","keywords":["camping","tent"]},{"id":":foggy:","symbol":"🌁","group":"travel","keywords":["fog","foggy"]},{"id":":night_with_stars:","symbol":"🌃","group":"travel","keywords":["night","night with stars","star"]},{"id":":cityscape:","symbol":"🏙","group":"travel","keywords":["city","cityscape"]},{"id":":sunrise_over_mountains:","symbol":"🌄","group":"travel","keywords":["morning","mountain","sun","sunrise","sunrise over mountains"]},{"id":":sunrise:","symbol":"🌅","group":"travel","keywords":["morning","sun","sunrise"]},{"id":":cityscape_at_dusk:","symbol":"🌆","group":"travel","keywords":["city","cityscape at dusk","dusk","evening","landscape","sunset"]},{"id":":sunset:","symbol":"🌇","group":"travel","keywords":["dusk","sun","sunset"]},{"id":":bridge_at_night:","symbol":"🌉","group":"travel","keywords":["bridge","bridge at night","night"]},{"id":":hot_springs:","symbol":"♨","group":"travel","keywords":["hot","hotsprings","springs","steaming"]},{"id":":milky_way:","symbol":"🌌","group":"travel","keywords":["milky way","space"]},{"id":":carousel_horse:","symbol":"🎠","group":"travel","keywords":["carousel","horse"]},{"id":":ferris_wheel:","symbol":"🎡","group":"travel","keywords":["amusement park","ferris","wheel"]},{"id":":roller_coaster:","symbol":"🎢","group":"travel","keywords":["amusement park","coaster","roller"]},{"id":":barber_pole:","symbol":"💈","group":"travel","keywords":["barber","haircut","pole"]},{"id":":circus_tent:","symbol":"🎪","group":"travel","keywords":["circus","tent"]},{"id":":locomotive:","symbol":"🚂","group":"travel","keywords":["engine","locomotive","railway","steam","train"]},{"id":":railway_car:","symbol":"🚃","group":"travel","keywords":["car","electric","railway","train","tram","trolleybus"]},{"id":":high-speed_train:","symbol":"🚄","group":"travel","keywords":["high-speed train","railway","shinkansen","speed","train"]},{"id":":bullet_train:","symbol":"🚅","group":"travel","keywords":["bullet","railway","shinkansen","speed","train"]},{"id":":train:","symbol":"🚆","group":"travel","keywords":["railway","train"]},{"id":":metro:","symbol":"🚇","group":"travel","keywords":["metro","subway"]},{"id":":light_rail:","symbol":"🚈","group":"travel","keywords":["light rail","railway"]},{"id":":station:","symbol":"🚉","group":"travel","keywords":["railway","station","train"]},{"id":":tram:","symbol":"🚊","group":"travel","keywords":["tram","trolleybus"]},{"id":":monorail:","symbol":"🚝","group":"travel","keywords":["monorail","vehicle"]},{"id":":mountain_railway:","symbol":"🚞","group":"travel","keywords":["car","mountain","railway"]},{"id":":tram_car:","symbol":"🚋","group":"travel","keywords":["car","tram","trolleybus"]},{"id":":bus:","symbol":"🚌","group":"travel","keywords":["bus","vehicle"]},{"id":":oncoming_bus:","symbol":"🚍","group":"travel","keywords":["bus","oncoming"]},{"id":":trolleybus:","symbol":"🚎","group":"travel","keywords":["bus","tram","trolley","trolleybus"]},{"id":":minibus:","symbol":"🚐","group":"travel","keywords":["bus","minibus"]},{"id":":ambulance:","symbol":"🚑","group":"travel","keywords":["ambulance","vehicle"]},{"id":":fire_engine:","symbol":"🚒","group":"travel","keywords":["engine","fire","truck"]},{"id":":police_car:","symbol":"🚓","group":"travel","keywords":["car","patrol","police"]},{"id":":oncoming_police_car:","symbol":"🚔","group":"travel","keywords":["car","oncoming","police"]},{"id":":taxi:","symbol":"🚕","group":"travel","keywords":["taxi","vehicle"]},{"id":":oncoming_taxi:","symbol":"🚖","group":"travel","keywords":["oncoming","taxi"]},{"id":":automobile:","symbol":"🚗","group":"travel","keywords":["automobile","car"]},{"id":":oncoming_automobile:","symbol":"🚘","group":"travel","keywords":["automobile","car","oncoming"]},{"id":":sport_utility_vehicle:","symbol":"🚙","group":"travel","keywords":["recreational","sport utility","sport utility vehicle"]},{"id":":delivery_truck:","symbol":"🚚","group":"travel","keywords":["delivery","truck"]},{"id":":articulated_lorry:","symbol":"🚛","group":"travel","keywords":["articulated lorry","lorry","semi","truck"]},{"id":":tractor:","symbol":"🚜","group":"travel","keywords":["tractor","vehicle"]},{"id":":bicycle:","symbol":"🚲","group":"travel","keywords":["bicycle","bike"]},{"id":":kick_scooter:","symbol":"🛴","group":"travel","keywords":["kick","scooter"]},{"id":":motor_scooter:","symbol":"🛵","group":"travel","keywords":["motor","scooter"]},{"id":":bus_stop:","symbol":"🚏","group":"travel","keywords":["bus","busstop","stop"]},{"id":":motorway:","symbol":"🛣","group":"travel","keywords":["highway","motorway","road"]},{"id":":railway_track:","symbol":"🛤","group":"travel","keywords":["railway","railway track","train"]},{"id":":oil_drum:","symbol":"🛢","group":"travel","keywords":["drum","oil"]},{"id":":fuel_pump:","symbol":"⛽","group":"travel","keywords":["diesel","fuel","fuelpump","gas","pump","station"]},{"id":":police_car_light:","symbol":"🚨","group":"travel","keywords":["beacon","car","light","police","revolving"]},{"id":":horizontal_traffic_light:","symbol":"🚥","group":"travel","keywords":["horizontal traffic light","light","signal","traffic"]},{"id":":vertical_traffic_light:","symbol":"🚦","group":"travel","keywords":["light","signal","traffic","vertical traffic light"]},{"id":":stop_sign:","symbol":"🛑","group":"travel","keywords":["octagonal","sign","stop"]},{"id":":construction:","symbol":"🚧","group":"travel","keywords":["barrier","construction"]},{"id":":anchor:","symbol":"⚓","group":"travel","keywords":["anchor","ship","tool"]},{"id":":sailboat:","symbol":"⛵","group":"travel","keywords":["boat","resort","sailboat","sea","yacht"]},{"id":":canoe:","symbol":"🛶","group":"travel","keywords":["boat","canoe"]},{"id":":speedboat:","symbol":"🚤","group":"travel","keywords":["boat","speedboat"]},{"id":":passenger_ship:","symbol":"🛳","group":"travel","keywords":["passenger","ship"]},{"id":":ferry:","symbol":"⛴","group":"travel","keywords":["boat","ferry","passenger"]},{"id":":motor_boat:","symbol":"🛥","group":"travel","keywords":["boat","motor boat","motorboat"]},{"id":":ship:","symbol":"🚢","group":"travel","keywords":["boat","passenger","ship"]},{"id":":airplane:","symbol":"✈","group":"travel","keywords":["aeroplane","airplane"]},{"id":":small_airplane:","symbol":"🛩","group":"travel","keywords":["aeroplane","airplane","small airplane"]},{"id":":airplane_departure:","symbol":"🛫","group":"travel","keywords":["aeroplane","airplane","check-in","departure","departures"]},{"id":":airplane_arrival:","symbol":"🛬","group":"travel","keywords":["aeroplane","airplane","airplane arrival","arrivals","arriving","landing"]},{"id":":seat:","symbol":"💺","group":"travel","keywords":["chair","seat"]},{"id":":helicopter:","symbol":"🚁","group":"travel","keywords":["helicopter","vehicle"]},{"id":":suspension_railway:","symbol":"🚟","group":"travel","keywords":["railway","suspension"]},{"id":":mountain_cableway:","symbol":"🚠","group":"travel","keywords":["cable","gondola","mountain","mountain cableway"]},{"id":":aerial_tramway:","symbol":"🚡","group":"travel","keywords":["aerial","cable","car","gondola","tramway"]},{"id":":satellite:","symbol":"🛰","group":"travel","keywords":["satellite","space"]},{"id":":rocket:","symbol":"🚀","group":"travel","keywords":["rocket","space"]},{"id":":flying_saucer:","symbol":"🛸","group":"travel","keywords":["flying saucer","UFO"]},{"id":":bellhop_bell:","symbol":"🛎","group":"travel","keywords":["bell","bellhop","hotel"]},{"id":":hourglass_done:","symbol":"⌛","group":"travel","keywords":["hourglass done","sand","timer"]},{"id":":hourglass_not_done:","symbol":"⏳","group":"travel","keywords":["hourglass","hourglass not done","sand","timer"]},{"id":":watch:","symbol":"⌚","group":"travel","keywords":["clock","watch"]},{"id":":alarm_clock:","symbol":"⏰","group":"travel","keywords":["alarm","clock"]},{"id":":stopwatch:","symbol":"⏱","group":"travel","keywords":["clock","stopwatch"]},{"id":":timer_clock:","symbol":"⏲","group":"travel","keywords":["clock","timer"]},{"id":":mantelpiece_clock:","symbol":"🕰","group":"travel","keywords":["clock","mantelpiece clock"]},{"id":":twelve_o’clock:","symbol":"🕛","group":"travel","keywords":["00","12","12:00","clock","o’clock","twelve"]},{"id":":twelve-thirty:","symbol":"🕧","group":"travel","keywords":["12","12:30","clock","thirty","twelve","twelve-thirty"]},{"id":":one_o’clock:","symbol":"🕐","group":"travel","keywords":["00","1","1:00","clock","o’clock","one"]},{"id":":one-thirty:","symbol":"🕜","group":"travel","keywords":["1","1:30","clock","one","one-thirty","thirty"]},{"id":":two_o’clock:","symbol":"🕑","group":"travel","keywords":["00","2","2:00","clock","o’clock","two"]},{"id":":two-thirty:","symbol":"🕝","group":"travel","keywords":["2","2:30","clock","thirty","two","two-thirty"]},{"id":":three_o’clock:","symbol":"🕒","group":"travel","keywords":["00","3","3:00","clock","o’clock","three"]},{"id":":three-thirty:","symbol":"🕞","group":"travel","keywords":["3","3:30","clock","thirty","three","three-thirty"]},{"id":":four_o’clock:","symbol":"🕓","group":"travel","keywords":["00","4","4:00","clock","four","o’clock"]},{"id":":four-thirty:","symbol":"🕟","group":"travel","keywords":["4","4:30","clock","four","four-thirty","thirty"]},{"id":":five_o’clock:","symbol":"🕔","group":"travel","keywords":["00","5","5:00","clock","five","o’clock"]},{"id":":five-thirty:","symbol":"🕠","group":"travel","keywords":["5","5:30","clock","five","five-thirty","thirty"]},{"id":":six_o’clock:","symbol":"🕕","group":"travel","keywords":["00","6","6:00","clock","o’clock","six"]},{"id":":six-thirty:","symbol":"🕡","group":"travel","keywords":["6","6:30","clock","six","six-thirty","thirty"]},{"id":":seven_o’clock:","symbol":"🕖","group":"travel","keywords":["00","7","7:00","clock","o’clock","seven"]},{"id":":seven-thirty:","symbol":"🕢","group":"travel","keywords":["7","7:30","clock","seven","seven-thirty","thirty"]},{"id":":eight_o’clock:","symbol":"🕗","group":"travel","keywords":["00","8","8:00","clock","eight","o’clock"]},{"id":":eight-thirty:","symbol":"🕣","group":"travel","keywords":["8","8:30","clock","eight","eight-thirty","thirty"]},{"id":":nine_o’clock:","symbol":"🕘","group":"travel","keywords":["00","9","9:00","clock","nine","o’clock"]},{"id":":nine-thirty:","symbol":"🕤","group":"travel","keywords":["9","9:30","clock","nine","nine-thirty","thirty"]},{"id":":ten_o’clock:","symbol":"🕙","group":"travel","keywords":["00","10","10:00","clock","o’clock","ten"]},{"id":":ten-thirty:","symbol":"🕥","group":"travel","keywords":["10","10:30","clock","ten","ten-thirty","thirty"]},{"id":":eleven_o’clock:","symbol":"🕚","group":"travel","keywords":["00","11","11:00","clock","eleven","o’clock"]},{"id":":eleven-thirty:","symbol":"🕦","group":"travel","keywords":["11","11:30","clock","eleven","eleven-thirty","thirty"]},{"id":":new_moon:","symbol":"🌑","group":"travel","keywords":["dark","moon","new moon"]},{"id":":waxing_crescent_moon:","symbol":"🌒","group":"travel","keywords":["crescent","moon","waxing"]},{"id":":first_quarter_moon:","symbol":"🌓","group":"travel","keywords":["first quarter moon","moon","quarter"]},{"id":":waxing_gibbous_moon:","symbol":"🌔","group":"travel","keywords":["gibbous","moon","waxing"]},{"id":":full_moon:","symbol":"🌕","group":"travel","keywords":["full","moon"]},{"id":":waning_gibbous_moon:","symbol":"🌖","group":"travel","keywords":["gibbous","moon","waning"]},{"id":":last_quarter_moon:","symbol":"🌗","group":"travel","keywords":["last quarter moon","moon","quarter"]},{"id":":waning_crescent_moon:","symbol":"🌘","group":"travel","keywords":["crescent","moon","waning"]},{"id":":crescent_moon:","symbol":"🌙","group":"travel","keywords":["crescent","moon"]},{"id":":new_moon_face:","symbol":"🌚","group":"travel","keywords":["face","moon","new moon face"]},{"id":":first_quarter_moon_face:","symbol":"🌛","group":"travel","keywords":["face","first quarter moon face","moon","quarter"]},{"id":":last_quarter_moon_face:","symbol":"🌜","group":"travel","keywords":["face","last quarter moon face","moon","quarter"]},{"id":":thermometer:","symbol":"🌡","group":"travel","keywords":["thermometer","weather"]},{"id":":sun:","symbol":"☀","group":"travel","keywords":["bright","rays","sun","sunny"]},{"id":":full_moon_face:","symbol":"🌝","group":"travel","keywords":["bright","face","full","moon"]},{"id":":sun_with_face:","symbol":"🌞","group":"travel","keywords":["bright","face","sun","sun with face"]},{"id":":star:","symbol":"⭐","group":"travel","keywords":["star"]},{"id":":glowing_star:","symbol":"🌟","group":"travel","keywords":["glittery","glow","glowing star","shining","sparkle","star"]},{"id":":shooting_star:","symbol":"🌠","group":"travel","keywords":["falling","shooting","star"]},{"id":":cloud:","symbol":"☁️","group":"travel","keywords":["cloud","weather"]},{"id":":sun_behind_cloud:","symbol":"⛅","group":"travel","keywords":["cloud","sun","sun behind cloud"]},{"id":":cloud_with_lightning_and_rain:","symbol":"⛈️","group":"travel","keywords":["cloud","cloud with lightning and rain","rain","thunder"]},{"id":":sun_behind_small_cloud:","symbol":"🌤","group":"travel","keywords":["cloud","sun","sun behind small cloud"]},{"id":":sun_behind_large_cloud:","symbol":"🌥","group":"travel","keywords":["cloud","sun","sun behind large cloud"]},{"id":":sun_behind_rain_cloud:","symbol":"🌦","group":"travel","keywords":["cloud","rain","sun","sun behind rain cloud"]},{"id":":cloud_with_rain:","symbol":"🌧","group":"travel","keywords":["cloud","cloud with rain","rain"]},{"id":":cloud_with_snow:","symbol":"🌨","group":"travel","keywords":["cloud","cloud with snow","cold","snow"]},{"id":":cloud_with_lightning:","symbol":"🌩","group":"travel","keywords":["cloud","cloud with lightning","lightning"]},{"id":":tornado:","symbol":"🌪","group":"travel","keywords":["cloud","tornado","whirlwind"]},{"id":":fog:","symbol":"🌫","group":"travel","keywords":["cloud","fog"]},{"id":":wind_face:","symbol":"🌬","group":"travel","keywords":["blow","cloud","face","wind"]},{"id":":cyclone:","symbol":"🌀","group":"travel","keywords":["cyclone","dizzy","hurricane","twister","typhoon"]},{"id":":rainbow:","symbol":"🌈","group":"travel","keywords":["rain","rainbow"]},{"id":":closed_umbrella:","symbol":"🌂","group":"travel","keywords":["closed umbrella","clothing","rain","umbrella"]},{"id":":umbrella:","symbol":"☂","group":"travel","keywords":["clothing","rain","umbrella"]},{"id":":umbrella_with_rain_drops:","symbol":"☔","group":"travel","keywords":["clothing","drop","rain","umbrella","umbrella with rain drops"]},{"id":":umbrella_on_ground:","symbol":"⛱","group":"travel","keywords":["rain","sun","umbrella","umbrella on ground"]},{"id":":high_voltage:","symbol":"⚡","group":"travel","keywords":["danger","electric","high voltage","lightning","voltage","zap"]},{"id":":snowflake:","symbol":"❄","group":"travel","keywords":["cold","snow","snowflake"]},{"id":":snowman:","symbol":"☃","group":"travel","keywords":["cold","snow","snowman"]},{"id":":snowman_without_snow:","symbol":"⛄","group":"travel","keywords":["cold","snow","snowman","snowman without snow"]},{"id":":comet:","symbol":"☄","group":"travel","keywords":["comet","space"]},{"id":":fire:","symbol":"🔥","group":"travel","keywords":["fire","flame","tool"]},{"id":":droplet:","symbol":"💧","group":"travel","keywords":["cold","comic","drop","droplet","sweat"]},{"id":":water_wave:","symbol":"🌊","group":"travel","keywords":["ocean","water","wave"]},{"id":":jack-o-lantern:","symbol":"🎃","group":"activities","keywords":["celebration","halloween","jack","jack-o-lantern","lantern"]},{"id":":christmas_tree:","symbol":"🎄","group":"activities","keywords":["celebration","Christmas","tree"]},{"id":":fireworks:","symbol":"🎆","group":"activities","keywords":["celebration","fireworks"]},{"id":":sparkler:","symbol":"🎇","group":"activities","keywords":["celebration","fireworks","sparkle","sparkler"]},{"id":":sparkles:","symbol":"✨","group":"activities","keywords":["sparkle","sparkles","star"]},{"id":":balloon:","symbol":"🎈","group":"activities","keywords":["balloon","celebration"]},{"id":":party_popper:","symbol":"🎉","group":"activities","keywords":["celebration","party","popper","tada"]},{"id":":confetti_ball:","symbol":"🎊","group":"activities","keywords":["ball","celebration","confetti"]},{"id":":tanabata_tree:","symbol":"🎋","group":"activities","keywords":["banner","celebration","Japanese","tanabata tree","tree"]},{"id":":pine_decoration:","symbol":"🎍","group":"activities","keywords":["bamboo","celebration","Japanese","pine","pine decoration"]},{"id":":japanese_dolls:","symbol":"🎎","group":"activities","keywords":["celebration","doll","festival","Japanese","Japanese dolls"]},{"id":":carp_streamer:","symbol":"🎏","group":"activities","keywords":["carp","celebration","streamer"]},{"id":":wind_chime:","symbol":"🎐","group":"activities","keywords":["bell","celebration","chime","wind"]},{"id":":moon_viewing_ceremony:","symbol":"🎑","group":"activities","keywords":["celebration","ceremony","moon","moon viewing ceremony"]},{"id":":ribbon:","symbol":"🎀","group":"activities","keywords":["celebration","ribbon"]},{"id":":wrapped_gift:","symbol":"🎁","group":"activities","keywords":["box","celebration","gift","present","wrapped"]},{"id":":reminder_ribbon:","symbol":"🎗","group":"activities","keywords":["celebration","reminder","ribbon"]},{"id":":admission_tickets:","symbol":"🎟","group":"activities","keywords":["admission","admission tickets","ticket"]},{"id":":ticket:","symbol":"🎫","group":"activities","keywords":["admission","ticket"]},{"id":":military_medal:","symbol":"🎖","group":"activities","keywords":["celebration","medal","military"]},{"id":":trophy:","symbol":"🏆","group":"activities","keywords":["prize","trophy"]},{"id":":sports_medal:","symbol":"🏅","group":"activities","keywords":["medal","sports medal"]},{"id":":1st_place_medal:","symbol":"🥇","group":"activities","keywords":["1st place medal","first","gold","medal"]},{"id":":2nd_place_medal:","symbol":"🥈","group":"activities","keywords":["2nd place medal","medal","second","silver"]},{"id":":3rd_place_medal:","symbol":"🥉","group":"activities","keywords":["3rd place medal","bronze","medal","third"]},{"id":":soccer_ball:","symbol":"⚽","group":"activities","keywords":["ball","football","soccer"]},{"id":":baseball:","symbol":"⚾","group":"activities","keywords":["ball","baseball"]},{"id":":basketball:","symbol":"🏀","group":"activities","keywords":["ball","basketball","hoop"]},{"id":":volleyball:","symbol":"🏐","group":"activities","keywords":["ball","game","volleyball"]},{"id":":american_football:","symbol":"🏈","group":"activities","keywords":["american","ball","football"]},{"id":":rugby_football:","symbol":"🏉","group":"activities","keywords":["ball","football","rugby"]},{"id":":tennis:","symbol":"🎾","group":"activities","keywords":["ball","racquet","tennis"]},{"id":":bowling:","symbol":"🎳","group":"activities","keywords":["ball","bowling","game"]},{"id":":cricket_game:","symbol":"🏏","group":"activities","keywords":["ball","bat","cricket game","game"]},{"id":":field_hockey:","symbol":"🏑","group":"activities","keywords":["ball","field","game","hockey","stick"]},{"id":":ice_hockey:","symbol":"🏒","group":"activities","keywords":["game","hockey","ice","puck","stick"]},{"id":":ping_pong:","symbol":"🏓","group":"activities","keywords":["ball","bat","game","paddle","ping pong","table tennis"]},{"id":":badminton:","symbol":"🏸","group":"activities","keywords":["badminton","birdie","game","racquet","shuttlecock"]},{"id":":boxing_glove:","symbol":"🥊","group":"activities","keywords":["boxing","glove"]},{"id":":martial_arts_uniform:","symbol":"🥋","group":"activities","keywords":["judo","karate","martial arts","martial arts uniform","taekwondo","uniform"]},{"id":":goal_net:","symbol":"🥅","group":"activities","keywords":["goal","net"]},{"id":":flag_in_hole:","symbol":"⛳","group":"activities","keywords":["flag in hole","golf","hole"]},{"id":":ice_skate:","symbol":"⛸","group":"activities","keywords":["ice","skate"]},{"id":":fishing_pole:","symbol":"🎣","group":"activities","keywords":["fish","fishing pole","pole"]},{"id":":running_shirt:","symbol":"🎽","group":"activities","keywords":["athletics","running","sash","shirt"]},{"id":":skis:","symbol":"🎿","group":"activities","keywords":["ski","skis","snow"]},{"id":":sled:","symbol":"🛷","group":"activities","keywords":["sled","sledge","sleigh",""]},{"id":":curling_stone:","symbol":"🥌","group":"activities","keywords":["curling stone","game","rock"]},{"id":":direct_hit:","symbol":"🎯","group":"activities","keywords":["bullseye","dart","direct hit","game","hit","target"]},{"id":":pool_8_ball:","symbol":"🎱","group":"activities","keywords":["8","ball","billiard","eight","game","pool 8 ball"]},{"id":":crystal_ball:","symbol":"🔮","group":"activities","keywords":["ball","crystal","fairy tale","fantasy","fortune","tool"]},{"id":":video_game:","symbol":"🎮","group":"activities","keywords":["controller","game","video game"]},{"id":":joystick:","symbol":"🕹","group":"activities","keywords":["game","joystick","video game"]},{"id":":slot_machine:","symbol":"🎰","group":"activities","keywords":["game","slot","slot machine"]},{"id":":game_die:","symbol":"🎲","group":"activities","keywords":["dice","die","game"]},{"id":":spade_suit:","symbol":"♠","group":"activities","keywords":["card","game","spade suit"]},{"id":":heart_suit:","symbol":"♥","group":"activities","keywords":["card","game","heart suit"]},{"id":":diamond_suit:","symbol":"♦","group":"activities","keywords":["card","diamond suit","game"]},{"id":":club_suit:","symbol":"♣","group":"activities","keywords":["card","club suit","game"]},{"id":":joker:","symbol":"🃏","group":"activities","keywords":["card","game","joker","wildcard"]},{"id":":mahjong_red_dragon:","symbol":"🀄","group":"activities","keywords":["game","mahjong","mahjong red dragon","red"]},{"id":":flower_playing_cards:","symbol":"🎴","group":"activities","keywords":["card","flower","flower playing cards","game","Japanese","playing"]},{"id":":performing_arts:","symbol":"🎭","group":"activities","keywords":["art","mask","performing","performing arts","theater","theatre"]},{"id":":framed_picture:","symbol":"🖼","group":"activities","keywords":["art","frame","framed picture","museum","painting","picture"]},{"id":":artist_palette:","symbol":"🎨","group":"activities","keywords":["art","artist palette","museum","painting","palette"]},{"id":":muted_speaker:","symbol":"🔇","group":"objects","keywords":["mute","muted speaker","quiet","silent","speaker"]},{"id":":speaker_low_volume:","symbol":"🔈","group":"objects","keywords":["soft","speaker low volume"]},{"id":":speaker_medium_volume:","symbol":"🔉","group":"objects","keywords":["medium","speaker medium volume"]},{"id":":speaker_high_volume:","symbol":"🔊","group":"objects","keywords":["loud","speaker high volume"]},{"id":":loudspeaker:","symbol":"📢","group":"objects","keywords":["loud","loudspeaker","public address"]},{"id":":megaphone:","symbol":"📣","group":"objects","keywords":["cheering","megaphone"]},{"id":":postal_horn:","symbol":"📯","group":"objects","keywords":["horn","post","postal"]},{"id":":bell:","symbol":"🔔","group":"objects","keywords":["bell"]},{"id":":bell_with_slash:","symbol":"🔕","group":"objects","keywords":["bell","bell with slash","forbidden","mute","quiet","silent"]},{"id":":musical_score:","symbol":"🎼","group":"objects","keywords":["music","musical score","score"]},{"id":":musical_note:","symbol":"🎵","group":"objects","keywords":["music","musical note","note"]},{"id":":musical_notes:","symbol":"🎶","group":"objects","keywords":["music","musical notes","note","notes"]},{"id":":studio_microphone:","symbol":"🎙","group":"objects","keywords":["mic","microphone","music","studio"]},{"id":":level_slider:","symbol":"🎚","group":"objects","keywords":["level","music","slider"]},{"id":":control_knobs:","symbol":"🎛","group":"objects","keywords":["control","knobs","music"]},{"id":":microphone:","symbol":"🎤","group":"objects","keywords":["karaoke","mic","microphone"]},{"id":":headphone:","symbol":"🎧","group":"objects","keywords":["earbud","headphone"]},{"id":":radio:","symbol":"📻","group":"objects","keywords":["radio","video"]},{"id":":saxophone:","symbol":"🎷","group":"objects","keywords":["instrument","music","sax","saxophone"]},{"id":":guitar:","symbol":"🎸","group":"objects","keywords":["guitar","instrument","music"]},{"id":":musical_keyboard:","symbol":"🎹","group":"objects","keywords":["instrument","keyboard","music","musical keyboard","piano"]},{"id":":trumpet:","symbol":"🎺","group":"objects","keywords":["instrument","music","trumpet"]},{"id":":violin:","symbol":"🎻","group":"objects","keywords":["instrument","music","violin"]},{"id":":drum:","symbol":"🥁","group":"objects","keywords":["drum","drumsticks","music"]},{"id":":mobile_phone:","symbol":"📱","group":"objects","keywords":["cell","mobile","phone","telephone"]},{"id":":mobile_phone_with_arrow:","symbol":"📲","group":"objects","keywords":["arrow","cell","mobile","mobile phone with arrow","phone","receive"]},{"id":":telephone:","symbol":"☎","group":"objects","keywords":["phone","telephone"]},{"id":":telephone_receiver:","symbol":"📞","group":"objects","keywords":["phone","receiver","telephone"]},{"id":":pager:","symbol":"📟","group":"objects","keywords":["pager"]},{"id":":fax_machine:","symbol":"📠","group":"objects","keywords":["fax","fax machine"]},{"id":":battery:","symbol":"🔋","group":"objects","keywords":["battery"]},{"id":":electric_plug:","symbol":"🔌","group":"objects","keywords":["electric","electricity","plug"]},{"id":":laptop_computer:","symbol":"💻","group":"objects","keywords":["computer","laptop computer","pc","personal"]},{"id":":desktop_computer:","symbol":"🖥","group":"objects","keywords":["computer","desktop"]},{"id":":printer:","symbol":"🖨","group":"objects","keywords":["computer","printer"]},{"id":":keyboard:","symbol":"⌨","group":"objects","keywords":["computer","keyboard"]},{"id":":computer_mouse:","symbol":"🖱","group":"objects","keywords":["computer","computer mouse"]},{"id":":trackball:","symbol":"🖲","group":"objects","keywords":["computer","trackball"]},{"id":":computer_disk:","symbol":"💽","group":"objects","keywords":["computer","disk","minidisk","optical"]},{"id":":floppy_disk:","symbol":"💾","group":"objects","keywords":["computer","disk","floppy"]},{"id":":optical_disk:","symbol":"💿","group":"objects","keywords":["cd","computer","disk","optical"]},{"id":":dvd:","symbol":"📀","group":"objects","keywords":["blu-ray","computer","disk","dvd","optical"]},{"id":":movie_camera:","symbol":"🎥","group":"objects","keywords":["camera","cinema","movie"]},{"id":":film_frames:","symbol":"🎞","group":"objects","keywords":["cinema","film","frames","movie"]},{"id":":film_projector:","symbol":"📽","group":"objects","keywords":["cinema","film","movie","projector","video"]},{"id":":clapper_board:","symbol":"🎬","group":"objects","keywords":["clapper","clapper board","movie"]},{"id":":television:","symbol":"📺","group":"objects","keywords":["television","tv","video"]},{"id":":camera:","symbol":"📷","group":"objects","keywords":["camera","video"]},{"id":":camera_with_flash:","symbol":"📸","group":"objects","keywords":["camera","camera with flash","flash","video"]},{"id":":video_camera:","symbol":"📹","group":"objects","keywords":["camera","video"]},{"id":":videocassette:","symbol":"📼","group":"objects","keywords":["tape","vhs","video","videocassette"]},{"id":":magnifying_glass_tilted_left:","symbol":"🔍","group":"objects","keywords":["glass","magnifying","magnifying glass tilted left","search","tool"]},{"id":":magnifying_glass_tilted_right:","symbol":"🔎","group":"objects","keywords":["glass","magnifying","magnifying glass tilted right","search","tool"]},{"id":":candle:","symbol":"🕯","group":"objects","keywords":["candle","light"]},{"id":":light_bulb:","symbol":"💡","group":"objects","keywords":["bulb","comic","electric","idea","light"]},{"id":":flashlight:","symbol":"🔦","group":"objects","keywords":["electric","flashlight","light","tool","torch"]},{"id":":red_paper_lantern:","symbol":"🏮","group":"objects","keywords":["bar","lantern","light","red","red paper lantern"]},{"id":":notebook_with_decorative_cover:","symbol":"📔","group":"objects","keywords":["book","cover","decorated","notebook","notebook with decorative cover"]},{"id":":closed_book:","symbol":"📕","group":"objects","keywords":["book","closed"]},{"id":":open_book:","symbol":"📖","group":"objects","keywords":["book","open"]},{"id":":green_book:","symbol":"📗","group":"objects","keywords":["book","green"]},{"id":":blue_book:","symbol":"📘","group":"objects","keywords":["blue","book"]},{"id":":orange_book:","symbol":"📙","group":"objects","keywords":["book","orange"]},{"id":":books:","symbol":"📚","group":"objects","keywords":["book","books"]},{"id":":notebook:","symbol":"📓","group":"objects","keywords":["notebook"]},{"id":":ledger:","symbol":"📒","group":"objects","keywords":["ledger","notebook"]},{"id":":page_with_curl:","symbol":"📃","group":"objects","keywords":["curl","document","page","page with curl"]},{"id":":scroll:","symbol":"📜","group":"objects","keywords":["paper","scroll"]},{"id":":page_facing_up:","symbol":"📄","group":"objects","keywords":["document","page","page facing up"]},{"id":":newspaper:","symbol":"📰","group":"objects","keywords":["news","newspaper","paper"]},{"id":":rolled-up_newspaper:","symbol":"🗞","group":"objects","keywords":["news","newspaper","paper","rolled","rolled-up newspaper"]},{"id":":bookmark_tabs:","symbol":"📑","group":"objects","keywords":["bookmark","mark","marker","tabs"]},{"id":":bookmark:","symbol":"🔖","group":"objects","keywords":["bookmark","mark"]},{"id":":label:","symbol":"🏷","group":"objects","keywords":["label"]},{"id":":money_bag:","symbol":"💰","group":"objects","keywords":["bag","dollar","money","moneybag"]},{"id":":yen_banknote:","symbol":"💴","group":"objects","keywords":["banknote","bill","currency","money","note","yen"]},{"id":":dollar_banknote:","symbol":"💵","group":"objects","keywords":["banknote","bill","currency","dollar","money","note"]},{"id":":euro_banknote:","symbol":"💶","group":"objects","keywords":["banknote","bill","currency","euro","money","note"]},{"id":":pound_banknote:","symbol":"💷","group":"objects","keywords":["banknote","bill","currency","money","note","pound"]},{"id":":money_with_wings:","symbol":"💸","group":"objects","keywords":["banknote","bill","fly","money","money with wings","wings"]},{"id":":credit_card:","symbol":"💳","group":"objects","keywords":["card","credit","money"]},{"id":":chart_increasing_with_yen:","symbol":"💹","group":"objects","keywords":["chart","chart increasing with yen","graph","growth","money","yen"]},{"id":":currency_exchange:","symbol":"💱","group":"objects","keywords":["bank","currency","exchange","money"]},{"id":":heavy_dollar_sign:","symbol":"💲","group":"objects","keywords":["currency","dollar","heavy dollar sign","money"]},{"id":":envelope:","symbol":"✉","group":"objects","keywords":["email","envelope","letter"]},{"id":":e-mail:","symbol":"📧","group":"objects","keywords":["e-mail","email","letter","mail"]},{"id":":incoming_envelope:","symbol":"📨","group":"objects","keywords":["e-mail","email","envelope","incoming","letter","receive"]},{"id":":envelope_with_arrow:","symbol":"📩","group":"objects","keywords":["arrow","e-mail","email","envelope","envelope with arrow","outgoing"]},{"id":":outbox_tray:","symbol":"📤","group":"objects","keywords":["box","letter","mail","outbox","sent","tray"]},{"id":":inbox_tray:","symbol":"📥","group":"objects","keywords":["box","inbox","letter","mail","receive","tray"]},{"id":":package:","symbol":"📦","group":"objects","keywords":["box","package","parcel"]},{"id":":closed_mailbox_with_raised_flag:","symbol":"📫","group":"objects","keywords":["closed","closed mailbox with raised flag","mail","mailbox","postbox"]},{"id":":closed_mailbox_with_lowered_flag:","symbol":"📪","group":"objects","keywords":["closed","closed mailbox with lowered flag","lowered","mail","mailbox","postbox"]},{"id":":open_mailbox_with_raised_flag:","symbol":"📬","group":"objects","keywords":["mail","mailbox","open","open mailbox with raised flag","postbox"]},{"id":":open_mailbox_with_lowered_flag:","symbol":"📭","group":"objects","keywords":["lowered","mail","mailbox","open","open mailbox with lowered flag","postbox"]},{"id":":postbox:","symbol":"📮","group":"objects","keywords":["mail","mailbox","postbox"]},{"id":":ballot_box_with_ballot:","symbol":"🗳","group":"objects","keywords":["ballot","ballot box with ballot","box"]},{"id":":pencil:","symbol":"✏","group":"objects","keywords":["pencil"]},{"id":":black_nib:","symbol":"✒","group":"objects","keywords":["black nib","nib","pen"]},{"id":":fountain_pen:","symbol":"🖋","group":"objects","keywords":["fountain","pen"]},{"id":":pen:","symbol":"🖊","group":"objects","keywords":["ballpoint","pen"]},{"id":":paintbrush:","symbol":"🖌","group":"objects","keywords":["paintbrush","painting"]},{"id":":crayon:","symbol":"🖍","group":"objects","keywords":["crayon"]},{"id":":memo:","symbol":"📝","group":"objects","keywords":["memo","pencil"]},{"id":":briefcase:","symbol":"💼","group":"objects","keywords":["briefcase"]},{"id":":file_folder:","symbol":"📁","group":"objects","keywords":["file","folder"]},{"id":":open_file_folder:","symbol":"📂","group":"objects","keywords":["file","folder","open"]},{"id":":card_index_dividers:","symbol":"🗂","group":"objects","keywords":["card","dividers","index"]},{"id":":calendar:","symbol":"📅","group":"objects","keywords":["calendar","date"]},{"id":":tear-off_calendar:","symbol":"📆","group":"objects","keywords":["calendar","tear-off calendar"]},{"id":":spiral_notepad:","symbol":"🗒","group":"objects","keywords":["note","pad","spiral","spiral notepad"]},{"id":":spiral_calendar:","symbol":"🗓","group":"objects","keywords":["calendar","pad","spiral"]},{"id":":card_index:","symbol":"📇","group":"objects","keywords":["card","index","rolodex"]},{"id":":chart_increasing:","symbol":"📈","group":"objects","keywords":["chart","chart increasing","graph","growth","trend","upward"]},{"id":":chart_decreasing:","symbol":"📉","group":"objects","keywords":["chart","chart decreasing","down","graph","trend"]},{"id":":bar_chart:","symbol":"📊","group":"objects","keywords":["bar","chart","graph"]},{"id":":clipboard:","symbol":"📋","group":"objects","keywords":["clipboard"]},{"id":":pushpin:","symbol":"📌","group":"objects","keywords":["pin","pushpin"]},{"id":":round_pushpin:","symbol":"📍","group":"objects","keywords":["pin","pushpin","round pushpin"]},{"id":":paperclip:","symbol":"📎","group":"objects","keywords":["paperclip"]},{"id":":linked_paperclips:","symbol":"🖇","group":"objects","keywords":["link","linked paperclips","paperclip"]},{"id":":straight_ruler:","symbol":"📏","group":"objects","keywords":["ruler","straight edge","straight ruler"]},{"id":":triangular_ruler:","symbol":"📐","group":"objects","keywords":["ruler","set","triangle","triangular ruler"]},{"id":":scissors:","symbol":"✂","group":"objects","keywords":["cutting","scissors","tool"]},{"id":":card_file_box:","symbol":"🗃","group":"objects","keywords":["box","card","file"]},{"id":":file_cabinet:","symbol":"🗄","group":"objects","keywords":["cabinet","file","filing"]},{"id":":wastebasket:","symbol":"🗑","group":"objects","keywords":["wastebasket"]},{"id":":locked:","symbol":"🔒","group":"objects","keywords":["closed","locked"]},{"id":":unlocked:","symbol":"🔓","group":"objects","keywords":["lock","open","unlock","unlocked"]},{"id":":locked_with_pen:","symbol":"🔏","group":"objects","keywords":["ink","lock","locked with pen","nib","pen","privacy"]},{"id":":locked_with_key:","symbol":"🔐","group":"objects","keywords":["closed","key","lock","locked with key","secure"]},{"id":":key:","symbol":"🔑","group":"objects","keywords":["key","lock","password"]},{"id":":old_key:","symbol":"🗝","group":"objects","keywords":["clue","key","lock","old"]},{"id":":hammer:","symbol":"🔨","group":"objects","keywords":["hammer","tool"]},{"id":":pick:","symbol":"⛏","group":"objects","keywords":["mining","pick","tool"]},{"id":":hammer_and_pick:","symbol":"⚒","group":"objects","keywords":["hammer","hammer and pick","pick","tool"]},{"id":":hammer_and_wrench:","symbol":"🛠","group":"objects","keywords":["hammer","hammer and wrench","spanner","tool","wrench"]},{"id":":dagger:","symbol":"🗡","group":"objects","keywords":["dagger","knife","weapon"]},{"id":":crossed_swords:","symbol":"⚔","group":"objects","keywords":["crossed","swords","weapon"]},{"id":":pistol:","symbol":"🔫","group":"objects","keywords":["gun","handgun","pistol","revolver","tool","weapon"]},{"id":":bow_and_arrow:","symbol":"🏹","group":"objects","keywords":["archer","arrow","bow","bow and arrow","Sagittarius","zodiac"]},{"id":":shield:","symbol":"🛡","group":"objects","keywords":["shield","weapon"]},{"id":":wrench:","symbol":"🔧","group":"objects","keywords":["spanner","tool","wrench"]},{"id":":nut_and_bolt:","symbol":"🔩","group":"objects","keywords":["bolt","nut","nut and bolt","tool"]},{"id":":gear:","symbol":"⚙","group":"objects","keywords":["cog","cogwheel","gear","tool"]},{"id":":clamp:","symbol":"🗜","group":"objects","keywords":["clamp","compress","tool","vice"]},{"id":":balance_scale:","symbol":"⚖","group":"objects","keywords":["balance","justice","Libra","scale","zodiac"]},{"id":":link:","symbol":"🔗","group":"objects","keywords":["link"]},{"id":":chains:","symbol":"⛓","group":"objects","keywords":["chain","chains"]},{"id":":alembic:","symbol":"⚗","group":"objects","keywords":["alembic","chemistry","tool"]},{"id":":microscope:","symbol":"🔬","group":"objects","keywords":["microscope","science","tool"]},{"id":":telescope:","symbol":"🔭","group":"objects","keywords":["science","telescope","tool"]},{"id":":satellite_antenna:","symbol":"📡","group":"objects","keywords":["antenna","dish","satellite"]},{"id":":syringe:","symbol":"💉","group":"objects","keywords":["medicine","needle","shot","sick","syringe"]},{"id":":pill:","symbol":"💊","group":"objects","keywords":["doctor","medicine","pill","sick"]},{"id":":door:","symbol":"🚪","group":"objects","keywords":["door"]},{"id":":bed:","symbol":"🛏","group":"objects","keywords":["bed","hotel","sleep"]},{"id":":couch_and_lamp:","symbol":"🛋","group":"objects","keywords":["couch","couch and lamp","hotel","lamp"]},{"id":":toilet:","symbol":"🚽","group":"objects","keywords":["toilet"]},{"id":":shower:","symbol":"🚿","group":"objects","keywords":["shower","water"]},{"id":":bathtub:","symbol":"🛁","group":"objects","keywords":["bath","bathtub"]},{"id":":shopping_cart:","symbol":"🛒","group":"objects","keywords":["cart","shopping","trolley"]},{"id":":cigarette:","symbol":"🚬","group":"objects","keywords":["cigarette","smoking"]},{"id":":coffin:","symbol":"⚰","group":"objects","keywords":["coffin","death"]},{"id":":funeral_urn:","symbol":"⚱","group":"objects","keywords":["ashes","death","funeral","urn"]},{"id":":moai:","symbol":"🗿","group":"objects","keywords":["face","moai","moyai","statue"]},{"id":":atm_sign:","symbol":"🏧","group":"symbols","keywords":["atm","ATM sign","automated","bank","teller"]},{"id":":litter_in_bin_sign:","symbol":"🚮","group":"symbols","keywords":["litter","litter bin","litter in bin sign"]},{"id":":potable_water:","symbol":"🚰","group":"symbols","keywords":["drinking","potable","water"]},{"id":":wheelchair_symbol:","symbol":"♿","group":"symbols","keywords":["access","wheelchair symbol"]},{"id":":men’s_room:","symbol":"🚹","group":"symbols","keywords":["lavatory","man","men’s room","restroom","wc"]},{"id":":women’s_room:","symbol":"🚺","group":"symbols","keywords":["lavatory","restroom","wc","woman","women’s room"]},{"id":":restroom:","symbol":"🚻","group":"symbols","keywords":["lavatory","restroom","WC"]},{"id":":baby_symbol:","symbol":"🚼","group":"symbols","keywords":["baby","baby symbol","changing"]},{"id":":water_closet:","symbol":"🚾","group":"symbols","keywords":["closet","lavatory","restroom","water","wc"]},{"id":":passport_control:","symbol":"🛂","group":"symbols","keywords":["control","passport"]},{"id":":customs:","symbol":"🛃","group":"symbols","keywords":["customs"]},{"id":":baggage_claim:","symbol":"🛄","group":"symbols","keywords":["baggage","claim"]},{"id":":left_luggage:","symbol":"🛅","group":"symbols","keywords":["baggage","left luggage","locker","luggage"]},{"id":":warning:","symbol":"⚠","group":"symbols","keywords":["warning"]},{"id":":children_crossing:","symbol":"🚸","group":"symbols","keywords":["child","children crossing","crossing","pedestrian","traffic"]},{"id":":no_entry:","symbol":"⛔","group":"symbols","keywords":["entry","forbidden","no","not","prohibited","traffic"]},{"id":":prohibited:","symbol":"🚫","group":"symbols","keywords":["entry","forbidden","no","not","prohibited"]},{"id":":no_bicycles:","symbol":"🚳","group":"symbols","keywords":["bicycle","bike","forbidden","no","no bicycles","prohibited"]},{"id":":no_smoking:","symbol":"🚭","group":"symbols","keywords":["forbidden","no","not","prohibited","smoking"]},{"id":":no_littering:","symbol":"🚯","group":"symbols","keywords":["forbidden","litter","no","no littering","not","prohibited"]},{"id":":non-potable_water:","symbol":"🚱","group":"symbols","keywords":["non-drinking","non-potable","water"]},{"id":":no_pedestrians:","symbol":"🚷","group":"symbols","keywords":["forbidden","no","no pedestrians","not","pedestrian","prohibited"]},{"id":":no_mobile_phones:","symbol":"📵","group":"symbols","keywords":["cell","forbidden","mobile","no","no mobile phones","phone"]},{"id":":no_one_under_eighteen:","symbol":"🔞","group":"symbols","keywords":["18","age restriction","eighteen","no one under eighteen","prohibited","underage"]},{"id":":radioactive:","symbol":"☢","group":"symbols","keywords":["radioactive","sign"]},{"id":":biohazard:","symbol":"☣","group":"symbols","keywords":["biohazard","sign"]},{"id":":up_arrow:","symbol":"⬆","group":"symbols","keywords":["arrow","cardinal","direction","north","up arrow"]},{"id":":up-right_arrow:","symbol":"↗","group":"symbols","keywords":["arrow","direction","intercardinal","northeast","up-right arrow"]},{"id":":right_arrow:","symbol":"➡","group":"symbols","keywords":["arrow","cardinal","direction","east","right arrow"]},{"id":":down-right_arrow:","symbol":"↘","group":"symbols","keywords":["arrow","direction","down-right arrow","intercardinal","southeast"]},{"id":":down_arrow:","symbol":"⬇","group":"symbols","keywords":["arrow","cardinal","direction","down","south"]},{"id":":down-left_arrow:","symbol":"↙","group":"symbols","keywords":["arrow","direction","down-left arrow","intercardinal","southwest"]},{"id":":left_arrow:","symbol":"⬅","group":"symbols","keywords":["arrow","cardinal","direction","left arrow","west"]},{"id":":up-left_arrow:","symbol":"↖","group":"symbols","keywords":["arrow","direction","intercardinal","northwest","up-left arrow"]},{"id":":up-down_arrow:","symbol":"↕","group":"symbols","keywords":["arrow","up-down arrow"]},{"id":":left-right_arrow:","symbol":"↔","group":"symbols","keywords":["arrow","left-right arrow"]},{"id":":right_arrow_curving_left:","symbol":"↩","group":"symbols","keywords":["arrow","right arrow curving left"]},{"id":":left_arrow_curving_right:","symbol":"↪","group":"symbols","keywords":["arrow","left arrow curving right"]},{"id":":right_arrow_curving_up:","symbol":"⤴","group":"symbols","keywords":["arrow","right arrow curving up"]},{"id":":right_arrow_curving_down:","symbol":"⤵","group":"symbols","keywords":["arrow","down","right arrow curving down"]},{"id":":clockwise_vertical_arrows:","symbol":"🔃","group":"symbols","keywords":["arrow","clockwise","clockwise vertical arrows","reload"]},{"id":":counterclockwise_arrows_button:","symbol":"🔄","group":"symbols","keywords":["anticlockwise","arrow","counterclockwise","counterclockwise arrows button","withershins"]},{"id":":back_arrow:","symbol":"🔙","group":"symbols","keywords":["arrow","back","BACK arrow"]},{"id":":end_arrow:","symbol":"🔚","group":"symbols","keywords":["arrow","end","END arrow"]},{"id":":on!_arrow:","symbol":"🔛","group":"symbols","keywords":["arrow","mark","on","ON! arrow"]},{"id":":soon_arrow:","symbol":"🔜","group":"symbols","keywords":["arrow","soon","SOON arrow"]},{"id":":top_arrow:","symbol":"🔝","group":"symbols","keywords":["arrow","top","TOP arrow","up"]},{"id":":place_of_worship:","symbol":"🛐","group":"symbols","keywords":["place of worship","religion","worship"]},{"id":":atom_symbol:","symbol":"⚛","group":"symbols","keywords":["atheist","atom","atom symbol"]},{"id":":om:","symbol":"🕉","group":"symbols","keywords":["Hindu","om","religion"]},{"id":":star_of_david:","symbol":"✡","group":"symbols","keywords":["David","Jew","Jewish","religion","star","star of David"]},{"id":":wheel_of_dharma:","symbol":"☸","group":"symbols","keywords":["Buddhist","dharma","religion","wheel","wheel of dharma"]},{"id":":yin_yang:","symbol":"☯","group":"symbols","keywords":["religion","tao","taoist","yang","yin"]},{"id":":latin_cross:","symbol":"✝","group":"symbols","keywords":["Christian","cross","latin cross","religion"]},{"id":":orthodox_cross:","symbol":"☦","group":"symbols","keywords":["Christian","cross","orthodox cross","religion"]},{"id":":star_and_crescent:","symbol":"☪","group":"symbols","keywords":["islam","Muslim","religion","star and crescent"]},{"id":":peace_symbol:","symbol":"☮","group":"symbols","keywords":["peace","peace symbol"]},{"id":":menorah:","symbol":"🕎","group":"symbols","keywords":["candelabrum","candlestick","menorah","religion"]},{"id":":dotted_six-pointed_star:","symbol":"🔯","group":"symbols","keywords":["dotted six-pointed star","fortune","star"]},{"id":":aries:","symbol":"♈","group":"symbols","keywords":["Aries","ram","zodiac"]},{"id":":taurus:","symbol":"♉","group":"symbols","keywords":["bull","ox","Taurus","zodiac"]},{"id":":gemini:","symbol":"♊","group":"symbols","keywords":["Gemini","twins","zodiac"]},{"id":":cancer:","symbol":"♋","group":"symbols","keywords":["Cancer","crab","zodiac"]},{"id":":leo:","symbol":"♌","group":"symbols","keywords":["Leo","lion","zodiac"]},{"id":":virgo:","symbol":"♍","group":"symbols","keywords":["Virgo","zodiac"]},{"id":":libra:","symbol":"♎","group":"symbols","keywords":["balance","justice","Libra","scales","zodiac"]},{"id":":scorpio:","symbol":"♏","group":"symbols","keywords":["Scorpio","scorpion","scorpius","zodiac"]},{"id":":sagittarius:","symbol":"♐","group":"symbols","keywords":["archer","Sagittarius","zodiac"]},{"id":":capricorn:","symbol":"♑","group":"symbols","keywords":["Capricorn","goat","zodiac"]},{"id":":aquarius:","symbol":"♒","group":"symbols","keywords":["Aquarius","bearer","water","zodiac"]},{"id":":pisces:","symbol":"♓","group":"symbols","keywords":["fish","Pisces","zodiac"]},{"id":":ophiuchus:","symbol":"⛎","group":"symbols","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":shuffle_tracks_button:","symbol":"🔀","group":"symbols","keywords":["arrow","crossed","shuffle tracks button"]},{"id":":repeat_button:","symbol":"🔁","group":"symbols","keywords":["arrow","clockwise","repeat","repeat button"]},{"id":":repeat_single_button:","symbol":"🔂","group":"symbols","keywords":["arrow","clockwise","once","repeat single button"]},{"id":":play_button:","symbol":"▶","group":"symbols","keywords":["arrow","play","play button","right","triangle"]},{"id":":fast-forward_button:","symbol":"⏩","group":"symbols","keywords":["arrow","double","fast","fast-forward button","forward"]},{"id":":next_track_button:","symbol":"⏭","group":"symbols","keywords":["arrow","next scene","next track","next track button","triangle"]},{"id":":play_or_pause_button:","symbol":"⏯","group":"symbols","keywords":["arrow","pause","play","play or pause button","right","triangle"]},{"id":":reverse_button:","symbol":"◀","group":"symbols","keywords":["arrow","left","reverse","reverse button","triangle"]},{"id":":fast_reverse_button:","symbol":"⏪","group":"symbols","keywords":["arrow","double","fast reverse button","rewind"]},{"id":":last_track_button:","symbol":"⏮","group":"symbols","keywords":["arrow","last track button","previous scene","previous track","triangle"]},{"id":":upwards_button:","symbol":"🔼","group":"symbols","keywords":["arrow","button","red","upwards button"]},{"id":":fast_up_button:","symbol":"⏫","group":"symbols","keywords":["arrow","double","fast up button"]},{"id":":downwards_button:","symbol":"🔽","group":"symbols","keywords":["arrow","button","down","downwards button","red"]},{"id":":fast_down_button:","symbol":"⏬","group":"symbols","keywords":["arrow","double","down","fast down button"]},{"id":":pause_button:","symbol":"⏸","group":"symbols","keywords":["bar","double","pause","pause button","vertical"]},{"id":":stop_button:","symbol":"⏹","group":"symbols","keywords":["square","stop","stop button"]},{"id":":record_button:","symbol":"⏺","group":"symbols","keywords":["circle","record","record button"]},{"id":":eject_button:","symbol":"⏏","group":"symbols","keywords":["eject","eject button"]},{"id":":cinema:","symbol":"🎦","group":"symbols","keywords":["camera","cinema","film","movie"]},{"id":":dim_button:","symbol":"🔅","group":"symbols","keywords":["brightness","dim","dim button","low"]},{"id":":bright_button:","symbol":"🔆","group":"symbols","keywords":["bright","bright button","brightness"]},{"id":":antenna_bars:","symbol":"📶","group":"symbols","keywords":["antenna","antenna bars","bar","cell","mobile","phone"]},{"id":":vibration_mode:","symbol":"📳","group":"symbols","keywords":["cell","mobile","mode","phone","telephone","vibration"]},{"id":":mobile_phone_off:","symbol":"📴","group":"symbols","keywords":["cell","mobile","off","phone","telephone"]},{"id":":female_sign:","symbol":"♀","group":"symbols","keywords":["female sign","woman"]},{"id":":male_sign:","symbol":"♂","group":"symbols","keywords":["male sign","man"]},{"id":":medical_symbol:","symbol":"⚕","group":"symbols","keywords":["aesculapius","medical symbol","medicine","staff"]},{"id":":recycling_symbol:","symbol":"♻","group":"symbols","keywords":["recycle","recycling symbol"]},{"id":":fleur-de-lis:","symbol":"⚜","group":"symbols","keywords":["fleur-de-lis"]},{"id":":trident_emblem:","symbol":"🔱","group":"symbols","keywords":["anchor","emblem","ship","tool","trident"]},{"id":":name_badge:","symbol":"📛","group":"symbols","keywords":["badge","name"]},{"id":":japanese_symbol_for_beginner:","symbol":"🔰","group":"symbols","keywords":["beginner","chevron","Japanese","Japanese symbol for beginner","leaf"]},{"id":":heavy_large_circle:","symbol":"⭕","group":"symbols","keywords":["circle","heavy large circle","o"]},{"id":":white_heavy_check_mark:","symbol":"✅","group":"symbols","keywords":["check","mark","white heavy check mark"]},{"id":":ballot_box_with_check:","symbol":"☑","group":"symbols","keywords":["ballot","ballot box with check","box","check"]},{"id":":heavy_check_mark:","symbol":"✔","group":"symbols","keywords":["check","heavy check mark","mark"]},{"id":":heavy_multiplication_x:","symbol":"✖","group":"symbols","keywords":["cancel","heavy multiplication x","multiplication","multiply","x"]},{"id":":cross_mark:","symbol":"❌","group":"symbols","keywords":["cancel","cross mark","mark","multiplication","multiply","x"]},{"id":":cross_mark_button:","symbol":"❎","group":"symbols","keywords":["cross mark button","mark","square"]},{"id":":heavy_plus_sign:","symbol":"➕","group":"symbols","keywords":["heavy plus sign","math","plus"]},{"id":":heavy_minus_sign:","symbol":"➖","group":"symbols","keywords":["heavy minus sign","math","minus"]},{"id":":heavy_division_sign:","symbol":"➗","group":"symbols","keywords":["division","heavy division sign","math"]},{"id":":curly_loop:","symbol":"➰","group":"symbols","keywords":["curl","curly loop","loop"]},{"id":":double_curly_loop:","symbol":"➿","group":"symbols","keywords":["curl","double","double curly loop","loop"]},{"id":":part_alternation_mark:","symbol":"〽","group":"symbols","keywords":["mark","part","part alternation mark"]},{"id":":eight-spoked_asterisk:","symbol":"✳","group":"symbols","keywords":["asterisk","eight-spoked asterisk"]},{"id":":eight-pointed_star:","symbol":"✴","group":"symbols","keywords":["eight-pointed star","star"]},{"id":":sparkle:","symbol":"❇","group":"symbols","keywords":["sparkle"]},{"id":":double_exclamation_mark:","symbol":"‼","group":"symbols","keywords":["bangbang","double exclamation mark","exclamation","mark","punctuation"]},{"id":":exclamation_question_mark:","symbol":"⁉","group":"symbols","keywords":["exclamation","interrobang","mark","punctuation","question"]},{"id":":question_mark:","symbol":"❓","group":"symbols","keywords":["mark","punctuation","question"]},{"id":":white_question_mark:","symbol":"❔","group":"symbols","keywords":["mark","outlined","punctuation","question","white question mark"]},{"id":":white_exclamation_mark:","symbol":"❕","group":"symbols","keywords":["exclamation","mark","outlined","punctuation","white exclamation mark"]},{"id":":exclamation_mark:","symbol":"❗","group":"symbols","keywords":["exclamation","mark","punctuation"]},{"id":":wavy_dash:","symbol":"〰","group":"symbols","keywords":["dash","punctuation","wavy"]},{"id":":copyright:","symbol":"©","group":"symbols","keywords":["copyright"]},{"id":":registered:","symbol":"®","group":"symbols","keywords":["registered"]},{"id":":trade_mark:","symbol":"™","group":"symbols","keywords":["mark","tm","trade mark","trademark"]},{"id":":keycap_#:","symbol":"#️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_*:","symbol":"*️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_0:","symbol":"0️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_1:","symbol":"1️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_2:","symbol":"2️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_3:","symbol":"3️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_4:","symbol":"4️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_5:","symbol":"5️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_6:","symbol":"6️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_7:","symbol":"7️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_8:","symbol":"8️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_9:","symbol":"9️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_10:","symbol":"🔟","group":"symbols","keywords":["keycap"]},{"id":":hundred_points:","symbol":"💯","group":"symbols","keywords":["100","full","hundred","hundred points","score"]},{"id":":input_latin_uppercase:","symbol":"🔠","group":"symbols","keywords":["ABCD","input","latin","letters","uppercase"]},{"id":":input_latin_lowercase:","symbol":"🔡","group":"symbols","keywords":["abcd","input","latin","letters","lowercase"]},{"id":":input_numbers:","symbol":"🔢","group":"symbols","keywords":["1234","input","numbers"]},{"id":":input_symbols:","symbol":"🔣","group":"symbols","keywords":["〒♪&%","input","input symbols"]},{"id":":input_latin_letters:","symbol":"🔤","group":"symbols","keywords":["abc","alphabet","input","latin","letters"]},{"id":":a_button_(blood_type):","symbol":"🅰","group":"symbols","keywords":["a","A button (blood type)","blood type"]},{"id":":ab_button_(blood_type):","symbol":"🆎","group":"symbols","keywords":["ab","AB button (blood type)","blood type"]},{"id":":b_button_(blood_type):","symbol":"🅱","group":"symbols","keywords":["b","B button (blood type)","blood type"]},{"id":":cl_button:","symbol":"🆑","group":"symbols","keywords":["cl","CL button"]},{"id":":cool_button:","symbol":"🆒","group":"symbols","keywords":["cool","COOL button"]},{"id":":free_button:","symbol":"🆓","group":"symbols","keywords":["free","FREE button"]},{"id":":information:","symbol":"ℹ","group":"symbols","keywords":["i","information"]},{"id":":id_button:","symbol":"🆔","group":"symbols","keywords":["id","ID button","identity"]},{"id":":circled_m:","symbol":"Ⓜ","group":"symbols","keywords":["circle","circled M","m"]},{"id":":new_button:","symbol":"🆕","group":"symbols","keywords":["new","NEW button"]},{"id":":ng_button:","symbol":"🆖","group":"symbols","keywords":["ng","NG button"]},{"id":":o_button_(blood_type):","symbol":"🅾","group":"symbols","keywords":["blood type","o","O button (blood type)"]},{"id":":ok_button:","symbol":"🆗","group":"symbols","keywords":["OK","OK button"]},{"id":":p_button:","symbol":"🅿","group":"symbols","keywords":["P button","parking"]},{"id":":sos_button:","symbol":"🆘","group":"symbols","keywords":["help","sos","SOS button"]},{"id":":up!_button:","symbol":"🆙","group":"symbols","keywords":["mark","up","UP! button"]},{"id":":vs_button:","symbol":"🆚","group":"symbols","keywords":["versus","vs","VS button"]},{"id":":japanese_“here”_button:","symbol":"🈁","group":"symbols","keywords":["“here”","Japanese","Japanese “here” button","katakana","ココ"]},{"id":":japanese_“service_charge”_button:","symbol":"🈂","group":"symbols","keywords":["“service charge”","Japanese","Japanese “service charge” button","katakana","サ"]},{"id":":japanese_“monthly_amount”_button:","symbol":"🈷","group":"symbols","keywords":["“monthly amount”","ideograph","Japanese","Japanese “monthly amount” button","月"]},{"id":":japanese_“not_free_of_charge”_button:","symbol":"🈶","group":"symbols","keywords":["“not free of charge”","ideograph","Japanese","Japanese “not free of charge” button","有"]},{"id":":japanese_“reserved”_button:","symbol":"🈯","group":"symbols","keywords":["“reserved”","ideograph","Japanese","Japanese “reserved” button","指"]},{"id":":japanese_“bargain”_button:","symbol":"🉐","group":"symbols","keywords":["“bargain”","ideograph","Japanese","Japanese “bargain” button","得"]},{"id":":japanese_“discount”_button:","symbol":"🈹","group":"symbols","keywords":["“discount”","ideograph","Japanese","Japanese “discount” button","割"]},{"id":":japanese_“free_of_charge”_button:","symbol":"🈚","group":"symbols","keywords":["“free of charge”","ideograph","Japanese","Japanese “free of charge” button","無"]},{"id":":japanese_“prohibited”_button:","symbol":"🈲","group":"symbols","keywords":["“prohibited”","ideograph","Japanese","Japanese “prohibited” button","禁"]},{"id":":japanese_“acceptable”_button:","symbol":"🉑","group":"symbols","keywords":["“acceptable”","ideograph","Japanese","Japanese “acceptable” button","可"]},{"id":":japanese_“application”_button:","symbol":"🈸","group":"symbols","keywords":["“application”","ideograph","Japanese","Japanese “application” button","申"]},{"id":":japanese_“passing_grade”_button:","symbol":"🈴","group":"symbols","keywords":["“passing grade”","ideograph","Japanese","Japanese “passing grade” button","合"]},{"id":":japanese_“vacancy”_button:","symbol":"🈳","group":"symbols","keywords":["“vacancy”","ideograph","Japanese","Japanese “vacancy” button","空"]},{"id":":japanese_“congratulations”_button:","symbol":"㊗","group":"symbols","keywords":["“congratulations”","ideograph","Japanese","Japanese “congratulations” button","祝"]},{"id":":japanese_“secret”_button:","symbol":"㊙","group":"symbols","keywords":["“secret”","ideograph","Japanese","Japanese “secret” button","秘"]},{"id":":japanese_“open_for_business”_button:","symbol":"🈺","group":"symbols","keywords":["“open for business”","ideograph","Japanese","Japanese “open for business” button","営"]},{"id":":japanese_“no_vacancy”_button:","symbol":"🈵","group":"symbols","keywords":["“no vacancy”","ideograph","Japanese","Japanese “no vacancy” button","満"]},{"id":":red_circle:","symbol":"🔴","group":"symbols","keywords":["circle","geometric","red"]},{"id":":blue_circle:","symbol":"🔵","group":"symbols","keywords":["blue","circle","geometric"]},{"id":":white_circle:","symbol":"⚪","group":"symbols","keywords":["circle","geometric","white circle"]},{"id":":black_circle:","symbol":"⚫","group":"symbols","keywords":["black circle","circle","geometric"]},{"id":":white_large_square:","symbol":"⬜","group":"symbols","keywords":["geometric","square","white large square"]},{"id":":black_large_square:","symbol":"⬛","group":"symbols","keywords":["black large square","geometric","square"]},{"id":":black_medium_square:","symbol":"◼","group":"symbols","keywords":["black medium square","geometric","square"]},{"id":":white_medium_square:","symbol":"◻","group":"symbols","keywords":["geometric","square","white medium square"]},{"id":":white_medium-small_square:","symbol":"◽","group":"symbols","keywords":["geometric","square","white medium-small square"]},{"id":":black_medium-small_square:","symbol":"◾","group":"symbols","keywords":["black medium-small square","geometric","square"]},{"id":":white_small_square:","symbol":"▫","group":"symbols","keywords":["geometric","square","white small square"]},{"id":":black_small_square:","symbol":"▪","group":"symbols","keywords":["black small square","geometric","square"]},{"id":":large_orange_diamond:","symbol":"🔶","group":"symbols","keywords":["diamond","geometric","large orange diamond","orange"]},{"id":":large_blue_diamond:","symbol":"🔷","group":"symbols","keywords":["blue","diamond","geometric","large blue diamond"]},{"id":":small_orange_diamond:","symbol":"🔸","group":"symbols","keywords":["diamond","geometric","orange","small orange diamond"]},{"id":":small_blue_diamond:","symbol":"🔹","group":"symbols","keywords":["blue","diamond","geometric","small blue diamond"]},{"id":":red_triangle_pointed_up:","symbol":"🔺","group":"symbols","keywords":["geometric","red","red triangle pointed up"]},{"id":":red_triangle_pointed_down:","symbol":"🔻","group":"symbols","keywords":["down","geometric","red","red triangle pointed down"]},{"id":":diamond_with_a_dot:","symbol":"💠","group":"symbols","keywords":["comic","diamond","diamond with a dot","geometric","inside"]},{"id":":radio_button:","symbol":"🔘","group":"symbols","keywords":["button","geometric","radio"]},{"id":":black_square_button:","symbol":"🔲","group":"symbols","keywords":["black square button","button","geometric","square"]},{"id":":white_square_button:","symbol":"🔳","group":"symbols","keywords":["button","geometric","outlined","square","white square button"]},{"id":":chequered_flag:","symbol":"🏁","group":"flags","keywords":["checkered","chequered","chequered flag","racing"]},{"id":":triangular_flag:","symbol":"🚩","group":"flags","keywords":["post","triangular flag"]},{"id":":crossed_flags:","symbol":"🎌","group":"flags","keywords":["celebration","cross","crossed","crossed flags","Japanese"]},{"id":":black_flag:","symbol":"🏴","group":"flags","keywords":["black flag","waving"]},{"id":":white_flag:","symbol":"🏳","group":"flags","keywords":["waving","white flag"]},{"id":":rainbow_flag:","symbol":"🏳️‍🌈","group":"flags","keywords":["rainbow","rainbow flag"]},{"id":":flag_ascension_island:","symbol":"🇦🇨","group":"flags","keywords":["flag"]},{"id":":flag_andorra:","symbol":"🇦🇩","group":"flags","keywords":["flag"]},{"id":":flag_united_arab_emirates:","symbol":"🇦🇪","group":"flags","keywords":["flag"]},{"id":":flag_afghanistan:","symbol":"🇦🇫","group":"flags","keywords":["flag"]},{"id":":flag_antigua_&_barbuda:","symbol":"🇦🇬","group":"flags","keywords":["flag"]},{"id":":flag_anguilla:","symbol":"🇦🇮","group":"flags","keywords":["flag"]},{"id":":flag_albania:","symbol":"🇦🇱","group":"flags","keywords":["flag"]},{"id":":flag_armenia:","symbol":"🇦🇲","group":"flags","keywords":["flag"]},{"id":":flag_angola:","symbol":"🇦🇴","group":"flags","keywords":["flag"]},{"id":":flag_antarctica:","symbol":"🇦🇶","group":"flags","keywords":["flag"]},{"id":":flag_argentina:","symbol":"🇦🇷","group":"flags","keywords":["flag"]},{"id":":flag_american_samoa:","symbol":"🇦🇸","group":"flags","keywords":["flag"]},{"id":":flag_austria:","symbol":"🇦🇹","group":"flags","keywords":["flag"]},{"id":":flag_australia:","symbol":"🇦🇺","group":"flags","keywords":["flag"]},{"id":":flag_aruba:","symbol":"🇦🇼","group":"flags","keywords":["flag"]},{"id":":flag_åland_islands:","symbol":"🇦🇽","group":"flags","keywords":["flag"]},{"id":":flag_azerbaijan:","symbol":"🇦🇿","group":"flags","keywords":["flag"]},{"id":":flag_bosnia_&_herzegovina:","symbol":"🇧🇦","group":"flags","keywords":["flag"]},{"id":":flag_barbados:","symbol":"🇧🇧","group":"flags","keywords":["flag"]},{"id":":flag_bangladesh:","symbol":"🇧🇩","group":"flags","keywords":["flag"]},{"id":":flag_belgium:","symbol":"🇧🇪","group":"flags","keywords":["flag"]},{"id":":flag_burkina_faso:","symbol":"🇧🇫","group":"flags","keywords":["flag"]},{"id":":flag_bulgaria:","symbol":"🇧🇬","group":"flags","keywords":["flag"]},{"id":":flag_bahrain:","symbol":"🇧🇭","group":"flags","keywords":["flag"]},{"id":":flag_burundi:","symbol":"🇧🇮","group":"flags","keywords":["flag"]},{"id":":flag_benin:","symbol":"🇧🇯","group":"flags","keywords":["flag"]},{"id":":flag_st._barthélemy:","symbol":"🇧🇱","group":"flags","keywords":["flag"]},{"id":":flag_bermuda:","symbol":"🇧🇲","group":"flags","keywords":["flag"]},{"id":":flag_brunei:","symbol":"🇧🇳","group":"flags","keywords":["flag"]},{"id":":flag_bolivia:","symbol":"🇧🇴","group":"flags","keywords":["flag"]},{"id":":flag_caribbean_netherlands:","symbol":"🇧🇶","group":"flags","keywords":["flag"]},{"id":":flag_brazil:","symbol":"🇧🇷","group":"flags","keywords":["flag"]},{"id":":flag_bahamas:","symbol":"🇧🇸","group":"flags","keywords":["flag"]},{"id":":flag_bhutan:","symbol":"🇧🇹","group":"flags","keywords":["flag"]},{"id":":flag_bouvet_island:","symbol":"🇧🇻","group":"flags","keywords":["flag"]},{"id":":flag_botswana:","symbol":"🇧🇼","group":"flags","keywords":["flag"]},{"id":":flag_belarus:","symbol":"🇧🇾","group":"flags","keywords":["flag"]},{"id":":flag_belize:","symbol":"🇧🇿","group":"flags","keywords":["flag"]},{"id":":flag_canada:","symbol":"🇨🇦","group":"flags","keywords":["flag"]},{"id":":flag_cocos_(keeling)_islands:","symbol":"🇨🇨","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_kinshasa:","symbol":"🇨🇩","group":"flags","keywords":["flag"]},{"id":":flag_central_african_republic:","symbol":"🇨🇫","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_brazzaville:","symbol":"🇨🇬","group":"flags","keywords":["flag"]},{"id":":flag_switzerland:","symbol":"🇨🇭","group":"flags","keywords":["flag"]},{"id":":flag_côte_d’ivoire:","symbol":"🇨🇮","group":"flags","keywords":["flag"]},{"id":":flag_cook_islands:","symbol":"🇨🇰","group":"flags","keywords":["flag"]},{"id":":flag_chile:","symbol":"🇨🇱","group":"flags","keywords":["flag"]},{"id":":flag_cameroon:","symbol":"🇨🇲","group":"flags","keywords":["flag"]},{"id":":flag_china:","symbol":"🇨🇳","group":"flags","keywords":["flag"]},{"id":":flag_colombia:","symbol":"🇨🇴","group":"flags","keywords":["flag"]},{"id":":flag_clipperton_island:","symbol":"🇨🇵","group":"flags","keywords":["flag"]},{"id":":flag_costa_rica:","symbol":"🇨🇷","group":"flags","keywords":["flag"]},{"id":":flag_cuba:","symbol":"🇨🇺","group":"flags","keywords":["flag"]},{"id":":flag_cape_verde:","symbol":"🇨🇻","group":"flags","keywords":["flag"]},{"id":":flag_curaçao:","symbol":"🇨🇼","group":"flags","keywords":["flag"]},{"id":":flag_christmas_island:","symbol":"🇨🇽","group":"flags","keywords":["flag"]},{"id":":flag_cyprus:","symbol":"🇨🇾","group":"flags","keywords":["flag"]},{"id":":flag_czechia:","symbol":"🇨🇿","group":"flags","keywords":["flag"]},{"id":":flag_germany:","symbol":"🇩🇪","group":"flags","keywords":["flag"]},{"id":":flag_diego_garcia:","symbol":"🇩🇬","group":"flags","keywords":["flag"]},{"id":":flag_djibouti:","symbol":"🇩🇯","group":"flags","keywords":["flag"]},{"id":":flag_denmark:","symbol":"🇩🇰","group":"flags","keywords":["flag"]},{"id":":flag_dominica:","symbol":"🇩🇲","group":"flags","keywords":["flag"]},{"id":":flag_dominican_republic:","symbol":"🇩🇴","group":"flags","keywords":["flag"]},{"id":":flag_algeria:","symbol":"🇩🇿","group":"flags","keywords":["flag"]},{"id":":flag_ceuta_&_melilla:","symbol":"🇪🇦","group":"flags","keywords":["flag"]},{"id":":flag_ecuador:","symbol":"🇪🇨","group":"flags","keywords":["flag"]},{"id":":flag_estonia:","symbol":"🇪🇪","group":"flags","keywords":["flag"]},{"id":":flag_egypt:","symbol":"🇪🇬","group":"flags","keywords":["flag"]},{"id":":flag_western_sahara:","symbol":"🇪🇭","group":"flags","keywords":["flag"]},{"id":":flag_eritrea:","symbol":"🇪🇷","group":"flags","keywords":["flag"]},{"id":":flag_spain:","symbol":"🇪🇸","group":"flags","keywords":["flag"]},{"id":":flag_ethiopia:","symbol":"🇪🇹","group":"flags","keywords":["flag"]},{"id":":flag_european_union:","symbol":"🇪🇺","group":"flags","keywords":["flag"]},{"id":":flag_finland:","symbol":"🇫🇮","group":"flags","keywords":["flag"]},{"id":":flag_fiji:","symbol":"🇫🇯","group":"flags","keywords":["flag"]},{"id":":flag_falkland_islands:","symbol":"🇫🇰","group":"flags","keywords":["flag"]},{"id":":flag_micronesia:","symbol":"🇫🇲","group":"flags","keywords":["flag"]},{"id":":flag_faroe_islands:","symbol":"🇫🇴","group":"flags","keywords":["flag"]},{"id":":flag_france:","symbol":"🇫🇷","group":"flags","keywords":["flag"]},{"id":":flag_gabon:","symbol":"🇬🇦","group":"flags","keywords":["flag"]},{"id":":flag_united_kingdom:","symbol":"🇬🇧","group":"flags","keywords":["flag"]},{"id":":flag_grenada:","symbol":"🇬🇩","group":"flags","keywords":["flag"]},{"id":":flag_georgia:","symbol":"🇬🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_guiana:","symbol":"🇬🇫","group":"flags","keywords":["flag"]},{"id":":flag_guernsey:","symbol":"🇬🇬","group":"flags","keywords":["flag"]},{"id":":flag_ghana:","symbol":"🇬🇭","group":"flags","keywords":["flag"]},{"id":":flag_gibraltar:","symbol":"🇬🇮","group":"flags","keywords":["flag"]},{"id":":flag_greenland:","symbol":"🇬🇱","group":"flags","keywords":["flag"]},{"id":":flag_gambia:","symbol":"🇬🇲","group":"flags","keywords":["flag"]},{"id":":flag_guinea:","symbol":"🇬🇳","group":"flags","keywords":["flag"]},{"id":":flag_guadeloupe:","symbol":"🇬🇵","group":"flags","keywords":["flag"]},{"id":":flag_equatorial_guinea:","symbol":"🇬🇶","group":"flags","keywords":["flag"]},{"id":":flag_greece:","symbol":"🇬🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_georgia_&_south_sandwich_islands:","symbol":"🇬🇸","group":"flags","keywords":["flag"]},{"id":":flag_guatemala:","symbol":"🇬🇹","group":"flags","keywords":["flag"]},{"id":":flag_guam:","symbol":"🇬🇺","group":"flags","keywords":["flag"]},{"id":":flag_guinea-bissau:","symbol":"🇬🇼","group":"flags","keywords":["flag"]},{"id":":flag_guyana:","symbol":"🇬🇾","group":"flags","keywords":["flag"]},{"id":":flag_hong_kong_sar_china:","symbol":"🇭🇰","group":"flags","keywords":["flag"]},{"id":":flag_heard_&_mcdonald_islands:","symbol":"🇭🇲","group":"flags","keywords":["flag"]},{"id":":flag_honduras:","symbol":"🇭🇳","group":"flags","keywords":["flag"]},{"id":":flag_croatia:","symbol":"🇭🇷","group":"flags","keywords":["flag"]},{"id":":flag_haiti:","symbol":"🇭🇹","group":"flags","keywords":["flag"]},{"id":":flag_hungary:","symbol":"🇭🇺","group":"flags","keywords":["flag"]},{"id":":flag_canary_islands:","symbol":"🇮🇨","group":"flags","keywords":["flag"]},{"id":":flag_indonesia:","symbol":"🇮🇩","group":"flags","keywords":["flag"]},{"id":":flag_ireland:","symbol":"🇮🇪","group":"flags","keywords":["flag"]},{"id":":flag_israel:","symbol":"🇮🇱","group":"flags","keywords":["flag"]},{"id":":flag_isle_of_man:","symbol":"🇮🇲","group":"flags","keywords":["flag"]},{"id":":flag_india:","symbol":"🇮🇳","group":"flags","keywords":["flag"]},{"id":":flag_british_indian_ocean_territory:","symbol":"🇮🇴","group":"flags","keywords":["flag"]},{"id":":flag_iraq:","symbol":"🇮🇶","group":"flags","keywords":["flag"]},{"id":":flag_iran:","symbol":"🇮🇷","group":"flags","keywords":["flag"]},{"id":":flag_iceland:","symbol":"🇮🇸","group":"flags","keywords":["flag"]},{"id":":flag_italy:","symbol":"🇮🇹","group":"flags","keywords":["flag"]},{"id":":flag_jersey:","symbol":"🇯🇪","group":"flags","keywords":["flag"]},{"id":":flag_jamaica:","symbol":"🇯🇲","group":"flags","keywords":["flag"]},{"id":":flag_jordan:","symbol":"🇯🇴","group":"flags","keywords":["flag"]},{"id":":flag_japan:","symbol":"🇯🇵","group":"flags","keywords":["flag"]},{"id":":flag_kenya:","symbol":"🇰🇪","group":"flags","keywords":["flag"]},{"id":":flag_kyrgyzstan:","symbol":"🇰🇬","group":"flags","keywords":["flag"]},{"id":":flag_cambodia:","symbol":"🇰🇭","group":"flags","keywords":["flag"]},{"id":":flag_kiribati:","symbol":"🇰🇮","group":"flags","keywords":["flag"]},{"id":":flag_comoros:","symbol":"🇰🇲","group":"flags","keywords":["flag"]},{"id":":flag_st._kitts_&_nevis:","symbol":"🇰🇳","group":"flags","keywords":["flag"]},{"id":":flag_north_korea:","symbol":"🇰🇵","group":"flags","keywords":["flag"]},{"id":":flag_south_korea:","symbol":"🇰🇷","group":"flags","keywords":["flag"]},{"id":":flag_kuwait:","symbol":"🇰🇼","group":"flags","keywords":["flag"]},{"id":":flag_cayman_islands:","symbol":"🇰🇾","group":"flags","keywords":["flag"]},{"id":":flag_kazakhstan:","symbol":"🇰🇿","group":"flags","keywords":["flag"]},{"id":":flag_laos:","symbol":"🇱🇦","group":"flags","keywords":["flag"]},{"id":":flag_lebanon:","symbol":"🇱🇧","group":"flags","keywords":["flag"]},{"id":":flag_st._lucia:","symbol":"🇱🇨","group":"flags","keywords":["flag"]},{"id":":flag_liechtenstein:","symbol":"🇱🇮","group":"flags","keywords":["flag"]},{"id":":flag_sri_lanka:","symbol":"🇱🇰","group":"flags","keywords":["flag"]},{"id":":flag_liberia:","symbol":"🇱🇷","group":"flags","keywords":["flag"]},{"id":":flag_lesotho:","symbol":"🇱🇸","group":"flags","keywords":["flag"]},{"id":":flag_lithuania:","symbol":"🇱🇹","group":"flags","keywords":["flag"]},{"id":":flag_luxembourg:","symbol":"🇱🇺","group":"flags","keywords":["flag"]},{"id":":flag_latvia:","symbol":"🇱🇻","group":"flags","keywords":["flag"]},{"id":":flag_libya:","symbol":"🇱🇾","group":"flags","keywords":["flag"]},{"id":":flag_morocco:","symbol":"🇲🇦","group":"flags","keywords":["flag"]},{"id":":flag_monaco:","symbol":"🇲🇨","group":"flags","keywords":["flag"]},{"id":":flag_moldova:","symbol":"🇲🇩","group":"flags","keywords":["flag"]},{"id":":flag_montenegro:","symbol":"🇲🇪","group":"flags","keywords":["flag"]},{"id":":flag_st._martin:","symbol":"🇲🇫","group":"flags","keywords":["flag"]},{"id":":flag_madagascar:","symbol":"🇲🇬","group":"flags","keywords":["flag"]},{"id":":flag_marshall_islands:","symbol":"🇲🇭","group":"flags","keywords":["flag"]},{"id":":flag_macedonia:","symbol":"🇲🇰","group":"flags","keywords":["flag"]},{"id":":flag_mali:","symbol":"🇲🇱","group":"flags","keywords":["flag"]},{"id":":flag_myanmar_(burma):","symbol":"🇲🇲","group":"flags","keywords":["flag"]},{"id":":flag_mongolia:","symbol":"🇲🇳","group":"flags","keywords":["flag"]},{"id":":flag_macau_sar_china:","symbol":"🇲🇴","group":"flags","keywords":["flag"]},{"id":":flag_northern_mariana_islands:","symbol":"🇲🇵","group":"flags","keywords":["flag"]},{"id":":flag_martinique:","symbol":"🇲🇶","group":"flags","keywords":["flag"]},{"id":":flag_mauritania:","symbol":"🇲🇷","group":"flags","keywords":["flag"]},{"id":":flag_montserrat:","symbol":"🇲🇸","group":"flags","keywords":["flag"]},{"id":":flag_malta:","symbol":"🇲🇹","group":"flags","keywords":["flag"]},{"id":":flag_mauritius:","symbol":"🇲🇺","group":"flags","keywords":["flag"]},{"id":":flag_maldives:","symbol":"🇲🇻","group":"flags","keywords":["flag"]},{"id":":flag_malawi:","symbol":"🇲🇼","group":"flags","keywords":["flag"]},{"id":":flag_mexico:","symbol":"🇲🇽","group":"flags","keywords":["flag"]},{"id":":flag_malaysia:","symbol":"🇲🇾","group":"flags","keywords":["flag"]},{"id":":flag_mozambique:","symbol":"🇲🇿","group":"flags","keywords":["flag"]},{"id":":flag_namibia:","symbol":"🇳🇦","group":"flags","keywords":["flag"]},{"id":":flag_new_caledonia:","symbol":"🇳🇨","group":"flags","keywords":["flag"]},{"id":":flag_niger:","symbol":"🇳🇪","group":"flags","keywords":["flag"]},{"id":":flag_norfolk_island:","symbol":"🇳🇫","group":"flags","keywords":["flag"]},{"id":":flag_nigeria:","symbol":"🇳🇬","group":"flags","keywords":["flag"]},{"id":":flag_nicaragua:","symbol":"🇳🇮","group":"flags","keywords":["flag"]},{"id":":flag_netherlands:","symbol":"🇳🇱","group":"flags","keywords":["flag"]},{"id":":flag_norway:","symbol":"🇳🇴","group":"flags","keywords":["flag"]},{"id":":flag_nepal:","symbol":"🇳🇵","group":"flags","keywords":["flag"]},{"id":":flag_nauru:","symbol":"🇳🇷","group":"flags","keywords":["flag"]},{"id":":flag_niue:","symbol":"🇳🇺","group":"flags","keywords":["flag"]},{"id":":flag_new_zealand:","symbol":"🇳🇿","group":"flags","keywords":["flag"]},{"id":":flag_oman:","symbol":"🇴🇲","group":"flags","keywords":["flag"]},{"id":":flag_panama:","symbol":"🇵🇦","group":"flags","keywords":["flag"]},{"id":":flag_peru:","symbol":"🇵🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_polynesia:","symbol":"🇵🇫","group":"flags","keywords":["flag"]},{"id":":flag_papua_new_guinea:","symbol":"🇵🇬","group":"flags","keywords":["flag"]},{"id":":flag_philippines:","symbol":"🇵🇭","group":"flags","keywords":["flag"]},{"id":":flag_pakistan:","symbol":"🇵🇰","group":"flags","keywords":["flag"]},{"id":":flag_poland:","symbol":"🇵🇱","group":"flags","keywords":["flag"]},{"id":":flag_st._pierre_&_miquelon:","symbol":"🇵🇲","group":"flags","keywords":["flag"]},{"id":":flag_pitcairn_islands:","symbol":"🇵🇳","group":"flags","keywords":["flag"]},{"id":":flag_puerto_rico:","symbol":"🇵🇷","group":"flags","keywords":["flag"]},{"id":":flag_palestinian_territories:","symbol":"🇵🇸","group":"flags","keywords":["flag"]},{"id":":flag_portugal:","symbol":"🇵🇹","group":"flags","keywords":["flag"]},{"id":":flag_palau:","symbol":"🇵🇼","group":"flags","keywords":["flag"]},{"id":":flag_paraguay:","symbol":"🇵🇾","group":"flags","keywords":["flag"]},{"id":":flag_qatar:","symbol":"🇶🇦","group":"flags","keywords":["flag"]},{"id":":flag_réunion:","symbol":"🇷🇪","group":"flags","keywords":["flag"]},{"id":":flag_romania:","symbol":"🇷🇴","group":"flags","keywords":["flag"]},{"id":":flag_serbia:","symbol":"🇷🇸","group":"flags","keywords":["flag"]},{"id":":flag_russia:","symbol":"🇷🇺","group":"flags","keywords":["flag"]},{"id":":flag_rwanda:","symbol":"🇷🇼","group":"flags","keywords":["flag"]},{"id":":flag_saudi_arabia:","symbol":"🇸🇦","group":"flags","keywords":["flag"]},{"id":":flag_solomon_islands:","symbol":"🇸🇧","group":"flags","keywords":["flag"]},{"id":":flag_seychelles:","symbol":"🇸🇨","group":"flags","keywords":["flag"]},{"id":":flag_sudan:","symbol":"🇸🇩","group":"flags","keywords":["flag"]},{"id":":flag_sweden:","symbol":"🇸🇪","group":"flags","keywords":["flag"]},{"id":":flag_singapore:","symbol":"🇸🇬","group":"flags","keywords":["flag"]},{"id":":flag_st._helena:","symbol":"🇸🇭","group":"flags","keywords":["flag"]},{"id":":flag_slovenia:","symbol":"🇸🇮","group":"flags","keywords":["flag"]},{"id":":flag_svalbard_&_jan_mayen:","symbol":"🇸🇯","group":"flags","keywords":["flag"]},{"id":":flag_slovakia:","symbol":"🇸🇰","group":"flags","keywords":["flag"]},{"id":":flag_sierra_leone:","symbol":"🇸🇱","group":"flags","keywords":["flag"]},{"id":":flag_san_marino:","symbol":"🇸🇲","group":"flags","keywords":["flag"]},{"id":":flag_senegal:","symbol":"🇸🇳","group":"flags","keywords":["flag"]},{"id":":flag_somalia:","symbol":"🇸🇴","group":"flags","keywords":["flag"]},{"id":":flag_suriname:","symbol":"🇸🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_sudan:","symbol":"🇸🇸","group":"flags","keywords":["flag"]},{"id":":flag_são_tomé_&_príncipe:","symbol":"🇸🇹","group":"flags","keywords":["flag"]},{"id":":flag_el_salvador:","symbol":"🇸🇻","group":"flags","keywords":["flag"]},{"id":":flag_sint_maarten:","symbol":"🇸🇽","group":"flags","keywords":["flag"]},{"id":":flag_syria:","symbol":"🇸🇾","group":"flags","keywords":["flag"]},{"id":":flag_swaziland:","symbol":"🇸🇿","group":"flags","keywords":["flag"]},{"id":":flag_tristan_da_cunha:","symbol":"🇹🇦","group":"flags","keywords":["flag"]},{"id":":flag_turks_&_caicos_islands:","symbol":"🇹🇨","group":"flags","keywords":["flag"]},{"id":":flag_chad:","symbol":"🇹🇩","group":"flags","keywords":["flag"]},{"id":":flag_french_southern_territories:","symbol":"🇹🇫","group":"flags","keywords":["flag"]},{"id":":flag_togo:","symbol":"🇹🇬","group":"flags","keywords":["flag"]},{"id":":flag_thailand:","symbol":"🇹🇭","group":"flags","keywords":["flag"]},{"id":":flag_tajikistan:","symbol":"🇹🇯","group":"flags","keywords":["flag"]},{"id":":flag_tokelau:","symbol":"🇹🇰","group":"flags","keywords":["flag"]},{"id":":flag_timor-leste:","symbol":"🇹🇱","group":"flags","keywords":["flag"]},{"id":":flag_turkmenistan:","symbol":"🇹🇲","group":"flags","keywords":["flag"]},{"id":":flag_tunisia:","symbol":"🇹🇳","group":"flags","keywords":["flag"]},{"id":":flag_tonga:","symbol":"🇹🇴","group":"flags","keywords":["flag"]},{"id":":flag_turkey:","symbol":"🇹🇷","group":"flags","keywords":["flag"]},{"id":":flag_trinidad_&_tobago:","symbol":"🇹🇹","group":"flags","keywords":["flag"]},{"id":":flag_tuvalu:","symbol":"🇹🇻","group":"flags","keywords":["flag"]},{"id":":flag_taiwan:","symbol":"🇹🇼","group":"flags","keywords":["flag"]},{"id":":flag_tanzania:","symbol":"🇹🇿","group":"flags","keywords":["flag"]},{"id":":flag_ukraine:","symbol":"🇺🇦","group":"flags","keywords":["flag"]},{"id":":flag_uganda:","symbol":"🇺🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._outlying_islands:","symbol":"🇺🇲","group":"flags","keywords":["flag"]},{"id":":flag_united_nations:","symbol":"🇺🇳","group":"flags","keywords":["flag"]},{"id":":flag_united_states:","symbol":"🇺🇸","group":"flags","keywords":["flag"]},{"id":":flag_uruguay:","symbol":"🇺🇾","group":"flags","keywords":["flag"]},{"id":":flag_uzbekistan:","symbol":"🇺🇿","group":"flags","keywords":["flag"]},{"id":":flag_vatican_city:","symbol":"🇻🇦","group":"flags","keywords":["flag"]},{"id":":flag_st._vincent_&_grenadines:","symbol":"🇻🇨","group":"flags","keywords":["flag"]},{"id":":flag_venezuela:","symbol":"🇻🇪","group":"flags","keywords":["flag"]},{"id":":flag_british_virgin_islands:","symbol":"🇻🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._virgin_islands:","symbol":"🇻🇮","group":"flags","keywords":["flag"]},{"id":":flag_vietnam:","symbol":"🇻🇳","group":"flags","keywords":["flag"]},{"id":":flag_vanuatu:","symbol":"🇻🇺","group":"flags","keywords":["flag"]},{"id":":flag_wallis_&_futuna:","symbol":"🇼🇫","group":"flags","keywords":["flag"]},{"id":":flag_samoa:","symbol":"🇼🇸","group":"flags","keywords":["flag"]},{"id":":flag_kosovo:","symbol":"🇽🇰","group":"flags","keywords":["flag"]},{"id":":flag_yemen:","symbol":"🇾🇪","group":"flags","keywords":["flag"]},{"id":":flag_mayotte:","symbol":"🇾🇹","group":"flags","keywords":["flag"]},{"id":":flag_south_africa:","symbol":"🇿🇦","group":"flags","keywords":["flag"]},{"id":":flag_zambia:","symbol":"🇿🇲","group":"flags","keywords":["flag"]},{"id":":flag_zimbabwe:","symbol":"🇿🇼","group":"flags","keywords":["flag"]},{"id":":flag_england:","symbol":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","group":"flags","keywords":["flag"]},{"id":":flag_scotland:","symbol":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","group":"flags","keywords":["flag"]},{"id":":flag_wales:","symbol":"🏴󠁧󠁢󠁷󠁬󠁳󠁿","group":"flags","keywords":["flag"]}]');const qS={autosave:{waitingTime:5e3,save:e=>async function(e){const t=Date.now(),o=e.config.get(VS),i=await e.getData();i||console.warn("Trying to save snapshot but data is not defined.");const n={timestamp:t,hash:SS(i),content:i},s=IS(o),r=s?.items||[];r.find((e=>n.hash===e.hash))||r.push(n);try{const e=TS.compress(JSON.stringify({items:r,updatedAt:t}));localStorage.setItem(o,e)}catch(t){Np(e,"notifications").addError("Failed to save CKEditor data to localStorage: "+t.toString())}return!0}(e)},heading:{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h1",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h2",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h3",title:"Heading 3",class:"ck-heading_heading3"},{model:"heading4",view:"h4",title:"Heading 4",class:"ck-heading_heading4"},{model:"heading5",view:"h5",title:"Heading 5",class:"ck-heading_heading5"}]},toolbar:{},OPMacroEmbeddedTable:{toolbar:["opEditEmbeddedTableQuery"]},OPMacroWpButton:{toolbar:["opEditWpMacroButton"]},OPWikiIncludePage:{toolbar:["opEditWikiIncludeMacroButton"]},OPCodeBlock:{toolbar:["opEditCodeBlock"]},OPChildPages:{toolbar:["opEditChildPagesMacroButton"]},image:{insert:{type:"inline"},resizeUnit:"px",resizeOptions:[{name:"imageResize:original",value:null,icon:"original"},{name:"imageResize:50",value:"50",icon:"medium"},{name:"imageResize:75",value:"75",icon:"large"}],toolbar:["toggleImageCaption","imageTextAlternative","|","imageStyle:inline","imageStyle:block","|","imageResize:original"]},table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties","tableCellProperties"]},mention:{feeds:[{marker:"@",feed:function(e){const t=this;let o=Fp(t);if(o&&"Activity::Comment"===o._type){const e=o.$embedded.workPackage;e&&(o=e)}if(!o||"WorkPackage"!==o._type)return[];if(t.config.get("disabledMentions").includes("user"))return[];const i=Bp(t).api.v3.principals(o,e),n=Mp(t),s=window.OpenProject.urlRoot;return new Promise(((e,t)=>{_k(i,{responseKind:"json",query:{select:"elements/_type,elements/id,elements/name"}}).then((e=>e.json)).then((t=>{e(_.uniqBy(t._embedded.elements,(e=>e.id)).map((e=>{const t=e._type.toLowerCase(),o=`@${e.name}`,i=`@${e.id}`,r=e.id,a=n.services.apiV3Service[`${t}s`].segment;return{type:t,id:i,text:o,link:`${s}/${a}/${r}`,displayId:r,name:e.name}})))})).catch((e=>{console.error("Error fetching user mentions:",e),t(e)}))}))},itemRenderer:zS,minimumCharacters:0},{marker:"###",feed:LS("###"),itemRenderer:zS,minimumCharacters:1},{marker:"##",feed:LS("##"),itemRenderer:zS,minimumCharacters:1},{marker:"#",feed:LS("#"),itemRenderer:zS,minimumCharacters:1},{marker:":",feed:function(e){return new Promise(((t,o)=>{const i=jS.filter((t=>function(e,t,o){if(t.includes(e))return!0;if(0!==o.length)for(let t=0;t({id:e.id,name:e.id.replace(/:/g,""),text:e.symbol,type:"emoji"})));t(i)}))},itemRenderer:function(e){const t=document.createElement("span");return t.classList.add("mention-list-item"),t.textContent=`${e.text} ${e.name}`,t},minimumCharacters:1}]},language:"en",licenseKey:"GPL"};function $S(e){return(t,o)=>{const i=o.openProject.context;o.removePlugins=o.removePlugins||[];const n=i.resource;if(n&&n.canAddAttachments||o.removePlugins.push(...NS.map((e=>e.pluginName))),!1===i.macros&&(o.openProject.disableAllMacros=!0,o.removePlugins.push(...MS.map((e=>e.pluginName)))),Array.isArray(i.macros)){const e=MS.filter((e=>-1===i.macros.indexOf(e.pluginName)));o.removePlugins.push(...e)}o.disabledMentions=[];const s=i.disabledMentions;return Array.isArray(s)&&(o.disabledMentions=s),e.create(t,o).then((e=>e))}}class HS extends dg{}class WS extends dg{}window.OPConstrainedEditor=HS,window.OPClassicEditor=WS,window.OPEditorWatchdog=cc,WS.createCustomized=$S(WS),WS.builtinPlugins=BS,WS.defaultConfig=Object.assign({},qS),WS.defaultConfig.toolbar={items:["heading","|","bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","insertTable","macroList","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","|","pageBreak","|","preview","opShowSource"]},HS.createCustomized=$S(HS),HS.builtinPlugins=BS,HS.defaultConfig=Object.assign({},qS),HS.defaultConfig.toolbar={items:["bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","preview","opShowSource"]}})(),i=i.default})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.OPEditor=t():e.OPEditor=t()}(self,(()=>(()=>{var e={428:e=>{var t=!0,o=!1,i=!1;function n(e,t,o){var i=e.attrIndex(t),n=[t,o];i<0?e.attrPush(n):e.attrs[i]=n}function s(e,t){for(var o=e[t].level-1,i=t-1;i>=0;i--)if(e[i].level===o)return i;return-1}function r(e,t){return"inline"===e[t].type&&function(e){return"paragraph_open"===e.type}(e[t-1])&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function a(e,n){if(e.children.unshift(function(e,o){var i=new o("html_inline","",0),n=t?' disabled="" ':"";0===e.content.indexOf("[ ] ")?i.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(i.content='');return i}(e,n)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),o)if(i){e.children.pop();var s="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+s+'">',e.children.push(function(e,t,o){var i=new o("html_inline","",0);return i.content='",i.attrs=[{for:t}],i}(e.content,s,n))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(n))}e.exports=function(e,l){l&&(t=!l.enabled,o=!!l.label,i=!!l.labelAfter),e.core.ruler.after("inline","github-task-lists",(function(e){for(var o=e.tokens,i=2;i{var i,n=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,t){if(!i[e]){i[e]={};for(var o=0;o>>8,o[2*i+1]=r%256}return o},decompressFromUint8Array:function(t){if(null==t)return s.decompress(t);for(var o=new Array(t.length/2),i=0,n=o.length;i>=1}else{for(n=1,i=0;i>=1}0==--u&&(u=Math.pow(2,m),m++),delete a[d]}else for(n=r[d],i=0;i>=1;0==--u&&(u=Math.pow(2,m),m++),r[c]=h++,d=String(l)}if(""!==d){if(Object.prototype.hasOwnProperty.call(a,d)){if(d.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--u&&(u=Math.pow(2,m),m++),delete a[d]}else for(n=r[d],i=0;i>=1;0==--u&&(u=Math.pow(2,m),m++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,f==t-1){g.push(o(p));break}f++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:s._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,o,i){var n,s,r,a,l,c,d,u=[],h=4,m=4,g=3,p="",f=[],b={val:i(0),position:o,index:1};for(n=0;n<3;n+=1)u[n]=n;for(r=0,l=Math.pow(2,2),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;switch(r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 2:return""}for(u[3]=d,s=d,f.push(d);;){if(b.index>t)return"";for(r=0,l=Math.pow(2,g),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;switch(d=r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;u[m++]=e(r),d=m-1,h--;break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;u[m++]=e(r),d=m-1,h--;break;case 2:return f.join("")}if(0==h&&(h=Math.pow(2,g),g++),u[d])p=u[d];else{if(d!==m)return null;p=s+s.charAt(0)}f.push(p),u[m++]=s+p.charAt(0),s=p,0==--h&&(h=Math.pow(2,g),g++)}}};return s}();void 0===(i=function(){return n}.call(t,o,t,e))||(e.exports=i)}},t={};function o(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,o),s.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";var e={};o.r(e),o.d(e,{decode:()=>$x,encode:()=>Wx,format:()=>Ux,parse:()=>sE});var t={};o.r(t),o.d(t,{Any:()=>lE,Cc:()=>cE,Cf:()=>dE,P:()=>rE,S:()=>aE,Z:()=>uE});var i={};o.r(i),o.d(i,{arrayReplaceAt:()=>LE,assign:()=>BE,escapeHtml:()=>QE,escapeRE:()=>XE,fromCodePoint:()=>jE,has:()=>NE,isMdAsciiPunct:()=>iT,isPunctChar:()=>oT,isSpace:()=>eT,isString:()=>FE,isValidEntityCode:()=>zE,isWhiteSpace:()=>tT,lib:()=>sT,normalizeReference:()=>nT,unescapeAll:()=>UE,unescapeMd:()=>WE});var n={};function s(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function r(e){return"string"==typeof e||e instanceof String}function a(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];if(null==t)return!1;return!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function l(e){return Object.getOwnPropertySymbols(e).filter((t=>Object.prototype.propertyIsEnumerable.call(e,t)))}function c(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}o.r(n),o.d(n,{parseLinkDestination:()=>aT,parseLinkLabel:()=>rT,parseLinkTitle:()=>lT});const d="[object RegExp]",u="[object String]",h="[object Number]",m="[object Boolean]",g="[object Arguments]",p="[object Symbol]",f="[object Date]",b="[object Map]",w="[object Set]",y="[object Array]",k="[object ArrayBuffer]",v="[object Object]",C="[object DataView]",A="[object Uint8Array]",x="[object Uint8ClampedArray]",E="[object Uint16Array]",T="[object Uint32Array]",P="[object Int8Array]",S="[object Int16Array]",I="[object Int32Array]",R="[object Float32Array]",O="[object Float64Array]";function V(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function D(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function F(e,t,o,i=new Map,n=void 0){const s=n?.(e,t,o,i);if(void 0!==s)return s;if(V(e))return e;if(i.has(e))return i.get(e);if(Array.isArray(e)){const t=new Array(e.length);i.set(e,t);for(let s=0;s{const r=t?.(o,i,n,s);if(void 0!==r)return r;if("object"==typeof e){if(c(e)===v&&"function"!=typeof e.constructor){const t={};return s.set(e,t),M(t,e,n,s),t}switch(Object.prototype.toString.call(e)){case h:case u:case m:{const t=new e.constructor(e?.valueOf());return M(t,e),t}case g:{const t={};return M(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}}))}function B(e){return"object"==typeof e&&null!==e}function L(e){return B(e)&&1===e.nodeType&&!a(e)}function z(e){return"function"==typeof e}function j(e){return N(e)}function $(e){return"__proto__"===e}function q(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===c(e)}function H(e){return null!=e&&"function"!=typeof e&&function(e){return Number.isSafeInteger(e)&&e>=0}(e.length)}function W(e){return D(e)}function U(e,t,o,i){if(V(e)&&(e=Object(e)),null==t||"object"!=typeof t)return e;if(i.has(t))return function(e){if(V(e))return e;if(Array.isArray(e)||D(e)||e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);const t=Object.getPrototypeOf(e);if(null==t)return Object.assign(Object.create(t),e);const o=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new o(e);if(e instanceof RegExp){const t=new o(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new o(e.buffer.slice(0));if(e instanceof Error){let t;return t=e instanceof AggregateError?new o(e.errors,e.message,{cause:e.cause}):new o(e.message,{cause:e.cause}),t.stack=e.stack,Object.assign(t,e),t}if("undefined"!=typeof File&&e instanceof File)return new o([e],e.name,{type:e.type,lastModified:e.lastModified});if("object"==typeof e){const o=Object.create(t);return Object.assign(o,e)}return e}(i.get(t));if(i.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e-1}function ee(e){return e.indexOf("windows")>-1}function te(e){return!!e.match(/gecko\/\d+/)}function oe(e){return e.indexOf(" applewebkit/")>-1&&-1===e.indexOf("chrome")}function ie(e){return!!e.match(/iphone|ipad/i)||X(e)&&navigator.maxTouchPoints>0}function ne(e){return e.indexOf("android")>-1}function se(e){return e.indexOf("chrome/")>-1&&e.indexOf("edge/")<0}function re(){let e=!1;try{e=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch{}return e}function ae(e,t,o,i){o=o||function(e,t){return e===t};const n=Array.isArray(e)?e:Array.prototype.slice.call(e),s=Array.isArray(t)?t:Array.prototype.slice.call(t),r=function(e,t,o){const i=le(e,t,o);if(-1===i)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const n=ce(e,i),s=ce(t,i),r=le(n,s,o),a=e.length-r,l=t.length-r;return{firstIndex:i,lastIndexOld:a,lastIndexNew:l}}(n,s,o),a=i?function(e,t){const{firstIndex:o,lastIndexOld:i,lastIndexNew:n}=e;if(-1===o)return Array(t).fill("equal");let s=[];o>0&&(s=s.concat(Array(o).fill("equal")));n-o>0&&(s=s.concat(Array(n-o).fill("insert")));i-o>0&&(s=s.concat(Array(i-o).fill("delete")));n0&&o.push({index:i,type:"insert",values:e.slice(i,s)});n-i>0&&o.push({index:i+(s-i),type:"delete",howMany:n-i});return o}(s,r);return a}function le(e,t,o){for(let i=0;i200||n>200||i+n>300)return de.fastDiff(e,t,o,!0);let s,r;if(nc?-1:1;d[i+h]&&(d[i]=d[i+h].slice(0)),d[i]||(d[i]=[]),d[i].push(n>c?s:r);let m=Math.max(n,c),g=m-i;for(;gc;m--)u[m]=h(m);u[c]=h(c),g++}while(u[c]!==l);return d[c].slice(1)}de.fastDiff=ae;class ue{source;name;path;stop;off;return;constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=function e(){e.called=!0},this.off=function e(){e.called=!0}}}const he=new Array(256).fill("").map(((e,t)=>("0"+t.toString(16)).slice(-2)));function me(){const[e,t,o,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+he[255&e]+he[e>>8&255]+he[e>>16&255]+he[e>>24&255]+he[255&t]+he[t>>8&255]+he[t>>16&255]+he[t>>24&255]+he[255&o]+he[o>>8&255]+he[o>>16&255]+he[o>>24&255]+he[255&i]+he[i>>8&255]+he[i>>16&255]+he[i>>24&255]}const ge={get(e="normal"){return"number"!=typeof e?this[e]||this.normal:e},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function pe(e,t){const o=ge.get(t.priority);let i=0,n=e.length;for(;i>1;ge.get(e[t].priority){if("object"==typeof t&&null!==t){if(i.has(t))return`[object ${t.constructor.name}]`;i.add(t)}return t},s=t?` ${JSON.stringify(t,n)}`:"",r=we(e),a=o?`\nOriginal error: ${o.name}: ${o.message}`:"";return e+s+r+a}(e,o,i)),this.name="CKEditorError",this.context=t,this.data=o,i&&(this.stack=i.stack)}is(e){return"CKEditorError"===e}static rethrowUnexpectedError(e,t){if(e.is&&e.is("CKEditorError"))throw e;throw new fe("unexpected-error",t,void 0,e)}}function be(e,t){console.warn(...ye(e,t))}function we(e){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${e}`}function ye(e,t){const o=we(e);return t?[e,t,o]:[e,o]}const _e=new Date(2026,2,31);if(globalThis.CKEDITOR_VERSION)throw new fe("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION="48.0.0";const ke=Symbol("listeningTo"),ve=Symbol("emitterId"),Ce=Symbol("delegations"),Ae=xe(Object);function xe(e){if(!e)return Ae;return class extends e{on(e,t,o){this.listenTo(this,e,t,o)}once(e,t,o){let i=!1;this.listenTo(this,e,((e,...o)=>{i||(i=!0,e.off(),t.call(this,e,...o))}),o)}off(e,t){this.stopListening(this,e,t)}listenTo(e,t,o,i={}){let n,s;this[ke]||(this[ke]={});const r=this[ke];Te(e)||Ee(e);const a=Te(e);(n=r[a])||(n=r[a]={emitter:e,callbacks:{}}),(s=n.callbacks[t])||(s=n.callbacks[t]=[]),s.push(o),function(e,t,o,i,n){t._addEventListener?t._addEventListener(o,i,n):e._addEventListener.call(t,o,i,n)}(this,e,t,o,i)}stopListening(e,t,o){const i=this[ke];let n=e&&Te(e);const s=i&&n?i[n]:void 0,r=s&&t?s.callbacks[t]:void 0;if(!(!i||e&&!s||t&&!r))if(o){Re(this,e,t,o);-1!==r.indexOf(o)&&(1===r.length?delete s.callbacks[t]:Re(this,e,t,o))}else if(r){for(;o=r.pop();)Re(this,e,t,o);delete s.callbacks[t]}else if(s){for(t in s.callbacks)this.stopListening(e,t);delete i[n]}else{for(n in i)this.stopListening(i[n].emitter);delete this[ke]}}fire(e,...t){try{const o=e instanceof ue?e:new ue(this,e),i=o.name;let n=function(e,t){if(!e._events)return null;let o=t;do{const t=e._events[o];if(t&&t.callbacks&&t.callbacks.length)return t.callbacks;const i=o.lastIndexOf(":");o=i>-1?o.substring(0,i):""}while(o);return null}(this,i);if(o.path.push(this),n){n=n.slice();for(let e=0;e{this[Ce]||(this[Ce]=new Map),e.forEach((e=>{const i=this[Ce].get(e);i?i.set(t,o):this[Ce].set(e,new Map([[t,o]]))}))}}}stopDelegating(e,t){if(this[Ce])if(e)if(t){const o=this[Ce].get(e);o&&o.delete(t)}else this[Ce].delete(e);else this[Ce].clear()}_addEventListener(e,t,o){!function(e,t){const o=Pe(e);if(o[t])return;let i=t,n=null;const s=[];for(;""!==i&&!o[i];)o[i]={callbacks:[],childEvents:[]},s.push(o[i]),n&&o[i].childEvents.push(n),n=i,i=i.substr(0,i.lastIndexOf(":"));if(""!==i){for(const e of s)e.callbacks=o[i].callbacks.slice();o[i].childEvents.push(n)}}(this,e);const i=Se(this,e),n={callback:t,priority:ge.get(o.priority)};for(const e of i)pe(e,n)}_removeEventListener(e,t){const o=Se(this,e);for(const e of o)for(let o=0;o{this.set(t,e[t])}),this);Le(this);const o=this[Oe];if(e in this&&!o.has(e))throw new fe("observable-set-cannot-override",this);Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get:()=>o.get(e),set(t){const i=o.get(e);let n=this.fire(`set:${e}`,e,t,i);void 0===n&&(n=t),i===n&&o.has(e)||(o.set(e,n),this.fire(`change:${e}`,e,n,i))}}),this[e]=t}bind(...e){if(!e.length||!$e(e))throw new fe("observable-bind-wrong-properties",this);if(new Set(e).size!==e.length)throw new fe("observable-bind-duplicate-properties",this);Le(this);const t=this[De];e.forEach((e=>{if(t.has(e))throw new fe("observable-bind-rebind",this)}));const o=new Map;return e.forEach((e=>{const i={property:e,to:[]};t.set(e,i),o.set(e,i)})),{to:ze,toMany:je,_observable:this,_bindProperties:e,_to:[],_bindings:o}}unbind(...e){if(!this[Oe])return;const t=this[De],o=this[Ve];if(e.length){if(!$e(e))throw new fe("observable-unbind-wrong-properties",this);e.forEach((e=>{const i=t.get(e);i&&(i.to.forEach((([e,t])=>{const n=o.get(e),s=n[t];s.delete(i),s.size||delete n[t],Object.keys(n).length||(o.delete(e),this.stopListening(e,"change"))})),t.delete(e))}))}else o.forEach(((e,t)=>{this.stopListening(t,"change")})),o.clear(),t.clear()}decorate(e){Le(this);const t=this[e];if(!t)throw new fe("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:e});this.on(e,((e,o)=>{e.return=t.apply(this,o)})),this[e]=function(...t){return this.fire(e,t)},this[e][Me]=t,this[Fe]||(this[Fe]=[]),this[Fe].push(e)}stopListening(e,t,o){if(!e&&this[Fe]){for(const e of this[Fe])this[e]=this[e][Me];delete this[Fe]}super.stopListening(e,t,o)}[Oe];[Fe];[De];[Ve]}}function Le(e){e[Oe]||(Object.defineProperty(e,Oe,{value:new Map}),Object.defineProperty(e,Ve,{value:new Map}),Object.defineProperty(e,De,{value:new Map}))}function ze(...e){const t=function(...e){if(!e.length)throw new fe("observable-bind-to-parse-error",null);const t={to:[]};let o;"function"==typeof e[e.length-1]&&(t.callback=e.pop());return e.forEach((e=>{if("string"==typeof e)o.properties.push(e);else{if("object"!=typeof e)throw new fe("observable-bind-to-parse-error",null);o={observable:e,properties:[]},t.to.push(o)}})),t}(...e),o=Array.from(this._bindings.keys()),i=o.length;if(!t.callback&&t.to.length>1)throw new fe("observable-bind-to-no-callback",this);if(i>1&&t.callback)throw new fe("observable-bind-to-extra-callback",this);var n;t.to.forEach((e=>{if(e.properties.length&&e.properties.length!==i)throw new fe("observable-bind-to-properties-length",this);e.properties.length||(e.properties=this._bindProperties)})),this._to=t.to,t.callback&&(this._bindings.get(o[0]).callback=t.callback),n=this._observable,this._to.forEach((e=>{const t=n[Ve];let o;t.get(e.observable)||n.listenTo(e.observable,"change",((i,s)=>{o=t.get(e.observable)[s],o&&o.forEach((e=>{qe(n,e.property)}))}))})),function(e){let t;e._bindings.forEach(((o,i)=>{e._to.forEach((n=>{t=n.properties[o.callback?0:e._bindProperties.indexOf(i)],o.to.push([n.observable,t]),function(e,t,o,i){const n=e[Ve],s=n.get(o),r=s||{};r[i]||(r[i]=new Set);r[i].add(t),s||n.set(o,r)}(e._observable,o,n.observable,t)}))}))}(this),this._bindProperties.forEach((e=>{qe(this._observable,e)}))}function je(e,t,o){if(this._bindings.size>1)throw new fe("observable-bind-to-many-not-one-binding",this);this.to(...function(e,t){const o=e.map((e=>[e,t]));return Array.prototype.concat.apply([],o)}(e,t),o)}function $e(e){return e.every((e=>"string"==typeof e))}function qe(e,t){const o=e[De].get(t);let i;o.callback?i=o.callback.apply(e,o.to.map((e=>e[0][e[1]]))):(i=o.to[0],i=i[0][i[1]]),Object.prototype.hasOwnProperty.call(e,t)?e[t]=i:e.set(t,i)}function He(e){let t=0;for(const o of e)t++;return t}function We(e,t){const o=Math.min(e.length,t.length);for(let i=0;i{this._setToTarget(e,i,t[i],o)}))}}function Je(e){return N(e,Ze)}function Ze(e){return L(e)||"function"==typeof e?e:void 0}function Qe(e){if(e){if(e.defaultView)return e instanceof e.defaultView.Document;if(e.ownerDocument&&e.ownerDocument.defaultView)return e instanceof e.ownerDocument.defaultView.Node}return!1}function Ye(e){const t=Object.prototype.toString.apply(e);return"[object Window]"==t||"[object global]"==t}const Xe=et(xe());function et(e){if(!e)return Xe;return class extends e{listenTo(e,t,o,i={}){if(Qe(e)||Ye(e)||e instanceof J.window.EventTarget){const n={capture:!!i.useCapture,passive:!!i.usePassive},s=this._getProxyEmitter(e,n)||new tt(e,n);this.listenTo(s,t,o,i)}else super.listenTo(e,t,o,i)}stopListening(e,t,o){if(Qe(e)||Ye(e)||e instanceof J.window.EventTarget){const i=this._getAllProxyEmitters(e);for(const e of i)this.stopListening(e,t,o)}else super.stopListening(e,t,o)}_getProxyEmitter(e,t){return function(e,t){const o=e[ke];return o&&o[t]?o[t].emitter:null}(this,ot(e,t))}_getAllProxyEmitters(e){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((t=>this._getProxyEmitter(e,t))).filter((e=>!!e))}}}class tt extends(xe()){_domNode;_options;constructor(e,t){super(),Ee(this,ot(e,t)),this._domNode=e,this._options=t}_domListeners;attach(e){if(this._domListeners&&this._domListeners[e])return;const t=this._createDomListener(e);this._domNode.addEventListener(e,t,this._options),this._domListeners||(this._domListeners={}),this._domListeners[e]=t}detach(e){let t;!this._domListeners[e]||(t=this._events[e])&&t.callbacks.length||this._domListeners[e].removeListener()}_addEventListener(e,t,o){this.attach(e),xe().prototype._addEventListener.call(this,e,t,o)}_removeEventListener(e,t){xe().prototype._removeEventListener.call(this,e,t),this.detach(e)}_createDomListener(e){const t=t=>{this.fire(e,t)};return t.removeListener=()=>{this._domNode.removeEventListener(e,t,this._options),delete this._domListeners[e]},t}}function ot(e,t){let o=function(e){return e["data-ck-expando"]||(e["data-ck-expando"]=me())}(e);for(const e of Object.keys(t).sort())t[e]&&(o+="-"+e);return o}function it(e){const t=[];let o=e;for(;o&&o.nodeType!=Node.DOCUMENT_NODE;)t.unshift(o),o=o.parentNode;return t}function nt(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 st(e){if(!e.target)return null;const t=e.target.ownerDocument,o=e.clientX,i=e.clientY;let n=null;return t.caretRangeFromPoint&&t.caretRangeFromPoint(o,i)?n=t.caretRangeFromPoint(o,i):e.rangeParent&&(n=t.createRange(),n.setStart(e.rangeParent,e.rangeOffset),n.collapse(!0)),n}function rt(e){return e&&e.parentNode?e.offsetParent===J.document.body?null:e.offsetParent:null}function at(e){return"[object Text]"==Object.prototype.toString.call(e)}function lt(e){return"[object Range]"==Object.prototype.toString.apply(e)}const ct=["top","right","bottom","left","width","height"],dt=new Set(["relative","absolute","fixed","sticky"]);class ut{top;right;bottom;left;width;height;_source;constructor(e){const t=lt(e);if(Object.defineProperty(this,"_source",{value:e._source||e,writable:!0,enumerable:!1}),gt(e)||t)if(t){const t=ut.getDomRangeRects(e);ht(this,ut.getBoundingRect(t))}else ht(this,e.getBoundingClientRect());else if(Ye(e)){const{innerWidth:t,innerHeight:o}=e;ht(this,{top:0,right:t,bottom:o,left:0,width:t,height:o})}else ht(this,e)}clone(){return new ut(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:Math.max(this.top,e.top),right:Math.min(this.right,e.right),bottom:Math.min(this.bottom,e.bottom),left:Math.max(this.left,e.left),width:0,height:0};if(t.width=t.right-t.left,t.height=t.bottom-t.top,t.width<0||t.height<0)return null;{const e=new ut(t);return e._source=this._source,e}}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(mt(e))return t;let o,i=e,n=e.parentNode||e.commonAncestorContainer;for(;n&&!mt(n);){const e="visible"===((s=n)instanceof HTMLElement?s.ownerDocument.defaultView.getComputedStyle(s).overflow:"visible");if(ft(i)&&(o=i),e||o&&"absolute"===pt(o)&&!ft(n)){i=n,n=n.parentNode;continue}const r=new ut(n),a=t.getIntersection(r);if(!a)return null;a.getArea(){const o=new ut(t);return o._source=e,o}))}static getBoundingRect(e){const t={left:Number.POSITIVE_INFINITY,top:Number.POSITIVE_INFINITY,right:Number.NEGATIVE_INFINITY,bottom:Number.NEGATIVE_INFINITY,width:0,height:0};let o=0;for(const i of e)o++,t.left=Math.min(t.left,i.left),t.top=Math.min(t.top,i.top),t.right=Math.max(t.right,i.right),t.bottom=Math.max(t.bottom,i.bottom);return 0==o?null:(t.width=t.right-t.left,t.height=t.bottom-t.top,new ut(t))}}function ht(e,t){for(const o of ct)e[o]=t[o]}function mt(e){return!!gt(e)&&e===e.ownerDocument.body}function gt(e){return null!==e&&"object"==typeof e&&1===e.nodeType&&"function"==typeof e.getBoundingClientRect}function pt(e){return e.ownerDocument.defaultView.getComputedStyle(e).position}function ft(e){return e instanceof HTMLElement&&dt.has(pt(e))}class bt{_element;_callback;static _observerInstance=null;static _elementCallbacks=null;constructor(e,t){bt._observerInstance||bt._createObserver(),this._element=e,this._callback=t,bt._addElementCallback(e,t),bt._observerInstance.observe(e)}get element(){return this._element}destroy(){bt._deleteElementCallback(this._element,this._callback)}static _addElementCallback(e,t){bt._elementCallbacks||(bt._elementCallbacks=new Map);let o=bt._elementCallbacks.get(e);o||(o=new Set,bt._elementCallbacks.set(e,o)),o.add(t)}static _deleteElementCallback(e,t){const o=bt._getElementCallbacks(e);o&&(o.delete(t),o.size||(bt._elementCallbacks.delete(e),bt._observerInstance.unobserve(e))),bt._elementCallbacks&&!bt._elementCallbacks.size&&(bt._observerInstance=null,bt._elementCallbacks=null)}static _getElementCallbacks(e){return bt._elementCallbacks?bt._elementCallbacks.get(e):null}static _createObserver(){bt._observerInstance=new J.window.ResizeObserver((e=>{for(const t of e){const e=bt._getElementCallbacks(t.target);if(e)for(const o of e)o(t)}}))}}function wt(e,t){e instanceof HTMLTextAreaElement&&(e.value=t),e.innerHTML=t}function yt(e){return t=>t+e}function _t(e){let t=0;for(;e.previousSibling;)e=e.previousSibling,t++;return t}function kt(e,t,o){e.insertBefore(o,e.childNodes[t]||null)}function vt(e){return e&&e.nodeType===Node.COMMENT_NODE}function Ct(e){return!!e&&(at(e)?Ct(e.parentElement):!!e.getClientRects&&!!e.getClientRects().length)}function At({element:e,target:t,positions:o,limiter:i,fitInViewport:n,viewportOffsetConfig:s}){z(t)&&(t=t()),z(i)&&(i=i());const r=rt(e),a=Et(s),l=new ut(e),c=xt(t,a);let d;if(!c||!a.getIntersection(c))return null;const u={targetRect:c,elementRect:l,positionedElementAncestor:r,viewportRect:a};if(i||n){if(i){const e=xt(i,a);e&&(u.limiterRect=e)}d=function(e,t){const{elementRect:o}=t,i=o.getArea(),n=e.map((e=>new Tt(e,t))).filter((e=>!!e.name));let s=0,r=null;for(const e of n){const{limiterIntersectionArea:t,viewportIntersectionArea:o}=e;if(t===i)return e;const n=o**2+t**2;n>s&&(s=n,r=e)}return r}(o,u)}else d=new Tt(o[0],u);return d}function xt(e,t){const o=new ut(e).getVisible();return o?o.getIntersection(t):null}function Et(e){e=Object.assign({top:0,bottom:0,left:0,right:0},e);const t=new ut(J.window);return t.top+=e.top,t.height-=e.top,t.bottom-=e.bottom,t.height-=e.bottom,t.left+=e.left,t.right-=e.right,t.width-=e.left+e.right,t}class Tt{name;config;_positioningFunctionCoordinates;_options;_cachedRect;_cachedAbsoluteRect;constructor(e,t){const o=e(t.targetRect,t.elementRect,t.viewportRect,t.limiterRect);if(!o)return;const{left:i,top:n,name:s,config:r}=o;this.name=s,this.config=r,this._positioningFunctionCoordinates={left:i,top:n},this._options=t}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const e=this._options.limiterRect;return e?e.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=this._rect.toAbsoluteRect()),this._cachedAbsoluteRect}}function Pt(e){const t=e.parentNode;t&&t.removeChild(e)}function St(){const e=J.window.visualViewport;if(!e||!Y.isiOS&&!Y.isSafari)return{left:0,top:0};return{left:Math.max(Math.round(e.offsetLeft),0),top:Math.max(Math.round(e.offsetTop),0)}}function It({window:e,rect:t,alignToTop:o,forceScroll:i,viewportOffset:n}){const s=t.clone().moveBy(0,n.bottom),r=t.clone().moveBy(0,-n.top),a=new ut(e).excludeScrollbarsAndBorders(),l=o&&i,c=[r,s].every((e=>a.contains(e)));let{scrollX:d,scrollY:u}=e;const h=d,m=u;l?u-=a.top-t.top+n.top:c||(Vt(r,a)?u-=a.top-t.top+n.top:Ot(s,a)&&(u+=o?t.top-a.top-n.top:t.bottom-a.bottom+n.bottom)),c||(Dt(t,a)?d-=a.left-t.left+n.left:Ft(t,a)&&(d+=t.right-a.right+n.right)),d==h&&u===m||e.scrollTo(d,u)}function Rt({parent:e,getRect:t,alignToTop:o,forceScroll:i,ancestorOffset:n=0,limiterElement:s}){const r=Mt(e),a=o&&i;let l,c,d;const u=s||r.document.body;for(;e!=u;)c=t(),l=new ut(e).excludeScrollbarsAndBorders(),d=l.contains(c),a?e.scrollTop-=l.top-c.top+n:d||(Vt(c,l)?e.scrollTop-=l.top-c.top+n:Ot(c,l)&&(e.scrollTop+=o?c.top-l.top-n:c.bottom-l.bottom+n)),d||(Dt(c,l)?e.scrollLeft-=l.left-c.left+n:Ft(c,l)&&(e.scrollLeft+=c.right-l.right+n)),e=e.parentNode}function Ot(e,t){return e.bottom>t.bottom}function Vt(e,t){return e.topt.right}function Mt(e){return lt(e)?e.startContainer.ownerDocument.defaultView:e.ownerDocument.defaultView}function Nt(e){if(lt(e)){let t=e.commonAncestorContainer;return at(t)&&(t=t.parentNode),t}return e.parentNode}function Bt(e,t){const o=Mt(e),i=new ut(e);if(o===t)return i;{let e=o;for(;e!=t;){const t=e.frameElement,o=new ut(t).excludeScrollbarsAndBorders();i.moveBy(o.left,o.top),e=e.parent}}return i}const Lt={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},zt={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},jt={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},$t=Gt(),qt=Object.fromEntries(Object.entries($t).map((([e,t])=>{let o;return o=t in jt?jt[t]:e.charAt(0).toUpperCase()+e.slice(1),[t,o]})));function Ht(e){let t;if("string"==typeof e){if(t=$t[e.toLowerCase()],!t)throw new fe("keyboard-unknown-key",null,{key:e})}else t=e.keyCode+(e.altKey?$t.alt:0)+(e.ctrlKey?$t.ctrl:0)+(e.shiftKey?$t.shift:0)+(e.metaKey?$t.cmd:0);return t}function Wt(e){return"string"==typeof e&&(e=function(e){return e.split("+").map((e=>e.trim()))}(e)),e.map((e=>"string"==typeof e?function(e){if(e.endsWith("!"))return Ht(e.slice(0,-1));const t=Ht(e);return(Y.isMac||Y.isiOS)&&t==$t.ctrl?$t.cmd:t}(e):e)).reduce(((e,t)=>t+e),0)}function Ut(e,t){let o=Wt(e);const i=t?"Mac"===t:Y.isMac||Y.isiOS;return Object.entries(i?Lt:zt).reduce(((e,[t,i])=>(o&$t[t]&&(o&=~$t[t],e+=i),e)),"")+(o?qt[o]:"")}function Kt(e,t){const o="ltr"===t;switch(e){case $t.arrowleft:return o?"left":"right";case $t.arrowright:return o?"right":"left";case $t.arrowup:return"up";case $t.arrowdown:return"down"}}function Gt(){const e={pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let t=65;t<=90;t++){e[String.fromCharCode(t).toLowerCase()]=t}for(let t=48;t<=57;t++)e[t-48]=t;for(let t=112;t<=123;t++)e["f"+(t-111)]=t;return Object.assign(e,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),e}const Jt=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig","ur","urd"];function Zt(e){return Jt.includes(e)?"rtl":"ltr"}function Qt(e){return Array.isArray(e)?e:[e]}function Yt(e,t,o=1,i){if("number"!=typeof o)throw new fe("translation-service-quantity-not-a-number",null,{quantity:o});const n=i||J.window.CKEDITOR_TRANSLATIONS,s=function(e){return Object.keys(e).length}(n);1===s&&(e=Object.keys(n)[0]);const r=t.id||t.string;if(0===s||!function(e,t,o){return!!o[e]&&!!o[e].dictionary[t]}(e,r,n))return 1!==o?t.plural:t.string;const a=n[e].dictionary,l=n[e].getPluralForm||(e=>1===e?0:1),c=a[r];if("string"==typeof c)return c;return c[Number(l(o))]}J.window.CKEDITOR_TRANSLATIONS||(J.window.CKEDITOR_TRANSLATIONS={});class Xt{uiLanguage;uiLanguageDirection;contentLanguage;contentLanguageDirection;t;translations;constructor({uiLanguage:e="en",contentLanguage:t,translations:o}={}){this.uiLanguage=e,this.contentLanguage=t||this.uiLanguage,this.uiLanguageDirection=Zt(this.uiLanguage),this.contentLanguageDirection=Zt(this.contentLanguage),this.translations=function(e){return Array.isArray(e)?e.reduce(((e,t)=>G(e,t))):e}(o),this.t=(e,t)=>this._t(e,t)}_t(e,t=[]){t=Qt(t),"string"==typeof e&&(e={string:e});const o=!!e.plural?t[0]:1;return function(e,t){return e.replace(/%(\d+)/g,((e,o)=>othis._items.length||t<0)throw new fe("collection-add-item-invalid-index",this);let o=0;for(const i of e){const e=this._getItemIdBeforeAdding(i),n=t+o;this._items.splice(n,0,i),this._itemMap.set(e,i),this.fire("add",i,n),o++}return this.fire("change",{added:e,removed:[],index:t}),this}get(e){let t;if("string"==typeof e)t=this._itemMap.get(e);else{if("number"!=typeof e)throw new fe("collection-get-invalid-arg",this);t=this._items[e]}return t||null}has(e){if("string"==typeof e)return this._itemMap.has(e);{const t=e[this._idProperty];return t&&this._itemMap.has(t)}}getIndex(e){let t;return t="string"==typeof e?this._itemMap.get(e):e,t?this._items.indexOf(t):-1}remove(e){const[t,o]=this._remove(e);return this.fire("change",{added:[],removed:[t],index:o}),t}map(e,t){return this._items.map(e,t)}forEach(e,t){this._items.forEach(e,t)}find(e,t){return this._items.find(e,t)}filter(e,t){return this._items.filter(e,t)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const e=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:e,index:0})}bindTo(e){if(this._bindToCollection)throw new fe("collection-bind-to-rebind",this);return this._bindToCollection=e,{as:e=>{this._setUpBindToBinding((t=>new e(t)))},using:e=>{"function"==typeof e?this._setUpBindToBinding(e):this._setUpBindToBinding((t=>t[e]))}}}_setUpBindToBinding(e){const t=this._bindToCollection,o=(o,i,n)=>{const s=t._bindToCollection==this,r=t._bindToInternalToExternalMap.get(i);if(s&&r)this._bindToExternalToInternalMap.set(i,r),this._bindToInternalToExternalMap.set(r,i);else{const o=e(i);if(!o)return void this._skippedIndexesFromExternal.push(n);let s=n;for(const e of this._skippedIndexesFromExternal)n>e&&s--;for(const e of t._skippedIndexesFromExternal)s>=e&&s++;this._bindToExternalToInternalMap.set(i,o),this._bindToInternalToExternalMap.set(o,i),this.add(o,s);for(let e=0;e{const i=this._bindToExternalToInternalMap.get(t);i&&this.remove(i),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((e,t)=>(ot&&e.push(t),e)),[])}))}_getItemIdBeforeAdding(e){const t=this._idProperty;let o;if(t in e){if(o=e[t],"string"!=typeof o)throw new fe("collection-add-invalid-id",this);if(this.get(o))throw new fe("collection-add-item-already-exists",this)}else e[t]=o=me();return o}_remove(e){let t,o,i,n=!1;const s=this._idProperty;if("string"==typeof e?(o=e,i=this._itemMap.get(o),n=!i,i&&(t=this._items.indexOf(i))):"number"==typeof e?(t=e,i=this._items[t],n=!i,i&&(o=i[s])):(i=e,o=i[s],t=this._items.indexOf(i),n=-1==t||!this._itemMap.get(o)),n)throw new fe("collection-remove-404",this);this._items.splice(t,1),this._itemMap.delete(o);const r=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(r),this.fire("remove",i,t),[i,t]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function to(e){const t=e.next();return t.done?null:t.value}class oo extends(et(Be())){_elements=new Set;_externalViews=new Set;_blurTimeout=null;constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null)}get elements(){return Array.from(this._elements.values())}get externalViews(){return Array.from(this._externalViews.values())}add(e){if(no(e))this._addElement(e);else if(io(e))this._addView(e);else{if(!e.element)throw new fe("focustracker-add-view-missing-element",{focusTracker:this,view:e});this._addElement(e.element)}}remove(e){no(e)?this._removeElement(e):io(e)?this._removeView(e):this._removeElement(e.element)}_addElement(e){if(this._elements.has(e))throw new fe("focustracker-add-element-already-exist",this);this.listenTo(e,"focus",(()=>{const t=this.externalViews.find((t=>function(e,t){if(so(e,t))return!0;return!!t.focusTracker.externalViews.find((t=>so(e,t)))}(e,t)));t?this._focus(t.element):this._focus(e)}),{useCapture:!0}),this.listenTo(e,"blur",(()=>{this._blur()}),{useCapture:!0}),this._elements.add(e)}_removeElement(e){this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e)),e===this.focusedElement&&this._blur()}_addView(e){e.element&&this._addElement(e.element),this.listenTo(e.focusTracker,"change:focusedElement",(()=>{e.focusTracker.focusedElement?e.element&&this._focus(e.element):this._blur()})),this._externalViews.add(e)}_removeView(e){e.element&&this._removeElement(e.element),this.stopListening(e.focusTracker),this._externalViews.delete(e)}destroy(){this.stopListening(),this._elements.clear(),this._externalViews.clear(),this.isFocused=!1,this.focusedElement=null}_focus(e){this._clearBlurTimeout(),this.focusedElement=e,this.isFocused=!0}_blur(){if(this.elements.find((e=>e.contains(document.activeElement))))return;this.externalViews.find((e=>e.focusTracker.isFocused&&!e.focusTracker._blurTimeout))||(this._clearBlurTimeout(),this._blurTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0))}_clearBlurTimeout(){clearTimeout(this._blurTimeout),this._blurTimeout=null}}function io(e){return"focusTracker"in e&&e.focusTracker instanceof oo}function no(e){return L(e)}function so(e,t){return!!t.element&&t.element.contains(document.activeElement)&&e.contains(t.element)}class ro{_listener;constructor(){this._listener=new(et())}listenTo(e){this._listener.listenTo(e,"keydown",((e,t)=>{this._listener.fire("_keydown:"+Ht(t),t)}))}set(e,t,o={}){const i=Wt(e),n=o.priority;this._listener.listenTo(this._listener,"_keydown:"+i,((e,i)=>{o.filter&&!o.filter(i)||(t(i,(()=>{i.preventDefault(),i.stopPropagation(),e.stop()})),e.return=!0)}),{priority:n})}press(e){return!!this._listener.fire("_keydown:"+Ht(e),e)}stopListening(e){this._listener.stopListening(e)}destroy(){this.stopListening()}}function ao(e){return Ue(e)?new Map(e):function(e){const t=new Map;for(const o in e)t.set(o,e[o]);return t}(e)}function lo(e,t,o){const i=e.length,n=t.length;for(let t=i-1;t>=o;t--)e[t+n]=e[t];for(let i=0;ie(...n)),t)}return i.cancel=()=>{clearTimeout(o)},i}function uo(e){try{if(!e.startsWith("ey"))return null;const t=atob(e.replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(t)}catch{return null}}function ho(e,t){return!!(o=e.charAt(t-1))&&1==o.length&&/[\ud800-\udbff]/.test(o)&&function(e){return!!e&&1==e.length&&/[\udc00-\udfff]/.test(e)}(e.charAt(t));var o}function mo(e,t){return!!(o=e.charAt(t))&&1==o.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(o);var o}const go=fo();function po(e,t){const o=String(e).matchAll(go);return Array.from(o).some((e=>e.indexe.source)).join("|")+")";return new RegExp(`${e}|${t}(?:‍${t})*`,"ug")}function bo(e){if(!e)return null;const t=function(e){const t=e.split(".");if(3!=t.length)return null;return t[1]}(e);return t?uo(t):null}function wo(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function yo(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function _o(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(_o).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}function ko(e){if(Array.isArray(e))return e.map(yo);if("symbol"==typeof e)return[e];const t=[],o=(e=_o(e)).length;if(0===o)return t;let i=0,n="",s="",r=!1;for(46===e.charCodeAt(0)&&(t.push(""),i++);i{const i=e[t];Object.hasOwn(e,t)&&Co(i,o)&&(void 0!==o||t in e)||(e[t]=o)},xo=/^(?:0|[1-9]\d*)$/;function Eo(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&eo),(()=>{}))}function Oo(e){const t=e?.constructor;return e===("function"==typeof t?t.prototype:Object.prototype)}function Vo(e){if(!e)return 0===e?e:0;if((e=function(e){return To(e)?NaN:Number(e)}(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e==e?e:0}function Do(e,t){if((e=function(e){const t=Vo(e),o=t%1;return o?t-o:t}(e))<1||!Number.isSafeInteger(e))return[];const o=new Array(e);for(let i=0;i`${e}`)),o=new Set(t);i=e,"undefined"!=typeof Buffer&&Buffer.isBuffer(i)&&(o.add("offset"),o.add("parent"));var i;W(e)&&(o.add("buffer"),o.add("byteLength"),o.add("byteOffset"));const n=Mo(e).filter((e=>!o.has(e)));if(Array.isArray(e))return[...t,...n];return[...t.filter((t=>Object.hasOwn(e,t))),...n]}(e):Oo(e)?function(e){const t=Mo(e);return t.filter((e=>"constructor"!==e))}(e):Mo(e);default:return Mo(Object(e))}}function Mo(e){const t=[];for(const o in e)t.push(o);return t}function No(e,...t){for(let o=0;o{null!==s&&(e.apply(n,s),n=void 0,s=null)};let c=null;const d=()=>{null!=c&&clearTimeout(c),c=setTimeout((()=>{c=null,a&&l(),u()}),t)},u=()=>{null!==c&&(clearTimeout(c),c=null),n=void 0,s=null},h=function(...e){if(o?.aborted)return;n=this,s=e;const t=null==c;d(),r&&t&&l()};return h.schedule=d,h.cancel=u,h.flush=()=>{l()},o?.addEventListener("abort",u,{once:!0}),h}function zo(e,t=0,o={}){"object"!=typeof o&&(o={});const{leading:i=!1,trailing:n=!0,maxWait:s}=o,r=Array(2);let a;i&&(r[0]="leading"),n&&(r[1]="trailing");let l=null;const c=Lo((function(...t){a=e.apply(this,t),l=null}),t,{edges:r}),d=function(...t){return null!=s&&(null===l&&(l=Date.now()),Date.now()-l>=s)?(a=e.apply(this,t),l=Date.now(),c.cancel(),c.schedule(),a):(c.apply(this,t),a)};return d.cancel=c.cancel,d.flush=()=>(c.flush(),a),d}function jo(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let o=0;return(...i)=>{if(++o>=e)return t(...i)}}function $o(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}function qo(e,t,o){return Ho(e,t,void 0,void 0,void 0,void 0,o)}function Ho(e,t,o,i,n,s,r){const a=r(e,t,o,i,n,s);if(void 0!==a)return a;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return e===t;case"number":return e===t||Object.is(e,t);case"object":return Wo(e,t,s,r)}return Wo(e,t,s,r)}function Wo(e,t,o,i){if(Object.is(e,t))return!0;let n=c(e),s=c(t);if(n===g&&(n=v),s===g&&(s=v),n!==s)return!1;switch(n){case u:return e.toString()===t.toString();case h:return Co(e.valueOf(),t.valueOf());case m:case f:case p:return Object.is(e.valueOf(),t.valueOf());case d:return e.source===t.source&&e.flags===t.flags;case"[object Function]":return e===t}const r=(o=o??new Map).get(e),a=o.get(t);if(null!=r&&null!=a)return r===t;o.set(e,t),o.set(t,e);try{switch(n){case b:if(e.size!==t.size)return!1;for(const[n,s]of e.entries())if(!t.has(n)||!Ho(s,t.get(n),n,e,t,o,i))return!1;return!0;case w:{if(e.size!==t.size)return!1;const n=Array.from(e.values()),s=Array.from(t.values());for(let r=0;rHo(a,n,void 0,e,t,o,i)));if(-1===l)return!1;s.splice(l,1)}return!0}case y:case A:case x:case E:case T:case"[object BigUint64Array]":case P:case S:case I:case"[object BigInt64Array]":case R:case O:if("undefined"!=typeof Buffer&&Buffer.isBuffer(e)!==Buffer.isBuffer(t))return!1;if(e.length!==t.length)return!1;for(let n=0;n{}),qo(e,t,((...i)=>{const n=o(...i);return void 0!==n?Boolean(n):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?Uo(Array.from(e),Array.from(t),jo(2,o)):void 0}))}function Ko(e,t){return qo(e,t,K)}function Go(e){if(V(e))return e;const t=c(e);if(!function(e){switch(c(e)){case g:case y:case k:case C:case m:case f:case R:case O:case P:case S:case I:case b:case h:case v:case d:case w:case u:case p:case A:case x:case E:case T:return!0;default:return!1}}(e))return{};if(o=e,Array.isArray(o)){const t=Array.from(e);return e.length>0&&"string"==typeof e[0]&&Object.hasOwn(e,"index")&&(t.index=e.index,t.input=e.input),t}var o;if(W(e)){const t=e;return new(0,t.constructor)(t.buffer,t.byteOffset,t.length)}if(t===k)return new ArrayBuffer(e.byteLength);if(t===C){const t=e,o=t.buffer,i=t.byteOffset,n=t.byteLength,s=new ArrayBuffer(n),r=new Uint8Array(o,i,n);return new Uint8Array(s).set(r),new DataView(s)}if(t===m||t===h||t===u){const o=new(0,e.constructor)(e.valueOf());return t===u?function(e,t){const o=t.valueOf().length;for(const i in t)Object.hasOwn(t,i)&&(Number.isNaN(Number(i))||Number(i)>=o)&&(e[i]=t[i])}(o,e):Jo(o,e),o}if(t===f)return new Date(Number(e));if(t===d){const t=e,o=new RegExp(t.source,t.flags);return o.lastIndex=t.lastIndex,o}if(t===p)return Object(Symbol.prototype.valueOf.call(e));if(t===b){const t=e,o=new Map;return t.forEach(((e,t)=>{o.set(t,e)})),o}if(t===w){const t=e,o=new Set;return t.forEach((e=>{o.add(e)})),o}if(t===g){const t=e,o={};return Jo(o,t),o.length=t.length,o[Symbol.iterator]=t[Symbol.iterator],o}const i={};return function(e,t){const o=Object.getPrototypeOf(t);if(null!==o){"function"==typeof t.constructor&&Object.setPrototypeOf(e,o)}}(i,e),Jo(i,e),function(e,t){const o=Object.getOwnPropertySymbols(t);for(let i=0;iei([[t,r]],e)))}Zo.has(s)||(Zo.set(s,new Map),s.registerPostFixer((e=>ei(Zo.get(s),e))),s.on("change:isComposing",(()=>{e.change((e=>ei(Zo.get(s),e)))}),{priority:"high"})),t.is("editableElement")&&t.on("change:placeholder",((e,t,o)=>r(o))),t.placeholder?r(t.placeholder):o&&r(o),o&&function(){Qo||be("enableViewPlaceholder-deprecated-text-option");Qo=!0}()}function Xo(e,t){return!!t.hasClass("ck-placeholder")&&(e.removeClass("ck-placeholder",t),!0)}function ei(e,t){const o=[];let i=!1;for(const[n,s]of e)s.isDirectHost&&(o.push(n),ti(t,n,s)&&(i=!0));for(const[n,s]of e){if(s.isDirectHost)continue;const e=oi(n);e!==s.hostElement&&s.hostElement&&(t.removeAttribute("data-placeholder",s.hostElement),Xo(t,s.hostElement),s.hostElement=null,i=!0),e&&(o.includes(e)||(s.hostElement=e,ti(t,n,s)&&(i=!0)))}return i}function ti(e,t,o){const{text:i,isDirectHost:n,hostElement:s}=o;let r=!1;s.getAttribute("data-placeholder")!==i&&(e.setAttribute("data-placeholder",i,s),r=!0);return(n||1==t.childCount)&&function(e,t){if(!e.isAttached())return!1;if(function(e){for(const t of e.getChildren())if(!t.is("uiElement"))return!0;return!1}(e))return!1;const o=e.document,i=o.selection.anchor;return!(o.isComposing&&i&&i.parent===e||!t&&o.isFocused&&(!i||i.parent===e))}(s,o.keepOnFocus)?function(e,t){return!t.hasClass("ck-placeholder")&&(e.addClass("ck-placeholder",t),!0)}(e,s)&&(r=!0):Xo(e,s)&&(r=!0),r}function oi(e){if(e.childCount){const t=e.getChild(0);if(t.is("element")&&!t.is("uiElement")&&!t.is("attributeElement"))return t}return null}class ii{is(){throw new Error("is() method is abstract")}}class ni extends(xe(ii)){document;parent;constructor(e){super(),this.document=e,this.parent=null}get index(){let e;if(!this.parent)return null;if(-1==(e=this.parent.getChildIndex(this)))throw new fe("view-node-not-found-in-parent",this);return e}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}isAttached(){return this.root.is("rootElement")}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.index),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),i=e.getAncestors(t);let n=0;for(;o[n]==i[n]&&o[n];)n++;return 0===n?null:o[n-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),i=We(t,o);switch(i){case"prefix":return!0;case"extension":return!1;default:return t[i]e.data.length)throw new fe("view-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.data.length)throw new fe("view-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get offsetSize(){return this.data.length}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}getAncestors(e={}){const t=[];let o=e.includeSelf?this.textNode:this.parent;for(;null!==o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}}ri.prototype.is=function(e){return"$textProxy"===e||"view:$textProxy"===e||"textProxy"===e||"view:textProxy"===e};class ai{_consumables=new Map;add(e,t){let o;e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):(this._consumables.has(e)?o=this._consumables.get(e):(o=new li(e),this._consumables.set(e,o)),o.add(t?ci(t):e._getConsumables()))}test(e,t){const o=this._consumables.get(e);return void 0===o?null:e.is("$text")||e.is("documentFragment")?o:o.test(ci(t))}consume(e,t){if(e.is("$text")||e.is("documentFragment"))return!!this.test(e,t)&&(this._consumables.set(e,!1),!0);const o=this._consumables.get(e);return void 0!==o&&o.consume(ci(t))}revert(e,t){const o=this._consumables.get(e);void 0!==o&&(e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):o.revert(ci(t)))}static createFrom(e,t){if(t||(t=new ai),e.is("$text"))t.add(e);else if(e.is("element")||e.is("documentFragment")){t.add(e);for(const o of e.getChildren())ai.createFrom(o,t)}return t}}class li{element;_canConsumeName=null;_attributes=new Map;constructor(e){this.element=e}add(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes)if(o){let e=this._attributes.get(t);e&&"boolean"!=typeof e||(e=new Map,this._attributes.set(t,e)),e.set(o,!0)}else{if("style"==t||"class"==t)throw new fe("viewconsumable-invalid-attribute",this);this._attributes.set(t,!0)}}test(e){if(e.name&&!this._canConsumeName)return this._canConsumeName;for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(void 0===e)return null;if(!1===e)return!1;if(!0!==e)if(o){const t=e.get(o);if(void 0===t)return null;if(!t)return!1}else for(const t of e.values())if(!t)return!1}return!0}consume(e){if(!this.test(e))return!1;e.name&&(this._canConsumeName=!1);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if("boolean"==typeof e)for(const[e]of this.element._getConsumables(t,o).attributes)this._attributes.set(e,!1);else if(o)for(const[,i]of this.element._getConsumables(t,o).attributes)e.set(i,!1);else for(const t of e.keys())e.set(t,!1)}return!0}revert(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(!1!==e){if(void 0!==e&&!0!==e)if(o){!1===e.get(o)&&e.set(o,!0)}else for(const t of e.keys())e.set(t,!0)}else this._attributes.set(t,!0)}}}function ci(e){const t=[];return"attributes"in e&&e.attributes&&di(t,e.attributes),"classes"in e&&e.classes&&di(t,e.classes,"class"),"styles"in e&&e.styles&&di(t,e.styles,"style"),{name:e.name||!1,attributes:t}}function di(e,t,o){if("string"!=typeof t)for(const i of t)Array.isArray(i)?e.push(i):e.push(o?[o,i]:[i]);else e.push(o?[o,t]:[t])}class ui{_patterns=[];constructor(...e){this.add(...e)}add(...e){for(let t of e)("string"==typeof t||t instanceof RegExp)&&(t={name:t}),this._patterns.push(t)}match(...e){for(const t of e)for(const e of this._patterns){const o=this._isElementMatching(t,e);if(o)return{element:t,pattern:e,match:o}}return null}matchAll(...e){const t=[];for(const o of e)for(const e of this._patterns){const i=this._isElementMatching(o,e);i&&t.push({element:o,pattern:e,match:i})}return t.length>0?t:null}getElementName(){if(1!==this._patterns.length)return null;const e=this._patterns[0],t=e.name;return"function"==typeof e||!t||t instanceof RegExp?null:t}_isElementMatching(e,t){if("function"==typeof t){const o=t(e);return o&&"object"==typeof o?ci(o):o}const o={};if(t.name&&(o.name=function(e,t){if(e instanceof RegExp)return!!t.match(e);return e===t}(t.name,e.name),!o.name))return null;const i=[];return t.attributes&&!function(e,t,o){let i;"object"!=typeof e||e instanceof RegExp||Array.isArray(e)?i=["class","style"]:(void 0!==e.style&&be("matcher-pattern-deprecated-attributes-style-key",e),void 0!==e.class&&be("matcher-pattern-deprecated-attributes-class-key",e));return t._collectAttributesMatch(mi(e),o,i)}(t.attributes,e,i)||t.classes&&!function(e,t,o){return t._collectAttributesMatch(mi(e,"class"),o)}(t.classes,e,i)||t.styles&&!function(e,t,o){return t._collectAttributesMatch(mi(e,"style"),o)}(t.styles,e,i)?null:(i.length&&(o.attributes=i),o)}}function hi(e,t){return!0===e||e===t||e instanceof RegExp&&!!String(t).match(e)}function mi(e,t){if(Array.isArray(e))return e.map((e=>"object"!=typeof e||e instanceof RegExp?t?[t,e,!0]:[e,!0]:(void 0!==e.key&&void 0!==e.value||be("matcher-pattern-missing-key-or-value",e),t?[t,e.key,e.value]:[e.key,e.value])));if("object"!=typeof e||e instanceof RegExp)return[t?[t,e,!0]:[e,!0]];const o=[];for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&o.push(t?[t,i,e[i]]:[i,e[i]]);return o}class gi{_styles;_cachedStyleNames=null;_cachedExpandedStyleNames=null;_styleProcessor;constructor(e){this._styles={},this._styleProcessor=e}get isEmpty(){return!Object.entries(this._styles).length}get size(){return this.isEmpty?0:this.getStyleNames().length}setTo(e){this.clear();const t=function(e){let t=null,o=0,i=0,n=null;const s=new Map;if(""===e)return s;";"!=e.charAt(e.length-1)&&(e+=";");for(let r=0;rt===e));return Array.isArray(t)}set(e,t){if(this._cachedStyleNames=null,this._cachedExpandedStyleNames=null,s(e))for(const[t,o]of Object.entries(e))this._styleProcessor.toNormalizedForm(t,o,this._styles);else this._styleProcessor.toNormalizedForm(e,t,this._styles)}remove(e){const t={};for(const o of Qt(e)){const e=fi(o),i=vo(this._styles,e);if(i)bi(t,e,i);else{const e=this.getAsString(o);void 0!==e&&this._styleProcessor.toNormalizedForm(o,e,t)}}Object.keys(t).length&&(wi(this._styles,t),this._cachedStyleNames=null,this._cachedExpandedStyleNames=null)}getNormalized(e){return this._styleProcessor.getNormalized(e,this._styles)}toString(){return this.isEmpty?"":this.getStylesEntries().map((e=>e.join(":"))).sort().join(";")+";"}getAsString(e){if(this.isEmpty)return;if(this._styles[e]&&!s(this._styles[e]))return this._styles[e];const t=this._styleProcessor.getReducedForm(e,this._styles).find((([t])=>t===e));return Array.isArray(t)?t[1]:void 0}getStyleNames(e=!1){return this.isEmpty?[]:e?(this._cachedExpandedStyleNames||=this._styleProcessor.getStyleNames(this._styles),this._cachedExpandedStyleNames):(this._cachedStyleNames||=this.getStylesEntries().map((([e])=>e)),this._cachedStyleNames)}keys(){return this.getStyleNames()}clear(){this._styles={},this._cachedStyleNames=null,this._cachedExpandedStyleNames=null}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.getStyleNames())if(!e.has(t)||e.getAsString(t)!==this.getAsString(t))return!1;return!0}getStylesEntries(){const e=[],t=Object.keys(this._styles);for(const o of t)e.push(...this._styleProcessor.getReducedForm(o,this._styles));return e}_clone(){const e=new this.constructor(this._styleProcessor);return e.set(this.getNormalized()),e}_getTokensMatch(e,t){const o=[];for(const i of this.getStyleNames(!0))if(hi(e,i)){if(!0===t){o.push(i);continue}hi(t,this.getAsString(i))&&o.push(i)}return o.length?o:void 0}_getConsumables(e){const t=[];if(e){t.push(e);for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o)}else for(const e of this.getStyleNames()){for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o);t.push(e)}return t}_canMergeFrom(e){for(const t of e.getStyleNames())if(this.has(t)&&this.getAsString(t)!==e.getAsString(t))return!1;return!0}_mergeFrom(e){for(const t of e.getStyleNames())this.has(t)||this.set(t,e.getAsString(t))}_isMatching(e){for(const t of e.getStyleNames())if(!this.has(t)||this.getAsString(t)!==e.getAsString(t))return!1;return!0}}class pi{_normalizers;_extractors;_reducers;_consumables;constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(e,t,o){if(s(t))bi(o,fi(e),t);else if(this._normalizers.has(e)){const i=this._normalizers.get(e),{path:n,value:s}=i(t);bi(o,n,s)}else bi(o,e,t)}getNormalized(e,t){if(!e)return G({},t);if(void 0!==t[e])return t[e];if(this._extractors.has(e)){const o=this._extractors.get(e);if("string"==typeof o)return vo(t,o);const i=o(e,t);if(i)return i}return vo(t,fi(e))}getReducedForm(e,t){const o=this.getNormalized(e,t);if(void 0===o)return[];if(this._reducers.has(e)){return this._reducers.get(e)(o)}return[[e,o]]}getStyleNames(e){const t=new Set;for(const o of this._consumables.keys()){const i=this.getNormalized(o,e);i&&("object"!=typeof i||Object.keys(i).length)&&t.add(o)}for(const o of Object.keys(e))t.add(o);return Array.from(t)}getRelatedStyles(e){return this._consumables.get(e)||[]}setNormalizer(e,t){this._normalizers.set(e,t)}setExtractor(e,t){this._extractors.set(e,t)}setReducer(e,t){this._reducers.set(e,t)}setStyleRelation(e,t){this._mapStyleNames(e,t);for(const o of t)this._mapStyleNames(o,[e])}_mapStyleNames(e,t){this._consumables.has(e)||this._consumables.set(e,[]),this._consumables.get(e).push(...t)}}function fi(e){return e.replace("-",".")}function bi(e,t,o){let i=o;s(o)&&!Array.isArray(o)&&(i=G({},vo(e,t),o)),Ro(e,t,i)}function wi(e,t){for(const o of Object.keys(t))null===e[o]||Array.isArray(e[o])||"object"!=typeof e[o]||"object"!=typeof t[o]?delete e[o]:(wi(e[o],t[o]),Object.keys(e[o]).length||delete e[o])}class yi{_set=new Set;get isEmpty(){return 0==this._set.size}get size(){return this._set.size}has(e){return this._set.has(e)}keys(){return Array.from(this._set.keys())}setTo(e){this.clear();for(const t of e.split(/\s+/))t&&this._set.add(t);return this}set(e){for(const t of Qt(e))t&&this._set.add(t)}remove(e){for(const t of Qt(e))this._set.delete(t)}clear(){this._set.clear()}toString(){return Array.from(this._set).join(" ")}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.keys())if(!e.has(t))return!1;return!0}_clone(){const e=new this.constructor;return e._set=new Set(this._set),e}_getTokensMatch(e){const t=[];if(!0===e){for(const e of this._set.keys())t.push(e);return t}if("string"==typeof e){for(const o of e.split(/\s+/)){if(!this._set.has(o))return;t.push(o)}return t}for(const o of this._set.keys())o.match(e)&&t.push(o);return t.length?t:void 0}_getConsumables(e){return e?[e]:this.keys()}_canMergeFrom(){return!0}_mergeFrom(e){for(const t of e._set.keys())this._set.has(t)||this._set.add(t)}_isMatching(e){for(const t of e._set.keys())if(!this._set.has(t))return!1;return!0}}class _i extends ni{name;_unsafeAttributesToRender=[];_attrs;_children;_customProperties=new Map;get _classes(){return this._attrs.get("class")}get _styles(){return this._attrs.get("style")}constructor(e,t,o,i){super(e),this.name=t,this._attrs=this._parseAttributes(o),this._children=[],i&&this._insertChild(0,i)}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes&&(yield"class"),this._styles&&(yield"style");for(const e of this._attrs.keys())"class"!=e&&"style"!=e&&(yield e)}*getAttributes(){for(const[e,t]of this._attrs.entries())yield[e,String(t)]}getAttribute(e){return this._attrs.has(e)?String(this._attrs.get(e)):void 0}hasAttribute(e,t){return!!this._attrs.has(e)&&(void 0===t||(vi(this.name,e)||ki(this.name,e)?this._attrs.get(e).has(t):this._attrs.get(e)===t))}isSimilar(e){if(!(e instanceof _i))return!1;if(this===e)return!0;if(this.name!=e.name)return!1;if(this._attrs.size!==e._attrs.size)return!1;for(const[t,o]of this._attrs){const i=e._attrs.get(t);if(void 0===i)return!1;if("string"==typeof o||"string"==typeof i){if(i!==o)return!1}else if(!o.isSimilar(i))return!1}return!0}hasClass(...e){for(const t of e)if(!this._classes||!this._classes.has(t))return!1;return!0}getClassNames(){const e=this._classes?this._classes.keys():[],t=e[Symbol.iterator]();return Object.assign(e,{next:t.next.bind(t)})}getStyle(e){return this._styles&&this._styles.getAsString(e)}getNormalizedStyle(e){return this._styles&&this._styles.getNormalized(e)}getStyleNames(e){return this._styles?this._styles.getStyleNames(e):[]}hasStyle(...e){for(const t of e)if(!this._styles||!this._styles.has(t))return!1;return!0}findAncestor(...e){const t=new ui(...e);let o=this.parent;for(;o&&!o.is("documentFragment");){if(t.match(o))return o;o=o.parent}return null}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const e=this._classes?this._classes.keys().sort().join(","):"",t=this._styles&&String(this._styles),o=Array.from(this._attrs).filter((([e])=>"style"!=e&&"class"!=e)).map((e=>`${e[0]}="${e[1]}"`)).sort().join(" ");return this.name+(""==e?"":` class="${e}"`)+(t?` style="${t}"`:"")+(""==o?"":` ${o}`)}shouldRenderUnsafeAttribute(e){return this._unsafeAttributesToRender.includes(e)}toJSON(){const e=super.toJSON();if(e.name=this.name,e.type="Element",this._attrs.size&&(e.attributes=Object.fromEntries(this.getAttributes())),this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=[];if(e)for(const o of this.getChildren())t.push(o._clone(e));const o=new this.constructor(this.document,this.name,this._attrs,t);return o._customProperties=new Map(this._customProperties),o.getFillerOffset=this.getFillerOffset,o._unsafeAttributesToRender=this._unsafeAttributesToRender,o}_appendChild(e){return this._insertChild(this.childCount,e)}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const i=function(e,t){if("string"==typeof t)return[new si(e,t)];Ue(t)||(t=[t]);const o=[];for(const i of t)"string"==typeof i?o.push(new si(e,i)):i instanceof ri?o.push(new si(e,i.data)):o.push(i);return o}(this.document,t);for(const t of i)null!==t.parent&&t._remove(),t.parent=this,t.document=this.document,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;ot&&e.selection.editableElement==this)),this.listenTo(e.selection,"change",(()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this}))}destroy(){this.stopListening()}toJSON(){const e=super.toJSON();return e.type="EditableElement",e.isReadOnly=this.isReadOnly,e.isFocused=this.isFocused,e}}xi.prototype.is=function(e,t){return t?t===this.name&&("editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};const Ei=Symbol("rootName");class Ti extends xi{constructor(e,t){super(e,t),this.rootName="main"}get rootName(){return this.getCustomProperty(Ei)}set rootName(e){this._setCustomProperty(Ei,e)}toJSON(){return this.rootName}set _name(e){this.name=e}}Ti.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Pi{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;constructor(e={}){if(!e.boundaries&&!e.startPosition)throw new fe("view-tree-walker-no-start-position",null);if(e.direction&&"forward"!=e.direction&&"backward"!=e.direction)throw new fe("view-tree-walker-unknown-direction",e.startPosition,{direction:e.direction});this.boundaries=e.boundaries||null,e.startPosition?this._position=Si._createAt(e.startPosition):this._position=Si._createAt(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}get position(){return this._position}skip(e){let t,o;do{o=this.position,t=this.next()}while(!t.done&&e(t.value));t.done||(this._position=o)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone()}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&e.offset===o.childCount)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let i;if(o&&o.is("view:$text")){if(e.isAtEnd)return this._position=Si._createAfter(o),this._next();i=o.data[e.offset]}else i=o.getChild(e.offset);if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{i=(o===this._boundaryEndParent?this.boundaries.end.offset:o.data.length)-e.offset}const n=new ri(o,e.offset,i);return e.offset+=i,this._position=e,this._formatReturnValue("text",n,t,e,i)}if(i&&i.is("view:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e=new Si(i,0);return this._position=e,this._formatReturnValue("elementStart",i,t,e,1)}if(i&&i.is("view:$text")){if(this.singleCharacters)return e=new Si(i,0),this._position=e,this._next();let o,n=i.data.length;return i==this._boundaryEndParent?(n=this.boundaries.end.offset,o=new ri(i,0,n),e=Si._createAfter(o)):(o=new ri(i,0,i.data.length),e.offset++),this._position=e,this._formatReturnValue("text",o,t,e,n)}return e=Si._createAfter(o),this._position=e,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",o,t,e)}_previous(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&0===e.offset)return{done:!0,value:void 0};if(o==this._boundaryStartParent&&e.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let i;if(o.is("view:$text")){if(e.isAtStart)return this._position=Si._createBefore(o),this._previous();i=o.data[e.offset-1]}else i=o.getChild(e.offset-1);if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{const t=o===this._boundaryStartParent?this.boundaries.start.offset:0;i=e.offset-t}e.offset-=i;const n=new ri(o,e.offset,i);return this._position=e,this._formatReturnValue("text",n,t,e,i)}if(i&&i.is("view:element"))return this.shallow?(e.offset--,this._position=e,this._formatReturnValue("elementStart",i,t,e,1)):(e=new Si(i,i.childCount),this._position=e,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",i,t,e));if(i&&i.is("view:$text")){if(this.singleCharacters)return e=new Si(i,i.data.length),this._position=e,this._previous();let o,n=i.data.length;if(i==this._boundaryStartParent){const t=this.boundaries.start.offset;o=new ri(i,t,i.data.length-t),n=o.data.length,e=Si._createBefore(o)}else o=new ri(i,0,i.data.length),e.offset--;return this._position=e,this._formatReturnValue("text",o,t,e,n)}return e=Si._createBefore(o),this._position=e,this._formatReturnValue("elementStart",o,t,e,1)}_formatReturnValue(e,t,o,i,n){return t.is("view:$textProxy")&&(t.offsetInText+t.data.length==t.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?o=Si._createAfter(t.textNode):(i=Si._createAfter(t.textNode),this._position=i)),0===t.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?o=Si._createBefore(t.textNode):(i=Si._createBefore(t.textNode),this._position=i))),{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:i,length:n}}}}class Si extends ii{parent;offset;constructor(e,t){super(),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 xi);){if(!e.parent)return null;e=e.parent}return e}getShiftedBy(e){const t=Si._createAt(this),o=t.offset+e;return t.offset=o<0?0:o,t}getLastMatchingPosition(e,t={}){t.startPosition=this;const o=new Pi(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 i=0;for(;t[i]==o[i]&&t[i];)i++;return 0===i?null:t[i-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.root!==e.root)return"different";if(this.isEqual(e))return"same";const t=this.parent.is("node")?this.parent.getPath():[],o=e.parent.is("node")?e.parent.getPath():[];t.push(this.offset),o.push(e.offset);const i=We(t,o);switch(i){case"prefix":return"before";case"extension":return"after";default:return t[i]0?new this(o,i):new this(i,o)}static _createIn(e){return this._createFromParentsAndOffsets(e,0,e,e.childCount)}static _createOn(e){const t=e.is("$textProxy")?e.offsetSize:1;return this._createFromPositionAndShift(Si._createBefore(e),t)}}function Ri(e){return!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))}Ii.prototype.is=function(e){return"range"===e||"view:range"===e};class Oi extends(xe(ii)){_ranges;_lastRangeBackward;_isFake;_fakeSelectionLabel;constructor(...e){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",e.length&&this.setTo(...e)}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];return(this._lastRangeBackward?e.end:e.start).clone()}get focus(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?e.start:e.end).clone()}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}*getRanges(){for(const e of this._ranges)yield e.clone()}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?e.clone():null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?e.clone():null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():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 i of e._ranges)if(t.isEqual(i)){o=!0;break}if(!o)return!1}return!0}isSimilar(e){if(this.isBackward!=e.isBackward)return!1;const t=He(this.getRanges());if(t!=He(e.getRanges()))return!1;if(0==t)return!0;for(let t of this.getRanges()){t=t.getTrimmed();let o=!1;for(let i of e.getRanges())if(i=i.getTrimmed(),t.start.isEqual(i.start)&&t.end.isEqual(i.end)){o=!0;break}if(!o)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...e){let[t,o,i]=e;if("object"==typeof o&&(i=o,o=void 0),null===t)this._setRanges([]),this._setFakeOptions(i);else if(t instanceof Oi||t instanceof Vi)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof Ii)this._setRanges([t],i&&i.backward),this._setFakeOptions(i);else if(t instanceof Si)this._setRanges([new Ii(t)]),this._setFakeOptions(i);else if(t instanceof ni){const e=!!i&&!!i.backward;let n;if(void 0===o)throw new fe("view-selection-setto-required-second-parameter",this);n="in"==o?Ii._createIn(t):"on"==o?Ii._createOn(t):new Ii(Si._createAt(t,o)),this._setRanges([n],e),this._setFakeOptions(i)}else{if(!Ue(t))throw new fe("view-selection-setto-not-selectable",this);this._setRanges(t,i&&i.backward),this._setFakeOptions(i)}this.fire("change")}setFocus(e,t){if(null===this.anchor)throw new fe("view-selection-setfocus-no-ranges",this);const o=Si._createAt(e,t);if("same"==o.compareWith(this.focus))return;const i=this.anchor;this._ranges.pop(),"before"==o.compareWith(i)?this._addRange(new Ii(o,i),!0):this._addRange(new Ii(i,o)),this.fire("change")}toJSON(){const e={ranges:Array.from(this.getRanges()).map((e=>e.toJSON()))};return this.isBackward&&(e.isBackward=!0),this.isFake&&(e.isFake=!0),e}_setRanges(e,t=!1){e=Array.from(e),this._ranges=[];for(const t of e)this._addRange(t);this._lastRangeBackward=!!t}_setFakeOptions(e={}){this._isFake=!!e.fake,this._fakeSelectionLabel=e.fake&&e.label||""}_addRange(e,t=!1){if(!(e instanceof Ii))throw new fe("view-selection-add-range-not-range",this);this._pushRange(e),this._lastRangeBackward=!!t}_pushRange(e){for(const t of this._ranges)if(e.isIntersecting(t))throw new fe("view-selection-range-intersects",this,{addedRange:e,intersectingRange:t});this._ranges.push(new Ii(e.start,e.end))}}Oi.prototype.is=function(e){return"selection"===e||"view:selection"===e};class Vi extends(xe(ii)){_selection;constructor(...e){super(),this._selection=new Oi,this._selection.delegate("change").to(this),e.length&&this._selection.setTo(...e)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(e){return this._selection.isEqual(e)}isSimilar(e){return this._selection.isSimilar(e)}toJSON(){return this._selection.toJSON()}_setTo(...e){this._selection.setTo(...e)}_setFocus(e,t){this._selection.setFocus(e,t)}}Vi.prototype.is=function(e){return"selection"===e||"documentSelection"==e||"view:selection"==e||"view:documentSelection"==e};class Di extends ue{startRange;_eventPhase;_currentTarget;constructor(e,t,o){super(e,t),this.startRange=o,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const Fi=Symbol("bubblingEmitter"),Mi=Symbol("bubblingCallbacks"),Ni=Symbol("bubblingContexts");function Bi(e){return class extends e{fire(e,...t){try{const o=e instanceof ue?e:new ue(this,e),i=ji(this),n=qi(this);if(Li(o,"capturing",this),zi(i,"$capture",o,...t))return o.return;const s=o.startRange||this.selection.getFirstRange(),r=s?s.getContainedElement():null,a=!!r&&function(e,t){for(const o of e)if(o(t))return!0;return!1}(n,r);let l=r||function(e){if(!e)return null;const t=e.start.parent,o=e.end.parent,i=t.getPath(),n=o.getPath();return i.length>n.length?t:o}(s);if(Li(o,"atTarget",l),!a){if(zi(i,"$text",o,...t))return o.return;Li(o,"bubbling",l)}for(;l;){if(l.is("element")&&zi(i,l,o,...t))return o.return;l=l.parent,Li(o,"bubbling",l)}return Li(o,"bubbling",this),zi(i,"$document",o,...t),o.return}catch(e){fe.rethrowUnexpectedError(e,this)}}_addEventListener(e,t,o){const i=Qt(o.context||"$document"),n=ji(this),s=$i(this);for(const e of i)"function"==typeof e&&qi(this).add(e);const r=function(e,t,o){return function(i,n){const{currentTarget:s,eventArgs:r}=n;if("string"!=typeof s){if(s.is("rootElement")&&t.includes("$root"))o.call(e,i,...r);else if(t.includes(s.name))o.call(e,i,...r);else for(const n of t)if("function"==typeof n&&n(s))return void o.call(e,i,...r)}else t.includes(s)&&o.call(e,i,...r)}}(this,i,t);s.set(t,r),this.listenTo(n,e,r,o)}_removeEventListener(e,t){const o=ji(this),i=$i(this),n=i.get(t);n&&(i.delete(t),this.stopListening(o,e,n))}}}function Li(e,t,o){e instanceof Di&&(e._eventPhase=t,e._currentTarget=o)}function zi(e,t,o,...i){return e.fire(o,{currentTarget:t,eventArgs:i}),!!o.stop.called}function ji(e){return e[Fi]||(e[Fi]=new(xe())),e[Fi]}function $i(e){return e[Mi]||(e[Mi]=new Map),e[Mi]}function qi(e){return e[Ni]||(e[Ni]=new Set),e[Ni]}class Hi extends(Bi(Be())){selection;roots;stylesProcessor;_postFixers=new Set;constructor(e){super(),this.selection=new Vi,this.roots=new eo({idProperty:"rootName"}),this.stylesProcessor=e,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1)}getRoot(e="main"){return this.roots.get(e)}registerPostFixer(e){this._postFixers.add(e)}destroy(){this.roots.forEach((e=>e.destroy())),this.stopListening()}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(t=o(e),t)break}while(t)}}class Wi extends _i{static DEFAULT_PRIORITY=10;_priority=10;_id=null;_clonesGroup=null;constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Ui}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new fe("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(e){return null!==this.id||null!==e.id?this.id===e.id:super.isSimilar(e)&&this.priority==e.priority}toJSON(){const e=super.toJSON();return e.type="AttributeElement",e}_clone(e=!1){const t=super._clone(e);return t._priority=this._priority,t._id=this._id,t}_canMergeAttributesFrom(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canMergeAttributesFrom(e)}_canSubtractAttributesOf(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canSubtractAttributesOf(e)}}function Ui(){if(Ki(this))return null;let e=this.parent;for(;e&&e.is("attributeElement");){if(Ki(e)>1)return null;e=e.parent}return!e||Ki(e)>1?null:this.childCount}function Ki(e){return Array.from(e.getChildren()).filter((e=>!e.is("uiElement"))).length}Wi.prototype.is=function(e,t){return t?t===this.name&&("attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e):"attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Gi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Ji}toJSON(){const e=super.toJSON();return e.type="EmptyElement",e}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-emptyelement-cannot-add",[this,t]);return 0}}function Ji(){return null}Gi.prototype.is=function(e,t){return t?t===this.name&&("emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e):"emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Zi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Yi}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-uielement-cannot-add",[this,t]);return 0}render(e,t){return this.toDomElement(e)}toDomElement(e){const t=e.createElement(this.name);for(const e of this.getAttributeKeys())t.setAttribute(e,this.getAttribute(e));return t}toJSON(){const e=super.toJSON();return e.type="UIElement",e}}function Qi(e){e.document.on("arrowKey",((t,o)=>function(e,t,o){if(t.keyCode==$t.arrowright){const e=t.domTarget.ownerDocument.defaultView.getSelection(),i=1==e.rangeCount&&e.getRangeAt(0).collapsed;if(i||t.shiftKey){const t=e.focusNode,n=e.focusOffset,s=o.domPositionToView(t,n);if(null===s)return;let r=!1;const a=s.getLastMatchingPosition((e=>(e.item.is("uiElement")&&(r=!0),!(!e.item.is("uiElement")&&!e.item.is("attributeElement")))));if(r){const t=o.viewPositionToDom(a);i?e.collapse(t.parent,t.offset):e.extend(t.parent,t.offset)}}}}(0,o,e.domConverter)),{priority:"low"})}function Yi(){return null}Zi.prototype.is=function(e,t){return t?t===this.name&&("uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e):"uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Xi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=en}toJSON(){const e=super.toJSON();return e.type="RawElement",e}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-rawelement-cannot-add",[this,t]);return 0}render(e,t){}}function en(){return null}Xi.prototype.is=function(e,t){return t?t===this.name&&("rawElement"===e||"view:rawElement"===e||"element"===e||"view:element"===e):"rawElement"===e||"view:rawElement"===e||e===this.name||e==="view:"+this.name||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class tn extends(xe(ii)){document;_children=[];_customProperties=new Map;constructor(e,t){super(),this.document=e,t&&this._insertChild(0,t)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}get name(){}get getFillerOffset(){}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}_appendChild(e){return this._insertChild(this.childCount,e)}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const i=function(e,t){if("string"==typeof t)return[new si(e,t)];Ue(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new si(e,t):t instanceof ri?new si(e,t.data):t))}(this.document,t);for(const t of i)null!==t.parent&&t._remove(),t.parent=this,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;o{const o=e[e.length-1],i=!t.is("uiElement");return o&&o.breakAttributes==i?o.nodes.push(t):e.push({breakAttributes:i,nodes:[t]}),e}),[]);let i=null,n=e;for(const{nodes:e,breakAttributes:t}of o){const o=this._insertNodes(n,e,t);i||(i=o.start),n=o.end}return i?new Ii(i,n):new Ii(e)}remove(e){const t=e instanceof Ii?e:Ii._createOn(e);if(hn(t,this.document),t.isCollapsed)return new tn(this.document);const{start:o,end:i}=this._breakAttributesRange(t,!0),n=o.parent,s=i.offset-o.offset,r=n._removeChildren(o.offset,s);for(const e of r)this._removeFromClonedElementsGroup(e);const a=this.mergeAttributes(o);return t.start=a,t.end=a.clone(),new tn(this.document,r)}clear(e,t){hn(e,this.document);const o=e.getWalker({direction:"backward",ignoreElementEnd:!0});for(const i of o){const o=i.item;let n;if(o.is("element")&&t.isSimilar(o))n=Ii._createOn(o);else if(!i.nextPosition.isAfter(e.start)&&o.is("$textProxy")){const e=o.getAncestors().find((e=>e.is("element")&&t.isSimilar(e)));e&&(n=Ii._createIn(e))}n&&(n.end.isAfter(e.end)&&(n.end=e.end),n.start.isBefore(e.start)&&(n.start=e.start),this.remove(n))}}move(e,t){let o;if(t.isAfter(e.end)){const i=(t=this._breakAttributes(t,!0)).parent,n=i.childCount;e=this._breakAttributesRange(e,!0),o=this.remove(e),t.offset+=i.childCount-n}else o=this.remove(e);return this.insert(t,o)}wrap(e,t){if(!(t instanceof Wi))throw new fe("view-writer-wrap-invalid-attribute",this.document);if(hn(e,this.document),e.isCollapsed){let i=e.start;i.parent.is("element")&&(o=i.parent,!Array.from(o.getChildren()).some((e=>!e.is("uiElement"))))&&(i=i.getLastMatchingPosition((e=>e.item.is("uiElement")))),i=this._wrapPosition(i,t);const n=this.document.selection;return n.isCollapsed&&n.getFirstPosition().isEqual(e.start)&&this.setSelection(i),new Ii(i)}return this._wrapRange(e,t);var o}unwrap(e,t){if(!(t instanceof Wi))throw new fe("view-writer-unwrap-invalid-attribute",this.document);if(hn(e,this.document),e.isCollapsed)return e;const{start:o,end:i}=this._breakAttributesRange(e,!0),n=o.parent,s=this._unwrapChildren(n,o.offset,i.offset,t),r=this.mergeAttributes(s.start);r.isEqual(s.start)||s.end.offset--;const a=this.mergeAttributes(s.end);return new Ii(r,a)}rename(e,t){const o=new Ci(this.document,e,t.getAttributes());return this.insert(Si._createAfter(t),o),this.move(Ii._createIn(t),Si._createAt(o,0)),this.remove(Ii._createOn(t)),o}clearClonedElementsGroup(e){this._cloneGroups.delete(e)}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}createSlot(e="children"){if(!this._slotFactory)throw new fe("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,e)}_registerSlotFactory(e){this._slotFactory=e}_clearSlotFactory(){this._slotFactory=null}_insertNodes(e,t,o){let i,n;if(i=o?nn(e):e.parent.is("$text")?e.parent.parent:e.parent,!i)throw new fe("view-writer-invalid-position-container",this.document);n=o?this._breakAttributes(e,!0):e.parent.is("$text")?an(e):e;const s=i._insertChild(n.offset,t);for(const e of t)this._addToClonedElementsGroup(e);const r=n.getShiftedBy(s),a=this.mergeAttributes(n);a.isEqual(n)||r.offset--;const l=this.mergeAttributes(r);return new Ii(a,l)}_wrapChildren(e,t,o,i){let n=t;const s=[];for(;n!1,e.parent._insertChild(e.offset,o);const i=new Ii(e,e.getShiftedBy(1));this.wrap(i,t);const n=new Si(o.parent,o.index);o._remove();const s=n.nodeBefore,r=n.nodeAfter;return s&&s.is("view:$text")&&r&&r.is("view:$text")?ln(s,r):rn(n)}_breakAttributesRange(e,t=!1){const o=e.start,i=e.end;if(hn(e,this.document),e.isCollapsed){const o=this._breakAttributes(e.start,t);return new Ii(o,o)}const n=this._breakAttributes(i,t),s=n.parent.childCount,r=this._breakAttributes(o,t);return n.offset+=n.parent.childCount-s,new Ii(r,n)}_breakAttributes(e,t=!1){const o=e.offset,i=e.parent;if(e.parent.is("emptyElement"))throw new fe("view-writer-cannot-break-empty-element",this.document);if(e.parent.is("uiElement"))throw new fe("view-writer-cannot-break-ui-element",this.document);if(e.parent.is("rawElement"))throw new fe("view-writer-cannot-break-raw-element",this.document);if(!t&&i.is("$text")&&un(i.parent))return e.clone();if(un(i))return e.clone();if(i.is("$text"))return this._breakAttributes(an(e),t);if(o==i.childCount){const e=new Si(i.parent,i.index+1);return this._breakAttributes(e,t)}if(0===o){const e=new Si(i.parent,i.index);return this._breakAttributes(e,t)}{const e=i.index+1,n=i._clone();i.parent._insertChild(e,n),this._addToClonedElementsGroup(n);const s=i.childCount-o,r=i._removeChildren(o,s);n._appendChild(r);const a=new Si(i.parent,e);return this._breakAttributes(a,t)}}_addToClonedElementsGroup(e){if(!e.root.is("rootElement"))return;if(e.is("element"))for(const t of e.getChildren())this._addToClonedElementsGroup(t);const t=e.id;if(!t)return;let o=this._cloneGroups.get(t);o||(o=new Set,this._cloneGroups.set(t,o)),o.add(e),e._clonesGroup=o}_removeFromClonedElementsGroup(e){if(e.is("element"))for(const t of e.getChildren())this._removeFromClonedElementsGroup(t);const t=e.id;if(!t)return;const o=this._cloneGroups.get(t);o&&o.delete(e)}}function nn(e){let t=e.parent;for(;!un(t);){if(!t)return;t=t.parent}return t}function sn(e,t){return e.priorityt.priority)&&e.getIdentity()o instanceof e)))throw new fe("view-writer-insert-invalid-node-type",t);o.is("$text")||dn(o.getChildren(),t)}}function un(e){return e&&(e.is("containerElement")||e.is("documentFragment"))}function hn(e,t){const o=nn(e.start),i=nn(e.end);if(!o||!i||o!==i)throw new fe("view-writer-invalid-range-container",t)}const mn=e=>e.createTextNode(" "),gn=e=>{const t=e.createElement("span");return t.dataset.ckeFiller="true",t.innerText=" ",t},pn=e=>{const t=e.createElement("br");return t.dataset.ckeFiller="true",t},fn="⁠".repeat(7);function bn(e){return"string"==typeof e?e.substr(0,7)===fn:at(e)&&e.data.substr(0,7)===fn}function wn(e){return 7==e.data.length&&bn(e)}function yn(e){const t="string"==typeof e?e:e.data;return bn(e)?t.slice(7):t}function _n(e,t){if(t.keyCode==$t.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;bn(t)&&o<=7&&e.collapse(t,0)}}}class kn extends(Be()){domDocuments=new Set;domConverter;markedAttributes=new Set;markedChildren=new Set;markedTexts=new Set;selection;_inlineFiller=null;_fakeSelectionContainer=null;constructor(e,t){super(),this.domConverter=e,this.selection=t,this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),Y.isBlink&&!Y.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()}))}markToSync(e,t){if("text"===e)this.domConverter.mapViewToDom(t.parent)&&this.markedTexts.add(t);else{if(!this.domConverter.mapViewToDom(t))return;if("attributes"===e)this.markedAttributes.add(t);else{if("children"!==e)throw new fe("view-renderer-unknown-type",this);this.markedChildren.add(t)}}}render(){if(this.isComposing&&!Y.isAndroid)return;let e=null;const t=!(Y.isBlink&&!Y.isAndroid)||!this.isSelecting;for(const e of this.markedChildren)this._updateChildrenMappings(e);t?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?e=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(e=this.selection.getFirstPosition(),this.markedChildren.add(e.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(e=this.domConverter.domPositionToView(this._inlineFiller),e&&e.parent.is("$text")&&(e=Si._createBefore(e.parent)));for(const e of this.markedAttributes)this._updateAttrs(e);for(const t of this.markedChildren)this._updateChildren(t,{inlineFillerPosition:e});for(const t of this.markedTexts)!this.markedChildren.has(t.parent)&&this.domConverter.mapViewToDom(t.parent)&&this._updateText(t,{inlineFillerPosition:e});if(t)if(e){const t=this.domConverter.viewPositionToDom(e),o=t.parent.ownerDocument;bn(t.parent)?this._inlineFiller=t.parent:this._inlineFiller=vn(o,t.parent,t.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.domConverter._clearTemporaryCustomProperties(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(e){const t=this.domConverter.mapViewToDom(e);if(!t)return;const o=Array.from(t.childNodes),i=Array.from(this.domConverter.viewChildrenToDom(e,{withChildren:!1})),n=this._diffNodeLists(o,i),s=this._findUpdateActions(n,o,i,Cn);if(-1!==s.indexOf("update")){const t={equal:0,insert:0,delete:0};for(const n of s)if("update"===n){const n=t.equal+t.insert,s=t.equal+t.delete,r=e.getChild(n);!r||r.is("uiElement")||r.is("rawElement")||this._updateElementMappings(r,o[s]),Pt(i[n]),t.equal++}else t[n]++}}_updateElementMappings(e,t){this.domConverter.unbindDomElement(t),this.domConverter.bindElements(t,e),this.markedChildren.add(e),this.markedAttributes.add(e)}_getInlineFillerPosition(){const e=this.selection.getFirstPosition();return e.parent.is("$text")?Si._createBefore(e.parent):e}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=this.domConverter.viewPositionToDom(e);return!!(t&&at(t.parent)&&bn(t.parent))}_removeInlineFiller(){const e=this._inlineFiller;if(!bn(e))throw new fe("view-renderer-filler-was-lost",this);wn(e)?e.remove():e.data=e.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=e.parent,o=e.offset;if(!this.domConverter.mapViewToDom(t.root))return!1;if(!t.is("element"))return!1;if(!function(e){if("false"==e.getAttribute("contenteditable"))return!1;const t=e.findAncestor((e=>e.hasAttribute("contenteditable")));return!t||"true"==t.getAttribute("contenteditable")}(t))return!1;const i=e.nodeBefore,n=e.nodeAfter;return!(i instanceof si||n instanceof si)&&(!!(o!==t.getFillerOffset()||i&&i.is("element","br"))&&(!Y.isAndroid||!i&&!n))}_updateText(e,t){const o=this.domConverter.findCorrespondingDomText(e);let i=this.domConverter.viewToDom(e).data;const n=t.inlineFillerPosition;n&&n.parent==e.parent&&n.offset==e.index&&(i=fn+i),this._updateTextNode(o,i)}_updateAttrs(e){const t=this.domConverter.mapViewToDom(e);if(t){for(const o of Array.from(t.attributes)){const i=o.name;e.hasAttribute(i)||this.domConverter.removeDomElementAttribute(t,i)}for(const o of e.getAttributeKeys())this.domConverter.setDomElementAttribute(t,o,e.getAttribute(o),e)}}_updateChildren(e,t){const o=this.domConverter.mapViewToDom(e);if(!o)return;if(Y.isAndroid){let e=null;for(const t of Array.from(o.childNodes)){if(e&&at(e)&&at(t)){o.normalize();break}e=t}}const i=t.inlineFillerPosition,n=o.childNodes,s=Array.from(this.domConverter.viewChildrenToDom(e,{bind:!0}));i&&i.parent===e&&vn(o.ownerDocument,s,i.offset);const r=this._diffNodeLists(n,s),a=this._findUpdateActions(r,n,s,An);let l=0;const c=new Set;for(const e of a)"delete"===e?(c.add(n[l]),Pt(n[l])):"equal"!==e&&"update"!==e||l++;l=0;for(const e of a)"insert"===e?(kt(o,l,s[l]),l++):"update"===e?(this._updateTextNode(n[l],s[l].data),l++):"equal"===e&&(this._markDescendantTextToSync(this.domConverter.domToView(s[l])),l++);for(const e of c)e.parentNode||this.domConverter.unbindDomElement(e)}_diffNodeLists(e,t){return de(e=function(e,t){const o=Array.from(e);if(0==o.length||!t)return o;o[o.length-1]==t&&o.pop();return o}(e,this._fakeSelectionContainer),t,xn.bind(null,this.domConverter))}_findUpdateActions(e,t,o,i){if(-1===e.indexOf("insert")||-1===e.indexOf("delete"))return e;let n=[],s=[],r=[];const a={equal:0,insert:0,delete:0};for(const l of e)"insert"===l?r.push(o[a.equal+a.insert]):"delete"===l?s.push(t[a.equal+a.delete]):(n=n.concat(de(s,r,i).map((e=>"equal"===e?"update":e))),n.push("equal"),s=[],r=[]),a[l]++;return n.concat(de(s,r,i).map((e=>"equal"===e?"update":e)))}_updateTextNode(e,t){const o=e.data;o!=t&&(Y.isAndroid&&this.isComposing&&o.replace(/\u00A0/g," ")==t.replace(/\u00A0/g," ")||this._updateTextNodeInternal(e,t))}_updateTextNodeInternal(e,t){const o=ae(e.data,t);for(const t of o)"insert"===t.type?e.insertData(t.index,t.values.join("")):e.deleteData(t.index,t.howMany)}_markDescendantTextToSync(e){if(e)if(e.is("$text"))this.markedTexts.add(e);else if(e.is("element"))for(const t of e.getChildren())this._markDescendantTextToSync(t)}_updateSelection(){if(Y.isBlink&&!Y.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;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._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(e)):this.isComposing&&Y.isAndroid||this._updateDomSelection(e):!this.selection.isFake&&this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected&&this._removeFakeSelection()}_updateFakeSelection(e){const t=e.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(e){const t=e.createElement("div");return t.className="ck-fake-selection-container",Object.assign(t.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),t.textContent=" ",t}(t));const o=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(o,this.selection),!this._fakeSelectionNeedsUpdate(e))return;o.parentElement&&o.parentElement==e||e.appendChild(o),o.textContent=this.selection.fakeSelectionLabel||" ";const i=t.getSelection(),n=t.createRange();i.removeAllRanges(),n.selectNodeContents(o),i.addRange(n)}_updateDomSelection(e){const t=e.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(t))return;const o=this.domConverter.viewPositionToDom(this.selection.anchor),i=this.domConverter.viewPositionToDom(this.selection.focus);t.setBaseAndExtent(o.parent,o.offset,i.parent,i.offset),Y.isGecko&&function(e,t){let o=e.parent,i=e.offset;at(o)&&wn(o)&&(i=_t(o)+1,o=o.parentNode);if(o.nodeType!=Node.ELEMENT_NODE||i!=o.childNodes.length-1)return;const n=o.childNodes[i];n&&"BR"==n.tagName&&t.addRange(t.getRangeAt(0))}(i,t)}_domSelectionNeedsUpdate(e){if(!this.domConverter.isDomSelectionCorrect(e))return!0;const t=e&&this.domConverter.domSelectionToView(e);return(!t||!this.selection.isEqual(t))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(t))}_fakeSelectionNeedsUpdate(e){const t=this._fakeSelectionContainer,o=e.ownerDocument.getSelection();return!t||t.parentElement!==e||(o.anchorNode!==t&&!t.contains(o.anchorNode)||t.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const e of this.domDocuments){const t=e.getSelection();if(t.rangeCount){const o=e.activeElement,i=this.domConverter.mapDomToView(o);o&&i&&t.removeAllRanges()}}}_removeFakeSelection(){const e=this._fakeSelectionContainer;e&&e.remove()}_updateFocus(){if(this.isFocused){const e=this.selection.editableElement;e&&this.domConverter.focus(e)}}}function vn(e,t,o){const i=t instanceof Array?t:t.childNodes,n=i[o];if(at(n))return n.data=fn+n.data,n;{const n=e.createTextNode(fn);return Array.isArray(t)?i.splice(o,0,n):kt(t,o,n),n}}function Cn(e,t){return Qe(e)&&Qe(t)&&!at(e)&&!at(t)&&!vt(e)&&!vt(t)&&e.tagName.toLowerCase()===t.tagName.toLowerCase()}function An(e,t){return Qe(e)&&Qe(t)&&at(e)&&at(t)}function xn(e,t,o){return t===o||(at(t)&&at(o)?t.data===o.data:!(!e.isBlockFiller(t)||!e.isBlockFiller(o)))}const En=pn(J.document),Tn=mn(J.document),Pn=gn(J.document),Sn="data-ck-unsafe-attribute-",In="data-ck-unsafe-element";class Rn{document;renderingMode;blockFillerMode;preElements;blockElements;inlineObjectElements;unsafeElements;_domDocument;_domToViewMapping=new WeakMap;_viewToDomMapping=new WeakMap;_fakeSelectionMapping=new WeakMap;_rawContentElementMatcher=new ui;_inlineObjectElementMatcher=new ui;_elementsWithTemporaryCustomProperties=new Set;constructor(e,{blockFillerMode:t,renderingMode:o="editing"}={}){this.document=e,this.renderingMode=o,this.blockFillerMode=t||("editing"===o?"br":"nbsp"),this.preElements=["pre","textarea"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?J.document:J.document.implementation.createHTMLDocument("")}get domDocument(){return this._domDocument}bindFakeSelection(e,t){this._fakeSelectionMapping.set(e,new Oi(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 e.children)this.unbindDomElement(t)}}bindDocumentFragments(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}shouldRenderAttribute(e,t,o){return"data"===this.renderingMode||!(e=e.toLowerCase()).startsWith("on")&&("srcdoc"!==e&&("img"===o&&("src"===e||"srcset"===e)||("source"===o&&"srcset"===e||!t.replace(/\s+/g,"").match(/^(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(e,t){if("data"===this.renderingMode)return void(e.innerHTML=t);const o=(new DOMParser).parseFromString(t,"text/html"),i=o.createDocumentFragment(),n=o.body.childNodes;for(;n.length>0;)i.appendChild(n[0]);const s=o.createTreeWalker(i,NodeFilter.SHOW_ELEMENT),r=[];let a;for(;a=s.nextNode();)r.push(a);for(const e of r){for(const t of e.getAttributeNames())this.setDomElementAttribute(e,t,e.getAttribute(t));const t=e.tagName.toLowerCase();this._shouldRenameElement(t)&&(Bn(t),e.replaceWith(this._createReplacementDomElement(t,e)))}for(;e.firstChild;)e.firstChild.remove();e.append(i)}viewToDom(e,t={}){if(e.is("$text")){const t=this._processDataFromViewText(e);return this._domDocument.createTextNode(t)}{const o=e;if(this.mapViewToDom(o)){if(!o.getCustomProperty("editingPipeline:doNotReuseOnce"))return this.mapViewToDom(o);this._elementsWithTemporaryCustomProperties.add(o)}let i;if(o.is("documentFragment"))i=this._domDocument.createDocumentFragment(),t.bind&&this.bindDocumentFragments(i,o);else{if(o.is("uiElement"))return i="$comment"===o.name?this._domDocument.createComment(o.getCustomProperty("$rawContent")):o.render(this._domDocument,this),t.bind&&this.bindElements(i,o),i;this._shouldRenameElement(o.name)?(Bn(o.name),i=this._createReplacementDomElement(o.name)):i=o.hasAttribute("xmlns")?this._domDocument.createElementNS(o.getAttribute("xmlns"),o.name):this._domDocument.createElement(o.name),o.is("rawElement")&&o.render(i,this),t.bind&&this.bindElements(i,o);for(const e of o.getAttributeKeys())this.setDomElementAttribute(i,e,o.getAttribute(e),o)}if(!1!==t.withChildren)for(const e of this.viewChildrenToDom(o,t))i instanceof HTMLTemplateElement?i.content.appendChild(e):i.appendChild(e);return i}}setDomElementAttribute(e,t,o,i){const n=this.shouldRenderAttribute(t,o,e.tagName.toLowerCase())||i&&i.shouldRenderUnsafeAttribute(t);n||be("domconverter-unsafe-attribute-detected",{domElement:e,key:t,value:o}),function(e){try{J.document.createAttribute(e)}catch{return!1}return!0}(t)?(e.hasAttribute(t)&&!n?e.removeAttribute(t):e.hasAttribute(Sn+t)&&n&&e.removeAttribute(Sn+t),e.setAttribute(n?t:Sn+t,o)):be("domconverter-invalid-attribute-detected",{domElement:e,key:t,value:o})}removeDomElementAttribute(e,t){t!=In&&(e.removeAttribute(t),e.removeAttribute(Sn+t))}*viewChildrenToDom(e,t={}){const o=e.getFillerOffset&&e.getFillerOffset();let i=0;for(const n of e.getChildren()){o===i&&(yield this._getBlockFiller());const e=n.is("element")&&!!n.getCustomProperty("dataPipeline:transparentRendering")&&!to(n.getAttributes());if(e&&"data"==this.renderingMode)if(n.is("rawElement")){const e=this._domDocument.createElement(n.name);n.render(e,this),yield*[...e.childNodes]}else yield*this.viewChildrenToDom(n,t);else e&&be("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:n}),yield this.viewToDom(n,t);i++}o===i&&(yield this._getBlockFiller())}viewRangeToDom(e){const t=this.viewPositionToDom(e.start),o=this.viewPositionToDom(e.end),i=this._domDocument.createRange();return i.setStart(t.parent,t.offset),i.setEnd(o.parent,o.offset),i}viewPositionToDom(e){const t=e.parent;if(t.is("$text")){const o=this.findCorrespondingDomText(t);if(!o)return null;let i=e.offset;return bn(o)&&(i+=7),o.data&&i>o.data.length&&(i=o.data.length),{parent:o,offset:i}}{let o,i,n;if(0===e.offset){if(o=this.mapViewToDom(t),!o)return null;n=o.childNodes[0]}else{const t=e.nodeBefore;if(i=t.is("$text")?this.findCorrespondingDomText(t):this.mapViewToDom(t),!i)return null;o=i.parentNode,n=i.nextSibling}if(at(n)&&bn(n))return{parent:n,offset:7};return{parent:o,offset:i?_t(i)+1:0}}}domToView(e,t={}){const o=[],i=this._domToView(e,t,o),n=i.next().value;return n?(i.next(),this._processDomInlineNodes(null,o,t),"br"==this.blockFillerMode&&Mn(n)||n.is("$text")&&0==n.data.length?null:n):null}*domChildrenToView(e,t={},o=[]){let i=[];i=e instanceof HTMLTemplateElement?[...e.content.childNodes]:[...e.childNodes];for(let n=0;n{const{scrollLeft:t,scrollTop:o}=e;n.push([t,o])})),t.focus({preventScroll:!0}),On(t,(e=>{const[t,o]=n.shift();e.scrollLeft=t,e.scrollTop=o})),J.window.scrollTo(o,i)}_clearDomSelection(){const e=this.mapViewToDom(this.document.selection.editableElement);if(!e)return;const t=e.ownerDocument.defaultView.getSelection(),o=this.domSelectionToView(t);o&&o.rangeCount>0&&t.removeAllRanges()}isElement(e){return e&&e.nodeType==Node.ELEMENT_NODE}isDocumentFragment(e){return e&&e.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(e){return"br"==this.blockFillerMode?e.isEqualNode(En):!!Nn(e,this.blockElements)||(e.isEqualNode(Pn)||function(e,t){const o=e.isEqualNode(Tn);return o&&Vn(e,t)&&1===e.parentNode.childNodes.length}(e,this.blockElements))}isDomSelectionBackward(e){if(e.isCollapsed)return!1;const t=this._domDocument.createRange();try{t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset)}catch{return!1}const o=t.collapsed;return t.detach(),o}getHostViewElement(e){const t=it(e);for(t.pop();t.length;){const e=t.pop(),o=this._domToViewMapping.get(e);if(o&&(o.is("uiElement")||o.is("rawElement")))return o}return null}isDomSelectionCorrect(e){return this._isDomSelectionPositionCorrect(e.anchorNode,e.anchorOffset)&&this._isDomSelectionPositionCorrect(e.focusNode,e.focusOffset)}registerRawContentMatcher(e){this._rawContentElementMatcher.add(e)}registerInlineObjectMatcher(e){this._inlineObjectElementMatcher.add(e)}_clearTemporaryCustomProperties(){for(const e of this._elementsWithTemporaryCustomProperties)e._removeCustomProperty("editingPipeline:doNotReuseOnce");this._elementsWithTemporaryCustomProperties.clear()}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return mn(this._domDocument);case"markedNbsp":return gn(this._domDocument);case"br":return pn(this._domDocument)}}_isDomSelectionPositionCorrect(e,t){if(at(e)&&bn(e)&&t<7)return!1;if(this.isElement(e)&&bn(e.childNodes[t]))return!1;const o=this.mapDomToView(e);return!o||!o.is("uiElement")&&!o.is("rawElement")}*_domToView(e,t,o){if("br"!=this.blockFillerMode&&Nn(e,this.blockElements))return null;const i=this.getHostViewElement(e);if(i)return i;if(vt(e)&&t.skipComments)return null;if(at(e)){if(wn(e))return null;{const t=e.data;if(""===t)return null;const i=new si(this.document,t);return o.push(i),i}}{let i=this.mapDomToView(e);if(i)return this._isInlineObjectElement(i)&&o.push(i),i;if(this.isDocumentFragment(e))i=new tn(this.document),t.bind&&this.bindDocumentFragments(e,i);else{i=this._createViewElement(e,t),t.bind&&this.bindElements(e,i);const n=e.attributes;if(n)for(let e=n.length,t=0;t0?t[e-1]:null,l=e+1e.is("element")&&t.includes(e.name)))}(e,this.preElements))return!0;for(const t of e.getAncestors({parentFirst:!0}))if(t.is("element")&&t.hasStyle("white-space")&&"inherit"!==t.getStyle("white-space"))return["pre","pre-wrap","break-spaces"].includes(t.getStyle("white-space"));return!1}_getTouchingInlineViewNode(e,t){const o=new Pi({startPosition:t?Si._createAfter(e):Si._createBefore(e),direction:t?"forward":"backward"});for(const{item:e}of o){if(e.is("$textProxy"))return e;if(!e.is("element")||!e.getCustomProperty("dataPipeline:transparentRendering")){if(e.is("element","br"))return null;if(this._isInlineObjectElement(e))return e;if(e.is("containerElement")||this._isBlockViewElement(e))return null}}return null}_isBlockDomElement(e){return this.isElement(e)&&this.blockElements.includes(e.tagName.toLowerCase())}_isBlockViewElement(e){return e.is("element")&&this.blockElements.includes(e.name)}_isInlineObjectElement(e){return!!e.is("element")&&("br"==e.name||this.inlineObjectElements.includes(e.name)||!!this._inlineObjectElementMatcher.match(e))}_createViewElement(e,t){if(vt(e))return new Zi(this.document,"$comment");const o=t.keepOriginalCase?e.tagName:e.tagName.toLowerCase();return new _i(this.document,o)}_isViewElementWithRawContent(e,t){return!1!==t.withChildren&&e.is("element")&&!!this._rawContentElementMatcher.match(e)}_shouldRenameElement(e){const t=e.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(t)}_createReplacementDomElement(e,t){const o=this._domDocument.createElement("span");if(o.setAttribute(In,e),t){for(;t.firstChild;)o.appendChild(t.firstChild);for(const e of t.getAttributeNames())o.setAttribute(e,t.getAttribute(e))}return o}}function On(e,t){let o=e;for(;o;)t(o),o=o.parentElement}function Vn(e,t){const o=e.parentNode;return!!o&&!!o.tagName&&t.includes(o.tagName.toLowerCase())}function Dn(e,t,o){return" "==t&&e&&e.is("element")&&1==e.childCount&&o.includes(e.name)}function Fn(e,t){return" "==t&&e&&e.is("element","span")&&1==e.childCount&&e.hasAttribute("data-cke-filler")}function Mn(e){return e.is("element","br")&&e.hasAttribute("data-cke-filler")}function Nn(e,t){return"BR"===e.tagName&&Vn(e,t)&&1===e.parentNode.childNodes.length}function Bn(e){"script"===e&&be("domconverter-unsafe-script-element-detected"),"style"===e&&be("domconverter-unsafe-style-element-detected")}class Ln extends(et()){view;document;_isEnabled=!1;constructor(e){super(),this.view=e,this.document=e.document}get isEnabled(){return this._isEnabled}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(e){return e&&3===e.nodeType&&(e=e.parentNode),!(!e||1!==e.nodeType)&&e.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}class zn{view;document;domEvent;domTarget;constructor(e,t,o){this.view=e,this.document=e.document,this.domEvent=t,this.domTarget=t.target,No(this,o)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class jn extends Ln{useCapture=!1;usePassive=!1;observe(e){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((t=>{this.listenTo(e,t,((e,t)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(t.target)&&this.onDomEvent(t)}),{useCapture:this.useCapture,usePassive:this.usePassive})}))}stopObserving(e){this.stopListening(e)}fire(e,t,o){this.isEnabled&&this.document.fire(e,new zn(this.view,t,o))}}class $n extends jn{domEventType=["keydown","keyup"];onDomEvent(e){const t={keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,metaKey:e.metaKey,get keystroke(){return Ht(this)}};this.fire(e.type,e,t)}}class qn extends Ln{_fireSelectionChangeDoneDebounced;constructor(e){super(e),this._fireSelectionChangeDoneDebounced=zo((e=>{this.document.fire("selectionChangeDone",e)}),200)}observe(){const e=this.document;e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&o.preventDefault()}),{context:"$capture"}),e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&this._handleSelectionMove(o.keyCode)}),{priority:"lowest"})}stopObserving(){}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(e){const t=this.document.selection,o=new Oi(t.getRanges(),{backward:t.isBackward,fake:!1});e!=$t.arrowleft&&e!=$t.arrowup||o.setTo(o.getFirstPosition()),e!=$t.arrowright&&e!=$t.arrowdown||o.setTo(o.getLastPosition());const i={oldSelection:t,newSelection:o,domSelection:null};this.document.fire("selectionChange",i),this._fireSelectionChangeDoneDebounced(i)}}class Hn extends Ln{domConverter;_config;_domElements;_mutationObserver;constructor(e){super(e),this._config={childList:!0,characterData:!0,subtree:!0},this.domConverter=e.domConverter,this._domElements=new Set,this._mutationObserver=new window.MutationObserver(this._onMutations.bind(this))}flush(){this._onMutations(this._mutationObserver.takeRecords())}observe(e){this._domElements.add(e),this.isEnabled&&this._mutationObserver.observe(e,this._config)}stopObserving(e){if(this._domElements.delete(e),this.isEnabled){this._mutationObserver.disconnect();for(const e of this._domElements)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){if(0===e.length)return;const t=this.domConverter,o=new Set,i=new Set;for(const o of e){const e=t.mapDomToView(o.target);e&&(e.is("uiElement")||e.is("rawElement")||"childList"!==o.type||this._isBogusBrMutation(o)||i.add(e))}for(const n of e){const e=t.mapDomToView(n.target);if((!e||!e.is("uiElement")&&!e.is("rawElement"))&&"characterData"===n.type){const e=t.findCorrespondingViewText(n.target);e&&!i.has(e.parent)?o.add(e):!e&&bn(n.target)&&i.add(t.mapDomToView(n.target.parentNode))}}const n=[];for(const e of o)n.push({type:"text",node:e});for(const e of i){const o=t.mapViewToDom(e);Uo(Array.from(e.getChildren()),Array.from(t.domChildrenToView(o,{withChildren:!1})),Wn)||n.push({type:"children",node:e})}n.length&&this.document.fire("mutations",{mutations:n})}_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")}}function Wn(e,t){if(!Array.isArray(e))return e===t||!(!e.is("$text")||!t.is("$text"))&&e.data===t.data}class Un extends jn{_renderTimeoutId=null;_isFocusChanging=!1;domEventType=["focus","blur"];constructor(e){super(e),this.useCapture=!0;const t=this.document;t.on("focus",(()=>this._handleFocus())),t.on("blur",((e,t)=>this._handleBlur(t))),t.on("beforeinput",(()=>{t.isFocused||this._handleFocus()}),{priority:"highest"})}flush(){this._isFocusChanging&&(this._isFocusChanging=!1,this.document.isFocused=!0)}onDomEvent(e){this.fire(e.type,e)}destroy(){this._clearTimeout(),super.destroy()}_handleFocus(){this._clearTimeout(),this._isFocusChanging=!0,this._renderTimeoutId=setTimeout((()=>{this._renderTimeoutId=null,this.flush(),this.view.change((()=>{}))}),50)}_handleBlur(e){const t=this.document.selection.editableElement;null!==t&&t!==e.target||(this.document.isFocused=!1,this._isFocusChanging=!1,this.view.change((()=>{})))}_clearTimeout(){this._renderTimeoutId&&(clearTimeout(this._renderTimeoutId),this._renderTimeoutId=null)}}class Kn extends Ln{mutationObserver;focusObserver;selection;domConverter;_documents=new WeakSet;_fireSelectionChangeDoneDebounced;_clearInfiniteLoopInterval;_documentIsSelectingInactivityTimeoutDebounced;_loopbackCounter=0;_pendingSelectionChange=new Set;constructor(e){super(e),this.mutationObserver=e.getObserver(Hn),this.focusObserver=e.getObserver(Un),this.selection=this.document.selection,this.domConverter=e.domConverter,this._fireSelectionChangeDoneDebounced=zo((e=>{this.document.fire("selectionChangeDone",e)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=zo((()=>this.document.isSelecting=!1),5e3),this.view.document.on("change:isFocused",((e,t,o)=>{if(o&&this._pendingSelectionChange.size){for(const e of Array.from(this._pendingSelectionChange))this._handleSelectionChange(e);this._pendingSelectionChange.clear()}}))}observe(e){const t=e.ownerDocument,o=()=>{this.document.isSelecting&&(this._handleSelectionChange(t),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(e,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(e,"keydown",o,{priority:"highest",useCapture:!0}),this.listenTo(e,"keyup",o,{priority:"highest",useCapture:!0}),this._documents.has(t)||(this.listenTo(t,"mouseup",o,{priority:"highest",useCapture:!0}),this.listenTo(t,"selectionchange",(()=>{this.document.isComposing&&!Y.isAndroid||(this._handleSelectionChange(t),this._documentIsSelectingInactivityTimeoutDebounced())})),this.listenTo(this.view.document,"compositionstart",(()=>{this._handleSelectionChange(t)}),{priority:"lowest"}),this._documents.add(t))}stopObserving(e){this.stopListening(e)}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_reportInfiniteLoop(){}_handleSelectionChange(e){if(!this.isEnabled)return;const t=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(t.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(t);if(0!=o.rangeCount)if(this.view.hasDomSelection=!0,this.focusObserver.flush(),this.view.document.isFocused||this.view.document.isReadOnly){if(this._pendingSelectionChange.delete(e),!this.selection.isEqual(o)||!this.domConverter.isDomSelectionCorrect(t))if(++this._loopbackCounter>60)this._reportInfiniteLoop();else if(function(e){return Array.from(e.getRanges()).flatMap((e=>[e.start.root,e.end.root])).every((e=>e&&e.is("rootElement")))}(o))if(this.selection.isSimilar(o))this.view.forceRender();else{const e={oldSelection:this.selection,newSelection:o,domSelection:t};this.document.fire("selectionChange",e),this._fireSelectionChangeDoneDebounced(e)}else this.view.forceRender()}else this._pendingSelectionChange.add(e);else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class Gn extends jn{domEventType=["compositionstart","compositionupdate","compositionend"];constructor(e){super(e);const t=this.document;t.on("compositionstart",(()=>{t.isComposing=!0})),t.on("compositionend",(()=>{t.isComposing=!1}))}onDomEvent(e){this.fire(e.type,e,{data:e.data})}}class Jn{_files;_native;constructor(e,t={}){this._files=t.cacheFiles?Zn(e):null,this._native=e}get files(){return this._files||(this._files=Zn(this._native)),this._files}get types(){return this._native.types}getData(e){return this._native.getData(e)}setData(e,t){this._native.setData(e,t)}set effectAllowed(e){this._native.effectAllowed=e}get effectAllowed(){return this._native.effectAllowed}set dropEffect(e){this._native.dropEffect=e}get dropEffect(){return this._native.dropEffect}setDragImage(e,t,o){this._native.setDragImage(e,t,o)}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}function Zn(e){const t=Array.from(e.files||[]),o=Array.from(e.items||[]);return t.length?t:o.filter((e=>"file"===e.kind)).map((e=>e.getAsFile()))}class Qn extends jn{domEventType="beforeinput";onDomEvent(e){const t=e.getTargetRanges(),o=this.view,i=o.document;let n=null,s=null,r=[];if(e.dataTransfer&&(n=new Jn(e.dataTransfer)),null!==e.data?s=e.data:n&&(s=n.getData("text/plain")),i.selection.isFake)r=Array.from(i.selection.getRanges()),e.preventDefault();else if(t.length)r=t.map((t=>{let i=o.domConverter.domPositionToView(t.startContainer,t.startOffset);const n=o.domConverter.domPositionToView(t.endContainer,t.endOffset);if(i&&bn(t.startContainer)&&t.startOffset<7){e.preventDefault();let o=7-t.startOffset;i=i.getLastMatchingPosition((e=>!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))||!(!e.item.is("$textProxy")||!o--)),{direction:"backward",singleCharacters:!0})}return function(e,t){for(;e.parentNode;){if(at(e)){if(t!=e.data.length)return!1}else if(t!=e.childNodes.length)return!1;if((t=_t(e)+1)<(e=e.parentNode).childNodes.length&&bn(e.childNodes[t]))return!0}return!1}(t.endContainer,t.endOffset)&&e.preventDefault(),i?o.createRange(i,n):n?o.createRange(n):void 0})).filter((e=>!!e));else if(Y.isAndroid){const t=e.target.ownerDocument.defaultView.getSelection();r=Array.from(o.domConverter.domSelectionToView(t).getRanges())}if(Y.isAndroid&&"insertCompositionText"==e.inputType&&s&&s.endsWith("\n"))this.fire(e.type,e,{inputType:"insertParagraph",targetRanges:[o.createRange(r[0].end)]});else if(["insertText","insertReplacementText"].includes(e.inputType)&&s&&s.includes("\n")){const t=s.split(/\n{1,2}/g);let o=r;e.preventDefault();for(let s=0;s{if(this.isEnabled&&((o=t.keyCode)==$t.arrowright||o==$t.arrowleft||o==$t.arrowup||o==$t.arrowdown)){const o=new Di(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(o,t),o.stop.called&&e.stop()}var o}))}observe(){}stopObserving(){}}class Xn extends Ln{constructor(e){super(e);const t=this.document;t.on("keydown",((e,o)=>{if(!this.isEnabled||o.keyCode!=$t.tab||o.ctrlKey)return;const i=new Di(t,"tab",t.selection.getFirstRange());t.fire(i,o),i.stop.called&&e.stop()}))}observe(){}stopObserving(){}}class es extends(Be()){document;domConverter;domRoots=new Map;_renderer;_initialDomRootAttributes=new WeakMap;_observers=new Map;_writer;_ongoingChange=!1;_postFixersInProgress=!1;_renderingDisabled=!1;_hasChangedSinceTheLastRendering=!1;constructor(e){super(),this.document=new Hi(e),this.domConverter=new Rn(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new kn(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new on(this.document),this.addObserver(Hn),this.addObserver(Un),this.addObserver(Kn),this.addObserver($n),this.addObserver(qn),this.addObserver(Gn),this.addObserver(Yn),this.addObserver(Qn),this.addObserver(Xn),this.document.on("arrowKey",_n,{priority:"low"}),Qi(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0})),Y.isiOS&&this.listenTo(this.document,"blur",((e,t)=>{this.domConverter.mapDomToView(t.domEvent.relatedTarget)||this.domConverter._clearDomSelection()})),this.listenTo(this.document,"mutations",((e,{mutations:t})=>{t.forEach((e=>this._renderer.markToSync(e.type,e.node)))}),{priority:"low"}),this.listenTo(this.document,"mutations",(()=>{this.forceRender()}),{priority:"lowest"})}attachDomRoot(e,t="main"){const o=this.document.getRoot(t);o._name=e.tagName.toLowerCase();const i={};for(const{name:t,value:n}of Array.from(e.attributes))i[t]=n,"class"===t?this._writer.addClass(n.split(" "),o):o.hasAttribute(t)||this._writer.setAttribute(t,n,o);this._initialDomRootAttributes.set(e,i);const n=()=>{this._writer.setAttribute("contenteditable",(!o.isReadOnly).toString(),o),o.isReadOnly?this._writer.addClass("ck-read-only",o):this._writer.removeClass("ck-read-only",o)};n(),this.domRoots.set(t,e),this.domConverter.bindElements(e,o),this._renderer.markToSync("children",o),this._renderer.markToSync("attributes",o),this._renderer.domDocuments.add(e.ownerDocument),o.on("change:children",((e,t)=>this._renderer.markToSync("children",t))),o.on("change:attributes",((e,t)=>this._renderer.markToSync("attributes",t))),o.on("change:text",((e,t)=>this._renderer.markToSync("text",t))),o.on("change:isReadOnly",(()=>this.change(n))),o.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const o of this._observers.values())o.observe(e,t)}detachDomRoot(e){const t=this.domRoots.get(e);Array.from(t.attributes).forEach((({name:e})=>t.removeAttribute(e)));const o=this._initialDomRootAttributes.get(t);for(const e in o)t.setAttribute(e,o[e]);this.domRoots.delete(e),this.domConverter.unbindDomElement(t);for(const e of this._observers.values())e.stopObserving(t)}getDomRoot(e="main"){return this.domRoots.get(e)}addObserver(e){let t=this._observers.get(e);if(t)return t;t=new e(this),this._observers.set(e,t);for(const[e,o]of this.domRoots)t.observe(o,e);return t.enable(),t}getObserver(e){return this._observers.get(e)}disableObservers(){for(const e of this._observers.values())e.disable()}enableObservers(){for(const e of this._observers.values())e.enable()}scrollToTheSelection({alignToTop:e,forceScroll:t,viewportOffset:o=20,ancestorOffset:i=20}={}){const n=this.document.selection.getFirstRange();if(!n)return;const s=j({alignToTop:e,forceScroll:t,viewportOffset:o,ancestorOffset:i});"number"==typeof o&&(o={top:o,bottom:o,left:o,right:o});const r={target:this.domConverter.viewRangeToDom(n),viewportOffset:o,ancestorOffset:i,alignToTop:e,forceScroll:t};this.fire("scrollToTheSelection",r,s),function({target:e,viewportOffset:t=0,ancestorOffset:o=0,alignToTop:i,forceScroll:n}){const s=Mt(e);let r=s,a=null;for(t=function(e){return"number"==typeof e?{top:e,bottom:e,left:e,right:e}:e}(t);r;){let l;l=Nt(r==s?e:a),Rt({parent:l,getRect:()=>Bt(e,r),alignToTop:i,ancestorOffset:o,forceScroll:n});let c=Bt(e,r);const d=Bt(l,r);if(c.height>d.height){const e=c.getIntersection(d);e&&(c=e)}if(It({window:r,rect:c,viewportOffset:t,alignToTop:i,forceScroll:n}),r.parent!=r){if(a=r.frameElement,r=r.parent,!a)return}else r=null}}(r)}focus(){if(!this.document.isFocused){const e=this.document.selection.editableElement;e&&(this.domConverter.focus(e),this.forceRender())}}change(e){if(this.isRenderingInProgress||this._postFixersInProgress)throw new fe("cannot-change-view-tree",this);try{if(this._ongoingChange)return e(this._writer);this._ongoingChange=!0;const t=e(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),t}catch(e){fe.rethrowUnexpectedError(e,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(Un).flush(),this.change((()=>{}))}destroy(){for(const e of this._observers.values())e.destroy();this.document.destroy(),this.stopListening()}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}_disableRendering(e){this._renderingDisabled=e,0==e&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class ts{is(){throw new Error("is() method is abstract")}}class os extends ts{textNode;data;offsetInText;constructor(e,t,o){if(super(),this.textNode=e,t<0||t>e.offsetSize)throw new fe("model-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.offsetSize)throw new fe("model-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const e=this.textNode.getPath();return e.length>0&&(e[e.length-1]+=this.offsetInText),e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}hasAttribute(e){return this.textNode.hasAttribute(e)}getAttribute(e){return this.textNode.getAttribute(e)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}os.prototype.is=function(e){return"$textProxy"===e||"model:$textProxy"===e||"textProxy"===e||"model:textProxy"===e};class is{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;_visitedParent;constructor(e){if(!e||!e.boundaries&&!e.startPosition)throw new fe("model-tree-walker-no-start-position",null);const t=e.direction||"forward";if("forward"!=t&&"backward"!=t)throw new fe("model-tree-walker-unknown-direction",e,{direction:t});this.direction=t,this.boundaries=e.boundaries||null,e.startPosition?this._position=e.startPosition.clone():this._position=ss._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",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,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}get position(){return this._position}skip(e){let t,o,i,n;do{i=this.position,n=this._visitedParent,({done:t,value:o}=this.next())}while(!t&&e(o));t||(this._position=i,this._visitedParent=n)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone(),this._visitedParent=e.parent}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const e=this.position,t=this.position.clone(),o=this._visitedParent;if(null===o.parent&&t.offset===o.maxOffset)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const i=rs(t,o),n=i||as(t,o,i);if(n&&n.is("model:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(t))return{done:!0,value:void 0};t.offset++}else t.path.push(0),this._visitedParent=n;return this._position=t,ns("elementStart",n,e,t,1)}if(n&&n.is("model:$text")){let i;if(this.singleCharacters)i=1;else{let e=n.endOffset;this._boundaryEndParent==o&&this.boundaries.end.offsete&&(e=this.boundaries.start.offset),i=t.offset-e}const n=t.offset-s.startOffset,r=new os(s,n-i,i);return t.offset-=i,this._position=t,ns("text",r,e,t,i)}return t.path.pop(),this._position=t,this._visitedParent=o.parent,ns("elementStart",o,e,t,1)}}function ns(e,t,o,i,n){return{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:i,length:n}}}class ss extends ts{root;path;stickiness;constructor(e,t,o="toNone"){if(super(),!e.is("element")&&!e.is("documentFragment"))throw new fe("model-position-root-invalid",e);if(!Array.isArray(t)||0===t.length)throw new fe("model-position-path-incorrect-format",e,{path:t});e.is("rootElement")?t=t.slice():(t=[...e.getPath(),...t],e=e.root),this.root=e,this.path=t,this.stickiness=o}get offset(){return this.path[this.path.length-1]}set offset(e){this.path[this.path.length-1]=e}get parent(){let e=this.root;for(let t=0;t1)return!1;if(1===t)return cs(e,this,o);if(-1===t)return cs(this,e,o)}return this.path.length===e.path.length||(this.path.length>e.path.length?ds(this.path,t):ds(e.path,t))}hasSameParentAs(e){if(this.root!==e.root)return!1;return"same"==We(this.getParentPath(),e.getParentPath())}getTransformedByOperation(e){let t;switch(e.type){case"insert":t=this._getTransformedByInsertOperation(e);break;case"move":case"remove":case"reinsert":t=this._getTransformedByMoveOperation(e);break;case"split":t=this._getTransformedBySplitOperation(e);break;case"merge":t=this._getTransformedByMergeOperation(e);break;default:t=ss._createAt(this)}return t}_getTransformedByInsertOperation(e){return this._getTransformedByInsertion(e.position,e.howMany)}_getTransformedByMoveOperation(e){return this._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany)}_getTransformedBySplitOperation(e){const t=e.movedRange;return t.containsPosition(this)||t.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(e.splitPosition,e.moveTargetPosition):e.graveyardPosition?this._getTransformedByMove(e.graveyardPosition,e.insertionPosition,1):this._getTransformedByInsertion(e.insertionPosition,1)}_getTransformedByMergeOperation(e){const t=e.movedRange;let o;return t.containsPosition(this)||t.start.isEqual(this)?(o=this._getCombined(e.sourcePosition,e.targetPosition),e.sourcePosition.isBefore(e.targetPosition)&&(o=o._getTransformedByDeletion(e.deletionPosition,1))):o=this.isEqual(e.deletionPosition)?ss._createAt(e.deletionPosition):this._getTransformedByMove(e.deletionPosition,e.graveyardPosition,1),o}_getTransformedByDeletion(e,t){const o=ss._createAt(this);if(this.root!=e.root)return o;if("same"==We(e.getParentPath(),this.getParentPath())){if(e.offsetthis.offset)return null;o.offset-=t}}else if("prefix"==We(e.getParentPath(),this.getParentPath())){const i=e.path.length-1;if(e.offset<=this.path[i]){if(e.offset+t>this.path[i])return null;o.path[i]-=t}}return o}_getTransformedByInsertion(e,t){const o=ss._createAt(this);if(this.root!=e.root)return o;if("same"==We(e.getParentPath(),this.getParentPath()))(e.offset=t;){if(e.path[i]+n!==o.maxOffset)return!1;n=1,i--,o=o.parent}return!0}(e,o+1))}function ds(e,t){for(;tt+1;){const t=i.maxOffset-o.offset;0!==t&&e.push(new us(o,o.getShiftedBy(t))),o.path=o.path.slice(0,-1),o.offset++,i=i.parent}for(;o.path.length<=this.end.path.length;){const t=this.end.path[o.path.length-1],i=t-o.offset;0!==i&&e.push(new us(o,o.getShiftedBy(i))),o.offset=t,o.path.push(0)}return e}getWalker(e={}){return e.boundaries=this,new is(e)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new is(e);for(const e of t)yield e.item}*getPositions(e={}){e.boundaries=this;const t=new is(e);yield t.position;for(const e of t)yield e.nextPosition}getTransformedByOperation(e){switch(e.type){case"insert":return this._getTransformedByInsertOperation(e);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(e);case"split":return[this._getTransformedBySplitOperation(e)];case"merge":return[this._getTransformedByMergeOperation(e)]}return[new us(this.start,this.end)]}getTransformedByOperations(e){const t=[new us(this.start,this.end)];for(const o of e)for(let e=0;e0?new this(o,i):new this(i,o)}static _createIn(e){return new this(ss._createAt(e,0),ss._createAt(e,e.maxOffset))}static _createOn(e){return this._createFromPositionAndShift(ss._createBefore(e),e.offsetSize)}static _createFromRanges(e){if(0===e.length)throw new fe("range-create-from-ranges-empty-array",null);if(1==e.length)return e[0].clone();const t=e[0];e.sort(((e,t)=>e.start.isAfter(t.start)?1:-1));const o=e.indexOf(t),i=new this(t.start,t.end);for(let t=o-1;t>=0&&e[t].end.isEqual(i.start);t--)i.start=ss._createAt(e[t].start);for(let t=o+1;t{if(t.viewPosition)return;const o=this._modelToViewMapping.get(t.modelPosition.parent);if(!o)throw new fe("mapping-model-position-view-parent-not-found",this,{modelPosition:t.modelPosition});t.viewPosition=this.findPositionIn(o,t.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((e,t)=>{if(t.modelPosition)return;const o=this.findMappedViewAncestor(t.viewPosition),i=this._viewToModelMapping.get(o),n=this._toModelOffset(t.viewPosition.parent,t.viewPosition.offset,o);t.modelPosition=ss._createAt(i,n)}),{priority:"low"})}bindElements(e,t){this._modelToViewMapping.set(e,t),this._viewToModelMapping.set(t,e)}unbindViewElement(e,t={}){const o=this.toModelElement(e);if(this._elementToMarkerNames.has(e))for(const t of this._elementToMarkerNames.get(e))this._unboundMarkerNames.add(t);if(t.defer)this._deferredBindingRemovals.set(e,e.root);else{this._viewToModelMapping.delete(e)&&this._cache.stopTracking(e),this._modelToViewMapping.get(o)==e&&this._modelToViewMapping.delete(o)}}unbindModelElement(e){const t=this.toViewElement(e);if(this._modelToViewMapping.delete(e),this._viewToModelMapping.get(t)==e){this._viewToModelMapping.delete(t)&&this._cache.stopTracking(t)}}bindElementToMarker(e,t){const o=this._markerNameToElements.get(t)||new Set;o.add(e);const i=this._elementToMarkerNames.get(e)||new Set;i.add(t),this._markerNameToElements.set(t,o),this._elementToMarkerNames.set(e,i)}unbindElementFromMarkerName(e,t){const o=this._markerNameToElements.get(t);o&&(o.delete(e),0==o.size&&this._markerNameToElements.delete(t));const i=this._elementToMarkerNames.get(e);i&&(i.delete(t),0==i.size&&this._elementToMarkerNames.delete(e))}flushUnboundMarkerNames(){const e=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),e}flushDeferredBindings(){for(const[e,t]of this._deferredBindingRemovals)e.root==t&&this.unbindViewElement(e);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(e){return this._viewToModelMapping.get(e)}toViewElement(e){return this._modelToViewMapping.get(e)}toModelRange(e){return new us(this.toModelPosition(e.start),this.toModelPosition(e.end))}toViewRange(e){return new Ii(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,t={}){const o={modelPosition:e,mapper:this,isPhantom:t.isPhantom};return this.fire("modelToViewPosition",o),o.viewPosition}markerNameToElements(e){const t=this._markerNameToElements.get(e);if(!t)return null;const o=new Set;for(const e of t)if(e.is("attributeElement"))for(const t of e.getElementsWithSameId())o.add(t);else o.add(e);return o}registerViewToModelLength(e,t){this._viewToModelLengthCallbacks.set(e,t)}findMappedViewAncestor(e){let t=e.parent;for(;!this._viewToModelMapping.has(t);)t=t.parent;return t}_toModelOffset(e,t,o){if(o!=e){return this._toModelOffset(e.parent,e.index,o)+this._toModelOffset(e,t,e)}if(e.is("$text"))return t;let i=0;for(let o=0;o0;){const e=t.pop(),i=e.name&&this._viewToModelLengthCallbacks.size>0&&this._viewToModelLengthCallbacks.get(e.name);if(i)o+=i(e);else if(this._viewToModelMapping.has(e))o+=1;else if(e.is("$text"))o+=e.data.length;else{if(e.is("uiElement"))continue;for(const o of e.getChildren())t.push(o)}}return o}findPositionIn(e,t){if(0===t)return this._moveViewPositionToTextNode(new Si(e,0));if(0==this._viewToModelLengthCallbacks.size&&this._viewToModelMapping.has(e)){const o=this._cache.getClosest(e,t);return this._findPositionStartingFrom(o.viewPosition,o.modelOffset,t,e,!0)}return this._findPositionStartingFrom(new Si(e,0),0,t,e,!1)}_findPositionStartingFrom(e,t,o,i,n){let s,r=e.parent,a=e.offset;if(r.is("$text"))return new Si(r,o-t);let l=t,c=0;for(;l{this._clearCacheInsideParent(t,o.index)};_invalidateOnTextChangeCallback=(e,t)=>{this._clearCacheAfter(t)};save(e,t,o,i){const n=this._cachedMapping.get(o),s=n.cacheMap.get(i);if(s){const o=e.getChild(t-1),i=s.viewPosition.nodeBefore?this._nodeToCacheListIndex.get(s.viewPosition.nodeBefore):0;return void this._nodeToCacheListIndex.set(o,i)}const r={viewPosition:new Si(e,t),modelOffset:i};n.maxModelOffset=i>n.maxModelOffset?i:n.maxModelOffset,n.cacheMap.set(i,r);let a=n.cacheList.length-1;for(;a>=0&&n.cacheList[a].modelOffset>i;)a--;if(n.cacheList.splice(a+1,0,r),t>0){const o=e.getChild(t-1);this._nodeToCacheListIndex.set(o,a+1)}}getClosest(e,t){const o=this._cachedMapping.get(e);let i;if(o)if(t>o.maxModelOffset)i=o.cacheList[o.cacheList.length-1];else{const e=o.cacheMap.get(t);i=e||this._findInCacheList(o.cacheList,t)}else i=this.startTracking(e);return{modelOffset:i.modelOffset,viewPosition:i.viewPosition.clone()}}startTracking(e){const t={viewPosition:new Si(e,0),modelOffset:0},o={maxModelOffset:0,cacheList:[t],cacheMap:new Map([[0,t]])};return this._cachedMapping.set(e,o),e.on("change:children",this._invalidateOnChildrenChangeCallback),e.on("change:text",this._invalidateOnTextChangeCallback),t}stopTracking(e){e.off("change:children",this._invalidateOnChildrenChangeCallback),e.off("change:text",this._invalidateOnTextChangeCallback),this._cachedMapping.delete(e)}_clearCacheInsideParent(e,t){if(0==t)this._cachedMapping.has(e)?this._clearCacheAll(e):this._clearCacheInsideParent(e.parent,e.index);else{const o=e.getChild(t-1);this._clearCacheAfter(o)}}_clearCacheAll(e){const t=this._cachedMapping.get(e);t.maxModelOffset>0&&(t.maxModelOffset=0,t.cacheList.length=1,t.cacheMap.clear(),t.cacheMap.set(0,t.cacheList[0]))}_clearCacheAfter(e){const t=this._nodeToCacheListIndex.get(e);if(void 0===t){const t=e.parent;return void(this._cachedMapping.has(t)||this._clearCacheInsideParent(t.parent,t.index))}let o=e.parent;for(;!this._cachedMapping.has(o);)o=o.parent;this._clearCacheFromCacheIndex(o,t)}_clearCacheFromCacheIndex(e,t){0===t&&(t=1);const o=this._cachedMapping.get(e),i=o.cacheList[t-1];if(!i)return;o.maxModelOffset=i.modelOffset;const n=o.cacheList.splice(t);for(const e of n){o.cacheMap.delete(e.modelOffset);const t=e.viewPosition.nodeBefore;this._nodeToCacheListIndex.delete(t)}}_findInCacheList(e,t){let o=0,i=e.length-1,n=i-o>>1,s=e[n];for(;o>1),s=e[n];return s.modelOffset<=t?s:e[n-1]}}class gs{_consumable=new Map;_textProxyRegistry=new Map;add(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e)),this._consumable.has(e)||this._consumable.set(e,new Map),this._consumable.get(e).set(t,!0)}consume(e,t){return t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e)),!!this.test(e,t)&&(this._consumable.get(e).set(t,!1),!0)}test(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e));const o=this._consumable.get(e);if(void 0===o)return null;const i=o.get(t);return void 0===i?null:i}revert(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e));const o=this.test(e,t);return!1===o?(this._consumable.get(e).set(t,!0),!0):!0!==o&&null}verifyAllConsumed(e){const t=[];for(const[o,i]of this._consumable)for(const[n,s]of i){const i=n.split(":")[0];s&&e==i&&t.push({event:n,item:o.name||o.description})}if(t.length)throw new fe("conversion-model-consumable-not-consumed",null,{items:t})}_getSymbolForTextProxy(e){let t=null;const o=this._textProxyRegistry.get(e.startOffset);if(o){const i=o.get(e.endOffset);i&&(t=i.get(e.parent))}return t||(t=this._addSymbolForTextProxy(e)),t}_addSymbolForTextProxy(e){const t=e.startOffset,o=e.endOffset,i=e.parent,n=Symbol("$textProxy:"+e.data);let s,r;return s=this._textProxyRegistry.get(t),s||(s=new Map,this._textProxyRegistry.set(t,s)),r=s.get(o),r||(r=new Map,s.set(o,r)),r.set(i,n),n}}function ps(e){const t=e.split(":");return"insert"==t[0]?t[0]:"addMarker"==t[0]||"removeMarker"==t[0]?e:t.length>1?t[0]+":"+t[1]:t[0]}class fs extends(xe()){_conversionApi;_firedEventsMap;constructor(e){super(),this._conversionApi={dispatcher:this,...e},this._firedEventsMap=new WeakMap}convertChanges(e,t,o){const i=e.getRefreshedItems(),n=this._createConversionApi(o,i);for(const t of e.getMarkersToRemove())this._convertMarkerRemove(t.name,t.range,n);const s=this._reduceChanges(e.getChanges(),i);for(const e of s)"insert"===e.type?this._convertInsert(us._createFromPositionAndShift(e.position,e.length),n):"reinsert"===e.type?this._convertReinsert(us._createFromPositionAndShift(e.position,e.length),n):"remove"===e.type?this._convertRemove(e.position,e.length,e.name,n):this._convertAttribute(e.range,e.attributeKey,e.attributeOldValue,e.attributeNewValue,n);n.mapper.flushDeferredBindings();for(const e of n.mapper.flushUnboundMarkerNames()){const o=t.get(e).getRange();this._convertMarkerRemove(e,o,n),this._convertMarkerAdd(e,o,n)}for(const t of e.getMarkersToAdd())this._convertMarkerAdd(t.name,t.range,n);n.consumable.verifyAllConsumed("insert")}convert(e,t,o,i={}){const n=this._createConversionApi(o,void 0,i);this._convertInsert(e,n);for(const[e,o]of t)this._convertMarkerAdd(e,o,n);n.consumable.verifyAllConsumed("insert")}convertSelection(e,t,o){const i=this._createConversionApi(o);this.fire("cleanSelection",{selection:e},i);const n=e.getFirstPosition().root;if(!i.mapper.toViewElement(n))return;const s=Array.from(t.getMarkersAtPosition(e.getFirstPosition()));if(this._addConsumablesForSelection(i.consumable,e,s),this.fire("selection",{selection:e},i),e.isCollapsed){for(const t of s)if(i.consumable.test(e,"addMarker:"+t.name)){const o=t.getRange();if(!bs(e.getFirstPosition(),t,i.mapper))continue;const n={item:e,markerName:t.name,markerRange:o};this.fire(`addMarker:${t.name}`,n,i)}for(const t of e.getAttributeKeys())if(i.consumable.test(e,"attribute:"+t)){const o={item:e,range:e.getFirstRange(),attributeKey:t,attributeOldValue:null,attributeNewValue:e.getAttribute(t)};this.fire(`attribute:${t}:$text`,o,i)}}}_convertInsert(e,t,o={}){o.doNotAddConsumables||this._addConsumablesForInsert(t.consumable,e);for(const o of e.getWalker({shallow:!0}))this._testAndFire("insert",ws(o),t)}_convertRemove(e,t,o,i){this.fire(`remove:${o}`,{position:e,length:t},i)}_convertAttribute(e,t,o,i,n){this._addConsumablesForRange(n.consumable,e,`attribute:${t}`);for(const s of e){const e={item:s.item,range:us._createFromPositionAndShift(s.previousPosition,s.length),attributeKey:t,attributeOldValue:o,attributeNewValue:i};this._testAndFire(`attribute:${t}`,e,n)}}_convertReinsert(e,t){const o=Array.from(e.getWalker({shallow:!0}));this._addConsumablesForInsert(t.consumable,o);for(const e of o.map(ws))this.fire(`remove:${e.item.is("element")?e.item.name:"$text"}`,{position:e.range.start,length:e.item.offsetSize,reconversion:!0},t),this._testAndFire("insert",{...e,reconversion:!0},t)}_convertMarkerAdd(e,t,o){if("$graveyard"==t.root.rootName)return;const i=`addMarker:${e}`;if(o.consumable.add(t,i),this.fire(i,{markerName:e,markerRange:t},o),o.consumable.consume(t,i)){this._addConsumablesForRange(o.consumable,t,i);for(const n of t.getItems()){if(!o.consumable.test(n,i))continue;const s={item:n,range:us._createOn(n),markerName:e,markerRange:t};this.fire(i,s,o)}}}_convertMarkerRemove(e,t,o){"$graveyard"!=t.root.rootName&&this.fire(`removeMarker:${e}`,{markerName:e,markerRange:t},o)}_reduceChanges(e,t){const o={changes:e,refreshedItems:t};return this.fire("reduceChanges",o),o.changes}_addConsumablesForInsert(e,t){for(const o of t){const t=o.item;if(null===e.test(t,"insert")){e.add(t,"insert");for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o)}}return e}_addConsumablesForRange(e,t,o){for(const i of t.getItems())e.add(i,o);return e}_addConsumablesForSelection(e,t,o){e.add(t,"selection");for(const i of o)e.add(t,"addMarker:"+i.name);for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o);return e}_testAndFire(e,t,o){const i=function(e,t){const o=t.item.is("element")?t.item.name:"$text";return`${e}:${o}`}(e,t),n=t.item.is("$textProxy")?o.consumable._getSymbolForTextProxy(t.item):t.item,s=this._firedEventsMap.get(o),r=s.get(n);if(r){if(r.has(i))return;r.add(i)}else s.set(n,new Set([i]));this.fire(i,t,o)}_testAndFireAddAttributes(e,t){const o={item:e,range:us._createOn(e)};for(const e of o.item.getAttributeKeys())o.attributeKey=e,o.attributeOldValue=null,o.attributeNewValue=o.item.getAttribute(e),this._testAndFire(`attribute:${e}`,o,t)}_createConversionApi(e,t=new Set,o={}){const i={...this._conversionApi,consumable:new gs,writer:e,options:o,convertItem:e=>this._convertInsert(us._createOn(e),i),convertChildren:e=>this._convertInsert(us._createIn(e),i,{doNotAddConsumables:!0}),convertAttributes:e=>this._testAndFireAddAttributes(e,i),canReuseView:e=>!t.has(i.mapper.toModelElement(e))};return this._firedEventsMap.set(i,new Map),i}}function bs(e,t,o){const i=t.getRange(),n=Array.from(e.getAncestors());n.shift(),n.reverse();return!n.some((e=>{if(i.containsItem(e)){return!!o.toViewElement(e).getCustomProperty("addHighlight")}}))}function ws(e){return{item:e.item,range:us._createFromPositionAndShift(e.previousPosition,e.length)}}class ys extends ts{parent=null;_attrs;_index=null;_startOffset=null;constructor(e){super(),this._attrs=ao(e)}get document(){return null}get index(){return this._index}get startOffset(){return this._startOffset}get offsetSize(){return 1}get endOffset(){return null===this.startOffset?null:this.startOffset+this.offsetSize}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}isAttached(){return null!==this.parent&&this.root.isAttached()}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.startOffset),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),i=e.getAncestors(t);let n=0;for(;o[n]==i[n]&&o[n];)n++;return 0===n?null:o[n-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),i=We(t,o);switch(i){case"prefix":return!0;case"extension":return!1;default:return t[i](e[t[0]]=t[1],e)),{})),e}_clone(e){return new this.constructor(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(e,t){this._attrs.set(e,t)}_setAttributesTo(e){this._attrs=ao(e)}_removeAttribute(e){return this._attrs.delete(e)}_clearAttributes(){this._attrs.clear()}}ys.prototype.is=function(e){return"node"===e||"model:node"===e};class _s extends(xe(ts)){_lastRangeBackward=!1;_attrs=new Map;_ranges=[];constructor(...e){super(),e.length&&this.setTo(...e)}get anchor(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.end:e.start}return null}get focus(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.start:e.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(e){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 i of e._ranges)if(t.isEqual(i)){o=!0;break}if(!o)return!1}return!0}*getRanges(){for(const e of this._ranges)yield new us(e.start,e.end)}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?new us(e.start,e.end):null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?new us(e.start,e.end):null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():null}setTo(...e){let[t,o,i]=e;if("object"==typeof o&&(i=o,o=void 0),null===t)this._setRanges([]);else if(t instanceof _s)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof us)this._setRanges([t],!!i&&!!i.backward);else if(t instanceof ss)this._setRanges([new us(t)]);else if(t instanceof ys){const e=!!i&&!!i.backward;let n;if("in"==o)n=us._createIn(t);else if("on"==o)n=us._createOn(t);else{if(void 0===o)throw new fe("model-selection-setto-required-second-parameter",[this,t]);n=new us(ss._createAt(t,o))}this._setRanges([n],e)}else{if(!Ue(t))throw new fe("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,i&&!!i.backward)}}_setRanges(e,t=!1){const o=Array.from(e),i=o.some((t=>{if(!(t instanceof us))throw new fe("model-selection-set-ranges-not-range",[this,e]);return this._ranges.every((e=>!e.isEqual(t)))}));(o.length!==this._ranges.length||i)&&(this._replaceAllRanges(o),this._lastRangeBackward=!!t,this.fire("change:range",{directChange:!0}))}setFocus(e,t){if(null===this.anchor)throw new fe("model-selection-setfocus-no-ranges",[this,e]);const o=ss._createAt(e,t);if("same"==o.compareWith(this.focus))return;const i=this.anchor;this._ranges.length&&this._popRange(),"before"==o.compareWith(i)?(this._pushRange(new us(o,i)),this._lastRangeBackward=!0):(this._pushRange(new us(i,o)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(e){return this._attrs.get(e)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(e){return this._attrs.has(e)}removeAttribute(e){this.hasAttribute(e)&&(this._attrs.delete(e),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}setAttribute(e,t){this.getAttribute(e)!==t&&(this._attrs.set(e,t),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const e=new WeakSet;for(const t of this.getRanges()){const o=Cs(t.start,e);xs(o,t)&&(yield o);const i=t.getWalker();for(const o of i){const n=o.item;"elementEnd"==o.type&&vs(n,e,t)?yield n:"elementStart"==o.type&&n.is("model:element")&&n.root.document.model.schema.isBlock(n)&&i.jumpTo(ss._createAt(n,"end"))}const n=Cs(t.end,e);Es(n,t)&&(yield n)}}containsEntireContent(e=this.anchor.root){const t=ss._createAt(e,0),o=ss._createAt(e,"end");return t.isTouching(this.getFirstPosition())&&o.isTouching(this.getLastPosition())}toJSON(){const e={ranges:Array.from(this.getRanges()).map((e=>e.toJSON()))},t=Object.fromEntries(this.getAttributes());return Object.keys(t).length&&(e.attributes=t),this.isBackward&&(e.isBackward=!0),e}_pushRange(e){this._checkRange(e),this._ranges.push(new us(e.start,e.end))}_checkRange(e){for(let t=0;t0;)this._popRange()}_popRange(){this._ranges.pop()}}function ks(e,t){return!t.has(e)&&(t.add(e),e.root.document.model.schema.isBlock(e)&&!!e.parent)}function vs(e,t,o){return ks(e,t)&&As(e,o)}function Cs(e,t){const o=e.parent.root.document.model.schema,i=e.parent.getAncestors({parentFirst:!0,includeSelf:!0});let n=!1;const s=i.find((e=>!n&&(n=o.isLimit(e),!n&&ks(e,t))));return i.forEach((e=>t.add(e))),s}function As(e,t){const o=function(e){const t=e.root.document.model.schema;let o=e.parent;for(;o;){if(t.isBlock(o))return o;o=o.parent}}(e);if(!o)return!0;return!t.containsRange(us._createOn(o),!0)}function xs(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.start.isTouching(ss._createAt(e,e.maxOffset))&&As(e,t))}function Es(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.end.isTouching(ss._createAt(e,0))&&As(e,t))}_s.prototype.is=function(e){return"selection"===e||"model:selection"===e};class Ts extends(xe(us)){constructor(e,t){super(e,t),Ps.call(this)}detach(){this.stopListening()}toRange(){return new us(this.start,this.end)}static fromRange(e){return new Ts(e.start,e.end)}}function Ps(){this.listenTo(this.root.document.model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&Ss.call(this,o)}),{priority:"low"})}function Ss(e){const t=this.getTransformedByOperation(e),o=us._createFromRanges(t),i=!o.isEqual(this),n=function(e,t){switch(t.type){case"insert":return e.containsPosition(t.position);case"move":case"remove":case"reinsert":case"merge":return e.containsPosition(t.sourcePosition)||e.start.isEqual(t.sourcePosition)||e.containsPosition(t.targetPosition);case"split":return e.containsPosition(t.splitPosition)||e.containsPosition(t.insertionPosition)}return!1}(this,e);let s=null;if(i){"$graveyard"==o.root.rootName&&(s="remove"==e.type?e.sourcePosition:e.deletionPosition);const t=this.toRange();this.start=o.start,this.end=o.end,this.fire("change:range",t,{deletionPosition:s})}else n&&this.fire("change:content",this.toRange(),{deletionPosition:s})}Ts.prototype.is=function(e){return"liveRange"===e||"model:liveRange"===e||"range"==e||"model:range"===e};class Is extends ys{_data;constructor(e,t){super(t),this._data=e||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const e=super.toJSON();return e.data=this.data,e}_clone(){return new Is(this.data,this.getAttributes())}static fromJSON(e){return new Is(e.data,e.attributes)}}Is.prototype.is=function(e){return"$text"===e||"model:$text"===e||"text"===e||"model:text"===e||"node"===e||"model:node"===e};const Rs="selection:";class Os extends(xe(ts)){_selection;constructor(e){super(),this._selection=new Vs(e),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(e){return this._selection.containsEntireContent(e)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(e){return this._selection.getAttribute(e)}hasAttribute(e){return this._selection.hasAttribute(e)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(e){this._selection.observeMarkers(e)}toJSON(){return this._selection.toJSON()}_setFocus(e,t){this._selection.setFocus(e,t)}_setTo(...e){this._selection.setTo(...e)}_setAttribute(e,t){this._selection.setAttribute(e,t)}_removeAttribute(e){this._selection.removeAttribute(e)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(e){this._selection.restoreGravity(e)}static _getStoreAttributeKey(e){return Rs+e}static _isStoreAttributeKey(e){return e.startsWith(Rs)}}Os.prototype.is=function(e){return"selection"===e||"model:selection"==e||"documentSelection"==e||"model:documentSelection"==e};class Vs extends _s{markers=new eo({idProperty:"name"});_model;_document;_attributePriority=new Map;_selectionRestorePosition=null;_hasChangedRange=!1;_overriddenGravityRegister=new Set;_observedMarkers=new Set;constructor(e){super(),this._model=e.model,this._document=e,this.listenTo(this._model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&"marker"!=o.type&&"rename"!=o.type&&"noop"!=o.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((e,t,o,i)=>{this._updateMarker(t,i)})),this.listenTo(this._document,"change",((e,t)=>{!function(e,t){const o=e.document.differ;for(const i of o.getChanges()){if("insert"!=i.type)continue;const o=i.position.parent;i.length===o.maxOffset&&e.enqueueChange(t,(e=>{const t=Array.from(o.getAttributeKeys()).filter((e=>e.startsWith(Rs)));for(const i of t)e.removeAttribute(i,o)}))}}(this._model,t)}))}get isCollapsed(){return 0===this._ranges.length?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 this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let e=0;ee.toJSON()))),e}_validateSelectionRanges(e){for(const t of e)if(!this._document._validateSelectionRange(t))throw new fe("document-selection-wrong-position",this,{range:t})}_prepareRange(e){if(this._checkRange(e),e.root==this._document.graveyard)return;const t=Ts.fromRange(e);return t.on("change:range",((e,o,i)=>{if(this._hasChangedRange=!0,t.root==this._document.graveyard){this._selectionRestorePosition=i.deletionPosition;const e=this._ranges.indexOf(t);this._ranges.splice(e,1),t.detach()}})),t}updateMarkers(){if(!this._observedMarkers.size)return;const e=[];let t=!1;for(const t of this._model.markers){const o=t.name.split(":",1)[0];if(!this._observedMarkers.has(o))continue;const i=t.getRange();for(const o of this.getRanges())i.containsRange(o,!o.isCollapsed)&&e.push(t)}const o=Array.from(this.markers);for(const o of e)this.markers.has(o)||(this.markers.add(o),t=!0);for(const o of Array.from(this.markers))e.includes(o)||(this.markers.remove(o),t=!0);t&&this.fire("change:marker",{oldMarkers:o,directChange:!1})}_updateMarker(e,t){const o=e.name.split(":",1)[0];if(!this._observedMarkers.has(o))return;let i=!1;const n=Array.from(this.markers),s=this.markers.has(e);if(t){let o=!1;for(const e of this.getRanges())if(t.containsRange(e,!e.isCollapsed)){o=!0;break}o&&!s?(this.markers.add(e),i=!0):!o&&s&&(this.markers.remove(e),i=!0)}else s&&(this.markers.remove(e),i=!0);i&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateAttributes(e){const t=ao(this._getSurroundingAttributes()),o=ao(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);const i=[];for(const[e,t]of this.getAttributes())o.has(e)&&o.get(e)===t||i.push(e);for(const[e]of o)this.hasAttribute(e)||i.push(e);i.length>0&&this.fire("change:attribute",{attributeKeys:i,directChange:!1})}_setAttribute(e,t,o=!0){const i=o?"normal":"low";if("low"==i&&"normal"==this._attributePriority.get(e))return!1;return super.getAttribute(e)!==t&&(this._attrs.set(e,t),this._attributePriority.set(e,i),!0)}_removeAttribute(e,t=!0){const o=t?"normal":"low";return("low"!=o||"normal"!=this._attributePriority.get(e))&&(this._attributePriority.set(e,o),!!super.hasAttribute(e)&&(this._attrs.delete(e),!0))}_setAttributesTo(e){const t=new Set;for(const[t,o]of this.getAttributes())e.get(t)!==o&&this._removeAttribute(t,!1);for(const[o,i]of e){this._setAttribute(o,i,!1)&&t.add(o)}return t}*getStoredAttributes(){const e=this.getFirstPosition().parent;if(this.isCollapsed&&e.isEmpty)for(const t of e.getAttributeKeys())if(t.startsWith(Rs)){const o=t.substr(10);yield[o,e.getAttribute(t)]}}_getSurroundingAttributes(){const e=this.getFirstPosition(),t=this._model.schema;if("$graveyard"==e.root.rootName)return null;let o=null;if(this.isCollapsed){const i=e.textNode?e.textNode:e.nodeBefore,n=e.textNode?e.textNode:e.nodeAfter;if(this.isGravityOverridden||(o=Ds(i,t)),o||(o=Ds(n,t)),!this.isGravityOverridden&&!o){let e=i;for(;e&&!o;)e=e.previousSibling,o=Ds(e,t)}if(!o){let e=n;for(;e&&!o;)e=e.nextSibling,o=Ds(e,t)}o||(o=this.getStoredAttributes())}else{const e=this.getFirstRange();for(const i of e){if(i.item.is("element")&&t.isObject(i.item)){o=Ds(i.item,t);break}if("text"==i.type){o=i.item.getAttributes();break}}}return o}_fixGraveyardSelection(e){const t=this._model.schema.getNearestSelectionRange(e);t&&this._pushRange(t)}}function Ds(e,t){if(!e)return null;if(e instanceof os||e instanceof Is)return e.getAttributes();if(!t.isInline(e))return null;if(!t.isObject(e))return[];const o=[];for(const[i,n]of e.getAttributes())t.checkAttribute("$text",i)&&!1!==t.getAttributeProperties(i).copyFromObject&&o.push([i,n]);return o}class Fs{_nodes=[];_offsetToNode=[];constructor(e){e&&this._insertNodes(0,e)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._offsetToNode.length}getNode(e){return this._nodes[e]||null}getNodeAtOffset(e){return this._offsetToNode[e]||null}getNodeIndex(e){return e.index}getNodeStartOffset(e){return e.startOffset}indexToOffset(e){if(e==this._nodes.length)return this.maxOffset;const t=this._nodes[e];if(!t)throw new fe("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(t)}offsetToIndex(e){if(e==this._offsetToNode.length)return this._nodes.length;const t=this._offsetToNode[e];if(!t)throw new fe("model-nodelist-offset-out-of-bounds",this,{offset:e,nodeList:this});return this.getNodeIndex(t)}_insertNodes(e,t){const o=[];for(const e of t){if(!(e instanceof ys))throw new fe("model-nodelist-insertnodes-not-node",this);o.push(e)}let i=this.indexToOffset(e);lo(this._nodes,o,e),lo(this._offsetToNode,function(e){const t=[];let o=0;for(const i of e)for(let e=0;enull!==e.index)),this._offsetToNode=this._offsetToNode.filter((e=>null!==e.index));let t=0;for(let e=0;ee.toJSON()))}}class Ms extends ys{name;_children=new Fs;constructor(e,t,o){super(t),this.name=e,o&&this._insertChild(0,o)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}offsetToIndex(e){return this._children.offsetToIndex(e)}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}findAncestor(e,t={}){let o=t.includeSelf?this:this.parent;for(;o;){if(o.name===e)return o;o=o.parent}return null}toJSON(){const e=super.toJSON();if(e.name=this.name,this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=e?function(e){const t=[];for(const o of e)t.push(o._clone(!0));return t}(this._children):void 0;return new Ms(this.name,this.getAttributes(),t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Is(e)];Ue(e)||(e=[e]);const t=[];for(const o of e)"string"==typeof o?t.push(new Is(o)):o instanceof os?t.push(new Is(o.data,o.getAttributes())):t.push(o);return t}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}static fromJSON(e){let t;if(e.children){t=[];for(const o of e.children)o.name?t.push(Ms.fromJSON(o)):t.push(Is.fromJSON(o))}return new Ms(e.name,e.attributes,t)}}Ms.prototype.is=function(e,t){return t?t===this.name&&("element"===e||"model:element"===e):"element"===e||"model:element"===e||"node"===e||"model:node"===e};class Ns{_dispatchers;constructor(e){this._dispatchers=e}add(e){for(const t of this._dispatchers)e(t);return this}}class Bs extends Ns{elementToElement(e){return this.add(function(e){const t=Us(e.model),o=Ks(e.view,"container");t.attributes.length&&(t.children=!0);return i=>{i.on(`insert:${t.name}`,js(o,Ys(t)),{priority:e.converterPriority||"normal"}),(t.children||t.attributes.length)&&i.on("reduceChanges",Qs(t),{priority:"low"})}}(e))}elementToStructure(e){return this.add(function(e){const t=Us(e.model),o=Ks(e.view,"container");return t.children=!0,i=>{if(i._conversionApi.schema.checkChild(t.name,"$text"))throw new fe("conversion-element-to-structure-disallowed-text",i,{elementName:t.name});var n,s;i.on(`insert:${t.name}`,(n=o,s=Ys(t),(e,t,o)=>{if(!s(t.item,o.consumable,{preflight:!0}))return;const i=new Map;o.writer._registerSlotFactory(function(e,t,o){return(i,n)=>{const s=i.createContainerElement("$slot");let r=null;if("children"===n)r=Array.from(e.getChildren());else{if("function"!=typeof n)throw new fe("conversion-slot-mode-unknown",o.dispatcher,{modeOrFilter:n});r=Array.from(e.getChildren()).filter((e=>n(e)))}return t.set(s,r),s}}(t.item,i,o));const r=n(t.item,o,t);if(o.writer._clearSlotFactory(),!r)return;!function(e,t,o){const i=Array.from(t.values()).flat(),n=new Set(i);if(n.size!=i.length)throw new fe("conversion-slot-filter-overlap",o.dispatcher,{element:e});if(n.size!=e.childCount)throw new fe("conversion-slot-filter-incomplete",o.dispatcher,{element:e})}(t.item,i,o),s(t.item,o.consumable);const a=t.reconversion&&Hs(t.item,o)||o.mapper.toViewPosition(t.range.start);o.mapper.bindElements(t.item,r),o.writer.insert(a,r),o.convertAttributes(t.item),function(e,t,o,i){o.mapper.on("modelToViewPosition",r,{priority:"highest"});let n=null,s=null;for([n,s]of t)Xs(e,s,o,i),o.writer.setCustomProperty("$structureSlotParent",!0,n.parent),o.writer.move(o.writer.createRangeIn(n),o.writer.createPositionBefore(n)),o.writer.remove(n);function r(e,t){const o=t.modelPosition.nodeAfter,i=s.indexOf(o);i<0||(t.viewPosition=t.mapper.findPositionIn(n,i))}o.mapper.off("modelToViewPosition",r)}(r,i,o,{reconversion:t.reconversion})}),{priority:e.converterPriority||"normal"}),i.on("reduceChanges",Qs(t),{priority:"low"})}}(e))}attributeToElement(e){return this.add(function(e){e=j(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=Ks(e.view[o],"attribute");else e.view=Ks(e.view,"attribute");const i=Gs(e);return t=>{t.on(o,zs(i),{priority:e.converterPriority||"normal"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=j(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=Js(e.view[o]);else e.view=Js(e.view);const i=Gs(e);return t=>{var n;t.on(o,(n=i,(e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const i=n(t.attributeOldValue,o,t),s=n(t.attributeNewValue,o,t);if(!i&&!s)return;o.consumable.consume(t.item,e.name);const r=o.mapper.toViewElement(t.item),a=o.writer;if(!r)throw new fe("conversion-attribute-to-attribute-on-text",o.dispatcher,t);if(null!==t.attributeOldValue&&i){let e=i.value;"style"==i.key&&(e="string"==typeof i.value?new gi(a.document.stylesProcessor).setTo(i.value).getStylesEntries().map((([e])=>e)):Object.keys(i.value)),a.removeAttribute(i.key,e,r)}if(null!==t.attributeNewValue&&s){let e=s.value;"style"==s.key&&"string"==typeof s.value&&(e=Object.fromEntries(new gi(a.document.stylesProcessor).setTo(s.value).getStylesEntries())),a.setAttribute(s.key,e,!1,r)}}),{priority:e.converterPriority||"normal"})}}(e))}markerToElement(e){return this.add(function(e){const t=Ks(e.view,"ui");return o=>{o.on(`addMarker:${e.model}`,$s(t),{priority:e.converterPriority||"normal"}),o.on(`removeMarker:${e.model}`,((e,t,o)=>{const i=o.mapper.markerNameToElements(t.markerName);if(i){for(const e of i)o.mapper.unbindElementFromMarkerName(e,t.markerName),o.writer.clear(o.writer.createRangeOn(e),e);o.writer.clearClonedElementsGroup(t.markerName),e.stop()}}),{priority:e.converterPriority||"normal"})}}(e))}markerToHighlight(e){return this.add(function(e){return t=>{var o;t.on(`addMarker:${e.model}`,(o=e.view,(e,t,i)=>{if(!t.item)return;if(!(t.item instanceof _s||t.item instanceof Os||t.item.is("$textProxy")))return;const n=Zs(o,t,i);if(!n)return;if(!i.consumable.consume(t.item,e.name))return;const s=i.writer,r=Ls(s,n),a=s.document.selection;if(t.item instanceof _s||t.item instanceof Os)s.wrap(a.getFirstRange(),r);else{const e=i.mapper.toViewRange(t.range),o=s.wrap(e,r);for(const e of o.getItems())if(e.is("attributeElement")&&e.isSimilar(r)){i.mapper.bindElementToMarker(e,t.markerName);break}}}),{priority:e.converterPriority||"normal"}),t.on(`addMarker:${e.model}`,function(e){return(t,o,i)=>{if(!o.item)return;if(!(o.item instanceof Ms))return;const n=Zs(e,o,i);if(!n)return;if(!i.consumable.test(o.item,t.name))return;const s=i.mapper.toViewElement(o.item);if(s&&s.getCustomProperty("addHighlight")){i.consumable.consume(o.item,t.name);for(const e of us._createIn(o.item))i.consumable.consume(e.item,t.name);s.getCustomProperty("addHighlight")(s,n,i.writer),i.mapper.bindElementToMarker(s,o.markerName)}}}(e.view),{priority:e.converterPriority||"normal"}),t.on(`removeMarker:${e.model}`,function(e){return(t,o,i)=>{if(o.markerRange.isCollapsed)return;const n=Zs(e,o,i);if(!n)return;const s=Ls(i.writer,n),r=i.mapper.markerNameToElements(o.markerName);if(r){for(const e of r)if(i.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("attributeElement"))i.writer.unwrap(i.writer.createRangeOn(e),s);else{e.getCustomProperty("removeHighlight")(e,n.id,i.writer)}i.writer.clearClonedElementsGroup(o.markerName),t.stop()}}}(e.view),{priority:e.converterPriority||"normal"})}}(e))}markerToData(e){return this.add(function(e){e=j(e);const t=e.model;let o=e.view;o||(o=o=>({group:t,name:o.substr(e.model.length+1)}));return i=>{var n;i.on(`addMarker:${t}`,(n=o,(e,t,o)=>{const i=n(t.markerName,o);if(!i)return;const s=t.markerRange;o.consumable.consume(s,e.name)&&(Ws(s,!1,o,t,i),Ws(s,!0,o,t,i),e.stop())}),{priority:e.converterPriority||"normal"}),i.on(`removeMarker:${t}`,function(e){return(t,o,i)=>{const n=e(o.markerName,i);if(!n)return;const s=i.mapper.markerNameToElements(o.markerName);if(s){for(const e of s)i.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("containerElement")?(r(`data-${n.group}-start-before`,e),r(`data-${n.group}-start-after`,e),r(`data-${n.group}-end-before`,e),r(`data-${n.group}-end-after`,e)):i.writer.clear(i.writer.createRangeOn(e),e);i.writer.clearClonedElementsGroup(o.markerName),t.stop()}function r(e,t){if(t.hasAttribute(e)){const o=new Set(t.getAttribute(e).split(","));o.delete(n.name),0==o.size?i.writer.removeAttribute(e,t):i.writer.setAttribute(e,Array.from(o).join(","),t)}}}}(o),{priority:e.converterPriority||"normal"})}}(e))}}function Ls(e,t){const o=e.createAttributeElement("span",t.attributes);return t.classes&&o._addClass(t.classes),"number"==typeof t.priority&&(o._priority=t.priority),o._id=t.id,o}function zs(e){return(t,o,i)=>{if(!i.consumable.test(o.item,t.name))return;const n=e(o.attributeOldValue,i,o),s=e(o.attributeNewValue,i,o);if(!n&&!s)return;i.consumable.consume(o.item,t.name);const r=i.writer,a=r.document.selection;if(o.item instanceof _s||o.item instanceof Os)r.wrap(a.getFirstRange(),s);else{let e=i.mapper.toViewRange(o.range);null!==o.attributeOldValue&&n&&(e=r.unwrap(e,n)),null!==o.attributeNewValue&&s&&r.wrap(e,s)}}}function js(e,t=tr){return(o,i,n)=>{if(!t(i.item,n.consumable,{preflight:!0}))return;const s=e(i.item,n,i);if(!s)return;t(i.item,n.consumable);const r=i.reconversion&&Hs(i.item,n)||n.mapper.toViewPosition(i.range.start);n.mapper.bindElements(i.item,s),n.writer.insert(r,s),n.convertAttributes(i.item),Xs(s,i.item.getChildren(),n,{reconversion:i.reconversion})}}function $s(e){return(t,o,i)=>{o.isOpening=!0;const n=e(o,i);o.isOpening=!1;const s=e(o,i);if(!n||!s)return;const r=o.markerRange;if(r.isCollapsed&&!i.consumable.consume(r,t.name))return;for(const e of r)if(!i.consumable.consume(e.item,t.name))return;const a=i.mapper,l=i.writer;l.insert(a.toViewPosition(r.start),n),i.mapper.bindElementToMarker(n,o.markerName),r.isCollapsed||(l.insert(a.toViewPosition(r.end),s),i.mapper.bindElementToMarker(s,o.markerName)),t.stop()}}function qs(e,t){const o=t.writer.remove(e);for(const e of t.writer.createRangeIn(o).getItems())t.mapper.unbindViewElement(e,{defer:!0});return e.start}function Hs(e,t){const o=t.mapper.toViewElement(e);return o&&qs(t.writer.createRangeOn(o),t)}function Ws(e,t,o,i,n){const s=t?e.start:e.end,r=s.nodeAfter&&s.nodeAfter.is("element")?s.nodeAfter:null,a=s.nodeBefore&&s.nodeBefore.is("element")?s.nodeBefore:null;if(r||a){let e,s;t&&r||!t&&!a?(e=r,s=!0):(e=a,s=!1);const l=o.mapper.toViewElement(e);if(l)return void function(e,t,o,i,n,s){const r=`data-${s.group}-${t?"start":"end"}-${o?"before":"after"}`,a=e.hasAttribute(r)?e.getAttribute(r).split(","):[];a.unshift(s.name),i.writer.setAttribute(r,a.join(","),e),i.mapper.bindElementToMarker(e,n.markerName)}(l,t,s,o,i,n)}!function(e,t,o,i,n){const s=`${n.group}-${t?"start":"end"}`,r=n.name?{name:n.name}:null,a=o.writer.createUIElement(s,r);o.writer.insert(e,a),o.mapper.bindElementToMarker(a,i.markerName)}(o.mapper.toViewPosition(s),t,o,i,n)}function Us(e){return"string"==typeof e&&(e={name:e}),{name:e.name,attributes:e.attributes?Qt(e.attributes):[],children:!!e.children}}function Ks(e,t){return"function"==typeof e?e:(o,i)=>function(e,t,o){"string"==typeof e&&(e={name:e});let i;const n=t.writer,s=Object.assign({},e.attributes);if("container"==o)i=n.createContainerElement(e.name,s);else if("attribute"==o){const t={priority:e.priority||Wi.DEFAULT_PRIORITY};i=n.createAttributeElement(e.name,s,t)}else i=n.createUIElement(e.name,s);if(e.styles){const t=Object.keys(e.styles);for(const o of t)n.setStyle(o,e.styles[o],i)}if(e.classes){const t=e.classes;if("string"==typeof t)n.addClass(t,i);else for(const e of t)n.addClass(e,i)}return i}(e,i,t)}function Gs(e){return e.model.values?(t,o,i)=>{const n=e.view[t];return n?n(t,o,i):null}:e.view}function Js(e){return"string"==typeof e?t=>({key:e,value:t}):"object"==typeof e?e.value?()=>e:t=>({key:e.key,value:t}):e}function Zs(e,t,o){const i="function"==typeof e?e(t,o):{...e};return i?(i.priority||(i.priority=10),i.id||(i.id=t.markerName),i):null}function Qs(e){const t=function(e){return(t,o)=>{if(!t.is("element",e.name))return!1;if("attribute"==o.type){if(e.attributes.includes(o.attributeKey))return!0}else if(e.children)return!0;return!1}}(e);return(e,o)=>{const i=[];o.reconvertedElements||(o.reconvertedElements=new Set);for(const e of o.changes){const n="attribute"==e.type?e.range.start.nodeAfter:e.position.parent;if(n&&t(n,e)&&"reinsert"!=e.type){if("insert"==e.type&&"rename"==e.action&&o.refreshedItems.add(e.position.nodeAfter),!o.reconvertedElements.has(n)){o.reconvertedElements.add(n);const e=ss._createBefore(n);let t=i.length;for(let o=i.length-1;o>=0;o--){const n=i[o],s=("attribute"==n.type?n.range.start:n.position).compareWith(e);if("before"==s||"remove"==n.type&&"same"==s)break;t=o}i.splice(t,0,{type:"reinsert",name:n.name,position:e,length:1})}}else i.push(e)}o.changes=i}}function Ys(e){return(t,o,i={})=>{const n=["insert"];for(const o of e.attributes)t.hasAttribute(o)&&n.push(`attribute:${o}`);return!!n.every((e=>o.test(t,e)))&&(i.preflight||n.forEach((e=>o.consume(t,e))),!0)}}function Xs(e,t,o,i){for(const n of t)er(e.root,n,o,i)||o.convertItem(n)}function er(e,t,o,i){const{writer:n,mapper:s}=o;if(!i.reconversion)return!1;const r=s.toViewElement(t);return!(!r||r.root==e)&&(!!o.canReuseView(r)&&(n.move(n.createRangeOn(r),s.toViewPosition(ss._createBefore(t))),!0))}function tr(e,t,{preflight:o}={}){return o?t.test(e,"insert"):t.consume(e,"insert")}function or(e){const{schema:t,document:o}=e.model;for(const i of o.getRoots())if(i.isEmpty&&!t.checkChild(i,"$text")&&t.checkChild(i,"paragraph"))return e.insertElement("paragraph",i),!0;return!1}function ir(e,t,o){const i=o.createContext(e);return!!o.checkChild(i,"paragraph")&&!!o.checkChild(i.push("paragraph"),t)}function nr(e,t){const o=t.createElement("paragraph");return t.insert(o,e),t.createPositionAt(o,0)}class sr extends Ns{elementToElement(e){return this.add(rr(e))}elementToAttribute(e){return this.add(function(e){e=j(e),cr(e);const t=dr(e,!1),o=ar(e.view),i=o?`element:${o}`:"element";return o=>{o.on(i,t,{priority:e.converterPriority||"low"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=j(e);let t=null;("string"==typeof e.view||e.view.key)&&(t=function(e){"string"==typeof e.view&&(e.view={key:e.view});const t=e.view.key,o=void 0===e.view.value?/[\s\S]*/:e.view.value;let i;if("class"==t||"style"==t){const e="class"==t?"classes":"styles";i={[e]:o}}else i={attributes:{[t]:o}};e.view.name&&(i.name=e.view.name);return e.view=i,t}(e));cr(e,t);const o=dr(e,!0);return t=>{t.on("element",o,{priority:e.converterPriority||"low"})}}(e))}elementToMarker(e){return this.add(function(e){const t=function(e){return(t,o)=>{const i="string"==typeof e?e:e(t,o);return o.writer.createElement("$marker",{"data-name":i})}}(e.model);return rr({...e,model:t})}(e))}dataToMarker(e){return this.add(function(e){e=j(e),e.model||(e.model=t=>t?e.view+":"+t:e.view);const t={view:e.view,model:e.model},o=lr(ur(t,"start")),i=lr(ur(t,"end"));return n=>{n.on(`element:${e.view}-start`,o,{priority:e.converterPriority||"normal"}),n.on(`element:${e.view}-end`,i,{priority:e.converterPriority||"normal"});const s=ge.low,r=ge.highest,a=ge.get(e.converterPriority)/r;n.on("element",function(e){return(t,o,i)=>{const n=`data-${e.view}`;function s(t,n){for(const s of n){const n=e.model(s,i),r=i.writer.createElement("$marker",{"data-name":n});i.writer.insert(r,t),o.modelCursor.isEqual(t)?o.modelCursor=o.modelCursor.getShiftedBy(1):o.modelCursor=o.modelCursor._getTransformedByInsertion(t,1),o.modelRange=o.modelRange._getTransformedByInsertion(t,1)[0]}}(i.consumable.test(o.viewItem,{attributes:n+"-end-after"})||i.consumable.test(o.viewItem,{attributes:n+"-start-after"})||i.consumable.test(o.viewItem,{attributes:n+"-end-before"})||i.consumable.test(o.viewItem,{attributes:n+"-start-before"}))&&(o.modelRange||Object.assign(o,i.convertChildren(o.viewItem,o.modelCursor)),i.consumable.consume(o.viewItem,{attributes:n+"-end-after"})&&s(o.modelRange.end,o.viewItem.getAttribute(n+"-end-after").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-start-after"})&&s(o.modelRange.end,o.viewItem.getAttribute(n+"-start-after").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-end-before"})&&s(o.modelRange.start,o.viewItem.getAttribute(n+"-end-before").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-start-before"})&&s(o.modelRange.start,o.viewItem.getAttribute(n+"-start-before").split(",")))}}(t),{priority:s+a})}}(e))}}function rr(e){const t=lr(e=j(e)),o=ar(e.view),i=o?`element:${o}`:"element";return o=>{o.on(i,t,{priority:e.converterPriority||"normal"})}}function ar(e){return"string"==typeof e?e:"object"==typeof e&&"string"==typeof e.name?e.name:null}function lr(e){const t=new ui(e.view);return(o,i,n)=>{const s=t.match(i.viewItem);if(!s)return;const r=s.match;if(r.name=!0,!n.consumable.test(i.viewItem,r))return;const a=function(e,t,o){return e instanceof Function?e(t,o):o.writer.createElement(e)}(e.model,i.viewItem,n);a&&n.safeInsert(a,i.modelCursor)&&(n.consumable.consume(i.viewItem,r),n.convertChildren(i.viewItem,a),n.updateConversionResult(a,i))}}function cr(e,t=null){const o=null===t||(e=>e.getAttribute(t)),i="object"!=typeof e.model?e.model:e.model.key,n="object"!=typeof e.model||void 0===e.model.value?o:e.model.value;e.model={key:i,value:n}}function dr(e,t){const o=new ui(e.view);return(i,n,s)=>{if(!n.modelRange&&t)return;const r=o.match(n.viewItem);if(!r)return;if(!function(e,t){const o="function"==typeof e?e(t):e;if("object"==typeof o&&!ar(o))return!1;return!o.classes&&!o.attributes&&!o.styles}(e.view,n.viewItem)?delete r.match.name:r.match.name=!0,!s.consumable.test(n.viewItem,r.match))return;const a=e.model.key,l="function"==typeof e.model.value?e.model.value(n.viewItem,s,n):e.model.value;if(null==l)return;n.modelRange||Object.assign(n,s.convertChildren(n.viewItem,n.modelCursor));const c=function(e,t,o,i){let n=!1;for(const s of Array.from(e.getItems({shallow:o})))i.schema.checkAttribute(s,t.key)&&(n=!0,s.hasAttribute(t.key)||i.writer.setAttribute(t.key,t.value,s));return n}(n.modelRange,{key:a,value:l},t,s);c&&(s.consumable.test(n.viewItem,{name:!0})&&(r.match.name=!0),s.consumable.consume(n.viewItem,r.match))}}function ur(e,t){return{view:`${e.view}-${t}`,model:(t,o)=>{const i=t.getAttribute("name"),n=e.model(i,o);return o.writer.createElement("$marker",{"data-name":n})}}}class hr extends(Be()){model;view;mapper;downcastDispatcher;constructor(e,t){super(),this.model=e,this.view=new es(t),this.mapper=new hs,this.downcastDispatcher=new fs({mapper:this.mapper,schema:e.schema});const o=this.model.document,i=o.selection,n=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(o,"change",(()=>{this.view.change((e=>{this.downcastDispatcher.convertChanges(o.differ,n,e),this.downcastDispatcher.convertSelection(i,n,e)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(e,t){return(o,i)=>{const n=i.newSelection,s=[];for(const e of n.getRanges())s.push(t.toModelRange(e));const r=e.createSelection(s,{backward:n.isBackward});r.isEqual(e.document.selection)||e.change((e=>{e.setSelection(r)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewPosition(t.range.start),s=i.createText(t.item.data);i.insert(n,s)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((e,t,o)=>{if(t.reconversion)return;const i=o.mapper.toViewPosition(t.position),n=t.position.getShiftedBy(t.length),s=o.mapper.toViewPosition(n,{isPhantom:!0});qs(o.writer.createRange(i,s).getTrimmed(),o)}),{priority:"low"}),this.downcastDispatcher.on("cleanSelection",((e,t,o)=>{const i=o.writer,n=i.document.selection;for(const e of n.getRanges())e.isCollapsed&&e.end.parent.isAttached()&&o.writer.mergeAttributes(e.start);i.setSelection(null)})),this.downcastDispatcher.on("selection",((e,t,o)=>{const i=t.selection;if(i.isCollapsed)return;if(!o.consumable.consume(i,"selection"))return;const n=[];for(const e of i.getRanges())n.push(o.mapper.toViewRange(e));o.writer.setSelection(n,{backward:i.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((e,t,o)=>{const i=t.selection;if(!i.isCollapsed)return;if(!o.consumable.consume(i,"selection"))return;const n=o.writer,s=i.getFirstPosition(),r=o.mapper.toViewPosition(s),a=n.breakAttributes(r);n.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((e=>{if("$graveyard"==e.rootName)return null;const t=new Ti(this.view.document,e.name);return t.rootName=e.rootName,this.mapper.bindElements(e,t),t}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(e){const t="string"==typeof e?e:e.name,o=this.model.markers.get(t);if(!o)throw new fe("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:t});this.model.change((()=>{this.model.markers._refresh(o)}))}reconvertItem(e){this.model.change((()=>{this.model.document.differ._refreshItem(e)}))}}class mr extends(Be()){_sourceDefinitions={};_attributeProperties=Object.create(null);_customChildChecks=new Map;_customAttributeChecks=new Map;_genericCheckSymbol=Symbol("$generic");_compiledDefinitions;constructor(){super(),this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((e,t)=>{t[0]=new gr(t[0])}),{priority:"highest"}),this.on("checkChild",((e,t)=>{t[0]=new gr(t[0]),t[1]=this.getDefinition(t[1])}),{priority:"highest"})}register(e,t){if(this._sourceDefinitions[e])throw new fe("schema-cannot-register-item-twice",this,{itemName:e});this._sourceDefinitions[e]=[Object.assign({},t)],this._clearCache()}extend(e,t){if(!this._sourceDefinitions[e])throw new fe("schema-cannot-extend-missing-item",this,{itemName:e});this._sourceDefinitions[e].push(Object.assign({},t)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(e){let t;return t="string"==typeof e?e:"is"in e&&(e.is("$text")||e.is("$textProxy"))?"$text":e.name,this.getDefinitions()[t]}isRegistered(e){return!!this.getDefinition(e)}isBlock(e){const t=this.getDefinition(e);return!(!t||!t.isBlock)}isLimit(e){const t=this.getDefinition(e);return!!t&&!(!t.isLimit&&!t.isObject)}isObject(e){const t=this.getDefinition(e);return!!t&&!!(t.isObject||t.isLimit&&t.isSelectable&&t.isContent)}isInline(e){const t=this.getDefinition(e);return!(!t||!t.isInline)}isSelectable(e){const t=this.getDefinition(e);return!!t&&!(!t.isSelectable&&!t.isObject)}isContent(e){const t=this.getDefinition(e);return!!t&&!(!t.isContent&&!t.isObject)}checkChild(e,t){return!!t&&this._checkContextMatch(e,t)}checkAttribute(e,t){const o=this.getDefinition(e.last);if(!o)return!1;const i=this._evaluateAttributeChecks(e,t);return void 0!==i?i:o.allowAttributes.includes(t)}checkMerge(e,t){if(e instanceof ss){const t=e.nodeBefore,o=e.nodeAfter;if(!(t instanceof Ms))throw new fe("schema-check-merge-no-element-before",this);if(!(o instanceof Ms))throw new fe("schema-check-merge-no-element-after",this);return this.checkMerge(t,o)}if(this.isLimit(e)||this.isLimit(t))return!1;for(const o of t.getChildren())if(!this.checkChild(e,o))return!1;return!0}addChildCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,i=this._customChildChecks.get(o)||[];i.push(e),this._customChildChecks.set(o,i)}addAttributeCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,i=this._customAttributeChecks.get(o)||[];i.push(e),this._customAttributeChecks.set(o,i)}setAttributeProperties(e,t){this._attributeProperties[e]=Object.assign(this.getAttributeProperties(e),t)}getAttributeProperties(e){return this._attributeProperties[e]||Object.create(null)}getLimitElement(e){let t;if(e instanceof ss)t=e.parent;else{t=(e instanceof us?[e]:Array.from(e.getRanges())).reduce(((e,t)=>{const o=t.getCommonAncestor();return e?e.getCommonAncestor(o,{includeSelf:!0}):o}),null)}for(;!this.isLimit(t)&&t.parent;)t=t.parent;return t}checkAttributeInSelection(e,t){if(e.isCollapsed){const o=[...e.getFirstPosition().getAncestors(),new Is("",e.getAttributes())];return this.checkAttribute(o,t)}{const o=e.getRanges();for(const e of o)for(const o of e)if(this.checkAttribute(o.item,t))return!0}return!1}*getValidRanges(e,t,o={}){e=function*(e){for(const t of e)yield*t.getMinimalFlatRanges()}(e);for(const i of e)yield*this._getValidRangesForRange(i,t,o)}getNearestSelectionRange(e,t="both"){if("$graveyard"==e.root.rootName)return null;if(this.checkChild(e,"$text"))return new us(e);let o,i;const n=e.getAncestors().reverse().find((e=>this.isLimit(e)))||e.root;"both"!=t&&"backward"!=t||(o=new is({boundaries:us._createIn(n),startPosition:e,direction:"backward"})),"both"!=t&&"forward"!=t||(i=new is({boundaries:us._createIn(n),startPosition:e}));for(const e of function*(e,t){let o=!1;for(;!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})}}}(o,i)){const t=e.walker==o?"elementEnd":"elementStart",i=e.value;if(i.type==t&&this.isObject(i.item))return us._createOn(i.item);if(this.checkChild(i.nextPosition,"$text"))return new us(i.nextPosition)}return null}findAllowedParent(e,t){let o=e.parent;for(;o;){if(this.checkChild(o,t))return o;if(this.isLimit(o))return null;o=o.parent}return null}setAllowedAttributes(e,t,o){const i=o.model;for(const[n,s]of Object.entries(t))i.schema.checkAttribute(e,n)&&o.setAttribute(n,s,e)}removeDisallowedAttributes(e,t){for(const o of e)if(o.is("$text"))Tr(this,o,t);else{const e=us._createIn(o).getPositions();for(const o of e){Tr(this,o.nodeBefore||o.parent,t)}}}getAttributesWithProperty(e,t,o){const i={};for(const[n,s]of e.getAttributes()){const e=this.getAttributeProperties(n);void 0!==e[t]&&(void 0!==o&&o!==e[t]||(i[n]=s))}return i}createContext(e){return new gr(e)}_clearCache(){this._compiledDefinitions=null}_compile(){const e={},t=this._sourceDefinitions,o=Object.keys(t);for(const i of o)e[i]=pr(t[i],i);const i=Object.values(e);for(const t of i)fr(e,t),br(e,t),wr(e,t),yr(e,t);for(const t of i)_r(e,t);for(const t of i)kr(e,t);for(const t of i)vr(e,t);for(const t of i)Cr(e,t);for(const t of i)Ar(e,t);this._compiledDefinitions=function(e){const t={};for(const o of Object.values(e))t[o.name]={name:o.name,isBlock:!!o.isBlock,isContent:!!o.isContent,isInline:!!o.isInline,isLimit:!!o.isLimit,isObject:!!o.isObject,isSelectable:!!o.isSelectable,allowIn:Array.from(o.allowIn).filter((t=>!!e[t])),allowChildren:Array.from(o.allowChildren).filter((t=>!!e[t])),allowAttributes:Array.from(o.allowAttributes)};return t}(e)}_checkContextMatch(e,t){const o=e.last;let i=this._evaluateChildChecks(e,t);if(i=void 0!==i?i:t.allowIn.includes(o.name),!i)return!1;const n=this.getDefinition(o),s=e.trimLast();return!!n&&(0==s.length||this._checkContextMatch(s,n))}_evaluateChildChecks(e,t){const o=this._customChildChecks.get(this._genericCheckSymbol)||[],i=this._customChildChecks.get(t.name)||[];for(const n of[...o,...i]){const o=n(e,t);if(void 0!==o)return o}}_evaluateAttributeChecks(e,t){const o=this._customAttributeChecks.get(this._genericCheckSymbol)||[],i=this._customAttributeChecks.get(t)||[];for(const n of[...o,...i]){const o=n(e,t);if(void 0!==o)return o}}*_getValidRangesForRange(e,t,o){let i=e.start,n=e.start;for(const s of e.getItems({shallow:!0})){if(s.is("element"))if(o.includeEmptyRanges&&s.isEmpty){const e=this.createContext(s);this.checkChild(e,"$text")&&this.checkAttribute(e.push("$text"),t)&&(yield us._createIn(s))}else yield*this._getValidRangesForRange(us._createIn(s),t,o);this.checkAttribute(s,t)||(i.isEqual(n)||(yield new us(i,n)),i=ss._createAfter(s)),n=ss._createAfter(s)}i.isEqual(n)||(yield new us(i,n))}findOptimalInsertionRange(e,t){const o=e.getSelectedElement();if(o&&this.isObject(o)&&!this.isInline(o))return"before"==t||"after"==t?new us(ss._createAt(o,t)):us._createOn(o);const i=to(e.getSelectedBlocks());if(!i)return new us(e.focus);if(i.isEmpty)return new us(ss._createAt(i,0));const n=ss._createAfter(i);return e.focus.isTouching(n)?new us(n):new us(ss._createBefore(i))}}class gr{_items;constructor(e){if(e instanceof gr)return e;let t;t="string"==typeof e?[e]:Array.isArray(e)?e:e.getAncestors({includeSelf:!0}),this._items=t.map(Er)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(e){const t=new gr([e]);return t._items=[...this._items,...t._items],t}trimLast(){const e=new gr([]);return e._items=this._items.slice(0,-1),e}getItem(e){return this._items[e]}*getNames(){yield*this._items.map((e=>e.name))}endsWith(e){return Array.from(this.getNames()).join(" ").endsWith(e)}startsWith(e){return Array.from(this.getNames()).join(" ").startsWith(e)}}function pr(e,t){const o={name:t,allowIn:new Set,allowChildren:new Set,disallowIn:new Set,disallowChildren:new Set,allowContentOf:new Set,allowWhere:new Set,allowAttributes:new Set,disallowAttributes:new Set,allowAttributesOf:new Set,inheritTypesFrom:new Set};return function(e,t){for(const o of e){const e=Object.keys(o).filter((e=>e.startsWith("is")));for(const i of e)t[i]=!!o[i]}}(e,o),xr(e,o,"allowIn"),xr(e,o,"allowChildren"),xr(e,o,"disallowIn"),xr(e,o,"disallowChildren"),xr(e,o,"allowContentOf"),xr(e,o,"allowWhere"),xr(e,o,"allowAttributes"),xr(e,o,"disallowAttributes"),xr(e,o,"allowAttributesOf"),xr(e,o,"inheritTypesFrom"),function(e,t){for(const o of e){const e=o.inheritAllFrom;e&&(t.allowContentOf.add(e),t.allowWhere.add(e),t.allowAttributesOf.add(e),t.inheritTypesFrom.add(e))}}(e,o),o}function fr(e,t){for(const o of t.allowIn){const i=e[o];i?i.allowChildren.add(t.name):t.allowIn.delete(o)}}function br(e,t){for(const o of t.allowChildren){const i=e[o];i?i.allowIn.add(t.name):t.allowChildren.delete(o)}}function wr(e,t){for(const o of t.disallowIn){const i=e[o];i?i.disallowChildren.add(t.name):t.disallowIn.delete(o)}}function yr(e,t){for(const o of t.disallowChildren){const i=e[o];i?i.disallowIn.add(t.name):t.disallowChildren.delete(o)}}function _r(e,t){for(const e of t.disallowChildren)t.allowChildren.delete(e);for(const e of t.disallowIn)t.allowIn.delete(e);for(const e of t.disallowAttributes)t.allowAttributes.delete(e)}function kr(e,t){for(const o of t.allowContentOf){const i=e[o];i&&(i.disallowChildren.forEach((o=>{t.allowChildren.has(o)||(t.disallowChildren.add(o),e[o].disallowIn.add(t.name))})),i.allowChildren.forEach((o=>{t.disallowChildren.has(o)||(t.allowChildren.add(o),e[o].allowIn.add(t.name))})))}}function vr(e,t){for(const o of t.allowWhere){const i=e[o];i&&(i.disallowIn.forEach((o=>{t.allowIn.has(o)||(t.disallowIn.add(o),e[o].disallowChildren.add(t.name))})),i.allowIn.forEach((o=>{t.disallowIn.has(o)||(t.allowIn.add(o),e[o].allowChildren.add(t.name))})))}}function Cr(e,t){for(const o of t.allowAttributesOf){const i=e[o];if(!i)return;i.allowAttributes.forEach((e=>{t.disallowAttributes.has(e)||t.allowAttributes.add(e)}))}}function Ar(e,t){for(const o of t.inheritTypesFrom){const i=e[o];if(i){const e=Object.keys(i).filter((e=>e.startsWith("is")));for(const o of e)o in t||(t[o]=i[o])}}}function xr(e,t,o){for(const i of e){let e=i[o];"string"==typeof e&&(e=[e]),Array.isArray(e)&&e.forEach((e=>t[o].add(e)))}}function Er(e){return"string"==typeof e||e.is("documentFragment")?{name:"string"==typeof e?e:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:e.is("element")?e.name:"$text",*getAttributeKeys(){yield*e.getAttributeKeys()},getAttribute:t=>e.getAttribute(t)}}function Tr(e,t,o){for(const i of t.getAttributeKeys())e.checkAttribute(t,i)||o.removeAttribute(i,t)}class Pr extends(xe()){conversionApi;_splitParts=new Map;_cursorParents=new Map;_modelCursor=null;_emptyElementsToKeep=new Set;constructor(e){super(),this.conversionApi={...e,consumable:null,writer:null,store:null,convertItem:(e,t)=>this._convertItem(e,t),convertChildren:(e,t)=>this._convertChildren(e,t),safeInsert:(e,t)=>this._safeInsert(e,t),updateConversionResult:(e,t)=>this._updateConversionResult(e,t),splitToAllowedParent:(e,t)=>this._splitToAllowedParent(e,t),getSplitParts:e=>this._getSplitParts(e),keepEmptyElement:e=>this._keepEmptyElement(e)}}convert(e,t,o=["$root"]){this.fire("viewCleanup",e),this._modelCursor=function(e,t){let o;for(const i of new gr(e)){const e={};for(const t of i.getAttributeKeys())e[t]=i.getAttribute(t);const n=t.createElement(i.name,e);o&&t.insert(n,o),o=ss._createAt(n,0)}return o}(o,t),this.conversionApi.writer=t,this.conversionApi.consumable=ai.createFrom(e),this.conversionApi.store={};const{modelRange:i}=this._convertItem(e,this._modelCursor),n=t.createDocumentFragment();if(i){this._removeEmptyElements();const e=this._modelCursor.parent,o=e._removeChildren(0,e.childCount);n._insertChild(0,o),n.markers=function(e,t){const o=new Set,i=new Map,n=us._createIn(e).getItems();for(const e of n)e.is("element","$marker")&&o.add(e);for(const e of o){const o=e.getAttribute("data-name"),n=t.createPositionBefore(e);i.has(o)?i.get(o).end=n.clone():i.set(o,new us(n.clone())),t.remove(e)}return i}(n,t)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,n}_convertItem(e,t){const o={viewItem:e,modelCursor:t,modelRange:null};if(e.is("element")?this.fire(`element:${e.name}`,o,this.conversionApi):e.is("$text")?this.fire("text",o,this.conversionApi):this.fire("documentFragment",o,this.conversionApi),o.modelRange&&!(o.modelRange instanceof us))throw new fe("view-conversion-dispatcher-incorrect-result",this);return{modelRange:o.modelRange,modelCursor:o.modelCursor}}_convertChildren(e,t){let o=t.is("position")?t:ss._createAt(t,0);const i=new us(o);for(const t of Array.from(e.getChildren())){const e=this._convertItem(t,o);e.modelRange instanceof us&&(i.end=e.modelRange.end,o=e.modelCursor)}return{modelRange:i,modelCursor:o}}_safeInsert(e,t){const o=this._splitToAllowedParent(e,t);return!!o&&(this.conversionApi.writer.insert(e,o.position),!0)}_updateConversionResult(e,t){const o=this._getSplitParts(e),i=this.conversionApi.writer;t.modelRange||(t.modelRange=i.createRange(i.createPositionBefore(e),i.createPositionAfter(o[o.length-1])));const n=this._cursorParents.get(e);t.modelCursor=n?i.createPositionAt(n,0):t.modelRange.end}_splitToAllowedParent(e,t){const{schema:o,writer:i}=this.conversionApi;let n=o.findAllowedParent(t,e);if(n){if(n===t.parent)return{position:t};this._modelCursor.parent.getAncestors().includes(n)&&(n=null)}if(!n)return ir(t,e,o)?{position:nr(t,i)}:null;const s=this.conversionApi.writer.split(t,n),r=[];for(const e of s.range.getWalker())if("elementEnd"==e.type)r.push(e.item);else{const t=r.pop(),o=e.item;this._registerSplitPair(t,o)}const a=s.range.end.parent;return this._cursorParents.set(e,a),{position:s.position,cursorParent:a}}_registerSplitPair(e,t){this._splitParts.has(e)||this._splitParts.set(e,[e]);const o=this._splitParts.get(e);this._splitParts.set(t,o),o.push(t)}_getSplitParts(e){let t;return t=this._splitParts.has(e)?this._splitParts.get(e):[e],t}_keepEmptyElement(e){this._emptyElementsToKeep.add(e)}_removeEmptyElements(){const e=new Map;for(const t of this._splitParts.keys())if(t.isEmpty&&!this._emptyElementsToKeep.has(t)){const o=e.get(t.parent)||[];o.push(t),this._splitParts.delete(t),e.set(t.parent,o)}for(const[t,o]of e)t._removeChildrenArray(o);e.size&&this._removeEmptyElements()}}class Sr{getHtml(e){const t=J.document.implementation.createHTMLDocument("").createElement("div");return t.appendChild(e),t.innerHTML}}class Ir{domParser;domConverter;htmlWriter;skipComments=!0;constructor(e){this.domParser=new DOMParser,this.domConverter=new Rn(e,{renderingMode:"data"}),this.htmlWriter=new Sr}toData(e){const t=this.domConverter.viewToDom(e);return this.htmlWriter.getHtml(t)}toView(e){const t=this._toDom(e);return this.domConverter.domToView(t,{skipComments:this.skipComments})}registerRawContentMatcher(e){this.domConverter.registerRawContentMatcher(e)}useFillerType(e){this.domConverter.blockFillerMode="marked"==e?"markedNbsp":"nbsp"}_toDom(e){/<(?:html|body|head|meta)(?:\s[^>]*)?>/i.test(e.trim().slice(0,1e4))||(e=`${e}`);const t=this.domParser.parseFromString(e,"text/html"),o=t.createDocumentFragment(),i=t.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);return o}}class Rr extends(xe()){model;mapper;downcastDispatcher;upcastDispatcher;viewDocument;stylesProcessor;htmlProcessor;processor;_viewWriter;constructor(e,t){super(),this.model=e,this.mapper=new hs,this.downcastDispatcher=new fs({mapper:this.mapper,schema:e.schema}),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewPosition(t.range.start),s=i.createText(t.item.data);i.insert(n,s)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.upcastDispatcher=new Pr({schema:e.schema}),this.viewDocument=new Hi(t),this.stylesProcessor=t,this.htmlProcessor=new Ir(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new on(this.viewDocument),this.upcastDispatcher.on("text",((e,t,{schema:o,consumable:i,writer:n})=>{let s=t.modelCursor;if(!i.test(t.viewItem))return;if(!o.checkChild(s,"$text")){if(!ir(s,"$text",o))return;if(0==t.viewItem.data.trim().length)return;s=nr(s,n)}i.consume(t.viewItem);const r=n.createText(t.viewItem.data);n.insert(r,s),t.modelRange=n.createRange(s,s.getShiftedBy(r.offsetSize)),t.modelCursor=t.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:i}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=i}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:i}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=i}}),{priority:"lowest"}),Be().prototype.decorate.call(this,"init"),Be().prototype.decorate.call(this,"set"),Be().prototype.decorate.call(this,"get"),Be().prototype.decorate.call(this,"toView"),Be().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},or)}),{priority:"lowest"})}get(e={}){const{rootName:t="main",trim:o="empty"}=e;if(!this._checkIfRootsExists([t]))throw new fe("datacontroller-get-non-existent-root",this);const i=this.model.document.getRoot(t);return i.isAttached()||be("datacontroller-get-detached-root",this),"empty"!==o||this.model.hasContent(i,{ignoreWhitespaces:!0})?this.stringify(i,e):""}stringify(e,t={}){const o=this.toView(e,t);return this.processor.toData(o)}toView(e,t={}){const o=this.viewDocument,i=this._viewWriter;this.mapper.clearBindings();const n=us._createIn(e),s=new tn(o);this.mapper.bindElements(e,s);const r=e.is("documentFragment")?e.markers:function(e){const t=[],o=e.root.document;if(!o)return new Map;const i=us._createIn(e);for(const e of o.model.markers){const o=e.getRange(),n=o.isCollapsed,s=o.start.isEqual(i.start)||o.end.isEqual(i.end);if(n&&s)t.push([e.name,o]);else{const n=i.getIntersection(o);n&&t.push([e.name,n])}}return t.sort((([e,t],[o,i])=>{if("after"!==t.end.compareWith(i.start))return 1;if("before"!==t.start.compareWith(i.end))return-1;switch(t.start.compareWith(i.start)){case"before":return 1;case"after":return-1;default:switch(t.end.compareWith(i.end)){case"before":return 1;case"after":return-1;default:return o.localeCompare(e)}}})),new Map(t)}(e);return this.downcastDispatcher.convert(n,r,i,t),s}init(e){if(this.model.document.version)throw new fe("datacontroller-init-document-not-empty",this);let t={};if("string"==typeof e?t.main=e:t=e,!this._checkIfRootsExists(Object.keys(t)))throw new fe("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(e=>{for(const o of Object.keys(t)){const i=this.model.document.getRoot(o);e.insert(this.parse(t[o],i),i,0)}})),Promise.resolve()}set(e,t={}){let o={};if("string"==typeof e?o.main=e:o=e,!this._checkIfRootsExists(Object.keys(o)))throw new fe("datacontroller-set-non-existent-root",this);this.model.enqueueChange(t.batchType||{},(e=>{e.setSelection(null),e.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const t of Object.keys(o)){const i=this.model.document.getRoot(t);e.remove(e.createRangeIn(i)),e.insert(this.parse(o[t],i),i,0)}}))}parse(e,t="$root"){const o=this.processor.toView(e);return this.toModel(o,t)}toModel(e,t="$root"){return this.model.change((o=>this.upcastDispatcher.convert(e,o,t)))}addStyleProcessorRules(e){e(this.stylesProcessor)}registerRawContentMatcher(e){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(e),this.htmlProcessor.registerRawContentMatcher(e)}destroy(){this.stopListening()}_checkIfRootsExists(e){for(const t of e)if(!this.model.document.getRoot(t))return!1;return!0}}class Or{_helpers=new Map;_downcast;_upcast;constructor(e,t){this._downcast=Qt(e),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Qt(t),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(e,t){const o=this._downcast.includes(t);if(!this._upcast.includes(t)&&!o)throw new fe("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:e,dispatchers:[t],isDowncast:o})}for(e){if(!this._helpers.has(e))throw new fe("conversion-for-unknown-group",this);return this._helpers.get(e)}elementToElement(e){this.for("downcast").elementToElement(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").elementToElement({model:t,view:o,converterPriority:e.converterPriority})}attributeToElement(e){this.for("downcast").attributeToElement(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").elementToAttribute({view:o,model:t,converterPriority:e.converterPriority})}attributeToAttribute(e){this.for("downcast").attributeToAttribute(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").attributeToAttribute({view:o,model:t})}_createConversionHelpers({name:e,dispatchers:t,isDowncast:o}){if(this._helpers.has(e))throw new fe("conversion-group-exists",this);const i=o?new Bs(t):new sr(t);this._helpers.set(e,i)}}function*Vr(e){if(e.model.values)for(const t of e.model.values){const o={key:e.model.key,value:t},i=e.view[t],n=e.upcastAlso?e.upcastAlso[t]:void 0;yield*Dr(o,i,n)}else yield*Dr(e.model,e.view,e.upcastAlso)}function*Dr(e,t,o){if(yield{model:e,view:t},o)for(const t of Qt(o))yield{model:e,view:t}}class Fr{baseVersion;isDocumentOperation;batch;constructor(e){this.baseVersion=e,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const e=Object.assign({},this);return e.__className=this.constructor.className,delete e.batch,delete e.isDocumentOperation,e}static get className(){return"Operation"}static fromJSON(e,t){return new this(e.baseVersion)}}function Mr(e,t){const o=Lr(t),i=o.reduce(((e,t)=>e+t.offsetSize),0),n=e.parent;jr(e);const s=e.index;return n._insertChild(s,o),zr(n,s+o.length),zr(n,s),new us(e,e.getShiftedBy(i))}function Nr(e){if(!e.isFlat)throw new fe("operation-utils-remove-range-not-flat",this);const t=e.start.parent;jr(e.start),jr(e.end);const o=t._removeChildren(e.start.index,e.end.index-e.start.index);return zr(t,e.start.index),o}function Br(e,t){if(!e.isFlat)throw new fe("operation-utils-move-range-not-flat",this);const o=Nr(e);return Mr(t=t._getTransformedByDeletion(e.start,e.end.offset-e.start.offset),o)}function Lr(e){const t=[];!function e(o){if("string"==typeof o)t.push(new Is(o));else if(o instanceof os)t.push(new Is(o.data,o.getAttributes()));else if(o instanceof ys)t.push(o);else if(Ue(o))for(const t of o)e(t)}(e);for(let e=1;ee.maxOffset)throw new fe("move-operation-nodes-do-not-exist",this);if(e===t&&o=o&&this.targetPosition.path[e]e._clone(!0)))),t=new Hr(this.position,e,this.baseVersion);return t.shouldReceiveAttributes=this.shouldReceiveAttributes,t}getReversed(){const e=this.position.root.document.graveyard,t=new ss(e,[0]);return new qr(this.position,this.nodes.maxOffset,t,this.baseVersion+1)}_validate(){const e=this.position.parent;if(!e||e.maxOffsete._clone(!0)))),Mr(this.position,e)}toJSON(){const e=super.toJSON();return e.position=this.position.toJSON(),e.nodes=this.nodes.toJSON(),e}static get className(){return"InsertOperation"}static fromJSON(e,t){const o=[];for(const t of e.nodes)t.name?o.push(Ms.fromJSON(t)):o.push(Is.fromJSON(t));const i=new Hr(ss.fromJSON(e.position,t),o,e.baseVersion);return i.shouldReceiveAttributes=e.shouldReceiveAttributes,i}}class Wr extends Fr{splitPosition;howMany;insertionPosition;graveyardPosition;constructor(e,t,o,i,n){super(n),this.splitPosition=e.clone(),this.splitPosition.stickiness="toNext",this.howMany=t,this.insertionPosition=o,this.graveyardPosition=i?i.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const e=this.insertionPosition.path.slice();return e.push(0),new ss(this.insertionPosition.root,e)}get movedRange(){const e=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new us(this.splitPosition,e)}get affectedSelectable(){const e=[us._createFromPositionAndShift(this.splitPosition,0),us._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&e.push(us._createFromPositionAndShift(this.graveyardPosition,0)),e}clone(){return new Wr(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const e=this.splitPosition.root.document.graveyard,t=new ss(e,[0]);return new Ur(this.moveTargetPosition,this.howMany,this.splitPosition,t,this.baseVersion+1)}_validate(){const e=this.splitPosition.parent,t=this.splitPosition.offset;if(!e||e.maxOffset1&&e.sourcePosition.isEqual(t.deletionPosition)?this._setRelation(e,t,"firstToMoveMerged"):e.howMany>1&&e.sourcePosition.getShiftedBy(e.howMany-1).isEqual(t.deletionPosition)&&this._setRelation(e,t,"lastToMoveMerged"):t instanceof qr&&(e.targetPosition.isEqual(t.sourcePosition)||e.targetPosition.isBefore(t.sourcePosition)?this._setRelation(e,t,"insertBefore"):this._setRelation(e,t,"insertAfter"));else if(e instanceof Wr){if(t instanceof Ur)e.splitPosition.isBefore(t.sourcePosition)&&this._setRelation(e,t,"splitBefore");else if(t instanceof qr)if(e.splitPosition.isEqual(t.sourcePosition)||e.splitPosition.isBefore(t.sourcePosition))this._setRelation(e,t,"splitBefore");else{const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.splitPosition)){const i=o.end.offset-e.splitPosition.offset,n=e.splitPosition.offset-o.start.offset;this._setRelation(e,t,{howMany:i,offset:n})}}}else if(e instanceof Ur)t instanceof Ur?(e.targetPosition.isEqual(t.sourcePosition)||this._setRelation(e,t,"mergeTargetNotMoved"),e.sourcePosition.isEqual(t.targetPosition)&&this._setRelation(e,t,"mergeSourceNotMoved"),e.sourcePosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeSameElement")):t instanceof Wr?e.sourcePosition.isEqual(t.splitPosition)&&this._setRelation(e,t,"splitAtSource"):t instanceof qr&&t.howMany>0&&(e.sourcePosition.isEqual(t.sourcePosition.getShiftedBy(t.howMany))&&this._setRelation(e,t,"mergeSourceAffected"),e.targetPosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeTargetWasBefore"));else if(e instanceof Kr){const o=e.newRange;if(!o)return;if(t instanceof Ur){const i=o.start.isEqual(t.targetPosition),n=o.start.isEqual(t.deletionPosition),s=o.end.isEqual(t.deletionPosition),r=o.end.isEqual(t.sourcePosition);(i||n||s||r)&&this._setRelation(e,t,{wasInLeftElement:i,wasStartBeforeMergedElement:n,wasEndBeforeMergedElement:s,wasInRightElement:r})}}}getContext(e,t,o){return{aIsStrong:o,aWasUndone:this._wasUndone(e),bWasUndone:this._wasUndone(t),abRelation:this._useRelations?this._getRelation(e,t):null,baRelation:this._useRelations?this._getRelation(t,e):null,forceWeakRemove:this._forceWeakRemove}}_wasUndone(e){const t=this.originalOperations.get(e);return t.wasUndone||this._history.isUndoneOperation(t)}_getRelation(e,t){const o=this.originalOperations.get(t),i=this._history.getUndoneOperation(o);if(!i)return null;const n=this.originalOperations.get(e),s=this._relations.get(n);return s&&s.get(i)||null}_setRelation(e,t,o){const i=this.originalOperations.get(e),n=this.originalOperations.get(t);let s=this._relations.get(i);s||(s=new Map,this._relations.set(i,s)),s.set(n,o)}}function aa(e,t){for(const o of e)o.baseVersion=t++}function la(e,t){for(let o=0;o{if(e.key===t.key&&e.range.start.hasSameParentAs(t.range.start)){const i=e.range.getDifference(t.range).map((t=>new Gr(t,e.key,e.oldValue,e.newValue,0))),n=e.range.getIntersection(t.range);return n&&o.aIsStrong&&i.push(new Gr(n,t.key,t.newValue,e.newValue,0)),0==i.length?[new Jr(0)]:i}return[e]})),oa(Gr,Hr,((e,t)=>{if(e.range.start.hasSameParentAs(t.position)&&e.range.containsPosition(t.position)){const o=e.range._getTransformedByInsertion(t.position,t.howMany,!t.shouldReceiveAttributes).map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)));if(t.shouldReceiveAttributes){const i=da(t,e.key,e.oldValue);i&&o.unshift(i)}return o}return e.range=e.range._getTransformedByInsertion(t.position,t.howMany,!1)[0],[e]})),oa(Gr,Ur,((e,t)=>{const o=[];e.range.start.hasSameParentAs(t.deletionPosition)&&(e.range.containsPosition(t.deletionPosition)||e.range.start.isEqual(t.deletionPosition))&&o.push(us._createFromPositionAndShift(t.graveyardPosition,1));const i=e.range._getTransformedByMergeOperation(t);return i.isCollapsed||o.push(i),o.map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),oa(Gr,qr,((e,t)=>{const o=function(e,t){const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);let i=null,n=[];o.containsRange(e,!0)?i=e:e.start.hasSameParentAs(o.start)?(n=e.getDifference(o),i=e.getIntersection(o)):n=[e];const s=[];for(let e of n){e=e._getTransformedByDeletion(t.sourcePosition,t.howMany);const o=t.getMovedRangeStart(),i=e.start.hasSameParentAs(o),n=e._getTransformedByInsertion(o,t.howMany,i);s.push(...n)}i&&s.push(i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!1)[0]);return s}(e.range,t);return o.map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),oa(Gr,Wr,((e,t)=>{if(e.range.end.isEqual(t.insertionPosition))return t.graveyardPosition||e.range.end.offset++,[e];if(e.range.start.hasSameParentAs(t.splitPosition)&&e.range.containsPosition(t.splitPosition)){const o=e.clone();return o.range=new us(t.moveTargetPosition.clone(),e.range.end._getCombined(t.splitPosition,t.moveTargetPosition)),e.range.end=t.splitPosition.clone(),e.range.end.stickiness="toPrevious",[e,o]}return e.range=e.range._getTransformedBySplitOperation(t),[e]})),oa(Hr,Gr,((e,t)=>{const o=[e];if(e.shouldReceiveAttributes&&e.position.hasSameParentAs(t.range.start)&&t.range.containsPosition(e.position)){const i=da(e,t.key,t.newValue);i&&o.push(i)}return o})),oa(Hr,Hr,((e,t,o)=>(e.position.isEqual(t.position)&&o.aIsStrong||(e.position=e.position._getTransformedByInsertOperation(t)),[e]))),oa(Hr,qr,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),oa(Hr,Wr,((e,t)=>(e.position=e.position._getTransformedBySplitOperation(t),[e]))),oa(Hr,Ur,((e,t)=>(e.position=e.position._getTransformedByMergeOperation(t),[e]))),oa(Kr,Hr,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByInsertOperation(t)[0]),e.newRange&&(e.newRange=e.newRange._getTransformedByInsertOperation(t)[0]),[e]))),oa(Kr,Kr,((e,t,o)=>{if(e.name==t.name){if(!o.aIsStrong)return[new Jr(0)];e.oldRange=t.newRange?t.newRange.clone():null}return[e]})),oa(Kr,Ur,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByMergeOperation(t)),e.newRange&&(e.newRange=e.newRange._getTransformedByMergeOperation(t)),[e]))),oa(Kr,qr,((e,t)=>{const o=[e];if(e.oldRange&&(e.oldRange=us._createFromRanges(e.oldRange._getTransformedByMoveOperation(t))),e.newRange){const i=e.newRange._getTransformedByMoveOperation(t);e.newRange=i[0];for(let t=1;t{if(e.oldRange&&(e.oldRange=e.oldRange._getTransformedBySplitOperation(t)),e.newRange){if(o.abRelation){const i=e.newRange._getTransformedBySplitOperation(t);return e.newRange.start.isEqual(t.splitPosition)?o.abRelation.wasStartBeforeMergedElement?e.newRange.start=ss._createAt(t.insertionPosition):o.abRelation.wasInLeftElement?e.newRange.start=ss._createAt(e.newRange.start):e.newRange.start=ss._createAt(t.moveTargetPosition):e.newRange.start=i.start,e.newRange.end.isEqual(t.splitPosition)?e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasEndBeforeMergedElement?e.newRange.end=ss._createAt(t.insertionPosition):o.abRelation.wasInRightElement?e.newRange.end=ss._createAt(t.moveTargetPosition):e.newRange.end=ss._createAt(e.newRange.end):e.newRange.end=i.end,[e]}e.newRange=e.newRange._getTransformedBySplitOperation(t)}return[e]})),oa(Ur,Hr,((e,t)=>(e.sourcePosition.hasSameParentAs(t.position)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByInsertOperation(t),e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t),[e]))),oa(Ur,Ur,((e,t,o)=>{if(e.sourcePosition.isEqual(t.sourcePosition)&&e.targetPosition.isEqual(t.targetPosition)){if(o.bWasUndone){const o=t.graveyardPosition.path.slice();return o.push(0),e.sourcePosition=new ss(t.graveyardPosition.root,o),e.howMany=0,[e]}return[new Jr(0)]}if(e.sourcePosition.isEqual(t.sourcePosition)&&!e.targetPosition.isEqual(t.targetPosition)&&!o.bWasUndone&&"splitAtSource"!=o.abRelation){const i="$graveyard"==e.targetPosition.root.rootName,n="$graveyard"==t.targetPosition.root.rootName;if(n&&!i||!(i&&!n)&&o.aIsStrong){const o=t.targetPosition._getTransformedByMergeOperation(t),i=e.targetPosition._getTransformedByMergeOperation(t);return[new qr(o,e.howMany,i,0)]}return[new Jr(0)]}return e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByMergeOperation(t),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),e.graveyardPosition.isEqual(t.graveyardPosition)&&o.aIsStrong||(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),oa(Ur,qr,((e,t,o)=>{const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);return"remove"==t.type&&!o.bWasUndone&&e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition)?[new Jr(0)]:(t.sourcePosition.getShiftedBy(t.howMany).isEqual(e.sourcePosition)?e.sourcePosition.stickiness="toNone":t.targetPosition.isEqual(e.sourcePosition)&&"mergeSourceAffected"==o.abRelation?e.sourcePosition.stickiness="toNext":t.sourcePosition.isEqual(e.targetPosition)?(e.targetPosition.stickiness="toNone",e.howMany-=t.howMany):t.targetPosition.isEqual(e.targetPosition)&&"mergeTargetWasBefore"==o.abRelation?(e.targetPosition.stickiness="toPrevious",e.howMany+=t.howMany):(e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition.hasSameParentAs(t.sourcePosition)&&(e.howMany-=t.howMany)),e.sourcePosition=e.sourcePosition._getTransformedByMoveOperation(t),e.targetPosition=e.targetPosition._getTransformedByMoveOperation(t),e.sourcePosition.stickiness="toPrevious",e.targetPosition.stickiness="toNext",e.graveyardPosition.isEqual(t.targetPosition)||(e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)),[e])})),oa(Ur,Wr,((e,t,o)=>{if(t.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByDeletion(t.graveyardPosition,1),e.deletionPosition.isEqual(t.graveyardPosition)&&(e.howMany=t.howMany)),e.targetPosition.isEqual(t.splitPosition)){if(t.graveyardPosition&&e.deletionPosition.isEqual(t.graveyardPosition)||"mergeTargetNotMoved"==o.abRelation)return e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),[e]}if(e.sourcePosition.isEqual(t.splitPosition)){if("mergeSourceNotMoved"==o.abRelation)return e.howMany=0,e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e];if("mergeSameElement"==o.abRelation||e.sourcePosition.offset>0)return e.sourcePosition=t.moveTargetPosition.clone(),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]}return e.sourcePosition.hasSameParentAs(t.splitPosition)&&(e.howMany=t.splitPosition.offset),e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]})),oa(qr,Hr,((e,t)=>{const o=us._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByInsertOperation(t,!1)[0];return e.sourcePosition=o.start,e.howMany=o.end.offset-o.start.offset,e.targetPosition.isEqual(t.position)||(e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t)),[e]})),oa(qr,qr,((e,t,o)=>{const i=us._createFromPositionAndShift(e.sourcePosition,e.howMany),n=us._createFromPositionAndShift(t.sourcePosition,t.howMany);let s,r=o.aIsStrong,a=!o.aIsStrong;if("insertBefore"==o.abRelation||"insertAfter"==o.baRelation?a=!0:"insertAfter"!=o.abRelation&&"insertBefore"!=o.baRelation||(a=!1),s=e.targetPosition.isEqual(t.targetPosition)&&a?e.targetPosition._getTransformedByDeletion(t.sourcePosition,t.howMany):e.targetPosition._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ua(e,t)&&ua(t,e))return[t.getReversed()];if(i.containsPosition(t.targetPosition)&&i.containsRange(n,!0))return i.start=i.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),i.end=i.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ha([i],s);if(n.containsPosition(e.targetPosition)&&n.containsRange(i,!0))return i.start=i.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),i.end=i.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),ha([i],s);const l=We(e.sourcePosition.getParentPath(),t.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return i.start=i.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),i.end=i.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ha([i],s);"remove"!=e.type||"remove"==t.type||o.aWasUndone||o.forceWeakRemove?"remove"==e.type||"remove"!=t.type||o.bWasUndone||o.forceWeakRemove||(r=!1):r=!0;const c=[],d=i.getDifference(n);for(const e of d){e.start=e.start._getTransformedByDeletion(t.sourcePosition,t.howMany),e.end=e.end._getTransformedByDeletion(t.sourcePosition,t.howMany);const o="same"==We(e.start.getParentPath(),t.getMovedRangeStart().getParentPath()),i=e._getTransformedByInsertion(t.getMovedRangeStart(),t.howMany,o);c.push(...i)}const u=i.getIntersection(n);return null!==u&&r&&(u.start=u.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),u.end=u.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),0===c.length?c.push(u):1==c.length?n.start.isBefore(i.start)||n.start.isEqual(i.start)?c.unshift(u):c.push(u):c.splice(1,0,u)),0===c.length?[new Jr(e.baseVersion)]:ha(c,s)})),oa(qr,Wr,((e,t,o)=>{let i=e.targetPosition.clone();if(e.targetPosition.isEqual(t.insertionPosition)&&t.graveyardPosition&&"moveTargetAfter"!=o.abRelation||(i=e.targetPosition._getTransformedBySplitOperation(t)),e.sourcePosition.isEqual(t.insertionPosition)&&"firstToMoveMerged"==o.abRelation)return e.howMany++,e.targetPosition=i,[e];const n=us._createFromPositionAndShift(e.sourcePosition,e.howMany);if(n.end.isEqual(t.insertionPosition))return t.graveyardPosition&&"lastToMoveMerged"!=o.abRelation||e.howMany++,e.targetPosition=i,[e];if(n.start.hasSameParentAs(t.splitPosition)&&n.containsPosition(t.splitPosition)){let e=new us(t.splitPosition,n.end);e=e._getTransformedBySplitOperation(t);return ha([new us(n.start,t.splitPosition),e],i)}e.targetPosition.isEqual(t.splitPosition)&&"insertAtSource"==o.abRelation&&(i=t.moveTargetPosition),e.targetPosition.isEqual(t.insertionPosition)&&"insertBetween"==o.abRelation&&(i=e.targetPosition);const s=[n._getTransformedBySplitOperation(t)];if(t.graveyardPosition){const i=n.start.isEqual(t.graveyardPosition)||n.containsPosition(t.graveyardPosition);e.howMany>1&&i&&!o.aWasUndone&&s.push(us._createFromPositionAndShift(t.insertionPosition,1))}return ha(s,i)})),oa(qr,Ur,((e,t,o)=>{const i=us._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition))if("remove"!=e.type||o.forceWeakRemove){if(1==e.howMany)return o.bWasUndone?(e.sourcePosition=t.graveyardPosition.clone(),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]):[new Jr(0)]}else if(!o.aWasUndone){const o=[];let i=t.graveyardPosition.clone(),n=t.targetPosition._getTransformedByMergeOperation(t);const s=e.targetPosition.getTransformedByOperation(t);e.howMany>1&&(o.push(new qr(e.sourcePosition,e.howMany-1,s,0)),i=i._getTransformedByMove(e.sourcePosition,s,e.howMany-1),n=n._getTransformedByMove(e.sourcePosition,s,e.howMany-1));const r=t.deletionPosition._getCombined(e.sourcePosition,s),a=new qr(i,1,r,0),l=a.getMovedRangeStart().path.slice();l.push(0);const c=new ss(a.targetPosition.root,l);n=n._getTransformedByMove(i,r,1);const d=new qr(n,t.howMany,c,0);return o.push(a),o.push(d),o}const n=us._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByMergeOperation(t);return e.sourcePosition=n.start,e.howMany=n.end.offset-n.start.offset,e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]})),oa(Zr,Hr,((e,t)=>(e.position=e.position._getTransformedByInsertOperation(t),[e]))),oa(Zr,Ur,((e,t)=>e.position.isEqual(t.deletionPosition)?(e.position=t.graveyardPosition.clone(),e.position.stickiness="toNext",[e]):(e.position=e.position._getTransformedByMergeOperation(t),[e]))),oa(Zr,qr,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),oa(Zr,Zr,((e,t,o)=>{if(e.position.isEqual(t.position)){if(!o.aIsStrong)return[new Jr(0)];e.oldName=t.newName}return[e]})),oa(Zr,Wr,((e,t)=>{if("same"==We(e.position.path,t.splitPosition.getParentPath())&&!t.graveyardPosition){const t=new Zr(e.position.getShiftedBy(1),e.oldName,e.newName,0);return[e,t]}return e.position=e.position._getTransformedBySplitOperation(t),[e]})),oa(Qr,Qr,((e,t,o)=>{if(e.root===t.root&&e.key===t.key){if(!o.aIsStrong)return[new Jr(0)];e.oldValue=t.newValue}return[e]})),oa(Yr,Yr,((e,t)=>e.rootName===t.rootName&&e.isAdd===t.isAdd?[new Jr(0)]:[e])),oa(Wr,Hr,((e,t)=>(e.splitPosition.hasSameParentAs(t.position)&&e.splitPosition.offset{if(!e.graveyardPosition&&!o.bWasUndone&&e.splitPosition.hasSameParentAs(t.sourcePosition)){const o=t.graveyardPosition.path.slice();o.push(0);const i=new ss(t.graveyardPosition.root,o),n=Wr.getInsertionPosition(new ss(t.graveyardPosition.root,o)),s=new Wr(i,0,n,null,0);return e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),e.graveyardPosition=s.insertionPosition.clone(),e.graveyardPosition.stickiness="toNext",[s,e]}return e.splitPosition.hasSameParentAs(t.deletionPosition)&&!e.splitPosition.isAfter(t.deletionPosition)&&e.howMany--,e.splitPosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),oa(Wr,qr,((e,t,o)=>{const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.graveyardPosition){const n=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);if(!o.bWasUndone&&n){const o=e.splitPosition._getTransformedByMoveOperation(t),i=e.graveyardPosition._getTransformedByMoveOperation(t),n=i.path.slice();n.push(0);const s=new ss(i.root,n);return[new qr(o,e.howMany,s,0)]}e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)}const n=e.splitPosition.isEqual(t.targetPosition);if(n&&("insertAtSource"==o.baRelation||"splitBefore"==o.abRelation))return e.howMany+=t.howMany,e.splitPosition=e.splitPosition._getTransformedByDeletion(t.sourcePosition,t.howMany),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),[e];if(n&&o.abRelation&&o.abRelation.howMany){const{howMany:t,offset:i}=o.abRelation;return e.howMany+=t,e.splitPosition=e.splitPosition.getShiftedBy(i),[e]}if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.splitPosition)){const o=t.howMany-(e.splitPosition.offset-t.sourcePosition.offset);return e.howMany-=o,e.splitPosition.hasSameParentAs(t.targetPosition)&&e.splitPosition.offset{if(e.splitPosition.isEqual(t.splitPosition)){if(!e.graveyardPosition&&!t.graveyardPosition)return[new Jr(0)];if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition))return[new Jr(0)];if("splitBefore"==o.abRelation)return e.howMany=0,e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t),[e]}if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition)){const i="$graveyard"==e.splitPosition.root.rootName,n="$graveyard"==t.splitPosition.root.rootName;if(n&&!i||!(i&&!n)&&o.aIsStrong){const o=[];return t.howMany&&o.push(new qr(t.moveTargetPosition,t.howMany,t.splitPosition,0)),e.howMany&&o.push(new qr(e.splitPosition,e.howMany,e.moveTargetPosition,0)),o}return[new Jr(0)]}if(e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t)),e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==o.abRelation)return e.howMany++,[e];if(t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==o.baRelation){const o=t.insertionPosition.path.slice();o.push(0);const i=new ss(t.insertionPosition.root,o);return[e,new qr(e.insertionPosition,1,i,0)]}return e.splitPosition.hasSameParentAs(t.splitPosition)&&e.splitPosition.offset{const o=t[0];o.isDocumentOperation&&pa.call(this,o)}),{priority:"low"})}function pa(e){const t=this.getTransformedByOperation(e);if(!this.isEqual(t)){const e=this.toPosition();this.path=t.path,this.root=t.root,this.fire("change",e)}}ma.prototype.is=function(e){return"livePosition"===e||"model:livePosition"===e||"position"==e||"model:position"===e};class fa{operations;isUndoable;isLocal;isUndo;isTyping;constructor(e={}){"string"==typeof e&&(e="transparent"===e?{isUndoable:!1}:{},be("batch-constructor-deprecated-string-type"));const{isUndoable:t=!0,isLocal:o=!0,isUndo:i=!1,isTyping:n=!1}=e;this.operations=[],this.isUndoable=t,this.isLocal=o,this.isUndo=i,this.isTyping=n}get baseVersion(){for(const e of this.operations)if(null!==e.baseVersion)return e.baseVersion;return null}addOperation(e){return e.isDocumentOperation&&(e.batch=this,this.operations.push(e)),e}}class ba{static _statesPriority=[void 0,"refresh","rename","move"];_markerCollection;_changesInElement=new Map;_elementsSnapshots=new Map;_elementChildrenSnapshots=new Map;_elementState=new Map;_changedMarkers=new Map;_changedRoots=new Map;_changeCount=0;_cachedChanges=null;_cachedChangesWithGraveyard=null;_refreshedItems=new Set;constructor(e){this._markerCollection=e}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size&&0==this._changedRoots.size}bufferOperation(e){const t=e;switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),o=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),o||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of i.getItems({shallow:!0}))this._setElementState(e,"move");break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=us._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._setElementState(t.position.nodeAfter,"rename");break}case"split":{const e=t.splitPosition.parent;if(!this._isInInsertedElement(e)){this._markRemove(e,t.splitPosition.offset,t.howMany);const o=us._createFromPositionAndShift(t.splitPosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&(this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1),this._setElementState(t.graveyardPosition.nodeAfter,"move"));break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const o=t.graveyardPosition.parent;this._markInsert(o,t.graveyardPosition.offset,1),this._setElementState(e,"move");const i=t.targetPosition.parent;if(!this._isInInsertedElement(i)){this._markInsert(i,t.targetPosition.offset,e.maxOffset);const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}break}case"detachRoot":case"addRoot":{const e=t.affectedSelectable;if(!e._isLoaded)return;if(e.isAttached()==t.isAdd)return;this._bufferRootStateChange(t.rootName,t.isAdd);break}case"addRootAttribute":case"removeRootAttribute":case"changeRootAttribute":{if(!t.root._isLoaded)return;const e=t.root.rootName;this._bufferRootAttributeChange(e,t.key,t.oldValue,t.newValue);break}}this._cachedChanges=null}bufferMarkerChange(e,t,o){t.range&&t.range.root.is("rootElement")&&!t.range.root._isLoaded&&(t.range=null),o.range&&o.range.root.is("rootElement")&&!o.range.root._isLoaded&&(o.range=null);let i=this._changedMarkers.get(e);i?i.newMarkerData=o:(i={newMarkerData:o,oldMarkerData:t},this._changedMarkers.set(e,i)),null==i.oldMarkerData.range&&null==o.range&&this._changedMarkers.delete(e)}getMarkersToRemove(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.oldMarkerData.range&&e.push({name:t,range:o.oldMarkerData.range});return e}getMarkersToAdd(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.newMarkerData.range&&e.push({name:t,range:o.newMarkerData.range});return e}getChangedMarkers(){return Array.from(this._changedMarkers).map((([e,t])=>({name:e,data:{oldRange:t.oldMarkerData.range,newRange:t.newMarkerData.range}})))}hasDataChanges(){if(this.getChanges().length)return!0;if(this._changedRoots.size>0)return!0;for(const{newMarkerData:e,oldMarkerData:t}of this._changedMarkers.values()){if(e.affectsData!==t.affectsData)return!0;if(e.affectsData){const o=e.range&&!t.range,i=!e.range&&t.range,n=e.range&&t.range&&!e.range.isEqual(t.range);if(o||i||n)return!0}}return!1}getChanges(e={}){if(this._cachedChanges)return e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let t=[];for(const e of this._changesInElement.keys()){const o=this._changesInElement.get(e).sort(((e,t)=>e.offset===t.offset?e.type!=t.type?"remove"==e.type?-1:1:0:e.offsete.position.root!=t.position.root?e.position.root.rootNamee));for(const e of t)delete e.changeCount,"attribute"==e.type&&(delete e.position,delete e.length);return this._changeCount=0,this._cachedChangesWithGraveyard=t,this._cachedChanges=t.filter(ka),e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getChangedRoots(){return Array.from(this._changedRoots.values()).map((e=>{const t={...e};return void 0!==t.state&&delete t.attributes,t}))}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementChildrenSnapshots.clear(),this._elementsSnapshots.clear(),this._elementState.clear(),this._changedMarkers.clear(),this._changedRoots.clear(),this._refreshedItems.clear(),this._cachedChanges=null}_refreshItem(e){if(this._isInInsertedElement(e.parent))return;this._markRemove(e.parent,e.startOffset,e.offsetSize),this._markInsert(e.parent,e.startOffset,e.offsetSize),this._refreshedItems.add(e),this._setElementState(e,"refresh");const t=us._createOn(e);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}this._cachedChanges=null}_bufferRootLoad(e){if(e.isAttached()){this._bufferRootStateChange(e.rootName,!0),this._markInsert(e,0,e.maxOffset);for(const t of e.getAttributeKeys())this._bufferRootAttributeChange(e.rootName,t,null,e.getAttribute(t));for(const t of this._markerCollection)if(t.getRange().root==e){const e=t.getData();this.bufferMarkerChange(t.name,{...e,range:null},e)}}}_bufferRootStateChange(e,t){if(!this._changedRoots.has(e))return void this._changedRoots.set(e,{name:e,state:t?"attached":"detached"});const o=this._changedRoots.get(e);void 0!==o.state?(delete o.state,void 0===o.attributes&&this._changedRoots.delete(e)):o.state=t?"attached":"detached"}_bufferRootAttributeChange(e,t,o,i){const n=this._changedRoots.get(e)||{name:e},s=n.attributes||{};if(s[t]){const e=s[t];i===e.oldValue?delete s[t]:e.newValue=i}else s[t]={oldValue:o,newValue:i};0===Object.entries(s).length?(delete n.attributes,void 0===n.state&&this._changedRoots.delete(e)):(n.attributes=s,this._changedRoots.set(e,n))}_markInsert(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const i={type:"insert",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,i)}_markRemove(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const i={type:"remove",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,i),this._removeAllNestedChanges(e,t,o)}_markAttribute(e){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const t={type:"attribute",offset:e.startOffset,howMany:e.offsetSize,count:this._changeCount++};this._markChange(e.parent,t)}_markChange(e,t){this._makeSnapshots(e);const o=this._getChangesForElement(e);this._handleChange(t,o),o.push(t);for(let e=0;eo&&this._elementState.set(e,t)}_getDiffActionForNode(e,t){if(!e.is("element"))return t;if(!this._elementsSnapshots.has(e))return t;const o=this._elementState.get(e);return o&&"move"!=o?o:t}_getChangesForElement(e){let t;return this._changesInElement.has(e)?t=this._changesInElement.get(e):(t=[],this._changesInElement.set(e,t)),t}_makeSnapshots(e){if(this._elementChildrenSnapshots.has(e))return;const t=ya(e.getChildren());this._elementChildrenSnapshots.set(e,t);for(const e of t)this._elementsSnapshots.set(e.node,e)}_handleChange(e,t){e.nodesToHandle=e.howMany;for(const o of t){const i=e.offset+e.howMany,n=o.offset+o.howMany;if("insert"==e.type&&("insert"==o.type&&(e.offset<=o.offset?o.offset+=e.howMany:e.offseto.offset){if(i>n){const e={type:"attribute",offset:n,howMany:i-n,count:this._changeCount++};this._handleChange(e,t),t.push(e)}e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}else e.offset>=o.offset&&e.offsetn?(e.nodesToHandle=i-n,e.offset=n):e.nodesToHandle=0);if("remove"==o.type&&e.offseto.offset){const n={type:"attribute",offset:o.offset,howMany:i-o.offset,count:this._changeCount++};this._handleChange(n,t),t.push(n),e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}"attribute"==o.type&&(e.offset>=o.offset&&i<=n?(e.nodesToHandle=0,e.howMany=0,e.offset=0):e.offset<=o.offset&&i>=n&&(o.howMany=0))}}e.howMany=e.nodesToHandle,delete e.nodesToHandle}_getInsertDiff(e,t,o,i,n){const s={type:"insert",position:ss._createAt(e,t),name:i.name,attributes:new Map(i.attributes),length:1,changeCount:this._changeCount++,action:o};return"insert"!=o&&n&&(s.before={name:n.name,attributes:new Map(n.attributes)}),s}_getRemoveDiff(e,t,o,i){return{type:"remove",action:o,position:ss._createAt(e,t),name:i.name,attributes:new Map(i.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(e,t,o){const i=[];o=new Map(o);for(const[n,s]of t){const t=o.has(n)?o.get(n):null;t!==s&&i.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:n,attributeOldValue:s,attributeNewValue:t,changeCount:this._changeCount++}),o.delete(n)}for(const[t,n]of o)i.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:t,attributeOldValue:null,attributeNewValue:n,changeCount:this._changeCount++});return i}_isInInsertedElement(e){const t=e.parent;if(!t)return!1;const o=this._changesInElement.get(t),i=e.startOffset;if(o)for(const e of o)if("insert"==e.type&&i>=e.offset&&ii){for(let t=0;t1500)for(let t=0;tthis._version+1&&this._gaps.set(this._version,e),this._version=e}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(e){if(e.baseVersion!==this.version)throw new fe("model-document-history-addoperation-incorrect-version",this,{operation:e,historyVersion:this.version});this._operations.push(e),this._version++,this._baseVersionToOperationIndex.set(e.baseVersion,this._operations.length-1)}getOperations(e,t=this.version){if(!this._operations.length)return[];const o=this._operations[0];void 0===e&&(e=o.baseVersion);let i=t-1;for(const[t,o]of this._gaps)e>t&&et&&ithis.lastOperation.baseVersion)return[];let n=this._baseVersionToOperationIndex.get(e);void 0===n&&(n=0);let s=this._baseVersionToOperationIndex.get(i);return void 0===s&&(s=this._operations.length-1),this._operations.slice(n,s+1)}getOperation(e){const t=this._baseVersionToOperationIndex.get(e);if(void 0!==t)return this._operations[t]}setOperationAsUndone(e,t){this._undoPairs.set(t,e),this._undoneOperations.add(e)}isUndoingOperation(e){return this._undoPairs.has(e)}isUndoneOperation(e){return this._undoneOperations.has(e)}getUndoneOperation(e){return this._undoPairs.get(e)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class Ca extends Ms{rootName;_document;_isAttached=!0;_isLoaded=!0;constructor(e,t,o="main"){super(t),this._document=e,this.rootName=o}get document(){return this._document}isAttached(){return this._isAttached}toJSON(){return this.rootName}}Ca.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e):"rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e||"node"===e||"model:node"===e};const Aa="$graveyard";class xa extends(xe()){model;history;selection;roots;differ;isReadOnly;_postFixers;_hasSelectionChangedFromTheLastChangeBlock;constructor(e){super(),this.model=e,this.history=new va,this.selection=new Os(this),this.roots=new eo({idProperty:"rootName"}),this.differ=new ba(e.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",Aa),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.differ.bufferOperation(o)}),{priority:"high"}),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.history.addOperation(o)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(e.markers,"update",((e,t,o,i,n)=>{const s={...t.getData(),range:i};this.differ.bufferMarkerChange(t.name,n,s),null===o&&t.on("change",((e,o)=>{const i=t.getData();this.differ.bufferMarkerChange(t.name,{...i,range:o},i)}))})),this.registerPostFixer((e=>{let t=!1;for(const o of this.roots)o.isAttached()||o.isEmpty||(e.remove(e.createRangeIn(o)),t=!0);for(const o of this.model.markers)o.getRange().root.isAttached()||(e.removeMarker(o),t=!0);return t}))}get version(){return this.history.version}set version(e){this.history.version=e}get graveyard(){return this.getRoot(Aa)}createRoot(e="$root",t="main"){if(this.roots.get(t))throw new fe("model-document-createroot-name-exists",this,{name:t});const o=new Ca(this,e,t);return this.roots.add(o),o}destroy(){this.selection.destroy(),this.stopListening()}getRoot(e="main"){return this.roots.get(e)}getRootNames(e=!1){return this.getRoots(e).map((e=>e.rootName))}getRoots(e=!1){return this.roots.filter((t=>t!=this.graveyard&&(e||t.isAttached())&&t._isLoaded))}registerPostFixer(e){this._postFixers.add(e)}toJSON(){const e=Go(this);return e.selection="[engine.model.DocumentSelection]",e.model="[engine.model.Model]",e}_handleChangeBlock(e){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(e),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",e.batch):this.fire("change",e.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){const e=this.getRoots();return e.length?e[0]:this.graveyard}_getDefaultRange(){const e=this._getDefaultRoot(),t=this.model,o=t.schema,i=t.createPositionFromPath(e,[0]);return o.getNearestSelectionRange(i)||t.createRange(i)}_validateSelectionRange(e){return e.start.isValid()&&e.end.isValid()&&Ea(e.start)&&Ea(e.end)}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(this.selection.refresh(),t=o(e),t)break}while(t)}}function Ea(e){const t=e.textNode;if(t){const o=t.data,i=e.offset-t.startOffset;return!ho(o,i)&&!mo(o,i)}return!0}class Ta extends(xe()){_markers=new Map;[Symbol.iterator](){return this._markers.values()}has(e){const t=e instanceof Pa?e.name:e;return this._markers.has(t)}get(e){return this._markers.get(e)||null}_set(e,t,o=!1,i=!1){const n=e instanceof Pa?e.name:e;if(n.includes(","))throw new fe("markercollection-incorrect-marker-name",this);const s=this._markers.get(n);if(s){const e=s.getData(),r=s.getRange();let a=!1;return r.isEqual(t)||(s._attachLiveRange(Ts.fromRange(t)),a=!0),o!=s.managedUsingOperations&&(s._managedUsingOperations=o,a=!0),"boolean"==typeof i&&i!=s.affectsData&&(s._affectsData=i,a=!0),a&&this.fire(`update:${n}`,s,r,t,e),s}const r=Ts.fromRange(t),a=new Pa(n,r,o,i);return this._markers.set(n,a),this.fire(`update:${n}`,a,null,t,{...a.getData(),range:null}),a}_remove(e){const t=e instanceof Pa?e.name:e,o=this._markers.get(t);return!!o&&(this._markers.delete(t),this.fire(`update:${t}`,o,o.getRange(),null,o.getData()),this._destroyMarker(o),!0)}_refresh(e){const t=e instanceof Pa?e.name:e,o=this._markers.get(t);if(!o)throw new fe("markercollection-refresh-marker-not-exists",this);const i=o.getRange();this.fire(`update:${t}`,o,i,i,o.getData())}*getMarkersAtPosition(e){for(const t of this)t.getRange().containsPosition(e)&&(yield t)}*getMarkersIntersectingRange(e){for(const t of this)null!==t.getRange().getIntersection(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._detachLiveRange()}}class Pa extends(xe(ts)){name;_managedUsingOperations;_affectsData;_liveRange;constructor(e,t,o,i){super(),this.name=e,this._liveRange=this._attachLiveRange(t),this._managedUsingOperations=o,this._affectsData=i}get managedUsingOperations(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.toRange()}toJSON(){return{name:this.name,range:this._liveRange?.toJSON(),usingOperations:this._managedUsingOperations,affectsData:this._affectsData}}_attachLiveRange(e){return this._liveRange&&this._detachLiveRange(),e.delegate("change:range").to(this),e.delegate("change:content").to(this),this._liveRange=e,e}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Pa.prototype.is=function(e){return"marker"===e||"model:marker"===e};class Sa extends Fr{sourcePosition;howMany;constructor(e,t){super(null),this.sourcePosition=e.clone(),this.howMany=t}get type(){return"detach"}get affectedSelectable(){return null}toJSON(){const e=super.toJSON();return e.sourcePosition=this.sourcePosition.toJSON(),e}_validate(){if(this.sourcePosition.root.document)throw new fe("detach-operation-on-document-node",this)}_execute(){Nr(us._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class Ia extends ts{markers=new Map;_children=new Fs;constructor(e){super(),e&&this._insertChild(0,e)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get nextSibling(){return null}get previousSibling(){return null}get root(){return this}get parent(){return null}get document(){return null}isAttached(){return!1}getAncestors(){return[]}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}getPath(){return[]}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}offsetToIndex(e){return this._children.offsetToIndex(e)}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}static fromJSON(e){const t=[];for(const o of e)o.name?t.push(Ms.fromJSON(o)):t.push(Is.fromJSON(o));return new Ia(t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Is(e)];Ue(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Is(e):e instanceof os?new Is(e.data,e.getAttributes()):e))}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}}Ia.prototype.is=function(e){return"documentFragment"===e||"model:documentFragment"===e};class Ra{model;batch;constructor(e,t){this.model=e,this.batch=t}createText(e,t){return new Is(e,t)}createElement(e,t){return new Ms(e,t)}createDocumentFragment(){return new Ia}cloneElement(e,t=!0){return e._clone(t)}insert(e,t,o=0){if(this._assertWriterUsedCorrectly(),e instanceof Is&&""==e.data)return;const i=ss._createAt(t,o);if(e.parent){if(Ma(e.root,i.root))return void this.move(us._createOn(e),i);if(e.root.document)throw new fe("model-writer-insert-forbidden-move",this);this.remove(e)}const n=i.root.document?i.root.document.version:null,s=e instanceof Ia?e._removeChildren(0,e.childCount):e,r=new Hr(i,s,n);if(e instanceof Is&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),e instanceof Ia)for(const[t,o]of e.markers){const e=ss._createAt(o.root,0),n={range:new us(o.start._getCombined(e,i),o.end._getCombined(e,i)),usingOperation:!0,affectsData:!0};this.model.markers.has(t)?this.updateMarker(t,n):this.addMarker(t,n)}}insertText(e,t,o,i){t instanceof Ia||t instanceof Ms||t instanceof ss?this.insert(this.createText(e),t,o):this.insert(this.createText(e,t),o,i)}insertElement(e,t,o,i){t instanceof Ia||t instanceof Ms||t instanceof ss?this.insert(this.createElement(e),t,o):this.insert(this.createElement(e,t),o,i)}append(e,t){this.insert(e,t,"end")}appendText(e,t,o){t instanceof Ia||t instanceof Ms?this.insert(this.createText(e),t,"end"):this.insert(this.createText(e,t),o,"end")}appendElement(e,t,o){t instanceof Ia||t instanceof Ms?this.insert(this.createElement(e),t,"end"):this.insert(this.createElement(e,t),o,"end")}setAttribute(e,t,o){if(this._assertWriterUsedCorrectly(),o instanceof us){const i=o.getMinimalFlatRanges();for(const o of i)Oa(this,e,t,o)}else Va(this,e,t,o)}setAttributes(e,t){for(const[o,i]of ao(e))this.setAttribute(o,i,t)}removeAttribute(e,t){if(this._assertWriterUsedCorrectly(),t instanceof us){const o=t.getMinimalFlatRanges();for(const t of o)Oa(this,e,null,t)}else Va(this,e,null,t)}clearAttributes(e){this._assertWriterUsedCorrectly();const t=e=>{for(const t of e.getAttributeKeys())this.removeAttribute(t,e)};if(e instanceof us)for(const o of e.getItems())t(o);else t(e)}move(e,t,o){if(this._assertWriterUsedCorrectly(),!(e instanceof us))throw new fe("writer-move-invalid-range",this);if(!e.isFlat)throw new fe("writer-move-range-not-flat",this);const i=ss._createAt(t,o);if(i.isEqual(e.start))return;if(this._addOperationForAffectedMarkers("move",e),!Ma(e.root,i.root))throw new fe("writer-move-different-document",this);const n=e.root.document?e.root.document.version:null,s=new qr(e.start,e.end.offset-e.start.offset,i,n);this.batch.addOperation(s),this.model.applyOperation(s)}remove(e){this._assertWriterUsedCorrectly();const t=(e instanceof us?e:us._createOn(e)).getMinimalFlatRanges().reverse();for(const e of t)this._addOperationForAffectedMarkers("move",e),Fa(e.start,e.end.offset-e.start.offset,this.batch,this.model)}merge(e){this._assertWriterUsedCorrectly();const t=e.nodeBefore,o=e.nodeAfter;if(this._addOperationForAffectedMarkers("merge",e),!(t instanceof Ms))throw new fe("writer-merge-no-element-before",this);if(!(o instanceof Ms))throw new fe("writer-merge-no-element-after",this);e.root.document?this._merge(e):this._mergeDetached(e)}createPositionFromPath(e,t,o){return this.model.createPositionFromPath(e,t,o)}createPositionAt(e,t){return this.model.createPositionAt(e,t)}createPositionAfter(e){return this.model.createPositionAfter(e)}createPositionBefore(e){return this.model.createPositionBefore(e)}createRange(e,t){return this.model.createRange(e,t)}createRangeIn(e){return this.model.createRangeIn(e)}createRangeOn(e){return this.model.createRangeOn(e)}createSelection(...e){return this.model.createSelection(...e)}_mergeDetached(e){const t=e.nodeBefore,o=e.nodeAfter;this.move(us._createIn(o),ss._createAt(t,"end")),this.remove(o)}_merge(e){const t=ss._createAt(e.nodeBefore,"end"),o=ss._createAt(e.nodeAfter,0),i=e.root.document.graveyard,n=new ss(i,[0]),s=e.root.document.version,r=new Ur(o,e.nodeAfter.maxOffset,t,n,s);this.batch.addOperation(r),this.model.applyOperation(r)}rename(e,t){if(this._assertWriterUsedCorrectly(),!(e instanceof Ms))throw new fe("writer-rename-not-element-instance",this);const o=e.root.document?e.root.document.version:null,i=new Zr(ss._createBefore(e),e.name,t,o);this.batch.addOperation(i),this.model.applyOperation(i)}split(e,t){this._assertWriterUsedCorrectly();let o,i,n=e.parent;if(!n.parent)throw new fe("writer-split-element-no-parent",this);if(t||(t=n.parent),!e.parent.getAncestors({includeSelf:!0}).includes(t))throw new fe("writer-split-invalid-limit-element",this);do{const t=n.root.document?n.root.document.version:null,s=n.maxOffset-e.offset,r=Wr.getInsertionPosition(e),a=new Wr(e,s,r,null,t);this.batch.addOperation(a),this.model.applyOperation(a),o||i||(o=n,i=e.parent.nextSibling),n=(e=this.createPositionAfter(e.parent)).parent}while(n!==t);return{position:e,range:new us(ss._createAt(o,"end"),ss._createAt(i,0))}}wrap(e,t){if(this._assertWriterUsedCorrectly(),!e.isFlat)throw new fe("writer-wrap-range-not-flat",this);const o=t instanceof Ms?t:new Ms(t);if(o.childCount>0)throw new fe("writer-wrap-element-not-empty",this);if(null!==o.parent)throw new fe("writer-wrap-element-attached",this);this.insert(o,e.start);const i=new us(e.start.getShiftedBy(1),e.end.getShiftedBy(1));this.move(i,ss._createAt(o,0))}unwrap(e){if(this._assertWriterUsedCorrectly(),null===e.parent)throw new fe("writer-unwrap-element-no-parent",this);this.move(us._createIn(e),this.createPositionAfter(e)),this.remove(e)}addMarker(e,t){if(this._assertWriterUsedCorrectly(),!t||"boolean"!=typeof t.usingOperation)throw new fe("writer-addmarker-no-usingoperation",this);const o=t.usingOperation,i=t.range,n=void 0!==t.affectsData&&t.affectsData;if(this.model.markers.has(e))throw new fe("writer-addmarker-marker-exists",this);if(!i)throw new fe("writer-addmarker-no-range",this);return o?(Da(this,e,null,i,n),this.model.markers.get(e)):this.model.markers._set(e,i,o,n)}updateMarker(e,t){this._assertWriterUsedCorrectly();const o="string"==typeof e?e:e.name,i=this.model.markers.get(o);if(!i)throw new fe("writer-updatemarker-marker-not-exists",this);if(!t)return be("writer-updatemarker-reconvert-using-editingcontroller",{markerName:o}),void this.model.markers._refresh(i);const n="boolean"==typeof t.usingOperation,s="boolean"==typeof t.affectsData,r=s?t.affectsData:i.affectsData;if(!n&&!t.range&&!s)throw new fe("writer-updatemarker-wrong-options",this);const a=i.getRange(),l=t.range?t.range:a;n&&t.usingOperation!==i.managedUsingOperations?t.usingOperation?Da(this,o,null,l,r):(Da(this,o,a,null,r),this.model.markers._set(o,l,void 0,r)):i.managedUsingOperations?Da(this,o,a,l,r):this.model.markers._set(o,l,void 0,r)}removeMarker(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?e:e.name;if(!this.model.markers.has(t))throw new fe("writer-removemarker-no-marker",this);const o=this.model.markers.get(t);if(!o.managedUsingOperations)return void this.model.markers._remove(t);Da(this,t,o.getRange(),null,o.affectsData)}addRoot(e,t="$root"){this._assertWriterUsedCorrectly();const o=this.model.document.getRoot(e);if(o&&o.isAttached())throw new fe("writer-addroot-root-exists",this);const i=this.model.document,n=new Yr(e,t,!0,i,i.version);return this.batch.addOperation(n),this.model.applyOperation(n),this.model.document.getRoot(e)}detachRoot(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?this.model.document.getRoot(e):e;if(!t||!t.isAttached())throw new fe("writer-detachroot-no-root",this);for(const e of this.model.markers)e.getRange().root===t&&this.removeMarker(e);for(const e of t.getAttributeKeys())this.removeAttribute(e,t);this.remove(this.createRangeIn(t));const o=this.model.document,i=new Yr(t.rootName,t.name,!1,o,o.version);this.batch.addOperation(i),this.model.applyOperation(i)}setSelection(...e){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...e)}setSelectionFocus(e,t){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(e,t)}setSelectionAttribute(e,t){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._setSelectionAttribute(e,t);else for(const[t,o]of ao(e))this._setSelectionAttribute(t,o)}removeSelectionAttribute(e){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._removeSelectionAttribute(e);else for(const t of e)this._removeSelectionAttribute(t)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(e){this.model.document.selection._restoreGravity(e)}_setSelectionAttribute(e,t){const o=this.model.document.selection;if(o.isCollapsed&&o.anchor.parent.isEmpty){const i=Os._getStoreAttributeKey(e);this.setAttribute(i,t,o.anchor.parent)}o._setAttribute(e,t)}_removeSelectionAttribute(e){const t=this.model.document.selection;if(t.isCollapsed&&t.anchor.parent.isEmpty){const o=Os._getStoreAttributeKey(e);this.removeAttribute(o,t.anchor.parent)}t._removeAttribute(e)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new fe("writer-incorrect-use",this)}_addOperationForAffectedMarkers(e,t){for(const o of this.model.markers){if(!o.managedUsingOperations)continue;const i=o.getRange();let n=!1;if("move"===e){const e=t;n=e.containsPosition(i.start)||e.start.isEqual(i.start)||e.containsPosition(i.end)||e.end.isEqual(i.end)}else{const e=t,o=e.nodeBefore,s=e.nodeAfter,r=i.start.parent==o&&i.start.isAtEnd,a=i.end.parent==s&&0==i.end.offset,l=i.end.nodeAfter==s,c=i.start.nodeAfter==s;n=r||a||l||c}n&&this.updateMarker(o.name,{range:i})}}}function Oa(e,t,o,i){const n=e.model,s=n.document;let r,a,l,c=i.start;for(const e of i.getWalker({shallow:!0}))l=e.item.getAttribute(t),r&&a!=l&&(a!=o&&d(),c=r),r=e.nextPosition,a=l;function d(){const i=new us(c,r),l=i.root.document?s.version:null,d=new Gr(i,t,a,o,l);e.batch.addOperation(d),n.applyOperation(d)}r instanceof ss&&r!=c&&a!=o&&d()}function Va(e,t,o,i){const n=e.model,s=n.document,r=i.getAttribute(t);let a,l;if(r!=o){if(i.root===i){const e=i.document?s.version:null;l=new Qr(i,t,r,o,e)}else{a=new us(ss._createBefore(i),e.createPositionAfter(i));const n=a.root.document?s.version:null;l=new Gr(a,t,r,o,n)}e.batch.addOperation(l),n.applyOperation(l)}}function Da(e,t,o,i,n){const s=e.model,r=s.document,a=new Kr(t,o,i,s.markers,!!n,r.version);e.batch.addOperation(a),s.applyOperation(a)}function Fa(e,t,o,i){let n;if(e.root.document){const o=i.document,s=new ss(o.graveyard,[0]);n=new qr(e,t,s,o.version)}else n=new Sa(e,t);o.addOperation(n),i.applyOperation(n)}function Ma(e,t){return e===t||e instanceof Ca&&t instanceof Ca}function Na(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.selection,i=t.schema,n=[];let s=!1;for(const e of o.getRanges()){const t=Ba(e,i);t&&!t.isEqual(e)?(n.push(t),s=!0):n.push(e)}s&&e.setSelection(function(e){const t=[...e],o=new Set;let i=1;for(;i!o.has(t)))}(n),{backward:o.isBackward});return!1}(t,e)))}function Ba(e,t){return e.isCollapsed?function(e,t){const o=e.start,i=t.getNearestSelectionRange(o);if(!i){const e=o.getAncestors().reverse().find((e=>t.isObject(e)));return e?us._createOn(e):null}if(!i.isCollapsed)return i;const n=i.start;if(o.isEqual(n))return null;return new us(n)}(e,t):function(e,t){const{start:o,end:i}=e,n=t.checkChild(o,"$text"),s=t.checkChild(i,"$text"),r=t.getLimitElement(o),a=t.getLimitElement(i);if(r===a){if(n&&s)return null;if(function(e,t,o){const i=e.nodeAfter&&!o.isLimit(e.nodeAfter)||o.checkChild(e,"$text"),n=t.nodeBefore&&!o.isLimit(t.nodeBefore)||o.checkChild(t,"$text");return i||n}(o,i,t)){const e=o.nodeAfter&&t.isSelectable(o.nodeAfter)?null:t.getNearestSelectionRange(o,"forward"),n=i.nodeBefore&&t.isSelectable(i.nodeBefore)?null:t.getNearestSelectionRange(i,"backward"),s=e?e.start:o,r=n?n.end:i;return new us(s,r)}}const l=r&&!r.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const e=o.nodeAfter&&i.nodeBefore&&o.nodeAfter.parent===i.nodeBefore.parent,n=l&&(!e||!za(o.nodeAfter,t)),s=c&&(!e||!za(i.nodeBefore,t));let d=o,u=i;return n&&(d=ss._createBefore(La(r,t))),s&&(u=ss._createAfter(La(a,t))),new us(d,u)}return null}(e,t)}function La(e,t){let o=e,i=o;for(;t.isLimit(i)&&i.parent;)o=i,i=i.parent;return o}function za(e,t){return e&&t.isSelectable(e)}function ja(e,t,o={}){if(t.isCollapsed)return;const i=t.getFirstRange();if("$graveyard"==i.root.rootName)return;const n=e.schema;e.change((e=>{if(!o.doNotResetEntireContent&&function(e,t){const o=e.getLimitElement(t);if(!t.containsEntireContent(o))return!1;const i=t.getFirstRange();if(i.start.parent==i.end.parent)return!1;return e.checkChild(o,"paragraph")}(n,t))return void function(e,t){const o=e.model.schema.getLimitElement(t);e.remove(e.createRangeIn(o)),Wa(e,e.createPositionAt(o,0),t)}(e,t);const s={};if(!o.doNotAutoparagraph){const e=t.getSelectedElement();e&&Object.assign(s,n.getAttributesWithProperty(e,"copyOnReplace",!0))}let r,a;o.doNotFixSelection?(r=ma.fromPosition(i.start,"toPrevious"),a=ma.fromPosition(i.end,"toNext")):[r,a]=function(e){const t=e.root.document.model,o=e.start;let i=e.end;if(t.hasContent(e,{ignoreMarkers:!0})){const o=function(e){const t=e.parent,o=t.root.document.model.schema,i=t.getAncestors({parentFirst:!0,includeSelf:!0});for(const e of i){if(o.isLimit(e))return null;if(o.isBlock(e))return e}}(i);if(o&&i.isTouching(t.createPositionAt(o,0))){const o=t.createSelection(e);t.modifySelection(o,{direction:"backward"});const n=o.getLastPosition(),s=t.createRange(n,i);t.hasContent(s,{ignoreMarkers:!0})||(i=n)}}return[ma.fromPosition(o,"toPrevious"),ma.fromPosition(i,"toNext")]}(i),r.isTouching(a)||e.remove(e.createRange(r,a)),o.leaveUnmerged||(!function(e,t,o){const i=e.model;if(!Ha(e.model.schema,t,o))return;const[n,s]=function(e,t){const o=e.getAncestors(),i=t.getAncestors();let n=0;for(;o[n]&&o[n]==i[n];)n++;return[o[n],i[n]]}(t,o);if(!n||!s)return;!i.hasContent(n,{ignoreMarkers:!0})&&i.hasContent(s,{ignoreMarkers:!0})?qa(e,t,o,n.parent):$a(e,t,o,n.parent)}(e,r,a),n.removeDisallowedAttributes(r.parent.getChildren(),e)),Ua(e,t,r),!o.doNotAutoparagraph&&function(e,t){const o=e.checkChild(t,"$text"),i=e.checkChild(t,"paragraph");return!o&&i}(n,r)&&Wa(e,r,t,s),r.detach(),a.detach()}))}function $a(e,t,o,i){const n=t.parent,s=o.parent;if(n!=i&&s!=i){for(t=e.createPositionAfter(n),(o=e.createPositionBefore(s)).isEqual(t)||e.insert(s,t),e.merge(t);o.parent.isEmpty;){const t=o.parent;o=e.createPositionBefore(t),e.remove(t)}Ha(e.model.schema,t,o)&&$a(e,t,o,i)}}function qa(e,t,o,i){const n=t.parent,s=o.parent;if(n!=i&&s!=i){for(t=e.createPositionAfter(n),(o=e.createPositionBefore(s)).isEqual(t)||e.insert(n,o);t.parent.isEmpty;){const o=t.parent;t=e.createPositionBefore(o),e.remove(o)}o=e.createPositionBefore(s),function(e,t){const o=t.nodeBefore,i=t.nodeAfter;o.name!=i.name&&e.rename(o,i.name);e.clearAttributes(o),e.setAttributes(Object.fromEntries(i.getAttributes()),o),e.merge(t)}(e,o),Ha(e.model.schema,t,o)&&qa(e,t,o,i)}}function Ha(e,t,o){const i=t.parent,n=o.parent;return i!=n&&(!e.isLimit(i)&&!e.isLimit(n)&&function(e,t,o){const i=new us(e,t);for(const e of i.getWalker())if(o.isLimit(e.item))return!1;return!0}(t,o,e))}function Wa(e,t,o,i={}){const n=e.createElement("paragraph");e.model.schema.setAllowedAttributes(n,i,e),e.insert(n,t),Ua(e,o,e.createPositionAt(n,0))}function Ua(e,t,o){t instanceof Os?e.setSelection(o):t.setTo(o)}function Ka(e,t){const o=[];Array.from(e.getItems({direction:"backward"})).map((e=>t.createRangeOn(e))).filter((t=>(t.start.isAfter(e.start)||t.start.isEqual(e.start))&&(t.end.isBefore(e.end)||t.end.isEqual(e.end)))).forEach((e=>{o.push(e.start.parent),t.remove(e)})),o.forEach((e=>{let o=e;for(;o.parent&&o.isEmpty;){const e=t.createRangeOn(o);o=o.parent,t.remove(e)}}))}class Ga{model;writer;position;canMergeWith;schema;_documentFragment;_documentFragmentPosition;_firstNode=null;_lastNode=null;_lastAutoParagraph=null;_filterAttributesAndChildrenOf=[];_affectedStart=null;_affectedEnd=null;_nodeToSelect=null;constructor(e,t,o){this.model=e,this.writer=t,this.position=o,this.canMergeWith=new Set([this.position.parent]),this.schema=e.schema,this._documentFragment=t.createDocumentFragment(),this._documentFragmentPosition=t.createPositionAt(this._documentFragment,0)}handleNodes(e){for(const t of Array.from(e))t.offsetSize>0&&this._handleNode(t);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesAndChildrenOf,this.writer),!1!==this.model._config?.get("experimentalFlags.modelInsertContentDeepSchemaVerification")&&this._removeDisallowedChildren(this._filterAttributesAndChildrenOf),this._filterAttributesAndChildrenOf=[]}_removeDisallowedChildren(e){const t=Array.from(e);for(const e of t){if(!e.is("element"))continue;const o=[],i=[],n=this.writer.createRangeIn(e).getWalker({ignoreElementEnd:!0});for(const{item:e}of n){const s=e.parent;this.schema.checkChild(s,e)||(e.is("element")&&!this.schema.isObject(e)?(i.push(e),t.push(s)):o.push(e),n.jumpTo(this.writer.createPositionAfter(e)))}for(const e of i)this.writer.unwrap(e);for(const e of o)this.writer.remove(e)}}_updateLastNodeFromAutoParagraph(e){const t=this.writer.createPositionAfter(this._lastNode),o=this.writer.createPositionAfter(e);if(o.isAfter(t)){if(this._lastNode=e,this.position.parent!=e||!this.position.isAtEnd)throw new fe("insertcontent-invalid-insertion-position",this);this.position=o,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?us._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new us(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(e){this._checkAndSplitToAllowedPosition(e)?(e=this._appendToFragment(e),this._firstNode||(this._firstNode=e),this._lastNode=e):this.schema.isObject(e)||this._handleDisallowedNode(e)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const e=ma.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=e.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=e.toPosition(),e.detach()}_handleDisallowedNode(e){e.is("element")&&this.handleNodes(e.getChildren())}_appendToFragment(e){if(!this.schema.checkChild(this.position,e))throw new fe("insertcontent-wrong-position",this,{node:e,position:this.position});return this.writer.insert(e,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(e.offsetSize),e.parent||(e=this._documentFragmentPosition.nodeBefore),this.schema.isObject(e)&&!this.schema.checkChild(this.position,"$text")?this._nodeToSelect=e:this._nodeToSelect=null,this._filterAttributesAndChildrenOf.push(e),e}_setAffectedBoundaries(e){this._affectedStart||(this._affectedStart=ma.fromPosition(e,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(e)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=ma.fromPosition(e,"toNext"))}_mergeOnLeft(){const e=this._firstNode;if(!(e instanceof Ms))return;if(!this._canMergeLeft(e))return;const t=ma._createBefore(e);t.stickiness="toNext";const o=ma.fromPosition(this.position,"toNext");this._affectedStart.isEqual(t)&&(this._affectedStart.detach(),this._affectedStart=ma._createAt(t.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=ma._createAt(t.nodeBefore,"end","toNext")),this.position=o.toPosition(),o.detach(),this._filterAttributesAndChildrenOf.push(this.position.parent),t.detach()}_mergeOnRight(){const e=this._lastNode;if(!(e instanceof Ms))return;if(!this._canMergeRight(e))return;const t=ma._createAfter(e);if(t.stickiness="toNext",!this.position.isEqual(t))throw new fe("insertcontent-invalid-insertion-position",this);this.position=ss._createAt(t.nodeBefore,"end");const o=ma.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(t)&&(this._affectedEnd.detach(),this._affectedEnd=ma._createAt(t.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=ma._createAt(t.nodeBefore,0,"toPrevious")),this.position=o.toPosition(),o.detach(),this._filterAttributesAndChildrenOf.push(this.position.parent),t.detach()}_canMergeLeft(e){const t=e.previousSibling;return t instanceof Ms&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(t,e)}_canMergeRight(e){const t=e.nextSibling;return t instanceof Ms&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(e,t)}_insertAutoParagraph(){this._insertPartialFragment();const e=this.writer.createElement("paragraph");this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0)}_checkAndSplitToAllowedPosition(e){const t=this._getAllowedIn(this.position.parent,e);if(!t)return!1;for(t!=this.position.parent&&this._insertPartialFragment();t!=this.position.parent;)if(this.position.isAtStart){const e=this.position.parent;this.position=this.writer.createPositionBefore(e),e.isEmpty&&e.parent===t&&this.writer.remove(e)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const e=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=e,this.canMergeWith.add(this.position.nodeAfter)}return this.schema.checkChild(this.position.parent,e)||this._insertAutoParagraph(),!0}_getAllowedIn(e,t){const o=this.schema.createContext(e);return this.schema.checkChild(o,t)||this.schema.checkChild(o,"paragraph")&&this.schema.checkChild(o.push("paragraph"),t)?e:this.schema.isLimit(e)?null:this._getAllowedIn(e.parent,t)}}function Ja(e,t,o,i={}){if(!e.schema.isObject(t))throw new fe("insertobject-element-not-an-object",e,{object:t});const n=o||e.document.selection;let s=n;i.findOptimalPosition&&e.schema.isBlock(t)&&(s=e.createSelection(e.schema.findOptimalInsertionRange(n,i.findOptimalPosition)));const r=to(n.getSelectedBlocks()),a={};return r&&Object.assign(a,e.schema.getAttributesWithProperty(r,"copyOnReplace",!0)),e.change((o=>{s.isCollapsed||e.deleteContent(s,{doNotAutoparagraph:!0});let n=t;const r=s.anchor.parent,l=e.schema.createContext(r);!e.schema.checkChild(l,t)&&e.schema.checkChild(l,"paragraph")&&e.schema.checkChild(l.push("paragraph"),t)&&(n=o.createElement("paragraph"),o.insert(t,n)),e.schema.setAllowedAttributes(n,a,o);const c=e.insertContent(n,s);return c.isCollapsed||i.setSelection&&function(e,t,o,i){const n=e.model;if("on"==o)return void e.setSelection(t,"on");if("after"!=o)throw new fe("insertobject-invalid-place-parameter-value",n);let s=t.nextSibling;if(n.schema.isInline(t))return void e.setSelection(t,"after");const r=s&&n.schema.checkChild(s,"$text");!r&&n.schema.checkChild(t.parent,"paragraph")&&(s=e.createElement("paragraph"),n.schema.setAllowedAttributes(s,i,e),n.insertContent(s,e.createPositionAfter(t)));s&&e.setSelection(s,0)}(o,t,i.setSelection,a),c}))}function Za(e,t){const{isForward:o,walker:i,unit:n,schema:s,treatEmojiAsSingleUnit:r}=e,{type:a,item:l,nextPosition:c}=t;if("text"==a)return"word"===e.unit?function(e,t){let o=e.position.textNode;o||(o=t?e.position.nodeAfter:e.position.nodeBefore);for(;o&&o.is("$text");){const i=e.position.offset-o.startOffset;if(Xa(o,i,t))o=t?e.position.nodeAfter:e.position.nodeBefore;else{if(Ya(o.data,i,t))break;e.next()}}return e.position}(i,o):function(e,t,o){const i=e.position.textNode;if(i){const n=i.data;let s=e.position.offset-i.startOffset;for(;ho(n,s)||"character"==t&&mo(n,s)||o&&po(n,s);)e.next(),s=e.position.offset-i.startOffset}return e.position}(i,n,r);if(a==(o?"elementStart":"elementEnd")){if(s.isSelectable(l))return ss._createAt(l,o?"after":"before");if(s.checkChild(c,"$text"))return c}else{if(s.isLimit(l))return void i.skip((()=>!0));if(s.checkChild(c,"$text"))return c}}function Qa(e,t){const o=e.root,i=ss._createAt(o,t?"end":0);return t?new us(e,i):new us(i,e)}function Ya(e,t,o){const i=t+(o?0:-1);return' ,.?!:;"-()'.includes(e.charAt(i))}function Xa(e,t,o){return t===(o?e.offsetSize:0)}class el extends(Be()){markers;document;schema;_config;_pendingChanges;_currentWriter;constructor(e){super(),this.markers=new Ta,this.document=new xa(this),this.schema=new mr,this._config=e,this._pendingChanges=[],this._currentWriter=null,["deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((e=>this.decorate(e))),this.on("applyOperation",((e,t)=>{t[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck((()=>!0),"$marker"),Na(this),this.document.registerPostFixer(or),this.on("insertContent",((e,[t,o])=>{e.return=function(e,t,o){return e.change((i=>{const n=o||e.document.selection;n.isCollapsed||e.deleteContent(n,{doNotAutoparagraph:!0});const s=new Ga(e,i,n.anchor),r=[];let a;if(t.is("documentFragment")){if(t.markers.size){const e=[];for(const[o,i]of t.markers){const{start:t,end:n}=i,s=t.isEqual(n);e.push({position:t,name:o,isCollapsed:s},{position:n,name:o,isCollapsed:s})}e.sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:o,name:n,isCollapsed:s}of e){let e=null,a=null;const l=o.parent===t&&o.isAtStart,c=o.parent===t&&o.isAtEnd;l||c?s&&(a=l?"start":"end"):(e=i.createElement("$marker"),i.insert(e,o)),r.push({name:n,element:e,collapsed:a})}}a=t.getChildren()}else a=[t];s.handleNodes(a);let l=s.getSelectionRange();if(t.is("documentFragment")&&r.length){const e=l?Ts.fromRange(l):null,t={};for(let e=r.length-1;e>=0;e--){const{name:o,element:n,collapsed:a}=r[e],l=!t[o];if(l&&(t[o]=[]),n){const e=i.createPositionAt(n,"before");t[o].push(e),i.remove(n)}else{const e=s.getAffectedRange();if(!e){a&&t[o].push(s.position);continue}a?t[o].push(e[a]):t[o].push(l?e.start:e.end)}}for(const[e,[o,n]]of Object.entries(t))o&&n&&o.root===n.root&&o.root.document&&!i.model.markers.has(e)&&i.addMarker(e,{usingOperation:!0,affectsData:!0,range:new us(o,n)});e&&(l=e.toRange(),e.detach())}l&&(n instanceof Os?i.setSelection(l):n.setTo(l));const c=s.getAffectedRange()||e.createRange(n.anchor);return s.destroy(),c}))}(this,t,o)})),this.on("insertObject",((e,[t,o,i])=>{e.return=Ja(this,t,o,i)})),this.on("canEditAt",(e=>{const t=!this.document.isReadOnly;e.return=t,t||e.stop()}))}change(e){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new fa,callback:e}),this._runPendingChanges()[0]):e(this._currentWriter)}catch(e){fe.rethrowUnexpectedError(e,this)}}enqueueChange(e,t){try{e?"function"==typeof e?(t=e,e=new fa):e instanceof fa||(e=new fa(e)):e=new fa,this._pendingChanges.push({batch:e,callback:t}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(e){fe.rethrowUnexpectedError(e,this)}}applyOperation(e){e._execute()}insertContent(e,t,o,...i){const n=tl(t,o);return this.fire("insertContent",[e,n,o,...i])}insertObject(e,t,o,i,...n){const s=tl(t,o);return this.fire("insertObject",[e,s,i,i,...n])}deleteContent(e,t){ja(this,e,t)}modifySelection(e,t){!function(e,t,o={}){const i=e.schema,n="backward"!=o.direction,s=o.unit?o.unit:"character",r=!!o.treatEmojiAsSingleUnit,a=t.focus,l=new is({boundaries:Qa(a,n),singleCharacters:!0,direction:n?"forward":"backward"}),c={walker:l,schema:i,isForward:n,unit:s,treatEmojiAsSingleUnit:r};let d;for(;d=l.next();){if(d.done)return;const o=Za(c,d.value);if(o)return void(t instanceof Os?e.change((e=>{e.setSelectionFocus(o)})):t.setFocus(o))}}(this,e,t)}getSelectedContent(e){return function(e,t){return e.change((e=>{const o=e.createDocumentFragment(),i=t.getFirstRange();if(!i||i.isCollapsed)return o;const n=i.start.root,s=i.start.getCommonPath(i.end),r=n.getNodeByPath(s);let a;a=i.start.parent==i.end.parent?i:e.createRange(e.createPositionAt(r,i.start.path[s.length]),e.createPositionAt(r,i.end.path[s.length]+1));const l=a.end.offset-a.start.offset;for(const t of a.getItems({shallow:!0}))t.is("$textProxy")?e.appendText(t.data,t.getAttributes(),o):e.append(e.cloneElement(t,!0),o);if(a!=i){const t=i._getTransformedByMove(a.start,e.createPositionAt(o,0),l)[0],n=e.createRange(e.createPositionAt(o,0),t.start);Ka(e.createRange(t.end,e.createPositionAt(o,"end")),e),Ka(n,e)}return o}))}(this,e)}hasContent(e,t={}){let o;o=e.is("selection")?Array.from(e.getRanges()):e.is("range")?[e]:[us._createIn(e)];for(const e of o)if(this._rangeHasContent(e,t))return!0;return!1}_rangeHasContent(e,t){if(e.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=t;if(!i)for(const t of this.markers.getMarkersIntersectingRange(e))if(t.affectsData)return!0;for(const t of e.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}canEditAt(e){const t=tl(e);return this.fire("canEditAt",[t])}createPositionFromPath(e,t,o){return new ss(e,t,o)}createPositionAt(e,t){return ss._createAt(e,t)}createPositionAfter(e){return ss._createAfter(e)}createPositionBefore(e){return ss._createBefore(e)}createRange(e,t){return new us(e,t)}createRangeIn(e){return us._createIn(e)}createRangeOn(e){return us._createOn(e)}createSelection(...e){return new _s(...e)}createBatch(e){return new fa(e)}createOperationFromJSON(e){return ea.fromJSON(e,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const e=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const t=this._pendingChanges[0].batch;this._currentWriter=new Ra(this,t);const o=this._pendingChanges[0].callback(this._currentWriter);e.push(o),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return e}}function tl(e,t){if(e)return e instanceof _s||e instanceof Os?e:e instanceof ys?t||0===t?new _s(e,t):e.is("rootElement")?new _s(e,"in"):new _s(e,"on"):new _s(e)}class ol extends jn{domEventType="click";onDomEvent(e){this.fire(e.type,e)}}class il extends jn{domEventType=["mousedown","mouseup","mouseover","mouseout"];onDomEvent(e){this.fire(e.type,e)}}class nl extends jn{domEventType=["touchstart","touchend","touchmove"];onDomEvent(e){this.fire(e.type,e)}}class sl extends jn{domEventType=["pointerdown","pointerup","pointermove"];onDomEvent(e){this.fire(e.type,e)}}class rl{document;constructor(e){this.document=e}createDocumentFragment(e){return new tn(this.document,e)}createElement(e,t,o){return new _i(this.document,e,t,o)}createText(e){return new si(this.document,e)}clone(e,t=!1){return e._clone(t)}appendChild(e,t){return t._appendChild(e)}insertChild(e,t,o){return o._insertChild(e,t)}removeChildren(e,t,o){return o._removeChildren(e,t)}remove(e){const t=e.parent;return t?this.removeChildren(t.getChildIndex(e),1,t):[]}replace(e,t){const o=e.parent;if(o){const i=o.getChildIndex(e);return this.removeChildren(i,1,o),this.insertChild(i,t,o),!0}return!1}unwrapElement(e){const t=e.parent;if(t){const o=t.getChildIndex(e);this.remove(e),this.insertChild(o,e.getChildren(),t)}}rename(e,t){const o=new _i(this.document,e,t.getAttributes(),t.getChildren());return this.replace(t,o)?o:null}setAttribute(e,t,o){o._setAttribute(e,t)}removeAttribute(e,t){t._removeAttribute(e)}addClass(e,t){t._addClass(e)}removeClass(e,t){t._removeClass(e)}setStyle(e,t,o){a(e)&&void 0===o?t._setStyle(e):o._setStyle(e,t)}removeStyle(e,t){t._removeStyle(e)}setCustomProperty(e,t,o){o._setCustomProperty(e,t)}removeCustomProperty(e,t){return t._removeCustomProperty(e)}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}}const al=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ll=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,cl=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,dl=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,ul=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,hl=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,ml=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext","rebeccapurple","currentcolor","transparent"]);function gl(e){return e.startsWith("#")?al.test(e):e.startsWith("rgb")?ll.test(e)||cl.test(e):e.startsWith("hsl")?dl.test(e)||ul.test(e):ml.has(e.toLowerCase())}const pl=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function fl(e){return pl.includes(e)}const bl=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function wl(e){return bl.test(e)}const yl=/^[+-]?[0-9]*([.][0-9]+)?%$/;function _l(e){return yl.test(e)}const kl=["auto","cover","contain"];const vl=["repeat-x","repeat-y","repeat","space","round","no-repeat"];const Cl=["center","top","bottom","left","right"];function Al(e){return Cl.includes(e)}const xl=["fixed","scroll","local"];function El(e){return xl.includes(e)}const Tl=["border-box","padding-box","content-box"];function Pl(e){return Tl.includes(e)}const Sl=["border-box","padding-box","content-box","text"];function Il(e){return Sl.includes(e)}function Rl(e=""){if(""===e)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const t=Fl(e),o=t[0],i=t[2]||o,n=t[1]||o;return{top:o,bottom:i,right:n,left:t[3]||n}}function Ol(e){return t=>{const{top:o,right:i,bottom:n,left:s}=t,r=[];return[o,i,s,n].every((e=>!!e))?r.push([e,Vl(t)]):(o&&r.push([e+"-top",o]),i&&r.push([e+"-right",i]),n&&r.push([e+"-bottom",n]),s&&r.push([e+"-left",s])),r}}function Vl({top:e,right:t,bottom:o,left:i}){const n=[];return i!==t?n.push(e,t,o,i):o!==e?n.push(e,t,o):t!==e?n.push(e,t):n.push(e),n.join(" ")}function Dl(e){return t=>({path:e,value:Rl(t)})}function Fl(e){const t=e.trim().slice(0,1500).matchAll(hl);return Array.from(t).map((e=>e[0]))}const Ml={image:"none",repeat:"repeat",position:"0% 0%",size:"auto",origin:"padding-box",clip:"border-box",attachment:"scroll"},Nl=["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient","conic-gradient","repeating-conic-gradient","url"];function Bl(e){e.setNormalizer("background-color",(e=>({path:"background.color",value:e})));for(const t in Ml)e.setNormalizer(`background-${t}`,Ll(`background.${t}`)),e.setReducer(`background-${t}`,zl(`background-${t}`));e.setNormalizer("background",(e=>{const t=function(e){return ql(e).map(jl).filter((e=>null!==e))}(e);t.length||t.push({...$l(),color:e});const o=function(e){const t={image:[],position:[],size:[],repeat:[],attachment:[],origin:[],clip:[]};for(const o of e)t.position.push(o.position.join(" ")),t.size.push(o.size.join(" ")),t.repeat.push(o.repeat.join(" ")),t.image.push(o.image),t.attachment.push(o.attachment),t.origin.push(o.origin),t.clip.push(o.clip);return e.at(-1)?.color&&(t.color=e.at(-1).color),t}(t);return{path:"background",value:o}})),e.setReducer("background",(e=>{const t=e,o=Object.keys(Ml).every((e=>{const o=t[e];return void 0!==o&&(!Array.isArray(o)||o.length>0)}));return o?function(e){const t=[],o=function(e){const t=function(e){let t=0;for(const o of Object.values(e))Array.isArray(o)&&o.length>t&&(t=o.length);return t}(e),o=Array.from({length:t},((t,o)=>{const i=$l();return e.image?.[o]&&(i.image=e.image[o]),e.position?.[o]&&(i.position=e.position[o].split(" ")),e.size?.[o]&&(i.size=e.size[o].split(" ")),e.repeat?.[o]&&(i.repeat=e.repeat[o].split(" ")),e.attachment?.[o]&&(i.attachment=e.attachment[o]),e.origin?.[o]&&(i.origin=e.origin[o]),e.clip?.[o]&&(i.clip=e.clip[o]),i}));return e.color&&(o.at(-1).color=e.color),o}(e).map((e=>function(e){const t=[];e.image&&e.image!==Ml.image&&t.push(e.image);const o=e.position.join(" "),i=!o||o===Ml.position;i||t.push(o);const n=e.size.join(" ");n&&n!==Ml.size&&(i&&t.push("0% 0%"),t.push("/",n));const s=e.repeat.join(" ");s&&s!==Ml.repeat&&t.push(s),e.attachment&&e.attachment!==Ml.attachment&&t.push(e.attachment);const r=e.origin===Ml.origin,a=e.clip===Ml.clip;return r&&a||(t.push(e.origin),e.clip!==e.origin&&t.push(e.clip)),e.color&&t.push(e.color),t.join(" ")}(e).trim())).filter(Boolean).join(", ");return o&&t.push(["background",o]),t}(t):function(e){const t=[];for(const o in Ml){const i=e[o];Array.isArray(i)&&t.push([`background-${o}`,i.join(", ")])}return void 0!==e.color&&t.push(["background-color",e.color]),t}(t)})),e.setStyleRelation("background",["background-color","background-image","background-repeat","background-position","background-size","background-attachment","background-origin","background-clip"])}function Ll(e){return t=>({path:e,value:ql(t)})}function zl(e){return t=>{const o=t.join(", ");return[[e,o]]}}function jl(e){const t={},{value:o,image:i}=function(e){for(const t of Nl){const o=t+"(",i=e.indexOf(o);if(i<0)continue;let n=t,s=0;for(let o=i+t.length;o"constructor"!==e)).length:0===t.length}return!0}(t)?null:{...$l(),...t}}function $l(){return{attachment:Ml.attachment,image:Ml.image,origin:Ml.origin,clip:Ml.clip,position:Ml.position.split(" "),repeat:Ml.repeat.split(" "),size:Ml.size.split(" ")}}function ql(e){const t=[];let o="",i=0;for(const n of e){if("("===n)i++;else if(")"===n)i--;else if(","===n&&0===i){t.push(o.trim()),o="";continue}o+=n}return o.trim()&&t.push(o.trim()),t}function Hl(e){e.setNormalizer("border",(e=>{const{color:t,style:o,width:i}=Ql(e);return{path:"border",value:{color:Rl(t),style:Rl(o),width:Rl(i)}}})),e.setNormalizer("border-top",Wl("top")),e.setNormalizer("border-right",Wl("right")),e.setNormalizer("border-bottom",Wl("bottom")),e.setNormalizer("border-left",Wl("left")),e.setNormalizer("border-color",Ul("color")),e.setNormalizer("border-width",Ul("width")),e.setNormalizer("border-style",Ul("style")),e.setNormalizer("border-top-color",Gl("color","top")),e.setNormalizer("border-top-style",Gl("style","top")),e.setNormalizer("border-top-width",Gl("width","top")),e.setNormalizer("border-right-color",Gl("color","right")),e.setNormalizer("border-right-style",Gl("style","right")),e.setNormalizer("border-right-width",Gl("width","right")),e.setNormalizer("border-bottom-color",Gl("color","bottom")),e.setNormalizer("border-bottom-style",Gl("style","bottom")),e.setNormalizer("border-bottom-width",Gl("width","bottom")),e.setNormalizer("border-left-color",Gl("color","left")),e.setNormalizer("border-left-style",Gl("style","left")),e.setNormalizer("border-left-width",Gl("width","left")),e.setExtractor("border-top",Jl("top")),e.setExtractor("border-right",Jl("right")),e.setExtractor("border-bottom",Jl("bottom")),e.setExtractor("border-left",Jl("left")),e.setExtractor("border-top-color","border.color.top"),e.setExtractor("border-right-color","border.color.right"),e.setExtractor("border-bottom-color","border.color.bottom"),e.setExtractor("border-left-color","border.color.left"),e.setExtractor("border-top-width","border.width.top"),e.setExtractor("border-right-width","border.width.right"),e.setExtractor("border-bottom-width","border.width.bottom"),e.setExtractor("border-left-width","border.width.left"),e.setExtractor("border-top-style","border.style.top"),e.setExtractor("border-right-style","border.style.right"),e.setExtractor("border-bottom-style","border.style.bottom"),e.setExtractor("border-left-style","border.style.left"),e.setReducer("border-color",Ol("border-color")),e.setReducer("border-style",Ol("border-style")),e.setReducer("border-width",Ol("border-width")),e.setReducer("border-top",Yl("top")),e.setReducer("border-right",Yl("right")),e.setReducer("border-bottom",Yl("bottom")),e.setReducer("border-left",Yl("left")),e.setReducer("border",function(){return t=>{const o=Zl(t,"top"),i=Zl(t,"right"),n=Zl(t,"bottom"),s=Zl(t,"left"),r=[o,i,n,s],a={width:e(r,"width"),style:e(r,"style"),color:e(r,"color")},l=Xl(a,"all");if(l.length)return l;const c=Object.entries(a).reduce(((e,[t,o])=>(o&&(e.push([`border-${t}`,o]),r.forEach((e=>delete e[t]))),e)),[]);return[...c,...Xl(o,"top"),...Xl(i,"right"),...Xl(n,"bottom"),...Xl(s,"left")]};function e(e,t){return e.map((e=>e[t])).reduce(((e,t)=>e==t?e:null))}}()),e.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),e.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),e.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),e.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),e.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),e.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function Wl(e){return t=>{const{color:o,style:i,width:n}=Ql(t),s={};return void 0!==o&&(s.color={[e]:o}),void 0!==i&&(s.style={[e]:i}),void 0!==n&&(s.width={[e]:n}),{path:"border",value:s}}}function Ul(e){return t=>({path:"border",value:Kl(t,e)})}function Kl(e,t){return{[t]:Rl(e)}}function Gl(e,t){return o=>({path:"border",value:{[e]:{[t]:o}}})}function Jl(e){return(t,o)=>{if(o.border)return Zl(o.border,e)}}function Zl(e,t){const o={};return e.width&&e.width[t]&&(o.width=e.width[t]),e.style&&e.style[t]&&(o.style=e.style[t]),e.color&&e.color[t]&&(o.color=e.color[t]),o}function Ql(e){const t={},o=Fl(e);for(const e of o)wl(e)||/thin|medium|thick/.test(e)?t.width=e:fl(e)?t.style=e:t.color=e;return t}function Yl(e){return t=>Xl(t,e)}function Xl(e,t){const o=[];if(e&&e.width&&o.push("width"),e&&e.style&&o.push("style"),e&&e.color&&o.push("color"),3==o.length){const i=o.map((t=>e[t])).join(" ");return["all"==t?["border",i]:[`border-${t}`,i]]}return"all"==t?[]:o.map((o=>[`border-${t}-${o}`,e[o]]))}function ec(e){e.setNormalizer("margin",Dl("margin")),e.setNormalizer("margin-top",(e=>({path:"margin.top",value:e}))),e.setNormalizer("margin-right",(e=>({path:"margin.right",value:e}))),e.setNormalizer("margin-bottom",(e=>({path:"margin.bottom",value:e}))),e.setNormalizer("margin-left",(e=>({path:"margin.left",value:e}))),e.setReducer("margin",Ol("margin")),e.setStyleRelation("margin",["margin-top","margin-right","margin-bottom","margin-left"])}function tc(e){e.setNormalizer("padding",Dl("padding")),e.setNormalizer("padding-top",(e=>({path:"padding.top",value:e}))),e.setNormalizer("padding-right",(e=>({path:"padding.right",value:e}))),e.setNormalizer("padding-bottom",(e=>({path:"padding.bottom",value:e}))),e.setNormalizer("padding-left",(e=>({path:"padding.left",value:e}))),e.setReducer("padding",Ol("padding")),e.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}Symbol("_treeDump");function oc(e,t=0,o={}){const{leading:i=!0,trailing:n=!0}=o;return zo(e,t,{leading:i,maxWait:t,trailing:n})}class ic{crashes=[];state="initializing";_crashNumberLimit;_now=Date.now;_minimumNonErrorTimePeriod;_boundErrorHandler;_listeners;constructor(e){if(this.crashes=[],this._crashNumberLimit="number"==typeof e.crashNumberLimit?e.crashNumberLimit:3,this._minimumNonErrorTimePeriod="number"==typeof e.minimumNonErrorTimePeriod?e.minimumNonErrorTimePeriod:5e3,this._boundErrorHandler=e=>{const t="error"in e?e.error:e.reason;t instanceof Error&&this._handleError(t,e)},this._listeners={},!this._restart)throw new Error("The Watchdog class was split into the abstract `Watchdog` class and the `EditorWatchdog` class. Please, use `EditorWatchdog` if you have used the `Watchdog` class previously.")}destroy(){this._stopErrorHandling(),this._listeners={}}on(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)}off(e,t){this._listeners[e]=this._listeners[e].filter((e=>e!==t))}_fire(e,...t){const o=this._listeners[e]||[];for(const e of o)e.apply(this,[null,...t])}_startErrorHandling(){window.addEventListener("error",this._boundErrorHandler),window.addEventListener("unhandledrejection",this._boundErrorHandler)}_stopErrorHandling(){window.removeEventListener("error",this._boundErrorHandler),window.removeEventListener("unhandledrejection",this._boundErrorHandler)}_handleError(e,t){if(this._shouldReactToError(e)){this.crashes.push({message:e.message,stack:e.stack,filename:t instanceof ErrorEvent?t.filename:void 0,lineno:t instanceof ErrorEvent?t.lineno:void 0,colno:t instanceof ErrorEvent?t.colno:void 0,date:this._now()});const o=this._shouldRestart();this.state="crashed",this._fire("stateChange"),this._fire("error",{error:e,causesRestart:o}),o?this._restart():(this.state="crashedPermanently",this._fire("stateChange"))}}_shouldReactToError(e){return e.is&&e.is("CKEditorError")&&void 0!==e.context&&null!==e.context&&"ready"===this.state&&this._isErrorComingFromThisItem(e)}_shouldRestart(){if(this.crashes.length<=this._crashNumberLimit)return!0;return(this.crashes[this.crashes.length-1].date-this.crashes[this.crashes.length-1-this._crashNumberLimit].date)/this._crashNumberLimit>this._minimumNonErrorTimePeriod}}function nc(e,t=new Set){const o=[e],i=new Set;let n=0;for(;o.length>n;){const e=o[n++];if(!i.has(e)&&sc(e)&&!t.has(e))if(i.add(e),Symbol.iterator in e)try{for(const t of e)o.push(t)}catch{}else for(const t in e)"defaultValue"!==t&&o.push(e[t])}return i}function sc(e){const t=Object.prototype.toString.call(e),o=typeof e;return!("number"===o||"boolean"===o||"string"===o||"symbol"===o||"function"===o||"[object Date]"===t||"[object RegExp]"===t||"[object Module]"===t||null==e||e._watchdogExcluded||e instanceof EventTarget||e instanceof Event)}function rc(e,t,o=new Set){if(e===t&&("object"==typeof(i=e)&&null!==i))return!0;var i;const n=nc(e,o),s=nc(t,o);for(const e of n)if(s.has(e))return!0;return!1}function ac(e,t,o){const i=t.root,n=t.roots||Object.create(null);o&&!n[o]&&(n[o]=i||Object.create(null));const s=function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&(t=e,!L(t));var t}(e),r=function(e,t,o){return t||!o?e.initialData||Object.create(null):{[o]:e.initialData}}(t,s,o),a=Array.from(new Set([...s?Object.keys(e):[],...Object.keys(n),...Object.keys(r)]));for(const e of a){const o=n[e]||Object.create(null);o.initialData="",o.placeholder??=lc(t,"placeholder",e),o.label??=lc(t,"label",e),n[e]=o}t.roots=n}function lc(e,t,o){const i=e[t];if(i)return"string"==typeof i?i:i[o]}class cc extends ic{_editor=null;_lifecyclePromise=null;_throttledSave;_data;_lastDocumentVersion;_elementOrData;_editorAttachTo=null;_isSingleRootEditor=!0;_isUsingConfigBasedCreator=!1;_editables={};_config;_excludedProps;constructor(e,t={}){super(t),this._throttledSave=oc(this._save.bind(this),"number"==typeof t.saveInterval?t.saveInterval:5e3),e&&(this._creator=(t,o)=>void 0===o?e.create(t):e.create(t,o)),this._destructor=e=>e.destroy()}get editor(){return this._editor}get _item(){return this._editor}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}_restart(){return Promise.resolve().then((()=>(this.state="initializing",this._fire("stateChange"),this._destroy()))).catch((e=>{console.error("An error happened during the editor destroying.",e)})).then((()=>{this._isUsingConfigBasedCreator?ac(this._isSingleRootEditor?"":{},this._config,!!this._isSingleRootEditor&&"main"):ac(this._isSingleRootEditor?this._editorAttachTo||"":this._editables,this._config,!!this._isSingleRootEditor&&"main");const e={...this._config,extraPlugins:this._config.extraPlugins||[],_watchdogInitialData:this._data};e.extraPlugins.push(dc);const t={};for(const[o,i]of Object.entries(this._data.roots)){const n=e.roots[o]||Object.create(null);n.initialData="",i.isLoaded?n.lazyLoad=!1:delete n.modelAttributes,t[o]=n}if(e.roots=t,delete e.initialData,delete e.root,this._isUsingConfigBasedCreator)return this.create(e,e.context);const o=this._isSingleRootEditor?this._editorAttachTo||"":this._editables;return this.create(o,e,e.context)})).then((()=>{this._fire("restart")}))}create(e=(this._isUsingConfigBasedCreator?this._config:this._elementOrData),t=(this._isUsingConfigBasedCreator?void 0:this._config),o){const i=this._detectConfigBasedCreator(e,t),n=i?void 0:e,s=i?e:t,r=i?t:o;return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>{if(super._startErrorHandling(),this._isUsingConfigBasedCreator=i,this._elementOrData=n,this._config=this._cloneEditorConfiguration(s||{}),this._config.context=r,i){this._editorAttachTo=null;const e=this._config.roots?Object.keys(this._config.roots).length:0,t=this._config.initialData,o=t&&"object"==typeof t;this._isSingleRootEditor=!o&&e<=1}else this._editorAttachTo=uc(n)?n:null,this._isSingleRootEditor=uc(n)||"string"==typeof n;return i?this._creator(this._config):this._creator(n,this._config)})).then((e=>{this._editor=e,e.model.document.on("change:data",this._throttledSave),this._lastDocumentVersion=e.model.document.version,this._data=this._getData(),this._editorAttachTo||(this._editables=this._getEditables()),this.state="ready",this._fire("stateChange")})).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}destroy(){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy()))).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling(),this._throttledSave.cancel();const e=this._editor;return this._editor=null,e.model.document.off("change:data",this._throttledSave),this._destructor(e)}))}_save(){const e=this._editor.model.document.version;try{this._data=this._getData(),this._editorAttachTo||(this._editables=this._getEditables()),this._lastDocumentVersion=e}catch(e){console.error(e,"An error happened during restoring editor data. Editor will be restored from the previously saved data.")}}_setExcludedProperties(e){this._excludedProps=e}_getData(){const e=this._editor,t=e.model.document.roots.filter((e=>e.isAttached()&&"$graveyard"!=e.rootName)),{plugins:o}=e,i=o.has("CommentsRepository")&&o.get("CommentsRepository"),n=o.has("TrackChanges")&&o.get("TrackChanges"),s={roots:{},markers:{},commentThreads:JSON.stringify([]),suggestions:JSON.stringify([])};t.forEach((e=>{s.roots[e.rootName]={content:JSON.stringify(Array.from(e.getChildren())),attributes:JSON.stringify(Array.from(e.getAttributes())),isLoaded:e._isLoaded}}));for(const t of e.model.markers)t._affectsData&&(s.markers[t.name]={rangeJSON:t.getRange().toJSON(),usingOperation:t._managedUsingOperations,affectsData:t._affectsData});return i&&(s.commentThreads=JSON.stringify(i.getCommentThreads({toJSON:!0,skipNotAttached:!0}))),n&&(s.suggestions=JSON.stringify(n.getSuggestions({toJSON:!0,skipNotAttached:!0}))),s}_getEditables(){const e={};for(const t of this.editor.model.document.getRootNames()){const o=this.editor.ui.getEditableElement(t);o&&(e[t]=o)}return e}_isErrorComingFromThisItem(e){return rc(this._editor,e.context,this._excludedProps)}_detectConfigBasedCreator(e,t){if("string"==typeof e||uc(e))return!1;if(t&&"object"==typeof t&&!("destroy"in t)&&Object.keys(t).length>0)return!1;if(e&&"object"==typeof e){const t=Object.values(e);if(t.length>0&&t.every((e=>"string"==typeof e||uc(e))))return!1}return!0}_cloneEditorConfiguration(e){return N(e,((e,t)=>uc(e)||"context"===t?e:void 0))}}class dc{editor;_data;constructor(e){this.editor=e,this._data=e.config.get("_watchdogInitialData")}init(){this.editor.data.on("init",(e=>{e.stop(),this.editor.model.enqueueChange({isUndoable:!1},(e=>{this._restoreCollaborationData(),this._restoreEditorData(e)})),this.editor.data.fire("ready")}),{priority:999})}_createNode(e,t){if("name"in t){const o=e.createElement(t.name,t.attributes);if(t.children)for(const i of t.children)o._appendChild(this._createNode(e,i));return o}return e.createText(t.data,t.attributes)}_restoreEditorData(e){const t=this.editor;Object.entries(this._data.roots).forEach((([o,{content:i,attributes:n}])=>{const s=JSON.parse(i),r=JSON.parse(n),a=t.model.document.getRoot(o);for(const[t,o]of r)e.setAttribute(t,o,a);for(const t of s){const o=this._createNode(e,t);e.insert(o,a,"end")}})),Object.entries(this._data.markers).forEach((([o,i])=>{const{document:n}=t.model,{rangeJSON:{start:s,end:r},...a}=i,l=n.getRoot(s.root),c=e.createPositionFromPath(l,s.path,s.stickiness),d=e.createPositionFromPath(l,r.path,r.stickiness),u=e.createRange(c,d);e.addMarker(o,{range:u,...a})}))}_restoreCollaborationData(){const e=JSON.parse(this._data.commentThreads),t=JSON.parse(this._data.suggestions);if(this.editor.plugins.has("CommentsRepository")){const t=this.editor.plugins.get("CommentsRepository");for(const e of t.getCommentThreads())t._removeCommentThread({threadId:e.id});e.forEach((e=>{const t=this.editor.config.get("collaboration.channelId");this.editor.plugins.get("CommentsRepository").addCommentThread({channelId:t,...e})}))}if(this.editor.plugins.has("TrackChangesEditing")){const e=this.editor.plugins.get("TrackChangesEditing");for(const t of e.getSuggestions())e._removeSuggestion(t);t.forEach((t=>{e.addSuggestionData(t)}))}}}function uc(e){return L(e)}const hc=Symbol("MainQueueId");class mc extends ic{_watchdogs=new Map;_watchdogConfig;_context=null;_contextProps=new Set;_actionQueues=new gc;_contextConfig;_item;constructor(e,t={}){super(t),this._watchdogConfig=t,this._creator=t=>e.create(t),this._destructor=e=>e.destroy(),this._actionQueues.onEmpty((()=>{"initializing"===this.state&&(this.state="ready",this._fire("stateChange"))}))}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}get context(){return this._context}create(e={}){return this._actionQueues.enqueue(hc,(()=>(this._contextConfig=e,this._create())))}getItem(e){return this._getWatchdog(e)._item}getItemState(e){return this._getWatchdog(e).state}add(e){const t=pc(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e.id,(()=>{if("destroyed"===this.state)throw new Error("Cannot add items to destroyed watchdog.");if(!this._context)throw new Error("Context was not created yet. You should call the `ContextWatchdog#create()` method first.");let t;if(this._watchdogs.has(e.id))throw new Error(`Item with the given id is already added: '${e.id}'.`);if("editor"===e.type)return t=new cc(null,this._watchdogConfig),t.setCreator(e.creator),t._setExcludedProperties(this._contextProps),e.destructor&&t.setDestructor(e.destructor),this._watchdogs.set(e.id,t),t.on("error",((o,{error:i,causesRestart:n})=>{this._fire("itemError",{itemId:e.id,error:i}),n&&this._actionQueues.enqueue(e.id,(()=>new Promise((o=>{const i=()=>{t.off("restart",i),this._fire("itemRestart",{itemId:e.id}),o()};t.on("restart",i)}))))})),void 0!==e.sourceElementOrData?t.create(e.sourceElementOrData,e.config,this._context):t.create(e.config,this._context);throw new Error(`Not supported item type: '${e.type}'.`)})))))}remove(e){const t=pc(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e,(()=>{const t=this._getWatchdog(e);return this._watchdogs.delete(e),t.destroy()})))))}destroy(){return this._actionQueues.enqueue(hc,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(hc,(()=>(this.state="initializing",this._fire("stateChange"),this._destroy().catch((e=>{console.error("An error happened during destroying the context or items.",e)})).then((()=>this._create())).then((()=>this._fire("restart"))))))}_create(){return Promise.resolve().then((()=>(this._startErrorHandling(),this._creator(this._contextConfig)))).then((e=>(this._context=e,this._contextProps=nc(this._context),Promise.all(Array.from(this._watchdogs.values()).map((e=>(e._setExcludedProperties(this._contextProps),e._isUsingConfigBasedCreator?e.create(void 0,this._context):e.create(void 0,void 0,this._context))))))))}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling();const e=this._context;return this._context=null,this._contextProps=new Set,Promise.all(Array.from(this._watchdogs.values()).map((e=>e.destroy()))).then((()=>this._destructor(e)))}))}_getWatchdog(e){const t=this._watchdogs.get(e);if(!t)throw new Error(`Item with the given id was not registered: ${e}.`);return t}_isErrorComingFromThisItem(e){for(const t of this._watchdogs.values())if(t._isErrorComingFromThisItem(e))return!1;return rc(this._context,e.context)}}class gc{_onEmptyCallbacks=[];_queues=new Map;_activeActions=0;onEmpty(e){this._onEmptyCallbacks.push(e)}enqueue(e,t){const o=e===hc;this._activeActions++,this._queues.get(e)||this._queues.set(e,Promise.resolve());const i=(o?Promise.all(this._queues.values()):Promise.all([this._queues.get(hc),this._queues.get(e)])).then(t),n=i.catch((()=>{}));return this._queues.set(e,n),i.finally((()=>{this._activeActions--,this._queues.get(e)===n&&0===this._activeActions&&this._onEmptyCallbacks.forEach((e=>e()))}))}}function pc(e){return Array.isArray(e)?e:[e]}class fc extends(Be()){editor;_disableStack=new Set;constructor(e){super(),this.editor=e,this.set("isEnabled",!0)}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",bc,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",bc),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}function bc(e){e.return=!1,e.stop()}class wc extends(Be()){editor;_isEnabledBasedOnSelection;_affectsData;_disableStack;static get _throwErrorWhenUsedAsAPlugin(){return!0}constructor(e){super(),this.editor=e,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._isEnabledBasedOnSelection=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.listenTo(e,"change:isReadOnly",(()=>{this.refresh()})),this.on("set:isEnabled",(t=>{if(!this.affectsData)return;const o=e.model.document.selection,i=!("$graveyard"==o.getFirstPosition().root.rootName)&&e.model.canEditAt(o);(e.isReadOnly||this._isEnabledBasedOnSelection&&!i)&&(t.return=!1,t.stop())}),{priority:"highest"}),this.on("execute",(e=>{this.isEnabled||e.stop()}),{priority:"high"})}get affectsData(){return this._affectsData}set affectsData(e){this._affectsData=e}refresh(){this.isEnabled=!0}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",yc,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",yc),this.refresh())}execute(...e){}destroy(){this.stopListening()}}function yc(e){e.return=!1,e.stop()}class _c{_commands;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 fe("commandcollection-command-not-found",this,{commandName:e});return 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()}}class kc extends(xe()){_context;_plugins=new Map;_availablePlugins;_contextPlugins;constructor(e,t=[],o=[]){super(),this._context=e,this._availablePlugins=new Map;for(const e of t)e.pluginName&&this._availablePlugins.set(e.pluginName,e);this._contextPlugins=new Map;for(const[e,t]of o)this._contextPlugins.set(e,t),this._contextPlugins.set(t,e),e.pluginName&&this._availablePlugins.set(e.pluginName,e)}*[Symbol.iterator](){for(const e of this._plugins)"function"==typeof e[0]&&(yield e)}get(e){const t=this._plugins.get(e);if(!t){let t=e;throw"function"==typeof e&&(t=e.pluginName||e.name),new fe("plugincollection-plugin-not-loaded",this._context,{plugin:t})}return t}has(e){return this._plugins.has(e)}async init(e,t=[],o=[]){const i=this,n=this._context;!function e(t,o=new Set){t.forEach((t=>{a(t)&&(o.has(t)||(o.add(t),t.pluginName&&!i._availablePlugins.has(t.pluginName)&&i._availablePlugins.set(t.pluginName,t),t.requires&&e(t.requires,o)))}))}(e),u(e);const s=[...function e(t,o=new Set){return t.map((e=>a(e)?e:i._availablePlugins.get(e))).reduce(((t,i)=>o.has(i)?t:(o.add(i),i.requires&&(u(i.requires,i),e(i.requires,o).forEach((e=>t.add(e)))),t.add(i))),new Set)}(e.filter((e=>!c(e,t))))];!function(e,t){for(const o of t){if("function"!=typeof o)throw new fe("plugincollection-replace-plugin-invalid-type",null,{pluginItem:o});const t=o.pluginName;if(!t)throw new fe("plugincollection-replace-plugin-missing-name",null,{pluginItem:o});if(o.requires&&o.requires.length)throw new fe("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:t});const n=i._availablePlugins.get(t);if(!n)throw new fe("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:t});const s=e.indexOf(n);if(-1===s){if(i._contextPlugins.has(n))return;throw new fe("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:t})}if(n.requires&&n.requires.length)throw new fe("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:t});e.splice(s,1,o),i._availablePlugins.set(t,o)}}(s,o);const r=function(e){return e.map((e=>{let t=i._contextPlugins.get(e);return t=t||new e(n),i._add(e,t),t}))}(s);return await h(r,"init"),await h(r,"afterInit"),r;function a(e){return"function"==typeof e}function l(e){return a(e)&&!!e.isContextPlugin}function c(e,t){return t.some((t=>t===e||(d(e)===t||d(t)===e)))}function d(e){return a(e)?e.pluginName||e.name:e}function u(e,o=null){e.map((e=>a(e)?e:i._availablePlugins.get(e)||e)).forEach((e=>{!function(e){if("function"!=typeof e)return;if(e._throwErrorWhenUsedAsAPlugin)throw new fe("plugincollection-plugin-invalid-constructor",n,{name:e.name})}(e),function(e,t){if(a(e))return;if(t)throw new fe("plugincollection-soft-required",n,{missingPlugin:e,requiredBy:d(t)});throw new fe("plugincollection-plugin-not-found",n,{plugin:e})}(e,o),function(e,t){if(!l(t))return;if(l(e))return;throw new fe("plugincollection-context-required",n,{plugin:d(e),requiredBy:d(t)})}(e,o),function(e,o){if(!o)return;if(!c(e,t))return;throw new fe("plugincollection-required",n,{plugin:d(e),requiredBy:d(o)})}(e,o)}))}function h(e,t){return e.reduce(((e,o)=>o[t]?i._contextPlugins.has(o)?e:e.then(o[t].bind(o)):e),Promise.resolve())}}destroy(){const e=[];for(const[,t]of this)"function"!=typeof t.destroy||this._contextPlugins.has(t)||e.push(t.destroy());return Promise.all(e)}_add(e,t){this._plugins.set(e,t);const o=e.pluginName;if(o){if(this._plugins.has(o))throw new fe("plugincollection-plugin-name-conflict",null,{pluginName:o,plugin1:this._plugins.get(o).constructor,plugin2:e});this._plugins.set(o,t)}}}class vc{config;plugins;locale;t;editors;static defaultConfig;static builtinPlugins;_contextOwner=null;constructor(e){const{translations:t,...o}=e||{};this.config=new Ge(o,this.constructor.defaultConfig);const i=this.constructor.builtinPlugins;this.config.define("plugins",i),this.plugins=new kc(this,i);const n=this.config.get("language")||{};this.locale=new Xt({uiLanguage:"string"==typeof n?n:n.ui,contentLanguage:this.config.get("language.content"),translations:t}),this.t=this.locale.t,this.editors=new eo}initPlugins(){const e=this.config.get("plugins")||[],t=this.config.get("substitutePlugins")||[];for(const o of e.concat(t)){if("function"!=typeof o)throw new fe("context-initplugins-constructor-only",null,{Plugin:o});if(!0!==o.isContextPlugin)throw new fe("context-initplugins-invalid-plugin",null,{Plugin:o})}return this.plugins.init(e,[],t)}destroy(){return Promise.all(Array.from(this.editors,(e=>e.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(e,t){if(this._contextOwner)throw new fe("context-addeditor-private-context");this.editors.add(e),t&&(this._contextOwner=e)}_removeEditor(e){return this.editors.has(e)&&this.editors.remove(e),this._contextOwner===e?this.destroy():Promise.resolve()}_getEditorConfig(){const e={};for(const t of this.config.names())["plugins","removePlugins","extraPlugins"].includes(t)||(e[t]=this.config.get(t));return e}static create(e){return new Promise((t=>{const o=new this(e);t(o.initPlugins().then((()=>o)))}))}static get _throwErrorWhenUsedAsAPlugin(){return!0}}class Cc extends(Be()){context;constructor(e){super(),this.context=e}destroy(){this.stopListening()}static get isContextPlugin(){return!0}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}class Ac extends ro{editor;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)}}const xc="contentEditing",Ec="common";class Tc{keystrokeInfos=new Map;_editor;constructor(e){this._editor=e;const t=e.config.get("menuBar.isVisible"),o=e.locale.t;this.addKeystrokeInfoCategory({id:xc,label:o("Content editing keystrokes"),description:o("These keyboard shortcuts allow for quick access to content editing features.")});const i=[{label:o("Close contextual balloons, dropdowns, and dialogs"),keystroke:"Esc"},{label:o("Open the accessibility help dialog"),keystroke:"Alt+0"},{label:o("Move focus between form fields (inputs, buttons, etc.)"),keystroke:[["Tab"],["Shift+Tab"]]},{label:o("Move focus to the toolbar, navigate between toolbars"),keystroke:"Alt+F10",mayRequireFn:!0},{label:o("Navigate through the toolbar or menu bar"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]},{label:o("Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content."),keystroke:[["Enter"],["Space"]]}];t&&i.push({label:o("Move focus to the menu bar, navigate between menu bars"),keystroke:"Alt+F9",mayRequireFn:!0}),this.addKeystrokeInfoCategory({id:"navigation",label:o("User interface and content navigation keystrokes"),description:o("Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface."),groups:[{id:"common",keystrokes:i}]})}addKeystrokeInfoCategory({id:e,label:t,description:o,groups:i}){this.keystrokeInfos.set(e,{id:e,label:t,description:o,groups:new Map}),this.addKeystrokeInfoGroup({categoryId:e,id:Ec}),i&&i.forEach((t=>{this.addKeystrokeInfoGroup({categoryId:e,...t})}))}addKeystrokeInfoGroup({categoryId:e=xc,id:t,label:o,keystrokes:i}){const n=this.keystrokeInfos.get(e);if(!n)throw new fe("accessibility-unknown-keystroke-info-category",this._editor,{groupId:t,categoryId:e});n.groups.set(t,{id:t,label:o,keystrokes:i||[]})}addKeystrokeInfos({categoryId:e=xc,groupId:t=Ec,keystrokes:o}){if(!this.keystrokeInfos.has(e))throw new fe("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:e,keystrokes:o});const i=this.keystrokeInfos.get(e);if(!i.groups.has(t))throw new fe("accessibility-unknown-keystroke-info-group",this._editor,{groupId:t,categoryId:e,keystrokes:o});i.groups.get(t).keystrokes.push(...o)}}function Pc(e){return Object.getPrototypeOf(e).constructor.editorName}function Sc(e){if(!e)return;const t=Array.isArray(e)?{items:e}:e,o=function e(t){return t.flatMap((t=>"string"==typeof t?[t]:e(t.items)))}(t.items||[]);return{isMultiline:o.includes("-"),shouldNotGroupWhenFull:!!t.shouldNotGroupWhenFull,items:(i=o,i.filter((e=>"|"!==e&&"-"!==e)))};var i}function Ic(){let e="unknown",t="unknown";return Y.isMac?e="mac":Y.isWindows?e="windows":Y.isiOS?e="ios":Y.isAndroid&&(e="android"),Y.isGecko?t="gecko":Y.isBlink?t="blink":Y.isSafari&&(t="safari"),{os:e,browser:t}}function Rc(){return localStorage.getItem("__ckeditor-session-id")||localStorage.setItem("__ckeditor-session-id",me()),localStorage.getItem("__ckeditor-session-id")}function Oc(){return J.window.CKEDITOR_PAGE_SESSION_ID=J.window.CKEDITOR_PAGE_SESSION_ID||me(),J.window.CKEDITOR_PAGE_SESSION_ID}class Vc extends(Be()){static get editorName(){return"Editor"}accessibility;commands;config;conversion;data;editing;locale;model;plugins;keystrokes;t;static defaultConfig;static builtinPlugins;_context;_readOnlyLocks;static get _throwErrorWhenUsedAsAPlugin(){return!0}constructor(e={}){if(super(),"object"!=typeof e||Array.isArray(e))throw new fe("editor-config-invalid-type");if("sanitizeHtml"in e)throw new fe("editor-config-sanitizehtml-not-supported");const t=this.constructor,{translations:o,...i}=t.defaultConfig||{},{translations:n=o,...s}=e,r=e.language||i.language;this._context=e.context||new vc({language:r,translations:n}),this._context._addEditor(this,!e.context);const a=Array.from(t.builtinPlugins||[]);this.config=new Ge(s,i),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),function(e){let t=e.get("licenseKey");!t&&window.CKEDITOR_GLOBAL_LICENSE_KEY&&(t=window.CKEDITOR_GLOBAL_LICENSE_KEY,e.set("licenseKey",t));if(!t)throw new fe("license-key-missing")}(this.config),this.plugins=new kc(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new _c,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new el(this.config),this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const l=new pi;this.data=new Rr(this.model,l),this.editing=new hr(this.model,l),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Or([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Ac(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new Tc(this),function(e){const t=e.config.get("licenseKey"),o=window[Symbol.for("cke distribution")]||"sh";function i(t,o){e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError(t,o)}if("GPL"==t)return void("cloud"==o&&i("distributionChannel"));const n=bo(t);if(!n)return void i("invalid");if(!function(e){return["exp","jti","vc"].every((t=>t in e))}(n))return void i("invalid");if(n.distributionChannel&&!Qt(n.distributionChannel).includes(o))return void i("distributionChannel");if(function(e){const t=Array.isArray(e)?e:[e],o=function(){const e=[];for(let t=0;t<256;t++){let o=t;for(let e=0;e<8;e++)1&o?o=3988292384^o>>>1:o>>>=1;e[t]=o}return e}();let i=-1;const n=t.map((e=>Array.isArray(e)?e.join(""):String(e))).join("");for(let e=0;e>>8^o[255&(i^n.charCodeAt(e))];return i=~i>>>0,i.toString(16).padStart(8,"0")}(function(e){return Object.getOwnPropertyNames(e).sort().filter((t=>"vc"!=t&&null!=e[t])).map((t=>e[t]))}(n))!=n.vc.toLowerCase())return void i("invalid");if(new Date(1e3*n.exp)<_e)return void i("expired");const s=n.licensedHosts;if(s&&s.length>0&&!function(e){const{hostname:t}=new URL(window.location.href);if(e.includes(t))return!0;const o=t.split(".");return e.filter((e=>e.includes("*"))).map((e=>e.split("."))).filter((e=>e.length<=o.length)).map((e=>Array(o.length-e.length).fill("*"===e[0]?"*":"").concat(e))).some((e=>o.every(((t,o)=>e[o]===t||"*"===e[o]))))}(s))return void i("domainLimit");if(["evaluation","trial"].includes(n.licenseType)&&1e3*n.exp{i("evaluationLimit")}),6e5);e.on("destroy",(()=>{clearTimeout(t)}))}n.usageEndpoint&&e.once("ready",(()=>{const o={requestId:me(),requestTime:Math.round(Date.now()/1e3),license:t,editor:Dc(e)};e._sendUsageRequest(n.usageEndpoint,o).then((e=>{const{status:t,message:o}=e;o&&console.warn(o),"ok"!=t&&i("usageLimit")}),(()=>{var e,t;e="license-key-validation-endpoint-not-reachable",t={url:n.usageEndpoint},console.error(...ye(e,t))}))}),{priority:"high"})}(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(e){throw new fe("editor-isreadonly-has-no-setter")}enableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new fe("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)||(this._readOnlyLocks.add(e),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new fe("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)&&(this._readOnlyLocks.delete(e),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}setData(e){this.data.set(e)}getData(e){return this.data.get(e)}initPlugins(){const e=this.config,t=e.get("plugins"),o=e.get("removePlugins")||[],i=e.get("extraPlugins")||[],n=e.get("substitutePlugins")||[];return this.plugins.init(t.concat(i),o,n).then((e=>(function(e){const t=e.config.get("licenseKey");if("GPL"===t)return;const o=bo(t);if(!o)return;const i=[...e.plugins].map((([e])=>e)).find((e=>{return!!e.pluginName&&(!!e.licenseFeatureCode&&(t=o,i=e.licenseFeatureCode,(t.removeFeatures||[]).includes(i)));var t,i}));i&&(e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError("pluginNotAllowed",i.pluginName))}(this),e)))}destroy(){let e=Promise.resolve();return"initializing"==this.state&&(e=new Promise((e=>this.once("ready",e)))),e.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(e,...t){try{return this.commands.execute(e,...t)}catch(e){fe.rethrowUnexpectedError(e,this)}}focus(){this.editing.view.focus()}static create(...e){throw new Error("This is an abstract method.")}static Context=vc;static EditorWatchdog=cc;static ContextWatchdog=mc;_showLicenseError(e,t){setTimeout((()=>{if("invalid"==e)throw new fe("invalid-license-key");if("expired"==e)throw new fe("license-key-expired");if("domainLimit"==e)throw new fe("license-key-domain-limit");if("pluginNotAllowed"==e){const e=t.replace(/(Editing|UI)$/,""),o=this.plugins.has(e);throw new fe("license-key-plugin-not-allowed",null,{pluginName:o?e:t})}if("featureNotAllowed"==e)throw new fe("license-key-feature-not-allowed",null,{featureName:t});if("evaluationLimit"==e)throw new fe("license-key-evaluation-limit");if("trialLimit"==e)throw new fe("license-key-trial-limit");if("developmentLimit"==e)throw new fe("license-key-development-limit");if("usageLimit"==e)throw new fe("license-key-usage-limit");if("distributionChannel"==e)throw new fe("license-key-invalid-distribution-channel")}),0),this._showLicenseError=()=>{}}async _sendUsageRequest(e,t){const o=new Headers({"Content-Type":"application/json"}),i=await fetch(new URL(e),{method:"POST",headers:o,body:JSON.stringify(t)});if(!i.ok)throw new Error(`HTTP Response: ${i.status}`);return i.json()}}function Dc(e){const t=function(e){return{sessionId:Rc(),pageSessionId:Oc(),hostname:window.location.hostname,version:globalThis.CKEDITOR_VERSION,type:Pc(e),plugins:(t=e.plugins,Array.from(t).filter((([e])=>!!e.pluginName)).map((([e])=>{const{pluginName:t,isContextPlugin:o,isOfficialPlugin:i,isPremiumPlugin:n}=e;return{isContext:!!o,isOfficial:!!i,isPremium:!!n,name:t}}))),distribution:{channel:window[Symbol.for("cke distribution")]||"sh"},env:Ic(),integration:Object.create(null),menuBar:{isVisible:!!e.config.get("menuBar.isVisible")},language:{ui:e.locale.uiLanguage,content:e.locale.contentLanguage},toolbar:{main:Sc(e.config.get("toolbar")),block:Sc(e.config.get("blockToolbar")),balloon:Sc(e.config.get("balloonToolbar"))}};var t}(e);return e.fire("collectUsageData",{setUsageData:function(e,o){if(void 0!==vo(t,e))throw new fe("editor-usage-data-path-already-set",{path:e});Ro(t,e,o)}}),t}function Fc(e){return class extends e{sourceElement;updateSourceElement(e){if(!this.sourceElement)throw new fe("editor-missing-sourceelement",this);const t=this.config.get("updateSourceElementOnDestroy"),o=this.sourceElement instanceof HTMLTextAreaElement;if(!t&&!o)return void wt(this.sourceElement,"");const i="string"==typeof e?e:this.data.get();wt(this.sourceElement,i)}}}function Mc(e,t,o="main",i=!1){const n=t.get("root"),s=t.get("roots")||Object.create(null);if(n){if(!o)throw new fe("editor-create-multi-root-with-main",null);if(o in s)throw new fe("editor-create-roots-with-main",null)}o&&!s[o]&&(s[o]=n||Object.create(null));const r=function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&!Bc(e)}(e),a=function(e,t,o){return t||!o?e.get("initialData")||Object.create(null):{[o]:e.get("initialData")}}(t,r,o),l=Array.from(new Set([...r?Object.keys(e):[],...Object.keys(s),...Object.keys(a)]));for(const o of l){const n=s[o]||Object.create(null),l=r?e[o]:e;if(!i&&Bc(l)){if(n.element)throw new fe("editor-create-root-element-overspecified",null);n.element=l}if(i&&Bc(n.element)&&be("editor-create-root-element-not-supported"),void 0===n.initialData)if(void 0===a[o])n.initialData=Bc(d=l||n.element||i&&t.get("attachTo")||"")?(c=d)instanceof HTMLTextAreaElement?c.value:c.innerHTML:d;else{if(l&&!Bc(l))throw new fe("editor-create-initial-data-overspecified",null);n.initialData=a[o]}else{if(l&&!Bc(l))throw new fe("editor-create-root-initial-data-overspecified",null);if(void 0!==a[o])throw new fe("editor-create-legacy-initial-data-overspecified",null)}n.placeholder??=Nc(t,"placeholder",o),n.label??=Nc(t,"label",o),s[o]=n}var c,d;if(i&&Bc(e)){if(t.get("attachTo"))throw new fe("editor-create-attachto-overspecified",null);t.set("attachTo",e)}if(!i&&t.get("attachTo"))throw new fe("editor-create-attachto-ignored",null);t.set("roots",s)}function Nc(e,t,o){const i=e.get(t);if(i)return"string"==typeof i?i:i[o]}function Bc(e){return L(e)}class Lc extends Cc{_actions;static get pluginName(){return"PendingActions"}static get isOfficialPlugin(){return!0}init(){this.set("hasAny",!1),this._actions=new eo({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(e){if("string"!=typeof e)throw new fe("pendingactions-add-invalid-message",this);const t=new(Be());return t.set("message",e),this._actions.add(t),this.hasAny=!0,t}remove(e){this._actions.remove(e),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}var zc='',jc='',$c='',qc='',Hc='',Wc='',Uc='',Kc='',Gc='',Jc='',Zc='',Qc='',Yc='',Xc='',ed='',td='',od='',id='',nd='';const sd={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const e in sd)Object.freeze(sd[e]);const rd=Object.freeze(sd),ad=function(e){var t,o,i=[],n=1;if("number"==typeof e)return{space:"rgb",values:[e>>>16,(65280&e)>>>8,255&e],alpha:1};if("number"==typeof e)return{space:"rgb",values:[e>>>16,(65280&e)>>>8,255&e],alpha:1};if(e=String(e).toLowerCase(),rd[e])i=rd[e].slice(),o="rgb";else if("transparent"===e)n=0,o="rgb",i=[0,0,0];else if("#"===e[0]){var s=e.slice(1),r=s.length;n=1,r<=4?(i=[parseInt(s[0]+s[0],16),parseInt(s[1]+s[1],16),parseInt(s[2]+s[2],16)],4===r&&(n=parseInt(s[3]+s[3],16)/255)):(i=[parseInt(s[0]+s[1],16),parseInt(s[2]+s[3],16),parseInt(s[4]+s[5],16)],8===r&&(n=parseInt(s[6]+s[7],16)/255)),i[0]||(i[0]=0),i[1]||(i[1]=0),i[2]||(i[2]=0),o="rgb"}else if(t=/^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\s*\(([^\)]*)\)/.exec(e)){var a=t[1],l="cmyk"===(o=a.replace(/a$/,""))?4:"gray"===o?1:3;i=t[2].trim().split(/\s*[,\/]\s*|\s+/),"color"===o&&(o=i.shift()),n=(i=i.map((function(e,t){if("%"===e[e.length-1])return e=parseFloat(e)/100,3===t?e:"rgb"===o?255*e:"h"===o[0]?100*e:"l"!==o[0]||t?"lab"===o?125*e:"lch"===o?t<2?150*e:360*e:"o"!==o[0]||t?"oklab"===o?.4*e:"oklch"===o?t<2?.4*e:360*e:e:e:100*e;if("h"===o[t]||2===t&&"h"===o[o.length-1]){if(void 0!==ld[e])return ld[e];if(e.endsWith("deg"))return parseFloat(e);if(e.endsWith("turn"))return 360*parseFloat(e);if(e.endsWith("grad"))return 360*parseFloat(e)/400;if(e.endsWith("rad"))return 180*parseFloat(e)/Math.PI}return"none"===e?0:parseFloat(e)}))).length>l?i.pop():1}else/[0-9](?:\s|\/|,)/.test(e)&&(i=e.match(/([0-9]+)/g).map((function(e){return parseFloat(e)})),o=e.match(/([a-z])/gi)?.join("")?.toLowerCase()||"rgb");return{space:o,values:i,alpha:n}};var ld={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};const cd={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const e in cd)Object.freeze(cd[e]);const dd=Object.freeze(cd),ud={};for(const e of Object.keys(dd))ud[dd[e]]=e;const hd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},md=hd,gd=(6/29)**3;function pd(e){const t=e>.0031308?1.055*e**(1/2.4)-.055:12.92*e;return Math.min(Math.max(0,t),1)}function fd(e){return e>.04045?((e+.055)/1.055)**2.4:e/12.92}for(const e of Object.keys(hd)){if(!("channels"in hd[e]))throw new Error("missing channels property: "+e);if(!("labels"in hd[e]))throw new Error("missing channel labels property: "+e);if(hd[e].labels.length!==hd[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:o}=hd[e];delete hd[e].channels,delete hd[e].labels,Object.defineProperty(hd[e],"channels",{value:t}),Object.defineProperty(hd[e],"labels",{value:o})}function bd(e){const t=function(){const e={},t=Object.keys(md);for(let{length:o}=t,i=0;i0;){const e=o.pop(),i=Object.keys(md[e]);for(let{length:n}=i,s=0;s1&&(n-=1)}return[360*n,100*s,100*c]},hd.rgb.hwb=function(e){const t=e[0],o=e[1];let i=e[2];const n=hd.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(o,i));return i=1-1/255*Math.max(t,Math.max(o,i)),[n,100*s,100*i]},hd.rgb.oklab=function(e){const t=fd(e[0]/255),o=fd(e[1]/255),i=fd(e[2]/255),n=Math.cbrt(.4122214708*t+.5363325363*o+.0514459929*i),s=Math.cbrt(.2119034982*t+.6806995451*o+.1073969566*i),r=Math.cbrt(.0883024619*t+.2817188376*o+.6299787005*i);return[100*(.2104542553*n+.793617785*s-.0040720468*r),100*(1.9779984951*n-2.428592205*s+.4505937099*r),100*(.0259040371*n+.7827717662*s-.808675766*r)]},hd.rgb.cmyk=function(e){const t=e[0]/255,o=e[1]/255,i=e[2]/255,n=Math.min(1-t,1-o,1-i);return[100*((1-t-n)/(1-n)||0),100*((1-o-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hd.rgb.keyword=function(e){const t=ud[e];if(t)return t;let o,i=Number.POSITIVE_INFINITY;for(const t of Object.keys(dd)){const r=dd[t],a=(s=r,((n=e)[0]-s[0])**2+(n[1]-s[1])**2+(n[2]-s[2])**2);agd?o**(1/3):7.787*o+16/116,i=i>gd?i**(1/3):7.787*i+16/116,n=n>gd?n**(1/3):7.787*n+16/116;return[116*i-16,500*(o-i),200*(i-n)]},hd.hsl.rgb=function(e){const t=e[0]/360,o=e[1]/100,i=e[2]/100;let n,s;if(0===o)return s=255*i,[s,s,s];const r=i<.5?i*(1+o):i+o-i*o,a=2*i-r,l=[0,0,0];for(let e=0;e<3;e++)n=t+1/3*-(e-1),n<0&&n++,n>1&&n--,s=6*n<1?a+6*(r-a)*n:2*n<1?r:3*n<2?a+(r-a)*(2/3-n)*6:a,l[e]=255*s;return l},hd.hsl.hsv=function(e){const t=e[0];let o=e[1]/100,i=e[2]/100,n=o;const s=Math.max(i,.01);i*=2,o*=i<=1?i:2-i,n*=s<=1?s:2-s;return[t,100*(0===i?2*n/(s+n):2*o/(i+o)),100*((i+o)/2)]},hd.hsv.rgb=function(e){const t=e[0]/60,o=e[1]/100;let i=e[2]/100;const n=Math.floor(t)%6,s=t-Math.floor(t),r=255*i*(1-o),a=255*i*(1-o*s),l=255*i*(1-o*(1-s));switch(i*=255,n){case 0:return[i,l,r];case 1:return[a,i,r];case 2:return[r,i,l];case 3:return[r,a,i];case 4:return[l,r,i];case 5:return[i,r,a]}},hd.hsv.hsl=function(e){const t=e[0],o=e[1]/100,i=e[2]/100,n=Math.max(i,.01);let s,r;r=(2-o)*i;const a=(2-o)*n;return s=o*n,s/=a<=1?a:2-a,s=s||0,r/=2,[t,100*s,100*r]},hd.hwb.rgb=function(e){const t=e[0]/360;let o=e[1]/100,i=e[2]/100;const n=o+i;let s;n>1&&(o/=n,i/=n);const r=Math.floor(6*t),a=1-i;s=6*t-r,1&r&&(s=1-s);const l=o+s*(a-o);let c,d,u;switch(r){default:case 6:case 0:c=a,d=l,u=o;break;case 1:c=l,d=a,u=o;break;case 2:c=o,d=a,u=l;break;case 3:c=o,d=l,u=a;break;case 4:c=l,d=o,u=a;break;case 5:c=a,d=o,u=l}return[255*c,255*d,255*u]},hd.cmyk.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=e[3]/100;return[255*(1-Math.min(1,t*(1-n)+n)),255*(1-Math.min(1,o*(1-n)+n)),255*(1-Math.min(1,i*(1-n)+n))]},hd.xyz.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100;let n,s,r;return n=3.2404542*t+-1.5371385*o+-.4985314*i,s=-.969266*t+1.8760108*o+.041556*i,r=.0556434*t+-.2040259*o+1.0572252*i,n=pd(n),s=pd(s),r=pd(r),[255*n,255*s,255*r]},hd.xyz.lab=function(e){let t=e[0],o=e[1],i=e[2];t/=95.047,o/=100,i/=108.883,t=t>gd?t**(1/3):7.787*t+16/116,o=o>gd?o**(1/3):7.787*o+16/116,i=i>gd?i**(1/3):7.787*i+16/116;return[116*o-16,500*(t-o),200*(o-i)]},hd.xyz.oklab=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=Math.cbrt(.8189330101*t+.3618667424*o-.1288597137*i),s=Math.cbrt(.0329845436*t+.9293118715*o+.0361456387*i),r=Math.cbrt(.0482003018*t+.2643662691*o+.633851707*i);return[100*(.2104542553*n+.793617785*s-.0040720468*r),100*(1.9779984951*n-2.428592205*s+.4505937099*r),100*(.0259040371*n+.7827717662*s-.808675766*r)]},hd.oklab.oklch=function(e){return hd.lab.lch(e)},hd.oklab.xyz=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=(.999999998*t+.396337792*o+.215803758*i)**3,s=(1.000000008*t-.105561342*o-.063854175*i)**3,r=(1.000000055*t-.089484182*o-1.291485538*i)**3;return[100*(1.227013851*n-.55779998*s+.281256149*r),100*(-.040580178*n+1.11225687*s-.071676679*r),100*(-.076381285*n-.421481978*s+1.58616322*r)]},hd.oklab.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=(t+.3963377774*o+.2158037573*i)**3,s=(t-.1055613458*o-.0638541728*i)**3,r=(t-.0894841775*o-1.291485548*i)**3;return[255*pd(4.0767416621*n-3.3077115913*s+.2309699292*r),255*pd(-1.2684380046*n+2.6097574011*s-.3413193965*r),255*pd(-.0041960863*n-.7034186147*s+1.707614701*r)]},hd.oklch.oklab=function(e){return hd.lch.lab(e)},hd.lab.xyz=function(e){let t,o,i;o=(e[0]+16)/116,t=e[1]/500+o,i=o-e[2]/200;const n=o**3,s=t**3,r=i**3;return o=n>gd?n:(o-16/116)/7.787,t=s>gd?s:(t-16/116)/7.787,i=r>gd?r:(i-16/116)/7.787,t*=95.047,o*=100,i*=108.883,[t,o,i]},hd.lab.lch=function(e){const t=e[0],o=e[1],i=e[2];let n;n=360*Math.atan2(i,o)/2/Math.PI,n<0&&(n+=360);return[t,Math.sqrt(o*o+i*i),n]},hd.lch.lab=function(e){const t=e[0],o=e[1],i=e[2]/360*2*Math.PI;return[t,o*Math.cos(i),o*Math.sin(i)]},hd.rgb.ansi16=function(e,t=null){const[o,i,n]=e;let s=null===t?hd.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let r=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(o/255));return 2===s&&(r+=60),r},hd.hsv.ansi16=function(e){return hd.rgb.ansi16(hd.hsv.rgb(e),e[2])},hd.rgb.ansi256=function(e){const t=e[0],o=e[1],i=e[2];if(t>>4==o>>4&&o>>4==i>>4)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(o/255*5)+Math.round(i/255*5)},hd.ansi16.rgb=function(e){let t=(e=e[0])%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const o=.5*(Math.trunc(e>50)+1);return[(1&t)*o*255,(t>>1&1)*o*255,(t>>2&1)*o*255]},hd.ansi256.rgb=function(e){if((e=e[0])>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},hd.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".slice(t.length)+t},hd.hex.rgb=function(e){const t=e.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!t)return[0,0,0];let o=t[0];3===t[0].length&&(o=[...o].map((e=>e+e)).join(""));const i=Number.parseInt(o,16);return[i>>16&255,i>>8&255,255&i]},hd.rgb.hcg=function(e){const t=e[0]/255,o=e[1]/255,i=e[2]/255,n=Math.max(Math.max(t,o),i),s=Math.min(Math.min(t,o),i),r=n-s;let a;return a=r<=0?0:n===t?(o-i)/r%6:n===o?2+(i-t)/r:4+(t-o)/r,a/=6,a%=1,[360*a,100*r,100*(r<1?s/(1-r):0)]},hd.hsl.hcg=function(e){const t=e[1]/100,o=e[2]/100,i=o<.5?2*t*o:2*t*(1-o);let n=0;return i<1&&(n=(o-.5*i)/(1-i)),[e[0],100*i,100*n]},hd.hsv.hcg=function(e){const t=e[1]/100,o=e[2]/100,i=t*o;let n=0;return i<1&&(n=(o-i)/(1-i)),[e[0],100*i,100*n]},hd.hcg.rgb=function(e){const t=e[0]/360,o=e[1]/100,i=e[2]/100;if(0===o)return[255*i,255*i,255*i];const n=[0,0,0],s=t%1*6,r=s%1,a=1-r;let l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=r,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=r;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=r,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-o)*i,[255*(o*n[0]+l),255*(o*n[1]+l),255*(o*n[2]+l)]},hd.hcg.hsv=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);let i=0;return o>0&&(i=t/o),[e[0],100*i,100*o]},hd.hcg.hsl=function(e){const t=e[1]/100,o=e[2]/100*(1-t)+.5*t;let i=0;return o>0&&o<.5?i=t/(2*o):o>=.5&&o<1&&(i=t/(2*(1-o))),[e[0],100*i,100*o]},hd.hcg.hwb=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);return[e[0],100*(o-t),100*(1-o)]},hd.hwb.hcg=function(e){const t=e[1]/100,o=1-e[2]/100,i=o-t;let n=0;return i<1&&(n=(o-i)/(1-i)),[e[0],100*i,100*n]},hd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},hd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},hd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},hd.gray.hsl=function(e){return[0,0,e[0]]},hd.gray.hsv=hd.gray.hsl,hd.gray.hwb=function(e){return[0,100,e[0]]},hd.gray.cmyk=function(e){return[0,0,0,e[0]]},hd.gray.lab=function(e){return[e[0],0,0]},hd.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),o=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".slice(o.length)+o},hd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};const _d=function(e){const t=bd(e),o={},i=Object.keys(t);for(let{length:e}=i,n=0;n1&&(t=o),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function Ad(e){const t=function(...t){const o=t[0];if(null==o)return o;o.length>1&&(t=o);const i=e(t);if("object"==typeof i)for(let{length:e}=i,t=0;te>o?o:eMath.round(o*e)/o,Pd=(Math.PI,e=>("#"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?Td(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?Td(parseInt(e.substring(6,8),16)/255,2):1})),Sd=({h:e,s:t,v:o,a:i})=>{const n=(200-t)*o/100;return{h:Td(e),s:Td(n>0&&n<200?t*o/100/(n<=100?n:200-n)*100:0),l:Td(n/2),a:Td(i,2)}},Id=e=>{const{h:t,s:o,l:i}=Sd(e);return`hsl(${t}, ${o}%, ${i}%)`},Rd=({h:e,s:t,v:o,a:i})=>{e=e/360*6,t/=100,o/=100;const n=Math.floor(e),s=o*(1-t),r=o*(1-(e-n)*t),a=o*(1-(1-e+n)*t),l=n%6;return{r:Td(255*[o,r,s,s,a,o][l]),g:Td(255*[a,o,o,r,s,s][l]),b:Td(255*[s,s,a,o,o,r][l]),a:Td(i,2)}},Od=e=>{const t=e.toString(16);return t.length<2?"0"+t:t},Vd=({r:e,g:t,b:o,a:i})=>{const n=i<1?Od(Td(255*i)):"";return"#"+Od(e)+Od(t)+Od(o)+n},Dd=({r:e,g:t,b:o,a:i})=>{const n=Math.max(e,t,o),s=n-Math.min(e,t,o),r=s?n===e?(t-o)/s:n===t?2+(o-e)/s:4+(e-t)/s:0;return{h:Td(60*(r<0?r+6:r)),s:Td(n?s/n*100:0),v:Td(n/255*100),a:i}},Fd=(e,t)=>{if(e===t)return!0;for(const o in e)if(e[o]!==t[o])return!1;return!0},Md={},Nd=e=>{let t=Md[e];return t||(t=document.createElement("template"),t.innerHTML=e,Md[e]=t),t},Bd=(e,t,o)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:o}))};let Ld=!1;const zd=e=>"touches"in e,jd=(e,t)=>{const o=zd(t)?t.touches[0]:t,i=e.el.getBoundingClientRect();Bd(e.el,"move",e.getMove({x:Ed((o.pageX-(i.left+window.pageXOffset))/i.width),y:Ed((o.pageY-(i.top+window.pageYOffset))/i.height)}))};class $d{constructor(e,t,o,i){const n=Nd(`
`);e.appendChild(n.content.cloneNode(!0));const s=e.querySelector(`[part=${t}]`);s.addEventListener("mousedown",this),s.addEventListener("touchstart",this),s.addEventListener("keydown",this),this.el=s,this.xy=i,this.nodes=[s.firstChild,s]}set dragging(e){const t=e?document.addEventListener:document.removeEventListener;t(Ld?"touchmove":"mousemove",this),t(Ld?"touchend":"mouseup",this)}handleEvent(e){switch(e.type){case"mousedown":case"touchstart":if(e.preventDefault(),!(e=>!(Ld&&!zd(e)||(Ld||(Ld=zd(e)),0)))(e)||!Ld&&0!=e.button)return;this.el.focus(),jd(this,e),this.dragging=!0;break;case"mousemove":case"touchmove":e.preventDefault(),jd(this,e);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":((e,t)=>{const o=t.keyCode;o>40||e.xy&&o<37||o<33||(t.preventDefault(),Bd(e.el,"move",e.getMove({x:39===o?.01:37===o?-.01:34===o?.05:33===o?-.05:35===o?1:36===o?-1:0,y:40===o?.01:38===o?-.01:0},!0)))})(this,e)}}style(e){e.forEach(((e,t)=>{for(const o in e)this.nodes[t].style.setProperty(o,e[o])}))}}class qd extends $d{constructor(e){super(e,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:e}){this.h=e,this.style([{left:e/360*100+"%",color:Id({h:e,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${Td(e)}`)}getMove(e,t){return{h:t?Ed(this.h+360*e.x,0,360):360*e.x}}}class Hd extends $d{constructor(e){super(e,"saturation",'aria-label="Color"',!0)}update(e){this.hsva=e,this.style([{top:100-e.v+"%",left:`${e.s}%`,color:Id(e)},{"background-color":Id({h:e.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${Td(e.s)}%, Brightness ${Td(e.v)}%`)}getMove(e,t){return{s:t?Ed(this.hsva.s+100*e.x,0,100):100*e.x,v:t?Ed(this.hsva.v-100*e.y,0,100):Math.round(100-100*e.y)}}}const Wd=Symbol("same"),Ud=Symbol("color"),Kd=Symbol("hsva"),Gd=Symbol("update"),Jd=Symbol("parts"),Zd=Symbol("css"),Qd=Symbol("sliders");class Yd extends HTMLElement{static get observedAttributes(){return["color"]}get[Zd](){return[':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}',"[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}","[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}"]}get[Qd](){return[Hd,qd]}get color(){return this[Ud]}set color(e){if(!this[Wd](e)){const t=this.colorModel.toHsva(e);this[Gd](t),this[Ud]=e}}constructor(){super();const e=Nd(``),t=this.attachShadow({mode:"open"});t.appendChild(e.content.cloneNode(!0)),t.addEventListener("move",this),this[Jd]=this[Qd].map((e=>new e(t)))}connectedCallback(){if(this.hasOwnProperty("color")){const e=this.color;delete this.color,this.color=e}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(e,t,o){const i=this.colorModel.fromAttr(o);this[Wd](i)||(this.color=i)}handleEvent(e){const t=this[Kd],o={...t,...e.detail};let i;this[Gd](o),Fd(o,t)||this[Wd](i=this.colorModel.fromHsva(o))||(this[Ud]=i,Bd(this,"color-changed",{value:i}))}[Wd](e){return this.color&&this.colorModel.equal(e,this.color)}[Gd](e){this[Kd]=e,this[Jd].forEach((t=>t.update(e)))}}const Xd={defaultColor:"#000",toHsva:e=>Dd(Pd(e)),fromHsva:({h:e,s:t,v:o})=>Vd(Rd({h:e,s:t,v:o,a:1})),equal:(e,t)=>e.toLowerCase()===t.toLowerCase()||Fd(Pd(e),Pd(t)),fromAttr:e=>e};class eu extends Yd{get colorModel(){return Xd}}class tu extends eo{_parentElement;constructor(e=[]){super(e,{idProperty:"viewUid"}),this.on("add",((e,t,o)=>{this._renderViewIntoCollectionParent(t,o)})),this.on("remove",((e,t)=>{t.element&&this._parentElement&&t.element.remove()})),this._parentElement=null}destroy(){this.map((e=>e.destroy()))}setParent(e){this._parentElement=e;for(const e of this)this._renderViewIntoCollectionParent(e)}delegate(...e){if(!e.length||!e.every((e=>"string"==typeof e)))throw new fe("ui-viewcollection-delegate-wrong-events",this);return{to:t=>{for(const o of this)for(const i of e)o.delegate(i).to(t);this.on("add",((o,i)=>{for(const o of e)i.delegate(o).to(t)})),this.on("remove",((o,i)=>{for(const o of e)i.stopDelegating(o,t)}))}}}_renderViewIntoCollectionParent(e,t){e.isRendered||e.render(),e.element&&this._parentElement&&this._parentElement.insertBefore(e.element,this._parentElement.children[t])}remove(e){return super.remove(e)}}class ou extends(xe()){ns;tag;text;attributes;children;eventListeners;_isRendered;_revertData;constructor(e){super(),Object.assign(this,mu(hu(e))),this._isRendered=!1,this._revertData=null}render(){const e=this._renderNode({intoFragment:!0});return this._isRendered=!0,e}apply(e){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:e,intoFragment:!1,isApplying:!0,revertData:this._revertData}),e}revert(e){if(!this._revertData)throw new fe("ui-template-revert-not-applied",[this,e]);this._revertTemplateFromNode(e,this._revertData)}*getViews(){yield*function*e(t){if(t.children)for(const o of t.children)yu(o)?yield o:_u(o)&&(yield*e(o))}(this)}static bind(e,t){return{to:(o,i)=>new nu({eventNameOrFunction:o,attribute:o,observable:e,emitter:t,callback:i}),if:(o,i,n)=>new su({observable:e,emitter:t,attribute:o,valueIfTrue:i,callback:n})}}static extend(e,t){if(e._isRendered)throw new fe("template-extend-render",[this,e]);bu(e,mu(hu(t)))}_renderNode(e){let t;if(t=e.node?this.tag&&this.text:this.tag?this.text:!this.text,t)throw new fe("ui-template-wrong-syntax",this);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(""),ru(this.text)?this._bindToObservable({schema:this.text,updater:cu(t),data:e}):t.textContent=this.text.join(""),t}_renderAttributes(e){if(!this.attributes)return;const t=e.node,o=e.revertData;for(const i in this.attributes){const n=t.getAttribute(i),s=this.attributes[i];o&&(o.attributes[i]=n);const r=vu(s)?s[0].ns:null;if(ru(s)){const a=vu(s)?s[0].value:s;o&&Cu(i)&&a.unshift(n),this._bindToObservable({schema:a,updater:du(t,i,r),data:e})}else if("style"==i&&"string"!=typeof s[0])this._renderStyleAttribute(s[0],e);else{o&&n&&Cu(i)&&s.unshift(n);const e=s.map((e=>e&&e.value||e)).reduce(((e,t)=>e.concat(t)),[]).reduce(pu,"");wu(e)||t.setAttributeNS(r,i,e)}}}_renderStyleAttribute(e,t){const o=t.node;for(const i in e){const n=e[i];ru(n)?this._bindToObservable({schema:[n],updater:uu(o,i),data:t}):au(i)?o.style.setProperty(i,n):o.style[i]=n}}_renderElementChildren(e){const t=e.node,o=e.intoFragment?document.createDocumentFragment():t,i=e.isApplying;let n=0;for(const s of this.children)if(ku(s)){if(!i){s.setParent(t);for(const e of s)o.appendChild(e.element)}}else if(yu(s))i||(s.isRendered||s.render(),o.appendChild(s.element));else if(Qe(s))o.appendChild(s);else if(i){const t={children:[],bindings:[],attributes:{}};e.revertData.children.push(t),s._renderNode({intoFragment:!1,node:o.childNodes[n++],isApplying:!0,revertData:t})}else o.appendChild(s.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[i,n]=t.split("@");return o.activateDomEventListener(i,n,e)}));e.revertData&&e.revertData.bindings.push(o)}}_bindToObservable({schema:e,updater:t,data:o}){const i=o.revertData;lu(e,t,o);const n=e.filter((e=>!wu(e))).filter((e=>e.observable)).map((i=>i.activateAttributeListener(e,t,o)));i&&i.bindings.push(n)}_revertTemplateFromNode(e,t){for(const e of t.bindings)for(const t of e)t();if(t.text)return void(e.textContent=t.text);const o=e;for(const e in t.attributes){const i=t.attributes[e];null===i?o.removeAttribute(e):o.setAttribute(e,i)}for(let e=0;elu(e,t,o);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,i),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,i)}}}class nu extends iu{eventNameOrFunction;constructor(e){super(e),this.eventNameOrFunction=e.eventNameOrFunction}activateDomEventListener(e,t,o){const i=(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,i),()=>{this.emitter.stopListening(o.node,e,i)}}}class su extends iu{valueIfTrue;constructor(e){super(e),this.valueIfTrue=e.valueIfTrue}getValue(e){return!wu(super.getValue(e))&&(this.valueIfTrue||!0)}}function ru(e){return!!e&&(e.value&&(e=e.value),Array.isArray(e)?e.some(ru):e instanceof iu)}function au(e){return/^--[a-zA-Z_-][\w-]*$/.test(e)}function lu(e,t,{node:o}){const i=function(e,t){return e.map((e=>e instanceof iu?e.getValue(t):e))}(e,o);let n;n=1==e.length&&e[0]instanceof su?i[0]:i.reduce(pu,""),wu(n)?t.remove():t.set(n)}function cu(e){return{set(t){e.textContent=t},remove(){e.textContent=""}}}function du(e,t,o){return{set(i){e.setAttributeNS(o,t,i)},remove(){e.removeAttributeNS(o,t)}}}function uu(e,t){return{set(o){au(t)?e.style.setProperty(t,o):e.style[t]=o},remove(){au(t)?e.style.removeProperty(t):e.style[t]=null}}}function hu(e){return N(e,(e=>{if(e&&(e instanceof iu||_u(e)||yu(e)||ku(e)))return e}))}function mu(e){if("string"==typeof e?e=function(e){return{text:[e]}}(e):e.text&&function(e){e.text=Qt(e.text)}(e),e.on&&(e.eventListeners=function(e){for(const t in e)gu(e,t);return e}(e.on),delete e.on),!e.text){e.attributes&&function(e){for(const t in e)e[t].value&&(e[t].value=Qt(e[t].value)),gu(e,t)}(e.attributes);const t=[];if(e.children)if(ku(e.children))t.push(e.children);else for(const o of e.children)_u(o)||yu(o)||Qe(o)?t.push(o):t.push(new ou(o));e.children=t}return e}function gu(e,t){e[t]=Qt(e[t])}function pu(e,t){return wu(t)?e:wu(e)?t:`${e} ${t}`}function fu(e,t){for(const o in t)e[o]?e[o].push(...t[o]):e[o]=t[o]}function bu(e,t){if(t.attributes&&(e.attributes||(e.attributes={}),fu(e.attributes,t.attributes)),t.eventListeners&&(e.eventListeners||(e.eventListeners={}),fu(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 fe("ui-template-extend-children-mismatch",e);let o=0;for(const i of t.children)bu(e.children[o++],i)}}function wu(e){return!e&&0!==e}function yu(e){return e instanceof Au}function _u(e){return e instanceof ou}function ku(e){return e instanceof tu}function vu(e){return s(e[0])&&e[0].ns}function Cu(e){return"class"==e||"style"==e}class Au extends(et(Be())){element;isRendered;locale;t;template;_viewCollections;_unboundChildren;_bindTemplate;constructor(e){super(),this.element=null,this.isRendered=!1,this.locale=e,this.t=e&&e.t,this._viewCollections=new eo,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((t,o)=>{o.locale=e,o.t=e&&e.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=ou.bind(this,this)}createCollection(e){const t=new tu(e);return this._viewCollections.add(t),t}registerChild(e){Ue(e)||(e=[e]);for(const t of e)this._unboundChildren.add(t)}deregisterChild(e){Ue(e)||(e=[e]);for(const t of e)this._unboundChildren.remove(t)}setTemplate(e){this.template=new ou(e)}extendTemplate(e){ou.extend(this.template,e)}render(){if(this.isRendered)throw new fe("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((e=>e.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}const xu={POLITE:"polite",ASSERTIVE:"assertive"};class Eu{editor;view;constructor(e){this.editor=e,e.once("ready",(()=>{for(const e of Object.values(xu))this.announce("",e)}))}announce(e,t=xu.POLITE){const o=this.editor;if(!o.ui.view)return;this.view||(this.view=new Tu(o.locale),o.ui.view.body.add(this.view));const{politeness:i,isUnsafeHTML:n}="string"==typeof t?{politeness:t}:t;let s=this.view.regionViews.find((e=>e.politeness===i));s||(s=new Pu(o,i),this.view.regionViews.add(s)),s.announce({announcement:e,isUnsafeHTML:n})}}class Tu extends Au{regionViews;constructor(e){super(e),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class Pu extends Au{politeness;_domConverter;_pruneAnnouncementsInterval;constructor(e,t){super(e.locale),this.setTemplate({tag:"div",attributes:{"aria-live":t,"aria-relevant":"additions"},children:[{tag:"ul",attributes:{class:["ck","ck-aria-live-region-list"]}}]}),e.on("destroy",(()=>{null!==this._pruneAnnouncementsInterval&&(clearInterval(this._pruneAnnouncementsInterval),this._pruneAnnouncementsInterval=null)})),this.politeness=t,this._domConverter=e.data.htmlProcessor.domConverter,this._pruneAnnouncementsInterval=setInterval((()=>{this.element&&this._listElement.firstChild&&this._listElement.firstChild.remove()}),5e3)}announce({announcement:e,isUnsafeHTML:t}){if(!e.trim().length)return;const o=document.createElement("li");t?this._domConverter.setContentOf(o,e):o.innerText=e,this._listElement.appendChild(o)}get _listElement(){return this.element.querySelector("ul")}}function Su({emitter:e,activator:t,callback:o,contextElements:i,listenerOptions:n}){e.listenTo(document,"mousedown",((e,n)=>{if(!t())return;const s="function"==typeof n.composedPath?n.composedPath():[],r="function"==typeof i?i():i;for(const e of r)if(e.contains(n.target)||s.includes(e))return;o()}),n)}function Iu(e){return class extends e{disableCssTransitions(){this._isCssTransitionsDisabled=!0}enableCssTransitions(){this._isCssTransitionsDisabled=!1}constructor(...e){super(...e),this.set("_isCssTransitionsDisabled",!1),this.initializeCssTransitionDisablerMixin()}initializeCssTransitionDisablerMixin(){this.template&&this.extendTemplate({attributes:{class:[this.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}}}function Ru(e){return class extends e{_onDragBound=this._onDrag.bind(this);_onDragEndBound=this._onDragEnd.bind(this);_lastDraggingCoordinates={x:0,y:0};constructor(...e){super(...e),this.on("render",(()=>{this._attachListeners()})),this.set("isDragging",!1)}_attachListeners(){this.listenTo(this.element,"mousedown",this._onDragStart.bind(this)),this.listenTo(this.element,"touchstart",this._onDragStart.bind(this))}_attachDragListeners(){this.listenTo(J.document,"mouseup",this._onDragEndBound),this.listenTo(J.document,"touchend",this._onDragEndBound),this.listenTo(J.document,"mousemove",this._onDragBound),this.listenTo(J.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(J.document,"mouseup",this._onDragEndBound),this.stopListening(J.document,"touchend",this._onDragEndBound),this.stopListening(J.document,"mousemove",this._onDragBound),this.stopListening(J.document,"touchmove",this._onDragBound)}_onDragStart(e,t){if(!this._isHandleElementPressed(t))return;this._attachDragListeners();let o=0,i=0;t instanceof MouseEvent?(o=t.clientX,i=t.clientY):(o=t.touches[0].clientX,i=t.touches[0].clientY),this._lastDraggingCoordinates={x:o,y:i},this.isDragging=!0}_onDrag(e,t){if(!this.isDragging)return void this._detachDragListeners();let o=0,i=0;t instanceof MouseEvent?(o=t.clientX,i=t.clientY):(o=t.touches[0].clientX,i=t.touches[0].clientY),t.preventDefault(),this.fire("drag",{deltaX:Math.round(o-this._lastDraggingCoordinates.x),deltaY:Math.round(i-this._lastDraggingCoordinates.y)}),this._lastDraggingCoordinates={x:o,y:i}}_onDragEnd(){this._detachDragListeners(),this.isDragging=!1}_isHandleElementPressed(e){return!!this.dragHandleElement&&(this.dragHandleElement===e.target||e.target instanceof HTMLElement&&this.dragHandleElement.contains(e.target))}}}function Ou({view:e}){e.listenTo(e.element,"submit",((t,o)=>{o.preventDefault(),e.fire("submit")}),{useCapture:!0})}function Vu({keystrokeHandler:e,focusTracker:t,gridItems:o,numberOfColumns:i,uiLanguageDirection:n}){const s="number"==typeof i?()=>i:i;function r(e){return i=>{const n=o.find((e=>e.element===t.focusedElement)),s=o.getIndex(n),r=e(s,o);o.get(r).focus(),i.stopPropagation(),i.preventDefault()}}function a(e,t){return e===t-1?0:e+1}function l(e,t){return 0===e?t-1:e-1}e.set("arrowright",r(((e,t)=>"rtl"===n?l(e,t.length):a(e,t.length)))),e.set("arrowleft",r(((e,t)=>"rtl"===n?a(e,t.length):l(e,t.length)))),e.set("arrowup",r(((e,t)=>{let o=e-s();return o<0&&(o=e+s()*Math.floor(t.length/s()),o>t.length-1&&(o-=s())),o}))),e.set("arrowdown",r(((e,t)=>{let o=e+s();return o>t.length-1&&(o=e%s()),o})))}class Du extends Au{id;constructor(e){super(e),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${me()}`;const t=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:t.to("for")},children:[{text:t.to("text")}]})}}class Fu extends Au{constructor(e,t){super(e);const o=e.t,i=new Du;i.text=o("Help Contents. To close this dialog press ESC."),this.setTemplate({tag:"div",attributes:{class:["ck","ck-accessibility-help-dialog__content"],"aria-labelledby":i.id,role:"document",tabindex:-1},children:[Ke(document,"p",{},o("Below, you can find a list of keyboard shortcuts that can be used in the editor.")),...this._createCategories(Array.from(t.values())),i]})}focus(){this.element.focus()}_createCategories(e){return e.map((e=>{const t=[Ke(document,"h3",{},e.label),...Array.from(e.groups.values()).map((e=>this._createGroup(e))).flat()];return e.description&&t.splice(1,0,Ke(document,"p",{},e.description)),Ke(document,"section",{},t)}))}_createGroup(e){const t=e.keystrokes.sort(((e,t)=>e.label.localeCompare(t.label))).map((e=>this._createGroupRow(e))).flat(),o=[Ke(document,"dl",{},t)];return e.label&&o.unshift(Ke(document,"h4",{},e.label)),o}_createGroupRow(e){const t=this.locale.t,o=Ke(document,"dt"),i=Ke(document,"dd"),n=function(e){if("string"==typeof e)return[[e]];if("string"==typeof e[0])return[e];return e}(e.keystroke),s=[];for(const e of n)s.push(e.map(Mu).join(""));return o.innerHTML=e.label,i.innerHTML=s.join(", ")+(e.mayRequireFn&&Y.isMac?` ${t("(may require Fn)")}`:""),[o,i]}}function Mu(e){return Ut(e).split("+").map((e=>`${e}`)).join("+")}class Nu extends Au{static presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];constructor(){super();const e=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.set("isVisible",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon",e.if("isVisible","ck-hidden",(e=>!e)),"ck-reset_all-excluded",e.if("isColorInherited","ck-icon_inherit-color")],viewBox:e.to("viewBox"),"aria-hidden":!0}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const e=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg");if(!e)throw new fe("ui-iconview-invalid-svg",this);const t=e.getAttribute("viewBox");t&&(this.viewBox=t);for(const{name:t,value:o}of Array.from(e.attributes))Nu.presentationalAttributeNames.includes(t)&&this.element.setAttribute(t,o);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;e.childNodes.length>0;)this.element.appendChild(e.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((e=>{e.style.fill=this.fillColor}))}}class Bu extends Au{constructor(){super(),this.set({style:void 0,text:void 0,id:void 0});const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:e.to("style"),id:e.to("id")},children:[{text:e.to("text")}]})}}class Lu extends Au{children;labelView;iconView;keystrokeView;_focusDelayed=null;constructor(e,t=new Bu){super(e);const o=this.bindTemplate,i=me();this.set("_ariaPressed",!1),this.set("_ariaChecked",!1),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",`ck-editor__aria-label_${i}`),this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("role",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._setupLabelView(t),this.iconView=new Nu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.iconView.bind("content").to(this,"icon"),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const n={tag:"button",attributes:{class:["ck","ck-button",o.to("class"),o.if("isEnabled","ck-disabled",(e=>!e)),o.if("isVisible","ck-hidden",(e=>!e)),o.to("isOn",(e=>e?"ck-on":"ck-off")),o.if("withText","ck-button_with-text"),o.if("withKeystroke","ck-button_with-keystroke")],role:o.to("role"),type:o.to("type",(e=>e||"button")),tabindex:o.to("tabindex"),"aria-checked":o.to("_ariaChecked"),"aria-pressed":o.to("_ariaPressed"),"aria-label":o.to("ariaLabel"),"aria-labelledby":o.to("ariaLabelledBy"),"aria-disabled":o.if("isEnabled",!0,(e=>!e)),"data-cke-tooltip-text":o.to("_tooltipString"),"data-cke-tooltip-position":o.to("tooltipPosition")},children:this.children,on:{click:o.to((e=>{this.isEnabled?this.fire("execute"):e.preventDefault()}))}};this.bind("_ariaPressed").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||zu(o))&&String(!!e))),this.bind("_ariaChecked").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||!zu(o))&&String(!!e))),Y.isSafari&&(this._focusDelayed||(this._focusDelayed=co((()=>this.focus()),0)),n.on.mousedown=o.to((()=>{this._focusDelayed()})),n.on.mouseup=o.to((()=>{this._focusDelayed.cancel()}))),this.setTemplate(n)}render(){super.render(),this.icon&&this.children.add(this.iconView),this.on("change:icon",((e,t,o,i)=>{o&&!i?this.children.add(this.iconView,0):!o&&i&&this.children.remove(this.iconView)})),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}destroy(){this._focusDelayed&&this._focusDelayed.cancel(),super.destroy()}_setupLabelView(e){return e.bind("text","style","id").to(this,"label","labelStyle","ariaLabelledBy"),e}_createKeystrokeView(){const e=new Au;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(e=>Ut(e)))}]}),e}_getTooltipString(e,t,o){return e?"string"==typeof e?e:(o&&(o=Ut(o)),e instanceof Function?e(t,o):`${t}${o?` (${o})`:""}`):""}}function zu(e){switch(e){case"radio":case"checkbox":case"option":case"switch":case"menuitemcheckbox":case"menuitemradio":return!0;default:return!1}}class ju extends Au{children;iconView;constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("label",t.label||""),this.set("class",t.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",o.to("class")]},children:this.children}),t.icon&&(this.iconView=new Nu,this.iconView.content=t.icon,this.children.add(this.iconView));const i=new Au(e);i.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:o.to("label")}]}),this.children.add(i)}}class $u extends(xe()){focusables;focusTracker;keystrokeHandler;actions;constructor(e){if(super(),this.focusables=e.focusables,this.focusTracker=e.focusTracker,this.keystrokeHandler=e.keystrokeHandler,this.actions=e.actions,e.actions&&e.keystrokeHandler)for(const t in e.actions){let o=e.actions[t];"string"==typeof o&&(o=[o]);for(const i of o)e.keystrokeHandler.set(i,((e,o)=>{this[t](),o()}),e.keystrokeHandlerOptions)}this.on("forwardCycle",(()=>this.focusFirst()),{priority:"low"}),this.on("backwardCycle",(()=>this.focusLast()),{priority:"low"})}get first(){return this.focusables.find(qu)||null}get last(){return this.focusables.filter(qu).slice(-1)[0]||null}get next(){return this._getDomFocusableItem(1)}get previous(){return this._getDomFocusableItem(-1)}get current(){let e=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((t,o)=>{const i=t.element===this.focusTracker.focusedElement;return i&&(e=o),i})),e)}focusFirst(){this._focus(this.first,1)}focusLast(){this._focus(this.last,-1)}focusNext(){const e=this.next;e&&this.focusables.getIndex(e)===this.current||e===this.first?this.fire("forwardCycle"):this._focus(e,1)}focusPrevious(){const e=this.previous;e&&this.focusables.getIndex(e)===this.current||e===this.last?this.fire("backwardCycle"):this._focus(e,-1)}chain(e){const t=()=>null===this.current?null:this.focusables.get(this.current);this.listenTo(e,"forwardCycle",(e=>{const o=t();this.focusNext(),o!==t()&&e.stop()}),{priority:"low"}),this.listenTo(e,"backwardCycle",(e=>{const o=t();this.focusPrevious(),o!==t()&&e.stop()}),{priority:"low"})}unchain(e){this.stopListening(e)}_focus(e,t){e&&this.focusTracker.focusedElement!==e.element&&e.focus(t)}_getDomFocusableItem(e){const t=this.focusables.length;if(!t)return null;const o=this.current;if(null===o)return this[1===e?"first":"last"];let i=this.focusables.get(o),n=(o+t+e)%t;do{const o=this.focusables.get(n);if(qu(o)){i=o;break}n=(n+t+e)%t}while(n!==o);return i}}function qu(e){return Hu(e)&&Ct(e.element)}function Hu(e){return!(!("focus"in e)||"function"!=typeof e.focus)}class Wu extends Au{children;keystrokes;focusCycler;_focusTracker;_focusables;constructor(e){super(e),this.children=this.createCollection(),this.keystrokes=new ro,this._focusTracker=new oo,this._focusables=new tu,this.focusCycler=new $u({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__actions"]},children:this.children})}render(){super.render(),this.keystrokes.listenTo(this.element)}setButtons(e){for(const t of e){const e=new Lu(this.locale);let o;for(o in e.on("execute",(()=>t.onExecute())),t.onCreate&&t.onCreate(e),t)"onExecute"!=o&&"onCreate"!=o&&e.set(o,t[o]);this.children.add(e)}this._updateFocusCyclableItems()}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}_updateFocusCyclableItems(){Array.from(this.children).forEach((e=>{this._focusables.add(e),this._focusTracker.add(e.element)}))}}class Uu extends Au{children;constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__content"]},children:this.children})}reset(){for(;this.children.length;)this.children.remove(0)}}const Ku="screen-center",Gu="editor-center",Ju="editor-top-side",Zu="editor-top-center",Qu="editor-bottom-center",Yu="editor-above-center",Xu="editor-below-center",eh=yt("px");class th extends(Ru(Au)){parts;headerView;closeButtonView;actionsView;static defaultOffset=15;contentView;keystrokes;focusTracker;wasMoved=!1;_getCurrentDomRoot;_getViewportOffset;_focusables;_focusCycler;constructor(e,{getCurrentDomRoot:t,getViewportOffset:o,keystrokeHandlerOptions:i}){super(e);const n=this.bindTemplate,s=e.t;this.set("className",""),this.set("ariaLabel",s("Editor dialog")),this.set("isModal",!1),this.set("position",Ku),this.set("_isVisible",!1),this.set("_isTransparent",!1),this.set("_top",0),this.set("_left",0),this._getCurrentDomRoot=t,this._getViewportOffset=o,this.decorate("moveTo"),this.parts=this.createCollection(),this.keystrokes=new ro,this.focusTracker=new oo,this._focusables=new tu,this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"},keystrokeHandlerOptions:i}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog-overlay",n.if("isModal","ck-dialog-overlay__transparent",(e=>!e)),n.if("_isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:[{tag:"div",attributes:{tabindex:"-1",class:["ck","ck-dialog",n.if("isModal","ck-dialog_modal"),n.to("className")],role:"dialog","aria-label":n.to("ariaLabel"),style:{top:n.to("_top",(e=>eh(e))),left:n.to("_left",(e=>eh(e))),visibility:n.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((e,t)=>{e.defaultPrevented||(this.fire("close",{source:"escKeyPress"}),t())})),this.on("drag",((e,{deltaX:t,deltaY:o})=>{this.wasMoved=!0,this.moveBy(t,o)})),this.listenTo(J.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(J.document,"scroll",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.on("change:_isVisible",((e,t,o)=>{o&&(this._isTransparent=!0,setTimeout((()=>{this.updatePosition(),this._isTransparent=!1,this.focus()}),10))})),this.keystrokes.listenTo(this.element)}get dragHandleElement(){return this.headerView&&!this.isModal?this.headerView.element:null}setupParts({icon:e,title:t,hasCloseButton:o=!0,content:i,actionButtons:n}){t&&(this.headerView=new ju(this.locale,{icon:e}),o&&(this.closeButtonView=this._createCloseButton(),this.headerView.children.add(this.closeButtonView)),this.headerView.label=t,this.ariaLabel=t,this.parts.add(this.headerView,0)),i&&(i instanceof Au&&(i=[i]),this.contentView=new Uu(this.locale),this.contentView.children.addMany(i),this.parts.add(this.contentView)),n&&(this.actionsView=new Wu(this.locale),this.actionsView.setButtons(n),this.parts.add(this.actionsView)),this._updateFocusCyclableItems()}focus(){this._focusCycler.focusFirst()}moveTo(e,t){const o=this._getViewportRect(),i=this._getDialogRect();e+i.width>o.right&&(e=o.right-i.width),e{var t;this._focusables.add(e),this.focusTracker.add(e.element),Hu(t=e)&&"focusCycler"in t&&t.focusCycler instanceof $u&&this._focusCycler.chain(e.focusCycler)}))}_createCloseButton(){const e=new Lu(this.locale),t=this.locale.t;return e.set({label:t("Close"),tooltip:!0,icon:qc}),e.on("execute",(()=>this.fire("close",{source:"closeButton"}))),e}}class oh extends fc{view;static _visibleDialogPlugin;_onHide;static get pluginName(){return"Dialog"}static get isOfficialPlugin(){return!0}constructor(e){super(e);const t=e.t;this._initShowHideListeners(),this._initFocusToggler(),this._initMultiRootIntegration(),this.set({id:null,isOpen:!1}),e.accessibility.addKeystrokeInfos({categoryId:"navigation",keystrokes:[{label:t("Move focus in and out of an active dialog window"),keystroke:"Ctrl+F6",mayRequireFn:!0}]})}destroy(){super.destroy(),oh._visibleDialogPlugin===this&&this._unlockBodyScroll()}_initShowHideListeners(){this.on("show",((e,t)=>{this._show(t)})),this.on("show",((e,t)=>{t.onShow&&t.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{oh._visibleDialogPlugin&&oh._visibleDialogPlugin._hide()})),this.on("hide",(()=>{this._onHide&&(this._onHide(this),this._onHide=void 0)}),{priority:"low"})}_initFocusToggler(){const e=this.editor;e.keystrokes.set("Ctrl+F6",((t,o)=>{this.isOpen&&!this.view.isModal&&(this.view.focusTracker.isFocused?e.editing.view.focus():this.view.focus(),o())}))}_initMultiRootIntegration(){const e=this.editor.model;e.document.on("change:data",(()=>{if(!this.view)return;const t=e.document.differ.getChangedRoots();for(const e of t)e.state&&this.view.updatePosition()}))}show(e){this.hide(),this.fire(`show:${e.id}`,e)}_show({id:e,icon:t,title:o,hasCloseButton:i=!0,content:n,actionButtons:s,className:r,isModal:a,position:l,onHide:c,keystrokeHandlerOptions:d}){const u=this.editor;this.view=new th(u.locale,{getCurrentDomRoot:()=>u.editing.view.getDomRoot(u.model.document.selection.anchor.root.rootName),getViewportOffset:()=>u.ui.viewportOffset,keystrokeHandlerOptions:d});const h=this.view;h.on("close",(()=>{this.hide()})),u.ui.view.body.add(h),u.keystrokes.listenTo(h.element),l||(l=a?Ku:Gu),a&&this._lockBodyScroll(),h.set({position:l,_isVisible:!0,className:r,isModal:a}),h.setupParts({icon:t,title:o,hasCloseButton:i,content:n,actionButtons:s}),this.id=e,c&&(this._onHide=c),this.isOpen=!0,oh._visibleDialogPlugin=this}hide(){oh._visibleDialogPlugin&&oh._visibleDialogPlugin.fire(`hide:${oh._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const e=this.editor,t=this.view;t.isModal&&this._unlockBodyScroll(),t.contentView&&t.contentView.reset(),e.ui.view.body.remove(t),e.ui.focusTracker.remove(t.element),e.keystrokes.stopListening(t.element),t.destroy(),e.editing.view.focus(),this.id=null,this.isOpen=!1,oh._visibleDialogPlugin=null}_lockBodyScroll(){document.documentElement.classList.add("ck-dialog-scroll-locked")}_unlockBodyScroll(){document.documentElement.classList.remove("ck-dialog-scroll-locked")}}class ih extends Lu{_checkIconHolderView=new nh;constructor(e,t=new Bu){super(e,t),this.set({hasCheckSpace:!1,_hasCheck:this.isToggleable});const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-list-item-button",o.if("isToggleable","ck-list-item-button_toggleable")]}}),this.bind("_hasCheck").to(this,"hasCheckSpace",this,"isToggleable",((e,t)=>e||t))}render(){super.render(),this._hasCheck&&this.children.add(this._checkIconHolderView,0),this._watchCheckIconHolderMount()}_watchCheckIconHolderMount(){this._checkIconHolderView.bind("isOn").to(this,"isOn",(e=>this.isToggleable&&e)),this.on("change:_hasCheck",((e,t,o)=>{const{children:i,_checkIconHolderView:n}=this;o?i.add(n,0):i.remove(n)}))}}class nh extends Au{children;_checkIconView=this._createCheckIconView();constructor(){super();const e=this.bindTemplate;this.children=this.createCollection(),this.set("isOn",!1),this.setTemplate({tag:"span",children:this.children,attributes:{class:["ck","ck-list-item-button__check-holder",e.to("isOn",(e=>e?"ck-on":"ck-off"))]}})}render(){super.render(),this.isOn&&this.children.add(this._checkIconView,0),this._watchCheckIconMount()}_watchCheckIconMount(){this.on("change:isOn",((e,t,o)=>{const{children:i,_checkIconView:n}=this;o&&!i.has(n)?i.add(n):!o&&i.has(n)&&i.remove(n)}))}_createCheckIconView(){const e=new Nu;return e.content=Hc,e.extendTemplate({attributes:{class:"ck-list-item-button__check-icon"}}),e}}class sh extends ih{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}class rh extends fc{contentView=null;static get requires(){return[oh]}static get pluginName(){return"AccessibilityHelp"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t;e.ui.componentFactory.add("accessibilityHelp",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0,withText:!1,label:t("Accessibility help")}),e})),e.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const e=this._createButton(sh);return e.label=t("Accessibility"),e})),e.keystrokes.set("Alt+0",((e,t)=>{this._toggleDialog(),t()})),this._setupRootLabels()}_createButton(e){const t=this.editor,o=t.plugins.get("Dialog"),i=new e(t.locale);return i.set({keystroke:"Alt+0",icon:zc,isToggleable:!0}),i.on("execute",(()=>this._toggleDialog())),i.bind("isOn").to(o,"id",(e=>"accessibilityHelp"===e)),i}_setupRootLabels(){const e=this.editor,t=e.editing.view,o=e.t;function i(e,t){const i=[t.getAttribute("aria-label"),o("Press %0 for help.",[Ut("Alt+0")])].filter((e=>e)).join(". ");e.setAttribute("aria-label",i,t)}e.ui.on("ready",(()=>{t.change((e=>{for(const o of t.document.roots)i(e,o)})),e.on("addRoot",((o,n)=>{const s=e.editing.view.document.getRoot(n.rootName);t.change((e=>i(e,s)))}),{priority:"low"})}))}_toggleDialog(){const e=this.editor,t=e.plugins.get("Dialog"),o=e.locale.t;this.contentView||(this.contentView=new Fu(e.locale,e.accessibility.keystrokeInfos)),"accessibilityHelp"===t.id?t.hide():t.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:o("Accessibility help"),icon:zc,hasCloseButton:!0,content:this.contentView})}}class ah extends tu{locale;_bodyCollectionContainer;static _bodyWrapper;constructor(e,t=[]){super(t),this.locale=e}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new ou({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection,role:"application"},children:this}).render(),ah._bodyWrapper&&ah._bodyWrapper.isConnected||(ah._bodyWrapper=Ke(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(ah._bodyWrapper)),ah._bodyWrapper.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove(),ah._bodyWrapper&&!ah._bodyWrapper.childElementCount&&(ah._bodyWrapper.remove(),delete ah._bodyWrapper)}}const lh=yt("px"),ch={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class dh extends Au{content;_pinWhenIsVisibleCallback;_resizeObserver;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("class",void 0),this._pinWhenIsVisibleCallback=null,this._resizeObserver=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","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("class")],style:{top:t.to("top",lh),left:t.to("left",lh)}},children:this.content})}destroy(){this.hide(),super.destroy()}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(e){const t=uh(e.target);if(t&&!Ct(t))return!1;this.show();const o=dh.defaultPositions,i=Object.assign({},{element:this.element,positions:[o.southArrowNorth,o.southArrowNorthMiddleWest,o.southArrowNorthMiddleEast,o.southArrowNorthWest,o.southArrowNorthEast,o.northArrowSouth,o.northArrowSouthMiddleWest,o.northArrowSouthMiddleEast,o.northArrowSouthWest,o.northArrowSouthEast,o.viewportStickyNorth],limiter:J.document.body,fitInViewport:!0},e),n=dh._getOptimalPosition(i)||ch,s=parseInt(n.left),r=parseInt(n.top),a=n.name,l=n.config||{},{withArrow:c=!0}=l;return this.top=r,this.left=s,this.position=a,this.withArrow=c,!0}pin(e){this.unpin(),this._startPinning(e)&&(this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(e):this._stopPinning()},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){if(!this.attachTo(e))return!1;let t=uh(e.target);const o=e.limiter?uh(e.limiter):J.document.body;if(this.listenTo(J.document,"scroll",((i,n)=>{const s=n.target,r=t&&s.contains(t),a=o&&s.contains(o);!r&&!a&&t&&o||this.attachTo(e)}),{useCapture:!0}),this.listenTo(J.window,"resize",(()=>{this.attachTo(e)})),!this._resizeObserver&&(t&&at(t)&&(t=t.parentElement),t)){const e=()=>{Ct(t)||this.unpin()};this._resizeObserver=new bt(t,e)}return!0}_stopPinning(){this.stopListening(J.document,"scroll"),this.stopListening(J.window,"resize"),this._resizeObserver&&(this._resizeObserver.destroy(),this._resizeObserver=null)}static generatePositions(e={}){const{sideOffset:t=dh.arrowSideOffset,heightOffset:o=dh.arrowHeightOffset,stickyVerticalOffset:i=dh.stickyVerticalOffset,config:n}=e;return{northWestArrowSouthWest:(e,o)=>({top:s(e,o),left:e.left-t,name:"arrow_sw",...n&&{config:n}}),northWestArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.left-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northWestArrowSouth:(e,t)=>({top:s(e,t),left:e.left-t.width/2,name:"arrow_s",...n&&{config:n}}),northWestArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.left-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northWestArrowSouthEast:(e,o)=>({top:s(e,o),left:e.left-o.width+t,name:"arrow_se",...n&&{config:n}}),northArrowSouthWest:(e,o)=>({top:s(e,o),left:e.left+e.width/2-t,name:"arrow_sw",...n&&{config:n}}),northArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.left+e.width/2-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northArrowSouth:(e,t)=>({top:s(e,t),left:e.left+e.width/2-t.width/2,name:"arrow_s",...n&&{config:n}}),northArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.left+e.width/2-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northArrowSouthEast:(e,o)=>({top:s(e,o),left:e.left+e.width/2-o.width+t,name:"arrow_se",...n&&{config:n}}),northEastArrowSouthWest:(e,o)=>({top:s(e,o),left:e.right-t,name:"arrow_sw",...n&&{config:n}}),northEastArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.right-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northEastArrowSouth:(e,t)=>({top:s(e,t),left:e.right-t.width/2,name:"arrow_s",...n&&{config:n}}),northEastArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.right-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northEastArrowSouthEast:(e,o)=>({top:s(e,o),left:e.right-o.width+t,name:"arrow_se",...n&&{config:n}}),southWestArrowNorthWest:e=>({top:r(e),left:e.left-t,name:"arrow_nw",...n&&{config:n}}),southWestArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.left-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southWestArrowNorth:(e,t)=>({top:r(e),left:e.left-t.width/2,name:"arrow_n",...n&&{config:n}}),southWestArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.left-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southWestArrowNorthEast:(e,o)=>({top:r(e),left:e.left-o.width+t,name:"arrow_ne",...n&&{config:n}}),southArrowNorthWest:e=>({top:r(e),left:e.left+e.width/2-t,name:"arrow_nw",...n&&{config:n}}),southArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.left+e.width/2-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southArrowNorth:(e,t)=>({top:r(e),left:e.left+e.width/2-t.width/2,name:"arrow_n",...n&&{config:n}}),southArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.left+e.width/2-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southArrowNorthEast:(e,o)=>({top:r(e),left:e.left+e.width/2-o.width+t,name:"arrow_ne",...n&&{config:n}}),southEastArrowNorthWest:e=>({top:r(e),left:e.right-t,name:"arrow_nw",...n&&{config:n}}),southEastArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.right-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southEastArrowNorth:(e,t)=>({top:r(e),left:e.right-t.width/2,name:"arrow_n",...n&&{config:n}}),southEastArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.right-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southEastArrowNorthEast:(e,o)=>({top:r(e),left:e.right-o.width+t,name:"arrow_ne",...n&&{config:n}}),westArrowEast:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.left-t.width-o,name:"arrow_e",...n&&{config:n}}),eastArrowWest:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.right+o,name:"arrow_w",...n&&{config:n}}),viewportStickyNorth:(e,t,o)=>{const s=new ut(J.document.body).getIntersection(o.getVisible());if(!s)return null;const r=s.getVisible();return e.getIntersection(r)&&r.top-e.top-ithis._showBalloon()),50,{leading:!0});_lastFocusedEditableElement=null;_balloonClass;constructor(e,t={}){super(),this.editor=e,this._balloonClass=t.balloonClass,e.on("ready",(()=>this._handleEditorReady()))}destroy(){const e=this._balloonView;e&&(e.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const e=this.editor;this._isEnabled()&&e.ui.view&&(e.ui.focusTracker.on("change:isFocused",((e,t,o)=>{this._updateLastFocusedEditableElement(),o?this._showBalloon():this._hideBalloon()})),e.ui.focusTracker.on("change:focusedElement",((e,t,o)=>{this._updateLastFocusedEditableElement(),o&&this._showBalloon()})),e.ui.on("update",(()=>{this._showBalloonThrottled()})))}_getNormalizedConfig(){return{side:"ltr"===this.editor.locale.contentLanguageDirection?"right":"left",position:"border",verticalOffset:0,horizontalOffset:5}}_showBalloon(){const e=this._getBalloonAttachOptions();e&&(this._balloonView||(this._balloonView=this._createBalloonView()),this._balloonView.pin(e))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_createBalloonView(){const e=this.editor,t=new dh,o=this._createBadgeContent();return t.content.add(o),this._balloonClass&&(t.class=this._balloonClass),e.ui.view.body.add(t),t}_getBalloonAttachOptions(){if(!this._lastFocusedEditableElement)return null;const e=this._getNormalizedConfig(),t="right"===e.side?function(e,t){return mh(e,t,((e,o)=>e.left+e.width-o.width-t.horizontalOffset))}(this._lastFocusedEditableElement,e):function(e,t){return mh(e,t,(e=>e.left+t.horizontalOffset))}(this._lastFocusedEditableElement,e);return{target:this._lastFocusedEditableElement,positions:[t]}}_updateLastFocusedEditableElement(){const e=this.editor,t=e.ui.focusTracker.isFocused,o=e.ui.focusTracker.focusedElement;if(!t||!o)return void(this._lastFocusedEditableElement=null);const i=Array.from(e.ui.getEditableElementsNames()).map((t=>e.ui.getEditableElement(t)));i.includes(o)?this._lastFocusedEditableElement=o:this._lastFocusedEditableElement=i[0]}}function mh(e,t,o){return(i,n)=>{const s=new ut(e);if(s.width<350||s.height<50)return null;let r;r="inside"===t.position?s.bottom-n.height:s.bottom-n.height/2,r-=t.verticalOffset;const a=o(s,n),l=i.clone().moveTo(a,r).getIntersection(n.clone().moveTo(a,r)).getVisible();return!l||l.getArea()\n',isColorInherited:!1}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/powered-by-ckeditor/?utm_source=ckeditor&utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo",target:"_blank",tabindex:"-1"},children:[...t?[{tag:"span",attributes:{class:["ck","ck-powered-by__label"]},children:[t]}]:[],o],on:{dragstart:i.to((e=>e.preventDefault()))}}]})}}class fh extends Lu{toggleSwitchView;constructor(e){super(e),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const e=new Au;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),e}}class bh extends(yh(Lu)){}class wh extends(yh(ih)){}function yh(e){return class extends e{_fileInputView;constructor(...e){super(...e),this._fileInputView=new _h(this.locale),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.on("execute",(()=>{this._fileInputView.open()})),this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render(),this.children.add(this._fileInputView)}}}class _h extends Au{constructor(e){super(e),this.set("acceptedType",void 0),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?.files?.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}class kh extends Au{buttonView;children;constructor(e,t){super(e);const o=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid",void 0),t&&this.children.addMany(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",o.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:o.if("isCollapsed","hidden"),"aria-labelledby":o.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}focus(){this.buttonView.focus()}_createButtonView(){const e=new Lu(this.locale),t=e.bindTemplate;return e.set({withText:!0,icon:Uc}),e.extendTemplate({attributes:{"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("label").to(this),e.bind("isOn").to(this,"isCollapsed",(e=>!e)),e.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),e}}function vh(e,t){const o=e.t,i={Black:o("Black"),"Dim grey":o("Dim grey"),Grey:o("Grey"),"Light grey":o("Light grey"),White:o("White"),Red:o("Red"),Orange:o("Orange"),Yellow:o("Yellow"),"Light green":o("Light green"),Green:o("Green"),Aquamarine:o("Aquamarine"),Turquoise:o("Turquoise"),"Light blue":o("Light blue"),Blue:o("Blue"),Purple:o("Purple")};return t.map((e=>{const t=i[e.label];return t&&t!=e.label&&(e.label=t),e}))}function Ch(e){return e.map(Ah).filter((e=>!!e))}function Ah(e){return"string"==typeof e?{model:e,label:e,hasBorder:!1,view:{name:"span",styles:{color:e}}}:{model:e.color,label:e.label||e.color,hasBorder:void 0!==e.hasBorder&&e.hasBorder,view:{name:"span",styles:{color:`${e.color}`}}}}class xh extends Lu{constructor(e){super(e);const t=this.bindTemplate;this.set("color",void 0),this.set("hasBorder",!1),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:t.to("color",(e=>Y.isMediaForcedColors?null:e))},class:["ck","ck-color-grid__tile",t.if("hasBorder","ck-color-selector__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}class Eh extends Au{columns;items;focusTracker;keystrokes;constructor(e,t){super(e);const o=t&&t.colorDefinitions?t.colorDefinitions:[];this.columns=t?.columns||5;const i={gridTemplateColumns:`repeat( ${this.columns}, 1fr)`};this.set("selectedColor",void 0),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this.items.on("add",((e,t)=>{t.isOn=t.color===this.selectedColor})),o.forEach((e=>{const t=new xh;t.set({color:e.color,label:e.label,tooltip:!0,hasBorder:e.options.hasBorder}),t.on("execute",(()=>{this.fire("execute",{value:e.color,hasBorder:e.options.hasBorder,label:e.label})})),this.items.add(t)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:i}}),this.on("change:selectedColor",((e,t,o)=>{for(const e of this.items)e.isOn=e.color===o}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}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),Vu({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:this.columns,uiLanguageDirection:this.locale?.uiLanguageDirection})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}function Th(e,t){if(!e)return"";const o=Ph(e);if(!o)return"";if(o.space===t)return e;if(i=o,!Object.keys(xd).includes(i.space))return"";var i;const n=xd[o.space][t];if(!n)return"";return function(e,t){switch(t){case"hex":return`#${e}`;case"rgb":return`rgb(${e[0]}, ${e[1]}, ${e[2]})`;case"hsl":return`hsl(${e[0]}, ${e[1]}%, ${e[2]}%)`;case"hwb":return`hwb(${e[0]}, ${e[1]}, ${e[2]})`;case"lab":return`lab(${e[0]}% ${e[1]} ${e[2]})`;case"lch":return`lch(${e[0]}% ${e[1]} ${e[2]})`;default:return""}}(n("hex"===o.space?o.hexValue:o.values),t)}function Ph(e){if(e.startsWith("#")){const t=ad(e);return{space:"hex",values:t.values,hexValue:e,alpha:t.alpha}}const t=ad(e);return t.space?t:null}class Sh extends Au{fieldView;labelView;statusView;fieldWrapperChildren;constructor(e,t){super(e);const o=`ck-labeled-field-view-${me()}`,i=`ck-labeled-field-view-status-${me()}`;this.fieldView=t(this,o,i),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(o),this.statusView=this._createStatusView(i),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((e,t)=>e||t));const n=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",n.to("class"),n.if("isEnabled","ck-disabled",(e=>!e)),n.if("isEmpty","ck-labeled-field-view_empty"),n.if("isFocused","ck-labeled-field-view_focused"),n.if("placeholder","ck-labeled-field-view_placeholder"),n.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(e){const t=new Du(this.locale);return t.for=e,t.bind("text").to(this,"label"),t}_createStatusView(e){const t=new Au(this.locale),o=this.bindTemplate;return t.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",o.if("errorText","ck-labeled-field-view__status_error"),o.if("_statusText","ck-hidden",(e=>!e))],id:e,role:o.if("errorText","alert")},children:[{text:o.to("_statusText")}]}),t}focus(e){this.fieldView.focus(e)}}class Ih extends Au{focusTracker;constructor(e){super(e),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("tabIndex",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.set("ariaLabel",void 0),this.focusTracker=new oo,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const t=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",t.if("isFocused","ck-input_focused"),t.if("isEmpty","ck-input-text_empty"),t.if("hasError","ck-error")],id:t.to("id"),placeholder:t.to("placeholder"),tabindex:t.to("tabIndex"),readonly:t.to("isReadOnly"),"aria-invalid":t.if("hasError",!0),"aria-describedby":t.to("ariaDescribedById"),"aria-label":t.to("ariaLabel")},on:{input:t.to(((...e)=>{this.fire("input",...e),this._updateIsEmpty()})),change:t.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((e,t,o)=>{this._setDomElementValue(o),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}reset(){this.value=this.element.value="",this._updateIsEmpty()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(e){this.element.value=e||0===e?e:""}}class Rh extends Ih{constructor(e){super(e),this.set("inputMode","text");const t=this.bindTemplate;this.extendTemplate({attributes:{inputmode:t.to("inputMode")}})}}class Oh extends Rh{constructor(e){super(e),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class Vh extends Rh{constructor(e,{min:t,max:o,step:i}={}){super(e);const n=this.bindTemplate;this.set("min",t),this.set("max",o),this.set("step",i),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:n.to("min"),max:n.to("max"),step:n.to("step")}})}}class Dh extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",t.to("position",(e=>`ck-dropdown__panel_${e}`)),t.if("isVisible","ck-dropdown__panel-visible")],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{const t=e.target;t instanceof Element&&"input"===t.tagName.toLocaleLowerCase()||e.preventDefault()}))}})}focus(){if(this.children.length){const e=this.children.first;"function"==typeof e.focus?e.focus():be("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const e=this.children.last;"function"==typeof e.focusLast?e.focusLast():e.focus()}}}class Fh extends Au{buttonView;panelView;focusTracker;keystrokes;listView;toolbarView;menuView;constructor(e,t,o){super(e);const i=this.bindTemplate;this.buttonView=t,this.panelView=o,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ro,this.focusTracker=new oo,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",i.to("class"),i.if("isEnabled","ck-disabled",(e=>!e))],id:i.to("id"),"aria-describedby":i.to("ariaDescribedById")},children:[t,o]}),t.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":i.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.on("change:isOpen",((e,t,o)=>{if(o)if("auto"===this.panelPosition){const e=Fh._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=e?e.name:this._defaultPanelPositionName}else this.panelView.position=this.panelPosition})),this.keystrokes.listenTo(this.element);const e=(e,t)=>{this.isOpen&&(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()}get _panelPositions(){const{south:e,north:t,southEast:o,southWest:i,northEast:n,northWest:s,southMiddleEast:r,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=Fh.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[o,i,r,a,e,n,s,l,c,t]:[i,o,a,r,e,s,n,c,l,t]}get _defaultPanelPositionName(){return"rtl"===this.locale.uiLanguageDirection?"sw":"se"}static defaultPanelPositions={south:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/2,name:"s"}),southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),southMiddleEast:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/4,name:"sme"}),southMiddleWest:(e,t)=>({top:e.bottom,left:e.left-3*(t.width-e.width)/4,name:"smw"}),north:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/2,name:"n"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),northMiddleEast:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/4,name:"nme"}),northMiddleWest:(e,t)=>({top:e.top-t.height,left:e.left-3*(t.width-e.width)/4,name:"nmw"})};static _getOptimalPosition=At}class Mh extends Lu{arrowView;constructor(e){super(e),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Uc,e.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),e}}class Nh extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",t.if("isVisible","ck-hidden",(e=>!e))],role:"presentation"},children:this.children})}focus(){this.children.first&&this.children.first.focus()}}class Bh extends Au{constructor(e){super(e),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class Lh extends Au{labelView;items;children;constructor(e,t=new Du){super(e);const o=this.bindTemplate,i=new zh(e);this.set({label:"",isVisible:!0}),this.labelView=t,this.labelView.bind("text").to(this,"label"),this.children=this.createCollection(),this.children.addMany([this.labelView,i]),i.set({role:"group",ariaLabelledBy:t.id}),i.focusTracker.destroy(),i.keystrokes.destroy(),this.items=i.items,this.setTemplate({tag:"li",attributes:{role:"presentation",class:["ck","ck-list__group",o.if("isVisible","ck-hidden",(e=>!e))]},children:this.children})}focus(){if(this.items){const e=this.items.find((e=>!(e instanceof Bh)));e&&e.focus()}}}class zh extends Au{focusables;items;focusTracker;keystrokes;_focusCycler;_listItemGroupToChangeListeners=new WeakMap;constructor(e){super(e);const t=this.bindTemplate;this.focusables=new tu,this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this._focusCycler=new $u({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",void 0),this.set("role",void 0),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"],role:t.to("role"),"aria-label":t.to("ariaLabel"),"aria-labelledby":t.to("ariaLabelledBy")},children:this.items})}render(){super.render();for(const e of this.items)e instanceof Lh?this._registerFocusableItemsGroup(e):e instanceof Nh&&this._registerFocusableListItem(e);this.items.on("change",((e,t)=>{for(const e of t.removed)e instanceof Lh?this._deregisterFocusableItemsGroup(e):e instanceof Nh&&this._deregisterFocusableListItem(e);for(const e of Array.from(t.added).reverse())e instanceof Lh?this._registerFocusableItemsGroup(e,t.index):this._registerFocusableListItem(e,t.index)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_registerFocusableListItem(e,t){this.focusTracker.add(e.element),this.focusables.add(e,t)}_deregisterFocusableListItem(e){this.focusTracker.remove(e.element),this.focusables.remove(e)}_getOnGroupItemsChangeCallback(e){return(t,o)=>{for(const e of o.removed)this._deregisterFocusableListItem(e);for(const t of Array.from(o.added).reverse())this._registerFocusableListItem(t,this.items.getIndex(e)+o.index)}}_registerFocusableItemsGroup(e,t){Array.from(e.items).forEach(((e,o)=>{const i=void 0!==t?t+o:void 0;this._registerFocusableListItem(e,i)}));const o=this._getOnGroupItemsChangeCallback(e);this._listItemGroupToChangeListeners.set(e,o),e.items.on("change",o)}_deregisterFocusableItemsGroup(e){for(const t of e.items)this._deregisterFocusableListItem(t);e.items.off("change",this._listItemGroupToChangeListeners.get(e)),this._listItemGroupToChangeListeners.delete(e)}}class jh extends Au{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class $h extends Au{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function qh(e){if(Array.isArray(e))return{items:e,removeItems:[]};const t={items:[],removeItems:[]};return e?{...t,...e}:t}const Hh=(()=>({alignLeft:jc,bold:$c,importExport:'',paragraph:'',plus:'',text:'',threeVerticalDots:id,pilcrow:'',dragIndicator:''}))();class Wh extends Au{options;items;focusTracker;keystrokes;itemsView;children;focusables;_focusCycler;_behavior;constructor(e,t){super(e);const o=this.bindTemplate,i=this.t;this.options=t||{},this.set("ariaLabel",i("Editor toolbar")),this.set("maxWidth","auto"),this.set("role","toolbar"),this.set("isGrouping",!!this.options.shouldGroupWhenFull),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this.set("class",void 0),this.set("isCompact",!1),this.set("isVertical",!1),this.itemsView=new Uh(e),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const n="rtl"===e.uiLanguageDirection;this._focusCycler=new $u({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[n?"arrowright":"arrowleft","arrowup"],focusNext:[n?"arrowleft":"arrowright","arrowdown"]}});const s=["ck","ck-toolbar",o.to("class"),o.if("isCompact","ck-toolbar_compact"),o.if("isGrouping","ck-toolbar_grouping"),o.if("isVertical","ck-toolbar_vertical")];var r;this.options.shouldGroupWhenFull&&this.options.isFloating&&s.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:s,role:o.to("role"),"aria-label":o.to("ariaLabel"),style:{maxWidth:o.to("maxWidth")},tabindex:-1},children:this.children,on:{mousedown:(r=this,r.bindTemplate.to((e=>{e.target===r.element&&e.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new Gh(this):new Kh(this)}render(){super.render(),this.focusTracker.add(this.element);for(const e of this.items)this.focusTracker.add(e);this.items.on("add",((e,t)=>{this.focusTracker.add(t)})),this.items.on("remove",((e,t)=>{this.focusTracker.remove(t)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(e,t,o){this.items.addMany(this._buildItemsFromConfig(e,t,o))}switchBehavior(e){this._behavior.type!==e&&(this._behavior.destroy(),this.itemsView.children.clear(),this.focusables.clear(),"dynamic"===e?(this._behavior=new Gh(this),this._behavior.render(this),this._behavior.refreshItems()):(this._behavior=new Kh(this),this._behavior.render(this)))}_buildItemsFromConfig(e,t,o){const i=qh(e),n=o||i.removeItems;return this._cleanItemsConfiguration(i.items,t,n).map((e=>s(e)?this._createNestedToolbarDropdown(e,t,n):"|"===e?new jh:"-"===e?new $h:t.create(e))).filter((e=>!!e))}_cleanItemsConfiguration(e,t,o){const i=e.filter(((e,i,n)=>"|"===e||-1===o.indexOf(e)&&("-"===e?!this.options.shouldGroupWhenFull||(be("toolbarview-line-break-ignored-when-grouping-items",n),!1):!(!s(e)&&!t.has(e))||(be("toolbarview-item-unavailable",{item:e}),!1))));return this._cleanSeparatorsAndLineBreaks(i)}_cleanSeparatorsAndLineBreaks(e){const t=e=>"-"!==e&&"|"!==e,o=e.length,i=e.findIndex(t);if(-1===i)return[];const n=o-e.slice().reverse().findIndex(t);return e.slice(i,n).filter(((e,o,i)=>{if(t(e))return!0;return!(o>0&&i[o-1]===e)}))}_createNestedToolbarDropdown(e,t,o){let{label:i,icon:n,items:s,tooltip:r=!0,withText:a=!1}=e;if(s=this._cleanItemsConfiguration(s,t,o),!s.length)return null;const l=Zh(this.locale);return i||be("toolbarview-nested-toolbar-dropdown-missing-label",e),l.class="ck-toolbar__nested-toolbar-dropdown",l.buttonView.set({label:i,tooltip:r,withText:!!a}),!1!==n?l.buttonView.icon=Hh[n]||n||id:l.buttonView.withText=!0,Qh(l,(()=>l.toolbarView._buildItemsFromConfig(s,t,o))),l}}class Uh extends Au{children;constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class Kh{type="static";constructor(e){e.isGrouping=!1,e.itemsView.children.bindTo(e.items).using((e=>e)),e.focusables.bindTo(e.items).using((e=>Hu(e)?e:null))}render(){}destroy(){}}class Gh{type="dynamic";view;viewChildren;viewFocusables;viewItemsView;viewFocusTracker;viewLocale;ungroupedItems;groupedItems;groupedItemsDropdown;resizeObserver=null;cachedPadding=null;shouldUpdateGroupingOnNextResize=!1;viewElement;constructor(e){this.view=e,this.viewChildren=e.children,this.viewFocusables=e.focusables,this.viewItemsView=e.itemsView,this.viewFocusTracker=e.focusTracker,this.viewLocale=e.locale,this.view.isGrouping=!0,this.ungroupedItems=e.createCollection(),this.groupedItems=e.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),e.itemsView.children.bindTo(this.ungroupedItems).using((e=>e)),this.ungroupedItems.on("change",this._updateFocusCyclableItems.bind(this)),e.children.on("change",this._updateFocusCyclableItems.bind(this)),e.items.on("change",((e,t)=>{const o=t.index,i=Array.from(t.added);for(const e of t.removed)o>=this.ungroupedItems.length?this.groupedItems.remove(e):this.ungroupedItems.remove(e);for(let e=o;ethis.ungroupedItems.length?this.groupedItems.add(t,e-this.ungroupedItems.length):this.ungroupedItems.add(t,e)}this._updateGrouping()}))}render(e){this.viewElement=e.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(e)}destroy(){this.groupedItemsDropdown.destroy(),this.viewChildren.length>1&&(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last)),this.resizeObserver.destroy()}refreshItems(){const e=this.view;if(e.items.length){for(let t=0;ti.right-this.cachedPadding:o.left{e&&e===t.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),e=t.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(e){e.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new jh),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const e=this.viewLocale,t=e.t,o=Zh(e);return o.class="ck-toolbar__grouped-dropdown",o.panelPosition="ltr"===e.uiLanguageDirection?"sw":"se",Qh(o,this.groupedItems),o.buttonView.set({label:t("Show more items"),tooltip:!0,tooltipPosition:"rtl"===e.uiLanguageDirection?"se":"sw",icon:id}),o}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((e=>{Hu(e)&&this.viewFocusables.add(e)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}class Jh extends Au{children;actionView;arrowView;keystrokes;focusTracker;constructor(e,t){super(e);const o=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(t),this.arrowView=this._createArrowView(),this.keystrokes=new ro,this.focusTracker=new oo,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",o.to("class"),o.if("isVisible","ck-hidden",(e=>!e)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((e,t)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),t())})),this.keystrokes.set("arrowleft",((e,t)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),t())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(e){const t=e||new Lu;return e||t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const e=new Lu,t=e.bindTemplate;return e.icon=Uc,e.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":t.to("isOn"),"aria-haspopup":!0,"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("isEnabled").to(this),e.bind("label").to(this),e.bind("tooltip").to(this),e.delegate("execute").to(this,"open"),e}}function Zh(e,t=Mh){const o="function"==typeof t?new t(e):t,i=new Dh(e),n=new Fh(e,o,i);return o.bind("isEnabled").to(n),o instanceof Jh?o.arrowView.bind("isOn").to(n,"isOpen"):o.bind("isOn").to(n,"isOpen"),function(e){(function(e){Su({emitter:e,activator:()=>e.isRendered&&e.isOpen,callback:()=>{e.isOpen=!1},contextElements:()=>[e.element,...om(e.focusTracker).filter((t=>!e.element.contains(t)))]})})(e),function(e){e.on("execute",(t=>{t.source instanceof fh||(e.isOpen=!1)}))}(e),function(e){e.focusTracker.on("change:isFocused",((t,o,i)=>{!i&&e.isOpen&&(e.isOpen=!1)}))}(e),function(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isOpen&&(e.panelView.focus(),o())})),e.keystrokes.set("arrowup",((t,o)=>{e.isOpen&&(e.panelView.focusLast(),o())}))}(e),function(e){e.on("change:isOpen",((t,o,i)=>{if(i)return;e.focusTracker.elements.some((e=>e.contains(J.document.activeElement)))&&e.buttonView.focus()}))}(e),function(e){e.on("change:isOpen",((t,o,i)=>{i&&e.panelView.focus()}),{priority:"low"})}(e)}(n),n}function Qh(e,t,o={}){e.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.isOpen?Yh(e,t,o):e.once("change:isOpen",(()=>Yh(e,t,o)),{priority:"highest"}),o.enableActiveItemFocusOnDropdownOpen&&tm(e,(()=>e.toolbarView.items.find((e=>e.isOn))))}function Yh(e,t,o){const i=e.locale,n=i.t,s=e.toolbarView=new Wh(i),r="function"==typeof t?t():t;s.ariaLabel=o.ariaLabel||n("Dropdown toolbar"),o.maxWidth&&(s.maxWidth=o.maxWidth),o.class&&(s.class=o.class),o.isCompact&&(s.isCompact=o.isCompact),o.isVertical&&(s.isVertical=!0),r instanceof tu?s.items.bindTo(r).using((e=>e)):s.items.addMany(r),e.panelView.children.add(s),e.focusTracker.add(s),s.items.delegate("execute").to(e)}function Xh(e,t,o={}){e.isOpen?em(e,t,o):e.once("change:isOpen",(()=>em(e,t,o)),{priority:"highest"}),tm(e,(()=>e.listView.items.find((e=>e instanceof Nh&&e.children.first.isOn))))}function em(e,t,o){const i=e.locale,n=e.listView=new zh(i),s="function"==typeof t?t():t;n.ariaLabel=o.ariaLabel,n.role=o.role,im(e,n.items,s,i),e.panelView.children.add(n),n.items.delegate("execute").to(e)}function tm(e,t){e.on("change:isOpen",(()=>{if(!e.isOpen)return;const o=t();o&&("function"==typeof o.focus?o.focus():be("ui-dropdown-focus-child-on-open-child-missing-focus",{view:o}))}),{priority:ge.low-10})}function om(e){return[...e.elements,...e.externalViews.flatMap((e=>om(e.focusTracker)))]}function im(e,t,o,i){!function(e){let t=0;const o=e=>e instanceof Nh&&e.children.first instanceof ih?e.children.first:null,i=e=>{const t=o(e);return t&&t.isToggleable?t:null},n=t=>{for(const i of e){const e=o(i);e&&(e.hasCheckSpace=t)}};e.on("change",((e,s)=>{const r=t>0;for(const e of s.removed)i(e)&&t--;for(const e of s.added){const i=o(e);i&&(i.isToggleable&&t++,i.hasCheckSpace=t>0)}const a=t>0;r!==a&&n(a)}))}(t),t.bindTo(o).using((t=>{if("separator"===t.type)return new Bh(i);if("group"===t.type){const o=new Lh(i);return o.set({label:t.label}),im(e,o.items,t.items,i),o.items.delegate("execute").to(e),o}if("button"===t.type||"switchbutton"===t.type){const e="menuitemcheckbox"===t.model.role||"menuitemradio"===t.model.role,o=new Nh(i);let n;return"button"===t.type?(n=new ih(i,t.labelView),n.set({isToggleable:e})):n=new fh(i),n.bind(...Object.keys(t.model)).to(t.model),n.delegate("execute").to(o),o.children.add(n),o}return null}))}const nm=(e,t,o)=>{const i=new Oh(e.locale);return i.set({id:t,ariaDescribedById:o}),i.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),i.bind("hasError").to(e,"errorText",(e=>!!e)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(i),i},sm=(e,t,o)=>{const i=new Vh(e.locale);return i.set({id:t,ariaDescribedById:o,inputMode:"numeric"}),i.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),i.bind("hasError").to(e,"errorText",(e=>!!e)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(i),i},rm=(e,t,o)=>{const i=Zh(e.locale);return i.set({id:t,ariaDescribedById:o}),i.bind("isEnabled").to(e),i};class am extends Au{hexInputRow;_debounceColorPickerEvent;_config;constructor(e,t={}){super(e),this.set({color:"",_hexColor:""}),this.hexInputRow=this._createInputRow();const o=this.createCollection();t.hideInput||o.add(this.hexInputRow),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker"],tabindex:-1},children:o}),this._config=t,this._debounceColorPickerEvent=zo((e=>{this.set("color",e),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((e,t,o)=>{e.return=Th(o,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=lm(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),lm(this.color)!=lm(this._hexColor)&&(this.color=this._hexColor)}))}render(){var e,t;if(super.render(),e="hex-color-picker",t=eu,void 0===customElements.get(e)&&customElements.define(e,t),this.picker=J.document.createElement("hex-color-picker"),this.picker.setAttribute("class","hex-color-picker"),this.picker.setAttribute("tabindex","-1"),this._createSlidersView(),this.element){this.hexInputRow.element?this.element.insertBefore(this.picker,this.hexInputRow.element):this.element.appendChild(this.picker);const e=document.createElement("style");e.textContent='[role="slider"]:focus [part$="pointer"] {border: 1px solid #fff;outline: 1px solid var(--ck-color-focus-border);box-shadow: 0 0 0 2px #fff;}',this.picker.shadowRoot.appendChild(e)}this.picker.addEventListener("color-changed",(e=>{const t=e.detail.value;this._debounceColorPickerEvent(t)}))}focus(){if(!this._config.hideInput&&(Y.isGecko||Y.isiOS||Y.isSafari||Y.isBlink)){this.hexInputRow.children.get(1).focus()}this.slidersView.first.focus()}_createSlidersView(){const e=[...this.picker.shadowRoot.children].filter((e=>"slider"===e.getAttribute("role"))).map((e=>new cm(e)));this.slidersView=this.createCollection(),e.forEach((e=>{this.slidersView.add(e)}))}_createInputRow(){const e=this._createColorInput();return new um(this.locale,e)}_createColorInput(){const e=new Sh(this.locale,nm),{t}=this.locale;return e.set({label:t("HEX"),class:"color-picker-hex-input"}),e.fieldView.bind("value").to(this,"_hexColor",(t=>e.isFocused?e.fieldView.value:t.startsWith("#")?t.substring(1):t)),e.fieldView.on("input",(()=>{const t=e.fieldView.element.value;if(t){const e=hm(t);e&&this._debounceColorPickerEvent(e)}})),e}isValid(){const{t:e}=this.locale;return!!this._config.hideInput||(this.resetValidationStatus(),!!this.hexInputRow.getParsedColor()||(this.hexInputRow.inputView.errorText=e('Please enter a valid color (e.g. "ff0000").'),!1))}resetValidationStatus(){this.hexInputRow.inputView.errorText=null}}function lm(e){let t=function(e){if(!e)return"";const t=Ph(e);return t?"hex"===t.space?t.hexValue:Th(e,"hex"):"#000"}(e);return t||(t="#000"),4===t.length&&(t="#"+[t[1],t[1],t[2],t[2],t[3],t[3]].join("")),t.toLowerCase()}class cm extends Au{constructor(e){super(),this.element=e}focus(){this.element.focus()}}class dm extends Au{constructor(e){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class um extends Au{children;inputView;constructor(e,t){super(e),this.inputView=t,this.children=this.createCollection([new dm,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return hm(this.inputView.fieldView.element.value)}}function hm(e){if(!e)return null;const t=e.trim().replace(/^#/,"");return[3,4,6,8].includes(t.length)&&/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test(t)?`#${t}`:null}class mm extends(Be(eo)){constructor(e){super(e),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(e,t){return this.find((t=>t.color===e.color))?this:super.add(e,t)}hasColor(e){return!!this.find((t=>t.color===e))}}class gm extends Au{items;colorDefinitions;focusTracker;columns;documentColors;documentColorsCount;staticColorsGrid;documentColorsGrid;colorPickerButtonView;removeColorButtonView;_focusables;_documentColorsLabel;_removeButtonLabel;_colorPickerLabel;constructor(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,focusTracker:a,focusables:l}){super(e);const c=this.bindTemplate;this.set("isVisible",!0),this.focusTracker=a,this.items=this.createCollection(),this.colorDefinitions=t,this.columns=o,this.documentColors=new mm,this.documentColorsCount=s,this._focusables=l,this._removeButtonLabel=i,this._colorPickerLabel=r,this._documentColorsLabel=n,this.setTemplate({tag:"div",attributes:{class:["ck-color-grids-fragment",c.if("isVisible","ck-hidden",(e=>!e))]},children:this.items}),this.removeColorButtonView=this._createRemoveColorButton(),this.items.add(this.removeColorButtonView)}updateDocumentColors(e,t){const o=e.document,i=this.documentColorsCount;this.documentColors.clear();for(const n of o.getRoots()){const o=e.createRangeIn(n);for(const e of o.getItems())if(e.is("$textProxy")&&e.hasAttribute(t)&&(this._addColorToDocumentColors(e.getAttribute(t)),this.documentColors.length>=i))return}}updateSelectedColors(){const e=this.documentColorsGrid,t=this.staticColorsGrid,o=this.selectedColor;t.selectedColor=o,e&&(e.selectedColor=o)}render(){if(super.render(),this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount){const e=ou.bind(this.documentColors,this.documentColors),t=new Au(this.locale);t.setTemplate({tag:"span",attributes:{class:["ck","ck-color-grid__label",e.if("isEmpty","ck-hidden")]},children:[{text:this._documentColorsLabel}]}),this.items.add(t),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}this._createColorPickerButton(),this._addColorSelectorElementsToFocusTracker()}focus(){this.removeColorButtonView.focus()}destroy(){super.destroy()}addColorPickerButton(){this.colorPickerButtonView&&(this.items.add(this.colorPickerButtonView),this.focusTracker.add(this.colorPickerButtonView.element),this._focusables.add(this.colorPickerButtonView))}_addColorSelectorElementsToFocusTracker(){this.focusTracker.add(this.removeColorButtonView.element),this._focusables.add(this.removeColorButtonView),this.staticColorsGrid&&(this.focusTracker.add(this.staticColorsGrid.element),this._focusables.add(this.staticColorsGrid)),this.documentColorsGrid&&(this.focusTracker.add(this.documentColorsGrid.element),this._focusables.add(this.documentColorsGrid))}_createColorPickerButton(){this.colorPickerButtonView=new Lu,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:'',class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const e=new Lu;return e.set({withText:!0,icon:'',label:this._removeButtonLabel}),e.class="ck-color-selector__remove-color",e.on("execute",(()=>{this.fire("execute",{value:null,source:"removeColorButton"})})),e.render(),e}_createStaticColorsGrid(){const e=new Eh(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return e.on("execute",((e,t)=>{this.fire("execute",{value:t.value,source:"staticColorsGrid"})})),e}_createDocumentColorsGrid(){const e=ou.bind(this.documentColors,this.documentColors),t=new Eh(this.locale,{columns:this.columns});return t.extendTemplate({attributes:{class:e.if("isEmpty","ck-hidden")}}),t.items.bindTo(this.documentColors).using((e=>{const t=new xh;return t.set({color:e.color,hasBorder:e.options?.hasBorder}),e.label&&t.set({label:e.label,tooltip:!0}),t.on("execute",(()=>{this.fire("execute",{value:e.color,source:"documentColorsGrid"})})),t})),this.documentColors.on("change:isEmpty",((e,o,i)=>{i&&(t.selectedColor=null)})),t}_addColorToDocumentColors(e){const t=this.colorDefinitions.find((t=>t.color===e));t?this.documentColors.add(Object.assign({},t)):this.documentColors.add({color:e,label:e,options:{hasBorder:!1}})}}class pm extends Au{items;colorPickerView;saveButtonView;cancelButtonView;actionBarView;focusTracker;keystrokes;_focusables;_colorPickerViewConfig;constructor(e,{focusTracker:t,focusables:o,keystrokes:i,colorPickerViewConfig:n}){super(e),this.items=this.createCollection(),this.focusTracker=t,this.keystrokes=i,this.set("isVisible",!1),this.set("selectedColor",void 0),this._focusables=o,this._colorPickerViewConfig=n;const s=this.bindTemplate,{saveButtonView:r,cancelButtonView:a}=this._createActionButtons();this.saveButtonView=r,this.cancelButtonView=a,this.actionBarView=this._createActionBarView({saveButtonView:r,cancelButtonView:a}),this.setTemplate({tag:"div",attributes:{class:["ck-color-picker-fragment",s.if("isVisible","ck-hidden",(e=>!e))]},children:this.items})}render(){super.render();const e=new am(this.locale,{...this._colorPickerViewConfig});this.colorPickerView=e,this.colorPickerView.render(),this.selectedColor&&(e.color=this.selectedColor),this.listenTo(this,"change:selectedColor",((t,o,i)=>{e.color=i})),this.items.add(this.colorPickerView),this.items.add(this.actionBarView),this._addColorPickersElementsToFocusTracker(),this._stopPropagationOnArrowsKeys(),this._executeOnEnterPress(),this._executeUponColorChange()}destroy(){super.destroy()}focus(){this.colorPickerView.focus()}resetValidationStatus(){this.colorPickerView.resetValidationStatus()}_executeOnEnterPress(){this.keystrokes.set("enter",(e=>{this.isVisible&&this.focusTracker.focusedElement!==this.cancelButtonView.element&&this.colorPickerView.isValid()&&(this.fire("execute",{value:this.selectedColor}),e.stopPropagation(),e.preventDefault())}))}_stopPropagationOnArrowsKeys(){const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}_addColorPickersElementsToFocusTracker(){for(const e of this.colorPickerView.slidersView)this.focusTracker.add(e.element),this._focusables.add(e);const e=this.colorPickerView.hexInputRow.children.get(1);e.element&&(this.focusTracker.add(e.element),this._focusables.add(e)),this.focusTracker.add(this.saveButtonView.element),this._focusables.add(this.saveButtonView),this.focusTracker.add(this.cancelButtonView.element),this._focusables.add(this.cancelButtonView)}_createActionBarView({saveButtonView:e,cancelButtonView:t}){const o=new Au,i=this.createCollection();return i.add(e),i.add(t),o.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector_action-bar"]},children:i}),o}_createActionButtons(){const e=this.locale,t=e.t,o=new Lu(e),i=new Lu(e);return o.set({icon:Hc,class:"ck-button-save",type:"button",withText:!1,label:t("Accept")}),i.set({icon:qc,class:"ck-button-cancel",type:"button",withText:!1,label:t("Cancel")}),o.on("execute",(()=>{this.colorPickerView.isValid()&&this.fire("execute",{source:"colorPickerSaveButton",value:this.selectedColor})})),i.on("execute",(()=>{this.fire("colorPicker:cancel")})),{saveButtonView:o,cancelButtonView:i}}_executeUponColorChange(){this.colorPickerView.on("colorSelected",((e,t)=>{this.fire("execute",{value:t.color,source:"colorPicker"}),this.set("selectedColor",t.color)}))}}class fm extends Au{focusTracker;keystrokes;items;colorGridsFragmentView;colorPickerFragmentView;_focusCycler;_focusables;_colorPickerViewConfig;constructor(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,colorPickerViewConfig:a}){super(e),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this._focusables=new tu,this._colorPickerViewConfig=a,this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new gm(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new pm(e,{focusables:this._focusables,focusTracker:this.focusTracker,keystrokes:this.keystrokes,colorPickerViewConfig:a}),this.set("_isColorGridsFragmentVisible",!0),this.set("_isColorPickerFragmentVisible",!1),this.set("selectedColor",void 0),this.colorGridsFragmentView.bind("isVisible").to(this,"_isColorGridsFragmentVisible"),this.colorPickerFragmentView.bind("isVisible").to(this,"_isColorPickerFragmentVisible"),this.on("change:selectedColor",((e,t,o)=>{this.colorGridsFragmentView.set("selectedColor",o),this.colorPickerFragmentView.set("selectedColor",o)})),this.colorGridsFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.colorPickerFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector"]},children:this.items})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendUI(){this._appendColorGridsFragment(),this._colorPickerViewConfig&&this._appendColorPickerFragment()}showColorPickerFragment(){this.colorPickerFragmentView.colorPickerView&&!this._isColorPickerFragmentVisible&&(this._isColorPickerFragmentVisible=!0,this.colorPickerFragmentView.focus(),this.colorPickerFragmentView.resetValidationStatus(),this._isColorGridsFragmentVisible=!1)}showColorGridsFragment(){this._isColorGridsFragmentVisible||(this._isColorGridsFragmentVisible=!0,this.colorGridsFragmentView.focus(),this._isColorPickerFragmentVisible=!1)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}updateDocumentColors(e,t){this.colorGridsFragmentView.updateDocumentColors(e,t)}updateSelectedColors(){this.colorGridsFragmentView.updateSelectedColors()}_appendColorGridsFragment(){this.items.length||(this.items.add(this.colorGridsFragmentView),this.colorGridsFragmentView.delegate("execute").to(this),this.colorGridsFragmentView.delegate("colorPicker:show").to(this))}_appendColorPickerFragment(){2!==this.items.length&&(this.items.add(this.colorPickerFragmentView),this.colorGridsFragmentView.colorPickerButtonView&&this.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{this.showColorPickerFragment()})),this.colorGridsFragmentView.addColorPickerButton(),this.colorPickerFragmentView.delegate("execute").to(this),this.colorPickerFragmentView.delegate("colorPicker:cancel").to(this))}}class bm{editor;_components=new Map;constructor(e){this.editor=e}*names(){for(const e of this._components.values())yield e.originalName}add(e,t){this._components.set(wm(e),{callback:t,originalName:e})}create(e){if(!this.has(e))throw new fe("componentfactory-item-missing",this,{name:e});return this._components.get(wm(e)).callback(this.editor.locale)}has(e){return this._components.has(wm(e))}}function wm(e){return String(e).toLowerCase()}const ym="ck-tooltip";class _m extends(et()){tooltipTextView;balloonPanelView;static defaultBalloonPositions=dh.generatePositions({heightOffset:5,sideOffset:13});_currentElementWithTooltip=null;_currentTooltipPosition=null;_mutationObserver=null;_pinTooltipDebounced;_unpinTooltipDebounced;_watchdogExcluded;static _editors=new Set;static _instance=null;constructor(e){if(super(),_m._editors.add(e),_m._instance)return _m._instance;_m._instance=this,this.tooltipTextView=new Au(e.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new dh(e.locale),this.balloonPanelView.class=ym,this.balloonPanelView.content.add(this.tooltipTextView),this._mutationObserver=function(e){const t=new MutationObserver((()=>{e()}));return{attach(e){t.observe(e,{attributes:!0,attributeFilter:["data-cke-tooltip-text","data-cke-tooltip-position"]})},detach(){t.disconnect()}}}((()=>{this._updateTooltipPosition()})),this._pinTooltipDebounced=zo(this._pinTooltip,600),this._unpinTooltipDebounced=zo(this._unpinTooltip,400),this.listenTo(J.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(J.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(J.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(J.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(J.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(J.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(e){const t=e.ui.view&&e.ui.view.body;_m._editors.delete(e),this.stopListening(e.ui),t&&t.has(this.balloonPanelView)&&t.remove(this.balloonPanelView),_m._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),_m._instance=null)}static getPositioningFunctions(e){const t=_m.defaultBalloonPositions;return{s:[t.southArrowNorth,t.southArrowNorthEast,t.southArrowNorthWest],n:[t.northArrowSouth],e:[t.eastArrowWest],w:[t.westArrowEast],sw:[t.southArrowNorthEast],se:[t.southArrowNorthWest]}[e]}_onKeyDown(e,t){"Escape"===t.key&&this._currentElementWithTooltip&&(this._unpinTooltip(),t.stopPropagation())}_onEnterOrFocus(e,{target:t}){const o=km(t);o?o!==this._currentElementWithTooltip?(this._unpinTooltip(),"focus"===e.name&&!o.matches(":hover")||o.matches("[data-cke-tooltip-instant]")?this._pinTooltip(o,vm(o)):this._pinTooltipDebounced(o,vm(o))):this._unpinTooltipDebounced.cancel():"focus"===e.name&&this._unpinTooltip()}_onLeaveOrBlur(e,{target:t,relatedTarget:o}){if("mouseleave"===e.name){if(!L(t))return;const e=this.balloonPanelView.element,i=e&&(e===o||e.contains(o)),n=!i&&t===e;if(i)return void this._unpinTooltipDebounced.cancel();if(!n&&this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;const s=km(t),r=km(o);(n||s&&s!==r)&&(this._pinTooltipDebounced.cancel(),this._currentElementWithTooltip&&this._currentElementWithTooltip.matches("[data-cke-tooltip-instant]")||s&&s.matches("[data-cke-tooltip-instant]")?this._unpinTooltip():this._unpinTooltipDebounced())}else{if(this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;this._pinTooltipDebounced.cancel(),this._unpinTooltipDebounced()}}_onScroll(e,{target:t}){this._currentElementWithTooltip&&(t.contains(this.balloonPanelView.element)&&t.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(e,{text:t,position:o,cssClass:i}){this._unpinTooltip();const n=to(_m._editors.values()).ui.view.body;n.has(this.balloonPanelView)||n.add(this.balloonPanelView),this.tooltipTextView.text=t,this.balloonPanelView.class=[ym,i].filter((e=>e)).join(" "),this.balloonPanelView.pin({target:e,positions:_m.getPositioningFunctions(o)}),this._mutationObserver.attach(e);for(const e of _m._editors)this.listenTo(e.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=e,this._currentTooltipPosition=o}_unpinTooltip(){this._unpinTooltipDebounced.cancel(),this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const e of _m._editors)this.stopListening(e.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this.tooltipTextView.text="",this._mutationObserver.detach()}_updateTooltipPosition(){if(!this._currentElementWithTooltip)return;const e=vm(this._currentElementWithTooltip);Ct(this._currentElementWithTooltip)&&e.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:_m.getPositioningFunctions(e.position)}):this._unpinTooltip()}}function km(e){return L(e)?e.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function vm(e){return{text:e.dataset.ckeTooltipText,position:e.dataset.ckeTooltipPosition||"s",cssClass:e.dataset.ckeTooltipClass||""}}class Cm extends hh{licenseTypeMessage={evaluation:"For evaluation purposes only",trial:"For evaluation purposes only",development:"For development purposes only"};constructor(e){super(e,{balloonClass:"ck-evaluation-badge-balloon"})}_isEnabled(){const e=xm(this.editor.config.get("licenseKey"));return Boolean(e&&this.licenseTypeMessage[e])}_createBadgeContent(){const e=xm(this.editor.config.get("licenseKey"));return new Am(this.editor.locale,this.licenseTypeMessage[e])}_getNormalizedConfig(){const e=super._getNormalizedConfig(),t=this.editor.config.get("ui.poweredBy")||{};return{position:t.position||e.position,side:"left"===(t.side||e.side)?"right":"left",verticalOffset:e.verticalOffset,horizontalOffset:e.horizontalOffset}}}class Am extends Au{constructor(e,t){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-evaluation-badge"],"aria-hidden":!0},children:[{tag:"span",attributes:{class:["ck","ck-evaluation-badge__label"]},children:[t]}]})}}function xm(e){if("GPL"==e)return"GPL";const t=uo(e.split(".")[1]);return t?t.licenseType||"production":null}class Em extends Nh{constructor(e,t){super(e);const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item"]},on:{mouseenter:o.to("mouseenter")}}),this.delegate("mouseenter").to(t)}}const Tm={toggleMenusAndFocusItemsOnHover(e){e.on("menu:mouseenter",(t=>{if(e.isFocusBorderEnabled||e.isOpen){if(e.isOpen)for(const o of e.menus){const e=t.path[0],i=e instanceof Em&&e.children.first===o;o.isOpen=(t.path.includes(o)||i)&&o.isEnabled}t.source.focus()}}))},focusCycleMenusOnArrows(e){const t="rtl"===e.locale.uiLanguageDirection;function o(t,o){const i=e.children.getIndex(t),n=t.isOpen,s=e.children.length,r=e.children.get((i+s+o)%s);t.isOpen=!1,n&&(r.isOpen=!0),r.buttonView.focus()}e.on("menu:arrowright",(e=>{o(e.source,t?-1:1)})),e.on("menu:arrowleft",(e=>{o(e.source,t?1:-1)}))},closeMenusWhenTheBarCloses(e){e.on("change:isOpen",(()=>{e.isOpen||e.menus.forEach((e=>{e.isOpen=!1}))}))},closeMenuWhenAnotherOnTheSameLevelOpens(e){e.on("menu:change:isOpen",((t,o,i)=>{i&&e.menus.filter((e=>t.source.parentMenuView===e.parentMenuView&&t.source!==e&&e.isOpen)).forEach((e=>{e.isOpen=!1}))}))},closeOnClickOutside(e){Su({emitter:e,activator:()=>e.isOpen,callback:()=>e.close(),contextElements:()=>e.children.map((e=>e.element))})},enableFocusHighlightOnInteraction(e){let t=!1;e.on("change:isOpen",((o,i,n)=>{n||(t||(e.isFocusBorderEnabled=!1),t=!1)})),e.listenTo(e.element,"keydown",(()=>{t=!0}),{useCapture:!0}),e.listenTo(e.element,"keyup",(()=>{t=!1}),{useCapture:!0}),e.listenTo(e.element,"focus",(()=>{t&&(e.isFocusBorderEnabled=!0)}),{useCapture:!0})}},Pm={openAndFocusPanelOnArrowDownKey(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isEnabled&&e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnArrowRightKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowleft":"arrowright";e.keystrokes.set(t,((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&e.isEnabled&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!0}))},toggleOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!e.isOpen}))},openAndFocusOnEnterKeyPress(e){e.keystrokes.set("enter",((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen=!0,e.panelView.focus(),o())}))},closeOnArrowLeftKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowright":"arrowleft";e.keystrokes.set(t,((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnEscKey(e){e.keystrokes.set("esc",((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnParentClose(e){e.parentMenuView.on("change:isOpen",((t,o,i)=>{i||t.source!==e.parentMenuView||(e.isOpen=!1)}))}},Sm={southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),eastSouth:e=>({top:e.top,left:e.right-5,name:"es"}),eastNorth:(e,t)=>({top:e.top-t.height,left:e.right-5,name:"en"}),westSouth:(e,t)=>({top:e.top,left:e.left-t.width+5,name:"ws"}),westNorth:(e,t)=>({top:e.top-t.height,left:e.left-t.width+5,name:"wn"})},Im=[{menuId:"file",label:"File",groups:[{groupId:"export",items:["menuBar:exportPdf","menuBar:exportWord"]},{groupId:"import",items:["menuBar:importWord"]},{groupId:"revisionHistory",items:["menuBar:revisionHistory"]}]},{menuId:"edit",label:"Edit",groups:[{groupId:"undo",items:["menuBar:undo","menuBar:redo"]},{groupId:"selectAll",items:["menuBar:selectAll"]},{groupId:"findAndReplace",items:["menuBar:findAndReplace"]}]},{menuId:"view",label:"View",groups:[{groupId:"sourceEditingEnhanced",items:["menuBar:sourceEditingEnhanced"]},{groupId:"sourceEditing",items:["menuBar:sourceEditing"]},{groupId:"showBlocks",items:["menuBar:showBlocks"]},{groupId:"previewMergeFields",items:["menuBar:previewMergeFields"]},{groupId:"fullscreen",items:["menuBar:fullscreen"]},{groupId:"restrictedEditing",items:["menuBar:restrictedEditing"]}]},{menuId:"insert",label:"Insert",groups:[{groupId:"insertMainWidgets",items:["menuBar:insertImage","menuBar:ckbox","menuBar:ckfinder","menuBar:insertTable","menuBar:insertTableLayout"]},{groupId:"insertInline",items:["menuBar:link","menuBar:insertFootnote","menuBar:bookmark","menuBar:comment","menuBar:insertMergeField","menuBar:emoji"]},{groupId:"insertMinorWidgets",items:["menuBar:mediaEmbed","menuBar:insertTemplate","menuBar:specialCharacters","menuBar:blockQuote","menuBar:codeBlock","menuBar:htmlEmbed"]},{groupId:"insertStructureWidgets",items:["menuBar:horizontalLine","menuBar:pageBreak","menuBar:tableOfContents"]},{groupId:"restrictedEditingException",items:["menuBar:restrictedEditingException:inline","menuBar:restrictedEditingException:block"]}]},{menuId:"format",label:"Format",groups:[{groupId:"textAndFont",items:[{menuId:"text",label:"Text",groups:[{groupId:"basicStyles",items:["menuBar:bold","menuBar:italic","menuBar:underline","menuBar:strikethrough","menuBar:superscript","menuBar:subscript","menuBar:code"]},{groupId:"textPartLanguage",items:["menuBar:textPartLanguage"]}]},{menuId:"font",label:"Font",groups:[{groupId:"fontProperties",items:["menuBar:fontSize","menuBar:fontFamily"]},{groupId:"fontColors",items:["menuBar:fontColor","menuBar:fontBackgroundColor"]},{groupId:"highlight",items:["menuBar:highlight"]}]},"menuBar:heading"]},{groupId:"list",items:["menuBar:bulletedList","menuBar:numberedList","menuBar:multiLevelList","menuBar:todoList"]},{groupId:"indent",items:["menuBar:alignment","menuBar:lineHeight","menuBar:indent","menuBar:outdent"]},{groupId:"caseChange",items:["menuBar:caseChange"]},{groupId:"removeFormat",items:["menuBar:removeFormat"]}]},{menuId:"tools",label:"Tools",groups:[{groupId:"aiTools",items:["menuBar:aiAssistant","menuBar:aiCommands","menuBar:toggleAi","menuBar:aiQuickActions"]},{groupId:"tools",items:["menuBar:trackChanges","menuBar:commentsArchive"]}]},{menuId:"help",label:"Help",groups:[{groupId:"help",items:["menuBar:accessibilityHelp"]}]}];function Rm({normalizedConfig:e,locale:t,componentFactory:o,extraItems:i}){const n=j(e);return Om(e,n,i),function(e,t){const o=t.removeItems,i=[];t.items=t.items.filter((({menuId:e})=>!o.includes(e)||(i.push(e),!1))),Mm(t.items,(e=>{e.groups=e.groups.filter((({groupId:e})=>!o.includes(e)||(i.push(e),!1)));for(const t of e.groups)t.items=t.items.filter((e=>{const t=zm(e);return!o.includes(t)||(i.push(t),!1)}))}));for(const t of o)i.includes(t)||be("menu-bar-item-could-not-be-removed",{menuBarConfig:e,itemName:t})}(e,n),Om(e,n,n.addItems),function(e,t,o){Mm(t.items,(i=>{for(const n of i.groups)n.items=n.items.filter((n=>{const s="string"==typeof n&&!o.has(n);return s&&!t.isUsingDefaultConfig&&be("menu-bar-item-unavailable",{menuBarConfig:e,parentMenuConfig:j(i),componentName:n}),!s}))}))}(e,n,o),Dm(e,n),function(e,t){const o=t.t,i={File:o({string:"File",id:"MENU_BAR_MENU_FILE"}),Edit:o({string:"Edit",id:"MENU_BAR_MENU_EDIT"}),View:o({string:"View",id:"MENU_BAR_MENU_VIEW"}),Insert:o({string:"Insert",id:"MENU_BAR_MENU_INSERT"}),Format:o({string:"Format",id:"MENU_BAR_MENU_FORMAT"}),Tools:o({string:"Tools",id:"MENU_BAR_MENU_TOOLS"}),Help:o({string:"Help",id:"MENU_BAR_MENU_HELP"}),Text:o({string:"Text",id:"MENU_BAR_MENU_TEXT"}),Font:o({string:"Font",id:"MENU_BAR_MENU_FONT"})};Mm(e.items,(e=>{e.label in i&&(e.label=i[e.label])}))}(n,t),n}function Om(e,t,o){const i=[];if(0!=o.length){for(const e of o){const o=Bm(e.position),s=Lm(e.position);if("object"==typeof(n=e)&&"menu"in n)if(s){const n=t.items.findIndex((e=>e.menuId===s));if(-1!=n)"before"===o?(t.items.splice(n,0,e.menu),i.push(e)):"after"===o&&(t.items.splice(n+1,0,e.menu),i.push(e));else{Vm(t,e.menu,s,o)&&i.push(e)}}else"start"===o?(t.items.unshift(e.menu),i.push(e)):"end"===o&&(t.items.push(e.menu),i.push(e));else if(Nm(e))Mm(t.items,(t=>{if(t.menuId===s)"start"===o?(t.groups.unshift(e.group),i.push(e)):"end"===o&&(t.groups.push(e.group),i.push(e));else{const n=t.groups.findIndex((e=>e.groupId===s));-1!==n&&("before"===o?(t.groups.splice(n,0,e.group),i.push(e)):"after"===o&&(t.groups.splice(n+1,0,e.group),i.push(e)))}}));else{Vm(t,e.item,s,o)&&i.push(e)}}var n;for(const t of o)i.includes(t)||be("menu-bar-item-could-not-be-added",{menuBarConfig:e,addedItemConfig:t})}}function Vm(e,t,o,i){let n=!1;return Mm(e.items,(e=>{for(const{groupId:s,items:r}of e.groups){if(n)return;if(s===o)"start"===i?(r.unshift(t),n=!0):"end"===i&&(r.push(t),n=!0);else{const e=r.findIndex((e=>zm(e)===o));-1!==e&&("before"===i?(r.splice(e,0,t),n=!0):"after"===i&&(r.splice(e+1,0,t),n=!0))}}})),n}function Dm(e,t){const o=t.isUsingDefaultConfig;let i=!1;t.items=t.items.filter((t=>!!t.groups.length||(Fm(e,t,o),!1))),t.items.length?(Mm(t.items,(t=>{t.groups=t.groups.filter((e=>!!e.items.length||(i=!0,!1)));for(const n of t.groups)n.items=n.items.filter((t=>!(jm(t)&&!t.groups.length)||(Fm(e,t,o),i=!0,!1)))})),i&&Dm(e,t)):Fm(e,e,o)}function Fm(e,t,o){o||be("menu-bar-menu-empty",{menuBarConfig:e,emptyMenuConfig:t})}function Mm(e,t){if(Array.isArray(e))for(const t of e)o(t);function o(e){t(e);for(const t of e.groups)for(const e of t.items)jm(e)&&o(e)}}function Nm(e){return"object"==typeof e&&"group"in e}function Bm(e){return e.startsWith("start")?"start":e.startsWith("end")?"end":e.startsWith("after")?"after":"before"}function Lm(e){const t=e.match(/^[^:]+:(.+)/);return t?t[1]:null}function zm(e){return"string"==typeof e?e:e.menuId}function jm(e){return"object"==typeof e&&"menuId"in e}class $m extends(Be()){editor;componentFactory;focusTracker;tooltipManager;poweredBy;evaluationBadge;ariaLiveAnnouncer;isReady=!1;_editableElementsMap=new Map;_focusableToolbarDefinitions=[];_extraMenuBarElements=[];_lastFocusedForeignElement=null;_domEmitter;constructor(e){super();const t=e.editing.view;this.editor=e,this.componentFactory=new bm(e),this.focusTracker=new oo,this.tooltipManager=new _m(e),this.poweredBy=new gh(e),this.evaluationBadge=new Cm(e),this.ariaLiveAnnouncer=new Eu(e),this._initViewportOffset(this._readViewportOffsetFromConfig()),this.once("ready",(()=>{this._bindBodyCollectionWithFocusTracker(),this.isReady=!0})),this.listenTo(t.document,"layoutChanged",this.update.bind(this)),this.listenTo(t,"scrollToTheSelection",this._handleScrollToTheSelection.bind(this)),this._initFocusTracking(),this._initVisualViewportSupport()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor),this.poweredBy.destroy(),this.evaluationBadge.destroy();for(const e of this._editableElementsMap.values())e.ckeditorInstance=null,this.editor.keystrokes.stopListening(e);this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[],this._domEmitter&&this._domEmitter.stopListening()}setEditableElement(e,t){this._editableElementsMap.set(e,t),t.ckeditorInstance||(t.ckeditorInstance=this.editor),this.focusTracker.add(t);const o=()=>{this.editor.editing.view.getDomRoot(e)||this.editor.keystrokes.listenTo(t)};this.isReady?o():this.once("ready",o)}removeEditableElement(e){const t=this._editableElementsMap.get(e);t&&(this._editableElementsMap.delete(e),this.editor.keystrokes.stopListening(t),this.focusTracker.remove(t),t.ckeditorInstance=null)}getEditableElement(e="main"){return this._editableElementsMap.get(e)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(e,t={}){e.isRendered?(this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)):e.once("render",(()=>{this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)})),this._focusableToolbarDefinitions.push({toolbarView:e,options:t})}extendMenuBar(e){this._extraMenuBarElements.push(e)}initMenuBar(e){const t=e.element;this.focusTracker.add(t),this.editor.keystrokes.listenTo(t);const o=function(e){let t;return t="items"in e&&e.items?{items:e.items,removeItems:[],addItems:[],isVisible:!0,isUsingDefaultConfig:!1,...e}:{items:j(Im),addItems:[],removeItems:[],isVisible:!0,isUsingDefaultConfig:!0,...e},t}(this.editor.config.get("menuBar")||{});e.fillFromConfig(o,this.componentFactory,this._extraMenuBarElements),this.editor.keystrokes.set("Esc",((e,o)=>{t.contains(this.editor.ui.focusTracker.focusedElement)&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):this.editor.editing.view.focus(),o())})),this.editor.keystrokes.set("Alt+F9",((o,i)=>{t.contains(this.editor.ui.focusTracker.focusedElement)||(this._saveLastFocusedForeignElement(),e.isFocusBorderEnabled=!0,e.focus(),i())}))}_readViewportOffsetFromConfig(){const e=this.editor,t=e.config.get("ui.viewportOffset");if(t)return t;const o=e.config.get("toolbar.viewportTopOffset");return o?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:o}):{top:0}}_initFocusTracking(){const e=this.editor;let t;e.keystrokes.set("Alt+F10",((e,o)=>{this._saveLastFocusedForeignElement();const i=this._getCurrentFocusedToolbarDefinition();i&&t||(t=this._getFocusableCandidateToolbarDefinitions());for(let e=0;e{const i=this._getCurrentFocusedToolbarDefinition();i&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):e.editing.view.focus(),i.options.afterBlur&&i.options.afterBlur(),o())}))}_saveLastFocusedForeignElement(){const e=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(e)&&!Array.from(this.editor.editing.view.domRoots.values()).includes(e)&&(this._lastFocusedForeignElement=e)}_getFocusableCandidateToolbarDefinitions(){const e=[];for(const t of this._focusableToolbarDefinitions){const{toolbarView:o,options:i}=t;(Ct(o.element)||i.beforeFocus)&&e.push(t)}return e.sort(((e,t)=>qm(e)-qm(t))),e}_getCurrentFocusedToolbarDefinition(){for(const e of this._focusableToolbarDefinitions)if(e.toolbarView.element&&e.toolbarView.element.contains(this.focusTracker.focusedElement))return e;return null}_focusFocusableCandidateToolbar(e){const{toolbarView:t,options:{beforeFocus:o}}=e;return o&&o(),!!Ct(t.element)&&(t.focus(),!0)}_handleScrollToTheSelection(e,t){const o={top:0,bottom:0,left:0,right:0,...this.viewportOffset};t.viewportOffset.top+=o.top,t.viewportOffset.bottom+=o.bottom,t.viewportOffset.left+=o.left,t.viewportOffset.right+=o.right}_bindBodyCollectionWithFocusTracker(){const e=this.view.body;for(const t of e)this.focusTracker.add(t.element);e.on("add",((e,t)=>{this.focusTracker.add(t.element)})),e.on("remove",((e,t)=>{this.focusTracker.remove(t.element)}))}_initViewportOffset(e){this.on("set:viewportOffset",((e,t,o)=>{const i=this._getVisualViewportTopOffset(o);o.visualTop!==i&&(e.return={...o,visualTop:i})})),this.set("viewportOffset",e)}_initVisualViewportSupport(){if(!J.window.visualViewport)return;const e=()=>{const e=this._getVisualViewportTopOffset(this.viewportOffset);this.viewportOffset.visualTop!==e&&(this.viewportOffset={...this.viewportOffset,visualTop:e})};this._domEmitter=new(et()),this._domEmitter.listenTo(J.window.visualViewport,"scroll",e),this._domEmitter.listenTo(J.window.visualViewport,"resize",e)}_getVisualViewportTopOffset(e){const t=St().top,o=e.top||0;return t>o?0:o-t}}function qm(e){const{toolbarView:t,options:o}=e;let i=10;return Ct(t.element)&&i--,o.isContextual&&(i-=2),i}class Hm extends Au{body;menuBarView;toolbar;constructor(e){super(e),this.body=new ah(e)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class Wm extends Au{name=null;_editingView;_editableElement;_hasExternalElement;constructor(e,t,o){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:e.contentLanguage,dir:e.contentLanguageDirection}}),this.set("isFocused",!1),this._editableElement=o,this._hasExternalElement=!!this._editableElement,this._editingView=t}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}get hasExternalElement(){return this._hasExternalElement}_updateIsFocusedClasses(){const e=this._editingView;function t(t){e.change((o=>{const i=e.document.getRoot(t.name);o.addClass(t.isFocused?"ck-focused":"ck-blurred",i),o.removeClass(t.isFocused?"ck-blurred":"ck-focused",i)}))}e.isRenderingInProgress?function o(i){e.once("change:isRenderingInProgress",((e,n,s)=>{s?o(i):t(i)}))}(this):t(this)}}class Um extends Wm{_options;constructor(e,t,o,i={}){super(e,t,o),this._options=i,this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const e=this._editingView;e.change((t=>{const o=e.document.getRoot(this.name);t.setAttribute("aria-label",this.getEditableAriaLabel(),o)}))}getEditableAriaLabel(){const e=this.locale.t,t=this._options.label,o=this._editableElement,i=this.name;if("string"==typeof t)return t;if("object"==typeof t)return t[i];if("function"==typeof t)return t(this);if(o){const e=o.getAttribute("aria-label");if(e)return e}return e("Rich Text Editor. Editing area: %0",i)}}class Km extends Au{children;constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("class",["ck","ck-form__row",...Qt(t.class||[])]),this.children=this.createCollection(),t.children&&t.children.forEach((e=>this.children.add(e))),this.set("_role",null),this.set("_ariaLabelledBy",null),t.labelView&&this.set({_role:"group",_ariaLabelledBy:t.labelView.id}),this.setTemplate({tag:"div",attributes:{class:o.to("class",(e=>e.join(" "))),role:o.to("_role"),"aria-labelledby":o.to("_ariaLabelledBy")},children:this.children})}}class Gm extends Cc{static get pluginName(){return"Notification"}static get isOfficialPlugin(){return!0}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=e.namespace?`show:${e.type}:${e.namespace}`:`show:${e.type}`;this.fire(t,{message:e.message,type:e.type,title:e.title||""})}}class Jm extends(Be()){constructor(e,t){super(),t&&No(this,t),e&&this.set(e)}}const Zm=yt("px");class Qm extends fc{positionLimiter;visibleStack;_viewToStack=new Map;_idToStack=new Map;_view=null;_rotatorView=null;_fakePanelsView=null;static get pluginName(){return"ContextualBalloon"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.positionLimiter=()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},this.decorate("getPositionOptions"),this.set("visibleView",null),this.set("_numberOfStacks",0),this.set("_singleViewMode",!1)}destroy(){super.destroy(),this._view&&this._view.destroy(),this._rotatorView&&this._rotatorView.destroy(),this._fakePanelsView&&this._fakePanelsView.destroy()}get view(){return this._view||this._createPanelView(),this._view}hasView(e){return Array.from(this._viewToStack.keys()).includes(e)}add(e){if(this._view||this._createPanelView(),this.hasView(e.view))throw new fe("contextualballoon-add-view-exist",[this,e]);const t=e.stackId||"main";if(!this._idToStack.has(t))return this._idToStack.set(t,new Map([[e.view,e]])),this._viewToStack.set(e.view,this._idToStack.get(t)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!e.singleViewMode||this.showStack(t));const o=this._idToStack.get(t);e.singleViewMode&&this.showStack(t),o.set(e.view,e),this._viewToStack.set(e.view,o),o===this._visibleStack&&this._showView(e)}remove(e){if(!this.hasView(e))throw new fe("contextualballoon-remove-view-not-exist",[this,e]);const t=this._viewToStack.get(e);this._singleViewMode&&this.visibleView===e&&(this._singleViewMode=!1),this.visibleView===e&&(1===t.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(t.values())[t.size-2])),1===t.size?(this._idToStack.delete(this._getStackId(t)),this._numberOfStacks=this._idToStack.size):t.delete(e),this._viewToStack.delete(e)}updatePosition(e){e&&(this._visibleStack.get(this.visibleView).position=e),this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition()}getPositionOptions(){let e=Array.from(this._visibleStack.values()).pop().position;return e&&(e.limiter||(e=Object.assign({},e,{limiter:this.positionLimiter})),e=Object.assign({},e,{viewportOffsetConfig:{...this.editor.ui.viewportOffset,top:this.editor.ui.viewportOffset.visualTop}})),e}showStack(e){this.visibleStack=e;const t=this._idToStack.get(e);if(!t)throw new fe("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==t&&this._showView(Array.from(t.values()).pop())}_createPanelView(){this._view=new dh(this.editor.locale),this.editor.ui.view.body.add(this._view),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(e){return Array.from(this._idToStack.entries()).find((t=>t[1]===e))[0]}_showNextStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)+1;e[t]||(t=0),this.showStack(this._getStackId(e[t]))}_showPrevStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)-1;e[t]||(t=e.length-1),this.showStack(this._getStackId(e[t]))}_createRotatorView(){const e=new Ym(this.editor.locale),t=this.editor.locale.t;return this.view.content.add(e),e.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>1)),e.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),e.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((e,o)=>{if(o<2)return"";const i=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return t("%0 of %1",[i,o])})),e.buttonNextView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),e.buttonPrevView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),e}_createFakePanelsView(){const e=new Xm(this.editor.locale,this.view);return e.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>=2?Math.min(e-1,2):0)),e.listenTo(this.view,"change:top",(()=>e.updatePosition())),e.listenTo(this.view,"change:left",(()=>e.updatePosition())),this.editor.ui.view.body.add(e),e}_showView({view:e,balloonClassName:t="",withArrow:o=!0,singleViewMode:i=!1}){this.view.class=t,this.view.withArrow=o,this._rotatorView.showView(e),this.visibleView=e,this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition(),i&&(this._singleViewMode=!0)}}class Ym extends Au{focusTracker;buttonPrevView;buttonNextView;content;constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new oo,this.buttonPrevView=this._createButtonView(t("Previous"),ed),this.buttonNextView=this._createButtonView(t("Next"),Kc),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",o.to("isNavigationVisible",(e=>e?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:o.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(e){this.hideView(),this.content.add(e)}hideView(){this.content.clear()}_createButtonView(e,t){const o=new Lu(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o}}class Xm extends Au{content;_balloonPanelView;constructor(e,t){super(e);const o=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=t,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",o.to("numberOfPanels",(e=>e?"":"ck-hidden"))],style:{top:o.to("top",Zm),left:o.to("left",Zm),width:o.to("width",Zm),height:o.to("height",Zm)}},children:this.content}),this.on("change:numberOfPanels",((e,t,o,i)=>{o>i?this._addPanels(o-i):this._removePanels(i-o),this.updatePosition()}))}_addPanels(e){for(;e--;){const e=new Au;e.setTemplate({tag:"div"}),this.content.add(e),this.registerChild(e)}}_removePanels(e){for(;e--;){const e=this.content.last;this.content.remove(e),this.deregisterChild(e),e.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:e,left:t}=this._balloonPanelView,{width:o,height:i}=new ut(this._balloonPanelView.element);Object.assign(this,{top:e,left:t,width:o,height:i})}}}class eg extends ih{arrowView;constructor(e){super(e);const t=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e))),"data-cke-tooltip-disabled":t.to("isOn")},on:{mouseenter:t.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Uc,e.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),e}}class tg extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-menu-bar__menu__panel",t.to("position",(e=>`ck-menu-bar__menu__panel_position_${e}`)),t.if("isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{"input"!==e.target.tagName.toLocaleLowerCase()&&e.preventDefault()}))}})}focus(e=1){this.children.length&&(1===e?this.children.first.focus():this.children.last.focus())}}class og extends Au{buttonView;panelView;focusTracker;keystrokes;constructor(e){super(e);const t=this.bindTemplate;this.buttonView=new eg(e),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new tg(e),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ro,this.focusTracker=new oo,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("panelPosition","w"),this.set("class",void 0),this.set("parentMenuView",null),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar__menu",t.to("class"),t.if("isEnabled","ck-disabled",(e=>!e)),t.if("parentMenuView","ck-menu-bar__menu_top-level",(e=>!e))]},children:[this.buttonView,this.panelView]})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.keystrokes.listenTo(this.element),Pm.closeOnEscKey(this),this._closeOnDisabled(),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?(Pm.openOnButtonClick(this),Pm.openOnArrowRightKey(this),Pm.closeOnArrowLeftKey(this),Pm.openAndFocusOnEnterKeyPress(this),Pm.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),Pm.openAndFocusPanelOnArrowDownKey(this),Pm.toggleOnButtonClick(this))}_propagateArrowKeystrokeEvents(){this.keystrokes.set("arrowright",((e,t)=>{this.fire("arrowright"),t()})),this.keystrokes.set("arrowleft",((e,t)=>{this.fire("arrowleft"),t()}))}_closeOnDisabled(){this.on("change:isEnabled",((e,t,o)=>{o||(this.isOpen=!1)}))}_repositionPanelOnOpen(){this.on("change:isOpen",((e,t,o)=>{if(!o)return;const i=og._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=i?i.name:this._defaultMenuPositionName}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:e,southWest:t,northEast:o,northWest:i,westSouth:n,eastSouth:s,westNorth:r,eastNorth:a}=Sm;return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?[s,a,n,r]:[e,t,o,i]:this.parentMenuView?[n,r,s,a]:[t,e,i,o]}get _defaultMenuPositionName(){return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?"es":"se":this.parentMenuView?"ws":"sw"}static _getOptimalPosition=At}class ig extends zh{constructor(e){super(e),this.role="menu",this.items.on("change",this._setItemsCheckSpace.bind(this))}_setItemsCheckSpace(){const e=Array.from(this.items).some((e=>{const t=ng(e);return t&&t.isToggleable}));this.items.forEach((t=>{const o=ng(t);o&&(o.hasCheckSpace=e)}))}}function ng(e){return e instanceof Nh?e.children.map((e=>function(e){return"object"==typeof e&&"buttonView"in e&&e.buttonView instanceof Lu}(e)?e.buttonView:e)).find((e=>e instanceof ih)):null}class sg extends wh{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}const rg=["mouseenter","arrowleft","arrowright","change:isOpen"];class ag extends Au{children;menus=[];constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set({isOpen:!1,isFocusBorderEnabled:!1}),this._setupIsOpenUpdater(),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar",o.if("isFocusBorderEnabled","ck-menu-bar_focus-border-enabled")],"aria-label":t("Editor menu bar"),role:"menubar"},children:this.children})}fillFromConfig(e,t,o=[]){const i=Rm({normalizedConfig:e,locale:this.locale,componentFactory:t,extraItems:o}).items.map((e=>this._createMenu({componentFactory:t,menuDefinition:e})));this.children.addMany(i)}render(){super.render(),Tm.toggleMenusAndFocusItemsOnHover(this),Tm.closeMenusWhenTheBarCloses(this),Tm.closeMenuWhenAnotherOnTheSameLevelOpens(this),Tm.focusCycleMenusOnArrows(this),Tm.closeOnClickOutside(this),Tm.enableFocusHighlightOnInteraction(this)}focus(){this.children.first&&this.children.first.focus()}close(){for(const e of this.children)e.isOpen=!1}disable(){for(const e of this.children)e.isEnabled=!1}enable(){for(const e of this.children)e.isEnabled=!0}registerMenu(e,t=null){t?(e.delegate(...rg).to(t),e.parentMenuView=t):e.delegate(...rg).to(this,(e=>"menu:"+e)),e._attachBehaviors(),this.menus.push(e)}_createMenu({componentFactory:e,menuDefinition:t,parentMenuView:o}){const i=this.locale,n=new og(i);return this.registerMenu(n,o),n.buttonView.set({label:t.label}),n.once("change:isOpen",(()=>{const o=new ig(i);o.ariaLabel=t.label,n.panelView.children.add(o),o.items.addMany(this._createMenuItems({menuDefinition:t,parentMenuView:n,componentFactory:e}))})),n}_createMenuItems({menuDefinition:e,parentMenuView:t,componentFactory:o}){const i=this.locale,n=[];for(const r of e.groups){for(const e of r.items){const r=new Em(i,t);if(s(e))r.children.add(this._createMenu({componentFactory:o,menuDefinition:e,parentMenuView:t}));else{const i=this._createMenuItemContentFromFactory({componentName:e,componentFactory:o,parentMenuView:t});if(!i)continue;r.children.add(i)}n.push(r)}r!==e.groups[e.groups.length-1]&&n.push(new Bh(i))}return n}_createMenuItemContentFromFactory({componentName:e,parentMenuView:t,componentFactory:o}){const i=o.create(e);return i instanceof og||i instanceof sh||i instanceof sg?(this._registerMenuTree(i,t),i.on("execute",(()=>{this.close()})),i):(be("menu-bar-component-unsupported",{componentName:e,componentView:i}),null)}_registerMenuTree(e,t){if(!(e instanceof og))return void e.delegate("mouseenter").to(t);this.registerMenu(e,t);const o=e.panelView.children.filter((e=>e instanceof ig))[0];if(!o)return void e.delegate("mouseenter").to(t);const i=o.items.filter((e=>e instanceof Nh));for(const t of i)this._registerMenuTree(t.children.get(0),e)}_setupIsOpenUpdater(){let e;this.on("menu:change:isOpen",((t,o,i)=>{clearTimeout(e),i?this.isOpen=!0:e=setTimeout((()=>{this.isOpen=Array.from(this.children).some((e=>e.isOpen))}),0)}))}}class lg extends $m{view;constructor(e,t){super(e),this.view=t}init(){const e=this.editor,t=this.view,o=e.editing.view,i=t.editable,n=o.document.getRoot();i.name=n.rootName,t.render();const s=i.element;this.setEditableElement(i.name,s),t.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),this._initPlaceholder(),this._initToolbar(),this.initMenuBar(this.view.menuBarView),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.editor,t=this.view;t.toolbar.fillFromConfig(e.config.get("toolbar"),this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,o=t.document.getRoot(),i=e.config.get("roots")[o.rootName].placeholder;i&&(o.placeholder=i),Yo({view:t,element:o,isDirectHost:!1,keepOnFocus:!0})}}class cg extends Hm{toolbar;editable;menuBarView;constructor(e,t,o={}){super(e),this.toolbar=new Wh(e,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull}),this.menuBarView=new ag(e),this.editable=new Um(e,t,o.editableElement,{label:o.label}),this.toolbar.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}}),this.menuBarView.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}})}render(){super.render(),this.registerChild([this.menuBarView,this.toolbar,this.editable])}}class dg extends(Fc(Vc)){static get editorName(){return"DecoupledEditor"}ui;constructor(e,t={}){const{sourceElementOrData:o,editorConfig:i}=function(e,t){return"string"==typeof e||Bc(e)||t&&Object.keys(t).length?{sourceElementOrData:e,editorConfig:t}:{sourceElementOrData:"",editorConfig:e}}(e,t);super(i),Mc(o,this.config);const n=this.config.get("roots").main.element;if(L(n)){if("TEXTAREA"===n.tagName)throw new fe("editor-wrong-element",null);this.sourceElement=n,function(e,t){if(t.ckeditorInstance)throw new fe("editor-source-element-already-used",e);t.ckeditorInstance=e,e.once("destroy",(()=>{delete t.ckeditorInstance}))}(this,n)}this.model.document.createRoot();const s=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=new cg(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:s,label:this.config.get("roots").main.label});this.ui=new lg(this,r)}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(e)}))}static create(e,t={}){return new Promise((o=>{const i=new this(e,t);o(i.initPlugins().then((()=>i.ui.init())).then((()=>i.data.init(i.config.get("roots").main.initialData))).then((()=>i.fire("ready"))).then((()=>i)))}))}}class ug{model;limit;_isLocked;_size;_batch=null;_changeCallback;_selectionChangeCallback;constructor(e,t=20){this.model=e,this._size=0,this.limit=t,this._isLocked=!1,this._changeCallback=(e,t)=>{t.isLocal&&t.isUndoable&&t!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(e){this._size+=e,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(e=!1){this.isLocked&&!e||(this._batch=null,this._size=0)}}class hg extends wc{_buffer;constructor(e,t){super(e),this._buffer=new ug(e.model,t),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(e={}){const t=this.editor.model,o=t.document,i=e.text||"",n=i.length;let s=o.selection;if(e.selection?s=e.selection:e.range&&(s=t.createSelection(e.range)),!t.canEditAt(s))return;const r=e.resultRange;t.enqueueChange(this._buffer.batch,(e=>{this._buffer.lock();const a=Array.from(o.selection.getAttributes());t.deleteContent(s),i&&t.insertContent(e.createText(i,a),s),r?e.setSelection(r):s.is("documentSelection")||e.setSelection(s),this._buffer.unlock(),this._buffer.input(n)}))}}const mg=["insertText","insertReplacementText"],gg=[...mg,"insertCompositionText"];class pg extends Ln{focusObserver;constructor(e){super(e),this.focusObserver=e.getObserver(Un);const t=Y.isAndroid?gg:mg,o=e.document;o.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;const{data:s,targetRanges:r,inputType:a,domEvent:l,isComposing:c}=n;if(!t.includes(a))return;this.focusObserver.flush();const d=new ue(o,"insertText");o.fire(d,new zn(e,l,{text:s,selection:e.createSelection(r),isComposing:c})),d.stop.called&&i.stop()})),Y.isAndroid||o.on("compositionend",((t,{data:i,domEvent:n})=>{this.isEnabled&&i&&o.fire("insertText",new zn(e,n,{text:i,isComposing:!0}))}),{priority:"low"})}observe(){}stopObserving(){}}class fg extends fc{_typingQueue;static get pluginName(){return"Input"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=e.editing.view,i=e.editing.mapper,n=t.document.selection;this._typingQueue=new bg(e),o.addObserver(pg);const s=new hg(e,e.config.get("typing.undoStep")||20);e.commands.add("insertText",s),e.commands.add("input",s),this.listenTo(o.document,"beforeinput",(()=>{this._typingQueue.flush("next beforeinput")}),{priority:"high"}),this.listenTo(o.document,"insertText",((e,r)=>{const{text:a,selection:l}=r;if(o.document.selection.isFake&&l&&o.document.selection.isSimilar(l)&&r.preventDefault(),l&&Array.from(l.getRanges()).some((e=>!e.isCollapsed))&&r.preventDefault(),!s.isEnabled)return void r.preventDefault();let c;l&&(c=Array.from(l.getRanges()).filter((e=>e.root.is("rootElement"))).map((e=>i.toModelRange(e))).map((e=>Ba(e,t.schema)||e))),c&&c.length||(c=Array.from(n.getRanges()));let d=a;if(Y.isAndroid){const e=Array.from(c[0].getItems()).reduce(((e,t)=>e+(t.is("$textProxy")?t.data:"")),"");if(e&&(e.length<=d.length?d.startsWith(e)&&(d=d.substring(e.length),c[0].start=c[0].start.getShiftedBy(e.length)):e.startsWith(d)&&(c[0].start=c[0].start.getShiftedBy(d.length),d="")),0==d.length&&c[0].isCollapsed)return}const u={text:d,selection:t.createSelection(c)};this._typingQueue.push(u,Boolean(r.isComposing)),r.domEvent.defaultPrevented&&this._typingQueue.flush("beforeinput default prevented")})),Y.isAndroid?this.listenTo(o.document,"keydown",((e,i)=>{!n.isCollapsed&&229==i.keyCode&&o.document.isComposing&&wg(t,s)})):this.listenTo(o.document,"compositionstart",(()=>{n.isCollapsed||wg(t,s)}),{priority:"high"}),this.listenTo(o.document,"mutations",((e,{mutations:t})=>{if(this._typingQueue.hasAffectedElements())for(const{node:e}of t){const t=yg(e,i),o=i.toModelElement(t);if(this._typingQueue.isElementAffected(o))return void this._typingQueue.flush("mutations")}})),this.listenTo(o.document,"compositionend",(()=>{this._typingQueue.flush("before composition end")}),{priority:"high"}),this.listenTo(o.document,"compositionend",(()=>{this._typingQueue.flush("after composition end");const e=[];if(this._typingQueue.hasAffectedElements())for(const t of this._typingQueue.flushAffectedElements()){const o=i.toViewElement(t);o&&e.push({type:"children",node:o})}!e.length&&Y.isAndroid||o.document.fire("mutations",{mutations:e})}),{priority:"lowest"})}destroy(){super.destroy(),this._typingQueue.destroy()}}class bg{editor;flushDebounced=zo((()=>this.flush("timeout")),50);_queue=[];_isComposing=!1;_affectedElements=new Set;constructor(e){this.editor=e}destroy(){for(this.flushDebounced.cancel(),this._affectedElements.clear();this._queue.length;)this.shift()}get length(){return this._queue.length}push(e,t){const o={text:e.text};if(e.selection){o.selectionRanges=[];for(const t of e.selection.getRanges())o.selectionRanges.push(Ts.fromRange(t)),this._affectedElements.add(t.start.parent)}this._queue.push(o),this._isComposing||=t,this.flushDebounced()}shift(){const e=this._queue.shift(),t={text:e.text};if(e.selectionRanges){const o=e.selectionRanges.map((e=>function(e){const t=e.toRange();if(e.detach(),"$graveyard"==t.root.rootName)return null;return t}(e))).filter((e=>!!e));o.length&&(t.selection=this.editor.model.createSelection(o))}return t}flush(e){const t=this.editor,o=t.model,i=t.editing.view;if(this.flushDebounced.cancel(),!this._queue.length)return;const n=t.commands.get("insertText").buffer;o.enqueueChange(n.batch,(()=>{for(n.lock();this._queue.length;){const e=this.shift();t.execute("insertText",e)}n.unlock(),this._isComposing||this._affectedElements.clear(),this._isComposing=!1})),i.scrollToTheSelection()}isElementAffected(e){return this._affectedElements.has(e)}hasAffectedElements(){return this._affectedElements.size>0}flushAffectedElements(){const e=Array.from(this._affectedElements);return this._affectedElements.clear(),e}}function wg(e,t){if(!t.isEnabled)return;const o=t.buffer;o.lock(),e.enqueueChange(o.batch,(()=>{e.deleteContent(e.document.selection)})),o.unlock()}function yg(e,t){let o=e.is("$text")?e.parent:e;for(;!t.toModelElement(o);)o=o.parent;return o}class _g extends wc{direction;_buffer;constructor(e,t){super(e),this.direction=t,this._buffer=new ug(e.model,e.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(e={}){const t=this.editor.model,o=t.document;t.enqueueChange(this._buffer.batch,(i=>{this._buffer.lock();const n=i.createSelection(e.selection||o.selection);if(!t.canEditAt(n))return;const s=e.sequence||1,r=n.isCollapsed;if(n.isCollapsed&&t.modifySelection(n,{direction:this.direction,unit:e.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(s))return void this._replaceEntireContentWithParagraph(i);if(this._shouldReplaceFirstBlockWithParagraph(n,s))return void this.editor.execute("paragraph",{selection:n});if(n.isCollapsed)return;let a=0;n.getFirstRange().getMinimalFlatRanges().forEach((e=>{a+=He(e.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),t.deleteContent(n,{doNotResetEntireContent:r,direction:this.direction}),this._buffer.input(a),i.setSelection(n),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(e){if(e>1)return!1;const t=this.editor.model,o=t.document.selection,i=t.schema.getLimitElement(o);if(!(o.isCollapsed&&o.containsEntireContent(i)))return!1;if(!t.schema.checkChild(i,"paragraph"))return!1;const n=i.getChild(0);return!n||!n.is("element","paragraph")}_replaceEntireContentWithParagraph(e){const t=this.editor.model,o=t.document.selection,i=t.schema.getLimitElement(o),n=e.createElement("paragraph");e.remove(e.createRangeIn(i)),e.insert(n,i),e.setSelection(n,0)}_shouldReplaceFirstBlockWithParagraph(e,t){const o=this.editor.model;if(t>1||"backward"!=this.direction)return!1;if(!e.isCollapsed)return!1;const i=e.getFirstPosition(),n=o.schema.getLimitElement(i),s=n.getChild(0);return i.parent==s&&(!!e.containsEntireContent(s)&&(!!o.schema.checkChild(n,"paragraph")&&"paragraph"!=s.name))}}const kg="word",vg="selection",Cg="backward",Ag="forward",xg={deleteContent:{unit:vg,direction:Cg},deleteContentBackward:{unit:"codePoint",direction:Cg},deleteWordBackward:{unit:kg,direction:Cg},deleteHardLineBackward:{unit:vg,direction:Cg},deleteSoftLineBackward:{unit:vg,direction:Cg},deleteContentForward:{unit:"character",direction:Ag},deleteWordForward:{unit:kg,direction:Ag},deleteHardLineForward:{unit:vg,direction:Ag},deleteSoftLineForward:{unit:vg,direction:Ag}};class Eg extends Ln{constructor(e){super(e);const t=e.document;let o=0;t.on("keydown",(()=>{o++})),t.on("keyup",(()=>{o=0})),t.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;const{targetRanges:s,domEvent:r,inputType:a}=n,l=xg[a];if(!l)return;const c={direction:l.direction,unit:l.unit,sequence:o};c.unit==vg&&(c.selectionToRemove=e.createSelection(s[0])),"deleteContentBackward"===a&&(Y.isAndroid&&(c.sequence=1),function(e){if(1!=e.length||e[0].isCollapsed)return!1;const t=e[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let o=0;for(const{nextPosition:e,item:i}of t){if(e.parent.is("$text")){const t=e.parent.data,i=e.offset;if(ho(t,i)||mo(t,i)||po(t,i))continue;o++}else(i.is("containerElement")||i.is("emptyElement"))&&o++;if(o>1)return!0}return!1}(s)&&(c.unit=vg,c.selectionToRemove=e.createSelection(s)));const d=new Di(t,"delete",s[0]);t.fire(d,new zn(e,r,c)),d.stop.called&&i.stop()})),Y.isBlink&&function(e){const t=e.view,o=t.document;let i=null,n=!1;function s(e){return e==$t.backspace||e==$t.delete}function r(e){return e==$t.backspace?Cg:Ag}o.on("keydown",((e,{keyCode:t})=>{i=t,n=!1})),o.on("keyup",((a,{keyCode:l,domEvent:c})=>{const d=o.selection,u=e.isEnabled&&l==i&&s(l)&&!d.isCollapsed&&!n;if(i=null,u){const e=d.getFirstRange(),i=new Di(o,"delete",e),n={unit:vg,direction:r(l),selectionToRemove:d};o.fire(i,new zn(t,c,n))}})),o.on("beforeinput",((e,{inputType:t})=>{const o=xg[t];s(i)&&o&&o.direction==r(i)&&(n=!0)}),{priority:"high"}),o.on("beforeinput",((e,{inputType:t,data:o})=>{i==$t.delete&&"insertText"==t&&""==o&&e.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class Tg extends fc{_undoOnBackspace;static get pluginName(){return"Delete"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,i=e.model.document;t.addObserver(Eg),this._undoOnBackspace=!1;const n=new _g(e,"forward");e.commands.add("deleteForward",n),e.commands.add("forwardDelete",n),e.commands.add("delete",new _g(e,"backward")),this.listenTo(o,"delete",((i,n)=>{o.isComposing||n.preventDefault();const{direction:s,sequence:r,selectionToRemove:a,unit:l}=n,c="forward"===s?"deleteForward":"delete",d={sequence:r};if("selection"==l){const t=Array.from(a.getRanges()).map((t=>e.editing.mapper.toModelRange(t))).map((t=>Ba(t,e.model.schema)||t));d.selection=e.model.createSelection(t)}else d.unit=l;e.execute(c,d),t.scrollToTheSelection()}),{priority:"low"}),this.listenTo(o,"keydown",((n,s)=>{if(o.isComposing||s.keyCode!=$t.backspace||!i.selection.isCollapsed)return;const r=e.model.schema.getLimitElement(i.selection),a=e.model.createPositionAt(r,0);if(a.isTouching(i.selection.getFirstPosition())){s.preventDefault();const i=e.model.schema.getNearestSelectionRange(a,"forward");if(!i)return;const n=t.createSelection(e.editing.mapper.toViewRange(i)),r=n.getFirstRange(),l=new Di(document,"delete",r),c={unit:"selection",direction:"backward",selectionToRemove:n};o.fire(l,new zn(t,s.domEvent,c))}})),this.editor.plugins.has("UndoEditing")&&(this.listenTo(o,"delete",((t,o)=>{this._undoOnBackspace&&"backward"==o.direction&&1==o.sequence&&"codePoint"==o.unit&&(this._undoOnBackspace=!1,e.execute("undo"),o.preventDefault(),t.stop())}),{context:"$capture"}),this.listenTo(i,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class Pg extends fc{static get requires(){return[fg,Tg]}static get pluginName(){return"Typing"}static get isOfficialPlugin(){return!0}}function Sg(e,t){let o=e.start;return{text:Array.from(e.getWalker({ignoreElementEnd:!1})).reduce(((e,{item:i})=>i.is("$text")||i.is("$textProxy")?e+i.data:(o=t.createPositionAfter(i),"")),""),range:t.createRange(o,e.end)}}class Ig extends(Be()){model;testCallback;_hasMatch;constructor(e,t){super(),this.model=e,this.testCallback=t,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(e.document.selection),this.stopListening(e.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const e=this.model.document;this.listenTo(e.selection,"change:range",((t,{directChange:o})=>{o&&(e.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(e,"change:data",((e,t)=>{!t.isUndo&&t.isLocal&&this._evaluateTextBeforeSelection("data",{batch:t})}))}_evaluateTextBeforeSelection(e,t={}){const o=this.model,i=o.document.selection,n=o.createRange(o.createPositionAt(i.focus.parent,0),i.focus),{text:s,range:r}=Sg(n,o),a=this.testCallback(s);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const o=Object.assign(t,{text:s,range:r});"object"==typeof a&&Object.assign(o,a),this.fire(`matched:${e}`,o)}}}class Rg extends fc{attributes;_overrideUid;_isNextGravityRestorationSkipped=!1;static get pluginName(){return"TwoStepCaretMovement"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.attributes=new Set,this._overrideUid=null}init(){const e=this.editor,t=e.model,o=e.editing.view,i=e.locale,n=t.document.selection;this.listenTo(o.document,"arrowKey",((e,t)=>{if(!n.isCollapsed)return;if(t.shiftKey||t.altKey||t.ctrlKey)return;const o=t.keyCode==$t.arrowright,s=t.keyCode==$t.arrowleft;if(!o&&!s)return;const r=i.contentLanguageDirection;let a=!1;a="ltr"===r&&o||"rtl"===r&&s?this._handleForwardMovement(t):this._handleBackwardMovement(t),!0===a&&e.stop()}),{context:"$text",priority:"highest"}),this.listenTo(n,"change:range",((e,t)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!t.directChange&&Ng(n.getFirstPosition(),this.attributes)||this._restoreGravity())})),this._enableClickingAfterNode(),this._enableInsertContentSelectionAttributesFixer(),this._handleDeleteContentAfterNode()}registerAttribute(e){this.attributes.add(e)}_handleForwardMovement(e){const t=this.attributes,o=this.editor.model,i=o.document.selection,n=i.getFirstPosition();return!this._isGravityOverridden&&((!n.isAtStart||!Og(i,t))&&(!!Ng(n,t)&&(e&&Fg(e),Og(i,t)&&Ng(n,t,!0)?Dg(o,t):this._overrideGravity(),!0)))}_handleBackwardMovement(e){const t=this.attributes,o=this.editor.model,i=o.document.selection,n=i.getFirstPosition();return this._isGravityOverridden?(e&&Fg(e),this._restoreGravity(),Ng(n,t,!0)?Dg(o,t):Vg(o,t,n),!0):n.isAtStart?!!Og(i,t)&&(e&&Fg(e),Vg(o,t,n),!0):!Og(i,t)&&Ng(n,t,!0)?(e&&Fg(e),Vg(o,t,n),!0):!!Mg(n,t)&&(n.isAtEnd&&!Og(i,t)&&Ng(n,t)?(e&&Fg(e),Vg(o,t,n),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1))}_enableClickingAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,i=e.editing.view.document;e.editing.view.addObserver(il),e.editing.view.addObserver(nl);let n=!1,s=!1;this.listenTo(i,"touchstart",(()=>{s=!1,n=!0})),this.listenTo(i,"mousedown",(()=>{s=!0})),this.listenTo(i,"selectionChange",(()=>{const e=this.attributes;if(!s&&!n)return;if(s=!1,n=!1,!o.isCollapsed)return;if(!Og(o,e))return;const i=o.getFirstPosition();Ng(i,e)&&(i.isAtStart||Ng(i,e,!0)?Dg(t,e):this._isGravityOverridden||this._overrideGravity())}))}_enableInsertContentSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection,o=this.attributes;this.listenTo(e,"insertContent",(()=>{const i=t.getFirstPosition();Og(t,o)&&Ng(i,o)&&Dg(e,o)}),{priority:"low"})}_handleDeleteContentAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,i=e.editing.view;let n=!1,s=!1;this.listenTo(i.document,"delete",((e,t)=>{n="backward"===t.direction}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{if(!n)return;const e=o.getFirstPosition();s=Og(o,this.attributes)&&!Mg(e,this.attributes)}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{n&&(n=!1,s||e.model.enqueueChange((()=>{const e=o.getFirstPosition();Og(o,this.attributes)&&Ng(e,this.attributes)&&(e.isAtStart||Ng(e,this.attributes,!0)?Dg(t,this.attributes):this._isGravityOverridden||this._overrideGravity())})))}),{priority:"low"})}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((e=>e.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((e=>{e.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function Og(e,t){for(const o of t)if(e.hasAttribute(o))return!0;return!1}function Vg(e,t,o){const i=o.nodeBefore;e.change((o=>{if(i){const t=[],n=e.schema.isObject(i)&&e.schema.isInline(i);for(const[o,s]of i.getAttributes())!e.schema.checkAttribute("$text",o)||n&&!1===e.schema.getAttributeProperties(o).copyFromObject||t.push([o,s]);o.setSelectionAttribute(t)}else o.removeSelectionAttribute(t)}))}function Dg(e,t){e.change((e=>{e.removeSelectionAttribute(t)}))}function Fg(e){e.preventDefault()}function Mg(e,t){return Ng(e.getShiftedBy(-1),t)}function Ng(e,t,o=!1){const{nodeBefore:i,nodeAfter:n}=e;for(const e of t){const t=i?i.getAttribute(e):void 0,s=n?n.getAttribute(e):void 0;if((!o||void 0!==t&&void 0!==s)&&s!==t)return!0}return!1}Bg('"'),Bg("'"),Bg("'"),Bg('"'),Bg('"'),Bg("'");function Bg(e){return new RegExp(`(^|\\s)(${e})([^${e}]*)(${e})$`)}function Lg(e,t,o,i){return i.createRange(zg(e,t,o,!0,i),zg(e,t,o,!1,i))}function zg(e,t,o,i,n){let s=e.textNode||(i?e.nodeBefore:e.nodeAfter),r=null;for(;s&&s.getAttribute(t)==o;)r=s,s=i?s.previousSibling:s.nextSibling;return r?n.createPositionAt(r,i?"before":"after"):e}function jg(e,t,o,i){const n=e.editing.view,s=new Set;n.document.registerPostFixer((n=>{const r=e.model.document.selection;let a=!1;if(r.hasAttribute(t)){const l=Lg(r.getFirstPosition(),t,r.getAttribute(t),e.model),c=e.editing.mapper.toViewRange(l);for(const e of c.getItems())e.is("element",o)&&!e.hasClass(i)&&(n.addClass(i,e),s.add(e),a=!0)}return a})),e.conversion.for("editingDowncast").add((e=>{function t(){n.change((e=>{for(const t of s.values())e.removeClass(i,t),s.delete(t)}))}e.on("insert",t,{priority:"highest"}),e.on("remove",t,{priority:"highest"}),e.on("attribute",t,{priority:"highest"}),e.on("selection",t,{priority:"highest"})}))}function*$g(e,t){for(const o of t)o&&e.getAttributeProperties(o[0]).copyOnEnter&&(yield o)}class qg extends wc{execute(){this.editor.model.change((e=>{this.enterBlock(e),this.fire("afterExecute",{writer:e})}))}enterBlock(e){const t=this.editor.model,o=t.document.selection,i=t.schema,n=o.isCollapsed,s=o.getFirstRange(),r=s.start.parent,a=s.end.parent;if(i.isLimit(r)||i.isLimit(a))return n||r!=a||t.deleteContent(o),!1;if(n){const t=$g(e.model.schema,o.getAttributes());return Hg(e,s.start),e.setSelectionAttribute(t),!0}{const i=!(s.start.isAtStart&&s.end.isAtEnd),n=r==a;if(t.deleteContent(o,{leaveUnmerged:i}),i){if(n)return Hg(e,o.focus),!0;e.setSelection(a,0)}}return!1}}function Hg(e,t){e.split(t),e.setSelection(t.parent.nextSibling,0)}const Wg={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class Ug extends Ln{constructor(e){super(e);const t=this.document;let o=!1;t.on("keydown",((e,t)=>{o=t.shiftKey})),t.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;let s=n.inputType;Y.isSafari&&o&&"insertParagraph"==s&&(s="insertLineBreak");const r=n.domEvent,a=Wg[s];if(!a)return;const l=new Di(t,"enter",n.targetRanges[0]);t.fire(l,new zn(e,r,{isSoft:a.isSoft})),l.stop.called&&i.stop()}))}observe(){}stopObserving(){}}class Kg extends fc{static get pluginName(){return"Enter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,i=this.editor.t;t.addObserver(Ug),e.commands.add("enter",new qg(e)),this.listenTo(o,"enter",((i,n)=>{o.isComposing||n.preventDefault(),n.isSoft||(e.execute("enter"),t.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:i("Insert a hard break (a new paragraph)"),keystroke:"Enter"}]})}}class Gg extends wc{execute(){const e=this.editor.model,t=e.document;e.change((o=>{!function(e,t,o){const i=o.isCollapsed,n=o.getFirstRange(),s=n.start.parent,r=n.end.parent,a=s==r;if(i){const i=$g(e.schema,o.getAttributes());Jg(e,t,n.end),t.removeSelectionAttribute(o.getAttributeKeys()),t.setSelectionAttribute(i)}else{const i=!(n.start.isAtStart&&n.end.isAtEnd);e.deleteContent(o,{leaveUnmerged:i}),a?Jg(e,t,o.focus):i&&t.setSelection(r,0)}}(e,o,t.selection),this.fire("afterExecute",{writer:o})}))}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=function(e,t){if(t.rangeCount>1)return!1;const o=t.anchor;if(!o||!e.checkChild(o,"softBreak"))return!1;const i=t.getFirstRange(),n=i.start.parent,s=i.end.parent;if((Zg(n,e)||Zg(s,e))&&n!==s)return!1;return!0}(e.schema,t.selection)}}function Jg(e,t,o){const i=t.createElement("softBreak");e.insertContent(i,o),t.setSelection(i,"after")}function Zg(e,t){return!e.is("rootElement")&&(t.isLimit(e)||Zg(e.parent,t))}class Qg extends fc{static get pluginName(){return"ShiftEnter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.conversion,i=e.editing.view,n=i.document,s=this.editor.t;t.register("softBreak",{allowWhere:"$text",isInline:!0}),o.for("upcast").elementToElement({model:"softBreak",view:"br"}),o.for("downcast").elementToElement({model:"softBreak",view:(e,{writer:t})=>t.createEmptyElement("br")}),i.addObserver(Ug),e.commands.add("shiftEnter",new Gg(e)),this.listenTo(n,"enter",((t,o)=>{n.isComposing||o.preventDefault(),o.isSoft&&(e.execute("shiftEnter"),i.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:s("Insert a soft break (a <br> element)"),keystroke:"Shift+Enter"}]})}}class Yg extends(xe()){_stack=[];add(e,t){const o=this._stack,i=o[0];this._insertDescriptor(e);const n=o[0];i===n||Xg(i,n)||this.fire("change:top",{oldDescriptor:i,newDescriptor:n,writer:t})}remove(e,t){const o=this._stack,i=o[0];this._removeDescriptor(e);const n=o[0];i===n||Xg(i,n)||this.fire("change:top",{oldDescriptor:i,newDescriptor:n,writer:t})}_insertDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e.id));if(Xg(e,t[o]))return;o>-1&&t.splice(o,1);let i=0;for(;t[i]&&ep(t[i],e);)i++;t.splice(i,0,e)}_removeDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e));o>-1&&t.splice(o,1)}}function Xg(e,t){return e&&t&&e.priority==t.priority&&tp(e.classes)==tp(t.classes)}function ep(e,t){return e.priority>t.priority||!(e.prioritytp(t.classes)}function tp(e){return Array.isArray(e)?e.sort().join(","):e}const op="ck-widget_selected";function ip(e){return!!e.is("element")&&!!e.getCustomProperty("widget")}function np(e,t,o={}){if(!e.is("containerElement"))throw new fe("widget-to-widget-wrong-element-type",null,{element:e});return t.setAttribute("contenteditable","false",e),t.addClass("ck-widget",e),t.setCustomProperty("widget",!0,e),e.getFillerOffset=dp,t.setCustomProperty("widgetLabel",[],e),o.label&&function(e,t){const o=e.getCustomProperty("widgetLabel");o.push(t)}(e,o.label),o.hasSelectionHandle&&function(e,t){const o=t.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(e){const t=this.toDomElement(e),o=new Nu;return o.set("content",Wc),o.render(),t.appendChild(o.element),t}));t.insert(t.createPositionAt(e,0),o),t.addClass(["ck-widget_with-selection-handle"],e)}(e,t),ap(e,t),e}function sp(e,t,o){if(t.classes&&o.addClass(Qt(t.classes),e),t.attributes)for(const i in t.attributes)o.setAttribute(i,t.attributes[i],e)}function rp(e,t,o){if(t.classes&&o.removeClass(Qt(t.classes),e),t.attributes)for(const i in t.attributes)o.removeAttribute(i,e)}function ap(e,t,o=sp,i=rp){const n=new Yg;n.on("change:top",((t,n)=>{n.oldDescriptor&&i(e,n.oldDescriptor,n.writer),n.newDescriptor&&o(e,n.newDescriptor,n.writer)}));t.setCustomProperty("addHighlight",((e,t,o)=>n.add(t,o)),e),t.setCustomProperty("removeHighlight",((e,t,o)=>n.remove(t,o)),e)}function lp(e,t,o={}){return t.addClass(["ck-editor__editable","ck-editor__nested-editable"],e),!1!==o.withAriaRole&&t.setAttribute("role","textbox",e),e.isReadOnly||t.setAttribute("tabindex","-1",e),o.label&&t.setAttribute("aria-label",o.label,e),t.setAttribute("contenteditable",e.isReadOnly?"false":"true",e),e.on("change:isReadOnly",((o,i,n)=>{t.setAttribute("contenteditable",n?"false":"true",e),n?t.removeAttribute("tabindex",e):t.setAttribute("tabindex","-1",e)})),e.on("change:isFocused",((o,i,n)=>{n?t.addClass("ck-editor__nested-editable_focused",e):t.removeClass("ck-editor__nested-editable_focused",e)})),ap(e,t),e}function cp(e,t){const o=e.getSelectedElement();if(o){const i=gp(e);if(i)return t.createRange(t.createPositionAt(o,i))}return t.schema.findOptimalInsertionRange(e)}function dp(){return null}function up(e){const t=e=>{const{width:t,paddingLeft:o,paddingRight:i}=e.ownerDocument.defaultView.getComputedStyle(e);return parseFloat(t)-(parseFloat(o)||0)-(parseFloat(i)||0)},o=e.parentElement;if(!o)return 0;let i=t(o);let n=0,s=o;for(;isNaN(i);){if(s=s.parentElement,++n>5)return 0;i=t(s)}return i}const hp="widget-type-around";function mp(e,t,o){return!!e&&ip(e)&&!o.isInline(t)}function gp(e){return e.getAttribute(hp)}const pp=["before","after"],fp=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,bp="ck-widget__type-around_disabled";class wp extends fc{_currentFakeCaretModelElement=null;static get pluginName(){return"WidgetTypeAround"}static get isOfficialPlugin(){return!0}static get requires(){return[Kg,Tg]}init(){const e=this.editor,t=e.editing.view;this.on("change:isEnabled",((o,i,n)=>{t.change((e=>{for(const o of t.document.roots)n?e.removeClass(bp,o):e.addClass(bp,o)})),n||e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(e,t){const o=this.editor,i=o.editing.view,n=o.model.schema.getAttributesWithProperty(e,"copyOnReplace",!0);o.execute("insertParagraph",{position:o.model.createPositionAt(e,t),attributes:n}),i.focus(),i.scrollToTheSelection()}_listenToIfEnabled(e,t,o,i){this.listenTo(e,t,((...e)=>{this.isEnabled&&o(...e)}),i)}_insertParagraphAccordingToFakeCaretPosition(){const e=this.editor.model.document.selection,t=gp(e);if(!t)return!1;const o=e.getSelectedElement();return this._insertParagraph(o,t),!0}_enableTypeAroundUIInjection(){const e=this.editor,t=e.model.schema,o=e.locale.t,i={before:o("Insert paragraph before block"),after:o("Insert paragraph after block")};e.editing.downcastDispatcher.on("insert",((e,n,s)=>{const r=s.mapper.toViewElement(n.item);if(r&&mp(r,n.item,t)){!function(e,t,o){const i=e.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(e){const o=this.toDomElement(e);return function(e,t){for(const o of pp){const i=new ou({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${o}`],title:t[o],"aria-hidden":"true"},children:[e.ownerDocument.importNode(fp,!0)]});e.appendChild(i.render())}}(o,t),function(e){const t=new ou({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});e.appendChild(t.render())}(o),o}));e.insert(e.createPositionAt(o,"end"),i)}(s.writer,i,r);r.getCustomProperty("widgetLabel").push((()=>this.isEnabled?o("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const e=this.editor,t=e.model,o=t.document.selection,i=t.schema,n=e.editing.view;function s(e){return`ck-widget_type-around_show-fake-caret_${e}`}this._listenToIfEnabled(n.document,"arrowKey",((e,t)=>{this._handleArrowKeyPress(e,t)}),{context:[ip,"$text"],priority:"high"}),this._listenToIfEnabled(o,"change:range",((t,o)=>{o.directChange&&e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._listenToIfEnabled(t.document,"change:data",(()=>{const t=o.getSelectedElement();if(t){if(mp(e.editing.mapper.toViewElement(t),t,i))return}e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._listenToIfEnabled(e.editing.downcastDispatcher,"selection",((e,t,o)=>{const n=o.writer;if(this._currentFakeCaretModelElement){const e=o.mapper.toViewElement(this._currentFakeCaretModelElement);e&&(n.removeClass(pp.map(s),e),this._currentFakeCaretModelElement=null)}const r=t.selection.getSelectedElement();if(!r)return;const a=o.mapper.toViewElement(r);if(!mp(a,r,i))return;const l=gp(t.selection);l&&(n.addClass(s(l),a),this._currentFakeCaretModelElement=r)})),this._listenToIfEnabled(e.ui.focusTracker,"change:isFocused",((t,o,i)=>{i||e.model.change((e=>{e.removeSelectionAttribute(hp)}))}))}_handleArrowKeyPress(e,t){const o=this.editor,i=o.model,n=i.document.selection,s=i.schema,r=o.editing.view;if(t.shiftKey)return;const a=function(e,t){const o=Kt(e,t);return"down"===o||"right"===o}(t.keyCode,o.locale.contentLanguageDirection),l=r.document.selection.getSelectedElement();let c;mp(l,o.editing.mapper.toModelElement(l),s)?c=this._handleArrowKeyPressOnSelectedWidget(a):n.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):t.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(t.preventDefault(),e.stop())}_handleArrowKeyPressOnSelectedWidget(e){const t=this.editor.model,o=gp(t.document.selection);return t.change((t=>{if(!o)return t.setSelectionAttribute(hp,e?"after":"before"),!0;if(!(o===(e?"after":"before")))return t.removeSelectionAttribute(hp),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(e){const t=this.editor,o=t.model,i=o.schema,n=t.plugins.get("Widget"),s=n._getObjectElementNextToSelection(e);return!!mp(t.editing.mapper.toViewElement(s),s,i)&&(o.change((t=>{n._setSelectionOverElement(s),t.setSelectionAttribute(hp,e?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(e){const t=this.editor,o=t.model,i=o.schema,n=t.editing.mapper,s=o.document.selection,r=e?s.getLastPosition().nodeBefore:s.getFirstPosition().nodeAfter;return!!mp(n.toViewElement(r),r,i)&&(o.change((t=>{t.setSelection(r,"on"),t.setSelectionAttribute(hp,e?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const e=this.editor,t=e.editing.view;this._listenToIfEnabled(t.document,"mousedown",((o,i)=>{const n=i.domTarget.closest(".ck-widget__type-around__button");if(!n)return;const s=function(e){return e.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(n),r=function(e,t){const o=e.closest(".ck-widget");return t.mapDomToView(o)}(n,t.domConverter),a=e.editing.mapper.toModelElement(r);this._insertParagraph(a,s),i.preventDefault(),o.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const e=this.editor,t=e.model.document.selection,o=e.editing.view;this._listenToIfEnabled(o.document,"enter",((o,i)=>{if("atTarget"!=o.eventPhase)return;const n=t.getSelectedElement(),s=e.editing.mapper.toViewElement(n),r=e.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:mp(s,n,r)&&(this._insertParagraph(n,i.isSoft?"before":"after"),a=!0),a&&(i.preventDefault(),o.stop())}),{context:ip})}_enableInsertingParagraphsOnTypingKeystroke(){const e=this.editor.editing.view.document;this._listenToIfEnabled(e,"insertText",((t,o)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(o.selection=e.selection)}),{priority:"high"}),Y.isAndroid?this._listenToIfEnabled(e,"keydown",((e,t)=>{229==t.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(e,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"highest"})}_enableDeleteIntegration(){const e=this.editor,t=e.editing.view,o=e.model,i=o.schema;this._listenToIfEnabled(t.document,"delete",((t,n)=>{if("atTarget"!=t.eventPhase)return;const s=gp(o.document.selection);if(!s)return;const r=n.direction,a=o.document.selection.getSelectedElement(),l="forward"==r;if("before"===s===l)e.execute("delete",{selection:o.createSelection(a,"on")});else{const t=i.getNearestSelectionRange(o.createPositionAt(a,s),r);if(t)if(t.isCollapsed){const n=o.createSelection(t.start);if(o.modifySelection(n,{direction:r}),n.focus.isEqual(t.start)){const e=function(e,t){let o=t;for(const i of t.getAncestors({parentFirst:!0})){if(i.childCount>1||e.isLimit(i))break;o=i}return o}(i,t.start.parent);o.deleteContent(o.createSelection(e,"on"),{doNotAutoparagraph:!0})}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}n.preventDefault(),t.stop()}),{context:ip})}_enableInsertContentIntegration(){const e=this.editor,t=this.editor.model,o=t.document.selection;this._listenToIfEnabled(e.model,"insertContent",((e,[i,n])=>{if(n&&!n.is("documentSelection"))return;const s=gp(o);return s?(e.stop(),t.change((e=>{const n=o.getSelectedElement(),r=t.createPositionAt(n,s),a=e.createSelection(r),l=t.insertContent(i,a);return e.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"insertObject",((e,o)=>{const[,i,n={}]=o;if(i&&!i.is("documentSelection"))return;const s=gp(t);s&&(n.findOptimalPosition=s,o[3]=n)}),{priority:"high"})}_enableDeleteContentIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"deleteContent",((e,[o])=>{if(o&&!o.is("documentSelection"))return;gp(t)&&e.stop()}),{priority:"high"})}}function yp(e){const t=e.model;return(o,i)=>{const n=i.keyCode==$t.arrowup,s=i.keyCode==$t.arrowdown,r=i.shiftKey,a=t.document.selection;if(!n&&!s)return;const l=s,c=function(e,t,o){const i=e.model;if(o){const e=t.focus,o=_p(i,e,"forward");if(!o)return;const n=i.createRange(e,o),s=kp(i.schema,n,"backward");if(s)return i.createRange(e,s)}else{const e=t.focus,o=_p(i,e,"backward");if(!o)return;const n=i.createRange(o,e),s=kp(i.schema,n,"forward");if(s)return i.createRange(s,e)}}(e,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(r)return}(c.isCollapsed||function(e,t,o){const i=e.model,n=e.view.domConverter;if(o){const e=i.createSelection(t.start);i.modifySelection(e),e.focus.isAtEnd||t.start.isEqual(e.focus)||(t=i.createRange(e.focus,t.end))}const s=e.mapper.toViewRange(t),r=n.viewRangeToDom(s),a=ut.getDomRangeRects(r);let l;for(const e of a)if(void 0!==l){if(Math.round(e.top)>=l)return!1;l=Math.max(l,Math.round(e.bottom))}else l=Math.round(e.bottom);return!0}(e,c,l))&&(t.change((e=>{const o=l?c.end:c.start;if(r){const i=t.createSelection(a.anchor);i.setFocus(o),e.setSelection(i)}else e.setSelection(o)})),o.stop(),i.preventDefault(),i.stopPropagation())}}}function _p(e,t,o){const i=e.schema,n=e.createRangeIn(t.root),s="forward"==o?"elementStart":"elementEnd";for(const{previousPosition:e,item:r,type:a}of n.getWalker({startPosition:t,direction:o})){if(i.isLimit(r)&&!i.isInline(r))return e;if(a==s&&i.isBlock(r))return null}return null}function kp(e,t,o){const i="backward"==o?t.end:t.start;if(e.checkChild(i,"$text"))return i;for(const{nextPosition:i}of t.getWalker({direction:o}))if(e.checkChild(i,"$text"))return i}class vp extends fc{_previouslySelected=new Set;static get pluginName(){return"Widget"}static get isOfficialPlugin(){return!0}static get requires(){return[wp,Tg]}init(){const e=this.editor,t=e.editing.view,o=t.document,i=e.t;this.editor.editing.downcastDispatcher.on("selection",((t,o,i)=>{const n=i.writer,s=o.selection;if(s.isCollapsed)return;const r=s.getSelectedElement();if(!r)return;const a=e.editing.mapper.toViewElement(r);var l;ip(a)&&(i.consumable.consume(s,"selection")&&n.setSelection(n.createRangeOn(a),{fake:!0,label:(l=a,l.getCustomProperty("widgetLabel").reduce(((e,t)=>"function"==typeof t?e?e+". "+t():t():e?e+". "+t:t),""))}))})),this.editor.editing.downcastDispatcher.on("selection",((e,t,o)=>{this._clearPreviouslySelectedWidgets(o.writer);const i=o.writer,n=i.document.selection;let s=null;for(const e of n.getRanges())for(const t of e){const e=t.item;ip(e)&&!Cp(e,s)&&(i.addClass(op,e),this._previouslySelected.add(e),s=e)}}),{priority:"low"}),t.addObserver(il),t.addObserver(sl),this.listenTo(o,"mousedown",((...e)=>this._onMousedown(...e))),this.listenTo(o,"pointerdown",((...e)=>this._onPointerdown(...e))),this.listenTo(o,"arrowKey",((...e)=>{this._handleSelectionChangeOnArrowKeyPress(...e)}),{context:[ip,"$text"]}),this.listenTo(o,"arrowKey",((...e)=>{this._preventDefaultOnArrowKeyPress(...e)}),{context:"$root"}),this.listenTo(o,"arrowKey",yp(this.editor.editing),{context:"$text"}),this.listenTo(o,"delete",((e,t)=>{this._handleDelete("forward"==t.direction)&&(t.preventDefault(),e.stop())}),{context:"$root"}),this.listenTo(o,"tab",((e,o)=>{this._selectNextEditable(o.shiftKey?"backward":"forward")&&(t.scrollToTheSelection(),o.preventDefault(),e.stop())}),{context:e=>ip(e)||e.is("editableElement"),priority:"low"}),this.listenTo(o,"keydown",((e,t)=>{t.keystroke==$t.esc&&this._selectAncestorWidget()&&(t.preventDefault(),e.stop())}),{context:e=>e.is("editableElement"),priority:"low"}),e.accessibility.addKeystrokeInfoGroup({id:"widget",label:i("Keystrokes that can be used when a widget is selected (for example: image, table, etc.)"),keystrokes:[{label:i("Move focus from an editable area back to the parent widget"),keystroke:"Esc"},{label:i("Insert a new paragraph directly after a widget"),keystroke:"Enter"},{label:i("Insert a new paragraph directly before a widget"),keystroke:"Shift+Enter"},{label:i("Move the caret to allow typing directly before a widget"),keystroke:[["arrowup"],["arrowleft"]]},{label:i("Move the caret to allow typing directly after a widget"),keystroke:[["arrowdown"],["arrowright"]]}]})}_onMousedown(e,t){const o=t.target;o&&t.domEvent.detail>=3&&this._selectBlockContent(o)&&t.preventDefault()}_onPointerdown(e,t){if(!t.domEvent.isPrimary)return;const o=this.editor,i=o.editing.view,n=i.document;let s=t.target;if(!s)return;if(!ip(s)){const e=function(e){let t=e;for(;t;){if(t.is("editableElement")||ip(t))return t;t=t.parent}return null}(s);if(!e)return;if(ip(e))s=e;else{const e=function(e,t){const o=st(t.domEvent);let i=null;i=o?e.domConverter.domRangeToView(o):e.createRange(e.createPositionAt(t.target,0));if(!i)return null;const n=i.start;if(!n.parent)return null;let s=n.parent;n.parent.is("editableElement")&&(n.isAtEnd&&n.nodeBefore?s=n.nodeBefore:n.isAtStart&&n.nodeAfter&&(s=n.nodeAfter));if(s.is("$text"))return s.parent;return s}(i,t);if(!e||!ip(e))return;s=e}}(Y.isAndroid||Y.isiOS)&&t.preventDefault(),n.isFocused||i.focus();const r=o.editing.mapper.toModelElement(s);this._setSelectionOverElement(r)}_selectBlockContent(e){const t=this.editor,o=t.model,i=t.editing.mapper,n=o.schema,s=i.findMappedViewAncestor(this.editor.editing.view.createPositionAt(e,0)),r=function(e,t){for(const o of e.getAncestors({includeSelf:!0,parentFirst:!0})){if(t.checkChild(o,"$text"))return o;if(t.isLimit(o)&&!t.isObject(o))break}return null}(i.toModelElement(s),o.schema);return!!r&&(o.change((e=>{const t=n.isLimit(r)?null:function(e,t){const o=new is({startPosition:e});for(const{item:e}of o){if(t.isLimit(e)||!e.is("element"))return null;if(t.checkChild(e,"$text"))return e}return null}(e.createPositionAfter(r),n),o=e.createPositionAt(r,0),i=t?e.createPositionAt(t,0):e.createPositionAt(r,"end");e.setSelection(e.createRange(o,i))})),!0)}_handleSelectionChangeOnArrowKeyPress(e,t){const o=t.keyCode,i=this.editor.model,n=i.schema,s=i.document.selection,r=s.getSelectedElement(),a=Kt(o,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(!t.shiftKey&&!s.isCollapsed){if(function(e,t){const o=e.getFirstPosition(),i=e.getLastPosition(),n=o.nodeAfter,s=i.nodeBefore;return!!n&&t.isObject(n)||!!s&&t.isObject(s)}(s,n)){const o=l?s.getLastPosition():s.getFirstPosition(),r=n.getNearestSelectionRange(o,l?"forward":"backward");r&&(i.change((e=>{e.setSelection(r)})),t.preventDefault(),e.stop())}return}const d=function(e,t){const o=e.document.selection,i=o.getSelectedElement(),n=gp(o);if(i&&"before"==n)return e.createSelection(i,"before");if(i&&"after"==n)return e.createSelection(i,"after");return e.createSelection(o.getRanges(),{backward:i&&e.schema.isObject(i)?!t:o.isBackward})}(i,l),u=i.createSelection(d);if(i.modifySelection(u,{direction:l?"forward":"backward"}),u.isEqual(d))return;u.focus.isTouching(d.focus)&&n.checkChild(u.focus.parent,"$text")&&(l?!u.focus.isAtEnd:!u.focus.isAtStart)&&i.modifySelection(u,{direction:l?"forward":"backward"});const h=l?d.focus.nodeBefore:d.focus.nodeAfter,m=u.focus.nodeBefore,g=u.focus.nodeAfter,p=l?m:g;if(t.shiftKey)(r&&n.isObject(r)||p&&n.isObject(p)||h&&n.isObject(h))&&(i.change((e=>{e.setSelection(u)})),t.preventDefault(),e.stop());else if(p&&n.isObject(p)){if(n.isInline(p)&&c)return;i.change((e=>{e.setSelection(p,"on")})),t.preventDefault(),e.stop()}}_preventDefaultOnArrowKeyPress(e,t){const o=this.editor.model,i=o.schema,n=o.document.selection.getSelectedElement();n&&i.isObject(n)&&(t.preventDefault(),e.stop())}_handleDelete(e){const t=this.editor.model.document.selection;if(!this.editor.model.canEditAt(t))return;if(!t.isCollapsed)return;const o=this._getObjectElementNextToSelection(e);return o?(this.editor.model.change((e=>{let i=t.anchor.parent;for(;i.isEmpty;){const t=i;i=t.parent,e.remove(t)}this._setSelectionOverElement(o)})),!0):void 0}_setSelectionOverElement(e){this.editor.model.change((t=>{t.setSelection(t.createRangeOn(e))}))}_getObjectElementNextToSelection(e){const t=this.editor.model,o=t.schema,i=t.document.selection,n=t.createSelection(i);if(t.modifySelection(n,{direction:e?"forward":"backward"}),n.isEqual(i))return null;const s=e?n.focus.nodeBefore:n.focus.nodeAfter;return s&&o.isObject(s)?s:null}_clearPreviouslySelectedWidgets(e){for(const t of this._previouslySelected)e.removeClass(op,t);this._previouslySelected.clear()}_selectNextEditable(e){const t=this.editor.editing,o=t.view,i=this.editor.model,n=o.document.selection,s=i.document.selection;let r;if(s.rangeCount>1){const o=s.isBackward?s.getFirstRange():s.getLastRange();r=t.mapper.toViewPosition("forward"==e?o.end:o.start)}else r="forward"==e?n.getFirstPosition():n.getLastPosition();const a=this._findNextFocusRange(r,e);return!!a&&(i.change((e=>{e.setSelection(a)})),!0)}_findNextFocusRange(e,t){const o=this.editor.editing,i=o.view,n=this.editor.model,s=i.document.selection,r=s.editableElement,a=r.getPath();let l=s.getSelectedElement();l&&!ip(l)&&(l=null);const c="forward"==t?i.createRange(e,i.createPositionAt(e.root,"end")):i.createRange(i.createPositionAt(e.root,0),e);for(const{nextPosition:e}of c.getWalker({direction:t})){const i=e.parent;if(ip(i)&&i!=l){const e=o.mapper.toModelElement(i);if(!n.schema.isBlock(e))continue;if("extension"!=We(a,i.getPath()))return n.createRangeOn(e)}else if(i.is("editableElement")){if(i==r&&!l)continue;const s=o.mapper.toModelPosition(e),c=n.schema.getNearestSelectionRange(s,t);if(!c)continue;return i==r&&l?c:"extension"!=We(a,i.getPath())?n.createRangeIn(n.schema.getLimitElement(c)):c}}return null}_selectAncestorWidget(){const e=this.editor,t=e.editing.mapper,o=e.editing.view.document.selection.getFirstPosition().parent,i=(o.is("$text")?o.parent:o).findAncestor(ip);if(!i)return!1;const n=t.toModelElement(i);return!!n&&(e.model.change((e=>{e.setSelection(n,"on")})),!0)}}function Cp(e,t){return!!t&&Array.from(e.getAncestors()).includes(t)}class Ap extends fc{_toolbarDefinitions=new Map;_balloon;static get requires(){return[Qm]}static get pluginName(){return"WidgetToolbarRepository"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;if(e.plugins.has("BalloonToolbar")){const t=e.plugins.get("BalloonToolbar");this.listenTo(t,"show",(t=>{(function(e){const t=e.getSelectedElement();return!(!t||!ip(t))})(e.editing.view.document.selection)&&t.stop()}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const e of this._toolbarDefinitions.values())e.view.destroy()}register(e,{ariaLabel:t,items:o,getRelatedElement:i,balloonClassName:n="ck-toolbar-container",positions:s}){if(!o.length)return void be("widget-toolbar-no-items",{toolbarId:e});const r=this.editor,a=r.t,l=new Wh(r.locale);if(l.ariaLabel=t||a("Widget toolbar"),this._toolbarDefinitions.has(e))throw new fe("widget-toolbar-duplicated",this,{toolbarId:e});const c={view:l,getRelatedElement:i,balloonClassName:n,itemsConfig:o,positions:s,initialized:!1};r.ui.addToolbar(l,{isContextual:!0,beforeFocus:()=>{const e=i(r.editing.view.document.selection);e&&this._showToolbar(c,e)},afterBlur:()=>{this._hideToolbar(c)}}),this._toolbarDefinitions.set(e,c)}_updateToolbarsVisibility(){let e=0,t=null,o=null;for(const i of this._toolbarDefinitions.values()){const n=i.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&n)if(this.editor.ui.focusTracker.isFocused){const s=n.getAncestors().length;s>e&&(e=s,t=n,o=i)}else this._isToolbarVisible(i)&&this._hideToolbar(i);else this._isToolbarInBalloon(i)&&this._hideToolbar(i)}o&&this._showToolbar(o,t)}_hideToolbar(e){this._balloon.remove(e.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(e,t){this._isToolbarVisible(e)?xp(this.editor,t,e.positions):this._isToolbarInBalloon(e)||(e.initialized||(e.initialized=!0,e.view.fillFromConfig(e.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:e.view,position:Ep(this.editor,t,e.positions),balloonClassName:e.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const o=t.getRelatedElement(this.editor.editing.view.document.selection);xp(this.editor,o,e.positions)}})))}_isToolbarVisible(e){return this._balloon.visibleView===e.view}_isToolbarInBalloon(e){return this._balloon.hasView(e.view)}}function xp(e,t,o){const i=e.plugins.get("ContextualBalloon"),n=Ep(e,t,o);i.updatePosition(n)}function Ep(e,t,o){const i=e.editing.view,n=dh.defaultPositions;return{target:i.domConverter.mapViewToDom(t),positions:o||[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class Tp extends(Be()){_referenceCoordinates;_options;_originalWidth;_originalHeight;_originalWidthPercents;_aspectRatio;constructor(e){super(),this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=e,this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(e,t,o){const i=new ut(t);this.activeHandlePosition=function(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const o of t)if(e.classList.contains(Pp(o)))return o}(e),this._referenceCoordinates=function(e,t){const o=new ut(e),i=t.split("-"),n={x:"right"==i[1]?o.right:o.left,y:"bottom"==i[0]?o.bottom:o.top};return n.x+=e.ownerDocument.defaultView.scrollX,n.y+=e.ownerDocument.defaultView.scrollY,n}(t,function(e){const t=e.split("-"),o={top:"bottom",bottom:"top",left:"right",right:"left"};return`${o[t[0]]}-${o[t[1]]}`}(this.activeHandlePosition)),this._originalWidth=i.width,this._originalHeight=i.height,this._aspectRatio=i.width/i.height;const n=o.style.width;n&&n.match(/^\d+(\.\d*)?%$/)?this._originalWidthPercents=parseFloat(n):this._originalWidthPercents=function(e,t=new ut(e)){const o=up(e);return o?t.width/o*100:0}(o,i)}update(e){this.proposedWidth=e.width,this.proposedHeight=e.height,this.proposedWidthPercents=e.widthPercents,this.proposedHandleHostWidth=e.handleHostWidth,this.proposedHandleHostHeight=e.handleHostHeight}}function Pp(e){return`ck-widget__resizer__handle-${e}`}class Sp extends Au{constructor(){super();const e=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",e.to("_viewPosition",(e=>e?`ck-orientation-${e}`:""))],style:{display:e.if("_isVisible","none",(e=>!e))}},children:[{text:e.to("_label")}]})}_bindToState(e,t){this.bind("_isVisible").to(t,"proposedWidth",t,"proposedHeight",((e,t)=>null!==e&&null!==t)),this.bind("_label").to(t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",t,"proposedWidthPercents",((t,o,i)=>"px"===e.unit?`${t}×${o}`:`${i}%`)),this.bind("_viewPosition").to(t,"activeHandlePosition",t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",((e,t,o)=>t<50||o<50?"above-center":e))}_dismiss(){this.unbind(),this._isVisible=!1}}class Ip extends(Be()){_state;_sizeView;_options;_viewResizerWrapper=null;_initialViewWidth;constructor(e){super(),this._options=e,this.set("isEnabled",!0),this.set("isSelected",!1),this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((e,t)=>e&&t)),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(e=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),e.stop())}),{priority:"high"})}get state(){return this._state}show(){this._options.editor.editing.view.change((e=>{e.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){this._options.editor.editing.view.change((e=>{e.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const e=this,t=this._options.viewElement;this._options.editor.editing.view.change((o=>{const i=o.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(t){const o=this.toDomElement(t);return e._appendHandles(o),e._appendSizeUI(o),o}));o.insert(o.createPositionAt(t,"end"),i),o.addClass("ck-widget_with-resizer",t),this._viewResizerWrapper=i,this.isVisible||this.hide()})),this.on("change:isVisible",(()=>{this.isVisible?(this.show(),this.redraw()):this.hide()}))}begin(e){this._state=new Tp(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(e,this._getHandleHost(),this._getResizeHost())}updateSize(e){const t=this._proposeNewSize(e);this._options.editor.editing.view.change((e=>{const o=this._options.unit||"%",i=("%"===o?t.widthPercents:t.width)+o;e.setStyle("width",i,this._options.viewElement)}));const o=this._getHandleHost(),i=new ut(o),n=Math.round(i.width),s=Math.round(i.height),r=new ut(o);t.width=Math.round(r.width),t.height=Math.round(r.height),this.redraw(i),this.state.update({...t,handleHostWidth:n,handleHostHeight:s})}commit(){const e=this._options.unit||"%",t=("%"===e?this.state.proposedWidthPercents:this.state.proposedWidth)+e;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(t)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(e){const t=this._domResizerWrapper;if(!((o=t)&&o.ownerDocument&&o.ownerDocument.contains(o)))return;var o;const i=t.parentElement,n=this._getHandleHost(),s=this._viewResizerWrapper,r=[s.getStyle("width"),s.getStyle("height"),s.getStyle("left"),s.getStyle("top")];let a;if(i.isSameNode(n)){const t=e||new ut(n);a=[t.width+"px",t.height+"px",void 0,void 0]}else a=[n.offsetWidth+"px",n.offsetHeight+"px",n.offsetLeft+"px",n.offsetTop+"px"];"same"!==We(r,a)&&this._options.editor.editing.view.change((e=>{e.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},s)}))}containsHandle(e){return this._domResizerWrapper.contains(e)}static isResizeHandle(e){return e.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((e=>{e.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(e){const t=this.state,o={x:(i=e).pageX,y:i.pageY};var i;const n=!this._options.isCentered||this._options.isCentered(this),s={x:t._referenceCoordinates.x-(o.x+t.originalWidth),y:o.y-t.originalHeight-t._referenceCoordinates.y};n&&t.activeHandlePosition.endsWith("-right")&&(s.x=o.x-(t._referenceCoordinates.x+t.originalWidth)),n&&(s.x*=2);let r=Math.abs(t.originalWidth+s.x),a=Math.abs(t.originalHeight+s.y);return"width"==(r/t.aspectRatio>a?"width":"height")?a=r/t.aspectRatio:r=a*t.aspectRatio,{width:Math.round(r),height:Math.round(a),widthPercents:Math.min(Math.round(t.originalWidthPercents/t.originalWidth*r*100)/100,100)}}_getResizeHost(){const e=this._domResizerWrapper.parentElement;return this._options.getResizeHost(e)}_getHandleHost(){const e=this._domResizerWrapper.parentElement;return this._options.getHandleHost(e)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const i of t)e.appendChild(new ou({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(o=i,`ck-widget__resizer__handle-${o}`)}}).render());var o}_appendSizeUI(e){this._sizeView=new Sp,this._sizeView.render(),e.appendChild(this._sizeView.element)}}class Rp extends fc{_resizers=new Map;_observer;_redrawSelectedResizerThrottled;static get pluginName(){return"WidgetResize"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.editing,t=J.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),e.view.addObserver(il),this._observer=new(et()),this.listenTo(e.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(t,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(t,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=oc((()=>this.redrawSelectedResizer()),200),this.editor.ui.on("update",this._redrawSelectedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[e,t]of this._resizers)e.isAttached()||(this._resizers.delete(e),t.destroy())}),{priority:"lowest"}),this._observer.listenTo(J.window,"resize",this._redrawSelectedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const e=o.getSelectedElement(),t=this.getResizerByViewElement(e)||null;t?this.select(t):this.deselect()}))}redrawSelectedResizer(){this.selectedResizer&&this.selectedResizer.isVisible&&this.selectedResizer.redraw()}destroy(){super.destroy(),this._observer.stopListening();for(const e of this._resizers.values())e.destroy();this._redrawSelectedResizerThrottled.cancel()}select(e){this.deselect(),this.selectedResizer=e,this.selectedResizer.isSelected=!0}deselect(){this.selectedResizer&&(this.selectedResizer.isSelected=!1),this.selectedResizer=null}attachTo(e){const t=new Ip(e),o=this.editor.plugins;if(t.attach(),o.has("WidgetToolbarRepository")){const e=o.get("WidgetToolbarRepository");t.on("begin",(()=>{e.forceDisabled("resize")}),{priority:"lowest"}),t.on("cancel",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"}),t.on("commit",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(e.viewElement,t);const i=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(i)==t&&this.select(t),t}getResizerByViewElement(e){return this._resizers.get(e)}_getResizerByHandle(e){for(const t of this._resizers.values())if(t.containsHandle(e))return t}_mouseDownListener(e,t){const o=t.domTarget;Ip.isResizeHandle(o)&&(this._activeResizer=this._getResizerByHandle(o)||null,this._activeResizer&&(this._activeResizer.begin(o),e.stop(),t.preventDefault()))}_mouseMoveListener(e,t){this._activeResizer&&this._activeResizer.updateSize(t)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}class Op extends fc{static get pluginName(){return"OPMacroToc"}static get buttonName(){return"insertToc"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-toc",{allowWhere:"$block",isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"toc"},model:"op-macro-toc"}),o.for("editingDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>np(this.createTocViewElement(t),t,{label:this.label})}),o.for("dataDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>this.createTocDataElement(t)}),e.ui.componentFactory.add(Op.buttonName,(t=>{const o=new Lu(t);return o.set({label:this.label,withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-toc",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}get label(){return window.I18n.t("js.editor.macro.toc")}createTocViewElement(e){const t=e.createText(this.label),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createTocDataElement(e){return e.createContainerElement("macro",{class:"toc"})}}const Vp=Symbol("isOPEmbeddedTable");function Dp(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Vp)&&ip(e)}(t))}function Fp(e){return _.get(e.config,"_config.openProject.context.resource")}function Mp(e){return _.get(e.config,"_config.openProject.pluginContext")}function Np(e,t){return Mp(e).services[t]}function Bp(e){return Np(e,"pathHelperService")}function Lp(e){return Np(e,"i18n")}class zp extends fc{static get pluginName(){return"EmbeddedTableEditing"}static get buttonName(){return"insertEmbeddedTable"}init(){const e=this.editor,t=e.model,o=e.conversion,i=Mp(e);this.text={button:window.I18n.t("js.editor.macro.embedded_table.button"),macro_text:window.I18n.t("js.editor.macro.embedded_table.text")},t.schema.register("op-macro-embedded-table",{allowWhere:"$block",allowAttributes:["opEmbeddedTableQuery"],isBlock:!0,isObject:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"embedded-table"},model:(e,{writer:t})=>{const o=e.getAttribute("data-query-props");return t.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:o?JSON.parse(o):{}})}}),o.for("editingDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>{return o=this.createEmbeddedTableView(t),i=t,this.label,i.setCustomProperty(Vp,!0,o),np(o,i,{label:"your label here"});var o,i}}),o.for("dataDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>this.createEmbeddedTableDataElement(e,t)}),e.ui.componentFactory.add(zp.buttonName,(t=>{const o=new Lu(t);return o.set({label:this.text.button,withText:!0}),o.on("execute",(()=>i.runInZone((()=>{i.services.externalQueryConfiguration.show({currentQuery:{},callback:t=>e.model.change((o=>{const i=o.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:t});e.model.insertContent(i,e.model.document.selection)}))})})))),o}))}createEmbeddedTableView(e){const t=e.createText(this.text.macro_text),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createEmbeddedTableDataElement(e,t){const o=e.getAttribute("opEmbeddedTableQuery")||{};return t.createContainerElement("macro",{class:"embedded-table","data-query-props":JSON.stringify(o)})}}function jp(e,t,o){e.ui.componentFactory.add(t,(t=>{const i=new Lu(t);return i.set({label:I18n.t("js.button_edit"),icon:'\n',tooltip:!0}),i.on("execute",(()=>{const t=e.model.document.selection.getSelectedElement();t&&o(t)})),i}))}const $p="ck-toolbar-container";function qp(e,t,o,i){const n=t.config.get(o+".toolbar");if(!n||!n.length)return;const s=t.plugins.get("ContextualBalloon"),r=new Wh(t.locale);function a(){t.ui.focusTracker.isFocused&&i(t.editing.view.document.selection)?c()?function(e,t){const o=e.plugins.get("ContextualBalloon");if(t(e.editing.view.document.selection)){const t=Hp(e);o.updatePosition(t)}}(t,i):s.hasView(r)||s.add({view:r,position:Hp(t),balloonClassName:$p}):l()}function l(){c()&&s.remove(r)}function c(){return s.visibleView==r}r.fillFromConfig(n,t.ui.componentFactory),e.listenTo(t.editing.view,"render",a),e.listenTo(t.ui.focusTracker,"change:isFocused",a,{priority:"low"})}function Hp(e){const t=e.editing.view,o=dh.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast]}}class Wp extends fc{static get requires(){return[Qm]}static get pluginName(){return"EmbeddedTableToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditEmbeddedTableQuery",(e=>{const i=o.services.externalQueryConfiguration,n=e.getAttribute("opEmbeddedTableQuery")||{};o.runInZone((()=>{i.show({currentQuery:n,callback:o=>t.change((t=>{t.setAttribute("opEmbeddedTableQuery",o,e)}))})}))}))}afterInit(){qp(this,this.editor,"OPMacroEmbeddedTable",Dp)}}const Up=Symbol("isWpButtonMacroSymbol");function Kp(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Up)&&ip(e)}(t))}class Gp extends fc{static get pluginName(){return"OPMacroWpButtonEditing"}static get buttonName(){return"insertWorkPackageButton"}init(){const e=this.editor,t=e.model,o=e.conversion,i=Mp(e);t.schema.register("op-macro-wp-button",{allowWhere:["$block"],allowAttributes:["type","classes"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"create_work_package_link"},model:(e,{writer:t})=>{const o=e.getAttribute("data-type")||"",i=e.getAttribute("data-classes")||"";return t.createElement("op-macro-wp-button",{type:o,classes:i})}}),o.for("editingDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}),o.for("dataDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"create_work_package_link","data-type":e.getAttribute("type")||"","data-classes":e.getAttribute("classes")||""})}),e.ui.componentFactory.add(Gp.buttonName,(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.work_package_button.button"),withText:!0}),o.on("execute",(()=>{i.services.macros.configureWorkPackageButton().then((t=>e.model.change((o=>{const i=o.createElement("op-macro-wp-button",{});o.setAttribute("type",t.type,i),o.setAttribute("classes",t.classes,i),e.model.insertContent(i,e.model.document.selection)}))))})),o}))}macroLabel(e){return e?window.I18n.t("js.editor.macro.work_package_button.with_type",{typename:e}):window.I18n.t("js.editor.macro.work_package_button.without_type")}createMacroViewElement(e,t){const o=e.getAttribute("classes")||"",i=this.macroLabel(),n=t.createText(i),s=t.createContainerElement("span",{class:o});return t.insert(t.createPositionAt(s,0),n),function(e,t,o){return t.setCustomProperty(Up,!0,e),np(e,t,{label:o})}(s,t,{label:i})}}class Jp extends fc{static get requires(){return[Qm]}static get pluginName(){return"OPMacroWpButtonToolbar"}init(){const e=this.editor,t=Mp(e);jp(e,"opEditWpMacroButton",(o=>{const i=t.services.macros,n=o.getAttribute("type"),s=o.getAttribute("classes");i.configureWorkPackageButton(n,s).then((t=>e.model.change((e=>{e.setAttribute("classes",t.classes,o),e.setAttribute("type",t.type,o)}))))}))}afterInit(){qp(this,this.editor,"OPMacroWpButton",Kp)}}class Zp extends(Be()){total;_reader;_data;constructor(){super();const e=new window.FileReader;this._reader=e,this._data=void 0,this.set("loaded",0),e.onprogress=e=>{this.loaded=e.loaded}}get error(){return this._reader.error}get data(){return this._data}read(e){const t=this._reader;return this.total=e.size,new Promise(((o,i)=>{t.onload=()=>{const e=t.result;this._data=e,o(e)},t.onerror=()=>{i("error")},t.onabort=()=>{i("aborted")},this._reader.readAsDataURL(e)}))}abort(){this._reader.abort()}}class Qp extends fc{loaders=new eo;_loadersMap=new Map;_pendingAction=null;static get pluginName(){return"FileRepository"}static get isOfficialPlugin(){return!0}static get requires(){return[Lc]}init(){this.loaders.on("change",(()=>this._updatePendingAction())),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0))}getLoader(e){return this._loadersMap.get(e)||null}createLoader(e){if(!this.createUploadAdapter)return be("filerepository-no-upload-adapter"),null;const t=new Yp(Promise.resolve(e),this.createUploadAdapter);return this.loaders.add(t),this._loadersMap.set(e,t),e instanceof Promise&&t.file.then((e=>{this._loadersMap.set(e,t)})).catch((()=>{})),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 Yp?e:this.getLoader(e);t._destroy(),this.loaders.remove(t),this._loadersMap.forEach(((e,o)=>{e===t&&this._loadersMap.delete(o)}))}_updatePendingAction(){const e=this.editor.plugins.get(Lc);if(this.loaders.length){if(!this._pendingAction){const t=this.editor.t,o=e=>`${t("Upload in progress")} ${parseInt(e)}%.`;this._pendingAction=e.add(o(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",o)}}else e.remove(this._pendingAction),this._pendingAction=null}}class Yp extends(Be()){id;_filePromiseWrapper;_adapter;_reader;constructor(e,t){super(),this.id=me(),this._filePromiseWrapper=this._createFilePromiseWrapper(e),this._adapter=t(this),this._reader=new Zp,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((e=>this._filePromiseWrapper?e:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new fe("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((e=>this._reader.read(e))).then((e=>{if("reading"!==this.status)throw this.status;return this.status="idle",e})).catch((e=>{if("aborted"===e)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:e}))}upload(){if("idle"!=this.status)throw new fe("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>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",this._filePromiseWrapper.isFulfilled?"reading"==e?this._reader.abort():"uploading"==e&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(e){const t={};return t.promise=new Promise(((o,i)=>{t.rejecter=i,t.isFulfilled=!1,e.then((e=>{t.isFulfilled=!0,o(e)})).catch((e=>{t.isFulfilled=!0,i(e)}))})),t}}class Xp{constructor(e,t,o){this.loader=e,this.resource=t,this.editor=o}upload(){const e=this.resource,t=Np(this.editor,"attachmentsResourceService");return e?this.loader.file.then((o=>t.attachFiles(e,[o]).toPromise().then((e=>(this.editor.model.fire("op:attachment-added",e),this.buildResponse(e[0])))).catch((e=>{console.error("Failed upload %O",e)})))):(console.warn("resource not available in this CKEditor instance"),Promise.reject("Not possible to upload attachments without resource"))}buildResponse(e){return{default:e._links.staticDownloadLocation.href}}abort(){return!1}}function ef(e){return e}function tf(e,t,o){return"function"!=typeof o?tf(e,t,(()=>{})):of(e,t,(function e(t,i,n,s,r,a){const l=o(t,i,n,s,r,a);return void 0!==l?Boolean(l):of(t,i,e,a)}),new Map)}function of(e,t,o,i){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,o,i){if(null==t)return!0;if(Array.isArray(t))return nf(e,t,o,i);if(t instanceof Map)return function(e,t,o,i){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[n,s]of t.entries()){if(!1===o(e.get(n),s,n,e,t,i))return!1}return!0}(e,t,o,i);if(t instanceof Set)return function(e,t,o,i){if(0===t.size)return!0;if(!(e instanceof Set))return!1;return nf([...e],[...t],o,i)}(e,t,o,i);const n=Object.keys(t);if(null==e||V(e))return 0===n.length;if(0===n.length)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let s=0;s0?of(e,{...t},o,i):Co(e,t);default:return s(e)?"string"!=typeof t||""===t:Co(e,t)}}function nf(e,t,o,i){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const n=new Set;for(let s=0;s{}))}function rf(e){var t;return e=F(t=e,void 0,t,new Map,void 0),t=>sf(t,e)}function af(e,t){let o;if(o=Array.isArray(t)?t:"string"==typeof t&&wo(t)&&null==e?.[t]?ko(t):[t],0===o.length)return!1;let i=e;for(let e=0;e{i.preventDefault();const n=i.dropRange?[i.dropRange]:null,s=new ue(t,e);t.fire(s,{dataTransfer:i.dataTransfer,method:o.name,targetRanges:n,target:i.target,domEvent:i.domEvent}),s.stop.called&&i.stopPropagation()}}this.listenTo(t,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"dragover",o("dragging"),{priority:"low"})}onDomEvent(e){const t="clipboardData"in e?e.clipboardData:e.dataTransfer,o="drop"==e.type||"paste"==e.type,i={dataTransfer:new Jn(t,{cacheFiles:o})};if("drop"==e.type||"dragover"==e.type){const t=st(e);i.dropRange=t&&this.view.domConverter.domRangeToView(t)}this.fire(e.type,e,i)}}const uf=["figcaption","li"],hf=["ol","ul"];function mf(e,t){if(t.is("$text")||t.is("$textProxy"))return t.data;if(t.is("element","img")&&t.hasAttribute("alt"))return t.getAttribute("alt");if(t.is("element","br"))return"\n";let o="",i=null;for(const n of t.getChildren())o+=pf(n,i)+mf(e,n),i=n;if(t.is("rawElement")){const i=document.implementation.createHTMLDocument("").createElement("div");t.render(i,e),o+=gf(i)}return o}function gf(e){let t="";if(e.nodeType===Node.TEXT_NODE)return e.textContent;if("BR"===e.tagName)return"\n";for(const o of e.childNodes)t+=gf(o);return t}function pf(e,t){return t?e.is("element","li")&&!e.isEmpty&&e.getChild(0).is("containerElement")||hf.includes(e.name)&&hf.includes(t.name)?"\n\n":e.is("containerElement")||t.is("containerElement")?uf.includes(e.name)||uf.includes(t.name)?"\n":e.is("element")&&e.getCustomProperty("dataPipeline:transparentRendering")||t.is("element")&&t.getCustomProperty("dataPipeline:transparentRendering")?"":"\n\n":"":""}class ff extends fc{_markersToCopy=new Map;static get pluginName(){return"ClipboardMarkersUtils"}static get isOfficialPlugin(){return!0}_registerMarkerToCopy(e,t){this._markersToCopy.set(e,t)}_copySelectedFragmentWithMarkers(e,t,o=e=>e.model.getSelectedContent(e.model.document.selection)){return this.editor.model.change((i=>{const n=i.model.document.selection;i.setSelection(t);const s=this._insertFakeMarkersIntoSelection(i,i.model.document.selection,e),r=o(i),a=this._removeFakeMarkersInsideElement(i,r);for(const[e,t]of Object.entries(s)){a[e]||=i.createRangeIn(r);for(const e of t)i.remove(e)}r.markers.clear();for(const[e,t]of Object.entries(a))r.markers.set(e,t);return i.setSelection(n),r}))}_pasteMarkersIntoTransformedElement(e,t){const o=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change((e=>{const i=this._insertFakeMarkersElements(e,o),n=t(e),s=this._removeFakeMarkersInsideElement(e,n);for(const t of Object.values(i).flat())e.remove(t);for(const[t,o]of Object.entries(s))e.model.markers.has(t)||e.addMarker(t,{usingOperation:!0,affectsData:!0,range:o});return n}))}_pasteFragmentWithMarkers(e){const t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(const o of t)e.markers.set(o.name,o.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,o={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const i=this._markersToCopy.get(e);this._markersToCopy.set(e,o),t(),i?this._markersToCopy.set(e,i):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){const o=this._getMarkerClipboardConfig(e);if(!o)return!1;if(!t)return!0;const{allowedActions:i}=o;return"all"===i||i.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){const[t]=e.split(":");return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,o){const i=this._getCopyableMarkersFromSelection(e,t,o);return this._insertFakeMarkersElements(e,i)}_getCopyableMarkersFromSelection(e,t,o){const i=Array.from(t.getRanges()),n=new Set(i.flatMap((t=>Array.from(e.model.markers.getMarkersIntersectingRange(t)))));return Array.from(n).filter((e=>{if(!this._isMarkerCopyable(e.name,o))return!1;const{copyPartiallySelected:t}=this._getMarkerClipboardConfig(e.name);if(!t){const t=e.getRange();return i.some((e=>e.containsRange(t,!0)))}return!0})).map((e=>({name:"dragstart"===o?this._getUniqueMarkerName(e.name):e.name,range:e.getRange()})))}_getPasteMarkersFromRangeMap(e,t=null){const{model:o}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap((([e,i])=>{if(!this._hasMarkerConfiguration(e))return[{name:e,range:i}];if(this._isMarkerCopyable(e,t)){const t=this._getMarkerClipboardConfig(e),n=o.markers.has(e)&&"$graveyard"===o.markers.get(e).getRange().root.rootName;return(t.duplicateOnPaste||n)&&(e=this._getUniqueMarkerName(e)),[{name:e,range:i}]}return[]}))}_insertFakeMarkersElements(e,t){const o={},i=t.flatMap((e=>{const{start:t,end:o}=e.range;return[{position:t,marker:e,type:"start"},{position:o,marker:e,type:"end"}]})).sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:t,marker:n,type:s}of i){const i=e.createElement("$marker",{"data-name":n.name,"data-type":s});o[n.name]||(o[n.name]=[]),o[n.name].push(i),e.insert(i,t)}return o}_removeFakeMarkersInsideElement(e,t){return cf(this._getAllFakeMarkersFromElement(e,t).reduce(((t,o)=>{const i=o.markerElement&&e.createPositionBefore(o.markerElement);let n=t[o.name],s=!1;if(n?.start&&n?.end){this._getMarkerClipboardConfig(o.name).duplicateOnPaste?t[this._getUniqueMarkerName(o.name)]=t[o.name]:s=!0,n=null}return s||(t[o.name]={...n,[o.type]:i}),o.markerElement&&e.remove(o.markerElement),t}),{}),(o=>new us(o.start||e.createPositionFromPath(t,[0]),o.end||e.createPositionAt(t,"end"))))}_getAllFakeMarkersFromElement(e,t){const o=Array.from(e.createRangeIn(t)).flatMap((({item:e})=>{if(!e.is("element","$marker"))return[];const t=e.getAttribute("data-name"),o=e.getAttribute("data-type");return[{markerElement:e,name:t,type:o}]})),i=[],n=[];for(const e of o){if("end"===e.type){o.some((t=>t.name===e.name&&"start"===t.type))||i.push({markerElement:null,name:e.name,type:"start"})}if("start"===e.type){o.some((t=>t.name===e.name&&"end"===t.type))||n.unshift({markerElement:null,name:e.name,type:"end"})}}return[...i,...o,...n]}_getUniqueMarkerName(e){const t=e.split(":"),o=me().substring(1,6);return 3===t.length?`${t.slice(0,2).join(":")}:${o}`:`${t.join(":")}:${o}`}}class bf extends fc{static get pluginName(){return"ClipboardPipeline"}static get isOfficialPlugin(){return!0}static get requires(){return[ff]}init(){this.editor.editing.view.addObserver(df),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,o){const i=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===o},(()=>{const n=i._copySelectedFragmentWithMarkers(o,t);this.fire("outputTransformation",{dataTransfer:e,content:n,method:o})}))}_setupPasteDrop(){const e=this.editor,t=e.model,o=e.editing.view,i=o.document,n=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(i,"clipboardInput",((t,o)=>{"paste"!=o.method||e.model.canEditAt(e.model.document.selection)||t.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((e,t)=>{const i=t.dataTransfer;let n;if(t.content)n=t.content;else{let e="";i.getData("text/html")?e=function(e){return e.replace(/(\s+)<\/span>/g,((e,t)=>1==t.length?" ":t)).replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"

").replace(/\r?\n/g,"
").replace(/\t/g,"    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

")||s.includes("
"))&&(s=`

${s}

`),e=s),n=this.editor.data.htmlProcessor.toView(e)}var s;const r=new ue(this,"inputTransformation"),a=i.getData("application/ckeditor5-editor-id")||null;this.fire(r,{content:n,dataTransfer:i,sourceEditorId:a,targetRanges:t.targetRanges,method:t.method}),r.stop.called&&e.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((e,o)=>{if(o.content.isEmpty)return;const i=this.editor.data.toModel(o.content,"$clipboardHolder");0!=i.childCount&&(e.stop(),t.change((()=>{this.fire("contentInsertion",{content:i,method:o.method,sourceEditorId:o.sourceEditorId,dataTransfer:o.dataTransfer,targetRanges:o.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((e,t)=>{t.resultRange=n._pasteFragmentWithMarkers(t.content)}),{priority:"low"})}_setupCopyCut(){const e=this.editor,t=e.model.document,o=e.editing.view.document,i=(e,o)=>{const i=o.dataTransfer;o.preventDefault(),this._fireOutputTransformationEvent(i,t.selection,e.name)};this.listenTo(o,"copy",i,{priority:"low"}),this.listenTo(o,"cut",((t,o)=>{e.model.canEditAt(e.model.document.selection)?i(t,o):o.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((t,i)=>{const n=e.data.toView(i.content,{isClipboardPipeline:!0});o.fire("clipboardOutput",{dataTransfer:i.dataTransfer,content:n,method:i.method})}),{priority:"low"}),this.listenTo(o,"clipboardOutput",((o,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",mf(e.data.htmlProcessor.domConverter,i.content)),i.dataTransfer.setData("application/ckeditor5-editor-id",this.editor.id)),"cut"==i.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}const wf=yt("px");class yf extends Au{constructor(){super();const e=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",e.if("isVisible","ck-hidden",(e=>!e))],style:{left:e.to("left",(e=>wf(e))),top:e.to("top",(e=>wf(e))),width:e.to("width",(e=>wf(e)))}}})}}class _f extends fc{removeDropMarkerDelayed=co((()=>this.removeDropMarker()),40);_updateDropMarkerThrottled=oc((e=>this._updateDropMarker(e)),40);_reconvertMarkerThrottled=oc((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0);_dropTargetLineView=new yf;_domEmitter=new(et());_scrollables=new Map;static get pluginName(){return"DragDropTarget"}static get isOfficialPlugin(){return!0}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:e}of this._scrollables.values())e.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(e,t,o,i,n,s){this.removeDropMarkerDelayed.cancel();const r=kf(this.editor,e,t,o,i,n,s);return r?s&&s.containsRange(r)||r&&!this.editor.model.canEditAt(r)?(this.removeDropMarker(),null):(this._updateDropMarkerThrottled(r),r):null}getFinalDropRange(e,t,o,i,n,s){const r=kf(this.editor,e,t,o,i,n,s);return this.removeDropMarker(),r}removeDropMarker(){const e=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,e.markers.has("drop-target")&&e.change((e=>{e.removeMarker("drop-target")}))}_setupDropMarker(){const e=this.editor;e.ui.view.body.add(this._dropTargetLineView),e.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),e.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(t,{writer:o})=>{if(e.model.schema.checkChild(t.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(o);t.markerRange.isCollapsed?this._updateDropTargetLine(t.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(e){const t=this.editor,o=t.model.markers;t.model.change((t=>{o.has("drop-target")?o.get("drop-target").getRange().isEqual(e)||t.updateMarker("drop-target",{range:e}):t.addMarker("drop-target",{range:e,usingOperation:!1,affectsData:!1})}))}_createDropTargetPosition(e){return e.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(e){const t=this.toDomElement(e);return t.append("⁠",e.createElement("span"),"⁠"),t}))}_updateDropTargetLine(e){const t=this.editor.editing,o=e.start.nodeBefore,i=e.start.nodeAfter,n=e.start.parent,s=o?t.mapper.toViewElement(o):null,r=s?t.view.domConverter.mapViewToDom(s):null,a=i?t.mapper.toViewElement(i):null,l=a?t.view.domConverter.mapViewToDom(a):null,c=t.mapper.toViewElement(n);if(!c)return;const d=t.view.domConverter.mapViewToDom(c),u=this._getScrollableRect(c),{scrollX:h,scrollY:m}=J.window,g=r?new ut(r):null,p=l?new ut(l):null,f=new ut(d).excludeScrollbarsAndBorders(),b=g?g.bottom:f.top,w=p?p.top:f.bottom,y=J.window.getComputedStyle(d),_=b<=w?(b+w)/2:w;if(u.top<_&&_a.schema.checkChild(s,e)))){if(a.schema.checkChild(s,"$text"))return a.createRange(s);if(t)return Cf(e,xf(e,t.parent),i,n)}}}else if(a.schema.isInline(c))return Cf(e,c,i,n);if(a.schema.isBlock(c))return Cf(e,c,i,n);if(a.schema.checkChild(c,"$block")){const t=Array.from(c.getChildren()).filter((t=>t.is("element")&&!vf(e,t)));let o=0,s=t.length;if(0==s)return a.createRange(a.createPositionAt(c,"end"));for(;o{o?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")})),Y.isAndroid&&this.forceDisabled("noAndroidSupport"),e.plugins.has("BlockToolbar")){const t=e.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(t,"dragstart",((e,t)=>this._handleBlockDragStart(t))),this._domEmitter.listenTo(J.document,"dragover",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(J.document,"drop",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(J.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&t.setAttribute("draggable","true"),this.on("change:isEnabled",((e,o,i)=>{t.setAttribute("draggable",i?"true":"false")}))}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(e){if(!this.isEnabled)return;const t=this.editor.model,o=t.document.selection,i=this.editor.editing.view,n=Array.from(o.getSelectedBlocks()),s=t.createRange(t.createPositionBefore(n[0]),t.createPositionAfter(n[n.length-1]));t.change((e=>e.setSelection(s))),this._isBlockDragging=!0,i.focus(),i.getObserver(df).onDomEvent(e)}_handleBlockDragging(e){if(!this.isEnabled||!this._isBlockDragging)return;const t=e.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),o=e.clientY,i=document.elementFromPoint(t,o),n=this.editor.editing.view;i&&i.closest(".ck-editor__editable")&&n.getObserver(df).onDomEvent({...e,type:e.type,dataTransfer:e.dataTransfer,target:i,clientX:t,clientY:o,preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}class Tf extends fc{_draggedRange;_draggingUid;_draggableElement;_clearDraggableAttributesDelayed=co((()=>this._clearDraggableAttributes()),40);_blockMode=!1;_domEmitter=new(et());_previewContainer;static get pluginName(){return"DragDrop"}static get isOfficialPlugin(){return!0}static get requires(){return[bf,vp,_f,Ef]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(df),t.addObserver(sl),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(e,"change:isReadOnly",((e,t,o)=>{o?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((e,t,o)=>{o||this._finalizeDragging(!1)})),Y.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const e=this.editor,t=e.model,o=e.editing.view,i=o.document,n=e.plugins.get(_f);this.listenTo(i,"dragstart",((o,i)=>{if(i.target?.is("editableElement"))return void i.preventDefault();if(this._prepareDraggedRange(i.target),!this._draggedRange)return void i.preventDefault();this._draggingUid=me();const n=this.isEnabled&&e.model.canEditAt(this._draggedRange);i.dataTransfer.effectAllowed=n?"copyMove":"copy",i.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const s=t.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(i.dataTransfer,s,"dragstart");const{dataTransfer:r,domTarget:a,domEvent:l}=i,{clientX:c}=l;this._updatePreview({dataTransfer:r,domTarget:a,clientX:c}),i.stopPropagation(),n||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((e,t)=>{this._finalizeDragging(!t.dataTransfer.isCanceled&&"move"==t.dataTransfer.dropEffect)}),{priority:"low"}),this._domEmitter.listenTo(J.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{n.removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,t)=>{if(!this.isEnabled)return void(t.dataTransfer.dropEffect="none");const{clientX:o,clientY:i}=t.domEvent;n.updateDropMarker(t.target,t.targetRanges,o,i,this._blockMode,this._draggedRange)?(this._draggedRange||(t.dataTransfer.dropEffect="copy"),Y.isGecko||("copy"==t.dataTransfer.effectAllowed?t.dataTransfer.dropEffect="copy":["all","copyMove"].includes(t.dataTransfer.effectAllowed)&&(t.dataTransfer.dropEffect="move")),e.stop()):t.dataTransfer.dropEffect="none"}),{priority:"low"})}_setupClipboardInputIntegration(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get(_f);this.listenTo(t,"clipboardInput",((t,i)=>{if("drop"!=i.method)return;const{clientX:n,clientY:s}=i.domEvent,r=o.getFinalDropRange(i.target,i.targetRanges,n,s,this._blockMode,this._draggedRange);if(!r)return this._finalizeDragging(!1),void t.stop();this._draggedRange&&this._draggingUid!=i.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Pf(i.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(r,!0))return this._finalizeDragging(!1),void t.stop();i.targetRanges=[e.editing.mapper.toViewRange(r)]}),{priority:"high"})}_setupContentInsertionIntegration(){const e=this.editor.plugins.get(bf);e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o=t.targetRanges.map((e=>this.editor.editing.mapper.toModelRange(e)));this.editor.model.change((e=>e.setSelection(o)))}),{priority:"high"}),e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o="move"==Pf(t.dataTransfer),i=!t.resultRange||!t.resultRange.isCollapsed;this._finalizeDragging(i&&o)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const e=this.editor,t=e.editing.view,o=t.document;this.listenTo(o,"pointerdown",((i,n)=>{if(Y.isAndroid||!n)return;this._clearDraggableAttributesDelayed.cancel();let s=Sf(n.target);if(Y.isBlink&&!e.isReadOnly&&!s&&!o.selection.isCollapsed){const e=o.selection.getSelectedElement();e&&ip(e)||(s=o.selection.editableElement)}s&&(t.change((e=>{e.setAttribute("draggable","true",s)})),this._draggableElement=e.editing.mapper.toModelElement(s))})),this.listenTo(o,"pointerup",(()=>{Y.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const e=this.editor.editing;e.view.change((t=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&t.removeAttribute("draggable",e.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_finalizeDragging(e){const t=this.editor,o=t.model;if(t.plugins.get(_f).removeDropMarker(),this._clearDraggableAttributes(),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop")}this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(e&&this.isEnabled&&o.change((e=>{const t=o.createSelection(this._draggedRange);o.deleteContent(t,{doNotAutoparagraph:!0});const i=t.getFirstPosition().parent;i.isEmpty&&!o.schema.checkChild(i,"$text")&&o.schema.checkChild(i,"paragraph")&&e.insertElement("paragraph",i,0)})),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(e){const t=this.editor,o=t.model,i=o.document.selection,n=e?Sf(e):null;if(n){const e=t.editing.mapper.toModelElement(n);if(this._draggedRange=Ts.fromRange(o.createRangeOn(e)),this._blockMode=o.schema.isBlock(e),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}return}if(i.isCollapsed&&!i.getFirstPosition().parent.isEmpty)return;const s=Array.from(i.getSelectedBlocks()),r=i.getFirstRange();if(0==s.length)return void(this._draggedRange=Ts.fromRange(r));const a=If(o,s);if(s.length>1)this._draggedRange=Ts.fromRange(a),this._blockMode=!0;else if(1==s.length){const e=r.start.isTouching(a.start)&&r.end.isTouching(a.end);this._draggedRange=Ts.fromRange(e?a:r),this._blockMode=e}o.change((e=>e.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:e,domTarget:t,clientX:o}){const i=this.editor.editing.view,n=i.document.selection.editableElement,s=i.domConverter.mapViewToDom(n),r=J.window.getComputedStyle(s);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ke(J.document,"div",{style:"position: fixed; left: -999999px;"}),J.document.body.appendChild(this._previewContainer));const a=Ke(J.document,"div");a.className="ck ck-content ck-clipboard-preview";const l=new ut(s),c=parseFloat(r.paddingLeft),d=parseFloat(r.paddingRight),u=parseFloat(r.width)-c-d;if(s.contains(t)){if(!Y.isiOS)return;a.style.maxWidth=`${u}px`,a.style.padding="10px",a.style.minWidth="200px",a.style.minHeight="20px",a.style.boxSizing="border-box",a.style.backgroundColor="var(--ck-color-base-background)"}else if(Y.isiOS)a.style.width=`${u}px`,a.style.backgroundColor="var(--ck-color-base-background)";else{const e=l.left-o+c;a.style.width=`${u+e}px`,a.style.paddingLeft=`${e}px`}i.domConverter.setContentOf(a,e.getData("text/html")),e.setDragImage(a,0,0),this._previewContainer.appendChild(a)}}function Pf(e){return Y.isGecko?e.dropEffect:["all","copyMove"].includes(e.effectAllowed)?"move":"copy"}function Sf(e){if(e.is("editableElement"))return null;if(e.hasClass("ck-widget__selection-handle"))return e.findAncestor(ip);if(ip(e))return e;const t=e.findAncestor((e=>ip(e)||e.is("editableElement")));return ip(t)?t:null}function If(e,t){const o=t[0],i=t[t.length-1],n=o.getCommonAncestor(i),s=e.createPositionBefore(o),r=e.createPositionAfter(i);if(n&&n.is("element")&&!e.schema.isLimit(n)){const t=e.createRangeOn(n),o=s.isTouching(t.start),i=r.isTouching(t.end);if(o&&i)return If(e,[n])}return e.createRange(s,r)}class Rf extends fc{static get pluginName(){return"PastePlainText"}static get isOfficialPlugin(){return!0}static get requires(){return[bf]}init(){const e=this.editor,t=e.model,o=e.editing.view,i=t.document.selection;o.addObserver(df),e.plugins.get(bf).on("contentInsertion",((e,o)=>{(function(e,t){let o=t.createRangeIn(e);if(1==e.childCount){const i=e.getChild(0);i.is("element")&&t.schema.isBlock(i)&&!t.schema.isObject(i)&&!t.schema.isLimit(i)&&(o=t.createRangeIn(i))}for(const e of o.getItems()){if(!t.schema.isInline(e))return!1;if(Array.from(e.getAttributeKeys()).find((e=>t.schema.getAttributeProperties(e).isFormatting)))return!1}return!0})(o.content,t)&&t.change((e=>{const n=Array.from(i.getAttributes()).filter((([e])=>t.schema.getAttributeProperties(e).isFormatting));i.isCollapsed||t.deleteContent(i,{doNotAutoparagraph:!0}),n.push(...i.getAttributes());const s=e.createRangeIn(o.content);for(const o of s.getItems())for(const i of n)t.schema.checkAttribute(o,i[0])&&e.setAttribute(i[0],i[1],o)}))}))}}class Of extends fc{static get pluginName(){return"Clipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[ff,bf,Tf,Rf]}init(){const e=this.editor,t=this.editor.t;e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Copy selected content"),keystroke:"CTRL+C"},{label:t("Paste content"),keystroke:"CTRL+V"},{label:t("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}class Vf extends wc{_stack=[];_createdBatches=new WeakSet;constructor(e){super(e),this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(e.data,"set",((e,t)=>{t[1]={...t[1]};const o=t[1];o.batchType||(o.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(e.data,"set",((e,t)=>{t[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(e){const t=this.editor.model.document.selection,o={ranges:t.hasOwnRange?Array.from(t.getRanges()):[],isBackward:t.isBackward};this._stack.push({batch:e,selection:o}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(e,t,o){const i=this.editor.model,n=i.document,s=[],r=e.map((e=>e.getTransformedByOperations(o))),a=r.flat();for(const e of r){const t=e.filter((e=>e.root!=n.graveyard)).filter((e=>!Ff(e,a)));t.length&&(Df(t),s.push(t[0]))}s.length&&i.change((e=>{e.setSelection(s,{backward:t})}))}_undo(e,t){const o=this.editor.model,i=o.document;this._createdBatches.add(t);const n=e.operations.slice().filter((e=>e.isDocumentOperation));n.reverse();for(const e of n){const n=e.baseVersion+1,s=Array.from(i.history.getOperations(n)),r=sa([e.getReversed()],s,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let n of r){const s=n.affectedSelectable;s&&!o.canEditAt(s)&&(n=new Jr(n.baseVersion)),t.addOperation(n),o.applyOperation(n),i.history.setOperationAsUndone(e,n)}}}}function Df(e){e.sort(((e,t)=>e.start.isBefore(t.start)?-1:1));for(let t=1;tt!==e&&t.containsRange(e,!0)))}class Mf extends Vf{execute(e=null){const t=e?this._stack.findIndex((t=>t.batch==e)):this._stack.length-1,o=this._stack.splice(t,1)[0],i=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(i,(()=>{this._undo(o.batch,i);const e=this.editor.model.document.history.getOperations(o.batch.baseVersion);this._restoreSelection(o.selection.ranges,o.selection.isBackward,e)})),this.fire("revert",o.batch,i),this.refresh()}}class Nf extends Vf{execute(){const e=this._stack.pop(),t=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(t,(()=>{const o=e.batch.operations[e.batch.operations.length-1].baseVersion+1,i=this.editor.model.document.history.getOperations(o);this._restoreSelection(e.selection.ranges,e.selection.isBackward,i),this._undo(e.batch,t)})),this.fire("revert",e.batch,t),this.refresh()}}class Bf extends fc{_undoCommand;_redoCommand;_batchRegistry=new WeakSet;static get pluginName(){return"UndoEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;this._undoCommand=new Mf(e),this._redoCommand=new Nf(e),e.commands.add("undo",this._undoCommand),e.commands.add("redo",this._redoCommand),this.listenTo(e.model,"applyOperation",((e,t)=>{const o=t[0];if(!o.isDocumentOperation)return;const i=o.batch,n=this._redoCommand.createdBatches.has(i),s=this._undoCommand.createdBatches.has(i);this._batchRegistry.has(i)||(this._batchRegistry.add(i),i.isUndoable&&(n?this._undoCommand.addBatch(i):s||(this._undoCommand.addBatch(i),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((e,t,o)=>{this._redoCommand.addBatch(o)})),e.keystrokes.set("CTRL+Z","undo"),e.keystrokes.set("CTRL+Y","redo"),e.keystrokes.set("CTRL+SHIFT+Z","redo"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Undo"),keystroke:"CTRL+Z"},{label:t("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class Lf extends fc{static get pluginName(){return"UndoUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale,o=e.t,i="ltr"==t.uiLanguageDirection?nd:td,n="ltr"==t.uiLanguageDirection?td:nd;this._addButtonsToFactory("undo",o("Undo"),"CTRL+Z",i),this._addButtonsToFactory("redo",o("Redo"),"CTRL+Y",n)}_addButtonsToFactory(e,t,o,i){const n=this.editor;n.ui.componentFactory.add(e,(()=>{const n=this._createButton(Lu,e,t,o,i);return n.set({tooltip:!0}),n})),n.ui.componentFactory.add("menuBar:"+e,(()=>this._createButton(sh,e,t,o,i)))}_createButton(e,t,o,i,n){const s=this.editor,r=s.locale,a=s.commands.get(t),l=new e(r);return l.set({label:o,icon:n,keystroke:i}),l.bind("isEnabled").to(a,"isEnabled"),this.listenTo(l,"execute",(()=>{s.execute(t),s.editing.view.focus()})),l}}class zf extends fc{static get requires(){return[Bf,Lf]}static get pluginName(){return"Undo"}static get isOfficialPlugin(){return!0}}function jf(e){return e}function $f(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function qf(e,t){const o=e.plugins.get("ImageUtils"),i=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>{if(!o.isInlineImageView(e))return null;if(!i)return n(e);return("block"==e.getStyle("display")||e.findAncestor(o.isBlockImageView)?"imageBlock":"imageInline")!==t?null:n(e)};function n(e){const t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function Hf(e,t){const o=to(t.getSelectedBlocks());return!o||e.isObject(o)||o.isEmpty&&"listItem"!=o.name?"imageBlock":"imageInline"}function Wf(e){return e&&e.endsWith("px")?parseInt(e):null}function Uf(e){const t=Wf(e.getStyle("width")),o=Wf(e.getStyle("height"));return!(!t||!o)}const Kf=/^(image|image-inline)$/;class Gf extends fc{_domEmitter=new(et());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,o=null,i={}){const n=this.editor,s=n.model,r=s.document.selection,a=Jf(n,t||r,o);e={...Object.fromEntries(r.getAttributes()),...e};for(const t in e)s.schema.checkAttribute(a,t)||delete e[t];return s.change((o=>{const{setImageSizes:n=!0}=i,r=o.createElement(a,e);return s.insertObject(r,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==a?void 0:"auto"}),r.parent?(n&&this.setImageNaturalSizeAttributes(r),r):null}))}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change((o=>{const i=new J.window.Image;this._domEmitter.listenTo(i,"load",(()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(o.batch,(t=>{t.setAttribute("width",i.naturalWidth,e),t.setAttribute("height",i.naturalHeight,e)})),this._domEmitter.stopListening(i,"load")})),i.src=t})))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const o=e.getSelectedElement();if(o&&this.isImageWidget(o))return o;let i=t.parent;for(;i;){if(i.is("element")&&this.isImageWidget(i))return i;i=i.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:Kf})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const o=Jf(e,t,null);if("imageBlock"==o){const o=function(e,t){const o=cp(e,t),i=o.start.parent;if(i.isEmpty&&!i.is("element","$root"))return i.parent;return i}(t,e.model);if(e.model.schema.checkChild(o,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&function(e){return[...e.focus.getAncestors()].every((e=>!e.is("element","imageBlock")))}(e)}toImageWidget(e,t,o){t.setCustomProperty("image",!0,e);return np(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${o}`:o}})}isImageWidget(e){return!!e.getCustomProperty("image")&&ip(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:o}of t.createRangeIn(e))if(this.isInlineImageView(o))return o}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function Jf(e,t,o){const i=e.model.schema,n=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?o||("inline"===n?"imageInline":"auto"!==n?"imageBlock":t.is("selection")?Hf(i,t):i.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class Zf extends wc{refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,o=t.plugins.get("ImageUtils"),i=t.model,n=o.getClosestSelectedImageElement(i.document.selection);i.change((t=>{t.setAttribute("alt",e.newValue,n)}))}}class Qf extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new Zf(this.editor))}}class Yf extends Au{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new Km(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new tu,this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function Xf(e){const t=e.editing.view,o=dh.defaultPositions,i=e.plugins.get("ImageUtils");return{target:t.domConverter.mapViewToDom(i.getClosestSelectedImageWidget(t.document.selection)),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class eb extends fc{_balloon;_form;static get requires(){return[Qm]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",(o=>{const i=e.commands.get("imageTextAlternative"),n=new Lu(o);return n.set({label:t("Change image text alternative"),icon:'',tooltip:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>!!e)),this.listenTo(n,"execute",(()=>{this._showForm()})),n}))}_createForm(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Iu(Yf))(e.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this.listenTo(e.ui,"update",(()=>{o.getClosestSelectedImageWidget(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const o=Xf(e);t.updatePosition(o)}}(e):this._hideForm(!0)})),Su({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),o=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:Xf(e)}),o.fieldView.value=o.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class tb extends fc{static get requires(){return[Qf,eb]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function ob(e,t){const o=(t,o,i)=>{if(!i.consumable.consume(o.item,t.name))return;const n=i.writer,s=i.mapper.toViewElement(o.item),r=e.findViewImgElement(s);null===o.attributeNewValue?(n.removeAttribute("srcset",r),n.removeAttribute("sizes",r)):o.attributeNewValue&&(n.setAttribute("srcset",o.attributeNewValue,r),n.setAttribute("sizes","100vw",r))};return e=>{e.on(`attribute:srcset:${t}`,o)}}function ib(e,t,o){const i=(t,o,i)=>{if(!i.consumable.consume(o.item,t.name))return;const n=i.writer,s=i.mapper.toViewElement(o.item),r=e.findViewImgElement(s);n.setAttribute(o.attributeKey,o.attributeNewValue||"",r)};return e=>{e.on(`attribute:${o}:${t}`,i)}}class nb extends Ln{observe(e){this.listenTo(e,"load",((e,t)=>{const o=t.target;this.checkShouldIgnoreEventFromTarget(o)||"IMG"==o.tagName&&this._fireEvents(t)}),{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class sb extends wc{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&be("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&be("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=Qt(e.source),o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),n=Object.fromEntries(o.getAttributes());t.forEach(((t,s)=>{const r=o.getSelectedElement();if("string"==typeof t&&(t={src:t}),s&&r&&i.isImage(r)){const o=this.editor.model.createPositionAfter(r);i.insertImage({...t,...n},o,e.imageType)}else e.breakBlock?i.insertImage({...t,...n},o.getFirstPosition(),e.imageType):i.insertImage({...t,...n},null,e.imageType)}))}}class rb extends wc{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(t),this.value=this.isEnabled?t.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),o=this.editor.plugins.get("ImageUtils");this.editor.model.change((i=>{i.setAttribute("src",e.source,t),this.cleanupImage(i,t),o.setImageNaturalSizeAttributes(t)}))}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class ab extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(nb),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const o=new sb(e),i=new rb(e);e.commands.add("insertImage",o),e.commands.add("replaceImageSource",i),e.commands.add("imageInsert",o)}}class lb extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils"),i="imageBlock"===e?"figure":"img";function n(t,i,n,s,r=!1){t.on(`attribute:${i}:${e}`,((t,i,a)=>{if(!a.consumable.consume(i.item,t.name))return;const l=a.writer,c=a.mapper.toViewElement(i.item),d=o.findViewImgElement(c);null!==i.attributeNewValue?l.setAttribute(n,i.attributeNewValue,d):l.removeAttribute(n,d);const u=i.item.getAttribute("width"),h=i.item.getAttribute("height"),m=u&&h;if(m&&r&&l.setAttribute("loading","lazy",d),i.item.hasAttribute("sources"))return;const g=i.item.hasAttribute("resizedWidth");("imageInline"!==e||g||s)&&m&&l.setStyle("aspect-ratio",`${u}/${h}`,d)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:i,styles:{width:/.+/}},model:{key:"width",value:e=>Uf(e)?Wf(e.getStyle("width")):null}}).attributeToAttribute({view:{name:i,key:"width"},model:"width"}).attributeToAttribute({view:{name:i,styles:{height:/.+/}},model:{key:"height",value:e=>Uf(e)?Wf(e.getStyle("height")):null}}).attributeToAttribute({view:{name:i,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{n(e,"width","width",!0,!0),n(e,"height","height",!0,!0)})),t.conversion.for("dataDowncast").add((e=>{n(e,"width","width",!1),n(e,"height","height",!1)})),t.conversion.for("upcast").add((e=>{e.on("element:img",((e,t,o)=>{const i=t.viewItem.getAttribute("width"),n=t.viewItem.getAttribute("height");i&&n&&o.consumable.consume(t.viewItem,{styles:["aspect-ratio"]})}))}))}}class cb extends wc{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=e.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=e.isInlineImage(t):this.isEnabled=e.isBlockImage(t)}execute(e={}){const t=this.editor,o=this.editor.model,i=t.plugins.get("ImageUtils"),n=i.getClosestSelectedImageElement(o.document.selection),s=Object.fromEntries(n.getAttributes());return s.src||s.uploadId?o.change((t=>{const{setImageSizes:r=!0}=e,a=Array.from(o.markers).filter((e=>e.getRange().containsItem(n))),l=i.insertImage(s,o.createSelection(n,"on"),this._modelElementName,{setImageSizes:r});if(!l)return null;const c=t.createRangeOn(l);for(const e of a){const o=e.getRange(),i="$graveyard"!=o.root.rootName?o.getJoined(c,!0):c;t.updateMarker(e,{range:i})}return{oldElement:n,newElement:l}})):null}}class db extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,o=e.plugins.get("ImageUtils");t.for("editingDowncast").add((e=>{e.on("attribute:placeholder",((e,t,i)=>{if(!i.consumable.test(t.item,e.name))return;if(!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;i.consumable.consume(t.item,e.name);const n=i.writer,s=i.mapper.toViewElement(t.item),r=o.findViewImgElement(s);t.attributeNewValue?(n.addClass("image_placeholder",r),n.setStyle("background-image",`url(${t.attributeNewValue})`,r),n.setCustomProperty("editingPipeline:doNotReuseOnce",!0,r)):(n.removeClass("image_placeholder",r),n.removeStyle("background-image",r))}))}))}_setupLoadListener(){const e=this.editor,t=e.model,o=e.editing,i=o.view,n=e.plugins.get("ImageUtils");i.addObserver(nb),this.listenTo(i.document,"imageLoaded",((e,s)=>{const r=i.domConverter.mapDomToView(s.target);if(!r)return;const a=n.getImageWidgetFromImageView(r);if(!a)return;const l=o.mapper.toModelElement(a);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},(e=>{e.removeAttribute("placeholder",l)}))}))}}class ub extends fc{static get requires(){return[ab,lb,Gf,db,bf]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new cb(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,i=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>$f(t)}),o.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:o})=>i.toImageWidget($f(o),o,t("image widget"))}),o.for("downcast").add(ib(i,"imageBlock","src")).add(ib(i,"imageBlock","alt")).add(ob(i,"imageBlock")),o.for("upcast").elementToElement({view:qf(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(function(e){const t=(t,o,i)=>{if(!i.consumable.test(o.viewItem,{name:!0,classes:"image"}))return;const n=e.findViewImgElement(o.viewItem);if(!n||!i.consumable.test(n,{name:!0}))return;i.consumable.consume(o.viewItem,{name:!0,classes:"image"});const s=to(i.convertItem(n,o.modelCursor).modelRange.getItems());s?(i.convertChildren(o.viewItem,s),i.updateConversionResult(s,o)):i.consumable.revert(o.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}(i))}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",((n,s)=>{const r=Array.from(s.content.getChildren());let a;if(!r.every(i.isInlineImageView))return;a=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageBlock"===Hf(t.schema,l)){const e=new rl(o.document),t=r.map((t=>e.createElement("figure",{class:"image"},t)));s.content=e.createDocumentFragment(t)}})),this.listenTo(n,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageBlock")&&i.setImageNaturalSizeAttributes(e)}))}))}}class hb extends Au{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this._focusables=new tu,this.children=this.createCollection(),this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const e of t)this.children.add(e),this._focusables.add(e),e instanceof kh&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),Ou({view:this});for(const e of this._focusables)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class mb extends fc{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",(()=>{this.isImageSelected=o.isImage(t.getSelectedElement())}));const i=e=>this._createToolbarComponent(e);e.ui.componentFactory.add("insertImage",i),e.ui.componentFactory.add("imageInsert",i),e.ui.componentFactory.add("menuBar:insertImage",(e=>this._createMenuBarComponent(e)))}registerIntegration({name:e,observable:t,buttonViewCreator:o,formViewCreator:i,menuBarButtonViewCreator:n,requiresForm:s=!1,override:r=!1}){this._integrations.has(e)&&!r&&be("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:o,menuBarButtonViewCreator:n,formViewCreator:i,requiresForm:s})}_createToolbarComponent(e){const t=this.editor,o=e.t,i=this._prepareIntegrations();if(!i.length)return null;let n;const s=i[0];if(1==i.length){if(!s.requiresForm)return s.buttonViewCreator(!0);n=s.buttonViewCreator(!0)}else{const t=s.buttonViewCreator(!1);n=new Jh(e,t),n.tooltip=!0,n.bind("label").to(this,"isImageSelected",(e=>o(e?"Replace image":"Insert image")))}const r=this.dropdownView=Zh(e,n),a=i.map((({observable:e})=>"function"==typeof e?e():e));return r.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),r.once("change:isOpen",(()=>{const e=i.flatMap((({formViewCreator:e})=>e(1==i.length))),o=new hb(t.locale,e);r.panelView.children.add(o)})),r}_createMenuBarComponent(e){const t=e.t,o=this._prepareIntegrations();if(!o.length)return null;const i=o.flatMap((({menuBarButtonViewCreator:e})=>e(1==o.length))),n=new og(e),s=new ig(e);n.panelView.children.add(s),n.buttonView.set({icon:'',label:t("Image")});for(const t of i){const o=new Em(e,n);o.children.add(t),s.items.add(o),t.delegate("execute").to(n)}return n}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return be("image-insert-integrations-not-specified"),t;for(const o of e)this._integrations.has(o)?t.push(this._integrations.get(o)):["upload","assetManager","url"].includes(o)||be("image-insert-unknown-integration",{item:o});return t.length||be("image-insert-integrations-not-registered"),t}}class gb extends fc{static get requires(){return[ub,vp,tb,mb]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class pb extends fc{static get requires(){return[ab,lb,Gf,db,bf]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new cb(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,i=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToElement({model:"imageInline",view:(e,{writer:t})=>t.createEmptyElement("img")}),o.for("editingDowncast").elementToStructure({model:"imageInline",view:(e,{writer:o})=>i.toImageWidget(function(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}(o),o,t("image widget"))}),o.for("downcast").add(ib(i,"imageInline","src")).add(ib(i,"imageInline","alt")).add(ob(i,"imageInline")),o.for("upcast").elementToElement({view:qf(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",((n,s)=>{const r=Array.from(s.content.getChildren());let a;if(!r.every(i.isBlockImageView))return;a=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageInline"===Hf(t.schema,l)){const e=new rl(o.document),t=r.map((t=>1===t.childCount?(Array.from(t.getAttributes()).forEach((o=>e.setAttribute(...o,i.findViewImgElement(t)))),t.getChild(0)):t));s.content=e.createDocumentFragment(t)}})),this.listenTo(n,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageInline")&&i.setImageNaturalSizeAttributes(e)}))}))}}class fb extends fc{static get requires(){return[pb,vp,tb,mb]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class bb extends fc{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),o=e.getFirstPosition().findAncestor("caption");return o&&t.isBlockImage(o.parent)?o:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class wb extends wc{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),o=e.plugins.get("ImageUtils");if(!e.plugins.has(ub))return this.isEnabled=!1,void(this.value=!1);const i=e.model.document.selection,n=i.getSelectedElement();if(!n){const e=t.getCaptionFromModelSelection(i);return this.isEnabled=!!e,void(this.value=!!e)}this.isEnabled=o.isImage(n),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(n):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change((e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)}))}_showImageCaption(e,t){const o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageCaptionEditing"),n=this.editor.plugins.get("ImageUtils");let s=o.getSelectedElement();const r=i._getSavedCaption(s);n.isInlineImage(s)&&(this.editor.execute("imageTypeBlock"),s=o.getSelectedElement());const a=r||e.createElement("caption");e.append(a,s),t&&e.setSelection(a,"in")}_hideImageCaption(e){const t=this.editor,o=t.model.document.selection,i=t.plugins.get("ImageCaptionEditing"),n=t.plugins.get("ImageCaptionUtils");let s,r=o.getSelectedElement();r?s=n.getCaptionFromImageModelElement(r):(s=n.getCaptionFromModelSelection(o),r=s.parent),i._saveCaption(r,s),e.setSelection(r,"on"),e.remove(s)}}class yb extends fc{static get requires(){return[Gf,bb]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new wb(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),n=e.t;e.conversion.for("upcast").elementToElement({view:e=>i.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer:t})=>o.isBlockImage(e.parent)?t.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(e,{writer:i})=>{if(!o.isBlockImage(e.parent))return null;const s=i.createEditableElement("figcaption");i.setCustomProperty("imageCaption",!0,s),s.placeholder=n("Enter image caption"),Yo({view:t,element:s,keepOnFocus:!0});const r=e.parent.getAttribute("alt");return lp(s,i,{label:r?n("Caption for image: %0",[r]):n("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.plugins.get("ImageCaptionUtils"),i=e.commands.get("imageTypeInline"),n=e.commands.get("imageTypeBlock"),s=e=>{if(!e.return)return;const{oldElement:i,newElement:n}=e.return;if(!i)return;if(t.isBlockImage(i)){const e=o.getCaptionFromImageModelElement(i);if(e)return void this._saveCaption(n,e)}const s=this._getSavedCaption(i);s&&this._saveCaption(n,s)};i&&this.listenTo(i,"execute",s,{priority:"low"}),n&&this.listenTo(n,"execute",s,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?Ms.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,o=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",(()=>{const n=t.document.differ.getChanges();for(const t of n){if("alt"!==t.attributeKey)continue;const n=t.range.start.nodeAfter;if(o.isBlockImage(n)){const t=i.getCaptionFromImageModelElement(n);if(!t)return;e.editing.reconvertItem(t)}}}))}}class _b extends fc{static get requires(){return[bb]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageCaptionUtils"),i=e.t;e.ui.componentFactory.add("toggleImageCaption",(n=>{const s=e.commands.get("toggleImageCaption"),r=new Lu(n);return r.set({icon:'',tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(s,"value","isEnabled"),r.bind("label").to(s,"value",(e=>i(e?"Toggle caption off":"Toggle caption on"))),this.listenTo(r,"execute",(()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const i=o.getCaptionFromModelSelection(e.model.document.selection);if(i){const o=e.editing.mapper.toViewElement(i);t.scrollToTheSelection(),t.change((e=>{e.addClass("image__caption_highlighted",o)}))}e.editing.view.focus()})),r}))}}function kb(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function vb(e){return new Promise(((t,o)=>{const i=e.getAttribute("src");fetch(i).then((e=>e.blob())).then((e=>{const o=Cb(e,i),n=o.replace("image/",""),s=new File([e],`image.${n}`,{type:o});t(s)})).catch((e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise(((t,o)=>{const i=J.document.createElement("img");i.addEventListener("load",(()=>{const e=J.document.createElement("canvas");e.width=i.width,e.height=i.height;e.getContext("2d").drawImage(i,0,0),e.toBlob((e=>e?t(e):o()))})),i.addEventListener("error",(()=>o())),i.src=e}))}(e).then((t=>{const o=Cb(t,e),i=o.replace("image/","");return new File([t],`image.${i}`,{type:o})}))}(i).then(t).catch(o):o(e)))}))}function Cb(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Ab extends fc{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",(()=>this._createToolbarButton())),e.ui.componentFactory.add("imageUpload",(()=>this._createToolbarButton())),e.ui.componentFactory.add("menuBar:uploadImage",(()=>this._createMenuBarButton("standalone"))),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("uploadImage"),n=t.config.get("image.upload.types"),s=kb(n),r=new e(t.locale),a=o.t;return r.set({acceptedType:n.map((e=>`image/${e}`)).join(","),allowMultipleFiles:!0,label:a("Upload from computer"),icon:''}),r.bind("isEnabled").to(i),r.on("done",((e,o)=>{const i=Array.from(o).filter((e=>s.test(e.type)));i.length&&(t.execute("uploadImage",{file:i}),t.editing.view.focus())})),r}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this.editor.commands.get("uploadImage"),i=this._createButton(bh);return i.tooltip=!0,i.bind("label").to(t,"isImageSelected",o,"isAccessAllowed",((t,o)=>e(o?t?"Replace image from computer":"Upload image from computer":"You have no image upload permissions."))),i}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this._createButton(bh);return o.withText=!0,o.bind("label").to(t,"isImageSelected",(t=>e(t?"Replace from computer":"Upload from computer"))),o.on("execute",(()=>{t.dropdownView.isOpen=!1})),o}_createMenuBarButton(e){const t=this.editor.locale.t,o=this._createButton(sg);switch(o.withText=!0,e){case"standalone":o.label=t("Image from computer");break;case"insertOnly":o.label=t("Image");break;case"insertNested":o.label=t("From computer")}return o}}class xb extends fc{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,o)=>{const i=this.editor,n=t.item,s=n.getAttribute("uploadId");if(!o.consumable.consume(t.item,e.name))return;const r=i.plugins.get("ImageUtils"),a=i.plugins.get(Qp),l=s?t.attributeNewValue:null,c=this.placeholder,d=i.editing.mapper.toViewElement(n),u=o.writer;if("reading"==l)return Eb(d,u),void Tb(r,c,d,u);if("uploading"==l){const e=a.loaders.get(s);return Eb(d,u),void(e?(Pb(d,u),function(e,t,o,i){const n=function(e){const t=e.createUIElement("div",{class:"ck-progress-bar"});return e.setCustomProperty("progressBar",!0,t),t}(t);t.insert(t.createPositionAt(e,"end"),n),o.on("change:uploadedPercent",((e,t,o)=>{i.change((e=>{e.setStyle("width",o+"%",n)}))}))}(d,u,e,i.editing.view),function(e,t,o,i){if(i.data){const n=e.findViewImgElement(t);o.setAttribute("src",i.data,n)}}(r,d,u,e)):Tb(r,c,d,u))}"complete"==l&&a.loaders.get(s)&&function(e,t,o){const i=t.createUIElement("div",{class:"ck-image-upload-complete-icon"});t.insert(t.createPositionAt(e,"end"),i),setTimeout((()=>{o.change((e=>e.remove(e.createRangeOn(i))))}),3e3)}(d,u,i.editing.view),function(e,t){Ib(e,t,"progressBar")}(d,u),Pb(d,u),function(e,t){t.removeClass("ck-appear",e)}(d,u)}}function Eb(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function Tb(e,t,o,i){o.hasClass("ck-image-upload-placeholder")||i.addClass("ck-image-upload-placeholder",o);const n=e.findViewImgElement(o);n.getAttribute("src")!==t&&i.setAttribute("src",t,n),Sb(o,"placeholder")||i.insert(i.createPositionAfter(n),function(e){const t=e.createUIElement("div",{class:"ck-upload-placeholder-loader"});return e.setCustomProperty("placeholder",!0,t),t}(i))}function Pb(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),Ib(e,t,"placeholder")}function Sb(e,t){for(const o of e.getChildren())if(o.getCustomProperty(t))return o}function Ib(e,t,o){const i=Sb(e,o);i&&t.remove(t.createRangeOn(i))}class Rb extends wc{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(o)}execute(e){const t=Qt(e.file),o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),n=Object.fromEntries(o.getAttributes());t.forEach(((e,t)=>{const s=o.getSelectedElement();if(t&&s&&i.isImage(s)){const t=this.editor.model.createPositionAfter(s);this._uploadImage(e,n,t)}else this._uploadImage(e,n)}))}_uploadImage(e,t,o){const i=this.editor,n=i.plugins.get(Qp).createLoader(e),s=i.plugins.get("ImageUtils");n&&s.insertImage({...t,uploadId:n.id},o)}}class Ob extends fc{static get requires(){return[Qp,Gm,bf,Gf]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,o=e.conversion,i=e.plugins.get(Qp),n=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline"),r=kb(e.config.get("image.upload.types")),a=new Rb(e);e.commands.add("uploadImage",a),e.commands.add("imageUpload",a),o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add((e=>e.on("element:img",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;const n=t.viewItem.getAttribute("data-ck-upload-id");if(!n)return;const[s]=Array.from(t.modelRange.getItems({shallow:!0})),r=i.loaders.get(n);s&&(o.writer.setAttribute("uploadId",n,s),o.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),r&&r.data&&o.writer.setAttribute("uploadStatus",r.status,s))}),{priority:"low"}))),this.listenTo(e.editing.view.document,"clipboardInput",((t,o)=>{if(i=o.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const n=Array.from(o.dataTransfer.files).filter((e=>!!e&&r.test(e.type)));if(!n.length)return;t.stop(),e.model.change((t=>{o.targetRanges&&t.setSelection(o.targetRanges.map((t=>e.editing.mapper.toModelRange(t)))),e.execute("uploadImage",{file:n})}));if(!e.commands.get("uploadImage").isAccessAllowed){const t=e.plugins.get("Notification"),o=e.locale.t;t.showWarning(o("You have no image upload permissions."),{namespace:"image"})}})),this.listenTo(s,"inputTransformation",((t,o)=>{const s=Array.from(e.editing.view.createRangeIn(o.content)).map((e=>e.item)).filter((e=>function(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src")||!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)&&!t.getAttribute("src").match(/^blob:/g))}(n,e)&&!e.getAttribute("uploadProcessed"))).map((e=>({promise:vb(e),imageElement:e})));if(!s.length)return;const r=new rl(e.editing.view.document);for(const e of s){r.setAttribute("uploadProcessed",!0,e.imageElement);const t=i.createLoader(e.promise);t&&(r.setAttribute("src","",e.imageElement),r.setAttribute("uploadId",t.id,e.imageElement))}})),e.editing.view.document.on("dragover",((e,t)=>{t.preventDefault()})),t.on("change",(()=>{const o=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),n=new Set;for(const t of o)if("insert"==t.type&&"$text"!=t.name){const o=t.position.nodeAfter,s="$graveyard"==t.position.root.rootName;for(const t of Vb(e,o)){const o=t.getAttribute("uploadId"),r=t.getAttribute("uploadStatus");if(!o||"complete"==r)continue;const a=i.loaders.get(o);if(a)if(s){if(!n.has(o)){Array.from(this._uploadImageElements.get(o)).every((e=>"$graveyard"==e.root.rootName))&&a.abort()}}else n.add(o),this._uploadImageElements.has(o)?this._uploadImageElements.get(o).add(t):this._uploadImageElements.set(o,new Set([t])),"idle"==a.status&&this._readAndUpload(a);else!s&&this._uploadedImages.has(o)&&e.model.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(o),imageElement:t})}))}}})),this.on("uploadComplete",((e,{imageElement:t,data:o})=>{const i=o.urls?o.urls:o;this.editor.model.change((e=>{e.setAttribute("src",i.default,t),this._parseAndSetSrcsetAttributeOnImage(i,t,e),n.setImageNaturalSizeAttributes(t)}))}),{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,o=t.model,i=t.locale.t,n=t.plugins.get(Qp),s=t.plugins.get(Gm),r=t.plugins.get("ImageUtils"),a=this._uploadImageElements;return o.enqueueChange({isUndoable:!1},(t=>{const o=a.get(e.id);for(const e of o)t.setAttribute("uploadStatus","reading",e)})),e.read().then((()=>{const n=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Uploading image"));for(const i of a.get(e.id)){if(Y.isSafari){const e=t.editing.mapper.toViewElement(i),o=r.findViewImgElement(e);t.editing.view.once("render",(()=>{if(!o.parent)return;const e=t.editing.view.domConverter.mapViewToDom(o.parent);if(!e)return;const i=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=i}))}o.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",i)}))}return n})).then((n=>{o.enqueueChange({isUndoable:!1},(o=>{for(const t of a.get(e.id))o.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:n,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Image upload complete")),this._uploadedImages.set(e.id,n)})),l()})).catch((n=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw n;"error"==e.status&&n&&s.showWarning(n,{title:i("Upload failed"),namespace:"upload"}),o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))"$graveyard"!==o.root.rootName&&t.remove(o)})),l()}));function l(){o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))t.removeAttribute("uploadId",o),t.removeAttribute("uploadStatus",o);a.delete(e.id)})),n.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,o){let i=0;const n=Object.keys(e).filter((e=>{const t=parseInt(e,10);if(!isNaN(t))return i=Math.max(i,t),!0})).map((t=>`${e[t]} ${t}w`)).join(", ");if(""!=n){const e={srcset:n};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=i),o.setAttributes(e,t)}}_registerConverters(e){const{conversion:t,plugins:o}=this.editor,i=o.get(Qp),n=o.get(Gf);t.for("dataDowncast").add((t=>{t.on(`attribute:uploadId:${e}`,((e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const s=i.loaders.get(t.attributeNewValue);if(!s||!s.data)return null;const r=o.mapper.toViewElement(t.item),a=n.findViewImgElement(r);a&&(o.consumable.consume(t.item,e.name),o.writer.setAttribute("data-ck-upload-id",s.id,a))}))}))}}function Vb(e,t){const o=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter((e=>o.isImage(e.item))).map((e=>e.item))}class Db extends fc{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[Ob,Ab,xb]}}class Fb extends wc{refresh(){const e=this.editor,t=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);this.isEnabled=!!t,t&&t.hasAttribute("resizedWidth")?this.value={width:t.getAttribute("resizedWidth"),height:null}:this.value=null}execute(e){const t=this.editor,o=t.model,i=t.plugins.get("ImageUtils"),n=i.getClosestSelectedImageElement(o.document.selection);this.value={width:e.width,height:null},n&&o.change((t=>{t.setAttribute("resizedWidth",e.width,n),t.removeAttribute("resizedHeight",n),i.setImageNaturalSizeAttributes(n)}))}}class Mb extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageResizeEditing"}static get licenseFeatureCode(){return"IR"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new Fb(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0})),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0}))}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils");t.conversion.for("downcast").add((t=>t.on(`attribute:resizedWidth:${e}`,((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewElement(t.item);null!==t.attributeNewValue?(i.setStyle("width",t.attributeNewValue,n),i.addClass("image_resized",n)):(i.removeStyle("width",n),i.removeClass("image_resized",n))})))),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:e=>({key:"style",value:{height:e}})}),t.conversion.for("editingDowncast").add((t=>t.on(`attribute:resizedHeight:${e}`,((t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const s=n.writer,r=n.mapper.toViewElement(i.item),a="imageInline"===e?o.findViewImgElement(r):r;null!==i.attributeNewValue?s.setStyle("height",i.attributeNewValue,a):s.removeStyle("height",a)})))),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>Uf(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>Uf(e)?null:e.getStyle("height")}}),t.conversion.for("upcast").add((t=>{t.on("element:"+("imageBlock"===e?"figure":"img"),((e,t,o)=>{o.consumable.consume(t.viewItem,{classes:["image_resized"]})}))}))}}const Nb=(()=>({small:'',medium:'',large:'',custom:'',original:''}))();class Bb extends fc{static get requires(){return[Mb]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),o=e.commands.get("resizeImage");this.bind("isEnabled").to(o);for(const e of t)this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:o,value:i,icon:n}=e;t.ui.componentFactory.add(o,(o=>{const s=new Lu(o),r=t.commands.get("resizeImage"),a=this._getOptionLabelValue(e,!0);if(!Nb[n])throw new fe("imageresizebuttons-missing-icon",t,e);if(s.set({label:a,icon:Nb[n],tooltip:a,isToggleable:!0}),s.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&Lb(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(s,"execute",(()=>{e._showForm(this._resizeUnit)}))}else{const e=i?i+this._resizeUnit:null;s.bind("isOn").to(r,"value",r,"isEnabled",zb(e)),this.listenTo(s,"execute",(()=>{t.execute("resizeImage",{width:e})}))}return s}))}_registerImageResizeDropdown(e){const t=this.editor,o=t.t,i=e.find((e=>!e.value)),n=n=>{const s=t.commands.get("resizeImage"),r=Zh(n,Mh),a=r.buttonView,l=o("Resize image");return a.set({tooltip:l,commandValue:i.value,icon:Nb.medium,isToggleable:!0,label:this._getOptionLabelValue(i),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),a.bind("label").to(s,"value",(e=>e&&e.width?e.width:this._getOptionLabelValue(i))),r.bind("isEnabled").to(this),Xh(r,(()=>this._getResizeDropdownListItemDefinitions(e,s)),{ariaLabel:o("Image resize list"),role:"menu"}),this.listenTo(r,"execute",(e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())})),r};t.ui.componentFactory.add("resizeImage",n),t.ui.componentFactory.add("imageResize",n)}_getOptionLabelValue(e,t=!1){const o=this.editor.t;return e.label?e.label:t?Lb(e)?o("Custom image size"):e.value?o("Resize image to %0",e.value+this._resizeUnit):o("Resize image to the original size"):Lb(e)?o("Custom"):e.value?e.value+this._resizeUnit:o("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:o}=this,i=new eo,n=e.map((e=>Lb(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null}));for(const e of n){let s=null;if(o.plugins.has("ImageCustomResizeUI")&&Lb(e)){const i=o.plugins.get("ImageCustomResizeUI");s={type:"button",model:new Jm({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{i._showForm(this._resizeUnit)}})};const r=Object.values(n).map((e=>e.valueWithUnits));s.model.bind("isOn").to(t,"value",t,"isEnabled",jb(r))}else s={type:"button",model:new Jm({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},s.model.bind("isOn").to(t,"value",t,"isEnabled",zb(e.valueWithUnits));s.model.bind("isEnabled").to(t,"isEnabled"),i.add(s)}return i}}function Lb(e){return"custom"===e.value}function zb(e){return(t,o)=>!(void 0===t||!o)&&(null===e&&t===e||null!==t&&t.width===e)}function jb(e){return(t,o)=>!e.some((e=>zb(e)(t,o)))}const $b="image_resized";class qb extends fc{static get requires(){return[Rp,Gf]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils");t.addObserver(nb),this.listenTo(t.document,"imageLoaded",((i,n)=>{if(!n.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const s=e.editing.view.domConverter,r=s.domToView(n.target),a=o.getImageWidgetFromImageView(r);let l=this.editor.plugins.get(Rp).getResizerByViewElement(a);if(l)return void l.redraw();const c=e.editing.mapper,d=c.toModelElement(a);l=e.plugins.get(Rp).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>s.mapViewToDom(c.toViewElement(d)),isCentered:()=>"alignCenter"==d.getAttribute("imageStyle"),onCommit(o){t.change((e=>{e.removeClass($b,a)})),e.execute("resizeImage",{width:o})}}),l.on("updateSize",(()=>{a.hasClass($b)||t.change((e=>{e.addClass($b,a)}));const e="imageInline"===d.name?r:a;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),l.bind("isEnabled").to(this)}))}}function Hb(e){if(!e)return null;const[,t,o]=e.trim().match(/([.,\d]+)(%|px)$/)||[],i=Number.parseFloat(t);return Number.isNaN(i)?null:{value:i,unit:o}}function Wb(e,t,o){return"px"===o?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function Ub(e){const{editing:t}=e,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!o)return null;const i=t.mapper.toViewElement(o);return{model:o,view:i,dom:t.view.domConverter.mapViewToDom(i)}}class Kb extends Au{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,o){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new Km(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new tu,this._validators=o,this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new Sh(this.locale,sm);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(null===e)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}class Gb extends fc{_balloon;_form;static get requires(){return[Qm]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Iu(Kb))(t.locale,e,function(e){const t=e.t;return[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0]}(t)),this._form.render(),this.listenTo(this._form,"submit",(()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))})),this.listenTo(this._form.labeledInput,"change:errorText",(()=>{t.ui.update()})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),Su({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,o=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:Xf(t)});const i=function(e,t){const o=Ub(e);if(!o)return null;const i=Hb(o.model.getAttribute("resizedWidth")||null);return i?i.unit===t?i:Wb(up(o.dom),{value:new ut(o.dom).width},t):null}(t,e),n=i?i.value.toFixed(1):"",s=function(e,t){const o=Ub(e);if(!o)return null;const i=up(o.dom),n=Hb(window.getComputedStyle(o.dom).minWidth)||{value:1};return{unit:t,lower:Math.max(.1,Wb(i,n,t).value),upper:"px"===t?i:100}}(t,e);o.fieldView.value=o.fieldView.element.value=n,s&&Object.assign(o.fieldView,{min:s.lower.toFixed(1),max:Math.ceil(s.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class Jb extends wc{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map((e=>{if(e.isDefault)for(const t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]})))}refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled?e.hasAttribute("imageStyle")?this.value=e.getAttribute("imageStyle"):this.value=this._defaultStyles[e.name]:this.value=!1}execute(e={}){const t=this.editor,o=t.model,i=t.plugins.get("ImageUtils");o.change((t=>{const n=e.value,{setImageSizes:s=!0}=e;let r=i.getClosestSelectedImageElement(o.document.selection);n&&this.shouldConvertImageType(n,r)&&(this.editor.execute(i.isBlockImage(r)?"imageTypeInline":"imageTypeBlock",{setImageSizes:s}),r=i.getClosestSelectedImageElement(o.document.selection)),!n||this._styles.get(n).isDefault?t.removeAttribute("imageStyle",r):t.setAttribute("imageStyle",n,r),s&&i.setImageNaturalSizeAttributes(r)}))}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const Zb={get inline(){return{name:"inline",title:"In line",icon:Qc,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Jc,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Yc,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Gc,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Zc,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Xc,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Gc,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Zc,modelElements:["imageBlock"],className:"image-style-side"}}},Qb=(()=>({full:'',left:Yc,right:Xc,center:Gc,inlineLeft:Jc,inlineRight:Zc,inline:Qc}))(),Yb=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Xb(e){be("image-style-configuration-definition-invalid",e)}const ew={normalizeStyles:function(e){const t=(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?Zb[e]?{...Zb[e]}:{name:e}:function(e,t){const o={...t};for(const i in e)Object.prototype.hasOwnProperty.call(t,i)||(o[i]=e[i]);return o}(Zb[e.name],e);"string"==typeof e.icon&&(e.icon=Qb[e.icon]||e.icon);return e}(e))).filter((t=>function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:o}){const{modelElements:i,name:n}=e;if(!(i&&i.length&&n))return Xb({style:e}),!1;{const n=[t?"imageBlock":null,o?"imageInline":null];if(!i.some((e=>n.includes(e))))return be("image-style-missing-dependency",{style:e,missingPlugins:i.map((e=>"imageBlock"===e?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(t,e)));return t},getDefaultStylesConfiguration:function(e,t){return e&&t?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:e?{options:["block","side"]}:t?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(e){return e.has("ImageBlockEditing")&&e.has("ImageInlineEditing")?[...Yb]:[]},warnInvalidStyle:Xb};function tw(e){const t={imageInline:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageInline"))),imageBlock:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageBlock")))};return(o,i,n)=>{if(!i.modelRange)return;const s=i.viewItem,r=to(i.modelRange.getItems());if(r&&n.schema.checkAttribute(r,"imageStyle")){for(const e of t[r.name])n.consumable.consume(s,{classes:e.className})&&n.writer.setAttribute("imageStyle",e.name,r);!function(e,t,o,i){if(!e.consumable.test(t,{styles:["float"]}))return;let n=null;switch(t.getStyle("float")){case"left":n="alignLeft";break;case"right":n="alignRight"}if(!n)return;const s=ow(n,i);if(!s)return;const r=Zb[s.name];if(!Ko(s,r))return;e.writer.setAttribute("imageStyle",n,o),e.consumable.consume(t,{styles:["float"]})}(n,s,r,e)}}}function ow(e,t){for(const o of t)if(o.name===e)return o}class iw extends fc{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}normalizedStyles;init(){const e=this.editor,t=e.plugins.has("ImageBlockEditing"),o=e.plugins.has("ImageInlineEditing");e.config.define("image.styles",ew.getDefaultStylesConfiguration(t,o)),this.normalizedStyles=ew.normalizeStyles({configuredStyles:e.config.get("image.styles"),isBlockPluginLoaded:t,isInlinePluginLoaded:o}),this._setupConversion(t,o),this._setupPostFixer(),e.commands.add("imageStyle",new Jb(e,this.normalizedStyles))}_setupConversion(e,t){const o=this.editor,i=o.model.schema,n=(s=this.normalizedStyles,(e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=ow(t.attributeNewValue,s),n=ow(t.attributeOldValue,s),r=o.mapper.toViewElement(t.item),a=o.writer;n&&a.removeClass(n.className,r),i&&a.addClass(i.className,r)});var s;const r=tw(this.normalizedStyles);o.editing.downcastDispatcher.on("attribute:imageStyle",n),o.data.downcastDispatcher.on("attribute:imageStyle",n),e&&(i.extend("imageBlock",{allowAttributes:"imageStyle"}),i.setAttributeProperties("imageStyle",{isFormatting:!0}),o.data.upcastDispatcher.on("element:figure",r,{priority:"low"})),t&&(i.extend("imageInline",{allowAttributes:"imageStyle"}),i.setAttributeProperties("imageStyle",{isFormatting:!0}),o.data.upcastDispatcher.on("element:img",r,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,o=e.plugins.get(Gf),i=new Map(this.normalizedStyles.map((e=>[e.name,e])));t.registerPostFixer((e=>{let n=!1;for(const s of t.differ.getChanges())if("insert"==s.type||"attribute"==s.type&&"imageStyle"==s.attributeKey){let t="insert"==s.type?s.position.nodeAfter:s.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!o.isImage(t))continue;const r=t.getAttribute("imageStyle");if(!r)continue;const a=i.get(r);a&&a.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),n=!0)}return n}))}}class nw extends fc{static get requires(){return[iw]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],o=sw(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of o)this._createButton(e);const i=sw([...t.filter(s),...ew.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const e of i)this._createDropdown(e,o)}_createDropdown(e,t){const o=this.editor.ui.componentFactory;o.add(e.name,(i=>{let n;const{defaultItem:s,items:r,title:a}=e,l=r.filter((e=>t.find((({name:t})=>rw(t)===e)))).map((e=>{const t=o.create(e);return e===s&&(n=t),t}));r.length!==l.length&&ew.warnInvalidStyle({dropdown:e});const c=Zh(i,Jh),d=c.buttonView,u=d.arrowView;return Qh(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:aw(a,n.label),class:null,tooltip:!0}),u.unbind("label"),u.set({label:a}),d.bind("icon").toMany(l,"isOn",((...e)=>{const t=e.findIndex(jf);return t<0?n.icon:l[t].icon})),d.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(jf);return aw(a,t<0?n.label:l[t].label)})),d.bind("isOn").toMany(l,"isOn",((...e)=>e.some(jf))),d.bind("class").toMany(l,"isOn",((...e)=>e.some(jf)?"ck-splitbutton_flatten":void 0)),d.on("execute",(()=>{l.some((({isOn:e})=>e))?c.isOpen=!c.isOpen:n.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...e)=>e.some(jf))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(rw(t),(o=>{const i=this.editor.commands.get("imageStyle"),n=new Lu(o);return n.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>e===t)),n.on("execute",this._executeCommand.bind(this,t)),n}))}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function sw(e,t){for(const o of e)t[o.title]&&(o.title=t[o.title]);return e}function rw(e){return`imageStyle:${e}`}function aw(e,t){return(e?e+": ":"")+t}function lw(e){return e.map((e=>s(e)?e.name:e))}const cw=Symbol("isWpButtonMacroSymbol");function dw(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(cw)&&ip(e)}(t))}class uw extends fc{static get pluginName(){return"OPChildPagesEditing"}static get buttonName(){return"insertChildPages"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-child-pages",{allowWhere:["$block"],allowAttributes:["page"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"child_pages"},model:(e,{writer:t})=>{const o=e.getAttribute("data-page")||"",i="true"==e.getAttribute("data-include-parent");return t.createElement("op-macro-child-pages",{page:o,includeParent:i})}}),o.for("editingDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}).add((e=>e.on("attribute:page",this.modelAttributeToView.bind(this)))).add((e=>e.on("attribute:includeParent",this.modelAttributeToView.bind(this)))),o.for("dataDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"child_pages","data-page":e.getAttribute("page")||"","data-include-parent":e.getAttribute("includeParent")||""})}),e.ui.componentFactory.add(uw.buttonName,(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.child_pages.button"),withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-child-pages",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}modelAttributeToView(e,t,o){const i=t.item;if(!i.is("element","op-macro-child-pages"))return;o.consumable.consume(t.item,e.name);const n=o.mapper.toViewElement(i);o.writer.remove(o.writer.createRangeIn(n)),this.setPlaceholderContent(o.writer,i,n)}macroLabel(){return window.I18n.t("js.editor.macro.child_pages.text")}pageLabel(e){return e&&e.length>0?e:window.I18n.t("js.editor.macro.child_pages.this_page")}includeParentText(e){return e?` (${window.I18n.t("js.editor.macro.child_pages.include_parent")})`:""}createMacroViewElement(e,t){const o=t.createContainerElement("div");return this.setPlaceholderContent(t,e,o),function(e,t,o){return t.setCustomProperty(cw,!0,e),np(e,t,{label:o})}(o,t,{label:this.macroLabel()})}setPlaceholderContent(e,t,o){const i=t.getAttribute("page"),n=t.getAttribute("includeParent"),s=this.macroLabel(),r=this.pageLabel(i),a=e.createContainerElement("span",{class:"macro-value"});let l=[e.createText(`${s} `)];e.insert(e.createPositionAt(a,0),e.createText(`${r}`)),l.push(a),l.push(e.createText(this.includeParentText(n))),e.insert(e.createPositionAt(o,0),l)}}class hw extends fc{static get requires(){return[Qm]}static get pluginName(){return"OPChildPagesToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditChildPagesMacroButton",(e=>{const i=o.services.macros,n=e.getAttribute("page"),s=e.getAttribute("includeParent"),r=n&&n.length>0?n:"";i.configureChildPages(r,s).then((o=>t.change((t=>{t.setAttribute("page",o.page,e),t.setAttribute("includeParent",o.includeParent,e)}))))}))}afterInit(){qp(this,this.editor,"OPChildPages",dw)}}class mw extends wc{constructor(e){super(e),this.affectsData=!1}execute(){const e=this.editor.model,t=e.document.selection;let o=e.schema.getLimitElement(t);if(t.containsEntireContent(o)||!gw(e.schema,o))do{if(o=o.parent,!o)return}while(!gw(e.schema,o));e.change((e=>{e.setSelection(o,"in")}))}}function gw(e,t){return e.isLimit(t)&&(e.checkChild(t,"$text")||e.checkChild(t,"paragraph"))}const pw=Wt("Ctrl+A");class fw extends fc{static get pluginName(){return"SelectAllEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=e.editing.view.document;e.commands.add("selectAll",new mw(e)),this.listenTo(o,"keydown",((t,o)=>{Ht(o)===pw&&(e.execute("selectAll"),o.preventDefault())})),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class bw extends fc{static get pluginName(){return"SelectAllUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(sh)))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("selectAll"),n=new e(t.locale),s=o.t;return n.set({label:s("Select all"),icon:'',keystroke:"Ctrl+A"}),n.bind("isEnabled").to(i,"isEnabled"),this.listenTo(n,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),n}}class ww extends fc{static get requires(){return[fw,bw]}static get pluginName(){return"SelectAll"}static get isOfficialPlugin(){return!0}}const yw="ckCsrfToken",_w="abcdefghijklmnopqrstuvwxyz0123456789";function kw(){let e=function(e){e=e.toLowerCase();const t=document.cookie.split(";");for(const o of t){const t=o.split("=");if(decodeURIComponent(t[0].trim().toLowerCase())===e)return decodeURIComponent(t[1])}return null}(yw);var t,o;return e&&40==e.length||(e=function(e){let t="";const o=new Uint8Array(e);window.crypto.getRandomValues(o);for(let e=0;e.5?i.toUpperCase():i}return t}(40),t=yw,o=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(o)+";path=/"),e}class vw{loader;url;t;xhr;constructor(e,t,o){this.loader=e,this.url=t,this.t=o}upload(){return this.loader.file.then((e=>new Promise(((t,o)=>{this._initRequest(),this._initListeners(t,o,e),this._sendRequest(e)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open("POST",this.url,!0),e.responseType="json"}_initListeners(e,t,o){const i=this.xhr,n=this.loader,s=(0,this.t)("Cannot upload file:")+` ${o.name}.`;i.addEventListener("error",(()=>t(s))),i.addEventListener("abort",(()=>t())),i.addEventListener("load",(()=>{const o=i.response;if(!o||!o.uploaded)return t(o&&o.error&&o.error.message?o.error.message:s);e({default:o.url})})),i.upload&&i.upload.addEventListener("progress",(e=>{e.lengthComputable&&(n.uploadTotal=e.total,n.uploaded=e.loaded)}))}_sendRequest(e){const t=new FormData;t.append("upload",e),t.append("ckCsrfToken",kw()),this.xhr.send(t)}}function Cw(e,t,o,i){let n,s=null;"function"==typeof i?n=i:(s=e.commands.get(i),n=()=>{e.execute(i)}),e.model.document.on("change:data",((r,a)=>{if(s&&!s.isEnabled||!t.isEnabled)return;const l=to(e.model.document.selection.getRanges());if(!l.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const c=Array.from(e.model.document.differ.getChanges()),d=c[0];if(1!=c.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const u=d.position.parent;if(u.is("element","codeBlock"))return;if(u.is("element","listItem")&&"function"!=typeof i&&!["numberedList","bulletedList","todoList"].includes(i))return;if(s&&!0===s.value)return;const h=u.getChild(0),m=e.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const g=o.exec(h.data.substr(0,l.end.offset));g&&e.model.enqueueChange((t=>{const o=e.model.document.selection,i=t.createPositionAt(u,0),s=t.createPositionAt(u,g[0].length),r=new Ts(i,s);if(!1!==n({match:g})){const e=Array.from(o.getAttributes());t.remove(r);const i=o.getFirstRange(),n=t.createRangeIn(u);!u.isEmpty||n.isEqual(i)||n.containsRange(i,!0)||t.remove(u),function(e,t,o){const i=e.model.schema,n=t.getFirstPosition();let s=new gr(n);i.checkChild(s,"$text")&&(s=s.push("$text"));for(const[t,n]of o)i.checkAttribute(s,t)&&e.setSelectionAttribute(t,n)}(t,o,e)}r.detach(),e.model.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function Aw(e,t,o,i){let n,s;o instanceof RegExp?n=o:s=o,s=s||(e=>{let t;const o=[],i=[];for(;null!==(t=n.exec(e))&&!(t&&t.length<4);){let{index:e,1:n,2:s,3:r}=t;const a=n+s+r;e+=t[0].length-a.length;const l=[e,e+n.length],c=[e+n.length+s.length,e+n.length+s.length+r.length];o.push(l),o.push(c),i.push([e+n.length,e+n.length+s.length])}return{remove:o,format:i}}),e.model.document.on("change:data",((o,n)=>{if(n.isUndo||!n.isLocal||!t.isEnabled)return;const r=e.model,a=r.document.selection;if(!a.isCollapsed)return;const l=Array.from(r.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const d=a.focus,u=d.parent,{text:h,range:m}=function(e,t){let o=e.start;const i=Array.from(e.getItems()).reduce(((e,i)=>!i.is("$text")&&!i.is("$textProxy")||i.getAttribute("code")?(o=t.createPositionAfter(i),""):e+i.data),"");return{text:i,range:t.createRange(o,e.end)}}(r.createRange(r.createPositionAt(u,0),d),r),g=s(h),p=xw(m.start,g.format,r),f=xw(m.start,g.remove,r);p.length&&f.length&&r.enqueueChange((t=>{if(!1!==i(t,p)){for(const e of f.reverse())t.remove(e);r.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function xw(e,t,o){return t.filter((e=>void 0!==e[0]&&void 0!==e[1])).map((t=>o.createRange(e.getShiftedBy(t[0]),e.getShiftedBy(t[1]))))}function Ew(e,t){return(o,i)=>{if(!e.commands.get(t).isEnabled)return!1;const n=e.model.schema.getValidRanges(i,t);for(const e of n)o.setAttribute(t,!0,e);o.removeSelectionAttribute(t)}}class Tw extends wc{attributeKey;constructor(e,t){super(e),this.attributeKey=t}refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,this.attributeKey)}execute(e={}){const t=this.editor.model,o=t.document.selection,i=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(o.isCollapsed)i?e.setSelectionAttribute(this.attributeKey,!0):e.removeSelectionAttribute(this.attributeKey);else{const n=t.schema.getValidRanges(o.getRanges(),this.attributeKey,{includeEmptyRanges:!0});for(const t of n){let o=t,n=this.attributeKey;t.isCollapsed&&(o=t.start.parent,n=Os._getStoreAttributeKey(this.attributeKey)),i?e.setAttribute(n,i,o):e.removeAttribute(n,o)}}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,o=e.document.selection;if(o.isCollapsed)return o.hasAttribute(this.attributeKey);for(const e of o.getRanges())for(const o of e.getItems())if(t.checkAttribute(o,this.attributeKey))return o.hasAttribute(this.attributeKey);return!1}}const Pw="bold";class Sw extends fc{static get pluginName(){return"BoldEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Pw}),e.model.schema.setAttributeProperties(Pw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:Pw,view:"strong",upcastAlso:["b",e=>{const t=e.getStyle("font-weight");return t&&("bold"==t||Number(t)>=600)?{name:!0,styles:["font-weight"]}:null}]}),e.commands.add(Pw,new Tw(e,Pw)),e.keystrokes.set("CTRL+B",Pw),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Bold text"),keystroke:"CTRL+B"}]})}}function Iw({editor:e,commandName:t,plugin:o,icon:i,label:n,keystroke:s}){return r=>{const a=e.commands.get(t),l=new r(e.locale);return l.set({label:n,icon:i,keystroke:s,isToggleable:!0}),l.bind("isEnabled").to(a,"isEnabled"),l.bind("isOn").to(a,"value"),l instanceof sh?l.set({role:"menuitemcheckbox"}):l.set({tooltip:!0}),o.listenTo(l,"execute",(()=>{e.execute(t),e.editing.view.focus()})),l}}const Rw="bold";class Ow extends fc{static get pluginName(){return"BoldUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Rw,plugin:this,icon:$c,label:t("Bold"),keystroke:"CTRL+B"});e.ui.componentFactory.add(Rw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Rw,(()=>o(sh)))}}const Vw="code";class Dw extends fc{static get pluginName(){return"CodeEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Rg]}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Vw}),e.model.schema.setAttributeProperties(Vw,{isFormatting:!0,copyOnEnter:!1}),e.conversion.attributeToElement({model:Vw,view:"code"}),e.commands.add(Vw,new Tw(e,Vw)),e.plugins.get(Rg).registerAttribute(Vw),jg(e,Vw,"code","ck-code_selected"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Move out of an inline code style"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}}const Fw="code";class Mw extends fc{static get pluginName(){return"CodeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Fw,plugin:this,icon:'',label:t("Code")});e.ui.componentFactory.add(Fw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Fw,(()=>o(sh)))}}const Nw="italic";class Bw extends fc{static get pluginName(){return"ItalicEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Nw}),e.model.schema.setAttributeProperties(Nw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:Nw,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),e.commands.add(Nw,new Tw(e,Nw)),e.keystrokes.set("CTRL+I",Nw),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Italic text"),keystroke:"CTRL+I"}]})}}const Lw="italic";class zw extends fc{static get pluginName(){return"ItalicUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Lw,plugin:this,icon:'',keystroke:"CTRL+I",label:t("Italic")});e.ui.componentFactory.add(Lw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Lw,(()=>o(sh)))}}const jw="strikethrough";class $w extends fc{static get pluginName(){return"StrikethroughEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:jw}),e.model.schema.setAttributeProperties(jw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:jw,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),e.commands.add(jw,new Tw(e,jw)),e.keystrokes.set("CTRL+SHIFT+X","strikethrough"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const qw="strikethrough";class Hw extends fc{static get pluginName(){return"StrikethroughUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:qw,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:t("Strikethrough")});e.ui.componentFactory.add(qw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+qw,(()=>o(sh)))}}class Ww extends wc{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.schema,i=t.document.selection,n=Array.from(i.getSelectedBlocks()),s=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(s){const t=n.filter((e=>Uw(e)||Gw(o,e)));this._applyQuote(e,t)}else this._removeQuote(e,n.filter(Uw))}))}_getValue(){const e=to(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!Uw(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.model.document.selection,t=this.editor.model.schema,o=to(e.getSelectedBlocks());return!!o&&Gw(t,o)}_removeQuote(e,t){Kw(e,t).reverse().forEach((t=>{if(t.start.isAtStart&&t.end.isAtEnd)return void e.unwrap(t.start.parent);if(t.start.isAtStart){const o=e.createPositionBefore(t.start.parent);return void e.move(t,o)}t.end.isAtEnd||e.split(t.end);const o=e.createPositionAfter(t.end.parent);e.move(t,o)}))}_applyQuote(e,t){const o=[];Kw(e,t).reverse().forEach((t=>{let i=Uw(t.start);i||(i=e.createElement("blockQuote"),e.wrap(t,i)),o.push(i)})),o.reverse().reduce(((t,o)=>t.nextSibling==o?(e.merge(e.createPositionAfter(t)),t):o))}}function Uw(e){return"blockQuote"==e.parent.name?e.parent:null}function Kw(e,t){let o,i=0;const n=[];for(;i{const i=e.model.document.differ.getChanges();for(const e of i)if("insert"==e.type){const i=e.position.nodeAfter;if(!i)continue;if(i.is("element","blockQuote")&&i.isEmpty)return o.remove(i),!0;if(i.is("element","blockQuote")&&!t.checkChild(e.position,i))return o.unwrap(i),!0;if(i.is("element")){const e=o.createRangeIn(i);for(const i of e.getItems())if(i.is("element","blockQuote")&&!t.checkChild(o.createPositionBefore(i),i))return o.unwrap(i),!0}}else if("remove"==e.type){const t=e.position.parent;if(t.is("element","blockQuote")&&t.isEmpty)return o.remove(t),!0}return!1}));const o=this.editor.editing.view.document,i=e.model.document.selection,n=e.commands.get("blockQuote");this.listenTo(o,"enter",((t,o)=>{if(!i.isCollapsed||!n.value)return;i.getLastPosition().parent.isEmpty&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"}),this.listenTo(o,"delete",((t,o)=>{if("backward"!=o.direction||!i.isCollapsed||!n.value)return;const s=i.getLastPosition().parent;s.isEmpty&&!s.previousSibling&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"})}}class Zw extends fc{static get pluginName(){return"BlockQuoteUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("blockQuote",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:blockQuote",(()=>{const e=this._createButton(sh);return e.set({role:"menuitemcheckbox"}),e}))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("blockQuote"),n=new e(t.locale),s=o.t;return n.set({label:s("Block quote"),icon:'',isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value"),this.listenTo(n,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),n}}class Qw extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=to(e.document.selection.getSelectedBlocks());this.value=!!t&&t.is("element","paragraph"),this.isEnabled=!!t&&Yw(t,e.schema)}execute(e={}){const t=this.editor.model,o=t.document,i=e.selection||o.selection;t.canEditAt(i)&&t.change((e=>{const o=i.getSelectedBlocks();for(const i of o)!i.is("element","paragraph")&&Yw(i,t.schema)&&e.rename(i,"paragraph")}))}}function Yw(e,t){return t.checkChild(e.parent,"paragraph")&&!t.isObject(e)}class Xw extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,o=e.attributes;let i=e.position;return t.canEditAt(i)?t.change((e=>{if(i=this._findPositionToInsertParagraph(i,e),!i)return null;const n=e.createElement("paragraph");return o&&t.schema.setAllowedAttributes(n,o,e),t.insertContent(n,i),e.setSelection(n,"in"),e.createPositionAt(n,0)})):null}_findPositionToInsertParagraph(e,t){const o=this.editor.model;if(o.schema.checkChild(e,"paragraph"))return e;const i=o.schema.findAllowedParent(e,"paragraph");if(!i)return null;const n=e.parent,s=o.schema.checkChild(n,"$text");return n.isEmpty||s&&e.isAtEnd?o.createPositionAfter(n):!n.isEmpty&&s&&e.isAtStart?o.createPositionBefore(n):t.split(e,i).position}}class ey extends fc{static get pluginName(){return"Paragraph"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new Qw(e)),e.commands.add("insertParagraph",new Xw(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(e,{writer:t})=>ey.paragraphLikeElements.has(e.name)?e.isEmpty?null:t.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}static paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"])}class ty extends wc{modelElements;constructor(e,t){super(e),this.modelElements=t}refresh(){const e=to(this.editor.model.document.selection.getSelectedBlocks());this.value=!!e&&this.modelElements.includes(e.name)&&e.name,this.isEnabled=!!e&&this.modelElements.some((t=>oy(e,t,this.editor.model.schema)))}execute(e){const t=this.editor.model,o=t.document,i=e.value;t.change((e=>{const n=Array.from(o.selection.getSelectedBlocks()).filter((e=>oy(e,i,t.schema)));for(const t of n)t.is("element",i)||e.rename(t,i)}))}}function oy(e,t,o){return o.checkChild(e.parent,t)&&!o.isObject(e)}const iy="paragraph";class ny extends fc{static get pluginName(){return"HeadingEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[ey]}init(){const e=this.editor,t=e.config.get("heading.options"),o=[];for(const i of t)"paragraph"!==i.model&&(e.model.schema.register(i.model,{inheritAllFrom:"$block"}),e.conversion.elementToElement(i),o.push(i.model));this._addDefaultH1Conversion(e),e.commands.add("heading",new ty(e,o))}afterInit(){const e=this.editor,t=e.commands.get("enter"),o=e.config.get("heading.options");t&&this.listenTo(t,"afterExecute",((t,i)=>{const n=e.model.document.selection.getFirstPosition().parent;o.some((e=>n.is("element",e.model)))&&!n.is("element",iy)&&0===n.childCount&&i.writer.rename(n,iy)}))}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:ge.low+1})}}function sy(e){const t=e.t,o={Paragraph:t("Paragraph"),"Heading 1":t("Heading 1"),"Heading 2":t("Heading 2"),"Heading 3":t("Heading 3"),"Heading 4":t("Heading 4"),"Heading 5":t("Heading 5"),"Heading 6":t("Heading 6")};return e.config.get("heading.options").map((e=>{const t=o[e.title];return t&&t!=e.title&&(e.title=t),e}))}class ry extends fc{static get pluginName(){return"HeadingUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=sy(e),i=t("Choose heading"),n=t("Heading");e.ui.componentFactory.add("heading",(t=>{const s={},r=new eo,a=e.commands.get("heading"),l=e.commands.get("paragraph"),c=[a];for(const e of o){const t={type:"button",model:new Jm({label:e.title,class:e.class,role:"menuitemradio",withText:!0})};"paragraph"===e.model?(t.model.bind("isOn").to(l,"value"),t.model.set("commandName","paragraph"),c.push(l)):(t.model.bind("isOn").to(a,"value",(t=>t===e.model)),t.model.set({commandName:"heading",commandValue:e.model})),r.add(t),s[e.model]=e.title}const d=Zh(t);return Xh(d,r,{ariaLabel:n,role:"menu"}),d.buttonView.set({ariaLabel:n,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:n}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...e)=>e.some((e=>e)))),d.buttonView.bind("label").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?i:s[o]?s[o]:i})),d.buttonView.bind("ariaLabel").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?n:s[o]?`${s[o]}, ${n}`:n})),this.listenTo(d,"execute",(t=>{const{commandName:o,commandValue:i}=t.source;e.execute(o,i?{value:i}:void 0),e.editing.view.focus()})),d})),e.ui.componentFactory.add("menuBar:heading",(i=>{const n=new og(i),s=e.commands.get("heading"),r=e.commands.get("paragraph"),a=[s],l=new ig(i);n.set({class:"ck-heading-dropdown"}),l.set({ariaLabel:t("Heading"),role:"menu"}),n.buttonView.set({label:t("Heading")}),n.panelView.children.add(l);for(const t of o){const o=new Em(i,n),c=new sh(i);o.children.add(c),l.items.add(o),c.set({isToggleable:!0,label:t.title,role:"menuitemradio",class:t.class}),c.delegate("execute").to(n),c.on("execute",(()=>{const o="paragraph"===t.model?"paragraph":"heading";e.execute(o,{value:t.model}),e.editing.view.focus()})),"paragraph"===t.model?(c.bind("isOn").to(r,"value"),a.push(r)):c.bind("isOn").to(s,"value",(e=>e===t.model))}return n.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),n}))}}new Set(["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"]);class ay{_definitions=new Set;_conflictChecker;get length(){return this._definitions.size}setConflictChecker(e){this._conflictChecker=e}add(e){Array.isArray(e)?e.forEach((e=>this._definitions.add(e))):this._definitions.add(e)}getDispatcher(){return e=>{const t=(e,t)=>{const o=t.createAttributeElement("a",e.attributes,{priority:5});e.classes&&t.addClass(e.classes,o);for(const i in e.styles)t.setStyle(i,e.styles[i],o);return t.setCustomProperty("link",!0,o),o},o=e=>(o,i,n)=>{if(i.attributeKey.startsWith("link")&&("linkHref"!=i.attributeKey||n.consumable.test(i.item,"attribute:linkHref"))&&(i.item.is("selection")||n.schema.isInline(i.item)))for(const o of this._definitions)o.callback(i.item.getAttribute("linkHref"))&&!this._conflictChecker?.(o,i.item)&&e?i.item.is("selection")?n.writer.wrap(n.writer.document.selection.getFirstRange(),t(o,n.writer)):n.writer.wrap(n.mapper.toViewRange(i.range),t(o,n.writer)):n.writer.unwrap(n.mapper.toViewRange(i.range),t(o,n.writer))};e.on("attribute",o(!1),{priority:ge.high-1}),e.on("attribute",o(!0),{priority:ge.high-2})}}getDispatcherForLinkedImage(){return e=>{const t=e=>(t,o,{writer:i,mapper:n})=>{if(!o.item.is("element","imageBlock")||!o.attributeKey.startsWith("link"))return;const s=n.toViewElement(o.item),r=Array.from(s.getChildren()).find((e=>e.is("element","a")));if(r)for(const t of this._definitions){const n=ao(t.attributes);if(t.callback(o.item.getAttribute("linkHref"))&&!this._conflictChecker?.(t,o.item)&&e){for(const[e,t]of n)"class"===e?i.addClass(t,r):i.setAttribute(e,t,!1,r);t.classes&&i.addClass(t.classes,r);for(const e in t.styles)i.setStyle(e,t.styles[e],r)}else{for(const[e,t]of n)"class"===e?i.removeClass(t,r):i.removeAttribute(e,t,r);t.classes&&i.removeClass(t.classes,r);for(const e in t.styles)i.removeStyle(e,r)}}};e.on("attribute",t(!1),{priority:ge.high-1}),e.on("attribute",t(!0),{priority:ge.high-2})}}}const ly=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,cy=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,dy=/^((\w+:(\/{2,})?)|(\W))/i,uy=["https?","ftps?","mailto"],hy="Ctrl+K";function my(e,{writer:t}){const o=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,o),o}function gy(e,t=uy){const o=String(e),i=t.join("|");return function(e,t){const o=e.replace(ly,"");return!!o.match(t)}(o,new RegExp(`${"^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))".replace("",i)}`,"i"))?o:"#"}function py(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function fy(e,t){const o=(i=e,cy.test(i)?"mailto:":t);var i;const n=!!o&&!by(e);return e&&n?o+e:e}function by(e){return dy.test(e)}function wy(e){let t="";for(const o of e.getItems()){if(!o.is("$text")&&!o.is("$textProxy"))return;t+=o.data}return t}function yy(e,t){if(e.attributes&&t.attributes){if(Object.keys(e.attributes).some((e=>!function(e){return"class"===e||"style"===e||"rel"===e}(e)&&e in t.attributes)))return!0}if(e.styles&&t.styles){if(Object.keys(e.styles).some((e=>e in t.styles)))return!0}return!1}function _y(e,t){const o=t.find((t=>t.id===e));return o?t.filter((t=>t.id!==e&&yy(o,t))).map((e=>e.id)):[]}class ky extends wc{manualDecorators=new eo;automaticDecorators=new ay;restoreManualDecoratorStates(){for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement()||to(t.getSelectedBlocks());py(o,e.schema)?(this.value=o.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttribute(o,"linkHref")):(this.value=t.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref"));for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}execute(e,t={},o){const i=this.editor.model,n=i.document.selection,s=function({decoratorStates:e,allDecorators:t}){const o={...e};for(const n in e)if(e[n]&&i(n)){const e=_y(n,t);for(const t of e)o[t]=!1}function i(e){return t.some((t=>t.id===e&&!t.value))}return o}({allDecorators:Array.from(this.manualDecorators),decoratorStates:t}),r=[],a=[];for(const e in s)s[e]?r.push(e):a.push(e);i.change((t=>{const s=o=>{t.setAttribute("linkHref",e,o),r.forEach((e=>t.setAttribute(e,!0,o))),a.forEach((e=>t.removeAttribute(e,o)))},l=(n,r)=>{const a=wy(n);if(!a)return n;let l=o;if(l||(l=r&&r==a?e:a),l!=a){const e=t.createDocumentFragment();for(const o of n.getItems()){const i=o;t.append(t.createText(i.data,i.getAttributes()),e)}const o=t.createRangeIn(e),r=function(e,t){const o=de(e,t),i={equal:0,insert:0,delete:0},n=[];let s="",r="";for(const a of[...o,null])"insert"==a?r+=t[i.equal+i.insert]:"delete"==a?s+=e[i.equal+i.delete]:(s.length||r.length)&&(n.push({offset:i.equal,actual:s,expected:r}),s="",r=""),a&&i[a]++;return n}(a,l);let c=0;for(const{offset:e,actual:n,expected:a}of r){const r=e+c,l=t.createRange(o.start.getShiftedBy(r),o.start.getShiftedBy(r+n.length)),d=vy(l,o).getAttributes(),u=Array.from(d).filter((([e])=>i.schema.getAttributeProperties(e).isFormatting)),h=t.createText(a,u);s(h),t.remove(l),t.insert(h,l.start),c+=a.length}return i.insertContent(e,n),t.createRange(n.start,n.start.getShiftedBy(l.length))}},c=e=>{const{plugins:o}=this.editor;if(t.setSelection(e.end),o.has("TwoStepCaretMovement"))o.get("TwoStepCaretMovement")._handleForwardMovement();else for(const e of["linkHref",...r,...a])t.removeSelectionAttribute(e)};if(n.isCollapsed){const a=n.getFirstPosition();if(n.hasAttribute("linkHref")){const e=n.getAttribute("linkHref"),t=Lg(a,"linkHref",e,i),o=l(t,e);s(o||t),o&&c(o)}else if(""!==e){const s=ao(n.getAttributes());s.set("linkHref",e),r.forEach((e=>{s.set(e,!0)}));c(i.insertContent(t.createText(o||e,s),a))}}else{const e=Array.from(n.getRanges()),o=i.schema.getValidRanges(e,"linkHref"),r=[];for(const e of n.getSelectedBlocks())i.schema.checkAttribute(e,"linkHref")&&r.push(t.createRangeOn(e));const a=r.slice();for(const e of o)this._isRangeToUpdate(e,r)&&a.push(e);const c=e.map((e=>({start:ma.fromPosition(e.start,"toPrevious"),end:ma.fromPosition(e.end,"toNext")})));for(let e of a){e=l(e,(e.start.textNode||e.start.nodeAfter).getAttribute("linkHref"))||e,s(e)}t.setSelection(c.map((e=>{const t=e.start.toPosition(),o=e.end.toPosition();return e.start.detach(),e.end.detach(),i.createRange(t,o)})))}})),this.restoreManualDecoratorStates()}_getDecoratorStateFromModel(e){const t=this.editor.model,o=t.document.selection,i=o.getSelectedElement();return py(i,t.schema)?i.getAttribute(e):o.getAttribute(e)}_isRangeToUpdate(e,t){for(const o of t)if(o.containsRange(e))return!1;return!0}}function vy(e,t){if(!e.isCollapsed)return to(e.getItems());const o=e.start;return o.textNode?o.textNode:!o.nodeBefore||o.isEqual(t.start)?o.nodeAfter:o.nodeBefore}class Cy extends wc{refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement();py(o,e.schema)?this.isEnabled=e.schema.checkAttribute(o,"linkHref"):this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref")}execute(){const e=this.editor,t=this.editor.model,o=t.document.selection,i=e.commands.get("link");t.change((e=>{const n=o.isCollapsed?[Lg(o.getFirstPosition(),"linkHref",o.getAttribute("linkHref"),t)]:t.schema.getValidRanges(o.getRanges(),"linkHref");for(const t of n)if(e.removeAttribute("linkHref",t),i)for(const o of i.manualDecorators)e.removeAttribute(o.id,t)}))}}class Ay extends(Be()){id;defaultValue;label;attributes;classes;styles;constructor({id:e,label:t,attributes:o,classes:i,styles:n,defaultValue:s}){super(),this.id=e,this.set("value",void 0),this.defaultValue=s,this.label=t,this.attributes=o,this.classes=i,this.styles=n}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}const xy="automatic",Ey=/^(https?:)?\/\//;class Ty extends fc{_linkOpeners=[];static get pluginName(){return"LinkEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Rg,fg,bf]}constructor(e){super(e),e.config.define("link",{allowCreatingEmptyLinks:!1,addTargetToExternalLinks:!1,toolbar:["linkPreview","|","editLink","linkProperties","unlink"]})}init(){const e=this.editor,t=this.editor.config.get("link.allowedProtocols");e.model.schema.extend("$text",{allowAttributes:"linkHref"}),e.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:my}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(e,o)=>my(gy(e,t),o)}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:e=>e.getAttribute("href")}}),e.commands.add("link",new ky(e)),e.commands.add("unlink",new Cy(e));const o=function(e,t){const o={"Open in a new tab":e("Open in a new tab"),Downloadable:e("Downloadable")};return t.forEach((e=>("label"in e&&o[e.label]&&(e.label=o[e.label]),e))),t}(e.t,function(e){const t=[];if(e)for(const[i,n]of Object.entries(e)){const e=Object.assign({},n,{id:`link${o=i,function(e){return e.substring(0,1).toUpperCase()+e.substring(1)}(_o(o))}`});t.push(e)}var o;return t}(e.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter((e=>e.mode===xy))),this._enableManualDecorators(o.filter((e=>"manual"===e.mode)));e.plugins.get(Rg).registerAttribute("linkHref"),jg(e,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableSelectionAttributesFixer(),this._enableClipboardIntegration(),this._enableDecoratorConflictPostfixer()}_registerLinkOpener(e){this._linkOpeners.push(e)}_enableAutomaticDecorators(e){const t=this.editor,o=t.commands.get("link"),i=o.automaticDecorators;t.config.get("link.addTargetToExternalLinks")&&i.add({id:"linkIsExternal",mode:xy,callback:e=>!!e&&Ey.test(e),attributes:{target:"_blank",rel:"noopener noreferrer"}}),i.add(e),i.setConflictChecker(((e,t)=>{for(const i of o.manualDecorators)if(t.hasAttribute(i.id)&&yy(e,i))return!0})),i.length&&t.conversion.for("downcast").add(i.getDispatcher())}_enableManualDecorators(e){if(!e.length)return;const t=this.editor,o=t.commands.get("link").manualDecorators;e.forEach((e=>{t.model.schema.extend("$text",{allowAttributes:e.id});const i=new Ay(e);o.add(i),t.conversion.for("downcast").add((e=>{const t=e=>{const t=e.createAttributeElement("a",i.attributes,{priority:5});i.classes&&e.addClass(i.classes,t);for(const o in i.styles)e.setStyle(o,i.styles[o],t);return e.setCustomProperty("link",!0,t),t},o=e=>(o,i,n)=>{if(i.item.is("selection")||n.schema.isInline(i.item)){if(!e&&i.attributeOldValue){if(!n.consumable.test(i.item,o.name))return;n.writer.unwrap(n.mapper.toViewRange(i.range),t(n.writer))}if(e&&i.attributeNewValue){if(!n.consumable.consume(i.item,o.name))return;i.item.is("selection")?n.writer.wrap(n.writer.document.selection.getFirstRange(),t(n.writer)):n.writer.wrap(n.mapper.toViewRange(i.range),t(n.writer))}}};e.on(`attribute:${i.id}`,o(!1),{priority:ge.high-1}),e.on(`attribute:${i.id}`,o(!0),{priority:ge.high-2})})),t.conversion.for("upcast").elementToAttribute({view:{name:"a",...i._createPattern()},model:{key:i.id}})}))}_enableLinkOpen(){const e=this.editor,t=e.editing.view.document,o=e=>{var t;this._linkOpeners.some((t=>t(e)))||(t=e,window.open(t,"_blank","noopener"))};this.listenTo(t,"click",((e,t)=>{if(!(Y.isMac?t.domEvent.metaKey:t.domEvent.ctrlKey))return;let i=t.domTarget;if("a"!=i.tagName.toLowerCase()&&(i=i.closest("a")),!i)return;const n=i.getAttribute("href");n&&(e.stop(),t.preventDefault(),o(n))}),{context:"$capture"}),this.listenTo(t,"keydown",((t,i)=>{const n=e.commands.get("link").value;!!n&&i.keyCode===$t.enter&&i.altKey&&(t.stop(),o(n))}))}_enableSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection;this.listenTo(t,"change:attribute",((o,{attributeKeys:i})=>{i.includes("linkHref")&&!t.hasAttribute("linkHref")&&e.change((t=>{var o;!function(e,t){e.removeSelectionAttribute("linkHref");for(const o of t)e.removeSelectionAttribute(o)}(t,(o=e.schema,o.getDefinition("$text").allowAttributes.filter((e=>e.startsWith("link")))))}))}))}_enableClipboardIntegration(){const e=this.editor,t=e.model,o=this.editor.config.get("link.defaultProtocol");o&&this.listenTo(e.plugins.get("ClipboardPipeline"),"contentInsertion",((e,i)=>{t.change((e=>{const t=e.createRangeIn(i.content);for(const i of t.getItems())if(i.hasAttribute("linkHref")){const t=fy(i.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,i)}}))}))}_enableDecoratorConflictPostfixer(){const e=this.editor,t=e.model,o=e.commands.get("link");t.document.registerPostFixer((e=>{let i=!1;const n=t.document.differ.getChanges(),s=new Set,r=new Set(o.manualDecorators.map((e=>e.id)));for(const e of n){if("attribute"===e.type){if("linkHref"!==e.attributeKey&&!r.has(e.attributeKey))continue;for(const t of e.range.getItems())t.hasAttribute("linkHref")&&s.add(t)}"insert"===e.type&&e.attributes.has("linkHref")&&e.position.nodeAfter&&s.add(e.position.nodeAfter)}for(const t of s){const n=[];for(const s of o.manualDecorators)if(t.hasAttribute(s.id)){for(let o=n.length-1;o>=0;o--){const r=n[o];yy(r,s)&&(e.removeAttribute(r.id,t),n.splice(o,1),i=!0)}n.push(s)}}return i}))}}class Py extends Lu{constructor(e){super(e);const t=this.bindTemplate;this.set({href:void 0,withText:!0}),this.extendTemplate({attributes:{class:["ck-link-toolbar__preview"],href:t.to("href"),target:"_blank",rel:"noopener noreferrer"},on:{click:t.to((e=>{if(this.href){const t=()=>e.preventDefault();this.fire("navigate",this.href,t)}}))}}),this.template.tag="a"}}class Sy extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;saveButtonView;displayedTextInputView;urlInputView;children;providersListChildren;_validators;_focusables=new tu;_focusCycler;constructor(e,t){super(e),this._validators=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.displayedTextInputView=this._createDisplayedTextInput(),this.urlInputView=this._createUrlInput(),this.providersListChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView()]),this._createFormChildren(),this.listenTo(this.providersListChildren,"add",(()=>{this.stopListening(this.providersListChildren,"add"),this.children.add(this._createProvidersListView())})),this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-link-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.urlInputView,this.saveButtonView,...this.providersListChildren,this.backButtonView,this.displayedTextInputView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.urlInputView.errorText=t,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Insert"),tooltip:!1,withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Link")});return t.children.add(this.backButtonView,0),t}_createProvidersListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link-form__providers-list"]}}),e.items.bindTo(this.providersListChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}_createDisplayedTextInput(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.label=e("Displayed text"),t.class="ck-labeled-field-view_full-width",t}_createUrlInput(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.fieldView.inputMode="url",t.label=e("Link URL"),t.class="ck-labeled-field-view_full-width",t}_createFormChildren(){this.children.add(new Km(this.locale,{children:[this.displayedTextInputView],class:["ck-form__row_large-top-padding"]})),this.children.add(new Km(this.locale,{children:[this.urlInputView,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding","ck-form__row_large-bottom-padding"]}))}get url(){const{element:e}=this.urlInputView.fieldView;return e?e.value.trim():null}}class Iy extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;listView;listChildren;emptyListInformation;children;_focusables=new tu;_focusCycler;constructor(e){super(e),this.listChildren=this.createCollection(),this.backButtonView=this._createBackButton(),this.listView=this._createListView(),this.emptyListInformation=this._createEmptyLinksListItemView(),this.children=this.createCollection([this._createHeaderView(),this.emptyListInformation]),this.set("title",""),this.set("emptyListPlaceholder",""),this.set("hasItems",!1),this.listenTo(this.listChildren,"change",(()=>{this.hasItems=this.listChildren.length>0})),this.on("change:hasItems",((e,t,o)=>{o?(this.children.remove(this.emptyListInformation),this.children.add(this.listView)):(this.children.remove(this.listView),this.children.add(this.emptyListInformation))})),this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-providers"],tabindex:"-1"},children:this.children})}render(){super.render();[this.listView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link-providers__list"]}}),e.items.bindTo(this.listChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createHeaderView(){const e=new ju(this.locale);return e.bind("label").to(this,"title"),e.children.add(this.backButtonView,0),e}_createEmptyLinksListItemView(){const e=new Au(this.locale);return e.setTemplate({tag:"p",attributes:{class:["ck","ck-link__empty-list-info"]},children:[{text:this.bindTemplate.to("emptyListPlaceholder")}]}),e}}class Ry extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;children;listChildren;_focusables=new tu;_focusCycler;constructor(e){super(e),this.backButtonView=this._createBackButton(),this.listChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView(),this._createListView()]),this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-properties"],tabindex:"-1"},children:this.children}),this.keystrokes.set("Esc",((e,t)=>{this.fire("back"),t()}))}render(){super.render();[...this.listChildren,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"back"),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Link properties")});return t.children.add(this.backButtonView,0),t}_createListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link__list"]}}),e.items.bindTo(this.listChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}}class Oy extends Lu{arrowView;constructor(e){super(e),this.set({withText:!0}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-link__button"]}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Kc,e}}const Vy="link-ui";class Dy extends fc{toolbarView=null;formView=null;linkProviderItemsView=null;propertiesView=null;_balloon;_linksProviders=new eo;static get requires(){return[Qm,Ty]}static get pluginName(){return"LinkUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;this.set("selectedLinkableText",void 0),e.editing.view.addObserver(ol),this._balloon=e.plugins.get(Qm),this._registerComponents(),this._registerEditingOpeners(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:Vy,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:Vy,view:(e,{writer:t})=>{if(!e.markerRange.isCollapsed)return null;const o=t.createUIElement("span");return t.addClass(["ck-fake-link-selection","ck-fake-link-selection_collapsed"],o),o}}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Create link"),keystroke:hy},{label:t("Move out of a link"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}destroy(){super.destroy(),this.propertiesView&&this.propertiesView.destroy(),this.formView&&this.formView.destroy(),this.toolbarView&&this.toolbarView.destroy(),this.linkProviderItemsView&&this.linkProviderItemsView.destroy()}registerLinksListProvider(e){const t=this._linksProviders.filter((t=>(t.order||0)<=(e.order||0))).length;this._linksProviders.add(e,t)}_createViews(){const e=this.editor.commands.get("link");this.toolbarView=this._createToolbarView(),this.formView=this._createFormView(),e.manualDecorators.length&&(this.propertiesView=this._createPropertiesView()),this._enableUserBalloonInteractions()}_createToolbarView(){const e=this.editor,t=new Wh(e.locale),o=e.commands.get("link");t.class="ck-link-toolbar";let i=e.config.get("link.toolbar");return o.manualDecorators.length||(i=i.filter((e=>"linkProperties"!==e))),t.fillFromConfig(i,e.ui.componentFactory),t.keystrokes.set("Esc",((e,t)=>{this._hideUI(),t()})),t.keystrokes.set(hy,((e,t)=>{this._addFormView(),t()})),e.ui.addToolbar(t,{isContextual:!0,beforeFocus:()=>{this._getSelectedLinkElement()&&!this._isToolbarVisible&&this._showUI(!0)},afterBlur:()=>{this._hideUI(!1)}}),t}_createFormView(){const e=this.editor,t=e.locale.t,o=e.commands.get("link"),i=e.config.get("link.defaultProtocol"),n=new(Iu(Sy))(e.locale,function(e){const t=e.t,o=e.config.get("link.allowCreatingEmptyLinks");return[e=>{if(!o&&!e.url.length)return t("Link URL must not be empty.")}]}(e));return n.displayedTextInputView.bind("isEnabled").to(this,"selectedLinkableText",(e=>void 0!==e)),n.urlInputView.bind("isEnabled").to(o,"isEnabled"),n.saveButtonView.bind("isEnabled").to(o,"isEnabled"),n.saveButtonView.bind("label").to(o,"value",(e=>t(e?"Update":"Insert"))),this.listenTo(n,"submit",(()=>{if(n.isValid()){const t=fy(n.urlInputView.fieldView.element.value,i),o=n.displayedTextInputView.fieldView.element.value;e.execute("link",t,this._getDecoratorSwitchesState(),o!==this.selectedLinkableText?o:void 0),this._closeFormView()}})),this.listenTo(n.urlInputView,"change:errorText",(()=>{e.ui.update()})),this.listenTo(n,"cancel",(()=>{this._closeFormView()})),n.keystrokes.set("Esc",((e,t)=>{this._closeFormView(),t()})),n.providersListChildren.bindTo(this._linksProviders).using((e=>this._createLinksListProviderButton(e))),n}_createLinkProviderListView(e){return e.getListItems().map((({href:e,label:t,icon:o})=>{const i=new Lu;return i.set({label:t,icon:o,tooltip:!1,withText:!0}),i.on("execute",(()=>{this.formView.resetFormStatus(),this.formView.urlInputView.fieldView.value=e,this.editor.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()})),i}))}_createLinkProviderItemsView(e){const t=this.editor,o=t.locale.t,i=new Iy(t.locale),{emptyListPlaceholder:n,label:s}=e;return i.emptyListPlaceholder=n||o("No links available"),i.title=s,this.listenTo(i,"cancel",(()=>{t.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()})),i}_createPropertiesView(){const e=this.editor,t=this.editor.commands.get("link"),o=new(Iu(Ry))(e.locale);return this.listenTo(o,"back",(()=>{e.editing.view.focus(),this._removePropertiesView()})),o.listChildren.bindTo(t.manualDecorators).using((o=>{const i=new fh(e.locale);return i.set({label:o.label,withText:!0}),i.bind("isOn").toMany([o,t],"value",((e,t)=>void 0===t&&void 0===e?!!o.defaultValue:!!e)),i.on("execute",(()=>{e.execute("link",t.value,{...this._getDecoratorSwitchesState(),[o.id]:!i.isOn})})),i})),o}_getDecoratorSwitchesState(){const e=this.editor.commands.get("link");return Array.from(e.manualDecorators).reduce(((t,o)=>{const i=void 0===e.value&&void 0===o.value?o.defaultValue:o.value;return{...t,[o.id]:!!i}}),{})}_registerEditingOpeners(){this.editor.plugins.get(Ty)._registerLinkOpener((e=>{const t=this._getLinkProviderLinkByHref(e);if(!t)return!1;const{item:o,provider:i}=t;return!!i.navigate&&i.navigate(o)}))}_registerComponents(){const e=this.editor;e.ui.componentFactory.add("link",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:link",(()=>{const e=this._createButton(sh);return e.set({role:"menuitemcheckbox"}),e})),e.ui.componentFactory.add("linkPreview",(t=>{const o=new Py(t),i=e.config.get("link.allowedProtocols"),n=e.commands.get("link"),s=t.t;o.bind("isEnabled").to(n,"value",(e=>!!e)),o.bind("href").to(n,"value",(e=>e&&gy(e,i)));const r=e=>{if(!e)return o.label=void 0,o.icon=void 0,void(o.tooltip=s("Open link in new tab"));const t=this._getLinkProviderLinkByHref(e);if(t){const{label:e,tooltip:i,icon:n}=t.item;o.label=e,o.tooltip=i||!1,o.icon=n}else o.label=e,o.icon=void 0,o.tooltip=s("Open link in new tab")};return r(n.value),this.listenTo(n,"change:value",((e,t,o)=>{r(o)})),this.listenTo(o,"navigate",((e,t,o)=>{const i=this._getLinkProviderLinkByHref(t);if(!i)return;const{provider:n,item:s}=i,{navigate:r}=n;r&&r(s)&&(e.stop(),o())})),o})),e.ui.componentFactory.add("unlink",(t=>{const o=e.commands.get("unlink"),i=new Lu(t),n=t.t;return i.set({label:n("Unlink"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),this.listenTo(i,"execute",(()=>{e.execute("unlink"),this._hideUI()})),i})),e.ui.componentFactory.add("editLink",(t=>{const o=e.commands.get("link"),i=new Lu(t),n=t.t;return i.set({label:n("Edit link"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),this.listenTo(i,"execute",(()=>{this._addFormView()})),i})),e.ui.componentFactory.add("linkProperties",(t=>{const o=e.commands.get("link"),i=new Lu(t),n=t.t;return i.set({label:n("Link properties"),icon:'\n',tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled",o,"value",o,"manualDecorators",((e,t,o)=>e&&!!t&&o.length>0)),this.listenTo(i,"execute",(()=>{this._addPropertiesView()})),i}))}_createLinksListProviderButton(e){const t=this.editor.locale,o=new Oy(t);return o.set({label:e.label}),this.listenTo(o,"execute",(()=>{this._showLinksProviderView(e)})),o}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("link"),n=new e(t.locale),s=o.t;return n.set({label:s("Link"),icon:'',keystroke:hy,isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>!!e)),this.listenTo(n,"execute",(()=>{t.editing.view.scrollToTheSelection(),this._showUI(!0),this._getSelectedLinkElement()&&this._addFormView()})),n}_enableBalloonActivators(){const e=this.editor,t=e.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),e.keystrokes.set(hy,((t,o)=>{o(),e.commands.get("link").isEnabled&&(e.editing.view.scrollToTheSelection(),this._showUI(!0))}))}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",((e,t)=>{this._isToolbarVisible&&!this.toolbarView.focusTracker.isFocused&&(this.toolbarView.focus(),t())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((e,t)=>{this._isUIVisible&&(this._hideUI(),t())})),Su({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>{this._hideUI(!1)}})}_addToolbarView(){this.toolbarView||this._createViews(),this._isToolbarInPanel||this._balloon.add({view:this.toolbarView,position:this._getBalloonPositionData(),balloonClassName:"ck-toolbar-container"})}_addFormView(){if(this.formView||this._createViews(),this._isFormInPanel)return;const e=this.editor.commands.get("link");this.formView.disableCssTransitions(),this.formView.resetFormStatus(),this.formView.backButtonView.isVisible=e.isEnabled&&!!e.value,this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this.selectedLinkableText=this._getSelectedLinkableText(),this.formView.displayedTextInputView.fieldView.value=this.selectedLinkableText||"",this.formView.urlInputView.fieldView.value=e.value||"",this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions()}_addPropertiesView(){this.propertiesView||this._createViews(),this._arePropertiesInPanel||(this.propertiesView.disableCssTransitions(),this._balloon.add({view:this.propertiesView,position:this._getBalloonPositionData()}),this.propertiesView.enableCssTransitions(),this.propertiesView.focus())}_showLinksProviderView(e){this.linkProviderItemsView&&this._removeLinksProviderView(),this.linkProviderItemsView=this._createLinkProviderItemsView(e),this._addLinkProviderItemsView(e)}_addLinkProviderItemsView(e){this.linkProviderItemsView.listChildren.clear(),this.linkProviderItemsView.listChildren.addMany(this._createLinkProviderListView(e)),this._balloon.add({view:this.linkProviderItemsView,position:this._getBalloonPositionData()}),this.linkProviderItemsView.focus()}_closeFormView(){const e=this.editor.commands.get("link");this.selectedLinkableText=void 0,void 0!==e.value?this._removeFormView():this._hideUI()}_removePropertiesView(){this._arePropertiesInPanel&&this._balloon.remove(this.propertiesView)}_removeLinksProviderView(){this._isLinksListInPanel&&this._balloon.remove(this.linkProviderItemsView)}_removeFormView(e=!0){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this.formView.displayedTextInputView.fieldView.reset(),this.formView.urlInputView.fieldView.reset(),this._balloon.remove(this.formView),e&&this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(e=!1){this.formView||this._createViews(),this._getSelectedLinkElement()?(this._isToolbarVisible?this._addFormView():this._addToolbarView(),e&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addToolbarView(),e&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(e=!0){const t=this.editor;this._isUIInPanel&&(this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),e&&t.editing.view.focus(),this._removeLinksProviderView(),this._removePropertiesView(),this._removeFormView(e),this._isToolbarInPanel&&this._balloon.remove(this.toolbarView),this._hideFakeVisualSelection())}_startUpdatingUI(){const e=this.editor,t=e.editing.view.document;let o=this._getSelectedLinkElement(),i=s();const n=()=>{const e=this._getSelectedLinkElement(),t=s();o&&!e||!o&&t!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),o=e,i=t};function s(){return t.selection.focus.getAncestors().reverse().find((e=>e.is("element")))}this.listenTo(e.ui,"update",n),this.listenTo(this._balloon,"change:visibleView",n)}get _arePropertiesInPanel(){return!!this.propertiesView&&this._balloon.hasView(this.propertiesView)}get _isLinksListInPanel(){return!!this.linkProviderItemsView&&this._balloon.hasView(this.linkProviderItemsView)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _isToolbarInPanel(){return!!this.toolbarView&&this._balloon.hasView(this.toolbarView)}get _isPropertiesVisible(){return!!this.propertiesView&&this._balloon.visibleView===this.propertiesView}get _isFormVisible(){return!!this.formView&&this._balloon.visibleView==this.formView}get _isToolbarVisible(){return!!this.toolbarView&&this._balloon.visibleView===this.toolbarView}get _isUIInPanel(){return this._arePropertiesInPanel||this._isLinksListInPanel||this._isFormInPanel||this._isToolbarInPanel}get _isUIVisible(){return this._isPropertiesVisible||this._isLinksListInPanel||this._isFormVisible||this._isToolbarVisible}_getBalloonPositionData(){const e=this.editor.editing.view,t=e.document;if(this.editor.model.markers.has(Vy)){const t=this.editor.editing.mapper.markerNameToElements(Vy);if(t){const o=Array.from(t),i=e.createRange(e.createPositionBefore(o[0]),e.createPositionAfter(o[o.length-1]));return{target:e.domConverter.viewRangeToDom(i)}}}return{target:()=>{const o=this._getSelectedLinkElement();return o?e.domConverter.mapViewToDom(o):e.domConverter.viewRangeToDom(t.selection.getFirstRange())}}}_getSelectedLinkElement(){const e=this.editor.editing.view,t=e.document.selection,o=t.getSelectedElement();if(t.isCollapsed||o&&ip(o))return Fy(t.getFirstPosition());{const o=t.getFirstRange().getTrimmed(),i=Fy(o.start),n=Fy(o.end);return i&&i==n&&e.createRangeIn(i).getTrimmed().isEqual(o)?i:null}}_getSelectedLinkableText(){const e=this.editor.model,t=this.editor.editing,o=this._getSelectedLinkElement();if(!o)return wy(e.document.selection.getFirstRange());const i=t.view.createRangeOn(o);return wy(t.mapper.toModelRange(i))}_getLinkProviderLinkByHref(e){if(!e)return null;for(const t of this._linksProviders){const o=t.getItem?t.getItem(e):t.getListItems().find((t=>t.href===e));if(o)return{provider:t,item:o}}return null}_showFakeVisualSelection(){const e=this.editor.model;e.change((t=>{const o=e.document.selection.getFirstRange();if(e.markers.has(Vy))t.updateMarker(Vy,{range:o});else if(o.start.isAtEnd){const i=o.start.getLastMatchingPosition((({item:t})=>!e.schema.isContent(t)),{boundaries:o});t.addMarker(Vy,{usingOperation:!1,affectsData:!1,range:t.createRange(i,o.end)})}else t.addMarker(Vy,{usingOperation:!1,affectsData:!1,range:o})}))}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(Vy)&&e.change((e=>{e.removeMarker(Vy)}))}}function Fy(e){return e.getAncestors().find((e=>{return(t=e).is("attributeElement")&&!!t.getCustomProperty("link");var t}))||null}const My=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63}))|localhost)(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class Ny extends fc{static get requires(){return[Tg,Ty]}static get pluginName(){return"AutoLink"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.model.document.selection;e.on("change:range",(()=>{this.isEnabled=!e.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling(),this._enablePasteLinking()}_expandLinkRange(e,t){return t.textNode&&t.textNode.hasAttribute("linkHref")?Lg(t,"linkHref",t.textNode.getAttribute("linkHref"),e):null}_selectEntireLinks(e,t){const o=this.editor.model,i=o.document.selection,n=i.getFirstPosition(),s=i.getLastPosition();let r=t.getJoined(this._expandLinkRange(o,n)||t);r&&(r=r.getJoined(this._expandLinkRange(o,s)||t)),r&&(r.start.isBefore(n)||r.end.isAfter(s))&&e.setSelection(r)}_enablePasteLinking(){const e=this.editor,t=e.model,o=t.document.selection,i=e.plugins.get("ClipboardPipeline"),n=e.commands.get("link");i.on("inputTransformation",((e,i)=>{if(!this.isEnabled||!n.isEnabled||o.isCollapsed||"paste"!==i.method)return;if(o.rangeCount>1)return;const s=o.getFirstRange(),r=i.dataTransfer.getData("text/plain");if(!r)return;const a=r.match(My);a&&a[2]===r&&(t.change((e=>{this._selectEntireLinks(e,s),n.execute(r)})),e.stop())}),{priority:"high"})}_enableTypingHandling(){const e=this.editor,t=new Ig(e.model,(e=>{let t=e;if(!function(e){return e.length>4&&" "===e[e.length-1]&&" "!==e[e.length-2]}(t))return;t=t.slice(0,-1),"!.:,;?".includes(t[t.length-1])&&(t=t.slice(0,-1));const o=By(t);return o?{url:o,removedTrailingCharacters:e.length-t.length}:void 0}));t.on("matched:data",((t,o)=>{const{batch:i,range:n,url:s,removedTrailingCharacters:r}=o;if(!i.isTyping)return;const a=n.end.getShiftedBy(-r),l=a.getShiftedBy(-s.length),c=e.model.createRange(l,a);this._applyAutoLink(s,c)})),t.bind("isEnabled").to(this)}_enableEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("enter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition();let o;o=e.parent.previousSibling?.is("element")?t.createRangeIn(e.parent.previousSibling):t.createRange(t.createPositionAt(e.parent,0),e),this._checkAndApplyAutoLinkOnRange(o)}))}_enableShiftEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("shiftEnter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition(),o=t.createRange(t.createPositionAt(e.parent,0),e.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(o)}))}_checkAndApplyAutoLinkOnRange(e){const t=this.editor.model,{text:o,range:i}=Sg(e,t),n=By(o);if(n){const e=t.createRange(i.end.getShiftedBy(-n.length),i.end);this._applyAutoLink(n,e)}}_applyAutoLink(e,t){const o=this.editor.model,i=fy(e,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(e,t){return t.schema.checkAttributeInSelection(t.createSelection(e),"linkHref")}(t,o)&&by(i)&&!function(e){const t=e.start.nodeAfter;return!!t&&t.hasAttribute("linkHref")}(t)&&this._persistAutoLink(i,t)}_persistAutoLink(e,t){const o=this.editor.model,i=this.editor.plugins.get("Delete");o.enqueueChange((n=>{n.setAttribute("linkHref",e,t),o.enqueueChange((()=>{i.requestUndoOnBackspace()}))}))}}function By(e){const t=My.exec(e);return t?t[2]:null}function Ly(e){return e.map((e=>function(e){"number"==typeof e&&(e=String(e));if("object"==typeof e&&(t=e,t.title&&t.model&&t.view))return jy(e);var t;const o=function(e){return"string"==typeof e?zy[e]:zy[e.model]}(e);if(o)return jy(o);if("default"===e)return{model:void 0,title:"Default"};if(function(e){let t;if("object"==typeof e){if(!e.model)throw new fe("font-size-invalid-definition",null,e);t=parseFloat(e.model)}else t=parseFloat(e);return isNaN(t)}(e))return;return function(e){"string"==typeof e&&(e={title:e,model:`${parseFloat(e)}px`});return e.view={name:"span",styles:{"font-size":e.model}},jy(e)}(e)}(e))).filter((e=>void 0!==e))}const zy={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function jy(e){return e.view&&"string"!=typeof e.view&&!e.view.priority&&(e.view.priority=7),e}class $y{_startElement;_referenceIndent;_isForward;_includeSelf;_sameAttributes;_sameIndent;_lowerIndent;_higherIndent;constructor(e,t){this._startElement=e,this._referenceIndent=e.getAttribute("listIndent"),this._isForward="forward"==t.direction,this._includeSelf=!!t.includeSelf,this._sameAttributes=Qt(t.sameAttributes||[]),this._sameIndent=!!t.sameIndent,this._lowerIndent=!!t.lowerIndent,this._higherIndent=!!t.higherIndent}static first(e,t){return to(new this(e,t)[Symbol.iterator]())}*[Symbol.iterator](){const e=[];for(const{node:t}of new qy(this._getStartNode(),this._isForward?"forward":"backward")){const o=t.getAttribute("listIndent");if(othis._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){e.push(t);continue}}else{if(!this._sameIndent){if(this._higherIndent){e.length&&(yield*e,e.length=0);break}continue}if(this._sameAttributes.some((e=>t.getAttribute(e)!==this._startElement.getAttribute(e))))break}e.length&&(yield*e,e.length=0),yield t}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}class qy{_node;_isForward;_previousNodesByIndent=[];_previous=null;_previousNodeIndent=null;constructor(e,t="forward"){this._node=e,this._isForward="forward"===t}[Symbol.iterator](){return this}next(){if(!Uy(this._node))return{done:!0,value:void 0};const e=this._node.getAttribute("listIndent");let t=null;if(this._previous){const o=this._previousNodeIndent;e>o?this._previousNodesByIndent[o]=this._previous:ee.getAttribute("listItemId")!=t))}function s_(e){return Array.from(e).filter((e=>"$graveyard"!==e.root.rootName)).sort(((e,t)=>e.index-t.index))}function r_(e){const t=e.document.selection.getSelectedElement();return t&&e.schema.isObject(t)&&e.schema.isBlock(t)?t:null}function a_(e,t){return t.checkChild(e.parent,"listItem")&&t.checkChild(e,"$text")&&!t.isObject(e)}function l_(e){return"numbered"==e||"customNumbered"==e}function c_(e,t,o){return Gy(t,{direction:"forward"}).pop().index>e.index?t_(e,t,o):[]}class d_ extends wc{_direction;constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor,t=e.model,o=u_(t.document.selection),i=e.plugins.get("ListEditing").getListAttributeNames();t.change((e=>{const t=[];n_(o)&&!Zy(o[0])?("forward"==this._direction&&t.push(...o_(o,e,{attributeNames:i})),t.push(...e_(o[0],e))):"forward"==this._direction?t.push(...o_(o,e,{expand:!0,attributeNames:i})):t.push(...function(e,t,{attributeNames:o}){const i=Yy(e=Qt(e)),n=new Set,s=Math.min(...i.map((e=>e.getAttribute("listIndent")))),r=new Map;for(const e of i)r.set(e,$y.first(e,{lowerIndent:!0}));for(const e of i){if(n.has(e))continue;n.add(e);const i=e.getAttribute("listIndent")-1;if(i<0)i_(e,t,o);else{if(e.getAttribute("listIndent")==s){const o=c_(e,r.get(e),t);for(const e of o)n.add(e);if(o.length)continue}t.setAttribute("listIndent",i,e)}}return s_(n)}(o,e,{attributeNames:i}));for(const o of t){if(!o.hasAttribute("listType"))continue;const t=$y.first(o,{sameIndent:!0});t&&e.setAttribute("listType",t.getAttribute("listType"),o)}this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",s_(new Set(e)))}_checkEnabled(){let e=u_(this.editor.model.document.selection),t=e[0];if(!t)return!1;if("backward"==this._direction)return!0;if(n_(e)&&!Zy(e[0]))return!0;e=Yy(e),t=e[0];const o=$y.first(t,{sameIndent:!0});return!!o&&o.getAttribute("listType")==t.getAttribute("listType")}}function u_(e){const t=Array.from(e.getSelectedBlocks()),o=t.findIndex((e=>!Uy(e)));return-1!=o&&(t.length=o),t}class h_ extends wc{type;_listWalkerOptions;constructor(e,t,o={}){super(e),this.type=t,this._listWalkerOptions=o.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.document,i=r_(t),n=Array.from(o.selection.getSelectedBlocks()).filter((e=>t.schema.checkAttribute(e,"listType")||a_(e,t.schema))),s=void 0!==e.forceValue?!e.forceValue:this.value;t.change((r=>{if(s){const e=n[n.length-1],t=this.editor.plugins.get("ListEditing").getListAttributeNames(),o=Gy(e,{direction:"forward"}),i=[];o.length>1&&i.push(...e_(o[1],r)),i.push(...i_(n,r,t)),i.push(...function(e,t){const o=[];let i=Number.POSITIVE_INFINITY;for(const{node:n}of new qy(e.nextSibling)){const e=n.getAttribute("listIndent");if(0==e)break;e{const{firstElement:r,lastElement:a}=this._getMergeSubjectElements(i,e),l=r.getAttribute("listIndent")||0,c=a.getAttribute("listIndent"),d=a.getAttribute("listItemId");if(l!=c){const e=(u=a,Array.from(new $y(u,{direction:"forward",higherIndent:!0})));n.push(...o_([a,...e],t,{indentBy:l-c,expand:l{const t=e_(this._getStartBlock(),e);this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",s_(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&Uy(t)&&!Zy(t)}_getStartBlock(){const e=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?e:e.nextSibling}}class p_ extends fc{static get pluginName(){return"ListItemBoldIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("BoldEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("bold","listItemBold"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemBold",setAttributeOnDowncast(e,t,o,i){t&&(e.addClass("ck-list-marker-bold",o),!Y.isSafari||i&&i.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-bold","0",o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("BoldEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemBold"}),t.schema.setAttributeProperties("listItemBold",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemBold"),e.conversion.for("upcast").attributeToAttribute({model:"listItemBold",view:{name:"li",classes:"ck-list-marker-bold"}}))}}class f_ extends fc{static get pluginName(){return"ListItemItalicIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("ItalicEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("italic","listItemItalic"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemItalic",setAttributeOnDowncast(e,t,o,i){t&&(e.addClass("ck-list-marker-italic",o),!Y.isSafari||i&&i.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-italic","0",o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("ItalicEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemItalic"}),t.schema.setAttributeProperties("listItemItalic",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemItalic"),e.conversion.for("upcast").attributeToAttribute({model:"listItemItalic",view:{name:"li",classes:"ck-list-marker-italic"}}))}}class b_ extends fc{static get pluginName(){return"ListItemFontSizeIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);if(!e.plugins.has("FontSizeEditing")||!this.editor.config.get("list.enableListItemMarkerFormatting"))return;const i=Ly(e.config.get("fontSize.options"));t.registerFormatAttribute("fontSize","listItemFontSize"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontSize",setAttributeOnDowncast(e,t,o,n){if(t){const s=i.find((e=>e.model==t));s&&s.view&&"string"!=typeof s.view?s.view.styles?(e.addClass("ck-list-marker-font-size",o),e.setStyle("--ck-content-list-marker-font-size",s.view.styles["font-size"],o)):s.view.classes&&(e.addClass(`ck-list-marker-font-size-${t}`,o),!Y.isSafari||n&&n.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-font-size","0",o)):(e.addClass("ck-list-marker-font-size",o),e.setStyle("--ck-content-list-marker-font-size",t,o))}}})}afterInit(){const e=this.editor,t=e.model;if(!e.plugins.has("FontSizeEditing")||!this.editor.config.get("list.enableListItemMarkerFormatting"))return;t.schema.extend("$listItem",{allowAttributes:"listItemFontSize"}),t.schema.setAttributeProperties("listItemFontSize",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontSize"),e.conversion.for("upcast").elementToAttribute({model:{key:"listItemFontSize",value:e=>e.getStyle("--ck-content-list-marker-font-size")},view:{name:"li",classes:"ck-list-marker-font-size",styles:{"--ck-content-list-marker-font-size":/.*/}}});const o=Ly(e.config.get("fontSize.options"));for(const t of o)t.model&&t.view&&e.conversion.for("upcast").elementToAttribute({model:{key:"listItemFontSize",value:t.model},view:{name:"li",classes:`ck-list-marker-font-size-${t.model}`}})}}class w_ extends fc{static get pluginName(){return"ListItemFontColorIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("FontColorEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("fontColor","listItemFontColor"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontColor",setAttributeOnDowncast(e,t,o){t&&(e.addClass("ck-list-marker-color",o),e.setStyle("--ck-content-list-marker-color",t,o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("FontColorEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemFontColor"}),t.schema.setAttributeProperties("listItemFontColor",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontColor"),e.conversion.for("upcast").attributeToAttribute({model:{key:"listItemFontColor",value:e=>e.getStyle("--ck-content-list-marker-color")},view:{name:"li",classes:"ck-list-marker-color",styles:{"--ck-content-list-marker-color":/.*/}}}))}}class y_ extends fc{static get pluginName(){return"ListItemFontFamilyIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("FontFamilyEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("fontFamily","listItemFontFamily"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontFamily",setAttributeOnDowncast(e,t,o){t&&(e.addClass("ck-list-marker-font-family",o),e.setStyle("--ck-content-list-marker-font-family",t,o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("FontFamilyEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemFontFamily"}),t.schema.setAttributeProperties("listItemFontFamily",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontFamily"),e.conversion.for("upcast").attributeToAttribute({model:{key:"listItemFontFamily",value:e=>e.getStyle("--ck-content-list-marker-font-family")},view:{name:"li",classes:"ck-list-marker-font-family",styles:{"--ck-content-list-marker-font-family":/.*/}}}))}}class __ extends fc{_loadedFormatting={};static get pluginName(){return"ListFormatting"}static get isOfficialPlugin(){return!0}static get requires(){return[p_,f_,b_,w_,y_]}constructor(e){super(e),e.config.define("list.enableListItemMarkerFormatting",!0)}afterInit(){this.editor.config.get("list.enableListItemMarkerFormatting")&&this._registerPostfixerForListItemFormatting()}_registerPostfixerForListItemFormatting(){const e=this.editor.model;e.document.registerPostFixer((t=>{const o=e.document.differ.getChanges(),i=new Set;let n=!1;for(const e of o)if("attribute"===e.type)("listItemId"==e.attributeKey||"listType"==e.attributeKey||this._isInlineOrSelectionFormatting(e.attributeKey)||Object.values(this._loadedFormatting).includes(e.attributeKey))&&(Uy(e.range.start.nodeAfter)?i.add(e.range.start.nodeAfter):Uy(e.range.start.parent)&&i.add(e.range.start.parent));else if(Uy(e.position.nodeAfter)&&i.add(e.position.nodeAfter),Uy(e.position.nodeBefore)&&i.add(e.position.nodeBefore),Uy(e.position.parent)&&i.add(e.position.parent),"insert"==e.type&&"$text"!=e.name){const o=t.createRangeIn(e.position.nodeAfter);for(const e of o.getItems())Uy(e)&&i.add(e)}for(const o of i){const i=k_(e,o,Object.keys(this._loadedFormatting));for(const[e,s]of Object.entries(i)){const i=this._loadedFormatting[e];(s&&C_(t,o,i,s)||!s&&A_(t,o,i))&&(n=!0)}}return n}))}registerFormatAttribute(e,t){this._loadedFormatting[e]=t}_isInlineOrSelectionFormatting(e){return e.replace(/^selection:/,"")in this._loadedFormatting}}function k_(e,t,o){if(Zy(t))return v_(e,t,o);return v_(e,Ky(t)[0],o)}function v_(e,t,o){if(!function(e){return["numbered","bulleted","customNumbered","customBulleted"].includes(e.getAttribute("listType"))}(t)||e.schema.isLimit(t))return Object.fromEntries(o.map((e=>[e])));if(t.isEmpty)return Object.fromEntries(o.map((e=>[e,t.getAttribute(`selection:${e}`)])));const i=new Set(o),n={},s=e.createRangeIn(t).getWalker({ignoreElementEnd:!0});for(const{item:t}of s){for(const o of i)if(e.schema.checkAttribute(t,o)){const e=t.getAttribute(o);void 0===e?(i.delete(o),n[o]=void 0):void 0===n[o]?n[o]=e:n[o]!==e&&(i.delete(o),n[o]=void 0)}else o in n||(n[o]=void 0);if(!i.size)break;e.schema.isLimit(t)&&s.jumpTo(e.createPositionAfter(t))}return n}function C_(e,t,o,i){const n=Ky(t);let s=!1;for(const t of n)t.hasAttribute(o)&&t.getAttribute(o)===i||(e.setAttribute(o,i,t),s=!0);return s}function A_(e,t,o){const i=Ky(t);let n=!1;for(const t of i)t.hasAttribute(o)&&(e.removeAttribute(o,t),n=!0);return n}class x_ extends fc{static get pluginName(){return"ListUtils"}static get isOfficialPlugin(){return!0}expandListBlocksToCompleteList(e){return Xy(e)}isFirstBlockOfListItem(e){return Zy(e)}isListItemBlock(e){return Uy(e)}expandListBlocksToCompleteItems(e,t={}){return Yy(e,t)}isNumberedListType(e){return l_(e)}isFirstListItemInList(e){return function(e){return!$y.first(e,{sameIndent:!0,sameAttributes:"listType"})}(e)}}function E_(e){return e.is("element","ol")||e.is("element","ul")}function T_(e){return e.is("element","li")}function P_(e,t,o,i=R_(o,t)){return e.createAttributeElement(I_(o),null,{priority:2*t/100-100,id:i})}function S_(e,t,o){return e.createAttributeElement("li",null,{priority:(2*t+1)/100-100,id:o})}function I_(e){return"numbered"==e||"customNumbered"==e?"ol":"ul"}function R_(e,t){return`list-${e}-${t}`}function O_(e,t,o){const i=e.nodeBefore;if(Uy(i)){let e=i;for(const{node:n}of new qy(e,"backward")){if(e=n,o.has(e))return;if(o.add(e),t.has(i))return}t.add(e)}else{const o=e.nodeAfter;Uy(o)&&t.add(o)}}function V_(){return(e,t,o)=>{const{writer:i,schema:n}=o;if(!t.modelRange)return;const s=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>n.checkAttribute(e,"listItemId")));if(!s.length)return;const r=t.viewItem.getAttribute("data-list-item-id")||Wy.next();o.consumable.consume(t.viewItem,{attributes:"data-list-item-id"});const a=function(e){let t=0,o=e.parent;for(;o;){if(T_(o))t++;else{const e=o.previousSibling;e&&T_(e)&&t++}o=o.parent}return t}(t.viewItem);let l=t.viewItem.parent&&t.viewItem.parent.is("element","ol")?"numbered":"bulleted";const c=s[0].getAttribute("listType");c&&(l=c);const d={listItemId:r,listIndent:a,listType:l};for(const e of s)e.hasAttribute("listItemId")||i.setAttributes(d,e);s.length>1&&s[1].getAttribute("listItemId")!=d.listItemId&&o.keepEmptyElement(s[0])}}function D_(e,t,o,i){return()=>{const i=e.document.differ.getChanges(),r=[],a=new Set,l=new Set,c=new Set;for(const e of i)if("insert"==e.type&&"$text"!=e.name)O_(e.position,a,c),e.attributes.has("listItemId")?l.add(e.position.nodeAfter):O_(e.position.getShiftedBy(e.length),a,c);else if("remove"==e.type&&e.attributes.has("listItemId"))O_(e.position,a,c);else if("attribute"==e.type){const t=e.range.start.nodeAfter;o.includes(e.attributeKey)?(O_(e.range.start,a,c),null===e.attributeNewValue?(O_(e.range.start.getShiftedBy(1),a,c),s(t)&&r.push(t)):l.add(t)):Uy(t)&&s(t)&&r.push(t)}for(const e of a.values())r.push(...n(e,l));for(const e of new Set(r))t.reconvertItem(e)};function n(e,t){const i=[],n=new Set,a=[];for(const{node:l,previous:c}of new qy(e)){if(n.has(l))continue;const e=l.getAttribute("listIndent");c&&eo.includes(e)))),modelElement:l};const d=Gy(l,{direction:"forward"});for(const e of d)n.add(e),(s(e,d)||r(e,a,t))&&i.push(e)}return i}function s(e,n){const s=t.mapper.toViewElement(e);if(!s)return!1;if(function(e){e=e.parent;for(;e.is("attributeElement")&&["ol","ul","li"].includes(e.name);)e=e.parent;if(e.getCustomProperty("$structureSlotParent")&&!t.mapper.toModelElement(e))return!0;return!1}(s))return!0;if(i.fire("checkElement",{modelElement:e,viewElement:s}))return!0;if(!e.is("element","paragraph")&&!e.is("element","listItem"))return!1;const r=B_(e,o,n);return!(!r||!s.is("element","p"))||!(r||!s.is("element","span"))}function r(e,o,n){if(n.has(e))return!1;const s=t.mapper.toViewElement(e);let r=o.length-1;for(let e=s.parent;!e.is("editableElement");e=e.parent){const t=T_(e),n=E_(e);if(!n&&!t)continue;const s="checkAttributes:"+(t?"item":"list");if(i.fire(s,{viewElement:e,modelAttributes:o[r].modelAttributes,modelReferenceElement:o[r].modelElement}))break;if(n&&(r--,r<0))return!1}return!0}}function F_(e,t,o,{dataPipeline:i}={}){const n=function(e,t){const o=t.filter((e=>!1===e.consume)).map((e=>e.attributeName));return(t,i)=>{const n=[];for(const i of e)t.hasAttribute(i)&&!o.includes(i)&&n.push(`attribute:${i}`);return!!n.every((e=>!1!==i.test(t,e)))&&(n.forEach((e=>i.consume(t,e))),!0)}}(e,t);return(s,r,a)=>{const{writer:l,mapper:c,consumable:d}=a,u=r.item;if(!e.includes(r.attributeKey))return;if(!n(u,d))return;const h={...a.options,dataPipeline:i},m=function(e,t,o,i){const n=o.createRangeOn(e),s=t.toViewRange(n).getTrimmed(),r=s.getWalker();for(const{item:e}of r)if(e.is("element")&&e.getCustomProperty("listItemMarker"))r.jumpTo(i.createPositionAfter(e));else if(e.is("element")&&!e.getCustomProperty("listItemWrapper"))return e}(u,c,o,l);N_(m,l,c),function(e,t){let o=e.parent;for(;o.is("attributeElement")&&["ul","ol","li"].includes(o.name);){const i=o.parent;t.unwrap(t.createRangeOn(e),o),o=i}}(m,l);const g=function(e,t,o,i,{dataPipeline:n}){let s=i.createRangeOn(t);if(!Zy(e))return s;for(const r of o){if("itemMarker"!=r.scope)continue;const o=r.createElement(i,e,{dataPipeline:n});if(!o)continue;if(i.setCustomProperty("listItemMarker",!0,o),r.canInjectMarkerIntoElement&&r.canInjectMarkerIntoElement(e)?i.insert(i.createPositionAt(t,0),o):(i.insert(s.start,o),s=i.createRange(i.createPositionBefore(o),i.createPositionAfter(t))),!r.createWrapperElement||!r.canWrapElement)continue;const a=r.createWrapperElement(i,e,{dataPipeline:n});i.setCustomProperty("listItemWrapper",!0,a),r.canWrapElement(e)?s=i.wrap(s,a):(s=i.wrap(i.createRangeOn(o),a),s=i.createRange(s.start,i.createPositionAfter(t)))}return s}(u,m,t,l,h);!function(e,t,o,i,n){if(!e.hasAttribute("listIndent"))return;const s=e.getAttribute("listIndent");let r=e;for(let e=s;e>=0;e--){const s=S_(i,e,r.getAttribute("listItemId")),a=P_(i,e,r.getAttribute("listType"));for(const e of o)"list"!=e.scope&&"item"!=e.scope||!r.hasAttribute(e.attributeName)||e.setAttributeOnDowncast(i,r.getAttribute(e.attributeName),"list"==e.scope?a:s,n,r);if(t=i.wrap(t,s),t=i.wrap(t,a),0==e)break;if(r=$y.first(r,{lowerIndent:!0}),!r)break}}(u,g,t,l,h)}}function M_(e,{dataPipeline:t}={}){return(o,{writer:i})=>{if(!B_(o,e))return null;if(!t)return i.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const n=i.createContainerElement("p");return i.setCustomProperty("dataPipeline:transparentRendering",!0,n),n}}function N_(e,t,o){for(;e.parent.is("attributeElement")&&e.parent.getCustomProperty("listItemWrapper");)t.unwrap(t.createRangeOn(e),e.parent);const i=[];n(t.createPositionBefore(e).getWalker({direction:"backward"})),n(t.createRangeIn(e).getWalker());for(const e of i)t.remove(e);function n(e){for(const{item:t}of e){if(t.is("element")&&o.toModelElement(t))break;t.is("element")&&t.getCustomProperty("listItemMarker")&&i.push(t)}}}function B_(e,t,o=Ky(e)){if(!Uy(e))return!1;for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&"htmlEmptyBlock"!=o&&!t.includes(o))return!1;return o.length<2}const L_=["listType","listIndent","listItemId"];class z_ extends fc{_downcastStrategies=[];static get pluginName(){return"ListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Kg,Tg,x_,bf,__]}constructor(e){super(e),e.config.define("list.multiBlock",!0)}init(){const e=this.editor,t=e.model,o=e.config.get("list.multiBlock");if(e.plugins.has("LegacyListEditing"))throw new fe("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:L_}),o?(t.schema.extend("$container",{allowAttributesOf:"$listItem"}),t.schema.extend("$block",{allowAttributesOf:"$listItem"}),t.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):t.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const e of L_)t.schema.setAttributeProperties(e,{copyOnReplace:!0});e.commands.add("numberedList",new h_(e,"numbered")),e.commands.add("bulletedList",new h_(e,"bulleted")),e.commands.add("customNumberedList",new h_(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new h_(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new d_(e,"forward")),e.commands.add("outdentList",new d_(e,"backward")),e.commands.add("splitListItemBefore",new g_(e,"before")),e.commands.add("splitListItemAfter",new g_(e,"after")),o&&(e.commands.add("mergeListItemBackward",new m_(e,"backward")),e.commands.add("mergeListItemForward",new m_(e,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration(),this._setupListItemIdConversionStrategy()}afterInit(){const e=this.editor.commands,t=e.get("indent"),o=e.get("outdent");t&&t.registerChildCommand(e.get("indentList"),{priority:"high"}),o&&o.registerChildCommand(e.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(e){this._downcastStrategies.push(e)}getListAttributeNames(){return[...L_,...this._downcastStrategies.map((e=>e.attributeName))]}_setupDeleteIntegration(){const e=this.editor,t=e.commands.get("mergeListItemBackward"),o=e.commands.get("mergeListItemForward");this.listenTo(e.editing.view.document,"delete",((i,n)=>{const s=e.model.document.selection;r_(e.model)||e.model.change((()=>{const r=s.getFirstPosition();if(s.isCollapsed&&"backward"==n.direction){if(!r.isAtStart)return;const o=r.parent;if(!Uy(o))return;if($y.first(o,{sameAttributes:"listType",sameIndent:!0})||0!==o.getAttribute("listIndent")){if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:j_(e.model,"backward")})}else Qy(o)||e.execute("splitListItemAfter"),e.execute("outdentList");n.preventDefault(),i.stop()}else{if(s.isCollapsed&&!s.getLastPosition().isAtEnd)return;if(!o||!o.isEnabled)return;o.execute({shouldMergeOnBlocksContentLevel:j_(e.model,"forward")}),n.preventDefault(),i.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const e=this.editor,t=e.model,o=e.commands,i=o.get("enter");this.listenTo(e.editing.view.document,"enter",((o,i)=>{const n=t.document,s=n.selection.getFirstPosition().parent;if(n.selection.isCollapsed&&Uy(s)&&s.isEmpty&&!i.isSoft){const t=Zy(s),n=Qy(s);t&&n?(e.execute("outdentList"),i.preventDefault(),o.stop()):t&&!n?(e.execute("splitListItemAfter"),i.preventDefault(),o.stop()):n&&(e.execute("splitListItemBefore"),i.preventDefault(),o.stop())}}),{context:"li"}),this.listenTo(i,"afterExecute",(()=>{const t=o.get("splitListItemBefore");if(t.refresh(),!t.isEnabled)return;2===Ky(e.model.document.selection.getLastPosition().parent).length&&t.execute()}))}_setupTabIntegration(){const e=this.editor;this.listenTo(e.editing.view.document,"tab",((t,o)=>{const i=o.shiftKey?"outdentList":"indentList";this.editor.commands.get(i).isEnabled&&(e.execute(i),o.stopPropagation(),o.preventDefault(),t.stop())}),{context:"li"})}_setupConversion(){const e=this.editor,t=e.model,o=this.getListAttributeNames(),i=e.config.get("list.multiBlock"),n=i?"paragraph":"listItem";e.conversion.for("upcast").elementToElement({view:"li",model:(e,{writer:t})=>t.createElement(n,{listType:""})}).elementToElement({view:"p",model:(e,{writer:t})=>e.parent&&e.parent.is("element","li")?t.createElement(n,{listType:""}):null,converterPriority:"high"}).add((e=>{e.on("element:li",V_())})),i||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:n,view:M_(o),converterPriority:"high"}).add((e=>{var i;e.on("attribute",F_(o,this._downcastStrategies,t)),e.on("remove",(i=t.schema,(e,t,o)=>{const{writer:n,mapper:s}=o,r=e.name.split(":")[1];if(!i.checkAttribute(r,"listItemId"))return;const a=s.toViewPosition(t.position),l=t.position.getShiftedBy(t.length),c=s.toViewPosition(l,{isPhantom:!0}),d=n.createRange(a,c).getTrimmed().end.nodeBefore;d&&N_(d,n,s)}))})),e.conversion.for("dataDowncast").elementToElement({model:n,view:M_(o,{dataPipeline:!0}),converterPriority:"high"}).add((e=>{e.on("attribute",F_(o,this._downcastStrategies,t,{dataPipeline:!0}))}));const s=(r=this._downcastStrategies,a=e.editing.view,(e,t)=>{if(t.modelPosition.offset>0)return;const o=t.modelPosition.parent;if(!Uy(o))return;if(!r.some((e=>"itemMarker"==e.scope&&e.canInjectMarkerIntoElement&&e.canInjectMarkerIntoElement(o))))return;const i=t.mapper.toViewElement(o),n=a.createRangeIn(i),s=n.getWalker();let l=n.start;for(const{item:e}of s){if(e.is("element")&&t.mapper.toModelElement(e)||e.is("$textProxy"))break;e.is("element")&&e.getCustomProperty("listItemMarker")&&(l=a.createPositionAfter(e),s.skip((({previousPosition:e})=>!e.isEqual(l))))}t.viewPosition=l});var r,a;e.editing.mapper.on("modelToViewPosition",s),e.data.mapper.on("modelToViewPosition",s),this.listenTo(t.document,"change:data",D_(t,e.editing,o,this),{priority:"high"}),this.on("checkAttributes:item",((e,{viewElement:t,modelAttributes:o})=>{t.id!=o.listItemId&&(e.return=!0,e.stop())})),this.on("checkAttributes:list",((e,{viewElement:t,modelAttributes:o})=>{t.name==I_(o.listType)&&t.id==R_(o.listType,o.listIndent)||(e.return=!0,e.stop())}))}_setupModelPostFixing(){const e=this.editor.model,t=this.getListAttributeNames();e.document.registerPostFixer((o=>function(e,t,o,i){const n=e.document.differ.getChanges(),s=new Set,r=new Set,a=i.editor.config.get("list.multiBlock");let l=!1;for(const i of n){if("insert"==i.type&&"$text"!=i.name){const n=i.position.nodeAfter;if(!e.schema.checkAttribute(n,"listItemId"))for(const e of Array.from(n.getAttributeKeys()))o.includes(e)&&(t.removeAttribute(e,n),l=!0);O_(i.position,r,s),i.attributes.has("listItemId")||O_(i.position.getShiftedBy(i.length),r,s);for(const{item:t,previousPosition:o}of e.createRangeIn(n))Uy(t)&&O_(o,r,s)}else"remove"==i.type?O_(i.position,r,s):"attribute"==i.type&&o.includes(i.attributeKey)&&(O_(i.range.start,r,s),null===i.attributeNewValue&&O_(i.range.start.getShiftedBy(1),r,s));if(!a&&"attribute"==i.type&&L_.includes(i.attributeKey)){const e=i.range.start.nodeAfter;null===i.attributeNewValue&&e&&e.is("element","listItem")?(t.rename(e,"paragraph"),l=!0):null===i.attributeOldValue&&e&&e.is("element")&&"listItem"!=e.name&&(t.rename(e,"listItem"),l=!0)}}const c=new Set;for(const e of r.values())l=i.fire("postFixer",{listNodes:new Hy(e),listHead:e,writer:t,seenIds:c})||l;return l}(e,o,t,this))),this.on("postFixer",((e,{listNodes:t,writer:o})=>{e.return=function(e,t){let o=0,i=-1,n=null,s=!1;for(const{node:r}of e){const e=r.getAttribute("listIndent");if(e>o){let a;null===n?(n=e-o,a=o):(n>e&&(n=e),a=e-n),a>i+1&&(a=i+1),t.setAttribute("listIndent",a,r),s=!0,i=a}else n=null,o=e+1,i=e}return s}(t,o)||e.return}),{priority:"high"}),this.on("postFixer",((e,{listNodes:t,writer:o,seenIds:i})=>{e.return=function(e,t,o){const i=new Set;let n=!1;for(const{node:s}of e){if(i.has(s))continue;let e=s.getAttribute("listType"),r=s.getAttribute("listItemId");if(t.has(r)&&(r=Wy.next()),t.add(r),s.is("element","listItem"))s.getAttribute("listItemId")!=r&&(o.setAttribute("listItemId",r,s),n=!0);else for(const t of Gy(s,{direction:"forward"}))i.add(t),t.getAttribute("listType")!=e&&(r=Wy.next(),e=t.getAttribute("listType")),t.getAttribute("listItemId")!=r&&(o.setAttribute("listItemId",r,t),n=!0)}return n}(t,i,o)||e.return}),{priority:"high"})}_setupClipboardIntegration(){const e=this.editor.model,t=this.editor.plugins.get("ClipboardPipeline");this.listenTo(e,"insertContent",function(e){return(t,[o,i])=>{const n=o.is("documentFragment")?Array.from(o.getChildren()):[o];if(!n.length)return;const s=(i?e.createSelection(i):e.document.selection).getFirstPosition();let r;if(Uy(s.parent))r=s.parent;else{if(!Uy(s.nodeBefore)||!Uy(s.nodeAfter))return;r=s.nodeBefore}e.change((e=>{const t=r.getAttribute("listType"),o=r.getAttribute("listIndent"),i=n[0].getAttribute("listIndent")||0,s=Math.max(o-i,0);for(const o of n){const i=Uy(o);r.is("element","listItem")&&o.is("element","paragraph")&&e.rename(o,"listItem"),e.setAttributes({listIndent:(i?o.getAttribute("listIndent"):0)+s,listItemId:i?o.getAttribute("listItemId"):Wy.next(),listType:t},o)}}))}}(e),{priority:"high"}),this.listenTo(t,"outputTransformation",((t,o)=>{e.change((e=>{const t=Array.from(o.content.getChildren()),i=t[t.length-1];if(t.length>1&&i.is("element")&&i.isEmpty){t.slice(0,-1).every(Uy)&&e.remove(i)}if("copy"==o.method||"cut"==o.method){const t=Array.from(o.content.getChildren());n_(t)&&i_(t,e,this.getListAttributeNames())}}))}))}_setupAccessibilityIntegration(){const e=this.editor,t=e.t;e.accessibility.addKeystrokeInfoGroup({id:"list",label:t("Keystrokes that can be used in a list"),keystrokes:[{label:t("Increase list item indent"),keystroke:"Tab"},{label:t("Decrease list item indent"),keystroke:"Shift+Tab"}]})}_setupListItemIdConversionStrategy(){this.registerDowncastStrategy({scope:"item",attributeName:"listItemId",setAttributeOnDowncast(e,t,o,i){i&&(i.skipListItemIds||i.isClipboardPipeline)||e.setAttribute("data-list-item-id",t,o)}})}}function j_(e,t){const o=e.document.selection;if(!o.isCollapsed)return!r_(e);if("forward"===t)return!0;const i=o.getFirstPosition().parent,n=i.previousSibling;return!e.schema.isObject(n)&&(!!n.isEmpty||n_([i,n]))}function $_(e,t,o,i){e.ui.componentFactory.add(t,(()=>{const n=q_(Lu,e,t,o,i);return n.set({tooltip:!0,isToggleable:!0}),n})),e.ui.componentFactory.add(`menuBar:${t}`,(()=>{const n=q_(sh,e,t,o,i);return n.set({role:"menuitemcheckbox",isToggleable:!0}),n}))}function q_(e,t,o,i,n){const s=t.commands.get(o),r=new e(t.locale);return r.set({label:i,icon:n}),r.bind("isOn","isEnabled").to(s,"value","isEnabled"),r.on("execute",(()=>{t.execute(o),t.editing.view.focus()})),r}class H_ extends fc{static get pluginName(){return"ListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||$_(this.editor,"numberedList",e("Numbered List"),''),this.editor.ui.componentFactory.has("bulletedList")||$_(this.editor,"bulletedList",e("Bulleted List"),'')}}const W_={},U_={},K_={},G_=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"},{listStyle:"arabic-indic",typeAttribute:null,listType:"numbered"}];for(const{listStyle:e,typeAttribute:t,listType:o}of G_)W_[e]=o,U_[e]=t,t&&(K_[t]=e);class J_ extends wc{constructor(e){super(e),this.on("execute",(()=>{this.refresh()}),{priority:"highest"})}refresh(){const e=this._getSelectedItems();this.value=this._getValue(e),this.isEnabled=!!e.length}execute(e={}){this.editor.model.change((t=>{const o=this._getSelectedItems(),i=void 0===e.forceValue?!this._getValue(o):e.forceValue;for(const e of o)i?t.setAttribute("todoListChecked",!0,e):t.removeAttribute("todoListChecked",e)}))}_getValue(e){return e.every((e=>e.getAttribute("todoListChecked")))}_getSelectedItems(){const e=this.editor.model,t=e.schema,o=e.document.selection.getFirstRange(),i=o.start.parent,n=[];t.checkAttribute(i,"todoListChecked")&&n.push(...Ky(i));for(const e of o.getItems({shallow:!0}))t.checkAttribute(e,"todoListChecked")&&!n.includes(e)&&n.push(...Ky(e));return n}}class Z_ extends jn{domEventType=["change"];onDomEvent(e){if(e.target){const t=this.view.domConverter.mapDomToView(e.target);t&&t.is("element","input")&&"checkbox"==t.getAttribute("type")&&t.findAncestor({classes:"todo-list__label"})&&this.fire("todoCheckboxChange",e)}}}const Q_=Wt("Ctrl+Enter");class Y_ extends fc{static get pluginName(){return"TodoListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.model,o=e.editing,i=e.plugins.get(z_),n=e.config.get("list.multiBlock")?"paragraph":"listItem";e.commands.add("todoList",new h_(e,"todo")),e.commands.add("checkTodoList",new J_(e)),o.view.addObserver(Z_),t.schema.extend("$listItem",{allowAttributes:"todoListChecked"}),t.schema.addAttributeCheck((e=>{const t=e.last;if(!t.getAttribute("listItemId")||"todo"!=t.getAttribute("listType"))return!1}),"todoListChecked"),e.conversion.for("upcast").add((e=>{e.on("element:input",((e,t,o)=>{const i=t.modelCursor,n=i.parent,s=t.viewItem;if(!o.consumable.test(s,{name:!0}))return;if("checkbox"!=s.getAttribute("type")||!i.isAtStart||!n.hasAttribute("listType"))return;o.consumable.consume(s,{name:!0});const r=o.writer;r.setAttribute("listType","todo",n),t.viewItem.hasAttribute("checked")&&r.setAttribute("todoListChecked",!0,n),t.modelRange=r.createRange(i)})),e.on("element:li",((e,t,o)=>{const{writer:i,schema:n}=o;if(!t.modelRange)return;const s=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>"todo"===e.getAttribute("listType")&&n.checkAttribute(e,"listItemId"))).reduce(((e,t)=>{const o=t.getAttribute("listItemId");return e.has(o)||e.set(o,Ky(t)),e}),new Map);for(const[,e]of s.entries())if(e.some((e=>e.getAttribute("todoListChecked"))))for(const t of e)i.setAttribute("todoListChecked",!0,t)}),{priority:"low"}),e.on("element:label",X_({name:"label",classes:"todo-list__label"})),e.on("element:label",X_({name:"label",classes:["todo-list__label","todo-list__label_without-description"]})),e.on("element:span",X_({name:"span",classes:"todo-list__label__description"})),e.on("element:ul",function(e){const t=new ui(e);return(e,o,i)=>{const n=t.match(o.viewItem);if(!n)return;const s=n.match;s.name=!1,i.consumable.consume(o.viewItem,s)}}({name:"ul",classes:"todo-list"}))})),e.conversion.for("downcast").elementToElement({model:n,view:(e,{writer:t})=>{if(ek(e,i.getListAttributeNames()))return t.createContainerElement("span",{class:"todo-list__label__description"})},converterPriority:"highest"}),i.registerDowncastStrategy({scope:"list",attributeName:"listType",setAttributeOnDowncast(e,t,o){"todo"==t?e.addClass("todo-list",o):e.removeClass("todo-list",o)}}),i.registerDowncastStrategy({scope:"itemMarker",attributeName:"todoListChecked",createElement(e,t,{dataPipeline:o}){if("todo"!=t.getAttribute("listType"))return null;const i=e.createUIElement("input",{type:"checkbox",...t.getAttribute("todoListChecked")?{checked:"checked"}:null,...o?{disabled:"disabled"}:{tabindex:"-1"}});if(o)return i;const n=e.createContainerElement("span",{contenteditable:"false"},i);return n.getFillerOffset=()=>null,n},canWrapElement:e=>ek(e,i.getListAttributeNames()),createWrapperElement(e,t,{dataPipeline:o}){const n=["todo-list__label"];return ek(t,i.getListAttributeNames())||n.push("todo-list__label_without-description"),e.createAttributeElement(o?"label":"span",{class:n.join(" ")})}}),i.on("checkElement",((e,{modelElement:t,viewElement:o})=>{const n=ek(t,i.getListAttributeNames());o.hasClass("todo-list__label__description")!=n&&(e.return=!0,e.stop())})),i.on("checkElement",((t,{modelElement:o,viewElement:i})=>{const n="todo"==o.getAttribute("listType")&&Zy(o);let s=!1;const r=e.editing.view.createPositionBefore(i).getWalker({direction:"backward"});for(const{item:t}of r){if(t.is("element")&&e.editing.mapper.toModelElement(t))break;t.is("element","input")&&"checkbox"==t.getAttribute("type")&&(s=!0)}s!=n&&(t.return=!0,t.stop())})),i.on("postFixer",((e,{listNodes:t,writer:o})=>{for(const{node:i,previousNodeInList:n}of t){if(!n)continue;if(n.getAttribute("listItemId")!=i.getAttribute("listItemId"))continue;const t=n.hasAttribute("todoListChecked"),s=i.hasAttribute("todoListChecked");s&&!t?(o.removeAttribute("todoListChecked",i),e.return=!0):!s&&t&&(o.setAttribute("todoListChecked",!0,i),e.return=!0)}})),t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges();let i=!1;for(const t of o)if("attribute"==t.type&&"listType"==t.attributeKey){const o=t.range.start.nodeAfter;"todo"==t.attributeOldValue&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),i=!0)}else if("insert"==t.type&&"$text"!=t.name)for(const{item:o}of e.createRangeOn(t.position.nodeAfter))o.is("element")&&"todo"!=o.getAttribute("listType")&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),i=!0);return i})),this.listenTo(o.view.document,"keydown",((t,o)=>{Ht(o)===Q_&&(e.execute("checkTodoList"),t.stop())}),{priority:"high"}),this.listenTo(o.view.document,"todoCheckboxChange",((e,t)=>{const i=t.target;if(!i||!i.is("element","input"))return;const n=o.view.createPositionAfter(i),s=o.mapper.toModelPosition(n).parent;s&&Uy(s)&&"todo"==s.getAttribute("listType")&&this._handleCheckmarkChange(s)})),this.listenTo(o.view.document,"arrowKey",function(e,t){return(o,i)=>{const n=Kt(i.keyCode,t.contentLanguageDirection),s=e.schema,r=e.document.selection;if(!r.isCollapsed)return;const a=r.getFirstPosition(),l=a.parent;if("right"==n&&a.isAtEnd){const t=s.getNearestSelectionRange(e.createPositionAfter(l),"forward");if(!t)return;const n=t.start.parent;n&&Uy(n)&&"todo"==n.getAttribute("listType")&&(e.change((e=>e.setSelection(t))),i.preventDefault(),i.stopPropagation(),o.stop())}else if("left"==n&&a.isAtStart&&Uy(l)&&"todo"==l.getAttribute("listType")){const t=s.getNearestSelectionRange(e.createPositionBefore(l),"backward");if(!t)return;e.change((e=>e.setSelection(t))),i.preventDefault(),i.stopPropagation(),o.stop()}}}(t,e.locale),{context:"$text"}),this.listenTo(o.mapper,"viewToModelPosition",((e,o)=>{const i=o.viewPosition.parent,n=i.is("attributeElement","li")&&0==o.viewPosition.offset,s=tk(i)&&o.viewPosition.offset<=1,r=i.is("element","span")&&"false"==i.getAttribute("contenteditable")&&tk(i.parent);if(!n&&!s&&!r)return;const a=o.modelPosition.nodeAfter;a&&"todo"==a.getAttribute("listType")&&(o.modelPosition=t.createPositionAt(a,0))}),{priority:"low"}),this._initAriaAnnouncements()}_handleCheckmarkChange(e){const t=this.editor,o=t.model,i=Array.from(o.document.selection.getRanges());o.change((o=>{o.setSelection(e,"end"),t.execute("checkTodoList"),o.setSelection(i)}))}_initAriaAnnouncements(){const{model:e,ui:t,t:o}=this.editor;let i=null;t&&e.document.selection.on("change:range",(()=>{const n=e.document.selection.focus.parent,s=ok(i),r=ok(n);s&&!r?t.ariaLiveAnnouncer.announce(o("Leaving a to-do list")):!s&&r&&t.ariaLiveAnnouncer.announce(o("Entering a to-do list")),i=n}))}}function X_(e){const t=new ui(e);return(e,o,i)=>{const n=t.match(o.viewItem);n&&i.consumable.consume(o.viewItem,n.match)&&Object.assign(o,i.convertChildren(o.viewItem,o.modelCursor))}}function ek(e,t){return(e.is("element","paragraph")||e.is("element","listItem"))&&"todo"==e.getAttribute("listType")&&Zy(e)&&function(e,t){for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return!0}(e,t)}function tk(e){return!!e&&e.is("attributeElement")&&e.hasClass("todo-list__label")}function ok(e){return!!e&&(!(!e.is("element","paragraph")&&!e.is("element","listItem"))&&"todo"==e.getAttribute("listType"))}class ik extends fc{static get pluginName(){return"TodoListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;$_(this.editor,"todoList",e("To-do List"),'')}}const nk=Symbol("isOPCodeBlock");function sk(e){return!!e.getCustomProperty(nk)&&ip(e)}function rk(e){const t=e.getSelectedElement();return!(!t||!sk(t))}function ak(e,t,o){const i=t.createContainerElement("pre",{title:window.I18n.t("js.editor.macro.toolbar_help")});return lk(t,e,i),function(e,t,o){return t.setCustomProperty(nk,!0,e),np(e,t,{label:o})}(i,t,o)}function lk(e,t,o){const i=(t.getAttribute("opCodeblockLanguage")||"language-text").replace(/^language-/,""),n=e.createContainerElement("div",{class:"op-uc-code-block--language"});ck(e,i,n,"text"),e.insert(e.createPositionAt(o,0),n);ck(e,t.getAttribute("opCodeblockContent"),o,"(empty)")}function ck(e,t,o,i){const n=e.createText(t||i);e.insert(e.createPositionAt(o,0),n)}class dk extends jn{constructor(e){super(e),this.domEventType="dblclick"}onDomEvent(e){this.fire(e.type,e)}}class uk extends fc{static get pluginName(){return"CodeBlockEditing"}init(){const e=this.editor,t=e.model.schema,o=e.conversion,i=e.editing.view,n=i.document,s=Mp(e);var r,a;t.register("codeblock",{isObject:!0,isBlock:!0,allowContentOf:"$block",allowWhere:["$root","$block"],allowIn:["$root"],allowAttributes:["opCodeblockLanguage","opCodeblockContent"]}),o.for("upcast").add(function(){return t=>{t.on("element:pre",e,{priority:"high"})};function e(e,t,o){if(!o.consumable.test(t.viewItem,{name:!0}))return;const i=Array.from(t.viewItem.getChildren()).find((e=>e.is("element","code")));if(!i||!o.consumable.consume(i,{name:!0}))return;const n=o.writer.createElement("codeblock");o.writer.setAttribute("opCodeblockLanguage",i.getAttribute("class"),n);const s=o.splitToAllowedParent(n,t.modelCursor);if(s){o.writer.insert(n,s.position);const e=i.getChild(0);if(e){o.consumable.consume(e,{name:!0});const t=e.data.replace(/\n$/,"");o.writer.setAttribute("opCodeblockContent",t,n)}t.modelRange=o.writer.createRange(o.writer.createPositionBefore(n),o.writer.createPositionAfter(n)),t.modelCursor=t.modelRange.end}}}()),o.for("editingDowncast").elementToElement({model:"codeblock",view:(e,{writer:t})=>ak(e,t,"Code block")}).add(function(){return t=>{t.on("attribute:opCodeblockContent",e),t.on("attribute:opCodeblockLanguage",e)};function e(e,t,o){const i=t.item;o.consumable.consume(t.item,e.name);const n=o.mapper.toViewElement(i);o.writer.remove(o.writer.createRangeOn(n.getChild(1))),o.writer.remove(o.writer.createRangeOn(n.getChild(0))),lk(o.writer,i,n)}}()),o.for("dataDowncast").add(function(){return t=>{t.on("insert:codeblock",e,{priority:"high"})};function e(e,t,o){const i=t.item,n=i.getAttribute("opCodeblockLanguage")||"language-text",s=i.getAttribute("opCodeblockContent");o.consumable.consume(i,"insert");const r=o.writer,a=r.createContainerElement("pre"),l=r.createContainerElement("div",{class:"op-uc-code-block--language"}),c=r.createContainerElement("code",{class:n}),d=r.createText(n),u=r.createText(s);r.insert(r.createPositionAt(c,0),u),r.insert(r.createPositionAt(l,0),d),r.insert(r.createPositionAt(a,0),l),r.insert(r.createPositionAt(a,0),c),o.mapper.bindElements(i,c),o.mapper.bindElements(i,a),o.mapper.bindElements(i,l);const h=o.mapper.toViewPosition(t.range.start);r.insert(h,a),e.stop()}}()),this.editor.editing.mapper.on("viewToModelPosition",(r=this.editor.model,a=e=>e.hasClass("op-uc-code-block"),(e,t)=>{const{mapper:o,viewPosition:i}=t,n=o.findMappedViewAncestor(i);if(!a(n))return;const s=o.toModelElement(n);t.modelPosition=r.createPositionAt(s,i.isAtStart?"before":"after")})),i.addObserver(dk),this.listenTo(n,"dblclick",((t,o)=>{let i=o.target,n=o.domEvent;if(n.shiftKey||n.altKey||n.metaKey)return;if(!sk(i)&&(i=i.findAncestor(sk),!i))return;o.preventDefault(),o.stopPropagation();const r=e.editing.mapper.toModelElement(i),a=s.services.macros,l=r.getAttribute("opCodeblockLanguage"),c=r.getAttribute("opCodeblockContent");a.editCodeBlock(c,l).then((t=>e.model.change((e=>{e.setAttribute("opCodeblockLanguage",t.languageClass,r),e.setAttribute("opCodeblockContent",t.content,r)}))))})),e.ui.componentFactory.add("insertCodeBlock",(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.code_block.button"),icon:'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n\n',tooltip:!0}),o.on("execute",(()=>{s.services.macros.editCodeBlock().then((t=>e.model.change((o=>{const i=o.createElement("codeblock");o.setAttribute("opCodeblockLanguage",t.languageClass,i),o.setAttribute("opCodeblockContent",t.content,i),e.model.insertContent(i,e.model.document.selection)}))))})),o}))}}class hk extends fc{static get requires(){return[Qm]}static get pluginName(){return"CodeBlockToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditCodeBlock",(e=>{const i=o.services.macros,n=e.getAttribute("opCodeblockLanguage"),s=e.getAttribute("opCodeblockContent");i.editCodeBlock(s,n).then((o=>t.change((t=>{t.setAttribute("opCodeblockLanguage",o.languageClass,e),t.setAttribute("opCodeblockContent",o.content,e)}))))}))}afterInit(){qp(this,this.editor,"OPCodeBlock",rk)}}function mk(e){return e.__currentlyDisabled=e.__currentlyDisabled||[],e.ui.view.toolbar?e.ui.view.toolbar.items._items:[]}function gk(e,t){mk(e).forEach((o=>{let i=o;o instanceof bh?i=o.buttonView:o!==t&&Object.prototype.hasOwnProperty.call(o,"isEnabled")||(i=null),i&&(i.isEnabled?i.isEnabled=!1:e.__currentlyDisabled.push(i))}))}function pk(e){mk(e).forEach((t=>{let o=t;t instanceof bh&&(o=t.buttonView),e.__currentlyDisabled.indexOf(o)<0&&(o.isEnabled=!0)})),e.__currentlyDisabled=[]}class fk{constructor(e){this.response=e}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return 401===this.statusCode}get unprocessableEntity(){return 422===this.statusCode}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}get isScript(){return this.contentType.match(/\b(?:java|ecma)script\b/)}async renderTurboStream(){if(!this.isTurboStream)return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`));window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js")}async activeScript(){if(!this.isScript)return Promise.reject(new Error(`Expected a Script response but got "${this.contentType}" instead`));{const e=document.createElement("script"),t=document.querySelector("meta[name=csp-nonce]");if(t){const o=""===t.nonce?t.content:t.nonce;o&&e.setAttribute("nonce",o)}e.innerHTML=await this.text,document.body.appendChild(e)}}}class bk{static register(e){this.interceptor=e}static get(){return this.interceptor}static reset(){this.interceptor=void 0}}function wk(e){const t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.content}class yk{constructor(e,t,o={}){this.method=e,this.options=o,this.originalUrl=t.toString()}async perform(){try{const e=bk.get();e&&await e(this)}catch(e){console.error(e)}const e=window.Turbo?window.Turbo.fetch:window.fetch,t=new fk(await e(this.url,this.fetchOptions));if(t.unauthenticated&&t.authenticationURL)return Promise.reject(window.location.href=t.authenticationURL);t.isScript&&await t.activeScript();return(t.ok||t.unprocessableEntity)&&t.isTurboStream&&await t.renderTurboStream(),t}addHeader(e,t){const o=this.additionalHeaders;o[e]=t,this.options.headers=o}sameHostname(){if(!this.originalUrl.startsWith("http:")&&!this.originalUrl.startsWith("https:"))return!0;try{return new URL(this.originalUrl).hostname===window.location.hostname}catch(e){return!0}}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:this.credentials,redirect:this.redirect,keepalive:this.keepalive}}get headers(){const e={"X-Requested-With":"XMLHttpRequest","Content-Type":this.contentType,Accept:this.accept};return this.sameHostname()&&(e["X-CSRF-Token"]=this.csrfToken),function(e){const t={};for(const o in e){const i=e[o];void 0!==i&&(t[o]=i)}return t}(Object.assign(e,this.additionalHeaders))}get csrfToken(){return function(e){const t=document.cookie?document.cookie.split("; "):[],o=`${encodeURIComponent(e)}=`,i=t.find((e=>e.startsWith(o)));if(i){const e=i.split("=").slice(1).join("=");if(e)return decodeURIComponent(e)}}(wk("csrf-param"))||wk("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:null==this.body||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";case"script":return"text/javascript, application/javascript";default:return"*/*"}}get body(){return this.options.body}get query(){const e=(this.originalUrl.split("?")[1]||"").split("#")[0],t=new URLSearchParams(e);let o=this.options.query;var i;o instanceof window.FormData?(i=o,o=[...i].reduce(((e,[t,o])=>e.concat("string"==typeof o?[[t,o]]:[])),[])):o=o instanceof window.URLSearchParams?o.entries():Object.entries(o||{}),function(e,t){for(const[o,i]of t)i instanceof window.File||(e.has(o)&&!o.includes("[]")?(e.delete(o),e.set(o,i)):e.append(o,i))}(t,o);const n=t.toString();return n.length>0?`?${n}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get credentials(){return this.options.credentials||"same-origin"}get keepalive(){return this.options.keepalive||!1}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){const e="[object String]"===Object.prototype.toString.call(this.body);return"application/json"===this.headers["Content-Type"]&&!e?JSON.stringify(this.body):this.body}}async function _k(e,t){return new yk("get",e,t).perform()}function kk(e,t){const{modelAttribute:o,styleName:i,attributeName:n,attributeType:s,viewElement:r,defaultValue:a,shouldUpcast:l=()=>!0,reduceBoxSides:c=!1}=t;e.for("upcast").attributeToAttribute({view:{name:r,styles:{[i]:/[\s\S]+/}},model:{key:o,value:(e,t,o)=>{if(!l(e))return;const n=xk(a,"",o),s=e.getNormalizedStyle(i),r=c?Ek(s):s;if(n!==r)return r;t.consumable.consume(e,{styles:i})}}}),n&&e.for("upcast").attributeToAttribute({view:{name:r,attributes:{[n]:/.+/}},model:{key:o,value:(e,t,o)=>{if("figure"==e.name||e.hasStyle(i)||"table"==e.name&&"figure"==e.parent.name&&e.parent.hasStyle(i))return;const r=xk(a,"",o);let l=e.getAttribute(n);if(l&&"length"==s){const e=parseFloat(l);l=isNaN(e)?r:e+(l.includes("%")?"%":"px")}if(r!==l)return l;t.consumable.consume(e,{attributes:n})}}})}function vk(e,t,o,i){const{conversion:n}=e;n.for("upcast").add((e=>{e.on(`element:${t}`,((e,t,n)=>{const{modelRange:s,viewItem:r}=t;if(!s)return;const a=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter((e=>r.hasStyle(e))),l=r.is("element","table")?r:r.findAncestor("table"),c=l.hasAttribute("border");if(!a.length&&!c)return;const d={styles:a};if(!n.consumable.test(r,d))return;const u=to(s.getItems({shallow:!0})),h=u.findAncestor("table",{includeSelf:!0});let m=i;h&&"layout"==h.getAttribute("tableType")&&(m={style:"none",color:"",width:""}),n.consumable.consume(r,d);const g={style:r.getNormalizedStyle("border-style"),color:r.getNormalizedStyle("border-color"),width:r.getNormalizedStyle("border-width")};if(c&&n.consumable.test(l,{attributes:"border"})){const e=parseFloat(l.getAttribute("border")||"1"),t=Number.isNaN(e)||!Number.isFinite(e)||e<0||"table"!=r.name&&e>1?"1px":`${e}px`;g.width={top:t,bottom:t,right:t,left:t,...g.width||{}},r.is("element","table")&&n.consumable.consume(l,{attributes:"border"})}const p={style:Ek(g.style),color:Ek(g.color),width:Ek(g.width)};p.style!==m.style&&n.writer.setAttribute(o.style,p.style,u),p.color!==m.color&&n.writer.setAttribute(o.color,p.color,u),p.width!==m.width&&n.writer.setAttribute(o.width,p.width,u)}))}))}function Ck(e,t){const{modelElement:o,modelAttribute:i,styleName:n}=t;e.for("downcast").attributeToAttribute({model:{name:o,key:i},view:e=>({key:"style",value:{[n]:e}})})}function Ak(e,t){const{modelAttribute:o,styleName:i}=t;e.for("downcast").add((e=>{e.on(`attribute:${o}:table`,((e,t,o)=>{const{item:n,attributeNewValue:s}=t,{mapper:r,writer:a}=o;if(!o.consumable.consume(t.item,e.name))return;const l=Array.from(r.toViewElement(n).getChildren()).find((e=>e.is("element","table")));s?a.setStyle(i,s,l):a.removeStyle(i,l)}))}))}function xk(e,t,o){const i=o.modelRange&&to(o.modelRange.getItems({shallow:!0})),n=i&&i.is("element")&&i.findAncestor("table",{includeSelf:!0});return n&&"layout"===n.getAttribute("tableType")?t:e}function Ek(e){if(!e)return;const t=["top","right","bottom","left"];if(!t.every((t=>e[t])))return e;const o=e.top;return t.every((t=>e[t]===o))?o:e}function Tk(e,t,o){const{conversion:i}=e;i.for("upcast").add((e=>{e.on(`element:${t}`,((e,t,i)=>{const{modelRange:n,viewItem:s}=t;if(!n)return;if(s.is("element","table"))return void i.consumable.consume(s,{attributes:"cellpadding"});const r=s.findAncestor("table");if(!r.hasAttribute("cellpadding")||!i.consumable.test(r,{attributes:"cellpadding"}))return;const a=n?.start?.nodeAfter,l=parseFloat(r.getAttribute("cellpadding")||"1"),c=Number.isNaN(l)||!Number.isFinite(l)||l<0?"0px":`${l}px`,d=a.getAttribute("tableCellPadding");if(d){if("object"==typeof d){const e={...o!==c&&{top:c},...o!==c&&{right:c},...o!==c&&{bottom:c},...o!==c&&{left:c},...d};i.writer.setAttribute("tableCellPadding",e,a)}}else o!==c&&i.writer.setAttribute("tableCellPadding",c,a)}),{priority:"low"})}))}const Pk={className:"table-style-align-left"},Sk={className:"table-style-align-center"},Ik={className:"table-style-align-right"},Rk={className:"table-style-block-align-left"},Ok={className:"table-style-block-align-right"},Vk=[{view:{name:/^(table|figure)$/,styles:{float:/^(left|none|right)$/}},getAlign:e=>{let t=e.getStyle("float");return"none"===t&&(t="center"),t},getConsumables(e){const t=e.getStyle("float"),o=["float"];return"left"===t&&e.hasStyle("margin-right")?o.push("margin-right"):"right"===t&&e.hasStyle("margin-left")&&o.push("margin-left"),{styles:o}}},{view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"auto"}},getAlign:()=>"center",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:/^(table|figure)$/,key:"class",value:"table-style-align-left"},getAlign:()=>"left",getConsumables:()=>({classes:Pk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Ik.className},getAlign:()=>"right",getConsumables:()=>({classes:Ik.className})},{view:{name:/^(table|figure)$/,key:"class",value:Sk.className},getAlign:()=>"center",getConsumables:()=>({classes:Sk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Rk.className},getAlign:()=>"blockLeft",getConsumables:()=>({classes:Rk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Ok.className},getAlign:()=>"blockRight",getConsumables:()=>({classes:Ok.className})},{view:{name:/^(table|figure)$/,styles:{"margin-left":"0","margin-right":"auto"}},getAlign:()=>"blockLeft",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"0"}},getAlign:()=>"blockRight",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:"table",attributes:{align:/^(left|center|right)$/}},getAlign:e=>e.getAttribute("align"),getConsumables:()=>({attributes:"align"})}],Dk={center:{align:"center",style:"margin-left: auto; margin-right: auto;",className:"table-style-align-center"},left:{align:"left",style:"float: left;",className:"table-style-align-left"},right:{align:"right",style:"float: right;",className:"table-style-align-right"},blockLeft:{align:void 0,style:"margin-left: 0; margin-right: auto;",className:Rk.className},blockRight:{align:void 0,style:"margin-left: auto; margin-right: 0;",className:Ok.className}};class Fk{_table;_startRow;_endRow;_startColumn;_endColumn;_includeAllSlots;_skipRows;_row;_rowIndex;_column;_cellIndex;_spannedCells;_nextCellAtColumn;_jumpedToStartRow=!1;constructor(e,t={}){this._table=e,this._startRow=void 0!==t.row?t.row:t.startRow||0,this._endRow=void 0!==t.row?t.row:t.endRow,this._startColumn=void 0!==t.column?t.column:t.startColumn||0,this._endColumn=void 0!==t.column?t.column:t.endColumn,this._includeAllSlots=!!t.includeAllSlots,this._skipRows=new Set,this._row=0,this._rowIndex=0,this._column=0,this._cellIndex=0,this._spannedCells=new Map,this._nextCellAtColumn=-1}[Symbol.iterator](){return this}next(){this._canJumpToStartRow()&&this._jumpToNonSpannedRowClosestToStartRow();const e=this._table.getChild(this._rowIndex);if(!e||this._isOverEndRow())return{done:!0,value:void 0};if(!e.is("element","tableRow"))return this._rowIndex++,this.next();if(this._isOverEndColumn())return this._advanceToNextRow();let t=null;const o=this._getSpanned();if(o)this._includeAllSlots&&!this._shouldSkipSlot()&&(t=this._formatOutValue(o.cell,o.row,o.column));else{const o=e.getChild(this._cellIndex);if(!o)return this._advanceToNextRow();const i=parseInt(o.getAttribute("colspan")||"1"),n=parseInt(o.getAttribute("rowspan")||"1");(i>1||n>1)&&this._recordSpans(o,n,i),this._shouldSkipSlot()||(t=this._formatOutValue(o)),this._nextCellAtColumn=this._column+i}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,t||this.next()}skipRow(e){this._skipRows.add(e)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(e,t=this._row,o=this._column){return{done:!1,value:new Mk(this,e,t,o)}}_shouldSkipSlot(){const e=this._skipRows.has(this._row),t=this._rowthis._endColumn;return e||t||o||i}_getSpanned(){const e=this._spannedCells.get(this._row);return e&&e.get(this._column)||null}_recordSpans(e,t,o){const i={cell:e,row:this._row,column:this._column};for(let e=this._row;e0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const e=this._getRowLength(0);for(let t=this._startRow;!this._jumpedToStartRow;t--)e===this._getRowLength(t)&&(this._row=t,this._rowIndex=t,this._jumpedToStartRow=!0)}_getRowLength(e){return[...this._table.getChild(e).getChildren()].reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}}class Mk{cell;row;column;cellAnchorRow;cellAnchorColumn;_cellIndex;_rowIndex;_table;constructor(e,t,o,i){this.cell=t,this.row=e._row,this.column=e._column,this.cellAnchorRow=o,this.cellAnchorColumn=i,this._cellIndex=e._cellIndex,this._rowIndex=e._rowIndex,this._table=e._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function Nk(e){return"header"===e||"header-row"===e||"header-column"===e}function Bk(e,t,o,i,n=1){null!=t&&null!=n&&t>n?i.setAttribute(e,t,o):i.removeAttribute(e,o)}function Lk(e,t,o={}){const i=e.createElement("tableCell",o);return e.insertElement("paragraph",i),e.insert(i,t),i}function zk(e,t){const o=t.parent.parent,i=parseInt(o.getAttribute("headingColumns")||"0"),{column:n}=e.getCellLocation(t);return!!i&&n0){Bk("headingRows",s-o,e,n,0)}const r=parseInt(t.getAttribute("headingColumns")||"0");if(r>0){Bk("headingColumns",r-i,e,n,0)}}(a,e,i,n,o),function(e,t,o,i,n){const s=Array.from(t.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),r=parseInt(t.getAttribute("footerRows")||"0"),a=s-r;if(r<1)return;let l=0;i>=a&&(l=i-Math.max(a,o)+1);Bk("footerRows",l,e,n,0)}(a,e,i,s,o),a}function Uk(e,t,o=0){const i=[],n=new Fk(e,{startRow:o,endRow:t-1});for(const e of n){const{row:o,cellHeight:n}=e;o1&&(a.rowspan=l);const c=parseInt(e.getAttribute("colspan")||"1");c>1&&(a.colspan=c);const d=s+r,u=[...new Fk(n,{startRow:s,endRow:d,includeAllSlots:!0})];let h,m=null;for(const t of u){const{row:i,column:n,cell:s}=t;s===e&&void 0===h&&(h=n),void 0!==h&&h===n&&i===d&&(m=Lk(o,t.getPositionBefore(),a))}return Bk("rowspan",r,e,o),m}function Gk(e,t){const o=[],i=new Fk(e);for(const e of i){const{column:i,cellWidth:n}=e;i1&&(s.colspan=r);const a=parseInt(e.getAttribute("rowspan")||"1");a>1&&(s.rowspan=a);const l=Lk(i,i.createPositionAfter(e),s);return Bk("colspan",n,e,i),l}function Zk(e,t,o,i,n,s){const r=parseInt(e.getAttribute("colspan")||"1"),a=parseInt(e.getAttribute("rowspan")||"1");if(o+r-1>n){Bk("colspan",n-o+1,e,s,1)}if(t+a-1>i){Bk("rowspan",i-t+1,e,s,1)}}function Qk(e,t){const o=t.getColumns(e),i=new Array(o).fill(0);for(const{column:t}of new Fk(e))i[t]++;const n=i.reduce(((e,t,o)=>t?e:[...e,o]),[]);if(n.length>0){const o=n[n.length-1];return t.removeColumns(e,{at:o}),!0}return!1}function Yk(e,t){const o=[],i=t.getRows(e);for(let t=0;t0){const i=o[o.length-1];return t.removeRows(e,{at:i}),!0}return!1}function Xk(e,t){Qk(e,t)||Yk(e,t)}function ev(e,t){const o=Array.from(new Fk(e,{startColumn:t.firstColumn,endColumn:t.lastColumn,row:t.lastRow}));if(o.every((({cellHeight:e})=>1===e)))return t.lastRow;const i=o[0].cellHeight-1;return t.lastRow+i}function tv(e,t){const o=Array.from(new Fk(e,{startRow:t.firstRow,endRow:t.lastRow,column:t.lastColumn}));if(o.every((({cellWidth:e})=>1===e)))return t.lastColumn;const i=o[0].cellWidth-1;return t.lastColumn+i}function ov(e){for(const t of e.getChildren())if(t.is("element","table"))return t}function iv(e){return t=>{t.on("element:table",((t,o,i)=>{const n=o.viewItem;if(!i.consumable.test(n,{name:!0}))return;const{rows:s,headingRows:r,headingColumns:a,footerRows:l}=function(e){let t,o=!0;const i=[],n=[],s=[];let r=null,a=null;const l=Array.from(e.getChildren());for(let e=0;ee.is("element","tr")));let d=null,u=null;for(const h of c){const m=Array.from(h.getChildren()).filter((e=>e.is("element","td")||e.is("element","th")));if("tfoot"===t.name){a||={element:t,rows:c},o=!1;const i=a.element===t;if(!i&&null===u)for(let t=e;t0&&(null===d||m.length===d)&&m.every((e=>e.is("element","th")))&&o?(i.push(h),o=!0):(n.push(h),o=!1),d=Math.max(d||0,m.length)}}const c=function(e){let t=new Map,o=0;const i=e.map((e=>{const i=[],n=Array.from(e.getChildren()).filter((e=>"th"===e.name||"td"===e.name)),s=new Map;for(;n.length||i.length0)i.push(e.cell);else{const e=n.shift();if(!e){i.push(null);continue}{const t=parseInt(e.getAttribute("colspan")||"1"),o=parseInt(e.getAttribute("rowspan")||"1");for(let n=0;n1&&s.set(i.length,{cell:e,remaining:o-1}),i.push(e)}}}for(const[e,o]of t.entries())o.remaining-=1,o.remaining>0&&!s.has(e)&&s.set(e,o);return t=s,o=Math.max(o,i.length),i}));for(const e of i)for(;e.lengthi.convertItem(e,i.writer.createPositionAt(d,"end")))),i.convertChildren(n,i.writer.createPositionAt(d,"end")),d.isEmpty){const e=i.writer.createElement("tableRow");i.writer.insert(e,i.writer.createPositionAt(d,"end")),Lk(i.writer,i.writer.createPositionAt(e,"end"))}i.updateConversionResult(d,o)}}))}}function nv(e){return t=>{t.on(`element:${e}`,((e,t,{writer:o})=>{if(!t.modelRange)return;const i=t.modelRange.start.nodeAfter,n=o.createPositionAt(i,0);if(t.viewItem.isEmpty)return void o.insertElement("paragraph",n);const s=Array.from(i.getChildren());if(s.every((e=>e.is("element","$marker")))){const e=o.createElement("paragraph");o.insert(e,o.createPositionAt(i,0));for(const t of s)o.move(o.createRangeOn(t),o.createPositionAt(e,"end"))}}),{priority:"low"})}}function sv(e){if(e.is("element","tableColumnGroup"))return e;const t=e.getChildren();return Array.from(t).find((e=>e.is("element","tableColumnGroup")))}function rv(e){const t=sv(e);return t?Array.from(t.getChildren()):[]}class av extends fc{static get pluginName(){return"TableUtils"}static get isOfficialPlugin(){return!0}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,o=t.parent,i=o.getChildIndex(t),n=new Fk(o,{row:i});for(const{cell:t,row:o,column:i}of n)if(t===e)return{row:o,column:i}}createTable(e,t){const o=e.createElement("table");return lv(e,o,0,t.rows||2,t.columns||2),t.footerRows&&this.setFooterRowsCount(e,o,t.footerRows),t.headingRows&&this.setHeadingRowsCount(e,o,t.headingRows),t.headingColumns&&this.setHeadingColumnsCount(e,o,t.headingColumns),o}insertRows(e,t={}){const o=this.editor.model,i=t.at||0,n=t.rows||1,s=void 0!==t.copyStructureFromAbove,r=t.copyStructureFromAbove?i-1:i,a=Hk(this.editor),l=!!this.editor.config.get("table.tableCellProperties.scopedHeaders"),c=this.getRows(e),d=this.getColumns(e);if(i>c)throw new fe("tableutils-insertrows-insert-out-of-range",this,{options:t});o.change((t=>{let o=e.getAttribute("headingRows")||0,u=e.getAttribute("footerRows")||0;if(o>i&&(o+=n),u&&i>c-u&&(u+=n),s||0!==i&&i!==c){const o=s?Math.max(i,r):i,c=new Fk(e,{endRow:o}),u=new Array(d).fill(1);for(const{row:e,column:o,cellHeight:a,cellWidth:l,cell:d}of c){const c=e+a-1,h=e<=r&&r<=c;e0){const n=Lk(t,c,r>1?{colspan:r}:void 0);a&&hv({table:e,writer:t,cell:n,row:i+o,column:s,scopedHeaders:l})}s+=Math.abs(r)-1}}}else{const o=lv(t,e,i,n,d);if(a)for(let n=0;n{let o=e.getAttribute("headingColumns");in-1)throw new fe("tableutils-removerows-row-index-out-of-range",this,{table:e,options:t});o.change((t=>{const o={first:s,last:r},{cellsToMove:i,cellsToTrim:a}=function(e,{first:t,last:o}){const i=new Map,n=[];for(const{row:s,column:r,cellHeight:a,cell:l}of new Fk(e,{endRow:o})){const e=s+a-1;if(s>=t&&s<=o&&e>o){const e=a-(o-s+1);i.set(r,{cell:l,rowspan:e})}if(s=t){let i;i=e>=o?o-t+1:e-t+1,n.push({cell:l,rowspan:a-i})}}return{cellsToMove:i,cellsToTrim:n}}(e,o);if(i.size){!function(e,t,o,i){const n=new Fk(e,{includeAllSlots:!0,row:t}),s=[...n],r=e.getChild(t);let a;for(const{column:e,cell:t,isAnchor:n}of s)if(o.has(e)){const{cell:t,rowspan:n}=o.get(e),s=a?i.createPositionAfter(a):i.createPositionAt(r,0);i.move(i.createRangeOn(t),s),Bk("rowspan",n,t,i),a=t}else n&&(a=t)}(e,r+1,i,t)}for(let o=r;o>=s;o--)t.remove(e.getChild(o));for(const{rowspan:e,cell:o}of a)Bk("rowspan",e,o,t);if(function(e,{first:t,last:o},i){const n=e.getAttribute("headingRows")||0;if(t=r){Bk("footerRows",o>=r?s-(i-o+1):t-1-i,e,n,0)}}(e,n,o,t),Qk(e,this)||Yk(e,this),Hk(this.editor)){let o=e.getAttribute("headingRows")||0;const i=this.getRows(e);for(;o{!function(e,t,o){const i=e.getAttribute("headingColumns")||0;if(i&&t.first=i;n--){for(const{cell:o,column:i,cellWidth:s}of[...new Fk(e)])i<=n&&s>1&&i+s>n?Bk("colspan",s-1,o,t):i===n&&t.remove(o);if(o[n]){const e=0===n?o[1]:o[n-1],i=parseFloat(o[n].getAttribute("columnWidth")),s=parseFloat(e.getAttribute("columnWidth"));t.remove(o[n]),t.setAttribute("columnWidth",i+s+"%",e)}}if(Yk(e,this)||Qk(e,this),Hk(this.editor)){let o=e.getAttribute("headingColumns")||0;const i=this.getColumns(e);for(;o{if(s>1){const{newCellsSpan:i,updatedSpan:r}=dv(s,t);Bk("colspan",r,e,o);const a={};i>1&&(a.colspan=i),n>1&&(a.rowspan=n);cv(s>t?t-1:s-1,o,o.createPositionAfter(e),a)}if(st===e)),c=a.filter((({cell:t,cellWidth:o,column:i})=>t!==e&&i===l||il));for(const{cell:e,cellWidth:t}of c)o.setAttribute("colspan",t+r,e);const d={};n>1&&(d.rowspan=n),cv(r,o,o.createPositionAfter(e),d);const u=i.getAttribute("headingColumns")||0;u>l&&Bk("headingColumns",u+r,i,o)}}))}splitCellHorizontally(e,t=2){const o=this.editor.model,i=e.parent,n=i.parent,s=n.getChildIndex(i),r=parseInt(e.getAttribute("rowspan")||"1"),a=parseInt(e.getAttribute("colspan")||"1");o.change((o=>{if(r>1){const i=[...new Fk(n,{startRow:s,endRow:s+r-1,includeAllSlots:!0})],{newCellsSpan:l,updatedSpan:c}=dv(r,t);Bk("rowspan",c,e,o);const{column:d}=i.find((({cell:t})=>t===e)),u={};l>1&&(u.rowspan=l),a>1&&(u.colspan=a);let h=0;for(const e of i){const{column:t,row:i}=e,n=t===d;h>=l&&n&&(h=0),i>=s+c&&n&&(h||cv(1,o,e.getPositionBefore(),u),h++)}}if(rs){const e=n+i;o.setAttribute("rowspan",e,t)}const d={};a>1&&(d.colspan=a),lv(o,n,s+1,i,1,d);const u=n.getAttribute("headingRows")||0;u>s&&Bk("headingRows",u+i,n,o);const h=n.getAttribute("footerRows")||0;l-h<=s&&Bk("footerRows",h+i,n,o)}}))}getColumns(e){return[...e.getChild(0).getChildren()].filter((e=>e.is("element","tableCell"))).reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}getRows(e){return Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0)}createTableWalker(e,t={}){return new Fk(e,t)}getSelectedTableCells(e){const t=[];for(const o of this.sortRanges(e.getRanges())){const e=o.getContainedElement();e&&e.is("element","tableCell")&&t.push(e)}return t}setFooterRowsCount(e,t,o){if(!this.editor.config.get("table.enableFooters"))return;const i=t.getAttribute("headingRows")||0,n=this.getRows(t),s=Math.min(o,n);if(Bk("footerRows",s,t,e,0),i+s>n){const o=n-s;this.setHeadingRowsCount(e,t,o)}}setHeadingRowsCount(e,t,o,i={}){const{updateCellType:n=!0,resetFormerHeadingCells:s=!0,autoExpand:r=!0}=i,a=this.getRows(t),l=!!this.editor.config.get("table.tableCellProperties.scopedHeaders"),c=t.getAttribute("headingRows")||0;let d=Math.min(o,a);if(d===c)return;Bk("headingRows",d,t,e,0);if(d+(t.getAttribute("footerRows")||0)>a){const o=a-d;this.setFooterRowsCount(e,t,o)}if(Hk(this.editor)){if(n){for(const{cell:o,row:i,column:n}of new Fk(t,{endRow:d-1}))hv({table:t,writer:e,cell:o,row:i,column:n,scopedHeaders:l});if(s&&dc){for(;dl){for(;de.parent.index));return this._getFirstLastIndexesObject(t)}getColumnIndexes(e){const t=e[0].findAncestor("table"),o=[...new Fk(t)].filter((t=>e.includes(t.cell))).map((e=>e.column));return this._getFirstLastIndexesObject(o)}isSelectionRectangular(e){if(e.length<2||!this._areCellInTheSameTableSection(e))return!1;const t=new Set,o=new Set;let i=0;for(const n of e){const{row:e,column:s}=this.getCellLocation(n),r=parseInt(n.getAttribute("rowspan"))||1,a=parseInt(n.getAttribute("colspan"))||1;t.add(e),o.add(s),r>1&&t.add(e+r-1),a>1&&o.add(s+a-1),i+=r*a}const n=function(e,t){const o=Array.from(e.values()),i=Array.from(t.values()),n=Math.max(...o),s=Math.min(...o),r=Math.max(...i),a=Math.min(...i);return(n-s+1)*(r-a+1)}(t,o);return n==i}sortRanges(e){return Array.from(e).sort(uv)}_getFirstLastIndexesObject(e){const t=e.sort(((e,t)=>e-t));return{first:t[0],last:t[t.length-1]}}_areCellInTheSameTableSection(e){const t=e[0].findAncestor("table"),o=this.getRows(t),i=this.getRowIndexes(e),n=parseInt(t.getAttribute("headingRows"))||0,s=parseInt(t.getAttribute("footerRows"))||0;if(!this._areIndexesInSameHeadingSection(i,n)||!this._areIndexesInSameFooterSection(i,o,s))return!1;const r=this.getColumnIndexes(e),a=parseInt(t.getAttribute("headingColumns"))||0;return this._areIndexesInSameHeadingSection(r,a)}_areIndexesInSameHeadingSection({first:e,last:t},o){return e=n===t>=n}}function lv(e,t,o,i,n,s={}){const r=[];for(let a=0;a=r&&i>=a)return void e.removeAttribute("tableCellType",n);let l="header";s&&(l=o{const n=o.getAttribute("headingRows")||0,s=o.getAttribute("footerRows")||0,r=i.createContainerElement("table",null,[]),a=i.createContainerElement("figure",{class:"table"},r),l=e.getRows(o);n>0&&i.insert(i.createPositionAt(r,"end"),i.createContainerElement("thead",null,i.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=n&&e.index0&&i.insert(i.createPositionAt(r,"end"),i.createContainerElement("tfoot",null,i.createSlot((e=>e.is("element","tableRow")&&e.index>=l-s))));for(const{positionOffset:e,filter:o}of t.additionalSlots)i.insert(i.createPositionAt(r,e),i.createSlot(o));return i.insert(i.createPositionAt(r,"after"),i.createSlot((e=>!e.is("element","tableRow")&&!t.additionalSlots.some((({filter:t})=>t(e)))))),t.asWidget?function(e,t){return t.setCustomProperty("table",!0,e),np(e,t,{hasSelectionHandle:!0})}(a,i):a}}function yv(e){return(o,{writer:i})=>{if(e.cellTypeEnabled?.()){return t(i,Nk(o.getAttribute("tableCellType"))?"th":"td")}const n=o.parent,s=n.parent,r=s.getChildIndex(n),a=new Fk(s,{row:r}),l=s.getAttribute("headingRows")||0,c=s.getAttribute("headingColumns")||0;let d=null;for(const e of a)if(e.cell==o){d=t(i,e.row{if(!t.parent.is("element","tableCell"))return null;if(!kv(t))return null;if(e.asWidget)return o.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const e=o.createContainerElement("p");return o.setCustomProperty("dataPipeline:transparentRendering",!0,e),e}}}function kv(e){return 1==e.parent.childCount&&!function(e){for(const t of e.getAttributeKeys())if(!t.startsWith("selection:")&&"htmlEmptyBlock"!=t)return!0;return!1}(e)}function vv(e){return(t,o)=>{const i=e.plugins.has("PlainTableOutput"),n=o.options.isClipboardPipeline,s=Av(e,t);return i||s||n?function(e,t,o){const i=o.plugins.get(av),n=t.writer,s=i.getRows(e),r=e.getAttribute("headingRows")||0,a=e.getAttribute("footerRows")||0,l=s-a,c=n.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=r&&e.indexe.is("element","tableRow")&&e.index>=l)),h=n.createSlot((e=>!e.is("element","tableRow"))),m=n.createContainerElement("thead",null,c),g=n.createContainerElement("tbody",null,d),p=n.createContainerElement("tfoot",null,u),f=[];r&&f.push(m);r+a{const n=e.plugins.has("PlainTableOutput"),s=i.isClipboardPipeline,r=Av(e,t);return(n||r||s)&&"table"===t.parent.name?o.createContainerElement("caption"):null}}function Av(e,t){const o=e.plugins.has("TableLayoutEditing"),i=e.config.get("table.tableLayout.stripFigureFromContentTable")??!1,n=t.findAncestor("table",{includeSelf:!0}),s=n?.getAttribute("tableType");return o&&(i||"layout"===s)}class xv extends wc{refresh(){const e=this.editor.model,t=e.document.selection,o=e.schema;this.isEnabled=function(e,t){const o=e.getFirstPosition().parent,i=o===o.root?o:o.parent;return t.checkChild(i,"table")}(t,o)}execute(e={}){const t=this.editor,o=t.model,i=t.plugins.get("TableUtils"),n=!!t.config.get("table.enableFooters"),s=t.config.get("table.defaultHeadings.rows"),r=t.config.get("table.defaultHeadings.columns"),a=t.config.get("table.defaultFooters");void 0===e.headingRows&&s&&(e.headingRows=s),void 0===e.headingColumns&&r&&(e.headingColumns=r),n&&void 0===e.footerRows&&a&&(e.footerRows=a),!n&&"footerRows"in e&&delete e.footerRows,o.change((t=>{const n=i.createTable(t,e);o.insertObject(n,null,null,{findOptimalPosition:"auto"}),t.setSelection(t.createPositionAt(n.getNodeByPath([0,0,0]),0))}))}}class Ev extends wc{order;constructor(e,t={}){super(e),this.order=t.order||"below"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),i="above"===this.order,n=o.getSelectionAffectedTableCells(t),s=o.getRowIndexes(n),r=i?s.first:s.last,a=n[0].findAncestor("table");o.insertRows(a,{at:i?r:r+1,copyStructureFromAbove:!i})}}class Tv extends wc{order;constructor(e,t={}){super(e),this.order=t.order||"right"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),i="left"===this.order,n=o.getSelectionAffectedTableCells(t),s=o.getColumnIndexes(n),r=i?s.first:s.last,a=n[0].findAncestor("table");o.insertColumns(a,{columns:1,at:i?r:r+1})}}class Pv extends wc{direction;constructor(e,t={}){super(e),this.direction=t.direction||"horizontally"}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===e.length}execute(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?e.splitCellHorizontally(t,2):e.splitCellVertically(t,2)}}class Sv extends wc{direction;isHorizontal;constructor(e,t){super(e),this.direction=t.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const e=this._getMergeableCell();this.value=e,this.isEnabled=!!e}execute(){const e=this.editor.model,t=e.document,o=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(t.selection)[0],i=this.value,n=this.direction;e.change((e=>{const t="right"==n||"down"==n,s=t?o:i,r=t?i:o,a=r.parent;!function(e,t,o){Iv(e)||(Iv(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end")));o.remove(e)}(r,s,e);const l=this.isHorizontal?"colspan":"rowspan",c=parseInt(o.getAttribute(l)||"1"),d=parseInt(i.getAttribute(l)||"1");e.setAttribute(l,c+d,s),e.setSelection(e.createRangeIn(s));const u=this.editor.plugins.get("TableUtils");Xk(a.findAncestor("table"),u)}))}_getMergeableCell(){const e=this.editor.model.document,t=this.editor.plugins.get("TableUtils"),o=t.getTableCellsContainingSelection(e.selection)[0];if(!o)return;const i=this.isHorizontal?function(e,t,o){const i=e.parent,n=i.parent,s="right"==t?e.nextSibling:e.previousSibling,r=(n.getAttribute("headingColumns")||0)>0;if(!s)return;const a="right"==t?e:s,l="right"==t?s:e,{column:c}=o.getCellLocation(a),{column:d}=o.getCellLocation(l),u=parseInt(a.getAttribute("colspan")||"1"),h=zk(o,a),m=zk(o,l);if(r&&h!=m)return;return c+u===d?s:void 0}(o,this.direction,t):function(e,t,o){const i=e.parent,n=i.parent,s=n.getChildIndex(i),r=o.getRows(n);if("down"==t&&s===r-1||"up"==t&&0===s)return null;const a=parseInt(e.getAttribute("rowspan")||"1"),l=n.getAttribute("headingRows")||0,c=n.getAttribute("footerRows")||0,d=r-c,u="up"==t&&s===d,h="up"==t&&s===l,m="down"==t&&s+a===l,g="down"==t&&s+a===d;if(l&&(m||h))return null;if(c&&(u||g))return null;const p=parseInt(e.getAttribute("rowspan")||"1"),f="down"==t?s+p:s,b=[...new Fk(n,{endRow:f})],w=b.find((t=>t.cell===e)),y=w.column,_=b.find((({row:e,cellHeight:o,column:i})=>i===y&&("down"==t?e===f:f===e+o)));return _&&_.cell?_.cell:null}(o,this.direction,t);if(!i)return;const n=this.isHorizontal?"rowspan":"colspan",s=parseInt(o.getAttribute(n)||"1");return parseInt(i.getAttribute(n)||"1")===s?i:void 0}}function Iv(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}class Rv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const i=o.findAncestor("table"),n=e.getRows(i)-1,s=e.getRowIndexes(t),r=0===s.first&&s.last===n;this.isEnabled=!r}else this.isEnabled=!1}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),i=t.getRowIndexes(o),n=o[0],s=n.findAncestor("table"),r=t.getCellLocation(n).column;e.change((e=>{const o=i.last-i.first+1;t.removeRows(s,{at:i.first,rows:o});const n=function(e,t,o,i){const n=e.getChild(Math.min(t,i-1));let s=n.getChild(0),r=0;for(const e of n.getChildren()){if(r>o)return s;s=e,r+=parseInt(e.getAttribute("colspan")||"1")}return s}(s,i.first,r,t.getRows(s));e.setSelection(e.createPositionAt(n,0))}))}}class Ov extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const i=o.findAncestor("table"),n=e.getColumns(i),{first:s,last:r}=e.getColumnIndexes(t);this.isEnabled=r-se.cell===t)).column,last:n.find((e=>e.cell===o)).column},r=function(e,t,o,i){const n=parseInt(o.getAttribute("colspan")||"1");return n>1?o:t.previousSibling||o.nextSibling?o.nextSibling||t.previousSibling:i.first?e.reverse().find((({column:e})=>ee>i.last)).cell}(n,t,o,s);this.editor.model.change((t=>{const o=s.last-s.first+1;e.removeColumns(i,{at:s.first,columns:o}),t.setSelection(t.createPositionAt(r,0))}))}}class Vv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection);if(0===o.length)return this.isEnabled=!1,void(this.value=!1);const i=o[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(i,"headingRows"),this.value=o.every((e=>this._isInHeading(e,e.parent.parent)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getRowIndexes(i),a=this.value?s:r+1,l=n.getAttribute("headingRows")||0;o.change((e=>{if(a){const t=Uk(n,a,a>l?l:0);for(const{cell:o}of t)Kk(o,a,e)}t.setHeadingRowsCount(e,n,a)}))}_isInHeading(e,t){const o=parseInt(t.getAttribute("headingRows")||"0");return!!o&&e.parent.indexthis._isInFooter(e,i)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getRowIndexes(i),a=t.getRows(n),l=this.value?a-(r+1):a-s,c=n.getAttribute("footerRows")||0;o.change((e=>{if(l){const t=a-l,o=a-c,i=Uk(n,t,t>o?o:0);for(const{cell:o}of i)Kk(o,t,e)}t.setFooterRowsCount(e,n,l)}))}_isInFooter(e,t){const o=parseInt(t.getAttribute("footerRows")||"0"),i=this.editor.plugins.get("TableUtils").getRows(t),n=e.parent.index;return!!o&&n>=i-o}}class Fv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection);if(0===o.length)return this.isEnabled=!1,void(this.value=!1);const i=o[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(i,"headingColumns"),this.value=o.every((t=>zk(e,t)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getColumnIndexes(i),a=this.value?s:r+1;o.change((e=>{if(a){const t=Gk(n,a);for(const{cell:o,column:i}of t)Jk(o,i,a,e)}t.setHeadingColumnsCount(e,n,a)}))}}class Mv extends wc{refresh(){const e=this.editor.plugins.get(av),t=e.getSelectedTableCells(this.editor.model.document.selection);this.isEnabled=e.isSelectionRectangular(t)}execute(){const e=this.editor.model,t=this.editor.plugins.get(av);e.change((o=>{const i=t.getSelectedTableCells(e.document.selection),n=i.shift(),{mergeWidth:s,mergeHeight:r}=function(e,t,o){let i=0,n=0;for(const e of t){const{row:t,column:s}=o.getCellLocation(e);i=Lv(e,s,i,"colspan"),n=Lv(e,t,n,"rowspan")}const{row:s,column:r}=o.getCellLocation(e),a=i-r,l=n-s;return{mergeWidth:a,mergeHeight:l}}(n,i,t);Bk("colspan",s,n,o),Bk("rowspan",r,n,o);for(const e of i)Nv(e,n,o);Xk(n.findAncestor("table"),t),o.setSelection(n,"in")}))}}function Nv(e,t,o){Bv(e)||(Bv(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end"))),o.remove(e)}function Bv(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}function Lv(e,t,o,i){const n=parseInt(e.getAttribute(i)||"1");return Math.max(o,t+n)}class zv extends wc{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),i=t.getRowIndexes(o),n=o[0].findAncestor("table"),s=[];for(let t=i.first;t<=i.last;t++)for(const o of n.getChild(t).getChildren())s.push(e.createRangeOn(o));e.change((e=>{e.setSelection(s)}))}}class jv extends wc{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection),i=o[0],n=o.pop(),s=i.findAncestor("table"),r=e.getCellLocation(i),a=e.getCellLocation(n),l=Math.min(r.column,a.column),c=Math.max(r.column,a.column),d=[];for(const e of new Fk(s,{startColumn:l,endColumn:c}))d.push(t.createRangeOn(e.cell));t.change((e=>{e.setSelection(d)}))}}function $v(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.differ.getChanges();let i=!1;const n=new Set;for(const t of o){let o=null;"insert"==t.type&&"table"==t.name&&(o=t.position.nodeAfter),"insert"!=t.type&&"remove"!=t.type||"tableRow"!=t.name&&"tableCell"!=t.name||(o=t.position.findAncestor("table")),Wv(t)&&(o=t.range.start.findAncestor("table")),o&&!n.has(o)&&(i=qv(o,e)||i,i=Hv(o,e)||i,n.add(o))}return i}(t,e)))}function qv(e,t){let o=!1;const i=function(e){const t=parseInt(e.getAttribute("headingRows")||"0"),o=parseInt(e.getAttribute("footerRows")||"0"),i=Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),n=i-o,s=[];for(const{row:o,cell:r,cellHeight:a}of new Fk(e)){if(a<2)continue;let e;if(e=o=n?i:n,o+a>e){const t=e-o;s.push({cell:r,rowspan:t})}}return s}(e);if(i.length){o=!0;for(const e of i)Bk("rowspan",e.rowspan,e.cell,t,1)}return o}function Hv(e,t){let o=!1;const i=function(e){const t=new Array(e.childCount).fill(0);for(const{rowIndex:o}of new Fk(e,{includeAllSlots:!0}))t[o]++;return t}(e),n=[];for(const[t,o]of i.entries())!o&&e.getChild(t).is("element","tableRow")&&n.push(t);if(n.length){o=!0;for(const o of n.reverse())t.remove(e.getChild(o)),i.splice(o,1)}const s=i.filter(((t,o)=>e.getChild(o).is("element","tableRow"))),r=s[0];if(!s.every((e=>e===r))){const i=s.reduce(((e,t)=>t>e?t:e),0);for(const[n,r]of s.entries()){const s=i-r;if(s){for(let o=0;ofunction(e,t){const o=t.document.differ.getChanges();let i=!1;for(const t of o)"insert"==t.type&&"table"==t.name&&(i=Kv(t.position.nodeAfter,e)||i),"insert"==t.type&&"tableRow"==t.name&&(i=Gv(t.position.nodeAfter,e)||i),"insert"==t.type&&"tableCell"==t.name&&(i=Jv(t.position.nodeAfter,e)||i),"remove"!=t.type&&"insert"!=t.type||!Zv(t)||(i=Jv(t.position.parent,e)||i);return i}(t,e)))}function Kv(e,t){let o=!1;for(const i of e.getChildren())i.is("element","tableRow")&&(o=Gv(i,t)||o);return o}function Gv(e,t){let o=!1;for(const i of e.getChildren())o=Jv(i,t)||o;return o}function Jv(e,t){if(0==e.childCount)return t.insertElement("paragraph",e),!0;const o=Array.from(e.getChildren()).filter((e=>e.is("$text")));for(const e of o)t.wrap(t.createRangeOn(e),"paragraph");return!!o.length}function Zv(e){return!!e.position.parent.is("element","tableCell")&&("insert"==e.type&&"$text"==e.name||"remove"==e.type)}function Qv(e,t,o){const i=o.getAttribute("headingRows")||0,n=o.getAttribute("footerRows")||0,s=e.getRows(o);if(i+n>s){return Bk("footerRows",Math.max(0,s-i),o,t,0),!0}return!1}function Yv(e,t){if(!e.is("element","paragraph"))return!1;const o=t.toViewElement(e);return!!o&&kv(e)!==o.is("element","span")}class Xv extends fc{_additionalSlots;static get pluginName(){return"TableEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[av]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,o=t.schema,i=e.conversion,n=e.plugins.get(av);e.config.define("table.enableFooters",!1);const s=!!e.config.get("table.enableFooters");o.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns",...s?["footerRows"]:[]]}),o.register("tableRow",{allowIn:"table",isLimit:!0}),o.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),i.for("upcast").add((e=>{e.on("element:figure",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{name:!0,classes:"table"}))return;const i=ov(t.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(t.viewItem,{name:!0,classes:"table"});const n=o.convertItem(i,t.modelCursor),s=to(n.modelRange.getItems());if(!s||!s.is("element","table"))return o.consumable.revert(t.viewItem,{name:!0,classes:"table"}),void(n.modelRange&&!n.modelRange.isCollapsed&&(t.modelRange=n.modelRange,t.modelCursor=n.modelCursor));o.convertChildren(t.viewItem,o.writer.createPositionAt(s,"end")),o.updateConversionResult(s,t)}))})),i.for("upcast").add(iv({enableFooters:s})),i.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows",...s?["footerRows"]:[]]},view:wv(n,{asWidget:!0,additionalSlots:this._additionalSlots})}),i.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows",...s?["footerRows"]:[]]},view:wv(n,{additionalSlots:this._additionalSlots})}),i.for("upcast").elementToElement({model:"tableRow",view:"tr"}),i.for("upcast").add((e=>{e.on("element:tr",((e,t)=>{t.viewItem.isEmpty&&0==t.modelCursor.index&&e.stop()}),{priority:"high"})})),i.for("downcast").elementToElement({model:"tableRow",view:(e,{writer:t})=>e.isEmpty?t.createEmptyElement("tr"):t.createContainerElement("tr")}),i.for("upcast").elementToElement({model:"tableCell",view:"td"}),i.for("upcast").elementToElement({model:"tableCell",view:"th"}),i.for("upcast").add(nv("td")),i.for("upcast").add(nv("th")),i.for("editingDowncast").elementToElement({model:"tableCell",view:yv({asWidget:!0,cellTypeEnabled:()=>Hk(this.editor)})}),i.for("dataDowncast").elementToElement({model:"tableCell",view:yv({cellTypeEnabled:()=>Hk(this.editor)})}),i.for("editingDowncast").elementToElement({model:"paragraph",view:_v({asWidget:!0}),converterPriority:"high"}),i.for("dataDowncast").elementToElement({model:"paragraph",view:_v(),converterPriority:"high"}),i.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),i.for("upcast").attributeToAttribute({model:{key:"colspan",value:eC("colspan")},view:"colspan"}),i.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),i.for("upcast").attributeToAttribute({model:{key:"rowspan",value:eC("rowspan")},view:"rowspan"}),this._addPlainTableOutputConverters(),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.config.define("table.defaultFooters",0),e.config.define("table.showHiddenBorders",!0),e.config.get("table.showHiddenBorders")&&e.editing.view.change((t=>{for(const o of e.editing.view.document.roots)t.addClass("ck-table-show-hidden-borders",o)})),e.commands.add("insertTable",new xv(e)),e.commands.add("insertTableRowAbove",new Ev(e,{order:"above"})),e.commands.add("insertTableRowBelow",new Ev(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new Tv(e,{order:"left"})),e.commands.add("insertTableColumnRight",new Tv(e,{order:"right"})),e.commands.add("removeTableRow",new Rv(e)),e.commands.add("removeTableColumn",new Ov(e)),e.commands.add("splitTableCellVertically",new Pv(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new Pv(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new Mv(e)),e.commands.add("mergeTableCellRight",new Sv(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new Sv(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new Sv(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new Sv(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new Fv(e)),e.commands.add("setTableRowHeader",new Vv(e)),s&&e.commands.add("setTableFooterRow",new Dv(e)),e.commands.add("selectTableRow",new zv(e)),e.commands.add("selectTableColumn",new jv(e)),$v(t),Uv(t),s&&function(e){const{model:t}=e,o=e.plugins.get(av);t.document.registerPostFixer((e=>{let i=!1;const n=t.document.differ.getChanges(),s=new Set;for(const e of n){let t=null;"attribute"!=e.type||"headingRows"!=e.attributeKey&&"footerRows"!=e.attributeKey?("insert"==e.type&&"tableRow"==e.name||"remove"==e.type&&"tableRow"==e.name)&&(t=e.position.parent):t=e.range.start.nodeAfter,t&&t.is("element","table")&&s.add(t)}for(const t of s)Qv(o,e,t)&&(i=!0);return i}))}(e),this.listenTo(t.document,"change:data",(()=>{Hk(e)||function(e,t){const o=e.document.differ,i=new Set,n=new Set,s=new Set;for(const e of o.getChanges()){let o;if("attribute"==e.type){const t=e.range.start.nodeAfter;if(!t||!t.is("element","table"))continue;if("headingRows"!=e.attributeKey&&"headingColumns"!=e.attributeKey&&"footerRows"!=e.attributeKey)continue;o=t}else"tableRow"!=e.name&&"tableCell"!=e.name||(o=e.position.findAncestor("table"));if(!o)continue;"insert"==e.type&&"tableRow"==e.name&&t.mapper.toViewElement(e.position.nodeAfter)&&i.add(e.position.nodeAfter);const r=o.getAttribute("headingRows")||0,a=o.getAttribute("headingColumns")||0,l=new Fk(o);for(const e of l){const o=t.mapper.toViewElement(e.cell);if(!o||!o.is("element"))continue;const l=e.rowYv(e,t.mapper)));for(const e of o)t.reconvertItem(e)}}(t,e.editing)}))}registerAdditionalSlot(e){this._additionalSlots.push(e)}_addPlainTableOutputConverters(){const e=this.editor;e.conversion.for("dataDowncast").elementToStructure({model:"table",view:vv(e),converterPriority:"high"}),e.plugins.has("TableCaptionEditing")&&e.conversion.for("dataDowncast").elementToElement({model:"caption",view:Cv(e),converterPriority:"high"}),e.plugins.has("TablePropertiesEditing")&&function(e){const t={"border-width":"tableBorderWidth","border-color":"tableBorderColor","border-style":"tableBorderStyle","background-color":"tableBackgroundColor"};for(const[o,i]of Object.entries(t))e.conversion.for("dataDowncast").add((t=>t.on(`attribute:${i}:table`,((t,i,n)=>{const{item:s,attributeNewValue:r}=i,{mapper:a,writer:l}=n,c=e.plugins.has("PlainTableOutput"),d=n.options.isClipboardPipeline,u=Av(e,s);if(!(c||u||d))return;if(!n.consumable.consume(s,t.name))return;const h=a.toViewElement(s);r?l.setStyle(o,r,h):l.removeStyle(o,h)}),{priority:"high"})))}(e)}}function eC(e){return t=>{const o=parseInt(t.getAttribute(e));return Number.isNaN(o)||o<=0?null:o}}class tC extends Au{items;keystrokes;focusTracker;constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new ro,this.focusTracker=new oo,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",((e,t)=>`${t} × ${e}`)),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":t.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:t.to("label")}]}],on:{mousedown:t.to((e=>{e.preventDefault()})),click:t.to((()=>{this.fire("execute")}))}}),this.on("boxover",((e,t)=>{const{row:o,column:i}=t.target.dataset;this.items.get(10*(parseInt(o,10)-1)+(parseInt(i,10)-1)).focus()})),this.focusTracker.on("change:focusedElement",((e,t,o)=>{if(!o)return;const{row:i,column:n}=o.dataset;this.set({rows:parseInt(i),columns:parseInt(n)})})),this.on("change:columns",(()=>this._highlightGridBoxes())),this.on("change:rows",(()=>this._highlightGridBoxes()))}render(){super.render(),Vu({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const e of this.items)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const e=this.rows,t=this.columns;this.items.map(((o,i)=>{const n=Math.floor(i/10){const i=e.commands.get("insertTable"),n=Zh(o);let s;return n.bind("isEnabled").to(i),n.buttonView.set({icon:od,label:t("Insert table"),tooltip:!0}),n.on("change:isOpen",(()=>{s||(s=new tC(o),n.panelView.children.add(s),s.delegate("execute").to(n),n.on("execute",(()=>{e.execute("insertTable",{rows:s.rows,columns:s.columns}),e.editing.view.focus()})))})),n})),e.ui.componentFactory.add("menuBar:insertTable",(o=>{const i=e.commands.get("insertTable"),n=new og(o),s=new tC(o);return s.delegate("execute").to(n),n.on("change:isOpen",((e,t,o)=>{o||s.reset()})),s.on("execute",(()=>{e.execute("insertTable",{rows:s.rows,columns:s.columns}),e.editing.view.focus()})),n.buttonView.set({label:t("Table"),icon:od}),n.panelView.children.add(s),n.bind("isEnabled").to(i),n})),e.ui.componentFactory.add("tableColumn",(e=>{const i=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:t("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:o?"insertTableColumnLeft":"insertTableColumnRight",label:t("Insert column left")}},{type:"button",model:{commandName:o?"insertTableColumnRight":"insertTableColumnLeft",label:t("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:t("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:t("Select column")}}];return this._prepareDropdown(t("Column"),'',i,e)})),e.ui.componentFactory.add("tableRow",(e=>{const o=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:t("Header row"),bindIsOn:!0}},i&&{type:"switchbutton",model:{commandName:"setTableFooterRow",label:t("Footer row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:t("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:t("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:t("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:t("Select row")}}].filter(Boolean);return this._prepareDropdown(t("Row"),'',o,e)})),e.ui.componentFactory.add("mergeTableCells",(e=>{const i=[{type:"button",model:{commandName:"mergeTableCellUp",label:t("Merge cell up")}},{type:"button",model:{commandName:o?"mergeTableCellRight":"mergeTableCellLeft",label:t("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:t("Merge cell down")}},{type:"button",model:{commandName:o?"mergeTableCellLeft":"mergeTableCellRight",label:t("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:t("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:t("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(t("Merge cells"),'',i,e)}))}_prepareDropdown(e,t,o,i){const n=this.editor,s=Zh(i),r=this._fillDropdownWithListOptions(s,o);return s.buttonView.set({label:e,icon:t,tooltip:!0}),s.bind("isEnabled").toMany(r,"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(s,"execute",(e=>{n.execute(e.source.commandName),e.source instanceof fh||n.editing.view.focus()})),s}_prepareMergeSplitButtonDropdown(e,t,o,i){const n=this.editor,s=Zh(i,Jh),r="mergeTableCells",a=n.commands.get(r),l=this._fillDropdownWithListOptions(s,o);return s.buttonView.set({label:e,icon:t,tooltip:!0,isEnabled:!0}),s.bind("isEnabled").toMany([a,...l],"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(s.buttonView,"execute",(()=>{n.execute(r),n.editing.view.focus()})),this.listenTo(s,"execute",(e=>{n.execute(e.source.commandName),n.editing.view.focus()})),s}_fillDropdownWithListOptions(e,t){const o=this.editor,i=[],n=new eo;for(const e of t)iC(e,o,i,n);return Xh(e,n),i}}function iC(e,t,o,i){if("button"===e.type||"switchbutton"===e.type){const i=e.model=new Jm(e.model),{commandName:n,bindIsOn:s}=e.model,r=t.commands.get(n);o.push(r),i.set({commandName:n}),i.bind("isEnabled").to(r),s&&i.bind("isOn").to(r,"value"),i.set({withText:!0})}i.add(e)}class nC extends fc{static get pluginName(){return"TableSelection"}static get isOfficialPlugin(){return!0}static get requires(){return[av,av]}init(){const e=this.editor,t=e.model,o=e.editing.view;this.listenTo(t,"deleteContent",((e,t)=>this._handleDeleteContent(e,t)),{priority:"high"}),this.listenTo(o.document,"insertText",((e,t)=>this._handleInsertTextEvent(e,t)),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const e=this.editor.plugins.get(av),t=this.editor.model.document.selection,o=e.getSelectedTableCells(t);return 0==o.length?null:o}getSelectionAsFragment(){const e=this.editor.plugins.get(av),t=this.getSelectedTableCells();return t?this.editor.model.change((o=>{const i=o.createDocumentFragment(),{first:n,last:s}=e.getColumnIndexes(t),{first:r,last:a}=e.getRowIndexes(t),l=t[0].findAncestor("table");let c=a,d=s;if(e.isSelectionRectangular(t)){const e={firstColumn:n,lastColumn:s,firstRow:r,lastRow:a};c=ev(l,e),d=tv(l,e)}const u=Wk(l,{startRow:r,startColumn:n,endRow:c,endColumn:d},o);return o.insert(u,i,0),i})):null}setCellSelection(e,t){const o=this._getCellsToSelect(e,t);this.editor.model.change((e=>{e.setSelection(o.cells.map((t=>e.createRangeOn(t))),{backward:o.backward})}))}getFocusCell(){const e=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return e&&e.is("element","tableCell")?e:null}getAnchorCell(){const e=to(this.editor.model.document.selection.getRanges()).getContainedElement();return e&&e.is("element","tableCell")?e:null}_defineSelectionConverter(){const e=this.editor,t=new Set;e.conversion.for("editingDowncast").add((e=>e.on("selection",((e,o,i)=>{const n=i.writer;!function(e){for(const o of t)e.removeClass("ck-editor__editable_selected",o);t.clear()}(n);const s=this.getSelectedTableCells();if(!s)return;for(const e of s){const o=i.mapper.toViewElement(e);n.addClass("ck-editor__editable_selected",o),t.add(o)}const r=i.mapper.toViewElement(s[s.length-1]);n.setSelection(r,0)}),{priority:"lowest"})))}_enablePluginDisabling(){const e=this.editor;this.on("change:isEnabled",(()=>{if(!this.isEnabled){const t=this.getSelectedTableCells();if(!t)return;e.model.change((o=>{const i=o.createPositionAt(t[0],0),n=e.model.schema.getNearestSelectionRange(i);o.setSelection(n)}))}}))}_handleDeleteContent(e,t){const o=this.editor.plugins.get(av),i=t[0],n=t[1],s=this.editor.model,r=!n||"backward"==n.direction,a=o.getSelectedTableCells(i);a.length&&(e.stop(),s.change((e=>{const t=a[r?a.length-1:0];s.change((e=>{for(const t of a)s.deleteContent(e.createSelection(t,"in"))}));const o=s.schema.getNearestSelectionRange(e.createPositionAt(t,0));i.is("documentSelection")?e.setSelection(o):i.setTo(o)})))}_handleInsertTextEvent(e,t){const o=this.editor,i=this.getSelectedTableCells();if(!i)return;const n=o.editing.view,s=o.editing.mapper,r=i.map((e=>n.createRangeOn(s.toViewElement(e))));t.selection=n.createSelection(r),t.preventDefault()}_getCellsToSelect(e,t){const o=this.editor.plugins.get("TableUtils"),i=o.getCellLocation(e),n=o.getCellLocation(t),s=Math.min(i.row,n.row),r=Math.max(i.row,n.row),a=Math.min(i.column,n.column),l=parseInt(t.getAttribute("colspan")||"1")-1,c=Math.max(i.column,n.column+l),d=new Array(r-s+1).fill(null).map((()=>[])),u={startRow:s,endRow:r,startColumn:a,endColumn:c};for(const{row:t,cell:o}of new Fk(e.findAncestor("table"),u))d[t-s].push(o);const h=n.rowe.reverse())),{cells:d.flat(),backward:h||m}}}class sC extends fc{static get pluginName(){return"TableClipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[ff,bf,nC,av]}init(){const e=this.editor.editing.view.document;this.listenTo(e,"copy",((e,t)=>this._onCopyCut(e,t))),this.listenTo(e,"cut",((e,t)=>this._onCopyCut(e,t))),this._listenToContentInsertion(),this.decorate("_replaceTableSlotCell")}_listenToContentInsertion(){const{editor:e}=this,t=e.plugins.get(bf),o=e.plugins.get(nC);let i=!1;t.on("contentInsertion",((e,t)=>{i="paste"===t.method})),this.listenTo(e.model,"insertContent",((e,[t,n])=>{(i||null!==o.getSelectedTableCells())&&this._onInsertContent(e,t,n)}),{priority:"high"}),t.on("contentInsertion",(()=>{i=!1}),{priority:"lowest"})}_onCopyCut(e,t){const o=this.editor.editing.view,i=this.editor.plugins.get(nC),n=this.editor.plugins.get(ff);i.getSelectedTableCells()&&("cut"!=e.name||this.editor.model.canEditAt(this.editor.model.document.selection))&&(t.preventDefault(),e.stop(),this.editor.model.enqueueChange({isUndoable:"cut"===e.name},(()=>{const s=n._copySelectedFragmentWithMarkers(e.name,this.editor.model.document.selection,(()=>i.getSelectionAsFragment()));o.document.fire("clipboardOutput",{dataTransfer:t.dataTransfer,content:this.editor.data.toView(s),method:e.name})})))}_onInsertContent(e,t,o){if(o&&!o.is("documentSelection"))return;const i=this.editor.model,n=this.editor.plugins.get(av),s=this.editor.plugins.get(ff),r=this.getTableIfOnlyTableInContent(t,i);if(!r)return;const a=n.getSelectionAffectedTableCells(i.document.selection);a.length?(e.stop(),t.is("documentFragment")?s._pasteMarkersIntoTransformedElement(t.markers,(e=>this._replaceSelectedCells(r,a,e))):this.editor.model.change((e=>{this._replaceSelectedCells(r,a,e)}))):Xk(r,n)}_replaceSelectedCells(e,t,o){const i=this.editor.plugins.get(av),n={width:i.getColumns(e),height:i.getRows(e)},s=function(e,t,o,i){const n=e[0].findAncestor("table"),s=i.getColumnIndexes(e),r=i.getRowIndexes(e),a={firstColumn:s.first,lastColumn:s.last,firstRow:r.first,lastRow:r.last},l=1===e.length;l&&(a.lastRow+=t.height-1,a.lastColumn+=t.width-1,function(e,t,o,i){const n=i.getColumns(e),s=i.getRows(e);o>n&&i.insertColumns(e,{at:n,columns:o-n});t>s&&i.insertRows(e,{at:s,rows:t-s})}(n,a.lastRow+1,a.lastColumn+1,i));l||!i.isSelectionRectangular(e)?function(e,t,o){const{firstRow:i,lastRow:n,firstColumn:s,lastColumn:r}=t,a={first:i,last:n},l={first:s,last:r};aC(e,s,a,o),aC(e,r+1,a,o),rC(e,i,l,o),rC(e,n+1,l,o,i)}(n,a,o):(a.lastRow=ev(n,a),a.lastColumn=tv(n,a));return a}(t,n,o,i),r=s.lastRow-s.firstRow+1,a=s.lastColumn-s.firstColumn+1;e=Wk(e,{startRow:0,startColumn:0,endRow:Math.min(r,n.height)-1,endColumn:Math.min(a,n.width)-1},o);const l=t[0].findAncestor("table"),c=this._replaceSelectedCellsWithPasted(e,n,l,s,o,i);if(this.editor.plugins.get("TableSelection").isEnabled){const e=i.sortRanges(c.map((e=>o.createRangeOn(e))));o.setSelection(e)}else o.setSelection(c[0],0);return l}_replaceSelectedCellsWithPasted(e,t,o,i,n,s){const{width:r,height:a}=t,l=function(e,t,o){const i=new Array(o).fill(null).map((()=>new Array(t).fill(null)));for(const{column:t,row:o,cell:n}of new Fk(e))i[o][t]=n;return i}(e,r,a),c=[...new Fk(o,{startRow:i.firstRow,endRow:i.lastRow,startColumn:i.firstColumn,endColumn:i.lastColumn,includeAllSlots:!0})],d=[];let u;for(const e of c){const{row:t,column:o}=e;o===i.firstColumn&&(u=e.getPositionBefore());const s=t-i.firstRow,c=o-i.firstColumn,h=l[s%a][c%r],m=h?n.cloneElement(h):null,g=this._replaceTableSlotCell(e,m,u,n);g&&(Zk(g,t,o,i.lastRow,i.lastColumn,n),d.push(g),u=n.createPositionAfter(g))}const h=parseInt(o.getAttribute("headingRows")||"0"),m=parseInt(o.getAttribute("headingColumns")||"0"),g=parseInt(o.getAttribute("footerRows")||"0"),p=s.getRows(o)-g,f=i.firstRowlC(e,t,o))).map((({cell:e})=>Kk(e,t,i)))}function aC(e,t,o,i){if(t<1)return;return Gk(e,t).filter((({row:e,cellHeight:t})=>lC(e,t,o))).map((({cell:e,column:o})=>Jk(e,o,t,i)))}function lC(e,t,o){const i=e+t-1,{first:n,last:s}=o;return e>=n&&e<=s||e=n}class cC extends fc{static get pluginName(){return"TableKeyboard"}static get isOfficialPlugin(){return!0}static get requires(){return[nC,av]}init(){const e=this.editor,t=e.editing.view.document,o=e.t;this.listenTo(t,"arrowKey",((...e)=>this._onArrowKey(...e)),{context:"table"}),this.listenTo(t,"tab",((...e)=>this._handleTabOnSelectedTable(...e)),{context:"figure"}),this.listenTo(t,"tab",((...e)=>this._handleTab(...e)),{context:["th","td"]}),e.accessibility.addKeystrokeInfoGroup({id:"table",label:o("Keystrokes that can be used in a table cell"),keystrokes:[{label:o("Move the selection to the next cell"),keystroke:"Tab"},{label:o("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:o("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:o("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(e,t){const o=this.editor.model.document.selection.getSelectedElement();o&&o.is("element","table")&&t.stopPropagation()}_handleTab(e,t){const o=this.editor,i=this.editor.plugins.get(av),n=this.editor.plugins.get("TableSelection"),s=o.model.document.selection,r=!t.shiftKey;let a=i.getTableCellsContainingSelection(s)[0];if(a||(a=n.getFocusCell()),!a)return;t.stopPropagation();const l=a.parent,c=l.parent,d=c.getChildIndex(l),u=l.getChildIndex(a)===l.childCount-1,h=d===i.getRows(c)-1;r&&h&&u&&o.execute("insertTableRowBelow")}_onArrowKey(e,t){const o=this.editor,i=Kt(t.keyCode,o.locale.contentLanguageDirection);this._handleArrowKeys(i,t.shiftKey)&&(t.preventDefault(),t.stopPropagation(),e.stop())}_handleArrowKeys(e,t){const o=this.editor.plugins.get(av),i=this.editor.plugins.get("TableSelection"),n=this.editor.model,s=n.document.selection,r=["right","down"].includes(e),a=o.getSelectedTableCells(s);if(a.length){let o;return o=t?i.getFocusCell():r?a[a.length-1]:a[0],this._navigateFromCellInDirection(o,e,t),!0}const l=s.focus.findAncestor("tableCell");if(!l)return!1;if(!s.isCollapsed)if(t){if(s.isBackward==r&&!s.containsEntireContent(l))return!1}else{const e=s.getSelectedElement();if(!e||!n.schema.isObject(e))return!1}return!!this._isSelectionAtCellEdge(s,l,r)&&(this._navigateFromCellInDirection(l,e,t),!0)}_isSelectionAtCellEdge(e,t,o){const i=this.editor.model,n=this.editor.model.schema,s=o?e.getLastPosition():e.getFirstPosition();if(!n.getLimitElement(s).is("element","tableCell")){return i.createPositionAt(t,o?"end":0).isTouching(s)}const r=i.createSelection(s);return i.modifySelection(r,{direction:o?"forward":"backward"}),s.isEqual(r.focus)}_navigateFromCellInDirection(e,t,o=!1){const i=this.editor.model,n=e.findAncestor("table"),s=[...new Fk(n,{includeAllSlots:!0})],{row:r,column:a}=s[s.length-1],l=s.find((({cell:t})=>t==e));let{row:c,column:d}=l;switch(t){case"left":d--;break;case"up":c--;break;case"right":d+=l.cellWidth;break;case"down":c+=l.cellHeight}if(c<0||c>r||d<0&&c<=0||d>a&&c>=r)return void i.change((e=>{e.setSelection(e.createRangeOn(n))}));d<0?(d=o?0:a,c--):d>a&&(d=o?a:0,c++);const u=s.find((e=>e.row==c&&e.column==d)).cell,h=["right","down"].includes(t),m=this.editor.plugins.get("TableSelection");if(o&&m.isEnabled){const t=m.getAnchorCell()||e;m.setCellSelection(t,u)}else{const e=i.createPositionAt(u,h?0:"end");i.change((t=>{t.setSelection(e)}))}}}class dC extends jn{domEventType=["mousemove","mouseleave"];onDomEvent(e){this.fire(e.type,e)}}class uC extends fc{static get pluginName(){return"TableMouse"}static get isOfficialPlugin(){return!0}static get requires(){return[nC,av]}init(){this.editor.editing.view.addObserver(dC),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(av);let o=!1;const i=e.plugins.get(nC);this.listenTo(e.editing.view.document,"mousedown",((n,s)=>{const r=e.model.document.selection;if(!this.isEnabled||!i.isEnabled)return;if(!s.domEvent.shiftKey)return;const a=i.getAnchorCell()||t.getTableCellsContainingSelection(r)[0];if(!a)return;const l=this._getModelTableCellFromDomEvent(s);l&&hC(a,l)&&(o=!0,i.setCellSelection(a,l),s.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{o=!1})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{o&&e.stop()}),{priority:"highest"})}_enableMouseDragSelection(){const e=this.editor;let t,o,i=!1,n=!1;const s=e.plugins.get(nC);this.listenTo(e.editing.view.document,"mousedown",((e,o)=>{this.isEnabled&&s.isEnabled&&(o.domEvent.shiftKey||o.domEvent.ctrlKey||o.domEvent.altKey||(t=this._getModelTableCellFromDomEvent(o)))})),this.listenTo(e.editing.view.document,"mousemove",((e,r)=>{if(!r.domEvent.buttons)return;if(!t)return;const a=this._getModelTableCellFromDomEvent(r);a&&hC(t,a)&&(o=a,i||o==t||(i=!0)),i&&(n=!0,s.setCellSelection(t,o),r.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{i=!1,n=!1,t=null,o=null})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{n&&e.stop()}),{priority:"highest"})}_getModelTableCellFromDomEvent(e){const t=e.target,o=this.editor.editing.view.createPositionAt(t,0);return this.editor.editing.mapper.toModelPosition(o).parent.findAncestor("tableCell",{includeSelf:!0})}}function hC(e,t){return e.parent.parent==t.parent.parent}class mC extends fc{static get requires(){return[Xv,oC,nC,uC,cC,sC,vp]}static get pluginName(){return"Table"}static get isOfficialPlugin(){return!0}}function gC(e){const t=pC(e);return t||fC(e)}function pC(e){const t=e.getSelectedElement();return t&&bC(t)?t:null}function fC(e){const t=e.getFirstPosition();if(!t)return null;let o=t.parent;for(;o;){if(o.is("element")&&bC(o))return o;o=o.parent}return null}function bC(e){return e.is("element")&&!!e.getCustomProperty("table")&&ip(e)}class wC extends Au{options;focusTracker;focusCycler;_focusables;dropdownView;inputView;keystrokes;_stillTyping;constructor(e,t){super(e),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=t,this.focusTracker=new oo,this._focusables=new tu,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new ro,this._stillTyping=!1,this.focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",((e,t,o)=>this._setInputValue(o)))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach((e=>{this.focusTracker.add(e.element),this._focusables.add(e)})),this.keystrokes.listenTo(this.element)}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const e=this.locale,t=e.t,o=this.bindTemplate,i=this._createColorSelector(e),n=Zh(e),s=new Au;return s.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:o.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",o.if("value","ck-hidden",(e=>""!=e))]}}]}),n.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),n.buttonView.children.add(s),n.buttonView.label=t("Color picker"),n.buttonView.tooltip=!0,n.panelPosition="rtl"===e.uiLanguageDirection?"se":"sw",n.panelView.children.add(i),n.bind("isEnabled").to(this,"isReadOnly",(e=>!e)),n.on("change:isOpen",((e,t,o)=>{o&&(i.updateSelectedColors(),i.showColorGridsFragment())})),n}_createInputTextView(){const e=this.locale,t=new Oh(e);return t.extendTemplate({on:{blur:t.bindTemplate.to("blur")}}),t.value=this.value,t.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(t),t.on("input",(()=>{const e=t.element.value,o=this.options.colorDefinitions.find((t=>e===t.label));this._stillTyping=!0,this.value=o&&o.color||e})),t.on("blur",(()=>{this._stillTyping=!1,this._setInputValue(t.element.value)})),t.delegate("input").to(this),t}_createColorSelector(e){const t=e.t,o=this.options.defaultColorValue||"",i=t(o?"Restore default":"Remove color"),n=new fm(e,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:i,colorPickerLabel:t("Color picker"),colorPickerViewConfig:!1!==this.options.colorPickerConfig&&{...this.options.colorPickerConfig,hideInput:!0}});n.appendUI(),n.on("execute",((e,t)=>{"colorPickerSaveButton"!==t.source?(this.value=t.value||o,this.fire("input"),"colorPicker"!==t.source&&(this.dropdownView.isOpen=!1)):this.dropdownView.isOpen=!1}));let s=this.value;return n.on("colorPicker:cancel",(()=>{this.value=s,this.fire("input"),this.dropdownView.isOpen=!1})),n.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{s=this.value})),n.bind("selectedColor").to(this,"value"),n}_setInputValue(e){if(!this._stillTyping){const t=yC(e),o=this.options.colorDefinitions.find((e=>t===yC(e.color)));this.inputView.value=o?o.label:e||""}}}function yC(e){return e.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const _C=e=>""===e;function kC(e){return{none:e("None"),solid:e("Solid"),dotted:e("Dotted"),dashed:e("Dashed"),double:e("Double"),groove:e("Groove"),ridge:e("Ridge"),inset:e("Inset"),outset:e("Outset")}}function vC(e){return e('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function CC(e){return e('The value is invalid. Try "10px" or "2em" or simply "2".')}function AC(e){return e=e.trim().toLowerCase(),_C(e)||gl(e)}function xC(e){return e=e.trim(),_C(e)||RC(e)||wl(e)||_l(e)}function EC(e){return e=e.trim(),_C(e)||RC(e)||wl(e)}function TC(e,t){const o=new eo,i=kC(e.t);for(const n in i){const s={type:"button",model:new Jm({_borderStyleValue:n,label:i[n],role:"menuitemradio",withText:!0})};"none"===n?s.model.bind("isOn").to(e,"borderStyle",(e=>"none"===t?!e:e===n)):s.model.bind("isOn").to(e,"borderStyle",(e=>e===n)),o.add(s)}return o}function PC(e){const{view:t,icons:o,toolbar:i,labels:n,propertyName:s,nameToValue:r,defaultValue:a}=e;for(const e in n){const l=new Lu(t.locale);l.set({role:"radio",isToggleable:!0,label:n[e],icon:o[e],tooltip:n[e]});const c=r?r(e):e;l.bind("isOn").to(t,s,(e=>{let t=e;return""===e&&a&&(t=a),c===t})),l.on("execute",(()=>{!a&&c&&t[s]===c?t[s]=void 0:t[s]=c})),i.items.add(l)}}const SC=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function IC(e){return(t,o,i)=>{const n=new wC(t.locale,{colorDefinitions:(s=e.colorConfig,s.map((e=>({color:e.model,label:e.label,options:{hasBorder:e.hasBorder}})))),columns:e.columns,defaultColorValue:e.defaultColorValue,colorPickerConfig:e.colorPickerConfig});var s;return n.inputView.set({id:o,ariaDescribedById:i}),n.bind("isReadOnly").to(t,"isEnabled",(e=>!e)),n.bind("hasError").to(t,"errorText",(e=>!!e)),n.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused").to(n),n}}function RC(e){const t=parseFloat(e);return!Number.isNaN(t)&&e===String(t)}class OC extends Au{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;cellTypeDropdown;paddingInput;widthInput;heightInput;horizontalAlignmentToolbar;verticalAlignmentToolbar;saveButtonView;cancelButtonView;backButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",padding:"",backgroundColor:"",width:"",height:"",horizontalAlignment:"",verticalAlignment:"",cellType:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:i,borderColorInput:n,borderRowLabel:s}=this._createBorderFields(),{backgroundRowLabel:r,backgroundInput:a}=this._createBackgroundFields(),{cellTypeRowLabel:l,cellTypeDropdown:c}=this._createCellTypeField(),{widthInput:d,operatorLabel:u,heightInput:h,dimensionsLabel:m}=this._createDimensionFields(),{horizontalAlignmentToolbar:g,verticalAlignmentToolbar:p,alignmentLabel:f}=this._createAlignmentFields();this.focusTracker=new oo,this.keystrokes=new ro,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=i,this.borderColorInput=n,this.backgroundInput=a,this.cellTypeDropdown=c,this.paddingInput=this._createPaddingField(),this.widthInput=d,this.heightInput=h,this.horizontalAlignmentToolbar=g,this.verticalAlignmentToolbar=p;const{saveButtonView:b,cancelButtonView:w}=this._createActionButtons();this.saveButtonView=b,this.cancelButtonView=w,this.backButtonView=this._createBackButton(),this._focusables=new tu,this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const y=new ju(e,{label:this.t("Cell properties")});y.children.add(this.backButtonView,0),this.children.add(y),this.children.add(new Km(e,{labelView:s,children:[s,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new Km(e,{children:[new Km(e,{labelView:l,children:[l,c],class:"ck-table-form__cell-type-row"}),new Km(e,{labelView:r,children:[r,a],class:"ck-table-form__background-row"})]})),this.children.add(new Km(e,{children:[new Km(e,{labelView:m,children:[m,d,u,h],class:"ck-table-form__dimensions-row"}),new Km(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new Km(e,{labelView:f,children:[f,g,p],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new Km(e,{children:[this.cancelButtonView,this.saveButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-cell-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.cellTypeDropdown,this.backgroundInput,this.widthInput,this.heightInput,this.paddingInput,this.horizontalAlignmentToolbar,this.verticalAlignmentToolbar,this.cancelButtonView,this.saveButtonView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableCellProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=IC({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),i=this.locale,n=this.t,s=n("Style"),r=new Du(i);r.text=n("Border");const a=kC(n),l=new Sh(i,rm);l.set({label:s,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),Xh(l.fieldView,TC(this,t.style),{role:"menu",ariaLabel:s});const c=new Sh(i,nm);c.set({label:n("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",VC),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new Sh(i,o);return d.set({label:n("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",VC),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,i,n)=>{VC(i)||(this.borderColor="",this.borderWidth=""),VC(n)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:r,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Background");const i=IC({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),n=new Sh(e,i);return n.set({label:t("Color"),class:"ck-table-cell-properties-form__background"}),n.fieldView.bind("value").to(this,"backgroundColor"),n.fieldView.on("input",(()=>{this.backgroundColor=n.fieldView.value})),{backgroundRowLabel:o,backgroundInput:n}}_createCellTypeField(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Cell type");const i=this._cellTypeLabels,n=new Sh(e,rm);return n.set({label:t("Cell type"),class:"ck-table-cell-properties-form__cell-type"}),n.fieldView.buttonView.set({ariaLabel:t("Cell type"),ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:t("Cell type")}),n.fieldView.buttonView.bind("label").to(this,"cellType",(e=>i[e||"data"])),n.fieldView.on("execute",(e=>{this.cellType=e.source._cellTypeValue})),n.bind("isEmpty").to(this,"cellType",(e=>!e)),Xh(n.fieldView,this._getCellTypeDefinitions(),{role:"menu",ariaLabel:t("Cell type")}),{cellTypeRowLabel:o,cellTypeDropdown:n}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Dimensions");const i=new Sh(e,nm);i.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),i.fieldView.bind("value").to(this,"width"),i.fieldView.on("input",(()=>{this.width=i.fieldView.element.value}));const n=new Au(e);n.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const s=new Sh(e,nm);return s.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),s.fieldView.bind("value").to(this,"height"),s.fieldView.on("input",(()=>{this.height=s.fieldView.element.value})),{dimensionsLabel:o,widthInput:i,operatorLabel:n,heightInput:s}}_createPaddingField(){const e=this.locale,t=this.t,o=new Sh(e,nm);return o.set({label:t("Padding"),class:"ck-table-cell-properties-form__padding"}),o.fieldView.bind("value").to(this,"padding"),o.fieldView.on("input",(()=>{this.padding=o.fieldView.element.value})),o}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Du(e),i={left:jc,center:'',right:'',justify:'',top:'',middle:'',bottom:''};o.text=t("Table cell text alignment");const n=new Wh(e),s="rtl"===e.contentLanguageDirection;n.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Horizontal text alignment toolbar"),class:"ck-table-cell-properties-form__horizontal-alignment-toolbar"}),PC({view:this,icons:i,toolbar:n,labels:this._horizontalAlignmentLabels,propertyName:"horizontalAlignment",nameToValue:e=>{if(s){if("left"===e)return"right";if("right"===e)return"left"}return e},defaultValue:this.options.defaultTableCellProperties.horizontalAlignment});const r=new Wh(e);return r.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Vertical text alignment toolbar"),class:"ck-table-cell-properties-form__vertical-alignment-toolbar"}),PC({view:this,icons:i,toolbar:r,labels:this._verticalAlignmentLabels,propertyName:"verticalAlignment",defaultValue:this.options.defaultTableCellProperties.verticalAlignment}),{horizontalAlignmentToolbar:n,verticalAlignmentToolbar:r,alignmentLabel:o}}_createActionButtons(){const e=this.locale,t=this.t,o=new Lu(e),i=new Lu(e),n=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return o.set({label:t("Save"),class:"ck-button-action",type:"submit",withText:!0}),o.bind("isEnabled").toMany(n,"errorText",((...e)=>e.every((e=>!e)))),i.set({label:t("Cancel"),withText:!0}),i.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:i}}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_getCellTypeDefinitions(){const e=new eo,t=this._cellTypeLabels,o=["data","header"];this.options.showScopedHeaderOptions&&o.push("header-column","header-row");for(const i of o){const o={type:"button",model:new Jm({_cellTypeValue:i,label:t[i],role:"menuitemradio",withText:!0})};o.model.bind("isOn").to(this,"cellType",(e=>e===i)),e.add(o)}return e}get _horizontalAlignmentLabels(){const e=this.locale,t=this.t,o=t("Align cell text to the left"),i=t("Align cell text to the center"),n=t("Align cell text to the right"),s=t("Justify cell text");return"rtl"===e.uiLanguageDirection?{right:n,center:i,left:o,justify:s}:{left:o,center:i,right:n,justify:s}}get _verticalAlignmentLabels(){const e=this.t;return{top:e("Align cell text to the top"),middle:e("Align cell text to the middle"),bottom:e("Align cell text to the bottom")}}get _cellTypeLabels(){const e=this.t;return{data:e("Data cell"),header:e("Header cell"),"header-column":e("Column header"),"header-row":e("Row header")}}}function VC(e){return"none"!==e}const DC=(()=>[dh.defaultPositions.northArrowSouth,dh.defaultPositions.northArrowSouthWest,dh.defaultPositions.northArrowSouthEast,dh.defaultPositions.southArrowNorth,dh.defaultPositions.southArrowNorthWest,dh.defaultPositions.southArrowNorthEast,dh.defaultPositions.viewportStickyNorth])();function FC(e,t){const o=e.plugins.get("ContextualBalloon"),i=e.editing.view.document.selection;let n;"cell"===t?fC(i)&&(n=NC(e)):gC(i)&&(n=MC(e)),n&&o.updatePosition(n)}function MC(e){const t=$k(e.model.document.selection),o=e.editing.mapper.toViewElement(t);return{target:e.editing.view.domConverter.mapViewToDom(o),positions:DC}}function NC(e){const t=e.editing.mapper,o=e.editing.view.domConverter,i=e.model.document.selection;if(i.rangeCount>1)return{target:()=>function(e,t){const o=t.editing.mapper,i=t.editing.view.domConverter,n=Array.from(e).map((e=>{const t=BC(e.start),n=o.toViewElement(t);return new ut(i.mapViewToDom(n))}));return ut.getBoundingRect(n)}(i.getRanges(),e),positions:DC};const n=BC(i.getFirstPosition()),s=t.toViewElement(n);return{target:o.mapViewToDom(s),positions:DC}}function BC(e){return e.nodeAfter&&e.nodeAfter.is("element","tableCell")?e.nodeAfter:e.findAncestor("tableCell")}const LC={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment",cellType:"tableCellType"};class zC extends fc{_defaultContentTableCellProperties;_defaultLayoutTableCellProperties;_balloon;view;_viewWithContentTableDefaults;_viewWithLayoutTableDefaults;_undoStepBatch;_isReady;static get requires(){return[Qm]}static get pluginName(){return"TableCellPropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:SC,backgroundColors:SC})}init(){const e=this.editor,t=e.t;this._defaultContentTableCellProperties=bv(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._defaultLayoutTableCellProperties=pv(void 0,{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._balloon=e.plugins.get(Qm),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",(o=>{const i=new Lu(o);i.set({label:t("Cell properties"),icon:'',tooltip:!0}),this.listenTo(i,"execute",(()=>this._showView()));const n=Object.values(LC).map((t=>e.commands.get(t))).filter((e=>!!e));return i.bind("isEnabled").toMany(n,"isEnabled",((...e)=>e.some((e=>e)))),i}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,o=t.config.get("table.tableCellProperties"),i=!!t.config.get("table.tableCellProperties.scopedHeaders"),n=Ch(o.borderColors),s=vh(t.locale,n),r=Ch(o.backgroundColors),a=vh(t.locale,r),l=!1!==o.colorPicker,c=new OC(t.locale,{borderColors:s,backgroundColors:a,defaultTableCellProperties:e,colorPickerConfig:!!l&&(o.colorPicker||{}),showScopedHeaderOptions:i}),d=t.t;c.render(),this.listenTo(c,"submit",(()=>{this._hideView()})),this.listenTo(c,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),c.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Su({emitter:c,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const u=vC(d),h=CC(d);c.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),c.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:c.borderColorInput,commandName:"tableCellBorderColor",errorText:u,validator:AC})),c.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:c.borderWidthInput,commandName:"tableCellBorderWidth",errorText:h,validator:EC})),c.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:c.paddingInput,commandName:"tableCellPadding",errorText:h,validator:xC})),c.on("change:width",this._getValidatedPropertyChangeCallback({viewField:c.widthInput,commandName:"tableCellWidth",errorText:h,validator:xC})),c.on("change:height",this._getValidatedPropertyChangeCallback({viewField:c.heightInput,commandName:"tableCellHeight",errorText:h,validator:xC})),c.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:c.backgroundInput,commandName:"tableCellBackgroundColor",errorText:u,validator:AC})),c.on("change:horizontalAlignment",this._getPropertyChangeCallback("tableCellHorizontalAlignment")),c.on("change:verticalAlignment",this._getPropertyChangeCallback("tableCellVerticalAlignment"));const m=t.commands.get("tableCellType");return m&&(c.cellTypeDropdown.bind("isEnabled").to(m,"isEnabled"),c.on("change:cellType",this._getPropertyChangeCallback("tableCellType"))),c}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableCellBorderStyle");Object.entries(LC).flatMap((([t,o])=>{const i=e.get(o);if(!i)return[];const n=t;let s;s="cellType"===n?"":this.view===this._viewWithContentTableDefaults?this._defaultContentTableCellProperties[n]||"":this._defaultLayoutTableCellProperties[n]||"";return[[t,i.value||s]]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor,t=gC(e.editing.view.document.selection),o=t&&e.editing.mapper.toModelElement(t),i=!o||"layout"!==o.getAttribute("tableType");i&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableCellProperties):i||this._viewWithLayoutTableDefaults||(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableCellProperties)),this.view=i?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:NC(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;fC(e.editing.view.document.selection)?this._isViewVisible&&FC(e,"cell"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,i)=>{this._isReady&&this.editor.execute(e,{value:i,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:i,errorText:n}=e,s=zo((()=>{o.errorText=n}),500);return(e,n,r)=>{s.cancel(),this._isReady&&(i(r)?(this.editor.execute(t,{value:r,batch:this._undoStepBatch}),o.errorText=null):s())}}}class jC extends wc{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,o){switch(super(e),this.attributeName=t,this._defaultContentTableValue=o,t){case"tableCellType":this._defaultLayoutTableValue="data";break;case"tableCellBorderStyle":this._defaultLayoutTableValue="none";break;case"tableCellHorizontalAlignment":this._defaultLayoutTableValue="left";break;case"tableCellVerticalAlignment":this._defaultLayoutTableValue="middle";break;default:this._defaultLayoutTableValue=void 0}}refresh(){const e=this.editor.model.document.selection,t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e),o=$k(e);this._defaultValue=o&&"layout"===o.getAttribute("tableType")?this._defaultLayoutTableValue:this._defaultContentTableValue,this.isEnabled=!!t.length,this.value=this._getSingleValue(t)}execute(e={}){const{value:t,batch:o}=e,i=this.editor.model,n=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(i.document.selection),s=this._getValueToSet(t);i.enqueueChange(o,(e=>{s?n.forEach((t=>e.setAttribute(this.attributeName,s,t))):n.forEach((t=>e.removeAttribute(this.attributeName,t))),this.fire("afterExecute",{writer:e,tableCells:n,valueToSet:s})}))}_getAttribute(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}_getSingleValue(e){const t=this._getAttribute(e[0]);return e.every((e=>this._getAttribute(e)===t))?t:void 0}}class $C extends jC{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class qC extends fc{static get pluginName(){return"TableCellWidthEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Xv]}init(){const e=this.editor,t=bv(e.config.get("table.tableCellProperties.defaultProperties"));jk(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",attributeName:"width",attributeType:"length",defaultValue:t.width}),e.commands.add("tableCellWidth",new $C(e,t.width))}}class HC extends jC{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class WC extends jC{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class UC extends jC{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class KC extends jC{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class GC extends jC{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class JC extends jC{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class ZC extends jC{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class QC extends jC{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class YC extends jC{constructor(e){super(e,"tableCellType","data"),this.on("afterExecute",((e,t)=>{const{writer:o,tableCells:i}=t,n=this.editor.plugins.get(av),s=function(e){const t=new Map;for(const o of e){const e=o.findAncestor("table");t.has(e)||t.set(e,[]),t.get(e).push(o)}return t}(i);XC(n,o,s.keys())}))}refresh(){super.refresh();const e=$k(this.editor.model.document.selection);this.isEnabled&&e&&"layout"===e.getAttribute("tableType")&&(this.isEnabled=!1)}_getAttribute(e){return e?.getAttribute(this.attributeName)||"data"}}function XC(e,t,o){let i=!1;for(const n of o){let o=n.getAttribute("headingRows")||0,s=n.getAttribute("headingColumns")||0;const r=n.getAttribute("footerRows")||0,a=e.getRows(n)-r,l=s>o;if(l){const r=eA(e,n,"column",s,o);r!==s&&(e.setHeadingColumnsCount(t,n,r,{updateCellType:!1}),s=r,i=!0)}let c=eA(e,n,"row",o,s);if(r>0&&(c=Math.min(c,a)),c!==o&&(e.setHeadingRowsCount(t,n,c,{updateCellType:!1}),o=c,i=!0),!l){const r=eA(e,n,"column",s,o);r!==s&&(e.setHeadingColumnsCount(t,n,r,{updateCellType:!1}),i=!0)}}return i}function eA(e,t,o,i,n){const s="row"===o?e.getRows(t):e.getColumns(t);let r=i;for(let e=0;e=n&&(a=!0)}if(!s)return Math.min(r,e);a&&(r=Math.max(r,e+1))}return Math.min(r,s)}const tA=/^(top|middle|bottom)$/,oA=/^(left|center|right|justify)$/;class iA extends fc{static get pluginName(){return"TableCellPropertiesEditing"}static get licenseFeatureCode(){return"TCP"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[Xv,qC]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const i=bv(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection});e.data.addStyleProcessorRules(Hl),function(e,t){const{conversion:o}=e,{schema:i}=e.model,n={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};i.extend("tableCell",{allowAttributes:Object.values(n)});for(const e of Object.values(n))i.setAttributeProperties(e,{isFormatting:!0});vk(e,"td",n,t),vk(e,"th",n,t),Ck(o,{modelElement:"tableCell",modelAttribute:n.style,styleName:"border-style"}),Ck(o,{modelElement:"tableCell",modelAttribute:n.color,styleName:"border-color"}),Ck(o,{modelElement:"tableCell",modelAttribute:n.width,styleName:"border-width"})}(e,{color:i.borderColor,style:i.borderStyle,width:i.borderWidth}),e.commands.add("tableCellBorderStyle",new JC(e,i.borderStyle)),e.commands.add("tableCellBorderColor",new ZC(e,i.borderColor)),e.commands.add("tableCellBorderWidth",new QC(e,i.borderWidth)),jk(t,o,{modelAttribute:"tableCellHeight",styleName:"height",attributeName:"height",attributeType:"length",defaultValue:i.height}),e.commands.add("tableCellHeight",new WC(e,i.height)),e.data.addStyleProcessorRules(tc),jk(t,o,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:i.padding}),function(e,t){Tk(e,"td",t),Tk(e,"th",t)}(e,i.padding),e.commands.add("tableCellPadding",new HC(e,i.padding)),e.data.addStyleProcessorRules(Bl),jk(t,o,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",attributeName:"bgcolor",attributeType:"color",defaultValue:i.backgroundColor}),e.commands.add("tableCellBackgroundColor",new UC(e,i.backgroundColor)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellHorizontalAlignment"]}),e.setAttributeProperties("tableCellHorizontalAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellHorizontalAlignment"},view:e=>({key:"style",value:{"text-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"text-align":oA}},model:{key:"tableCellHorizontalAlignment",value:(e,t,i)=>{const n=xk(o,"left",i),s=e.getStyle("text-align");if(s!==n)return s;t.consumable.consume(e,{styles:"text-align"})}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:oA}},model:{key:"tableCellHorizontalAlignment",value:(e,t,i)=>{const n=xk(o,"left",i),s=e.getAttribute("align");if(s!==n)return s;t.consumable.consume(e,{attributes:"align"})}}})}(t,o,i.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new GC(e,i.horizontalAlignment)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellVerticalAlignment"]}),e.setAttributeProperties("tableCellVerticalAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellVerticalAlignment"},view:e=>({key:"style",value:{"vertical-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"vertical-align":tA}},model:{key:"tableCellVerticalAlignment",value:(e,t,i)=>{const n=xk(o,"middle",i),s=e.getStyle("vertical-align");if(s!==n)return s;t.consumable.consume(e,{styles:"vertical-align"})}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:tA}},model:{key:"tableCellVerticalAlignment",value:(e,t,i)=>{const n=xk(o,"middle",i),s=e.getAttribute("valign");if(s!==n)return s;t.consumable.consume(e,{attributes:"valign"})}}})}(t,o,i.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new KC(e,i.verticalAlignment)),function(e){const{model:t,conversion:o,editing:i,config:n}=e,{schema:s}=t;n.define("table.tableCellProperties.scopedHeaders",!0);const r=!!n.get("table.tableCellProperties.scopedHeaders"),a=e.plugins.get(av);s.extend("tableCell",{allowAttributes:["tableCellType"]}),s.setAttributeProperties("tableCellType",{isFormatting:!0}),s.addAttributeCheck((e=>{const t=Array.from(e).reverse().find((e=>"table"===e.name));if("layout"===t?.getAttribute("tableType"))return!1}),"tableCellType"),o.for("upcast").add((e=>{e.on("element:th",((e,t,o)=>{const{writer:i}=o,{modelRange:n}=t,s=n?.start.nodeAfter;s?.is("element","tableCell")&&!s.hasAttribute("tableCellType")&&i.setAttribute("tableCellType","header",s)})),e.on("element:table",((e,t,o)=>{const{writer:i}=o,{modelRange:n}=t,s=n?.start.nodeAfter;if(s?.is("element","table")&&"layout"===s.getAttribute("tableType"))for(const{cell:e}of new Fk(s)){if(Nk(e.getAttribute("tableCellType"))){i.setAttribute("tableType","content",s);break}}}),{priority:ge.low-1})})),r&&(o.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellType"},view:e=>{switch(e){case"header-row":return{key:"scope",value:"row"};case"header-column":return{key:"scope",value:"col"}}}}),o.for("upcast").add((e=>{e.on("element:th",((e,t,o)=>{const{writer:i,consumable:n}=o,{viewItem:s,modelRange:r}=t,a=r.start.nodeAfter,l=a?.getAttribute("tableCellType");if("header"===l&&n.consume(s,{attributes:["scope"]})){switch(s.getAttribute("scope")){case"row":i.setAttribute("tableCellType","header-row",a);break;case"col":i.setAttribute("tableCellType","header-column",a)}}}))})));t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges(),i=new Set;for(const e of o){if("attribute"===e.type&&("headingRows"===e.attributeKey||"headingColumns"===e.attributeKey)){const t=e.range.start.nodeAfter;t?.is("element","table")&&"$graveyard"!==t.root.rootName&&i.add(t)}if("attribute"===e.type&&"tableCellType"===e.attributeKey){const t=e.range.start.nodeAfter;if(t?.is("element","tableCell")&&"$graveyard"!==t.root.rootName){const e=t.findAncestor("table");e&&i.add(e)}}if("insert"===e.type&&e.position.nodeAfter)for(const{item:o}of t.createRangeOn(e.position.nodeAfter))if(o.is("element","tableCell")&&o.getAttribute("tableCellType")&&"$graveyard"!==o.root.rootName){const e=o.findAncestor("table");e&&i.add(e)}}return XC(a,e,i)})),t.document.on("change:data",(()=>{const{differ:e}=t.document,o=new Set;for(const t of e.getChanges())if("attribute"===t.type&&"tableCellType"===t.attributeKey){const e=t.range.start.nodeAfter;e.is("element","tableCell")&&o.add(e)}for(const e of o){const t=i.mapper.toViewElement(e),o=Nk(e.getAttribute("tableCellType"))?"th":"td";t?.name!==o&&i.reconvertItem(e)}}))}(e),e.commands.add("tableCellType",new YC(e))}}class nA extends wc{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,o){super(e),this.attributeName=t,this._defaultContentTableValue=o,this._defaultLayoutTableValue="tableBorderStyle"===t?"none":void 0}refresh(){const e=$k(this.editor.model.document.selection);this._defaultValue=e&&"layout"===e.getAttribute("tableType")?this._defaultLayoutTableValue:this._defaultContentTableValue,this.isEnabled=!!e,this.value=this._getValue(e)}execute(e={}){const t=this.editor.model,o=t.document.selection,{value:i,batch:n}=e,s=$k(o),r=this._getValueToSet(i);t.enqueueChange(n,(e=>{r?e.setAttribute(this.attributeName,r,s):e.removeAttribute(this.attributeName,s)}))}_getValue(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}}class sA extends nA{constructor(e,t){super(e,"tableBackgroundColor",t)}}class rA extends nA{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class aA extends nA{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class lA extends nA{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class cA extends nA{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class dA extends nA{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class uA extends nA{constructor(e,t){super(e,"tableAlignment",t)}}class hA extends fc{static get pluginName(){return"TablePropertiesEditing"}static get licenseFeatureCode(){return"TCP"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[Xv]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const i=fv(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),n=!0===e.config.get("table.tableProperties.alignment.useInlineStyles");e.data.addStyleProcessorRules(ec),e.data.addStyleProcessorRules(Hl),function(e,t){const{conversion:o}=e,{schema:i}=e.model,n={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};i.extend("table",{allowAttributes:Object.values(n)});for(const e of Object.values(n))i.setAttributeProperties(e,{isFormatting:!0});vk(e,"table",n,t),Ak(o,{modelAttribute:n.color,styleName:"border-color"}),Ak(o,{modelAttribute:n.style,styleName:"border-style"}),Ak(o,{modelAttribute:n.width,styleName:"border-width"})}(e,{color:i.borderColor,style:i.borderStyle,width:i.borderWidth}),e.commands.add("tableBorderColor",new rA(e,i.borderColor)),e.commands.add("tableBorderStyle",new aA(e,i.borderStyle)),e.commands.add("tableBorderWidth",new lA(e,i.borderWidth)),function(e,t,o,i){e.extend("table",{allowAttributes:["tableAlignment"]}),e.setAttributeProperties("tableAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment",values:["left","center","right","blockLeft","blockRight"]},view:{left:i?{key:"style",value:{float:"left","margin-right":"var(--ck-content-table-style-spacing, 1.5em)"}}:{key:"class",value:Pk.className},right:i?{key:"style",value:{float:"right","margin-left":"var(--ck-content-table-style-spacing, 1.5em)"}}:{key:"class",value:Ik.className},center:i?{key:"style",value:{"margin-left":"auto","margin-right":"auto"}}:{key:"class",value:Sk.className},blockLeft:i?{key:"style",value:{"margin-left":"0","margin-right":"auto"}}:{key:"class",value:Rk.className},blockRight:i?{key:"style",value:{"margin-left":"auto","margin-right":"0"}}:{key:"class",value:Ok.className}},converterPriority:"high"}),Vk.forEach((e=>{t.for("upcast").attributeToAttribute({view:e.view,model:{key:"tableAlignment",value:(t,i,n)=>{if(function(e){return"figure"==e.name&&!e.hasClass("table")}(t))return;const s=xk(o,"",n),r=e.getAlign(t),a=e.getConsumables(t);return i.consumable.consume(t,a),r!==s?r:void 0}}})})),t.for("upcast").add(function(e){return t=>{t.on("element:div",((t,o,i)=>{if(!i.consumable.test(o.viewItem,{name:!0,attributes:"align"}))return;const n=ov(o.viewItem);if(!n||!i.consumable.test(n,{name:!0}))return;i.consumable.consume(o.viewItem,{name:!0,attributes:"align"});const s=i.convertItem(n,o.modelCursor),r=to(s.modelRange.getItems());if(!r||!r.is("element","table"))return i.consumable.revert(o.viewItem,{name:!0,attributes:"align"}),void(s.modelRange&&!s.modelRange.isCollapsed&&(o.modelRange=s.modelRange,o.modelCursor=s.modelCursor));const a=function(e,t,o){if(e)switch(e){case"right":return"right"===t?"right":"left"===t?"left":"blockRight";case"center":return"center";case"left":return void 0===t?"blockLeft":"left";default:return o}return}(o.viewItem.getAttribute("align"),n.getAttribute("align"),xk(e,"",o));a&&i.writer.setAttribute("tableAlignment",a,r),i.convertChildren(o.viewItem,i.writer.createPositionAt(r,"end")),i.updateConversionResult(r,o)}))}}(o))}(t,o,i.alignment,n),e.commands.add("tableAlignment",new uA(e,i.alignment)),pA(t,o,{modelAttribute:"tableWidth",styleName:"width",attributeName:"width",attributeType:"length",defaultValue:i.width}),e.commands.add("tableWidth",new cA(e,i.width)),pA(t,o,{modelAttribute:"tableHeight",styleName:"height",attributeName:"height",attributeType:"length",defaultValue:i.height}),e.commands.add("tableHeight",new dA(e,i.height)),e.data.addStyleProcessorRules(Bl),function(e,t,o){const{modelAttribute:i}=o;e.extend("table",{allowAttributes:[i]}),e.setAttributeProperties(i,{isFormatting:!0}),kk(t,{viewElement:"table",...o}),Ak(t,o)}(t,o,{modelAttribute:"tableBackgroundColor",styleName:"background-color",attributeName:"bgcolor",attributeType:"color",defaultValue:i.backgroundColor}),e.commands.add("tableBackgroundColor",new sA(e,i.backgroundColor)),Tk(e,"table");const s=e.editing.view.document;this.listenTo(s,"clipboardOutput",((t,o)=>{e.editing.view.change((e=>{for(const{item:t}of e.createRangeIn(o.content))mA(t,e);o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content))}))}),{priority:"lowest"})}}function mA(e,t){if(!e.is("element","table"))return;const o=e.getAttribute("align"),i=e.getStyle("float"),n=e.getStyle("margin-left"),s=e.getStyle("margin-right");o&&"center"===o||i&&"right"===i&&o&&"right"===o?gA(t,o,e):void 0===i&&"auto"===n&&"0"===s&&gA(t,"right",e)}function gA(e,t,o){const i=e.createPositionBefore(o),n=e.createContainerElement("div",{align:t},o);e.insert(i,n)}function pA(e,t,o){const{modelAttribute:i}=o;e.extend("table",{allowAttributes:[i]}),e.setAttributeProperties(i,{isFormatting:!0}),kk(t,{viewElement:/^(table|figure)$/,shouldUpcast:e=>!("table"==e.name&&"figure"==e.parent.name||"figure"==e.name&&!e.hasClass("table")),...o}),Ck(t,{modelElement:"table",...o})}class fA extends Au{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;widthInput;heightInput;alignmentToolbar;saveButtonView;cancelButtonView;backButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:i,borderColorInput:n,borderRowLabel:s}=this._createBorderFields(),{backgroundRowLabel:r,backgroundInput:a}=this._createBackgroundFields(),{widthInput:l,operatorLabel:c,heightInput:d,dimensionsLabel:u}=this._createDimensionFields(),{alignmentToolbar:h,alignmentLabel:m}=this._createAlignmentFields();this.focusTracker=new oo,this.keystrokes=new ro,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=i,this.borderColorInput=n,this.backgroundInput=a,this.widthInput=l,this.heightInput=d,this.alignmentToolbar=h;const{saveButtonView:g,cancelButtonView:p}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=p,this.backButtonView=this._createBackButton(),this._focusables=new tu,this._focusCycler=new $u({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const f=new ju(e,{label:this.t("Table properties")});f.children.add(this.backButtonView,0),this.children.add(f),this.children.add(new Km(e,{labelView:s,children:[s,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new Km(e,{children:[new Km(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new Km(e,{labelView:r,children:[r,a],class:"ck-table-form__background-row"})]})),this.children.add(new Km(e,{labelView:m,children:[m,h],class:"ck-table-properties-form__alignment-row"})),this.children.add(new Km(e,{children:[this.cancelButtonView,this.saveButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderWidthInput,this.borderColorInput,this.widthInput,this.heightInput,this.backgroundInput,this.alignmentToolbar,this.cancelButtonView,this.saveButtonView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=IC({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),i=this.locale,n=this.t,s=n("Style"),r=new Du(i);r.text=n("Border");const a=kC(n),l=new Sh(i,rm);l.set({label:s,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),Xh(l.fieldView,TC(this,t.style),{role:"menu",ariaLabel:s});const c=new Sh(i,nm);c.set({label:n("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",bA),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new Sh(i,o);return d.set({label:n("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",bA),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,i,n)=>{bA(i)||(this.borderColor="",this.borderWidth=""),bA(n)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:r,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Background");const i=IC({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),n=new Sh(e,i);return n.set({label:t("Color"),class:"ck-table-properties-form__background"}),n.fieldView.bind("value").to(this,"backgroundColor"),n.fieldView.on("input",(()=>{this.backgroundColor=n.fieldView.value})),{backgroundRowLabel:o,backgroundInput:n}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Dimensions");const i=new Sh(e,nm);i.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),i.fieldView.bind("value").to(this,"width"),i.fieldView.on("input",(()=>{this.width=i.fieldView.element.value}));const n=new Au(e);n.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const s=new Sh(e,nm);return s.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),s.fieldView.bind("value").to(this,"height"),s.fieldView.on("input",(()=>{this.height=s.fieldView.element.value})),{dimensionsLabel:o,widthInput:i,operatorLabel:n,heightInput:s}}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Table Alignment");const i=new Wh(e);return i.set({role:"radiogroup",isCompact:!0,ariaLabel:t("Table alignment toolbar")}),PC({view:this,icons:{left:Jc,center:Gc,right:Zc,blockLeft:Yc,blockRight:Xc},toolbar:i,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:o,alignmentToolbar:i}}_createActionButtons(){const e=this.locale,t=this.t,o=new Lu(e),i=new Lu(e),n=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return o.set({label:t("Save"),class:"ck-button-action",type:"submit",withText:!0}),o.bind("isEnabled").toMany(n,"errorText",((...e)=>e.every((e=>!e)))),i.set({label:t("Cancel"),withText:!0}),i.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:i}}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}get _alignmentLabels(){const e=this.locale,t=this.t,o=t("Align table to the left with no text wrapping"),i=t("Align table to the right with no text wrapping"),n=t("Align table to the left with text wrapping"),s=t("Center table with no text wrapping"),r=t("Align table to the right with text wrapping");return"rtl"===e.uiLanguageDirection?{right:r,left:n,blockRight:i,center:s,blockLeft:o}:{blockLeft:o,center:s,blockRight:i,left:n,right:r}}}function bA(e){return"none"!==e}const wA={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class yA extends fc{_defaultContentTableProperties;_defaultLayoutTableProperties;_balloon;view=null;_viewWithContentTableDefaults=null;_viewWithLayoutTableDefaults=null;_undoStepBatch;_isReady;static get requires(){return[Qm]}static get pluginName(){return"TablePropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableProperties",{borderColors:SC,backgroundColors:SC})}init(){const e=this.editor;this._defaultContentTableProperties=fv(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._defaultLayoutTableProperties=pv(),this._balloon=e.plugins.get(Qm),e.ui.componentFactory.add("tableProperties",(()=>this._createTablePropertiesButton()))}_createTablePropertiesButton(){const e=this.editor,t=e.t,o=new Lu(e.locale);o.set({label:t("Table properties"),icon:'',tooltip:!0}),this.listenTo(o,"execute",(()=>this._showView()));const i=Object.values(wA).map((t=>e.commands.get(t)));return o.bind("isEnabled").toMany(i,"isEnabled",((...e)=>e.some((e=>e)))),o}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,o=t.config.get("table.tableProperties"),i=Ch(o.borderColors),n=vh(t.locale,i),s=Ch(o.backgroundColors),r=vh(t.locale,s),a=!1!==o.colorPicker,l=new fA(t.locale,{borderColors:n,backgroundColors:r,defaultTableProperties:e,colorPickerConfig:!!a&&(o.colorPicker||{})}),c=t.t;l.render(),this.listenTo(l,"submit",(()=>{this._hideView()})),this.listenTo(l,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),l.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Su({emitter:l,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const d=vC(c),u=CC(c);return l.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),l.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:l.borderColorInput,commandName:"tableBorderColor",errorText:d,validator:AC})),l.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:l.borderWidthInput,commandName:"tableBorderWidth",errorText:u,validator:EC})),l.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:l.backgroundInput,commandName:"tableBackgroundColor",errorText:d,validator:AC})),l.on("change:width",this._getValidatedPropertyChangeCallback({viewField:l.widthInput,commandName:"tableWidth",errorText:u,validator:xC})),l.on("change:height",this._getValidatedPropertyChangeCallback({viewField:l.heightInput,commandName:"tableHeight",errorText:u,validator:xC})),l.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),l}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(wA).map((([t,o])=>{const i=t,n=this.view===this._viewWithContentTableDefaults?this._defaultContentTableProperties[i]||"":this._defaultLayoutTableProperties[i]||"";return[i,e.get(o).value||n]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor,t=gC(e.editing.view.document.selection),o=t&&e.editing.mapper.toModelElement(t),i=!o||"layout"!==o.getAttribute("tableType");i&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableProperties):i||this._viewWithLayoutTableDefaults||(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableProperties)),this.view=i?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:MC(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;gC(e.editing.view.document.selection)?this._isViewVisible&&FC(e,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,i)=>{this._isReady&&this.editor.execute(e,{value:i,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:i,errorText:n}=e,s=zo((()=>{o.errorText=n}),500);return(e,n,r)=>{s.cancel(),this._isReady&&(i(r)?(this.editor.execute(t,{value:r,batch:this._undoStepBatch}),o.errorText=null):s())}}}function _A(e){const t=parseFloat(e);return e.endsWith("pt")?kA(96*t/72):e.endsWith("pc")?kA(12*t*96/72):e.endsWith("in")?kA(96*t):e.endsWith("cm")?kA(96*t/2.54):e.endsWith("mm")?kA(t/10*96/2.54):e}function kA(e){return Math.round(e)+"px"}function vA(e,t,o){if(!e.childCount)return;const i=new rl(e.document),n=function(e,t){const o=t.createRangeIn(e),i=[],n=new Set;for(const e of o.getItems()){if(!e.is("element")||!e.name.match(/^(p|h\d+|li|div)$/))continue;let t=VA(e);if(void 0===t||0!=parseFloat(t)||Array.from(e.getClassNames()).find((e=>e.startsWith("MsoList")))||(t=void 0),e.hasStyle("mso-list")&&"none"!==e.getStyle("mso-list")||void 0!==t&&n.has(t)){const o=RA(e);i.push({element:e,id:o.id,order:o.order,indent:o.indent,marginLeft:t}),void 0!==t&&n.add(t)}else n.clear()}return i}(e,i);if(!n.length)return;const s={},r=[];let a=AA();for(const e of n)if(void 0!==e.indent){EA(e)||(xA(i,r,a),a=AA(),r.length=0);const n=`${e.id}:${e.indent}`,l=Math.min(e.indent-1,r.length);if(lr.length-1||r[l].listElement.name!=a.type){0==l&&"ol"==a.type&&void 0!==e.id&&s[n]&&(a.startIndex=s[n]);const t=IA(a,i,o);if(0==r.length){const o=e.element.parent,n=o.getChildIndex(e.element)+1;i.insertChild(n,t,o)}else{const e=r[l-1].listItemElements;i.appendChild(t,e[e.length-1])}r[l]={...e,listElement:t,listItemElements:[]},0==l&&void 0!==e.id&&(s[n]=a.startIndex||1)}}const c="li"==e.element.name?e.element:i.createElement("li");CA(i,r,a,e,c,l),i.appendChild(c,r[l].listElement),r[l].listItemElements.push(c),0==l&&void 0!==e.id&&s[n]++,e.element!=c&&i.appendChild(e.element,c),OA(e.element,i),i.removeStyle("text-indent",e.element),i.removeStyle("margin-left",e.element)}else{const t=r.find((t=>t.marginLeft==e.marginLeft));if(t){const o=t.listItemElements;i.appendChild(e.element,o[o.length-1]),i.removeStyle("margin-left",e.element)}else r.length=0}xA(i,r,a)}function CA(e,t,o,i,n,s){if(void 0===i.marginLeft)return void(0==s&&(o.canApplyMarginOnList=!1));const r=parseFloat(i.marginLeft);let a=0;if(t.length>1){const e=t[t.length-2].listItemElements;if(e.length>0){const t=e[e.length-1].getStyle("margin-left");void 0!==t&&(a+=parseFloat(t))}}a+=40*t.length;const l=r-a,c=0!==l?kA(l):void 0;c&&(e.setStyle("margin-left",c,n),0==s&&o.canApplyMarginOnList&&(void 0===o.marginLeft&&(o.marginLeft=c),c!==o.marginLeft&&(o.canApplyMarginOnList=!1),o.topLevelListItemElements.push(n)))}function AA(){return{marginLeft:void 0,canApplyMarginOnList:!0,topLevelListItemElements:[]}}function xA(e,t,o){if(o.canApplyMarginOnList&&o.marginLeft&&o.topLevelListItemElements.length>0){e.setStyle("margin-left",o.marginLeft,t[0].listElement);for(const t of o.topLevelListItemElements)e.removeStyle("margin-left",t)}}function EA(e){const t=e.element.previousSibling;if(!t){const t=e.element.parent;return TA(t)&&(!t.previousSibling||TA(t.previousSibling))}return TA(t)}function TA(e){return e.is("element","ol")||e.is("element","ul")}function PA(e,t){const o=new RegExp(`@list l${e.id}:level${e.indent}\\s*({[^}]*)`,"gi"),i=/mso-level-number-format:([^;]{0,100});/gi,n=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,s=new RegExp(`@list\\s+l${e.id}:level\\d\\s*{[^{]*mso-level-text:"%\\d\\\\.`,"gi"),r=new RegExp(`@list l${e.id}:level\\d\\s*{[^{]*mso-level-number-format:`,"gi"),a=s.exec(t),l=r.exec(t),c=a&&!l,d=o.exec(t);let u="decimal",h="ol",m=null;if(d&&d[1]){const t=i.exec(d[1]);if(t&&t[1]&&(u=t[1].trim(),h="bullet"!==u&&"image"!==u?"ol":"ul"),"bullet"===u){const t=function(e){if("li"==e.name&&"ul"==e.parent.name&&e.parent.hasAttribute("type"))return e.parent.getAttribute("type");const t=function(e){if(e.getChild(0).is("$text"))return null;for(const t of e.getChildren()){if(!t.is("element","span"))continue;const e=t.getChild(0);if(e)return e.is("$text")?e:e.getChild(0)}return null}(e);if(!t)return null;const o=t._data;if("o"===o)return"circle";if("·"===o)return"disc";if("§"===o)return"square";return null}(e.element);t&&(u=t)}else{const e=n.exec(d[1]);e&&e[1]&&(m=parseInt(e[1]))}c&&(h="ol")}return{type:h,startIndex:m,style:SA(u),isLegalStyleList:c}}function SA(e){if(e.startsWith("arabic-leading-zero"))return"decimal-leading-zero";switch(e){case"alpha-upper":return"upper-alpha";case"alpha-lower":return"lower-alpha";case"roman-upper":return"upper-roman";case"roman-lower":return"lower-roman";case"circle":case"disc":case"square":return e;default:return null}}function IA(e,t,o){const i=t.createElement(e.type);return e.style&&t.setStyle("list-style-type",e.style,i),e.startIndex&&e.startIndex>1&&t.setAttribute("start",e.startIndex,i),e.isLegalStyleList&&o&&t.addClass("legal-list",i),i}function RA(e){const t=e.getStyle("mso-list");if(void 0===t)return{};const o=t.match(/(^|\s{1,100})l(\d+)/i),i=t.match(/\s{0,100}lfo(\d+)/i),n=t.match(/\s{0,100}level(\d+)/i);return o&&i&&n?{id:o[2],order:i[1],indent:parseInt(n[1])}:{indent:1}}function OA(e,t){const o=new ui({name:"span",styles:{"mso-list":"Ignore"}}),i=t.createRangeIn(e);for(const e of i)"elementStart"===e.type&&o.match(e.item)&&t.remove(e.item)}function VA(e){const t=e.getStyle("margin-left");return void 0===t||t.endsWith("px")?t:_A(t)}function DA(e,t){if(!e.childCount)return;const o=new rl(e.document),i=function(e,t){const o=t.createRangeIn(e),i=new ui({name:/v:(.+)/}),n=[];for(const e of o){if("elementStart"!=e.type)continue;const t=e.item,o=t.previousSibling,s=o&&o.is("element")?o.name:null,r=["Chart"],a=i.match(t),l=t.getAttribute("o:gfxdata"),c="v:shapetype"===s,d=l&&r.some((e=>t.getAttribute("id").includes(e)));a&&l&&!c&&!d&&n.push(e.item.getAttribute("id"))}return n}(e,o);!function(e,t,o){const i=o.createRangeIn(t),n=new ui({name:"img"}),s=[];for(const t of i)if(t.item.is("element")&&n.match(t.item)){const o=t.item,i=o.getAttribute("v:shapes")?o.getAttribute("v:shapes").split(" "):[];i.length&&i.every((t=>e.indexOf(t)>-1))?s.push(o):o.getAttribute("src")||s.push(o)}for(const e of s)o.remove(e)}(i,e,o),function(e,t,o){const i=o.createRangeIn(t),n=[];for(const t of i)if("elementStart"==t.type&&t.item.is("element","v:shape")){const o=t.item.getAttribute("id");if(e.includes(o))continue;s(t.item.parent.getChildren(),o)||n.push(t.item)}for(const e of n){const t={src:r(e)};e.hasAttribute("alt")&&(t.alt=e.getAttribute("alt"));const i=o.createElement("img",t);o.insertChild(e.index+1,i,e.parent)}function s(e,t){for(const o of e)if(o.is("element")){if("img"==o.name&&o.getAttribute("v:shapes")==t)return!0;if(s(o.getChildren(),t))return!0}return!1}function r(e){for(const t of e.getChildren())if(t.is("element")&&t.getAttribute("src"))return t.getAttribute("src")}}(i,e,o),function(e,t){const o=t.createRangeIn(e),i=new ui({name:/v:(.+)/}),n=[];for(const e of o)"elementStart"==e.type&&i.match(e.item)&&n.push(e.item);for(const e of n)t.remove(e)}(e,o);const n=function(e,t){const o=t.createRangeIn(e),i=new ui({name:"img"}),n=[];let s=0;for(const e of o)e.item.is("element")&&i.match(e.item)&&(e.item.getAttribute("src").startsWith("file://")&&n.push({element:e.item,imageIndex:s}),s++);return n}(e,o);n.length&&function(e,t,o){for(let i=0;iString.fromCharCode(parseInt(e,16)))).join(""))}function MA(e,t){for(const o of t.createRangeIn(e).getItems())o.is("element","table")&&("0px"===o.getStyle("width")&&t.removeStyle("width",o),"0"===o.getAttribute("width")&&t.removeAttribute("width",o))}function NA(e,t){const o=[],i=[];for(const{item:n}of e.createRangeIn(t))if(n.is("element")&&n.getStyle("mso-footnote-id")){o.unshift(n);const{nextSibling:e}=n;e?.is("$text")&&e.data.startsWith(" ")&&i.unshift(e)}for(const t of o)e.remove(t);for(const t of i){const o=t.data.substring(1);if(o.length>0){const i=t.parent,n=i.getChildIndex(t),s=e.createText(o);e.remove(t),e.insertChild(n,s,i)}else e.remove(t)}return t}function BA(e,t){const o=e.createElement("sup",{class:"footnote"}),i=e.createElement("a",{id:`ref-${t}`,href:`#${t}`});return e.appendChild(i,o),o}function LA(e,t){const o=e.createElement("li",{id:t,class:"footnote-definition"}),i=e.createElement("a",{href:`#ref-${t}`,class:"footnote-backlink"}),n=e.createElement("div",{class:"footnote-content"});return e.appendChild(e.createText("^"),i),e.appendChild(i,o),e.appendChild(n,o),{listItem:o,content:n}}const zA=//i,jA=/xmlns:o="urn:schemas-microsoft-com/i;class $A{document;hasMultiLevelListPlugin;hasTablePropertiesPlugin;constructor(e,t=!1,o=!1){this.document=e,this.hasMultiLevelListPlugin=t,this.hasTablePropertiesPlugin=o}isActive(e){return zA.test(e)||jA.test(e)}execute(e){const t=new rl(this.document),{body:o,stylesString:i}=e._parsedData;!function(e,t){const o=[];for(const i of t.createRangeIn(e)){const e=i.item;e.is("element","a")&&!e.hasAttribute("href")&&(e.hasAttribute("id")||e.hasAttribute("name"))&&o.push(e)}for(const e of o){const o=e.parent.getChildIndex(e)+1,i=e.getChildren();t.insertChild(o,i,e.parent)}}(o,t),vA(o,i,this.hasMultiLevelListPlugin),DA(o,e.dataTransfer.getData("text/rtf")),function(e,t,o=!1){for(const i of t.createRangeIn(e).getItems()){if(!i.is("element","table")&&!i.is("element","td")&&!i.is("element","th"))continue;if(o&&i.is("element","table")){const e=i.parent?.is("element","div")?i.parent:null,o=i.parent?.parent?.is("element","div")?i.parent.parent:null,n=e??o;n&&"center"===n.getAttribute("align")&&!i.getAttribute("align")?(t.setStyle("margin-left","auto",i),t.setStyle("margin-right","auto",i)):n&&"right"===n.getAttribute("align")&&!i.getAttribute("align")?(t.setStyle("margin-left","auto",i),t.setStyle("margin-right","0",i)):n||i.getAttribute("align")||(t.setStyle("margin-left","0",i),t.setStyle("margin-right","auto",i))}const e=["left","top","right","bottom"];if(e.every((e=>!i.hasStyle(`border-${e}-style`))))t.setStyle("border-style","none",i);else for(const o of e)i.hasStyle(`border-${o}-style`)||t.setStyle(`border-${o}-style`,"none",i);const n=["width","height",...e.map((e=>`border-${e}-width`)),...e.map((e=>`padding-${e}`))];for(const e of n)i.hasStyle(e)&&t.setStyle(e,_A(i.getStyle(e)),i)}}(o,t,this.hasTablePropertiesPlugin),MA(o,t),function(e,t){const o=new Map,i=new Map;let n=null;for(const{item:s}of t.createRangeIn(e))if(s.is("element"))if("footnote-list"!==s.getStyle("mso-element")){if(s.hasStyle("mso-footnote-id")){const e=s.findAncestor("element",(e=>"footnote"===e.getStyle("mso-element")));if(e){const t=e.getAttribute("id");i.set(t,e)}else{const e=s.getStyle("mso-footnote-id");o.set(e,s)}}}else n=s;if(!o.size||!n)return;const s=function(e){return e.createElement("ol",{class:"footnotes"})}(t);t.replace(n,s);for(const[e,n]of o){const o=i.get(e);if(!o)continue;t.replace(n,BA(t,e));const r=LA(t,e);NA(t,o);for(const e of o.getChildren()){let o=e;e.is("element")&&(o=t.clone(e,!0)),t.appendChild(o,r.content)}t.appendChild(r.listItem,s)}}(o,t),function(e){const t=[],o=new rl(e.document);for(const{item:i}of o.createRangeIn(e))if(i.is("element")){for(const e of i.getClassNames())/\bmso/gi.exec(e)&&o.removeClass(e,i);for(const e of i.getStyleNames())/\bmso/gi.exec(e)&&o.removeStyle(e,i);(i.is("element","w:sdt")||i.is("element","w:sdtpr")&&i.isEmpty||i.is("element","o:p")&&i.isEmpty)&&t.push(i)}for(const e of t){const t=e.parent,i=t.getChildIndex(e);o.insertChild(i,e.getChildren(),t),o.remove(e)}}(o),e.content=o}}function qA(e,t,o,{blockElements:i,inlineObjectElements:n}){let s=o.createPositionAt(e,"forward"==t?"after":"before");return s=s.getLastMatchingPosition((({item:e})=>e.is("element")&&!i.includes(e.name)&&!n.includes(e.name)),{direction:t}),"forward"==t?s.nodeAfter:s.nodeBefore}function HA(e,t){return!!e&&e.is("element")&&t.includes(e.name)}function WA(e){let t=e;for(;t;){if(t.is("element")){const e=t.getStyle?.("white-space");if("pre-wrap"===e)return!0}t=t.parent}return!1}function UA(e,t,o){const{parent:i,data:n}=e,s=n.replaceAll("\t"," ".repeat(o)),r=i.getChildIndex(e);t.remove(e),t.insertChild(r,t.createText(s),i)}const KA=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class GA{document;constructor(e){this.document=e}isActive(e){return KA.test(e)}execute(e){const t=new rl(this.document),{body:o}=e._parsedData;!function(e,t){for(const o of e.getChildren())if(o.is("element","b")&&"normal"===o.getStyle("font-weight")){const i=e.getChildIndex(o);t.remove(o),t.insertChild(i,o.getChildren(),e)}}(o,t),function(e,t){for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","li")){const o=e.getChild(0);o&&o.is("element","p")&&t.unwrapElement(o)}}}(o,t),function(e,t){const o=new Hi(t.document.stylesProcessor),i=new Rn(o,{renderingMode:"data"}),n=i.blockElements,s=i.inlineObjectElements,r=[];for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","br")){const o=qA(e,"forward",t,{blockElements:n,inlineObjectElements:s}),i=qA(e,"backward",t,{blockElements:n,inlineObjectElements:s}),a=HA(o,n);(HA(i,n)||a)&&r.push(e)}}for(const e of r)e.hasClass("Apple-interchange-newline")?t.remove(e):t.replace(e,t.createElement("p"))}(o,t),function(e,t,o){const i=new Set;for(const o of t.createRangeIn(e).getItems())o.is("view:$textProxy")&&o.data.includes("\t")&&WA(o.parent)&&i.add(o.textNode);for(const e of i)UA(e,t,o)}(o,t,8),e.content=o}}const JA=/(\s+)<\/span>/g,((e,t)=>1===t.length?" ":Array(t.length+1).join("  ").substr(0,t.length)))}function YA(e,t){const o=new DOMParser,i=function(e){return QA(QA(e)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/()[\r\n]+(<\/span>)/g,"$1 $2").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(e){const t="",o="",i=e.indexOf(t);if(i<0)return e;const n=e.indexOf(o,i+t.length);return e.substring(0,i+t.length)+(n>=0?e.substring(n):"")}(e=(e=e.replace(//,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(HT.source+"\\s*$"),/^$/,!1]];const UT=[["table",function(e,t,o,i){if(t+2>o)return!1;let n=t+1;if(e.sCount[n]=4)return!1;let s=e.bMarks[n]+e.tShift[n];if(s>=e.eMarks[n])return!1;const r=e.src.charCodeAt(s++);if(124!==r&&45!==r&&58!==r)return!1;if(s>=e.eMarks[n])return!1;const a=e.src.charCodeAt(s++);if(124!==a&&45!==a&&58!==a&&!eT(a))return!1;if(45===r&&eT(a))return!1;for(;s=4)return!1;c=BT(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const u=c.length;if(0===u||u!==d.length)return!1;if(i)return!0;const h=e.parentType;e.parentType="table";const m=e.md.block.ruler.getRules("blockquote"),g=[t,0];e.push("table_open","table",1).map=g,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;if(c=BT(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),f+=u-c.length,f>65536)break;if(n===t+2){e.push("tbody_open","tbody",1).map=p=[t+2,0]}e.push("tr_open","tr",1).map=[n,n+1];for(let t=0;t=4))break;i++,n=i}e.line=n;const s=e.push("code_block","code",0);return s.content=e.getLines(t,n,4+e.blkIndent,!1)+"\n",s.map=[t,e.line],!0}],["fence",function(e,t,o,i){let n=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(n+3>s)return!1;const r=e.src.charCodeAt(n);if(126!==r&&96!==r)return!1;let a=n;n=e.skipChars(n,r);let l=n-a;if(l<3)return!1;const c=e.src.slice(a,n),d=e.src.slice(n,s);if(96===r&&d.indexOf(String.fromCharCode(r))>=0)return!1;if(i)return!0;let u=t,h=!1;for(;(u++,!(u>=o))&&(n=a=e.bMarks[u]+e.tShift[u],s=e.eMarks[u],!(n=4||(n=e.skipChars(n,r),n-a=4)return!1;if(62!==e.src.charCodeAt(n))return!1;if(i)return!0;const a=[],l=[],c=[],d=[],u=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let m,g=!1;for(m=t;m=s)break;if(62===e.src.charCodeAt(n++)&&!t){let t,o,i=e.sCount[m]+1;32===e.src.charCodeAt(n)?(n++,i++,o=!1,t=!0):9===e.src.charCodeAt(n)?(t=!0,(e.bsCount[m]+i)%4==3?(n++,i++,o=!1):o=!0):t=!1;let r=i;for(a.push(e.bMarks[m]),e.bMarks[m]=n;n=s,l.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(t?1:0),c.push(e.sCount[m]),e.sCount[m]=r-i,d.push(e.tShift[m]),e.tShift[m]=n-e.bMarks[m];continue}if(g)break;let i=!1;for(let t=0,n=u.length;t";const b=[t,0];f.map=b,e.md.block.tokenize(e,t,m),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=r,e.parentType=h,b[1]=e.line;for(let o=0;o=4)return!1;let s=e.bMarks[t]+e.tShift[t];const r=e.src.charCodeAt(s++);if(42!==r&&45!==r&&95!==r)return!1;let a=1;for(;s=4)return!1;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(m=!0),(h=zT(e,l))>=0){if(d=!0,r=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(r,h-1)),m&&1!==u)return!1}else{if(!((h=LT(e,l))>=0))return!1;d=!1}if(m&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(i)return!0;const g=e.src.charCodeAt(h-1),p=e.tokens.length;d?(a=e.push("ordered_list_open","ol",1),1!==u&&(a.attrs=[["start",u]])):a=e.push("bullet_list_open","ul",1);const f=[l,0];a.map=f,a.markup=String.fromCharCode(g);let b=!1;const w=e.md.block.ruler.getRules("list"),y=e.parentType;for(e.parentType="list";l=n?1:i-t,m>4&&(m=1);const p=t+m;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(g);const f=[l,0];a.map=f,d&&(a.info=e.src.slice(r,h-1));const y=e.tight,_=e.tShift[l],k=e.sCount[l],v=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=p,e.tight=!0,e.tShift[l]=u-e.bMarks[l],e.sCount[l]=i,u>=n&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,o):e.md.block.tokenize(e,l,o,!0),e.tight&&!b||(c=!1),b=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[l]=_,e.sCount[l]=k,e.tight=y,a=e.push("list_item_close","li",-1),a.markup=String.fromCharCode(g),l=e.line,f[1]=l,l>=o)break;if(e.sCount[l]=4)break;let C=!1;for(let t=0,i=w.length;t=4)return!1;if(91!==e.src.charCodeAt(n))return!1;function a(t){const o=e.lineMax;if(t>=o||e.isEmpty(t))return null;let i=!1;if(e.sCount[t]-e.blkIndent>3&&(i=!0),e.sCount[t]<0&&(i=!0),!i){const i=e.md.block.ruler.getRules("reference"),n=e.parentType;e.parentType="reference";let s=!1;for(let n=0,r=i.length;n=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(n))return!1;let r=e.src.slice(n,s),a=0;for(;a=4)return!1;let r=e.src.charCodeAt(n);if(35!==r||n>=s)return!1;let a=1;for(r=e.src.charCodeAt(++n);35===r&&n6||nn&&eT(e.src.charCodeAt(l-1))&&(s=l),e.line=t+1;const c=e.push("heading_open","h"+String(a),1);c.markup="########".slice(0,a),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=e.src.slice(n,s).trim(),d.map=[t,e.line],d.children=[],e.push("heading_close","h"+String(a),-1).markup="########".slice(0,a),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,o){const i=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const n=e.parentType;e.parentType="paragraph";let s,r=0,a=t+1;for(;a3)continue;if(e.sCount[a]>=e.blkIndent){let t=e.bMarks[a]+e.tShift[a];const o=e.eMarks[a];if(t=o))){r=61===s?1:2;break}}if(e.sCount[a]<0)continue;let t=!1;for(let n=0,s=i.length;n3)continue;if(e.sCount[s]<0)continue;let t=!1;for(let n=0,r=i.length;n=o))&&!(e.sCount[r]=s){e.line=o;break}const t=e.line;let l=!1;for(let s=0;s=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),r=e.line,r0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],n={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(n),i},JT.prototype.scanDelims=function(e,t){const o=this.posMax,i=this.src.charCodeAt(e),n=e>0?this.src.charCodeAt(e-1):32;let s=e;for(;s?@[]^_`{|}~-".split("").forEach((function(e){XT[e.charCodeAt(0)]=1}));const tP={tokenize:function(e,t){const o=e.pos,i=e.src.charCodeAt(o);if(t)return!1;if(126!==i)return!1;const n=e.scanDelims(e.pos,!0);let s=n.length;const r=String.fromCharCode(i);if(s<2)return!1;let a;s%2&&(a=e.push("text","",0),a.content=r,s--);for(let t=0;t=0;o--){const i=t[o];if(95!==i.marker&&42!==i.marker)continue;if(-1===i.end)continue;const n=t[i.end],s=o>0&&t[o-1].end===i.end+1&&t[o-1].marker===i.marker&&t[o-1].token===i.token-1&&t[i.end+1].token===n.token+1,r=String.fromCharCode(i.marker),a=e.tokens[i.token];a.type=s?"strong_open":"em_open",a.tag=s?"strong":"em",a.nesting=1,a.markup=s?r+r:r,a.content="";const l=e.tokens[n.token];l.type=s?"strong_close":"em_close",l.tag=s?"strong":"em",l.nesting=-1,l.markup=s?r+r:r,l.content="",s&&(e.tokens[t[o-1].token].content="",e.tokens[t[i.end+1].token].content="",o--)}}const iP={tokenize:function(e,t){const o=e.pos,i=e.src.charCodeAt(o);if(t)return!1;if(95!==i&&42!==i)return!1;const n=e.scanDelims(e.pos,42===i);for(let t=0;t\x00-\x20]*)$/;const rP=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,aP=/^&([a-z][a-z0-9]{1,31});/i;function lP(e){const t={},o=e.length;if(!o)return;let i=0,n=-2;const s=[];for(let r=0;ra;l-=s[l]+1){const t=e[l];if(t.marker===o.marker&&(t.open&&t.end<0)){let i=!1;if((t.close||o.open)&&(t.length+o.length)%3==0&&(t.length%3==0&&o.length%3==0||(i=!0)),!i){const i=l>0&&!e[l-1].open?s[l-1]+1:0;s[r]=r-l+i,s[l]=i,o.open=!1,t.end=r,t.close=!1,c=-1,n=-2;break}}}-1!==c&&(t[o.marker][(o.open?3:0)+(o.length||0)%3]=c)}}const cP=[["text",function(e,t){let o=e.pos;for(;o0)return!1;const o=e.pos;if(o+3>e.posMax)return!1;if(58!==e.src.charCodeAt(o))return!1;if(47!==e.src.charCodeAt(o+1))return!1;if(47!==e.src.charCodeAt(o+2))return!1;const i=e.pending.match(YT);if(!i)return!1;const n=i[1],s=e.md.linkify.matchAtStart(e.src.slice(o-n.length));if(!s)return!1;let r=s.url;if(r.length<=n.length)return!1;r=r.replace(/\*+$/,"");const a=e.md.normalizeLink(r);if(!e.md.validateLink(a))return!1;if(!t){e.pending=e.pending.slice(0,-n.length);const t=e.push("link_open","a",1);t.attrs=[["href",a]],t.markup="linkify",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(r);const o=e.push("link_close","a",-1);o.markup="linkify",o.info="auto"}return e.pos+=r.length-n.length,!0}],["newline",function(e,t){let o=e.pos;if(10!==e.src.charCodeAt(o))return!1;const i=e.pending.length-1,n=e.posMax;if(!t)if(i>=0&&32===e.pending.charCodeAt(i))if(i>=1&&32===e.pending.charCodeAt(i-1)){let t=i-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o=i)return!1;let n=e.src.charCodeAt(o);if(10===n){for(t||e.push("hardbreak","br",0),o++;o=55296&&n<=56319&&o+1=56320&&t<=57343&&(s+=e.src[o+1],o++)}const r="\\"+s;if(!t){const t=e.push("text_special","",0);n<256&&0!==XT[n]?t.content=s:t.content=r,t.markup=r,t.info="escape"}return e.pos=o+1,!0}],["backticks",function(e,t){let o=e.pos;if(96!==e.src.charCodeAt(o))return!1;const i=o;o++;const n=e.posMax;for(;o=u)return!1;if(l=g,n=e.md.helpers.parseLinkDestination(e.src,g,e.posMax),n.ok){for(r=e.md.normalizeLink(n.str),e.md.validateLink(r)?g=n.pos:r="",l=g;g=u||41!==e.src.charCodeAt(g))&&(c=!0),g++}if(c){if(void 0===e.env.references)return!1;if(g=0?i=e.src.slice(l,g++):g=m+1):g=m+1,i||(i=e.src.slice(h,m)),s=e.env.references[nT(i)],!s)return e.pos=d,!1;r=s.href,a=s.title}if(!t){e.pos=h,e.posMax=m;const t=[["href",r]];e.push("link_open","a",1).attrs=t,a&&t.push(["title",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=g,e.posMax=u,!0}],["image",function(e,t){let o,i,n,s,r,a,l,c,d="";const u=e.pos,h=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const m=e.pos+2,g=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(g<0)return!1;if(s=g+1,s=h)return!1;for(c=s,a=e.md.helpers.parseLinkDestination(e.src,s,e.posMax),a.ok&&(d=e.md.normalizeLink(a.str),e.md.validateLink(d)?s=a.pos:d=""),c=s;s=h||41!==e.src.charCodeAt(s))return e.pos=u,!1;s++}else{if(void 0===e.env.references)return!1;if(s=0?n=e.src.slice(c,s++):s=g+1):s=g+1,n||(n=e.src.slice(m,g)),r=e.env.references[nT(n)],!r)return e.pos=u,!1;d=r.href,l=r.title}if(!t){i=e.src.slice(m,g);const t=[];e.md.inline.parse(i,e.md,e.env,t);const o=e.push("image","img",0),n=[["src",d],["alt",""]];o.attrs=n,o.children=t,o.content=i,l&&n.push(["title",l])}return e.pos=s,e.posMax=h,!0}],["autolink",function(e,t){let o=e.pos;if(60!==e.src.charCodeAt(o))return!1;const i=e.pos,n=e.posMax;for(;;){if(++o>=n)return!1;const t=e.src.charCodeAt(o);if(60===t)return!1;if(62===t)break}const s=e.src.slice(i+1,o);if(sP.test(s)){const o=e.md.normalizeLink(s);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const i=e.push("link_close","a",-1);i.markup="autolink",i.info="auto"}return e.pos+=s.length+2,!0}if(nP.test(s)){const o=e.md.normalizeLink("mailto:"+s);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const i=e.push("link_close","a",-1);i.markup="autolink",i.info="auto"}return e.pos+=s.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const o=e.posMax,i=e.pos;if(60!==e.src.charCodeAt(i)||i+2>=o)return!1;const n=e.src.charCodeAt(i+1);if(33!==n&&63!==n&&47!==n&&!function(e){const t=32|e;return t>=97&&t<=122}(n))return!1;const s=e.src.slice(i).match(qT);if(!s)return!1;if(!t){const t=e.push("html_inline","",0);t.content=s[0],r=t.content,/^\s]/i.test(r)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--}var r;return e.pos+=s[0].length,!0}],["entity",function(e,t){const o=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(o))return!1;if(o+1>=i)return!1;if(35===e.src.charCodeAt(o+1)){const i=e.src.slice(o).match(rP);if(i){if(!t){const t="x"===i[1][0].toLowerCase()?parseInt(i[1].slice(1),16):parseInt(i[1],10),o=e.push("text_special","",0);o.content=zE(t)?jE(t):jE(65533),o.markup=i[0],o.info="entity"}return e.pos+=i[0].length,!0}}else{const i=e.src.slice(o).match(aP);if(i){const o=SE(i[0]);if(o!==i[0]){if(!t){const t=e.push("text_special","",0);t.content=o,t.markup=i[0],t.info="entity"}return e.pos+=i[0].length,!0}}}return!1}]],dP=[["balance_pairs",function(e){const t=e.tokens_meta,o=e.tokens_meta.length;lP(e.delimiters);for(let e=0;e0&&i++,"text"===n[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;r||e.pos++,s[t]=e.pos},uP.prototype.tokenize=function(e){const t=this.ruler.getRules(""),o=t.length,i=e.posMax,n=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(r){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},uP.prototype.parse=function(e,t,o,i){const n=new this.State(e,t,o,i);this.tokenize(n);const s=this.ruler2.getRules(""),r=s.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:i.match(o.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,o){const i=e.slice(t);return o.re.mailto||(o.re.mailto=new RegExp("^"+o.re.src_email_name+"@"+o.re.src_host_strict,"i")),o.re.mailto.test(i)?i.match(o.re.mailto)[0].length:0}}},yP="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function _P(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=lE.source,t.src_Cc=cE.source,t.src_Z=uE.source,t.src_P=rE.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");const o="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+o+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),o=e.__tlds__.slice();function i(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||o.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),o.push(t.src_xn),t.src_tlds=o.join("|"),t.email_fuzzy=RegExp(i(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(i(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(i(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(i(t.tpl_host_fuzzy_test),"i");const n=[];function s(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const o=e.__schemas__[t];if(null===o)return;const i={validate:null,link:null};if(e.__compiled__[t]=i,"[object Object]"===gP(o))return!function(e){return"[object RegExp]"===gP(e)}(o.validate)?pP(o.validate)?i.validate=o.validate:s(t,o):i.validate=function(e){return function(t,o){const i=t.slice(o);return e.test(i)?i.match(e)[0].length:0}}(o.validate),void(pP(o.normalize)?i.normalize=o.normalize:o.normalize?s(t,o):i.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===gP(e)}(o)?s(t,o):n.push(t)})),n.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const r=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(fP).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+r+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+r+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function kP(e,t){const o=e.__index__,i=e.__last_index__,n=e.__text_cache__.slice(o,i);this.schema=e.__schema__.toLowerCase(),this.index=o+t,this.lastIndex=i+t,this.raw=n,this.text=n,this.url=n}function vP(e,t){const o=new kP(e,t);return e.__compiled__[o.schema].normalize(o,e),o}function CP(e,t){if(!(this instanceof CP))return new CP(e,t);var o;t||(o=e,Object.keys(o||{}).reduce((function(e,t){return e||bP.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=mP({},bP,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=mP({},wP,e),this.__compiled__={},this.__tlds__=yP,this.__tlds_replaced__=!1,this.re={},_P(this)}CP.prototype.add=function(e,t){return this.__schemas__[e]=t,_P(this),this},CP.prototype.set=function(e){return this.__opts__=mP(this.__opts__,e),this},CP.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,o,i,n,s,r,a,l,c;if(this.re.schema_test.test(e))for(a=this.re.schema_search,a.lastIndex=0;null!==(t=a.exec(e));)if(n=this.testSchemaAt(e,t[2],a.lastIndex),n){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+n;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(i=e.match(this.re.email_fuzzy))&&(s=i.index+i[1].length,r=i.index+i[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=r))),this.__index__>=0},CP.prototype.pretest=function(e){return this.re.pretest.test(e)},CP.prototype.testSchemaAt=function(e,t,o){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,o,this):0},CP.prototype.match=function(e){const t=[];let o=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(vP(this,o)),o=this.__last_index__);let i=o?e.slice(o):e;for(;this.test(i);)t.push(vP(this,o)),i=i.slice(this.__last_index__),o+=this.__last_index__;return t.length?t:null},CP.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const o=this.testSchemaAt(e,t[2],t[0].length);return o?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+o,vP(this,0)):null},CP.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,o){return e!==o[t-1]})).reverse(),_P(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,_P(this),this)},CP.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},CP.prototype.onCompile=function(){};const AP=CP,xP=2147483647,EP=36,TP=/^xn--/,PP=/[^\0-\x7F]/,SP=/[\x2E\u3002\uFF0E\uFF61]/g,IP={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},RP=Math.floor,OP=String.fromCharCode;function VP(e){throw new RangeError(IP[e])}function DP(e,t){const o=e.split("@");let i="";o.length>1&&(i=o[0]+"@",e=o[1]);const n=function(e,t){const o=[];let i=e.length;for(;i--;)o[i]=t(e[i]);return o}((e=e.replace(SP,".")).split("."),t).join(".");return i+n}function FP(e){const t=[];let o=0;const i=e.length;for(;o=55296&&n<=56319&&o>1,e+=RP(e/t);e>455;i+=EP)e=RP(e/35);return RP(i+36*e/(e+38))},BP=function(e){const t=[],o=e.length;let i=0,n=128,s=72,r=e.lastIndexOf("-");r<0&&(r=0);for(let o=0;o=128&&VP("not-basic"),t.push(e.charCodeAt(o));for(let l=r>0?r+1:0;l=o&&VP("invalid-input");const r=(a=e.charCodeAt(l++))>=48&&a<58?a-48+26:a>=65&&a<91?a-65:a>=97&&a<123?a-97:EP;r>=EP&&VP("invalid-input"),r>RP((xP-i)/t)&&VP("overflow"),i+=r*t;const c=n<=s?1:n>=s+26?26:n-s;if(rRP(xP/d)&&VP("overflow"),t*=d}const c=t.length+1;s=NP(i-r,c,0==r),RP(i/c)>xP-n&&VP("overflow"),n+=RP(i/c),i%=c,t.splice(i++,0,n)}var a;return String.fromCodePoint(...t)},LP=function(e){const t=[],o=(e=FP(e)).length;let i=128,n=0,s=72;for(const o of e)o<128&&t.push(OP(o));const r=t.length;let a=r;for(r&&t.push("-");a=i&&tRP((xP-n)/l)&&VP("overflow"),n+=(o-i)*l,i=o;for(const o of e)if(oxP&&VP("overflow"),o===i){let e=n;for(let o=EP;;o+=EP){const i=o<=s?1:o>=s+26?26:o-s;if(eString.fromCodePoint(...e)},decode:BP,encode:LP,toASCII:function(e){return DP(e,(function(e){return PP.test(e)?"xn--"+LP(e):e}))},toUnicode:function(e){return DP(e,(function(e){return TP.test(e)?BP(e.slice(4).toLowerCase()):e}))}},jP={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},$P=/^(vbscript|javascript|file|data):/,qP=/^data:image\/(gif|png|jpeg|webp);/;function HP(e){const t=e.trim().toLowerCase();return!$P.test(t)||qP.test(t)}const WP=["http:","https:","mailto:"];function UP(e){const t=sE(e,!0);if(t.hostname&&(!t.protocol||WP.indexOf(t.protocol)>=0))try{t.hostname=zP.toASCII(t.hostname)}catch(e){}return Wx(Ux(t))}function KP(e){const t=sE(e,!0);if(t.hostname&&(!t.protocol||WP.indexOf(t.protocol)>=0))try{t.hostname=zP.toUnicode(t.hostname)}catch(e){}return $x(Ux(t),$x.defaultChars+"%")}function GP(e,t){if(!(this instanceof GP))return new GP(e,t);t||FE(e)||(t=e||{},e="default"),this.inline=new hP,this.block=new GT,this.core=new DT,this.renderer=new uT,this.linkify=new AP,this.validateLink=HP,this.normalizeLink=UP,this.normalizeLinkText=KP,this.utils=i,this.helpers=BE({},n),this.options={},this.configure(e),t&&this.set(t)}GP.prototype.set=function(e){return BE(this.options,e),this},GP.prototype.configure=function(e){const t=this;if(FE(e)){const t=e;if(!(e=jP[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(o){e.components[o].rules&&t[o].ruler.enableOnly(e.components[o].rules),e.components[o].rules2&&t[o].ruler2.enableOnly(e.components[o].rules2)})),this},GP.prototype.enable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.enable(e,!0))}),this),o=o.concat(this.inline.ruler2.enable(e,!0));const i=e.filter((function(e){return o.indexOf(e)<0}));if(i.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+i);return this},GP.prototype.disable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.disable(e,!0))}),this),o=o.concat(this.inline.ruler2.disable(e,!0));const i=e.filter((function(e){return o.indexOf(e)<0}));if(i.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+i);return this},GP.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},GP.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const o=new this.core.State(e,this,t);return this.core.process(o),o.tokens},GP.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},GP.prototype.parseInline=function(e,t){const o=new this.core.State(e,this,t);return o.inlineMode=!0,this.core.process(o),o.tokens},GP.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const JP=GP;var ZP=o(428),QP=o.n(ZP);const YP=/^(#{1,3})(\d+|[A-Z][A-Z0-9_]*-\d+)(?!\w)/;function XP(e,t){const o=e.pos,i=e.src;if(35!==i.charCodeAt(o))return!1;if(o>0&&/[\w#]/.test(i[o-1]))return!1;const n=YP.exec(i.slice(o));if(!n)return!1;if(t)return!0;if(function(e){for(let t=e.length-1;t>=0;t--){const o=e[t];if("html_inline"!==o.type)continue;const i=o.content;if(i.startsWith("${a}`:`${a}`;return e.push("html_inline","",0).content=l,e.pos=o+n[0].length,!0}class eS{constructor(e){this._htmlDP=new Ir(e),this._domConverter=new Rn(e)}toView(e){const t=JP({html:!0,breaks:!0,langPrefix:"language-"});let o=t.use(QP(),{label:!0});o.inline.ruler.before("text","op_workpackage_ref",XP);const i=o.renderer.rules.code_block;t.renderer.rules.code_block=function(e,t,o,n,s){return e[t].content=e[t].content.replace(/\n$/,""),i(e,t,o,n,s)};const n=o.render(e),s=this._htmlDP._toDom(n);!function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;t=o.nextNode();)t.previousElementSibling&&t.previousElementSibling.classList.contains("task-list-item-checkbox")&&(t.textContent=t.textContent.replace(/^\s+/,""))}(s),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&!e.parentElement)return NodeFilter.FILTER_ACCEPT}}),i=[];for(;t=o.nextNode();)i.push(t);for(const t of i){const o=document.createElement("p");e.insertBefore(o,t),Lx(t)?o.appendChild(t):t.remove()}}(s),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&e.parentElement&&"TD"===e.parentElement.tagName&&1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName)return NodeFilter.FILTER_ACCEPT}});let o;for(;o=t.nextNode();)o.childNodes[0].remove()}(s),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&e.parentElement&&"LI"===e.parentElement.tagName)return NodeFilter.FILTER_ACCEPT}});let o,i=[];for(;o=t.nextNode();)i.push(o);for(const e of i)e.parentElement.insertBefore(document.createElement("p"),e),e.remove()}(s),s.querySelectorAll("input.task-list-item-checkbox").forEach((e=>{const t=e.closest("li.task-list-item");t&&e.parentElement!==t&&(e.parentElement&&e.parentElement.removeChild(e),t.insertBefore(e,t.firstChild))}));return this._domConverter.domToView(s)}toData(e){const t=this._domConverter.viewToDom(e,document);!function(e,t,o){t=t.map((e=>e.toUpperCase())),o=o.map((e=>e.toUpperCase()));let i,n=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;i=n.nextNode();)i.parentElement&&t.indexOf(i.parentElement.nodeName)>=0&&(i.nodeValue=i.nodeValue.replace(/^[\u00a0]+/g," ").replace(/[\u00a0]+$/g," ")),Nx(i,o)||(i.nodeValue=_.escape(i.nodeValue))}(t,["strong","em"],["pre","code","table"]),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,(function(e){return"a"===e.nodeName.toLowerCase()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));for(;t=o.nextNode();)t.setAttribute("href",t.href)}(t),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&0===e.childNodes.length&&(!e.parentElement||"LI"===e.parentElement.tagName))return NodeFilter.FILTER_ACCEPT}});for(;t=o.nextNode();)t.appendChild(document.createElement("br"))}(t);const o=new Mx({headingStyle:"atx",codeBlockStyle:"fenced",blankReplacement:function(e,t){if("CODE"===t.tagName){const e=(t.getAttribute("class")||"").replace("language-",""),o=t.textContent||"";return"```"+e+"\n"+(o.length?o:"\n")+"```\n"}return"PRE"===t.tagName?e:t.isBlock?"\n\n":""}});return o.use([ex]),o.addRule("taskListItems",{filter:function(e){const t="checkbox"===e.type,o=e.parentNode&&"LI"===e.parentNode.nodeName,i=e.parentNode&&e.parentNode.parentNode&&"LI"===e.parentNode.parentNode.nodeName;return t&&(o||i)},replacement:function(e,t){return(t.checked?"[x]":"[ ]")+" "}}),o.addRule("orderedListItems",{filter:function(e){return"LI"===e.nodeName&&!!e.closest("ol")},replacement:function(e,t,o){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n");var i=t.parentNode,n=o.bulletListMarker+" ";if("OL"===i.nodeName){var s=i.getAttribute("start"),r=Array.prototype.indexOf.call(i.children,t);n=(s?Number(s)+r:r+1)+". "}var a=n.length,l=" ".repeat(a);return n+(e=e.replace(/\n/gm,"\n"+l))+(t.nextSibling&&!/\n$/.test(e)?"\n":"")}}),o.addRule("imageFigure",{filter:"img",replacement:function(e,t){const o=t.parentElement;return o&&o.classList.contains("op-uc-figure--content")?o.parentElement.outerHTML:t.outerHTML}}),o.addRule("figcaption",{filter:"figcaption",replacement:function(e,t){return""}}),o.addRule("markdownTables",{filter:function(e){return"TABLE"===e.nodeName&&(!e.parentElement||"FIGURE"!==e.parentElement.nodeName)},replacement:function(e,t){return t.outerHTML}}),o.addRule("htmlTables",{filter:function(e){const t=e.getElementsByTagName("table");return"FIGURE"===e.nodeName&&t.length},replacement:function(e,t){return t.querySelectorAll("td br[data-cke-filler]").forEach((e=>{e.nextElementSibling&&e.removeAttribute("data-cke-filler")})),t.outerHTML}}),o.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(e){return"~~"+e+"~~"}}),o.addRule("workPackageQuickinfo",{filter:e=>"OPCE-MACRO-WP-QUICKINFO"===e.nodeName,replacement:(e,t)=>{const o=t.getAttribute("data-display-id")||t.getAttribute("data-id")||"";if(!o)return"";return"true"===t.getAttribute("data-detailed")?`###${o}`:`##${o}`}}),o.addRule("openProjectMacros",{filter:["macro"],replacement:(e,t)=>{t.innerHTML="";return t.outerHTML.replace("","\n")}}),o.addRule("mentions",{filter:e=>"MENTION"===e.nodeName&&e.classList.contains("mention"),replacement:(e,t)=>"work_package"===t.getAttribute("data-type")?t.getAttribute("data-display-id")?t.outerHTML:t.getAttribute("data-text")||t.textContent||"":t.outerHTML}),o.addRule("emptyParagraphs",{filter:e=>"P"===e.nodeName&&(0===e.childNodes.length||1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName),replacement:(e,t)=>t.parentElement||t.nextSibling||t.previousSibling?1===t.childNodes.length&&Lx(t.childNodes[0])?Bx+"\n\n":"
\n\n":""}),o.addRule("openProjectPageBreak",{filter:e=>"DIV"===e.nodeName&&e.classList.contains("page-break"),replacement:(e,t)=>Bx}),o.turndown(t).replace(/\u00A0/," ").replace("###turndown-ignore###\n","")}}const tS='\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n \n\n';const oS={"(":")","[":"]","{":"}"};class iS extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"mention")}execute(e){const t=this.editor.model,o=t.document.selection,i="string"==typeof e.mention?{id:e.mention}:e.mention,n=i.id,s=e.range||o.getFirstRange();if(!t.canEditAt(s))return;const r=e.text||n,a=sS({_text:r,id:n},i);if(!n.startsWith(e.marker))throw new fe("mentioncommand-incorrect-id",this);t.change((e=>{const i=ao(o.getAttributes()),n=new Map(i.entries());n.set("mention",a);const l=t.insertContent(e.createText(r,n),s),c=l.start.nodeBefore,d=l.end.nodeAfter,u=d&&d.is("$text")&&d.data.startsWith(" ");let h=!1;if(c&&d&&c.is("$text")&&d.is("$text")){const e=c.data.slice(-1),t=e in oS,o=t&&d.data.startsWith(oS[e]);h=t&&o}h||u||t.insertContent(e.createText(" ",i),s.start.getShiftedBy(r.length))}))}}class nS extends fc{static get pluginName(){return"MentionEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=t.document;t.schema.extend("$text",{allowAttributes:"mention"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",attributes:"data-mention",classes:"mention"},model:{key:"mention",value:e=>rS(e)}}),e.conversion.for("downcast").attributeToElement({model:"mention",view:lS}),e.conversion.for("downcast").add(aS),o.registerPostFixer((e=>function(e,t,o){const i=t.differ.getChanges();let n=!1;for(const t of i){if("attribute"==t.type)continue;const i=t.position;if("$text"==t.name){const t=i.textNode&&i.textNode.nextSibling;n=dS(i.textNode,e)||n,n=dS(t,e)||n,n=dS(i.nodeBefore,e)||n,n=dS(i.nodeAfter,e)||n}if("$text"!=t.name&&"insert"==t.type){const t=i.nodeAfter;for(const o of e.createRangeIn(t).getItems())n=dS(o,e)||n}if("insert"==t.type&&o.isInline(t.name)){const t=i.nodeAfter&&i.nodeAfter.nextSibling;n=dS(i.nodeBefore,e)||n,n=dS(t,e)||n}}return n}(e,o,t.schema))),o.registerPostFixer((e=>function(e,t){const o=t.differ.getChanges();let i=!1;for(const t of o)if("attribute"===t.type&&"mention"!=t.attributeKey){const o=t.range.start.nodeBefore,n=t.range.end.nodeAfter;for(const s of[o,n])cS(s)&&s.getAttribute(t.attributeKey)!=t.attributeNewValue&&(e.setAttribute(t.attributeKey,t.attributeNewValue,s),i=!0)}return i}(e,o))),o.registerPostFixer((e=>function(e,t){const o=t.selection,i=o.focus;if(o.isCollapsed&&o.hasAttribute("mention")&&function(e){const t=e.isAtStart;return e.nodeBefore&&e.nodeBefore.is("$text")||t}(i))return e.removeSelectionAttribute("mention"),!0;return!1}(e,o))),e.commands.add("mention",new iS(e))}}function sS(e,t){return Object.assign({uid:me().slice(0,8)},e,t||{})}function rS(e,t){const o=e.getAttribute("data-mention"),i=e.getChild(0);if(!i)return;const n=e.getAttribute("data-mention-uid");return sS({id:o,_text:i.data},n?{uid:n,...t}:t)}function aS(e){e.on("attribute:mention",((e,t,o)=>{const i=t.attributeNewValue;if(!t.item.is("$textProxy")||!i)return;const n=t.range.start;(n.textNode||n.nodeAfter).data!=i._text&&o.consumable.consume(t.item,e.name)}),{priority:"highest"})}function lS(e,{writer:t,options:o}){if(e)return t.createAttributeElement("span",{class:"mention","data-mention":e.id,...!o.isClipboardPipeline&&{"data-mention-uid":e.uid}},{id:e.uid,priority:20})}function cS(e){if(!e||!e.is("$text")&&!e.is("$textProxy")||!e.hasAttribute("mention"))return!1;return e.data!=e.getAttribute("mention")._text}function dS(e,t){return!!cS(e)&&(t.removeAttribute("mention",e),!0)}class uS extends zh{selected;position;constructor(e){super(e),this.extendTemplate({attributes:{class:["ck-mentions"],tabindex:"-1"}})}selectFirst(){this.select(0)}selectNext(){const e=this.selected,t=this.items.getIndex(e);this.select(t+1)}selectPrevious(){const e=this.selected,t=this.items.getIndex(e);this.select(t-1)}select(e){let t=0;e>0&&e{o?(this.domElement.classList.add("ck-on"),this.domElement.classList.remove("ck-off")):(this.domElement.classList.add("ck-off"),this.domElement.classList.remove("ck-on"))})),this.listenTo(this.domElement,"click",(()=>{this.fire("execute")}))}render(){super.render(),this.element=this.domElement}focus(){this.domElement.focus()}}class mS extends Nh{item;marker;highlight(){this.children.first.isOn=!0}removeHighlight(){this.children.first.isOn=!1}}const gS=[$t.arrowup,$t.arrowdown,$t.esc],pS=[$t.enter,$t.tab];class fS extends fc{_mentionsView;_mentionsConfigurations;_balloon;_items=new eo;_lastRequested;_requestFeedDebounced;static get pluginName(){return"MentionUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Qm]}constructor(e){super(e),this._mentionsView=this._createMentionView(),this._mentionsConfigurations=new Map,this._requestFeedDebounced=zo(this._requestFeed,100),e.config.define("mention",{feeds:[]})}init(){const e=this.editor,t=e.config.get("mention.commitKeys")||pS,o=gS.concat(t);this._balloon=e.plugins.get(Qm),e.editing.view.document.on("keydown",((e,i)=>{var n;n=i.keyCode,o.includes(n)&&this._isUIVisible&&(i.preventDefault(),e.stop(),i.keyCode==$t.arrowdown&&this._mentionsView.selectNext(),i.keyCode==$t.arrowup&&this._mentionsView.selectPrevious(),t.includes(i.keyCode)&&this._mentionsView.executeSelected(),i.keyCode==$t.esc&&this._hideUIAndRemoveMarker())}),{priority:"highest"}),Su({emitter:this._mentionsView,activator:()=>this._isUIVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUIAndRemoveMarker()});const i=e.config.get("mention.feeds");for(const e of i){const{feed:t,marker:o,dropdownLimit:i}=e;if(!kS(o))throw new fe("mentionconfig-incorrect-marker",null,{marker:o});const n={marker:o,feedCallback:"function"==typeof t?t.bind(this.editor):_S(t),itemRenderer:e.itemRenderer,dropdownLimit:i};this._mentionsConfigurations.set(o,n)}this._setupTextWatcher(i),this.listenTo(e,"change:isReadOnly",(()=>{this._hideUIAndRemoveMarker()})),this.on("requestFeed:response",((e,t)=>this._handleFeedResponse(t))),this.on("requestFeed:error",(()=>this._hideUIAndRemoveMarker()))}destroy(){super.destroy(),this._mentionsView.destroy()}get _isUIVisible(){return this._balloon.visibleView===this._mentionsView}_createMentionView(){const e=this.editor.locale,t=new uS(e);return t.items.bindTo(this._items).using((o=>{const{item:i,marker:n}=o,{dropdownLimit:s}=this._mentionsConfigurations.get(n),r=s||this.editor.config.get("mention.dropdownLimit")||10;if(t.items.length>=r)return null;const a=new mS(e),l=this._renderItem(i,n);return l.delegate("execute").to(a),a.children.add(l),a.item=i,a.marker=n,a.on("execute",(()=>{t.fire("execute",{item:i,marker:n})})),a})),t.on("execute",((e,t)=>{const o=this.editor,i=o.model,n=t.item,s=t.marker,r=o.model.markers.get("mention"),a=i.createPositionAt(i.document.selection.focus),l=i.createPositionAt(r.getStart()),c=i.createRange(l,a);this._hideUIAndRemoveMarker(),o.execute("mention",{mention:n,text:n.text,marker:s,range:c}),o.editing.view.focus()})),t}_getItemRenderer(e){const{itemRenderer:t}=this._mentionsConfigurations.get(e);return t}_requestFeed(e,t){this._lastRequested=t;const{feedCallback:o}=this._mentionsConfigurations.get(e),i=o(t);i instanceof Promise?i.then((o=>{this._lastRequested==t?this.fire("requestFeed:response",{feed:o,marker:e,feedText:t}):this.fire("requestFeed:discarded",{feed:o,marker:e,feedText:t})})).catch((t=>{this.fire("requestFeed:error",{error:t}),be("mention-feed-callback-error",{marker:e})})):this.fire("requestFeed:response",{feed:i,marker:e,feedText:t})}_setupTextWatcher(e){const t=this.editor,o=e.map((e=>({...e,pattern:yS(e.marker,e.minimumCharacters||0)}))),i=new Ig(t.model,function(e){const t=t=>{const o=wS(e,t);if(!o)return!1;let i=0;0!==o.position&&(i=o.position-1);const n=t.substring(i);return o.pattern.test(n)};return t}(o));i.on("matched",((e,i)=>{const n=wS(o,i.text),s=t.model.document.selection.focus,r=t.model.createPositionAt(s.parent,n.position);if(function(e){const t=e.textNode&&e.textNode.hasAttribute("mention"),o=e.nodeBefore;return t||o&&o.is("$text")&&o.hasAttribute("mention")}(s)||function(e){const t=e.nodeAfter;return t&&t.is("$text")&&t.hasAttribute("mention")}(r))return void this._hideUIAndRemoveMarker();const a=function(e,t){let o=0;0!==e.position&&(o=e.position-1);const i=yS(e.marker,0),n=t.substring(o);return n.match(i)[2]}(n,i.text),l=n.marker.length+a.length,c=s.getShiftedBy(-l),d=s.getShiftedBy(-a.length),u=t.model.createRange(c,d);if(vS(t)){const e=t.model.markers.get("mention");t.model.change((t=>{t.updateMarker(e,{range:u})}))}else t.model.change((e=>{e.addMarker("mention",{range:u,usingOperation:!1,affectsData:!1})}));this._requestFeedDebounced(n.marker,a)})),i.on("unmatched",(()=>{this._hideUIAndRemoveMarker()}));const n=t.commands.get("mention");return i.bind("isEnabled").to(n),i}_handleFeedResponse(e){const{feed:t,marker:o}=e;if(!vS(this.editor))return;this._items.clear();for(const e of t){const t="object"!=typeof e?{id:e,text:e}:e;this._items.add({item:t,marker:o})}const i=this.editor.model.markers.get("mention");this._items.length?this._showOrUpdateUI(i):this._hideUIAndRemoveMarker()}_showOrUpdateUI(e){this._isUIVisible?this._balloon.updatePosition(this._getBalloonPanelPositionData(e,this._mentionsView.position)):this._balloon.add({view:this._mentionsView,position:this._getBalloonPanelPositionData(e,this._mentionsView.position),singleViewMode:!0,balloonClassName:"ck-mention-balloon"}),this._mentionsView.position=this._balloon.view.position,this._mentionsView.selectFirst()}_hideUIAndRemoveMarker(){this._balloon.hasView(this._mentionsView)&&this._balloon.remove(this._mentionsView),vS(this.editor)&&this.editor.model.change((e=>e.removeMarker("mention"))),this._mentionsView.position=void 0}_renderItem(e,t){const o=this.editor;let i,n=e.id;const s=this._getItemRenderer(t);if(s){const t=s(e);"string"!=typeof t?i=new hS(o.locale,t):n=t}if(!i){const e=new Lu(o.locale);e.label=n,e.withText=!0,i=e}return i}_getBalloonPanelPositionData(e,t){const o=this.editor,i=o.editing,n=i.view.domConverter,s=i.mapper;return{target:()=>{let t=e.getRange();"$graveyard"==t.start.root.rootName&&(t=o.model.document.selection.getFirstRange());const i=s.toViewRange(t);return ut.getDomRangeRects(n.viewRangeToDom(i)).pop()},limiter:()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},positions:bS(t,o.locale.uiLanguageDirection)}}}function bS(e,t){const o={caret_se:e=>({top:e.bottom+3,left:e.right,name:"caret_se",config:{withArrow:!1}}),caret_ne:(e,t)=>({top:e.top-t.height-3,left:e.right,name:"caret_ne",config:{withArrow:!1}}),caret_sw:(e,t)=>({top:e.bottom+3,left:e.right-t.width,name:"caret_sw",config:{withArrow:!1}}),caret_nw:(e,t)=>({top:e.top-t.height-3,left:e.right-t.width,name:"caret_nw",config:{withArrow:!1}})};return Object.prototype.hasOwnProperty.call(o,e)?[o[e]]:"rtl"!==t?[o.caret_se,o.caret_sw,o.caret_ne,o.caret_nw]:[o.caret_sw,o.caret_se,o.caret_nw,o.caret_ne]}function wS(e,t){let o;for(const i of e){const e=t.lastIndexOf(i.marker);e>0&&!t.substring(e-1).match(i.pattern)||(!o||e>=o.position)&&(o={marker:i.marker,position:e,minimumCharacters:i.minimumCharacters,pattern:i.pattern})}return o}function yS(e,t){const o=0==t?"*":`{${t},}`,i=Y.features.isRegExpUnicodePropertySupported?"\\p{Ps}\\p{Pi}\"'":"\\(\\[{\"'";e=e.replace(/[.*+?^${}()\-|[\]\\]/g,"\\$&");return new RegExp(`(?:^|[ ${i}])(${e})([^#@]${o})$`,"u")}function _S(e){return t=>e.filter((e=>("string"==typeof e?e:String(e.id)).toLowerCase().includes(t.toLowerCase())))}function kS(e){return!!e}function vS(e){return e.model.markers.has("mention")}const CS=/^#{2,3}/;function AS(e){if("work_package"!==e.getAttribute("data-type"))return!1;const t=e.getAttribute("data-text");return!!t&&CS.test(t)}class xS extends wc{refresh(){const e=this.editor.model,t=e.schema,o=e.document.selection;this.isEnabled=function(e,t,o){const i=function(e,t){const o=cp(e,t),i=o.start.parent;if(i.isEmpty&&!i.is("element","$root"))return i.parent;return i}(e,o);return t.checkChild(i,"pageBreak")}(o,t,e)}execute(){const e=this.editor.model;e.change((t=>{const o=t.createElement("pageBreak");e.insertObject(o,null,null,{setSelection:"after"})}))}}class ES extends fc{static get pluginName(){return"PageBreakEditing"}static get licenseFeatureCode(){return"PB"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.t,i=e.conversion;t.register("pageBreak",{inheritAllFrom:"$blockObject"}),i.for("dataDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>t.createContainerElement("div",{class:"page-break",style:"page-break-after: always"},t.createContainerElement("span",{style:"display: none"}))}),i.for("editingDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>{const i=o("Page break"),n=t.createContainerElement("div"),s=t.createRawElement("span",{class:"page-break__label"},(function(e){e.innerText=o("Page break")}));return t.addClass("page-break",n),t.insert(t.createPositionAt(n,0),s),function(e,t,o){return t.setCustomProperty("pageBreak",!0,e),np(e,t,{label:o})}(n,t,i)}}),i.for("upcast").elementToElement({view:e=>{const t="always"==e.getStyle("page-break-before"),o="always"==e.getStyle("page-break-after");if(!t&&!o)return null;if(1==e.childCount){const t=e.getChild(0);if(!t.is("element","span")||"none"!=t.getStyle("display"))return null}else if(e.childCount>1)return null;return{name:!0,styles:[...t?["page-break-before"]:[],...o?["page-break-after"]:[]],...e.hasClass("page-break")&&{classes:["page-break"]}}},model:"pageBreak",converterPriority:"high"}),e.commands.add("pageBreak",new xS(e))}}class TS extends fc{static get pluginName(){return"PageBreakUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("pageBreak",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:pageBreak",(()=>this._createButton(sh)))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("pageBreak"),n=new e(t.locale),s=o.t;return n.set({label:s("Page break"),icon:''}),n.bind("isEnabled").to(i,"isEnabled"),this.listenTo(n,"execute",(()=>{t.execute("pageBreak"),t.editing.view.focus()})),n}}class PS extends fc{adapter;_debouncedSave;_lastDocumentVersion;_savePromise;_domEmitter;_config;_pendingActions;_makeImmediateSave;_action=null;static get pluginName(){return"Autosave"}static get isOfficialPlugin(){return!0}static get requires(){return[Lc]}constructor(e){super(e);const t=e.config.get("autosave")||{},o=t.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=zo(this._save.bind(this),o),this._lastDocumentVersion=e.model.document.version,this._savePromise=null,this._domEmitter=new(et()),this._config=t,this._pendingActions=e.plugins.get(Lc),this._makeImmediateSave=!1}init(){const e=this.editor,t=e.model.document;this.listenTo(e,"ready",(()=>{this.listenTo(t,"change:data",((e,t)=>{this._saveCallbacks.length&&t.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(e,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((e,t)=>{this._pendingActions.hasAny&&(t.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((e=>e(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((e=>{throw this.state="error",this.state="saving",this._debouncedSave(),e})),this._savePromise)}_setPendingAction(){const e=this.editor.t;this._action||(this._action=this._pendingActions.add(e("Saving changes")))}get _saveCallbacks(){const e=[];return this.adapter&&this.adapter.save&&e.push(this.adapter.save),this._config.save&&e.push(this._config.save),e}}var SS=o(992);function IS(e){return e.trim().split(/\s+/).length}function RS(e){const t=e.length;let o=5381;for(let i=0;i>>0}function OS(e){const t=localStorage.getItem(e);if(!t)return null;try{return JSON.parse(SS.decompress(t))}catch(e){return console.error("Failed to load CKEditor revisions from localStorage: "+e.toString()),null}}class VS extends fc{init(){const e=this.editor,t=Lp(e);e.ui.componentFactory.add("opContentRevisions",(o=>{const i=Zh(o),n=new eo;return Xh(i,n,{role:"menu",ariaLabel:t.t("js.editor.revisions")}),i.buttonView.set({label:t.t("js.editor.revisions"),icon:'\n\n\n',tooltip:!0}),this.listenTo(i.buttonView,"execute",(async()=>{n.clear(),function(e,t){const o=e.config.get(FS),i=OS(o),n=Lp(e),s=Np(e,"timezone");if(!i?.items||i.items.count<=0){const e={type:"button",model:{label:n.t("js.editor.no_revisions"),withText:!0}};return void t.add(e)}const r=e.getData(),a=RS(r);for(let e=i.items.length;e>0;){e--;const o=i.items[e],r=s.formattedRelativeDateTime(o.timestamp),l=n.t("js.units.word",{count:IS(o.content)}),c=`${o.hash===a?`${n.t("js.label_current")} - `:""}${r} (${l})`,d={type:"button",model:{timestamp:o.timestamp,label:c,withText:!0}};t.add(d)}}(e,n)})),i.on("execute",(t=>{const{timestamp:o}=t.source;o&&e.execute("opContentRevisionApply",o)})),i}))}}class DS extends wc{async execute(e){const t=this.editor,o=t.config.get(FS),i=await OS(o);if(!i)return void console.error(`Trying to load revision ${e} but no record present.`);const n=i.items.find((t=>t.timestamp===e));n&&(t.setData(n.content),setTimeout((()=>{t.editing.view.focus()})))}}const FS="opContentRevisionKey",MS="op_ckeditor_rev";const NS="op-macro-wp-quickinfo",BS="opce-macro-wp-quickinfo";const LS=[Op,class extends fc{static get requires(){return[zp,vp,Wp]}static get pluginName(){return"OPMacroEmbeddedTable"}static get buttonName(){return zp.buttonName}},class extends fc{static get requires(){return[Gp,vp,Jp]}static get pluginName(){return"OPMacroWpButton"}static get buttonName(){return Gp.buttonName}},class extends fc{static get requires(){return[uw,vp,hw]}static get pluginName(){return"OPChildPages"}static get buttonName(){return uw.buttonName}}],zS=[class extends fc{static get requires(){return[Qp,Db]}static get pluginName(){return"OpUploadPlugin"}init(){this.editor.plugins.get("FileRepository").createUploadAdapter=e=>{const t=Fp(this.editor);return new Xp(e,t,this.editor)}}},class extends fc{static get pluginName(){return"OPAttachmentListener"}init(){this.editor.model.on("op:attachment-removed",((e,t)=>{this.removeDeletedImage(t)}))}removeDeletedImage(e){let t=this.editor.model.document.getRoot();for(const o of Array.from(t.getChildren()))if("image"===o.name&&e.indexOf(o.getAttribute("src"))>-1){const e=this.editor.model.createSelection(o,"on");this.editor.model.deleteContent(e)}}}],jS=[class extends fc{static get requires(){return[rh,Of,Kg,ww,Qg,Pg,zf]}static get pluginName(){return"Essentials"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Qp]}static get pluginName(){return"CKFinderUploadAdapter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(Qp).createUploadAdapter=t=>new vw(t,e,this.editor.t))}},class extends fc{static get requires(){return[Tg]}static get pluginName(){return"Autoformat"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=this.editor.t;this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats(),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Revert autoformatting action"),keystroke:"Backspace"}]})}_addListAutoformats(){const e=this.editor.commands;e.get("bulletedList")&&Cw(this.editor,this,/^[*-]\s$/,"bulletedList"),e.get("numberedList")&&Cw(this.editor,this,/^1[.|)]\s$/,"numberedList"),e.get("todoList")&&Cw(this.editor,this,/^\[\s?\]\s$/,"todoList"),e.get("checkTodoList")&&Cw(this.editor,this,/^\[\s?x\s?\]\s$/,(()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")}))}_addBasicStylesAutoformats(){const e=this.editor.commands;if(e.get("bold")){const e=Ew(this.editor,"bold");Aw(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,e),Aw(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,e)}if(e.get("italic")){const e=Ew(this.editor,"italic");Aw(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,e),Aw(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,e)}if(e.get("code")){const e=Ew(this.editor,"code");Aw(this.editor,this,/(`)([^`]+)(`)$/g,e)}if(e.get("strikethrough")){const e=Ew(this.editor,"strikethrough");Aw(this.editor,this,/(~~)([^~]+)(~~)$/g,e)}}_addHeadingAutoformats(){const e=this.editor.commands.get("heading");e&&e.modelElements.filter((e=>e.match(/^heading[1-6]$/))).forEach((t=>{const o=t[7],i=new RegExp(`^(#{${o}})\\s$`);Cw(this.editor,this,i,(()=>{if(!e.isEnabled||e.value===t)return!1;this.editor.execute("heading",{value:t})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&Cw(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const e=this.editor,t=e.model.document.selection;e.commands.get("codeBlock")&&Cw(e,this,/^```$/,(()=>{if(t.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&Cw(this.editor,this,/^---$/,"horizontalLine")}},PS,class extends fc{static get requires(){return[Sw,Ow]}static get pluginName(){return"Bold"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Dw,Mw]}static get pluginName(){return"Code"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Bw,zw]}static get pluginName(){return"Italic"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[$w,Hw]}static get pluginName(){return"Strikethrough"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Jw,Zw]}static get pluginName(){return"BlockQuote"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[ny,ry]}static get pluginName(){return"Heading"}static get isOfficialPlugin(){return!0}},gb,fb,class extends fc{static get requires(){return[yb,_b]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[iw,nw]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Mb,qb,Gb,Bb]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Ap,Gf]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(Ap),i=e.plugins.get("ImageUtils");o.register("image",{ariaLabel:t("Image toolbar"),items:lw(e.config.get("image.toolbar")||[]),getRelatedElement:e=>i.getClosestSelectedImageWidget(e)})}},class extends fc{static get pluginName(){return"OpImageAttachmentLookup"}init(){const e=this.editor,t=e.conversion,o=Fp(e);t.for("editingDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,i){let n=o.attributeNewValue;if(!n||!e.lookupDownloadLocationByName)return;const s=e.lookupDownloadLocationByName(n);o.attributeNewValue=s||n}}(o)),t.for("dataDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,i){let n=o.attributeNewValue;if(!n||!e.lookupDownloadLocationByName)return;const s=e.lookupDownloadLocationByName(n);o.attributeNewValue=s||n;const r=i.writer,a=i.mapper.toViewElement(o.item);let l;l="imageInline"===o.item.name?a:a.getChild(0),s&&r.setAttribute("data-original-src",n,l)}}(o));const i=e.plugins.get("ImageUtils");i.decorate("setImageNaturalSizeAttributes"),i.on("setImageNaturalSizeAttributes",((e,[t])=>{console.log("model image element:",{element:t}),e.stop()}),{priority:"highest"})}},class extends fc{static get requires(){return[Ty,Dy,Ny]}static get pluginName(){return"Link"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[z_,H_]}static get pluginName(){return"List"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Y_,ik]}static get pluginName(){return"TodoList"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[ES,TS,vp]}static get pluginName(){return"PageBreak"}static get isOfficialPlugin(){return!0}},ey,Pg,class extends fc{toMentionAttribute(e,t){return rS(e,t)}static get pluginName(){return"Mention"}static get isOfficialPlugin(){return!0}static get requires(){return[nS,fS]}},function(e){const t=Mp(e),o=e.editing.view,i=o.document;o.addObserver(ol),e.listenTo(i,"click",((e,t)=>{if("A"===t.domTarget.nodeName&&t.domTarget.classList.contains("mention")){const e=document.createElement("a");e.target="_blank",e.href=t.domTarget.attributes.href.value,e.click()}})),e.conversion.for("upcast").elementToAttribute({view:{name:"mention",key:"data-mention",classes:"mention"},model:{key:"mention",value:o=>{const i=o.getAttribute("data-id"),n=o.getAttribute("data-display-id"),s=o.getAttribute("data-type"),r=o.getAttribute("data-text");if(AS(o))return null;const a=function(e,o){const i=t.services.apiV3Service[`${o}s`].segment,n=window.OpenProject.urlRoot;return`${n}/${i}/${e}`}(n||i,s);return e.plugins.get("Mention").toMentionAttribute(o,{dataId:i,dataDisplayId:n,link:a,text:r,type:s})}},converterPriority:"high"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",key:"data-mention",classes:"mention"},model:{key:"mention",value:e=>{const t=[...e.getChildren()][0],o=t&&t.data;if(o){const e=`[Invalid mention: ${o}]`;t._data=e}}},converterPriority:"high"}),e.conversion.for("editingDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("a",{class:"mention",href:e.link,"data-mention":e.text,title:e.text})}}),e.conversion.for("dataDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");const o={class:"mention","data-id":e.dataId,"data-type":e.type,"data-text":e.text};e.dataDisplayId&&(o["data-display-id"]=e.dataDisplayId);return t.createAttributeElement("mention",o)}})},class extends fc{static get pluginName(){return"PasteFromOffice"}static get licenseFeatureCode(){return"PFO"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[bf]}init(){const e=this.editor,t=e.plugins.get("ClipboardPipeline"),o=e.editing.view.document,i=[],n=this.editor.plugins.has("MultiLevelListEditing"),s=this.editor.plugins.has("TablePropertiesEditing");i.push(new $A(o,n,s)),i.push(new GA(o)),i.push(new ZA(o)),t.on("inputTransformation",((t,n)=>{if(n._isTransformedWithPasteFromOffice)return;if(e.model.document.selection.getFirstPosition().parent.is("element","codeBlock"))return;const s=n.dataTransfer.getData("text/html"),r=i.find((e=>e.isActive(s)));r&&(n._parsedData||(n._parsedData=YA(s,o.stylesProcessor)),r.execute(n),n._isTransformedWithPasteFromOffice=!0)}),{priority:"high"})}},class extends fc{static get pluginName(){return"OPHelpLinkPlugin"}init(){const e=this.editor,t=e.config.get("openProject.helpURL");e.ui.componentFactory.add("openProjectShowFormattingHelp",(e=>{const o=new Lu(e);return o.set({label:window.I18n.t("js.inplace.link_formatting_help"),icon:'',tooltip:!0}),o.on("execute",(()=>{window.open(t,"_blank")})),o}))}},class extends fc{static get pluginName(){return"OPPreview"}init(){const e=this.editor;let t=!1,o=null;e.ui.componentFactory.add("preview",(i=>{const n=new Lu(i);n.set({label:this.label,icon:'\n',tooltip:!0});let s=function(t){const i=e.ui.getEditableElement(),s=i?.parentElement;if(!s?.parentElement)return void console.error("Cannot show preview: invalid editor structure");const r=document.createElement("div");r.className="ck-editor__preview op-uc-container";Array.from(s.parentElement.children).filter((e=>e!==s&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove()));const a=Np(e,"ckEditorPreview");o=a.render(r,t),s.style.display="none",s.parentElement.insertBefore(r,s.nextSibling),gk(e,n)},r=function(){let o=function(e){return _.get(e.config,"_config.openProject.context.previewContext")}(e);(async function(e,t){return new yk("post",e,t).perform()})(Bp(e).api.v3.previewMarkup(o),{contentType:"text/plain; charset=UTF-8",responseKind:"html",body:e.getData()}).then((e=>e.html)).then(s).catch((o=>{console.error("Error fetching preview:",o),t=!1,pk(e)}))};return n.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot disable preview: invalid editor structure");o&&o(),Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove())),i.style.display="",pk(e)}()):(t=!0,r())})),n}))}get label(){return window.I18n.t("js.editor.preview")}},class extends fc{static get pluginName(){return"OPSourceCode"}init(){const e=this.editor;let t=!1,o={source:window.I18n.t("js.editor.mode.manual"),wysiwyg:window.I18n.t("js.editor.mode.wysiwyg")};e.ui.componentFactory.add("opShowSource",(i=>{const n=new Lu(i);n.set({label:o.source,class:"",icon:tS,tooltip:!0});return n.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot hide source: invalid editor structure");e.fire("op:source-code-disabled"),Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),i.style.display="",pk(e),n.set({label:o.source,class:"",icon:tS,tooltip:!0})}()):(t=!0,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot show source: invalid editor structure");const s=document.createElement("div");s.className="ck-editor__source",Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),i.style.display="none",i.parentElement.insertBefore(s,i.nextSibling),gk(e,n),e.fire("op:source-code-enabled"),n.set({label:o.wysiwyg,class:"-source-enabled",icon:'\n\n \n \n \n image/svg+xml\n \n \n \n \n \n \n \n \n\n',tooltip:!0})}())})),n}))}},class extends fc{static get requires(){return[PS,VS]}static get pluginName(){return"OpContentRevisions"}constructor(e){super(e);const t=this.getStorageKey(e);e.config.define(FS,t)}init(){const e=this.editor;e.commands.add("opContentRevisionApply",new DS(e)),e.once("ready",(()=>{const t=Date.now();e.plugins.get("Autosave")._domEmitter.stopListening(window,"beforeunload"),Object.keys(localStorage).forEach((e=>{if(e.startsWith(MS)){const o=OS(e);o?.updatedAt&&t-o.updatedAt>=288e5&&localStorage.removeItem(e)}}))}))}getStorageKey(e){const t=e.config.get("storageKey");return t||this.createLocalStorageKey(e)}createLocalStorageKey(e){const t=Fp(e),o=function(e){return _.get(e.config,"_config.openProject.context.field")}(e);let i="";return i=t?.href?t.href:location.pathname,o&&(i+=`_${o}`),`${MS}_${i}`}},class extends fc{static get requires(){return[vp]}static get pluginName(){return"OPMacroWpQuickinfo"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register(NS,{allowWhere:"$text",isInline:!0,isObject:!0,allowAttributes:["wpId","wpDisplayId","detailed","markerText"]}),o.for("upcast").elementToElement({view:{name:BS},model:(e,{writer:t})=>{const o=e.getAttribute("data-id")||"",i=e.getAttribute("data-display-id")||""||o,n={wpDisplayId:i,detailed:"true"===e.getAttribute("data-detailed")};return o&&o!==i&&(n.wpId=o),t.createElement(NS,n)},converterPriority:"high"}),o.for("upcast").elementToElement({view:{name:"mention",classes:"mention"},model:(e,{writer:t})=>{if(!AS(e))return null;const o=e.getAttribute("data-text"),i=o.startsWith("###"),n=e.getAttribute("data-id")||"",s=e.getAttribute("data-display-id")||n;return t.createElement(NS,{wpId:n,wpDisplayId:s,detailed:i,markerText:o})},converterPriority:"highest"}),o.for("editingDowncast").elementToElement({model:NS,view:(e,{writer:t})=>{const o=e.getAttribute("wpDisplayId")||"",i=!!e.getAttribute("detailed"),n=e.getAttribute("wpId")||o,s=t.createContainerElement("span",{class:"op-macro-wp-quickinfo-widget"}),r=t.createRawElement(BS,{"data-id":n,"data-display-id":o,"data-detailed":String(i)},(()=>{}));return t.insert(t.createPositionAt(s,0),r),np(s,t,{label:`#${o}`})}}),o.for("dataDowncast").elementToElement({model:NS,view:(e,{writer:t})=>{const o=e.getAttribute("wpDisplayId")||"",i=!!e.getAttribute("detailed"),n=e.getAttribute("wpId"),s=e.getAttribute("markerText")||`${i?"###":"##"}${o}`;if(n){const e=t.createContainerElement("mention",{class:"mention","data-id":n,"data-type":"work_package","data-text":s,"data-display-id":o});return t.insert(t.createPositionAt(e,0),t.createText(s)),e}const r=t.createContainerElement(BS,{"data-id":n||o,"data-display-id":o,"data-detailed":String(i)});return t.insert(t.createPositionAt(r,0),t.createText(s)),r}})}afterInit(){const e=this.editor,t=e.commands.get("mention");t&&t.on("execute",((t,o)=>{const i=o&&o[0];if(!i||!i.mention)return;if("work_package"!==i.mention.type)return;const n=i.marker;if("##"!==n&&"###"!==n)return;t.stop();const s="###"===n,r=String(i.mention.dataDisplayId),a=null!=i.mention.dataId?String(i.mention.dataId):null,l=i.mention.text||`${n}${r}`;e.model.change((t=>{const o=i.range||e.model.document.selection.getFirstRange();o&&t.remove(o);const n={wpDisplayId:r,detailed:s,markerText:l};a&&(n.wpId=a);const c=t.createElement(NS,n);e.model.insertContent(c,e.model.document.selection),t.setSelection(t.createPositionAfter(c))}))}),{priority:"high"})}},class extends fc{static get pluginName(){return"CodeBlock"}static get requires(){return[uk,hk]}},function(e){e.data.processor=new eS(e.editing.view.document)},mC,class extends fc{static get requires(){return[Ap]}static get pluginName(){return"TableToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(Ap),i=e.config.get("table.contentToolbar"),n=e.config.get("table.tableToolbar");i&&o.register("tableContent",{ariaLabel:t("Table toolbar"),items:i,getRelatedElement:fC}),n&&o.register("table",{ariaLabel:t("Table toolbar"),items:n,getRelatedElement:pC})}},class extends fc{static get pluginName(){return"TableProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[hA,yA]}},class extends fc{static get pluginName(){return"TableCellProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[iA,zC]}},class extends fc{init(){const e=this.editor,t=(e.config.get("removePlugins")||[]).map((e=>e.pluginName)),o=window.I18n.t("js.editor.macro.dropdown.chose_macro");!0!==e.config.get("openProject.disableAllMacros")&&e.ui.componentFactory.add("macroList",(i=>{const n=[];for(const o of LS){if(-1!==t.indexOf(o.pluginName))continue;const i=e.ui.componentFactory.create(o.buttonName);n.push(i)}const s=Zh(i);return Qh(s,n,{isVertical:!0,class:"op-macro-list-button"}),s.buttonView.set({isOn:!1,withText:!0,tooltip:o,label:window.I18n.t("js.editor.macro.dropdown.macros")}),s}))}},class extends fc{get config(){const e="op-uc-";return{preFix:e,editorClasses:[`${e}container`,`${e}container_editing`],elementsWithCustomClassesMap:{paragraph:`${e}p`,heading1:`${e}h1`,heading2:`${e}h2`,heading3:`${e}h3`,heading4:`${e}h4`,heading5:`${e}h5`,heading6:`${e}h6`,blockQuote:`${e}blockquote`,figure:`${e}figure`,table:`${e}table`,thead:`${e}table--head`,tr:`${e}table--row`,td:`${e}table--cell`,th:[`${e}table--cell`,`${e}table--cell_head`],tableCell:`${e}table--cell`,tableRow:`${e}table--row`,ol:`${e}list`,ul:`${e}list`,list:`${e}list`,todo:`${e}list ${e}list_task-list`,listItem:`${e}list--item`,li:`${e}list--item`,imageInline:`${e}image ${e}image_inline`,imageBlock:`${e}image`,img:`${e}image`,codeblock:`${e}code-block`,caption:`${e}figure--description`,"op-macro-embedded-table":[`${e}placeholder`,`${e}embedded-table`],"op-macro-wp-button":[`${e}placeholder`,`${e}wp-button`],"op-macro-child-pages":[`${e}placeholder`,`${e}child-pages`],"op-macro-toc":[`${e}placeholder`,`${e}toc`],content:`${e}figure--content`},attributesWithCustomClassesMap:{code:`${e}code`,linkHref:`${e}link`,alignment:`${e}figure_align-`,tableAlignment:`${e}figure_align-`,todo:`${e}list_task-list`,numbered:`${e}list`,bulleted:`${e}list`,listType:null,headingColumns:null,width:null,uploadStatus:null},alignmentValuesMap:{left:"start",right:"end",blockLeft:"start",blockRight:"end",center:"center",default:"center"}}}init(){this._addCustomCSSClassesToTheEditorContainer(this.editor),this._addCustomCSSClassesToElements(this.config),this._addCustomCSSClassesToAttributes(this.config)}_addCustomCSSClassesToTheEditorContainer(e){e.sourceElement.classList.add(...this.config.editorClasses)}_addCustomCSSClassesToElements(e){this.editor.model.schema.extend("table",{allowAttributes:["figureClasses"]}),this.editor.conversion.for("upcast").add((t=>t.on("element:table",this._manageTableUpcast(e))),{priority:"high"}),this.editor.conversion.for("downcast").add((t=>t.on("insert",this._manageElementsInsertion(e),{priority:"low"})))}_addCustomCSSClassesToAttributes(e){this.editor.conversion.for("downcast").add((t=>t.on("attribute",this._manageAttributesInsertion(e),{priority:"low"})))}_manageTableUpcast(e){return(t,o,i)=>{const n=i.writer,s=o.viewItem,r=o.modelRange,a=r&&r.start.nodeAfter;if(!a)return;let l=a.getAttribute("figureClasses")||[],c=s.parent.getClassNames&&s.parent.getClassNames();const d=c?[...c].filter((e=>!!e)):[];l=[...l,...d];const u=d.filter((t=>t.startsWith(e.attributesWithCustomClassesMap.alignment)))[0],h=u&&u.replace(e.attributesWithCustomClassesMap.alignment,"")||e.alignmentValuesMap.default,m=Object.keys(e.alignmentValuesMap).find((t=>e.alignmentValuesMap[t]===h))||"center";if(!u){const t=`${e.attributesWithCustomClassesMap.alignment}${h}`;l=[...l,t]}n.setAttribute("figureClasses",l,a),"center"===m?n.setAttribute("alignment",null,a):n.setAttribute("alignment",m,a)}}_manageElementsInsertion(e){return(t,o,i)=>{const n=Object.keys(e.elementsWithCustomClassesMap),s=i.writer,r=o.item.name,a=o.item,l=i.mapper.toViewElement(a);let c=[l];const d=["imageBlock","table","tableCell","tableRow","listItem"].includes(r);if(n.includes(r)&&l){if(d)if("listItem"===r)c=this._manageListItems(s,a,l,c,e);else{const t=l,o=Array.from(s.createRangeIn(l).getItems());if("imageBlock"===r){const i=o.find((e=>e.is("element","img")));this._wrapInFigureContentContainer(i,t,e,s),c=[...c,i]}else if("table"===r||"tableRow"===r){const i=o.filter((e=>n.includes(e.name)));if(c=[...c,...i],"table"===r){if(!a.getAttribute("tableAlignment")){const o=`${e.attributesWithCustomClassesMap.alignment}${e.alignmentValuesMap.default}`;s.addClass(o,t)}}}}c.forEach((t=>{const o=d?t.name:r,i=e.elementsWithCustomClassesMap[o];s.addClass(i,t)}))}}}_manageAttributesInsertion(e){return(t,o,i)=>{const n=Object.keys(e.attributesWithCustomClassesMap),s=o.attributeKey,r=i.writer,a=o.item,l=i.mapper.toViewElement(a);if(n.includes(s))if("linkHref"===s||"code"===s){const t="linkHref"===s?"a":s,n="linkHref"===s?5:10,l=r.document.selection,c=r.createAttributeElement(t,{class:e.attributesWithCustomClassesMap[s]},{priority:n});a.is("selection")?r.wrap(l.getFirstRange(),c):r.wrap(i.mapper.toViewRange(o.range),c)}else if("tableAlignment"===s){const t=l,i=e.alignmentValuesMap[o.attributeNewValue]||e.alignmentValuesMap.default;Array.from(new Set(Object.values(e.alignmentValuesMap))).map((t=>`${e.attributesWithCustomClassesMap[s]}${t}`)).filter((e=>t.hasClass(e))).forEach((e=>r.removeClass(e,t))),t.hasStyle("float")&&r.removeStyle("float",t),r.addClass(`${e.attributesWithCustomClassesMap[s]}${i}`,t)}else if("listType"===s){this._manageListItems(r,a,l,[l],e).forEach((t=>{const o=t.name,i=e.elementsWithCustomClassesMap[o];r.addClass(i,t)}))}else if("headingColumns"===s){const t=o.attributeNewValue,i=Array.from(r.createRangeIn(l).getItems()).filter((t=>Object.keys(e.elementsWithCustomClassesMap).includes(t.name)));t?i.forEach((t=>{const o=t.name,i=e.elementsWithCustomClassesMap[o];r.addClass(i,t)})):i.filter((t=>t.hasClass(e.elementsWithCustomClassesMap.th[1]))).forEach((t=>{const o=t.nextSibling;o&&"th"!==o.name&&r.removeClass(e.elementsWithCustomClassesMap.th[1],t)}))}else if("width"===s)l.hasClass("image_resized")&&r.removeClass("image_resized",l);else if("uploadStatus"===s&&"complete"===o.attributeNewValue){let e=Array.from(r.createRangeIn(l).getItems()).find((e=>e.hasClass("ck-upload-placeholder-loader")));e&&r.remove(r.createRangeOn(e))}}}_manageListItems(e,t,o,i,n){const s=o.findAncestor("li"),r=o.findAncestor(/^(ul|ol)$/);if(!r)return i;const a=t.getAttribute("listType"),l=n.attributesWithCustomClassesMap[a];if("todo"===a)e.addClass(l,r);else{const t=n.attributesWithCustomClassesMap.todo;r.hasClass(t)&&e.removeClass(t,r)}return[...i,r,s]}_wrapInFigureContentContainer(e,t,o,i){const n=i.createContainerElement("div",{class:o.elementsWithCustomClassesMap.content});i.insert(i.createPositionAt(n,0),e),i.insert(i.createPositionAt(t,0),n)}}].concat(LS,zS);function $S(e){return function(t){const o=window.OpenProject.urlRoot,i=`${o}/work_packages/auto_complete.json`;return this.config.get("disabledMentions").includes("work_package")?[]:new Promise(((n,s)=>{_k(i,{responseKind:"json",query:{q:t,scope:"all"}}).then((e=>e.json)).then((t=>{n(t.map((t=>{const i=t.displayId||t.id,n=`${e}${i}`;return{id:n,dataId:t.id,dataDisplayId:i,type:"work_package",text:n,name:t.to_s,link:`${o}/work_packages/${i}`}})))})).catch((e=>{console.error("Error fetching work package mentions:",e),s(e)}))}))}}function qS(e){const t=document.createElement("span");return"user"!==e.type&&"work_package"!==e.type||(t.setAttribute("data-hover-card-trigger-target","trigger"),t.setAttribute("data-hover-card-url",`${e.link}/hover_card`)),t.classList.add("mention-list-item"),t.textContent=e.name,t}const HS=JSON.parse('[{"id":":grinning_face:","symbol":"😀","group":"people","keywords":["face","grin","grinning face"]},{"id":":beaming_face_with_smiling_eyes:","symbol":"😁","group":"people","keywords":["beaming face with smiling eyes","eye","face","grin","smile"]},{"id":":face_with_tears_of_joy:","symbol":"😂","group":"people","keywords":["face","face with tears of joy","joy","laugh","tear"]},{"id":":rolling_on_the_floor_laughing:","symbol":"🤣","group":"people","keywords":["face","floor","laugh","rolling","rolling on the floor laughing"]},{"id":":grinning_face_with_big_eyes:","symbol":"😃","group":"people","keywords":["face","grinning face with big eyes","mouth","open","smile"]},{"id":":grinning_face_with_smiling_eyes:","symbol":"😄","group":"people","keywords":["eye","face","grinning face with smiling eyes","mouth","open","smile"]},{"id":":grinning_face_with_sweat:","symbol":"😅","group":"people","keywords":["cold","face","grinning face with sweat","open","smile","sweat"]},{"id":":grinning_squinting_face:","symbol":"😆","group":"people","keywords":["face","grinning squinting face","laugh","mouth","satisfied","smile"]},{"id":":winking_face:","symbol":"😉","group":"people","keywords":["face","wink","winking face"]},{"id":":smiling_face_with_smiling_eyes:","symbol":"😊","group":"people","keywords":["blush","eye","face","smile","smiling face with smiling eyes"]},{"id":":face_savoring_food:","symbol":"😋","group":"people","keywords":["delicious","face","face savoring food","savouring","smile","yum"]},{"id":":smiling_face_with_sunglasses:","symbol":"😎","group":"people","keywords":["bright","cool","face","smiling face with sunglasses","sun","sunglasses"]},{"id":":smiling_face_with_heart-eyes:","symbol":"😍","group":"people","keywords":["eye","face","love","smile","smiling face with heart-eyes"]},{"id":":face_blowing_a_kiss:","symbol":"😘","group":"people","keywords":["face","face blowing a kiss","kiss"]},{"id":":kissing_face:","symbol":"😗","group":"people","keywords":["face","kiss","kissing face"]},{"id":":kissing_face_with_smiling_eyes:","symbol":"😙","group":"people","keywords":["eye","face","kiss","kissing face with smiling eyes","smile"]},{"id":":kissing_face_with_closed_eyes:","symbol":"😚","group":"people","keywords":["closed","eye","face","kiss","kissing face with closed eyes"]},{"id":":smiling_face:","symbol":"☺","group":"people","keywords":["face","outlined","relaxed","smile","smiling face"]},{"id":":slightly_smiling_face:","symbol":"🙂","group":"people","keywords":["face","slightly smiling face","smile"]},{"id":":hugging_face:","symbol":"🤗","group":"people","keywords":["face","hug","hugging"]},{"id":":star-struck:","symbol":"🤩","group":"people","keywords":["eyes","face","grinning","star","star-struck",""]},{"id":":thinking_face:","symbol":"🤔","group":"people","keywords":["face","thinking"]},{"id":":face_with_raised_eyebrow:","symbol":"🤨","group":"people","keywords":["distrust","face with raised eyebrow","skeptic",""]},{"id":":neutral_face:","symbol":"😐","group":"people","keywords":["deadpan","face","neutral"]},{"id":":expressionless_face:","symbol":"😑","group":"people","keywords":["expressionless","face","inexpressive","unexpressive"]},{"id":":face_without_mouth:","symbol":"😶","group":"people","keywords":["face","face without mouth","mouth","quiet","silent"]},{"id":":face_with_rolling_eyes:","symbol":"🙄","group":"people","keywords":["eyes","face","face with rolling eyes","rolling"]},{"id":":smirking_face:","symbol":"😏","group":"people","keywords":["face","smirk","smirking face"]},{"id":":persevering_face:","symbol":"😣","group":"people","keywords":["face","persevere","persevering face"]},{"id":":sad_but_relieved_face:","symbol":"😥","group":"people","keywords":["disappointed","face","relieved","sad but relieved face","whew"]},{"id":":face_with_open_mouth:","symbol":"😮","group":"people","keywords":["face","face with open mouth","mouth","open","sympathy"]},{"id":":zipper-mouth_face:","symbol":"🤐","group":"people","keywords":["face","mouth","zipper","zipper-mouth face"]},{"id":":hushed_face:","symbol":"😯","group":"people","keywords":["face","hushed","stunned","surprised"]},{"id":":sleepy_face:","symbol":"😪","group":"people","keywords":["face","sleep","sleepy face"]},{"id":":tired_face:","symbol":"😫","group":"people","keywords":["face","tired"]},{"id":":sleeping_face:","symbol":"😴","group":"people","keywords":["face","sleep","sleeping face","zzz"]},{"id":":relieved_face:","symbol":"😌","group":"people","keywords":["face","relieved"]},{"id":":face_with_tongue:","symbol":"😛","group":"people","keywords":["face","face with tongue","tongue"]},{"id":":winking_face_with_tongue:","symbol":"😜","group":"people","keywords":["eye","face","joke","tongue","wink","winking face with tongue"]},{"id":":squinting_face_with_tongue:","symbol":"😝","group":"people","keywords":["eye","face","horrible","squinting face with tongue","taste","tongue"]},{"id":":drooling_face:","symbol":"🤤","group":"people","keywords":["drooling","face"]},{"id":":unamused_face:","symbol":"😒","group":"people","keywords":["face","unamused","unhappy"]},{"id":":downcast_face_with_sweat:","symbol":"😓","group":"people","keywords":["cold","downcast face with sweat","face","sweat"]},{"id":":pensive_face:","symbol":"😔","group":"people","keywords":["dejected","face","pensive"]},{"id":":confused_face:","symbol":"😕","group":"people","keywords":["confused","face"]},{"id":":upside-down_face:","symbol":"🙃","group":"people","keywords":["face","upside-down"]},{"id":":money-mouth_face:","symbol":"🤑","group":"people","keywords":["face","money","money-mouth face","mouth"]},{"id":":astonished_face:","symbol":"😲","group":"people","keywords":["astonished","face","shocked","totally"]},{"id":":frowning_face:","symbol":"☹","group":"people","keywords":["face","frown","frowning face"]},{"id":":slightly_frowning_face:","symbol":"🙁","group":"people","keywords":["face","frown","slightly frowning face"]},{"id":":confounded_face:","symbol":"😖","group":"people","keywords":["confounded","face"]},{"id":":disappointed_face:","symbol":"😞","group":"people","keywords":["disappointed","face"]},{"id":":worried_face:","symbol":"😟","group":"people","keywords":["face","worried"]},{"id":":face_with_steam_from_nose:","symbol":"😤","group":"people","keywords":["face","face with steam from nose","triumph","won"]},{"id":":crying_face:","symbol":"😢","group":"people","keywords":["cry","crying face","face","sad","tear"]},{"id":":loudly_crying_face:","symbol":"😭","group":"people","keywords":["cry","face","loudly crying face","sad","sob","tear"]},{"id":":frowning_face_with_open_mouth:","symbol":"😦","group":"people","keywords":["face","frown","frowning face with open mouth","mouth","open"]},{"id":":anguished_face:","symbol":"😧","group":"people","keywords":["anguished","face"]},{"id":":fearful_face:","symbol":"😨","group":"people","keywords":["face","fear","fearful","scared"]},{"id":":weary_face:","symbol":"😩","group":"people","keywords":["face","tired","weary"]},{"id":":exploding_head:","symbol":"🤯","group":"people","keywords":["exploding head","shocked"]},{"id":":grimacing_face:","symbol":"😬","group":"people","keywords":["face","grimace","grimacing face"]},{"id":":anxious_face_with_sweat:","symbol":"😰","group":"people","keywords":["anxious face with sweat","blue","cold","face","rushed","sweat"]},{"id":":face_screaming_in_fear:","symbol":"😱","group":"people","keywords":["face","face screaming in fear","fear","munch","scared","scream"]},{"id":":flushed_face:","symbol":"😳","group":"people","keywords":["dazed","face","flushed"]},{"id":":zany_face:","symbol":"🤪","group":"people","keywords":["eye","goofy","large","small","zany face"]},{"id":":dizzy_face:","symbol":"😵","group":"people","keywords":["dizzy","face"]},{"id":":pouting_face:","symbol":"😡","group":"people","keywords":["angry","face","mad","pouting","rage","red"]},{"id":":angry_face:","symbol":"😠","group":"people","keywords":["angry","face","mad"]},{"id":":face_with_symbols_on_mouth:","symbol":"🤬","group":"people","keywords":["face with symbols on mouth","swearing",""]},{"id":":face_with_medical_mask:","symbol":"😷","group":"people","keywords":["cold","doctor","face","face with medical mask","mask","sick"]},{"id":":face_with_thermometer:","symbol":"🤒","group":"people","keywords":["face","face with thermometer","ill","sick","thermometer"]},{"id":":face_with_head-bandage:","symbol":"🤕","group":"people","keywords":["bandage","face","face with head-bandage","hurt","injury"]},{"id":":nauseated_face:","symbol":"🤢","group":"people","keywords":["face","nauseated","vomit"]},{"id":":face_vomiting:","symbol":"🤮","group":"people","keywords":["face vomiting","sick","vomit"]},{"id":":sneezing_face:","symbol":"🤧","group":"people","keywords":["face","gesundheit","sneeze","sneezing face"]},{"id":":smiling_face_with_halo:","symbol":"😇","group":"people","keywords":["angel","face","fantasy","halo","innocent","smiling face with halo"]},{"id":":cowboy_hat_face:","symbol":"🤠","group":"people","keywords":["cowboy","cowgirl","face","hat"]},{"id":":lying_face:","symbol":"🤥","group":"people","keywords":["face","lie","lying face","pinocchio"]},{"id":":shushing_face:","symbol":"🤫","group":"people","keywords":["quiet","shush","shushing face"]},{"id":":face_with_hand_over_mouth:","symbol":"🤭","group":"people","keywords":["face with hand over mouth","whoops",""]},{"id":":face_with_monocle:","symbol":"🧐","group":"people","keywords":["face with monocle","stuffy",""]},{"id":":nerd_face:","symbol":"🤓","group":"people","keywords":["face","geek","nerd"]},{"id":":smiling_face_with_horns:","symbol":"😈","group":"people","keywords":["face","fairy tale","fantasy","horns","smile","smiling face with horns"]},{"id":":angry_face_with_horns:","symbol":"👿","group":"people","keywords":["angry face with horns","demon","devil","face","fantasy","imp"]},{"id":":clown_face:","symbol":"🤡","group":"people","keywords":["clown","face"]},{"id":":ogre:","symbol":"👹","group":"people","keywords":["creature","face","fairy tale","fantasy","monster","ogre",""]},{"id":":goblin:","symbol":"👺","group":"people","keywords":["creature","face","fairy tale","fantasy","goblin","monster"]},{"id":":skull:","symbol":"💀","group":"people","keywords":["death","face","fairy tale","monster","skull"]},{"id":":skull_and_crossbones:","symbol":"☠","group":"people","keywords":["crossbones","death","face","monster","skull","skull and crossbones"]},{"id":":ghost:","symbol":"👻","group":"people","keywords":["creature","face","fairy tale","fantasy","ghost","monster"]},{"id":":alien:","symbol":"👽","group":"people","keywords":["alien","creature","extraterrestrial","face","fantasy","ufo"]},{"id":":alien_monster:","symbol":"👾","group":"people","keywords":["alien","creature","extraterrestrial","face","monster","ufo"]},{"id":":robot_face:","symbol":"🤖","group":"people","keywords":["face","monster","robot"]},{"id":":pile_of_poo:","symbol":"💩","group":"people","keywords":["dung","face","monster","pile of poo","poo","poop"]},{"id":":grinning_cat_face:","symbol":"😺","group":"people","keywords":["cat","face","grinning cat face","mouth","open","smile"]},{"id":":grinning_cat_face_with_smiling_eyes:","symbol":"😸","group":"people","keywords":["cat","eye","face","grin","grinning cat face with smiling eyes","smile"]},{"id":":cat_face_with_tears_of_joy:","symbol":"😹","group":"people","keywords":["cat","cat face with tears of joy","face","joy","tear"]},{"id":":smiling_cat_face_with_heart-eyes:","symbol":"😻","group":"people","keywords":["cat","eye","face","love","smile","smiling cat face with heart-eyes"]},{"id":":cat_face_with_wry_smile:","symbol":"😼","group":"people","keywords":["cat","cat face with wry smile","face","ironic","smile","wry"]},{"id":":kissing_cat_face:","symbol":"😽","group":"people","keywords":["cat","eye","face","kiss","kissing cat face"]},{"id":":weary_cat_face:","symbol":"🙀","group":"people","keywords":["cat","face","oh","surprised","weary"]},{"id":":crying_cat_face:","symbol":"😿","group":"people","keywords":["cat","cry","crying cat face","face","sad","tear"]},{"id":":pouting_cat_face:","symbol":"😾","group":"people","keywords":["cat","face","pouting"]},{"id":":see-no-evil_monkey:","symbol":"🙈","group":"people","keywords":["evil","face","forbidden","monkey","see","see-no-evil monkey"]},{"id":":hear-no-evil_monkey:","symbol":"🙉","group":"people","keywords":["evil","face","forbidden","hear","hear-no-evil monkey","monkey"]},{"id":":speak-no-evil_monkey:","symbol":"🙊","group":"people","keywords":["evil","face","forbidden","monkey","speak","speak-no-evil monkey"]},{"id":":baby:","symbol":"👶","group":"people","keywords":["baby","young"]},{"id":":child:","symbol":"🧒","group":"people","keywords":["child","gender-neutral","unspecified gender","young"]},{"id":":boy:","symbol":"👦","group":"people","keywords":["boy","young"]},{"id":":girl:","symbol":"👧","group":"people","keywords":["girl","Virgo","young","zodiac"]},{"id":":person:","symbol":"🧑","group":"people","keywords":["adult","gender-neutral","person","unspecified gender"]},{"id":":person_blond_hair:","symbol":"👱","group":"people","keywords":["blond","blond-haired person","person: blond hair"]},{"id":":man:","symbol":"👨","group":"people","keywords":["adult","man"]},{"id":":man_blond_hair:","symbol":"👱‍♂️","group":"people","keywords":["blond","blond-haired man","man","man: blond hair"]},{"id":":man_beard:","symbol":"🧔","group":"people","keywords":["beard","man: beard","person",""]},{"id":":woman:","symbol":"👩","group":"people","keywords":["adult","woman"]},{"id":":woman_blond_hair:","symbol":"👱‍♀️","group":"people","keywords":["blond-haired woman","blonde","woman","woman: blond hair"]},{"id":":older_person:","symbol":"🧓","group":"people","keywords":["adult","gender-neutral","old","older person","unspecified gender"]},{"id":":old_man:","symbol":"👴","group":"people","keywords":["adult","man","old"]},{"id":":old_woman:","symbol":"👵","group":"people","keywords":["adult","old","woman"]},{"id":":man_health_worker:","symbol":"👨‍⚕️","group":"people","keywords":["doctor","healthcare","man","man health worker","nurse","therapist"]},{"id":":woman_health_worker:","symbol":"👩‍⚕️","group":"people","keywords":["doctor","healthcare","nurse","therapist","woman","woman health worker"]},{"id":":man_student:","symbol":"👨‍🎓","group":"people","keywords":["graduate","man","student"]},{"id":":woman_student:","symbol":"👩‍🎓","group":"people","keywords":["graduate","student","woman"]},{"id":":man_teacher:","symbol":"👨‍🏫","group":"people","keywords":["instructor","man","professor","teacher"]},{"id":":woman_teacher:","symbol":"👩‍🏫","group":"people","keywords":["instructor","professor","teacher","woman"]},{"id":":man_judge:","symbol":"👨‍⚖️","group":"people","keywords":["justice","man","man judge","scales"]},{"id":":woman_judge:","symbol":"👩‍⚖️","group":"people","keywords":["judge","scales","woman"]},{"id":":man_farmer:","symbol":"👨‍🌾","group":"people","keywords":["farmer","gardener","man","rancher"]},{"id":":woman_farmer:","symbol":"👩‍🌾","group":"people","keywords":["farmer","gardener","rancher","woman"]},{"id":":man_cook:","symbol":"👨‍🍳","group":"people","keywords":["chef","cook","man"]},{"id":":woman_cook:","symbol":"👩‍🍳","group":"people","keywords":["chef","cook","woman"]},{"id":":man_mechanic:","symbol":"👨‍🔧","group":"people","keywords":["electrician","man","mechanic","plumber","tradesperson"]},{"id":":woman_mechanic:","symbol":"👩‍🔧","group":"people","keywords":["electrician","mechanic","plumber","tradesperson","woman"]},{"id":":man_factory_worker:","symbol":"👨‍🏭","group":"people","keywords":["assembly","factory","industrial","man","worker"]},{"id":":woman_factory_worker:","symbol":"👩‍🏭","group":"people","keywords":["assembly","factory","industrial","woman","worker"]},{"id":":man_office_worker:","symbol":"👨‍💼","group":"people","keywords":["architect","business","man","man office worker","manager","white-collar"]},{"id":":woman_office_worker:","symbol":"👩‍💼","group":"people","keywords":["architect","business","manager","white-collar","woman","woman office worker"]},{"id":":man_scientist:","symbol":"👨‍🔬","group":"people","keywords":["biologist","chemist","engineer","man","physicist","scientist"]},{"id":":woman_scientist:","symbol":"👩‍🔬","group":"people","keywords":["biologist","chemist","engineer","physicist","scientist","woman"]},{"id":":man_technologist:","symbol":"👨‍💻","group":"people","keywords":["coder","developer","inventor","man","software","technologist"]},{"id":":woman_technologist:","symbol":"👩‍💻","group":"people","keywords":["coder","developer","inventor","software","technologist","woman"]},{"id":":man_singer:","symbol":"👨‍🎤","group":"people","keywords":["actor","entertainer","man","rock","singer","star"]},{"id":":woman_singer:","symbol":"👩‍🎤","group":"people","keywords":["actor","entertainer","rock","singer","star","woman"]},{"id":":man_artist:","symbol":"👨‍🎨","group":"people","keywords":["artist","man","palette"]},{"id":":woman_artist:","symbol":"👩‍🎨","group":"people","keywords":["artist","palette","woman"]},{"id":":man_pilot:","symbol":"👨‍✈️","group":"people","keywords":["man","pilot","plane"]},{"id":":woman_pilot:","symbol":"👩‍✈️","group":"people","keywords":["pilot","plane","woman"]},{"id":":man_astronaut:","symbol":"👨‍🚀","group":"people","keywords":["astronaut","man","rocket"]},{"id":":woman_astronaut:","symbol":"👩‍🚀","group":"people","keywords":["astronaut","rocket","woman"]},{"id":":man_firefighter:","symbol":"👨‍🚒","group":"people","keywords":["firefighter","firetruck","man"]},{"id":":woman_firefighter:","symbol":"👩‍🚒","group":"people","keywords":["firefighter","firetruck","woman"]},{"id":":police_officer:","symbol":"👮","group":"people","keywords":["cop","officer","police"]},{"id":":man_police_officer:","symbol":"👮‍♂️","group":"people","keywords":["cop","man","officer","police"]},{"id":":woman_police_officer:","symbol":"👮‍♀️","group":"people","keywords":["cop","officer","police","woman"]},{"id":":detective:","symbol":"🕵","group":"people","keywords":["detective","sleuth","spy"]},{"id":":man_detective:","symbol":"🕵️‍♂️","group":"people","keywords":["detective","man","sleuth","spy"]},{"id":":woman_detective:","symbol":"🕵️‍♀️","group":"people","keywords":["detective","sleuth","spy","woman"]},{"id":":guard:","symbol":"💂","group":"people","keywords":["guard"]},{"id":":man_guard:","symbol":"💂‍♂️","group":"people","keywords":["guard","man"]},{"id":":woman_guard:","symbol":"💂‍♀️","group":"people","keywords":["guard","woman"]},{"id":":construction_worker:","symbol":"👷","group":"people","keywords":["construction","hat","worker"]},{"id":":man_construction_worker:","symbol":"👷‍♂️","group":"people","keywords":["construction","man","worker"]},{"id":":woman_construction_worker:","symbol":"👷‍♀️","group":"people","keywords":["construction","woman","worker"]},{"id":":prince:","symbol":"🤴","group":"people","keywords":["prince"]},{"id":":princess:","symbol":"👸","group":"people","keywords":["fairy tale","fantasy","princess"]},{"id":":person_wearing_turban:","symbol":"👳","group":"people","keywords":["person wearing turban","turban"]},{"id":":man_wearing_turban:","symbol":"👳‍♂️","group":"people","keywords":["man","man wearing turban","turban"]},{"id":":woman_wearing_turban:","symbol":"👳‍♀️","group":"people","keywords":["turban","woman","woman wearing turban"]},{"id":":man_with_chinese_cap:","symbol":"👲","group":"people","keywords":["gua pi mao","hat","man","man with Chinese cap"]},{"id":":woman_with_headscarf:","symbol":"🧕","group":"people","keywords":["headscarf","hijab","mantilla","tichel","woman with headscarf",""]},{"id":":man_in_tuxedo:","symbol":"🤵","group":"people","keywords":["groom","man","man in tuxedo","tuxedo"]},{"id":":bride_with_veil:","symbol":"👰","group":"people","keywords":["bride","bride with veil","veil","wedding"]},{"id":":pregnant_woman:","symbol":"🤰","group":"people","keywords":["pregnant","woman"]},{"id":":breast-feeding:","symbol":"🤱","group":"people","keywords":["baby","breast","breast-feeding","nursing"]},{"id":":baby_angel:","symbol":"👼","group":"people","keywords":["angel","baby","face","fairy tale","fantasy"]},{"id":":santa_claus:","symbol":"🎅","group":"people","keywords":["celebration","Christmas","claus","father","santa","Santa Claus"]},{"id":":mrs._claus:","symbol":"🤶","group":"people","keywords":["celebration","Christmas","claus","mother","Mrs.","Mrs. Claus"]},{"id":":mage:","symbol":"🧙","group":"people","keywords":["mage","sorcerer","sorceress","witch","wizard"]},{"id":":man_mage:","symbol":"🧙‍♂️","group":"people","keywords":["man mage","sorcerer","wizard"]},{"id":":woman_mage:","symbol":"🧙‍♀️","group":"people","keywords":["sorceress","witch","woman mage"]},{"id":":fairy:","symbol":"🧚","group":"people","keywords":["fairy","Oberon","Puck","Titania"]},{"id":":man_fairy:","symbol":"🧚‍♂️","group":"people","keywords":["man fairy","Oberon","Puck"]},{"id":":woman_fairy:","symbol":"🧚‍♀️","group":"people","keywords":["Titania","woman fairy"]},{"id":":vampire:","symbol":"🧛","group":"people","keywords":["Dracula","undead","vampire"]},{"id":":man_vampire:","symbol":"🧛‍♂️","group":"people","keywords":["Dracula","man vampire","undead"]},{"id":":woman_vampire:","symbol":"🧛‍♀️","group":"people","keywords":["undead","woman vampire"]},{"id":":merperson:","symbol":"🧜","group":"people","keywords":["mermaid","merman","merperson","merwoman"]},{"id":":merman:","symbol":"🧜‍♂️","group":"people","keywords":["merman","Triton"]},{"id":":mermaid:","symbol":"🧜‍♀️","group":"people","keywords":["mermaid","merwoman"]},{"id":":elf:","symbol":"🧝","group":"people","keywords":["elf","magical",""]},{"id":":man_elf:","symbol":"🧝‍♂️","group":"people","keywords":["magical","man elf"]},{"id":":woman_elf:","symbol":"🧝‍♀️","group":"people","keywords":["magical","woman elf"]},{"id":":genie:","symbol":"🧞","group":"people","keywords":["djinn","genie",""]},{"id":":man_genie:","symbol":"🧞‍♂️","group":"people","keywords":["djinn","man genie"]},{"id":":woman_genie:","symbol":"🧞‍♀️","group":"people","keywords":["djinn","woman genie"]},{"id":":zombie:","symbol":"🧟","group":"people","keywords":["undead","walking dead","zombie",""]},{"id":":man_zombie:","symbol":"🧟‍♂️","group":"people","keywords":["man zombie","undead","walking dead"]},{"id":":woman_zombie:","symbol":"🧟‍♀️","group":"people","keywords":["undead","walking dead","woman zombie"]},{"id":":person_frowning:","symbol":"🙍","group":"people","keywords":["frown","gesture","person frowning"]},{"id":":man_frowning:","symbol":"🙍‍♂️","group":"people","keywords":["frowning","gesture","man"]},{"id":":woman_frowning:","symbol":"🙍‍♀️","group":"people","keywords":["frowning","gesture","woman"]},{"id":":person_pouting:","symbol":"🙎","group":"people","keywords":["gesture","person pouting","pouting"]},{"id":":man_pouting:","symbol":"🙎‍♂️","group":"people","keywords":["gesture","man","pouting"]},{"id":":woman_pouting:","symbol":"🙎‍♀️","group":"people","keywords":["gesture","pouting","woman"]},{"id":":person_gesturing_no:","symbol":"🙅","group":"people","keywords":["forbidden","gesture","hand","person gesturing NO","prohibited"]},{"id":":man_gesturing_no:","symbol":"🙅‍♂️","group":"people","keywords":["forbidden","gesture","hand","man","man gesturing NO","prohibited"]},{"id":":woman_gesturing_no:","symbol":"🙅‍♀️","group":"people","keywords":["forbidden","gesture","hand","prohibited","woman","woman gesturing NO"]},{"id":":person_gesturing_ok:","symbol":"🙆","group":"people","keywords":["gesture","hand","OK","person gesturing OK"]},{"id":":man_gesturing_ok:","symbol":"🙆‍♂️","group":"people","keywords":["gesture","hand","man","man gesturing OK","OK"]},{"id":":woman_gesturing_ok:","symbol":"🙆‍♀️","group":"people","keywords":["gesture","hand","OK","woman","woman gesturing OK"]},{"id":":person_tipping_hand:","symbol":"💁","group":"people","keywords":["hand","help","information","person tipping hand","sassy","tipping"]},{"id":":man_tipping_hand:","symbol":"💁‍♂️","group":"people","keywords":["man","man tipping hand","sassy","tipping hand"]},{"id":":woman_tipping_hand:","symbol":"💁‍♀️","group":"people","keywords":["sassy","tipping hand","woman","woman tipping hand"]},{"id":":person_raising_hand:","symbol":"🙋","group":"people","keywords":["gesture","hand","happy","person raising hand","raised"]},{"id":":man_raising_hand:","symbol":"🙋‍♂️","group":"people","keywords":["gesture","man","man raising hand","raising hand"]},{"id":":woman_raising_hand:","symbol":"🙋‍♀️","group":"people","keywords":["gesture","raising hand","woman","woman raising hand"]},{"id":":person_bowing:","symbol":"🙇","group":"people","keywords":["apology","bow","gesture","person bowing","sorry"]},{"id":":man_bowing:","symbol":"🙇‍♂️","group":"people","keywords":["apology","bowing","favor","gesture","man","sorry"]},{"id":":woman_bowing:","symbol":"🙇‍♀️","group":"people","keywords":["apology","bowing","favor","gesture","sorry","woman"]},{"id":":person_facepalming:","symbol":"🤦","group":"people","keywords":["disbelief","exasperation","face","palm","person facepalming"]},{"id":":man_facepalming:","symbol":"🤦‍♂️","group":"people","keywords":["disbelief","exasperation","facepalm","man","man facepalming"]},{"id":":woman_facepalming:","symbol":"🤦‍♀️","group":"people","keywords":["disbelief","exasperation","facepalm","woman","woman facepalming"]},{"id":":person_shrugging:","symbol":"🤷","group":"people","keywords":["doubt","ignorance","indifference","person shrugging","shrug"]},{"id":":man_shrugging:","symbol":"🤷‍♂️","group":"people","keywords":["doubt","ignorance","indifference","man","man shrugging","shrug"]},{"id":":woman_shrugging:","symbol":"🤷‍♀️","group":"people","keywords":["doubt","ignorance","indifference","shrug","woman","woman shrugging"]},{"id":":person_getting_massage:","symbol":"💆","group":"people","keywords":["face","massage","person getting massage","salon"]},{"id":":man_getting_massage:","symbol":"💆‍♂️","group":"people","keywords":["face","man","man getting massage","massage"]},{"id":":woman_getting_massage:","symbol":"💆‍♀️","group":"people","keywords":["face","massage","woman","woman getting massage"]},{"id":":person_getting_haircut:","symbol":"💇","group":"people","keywords":["barber","beauty","haircut","parlor","person getting haircut"]},{"id":":man_getting_haircut:","symbol":"💇‍♂️","group":"people","keywords":["haircut","man","man getting haircut"]},{"id":":woman_getting_haircut:","symbol":"💇‍♀️","group":"people","keywords":["haircut","woman","woman getting haircut"]},{"id":":person_walking:","symbol":"🚶","group":"people","keywords":["hike","person walking","walk","walking"]},{"id":":man_walking:","symbol":"🚶‍♂️","group":"people","keywords":["hike","man","man walking","walk"]},{"id":":woman_walking:","symbol":"🚶‍♀️","group":"people","keywords":["hike","walk","woman","woman walking"]},{"id":":person_running:","symbol":"🏃","group":"people","keywords":["marathon","person running","running"]},{"id":":man_running:","symbol":"🏃‍♂️","group":"people","keywords":["man","marathon","racing","running"]},{"id":":woman_running:","symbol":"🏃‍♀️","group":"people","keywords":["marathon","racing","running","woman"]},{"id":":woman_dancing:","symbol":"💃","group":"people","keywords":["dancing","woman"]},{"id":":man_dancing:","symbol":"🕺","group":"people","keywords":["dance","man","man dancing"]},{"id":":people_with_bunny_ears:","symbol":"👯","group":"people","keywords":["bunny ear","dancer","partying","people with bunny ears"]},{"id":":men_with_bunny_ears:","symbol":"👯‍♂️","group":"people","keywords":["bunny ear","dancer","men","men with bunny ears","partying"]},{"id":":women_with_bunny_ears:","symbol":"👯‍♀️","group":"people","keywords":["bunny ear","dancer","partying","women","women with bunny ears"]},{"id":":person_in_steamy_room:","symbol":"🧖","group":"people","keywords":["person in steamy room","sauna","steam room",""]},{"id":":man_in_steamy_room:","symbol":"🧖‍♂️","group":"people","keywords":["man in steamy room","sauna","steam room"]},{"id":":woman_in_steamy_room:","symbol":"🧖‍♀️","group":"people","keywords":["sauna","steam room","woman in steamy room"]},{"id":":person_climbing:","symbol":"🧗","group":"people","keywords":["climber","person climbing"]},{"id":":man_climbing:","symbol":"🧗‍♂️","group":"people","keywords":["climber","man climbing"]},{"id":":woman_climbing:","symbol":"🧗‍♀️","group":"people","keywords":["climber","woman climbing"]},{"id":":person_in_lotus_position:","symbol":"🧘","group":"people","keywords":["meditation","person in lotus position","yoga",""]},{"id":":man_in_lotus_position:","symbol":"🧘‍♂️","group":"people","keywords":["man in lotus position","meditation","yoga"]},{"id":":woman_in_lotus_position:","symbol":"🧘‍♀️","group":"people","keywords":["meditation","woman in lotus position","yoga"]},{"id":":person_taking_bath:","symbol":"🛀","group":"people","keywords":["bath","bathtub","person taking bath"]},{"id":":person_in_bed:","symbol":"🛌","group":"people","keywords":["hotel","person in bed","sleep"]},{"id":":man_in_suit_levitating:","symbol":"🕴","group":"people","keywords":["business","man","man in suit levitating","suit"]},{"id":":speaking_head:","symbol":"🗣","group":"people","keywords":["face","head","silhouette","speak","speaking"]},{"id":":bust_in_silhouette:","symbol":"👤","group":"people","keywords":["bust","bust in silhouette","silhouette"]},{"id":":busts_in_silhouette:","symbol":"👥","group":"people","keywords":["bust","busts in silhouette","silhouette"]},{"id":":person_fencing:","symbol":"🤺","group":"people","keywords":["fencer","fencing","person fencing","sword"]},{"id":":horse_racing:","symbol":"🏇","group":"people","keywords":["horse","jockey","racehorse","racing"]},{"id":":skier:","symbol":"⛷","group":"people","keywords":["ski","skier","snow"]},{"id":":snowboarder:","symbol":"🏂","group":"people","keywords":["ski","snow","snowboard","snowboarder"]},{"id":":person_golfing:","symbol":"🏌","group":"people","keywords":["ball","golf","person golfing"]},{"id":":man_golfing:","symbol":"🏌️‍♂️","group":"people","keywords":["golf","man","man golfing"]},{"id":":woman_golfing:","symbol":"🏌️‍♀️","group":"people","keywords":["golf","woman","woman golfing"]},{"id":":person_surfing:","symbol":"🏄","group":"people","keywords":["person surfing","surfing"]},{"id":":man_surfing:","symbol":"🏄‍♂️","group":"people","keywords":["man","surfing"]},{"id":":woman_surfing:","symbol":"🏄‍♀️","group":"people","keywords":["surfing","woman"]},{"id":":person_rowing_boat:","symbol":"🚣","group":"people","keywords":["boat","person rowing boat","rowboat"]},{"id":":man_rowing_boat:","symbol":"🚣‍♂️","group":"people","keywords":["boat","man","man rowing boat","rowboat"]},{"id":":woman_rowing_boat:","symbol":"🚣‍♀️","group":"people","keywords":["boat","rowboat","woman","woman rowing boat"]},{"id":":person_swimming:","symbol":"🏊","group":"people","keywords":["person swimming","swim"]},{"id":":man_swimming:","symbol":"🏊‍♂️","group":"people","keywords":["man","man swimming","swim"]},{"id":":woman_swimming:","symbol":"🏊‍♀️","group":"people","keywords":["swim","woman","woman swimming"]},{"id":":person_bouncing_ball:","symbol":"⛹","group":"people","keywords":["ball","person bouncing ball"]},{"id":":man_bouncing_ball:","symbol":"⛹️‍♂️","group":"people","keywords":["ball","man","man bouncing ball"]},{"id":":woman_bouncing_ball:","symbol":"⛹️‍♀️","group":"people","keywords":["ball","woman","woman bouncing ball"]},{"id":":person_lifting_weights:","symbol":"🏋","group":"people","keywords":["lifter","person lifting weights","weight"]},{"id":":man_lifting_weights:","symbol":"🏋️‍♂️","group":"people","keywords":["man","man lifting weights","weight lifter"]},{"id":":woman_lifting_weights:","symbol":"🏋️‍♀️","group":"people","keywords":["weight lifter","woman","woman lifting weights"]},{"id":":person_biking:","symbol":"🚴","group":"people","keywords":["bicycle","biking","cyclist","person biking"]},{"id":":man_biking:","symbol":"🚴‍♂️","group":"people","keywords":["bicycle","biking","cyclist","man"]},{"id":":woman_biking:","symbol":"🚴‍♀️","group":"people","keywords":["bicycle","biking","cyclist","woman"]},{"id":":person_mountain_biking:","symbol":"🚵","group":"people","keywords":["bicycle","bicyclist","bike","cyclist","mountain","person mountain biking"]},{"id":":man_mountain_biking:","symbol":"🚵‍♂️","group":"people","keywords":["bicycle","bike","cyclist","man","man mountain biking","mountain"]},{"id":":woman_mountain_biking:","symbol":"🚵‍♀️","group":"people","keywords":["bicycle","bike","biking","cyclist","mountain","woman"]},{"id":":racing_car:","symbol":"🏎","group":"people","keywords":["car","racing"]},{"id":":motorcycle:","symbol":"🏍","group":"people","keywords":["motorcycle","racing"]},{"id":":person_cartwheeling:","symbol":"🤸","group":"people","keywords":["cartwheel","gymnastics","person cartwheeling"]},{"id":":man_cartwheeling:","symbol":"🤸‍♂️","group":"people","keywords":["cartwheel","gymnastics","man","man cartwheeling"]},{"id":":woman_cartwheeling:","symbol":"🤸‍♀️","group":"people","keywords":["cartwheel","gymnastics","woman","woman cartwheeling"]},{"id":":people_wrestling:","symbol":"🤼","group":"people","keywords":["people wrestling","wrestle","wrestler"]},{"id":":men_wrestling:","symbol":"🤼‍♂️","group":"people","keywords":["men","men wrestling","wrestle"]},{"id":":women_wrestling:","symbol":"🤼‍♀️","group":"people","keywords":["women","women wrestling","wrestle"]},{"id":":person_playing_water_polo:","symbol":"🤽","group":"people","keywords":["person playing water polo","polo","water"]},{"id":":man_playing_water_polo:","symbol":"🤽‍♂️","group":"people","keywords":["man","man playing water polo","water polo"]},{"id":":woman_playing_water_polo:","symbol":"🤽‍♀️","group":"people","keywords":["water polo","woman","woman playing water polo"]},{"id":":person_playing_handball:","symbol":"🤾","group":"people","keywords":["ball","handball","person playing handball"]},{"id":":man_playing_handball:","symbol":"🤾‍♂️","group":"people","keywords":["handball","man","man playing handball"]},{"id":":woman_playing_handball:","symbol":"🤾‍♀️","group":"people","keywords":["handball","woman","woman playing handball"]},{"id":":person_juggling:","symbol":"🤹","group":"people","keywords":["balance","juggle","multitask","person juggling","skill"]},{"id":":man_juggling:","symbol":"🤹‍♂️","group":"people","keywords":["juggling","man","multitask"]},{"id":":woman_juggling:","symbol":"🤹‍♀️","group":"people","keywords":["juggling","multitask","woman"]},{"id":":man_and_woman_holding_hands:","symbol":"👫","group":"people","keywords":["couple","hand","hold","man","man and woman holding hands","woman"]},{"id":":two_men_holding_hands:","symbol":"👬","group":"people","keywords":["couple","Gemini","man","twins","two men holding hands","zodiac"]},{"id":":two_women_holding_hands:","symbol":"👭","group":"people","keywords":["couple","hand","two women holding hands","woman"]},{"id":":kiss:","symbol":"💏","group":"people","keywords":["couple","kiss"]},{"id":":kiss_woman_man:","symbol":"👩‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man","woman"]},{"id":":kiss_man_man:","symbol":"👨‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man"]},{"id":":kiss_woman_woman:","symbol":"👩‍❤️‍💋‍👩","group":"people","keywords":["couple","kiss","woman"]},{"id":":couple_with_heart:","symbol":"💑","group":"people","keywords":["couple","couple with heart","love"]},{"id":":couple_with_heart_woman_man:","symbol":"👩‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man","woman"]},{"id":":couple_with_heart_man_man:","symbol":"👨‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man"]},{"id":":couple_with_heart_woman_woman:","symbol":"👩‍❤️‍👩","group":"people","keywords":["couple","couple with heart","love","woman"]},{"id":":family:","symbol":"👪","group":"people","keywords":["family"]},{"id":":family_man_woman_boy:","symbol":"👨‍👩‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl:","symbol":"👨‍👩‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_woman_girl_boy:","symbol":"👨‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","man","woman"]},{"id":":family_man_woman_boy_boy:","symbol":"👨‍👩‍👦‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl_girl:","symbol":"👨‍👩‍👧‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_man_boy:","symbol":"👨‍👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl:","symbol":"👨‍👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_man_girl_boy:","symbol":"👨‍👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_man_boy_boy:","symbol":"👨‍👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl_girl:","symbol":"👨‍👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_woman_boy:","symbol":"👩‍👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl:","symbol":"👩‍👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_woman_girl_boy:","symbol":"👩‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_woman_boy_boy:","symbol":"👩‍👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl_girl:","symbol":"👩‍👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_man_boy:","symbol":"👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_boy_boy:","symbol":"👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_girl:","symbol":"👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_girl_boy:","symbol":"👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_girl_girl:","symbol":"👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_boy:","symbol":"👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_boy_boy:","symbol":"👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_girl:","symbol":"👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_girl_boy:","symbol":"👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_girl_girl:","symbol":"👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":selfie:","symbol":"🤳","group":"people","keywords":["camera","phone","selfie"]},{"id":":flexed_biceps:","symbol":"💪","group":"people","keywords":["biceps","comic","flex","flexed biceps","muscle"]},{"id":":backhand_index_pointing_left:","symbol":"👈","group":"people","keywords":["backhand","backhand index pointing left","finger","hand","index","point"]},{"id":":backhand_index_pointing_right:","symbol":"👉","group":"people","keywords":["backhand","backhand index pointing right","finger","hand","index","point"]},{"id":":index_pointing_up:","symbol":"☝","group":"people","keywords":["finger","hand","index","index pointing up","point","up"]},{"id":":backhand_index_pointing_up:","symbol":"👆","group":"people","keywords":["backhand","backhand index pointing up","finger","hand","point","up"]},{"id":":middle_finger:","symbol":"🖕","group":"people","keywords":["finger","hand","middle finger"]},{"id":":backhand_index_pointing_down:","symbol":"👇","group":"people","keywords":["backhand","backhand index pointing down","down","finger","hand","point"]},{"id":":victory_hand:","symbol":"✌","group":"people","keywords":["hand","v","victory"]},{"id":":crossed_fingers:","symbol":"🤞","group":"people","keywords":["cross","crossed fingers","finger","hand","luck"]},{"id":":vulcan_salute:","symbol":"🖖","group":"people","keywords":["finger","hand","spock","vulcan","vulcan salute"]},{"id":":sign_of_the_horns:","symbol":"🤘","group":"people","keywords":["finger","hand","horns","rock-on","sign of the horns"]},{"id":":call_me_hand:","symbol":"🤙","group":"people","keywords":["call","call me hand","hand"]},{"id":":hand_with_fingers_splayed:","symbol":"🖐","group":"people","keywords":["finger","hand","hand with fingers splayed","splayed"]},{"id":":raised_hand:","symbol":"✋","group":"people","keywords":["hand","raised hand"]},{"id":":ok_hand:","symbol":"👌","group":"people","keywords":["hand","OK"]},{"id":":thumbs_up:","symbol":"👍","group":"people","keywords":["+1","hand","thumb","thumbs up","up"]},{"id":":thumbs_down:","symbol":"👎","group":"people","keywords":["-1","down","hand","thumb","thumbs down"]},{"id":":raised_fist:","symbol":"✊","group":"people","keywords":["clenched","fist","hand","punch","raised fist"]},{"id":":oncoming_fist:","symbol":"👊","group":"people","keywords":["clenched","fist","hand","oncoming fist","punch"]},{"id":":left-facing_fist:","symbol":"🤛","group":"people","keywords":["fist","left-facing fist","leftwards"]},{"id":":right-facing_fist:","symbol":"🤜","group":"people","keywords":["fist","right-facing fist","rightwards"]},{"id":":raised_back_of_hand:","symbol":"🤚","group":"people","keywords":["backhand","raised","raised back of hand"]},{"id":":waving_hand:","symbol":"👋","group":"people","keywords":["hand","wave","waving"]},{"id":":love-you_gesture:","symbol":"🤟","group":"people","keywords":["hand","ILY","love-you gesture"]},{"id":":writing_hand:","symbol":"✍","group":"people","keywords":["hand","write","writing hand"]},{"id":":clapping_hands:","symbol":"👏","group":"people","keywords":["clap","clapping hands","hand"]},{"id":":open_hands:","symbol":"👐","group":"people","keywords":["hand","open","open hands"]},{"id":":raising_hands:","symbol":"🙌","group":"people","keywords":["celebration","gesture","hand","hooray","raised","raising hands"]},{"id":":palms_up_together:","symbol":"🤲","group":"people","keywords":["palms up together","prayer",""]},{"id":":folded_hands:","symbol":"🙏","group":"people","keywords":["ask","folded hands","hand","please","pray","thanks"]},{"id":":handshake:","symbol":"🤝","group":"people","keywords":["agreement","hand","handshake","meeting","shake"]},{"id":":nail_polish:","symbol":"💅","group":"people","keywords":["care","cosmetics","manicure","nail","polish"]},{"id":":ear:","symbol":"👂","group":"people","keywords":["body","ear"]},{"id":":nose:","symbol":"👃","group":"people","keywords":["body","nose"]},{"id":":footprints:","symbol":"👣","group":"people","keywords":["clothing","footprint","footprints","print"]},{"id":":eyes:","symbol":"👀","group":"people","keywords":["eye","eyes","face"]},{"id":":eye:","symbol":"👁","group":"people","keywords":["body","eye"]},{"id":":eye_in_speech_bubble:","symbol":"👁️‍🗨️","group":"people","keywords":["eye","eye in speech bubble","speech bubble","witness"]},{"id":":brain:","symbol":"🧠","group":"people","keywords":["brain","intelligent"]},{"id":":tongue:","symbol":"👅","group":"people","keywords":["body","tongue"]},{"id":":mouth:","symbol":"👄","group":"people","keywords":["lips","mouth"]},{"id":":kiss_mark:","symbol":"💋","group":"people","keywords":["kiss","kiss mark","lips"]},{"id":":heart_with_arrow:","symbol":"💘","group":"people","keywords":["arrow","cupid","heart with arrow"]},{"id":":heart_with_ribbon:","symbol":"💝","group":"people","keywords":["heart with ribbon","ribbon","valentine"]},{"id":":sparkling_heart:","symbol":"💖","group":"people","keywords":["excited","sparkle","sparkling heart"]},{"id":":growing_heart:","symbol":"💗","group":"people","keywords":["excited","growing","growing heart","nervous","pulse"]},{"id":":beating_heart:","symbol":"💓","group":"people","keywords":["beating","beating heart","heartbeat","pulsating"]},{"id":":revolving_hearts:","symbol":"💞","group":"people","keywords":["revolving","revolving hearts"]},{"id":":two_hearts:","symbol":"💕","group":"people","keywords":["love","two hearts"]},{"id":":love_letter:","symbol":"💌","group":"people","keywords":["heart","letter","love","mail"]},{"id":":heavy_heart_exclamation:","symbol":"❣","group":"people","keywords":["exclamation","heavy heart exclamation","mark","punctuation"]},{"id":":broken_heart:","symbol":"💔","group":"people","keywords":["break","broken","broken heart"]},{"id":":red_heart:","symbol":"❤","group":"people","keywords":["heart","red heart"]},{"id":":orange_heart:","symbol":"🧡","group":"people","keywords":["orange","orange heart"]},{"id":":yellow_heart:","symbol":"💛","group":"people","keywords":["yellow","yellow heart"]},{"id":":green_heart:","symbol":"💚","group":"people","keywords":["green","green heart"]},{"id":":blue_heart:","symbol":"💙","group":"people","keywords":["blue","blue heart"]},{"id":":purple_heart:","symbol":"💜","group":"people","keywords":["purple","purple heart"]},{"id":":black_heart:","symbol":"🖤","group":"people","keywords":["black","black heart","evil","wicked"]},{"id":":heart_decoration:","symbol":"💟","group":"people","keywords":["heart","heart decoration"]},{"id":":zzz:","symbol":"💤","group":"people","keywords":["comic","sleep","zzz"]},{"id":":anger_symbol:","symbol":"💢","group":"people","keywords":["anger symbol","angry","comic","mad"]},{"id":":bomb:","symbol":"💣","group":"people","keywords":["bomb","comic"]},{"id":":collision:","symbol":"💥","group":"people","keywords":["boom","collision","comic"]},{"id":":sweat_droplets:","symbol":"💦","group":"people","keywords":["comic","splashing","sweat","sweat droplets"]},{"id":":dashing_away:","symbol":"💨","group":"people","keywords":["comic","dash","dashing away","running"]},{"id":":dizzy:","symbol":"💫","group":"people","keywords":["comic","dizzy","star"]},{"id":":speech_balloon:","symbol":"💬","group":"people","keywords":["balloon","bubble","comic","dialog","speech"]},{"id":":left_speech_bubble:","symbol":"🗨","group":"people","keywords":["dialog","left speech bubble","speech"]},{"id":":right_anger_bubble:","symbol":"🗯","group":"people","keywords":["angry","balloon","bubble","mad","right anger bubble"]},{"id":":thought_balloon:","symbol":"💭","group":"people","keywords":["balloon","bubble","comic","thought"]},{"id":":hole:","symbol":"🕳","group":"people","keywords":["hole"]},{"id":":glasses:","symbol":"👓","group":"people","keywords":["clothing","eye","eyeglasses","eyewear","glasses"]},{"id":":sunglasses:","symbol":"🕶","group":"people","keywords":["dark","eye","eyewear","glasses","sunglasses"]},{"id":":necktie:","symbol":"👔","group":"people","keywords":["clothing","necktie","tie"]},{"id":":t-shirt:","symbol":"👕","group":"people","keywords":["clothing","shirt","t-shirt","tshirt"]},{"id":":jeans:","symbol":"👖","group":"people","keywords":["clothing","jeans","pants","trousers"]},{"id":":scarf:","symbol":"🧣","group":"people","keywords":["neck","scarf"]},{"id":":gloves:","symbol":"🧤","group":"people","keywords":["gloves","hand"]},{"id":":coat:","symbol":"🧥","group":"people","keywords":["coat","jacket"]},{"id":":socks:","symbol":"🧦","group":"people","keywords":["socks","stocking"]},{"id":":dress:","symbol":"👗","group":"people","keywords":["clothing","dress"]},{"id":":kimono:","symbol":"👘","group":"people","keywords":["clothing","kimono"]},{"id":":bikini:","symbol":"👙","group":"people","keywords":["bikini","clothing","swim"]},{"id":":woman’s_clothes:","symbol":"👚","group":"people","keywords":["clothing","woman","woman’s clothes"]},{"id":":purse:","symbol":"👛","group":"people","keywords":["clothing","coin","purse"]},{"id":":handbag:","symbol":"👜","group":"people","keywords":["bag","clothing","handbag","purse"]},{"id":":clutch_bag:","symbol":"👝","group":"people","keywords":["bag","clothing","clutch bag","pouch"]},{"id":":shopping_bags:","symbol":"🛍","group":"people","keywords":["bag","hotel","shopping","shopping bags"]},{"id":":backpack:","symbol":"🎒","group":"people","keywords":["backpack","bag","rucksack","satchel","school"]},{"id":":man’s_shoe:","symbol":"👞","group":"people","keywords":["clothing","man","man’s shoe","shoe"]},{"id":":running_shoe:","symbol":"👟","group":"people","keywords":["athletic","clothing","running shoe","shoe","sneaker"]},{"id":":high-heeled_shoe:","symbol":"👠","group":"people","keywords":["clothing","heel","high-heeled shoe","shoe","woman"]},{"id":":woman’s_sandal:","symbol":"👡","group":"people","keywords":["clothing","sandal","shoe","woman","woman’s sandal"]},{"id":":woman’s_boot:","symbol":"👢","group":"people","keywords":["boot","clothing","shoe","woman","woman’s boot"]},{"id":":crown:","symbol":"👑","group":"people","keywords":["clothing","crown","king","queen"]},{"id":":woman’s_hat:","symbol":"👒","group":"people","keywords":["clothing","hat","woman","woman’s hat"]},{"id":":top_hat:","symbol":"🎩","group":"people","keywords":["clothing","hat","top","tophat"]},{"id":":graduation_cap:","symbol":"🎓","group":"people","keywords":["cap","celebration","clothing","graduation","hat"]},{"id":":billed_cap:","symbol":"🧢","group":"people","keywords":["baseball cap","billed cap"]},{"id":":rescue_worker’s_helmet:","symbol":"⛑","group":"people","keywords":["aid","cross","face","hat","helmet","rescue worker’s helmet"]},{"id":":prayer_beads:","symbol":"📿","group":"people","keywords":["beads","clothing","necklace","prayer","religion"]},{"id":":lipstick:","symbol":"💄","group":"people","keywords":["cosmetics","lipstick","makeup"]},{"id":":ring:","symbol":"💍","group":"people","keywords":["diamond","ring"]},{"id":":gem_stone:","symbol":"💎","group":"people","keywords":["diamond","gem","gem stone","jewel"]},{"id":":monkey_face:","symbol":"🐵","group":"nature","keywords":["face","monkey"]},{"id":":monkey:","symbol":"🐒","group":"nature","keywords":["monkey"]},{"id":":gorilla:","symbol":"🦍","group":"nature","keywords":["gorilla"]},{"id":":dog_face:","symbol":"🐶","group":"nature","keywords":["dog","face","pet"]},{"id":":dog:","symbol":"🐕","group":"nature","keywords":["dog","pet"]},{"id":":poodle:","symbol":"🐩","group":"nature","keywords":["dog","poodle"]},{"id":":wolf_face:","symbol":"🐺","group":"nature","keywords":["face","wolf"]},{"id":":fox_face:","symbol":"🦊","group":"nature","keywords":["face","fox"]},{"id":":cat_face:","symbol":"🐱","group":"nature","keywords":["cat","face","pet"]},{"id":":cat:","symbol":"🐈","group":"nature","keywords":["cat","pet"]},{"id":":lion_face:","symbol":"🦁","group":"nature","keywords":["face","Leo","lion","zodiac"]},{"id":":tiger_face:","symbol":"🐯","group":"nature","keywords":["face","tiger"]},{"id":":tiger:","symbol":"🐅","group":"nature","keywords":["tiger"]},{"id":":leopard:","symbol":"🐆","group":"nature","keywords":["leopard"]},{"id":":horse_face:","symbol":"🐴","group":"nature","keywords":["face","horse"]},{"id":":horse:","symbol":"🐎","group":"nature","keywords":["equestrian","horse","racehorse","racing"]},{"id":":unicorn_face:","symbol":"🦄","group":"nature","keywords":["face","unicorn"]},{"id":":zebra:","symbol":"🦓","group":"nature","keywords":["stripe","zebra"]},{"id":":deer:","symbol":"🦌","group":"nature","keywords":["deer"]},{"id":":cow_face:","symbol":"🐮","group":"nature","keywords":["cow","face"]},{"id":":ox:","symbol":"🐂","group":"nature","keywords":["bull","ox","Taurus","zodiac"]},{"id":":water_buffalo:","symbol":"🐃","group":"nature","keywords":["buffalo","water"]},{"id":":cow:","symbol":"🐄","group":"nature","keywords":["cow"]},{"id":":pig_face:","symbol":"🐷","group":"nature","keywords":["face","pig"]},{"id":":pig:","symbol":"🐖","group":"nature","keywords":["pig","sow"]},{"id":":boar:","symbol":"🐗","group":"nature","keywords":["boar","pig"]},{"id":":pig_nose:","symbol":"🐽","group":"nature","keywords":["face","nose","pig"]},{"id":":ram:","symbol":"🐏","group":"nature","keywords":["Aries","male","ram","sheep","zodiac"]},{"id":":ewe:","symbol":"🐑","group":"nature","keywords":["ewe","female","sheep"]},{"id":":goat:","symbol":"🐐","group":"nature","keywords":["Capricorn","goat","zodiac"]},{"id":":camel:","symbol":"🐪","group":"nature","keywords":["camel","dromedary","hump"]},{"id":":two-hump_camel:","symbol":"🐫","group":"nature","keywords":["bactrian","camel","hump","two-hump camel"]},{"id":":giraffe:","symbol":"🦒","group":"nature","keywords":["giraffe","spots"]},{"id":":elephant:","symbol":"🐘","group":"nature","keywords":["elephant"]},{"id":":rhinoceros:","symbol":"🦏","group":"nature","keywords":["rhinoceros"]},{"id":":mouse_face:","symbol":"🐭","group":"nature","keywords":["face","mouse"]},{"id":":mouse:","symbol":"🐁","group":"nature","keywords":["mouse"]},{"id":":rat:","symbol":"🐀","group":"nature","keywords":["rat"]},{"id":":hamster_face:","symbol":"🐹","group":"nature","keywords":["face","hamster","pet"]},{"id":":rabbit_face:","symbol":"🐰","group":"nature","keywords":["bunny","face","pet","rabbit"]},{"id":":rabbit:","symbol":"🐇","group":"nature","keywords":["bunny","pet","rabbit"]},{"id":":chipmunk:","symbol":"🐿","group":"nature","keywords":["chipmunk","squirrel"]},{"id":":hedgehog:","symbol":"🦔","group":"nature","keywords":["hedgehog","spiny"]},{"id":":bat:","symbol":"🦇","group":"nature","keywords":["bat","vampire"]},{"id":":bear_face:","symbol":"🐻","group":"nature","keywords":["bear","face"]},{"id":":koala:","symbol":"🐨","group":"nature","keywords":["bear","koala"]},{"id":":panda_face:","symbol":"🐼","group":"nature","keywords":["face","panda"]},{"id":":paw_prints:","symbol":"🐾","group":"nature","keywords":["feet","paw","paw prints","print"]},{"id":":turkey:","symbol":"🦃","group":"nature","keywords":["bird","turkey"]},{"id":":chicken:","symbol":"🐔","group":"nature","keywords":["bird","chicken"]},{"id":":rooster:","symbol":"🐓","group":"nature","keywords":["bird","rooster"]},{"id":":hatching_chick:","symbol":"🐣","group":"nature","keywords":["baby","bird","chick","hatching"]},{"id":":baby_chick:","symbol":"🐤","group":"nature","keywords":["baby","bird","chick"]},{"id":":front-facing_baby_chick:","symbol":"🐥","group":"nature","keywords":["baby","bird","chick","front-facing baby chick"]},{"id":":bird:","symbol":"🐦","group":"nature","keywords":["bird"]},{"id":":penguin:","symbol":"🐧","group":"nature","keywords":["bird","penguin"]},{"id":":dove:","symbol":"🕊","group":"nature","keywords":["bird","dove","fly","peace"]},{"id":":eagle:","symbol":"🦅","group":"nature","keywords":["bird","eagle"]},{"id":":duck:","symbol":"🦆","group":"nature","keywords":["bird","duck"]},{"id":":owl:","symbol":"🦉","group":"nature","keywords":["bird","owl","wise"]},{"id":":frog_face:","symbol":"🐸","group":"nature","keywords":["face","frog"]},{"id":":crocodile:","symbol":"🐊","group":"nature","keywords":["crocodile"]},{"id":":turtle:","symbol":"🐢","group":"nature","keywords":["terrapin","tortoise","turtle"]},{"id":":lizard:","symbol":"🦎","group":"nature","keywords":["lizard","reptile"]},{"id":":snake:","symbol":"🐍","group":"nature","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":dragon_face:","symbol":"🐲","group":"nature","keywords":["dragon","face","fairy tale"]},{"id":":dragon:","symbol":"🐉","group":"nature","keywords":["dragon","fairy tale"]},{"id":":sauropod:","symbol":"🦕","group":"nature","keywords":["brachiosaurus","brontosaurus","diplodocus","sauropod"]},{"id":":t-rex:","symbol":"🦖","group":"nature","keywords":["T-Rex","Tyrannosaurus Rex"]},{"id":":spouting_whale:","symbol":"🐳","group":"nature","keywords":["face","spouting","whale"]},{"id":":whale:","symbol":"🐋","group":"nature","keywords":["whale"]},{"id":":dolphin:","symbol":"🐬","group":"nature","keywords":["dolphin","flipper"]},{"id":":fish:","symbol":"🐟","group":"nature","keywords":["fish","Pisces","zodiac"]},{"id":":tropical_fish:","symbol":"🐠","group":"nature","keywords":["fish","tropical"]},{"id":":blowfish:","symbol":"🐡","group":"nature","keywords":["blowfish","fish"]},{"id":":shark:","symbol":"🦈","group":"nature","keywords":["fish","shark"]},{"id":":octopus:","symbol":"🐙","group":"nature","keywords":["octopus"]},{"id":":spiral_shell:","symbol":"🐚","group":"nature","keywords":["shell","spiral"]},{"id":":crab:","symbol":"🦀","group":"nature","keywords":["Cancer","crab","zodiac"]},{"id":":shrimp:","symbol":"🦐","group":"nature","keywords":["food","shellfish","shrimp","small"]},{"id":":squid:","symbol":"🦑","group":"nature","keywords":["food","molusc","squid"]},{"id":":snail:","symbol":"🐌","group":"nature","keywords":["snail"]},{"id":":butterfly:","symbol":"🦋","group":"nature","keywords":["butterfly","insect","pretty"]},{"id":":bug:","symbol":"🐛","group":"nature","keywords":["bug","insect"]},{"id":":ant:","symbol":"🐜","group":"nature","keywords":["ant","insect"]},{"id":":honeybee:","symbol":"🐝","group":"nature","keywords":["bee","honeybee","insect"]},{"id":":lady_beetle:","symbol":"🐞","group":"nature","keywords":["beetle","insect","lady beetle","ladybird","ladybug"]},{"id":":cricket:","symbol":"🦗","group":"nature","keywords":["cricket","grasshopper",""]},{"id":":spider:","symbol":"🕷","group":"nature","keywords":["insect","spider"]},{"id":":spider_web:","symbol":"🕸","group":"nature","keywords":["spider","web"]},{"id":":scorpion:","symbol":"🦂","group":"nature","keywords":["scorpio","Scorpio","scorpion","zodiac"]},{"id":":bouquet:","symbol":"💐","group":"nature","keywords":["bouquet","flower"]},{"id":":cherry_blossom:","symbol":"🌸","group":"nature","keywords":["blossom","cherry","flower"]},{"id":":white_flower:","symbol":"💮","group":"nature","keywords":["flower","white flower"]},{"id":":rosette:","symbol":"🏵","group":"nature","keywords":["plant","rosette"]},{"id":":rose:","symbol":"🌹","group":"nature","keywords":["flower","rose"]},{"id":":wilted_flower:","symbol":"🥀","group":"nature","keywords":["flower","wilted"]},{"id":":hibiscus:","symbol":"🌺","group":"nature","keywords":["flower","hibiscus"]},{"id":":sunflower:","symbol":"🌻","group":"nature","keywords":["flower","sun","sunflower"]},{"id":":blossom:","symbol":"🌼","group":"nature","keywords":["blossom","flower"]},{"id":":tulip:","symbol":"🌷","group":"nature","keywords":["flower","tulip"]},{"id":":seedling:","symbol":"🌱","group":"nature","keywords":["seedling","young"]},{"id":":evergreen_tree:","symbol":"🌲","group":"nature","keywords":["evergreen tree","tree"]},{"id":":deciduous_tree:","symbol":"🌳","group":"nature","keywords":["deciduous","shedding","tree"]},{"id":":palm_tree:","symbol":"🌴","group":"nature","keywords":["palm","tree"]},{"id":":cactus:","symbol":"🌵","group":"nature","keywords":["cactus","plant"]},{"id":":sheaf_of_rice:","symbol":"🌾","group":"nature","keywords":["ear","grain","rice","sheaf of rice"]},{"id":":herb:","symbol":"🌿","group":"nature","keywords":["herb","leaf"]},{"id":":shamrock:","symbol":"☘","group":"nature","keywords":["plant","shamrock"]},{"id":":four_leaf_clover:","symbol":"🍀","group":"nature","keywords":["4","clover","four","four-leaf clover","leaf"]},{"id":":maple_leaf:","symbol":"🍁","group":"nature","keywords":["falling","leaf","maple"]},{"id":":fallen_leaf:","symbol":"🍂","group":"nature","keywords":["fallen leaf","falling","leaf"]},{"id":":leaf_fluttering_in_wind:","symbol":"🍃","group":"nature","keywords":["blow","flutter","leaf","leaf fluttering in wind","wind"]},{"id":":grapes:","symbol":"🍇","group":"food","keywords":["fruit","grape","grapes"]},{"id":":melon:","symbol":"🍈","group":"food","keywords":["fruit","melon"]},{"id":":watermelon:","symbol":"🍉","group":"food","keywords":["fruit","watermelon"]},{"id":":tangerine:","symbol":"🍊","group":"food","keywords":["fruit","orange","tangerine"]},{"id":":lemon:","symbol":"🍋","group":"food","keywords":["citrus","fruit","lemon"]},{"id":":banana:","symbol":"🍌","group":"food","keywords":["banana","fruit"]},{"id":":pineapple:","symbol":"🍍","group":"food","keywords":["fruit","pineapple"]},{"id":":red_apple:","symbol":"🍎","group":"food","keywords":["apple","fruit","red"]},{"id":":green_apple:","symbol":"🍏","group":"food","keywords":["apple","fruit","green"]},{"id":":pear:","symbol":"🍐","group":"food","keywords":["fruit","pear"]},{"id":":peach:","symbol":"🍑","group":"food","keywords":["fruit","peach"]},{"id":":cherries:","symbol":"🍒","group":"food","keywords":["berries","cherries","cherry","fruit","red"]},{"id":":strawberry:","symbol":"🍓","group":"food","keywords":["berry","fruit","strawberry"]},{"id":":kiwi_fruit:","symbol":"🥝","group":"food","keywords":["food","fruit","kiwi"]},{"id":":tomato:","symbol":"🍅","group":"food","keywords":["fruit","tomato","vegetable"]},{"id":":coconut:","symbol":"🥥","group":"food","keywords":["coconut","palm","piña colada"]},{"id":":avocado:","symbol":"🥑","group":"food","keywords":["avocado","food","fruit"]},{"id":":eggplant:","symbol":"🍆","group":"food","keywords":["aubergine","eggplant","vegetable"]},{"id":":potato:","symbol":"🥔","group":"food","keywords":["food","potato","vegetable"]},{"id":":carrot:","symbol":"🥕","group":"food","keywords":["carrot","food","vegetable"]},{"id":":ear_of_corn:","symbol":"🌽","group":"food","keywords":["corn","ear","ear of corn","maize","maze"]},{"id":":hot_pepper:","symbol":"🌶","group":"food","keywords":["hot","pepper"]},{"id":":cucumber:","symbol":"🥒","group":"food","keywords":["cucumber","food","pickle","vegetable"]},{"id":":broccoli:","symbol":"🥦","group":"food","keywords":["broccoli","wild cabbage"]},{"id":":mushroom:","symbol":"🍄","group":"food","keywords":["mushroom","toadstool"]},{"id":":peanuts:","symbol":"🥜","group":"food","keywords":["food","nut","peanut","peanuts","vegetable"]},{"id":":chestnut:","symbol":"🌰","group":"food","keywords":["chestnut","plant"]},{"id":":bread:","symbol":"🍞","group":"food","keywords":["bread","loaf"]},{"id":":croissant:","symbol":"🥐","group":"food","keywords":["bread","crescent roll","croissant","food","french"]},{"id":":baguette_bread:","symbol":"🥖","group":"food","keywords":["baguette","bread","food","french"]},{"id":":pretzel:","symbol":"🥨","group":"food","keywords":["pretzel","twisted",""]},{"id":":pancakes:","symbol":"🥞","group":"food","keywords":["crêpe","food","hotcake","pancake","pancakes"]},{"id":":cheese_wedge:","symbol":"🧀","group":"food","keywords":["cheese","cheese wedge"]},{"id":":meat_on_bone:","symbol":"🍖","group":"food","keywords":["bone","meat","meat on bone"]},{"id":":poultry_leg:","symbol":"🍗","group":"food","keywords":["bone","chicken","drumstick","leg","poultry"]},{"id":":cut_of_meat:","symbol":"🥩","group":"food","keywords":["chop","cut of meat","lambchop","porkchop","steak"]},{"id":":bacon:","symbol":"🥓","group":"food","keywords":["bacon","food","meat"]},{"id":":hamburger:","symbol":"🍔","group":"food","keywords":["burger","hamburger"]},{"id":":french_fries:","symbol":"🍟","group":"food","keywords":["french","fries"]},{"id":":pizza:","symbol":"🍕","group":"food","keywords":["cheese","pizza","slice"]},{"id":":hot_dog:","symbol":"🌭","group":"food","keywords":["frankfurter","hot dog","hotdog","sausage"]},{"id":":sandwich:","symbol":"🥪","group":"food","keywords":["bread","sandwich"]},{"id":":taco:","symbol":"🌮","group":"food","keywords":["mexican","taco"]},{"id":":burrito:","symbol":"🌯","group":"food","keywords":["burrito","mexican","wrap"]},{"id":":stuffed_flatbread:","symbol":"🥙","group":"food","keywords":["falafel","flatbread","food","gyro","kebab","stuffed"]},{"id":":egg:","symbol":"🥚","group":"food","keywords":["egg","food"]},{"id":":cooking:","symbol":"🍳","group":"food","keywords":["cooking","egg","frying","pan"]},{"id":":shallow_pan_of_food:","symbol":"🥘","group":"food","keywords":["casserole","food","paella","pan","shallow","shallow pan of food"]},{"id":":pot_of_food:","symbol":"🍲","group":"food","keywords":["pot","pot of food","stew"]},{"id":":bowl_with_spoon:","symbol":"🥣","group":"food","keywords":["bowl with spoon","breakfast","cereal","congee",""]},{"id":":green_salad:","symbol":"🥗","group":"food","keywords":["food","green","salad"]},{"id":":popcorn:","symbol":"🍿","group":"food","keywords":["popcorn"]},{"id":":canned_food:","symbol":"🥫","group":"food","keywords":["can","canned food"]},{"id":":bento_box:","symbol":"🍱","group":"food","keywords":["bento","box"]},{"id":":rice_cracker:","symbol":"🍘","group":"food","keywords":["cracker","rice"]},{"id":":rice_ball:","symbol":"🍙","group":"food","keywords":["ball","Japanese","rice"]},{"id":":cooked_rice:","symbol":"🍚","group":"food","keywords":["cooked","rice"]},{"id":":curry_rice:","symbol":"🍛","group":"food","keywords":["curry","rice"]},{"id":":steaming_bowl:","symbol":"🍜","group":"food","keywords":["bowl","noodle","ramen","steaming"]},{"id":":spaghetti:","symbol":"🍝","group":"food","keywords":["pasta","spaghetti"]},{"id":":roasted_sweet_potato:","symbol":"🍠","group":"food","keywords":["potato","roasted","sweet"]},{"id":":oden:","symbol":"🍢","group":"food","keywords":["kebab","oden","seafood","skewer","stick"]},{"id":":sushi:","symbol":"🍣","group":"food","keywords":["sushi"]},{"id":":fried_shrimp:","symbol":"🍤","group":"food","keywords":["fried","prawn","shrimp","tempura"]},{"id":":fish_cake_with_swirl:","symbol":"🍥","group":"food","keywords":["cake","fish","fish cake with swirl","pastry","swirl"]},{"id":":dango:","symbol":"🍡","group":"food","keywords":["dango","dessert","Japanese","skewer","stick","sweet"]},{"id":":dumpling:","symbol":"🥟","group":"food","keywords":["dumpling","empanada","gyōza","jiaozi","pierogi","potsticker"]},{"id":":fortune_cookie:","symbol":"🥠","group":"food","keywords":["fortune cookie","prophecy"]},{"id":":takeout_box:","symbol":"🥡","group":"food","keywords":["oyster pail","takeout box"]},{"id":":soft_ice_cream:","symbol":"🍦","group":"food","keywords":["cream","dessert","ice","icecream","soft","sweet"]},{"id":":shaved_ice:","symbol":"🍧","group":"food","keywords":["dessert","ice","shaved","sweet"]},{"id":":ice_cream:","symbol":"🍨","group":"food","keywords":["cream","dessert","ice","sweet"]},{"id":":doughnut:","symbol":"🍩","group":"food","keywords":["dessert","donut","doughnut","sweet"]},{"id":":cookie:","symbol":"🍪","group":"food","keywords":["cookie","dessert","sweet"]},{"id":":birthday_cake:","symbol":"🎂","group":"food","keywords":["birthday","cake","celebration","dessert","pastry","sweet"]},{"id":":shortcake:","symbol":"🍰","group":"food","keywords":["cake","dessert","pastry","shortcake","slice","sweet"]},{"id":":pie:","symbol":"🥧","group":"food","keywords":["filling","pastry","pie",""]},{"id":":chocolate_bar:","symbol":"🍫","group":"food","keywords":["bar","chocolate","dessert","sweet"]},{"id":":candy:","symbol":"🍬","group":"food","keywords":["candy","dessert","sweet"]},{"id":":lollipop:","symbol":"🍭","group":"food","keywords":["candy","dessert","lollipop","sweet"]},{"id":":custard:","symbol":"🍮","group":"food","keywords":["custard","dessert","pudding","sweet"]},{"id":":honey_pot:","symbol":"🍯","group":"food","keywords":["honey","honeypot","pot","sweet"]},{"id":":baby_bottle:","symbol":"🍼","group":"food","keywords":["baby","bottle","drink","milk"]},{"id":":glass_of_milk:","symbol":"🥛","group":"food","keywords":["drink","glass","glass of milk","milk"]},{"id":":hot_beverage:","symbol":"☕","group":"food","keywords":["beverage","coffee","drink","hot","steaming","tea"]},{"id":":teacup_without_handle:","symbol":"🍵","group":"food","keywords":["beverage","cup","drink","tea","teacup","teacup without handle"]},{"id":":sake:","symbol":"🍶","group":"food","keywords":["bar","beverage","bottle","cup","drink","sake"]},{"id":":bottle_with_popping_cork:","symbol":"🍾","group":"food","keywords":["bar","bottle","bottle with popping cork","cork","drink","popping"]},{"id":":wine_glass:","symbol":"🍷","group":"food","keywords":["bar","beverage","drink","glass","wine"]},{"id":":cocktail_glass:","symbol":"🍸","group":"food","keywords":["bar","cocktail","drink","glass"]},{"id":":tropical_drink:","symbol":"🍹","group":"food","keywords":["bar","drink","tropical"]},{"id":":beer_mug:","symbol":"🍺","group":"food","keywords":["bar","beer","drink","mug"]},{"id":":clinking_beer_mugs:","symbol":"🍻","group":"food","keywords":["bar","beer","clink","clinking beer mugs","drink","mug"]},{"id":":clinking_glasses:","symbol":"🥂","group":"food","keywords":["celebrate","clink","clinking glasses","drink","glass"]},{"id":":tumbler_glass:","symbol":"🥃","group":"food","keywords":["glass","liquor","shot","tumbler","whisky"]},{"id":":cup_with_straw:","symbol":"🥤","group":"food","keywords":["cup with straw","juice","soda",""]},{"id":":chopsticks:","symbol":"🥢","group":"food","keywords":["chopsticks","hashi",""]},{"id":":fork_and_knife_with_plate:","symbol":"🍽","group":"food","keywords":["cooking","fork","fork and knife with plate","knife","plate"]},{"id":":fork_and_knife:","symbol":"🍴","group":"food","keywords":["cooking","cutlery","fork","fork and knife","knife"]},{"id":":spoon:","symbol":"🥄","group":"food","keywords":["spoon","tableware"]},{"id":":kitchen_knife:","symbol":"🔪","group":"food","keywords":["cooking","hocho","kitchen knife","knife","tool","weapon"]},{"id":":amphora:","symbol":"🏺","group":"food","keywords":["amphora","Aquarius","cooking","drink","jug","zodiac"]},{"id":":globe_showing_europe-africa:","symbol":"🌍","group":"travel","keywords":["Africa","earth","Europe","globe","globe showing Europe-Africa","world"]},{"id":":globe_showing_americas:","symbol":"🌎","group":"travel","keywords":["Americas","earth","globe","globe showing Americas","world"]},{"id":":globe_showing_asia-australia:","symbol":"🌏","group":"travel","keywords":["Asia","Australia","earth","globe","globe showing Asia-Australia","world"]},{"id":":globe_with_meridians:","symbol":"🌐","group":"travel","keywords":["earth","globe","globe with meridians","meridians","world"]},{"id":":world_map:","symbol":"🗺","group":"travel","keywords":["map","world"]},{"id":":map_of_japan:","symbol":"🗾","group":"travel","keywords":["Japan","map","map of Japan"]},{"id":":snow-capped_mountain:","symbol":"🏔","group":"travel","keywords":["cold","mountain","snow","snow-capped mountain"]},{"id":":mountain:","symbol":"⛰","group":"travel","keywords":["mountain"]},{"id":":volcano:","symbol":"🌋","group":"travel","keywords":["eruption","mountain","volcano"]},{"id":":mount_fuji:","symbol":"🗻","group":"travel","keywords":["fuji","mount fuji","mountain"]},{"id":":camping:","symbol":"🏕","group":"travel","keywords":["camping"]},{"id":":beach_with_umbrella:","symbol":"🏖","group":"travel","keywords":["beach","beach with umbrella","umbrella"]},{"id":":desert:","symbol":"🏜","group":"travel","keywords":["desert"]},{"id":":desert_island:","symbol":"🏝","group":"travel","keywords":["desert","island"]},{"id":":national_park:","symbol":"🏞","group":"travel","keywords":["national park","park"]},{"id":":stadium:","symbol":"🏟","group":"travel","keywords":["stadium"]},{"id":":classical_building:","symbol":"🏛","group":"travel","keywords":["classical","classical building"]},{"id":":building_construction:","symbol":"🏗","group":"travel","keywords":["building construction","construction"]},{"id":":houses:","symbol":"🏘","group":"travel","keywords":["houses"]},{"id":":derelict_house:","symbol":"🏚","group":"travel","keywords":["derelict","house"]},{"id":":house:","symbol":"🏠","group":"travel","keywords":["home","house"]},{"id":":house_with_garden:","symbol":"🏡","group":"travel","keywords":["garden","home","house","house with garden"]},{"id":":office_building:","symbol":"🏢","group":"travel","keywords":["building","office building"]},{"id":":japanese_post_office:","symbol":"🏣","group":"travel","keywords":["Japanese","Japanese post office","post"]},{"id":":post_office:","symbol":"🏤","group":"travel","keywords":["European","post","post office"]},{"id":":hospital:","symbol":"🏥","group":"travel","keywords":["doctor","hospital","medicine"]},{"id":":bank:","symbol":"🏦","group":"travel","keywords":["bank","building"]},{"id":":hotel:","symbol":"🏨","group":"travel","keywords":["building","hotel"]},{"id":":love_hotel:","symbol":"🏩","group":"travel","keywords":["hotel","love"]},{"id":":convenience_store:","symbol":"🏪","group":"travel","keywords":["convenience","store"]},{"id":":school:","symbol":"🏫","group":"travel","keywords":["building","school"]},{"id":":department_store:","symbol":"🏬","group":"travel","keywords":["department","store"]},{"id":":factory:","symbol":"🏭","group":"travel","keywords":["building","factory"]},{"id":":japanese_castle:","symbol":"🏯","group":"travel","keywords":["castle","Japanese"]},{"id":":castle:","symbol":"🏰","group":"travel","keywords":["castle","European"]},{"id":":wedding:","symbol":"💒","group":"travel","keywords":["chapel","romance","wedding"]},{"id":":tokyo_tower:","symbol":"🗼","group":"travel","keywords":["Tokyo","tower"]},{"id":":statue_of_liberty:","symbol":"🗽","group":"travel","keywords":["liberty","statue","Statue of Liberty"]},{"id":":church:","symbol":"⛪","group":"travel","keywords":["Christian","church","cross","religion"]},{"id":":mosque:","symbol":"🕌","group":"travel","keywords":["islam","mosque","Muslim","religion"]},{"id":":synagogue:","symbol":"🕍","group":"travel","keywords":["Jew","Jewish","religion","synagogue","temple"]},{"id":":shinto_shrine:","symbol":"⛩","group":"travel","keywords":["religion","shinto","shrine"]},{"id":":kaaba:","symbol":"🕋","group":"travel","keywords":["islam","kaaba","Muslim","religion"]},{"id":":fountain:","symbol":"⛲","group":"travel","keywords":["fountain"]},{"id":":tent:","symbol":"⛺","group":"travel","keywords":["camping","tent"]},{"id":":foggy:","symbol":"🌁","group":"travel","keywords":["fog","foggy"]},{"id":":night_with_stars:","symbol":"🌃","group":"travel","keywords":["night","night with stars","star"]},{"id":":cityscape:","symbol":"🏙","group":"travel","keywords":["city","cityscape"]},{"id":":sunrise_over_mountains:","symbol":"🌄","group":"travel","keywords":["morning","mountain","sun","sunrise","sunrise over mountains"]},{"id":":sunrise:","symbol":"🌅","group":"travel","keywords":["morning","sun","sunrise"]},{"id":":cityscape_at_dusk:","symbol":"🌆","group":"travel","keywords":["city","cityscape at dusk","dusk","evening","landscape","sunset"]},{"id":":sunset:","symbol":"🌇","group":"travel","keywords":["dusk","sun","sunset"]},{"id":":bridge_at_night:","symbol":"🌉","group":"travel","keywords":["bridge","bridge at night","night"]},{"id":":hot_springs:","symbol":"♨","group":"travel","keywords":["hot","hotsprings","springs","steaming"]},{"id":":milky_way:","symbol":"🌌","group":"travel","keywords":["milky way","space"]},{"id":":carousel_horse:","symbol":"🎠","group":"travel","keywords":["carousel","horse"]},{"id":":ferris_wheel:","symbol":"🎡","group":"travel","keywords":["amusement park","ferris","wheel"]},{"id":":roller_coaster:","symbol":"🎢","group":"travel","keywords":["amusement park","coaster","roller"]},{"id":":barber_pole:","symbol":"💈","group":"travel","keywords":["barber","haircut","pole"]},{"id":":circus_tent:","symbol":"🎪","group":"travel","keywords":["circus","tent"]},{"id":":locomotive:","symbol":"🚂","group":"travel","keywords":["engine","locomotive","railway","steam","train"]},{"id":":railway_car:","symbol":"🚃","group":"travel","keywords":["car","electric","railway","train","tram","trolleybus"]},{"id":":high-speed_train:","symbol":"🚄","group":"travel","keywords":["high-speed train","railway","shinkansen","speed","train"]},{"id":":bullet_train:","symbol":"🚅","group":"travel","keywords":["bullet","railway","shinkansen","speed","train"]},{"id":":train:","symbol":"🚆","group":"travel","keywords":["railway","train"]},{"id":":metro:","symbol":"🚇","group":"travel","keywords":["metro","subway"]},{"id":":light_rail:","symbol":"🚈","group":"travel","keywords":["light rail","railway"]},{"id":":station:","symbol":"🚉","group":"travel","keywords":["railway","station","train"]},{"id":":tram:","symbol":"🚊","group":"travel","keywords":["tram","trolleybus"]},{"id":":monorail:","symbol":"🚝","group":"travel","keywords":["monorail","vehicle"]},{"id":":mountain_railway:","symbol":"🚞","group":"travel","keywords":["car","mountain","railway"]},{"id":":tram_car:","symbol":"🚋","group":"travel","keywords":["car","tram","trolleybus"]},{"id":":bus:","symbol":"🚌","group":"travel","keywords":["bus","vehicle"]},{"id":":oncoming_bus:","symbol":"🚍","group":"travel","keywords":["bus","oncoming"]},{"id":":trolleybus:","symbol":"🚎","group":"travel","keywords":["bus","tram","trolley","trolleybus"]},{"id":":minibus:","symbol":"🚐","group":"travel","keywords":["bus","minibus"]},{"id":":ambulance:","symbol":"🚑","group":"travel","keywords":["ambulance","vehicle"]},{"id":":fire_engine:","symbol":"🚒","group":"travel","keywords":["engine","fire","truck"]},{"id":":police_car:","symbol":"🚓","group":"travel","keywords":["car","patrol","police"]},{"id":":oncoming_police_car:","symbol":"🚔","group":"travel","keywords":["car","oncoming","police"]},{"id":":taxi:","symbol":"🚕","group":"travel","keywords":["taxi","vehicle"]},{"id":":oncoming_taxi:","symbol":"🚖","group":"travel","keywords":["oncoming","taxi"]},{"id":":automobile:","symbol":"🚗","group":"travel","keywords":["automobile","car"]},{"id":":oncoming_automobile:","symbol":"🚘","group":"travel","keywords":["automobile","car","oncoming"]},{"id":":sport_utility_vehicle:","symbol":"🚙","group":"travel","keywords":["recreational","sport utility","sport utility vehicle"]},{"id":":delivery_truck:","symbol":"🚚","group":"travel","keywords":["delivery","truck"]},{"id":":articulated_lorry:","symbol":"🚛","group":"travel","keywords":["articulated lorry","lorry","semi","truck"]},{"id":":tractor:","symbol":"🚜","group":"travel","keywords":["tractor","vehicle"]},{"id":":bicycle:","symbol":"🚲","group":"travel","keywords":["bicycle","bike"]},{"id":":kick_scooter:","symbol":"🛴","group":"travel","keywords":["kick","scooter"]},{"id":":motor_scooter:","symbol":"🛵","group":"travel","keywords":["motor","scooter"]},{"id":":bus_stop:","symbol":"🚏","group":"travel","keywords":["bus","busstop","stop"]},{"id":":motorway:","symbol":"🛣","group":"travel","keywords":["highway","motorway","road"]},{"id":":railway_track:","symbol":"🛤","group":"travel","keywords":["railway","railway track","train"]},{"id":":oil_drum:","symbol":"🛢","group":"travel","keywords":["drum","oil"]},{"id":":fuel_pump:","symbol":"⛽","group":"travel","keywords":["diesel","fuel","fuelpump","gas","pump","station"]},{"id":":police_car_light:","symbol":"🚨","group":"travel","keywords":["beacon","car","light","police","revolving"]},{"id":":horizontal_traffic_light:","symbol":"🚥","group":"travel","keywords":["horizontal traffic light","light","signal","traffic"]},{"id":":vertical_traffic_light:","symbol":"🚦","group":"travel","keywords":["light","signal","traffic","vertical traffic light"]},{"id":":stop_sign:","symbol":"🛑","group":"travel","keywords":["octagonal","sign","stop"]},{"id":":construction:","symbol":"🚧","group":"travel","keywords":["barrier","construction"]},{"id":":anchor:","symbol":"⚓","group":"travel","keywords":["anchor","ship","tool"]},{"id":":sailboat:","symbol":"⛵","group":"travel","keywords":["boat","resort","sailboat","sea","yacht"]},{"id":":canoe:","symbol":"🛶","group":"travel","keywords":["boat","canoe"]},{"id":":speedboat:","symbol":"🚤","group":"travel","keywords":["boat","speedboat"]},{"id":":passenger_ship:","symbol":"🛳","group":"travel","keywords":["passenger","ship"]},{"id":":ferry:","symbol":"⛴","group":"travel","keywords":["boat","ferry","passenger"]},{"id":":motor_boat:","symbol":"🛥","group":"travel","keywords":["boat","motor boat","motorboat"]},{"id":":ship:","symbol":"🚢","group":"travel","keywords":["boat","passenger","ship"]},{"id":":airplane:","symbol":"✈","group":"travel","keywords":["aeroplane","airplane"]},{"id":":small_airplane:","symbol":"🛩","group":"travel","keywords":["aeroplane","airplane","small airplane"]},{"id":":airplane_departure:","symbol":"🛫","group":"travel","keywords":["aeroplane","airplane","check-in","departure","departures"]},{"id":":airplane_arrival:","symbol":"🛬","group":"travel","keywords":["aeroplane","airplane","airplane arrival","arrivals","arriving","landing"]},{"id":":seat:","symbol":"💺","group":"travel","keywords":["chair","seat"]},{"id":":helicopter:","symbol":"🚁","group":"travel","keywords":["helicopter","vehicle"]},{"id":":suspension_railway:","symbol":"🚟","group":"travel","keywords":["railway","suspension"]},{"id":":mountain_cableway:","symbol":"🚠","group":"travel","keywords":["cable","gondola","mountain","mountain cableway"]},{"id":":aerial_tramway:","symbol":"🚡","group":"travel","keywords":["aerial","cable","car","gondola","tramway"]},{"id":":satellite:","symbol":"🛰","group":"travel","keywords":["satellite","space"]},{"id":":rocket:","symbol":"🚀","group":"travel","keywords":["rocket","space"]},{"id":":flying_saucer:","symbol":"🛸","group":"travel","keywords":["flying saucer","UFO"]},{"id":":bellhop_bell:","symbol":"🛎","group":"travel","keywords":["bell","bellhop","hotel"]},{"id":":hourglass_done:","symbol":"⌛","group":"travel","keywords":["hourglass done","sand","timer"]},{"id":":hourglass_not_done:","symbol":"⏳","group":"travel","keywords":["hourglass","hourglass not done","sand","timer"]},{"id":":watch:","symbol":"⌚","group":"travel","keywords":["clock","watch"]},{"id":":alarm_clock:","symbol":"⏰","group":"travel","keywords":["alarm","clock"]},{"id":":stopwatch:","symbol":"⏱","group":"travel","keywords":["clock","stopwatch"]},{"id":":timer_clock:","symbol":"⏲","group":"travel","keywords":["clock","timer"]},{"id":":mantelpiece_clock:","symbol":"🕰","group":"travel","keywords":["clock","mantelpiece clock"]},{"id":":twelve_o’clock:","symbol":"🕛","group":"travel","keywords":["00","12","12:00","clock","o’clock","twelve"]},{"id":":twelve-thirty:","symbol":"🕧","group":"travel","keywords":["12","12:30","clock","thirty","twelve","twelve-thirty"]},{"id":":one_o’clock:","symbol":"🕐","group":"travel","keywords":["00","1","1:00","clock","o’clock","one"]},{"id":":one-thirty:","symbol":"🕜","group":"travel","keywords":["1","1:30","clock","one","one-thirty","thirty"]},{"id":":two_o’clock:","symbol":"🕑","group":"travel","keywords":["00","2","2:00","clock","o’clock","two"]},{"id":":two-thirty:","symbol":"🕝","group":"travel","keywords":["2","2:30","clock","thirty","two","two-thirty"]},{"id":":three_o’clock:","symbol":"🕒","group":"travel","keywords":["00","3","3:00","clock","o’clock","three"]},{"id":":three-thirty:","symbol":"🕞","group":"travel","keywords":["3","3:30","clock","thirty","three","three-thirty"]},{"id":":four_o’clock:","symbol":"🕓","group":"travel","keywords":["00","4","4:00","clock","four","o’clock"]},{"id":":four-thirty:","symbol":"🕟","group":"travel","keywords":["4","4:30","clock","four","four-thirty","thirty"]},{"id":":five_o’clock:","symbol":"🕔","group":"travel","keywords":["00","5","5:00","clock","five","o’clock"]},{"id":":five-thirty:","symbol":"🕠","group":"travel","keywords":["5","5:30","clock","five","five-thirty","thirty"]},{"id":":six_o’clock:","symbol":"🕕","group":"travel","keywords":["00","6","6:00","clock","o’clock","six"]},{"id":":six-thirty:","symbol":"🕡","group":"travel","keywords":["6","6:30","clock","six","six-thirty","thirty"]},{"id":":seven_o’clock:","symbol":"🕖","group":"travel","keywords":["00","7","7:00","clock","o’clock","seven"]},{"id":":seven-thirty:","symbol":"🕢","group":"travel","keywords":["7","7:30","clock","seven","seven-thirty","thirty"]},{"id":":eight_o’clock:","symbol":"🕗","group":"travel","keywords":["00","8","8:00","clock","eight","o’clock"]},{"id":":eight-thirty:","symbol":"🕣","group":"travel","keywords":["8","8:30","clock","eight","eight-thirty","thirty"]},{"id":":nine_o’clock:","symbol":"🕘","group":"travel","keywords":["00","9","9:00","clock","nine","o’clock"]},{"id":":nine-thirty:","symbol":"🕤","group":"travel","keywords":["9","9:30","clock","nine","nine-thirty","thirty"]},{"id":":ten_o’clock:","symbol":"🕙","group":"travel","keywords":["00","10","10:00","clock","o’clock","ten"]},{"id":":ten-thirty:","symbol":"🕥","group":"travel","keywords":["10","10:30","clock","ten","ten-thirty","thirty"]},{"id":":eleven_o’clock:","symbol":"🕚","group":"travel","keywords":["00","11","11:00","clock","eleven","o’clock"]},{"id":":eleven-thirty:","symbol":"🕦","group":"travel","keywords":["11","11:30","clock","eleven","eleven-thirty","thirty"]},{"id":":new_moon:","symbol":"🌑","group":"travel","keywords":["dark","moon","new moon"]},{"id":":waxing_crescent_moon:","symbol":"🌒","group":"travel","keywords":["crescent","moon","waxing"]},{"id":":first_quarter_moon:","symbol":"🌓","group":"travel","keywords":["first quarter moon","moon","quarter"]},{"id":":waxing_gibbous_moon:","symbol":"🌔","group":"travel","keywords":["gibbous","moon","waxing"]},{"id":":full_moon:","symbol":"🌕","group":"travel","keywords":["full","moon"]},{"id":":waning_gibbous_moon:","symbol":"🌖","group":"travel","keywords":["gibbous","moon","waning"]},{"id":":last_quarter_moon:","symbol":"🌗","group":"travel","keywords":["last quarter moon","moon","quarter"]},{"id":":waning_crescent_moon:","symbol":"🌘","group":"travel","keywords":["crescent","moon","waning"]},{"id":":crescent_moon:","symbol":"🌙","group":"travel","keywords":["crescent","moon"]},{"id":":new_moon_face:","symbol":"🌚","group":"travel","keywords":["face","moon","new moon face"]},{"id":":first_quarter_moon_face:","symbol":"🌛","group":"travel","keywords":["face","first quarter moon face","moon","quarter"]},{"id":":last_quarter_moon_face:","symbol":"🌜","group":"travel","keywords":["face","last quarter moon face","moon","quarter"]},{"id":":thermometer:","symbol":"🌡","group":"travel","keywords":["thermometer","weather"]},{"id":":sun:","symbol":"☀","group":"travel","keywords":["bright","rays","sun","sunny"]},{"id":":full_moon_face:","symbol":"🌝","group":"travel","keywords":["bright","face","full","moon"]},{"id":":sun_with_face:","symbol":"🌞","group":"travel","keywords":["bright","face","sun","sun with face"]},{"id":":star:","symbol":"⭐","group":"travel","keywords":["star"]},{"id":":glowing_star:","symbol":"🌟","group":"travel","keywords":["glittery","glow","glowing star","shining","sparkle","star"]},{"id":":shooting_star:","symbol":"🌠","group":"travel","keywords":["falling","shooting","star"]},{"id":":cloud:","symbol":"☁️","group":"travel","keywords":["cloud","weather"]},{"id":":sun_behind_cloud:","symbol":"⛅","group":"travel","keywords":["cloud","sun","sun behind cloud"]},{"id":":cloud_with_lightning_and_rain:","symbol":"⛈️","group":"travel","keywords":["cloud","cloud with lightning and rain","rain","thunder"]},{"id":":sun_behind_small_cloud:","symbol":"🌤","group":"travel","keywords":["cloud","sun","sun behind small cloud"]},{"id":":sun_behind_large_cloud:","symbol":"🌥","group":"travel","keywords":["cloud","sun","sun behind large cloud"]},{"id":":sun_behind_rain_cloud:","symbol":"🌦","group":"travel","keywords":["cloud","rain","sun","sun behind rain cloud"]},{"id":":cloud_with_rain:","symbol":"🌧","group":"travel","keywords":["cloud","cloud with rain","rain"]},{"id":":cloud_with_snow:","symbol":"🌨","group":"travel","keywords":["cloud","cloud with snow","cold","snow"]},{"id":":cloud_with_lightning:","symbol":"🌩","group":"travel","keywords":["cloud","cloud with lightning","lightning"]},{"id":":tornado:","symbol":"🌪","group":"travel","keywords":["cloud","tornado","whirlwind"]},{"id":":fog:","symbol":"🌫","group":"travel","keywords":["cloud","fog"]},{"id":":wind_face:","symbol":"🌬","group":"travel","keywords":["blow","cloud","face","wind"]},{"id":":cyclone:","symbol":"🌀","group":"travel","keywords":["cyclone","dizzy","hurricane","twister","typhoon"]},{"id":":rainbow:","symbol":"🌈","group":"travel","keywords":["rain","rainbow"]},{"id":":closed_umbrella:","symbol":"🌂","group":"travel","keywords":["closed umbrella","clothing","rain","umbrella"]},{"id":":umbrella:","symbol":"☂","group":"travel","keywords":["clothing","rain","umbrella"]},{"id":":umbrella_with_rain_drops:","symbol":"☔","group":"travel","keywords":["clothing","drop","rain","umbrella","umbrella with rain drops"]},{"id":":umbrella_on_ground:","symbol":"⛱","group":"travel","keywords":["rain","sun","umbrella","umbrella on ground"]},{"id":":high_voltage:","symbol":"⚡","group":"travel","keywords":["danger","electric","high voltage","lightning","voltage","zap"]},{"id":":snowflake:","symbol":"❄","group":"travel","keywords":["cold","snow","snowflake"]},{"id":":snowman:","symbol":"☃","group":"travel","keywords":["cold","snow","snowman"]},{"id":":snowman_without_snow:","symbol":"⛄","group":"travel","keywords":["cold","snow","snowman","snowman without snow"]},{"id":":comet:","symbol":"☄","group":"travel","keywords":["comet","space"]},{"id":":fire:","symbol":"🔥","group":"travel","keywords":["fire","flame","tool"]},{"id":":droplet:","symbol":"💧","group":"travel","keywords":["cold","comic","drop","droplet","sweat"]},{"id":":water_wave:","symbol":"🌊","group":"travel","keywords":["ocean","water","wave"]},{"id":":jack-o-lantern:","symbol":"🎃","group":"activities","keywords":["celebration","halloween","jack","jack-o-lantern","lantern"]},{"id":":christmas_tree:","symbol":"🎄","group":"activities","keywords":["celebration","Christmas","tree"]},{"id":":fireworks:","symbol":"🎆","group":"activities","keywords":["celebration","fireworks"]},{"id":":sparkler:","symbol":"🎇","group":"activities","keywords":["celebration","fireworks","sparkle","sparkler"]},{"id":":sparkles:","symbol":"✨","group":"activities","keywords":["sparkle","sparkles","star"]},{"id":":balloon:","symbol":"🎈","group":"activities","keywords":["balloon","celebration"]},{"id":":party_popper:","symbol":"🎉","group":"activities","keywords":["celebration","party","popper","tada"]},{"id":":confetti_ball:","symbol":"🎊","group":"activities","keywords":["ball","celebration","confetti"]},{"id":":tanabata_tree:","symbol":"🎋","group":"activities","keywords":["banner","celebration","Japanese","tanabata tree","tree"]},{"id":":pine_decoration:","symbol":"🎍","group":"activities","keywords":["bamboo","celebration","Japanese","pine","pine decoration"]},{"id":":japanese_dolls:","symbol":"🎎","group":"activities","keywords":["celebration","doll","festival","Japanese","Japanese dolls"]},{"id":":carp_streamer:","symbol":"🎏","group":"activities","keywords":["carp","celebration","streamer"]},{"id":":wind_chime:","symbol":"🎐","group":"activities","keywords":["bell","celebration","chime","wind"]},{"id":":moon_viewing_ceremony:","symbol":"🎑","group":"activities","keywords":["celebration","ceremony","moon","moon viewing ceremony"]},{"id":":ribbon:","symbol":"🎀","group":"activities","keywords":["celebration","ribbon"]},{"id":":wrapped_gift:","symbol":"🎁","group":"activities","keywords":["box","celebration","gift","present","wrapped"]},{"id":":reminder_ribbon:","symbol":"🎗","group":"activities","keywords":["celebration","reminder","ribbon"]},{"id":":admission_tickets:","symbol":"🎟","group":"activities","keywords":["admission","admission tickets","ticket"]},{"id":":ticket:","symbol":"🎫","group":"activities","keywords":["admission","ticket"]},{"id":":military_medal:","symbol":"🎖","group":"activities","keywords":["celebration","medal","military"]},{"id":":trophy:","symbol":"🏆","group":"activities","keywords":["prize","trophy"]},{"id":":sports_medal:","symbol":"🏅","group":"activities","keywords":["medal","sports medal"]},{"id":":1st_place_medal:","symbol":"🥇","group":"activities","keywords":["1st place medal","first","gold","medal"]},{"id":":2nd_place_medal:","symbol":"🥈","group":"activities","keywords":["2nd place medal","medal","second","silver"]},{"id":":3rd_place_medal:","symbol":"🥉","group":"activities","keywords":["3rd place medal","bronze","medal","third"]},{"id":":soccer_ball:","symbol":"⚽","group":"activities","keywords":["ball","football","soccer"]},{"id":":baseball:","symbol":"⚾","group":"activities","keywords":["ball","baseball"]},{"id":":basketball:","symbol":"🏀","group":"activities","keywords":["ball","basketball","hoop"]},{"id":":volleyball:","symbol":"🏐","group":"activities","keywords":["ball","game","volleyball"]},{"id":":american_football:","symbol":"🏈","group":"activities","keywords":["american","ball","football"]},{"id":":rugby_football:","symbol":"🏉","group":"activities","keywords":["ball","football","rugby"]},{"id":":tennis:","symbol":"🎾","group":"activities","keywords":["ball","racquet","tennis"]},{"id":":bowling:","symbol":"🎳","group":"activities","keywords":["ball","bowling","game"]},{"id":":cricket_game:","symbol":"🏏","group":"activities","keywords":["ball","bat","cricket game","game"]},{"id":":field_hockey:","symbol":"🏑","group":"activities","keywords":["ball","field","game","hockey","stick"]},{"id":":ice_hockey:","symbol":"🏒","group":"activities","keywords":["game","hockey","ice","puck","stick"]},{"id":":ping_pong:","symbol":"🏓","group":"activities","keywords":["ball","bat","game","paddle","ping pong","table tennis"]},{"id":":badminton:","symbol":"🏸","group":"activities","keywords":["badminton","birdie","game","racquet","shuttlecock"]},{"id":":boxing_glove:","symbol":"🥊","group":"activities","keywords":["boxing","glove"]},{"id":":martial_arts_uniform:","symbol":"🥋","group":"activities","keywords":["judo","karate","martial arts","martial arts uniform","taekwondo","uniform"]},{"id":":goal_net:","symbol":"🥅","group":"activities","keywords":["goal","net"]},{"id":":flag_in_hole:","symbol":"⛳","group":"activities","keywords":["flag in hole","golf","hole"]},{"id":":ice_skate:","symbol":"⛸","group":"activities","keywords":["ice","skate"]},{"id":":fishing_pole:","symbol":"🎣","group":"activities","keywords":["fish","fishing pole","pole"]},{"id":":running_shirt:","symbol":"🎽","group":"activities","keywords":["athletics","running","sash","shirt"]},{"id":":skis:","symbol":"🎿","group":"activities","keywords":["ski","skis","snow"]},{"id":":sled:","symbol":"🛷","group":"activities","keywords":["sled","sledge","sleigh",""]},{"id":":curling_stone:","symbol":"🥌","group":"activities","keywords":["curling stone","game","rock"]},{"id":":direct_hit:","symbol":"🎯","group":"activities","keywords":["bullseye","dart","direct hit","game","hit","target"]},{"id":":pool_8_ball:","symbol":"🎱","group":"activities","keywords":["8","ball","billiard","eight","game","pool 8 ball"]},{"id":":crystal_ball:","symbol":"🔮","group":"activities","keywords":["ball","crystal","fairy tale","fantasy","fortune","tool"]},{"id":":video_game:","symbol":"🎮","group":"activities","keywords":["controller","game","video game"]},{"id":":joystick:","symbol":"🕹","group":"activities","keywords":["game","joystick","video game"]},{"id":":slot_machine:","symbol":"🎰","group":"activities","keywords":["game","slot","slot machine"]},{"id":":game_die:","symbol":"🎲","group":"activities","keywords":["dice","die","game"]},{"id":":spade_suit:","symbol":"♠","group":"activities","keywords":["card","game","spade suit"]},{"id":":heart_suit:","symbol":"♥","group":"activities","keywords":["card","game","heart suit"]},{"id":":diamond_suit:","symbol":"♦","group":"activities","keywords":["card","diamond suit","game"]},{"id":":club_suit:","symbol":"♣","group":"activities","keywords":["card","club suit","game"]},{"id":":joker:","symbol":"🃏","group":"activities","keywords":["card","game","joker","wildcard"]},{"id":":mahjong_red_dragon:","symbol":"🀄","group":"activities","keywords":["game","mahjong","mahjong red dragon","red"]},{"id":":flower_playing_cards:","symbol":"🎴","group":"activities","keywords":["card","flower","flower playing cards","game","Japanese","playing"]},{"id":":performing_arts:","symbol":"🎭","group":"activities","keywords":["art","mask","performing","performing arts","theater","theatre"]},{"id":":framed_picture:","symbol":"🖼","group":"activities","keywords":["art","frame","framed picture","museum","painting","picture"]},{"id":":artist_palette:","symbol":"🎨","group":"activities","keywords":["art","artist palette","museum","painting","palette"]},{"id":":muted_speaker:","symbol":"🔇","group":"objects","keywords":["mute","muted speaker","quiet","silent","speaker"]},{"id":":speaker_low_volume:","symbol":"🔈","group":"objects","keywords":["soft","speaker low volume"]},{"id":":speaker_medium_volume:","symbol":"🔉","group":"objects","keywords":["medium","speaker medium volume"]},{"id":":speaker_high_volume:","symbol":"🔊","group":"objects","keywords":["loud","speaker high volume"]},{"id":":loudspeaker:","symbol":"📢","group":"objects","keywords":["loud","loudspeaker","public address"]},{"id":":megaphone:","symbol":"📣","group":"objects","keywords":["cheering","megaphone"]},{"id":":postal_horn:","symbol":"📯","group":"objects","keywords":["horn","post","postal"]},{"id":":bell:","symbol":"🔔","group":"objects","keywords":["bell"]},{"id":":bell_with_slash:","symbol":"🔕","group":"objects","keywords":["bell","bell with slash","forbidden","mute","quiet","silent"]},{"id":":musical_score:","symbol":"🎼","group":"objects","keywords":["music","musical score","score"]},{"id":":musical_note:","symbol":"🎵","group":"objects","keywords":["music","musical note","note"]},{"id":":musical_notes:","symbol":"🎶","group":"objects","keywords":["music","musical notes","note","notes"]},{"id":":studio_microphone:","symbol":"🎙","group":"objects","keywords":["mic","microphone","music","studio"]},{"id":":level_slider:","symbol":"🎚","group":"objects","keywords":["level","music","slider"]},{"id":":control_knobs:","symbol":"🎛","group":"objects","keywords":["control","knobs","music"]},{"id":":microphone:","symbol":"🎤","group":"objects","keywords":["karaoke","mic","microphone"]},{"id":":headphone:","symbol":"🎧","group":"objects","keywords":["earbud","headphone"]},{"id":":radio:","symbol":"📻","group":"objects","keywords":["radio","video"]},{"id":":saxophone:","symbol":"🎷","group":"objects","keywords":["instrument","music","sax","saxophone"]},{"id":":guitar:","symbol":"🎸","group":"objects","keywords":["guitar","instrument","music"]},{"id":":musical_keyboard:","symbol":"🎹","group":"objects","keywords":["instrument","keyboard","music","musical keyboard","piano"]},{"id":":trumpet:","symbol":"🎺","group":"objects","keywords":["instrument","music","trumpet"]},{"id":":violin:","symbol":"🎻","group":"objects","keywords":["instrument","music","violin"]},{"id":":drum:","symbol":"🥁","group":"objects","keywords":["drum","drumsticks","music"]},{"id":":mobile_phone:","symbol":"📱","group":"objects","keywords":["cell","mobile","phone","telephone"]},{"id":":mobile_phone_with_arrow:","symbol":"📲","group":"objects","keywords":["arrow","cell","mobile","mobile phone with arrow","phone","receive"]},{"id":":telephone:","symbol":"☎","group":"objects","keywords":["phone","telephone"]},{"id":":telephone_receiver:","symbol":"📞","group":"objects","keywords":["phone","receiver","telephone"]},{"id":":pager:","symbol":"📟","group":"objects","keywords":["pager"]},{"id":":fax_machine:","symbol":"📠","group":"objects","keywords":["fax","fax machine"]},{"id":":battery:","symbol":"🔋","group":"objects","keywords":["battery"]},{"id":":electric_plug:","symbol":"🔌","group":"objects","keywords":["electric","electricity","plug"]},{"id":":laptop_computer:","symbol":"💻","group":"objects","keywords":["computer","laptop computer","pc","personal"]},{"id":":desktop_computer:","symbol":"🖥","group":"objects","keywords":["computer","desktop"]},{"id":":printer:","symbol":"🖨","group":"objects","keywords":["computer","printer"]},{"id":":keyboard:","symbol":"⌨","group":"objects","keywords":["computer","keyboard"]},{"id":":computer_mouse:","symbol":"🖱","group":"objects","keywords":["computer","computer mouse"]},{"id":":trackball:","symbol":"🖲","group":"objects","keywords":["computer","trackball"]},{"id":":computer_disk:","symbol":"💽","group":"objects","keywords":["computer","disk","minidisk","optical"]},{"id":":floppy_disk:","symbol":"💾","group":"objects","keywords":["computer","disk","floppy"]},{"id":":optical_disk:","symbol":"💿","group":"objects","keywords":["cd","computer","disk","optical"]},{"id":":dvd:","symbol":"📀","group":"objects","keywords":["blu-ray","computer","disk","dvd","optical"]},{"id":":movie_camera:","symbol":"🎥","group":"objects","keywords":["camera","cinema","movie"]},{"id":":film_frames:","symbol":"🎞","group":"objects","keywords":["cinema","film","frames","movie"]},{"id":":film_projector:","symbol":"📽","group":"objects","keywords":["cinema","film","movie","projector","video"]},{"id":":clapper_board:","symbol":"🎬","group":"objects","keywords":["clapper","clapper board","movie"]},{"id":":television:","symbol":"📺","group":"objects","keywords":["television","tv","video"]},{"id":":camera:","symbol":"📷","group":"objects","keywords":["camera","video"]},{"id":":camera_with_flash:","symbol":"📸","group":"objects","keywords":["camera","camera with flash","flash","video"]},{"id":":video_camera:","symbol":"📹","group":"objects","keywords":["camera","video"]},{"id":":videocassette:","symbol":"📼","group":"objects","keywords":["tape","vhs","video","videocassette"]},{"id":":magnifying_glass_tilted_left:","symbol":"🔍","group":"objects","keywords":["glass","magnifying","magnifying glass tilted left","search","tool"]},{"id":":magnifying_glass_tilted_right:","symbol":"🔎","group":"objects","keywords":["glass","magnifying","magnifying glass tilted right","search","tool"]},{"id":":candle:","symbol":"🕯","group":"objects","keywords":["candle","light"]},{"id":":light_bulb:","symbol":"💡","group":"objects","keywords":["bulb","comic","electric","idea","light"]},{"id":":flashlight:","symbol":"🔦","group":"objects","keywords":["electric","flashlight","light","tool","torch"]},{"id":":red_paper_lantern:","symbol":"🏮","group":"objects","keywords":["bar","lantern","light","red","red paper lantern"]},{"id":":notebook_with_decorative_cover:","symbol":"📔","group":"objects","keywords":["book","cover","decorated","notebook","notebook with decorative cover"]},{"id":":closed_book:","symbol":"📕","group":"objects","keywords":["book","closed"]},{"id":":open_book:","symbol":"📖","group":"objects","keywords":["book","open"]},{"id":":green_book:","symbol":"📗","group":"objects","keywords":["book","green"]},{"id":":blue_book:","symbol":"📘","group":"objects","keywords":["blue","book"]},{"id":":orange_book:","symbol":"📙","group":"objects","keywords":["book","orange"]},{"id":":books:","symbol":"📚","group":"objects","keywords":["book","books"]},{"id":":notebook:","symbol":"📓","group":"objects","keywords":["notebook"]},{"id":":ledger:","symbol":"📒","group":"objects","keywords":["ledger","notebook"]},{"id":":page_with_curl:","symbol":"📃","group":"objects","keywords":["curl","document","page","page with curl"]},{"id":":scroll:","symbol":"📜","group":"objects","keywords":["paper","scroll"]},{"id":":page_facing_up:","symbol":"📄","group":"objects","keywords":["document","page","page facing up"]},{"id":":newspaper:","symbol":"📰","group":"objects","keywords":["news","newspaper","paper"]},{"id":":rolled-up_newspaper:","symbol":"🗞","group":"objects","keywords":["news","newspaper","paper","rolled","rolled-up newspaper"]},{"id":":bookmark_tabs:","symbol":"📑","group":"objects","keywords":["bookmark","mark","marker","tabs"]},{"id":":bookmark:","symbol":"🔖","group":"objects","keywords":["bookmark","mark"]},{"id":":label:","symbol":"🏷","group":"objects","keywords":["label"]},{"id":":money_bag:","symbol":"💰","group":"objects","keywords":["bag","dollar","money","moneybag"]},{"id":":yen_banknote:","symbol":"💴","group":"objects","keywords":["banknote","bill","currency","money","note","yen"]},{"id":":dollar_banknote:","symbol":"💵","group":"objects","keywords":["banknote","bill","currency","dollar","money","note"]},{"id":":euro_banknote:","symbol":"💶","group":"objects","keywords":["banknote","bill","currency","euro","money","note"]},{"id":":pound_banknote:","symbol":"💷","group":"objects","keywords":["banknote","bill","currency","money","note","pound"]},{"id":":money_with_wings:","symbol":"💸","group":"objects","keywords":["banknote","bill","fly","money","money with wings","wings"]},{"id":":credit_card:","symbol":"💳","group":"objects","keywords":["card","credit","money"]},{"id":":chart_increasing_with_yen:","symbol":"💹","group":"objects","keywords":["chart","chart increasing with yen","graph","growth","money","yen"]},{"id":":currency_exchange:","symbol":"💱","group":"objects","keywords":["bank","currency","exchange","money"]},{"id":":heavy_dollar_sign:","symbol":"💲","group":"objects","keywords":["currency","dollar","heavy dollar sign","money"]},{"id":":envelope:","symbol":"✉","group":"objects","keywords":["email","envelope","letter"]},{"id":":e-mail:","symbol":"📧","group":"objects","keywords":["e-mail","email","letter","mail"]},{"id":":incoming_envelope:","symbol":"📨","group":"objects","keywords":["e-mail","email","envelope","incoming","letter","receive"]},{"id":":envelope_with_arrow:","symbol":"📩","group":"objects","keywords":["arrow","e-mail","email","envelope","envelope with arrow","outgoing"]},{"id":":outbox_tray:","symbol":"📤","group":"objects","keywords":["box","letter","mail","outbox","sent","tray"]},{"id":":inbox_tray:","symbol":"📥","group":"objects","keywords":["box","inbox","letter","mail","receive","tray"]},{"id":":package:","symbol":"📦","group":"objects","keywords":["box","package","parcel"]},{"id":":closed_mailbox_with_raised_flag:","symbol":"📫","group":"objects","keywords":["closed","closed mailbox with raised flag","mail","mailbox","postbox"]},{"id":":closed_mailbox_with_lowered_flag:","symbol":"📪","group":"objects","keywords":["closed","closed mailbox with lowered flag","lowered","mail","mailbox","postbox"]},{"id":":open_mailbox_with_raised_flag:","symbol":"📬","group":"objects","keywords":["mail","mailbox","open","open mailbox with raised flag","postbox"]},{"id":":open_mailbox_with_lowered_flag:","symbol":"📭","group":"objects","keywords":["lowered","mail","mailbox","open","open mailbox with lowered flag","postbox"]},{"id":":postbox:","symbol":"📮","group":"objects","keywords":["mail","mailbox","postbox"]},{"id":":ballot_box_with_ballot:","symbol":"🗳","group":"objects","keywords":["ballot","ballot box with ballot","box"]},{"id":":pencil:","symbol":"✏","group":"objects","keywords":["pencil"]},{"id":":black_nib:","symbol":"✒","group":"objects","keywords":["black nib","nib","pen"]},{"id":":fountain_pen:","symbol":"🖋","group":"objects","keywords":["fountain","pen"]},{"id":":pen:","symbol":"🖊","group":"objects","keywords":["ballpoint","pen"]},{"id":":paintbrush:","symbol":"🖌","group":"objects","keywords":["paintbrush","painting"]},{"id":":crayon:","symbol":"🖍","group":"objects","keywords":["crayon"]},{"id":":memo:","symbol":"📝","group":"objects","keywords":["memo","pencil"]},{"id":":briefcase:","symbol":"💼","group":"objects","keywords":["briefcase"]},{"id":":file_folder:","symbol":"📁","group":"objects","keywords":["file","folder"]},{"id":":open_file_folder:","symbol":"📂","group":"objects","keywords":["file","folder","open"]},{"id":":card_index_dividers:","symbol":"🗂","group":"objects","keywords":["card","dividers","index"]},{"id":":calendar:","symbol":"📅","group":"objects","keywords":["calendar","date"]},{"id":":tear-off_calendar:","symbol":"📆","group":"objects","keywords":["calendar","tear-off calendar"]},{"id":":spiral_notepad:","symbol":"🗒","group":"objects","keywords":["note","pad","spiral","spiral notepad"]},{"id":":spiral_calendar:","symbol":"🗓","group":"objects","keywords":["calendar","pad","spiral"]},{"id":":card_index:","symbol":"📇","group":"objects","keywords":["card","index","rolodex"]},{"id":":chart_increasing:","symbol":"📈","group":"objects","keywords":["chart","chart increasing","graph","growth","trend","upward"]},{"id":":chart_decreasing:","symbol":"📉","group":"objects","keywords":["chart","chart decreasing","down","graph","trend"]},{"id":":bar_chart:","symbol":"📊","group":"objects","keywords":["bar","chart","graph"]},{"id":":clipboard:","symbol":"📋","group":"objects","keywords":["clipboard"]},{"id":":pushpin:","symbol":"📌","group":"objects","keywords":["pin","pushpin"]},{"id":":round_pushpin:","symbol":"📍","group":"objects","keywords":["pin","pushpin","round pushpin"]},{"id":":paperclip:","symbol":"📎","group":"objects","keywords":["paperclip"]},{"id":":linked_paperclips:","symbol":"🖇","group":"objects","keywords":["link","linked paperclips","paperclip"]},{"id":":straight_ruler:","symbol":"📏","group":"objects","keywords":["ruler","straight edge","straight ruler"]},{"id":":triangular_ruler:","symbol":"📐","group":"objects","keywords":["ruler","set","triangle","triangular ruler"]},{"id":":scissors:","symbol":"✂","group":"objects","keywords":["cutting","scissors","tool"]},{"id":":card_file_box:","symbol":"🗃","group":"objects","keywords":["box","card","file"]},{"id":":file_cabinet:","symbol":"🗄","group":"objects","keywords":["cabinet","file","filing"]},{"id":":wastebasket:","symbol":"🗑","group":"objects","keywords":["wastebasket"]},{"id":":locked:","symbol":"🔒","group":"objects","keywords":["closed","locked"]},{"id":":unlocked:","symbol":"🔓","group":"objects","keywords":["lock","open","unlock","unlocked"]},{"id":":locked_with_pen:","symbol":"🔏","group":"objects","keywords":["ink","lock","locked with pen","nib","pen","privacy"]},{"id":":locked_with_key:","symbol":"🔐","group":"objects","keywords":["closed","key","lock","locked with key","secure"]},{"id":":key:","symbol":"🔑","group":"objects","keywords":["key","lock","password"]},{"id":":old_key:","symbol":"🗝","group":"objects","keywords":["clue","key","lock","old"]},{"id":":hammer:","symbol":"🔨","group":"objects","keywords":["hammer","tool"]},{"id":":pick:","symbol":"⛏","group":"objects","keywords":["mining","pick","tool"]},{"id":":hammer_and_pick:","symbol":"⚒","group":"objects","keywords":["hammer","hammer and pick","pick","tool"]},{"id":":hammer_and_wrench:","symbol":"🛠","group":"objects","keywords":["hammer","hammer and wrench","spanner","tool","wrench"]},{"id":":dagger:","symbol":"🗡","group":"objects","keywords":["dagger","knife","weapon"]},{"id":":crossed_swords:","symbol":"⚔","group":"objects","keywords":["crossed","swords","weapon"]},{"id":":pistol:","symbol":"🔫","group":"objects","keywords":["gun","handgun","pistol","revolver","tool","weapon"]},{"id":":bow_and_arrow:","symbol":"🏹","group":"objects","keywords":["archer","arrow","bow","bow and arrow","Sagittarius","zodiac"]},{"id":":shield:","symbol":"🛡","group":"objects","keywords":["shield","weapon"]},{"id":":wrench:","symbol":"🔧","group":"objects","keywords":["spanner","tool","wrench"]},{"id":":nut_and_bolt:","symbol":"🔩","group":"objects","keywords":["bolt","nut","nut and bolt","tool"]},{"id":":gear:","symbol":"⚙","group":"objects","keywords":["cog","cogwheel","gear","tool"]},{"id":":clamp:","symbol":"🗜","group":"objects","keywords":["clamp","compress","tool","vice"]},{"id":":balance_scale:","symbol":"⚖","group":"objects","keywords":["balance","justice","Libra","scale","zodiac"]},{"id":":link:","symbol":"🔗","group":"objects","keywords":["link"]},{"id":":chains:","symbol":"⛓","group":"objects","keywords":["chain","chains"]},{"id":":alembic:","symbol":"⚗","group":"objects","keywords":["alembic","chemistry","tool"]},{"id":":microscope:","symbol":"🔬","group":"objects","keywords":["microscope","science","tool"]},{"id":":telescope:","symbol":"🔭","group":"objects","keywords":["science","telescope","tool"]},{"id":":satellite_antenna:","symbol":"📡","group":"objects","keywords":["antenna","dish","satellite"]},{"id":":syringe:","symbol":"💉","group":"objects","keywords":["medicine","needle","shot","sick","syringe"]},{"id":":pill:","symbol":"💊","group":"objects","keywords":["doctor","medicine","pill","sick"]},{"id":":door:","symbol":"🚪","group":"objects","keywords":["door"]},{"id":":bed:","symbol":"🛏","group":"objects","keywords":["bed","hotel","sleep"]},{"id":":couch_and_lamp:","symbol":"🛋","group":"objects","keywords":["couch","couch and lamp","hotel","lamp"]},{"id":":toilet:","symbol":"🚽","group":"objects","keywords":["toilet"]},{"id":":shower:","symbol":"🚿","group":"objects","keywords":["shower","water"]},{"id":":bathtub:","symbol":"🛁","group":"objects","keywords":["bath","bathtub"]},{"id":":shopping_cart:","symbol":"🛒","group":"objects","keywords":["cart","shopping","trolley"]},{"id":":cigarette:","symbol":"🚬","group":"objects","keywords":["cigarette","smoking"]},{"id":":coffin:","symbol":"⚰","group":"objects","keywords":["coffin","death"]},{"id":":funeral_urn:","symbol":"⚱","group":"objects","keywords":["ashes","death","funeral","urn"]},{"id":":moai:","symbol":"🗿","group":"objects","keywords":["face","moai","moyai","statue"]},{"id":":atm_sign:","symbol":"🏧","group":"symbols","keywords":["atm","ATM sign","automated","bank","teller"]},{"id":":litter_in_bin_sign:","symbol":"🚮","group":"symbols","keywords":["litter","litter bin","litter in bin sign"]},{"id":":potable_water:","symbol":"🚰","group":"symbols","keywords":["drinking","potable","water"]},{"id":":wheelchair_symbol:","symbol":"♿","group":"symbols","keywords":["access","wheelchair symbol"]},{"id":":men’s_room:","symbol":"🚹","group":"symbols","keywords":["lavatory","man","men’s room","restroom","wc"]},{"id":":women’s_room:","symbol":"🚺","group":"symbols","keywords":["lavatory","restroom","wc","woman","women’s room"]},{"id":":restroom:","symbol":"🚻","group":"symbols","keywords":["lavatory","restroom","WC"]},{"id":":baby_symbol:","symbol":"🚼","group":"symbols","keywords":["baby","baby symbol","changing"]},{"id":":water_closet:","symbol":"🚾","group":"symbols","keywords":["closet","lavatory","restroom","water","wc"]},{"id":":passport_control:","symbol":"🛂","group":"symbols","keywords":["control","passport"]},{"id":":customs:","symbol":"🛃","group":"symbols","keywords":["customs"]},{"id":":baggage_claim:","symbol":"🛄","group":"symbols","keywords":["baggage","claim"]},{"id":":left_luggage:","symbol":"🛅","group":"symbols","keywords":["baggage","left luggage","locker","luggage"]},{"id":":warning:","symbol":"⚠","group":"symbols","keywords":["warning"]},{"id":":children_crossing:","symbol":"🚸","group":"symbols","keywords":["child","children crossing","crossing","pedestrian","traffic"]},{"id":":no_entry:","symbol":"⛔","group":"symbols","keywords":["entry","forbidden","no","not","prohibited","traffic"]},{"id":":prohibited:","symbol":"🚫","group":"symbols","keywords":["entry","forbidden","no","not","prohibited"]},{"id":":no_bicycles:","symbol":"🚳","group":"symbols","keywords":["bicycle","bike","forbidden","no","no bicycles","prohibited"]},{"id":":no_smoking:","symbol":"🚭","group":"symbols","keywords":["forbidden","no","not","prohibited","smoking"]},{"id":":no_littering:","symbol":"🚯","group":"symbols","keywords":["forbidden","litter","no","no littering","not","prohibited"]},{"id":":non-potable_water:","symbol":"🚱","group":"symbols","keywords":["non-drinking","non-potable","water"]},{"id":":no_pedestrians:","symbol":"🚷","group":"symbols","keywords":["forbidden","no","no pedestrians","not","pedestrian","prohibited"]},{"id":":no_mobile_phones:","symbol":"📵","group":"symbols","keywords":["cell","forbidden","mobile","no","no mobile phones","phone"]},{"id":":no_one_under_eighteen:","symbol":"🔞","group":"symbols","keywords":["18","age restriction","eighteen","no one under eighteen","prohibited","underage"]},{"id":":radioactive:","symbol":"☢","group":"symbols","keywords":["radioactive","sign"]},{"id":":biohazard:","symbol":"☣","group":"symbols","keywords":["biohazard","sign"]},{"id":":up_arrow:","symbol":"⬆","group":"symbols","keywords":["arrow","cardinal","direction","north","up arrow"]},{"id":":up-right_arrow:","symbol":"↗","group":"symbols","keywords":["arrow","direction","intercardinal","northeast","up-right arrow"]},{"id":":right_arrow:","symbol":"➡","group":"symbols","keywords":["arrow","cardinal","direction","east","right arrow"]},{"id":":down-right_arrow:","symbol":"↘","group":"symbols","keywords":["arrow","direction","down-right arrow","intercardinal","southeast"]},{"id":":down_arrow:","symbol":"⬇","group":"symbols","keywords":["arrow","cardinal","direction","down","south"]},{"id":":down-left_arrow:","symbol":"↙","group":"symbols","keywords":["arrow","direction","down-left arrow","intercardinal","southwest"]},{"id":":left_arrow:","symbol":"⬅","group":"symbols","keywords":["arrow","cardinal","direction","left arrow","west"]},{"id":":up-left_arrow:","symbol":"↖","group":"symbols","keywords":["arrow","direction","intercardinal","northwest","up-left arrow"]},{"id":":up-down_arrow:","symbol":"↕","group":"symbols","keywords":["arrow","up-down arrow"]},{"id":":left-right_arrow:","symbol":"↔","group":"symbols","keywords":["arrow","left-right arrow"]},{"id":":right_arrow_curving_left:","symbol":"↩","group":"symbols","keywords":["arrow","right arrow curving left"]},{"id":":left_arrow_curving_right:","symbol":"↪","group":"symbols","keywords":["arrow","left arrow curving right"]},{"id":":right_arrow_curving_up:","symbol":"⤴","group":"symbols","keywords":["arrow","right arrow curving up"]},{"id":":right_arrow_curving_down:","symbol":"⤵","group":"symbols","keywords":["arrow","down","right arrow curving down"]},{"id":":clockwise_vertical_arrows:","symbol":"🔃","group":"symbols","keywords":["arrow","clockwise","clockwise vertical arrows","reload"]},{"id":":counterclockwise_arrows_button:","symbol":"🔄","group":"symbols","keywords":["anticlockwise","arrow","counterclockwise","counterclockwise arrows button","withershins"]},{"id":":back_arrow:","symbol":"🔙","group":"symbols","keywords":["arrow","back","BACK arrow"]},{"id":":end_arrow:","symbol":"🔚","group":"symbols","keywords":["arrow","end","END arrow"]},{"id":":on!_arrow:","symbol":"🔛","group":"symbols","keywords":["arrow","mark","on","ON! arrow"]},{"id":":soon_arrow:","symbol":"🔜","group":"symbols","keywords":["arrow","soon","SOON arrow"]},{"id":":top_arrow:","symbol":"🔝","group":"symbols","keywords":["arrow","top","TOP arrow","up"]},{"id":":place_of_worship:","symbol":"🛐","group":"symbols","keywords":["place of worship","religion","worship"]},{"id":":atom_symbol:","symbol":"⚛","group":"symbols","keywords":["atheist","atom","atom symbol"]},{"id":":om:","symbol":"🕉","group":"symbols","keywords":["Hindu","om","religion"]},{"id":":star_of_david:","symbol":"✡","group":"symbols","keywords":["David","Jew","Jewish","religion","star","star of David"]},{"id":":wheel_of_dharma:","symbol":"☸","group":"symbols","keywords":["Buddhist","dharma","religion","wheel","wheel of dharma"]},{"id":":yin_yang:","symbol":"☯","group":"symbols","keywords":["religion","tao","taoist","yang","yin"]},{"id":":latin_cross:","symbol":"✝","group":"symbols","keywords":["Christian","cross","latin cross","religion"]},{"id":":orthodox_cross:","symbol":"☦","group":"symbols","keywords":["Christian","cross","orthodox cross","religion"]},{"id":":star_and_crescent:","symbol":"☪","group":"symbols","keywords":["islam","Muslim","religion","star and crescent"]},{"id":":peace_symbol:","symbol":"☮","group":"symbols","keywords":["peace","peace symbol"]},{"id":":menorah:","symbol":"🕎","group":"symbols","keywords":["candelabrum","candlestick","menorah","religion"]},{"id":":dotted_six-pointed_star:","symbol":"🔯","group":"symbols","keywords":["dotted six-pointed star","fortune","star"]},{"id":":aries:","symbol":"♈","group":"symbols","keywords":["Aries","ram","zodiac"]},{"id":":taurus:","symbol":"♉","group":"symbols","keywords":["bull","ox","Taurus","zodiac"]},{"id":":gemini:","symbol":"♊","group":"symbols","keywords":["Gemini","twins","zodiac"]},{"id":":cancer:","symbol":"♋","group":"symbols","keywords":["Cancer","crab","zodiac"]},{"id":":leo:","symbol":"♌","group":"symbols","keywords":["Leo","lion","zodiac"]},{"id":":virgo:","symbol":"♍","group":"symbols","keywords":["Virgo","zodiac"]},{"id":":libra:","symbol":"♎","group":"symbols","keywords":["balance","justice","Libra","scales","zodiac"]},{"id":":scorpio:","symbol":"♏","group":"symbols","keywords":["Scorpio","scorpion","scorpius","zodiac"]},{"id":":sagittarius:","symbol":"♐","group":"symbols","keywords":["archer","Sagittarius","zodiac"]},{"id":":capricorn:","symbol":"♑","group":"symbols","keywords":["Capricorn","goat","zodiac"]},{"id":":aquarius:","symbol":"♒","group":"symbols","keywords":["Aquarius","bearer","water","zodiac"]},{"id":":pisces:","symbol":"♓","group":"symbols","keywords":["fish","Pisces","zodiac"]},{"id":":ophiuchus:","symbol":"⛎","group":"symbols","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":shuffle_tracks_button:","symbol":"🔀","group":"symbols","keywords":["arrow","crossed","shuffle tracks button"]},{"id":":repeat_button:","symbol":"🔁","group":"symbols","keywords":["arrow","clockwise","repeat","repeat button"]},{"id":":repeat_single_button:","symbol":"🔂","group":"symbols","keywords":["arrow","clockwise","once","repeat single button"]},{"id":":play_button:","symbol":"▶","group":"symbols","keywords":["arrow","play","play button","right","triangle"]},{"id":":fast-forward_button:","symbol":"⏩","group":"symbols","keywords":["arrow","double","fast","fast-forward button","forward"]},{"id":":next_track_button:","symbol":"⏭","group":"symbols","keywords":["arrow","next scene","next track","next track button","triangle"]},{"id":":play_or_pause_button:","symbol":"⏯","group":"symbols","keywords":["arrow","pause","play","play or pause button","right","triangle"]},{"id":":reverse_button:","symbol":"◀","group":"symbols","keywords":["arrow","left","reverse","reverse button","triangle"]},{"id":":fast_reverse_button:","symbol":"⏪","group":"symbols","keywords":["arrow","double","fast reverse button","rewind"]},{"id":":last_track_button:","symbol":"⏮","group":"symbols","keywords":["arrow","last track button","previous scene","previous track","triangle"]},{"id":":upwards_button:","symbol":"🔼","group":"symbols","keywords":["arrow","button","red","upwards button"]},{"id":":fast_up_button:","symbol":"⏫","group":"symbols","keywords":["arrow","double","fast up button"]},{"id":":downwards_button:","symbol":"🔽","group":"symbols","keywords":["arrow","button","down","downwards button","red"]},{"id":":fast_down_button:","symbol":"⏬","group":"symbols","keywords":["arrow","double","down","fast down button"]},{"id":":pause_button:","symbol":"⏸","group":"symbols","keywords":["bar","double","pause","pause button","vertical"]},{"id":":stop_button:","symbol":"⏹","group":"symbols","keywords":["square","stop","stop button"]},{"id":":record_button:","symbol":"⏺","group":"symbols","keywords":["circle","record","record button"]},{"id":":eject_button:","symbol":"⏏","group":"symbols","keywords":["eject","eject button"]},{"id":":cinema:","symbol":"🎦","group":"symbols","keywords":["camera","cinema","film","movie"]},{"id":":dim_button:","symbol":"🔅","group":"symbols","keywords":["brightness","dim","dim button","low"]},{"id":":bright_button:","symbol":"🔆","group":"symbols","keywords":["bright","bright button","brightness"]},{"id":":antenna_bars:","symbol":"📶","group":"symbols","keywords":["antenna","antenna bars","bar","cell","mobile","phone"]},{"id":":vibration_mode:","symbol":"📳","group":"symbols","keywords":["cell","mobile","mode","phone","telephone","vibration"]},{"id":":mobile_phone_off:","symbol":"📴","group":"symbols","keywords":["cell","mobile","off","phone","telephone"]},{"id":":female_sign:","symbol":"♀","group":"symbols","keywords":["female sign","woman"]},{"id":":male_sign:","symbol":"♂","group":"symbols","keywords":["male sign","man"]},{"id":":medical_symbol:","symbol":"⚕","group":"symbols","keywords":["aesculapius","medical symbol","medicine","staff"]},{"id":":recycling_symbol:","symbol":"♻","group":"symbols","keywords":["recycle","recycling symbol"]},{"id":":fleur-de-lis:","symbol":"⚜","group":"symbols","keywords":["fleur-de-lis"]},{"id":":trident_emblem:","symbol":"🔱","group":"symbols","keywords":["anchor","emblem","ship","tool","trident"]},{"id":":name_badge:","symbol":"📛","group":"symbols","keywords":["badge","name"]},{"id":":japanese_symbol_for_beginner:","symbol":"🔰","group":"symbols","keywords":["beginner","chevron","Japanese","Japanese symbol for beginner","leaf"]},{"id":":heavy_large_circle:","symbol":"⭕","group":"symbols","keywords":["circle","heavy large circle","o"]},{"id":":white_heavy_check_mark:","symbol":"✅","group":"symbols","keywords":["check","mark","white heavy check mark"]},{"id":":ballot_box_with_check:","symbol":"☑","group":"symbols","keywords":["ballot","ballot box with check","box","check"]},{"id":":heavy_check_mark:","symbol":"✔","group":"symbols","keywords":["check","heavy check mark","mark"]},{"id":":heavy_multiplication_x:","symbol":"✖","group":"symbols","keywords":["cancel","heavy multiplication x","multiplication","multiply","x"]},{"id":":cross_mark:","symbol":"❌","group":"symbols","keywords":["cancel","cross mark","mark","multiplication","multiply","x"]},{"id":":cross_mark_button:","symbol":"❎","group":"symbols","keywords":["cross mark button","mark","square"]},{"id":":heavy_plus_sign:","symbol":"➕","group":"symbols","keywords":["heavy plus sign","math","plus"]},{"id":":heavy_minus_sign:","symbol":"➖","group":"symbols","keywords":["heavy minus sign","math","minus"]},{"id":":heavy_division_sign:","symbol":"➗","group":"symbols","keywords":["division","heavy division sign","math"]},{"id":":curly_loop:","symbol":"➰","group":"symbols","keywords":["curl","curly loop","loop"]},{"id":":double_curly_loop:","symbol":"➿","group":"symbols","keywords":["curl","double","double curly loop","loop"]},{"id":":part_alternation_mark:","symbol":"〽","group":"symbols","keywords":["mark","part","part alternation mark"]},{"id":":eight-spoked_asterisk:","symbol":"✳","group":"symbols","keywords":["asterisk","eight-spoked asterisk"]},{"id":":eight-pointed_star:","symbol":"✴","group":"symbols","keywords":["eight-pointed star","star"]},{"id":":sparkle:","symbol":"❇","group":"symbols","keywords":["sparkle"]},{"id":":double_exclamation_mark:","symbol":"‼","group":"symbols","keywords":["bangbang","double exclamation mark","exclamation","mark","punctuation"]},{"id":":exclamation_question_mark:","symbol":"⁉","group":"symbols","keywords":["exclamation","interrobang","mark","punctuation","question"]},{"id":":question_mark:","symbol":"❓","group":"symbols","keywords":["mark","punctuation","question"]},{"id":":white_question_mark:","symbol":"❔","group":"symbols","keywords":["mark","outlined","punctuation","question","white question mark"]},{"id":":white_exclamation_mark:","symbol":"❕","group":"symbols","keywords":["exclamation","mark","outlined","punctuation","white exclamation mark"]},{"id":":exclamation_mark:","symbol":"❗","group":"symbols","keywords":["exclamation","mark","punctuation"]},{"id":":wavy_dash:","symbol":"〰","group":"symbols","keywords":["dash","punctuation","wavy"]},{"id":":copyright:","symbol":"©","group":"symbols","keywords":["copyright"]},{"id":":registered:","symbol":"®","group":"symbols","keywords":["registered"]},{"id":":trade_mark:","symbol":"™","group":"symbols","keywords":["mark","tm","trade mark","trademark"]},{"id":":keycap_#:","symbol":"#️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_*:","symbol":"*️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_0:","symbol":"0️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_1:","symbol":"1️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_2:","symbol":"2️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_3:","symbol":"3️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_4:","symbol":"4️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_5:","symbol":"5️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_6:","symbol":"6️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_7:","symbol":"7️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_8:","symbol":"8️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_9:","symbol":"9️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_10:","symbol":"🔟","group":"symbols","keywords":["keycap"]},{"id":":hundred_points:","symbol":"💯","group":"symbols","keywords":["100","full","hundred","hundred points","score"]},{"id":":input_latin_uppercase:","symbol":"🔠","group":"symbols","keywords":["ABCD","input","latin","letters","uppercase"]},{"id":":input_latin_lowercase:","symbol":"🔡","group":"symbols","keywords":["abcd","input","latin","letters","lowercase"]},{"id":":input_numbers:","symbol":"🔢","group":"symbols","keywords":["1234","input","numbers"]},{"id":":input_symbols:","symbol":"🔣","group":"symbols","keywords":["〒♪&%","input","input symbols"]},{"id":":input_latin_letters:","symbol":"🔤","group":"symbols","keywords":["abc","alphabet","input","latin","letters"]},{"id":":a_button_(blood_type):","symbol":"🅰","group":"symbols","keywords":["a","A button (blood type)","blood type"]},{"id":":ab_button_(blood_type):","symbol":"🆎","group":"symbols","keywords":["ab","AB button (blood type)","blood type"]},{"id":":b_button_(blood_type):","symbol":"🅱","group":"symbols","keywords":["b","B button (blood type)","blood type"]},{"id":":cl_button:","symbol":"🆑","group":"symbols","keywords":["cl","CL button"]},{"id":":cool_button:","symbol":"🆒","group":"symbols","keywords":["cool","COOL button"]},{"id":":free_button:","symbol":"🆓","group":"symbols","keywords":["free","FREE button"]},{"id":":information:","symbol":"ℹ","group":"symbols","keywords":["i","information"]},{"id":":id_button:","symbol":"🆔","group":"symbols","keywords":["id","ID button","identity"]},{"id":":circled_m:","symbol":"Ⓜ","group":"symbols","keywords":["circle","circled M","m"]},{"id":":new_button:","symbol":"🆕","group":"symbols","keywords":["new","NEW button"]},{"id":":ng_button:","symbol":"🆖","group":"symbols","keywords":["ng","NG button"]},{"id":":o_button_(blood_type):","symbol":"🅾","group":"symbols","keywords":["blood type","o","O button (blood type)"]},{"id":":ok_button:","symbol":"🆗","group":"symbols","keywords":["OK","OK button"]},{"id":":p_button:","symbol":"🅿","group":"symbols","keywords":["P button","parking"]},{"id":":sos_button:","symbol":"🆘","group":"symbols","keywords":["help","sos","SOS button"]},{"id":":up!_button:","symbol":"🆙","group":"symbols","keywords":["mark","up","UP! button"]},{"id":":vs_button:","symbol":"🆚","group":"symbols","keywords":["versus","vs","VS button"]},{"id":":japanese_“here”_button:","symbol":"🈁","group":"symbols","keywords":["“here”","Japanese","Japanese “here” button","katakana","ココ"]},{"id":":japanese_“service_charge”_button:","symbol":"🈂","group":"symbols","keywords":["“service charge”","Japanese","Japanese “service charge” button","katakana","サ"]},{"id":":japanese_“monthly_amount”_button:","symbol":"🈷","group":"symbols","keywords":["“monthly amount”","ideograph","Japanese","Japanese “monthly amount” button","月"]},{"id":":japanese_“not_free_of_charge”_button:","symbol":"🈶","group":"symbols","keywords":["“not free of charge”","ideograph","Japanese","Japanese “not free of charge” button","有"]},{"id":":japanese_“reserved”_button:","symbol":"🈯","group":"symbols","keywords":["“reserved”","ideograph","Japanese","Japanese “reserved” button","指"]},{"id":":japanese_“bargain”_button:","symbol":"🉐","group":"symbols","keywords":["“bargain”","ideograph","Japanese","Japanese “bargain” button","得"]},{"id":":japanese_“discount”_button:","symbol":"🈹","group":"symbols","keywords":["“discount”","ideograph","Japanese","Japanese “discount” button","割"]},{"id":":japanese_“free_of_charge”_button:","symbol":"🈚","group":"symbols","keywords":["“free of charge”","ideograph","Japanese","Japanese “free of charge” button","無"]},{"id":":japanese_“prohibited”_button:","symbol":"🈲","group":"symbols","keywords":["“prohibited”","ideograph","Japanese","Japanese “prohibited” button","禁"]},{"id":":japanese_“acceptable”_button:","symbol":"🉑","group":"symbols","keywords":["“acceptable”","ideograph","Japanese","Japanese “acceptable” button","可"]},{"id":":japanese_“application”_button:","symbol":"🈸","group":"symbols","keywords":["“application”","ideograph","Japanese","Japanese “application” button","申"]},{"id":":japanese_“passing_grade”_button:","symbol":"🈴","group":"symbols","keywords":["“passing grade”","ideograph","Japanese","Japanese “passing grade” button","合"]},{"id":":japanese_“vacancy”_button:","symbol":"🈳","group":"symbols","keywords":["“vacancy”","ideograph","Japanese","Japanese “vacancy” button","空"]},{"id":":japanese_“congratulations”_button:","symbol":"㊗","group":"symbols","keywords":["“congratulations”","ideograph","Japanese","Japanese “congratulations” button","祝"]},{"id":":japanese_“secret”_button:","symbol":"㊙","group":"symbols","keywords":["“secret”","ideograph","Japanese","Japanese “secret” button","秘"]},{"id":":japanese_“open_for_business”_button:","symbol":"🈺","group":"symbols","keywords":["“open for business”","ideograph","Japanese","Japanese “open for business” button","営"]},{"id":":japanese_“no_vacancy”_button:","symbol":"🈵","group":"symbols","keywords":["“no vacancy”","ideograph","Japanese","Japanese “no vacancy” button","満"]},{"id":":red_circle:","symbol":"🔴","group":"symbols","keywords":["circle","geometric","red"]},{"id":":blue_circle:","symbol":"🔵","group":"symbols","keywords":["blue","circle","geometric"]},{"id":":white_circle:","symbol":"⚪","group":"symbols","keywords":["circle","geometric","white circle"]},{"id":":black_circle:","symbol":"⚫","group":"symbols","keywords":["black circle","circle","geometric"]},{"id":":white_large_square:","symbol":"⬜","group":"symbols","keywords":["geometric","square","white large square"]},{"id":":black_large_square:","symbol":"⬛","group":"symbols","keywords":["black large square","geometric","square"]},{"id":":black_medium_square:","symbol":"◼","group":"symbols","keywords":["black medium square","geometric","square"]},{"id":":white_medium_square:","symbol":"◻","group":"symbols","keywords":["geometric","square","white medium square"]},{"id":":white_medium-small_square:","symbol":"◽","group":"symbols","keywords":["geometric","square","white medium-small square"]},{"id":":black_medium-small_square:","symbol":"◾","group":"symbols","keywords":["black medium-small square","geometric","square"]},{"id":":white_small_square:","symbol":"▫","group":"symbols","keywords":["geometric","square","white small square"]},{"id":":black_small_square:","symbol":"▪","group":"symbols","keywords":["black small square","geometric","square"]},{"id":":large_orange_diamond:","symbol":"🔶","group":"symbols","keywords":["diamond","geometric","large orange diamond","orange"]},{"id":":large_blue_diamond:","symbol":"🔷","group":"symbols","keywords":["blue","diamond","geometric","large blue diamond"]},{"id":":small_orange_diamond:","symbol":"🔸","group":"symbols","keywords":["diamond","geometric","orange","small orange diamond"]},{"id":":small_blue_diamond:","symbol":"🔹","group":"symbols","keywords":["blue","diamond","geometric","small blue diamond"]},{"id":":red_triangle_pointed_up:","symbol":"🔺","group":"symbols","keywords":["geometric","red","red triangle pointed up"]},{"id":":red_triangle_pointed_down:","symbol":"🔻","group":"symbols","keywords":["down","geometric","red","red triangle pointed down"]},{"id":":diamond_with_a_dot:","symbol":"💠","group":"symbols","keywords":["comic","diamond","diamond with a dot","geometric","inside"]},{"id":":radio_button:","symbol":"🔘","group":"symbols","keywords":["button","geometric","radio"]},{"id":":black_square_button:","symbol":"🔲","group":"symbols","keywords":["black square button","button","geometric","square"]},{"id":":white_square_button:","symbol":"🔳","group":"symbols","keywords":["button","geometric","outlined","square","white square button"]},{"id":":chequered_flag:","symbol":"🏁","group":"flags","keywords":["checkered","chequered","chequered flag","racing"]},{"id":":triangular_flag:","symbol":"🚩","group":"flags","keywords":["post","triangular flag"]},{"id":":crossed_flags:","symbol":"🎌","group":"flags","keywords":["celebration","cross","crossed","crossed flags","Japanese"]},{"id":":black_flag:","symbol":"🏴","group":"flags","keywords":["black flag","waving"]},{"id":":white_flag:","symbol":"🏳","group":"flags","keywords":["waving","white flag"]},{"id":":rainbow_flag:","symbol":"🏳️‍🌈","group":"flags","keywords":["rainbow","rainbow flag"]},{"id":":flag_ascension_island:","symbol":"🇦🇨","group":"flags","keywords":["flag"]},{"id":":flag_andorra:","symbol":"🇦🇩","group":"flags","keywords":["flag"]},{"id":":flag_united_arab_emirates:","symbol":"🇦🇪","group":"flags","keywords":["flag"]},{"id":":flag_afghanistan:","symbol":"🇦🇫","group":"flags","keywords":["flag"]},{"id":":flag_antigua_&_barbuda:","symbol":"🇦🇬","group":"flags","keywords":["flag"]},{"id":":flag_anguilla:","symbol":"🇦🇮","group":"flags","keywords":["flag"]},{"id":":flag_albania:","symbol":"🇦🇱","group":"flags","keywords":["flag"]},{"id":":flag_armenia:","symbol":"🇦🇲","group":"flags","keywords":["flag"]},{"id":":flag_angola:","symbol":"🇦🇴","group":"flags","keywords":["flag"]},{"id":":flag_antarctica:","symbol":"🇦🇶","group":"flags","keywords":["flag"]},{"id":":flag_argentina:","symbol":"🇦🇷","group":"flags","keywords":["flag"]},{"id":":flag_american_samoa:","symbol":"🇦🇸","group":"flags","keywords":["flag"]},{"id":":flag_austria:","symbol":"🇦🇹","group":"flags","keywords":["flag"]},{"id":":flag_australia:","symbol":"🇦🇺","group":"flags","keywords":["flag"]},{"id":":flag_aruba:","symbol":"🇦🇼","group":"flags","keywords":["flag"]},{"id":":flag_åland_islands:","symbol":"🇦🇽","group":"flags","keywords":["flag"]},{"id":":flag_azerbaijan:","symbol":"🇦🇿","group":"flags","keywords":["flag"]},{"id":":flag_bosnia_&_herzegovina:","symbol":"🇧🇦","group":"flags","keywords":["flag"]},{"id":":flag_barbados:","symbol":"🇧🇧","group":"flags","keywords":["flag"]},{"id":":flag_bangladesh:","symbol":"🇧🇩","group":"flags","keywords":["flag"]},{"id":":flag_belgium:","symbol":"🇧🇪","group":"flags","keywords":["flag"]},{"id":":flag_burkina_faso:","symbol":"🇧🇫","group":"flags","keywords":["flag"]},{"id":":flag_bulgaria:","symbol":"🇧🇬","group":"flags","keywords":["flag"]},{"id":":flag_bahrain:","symbol":"🇧🇭","group":"flags","keywords":["flag"]},{"id":":flag_burundi:","symbol":"🇧🇮","group":"flags","keywords":["flag"]},{"id":":flag_benin:","symbol":"🇧🇯","group":"flags","keywords":["flag"]},{"id":":flag_st._barthélemy:","symbol":"🇧🇱","group":"flags","keywords":["flag"]},{"id":":flag_bermuda:","symbol":"🇧🇲","group":"flags","keywords":["flag"]},{"id":":flag_brunei:","symbol":"🇧🇳","group":"flags","keywords":["flag"]},{"id":":flag_bolivia:","symbol":"🇧🇴","group":"flags","keywords":["flag"]},{"id":":flag_caribbean_netherlands:","symbol":"🇧🇶","group":"flags","keywords":["flag"]},{"id":":flag_brazil:","symbol":"🇧🇷","group":"flags","keywords":["flag"]},{"id":":flag_bahamas:","symbol":"🇧🇸","group":"flags","keywords":["flag"]},{"id":":flag_bhutan:","symbol":"🇧🇹","group":"flags","keywords":["flag"]},{"id":":flag_bouvet_island:","symbol":"🇧🇻","group":"flags","keywords":["flag"]},{"id":":flag_botswana:","symbol":"🇧🇼","group":"flags","keywords":["flag"]},{"id":":flag_belarus:","symbol":"🇧🇾","group":"flags","keywords":["flag"]},{"id":":flag_belize:","symbol":"🇧🇿","group":"flags","keywords":["flag"]},{"id":":flag_canada:","symbol":"🇨🇦","group":"flags","keywords":["flag"]},{"id":":flag_cocos_(keeling)_islands:","symbol":"🇨🇨","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_kinshasa:","symbol":"🇨🇩","group":"flags","keywords":["flag"]},{"id":":flag_central_african_republic:","symbol":"🇨🇫","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_brazzaville:","symbol":"🇨🇬","group":"flags","keywords":["flag"]},{"id":":flag_switzerland:","symbol":"🇨🇭","group":"flags","keywords":["flag"]},{"id":":flag_côte_d’ivoire:","symbol":"🇨🇮","group":"flags","keywords":["flag"]},{"id":":flag_cook_islands:","symbol":"🇨🇰","group":"flags","keywords":["flag"]},{"id":":flag_chile:","symbol":"🇨🇱","group":"flags","keywords":["flag"]},{"id":":flag_cameroon:","symbol":"🇨🇲","group":"flags","keywords":["flag"]},{"id":":flag_china:","symbol":"🇨🇳","group":"flags","keywords":["flag"]},{"id":":flag_colombia:","symbol":"🇨🇴","group":"flags","keywords":["flag"]},{"id":":flag_clipperton_island:","symbol":"🇨🇵","group":"flags","keywords":["flag"]},{"id":":flag_costa_rica:","symbol":"🇨🇷","group":"flags","keywords":["flag"]},{"id":":flag_cuba:","symbol":"🇨🇺","group":"flags","keywords":["flag"]},{"id":":flag_cape_verde:","symbol":"🇨🇻","group":"flags","keywords":["flag"]},{"id":":flag_curaçao:","symbol":"🇨🇼","group":"flags","keywords":["flag"]},{"id":":flag_christmas_island:","symbol":"🇨🇽","group":"flags","keywords":["flag"]},{"id":":flag_cyprus:","symbol":"🇨🇾","group":"flags","keywords":["flag"]},{"id":":flag_czechia:","symbol":"🇨🇿","group":"flags","keywords":["flag"]},{"id":":flag_germany:","symbol":"🇩🇪","group":"flags","keywords":["flag"]},{"id":":flag_diego_garcia:","symbol":"🇩🇬","group":"flags","keywords":["flag"]},{"id":":flag_djibouti:","symbol":"🇩🇯","group":"flags","keywords":["flag"]},{"id":":flag_denmark:","symbol":"🇩🇰","group":"flags","keywords":["flag"]},{"id":":flag_dominica:","symbol":"🇩🇲","group":"flags","keywords":["flag"]},{"id":":flag_dominican_republic:","symbol":"🇩🇴","group":"flags","keywords":["flag"]},{"id":":flag_algeria:","symbol":"🇩🇿","group":"flags","keywords":["flag"]},{"id":":flag_ceuta_&_melilla:","symbol":"🇪🇦","group":"flags","keywords":["flag"]},{"id":":flag_ecuador:","symbol":"🇪🇨","group":"flags","keywords":["flag"]},{"id":":flag_estonia:","symbol":"🇪🇪","group":"flags","keywords":["flag"]},{"id":":flag_egypt:","symbol":"🇪🇬","group":"flags","keywords":["flag"]},{"id":":flag_western_sahara:","symbol":"🇪🇭","group":"flags","keywords":["flag"]},{"id":":flag_eritrea:","symbol":"🇪🇷","group":"flags","keywords":["flag"]},{"id":":flag_spain:","symbol":"🇪🇸","group":"flags","keywords":["flag"]},{"id":":flag_ethiopia:","symbol":"🇪🇹","group":"flags","keywords":["flag"]},{"id":":flag_european_union:","symbol":"🇪🇺","group":"flags","keywords":["flag"]},{"id":":flag_finland:","symbol":"🇫🇮","group":"flags","keywords":["flag"]},{"id":":flag_fiji:","symbol":"🇫🇯","group":"flags","keywords":["flag"]},{"id":":flag_falkland_islands:","symbol":"🇫🇰","group":"flags","keywords":["flag"]},{"id":":flag_micronesia:","symbol":"🇫🇲","group":"flags","keywords":["flag"]},{"id":":flag_faroe_islands:","symbol":"🇫🇴","group":"flags","keywords":["flag"]},{"id":":flag_france:","symbol":"🇫🇷","group":"flags","keywords":["flag"]},{"id":":flag_gabon:","symbol":"🇬🇦","group":"flags","keywords":["flag"]},{"id":":flag_united_kingdom:","symbol":"🇬🇧","group":"flags","keywords":["flag"]},{"id":":flag_grenada:","symbol":"🇬🇩","group":"flags","keywords":["flag"]},{"id":":flag_georgia:","symbol":"🇬🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_guiana:","symbol":"🇬🇫","group":"flags","keywords":["flag"]},{"id":":flag_guernsey:","symbol":"🇬🇬","group":"flags","keywords":["flag"]},{"id":":flag_ghana:","symbol":"🇬🇭","group":"flags","keywords":["flag"]},{"id":":flag_gibraltar:","symbol":"🇬🇮","group":"flags","keywords":["flag"]},{"id":":flag_greenland:","symbol":"🇬🇱","group":"flags","keywords":["flag"]},{"id":":flag_gambia:","symbol":"🇬🇲","group":"flags","keywords":["flag"]},{"id":":flag_guinea:","symbol":"🇬🇳","group":"flags","keywords":["flag"]},{"id":":flag_guadeloupe:","symbol":"🇬🇵","group":"flags","keywords":["flag"]},{"id":":flag_equatorial_guinea:","symbol":"🇬🇶","group":"flags","keywords":["flag"]},{"id":":flag_greece:","symbol":"🇬🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_georgia_&_south_sandwich_islands:","symbol":"🇬🇸","group":"flags","keywords":["flag"]},{"id":":flag_guatemala:","symbol":"🇬🇹","group":"flags","keywords":["flag"]},{"id":":flag_guam:","symbol":"🇬🇺","group":"flags","keywords":["flag"]},{"id":":flag_guinea-bissau:","symbol":"🇬🇼","group":"flags","keywords":["flag"]},{"id":":flag_guyana:","symbol":"🇬🇾","group":"flags","keywords":["flag"]},{"id":":flag_hong_kong_sar_china:","symbol":"🇭🇰","group":"flags","keywords":["flag"]},{"id":":flag_heard_&_mcdonald_islands:","symbol":"🇭🇲","group":"flags","keywords":["flag"]},{"id":":flag_honduras:","symbol":"🇭🇳","group":"flags","keywords":["flag"]},{"id":":flag_croatia:","symbol":"🇭🇷","group":"flags","keywords":["flag"]},{"id":":flag_haiti:","symbol":"🇭🇹","group":"flags","keywords":["flag"]},{"id":":flag_hungary:","symbol":"🇭🇺","group":"flags","keywords":["flag"]},{"id":":flag_canary_islands:","symbol":"🇮🇨","group":"flags","keywords":["flag"]},{"id":":flag_indonesia:","symbol":"🇮🇩","group":"flags","keywords":["flag"]},{"id":":flag_ireland:","symbol":"🇮🇪","group":"flags","keywords":["flag"]},{"id":":flag_israel:","symbol":"🇮🇱","group":"flags","keywords":["flag"]},{"id":":flag_isle_of_man:","symbol":"🇮🇲","group":"flags","keywords":["flag"]},{"id":":flag_india:","symbol":"🇮🇳","group":"flags","keywords":["flag"]},{"id":":flag_british_indian_ocean_territory:","symbol":"🇮🇴","group":"flags","keywords":["flag"]},{"id":":flag_iraq:","symbol":"🇮🇶","group":"flags","keywords":["flag"]},{"id":":flag_iran:","symbol":"🇮🇷","group":"flags","keywords":["flag"]},{"id":":flag_iceland:","symbol":"🇮🇸","group":"flags","keywords":["flag"]},{"id":":flag_italy:","symbol":"🇮🇹","group":"flags","keywords":["flag"]},{"id":":flag_jersey:","symbol":"🇯🇪","group":"flags","keywords":["flag"]},{"id":":flag_jamaica:","symbol":"🇯🇲","group":"flags","keywords":["flag"]},{"id":":flag_jordan:","symbol":"🇯🇴","group":"flags","keywords":["flag"]},{"id":":flag_japan:","symbol":"🇯🇵","group":"flags","keywords":["flag"]},{"id":":flag_kenya:","symbol":"🇰🇪","group":"flags","keywords":["flag"]},{"id":":flag_kyrgyzstan:","symbol":"🇰🇬","group":"flags","keywords":["flag"]},{"id":":flag_cambodia:","symbol":"🇰🇭","group":"flags","keywords":["flag"]},{"id":":flag_kiribati:","symbol":"🇰🇮","group":"flags","keywords":["flag"]},{"id":":flag_comoros:","symbol":"🇰🇲","group":"flags","keywords":["flag"]},{"id":":flag_st._kitts_&_nevis:","symbol":"🇰🇳","group":"flags","keywords":["flag"]},{"id":":flag_north_korea:","symbol":"🇰🇵","group":"flags","keywords":["flag"]},{"id":":flag_south_korea:","symbol":"🇰🇷","group":"flags","keywords":["flag"]},{"id":":flag_kuwait:","symbol":"🇰🇼","group":"flags","keywords":["flag"]},{"id":":flag_cayman_islands:","symbol":"🇰🇾","group":"flags","keywords":["flag"]},{"id":":flag_kazakhstan:","symbol":"🇰🇿","group":"flags","keywords":["flag"]},{"id":":flag_laos:","symbol":"🇱🇦","group":"flags","keywords":["flag"]},{"id":":flag_lebanon:","symbol":"🇱🇧","group":"flags","keywords":["flag"]},{"id":":flag_st._lucia:","symbol":"🇱🇨","group":"flags","keywords":["flag"]},{"id":":flag_liechtenstein:","symbol":"🇱🇮","group":"flags","keywords":["flag"]},{"id":":flag_sri_lanka:","symbol":"🇱🇰","group":"flags","keywords":["flag"]},{"id":":flag_liberia:","symbol":"🇱🇷","group":"flags","keywords":["flag"]},{"id":":flag_lesotho:","symbol":"🇱🇸","group":"flags","keywords":["flag"]},{"id":":flag_lithuania:","symbol":"🇱🇹","group":"flags","keywords":["flag"]},{"id":":flag_luxembourg:","symbol":"🇱🇺","group":"flags","keywords":["flag"]},{"id":":flag_latvia:","symbol":"🇱🇻","group":"flags","keywords":["flag"]},{"id":":flag_libya:","symbol":"🇱🇾","group":"flags","keywords":["flag"]},{"id":":flag_morocco:","symbol":"🇲🇦","group":"flags","keywords":["flag"]},{"id":":flag_monaco:","symbol":"🇲🇨","group":"flags","keywords":["flag"]},{"id":":flag_moldova:","symbol":"🇲🇩","group":"flags","keywords":["flag"]},{"id":":flag_montenegro:","symbol":"🇲🇪","group":"flags","keywords":["flag"]},{"id":":flag_st._martin:","symbol":"🇲🇫","group":"flags","keywords":["flag"]},{"id":":flag_madagascar:","symbol":"🇲🇬","group":"flags","keywords":["flag"]},{"id":":flag_marshall_islands:","symbol":"🇲🇭","group":"flags","keywords":["flag"]},{"id":":flag_macedonia:","symbol":"🇲🇰","group":"flags","keywords":["flag"]},{"id":":flag_mali:","symbol":"🇲🇱","group":"flags","keywords":["flag"]},{"id":":flag_myanmar_(burma):","symbol":"🇲🇲","group":"flags","keywords":["flag"]},{"id":":flag_mongolia:","symbol":"🇲🇳","group":"flags","keywords":["flag"]},{"id":":flag_macau_sar_china:","symbol":"🇲🇴","group":"flags","keywords":["flag"]},{"id":":flag_northern_mariana_islands:","symbol":"🇲🇵","group":"flags","keywords":["flag"]},{"id":":flag_martinique:","symbol":"🇲🇶","group":"flags","keywords":["flag"]},{"id":":flag_mauritania:","symbol":"🇲🇷","group":"flags","keywords":["flag"]},{"id":":flag_montserrat:","symbol":"🇲🇸","group":"flags","keywords":["flag"]},{"id":":flag_malta:","symbol":"🇲🇹","group":"flags","keywords":["flag"]},{"id":":flag_mauritius:","symbol":"🇲🇺","group":"flags","keywords":["flag"]},{"id":":flag_maldives:","symbol":"🇲🇻","group":"flags","keywords":["flag"]},{"id":":flag_malawi:","symbol":"🇲🇼","group":"flags","keywords":["flag"]},{"id":":flag_mexico:","symbol":"🇲🇽","group":"flags","keywords":["flag"]},{"id":":flag_malaysia:","symbol":"🇲🇾","group":"flags","keywords":["flag"]},{"id":":flag_mozambique:","symbol":"🇲🇿","group":"flags","keywords":["flag"]},{"id":":flag_namibia:","symbol":"🇳🇦","group":"flags","keywords":["flag"]},{"id":":flag_new_caledonia:","symbol":"🇳🇨","group":"flags","keywords":["flag"]},{"id":":flag_niger:","symbol":"🇳🇪","group":"flags","keywords":["flag"]},{"id":":flag_norfolk_island:","symbol":"🇳🇫","group":"flags","keywords":["flag"]},{"id":":flag_nigeria:","symbol":"🇳🇬","group":"flags","keywords":["flag"]},{"id":":flag_nicaragua:","symbol":"🇳🇮","group":"flags","keywords":["flag"]},{"id":":flag_netherlands:","symbol":"🇳🇱","group":"flags","keywords":["flag"]},{"id":":flag_norway:","symbol":"🇳🇴","group":"flags","keywords":["flag"]},{"id":":flag_nepal:","symbol":"🇳🇵","group":"flags","keywords":["flag"]},{"id":":flag_nauru:","symbol":"🇳🇷","group":"flags","keywords":["flag"]},{"id":":flag_niue:","symbol":"🇳🇺","group":"flags","keywords":["flag"]},{"id":":flag_new_zealand:","symbol":"🇳🇿","group":"flags","keywords":["flag"]},{"id":":flag_oman:","symbol":"🇴🇲","group":"flags","keywords":["flag"]},{"id":":flag_panama:","symbol":"🇵🇦","group":"flags","keywords":["flag"]},{"id":":flag_peru:","symbol":"🇵🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_polynesia:","symbol":"🇵🇫","group":"flags","keywords":["flag"]},{"id":":flag_papua_new_guinea:","symbol":"🇵🇬","group":"flags","keywords":["flag"]},{"id":":flag_philippines:","symbol":"🇵🇭","group":"flags","keywords":["flag"]},{"id":":flag_pakistan:","symbol":"🇵🇰","group":"flags","keywords":["flag"]},{"id":":flag_poland:","symbol":"🇵🇱","group":"flags","keywords":["flag"]},{"id":":flag_st._pierre_&_miquelon:","symbol":"🇵🇲","group":"flags","keywords":["flag"]},{"id":":flag_pitcairn_islands:","symbol":"🇵🇳","group":"flags","keywords":["flag"]},{"id":":flag_puerto_rico:","symbol":"🇵🇷","group":"flags","keywords":["flag"]},{"id":":flag_palestinian_territories:","symbol":"🇵🇸","group":"flags","keywords":["flag"]},{"id":":flag_portugal:","symbol":"🇵🇹","group":"flags","keywords":["flag"]},{"id":":flag_palau:","symbol":"🇵🇼","group":"flags","keywords":["flag"]},{"id":":flag_paraguay:","symbol":"🇵🇾","group":"flags","keywords":["flag"]},{"id":":flag_qatar:","symbol":"🇶🇦","group":"flags","keywords":["flag"]},{"id":":flag_réunion:","symbol":"🇷🇪","group":"flags","keywords":["flag"]},{"id":":flag_romania:","symbol":"🇷🇴","group":"flags","keywords":["flag"]},{"id":":flag_serbia:","symbol":"🇷🇸","group":"flags","keywords":["flag"]},{"id":":flag_russia:","symbol":"🇷🇺","group":"flags","keywords":["flag"]},{"id":":flag_rwanda:","symbol":"🇷🇼","group":"flags","keywords":["flag"]},{"id":":flag_saudi_arabia:","symbol":"🇸🇦","group":"flags","keywords":["flag"]},{"id":":flag_solomon_islands:","symbol":"🇸🇧","group":"flags","keywords":["flag"]},{"id":":flag_seychelles:","symbol":"🇸🇨","group":"flags","keywords":["flag"]},{"id":":flag_sudan:","symbol":"🇸🇩","group":"flags","keywords":["flag"]},{"id":":flag_sweden:","symbol":"🇸🇪","group":"flags","keywords":["flag"]},{"id":":flag_singapore:","symbol":"🇸🇬","group":"flags","keywords":["flag"]},{"id":":flag_st._helena:","symbol":"🇸🇭","group":"flags","keywords":["flag"]},{"id":":flag_slovenia:","symbol":"🇸🇮","group":"flags","keywords":["flag"]},{"id":":flag_svalbard_&_jan_mayen:","symbol":"🇸🇯","group":"flags","keywords":["flag"]},{"id":":flag_slovakia:","symbol":"🇸🇰","group":"flags","keywords":["flag"]},{"id":":flag_sierra_leone:","symbol":"🇸🇱","group":"flags","keywords":["flag"]},{"id":":flag_san_marino:","symbol":"🇸🇲","group":"flags","keywords":["flag"]},{"id":":flag_senegal:","symbol":"🇸🇳","group":"flags","keywords":["flag"]},{"id":":flag_somalia:","symbol":"🇸🇴","group":"flags","keywords":["flag"]},{"id":":flag_suriname:","symbol":"🇸🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_sudan:","symbol":"🇸🇸","group":"flags","keywords":["flag"]},{"id":":flag_são_tomé_&_príncipe:","symbol":"🇸🇹","group":"flags","keywords":["flag"]},{"id":":flag_el_salvador:","symbol":"🇸🇻","group":"flags","keywords":["flag"]},{"id":":flag_sint_maarten:","symbol":"🇸🇽","group":"flags","keywords":["flag"]},{"id":":flag_syria:","symbol":"🇸🇾","group":"flags","keywords":["flag"]},{"id":":flag_swaziland:","symbol":"🇸🇿","group":"flags","keywords":["flag"]},{"id":":flag_tristan_da_cunha:","symbol":"🇹🇦","group":"flags","keywords":["flag"]},{"id":":flag_turks_&_caicos_islands:","symbol":"🇹🇨","group":"flags","keywords":["flag"]},{"id":":flag_chad:","symbol":"🇹🇩","group":"flags","keywords":["flag"]},{"id":":flag_french_southern_territories:","symbol":"🇹🇫","group":"flags","keywords":["flag"]},{"id":":flag_togo:","symbol":"🇹🇬","group":"flags","keywords":["flag"]},{"id":":flag_thailand:","symbol":"🇹🇭","group":"flags","keywords":["flag"]},{"id":":flag_tajikistan:","symbol":"🇹🇯","group":"flags","keywords":["flag"]},{"id":":flag_tokelau:","symbol":"🇹🇰","group":"flags","keywords":["flag"]},{"id":":flag_timor-leste:","symbol":"🇹🇱","group":"flags","keywords":["flag"]},{"id":":flag_turkmenistan:","symbol":"🇹🇲","group":"flags","keywords":["flag"]},{"id":":flag_tunisia:","symbol":"🇹🇳","group":"flags","keywords":["flag"]},{"id":":flag_tonga:","symbol":"🇹🇴","group":"flags","keywords":["flag"]},{"id":":flag_turkey:","symbol":"🇹🇷","group":"flags","keywords":["flag"]},{"id":":flag_trinidad_&_tobago:","symbol":"🇹🇹","group":"flags","keywords":["flag"]},{"id":":flag_tuvalu:","symbol":"🇹🇻","group":"flags","keywords":["flag"]},{"id":":flag_taiwan:","symbol":"🇹🇼","group":"flags","keywords":["flag"]},{"id":":flag_tanzania:","symbol":"🇹🇿","group":"flags","keywords":["flag"]},{"id":":flag_ukraine:","symbol":"🇺🇦","group":"flags","keywords":["flag"]},{"id":":flag_uganda:","symbol":"🇺🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._outlying_islands:","symbol":"🇺🇲","group":"flags","keywords":["flag"]},{"id":":flag_united_nations:","symbol":"🇺🇳","group":"flags","keywords":["flag"]},{"id":":flag_united_states:","symbol":"🇺🇸","group":"flags","keywords":["flag"]},{"id":":flag_uruguay:","symbol":"🇺🇾","group":"flags","keywords":["flag"]},{"id":":flag_uzbekistan:","symbol":"🇺🇿","group":"flags","keywords":["flag"]},{"id":":flag_vatican_city:","symbol":"🇻🇦","group":"flags","keywords":["flag"]},{"id":":flag_st._vincent_&_grenadines:","symbol":"🇻🇨","group":"flags","keywords":["flag"]},{"id":":flag_venezuela:","symbol":"🇻🇪","group":"flags","keywords":["flag"]},{"id":":flag_british_virgin_islands:","symbol":"🇻🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._virgin_islands:","symbol":"🇻🇮","group":"flags","keywords":["flag"]},{"id":":flag_vietnam:","symbol":"🇻🇳","group":"flags","keywords":["flag"]},{"id":":flag_vanuatu:","symbol":"🇻🇺","group":"flags","keywords":["flag"]},{"id":":flag_wallis_&_futuna:","symbol":"🇼🇫","group":"flags","keywords":["flag"]},{"id":":flag_samoa:","symbol":"🇼🇸","group":"flags","keywords":["flag"]},{"id":":flag_kosovo:","symbol":"🇽🇰","group":"flags","keywords":["flag"]},{"id":":flag_yemen:","symbol":"🇾🇪","group":"flags","keywords":["flag"]},{"id":":flag_mayotte:","symbol":"🇾🇹","group":"flags","keywords":["flag"]},{"id":":flag_south_africa:","symbol":"🇿🇦","group":"flags","keywords":["flag"]},{"id":":flag_zambia:","symbol":"🇿🇲","group":"flags","keywords":["flag"]},{"id":":flag_zimbabwe:","symbol":"🇿🇼","group":"flags","keywords":["flag"]},{"id":":flag_england:","symbol":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","group":"flags","keywords":["flag"]},{"id":":flag_scotland:","symbol":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","group":"flags","keywords":["flag"]},{"id":":flag_wales:","symbol":"🏴󠁧󠁢󠁷󠁬󠁳󠁿","group":"flags","keywords":["flag"]}]');const WS={autosave:{waitingTime:5e3,save:e=>async function(e){const t=Date.now(),o=e.config.get(FS),i=await e.getData();i||console.warn("Trying to save snapshot but data is not defined.");const n={timestamp:t,hash:RS(i),content:i},s=OS(o),r=s?.items||[];r.find((e=>n.hash===e.hash))||r.push(n);try{const e=SS.compress(JSON.stringify({items:r,updatedAt:t}));localStorage.setItem(o,e)}catch(t){Np(e,"notifications").addError("Failed to save CKEditor data to localStorage: "+t.toString())}return!0}(e)},heading:{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h1",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h2",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h3",title:"Heading 3",class:"ck-heading_heading3"},{model:"heading4",view:"h4",title:"Heading 4",class:"ck-heading_heading4"},{model:"heading5",view:"h5",title:"Heading 5",class:"ck-heading_heading5"}]},toolbar:{},OPMacroEmbeddedTable:{toolbar:["opEditEmbeddedTableQuery"]},OPMacroWpButton:{toolbar:["opEditWpMacroButton"]},OPWikiIncludePage:{toolbar:["opEditWikiIncludeMacroButton"]},OPCodeBlock:{toolbar:["opEditCodeBlock"]},OPChildPages:{toolbar:["opEditChildPagesMacroButton"]},image:{insert:{type:"inline"},resizeUnit:"px",resizeOptions:[{name:"imageResize:original",value:null,icon:"original"},{name:"imageResize:50",value:"50",icon:"medium"},{name:"imageResize:75",value:"75",icon:"large"}],toolbar:["toggleImageCaption","imageTextAlternative","|","imageStyle:inline","imageStyle:block","|","imageResize:original"]},table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties","tableCellProperties"]},mention:{feeds:[{marker:"@",feed:function(e){const t=this;let o=Fp(t);if(o&&"Activity::Comment"===o._type){const e=o.$embedded.workPackage;e&&(o=e)}if(!o||"WorkPackage"!==o._type)return[];if(t.config.get("disabledMentions").includes("user"))return[];const i=Bp(t).api.v3.principals(o,e),n=Mp(t),s=window.OpenProject.urlRoot;return new Promise(((e,t)=>{_k(i,{responseKind:"json",query:{select:"elements/_type,elements/id,elements/name"}}).then((e=>e.json)).then((t=>{e(_.uniqBy(t._embedded.elements,(e=>e.id)).map((e=>{const t=e._type.toLowerCase(),o=`@${e.name}`,i=`@${e.id}`,r=n.services.apiV3Service[`${t}s`].segment;return{type:t,id:i,text:o,link:`${s}/${r}/${e.id}`,dataId:e.id,name:e.name}})))})).catch((e=>{console.error("Error fetching user mentions:",e),t(e)}))}))},itemRenderer:qS,minimumCharacters:0},{marker:"###",feed:$S("###"),itemRenderer:qS,minimumCharacters:1},{marker:"##",feed:$S("##"),itemRenderer:qS,minimumCharacters:1},{marker:"#",feed:$S("#"),itemRenderer:qS,minimumCharacters:1},{marker:":",feed:function(e){return new Promise(((t,o)=>{const i=HS.filter((t=>function(e,t,o){if(t.includes(e))return!0;if(0!==o.length)for(let t=0;t({id:e.id,name:e.id.replace(/:/g,""),text:e.symbol,type:"emoji"})));t(i)}))},itemRenderer:function(e){const t=document.createElement("span");return t.classList.add("mention-list-item"),t.textContent=`${e.text} ${e.name}`,t},minimumCharacters:1}]},language:"en",licenseKey:"GPL"};function US(e){return(t,o)=>{const i=o.openProject.context;o.removePlugins=o.removePlugins||[];const n=i.resource;if(n&&n.canAddAttachments||o.removePlugins.push(...zS.map((e=>e.pluginName))),!1===i.macros&&(o.openProject.disableAllMacros=!0,o.removePlugins.push(...LS.map((e=>e.pluginName)))),Array.isArray(i.macros)){const e=LS.filter((e=>-1===i.macros.indexOf(e.pluginName)));o.removePlugins.push(...e)}o.disabledMentions=[];const s=i.disabledMentions;return Array.isArray(s)&&(o.disabledMentions=s),e.create(t,o).then((e=>e))}}class KS extends dg{}class GS extends dg{}window.OPConstrainedEditor=KS,window.OPClassicEditor=GS,window.OPEditorWatchdog=cc,GS.createCustomized=US(GS),GS.builtinPlugins=jS,GS.defaultConfig=Object.assign({},WS),GS.defaultConfig.toolbar={items:["heading","|","bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","insertTable","macroList","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","|","pageBreak","|","preview","opShowSource"]},KS.createCustomized=US(KS),KS.builtinPlugins=jS,KS.defaultConfig=Object.assign({},WS),KS.defaultConfig.toolbar={items:["bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","preview","opShowSource"]}})(),i=i.default})())); //# sourceMappingURL=ckeditor.js.map \ No newline at end of file diff --git a/frontend/src/vendor/ckeditor/ckeditor.js.map b/frontend/src/vendor/ckeditor/ckeditor.js.map index d420c5ed6efd..4a5d23098bf1 100644 --- a/frontend/src/vendor/ckeditor/ckeditor.js.map +++ b/frontend/src/vendor/ckeditor/ckeditor.js.map @@ -1 +1 @@ -{"version":3,"file":"ckeditor.js","mappings":"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BACA,aACA,QACA,YACA,YACA,aACA,YACA,QACA,iBACA,WACA,UACA,OACA,WACA,WACA,gBACA,WACA,YACA,WACA,YACA,cACA,iBACA,aACA,aACA,UACA,aACA,eACA,gBACA,gBACA,gBACA,gBACA,aACA,WACA,cACA,UACA,UACA,aACA,YACA,cACA,cACA,YACA,aACA,OACA,YACA,cACA,OACA,WACA,UACA,YACA,SACA,QACA,QACA,WACA,gBACA,YACA,eACA,YACA,aACA,YACA,uBACA,YACA,aACA,YACA,YACA,cACA,gBACA,eACA,iBACA,iBACA,iBACA,cACA,YACA,QACA,UACA,mBACA,aACA,eACA,eACA,iBACA,kBACA,oBACA,kBACA,kBACA,eACA,YACA,YACA,WACA,cACA,UACA,YACA,YACA,SACA,gBACA,YACA,gBACA,gBACA,aACA,YACA,OACA,OACA,OACA,aACA,YACA,YACA,cACA,SACA,aACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,OACA,cACA,YACA,MACA,UACA,SACA,YACA,SACA,QACA,aACA,cAEA,eACA,gBACA,eACA,aACA,aACA,kBACA,eACA,aACA,cACA,WACA,YACA,gBACA,iBACA,kBACA,sBACA,iBACA,WACA,OACA,WACA,YACA,mBACA,aACA,kBACA,oBACA,eACA,SACA,cACA,aAEA,gBAEA,eACA,gBAcA,SAASs/F,GAAkB/2E,GAE3B,OAAIA,EAAO0G,WAAW,KACX8vE,GAAiBzvE,KAAK/G,GAE7BA,EAAO0G,WAAW,OACX+vE,GAAiB1vE,KAAK/G,IAAW02E,GAAkB3vE,KAAK/G,GAE/DA,EAAO0G,WAAW,OACXiwE,GAAiB5vE,KAAK/G,IAAW42E,GAAkB7vE,KAAK/G,GAG5D82E,GAAY//F,IAAIipB,EAAOrkB,cAClC,CACA,MAAMq7F,GAAkB,CACpB,OACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,UAIA,SAASC,GAAiBj3E,GAC1B,OAAOg3E,GAAgB33E,SAASW,EACpC,CACA,MAAMk3E,GAAe,gFAGjB,SAA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CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAA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AAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,C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","sources":["webpack://OPEditor/webpack/universalModuleDefinition","webpack://OPEditor/./node_modules/markdown-it-task-lists/index.js","webpack://OPEditor/./node_modules/lz-string/libs/lz-string.js","webpack://OPEditor/webpack/bootstrap","webpack://OPEditor/webpack/runtime/compat get default export","webpack://OPEditor/webpack/runtime/define property getters","webpack://OPEditor/webpack/runtime/hasOwnProperty shorthand","webpack://OPEditor/webpack/runtime/make namespace object","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isObject.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isString.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/tags.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/cloneDeepWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isObjectLike.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isElement.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isFunction.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/cloneDeep.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isLength.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/mergeWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/object/clone.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/function/noop.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/merge.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/dist/index.js","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/toKey.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/toString.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/toPath.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/get.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/assignValue.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/isKey.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/updateWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/set.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/toFinite.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/toNumber.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/times.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/toInteger.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/keysIn.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isBuffer.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/assignIn.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/function/debounce.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/function/debounce.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/function/after.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isEqualWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isEqualWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/predicate/isEqual.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/clone.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isArray.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/dist/index.js","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/function/throttle.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-icons/dist/index.js","webpack://OPEditor/./node_modules/color-parse/node_modules/color-name/index.js","webpack://OPEditor/./node_modules/color-parse/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/node_modules/color-name/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/node_modules/color-convert/conversions.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/node_modules/color-convert/route.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/node_modules/color-convert/index.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/math.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/convert.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/compare.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/dom.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/slider.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/hue.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/saturation.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/styles/color-picker.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/color-picker.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/styles/hue.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/styles/saturation.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/entrypoints/hex.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/dist/index.js","webpack://OPEditor/./src/plugins/op-macro-toc-plugin.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/utils.js","webpack://OPEditor/./src/plugins/op-context/op-context.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/embedded-table-editing.js","webpack://OPEditor/./src/helpers/create-toolbar-edit-button.js","webpack://OPEditor/./src/icons/edit.svg","webpack://OPEditor/./src/helpers/create-toolbar.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/embedded-table-toolbar.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/utils.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-upload/dist/index.js","webpack://OPEditor/./src/plugins/op-upload-resource-adapter.js","webpack://OPEditor/./node_modules/es-toolkit/dist/function/identity.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isMatchWith.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/isMatch.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/matches.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/object/cloneDeep.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/has.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/util/iteratee.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/predicate/matchesProperty.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/property.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/object/mapValues.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/object/mapValues.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/dist/index.js","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/function/identity.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/dist/index.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/utils.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/op-macro-child-pages-editing.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/op-macro-child-pages-toolbar.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-select-all/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-adapter-ckfinder/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-autoformat/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/dist/index.js","webpack://OPEditor/./node_modules/es-toolkit/dist/compat/string/upperFirst.mjs","webpack://OPEditor/./node_modules/es-toolkit/dist/string/upperFirst.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-font/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/dist/index.js","webpack://OPEditor/./src/icons/code-block.svg","webpack://OPEditor/./src/plugins/code-block/widget.js","webpack://OPEditor/./src/plugins/code-block/click-observer.js","webpack://OPEditor/./src/plugins/code-block/code-block-editing.js","webpack://OPEditor/./src/plugins/code-block/converters.js","webpack://OPEditor/./src/plugins/code-block/code-block-toolbar.js","webpack://OPEditor/./src/helpers/button-disabler.js","webpack://OPEditor/./node_modules/@rails/request.js/src/fetch_response.js","webpack://OPEditor/./node_modules/@rails/request.js/src/request_interceptor.js","webpack://OPEditor/./node_modules/@rails/request.js/src/lib/utils.js","webpack://OPEditor/./node_modules/@rails/request.js/src/fetch_request.js","webpack://OPEditor/./node_modules/@rails/request.js/src/verbs.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/dist/index.js","webpack://OPEditor/./node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.js","webpack://OPEditor/./node_modules/turndown/lib/turndown.browser.es.js","webpack://OPEditor/./src/commonmark/utils/preprocessor.js","webpack://OPEditor/./src/commonmark/utils/page-breaks.js","webpack://OPEditor/./node_modules/mdurl/lib/decode.mjs","webpack://OPEditor/./node_modules/mdurl/lib/encode.mjs","webpack://OPEditor/./node_modules/mdurl/lib/format.mjs","webpack://OPEditor/./node_modules/mdurl/lib/parse.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/P/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/S/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/properties/Any/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/Cc/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/Cf/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/Z/regex.mjs","webpack://OPEditor/./node_modules/entities/lib/esm/generated/decode-data-html.js","webpack://OPEditor/./node_modules/entities/lib/esm/generated/decode-data-xml.js","webpack://OPEditor/./node_modules/entities/lib/esm/decode_codepoint.js","webpack://OPEditor/./node_modules/entities/lib/esm/decode.js","webpack://OPEditor/./node_modules/entities/lib/esm/generated/encode-html.js","webpack://OPEditor/./node_modules/entities/lib/esm/escape.js","webpack://OPEditor/./node_modules/entities/lib/esm/index.js","webpack://OPEditor/./node_modules/markdown-it/lib/common/utils.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/helpers/parse_link_label.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/helpers/parse_link_title.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/renderer.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/ruler.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/token.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/state_core.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/normalize.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/linkify.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/replacements.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/smartquotes.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/parser_core.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/text_join.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/state_block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/table.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/list.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/common/html_blocks.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/common/html_re.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/html_block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/parser_block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/code.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/fence.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/blockquote.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/hr.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/reference.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/heading.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/lheading.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/paragraph.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/state_inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/text.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/linkify.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/escape.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/emphasis.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/autolink.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/entity.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/parser_inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/newline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/backticks.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/link.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/image.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/html_inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","webpack://OPEditor/./node_modules/linkify-it/index.mjs","webpack://OPEditor/./node_modules/linkify-it/lib/re.mjs","webpack://OPEditor/./node_modules/punycode.js/punycode.es6.js","webpack://OPEditor/./node_modules/markdown-it/lib/index.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/presets/default.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/presets/zero.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/presets/commonmark.mjs","webpack://OPEditor/./src/commonmark/commonmarkdataprocessor.js","webpack://OPEditor/./src/commonmark/utils/fix-tasklist-whitespaces.js","webpack://OPEditor/./src/commonmark/utils/fix-breaks.js","webpack://OPEditor/./src/commonmark/utils/hoist-task-list-checkboxes.js","webpack://OPEditor/./src/icons/source.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/dist/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-autosave/dist/index.js","webpack://OPEditor/./src/plugins/op-content-revisions/utils.js","webpack://OPEditor/./src/plugins/op-content-revisions/storage.js","webpack://OPEditor/./src/plugins/op-content-revisions/ui.js","webpack://OPEditor/./src/icons/revisions.svg","webpack://OPEditor/./src/plugins/op-content-revisions/command.js","webpack://OPEditor/./src/plugins/op-content-revisions/op-content-revisions.js","webpack://OPEditor/./src/plugins/op-macro-wp-quickinfo/op-macro-wp-quickinfo-plugin.js","webpack://OPEditor/./src/op-plugins.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/embedded-table-plugin.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/op-macro-wp-button-plugin.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/op-macro-child-pages-plugin.js","webpack://OPEditor/./src/plugins/op-upload-plugin.js","webpack://OPEditor/./src/plugins/op-attachment-listener-plugin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-essentials/dist/index.js","webpack://OPEditor/./src/plugins/op-image-attachment-lookup/op-image-attachment-lookup-plugin.js","webpack://OPEditor/./src/mentions/mentions-caster.js","webpack://OPEditor/./src/plugins/op-help-link-plugin/op-help-link-plugin.js","webpack://OPEditor/./src/icons/help.svg","webpack://OPEditor/./src/plugins/op-preview.plugin.js","webpack://OPEditor/./src/icons/preview.svg","webpack://OPEditor/./src/plugins/op-source-code.plugin.js","webpack://OPEditor/./src/icons/wysiwyg.svg","webpack://OPEditor/./src/plugins/code-block/code-block.js","webpack://OPEditor/./src/commonmark/commonmark.js","webpack://OPEditor/./src/plugins/op-macro-list-plugin.js","webpack://OPEditor/./src/plugins/op-custom-css-classes-plugin.js","webpack://OPEditor/./src/mentions/work-package-mentions.js","webpack://OPEditor/./src/mentions/mentions-item-renderer.js","webpack://OPEditor/./src/op-ckeditor-config.js","webpack://OPEditor/./src/mentions/user-mentions.js","webpack://OPEditor/./src/mentions/emoji-mentions.js","webpack://OPEditor/./src/op-config-customizer.js","webpack://OPEditor/./src/op-ckeditor.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OPEditor\"] = factory();\n\telse\n\t\troot[\"OPEditor\"] = factory();\n})(self, () => {\nreturn ","// Markdown-it plugin to render GitHub-style task lists; see\n//\n// https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments\n// https://github.com/blog/1825-task-lists-in-all-markdown-documents\n\nvar disableCheckboxes = true;\nvar useLabelWrapper = false;\nvar useLabelAfter = false;\n\nmodule.exports = function(md, options) {\n\tif (options) {\n\t\tdisableCheckboxes = !options.enabled;\n\t\tuseLabelWrapper = !!options.label;\n\t\tuseLabelAfter = !!options.labelAfter;\n\t}\n\n\tmd.core.ruler.after('inline', 'github-task-lists', function(state) {\n\t\tvar tokens = state.tokens;\n\t\tfor (var i = 2; i < tokens.length; i++) {\n\t\t\tif (isTodoItem(tokens, i)) {\n\t\t\t\ttodoify(tokens[i], state.Token);\n\t\t\t\tattrSet(tokens[i-2], 'class', 'task-list-item' + (!disableCheckboxes ? ' enabled' : ''));\n\t\t\t\tattrSet(tokens[parentToken(tokens, i-2)], 'class', 'contains-task-list');\n\t\t\t}\n\t\t}\n\t});\n};\n\nfunction attrSet(token, name, value) {\n\tvar index = token.attrIndex(name);\n\tvar attr = [name, value];\n\n\tif (index < 0) {\n\t\ttoken.attrPush(attr);\n\t} else {\n\t\ttoken.attrs[index] = attr;\n\t}\n}\n\nfunction parentToken(tokens, index) {\n\tvar targetLevel = tokens[index].level - 1;\n\tfor (var i = index - 1; i >= 0; i--) {\n\t\tif (tokens[i].level === targetLevel) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction isTodoItem(tokens, index) {\n\treturn isInline(tokens[index]) &&\n\t isParagraph(tokens[index - 1]) &&\n\t isListItem(tokens[index - 2]) &&\n\t startsWithTodoMarkdown(tokens[index]);\n}\n\nfunction todoify(token, TokenConstructor) {\n\ttoken.children.unshift(makeCheckbox(token, TokenConstructor));\n\ttoken.children[1].content = token.children[1].content.slice(3);\n\ttoken.content = token.content.slice(3);\n\n\tif (useLabelWrapper) {\n\t\tif (useLabelAfter) {\n\t\t\ttoken.children.pop();\n\n\t\t\t// Use large random number as id property of the checkbox.\n\t\t\tvar id = 'task-item-' + Math.ceil(Math.random() * (10000 * 1000) - 1000);\n\t\t\ttoken.children[0].content = token.children[0].content.slice(0, -1) + ' id=\"' + id + '\">';\n\t\t\ttoken.children.push(afterLabel(token.content, id, TokenConstructor));\n\t\t} else {\n\t\t\ttoken.children.unshift(beginLabel(TokenConstructor));\n\t\t\ttoken.children.push(endLabel(TokenConstructor));\n\t\t}\n\t}\n}\n\nfunction makeCheckbox(token, TokenConstructor) {\n\tvar checkbox = new TokenConstructor('html_inline', '', 0);\n\tvar disabledAttr = disableCheckboxes ? ' disabled=\"\" ' : '';\n\tif (token.content.indexOf('[ ] ') === 0) {\n\t\tcheckbox.content = '';\n\t} else if (token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0) {\n\t\tcheckbox.content = '';\n\t}\n\treturn checkbox;\n}\n\n// these next two functions are kind of hacky; probably should really be a\n// true block-level token with .tag=='label'\nfunction beginLabel(TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\treturn token;\n}\n\nfunction afterLabel(content, id, TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\ttoken.attrs = [{for: id}];\n\treturn token;\n}\n\nfunction isInline(token) { return token.type === 'inline'; }\nfunction isParagraph(token) { return token.type === 'paragraph_open'; }\nfunction isListItem(token) { return token.type === 'list_item_open'; }\n\nfunction startsWithTodoMarkdown(token) {\n\t// leading whitespace in a list item is already trimmed off by markdown-it\n\treturn token.content.indexOf('[ ] ') === 0 || token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0;\n}\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function isObject(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexport { isObject };\n","function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n\nexport { isString };\n","function isPlainObject(object) {\n if (typeof object !== 'object') {\n return false;\n }\n if (object == null) {\n return false;\n }\n if (Object.getPrototypeOf(object) === null) {\n return true;\n }\n if (Object.prototype.toString.call(object) !== '[object Object]') {\n const tag = object[Symbol.toStringTag];\n if (tag == null) {\n return false;\n }\n const isTagReadonly = !Object.getOwnPropertyDescriptor(object, Symbol.toStringTag)?.writable;\n if (isTagReadonly) {\n return false;\n }\n return object.toString() === `[object ${tag}]`;\n }\n let proto = object;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(object) === proto;\n}\n\nexport { isPlainObject };\n","function getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexport { getSymbols };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","const regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexport { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = structuredClone(valueToClone);\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n result.constructor = valueToClone.constructor;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWith as cloneDeepWith$1, copyProperties } from '../../object/cloneDeepWith.mjs';\nimport { getTag } from '../_internal/getTag.mjs';\nimport { objectTag, argumentsTag, booleanTag, stringTag, numberTag } from '../_internal/tags.mjs';\n\nfunction cloneDeepWith(obj, customizer) {\n return cloneDeepWith$1(obj, (value, key, object, stack) => {\n const cloned = customizer?.(value, key, object, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (typeof obj !== 'object') {\n return undefined;\n }\n if (getTag(obj) === objectTag && typeof obj.constructor !== 'function') {\n const result = {};\n stack.set(obj, result);\n copyProperties(result, obj, object, stack);\n return result;\n }\n switch (Object.prototype.toString.call(obj)) {\n case numberTag:\n case stringTag:\n case booleanTag: {\n const result = new obj.constructor(obj?.valueOf());\n copyProperties(result, obj);\n return result;\n }\n case argumentsTag: {\n const result = {};\n copyProperties(result, obj);\n result.length = obj.length;\n result[Symbol.iterator] = obj[Symbol.iterator];\n return result;\n }\n default: {\n return undefined;\n }\n }\n });\n}\n\nexport { cloneDeepWith };\n","function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\n\nexport { isObjectLike };\n","import { isObjectLike } from './isObjectLike.mjs';\nimport { isPlainObject } from './isPlainObject.mjs';\n\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport { isElement };\n","function isFunction(value) {\n return typeof value === 'function';\n}\n\nexport { isFunction };\n","import { cloneDeepWith } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWith(obj);\n}\n\nexport { cloneDeep };\n","function isUnsafeProperty(key) {\n return key === '__proto__';\n}\n\nexport { isUnsafeProperty };\n","import { getTag } from '../_internal/getTag.mjs';\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';\n}\n\nexport { isArguments };\n","import { isLength } from '../../predicate/isLength.mjs';\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength(value.length);\n}\n\nexport { isArrayLike };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","import { isTypedArray as isTypedArray$1 } from '../../predicate/isTypedArray.mjs';\n\nfunction isTypedArray(x) {\n return isTypedArray$1(x);\n}\n\nexport { isTypedArray };\n","import { cloneDeep } from './cloneDeep.mjs';\nimport { isUnsafeProperty } from '../../_internal/isUnsafeProperty.mjs';\nimport { clone } from '../../object/clone.mjs';\nimport { isPrimitive } from '../../predicate/isPrimitive.mjs';\nimport { getSymbols } from '../_internal/getSymbols.mjs';\nimport { isArguments } from '../predicate/isArguments.mjs';\nimport { isArrayLikeObject } from '../predicate/isArrayLikeObject.mjs';\nimport { isObjectLike } from '../predicate/isObjectLike.mjs';\nimport { isPlainObject } from '../predicate/isPlainObject.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction mergeWith(object, ...otherArgs) {\n const sources = otherArgs.slice(0, -1);\n const merge = otherArgs[otherArgs.length - 1];\n let result = object;\n for (let i = 0; i < sources.length; i++) {\n const source = sources[i];\n result = mergeWithDeep(result, source, merge, new Map());\n }\n return result;\n}\nfunction mergeWithDeep(target, source, merge, stack) {\n if (isPrimitive(target)) {\n target = Object(target);\n }\n if (source == null || typeof source !== 'object') {\n return target;\n }\n if (stack.has(source)) {\n return clone(stack.get(source));\n }\n stack.set(source, target);\n if (Array.isArray(source)) {\n source = source.slice();\n for (let i = 0; i < source.length; i++) {\n source[i] = source[i] ?? undefined;\n }\n }\n const sourceKeys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < sourceKeys.length; i++) {\n const key = sourceKeys[i];\n if (isUnsafeProperty(key)) {\n continue;\n }\n let sourceValue = source[key];\n let targetValue = target[key];\n if (isArguments(sourceValue)) {\n sourceValue = { ...sourceValue };\n }\n if (isArguments(targetValue)) {\n targetValue = { ...targetValue };\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(sourceValue)) {\n sourceValue = cloneDeep(sourceValue);\n }\n if (Array.isArray(sourceValue)) {\n if (Array.isArray(targetValue)) {\n const cloned = [];\n const targetKeys = Reflect.ownKeys(targetValue);\n for (let i = 0; i < targetKeys.length; i++) {\n const targetKey = targetKeys[i];\n cloned[targetKey] = targetValue[targetKey];\n }\n targetValue = cloned;\n }\n else if (isArrayLikeObject(targetValue)) {\n const cloned = [];\n for (let i = 0; i < targetValue.length; i++) {\n cloned[i] = targetValue[i];\n }\n targetValue = cloned;\n }\n else {\n targetValue = [];\n }\n }\n const merged = merge(targetValue, sourceValue, key, target, source, stack);\n if (merged !== undefined) {\n target[key] = merged;\n }\n else if (Array.isArray(sourceValue)) {\n target[key] = mergeWithDeep(targetValue, sourceValue, merge, stack);\n }\n else if (isObjectLike(targetValue) &&\n isObjectLike(sourceValue) &&\n (isPlainObject(targetValue) ||\n isPlainObject(sourceValue) ||\n isTypedArray(targetValue) ||\n isTypedArray(sourceValue))) {\n target[key] = mergeWithDeep(targetValue, sourceValue, merge, stack);\n }\n else if (targetValue == null && isPlainObject(sourceValue)) {\n target[key] = mergeWithDeep({}, sourceValue, merge, stack);\n }\n else if (targetValue == null && isTypedArray(sourceValue)) {\n target[key] = cloneDeep(sourceValue);\n }\n else if (targetValue === undefined || sourceValue !== undefined) {\n target[key] = sourceValue;\n }\n }\n return target;\n}\n\nexport { mergeWith };\n","import { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction clone(obj) {\n if (isPrimitive(obj)) {\n return obj;\n }\n if (Array.isArray(obj) ||\n isTypedArray(obj) ||\n obj instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && obj instanceof SharedArrayBuffer)) {\n return obj.slice(0);\n }\n const prototype = Object.getPrototypeOf(obj);\n if (prototype == null) {\n return Object.assign(Object.create(prototype), obj);\n }\n const Constructor = prototype.constructor;\n if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {\n return new Constructor(obj);\n }\n if (obj instanceof RegExp) {\n const newRegExp = new Constructor(obj);\n newRegExp.lastIndex = obj.lastIndex;\n return newRegExp;\n }\n if (obj instanceof DataView) {\n return new Constructor(obj.buffer.slice(0));\n }\n if (obj instanceof Error) {\n let newError;\n if (obj instanceof AggregateError) {\n newError = new Constructor(obj.errors, obj.message, { cause: obj.cause });\n }\n else {\n newError = new Constructor(obj.message, { cause: obj.cause });\n }\n newError.stack = obj.stack;\n Object.assign(newError, obj);\n return newError;\n }\n if (typeof File !== 'undefined' && obj instanceof File) {\n const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });\n return newFile;\n }\n if (typeof obj === 'object') {\n const newObject = Object.create(prototype);\n return Object.assign(newObject, obj);\n }\n return obj;\n}\n\nexport { clone };\n","import { isArrayLike } from './isArrayLike.mjs';\nimport { isObjectLike } from './isObjectLike.mjs';\n\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport { isArrayLikeObject };\n","function noop() { }\n\nexport { noop };\n","import { mergeWith } from './mergeWith.mjs';\nimport { noop } from '../../function/noop.mjs';\n\nfunction merge(object, ...sources) {\n return mergeWith(object, ...sources, noop);\n}\n\nexport { merge };\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nimport { isObject as isObject$1, isString, isPlainObject, cloneDeepWith, isElement as isElement$1, isFunction, merge } from 'es-toolkit/compat';\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/global\n */ // This interface exists to make our API pages more readable.\n/**\n * A helper (module) giving an access to the global DOM objects such as `window` and `document`.\n */ /**\n * A helper (module) giving an access to the global DOM objects such as `window` and\n * `document`. Accessing these objects using this helper allows easy and bulletproof\n * testing, i.e. stubbing native properties:\n *\n * ```ts\n * import { global } from 'ckeditor5';\n *\n * // This stub will work for any code using global module.\n * testUtils.sinon.stub( global, 'window', {\n * \tinnerWidth: 10000\n * } );\n *\n * console.log( global.window.innerWidth );\n * ```\n */ let globalVar; // named globalVar instead of global: https://github.com/ckeditor/ckeditor5/issues/12971\n// In some environments window and document API might not be available.\ntry {\n globalVar = {\n window,\n document\n };\n} catch {\n // It's not possible to mock a window object to simulate lack of a window object without writing extremely convoluted code.\n /* istanbul ignore next -- @preserve */ // Let's cast it to not change module's API.\n // We only handle this so loading editor in environments without window and document doesn't fail.\n // For better DX we shouldn't introduce mixed types and require developers to check the type manually.\n // This module should not be used on purpose in any environment outside browser.\n globalVar = {\n window: {},\n document: {}\n };\n}\n\n/**\n * Safely returns `userAgent` from browser's navigator API in a lower case.\n * If navigator API is not available it will return an empty string.\n *\n * @internal\n */ function getUserAgent() {\n // In some environments navigator API might not be available.\n try {\n return navigator.userAgent.toLowerCase();\n } catch {\n return '';\n }\n}\nconst userAgent = /* #__PURE__ */ getUserAgent();\n/**\n * A namespace containing environment and browser information.\n */ const env = {\n isMac: /* #__PURE__ */ isMac(userAgent),\n isWindows: /* #__PURE__ */ isWindows(userAgent),\n isGecko: /* #__PURE__ */ isGecko(userAgent),\n isSafari: /* #__PURE__ */ isSafari(userAgent),\n isiOS: /* #__PURE__ */ isiOS(userAgent),\n isAndroid: /* #__PURE__ */ isAndroid(userAgent),\n isBlink: /* #__PURE__ */ isBlink(userAgent),\n get isMediaForcedColors () {\n return isMediaForcedColors();\n },\n get isMotionReduced () {\n return isMotionReduced();\n },\n features: {\n isRegExpUnicodePropertySupported: /* #__PURE__ */ isRegExpUnicodePropertySupported()\n }\n};\n/**\n * Checks if User Agent represented by the string is running on Macintosh.\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is running on Macintosh or not.\n */ function isMac(userAgent) {\n return userAgent.indexOf('macintosh') > -1;\n}\n/**\n * Checks if User Agent represented by the string is running on Windows.\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is running on Windows or not.\n */ function isWindows(userAgent) {\n return userAgent.indexOf('windows') > -1;\n}\n/**\n * Checks if User Agent represented by the string is Firefox (Gecko).\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Firefox or not.\n */ function isGecko(userAgent) {\n return !!userAgent.match(/gecko\\/\\d+/);\n}\n/**\n * Checks if User Agent represented by the string is Safari.\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Safari or not.\n */ function isSafari(userAgent) {\n return userAgent.indexOf(' applewebkit/') > -1 && userAgent.indexOf('chrome') === -1;\n}\n/**\n * Checks if User Agent represented by the string is running in iOS.\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is running in iOS or not.\n */ function isiOS(userAgent) {\n // \"Request mobile site\" || \"Request desktop site\".\n return !!userAgent.match(/iphone|ipad/i) || isMac(userAgent) && navigator.maxTouchPoints > 0;\n}\n/**\n * Checks if User Agent represented by the string is Android mobile device.\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Safari or not.\n */ function isAndroid(userAgent) {\n return userAgent.indexOf('android') > -1;\n}\n/**\n * Checks if User Agent represented by the string is Blink engine.\n *\n * @internal\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Blink engine or not.\n */ function isBlink(userAgent) {\n // The Edge browser before switching to the Blink engine used to report itself as Chrome (and \"Edge/\")\n // but after switching to the Blink it replaced \"Edge/\" with \"Edg/\".\n return userAgent.indexOf('chrome/') > -1 && userAgent.indexOf('edge/') < 0;\n}\n/**\n * Checks if the current environment supports ES2018 Unicode properties like `\\p{P}` or `\\p{L}`.\n * More information about unicode properties might be found\n * [in Unicode Standard Annex #44](https://www.unicode.org/reports/tr44/#GC_Values_Table).\n *\n * @internal\n */ function isRegExpUnicodePropertySupported() {\n let isSupported = false;\n // Feature detection for Unicode properties. Added in ES2018. Currently Firefox does not support it.\n // See https://github.com/ckeditor/ckeditor5-mention/issues/44#issuecomment-487002174.\n try {\n // Usage of regular expression literal cause error during build (ckeditor/ckeditor5-dev#534).\n isSupported = 'ć'.search(new RegExp('[\\\\p{L}]', 'u')) === 0;\n } catch {\n // Firefox throws a SyntaxError when the group is unsupported.\n }\n return isSupported;\n}\n/**\n * Checks if the user agent has enabled a forced colors mode (e.g. Windows High Contrast mode).\n *\n * Returns `false` in environments where `window` global object is not available.\n *\n * @internal\n */ function isMediaForcedColors() {\n return globalVar.window.matchMedia ? globalVar.window.matchMedia('(forced-colors: active)').matches : false;\n}\n/**\n * Checks if the user enabled \"prefers reduced motion\" setting in browser.\n *\n * Returns `false` in environments where `window` global object is not available.\n *\n * @internal\n */ function isMotionReduced() {\n return globalVar.window.matchMedia ? globalVar.window.matchMedia('(prefers-reduced-motion)').matches : false;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/fastdiff\n */ /**\n * Finds positions of the first and last change in the given string/array and generates a set of changes:\n *\n * ```ts\n * fastDiff( '12a', '12xyza' );\n * // [ { index: 2, type: 'insert', values: [ 'x', 'y', 'z' ] } ]\n *\n * fastDiff( '12a', '12aa' );\n * // [ { index: 3, type: 'insert', values: [ 'a' ] } ]\n *\n * fastDiff( '12xyza', '12a' );\n * // [ { index: 2, type: 'delete', howMany: 3 } ]\n *\n * fastDiff( [ '1', '2', 'a', 'a' ], [ '1', '2', 'a' ] );\n * // [ { index: 3, type: 'delete', howMany: 1 } ]\n *\n * fastDiff( [ '1', '2', 'a', 'b', 'c', '3' ], [ '2', 'a', 'b' ] );\n * // [ { index: 0, type: 'insert', values: [ '2', 'a', 'b' ] }, { index: 3, type: 'delete', howMany: 6 } ]\n * ```\n *\n * Passed arrays can contain any type of data, however to compare them correctly custom comparator function\n * should be passed as a third parameter:\n *\n * ```ts\n * fastDiff( [ { value: 1 }, { value: 2 } ], [ { value: 1 }, { value: 3 } ], ( a, b ) => {\n * \treturn a.value === b.value;\n * } );\n * // [ { index: 1, type: 'insert', values: [ { value: 3 } ] }, { index: 2, type: 'delete', howMany: 1 } ]\n * ```\n *\n * The resulted set of changes can be applied to the input in order to transform it into the output, for example:\n *\n * ```ts\n * let input = '12abc3';\n * const output = '2ab';\n * const changes = fastDiff( input, output );\n *\n * changes.forEach( change => {\n * \tif ( change.type == 'insert' ) {\n * \t\tinput = input.substring( 0, change.index ) + change.values.join( '' ) + input.substring( change.index );\n * \t} else if ( change.type == 'delete' ) {\n * \t\tinput = input.substring( 0, change.index ) + input.substring( change.index + change.howMany );\n * \t}\n * } );\n *\n * // input equals output now\n * ```\n *\n * or in case of arrays:\n *\n * ```ts\n * let input = [ '1', '2', 'a', 'b', 'c', '3' ];\n * const output = [ '2', 'a', 'b' ];\n * const changes = fastDiff( input, output );\n *\n * changes.forEach( change => {\n * \tif ( change.type == 'insert' ) {\n * \t\tinput = input.slice( 0, change.index ).concat( change.values, input.slice( change.index ) );\n * \t} else if ( change.type == 'delete' ) {\n * \t\tinput = input.slice( 0, change.index ).concat( input.slice( change.index + change.howMany ) );\n * \t}\n * } );\n *\n * // input equals output now\n * ```\n *\n * By passing `true` as the fourth parameter (`atomicChanges`) the output of this function will become compatible with\n * the {@link module:utils/diff~diff `diff()`} function:\n *\n * ```ts\n * fastDiff( '12a', '12xyza', undefined, true );\n * // [ 'equal', 'equal', 'insert', 'insert', 'insert', 'equal' ]\n * ```\n *\n * The default output format of this function is compatible with the output format of\n * {@link module:utils/difftochanges~diffToChanges `diffToChanges()`}. The `diffToChanges()` input format is, in turn,\n * compatible with the output of {@link module:utils/diff~diff `diff()`}:\n *\n * ```ts\n * const a = '1234';\n * const b = '12xyz34';\n *\n * // Both calls will return the same results (grouped changes format).\n * fastDiff( a, b );\n * diffToChanges( diff( a, b ) );\n *\n * // Again, both calls will return the same results (atomic changes format).\n * fastDiff( a, b, undefined, true );\n * diff( a, b );\n * ```\n *\n * @typeParam T The type of array elements.\n * @typeParam AtomicChanges The type of `atomicChanges` parameter (selects the result type).\n * @param a Input array or string.\n * @param b Input array or string.\n * @param cmp Optional function used to compare array values, by default `===` (strict equal operator) is used.\n * @param atomicChanges Whether an array of `inset|delete|equal` operations should\n * be returned instead of changes set. This makes this function compatible with {@link module:utils/diff~diff `diff()`}.\n * Defaults to `false`.\n * @returns Array of changes. The elements are either {@link module:utils/diff~DiffResult} or {@link module:utils/difftochanges~Change},\n * depending on `atomicChanges` parameter.\n */ function fastDiff(a, b, cmp, atomicChanges) {\n // Set the comparator function.\n cmp = cmp || function(a, b) {\n return a === b;\n };\n // Convert the string (or any array-like object - eg. NodeList) to an array by using the slice() method because,\n // unlike Array.from(), it returns array of UTF-16 code units instead of the code points of a string.\n // One code point might be a surrogate pair of two code units. All text offsets are expected to be in code units.\n // See ckeditor/ckeditor5#3147.\n //\n // We need to make sure here that fastDiff() works identical to diff().\n const arrayA = Array.isArray(a) ? a : Array.prototype.slice.call(a);\n const arrayB = Array.isArray(b) ? b : Array.prototype.slice.call(b);\n // Find first and last change.\n const changeIndexes = findChangeBoundaryIndexes(arrayA, arrayB, cmp);\n // Transform into changes array.\n const result = atomicChanges ? changeIndexesToAtomicChanges(changeIndexes, arrayB.length) : changeIndexesToChanges(arrayB, changeIndexes);\n return result;\n}\n/**\n * Finds position of the first and last change in the given arrays. For example:\n *\n * ```ts\n * const indexes = findChangeBoundaryIndexes( [ '1', '2', '3', '4' ], [ '1', '3', '4', '2', '4' ] );\n * console.log( indexes ); // { firstIndex: 1, lastIndexOld: 3, lastIndexNew: 4 }\n * ```\n *\n * The above indexes means that in the first array the modified part is `1[23]4` and in the second array it is `1[342]4`.\n * Based on such indexes, array with `insert`/`delete` operations which allows transforming first value into the second one\n * can be generated.\n */ function findChangeBoundaryIndexes(arr1, arr2, cmp) {\n // Find the first difference between passed values.\n const firstIndex = findFirstDifferenceIndex(arr1, arr2, cmp);\n // If arrays are equal return -1 indexes object.\n if (firstIndex === -1) {\n return {\n firstIndex: -1,\n lastIndexOld: -1,\n lastIndexNew: -1\n };\n }\n // Remove the common part of each value and reverse them to make it simpler to find the last difference between them.\n const oldArrayReversed = cutAndReverse(arr1, firstIndex);\n const newArrayReversed = cutAndReverse(arr2, firstIndex);\n // Find the first difference between reversed values.\n // It should be treated as \"how many elements from the end the last difference occurred\".\n //\n // For example:\n //\n // \t\t\t\tinitial\t->\tafter cut\t-> reversed:\n // oldValue:\t'321ba'\t->\t'21ba'\t\t-> 'ab12'\n // newValue:\t'31xba'\t->\t'1xba'\t\t-> 'abx1'\n // lastIndex:\t\t\t\t\t\t\t-> 2\n //\n // So the last change occurred two characters from the end of the arrays.\n const lastIndex = findFirstDifferenceIndex(oldArrayReversed, newArrayReversed, cmp);\n // Use `lastIndex` to calculate proper offset, starting from the beginning (`lastIndex` kind of starts from the end).\n const lastIndexOld = arr1.length - lastIndex;\n const lastIndexNew = arr2.length - lastIndex;\n return {\n firstIndex,\n lastIndexOld,\n lastIndexNew\n };\n}\n/**\n * Returns a first index on which given arrays differ. If both arrays are the same, -1 is returned.\n */ function findFirstDifferenceIndex(arr1, arr2, cmp) {\n for(let i = 0; i < Math.max(arr1.length, arr2.length); i++){\n if (arr1[i] === undefined || arr2[i] === undefined || !cmp(arr1[i], arr2[i])) {\n return i;\n }\n }\n return -1; // Return -1 if arrays are equal.\n}\n/**\n * Returns a copy of the given array with `howMany` elements removed starting from the beginning and in reversed order.\n *\n * @param arr Array to be processed.\n * @param howMany How many elements from array beginning to remove.\n * @returns Shortened and reversed array.\n */ function cutAndReverse(arr, howMany) {\n return arr.slice(howMany).reverse();\n}\n/**\n * Generates changes array based on change indexes from `findChangeBoundaryIndexes` function. This function will\n * generate array with 0 (no changes), 1 (deletion or insertion) or 2 records (insertion and deletion).\n *\n * @param newArray New array for which change indexes were calculated.\n * @param changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n * @returns Array of changes compatible with {@link module:utils/difftochanges~diffToChanges} format.\n */ function changeIndexesToChanges(newArray, changeIndexes) {\n const result = [];\n const { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n // Order operations as 'insert', 'delete' array to keep compatibility with {@link module:utils/difftochanges~diffToChanges}\n // in most cases. However, 'diffToChanges' does not stick to any order so in some cases\n // (for example replacing '12345' with 'abcd') it will generate 'delete', 'insert' order.\n if (lastIndexNew - firstIndex > 0) {\n result.push({\n index: firstIndex,\n type: 'insert',\n values: newArray.slice(firstIndex, lastIndexNew)\n });\n }\n if (lastIndexOld - firstIndex > 0) {\n result.push({\n index: firstIndex + (lastIndexNew - firstIndex),\n type: 'delete',\n howMany: lastIndexOld - firstIndex\n });\n }\n return result;\n}\n/**\n * Generates array with set `equal|insert|delete` operations based on change indexes from `findChangeBoundaryIndexes` function.\n *\n * @param changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n * @param newLength Length of the new array on which `findChangeBoundaryIndexes` calculated change indexes.\n * @returns Array of changes compatible with {@link module:utils/diff~diff} format.\n */ function changeIndexesToAtomicChanges(changeIndexes, newLength) {\n const { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n // No changes.\n if (firstIndex === -1) {\n return Array(newLength).fill('equal');\n }\n let result = [];\n if (firstIndex > 0) {\n result = result.concat(Array(firstIndex).fill('equal'));\n }\n if (lastIndexNew - firstIndex > 0) {\n result = result.concat(Array(lastIndexNew - firstIndex).fill('insert'));\n }\n if (lastIndexOld - firstIndex > 0) {\n result = result.concat(Array(lastIndexOld - firstIndex).fill('delete'));\n }\n if (lastIndexNew < newLength) {\n result = result.concat(Array(newLength - lastIndexNew).fill('equal'));\n }\n return result;\n}\n\n// The following code is based on the \"O(NP) Sequence Comparison Algorithm\"\n// by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n/**\n * Calculates the difference between two arrays or strings producing an array containing a list of changes\n * necessary to transform input into output.\n *\n * ```ts\n * diff( 'aba', 'acca' ); // [ 'equal', 'insert', 'insert', 'delete', 'equal' ]\n * ```\n *\n * This function is based on the \"O(NP) Sequence Comparison Algorithm\" by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n * Unfortunately, while it gives the most precise results, its to complex for longer strings/arrow (above 200 items).\n * Therefore, `diff()` automatically switches to {@link module:utils/fastdiff~fastDiff `fastDiff()`} when detecting\n * such a scenario. The return formats of both functions are identical.\n *\n * @param a Input array or string.\n * @param b Output array or string.\n * @param cmp Optional function used to compare array values, by default === is used.\n * @returns Array of changes.\n */ function diff(a, b, cmp) {\n // Set the comparator function.\n cmp = cmp || function(a, b) {\n return a === b;\n };\n const aLength = a.length;\n const bLength = b.length;\n // Perform `fastDiff` for longer strings/arrays (see #269).\n if (aLength > 200 || bLength > 200 || aLength + bLength > 300) {\n return diff.fastDiff(a, b, cmp, true);\n }\n // Temporary action type statics.\n let _insert, _delete;\n // Swapped the arrays to use the shorter one as the first one.\n if (bLength < aLength) {\n const tmp = a;\n a = b;\n b = tmp;\n // We swap the action types as well.\n _insert = 'delete';\n _delete = 'insert';\n } else {\n _insert = 'insert';\n _delete = 'delete';\n }\n const m = a.length;\n const n = b.length;\n const delta = n - m;\n // Edit scripts, for each diagonal.\n const es = {};\n // Furthest points, the furthest y we can get on each diagonal.\n const fp = {};\n function snake(k) {\n // We use -1 as an alternative below to handle initial values ( instead of filling the fp with -1 first ).\n // Furthest points (y) on the diagonal below k.\n const y1 = (fp[k - 1] !== undefined ? fp[k - 1] : -1) + 1;\n // Furthest points (y) on the diagonal above k.\n const y2 = fp[k + 1] !== undefined ? fp[k + 1] : -1;\n // The way we should go to get further.\n const dir = y1 > y2 ? -1 : 1;\n // Clone previous changes array (if any).\n if (es[k + dir]) {\n es[k] = es[k + dir].slice(0);\n }\n // Create changes array.\n if (!es[k]) {\n es[k] = [];\n }\n // Push the action.\n es[k].push(y1 > y2 ? _insert : _delete);\n // Set the beginning coordinates.\n let y = Math.max(y1, y2);\n let x = y - k;\n // Traverse the diagonal as long as the values match.\n while(x < m && y < n && cmp(a[x], b[y])){\n x++;\n y++;\n // Push no change action.\n es[k].push('equal');\n }\n return y;\n }\n let p = 0;\n let k;\n // Traverse the graph until we reach the end of the longer string.\n do {\n // Updates furthest points and edit scripts for diagonals below delta.\n for(k = -p; k < delta; k++){\n fp[k] = snake(k);\n }\n // Updates furthest points and edit scripts for diagonals above delta.\n for(k = delta + p; k > delta; k--){\n fp[k] = snake(k);\n }\n // Updates furthest point and edit script for the delta diagonal.\n // note that the delta diagonal is the one which goes through the sink (m, n).\n fp[delta] = snake(delta);\n p++;\n }while (fp[delta] !== n)\n // Return the final list of edit changes.\n // We remove the first item that represents the action for the injected nulls.\n return es[delta].slice(1);\n}\n// Store the API in static property to easily overwrite it in tests.\n// Too bad dependency injection does not work in Webpack + ES 6 (const) + Babel.\ndiff.fastDiff = fastDiff;\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/difftochanges\n */ /**\n * Creates a set of changes which need to be applied to the input in order to transform\n * it into the output. This function can be used with strings or arrays.\n *\n * ```ts\n * const input = Array.from( 'abc' );\n * const output = Array.from( 'xaby' );\n * const changes = diffToChanges( diff( input, output ), output );\n *\n * changes.forEach( change => {\n * \tif ( change.type == 'insert' ) {\n * \t\tinput.splice( change.index, 0, ...change.values );\n * \t} else if ( change.type == 'delete' ) {\n * \t\tinput.splice( change.index, change.howMany );\n * \t}\n * } );\n *\n * input.join( '' ) == output.join( '' ); // -> true\n * ```\n *\n * @typeParam T The type of output array element.\n * @param diff Result of {@link module:utils/diff~diff}.\n * @param output The string or array which was passed as diff's output.\n * @returns Set of changes (insert or delete) which need to be applied to the input\n * in order to transform it into the output.\n */ function diffToChanges(diff, output) {\n const changes = [];\n let index = 0;\n let lastOperation = null;\n diff.forEach((change)=>{\n if (change == 'equal') {\n pushLast();\n index++;\n } else if (change == 'insert') {\n if (lastOperation && lastOperation.type == 'insert') {\n lastOperation.values.push(output[index]);\n } else {\n pushLast();\n lastOperation = {\n type: 'insert',\n index,\n values: [\n output[index]\n ]\n };\n }\n index++;\n } else /* if ( change == 'delete' ) */ {\n if (lastOperation && lastOperation.type == 'delete') {\n lastOperation.howMany++;\n } else {\n pushLast();\n lastOperation = {\n type: 'delete',\n index,\n howMany: 1\n };\n }\n }\n });\n pushLast();\n return changes;\n function pushLast() {\n if (lastOperation) {\n changes.push(lastOperation);\n lastOperation = null;\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/areconnectedthroughproperties\n */ /**\n * Traverses both structures to find out whether there is a reference that is shared between both structures.\n */ function areConnectedThroughProperties(obj1, obj2) {\n if (obj1 === obj2 && isObject(obj1)) {\n return true;\n }\n const subNodes1 = getSubNodes(obj1);\n const subNodes2 = getSubNodes(obj2);\n for (const node of subNodes1){\n if (subNodes2.has(node)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Traverses JS structure and stores all sub-nodes, including the head node.\n * It walks into each iterable structures with the `try catch` block to omit errors that might be thrown during\n * tree walking. All primitives, functions and built-ins are skipped.\n */ function getSubNodes(head) {\n const nodes = [\n head\n ];\n // Nodes are stored to prevent infinite looping.\n const subNodes = new Set();\n while(nodes.length > 0){\n const node = nodes.shift();\n if (subNodes.has(node) || shouldNodeBeSkipped(node)) {\n continue;\n }\n subNodes.add(node);\n // Handle arrays, maps, sets, custom collections that implements `[ Symbol.iterator ]()`, etc.\n if (node[Symbol.iterator]) {\n // The custom editor iterators might cause some problems if the editor is crashed.\n try {\n nodes.push(...node);\n } // eslint-disable-next-line no-empty\n catch {}\n } else {\n nodes.push(...Object.values(node));\n }\n }\n return subNodes;\n}\nfunction shouldNodeBeSkipped(node) {\n const type = Object.prototype.toString.call(node);\n return type === '[object Number]' || type === '[object Boolean]' || type === '[object String]' || type === '[object Symbol]' || type === '[object Function]' || type === '[object Date]' || type === '[object RegExp]' || node === undefined || node === null || // Skip native DOM objects, e.g. Window, nodes, events, etc.\n node instanceof EventTarget || node instanceof Event;\n}\nfunction isObject(structure) {\n return typeof structure === 'object' && structure !== null;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/spy\n */ /**\n * Creates a spy function (ala Sinon.js) that can be used to inspect call to it.\n *\n * The following are the present features:\n *\n * * spy.called: property set to `true` if the function has been called at least once.\n *\n * @returns The spy function.\n */ function spy() {\n return function spy() {\n spy.called = true;\n };\n}\n\n/**\n * The event object passed to event callbacks. It is used to provide information about the event as well as a tool to\n * manipulate it.\n */ class EventInfo {\n /**\n\t * The object that fired the event.\n\t */ source;\n /**\n\t * The event name.\n\t */ name;\n /**\n\t * Path this event has followed. See {@link module:utils/emittermixin~Emitter#delegate}.\n\t */ path;\n /**\n\t * Stops the event emitter to call further callbacks for this event interaction.\n\t */ stop;\n /**\n\t * Removes the current callback from future interactions of this event.\n\t */ off;\n /**\n\t * The value which will be returned by {@link module:utils/emittermixin~Emitter#fire}.\n\t *\n\t * It's `undefined` by default and can be changed by an event listener:\n\t *\n\t * ```ts\n\t * dataController.fire( 'getSelectedContent', ( evt ) => {\n\t * \t// This listener will make `dataController.fire( 'getSelectedContent' )`\n\t * \t// always return an empty DocumentFragment.\n\t * \tevt.return = new DocumentFragment();\n\t *\n\t * \t// Make sure no other listeners are executed.\n\t * \tevt.stop();\n\t * } );\n\t * ```\n\t */ return;\n /**\n\t * @param source The emitter.\n\t * @param name The event name.\n\t */ constructor(source, name){\n this.source = source;\n this.name = name;\n this.path = [];\n // The following methods are defined in the constructor because they must be re-created per instance.\n this.stop = spy();\n this.off = spy();\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/uid\n */ /**\n * A hash table of hex numbers to avoid using toString() in uid() which is costly.\n * [ '00', '01', '02', ..., 'fe', 'ff' ]\n */ const HEX_NUMBERS = new Array(256).fill('').map((_, index)=>('0' + index.toString(16)).slice(-2));\n/**\n * Returns a unique id. The id starts with an \"e\" character and a randomly generated string of\n * 32 alphanumeric characters.\n *\n * **Note**: The characters the unique id is built from correspond to the hex number notation\n * (from \"0\" to \"9\", from \"a\" to \"f\"). In other words, each id corresponds to an \"e\" followed\n * by 16 8-bit numbers next to each other.\n *\n * @returns An unique id string.\n */ function uid() {\n // Let's create some positive random 32bit integers first.\n const [r1, r2, r3, r4] = crypto.getRandomValues(new Uint32Array(4));\n // Make sure that id does not start with number.\n return 'e' + HEX_NUMBERS[r1 >> 0 & 0xFF] + HEX_NUMBERS[r1 >> 8 & 0xFF] + HEX_NUMBERS[r1 >> 16 & 0xFF] + HEX_NUMBERS[r1 >> 24 & 0xFF] + HEX_NUMBERS[r2 >> 0 & 0xFF] + HEX_NUMBERS[r2 >> 8 & 0xFF] + HEX_NUMBERS[r2 >> 16 & 0xFF] + HEX_NUMBERS[r2 >> 24 & 0xFF] + HEX_NUMBERS[r3 >> 0 & 0xFF] + HEX_NUMBERS[r3 >> 8 & 0xFF] + HEX_NUMBERS[r3 >> 16 & 0xFF] + HEX_NUMBERS[r3 >> 24 & 0xFF] + HEX_NUMBERS[r4 >> 0 & 0xFF] + HEX_NUMBERS[r4 >> 8 & 0xFF] + HEX_NUMBERS[r4 >> 16 & 0xFF] + HEX_NUMBERS[r4 >> 24 & 0xFF];\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/priorities\n */ /**\n * String representing a priority value.\n */ /**\n * Provides group of constants to use instead of hardcoding numeric priority values.\n */ const priorities = {\n get (priority = 'normal') {\n if (typeof priority != 'number') {\n return this[priority] || this.normal;\n } else {\n return priority;\n }\n },\n highest: 100000,\n high: 1000,\n normal: 0,\n low: -1e3,\n lowest: -1e5\n};\n\n/**\n * Inserts any object with priority at correct index by priority so registered objects are always sorted from highest to lowest priority.\n *\n * @param objects Array of objects with priority to insert object to.\n * @param objectToInsert Object with `priority` property.\n */ function insertToPriorityArray(objects, objectToInsert) {\n const priority = priorities.get(objectToInsert.priority);\n // Binary search for better performance in large tables.\n let left = 0;\n let right = objects.length;\n while(left < right){\n const mid = left + right >> 1; // Use bitwise operator for faster floor division by 2.\n const midPriority = priorities.get(objects[mid].priority);\n if (midPriority < priority) {\n right = mid;\n } else {\n left = mid + 1;\n }\n }\n objects.splice(left, 0, objectToInsert);\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/ckeditorerror\n */ /**\n * URL to the documentation with error codes.\n */ const DOCUMENTATION_URL = 'https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html';\n/**\n * The CKEditor error class.\n *\n * You should throw `CKEditorError` when:\n *\n * * An unexpected situation occurred and the editor (most probably) will not work properly. Such exception will be handled\n * by the {@link module:watchdog/watchdog~Watchdog watchdog} (if it is integrated),\n * * If the editor is incorrectly integrated or the editor API is used in the wrong way. This way you will give\n * feedback to the developer as soon as possible. Keep in mind that for common integration issues which should not\n * stop editor initialization (like missing upload adapter, wrong name of a toolbar component) we use\n * {@link module:utils/ckeditorerror~logWarning `logWarning()`} and\n * {@link module:utils/ckeditorerror~logError `logError()`}\n * to improve developers experience and let them see the a working editor as soon as possible.\n *\n * ```ts\n * /**\n * * Error thrown when a plugin cannot be loaded due to JavaScript errors, lack of plugins with a given name, etc.\n * *\n * * @error plugin-load\n * * @param pluginName The name of the plugin that could not be loaded.\n * * @param moduleName The name of the module which tried to load this plugin.\n * *\\/\n * throw new CKEditorError( 'plugin-load', {\n * \tpluginName: 'foo',\n * \tmoduleName: 'bar'\n * } );\n * ```\n */ class CKEditorError extends Error {\n /**\n\t * A context of the error by which the Watchdog is able to determine which editor crashed.\n\t */ context;\n /**\n\t * The additional error data passed to the constructor. Undefined if none was passed.\n\t */ data;\n /**\n\t * Creates an instance of the CKEditorError class.\n\t *\n\t * @param errorName The error id in an `error-name` format. A link to this error documentation page will be added\n\t * to the thrown error's `message`.\n\t * @param context A context of the error by which the {@link module:watchdog/watchdog~Watchdog watchdog}\n\t * is able to determine which editor crashed. It should be an editor instance or a property connected to it. It can be also\n\t * a `null` value if the editor should not be restarted in case of the error (e.g. during the editor initialization).\n\t * The error context should be checked using the `areConnectedThroughProperties( editor, context )` utility\n\t * to check if the object works as the context.\n\t * @param data Additional data describing the error. A stringified version of this object\n\t * will be appended to the error message, so the data are quickly visible in the console. The original\n\t * data object will also be later available under the {@link #data} property.\n\t * @param originalError An optional original error that is being wrapped in the `CKEditorError` instance.\n\t */ constructor(errorName, context, data, originalError){\n super(getErrorMessage(errorName, data, originalError));\n this.name = 'CKEditorError';\n this.context = context;\n this.data = data;\n // Wrapping an original error in a CKEditorError instance.\n if (originalError) {\n // Restore the original stack trace to make the error look like the original one.\n // See https://github.com/ckeditor/ckeditor5/issues/5595 for more details.\n this.stack = originalError.stack;\n }\n }\n /**\n\t * Checks if the error is of the `CKEditorError` type.\n\t */ is(type) {\n return type === 'CKEditorError';\n }\n /**\n\t * A utility that ensures that the thrown error is a {@link module:utils/ckeditorerror~CKEditorError} one.\n\t * It is useful when combined with the {@link module:watchdog/watchdog~Watchdog} feature, which can restart the editor in case\n\t * of a {@link module:utils/ckeditorerror~CKEditorError} error.\n\t *\n\t * @param error The error to rethrow.\n\t * @param context An object connected through properties with the editor instance. This context will be used\n\t * by the watchdog to verify which editor should be restarted.\n\t */ static rethrowUnexpectedError(error, context) {\n if (error.is && error.is('CKEditorError')) {\n throw error;\n }\n /**\n\t\t * An unexpected error occurred inside the CKEditor 5 codebase. This error will look like the original one\n\t\t * to make the debugging easier.\n\t\t *\n\t\t * This error is only useful when the editor is initialized using the {@link module:watchdog/watchdog~Watchdog} feature.\n\t\t * In case of such error (or any {@link module:utils/ckeditorerror~CKEditorError} error) the watchdog should restart the editor.\n\t\t *\n\t\t * @error unexpected-error\n\t\t */ throw new CKEditorError('unexpected-error', context, undefined, error);\n }\n}\n/**\n * Logs a warning to the console with a properly formatted message and adds a link to the documentation.\n * Use whenever you want to log a warning to the console.\n *\n * ```ts\n * /**\n * * There was a problem processing the configuration of the toolbar. The item with the given\n * * name does not exist, so it was omitted when rendering the toolbar.\n * *\n * * @error toolbarview-item-unavailable\n * * @param {String} name The name of the component.\n * *\\/\n * logWarning( 'toolbarview-item-unavailable', { name } );\n * ```\n *\n * See also {@link module:utils/ckeditorerror~CKEditorError} for an explanation when to throw an error and when to log\n * a warning or an error to the console.\n *\n * @param errorName The error name to be logged.\n * @param data Additional data to be logged.\n */ function logWarning(errorName, data) {\n console.warn(...formatConsoleArguments(errorName, data));\n}\n/**\n * Logs an error to the console with a properly formatted message and adds a link to the documentation.\n * Use whenever you want to log an error to the console.\n *\n * ```ts\n * /**\n * * There was a problem processing the configuration of the toolbar. The item with the given\n * * name does not exist, so it was omitted when rendering the toolbar.\n * *\n * * @error toolbarview-item-unavailable\n * * @param {String} name The name of the component.\n * *\\/\n * logError( 'toolbarview-item-unavailable', { name } );\n * ```\n *\n * **Note**: In most cases logging a warning using {@link module:utils/ckeditorerror~logWarning} is enough.\n *\n * See also {@link module:utils/ckeditorerror~CKEditorError} for an explanation when to use each method.\n *\n * @param errorName The error name to be logged.\n * @param data Additional data to be logged.\n */ function logError(errorName, data) {\n console.error(...formatConsoleArguments(errorName, data));\n}\n/**\n * Returns formatted link to documentation message.\n */ function getLinkToDocumentationMessage(errorName) {\n return `\\nRead more: ${DOCUMENTATION_URL}#error-${errorName}`;\n}\n/**\n * Returns formatted error message.\n */ function getErrorMessage(errorName, data, originalError) {\n const processedObjects = new WeakSet();\n const circularReferencesReplacer = (key, value)=>{\n if (typeof value === 'object' && value !== null) {\n if (processedObjects.has(value)) {\n return `[object ${value.constructor.name}]`;\n }\n processedObjects.add(value);\n }\n return value;\n };\n const stringifiedData = data ? ` ${JSON.stringify(data, circularReferencesReplacer)}` : '';\n const documentationLink = getLinkToDocumentationMessage(errorName);\n const originalErrorMessage = originalError ? `\\nOriginal error: ${originalError.name}: ${originalError.message}` : '';\n return errorName + stringifiedData + documentationLink + originalErrorMessage;\n}\n/**\n * Returns formatted console error arguments.\n */ function formatConsoleArguments(errorName, data) {\n const documentationMessage = getLinkToDocumentationMessage(errorName);\n return data ? [\n errorName,\n data,\n documentationMessage\n ] : [\n errorName,\n documentationMessage\n ];\n}\n\nconst version = '48.0.0';\n// The second argument is not a month. It is `monthIndex` and starts from `0`.\nconst releaseDate = new Date(2026, 2, 31);\n/* istanbul ignore next -- @preserve */ if (globalThis.CKEDITOR_VERSION) {\n /**\n\t * This error is thrown when, due to a mistake in the way CKEditor 5 was installed,\n\t * imported, or initialized, some of its modules were evaluated and executed twice.\n\t * Duplicate modules inevitably lead to runtime errors and increased bundle size.\n\t *\n\t * # Check dependency versions\n\t *\n\t * First, make sure that you use the latest version of all CKEditor 5 dependencies.\n\t * Depending on the installation method, you should check the versions of the `ckeditor5`,\n\t * `ckeditor5-premium-features`, or `@ckeditor/ckeditor5-` packages. If you cannot update\n\t * to the latest version, ensure that all the CKEditor 5 packages are\n\t * in the same version.\n\t *\n\t * If you use third-party plugins, make sure to update them, too. If they are incompatible\n\t * with the version of CKEditor 5 you use, you may need to downgrade the CKEditor 5 packages\n\t * (which we do not recommend). Ask the plugin's author to upgrade the dependencies,\n\t * or fork their project and update it yourself.\n\t *\n\t * # Check imports\n\t *\n\t * The next step is to look at how you import CKEditor 5 into your project.\n\t *\n\t * **The {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods}\n\t * are designed to prevent module duplication, so if you are not using them yet, you should consider\n\t * updating your project**. However, several legacy installation methods are still supported for backward\n\t * compatibility, and mixing them may result in module duplication.\n\t *\n\t * These are the most common import methods of the CKEditor 5 packages.\n\t *\n\t * - **New installation methods (NIM)** – Imports from the `ckeditor5` and `ckeditor5-premium-features` packages.\n\t * - **Optimized build** for the new installation methods – Imports from the `@ckeditor/ckeditor5-/dist/index.js`.\n\t * - **Predefined builds** (no longer supported) – Imports from the `@ckeditor/ckeditor5-build-` packages.\n\t * - **Default imports** (legacy) – Imports from the `@ckeditor/ckeditor5-` packages (default export).\n\t * - **`src`** (legacy) – Imports from the `@ckeditor/ckeditor5-/src/*`.\n\t * - **DLL builds** (legacy) – Imports from the `ckeditor5/build/` and `@ckeditor/ckeditor5-/build/*`.\n\t *\n\t * The best way to avoid duplicate modules is to avoid mixing these installation methods. For example, if you use imports\n\t * specific to the optimized build, you should use them for all CKEditor 5 packages. In addition, since\n\t * the DLL builds already include the core of the editor, they cannot be used with other types of imports.\n\t *\n\t * Here is a matrix showing which installation methods are compatible with each other:\n\t *\n\t * | | NIM | Optimized build | Predefined builds | Default imports | `src` | DLL builds |\n\t * |------------------|-----|-----------------|-------------------|-----------------|-------|------------|\n\t * | NIM | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |\n\t * | Optimized builds | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |\n\t * | Predefined build | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |\n\t * | Default imports | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |\n\t * | `src` | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |\n\t * | DLL builds | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |\n\t *\n\t * If you use any third-party plugins, make sure the way you import them is compatible with\n\t * the way you import CKEditor 5.\n\t *\n\t *
\n\t * New installation methods and optimized builds\n\t *\n\t * If you use the {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods},\n\t * you should only import { code } from the `ckeditor5` and `ckeditor5-premium-features` packages.\n\t * Do not import { code } from the `@ckeditor/ckeditor5-` packages unless you follow\n\t * the {@glink getting-started/setup/optimizing-build-size Optimizing build size} guide and the imports from\n\t * the `@ckeditor/ckeditor5-` packages end with `/dist/index.js`.\n\t *\n\t * If you use a CDN, ensure that some files are not included twice in your project.\n\t *\n\t * Examples of valid and invalid import paths:\n\t *\n\t * ```js\n\t * import { ClassicEditor, Highlight } from 'ckeditor5'; // ✅\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ✅\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/src/highlight.js'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ❌\n\t * import '@ckeditor/ckeditor5-highlight/build/highlight.js'; // ❌\n\t * ```\n\t *
\n\t *\n\t *
\n\t * (Deprecated) Predefined builds\n\t *\n\t * **As of April, 2025 predefined build are no longer supported. Please refer to the\n\t * {@glink getting-started/index Quick Start} guide\n\t * to choose one of the modern installation and integration methods available**.\n\t *\n\t * If you use the predefined builds, you cannot import any additional plugins.\n\t * These builds already include the editor's core and selected plugins and importing additional\n\t * ones will cause some modules to be bundled and loaded twice.\n\t *\n\t * Examples of valid and invalid import paths:\n\t *\n\t * ```js\n\t * import { ClassicEditor } from '@ckeditor/ckeditor5-build-classic'; // ✅\n\t * import { Highlight } from 'ckeditor5'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/src/highlight'; // ❌\n\t * import '@ckeditor/ckeditor5-highlight/build/highlight'; // ❌\n\t * ```\n\t *\n\t * If you are missing some features from the list of plugins, you should switch to the\n\t * {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods}\n\t * which do not have this limitation.\n\t *
\n\t *\n\t *
\n\t * (Legacy) Default imports and `src` imports\n\t *\n\t * If you use the legacy customized installation\n\t * method, you should only import code from the `@ckeditor/ckeditor5-` packages. While you can import code from\n\t * the `@ckeditor/ckeditor5-/src/*` files, it is not recommended as it can make migration to the new installation\n\t * methods more difficult.\n\t *\n\t * If you use this installation method, you should not import { code } from the `ckeditor5` or `ckeditor5-premium-features` packages.\n\t *\n\t * Examples of valid and invalid import paths:\n\t *\n\t * ```js\n\t * import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic'; // ✅\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ✅\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/src/highlight.js'; // ✅ (not recommended)\n\t * import { Highlight } from 'ckeditor5'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ❌\n\t * import '@ckeditor/ckeditor5-highlight/build/highlight'; // ❌\n\t * ```\n\t *
\n\t *\n\t *
\n\t * (Legacy) DLL builds\n\t *\n\t * If you are using the {@glink updating/nim-migration/dll-builds legacy DLL builds},\n\t * you should not import any non-DLL modules.\n\t *\n\t * Examples of valid and invalid import paths:\n\t *\n\t * ```js\n\t * import 'ckeditor5/build/ckeditor5-dll.js';// ✅\n\t * import '@ckeditor/ckeditor5-editor-classic/build/editor-classic.js';// ✅\n\t * import '@ckeditor/ckeditor5-highlight/build/highlight.js';// ✅\n\t * import { Highlight } from 'ckeditor5'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ❌\n\t * import { Highlight } from '@ckeditor/ckeditor5-highlight/src/highlight.js'; // ❌\n\t * ```\n\t *
\n\t *\n\t * # Reinstall `node_modules`\n\t *\n\t * Usually, npm and other package managers deduplicate all packages - for example, `ckeditor5` is only installed once\n\t * in `node_modules/`. However, it is known to fail to do so occasionally.\n\t *\n\t * To rule out this possibility, you can try the following:\n\t *\n\t * 1. Remove the `node_modules` directory.\n\t * 2. Remove the `package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml` files (depending on the package manager used).\n\t * 3. Run `npm install` to reinstall all packages.\n\t * 4. Run `npm ls` to check how many times packages like `@ckeditor/ckeditor5-core` are installed.\n\t * If they are installed more than once, verify which package causes that.\n\t *\n\t * @error ckeditor-duplicated-modules\n\t */ throw new CKEditorError('ckeditor-duplicated-modules', null);\n} else {\n globalThis.CKEDITOR_VERSION = version;\n}\n\nconst _listeningTo = Symbol('listeningTo');\nconst _emitterId = Symbol('emitterId');\nconst _delegations = Symbol('delegations');\nconst defaultEmitterClass$1 = /* #__PURE__ */ EmitterMixin(Object);\nfunction EmitterMixin(base) {\n if (!base) {\n return defaultEmitterClass$1;\n }\n class Mixin extends base {\n on(event, callback, options) {\n this.listenTo(this, event, callback, options);\n }\n once(event, callback, options) {\n let wasFired = false;\n const onceCallback = (event, ...args)=>{\n // Ensure the callback is called only once even if the callback itself leads to re-firing the event\n // (which would call the callback again).\n if (!wasFired) {\n wasFired = true;\n // Go off() at the first call.\n event.off();\n // Go with the original callback.\n callback.call(this, event, ...args);\n }\n };\n // Make a similar on() call, simply replacing the callback.\n this.listenTo(this, event, onceCallback, options);\n }\n off(event, callback) {\n this.stopListening(this, event, callback);\n }\n listenTo(emitter, event, callback, options = {}) {\n let emitterInfo, eventCallbacks;\n // _listeningTo contains a list of emitters that this object is listening to.\n // This list has the following format:\n //\n // _listeningTo: {\n // emitterId: {\n // emitter: emitter,\n // callbacks: {\n // event1: [ callback1, callback2, ... ]\n // ....\n // }\n // },\n // ...\n // }\n if (!this[_listeningTo]) {\n this[_listeningTo] = {};\n }\n const emitters = this[_listeningTo];\n if (!_getEmitterId(emitter)) {\n _setEmitterId(emitter);\n }\n const emitterId = _getEmitterId(emitter);\n if (!(emitterInfo = emitters[emitterId])) {\n emitterInfo = emitters[emitterId] = {\n emitter,\n callbacks: {}\n };\n }\n if (!(eventCallbacks = emitterInfo.callbacks[event])) {\n eventCallbacks = emitterInfo.callbacks[event] = [];\n }\n eventCallbacks.push(callback);\n // Finally register the callback to the event.\n addEventListener(this, emitter, event, callback, options);\n }\n stopListening(emitter, event, callback) {\n const emitters = this[_listeningTo];\n let emitterId = emitter && _getEmitterId(emitter);\n const emitterInfo = emitters && emitterId ? emitters[emitterId] : undefined;\n const eventCallbacks = emitterInfo && event ? emitterInfo.callbacks[event] : undefined;\n // Stop if nothing has been listened.\n if (!emitters || emitter && !emitterInfo || event && !eventCallbacks) {\n return;\n }\n // All params provided. off() that single callback.\n if (callback) {\n removeEventListener(this, emitter, event, callback);\n // We must remove callbacks as well in order to prevent memory leaks.\n // See https://github.com/ckeditor/ckeditor5/pull/8480\n const index = eventCallbacks.indexOf(callback);\n if (index !== -1) {\n if (eventCallbacks.length === 1) {\n delete emitterInfo.callbacks[event];\n } else {\n removeEventListener(this, emitter, event, callback);\n }\n }\n } else if (eventCallbacks) {\n while(callback = eventCallbacks.pop()){\n removeEventListener(this, emitter, event, callback);\n }\n delete emitterInfo.callbacks[event];\n } else if (emitterInfo) {\n for(event in emitterInfo.callbacks){\n this.stopListening(emitter, event);\n }\n delete emitters[emitterId];\n } else {\n for(emitterId in emitters){\n this.stopListening(emitters[emitterId].emitter);\n }\n delete this[_listeningTo];\n }\n }\n fire(eventOrInfo, ...args) {\n try {\n const eventInfo = eventOrInfo instanceof EventInfo ? eventOrInfo : new EventInfo(this, eventOrInfo);\n const event = eventInfo.name;\n let callbacks = getCallbacksForEvent(this, event);\n // Record that the event passed this emitter on its path.\n eventInfo.path.push(this);\n // Handle event listener callbacks first.\n if (callbacks) {\n // Copying callbacks array is the easiest and most secure way of preventing infinite loops, when event callbacks\n // are added while processing other callbacks. Previous solution involved adding counters (unique ids) but\n // failed if callbacks were added to the queue before currently processed callback.\n // If this proves to be too inefficient, another method is to change `.on()` so callbacks are stored if same\n // event is currently processed. Then, `.fire()` at the end, would have to add all stored events.\n callbacks = callbacks.slice();\n for(let i = 0; i < callbacks.length; i++){\n const fn = callbacks[i].callback;\n fn.call(this, eventInfo, ...args);\n // Remove the callback from future requests if off() has been called.\n if (eventInfo.off.called) {\n // Remove the called mark for the next calls.\n delete eventInfo.off.called;\n this._removeEventListener(event, fn);\n }\n // Do not execute next callbacks if stop() was called.\n if (eventInfo.stop.called) {\n break;\n }\n }\n }\n // Delegate event to other emitters if needed.\n const delegations = this[_delegations];\n if (delegations) {\n const destinations = delegations.get(event);\n const passAllDestinations = delegations.get('*');\n if (destinations) {\n fireDelegatedEvents(destinations, eventInfo, args);\n }\n if (passAllDestinations) {\n fireDelegatedEvents(passAllDestinations, eventInfo, args);\n }\n }\n return eventInfo.return;\n } catch (err) {\n // @if CK_DEBUG // throw err;\n /* istanbul ignore next -- @preserve */ CKEditorError.rethrowUnexpectedError(err, this);\n }\n }\n delegate(...events) {\n return {\n to: (emitter, nameOrFunction)=>{\n if (!this[_delegations]) {\n this[_delegations] = new Map();\n }\n // Originally there was a for..of loop which unfortunately caused an error in Babel that didn't allow\n // build an application. See: https://github.com/ckeditor/ckeditor5-react/issues/40.\n events.forEach((eventName)=>{\n const destinations = this[_delegations].get(eventName);\n if (!destinations) {\n this[_delegations].set(eventName, new Map([\n [\n emitter,\n nameOrFunction\n ]\n ]));\n } else {\n destinations.set(emitter, nameOrFunction);\n }\n });\n }\n };\n }\n stopDelegating(event, emitter) {\n if (!this[_delegations]) {\n return;\n }\n if (!event) {\n this[_delegations].clear();\n } else if (!emitter) {\n this[_delegations].delete(event);\n } else {\n const destinations = this[_delegations].get(event);\n if (destinations) {\n destinations.delete(emitter);\n }\n }\n }\n _addEventListener(event, callback, options) {\n createEventNamespace(this, event);\n const lists = getCallbacksListsForNamespace(this, event);\n const priority = priorities.get(options.priority);\n const callbackDefinition = {\n callback,\n priority\n };\n // Add the callback to all callbacks list.\n for (const callbacks of lists){\n // Add the callback to the list in the right priority position.\n insertToPriorityArray(callbacks, callbackDefinition);\n }\n }\n _removeEventListener(event, callback) {\n const lists = getCallbacksListsForNamespace(this, event);\n for (const callbacks of lists){\n for(let i = 0; i < callbacks.length; i++){\n if (callbacks[i].callback == callback) {\n // Remove the callback from the list (fixing the next index).\n callbacks.splice(i, 1);\n i--;\n }\n }\n }\n }\n }\n return Mixin;\n}\n/**\n * Checks if `listeningEmitter` listens to an emitter with given `listenedToEmitterId` and if so, returns that emitter.\n * If not, returns `null`.\n *\n * @internal\n * @param listeningEmitter An emitter that listens.\n * @param listenedToEmitterId Unique emitter id of emitter listened to.\n */ function _getEmitterListenedTo(listeningEmitter, listenedToEmitterId) {\n const listeningTo = listeningEmitter[_listeningTo];\n if (listeningTo && listeningTo[listenedToEmitterId]) {\n return listeningTo[listenedToEmitterId].emitter;\n }\n return null;\n}\n/**\n * Sets emitter's unique id.\n *\n * **Note:** `_emitterId` can be set only once.\n *\n * @internal\n * @param emitter An emitter for which id will be set.\n * @param id Unique id to set. If not passed, random unique id will be set.\n */ function _setEmitterId(emitter, id) {\n if (!emitter[_emitterId]) {\n emitter[_emitterId] = id || uid();\n }\n}\n/**\n * Returns emitter's unique id.\n *\n * @internal\n * @param emitter An emitter which id will be returned.\n */ function _getEmitterId(emitter) {\n return emitter[_emitterId];\n}\n/**\n * Gets the internal `_events` property of the given object.\n * `_events` property store all lists with callbacks for registered event names.\n * If there were no events registered on the object, empty `_events` object is created.\n */ function getEvents(source) {\n if (!source._events) {\n Object.defineProperty(source, '_events', {\n value: {}\n });\n }\n return source._events;\n}\n/**\n * Creates event node for generic-specific events relation architecture.\n */ function makeEventNode() {\n return {\n callbacks: [],\n childEvents: []\n };\n}\n/**\n * Creates an architecture for generic-specific events relation.\n * If needed, creates all events for given eventName, i.e. if the first registered event\n * is foo:bar:abc, it will create foo:bar:abc, foo:bar and foo event and tie them together.\n * It also copies callbacks from more generic events to more specific events when\n * specific events are created.\n */ function createEventNamespace(source, eventName) {\n const events = getEvents(source);\n // First, check if the event we want to add to the structure already exists.\n if (events[eventName]) {\n // If it exists, we don't have to do anything.\n return;\n }\n // In other case, we have to create the structure for the event.\n // Note, that we might need to create intermediate events too.\n // I.e. if foo:bar:abc is being registered and we only have foo in the structure,\n // we need to also register foo:bar.\n // Currently processed event name.\n let name = eventName;\n // Name of the event that is a child event for currently processed event.\n let childEventName = null;\n // Array containing all newly created specific events.\n const newEventNodes = [];\n // While loop can't check for ':' index because we have to handle generic events too.\n // In each loop, we truncate event name, going from the most specific name to the generic one.\n // I.e. foo:bar:abc -> foo:bar -> foo.\n while(name !== ''){\n if (events[name]) {\n break;\n }\n // If this event is not yet registered, create a new object for it.\n events[name] = makeEventNode();\n // Add it to the array with newly created events.\n newEventNodes.push(events[name]);\n // Add previously processed event name as a child of this event.\n if (childEventName) {\n events[name].childEvents.push(childEventName);\n }\n childEventName = name;\n // If `.lastIndexOf()` returns -1, `.substr()` will return '' which will break the loop.\n name = name.substr(0, name.lastIndexOf(':'));\n }\n if (name !== '') {\n // If name is not empty, we found an already registered event that was a parent of the\n // event we wanted to register.\n // Copy that event's callbacks to newly registered events.\n for (const node of newEventNodes){\n node.callbacks = events[name].callbacks.slice();\n }\n // Add last newly created event to the already registered event.\n events[name].childEvents.push(childEventName);\n }\n}\n/**\n * Gets an array containing callbacks list for a given event and it's more specific events.\n * I.e. if given event is foo:bar and there is also foo:bar:abc event registered, this will\n * return callback list of foo:bar and foo:bar:abc (but not foo).\n */ function getCallbacksListsForNamespace(source, eventName) {\n const eventNode = getEvents(source)[eventName];\n if (!eventNode) {\n return [];\n }\n let callbacksLists = [\n eventNode.callbacks\n ];\n for(let i = 0; i < eventNode.childEvents.length; i++){\n const childCallbacksLists = getCallbacksListsForNamespace(source, eventNode.childEvents[i]);\n callbacksLists = callbacksLists.concat(childCallbacksLists);\n }\n return callbacksLists;\n}\n/**\n * Get the list of callbacks for a given event, but only if there any callbacks have been registered.\n * If there are no callbacks registered for given event, it checks if this is a specific event and looks\n * for callbacks for it's more generic version.\n */ function getCallbacksForEvent(source, eventName) {\n if (!source._events) {\n return null;\n }\n let currentEventName = eventName;\n do {\n const event = source._events[currentEventName];\n if (event && event.callbacks && event.callbacks.length) {\n return event.callbacks;\n }\n const colonIndex = currentEventName.lastIndexOf(':');\n currentEventName = colonIndex > -1 ? currentEventName.substring(0, colonIndex) : '';\n }while (currentEventName)\n return null;\n}\n/**\n * Fires delegated events for given map of destinations.\n *\n * @param destinations A map containing `[ {@link module:utils/emittermixin~Emitter}, \"event name\" ]` pair destinations.\n * @param eventInfo The original event info object.\n * @param fireArgs Arguments the original event was fired with.\n */ function fireDelegatedEvents(destinations, eventInfo, fireArgs) {\n for (let [emitter, name] of destinations){\n if (!name) {\n name = eventInfo.name;\n } else if (typeof name == 'function') {\n name = name(eventInfo.name);\n }\n const delegatedInfo = new EventInfo(eventInfo.source, name);\n delegatedInfo.path = [\n ...eventInfo.path\n ];\n emitter.fire(delegatedInfo, ...fireArgs);\n }\n}\n/**\n * Helper for registering event callback on the emitter.\n */ function addEventListener(listener, emitter, event, callback, options) {\n if (emitter._addEventListener) {\n emitter._addEventListener(event, callback, options);\n } else {\n // Allow listening on objects that do not implement Emitter interface.\n // This is needed in some tests that are using mocks instead of the real objects with EmitterMixin mixed.\n listener._addEventListener.call(emitter, event, callback, options);\n }\n}\n/**\n * Helper for removing event callback from the emitter.\n */ function removeEventListener(listener, emitter, event, callback) {\n if (emitter._removeEventListener) {\n emitter._removeEventListener(event, callback);\n } else {\n // Allow listening on objects that do not implement Emitter interface.\n // This is needed in some tests that are using mocks instead of the real objects with EmitterMixin mixed.\n listener._removeEventListener.call(emitter, event, callback);\n }\n}\n\nconst observablePropertiesSymbol = Symbol('observableProperties');\nconst boundObservablesSymbol = Symbol('boundObservables');\nconst boundPropertiesSymbol = Symbol('boundProperties');\nconst decoratedMethods = Symbol('decoratedMethods');\nconst decoratedOriginal = Symbol('decoratedOriginal');\nconst defaultObservableClass = /* #__PURE__ */ ObservableMixin(/* #__PURE__ */ EmitterMixin());\nfunction ObservableMixin(base) {\n if (!base) {\n return defaultObservableClass;\n }\n class Mixin extends base {\n set(name, value) {\n // If the first parameter is an Object, iterate over its properties.\n if (isObject$1(name)) {\n Object.keys(name).forEach((property)=>{\n this.set(property, name[property]);\n }, this);\n return;\n }\n initObservable(this);\n const properties = this[observablePropertiesSymbol];\n if (name in this && !properties.has(name)) {\n /**\n\t\t\t\t * Cannot override an existing property.\n\t\t\t\t *\n\t\t\t\t * This error is thrown when trying to {@link module:utils/observablemixin~Observable#set set} a property with\n\t\t\t\t * a name of an already existing property. For example:\n\t\t\t\t *\n\t\t\t\t * ```ts\n\t\t\t\t * let observable = new Model();\n\t\t\t\t * observable.property = 1;\n\t\t\t\t * observable.set( 'property', 2 );\t\t\t// throws\n\t\t\t\t *\n\t\t\t\t * observable.set( 'property', 1 );\n\t\t\t\t * observable.set( 'property', 2 );\t\t\t// ok, because this is an existing property.\n\t\t\t\t * ```\n\t\t\t\t *\n\t\t\t\t * @error observable-set-cannot-override\n\t\t\t\t */ throw new CKEditorError('observable-set-cannot-override', this);\n }\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n get () {\n return properties.get(name);\n },\n set (value) {\n const oldValue = properties.get(name);\n // Fire `set` event before the new value will be set to make it possible\n // to override observable property without affecting `change` event.\n // See https://github.com/ckeditor/ckeditor5-utils/issues/171.\n let newValue = this.fire(`set:${name}`, name, value, oldValue);\n if (newValue === undefined) {\n newValue = value;\n }\n // Allow undefined as an initial value like A.define( 'x', undefined ) (#132).\n // Note: When properties map has no such own property, then its value is undefined.\n if (oldValue !== newValue || !properties.has(name)) {\n properties.set(name, newValue);\n this.fire(`change:${name}`, name, newValue, oldValue);\n }\n }\n });\n this[name] = value;\n }\n bind(...bindProperties) {\n if (!bindProperties.length || !isStringArray(bindProperties)) {\n /**\n\t\t\t\t * All properties must be strings.\n\t\t\t\t *\n\t\t\t\t * @error observable-bind-wrong-properties\n\t\t\t\t */ throw new CKEditorError('observable-bind-wrong-properties', this);\n }\n if (new Set(bindProperties).size !== bindProperties.length) {\n /**\n\t\t\t\t * Properties must be unique.\n\t\t\t\t *\n\t\t\t\t * @error observable-bind-duplicate-properties\n\t\t\t\t */ throw new CKEditorError('observable-bind-duplicate-properties', this);\n }\n initObservable(this);\n const boundProperties = this[boundPropertiesSymbol];\n bindProperties.forEach((propertyName)=>{\n if (boundProperties.has(propertyName)) {\n /**\n\t\t\t\t\t * Cannot bind the same property more than once.\n\t\t\t\t\t *\n\t\t\t\t\t * @error observable-bind-rebind\n\t\t\t\t\t */ throw new CKEditorError('observable-bind-rebind', this);\n }\n });\n const bindings = new Map();\n bindProperties.forEach((a)=>{\n const binding = {\n property: a,\n to: []\n };\n boundProperties.set(a, binding);\n bindings.set(a, binding);\n });\n return {\n to: bindTo,\n toMany: bindToMany,\n _observable: this,\n _bindProperties: bindProperties,\n _to: [],\n _bindings: bindings\n };\n }\n unbind(...unbindProperties) {\n // Nothing to do here if not inited yet.\n if (!this[observablePropertiesSymbol]) {\n return;\n }\n const boundProperties = this[boundPropertiesSymbol];\n const boundObservables = this[boundObservablesSymbol];\n if (unbindProperties.length) {\n if (!isStringArray(unbindProperties)) {\n /**\n\t\t\t\t\t * Properties must be strings.\n\t\t\t\t\t *\n\t\t\t\t\t * @error observable-unbind-wrong-properties\n\t\t\t\t\t */ throw new CKEditorError('observable-unbind-wrong-properties', this);\n }\n unbindProperties.forEach((propertyName)=>{\n const binding = boundProperties.get(propertyName);\n // Nothing to do if the binding is not defined\n if (!binding) {\n return;\n }\n binding.to.forEach(([toObservable, toProperty])=>{\n const toProperties = boundObservables.get(toObservable);\n const toPropertyBindings = toProperties[toProperty];\n toPropertyBindings.delete(binding);\n if (!toPropertyBindings.size) {\n delete toProperties[toProperty];\n }\n if (!Object.keys(toProperties).length) {\n boundObservables.delete(toObservable);\n this.stopListening(toObservable, 'change');\n }\n });\n boundProperties.delete(propertyName);\n });\n } else {\n boundObservables.forEach((bindings, boundObservable)=>{\n this.stopListening(boundObservable, 'change');\n });\n boundObservables.clear();\n boundProperties.clear();\n }\n }\n decorate(methodName) {\n initObservable(this);\n const originalMethod = this[methodName];\n if (!originalMethod) {\n /**\n\t\t\t\t * Cannot decorate an undefined method.\n\t\t\t\t *\n\t\t\t\t * @error observablemixin-cannot-decorate-undefined\n\t\t\t\t * @param {object} object The object which method should be decorated.\n\t\t\t\t * @param {string} methodName Name of the method which does not exist.\n\t\t\t\t */ throw new CKEditorError('observablemixin-cannot-decorate-undefined', this, {\n object: this,\n methodName\n });\n }\n this.on(methodName, (evt, args)=>{\n evt.return = originalMethod.apply(this, args);\n });\n this[methodName] = function(...args) {\n return this.fire(methodName, args);\n };\n this[methodName][decoratedOriginal] = originalMethod;\n if (!this[decoratedMethods]) {\n this[decoratedMethods] = [];\n }\n this[decoratedMethods].push(methodName);\n }\n // Override the EmitterMixin stopListening method to be able to clean (and restore) decorated methods.\n // This is needed in case of:\n // 1. Have x.foo() decorated.\n // 2. Call x.stopListening()\n // 3. Call x.foo(). Problem: nothing happens (the original foo() method is not executed)\n stopListening(emitter, event, callback) {\n // Removing all listeners so let's clean the decorated methods to the original state.\n if (!emitter && this[decoratedMethods]) {\n for (const methodName of this[decoratedMethods]){\n this[methodName] = this[methodName][decoratedOriginal];\n }\n delete this[decoratedMethods];\n }\n super.stopListening(emitter, event, callback);\n }\n [observablePropertiesSymbol];\n [decoratedMethods];\n [boundPropertiesSymbol];\n [boundObservablesSymbol];\n }\n return Mixin;\n}\n// Init symbol properties needed for the observable mechanism to work.\nfunction initObservable(observable) {\n // Do nothing if already inited.\n if (observable[observablePropertiesSymbol]) {\n return;\n }\n // The internal hash containing the observable's state.\n Object.defineProperty(observable, observablePropertiesSymbol, {\n value: new Map()\n });\n // Map containing bindings to external observables. It shares the binding objects\n // (`{ observable: A, property: 'a', to: ... }`) with {@link module:utils/observablemixin~Observable#_boundProperties} and\n // it is used to observe external observables to update own properties accordingly.\n // See {@link module:utils/observablemixin~Observable#bind}.\n //\n //\t\tA.bind( 'a', 'b', 'c' ).to( B, 'x', 'y', 'x' );\n //\t\tconsole.log( A._boundObservables );\n //\n //\t\t\tMap( {\n //\t\t\t\tB: {\n //\t\t\t\t\tx: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\t\t\t{ observable: A, property: 'c', to: [ [ B, 'x' ] ] }\n //\t\t\t\t\t] ),\n //\t\t\t\t\ty: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\t\t] )\n //\t\t\t\t}\n //\t\t\t} )\n //\n //\t\tA.bind( 'd' ).to( B, 'z' ).to( C, 'w' ).as( callback );\n //\t\tconsole.log( A._boundObservables );\n //\n //\t\t\tMap( {\n //\t\t\t\tB: {\n //\t\t\t\t\tx: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\t\t\t{ observable: A, property: 'c', to: [ [ B, 'x' ] ] }\n //\t\t\t\t\t] ),\n //\t\t\t\t\ty: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\t\t] ),\n //\t\t\t\t\tz: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n //\t\t\t\t\t] )\n //\t\t\t\t},\n //\t\t\t\tC: {\n //\t\t\t\t\tw: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n //\t\t\t\t\t] )\n //\t\t\t\t}\n //\t\t\t} )\n //\n Object.defineProperty(observable, boundObservablesSymbol, {\n value: new Map()\n });\n // Object that stores which properties of this observable are bound and how. It shares\n // the binding objects (`{ observable: A, property: 'a', to: ... }`) with\n // {@link module:utils/observablemixin~Observable#_boundObservables}. This data structure is\n // a reverse of {@link module:utils/observablemixin~Observable#_boundObservables} and it is helpful for\n // {@link module:utils/observablemixin~Observable#unbind}.\n //\n // See {@link module:utils/observablemixin~Observable#bind}.\n //\n //\t\tA.bind( 'a', 'b', 'c' ).to( B, 'x', 'y', 'x' );\n //\t\tconsole.log( A._boundProperties );\n //\n //\t\t\tMap( {\n //\t\t\t\ta: { observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\tb: { observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\tc: { observable: A, property: 'c', to: [ [ B, 'x' ] ] }\n //\t\t\t} )\n //\n //\t\tA.bind( 'd' ).to( B, 'z' ).to( C, 'w' ).as( callback );\n //\t\tconsole.log( A._boundProperties );\n //\n //\t\t\tMap( {\n //\t\t\t\ta: { observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\tb: { observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\tc: { observable: A, property: 'c', to: [ [ B, 'x' ] ] },\n //\t\t\t\td: { observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n //\t\t\t} )\n Object.defineProperty(observable, boundPropertiesSymbol, {\n value: new Map()\n });\n}\n/**\n * A chaining for {@link module:utils/observablemixin~Observable#bind} providing `.to()` interface.\n *\n * @param args Arguments of the `.to( args )` binding.\n */ function bindTo(...args) {\n const parsedArgs = parseBindToArgs(...args);\n const bindingsKeys = Array.from(this._bindings.keys());\n const numberOfBindings = bindingsKeys.length;\n // Eliminate A.bind( 'x' ).to( B, C )\n if (!parsedArgs.callback && parsedArgs.to.length > 1) {\n /**\n\t\t * Binding multiple observables only possible with callback.\n\t\t *\n\t\t * @error observable-bind-to-no-callback\n\t\t */ throw new CKEditorError('observable-bind-to-no-callback', this);\n }\n // Eliminate A.bind( 'x', 'y' ).to( B, callback )\n if (numberOfBindings > 1 && parsedArgs.callback) {\n /**\n\t\t * Cannot bind multiple properties and use a callback in one binding.\n\t\t *\n\t\t * @error observable-bind-to-extra-callback\n\t\t */ throw new CKEditorError('observable-bind-to-extra-callback', this);\n }\n parsedArgs.to.forEach((to)=>{\n // Eliminate A.bind( 'x', 'y' ).to( B, 'a' )\n if (to.properties.length && to.properties.length !== numberOfBindings) {\n /**\n\t\t\t * The number of properties must match.\n\t\t\t *\n\t\t\t * @error observable-bind-to-properties-length\n\t\t\t */ throw new CKEditorError('observable-bind-to-properties-length', this);\n }\n // When no to.properties specified, observing source properties instead i.e.\n // A.bind( 'x', 'y' ).to( B ) -> Observe B.x and B.y\n if (!to.properties.length) {\n to.properties = this._bindProperties;\n }\n });\n this._to = parsedArgs.to;\n // Fill {@link BindChain#_bindings} with callback. When the callback is set there's only one binding.\n if (parsedArgs.callback) {\n this._bindings.get(bindingsKeys[0]).callback = parsedArgs.callback;\n }\n attachBindToListeners(this._observable, this._to);\n // Update observable._boundProperties and observable._boundObservables.\n updateBindToBound(this);\n // Set initial values of bound properties.\n this._bindProperties.forEach((propertyName)=>{\n updateBoundObservableProperty(this._observable, propertyName);\n });\n}\n/**\n * Binds to an attribute in a set of iterable observables.\n */ function bindToMany(observables, attribute, callback) {\n if (this._bindings.size > 1) {\n /**\n\t\t * Binding one attribute to many observables only possible with one attribute.\n\t\t *\n\t\t * @error observable-bind-to-many-not-one-binding\n\t\t */ throw new CKEditorError('observable-bind-to-many-not-one-binding', this);\n }\n this.to(// Bind to #attribute of each observable...\n ...getBindingTargets(observables, attribute), // ...using given callback to parse attribute values.\n callback);\n}\n/**\n * Returns an array of binding components for\n * {@link Observable#bind} from a set of iterable observables.\n */ function getBindingTargets(observables, attribute) {\n const observableAndAttributePairs = observables.map((observable)=>[\n observable,\n attribute\n ]);\n // Merge pairs to one-dimension array of observables and attributes.\n return Array.prototype.concat.apply([], observableAndAttributePairs);\n}\n/**\n * Check if all entries of the array are of `String` type.\n */ function isStringArray(arr) {\n return arr.every((a)=>typeof a == 'string');\n}\n/**\n * Parses and validates {@link Observable#bind}`.to( args )` arguments and returns\n * an object with a parsed structure. For example\n *\n * ```ts\n * A.bind( 'x' ).to( B, 'a', C, 'b', call );\n * ```\n *\n * becomes\n *\n * ```ts\n * {\n * \tto: [\n * \t\t{ observable: B, properties: [ 'a' ] },\n * \t\t{ observable: C, properties: [ 'b' ] },\n * \t],\n * \tcallback: call\n * }\n *\n * @param args Arguments of {@link Observable#bind}`.to( args )`.\n */ function parseBindToArgs(...args) {\n // Eliminate A.bind( 'x' ).to()\n if (!args.length) {\n /**\n\t\t * Invalid argument syntax in `to()`.\n\t\t *\n\t\t * @error observable-bind-to-parse-error\n\t\t */ throw new CKEditorError('observable-bind-to-parse-error', null);\n }\n const parsed = {\n to: []\n };\n let lastObservable;\n if (typeof args[args.length - 1] == 'function') {\n parsed.callback = args.pop();\n }\n args.forEach((a)=>{\n if (typeof a == 'string') {\n lastObservable.properties.push(a);\n } else if (typeof a == 'object') {\n lastObservable = {\n observable: a,\n properties: []\n };\n parsed.to.push(lastObservable);\n } else {\n throw new CKEditorError('observable-bind-to-parse-error', null);\n }\n });\n return parsed;\n}\n/**\n * Synchronizes {@link module:utils/observable#_boundObservables} with {@link Binding}.\n *\n * @param binding A binding to store in {@link Observable#_boundObservables}.\n * @param toObservable A observable, which is a new component of `binding`.\n * @param toPropertyName A name of `toObservable`'s property, a new component of the `binding`.\n */ function updateBoundObservables(observable, binding, toObservable, toPropertyName) {\n const boundObservables = observable[boundObservablesSymbol];\n const bindingsToObservable = boundObservables.get(toObservable);\n const bindings = bindingsToObservable || {};\n if (!bindings[toPropertyName]) {\n bindings[toPropertyName] = new Set();\n }\n // Pass the binding to a corresponding Set in `observable._boundObservables`.\n bindings[toPropertyName].add(binding);\n if (!bindingsToObservable) {\n boundObservables.set(toObservable, bindings);\n }\n}\n/**\n * Synchronizes {@link Observable#_boundProperties} and {@link Observable#_boundObservables}\n * with {@link BindChain}.\n *\n * Assuming the following binding being created\n *\n * ```ts\n * A.bind( 'a', 'b' ).to( B, 'x', 'y' );\n * ```\n *\n * the following bindings were initialized by {@link Observable#bind} in {@link BindChain#_bindings}:\n *\n * ```ts\n * {\n * \ta: { observable: A, property: 'a', to: [] },\n * \tb: { observable: A, property: 'b', to: [] },\n * }\n * ```\n *\n * Iterate over all bindings in this chain and fill their `to` properties with\n * corresponding to( ... ) arguments (components of the binding), so\n *\n * ```ts\n * {\n * \ta: { observable: A, property: 'a', to: [ B, 'x' ] },\n * \tb: { observable: A, property: 'b', to: [ B, 'y' ] },\n * }\n * ```\n *\n * Then update the structure of {@link Observable#_boundObservables} with updated\n * binding, so it becomes:\n *\n * ```ts\n * Map( {\n * \tB: {\n * \t\tx: Set( [\n * \t\t\t{ observable: A, property: 'a', to: [ [ B, 'x' ] ] }\n * \t\t] ),\n * \t\ty: Set( [\n * \t\t\t{ observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n * \t\t] )\n * \t}\n * } )\n * ```\n *\n * @param chain The binding initialized by {@link Observable#bind}.\n */ function updateBindToBound(chain) {\n let toProperty;\n chain._bindings.forEach((binding, propertyName)=>{\n // Note: For a binding without a callback, this will run only once\n // like in A.bind( 'x', 'y' ).to( B, 'a', 'b' )\n // TODO: ES6 destructuring.\n chain._to.forEach((to)=>{\n toProperty = to.properties[binding.callback ? 0 : chain._bindProperties.indexOf(propertyName)];\n binding.to.push([\n to.observable,\n toProperty\n ]);\n updateBoundObservables(chain._observable, binding, to.observable, toProperty);\n });\n });\n}\n/**\n * Updates an property of a {@link Observable} with a value\n * determined by an entry in {@link Observable#_boundProperties}.\n *\n * @param observable A observable which property is to be updated.\n * @param propertyName An property to be updated.\n */ function updateBoundObservableProperty(observable, propertyName) {\n const boundProperties = observable[boundPropertiesSymbol];\n const binding = boundProperties.get(propertyName);\n let propertyValue;\n // When a binding with callback is created like\n //\n // \t\tA.bind( 'a' ).to( B, 'b', C, 'c', callback );\n //\n // collect B.b and C.c, then pass them to callback to set A.a.\n if (binding.callback) {\n propertyValue = binding.callback.apply(observable, binding.to.map((to)=>to[0][to[1]]));\n } else {\n propertyValue = binding.to[0];\n propertyValue = propertyValue[0][propertyValue[1]];\n }\n if (Object.prototype.hasOwnProperty.call(observable, propertyName)) {\n observable[propertyName] = propertyValue;\n } else {\n observable.set(propertyName, propertyValue);\n }\n}\n/**\n * Starts listening to changes in {@link BindChain._to} observables to update\n * {@link BindChain._observable} {@link BindChain._bindProperties}. Also sets the\n * initial state of {@link BindChain._observable}.\n *\n * @param chain The chain initialized by {@link Observable#bind}.\n */ function attachBindToListeners(observable, toBindings) {\n toBindings.forEach((to)=>{\n const boundObservables = observable[boundObservablesSymbol];\n let bindings;\n // If there's already a chain between the observables (`observable` listens to\n // `to.observable`), there's no need to create another `change` event listener.\n if (!boundObservables.get(to.observable)) {\n observable.listenTo(to.observable, 'change', (evt, propertyName)=>{\n bindings = boundObservables.get(to.observable)[propertyName];\n // Note: to.observable will fire for any property change, react\n // to changes of properties which are bound only.\n if (bindings) {\n bindings.forEach((binding)=>{\n updateBoundObservableProperty(observable, binding.property);\n });\n }\n });\n }\n });\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/elementreplacer\n */ /**\n * Utility class allowing to hide existing HTML elements or replace them with given ones in a way that doesn't remove\n * the original elements from the DOM.\n */ class ElementReplacer {\n /**\n\t * The elements replaced by {@link #replace} and their replacements.\n\t */ _replacedElements;\n constructor(){\n this._replacedElements = [];\n }\n /**\n\t * Hides the `element` and, if specified, inserts the the given element next to it.\n\t *\n\t * The effect of this method can be reverted by {@link #restore}.\n\t *\n\t * @param element The element to replace.\n\t * @param newElement The replacement element. If not passed, then the `element` will just be hidden.\n\t */ replace(element, newElement) {\n this._replacedElements.push({\n element,\n newElement\n });\n element.style.display = 'none';\n if (newElement) {\n element.parentNode.insertBefore(newElement, element.nextSibling);\n }\n }\n /**\n\t * Restores what {@link #replace} did.\n\t */ restore() {\n this._replacedElements.forEach(({ element, newElement })=>{\n element.style.display = '';\n if (newElement) {\n newElement.remove();\n }\n });\n this._replacedElements = [];\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/abortabledebounce\n */ /**\n * Returns a function wrapper that will execute the provided function and abort any previous call that is still in progress.\n *\n * @param func The function to be called. It will be provided with `AbortSignal` as the first parameter.\n */ function abortableDebounce(func) {\n let controller = new AbortController();\n function abortable(...args) {\n controller.abort();\n controller = new AbortController();\n return func(controller.signal, ...args);\n }\n abortable.abort = ()=>controller.abort();\n return abortable;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/count\n */ /**\n * Returns the number of items return by the iterator.\n *\n * ```ts\n * count( [ 1, 2, 3, 4, 5 ] ); // 5;\n * ```\n *\n * @param iterable Any iterable.\n * @returns Number of items returned by that iterable.\n */ function count(iterable) {\n let count = 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const _ of iterable){\n count++;\n }\n return count;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/comparearrays\n */ /**\n * Compares how given arrays relate to each other. One array can be: same as another array, prefix of another array\n * or completely different. If arrays are different, first index at which they differ is returned. Otherwise,\n * a flag specifying the relation is returned. Flags are negative numbers, so whenever a number >= 0 is returned\n * it means that arrays differ.\n *\n * ```ts\n * compareArrays( [ 0, 2 ], [ 0, 2 ] );\t\t// 'same'\n * compareArrays( [ 0, 2 ], [ 0, 2, 1 ] );\t\t// 'prefix'\n * compareArrays( [ 0, 2 ], [ 0 ] );\t\t\t// 'extension'\n * compareArrays( [ 0, 2 ], [ 1, 2 ] );\t\t// 0\n * compareArrays( [ 0, 2 ], [ 0, 1 ] );\t\t// 1\n * ```\n *\n * @param a Array that is compared.\n * @param b Array to compare with.\n * @returns How array `a` is related to `b`.\n */ function compareArrays(a, b) {\n const minLen = Math.min(a.length, b.length);\n for(let i = 0; i < minLen; i++){\n if (a[i] != b[i]) {\n // The arrays are different.\n return i;\n }\n }\n // Both arrays were same at all points.\n if (a.length == b.length) {\n // If their length is also same, they are the same.\n return 'same';\n } else if (a.length < b.length) {\n // Compared array is shorter so it is a prefix of the other array.\n return 'prefix';\n } else {\n // Compared array is longer so it is an extension of the other array.\n return 'extension';\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/isiterable\n */ /**\n * Checks if value implements iterator interface.\n *\n * @param value The value to check.\n * @returns True if value implements iterator interface.\n */ function isIterable(value) {\n return !!(value && value[Symbol.iterator]);\n}\n\n/**\n * Creates an HTML or SVG element with attributes and children elements.\n *\n * ```ts\n * createElement( document, 'p' ); //

\n * createElement( document, 'mask', { xmlns: 'http://www.w3.org/2000/svg' } ); // \n * ```\n *\n * @param doc Document used to create the element.\n * @param name Name of the element.\n * @param attributes Object where keys represent attribute keys and values represent attribute values.\n * @param children Child or any iterable of children. Strings will be automatically turned into Text nodes.\n * @returns HTML or SVG element.\n */ function createElement(doc, name, attributes = {}, children = []) {\n const namespace = attributes && attributes.xmlns;\n const element = namespace ? doc.createElementNS(namespace, name) : doc.createElement(name);\n for(const key in attributes){\n element.setAttribute(key, attributes[key]);\n }\n if (isString(children) || !isIterable(children)) {\n children = [\n children\n ];\n }\n for (let child of children){\n if (isString(child)) {\n child = doc.createTextNode(child);\n }\n element.appendChild(child);\n }\n return element;\n}\n\n/**\n * Handles a configuration dictionary.\n *\n * @typeParam Cfg A type of the configuration dictionary.\n */ class Config {\n /**\n\t * Store for the whole configuration.\n\t */ _config;\n /**\n\t * Creates an instance of the {@link ~Config} class.\n\t *\n\t * @param configurations The initial configurations to be set. Usually, provided by the user.\n\t * @param defaultConfigurations The default configurations. Usually, provided by the system.\n\t */ constructor(configurations, defaultConfigurations){\n this._config = Object.create(null);\n // Set default configuration.\n if (defaultConfigurations) {\n // Clone the configuration to make sure that the properties will not be shared\n // between editors and make the watchdog feature work correctly.\n this.define(cloneConfig(defaultConfigurations));\n }\n // Set initial configuration.\n if (configurations) {\n this._setObjectToTarget(this._config, configurations);\n }\n }\n set(name, value) {\n this._setToTarget(this._config, name, value);\n }\n define(name, value) {\n const isDefine = true;\n this._setToTarget(this._config, name, value, isDefine);\n }\n /**\n\t * Gets the value for a configuration entry.\n\t *\n\t * ```ts\n\t * config.get( 'name' );\n\t * ```\n\t *\n\t * Deep configurations can be retrieved by separating each part with a dot.\n\t *\n\t * ```ts\n\t * config.get( 'toolbar.collapsed' );\n\t * ```\n\t *\n\t * @param name The configuration name. Configuration names are case-sensitive.\n\t * @returns The configuration value or `undefined` if the configuration entry was not found.\n\t */ get(name) {\n return this._getFromSource(this._config, name);\n }\n /**\n\t * Iterates over all top level configuration names.\n\t */ *names() {\n for (const name of Object.keys(this._config)){\n yield name;\n }\n }\n /**\n\t * Saves passed configuration to the specified target (nested object).\n\t *\n\t * @param target Nested config object.\n\t * @param name The configuration name or an object from which take properties as\n\t * configuration entries. Configuration names are case-sensitive.\n\t * @param value The configuration value. Used if a name is passed.\n\t * @param isDefine Define if passed configuration should overwrite existing one.\n\t */ _setToTarget(target, name, value, isDefine = false) {\n // In case of an object, iterate through it and call `_setToTarget` again for each property.\n if (isPlainObject(name)) {\n this._setObjectToTarget(target, name, isDefine);\n return;\n }\n // The configuration name should be split into parts if it has dots. E.g. `resize.width` -> [`resize`, `width`].\n const parts = name.split('.');\n // Take the name of the configuration out of the parts. E.g. `resize.width` -> `width`.\n name = parts.pop();\n // Iterate over parts to check if currently stored configuration has proper structure.\n for (const part of parts){\n // If there is no object for specified part then create one.\n if (!isPlainObject(target[part])) {\n target[part] = Object.create(null);\n }\n // Nested object becomes a target.\n target = target[part];\n }\n // In case of value is an object.\n if (isPlainObject(value)) {\n // We take care of proper config structure.\n if (!isPlainObject(target[name])) {\n target[name] = Object.create(null);\n }\n target = target[name];\n // And iterate through this object calling `_setToTarget` again for each property.\n this._setObjectToTarget(target, value, isDefine);\n return;\n }\n // Do nothing if we are defining configuration for non empty name.\n if (isDefine && typeof target[name] != 'undefined') {\n return;\n }\n target[name] = value;\n }\n /**\n\t * Get specified configuration from specified source (nested object).\n\t *\n\t * @param source level of nested object.\n\t * @param name The configuration name. Configuration names are case-sensitive.\n\t * @returns The configuration value or `undefined` if the configuration entry was not found.\n\t */ _getFromSource(source, name) {\n // The configuration name should be split into parts if it has dots. E.g. `resize.width` -> [`resize`, `width`].\n const parts = name.split('.');\n // Take the name of the configuration out of the parts. E.g. `resize.width` -> `width`.\n name = parts.pop();\n // Iterate over parts to check if currently stored configuration has proper structure.\n for (const part of parts){\n if (!isPlainObject(source[part])) {\n source = null;\n break;\n }\n // Nested object becomes a source.\n source = source[part];\n }\n // Always returns undefined for non existing configuration.\n return source ? cloneConfig(source[name]) : undefined;\n }\n /**\n\t * Iterates through passed object and calls {@link #_setToTarget} method with object key and value for each property.\n\t *\n\t * @param target Nested config object.\n\t * @param configuration Configuration data set\n\t * @param isDefine Defines if passed configuration is default configuration or not.\n\t */ _setObjectToTarget(target, configuration, isDefine) {\n Object.keys(configuration).forEach((key)=>{\n this._setToTarget(target, key, configuration[key], isDefine);\n });\n }\n}\n/**\n * Clones configuration object or value.\n */ function cloneConfig(source) {\n return cloneDeepWith(source, leaveItemReferences);\n}\n/**\n * A customized function for cloneDeepWith.\n * In case if it's a DOM Element it will leave references to DOM Elements instead of cloning them.\n * If it's a function it will leave reference to actuall function.\n */ function leaveItemReferences(value) {\n return isElement$1(value) || typeof value === 'function' ? value : undefined;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/isnode\n */ /**\n * Checks if the object is a native DOM Node.\n */ function isNode(obj) {\n if (obj) {\n if (obj.defaultView) {\n return obj instanceof obj.defaultView.Document;\n } else if (obj.ownerDocument && obj.ownerDocument.defaultView) {\n return obj instanceof obj.ownerDocument.defaultView.Node;\n }\n }\n return false;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/iswindow\n */ /**\n * Checks if the object is a native DOM Window.\n */ function isWindow(obj) {\n const stringifiedObject = Object.prototype.toString.apply(obj);\n // Returns `true` for the `window` object in browser environments.\n if (stringifiedObject == '[object Window]') {\n return true;\n }\n // Returns `true` for the `window` object in the Electron environment.\n if (stringifiedObject == '[object global]') {\n return true;\n }\n return false;\n}\n\nconst defaultEmitterClass = /* #__PURE__ */ DomEmitterMixin(/* #__PURE__ */ EmitterMixin());\nfunction DomEmitterMixin(base) {\n if (!base) {\n return defaultEmitterClass;\n }\n class Mixin extends base {\n listenTo(emitter, event, callback, options = {}) {\n // Check if emitter is an instance of DOM Node. If so, use corresponding ProxyEmitter (or create one if not existing).\n if (isNode(emitter) || isWindow(emitter) || emitter instanceof globalVar.window.EventTarget) {\n const proxyOptions = {\n capture: !!options.useCapture,\n passive: !!options.usePassive\n };\n const proxyEmitter = this._getProxyEmitter(emitter, proxyOptions) || new ProxyEmitter(emitter, proxyOptions);\n this.listenTo(proxyEmitter, event, callback, options);\n } else {\n // Execute parent class method with Emitter (or ProxyEmitter) instance.\n super.listenTo(emitter, event, callback, options);\n }\n }\n stopListening(emitter, event, callback) {\n // Check if the emitter is an instance of DOM Node. If so, forward the call to the corresponding ProxyEmitters.\n if (isNode(emitter) || isWindow(emitter) || emitter instanceof globalVar.window.EventTarget) {\n const proxyEmitters = this._getAllProxyEmitters(emitter);\n for (const proxy of proxyEmitters){\n this.stopListening(proxy, event, callback);\n }\n } else {\n // Execute parent class method with Emitter (or ProxyEmitter) instance.\n super.stopListening(emitter, event, callback);\n }\n }\n /**\n\t\t * Retrieves ProxyEmitter instance for given DOM Node residing in this Host and given options.\n\t\t *\n\t\t * @param node DOM Node of the ProxyEmitter.\n\t\t * @param options Additional options.\n\t\t * @param options.useCapture Indicates that events of this type will be dispatched to the registered\n\t\t * listener before being dispatched to any EventTarget beneath it in the DOM tree.\n\t\t * @param options.usePassive Indicates that the function specified by listener will never call preventDefault()\n\t\t * and prevents blocking browser's main thread by this event handler.\n\t\t * @returns ProxyEmitter instance bound to the DOM Node.\n\t\t */ _getProxyEmitter(node, options) {\n return _getEmitterListenedTo(this, getProxyEmitterId(node, options));\n }\n /**\n\t\t * Retrieves all the ProxyEmitter instances for given DOM Node residing in this Host.\n\t\t *\n\t\t * @param node DOM Node of the ProxyEmitter.\n\t\t */ _getAllProxyEmitters(node) {\n return [\n {\n capture: false,\n passive: false\n },\n {\n capture: false,\n passive: true\n },\n {\n capture: true,\n passive: false\n },\n {\n capture: true,\n passive: true\n }\n ].map((options)=>this._getProxyEmitter(node, options)).filter((proxy)=>!!proxy);\n }\n }\n return Mixin;\n}\n/**\n * Creates a ProxyEmitter instance. Such an instance is a bridge between a DOM Node firing events\n * and any Host listening to them. It is backwards compatible with {@link module:utils/emittermixin~Emitter#on}.\n * There is a separate instance for each combination of modes (useCapture & usePassive). The mode is concatenated with\n * UID stored in HTMLElement to give each instance unique identifier.\n *\n * listenTo( click, ... )\n * +-----------------------------------------+\n * | stopListening( ... ) |\n * +----------------------------+ | addEventListener( click, ... )\n * | Host | | +---------------------------------------------+\n * +----------------------------+ | | removeEventListener( click, ... ) |\n * | _listeningTo: { | +----------v-------------+ |\n * | UID+mode: { | | ProxyEmitter | |\n * | emitter: ProxyEmitter, | +------------------------+ +------------v----------+\n * | callbacks: { | | events: { | | Node (HTMLElement) |\n * | click: [ callbacks ] | | click: [ callbacks ] | +-----------------------+\n * | } | | }, | | data-ck-expando: UID |\n * | } | | _domNode: Node, | +-----------------------+\n * | } | | _domListeners: {}, | |\n * | +------------------------+ | | _emitterId: UID+mode | |\n * | | DomEmitterMixin | | +--------------^---------+ |\n * | +------------------------+ | | | |\n * +--------------^-------------+ | +---------------------------------------------+\n * | | click (DOM Event)\n * +-----------------------------------------+\n * fire( click, DOM Event )\n */ class ProxyEmitter extends /* #__PURE__ */ EmitterMixin() {\n _domNode;\n _options;\n /**\n\t * @param node DOM Node that fires events.\n\t * @param options Additional options.\n\t * @param options.useCapture Indicates that events of this type will be dispatched to the registered\n\t * listener before being dispatched to any EventTarget beneath it in the DOM tree.\n\t * @param options.usePassive Indicates that the function specified by listener will never call preventDefault()\n\t * and prevents blocking browser's main thread by this event handler.\n\t */ constructor(node, options){\n super();\n // Set emitter ID to match DOM Node \"expando\" property.\n _setEmitterId(this, getProxyEmitterId(node, options));\n // Remember the DOM Node this ProxyEmitter is bound to.\n this._domNode = node;\n // And given options.\n this._options = options;\n }\n /**\n\t * Collection of native DOM listeners.\n\t */ _domListeners;\n /**\n\t * Registers a callback function to be executed when an event is fired.\n\t *\n\t * It attaches a native DOM listener to the DOM Node. When fired,\n\t * a corresponding Emitter event will also fire with DOM Event object as an argument.\n\t *\n\t * **Note**: This is automatically called by the\n\t * {@link module:utils/emittermixin~Emitter#listenTo `Emitter#listenTo()`}.\n\t *\n\t * @param event The name of the event.\n\t */ attach(event) {\n // If the DOM Listener for given event already exist it is pointless\n // to attach another one.\n if (this._domListeners && this._domListeners[event]) {\n return;\n }\n const domListener = this._createDomListener(event);\n // Attach the native DOM listener to DOM Node.\n this._domNode.addEventListener(event, domListener, this._options);\n if (!this._domListeners) {\n this._domListeners = {};\n }\n // Store the native DOM listener in this ProxyEmitter. It will be helpful\n // when stopping listening to the event.\n this._domListeners[event] = domListener;\n }\n /**\n\t * Stops executing the callback on the given event.\n\t *\n\t * **Note**: This is automatically called by the\n\t * {@link module:utils/emittermixin~Emitter#stopListening `Emitter#stopListening()`}.\n\t *\n\t * @param event The name of the event.\n\t */ detach(event) {\n let events;\n // Remove native DOM listeners which are orphans. If no callbacks\n // are awaiting given event, detach native DOM listener from DOM Node.\n // See: {@link attach}.\n if (this._domListeners[event] && (!(events = this._events[event]) || !events.callbacks.length)) {\n this._domListeners[event].removeListener();\n }\n }\n /**\n\t * Adds callback to emitter for given event.\n\t *\n\t * @internal\n\t * @param event The name of the event.\n\t * @param callback The function to be called on event.\n\t * @param options Additional options.\n\t */ _addEventListener(event, callback, options) {\n this.attach(event);\n EmitterMixin().prototype._addEventListener.call(this, event, callback, options);\n }\n /**\n\t * Removes callback from emitter for given event.\n\t *\n\t * @internal\n\t * @param event The name of the event.\n\t * @param callback The function to stop being called.\n\t */ _removeEventListener(event, callback) {\n EmitterMixin().prototype._removeEventListener.call(this, event, callback);\n this.detach(event);\n }\n /**\n\t * Creates a native DOM listener callback. When the native DOM event\n\t * is fired it will fire corresponding event on this ProxyEmitter.\n\t * Note: A native DOM Event is passed as an argument.\n\t *\n\t * @param event The name of the event.\n\t * @returns The DOM listener callback.\n\t */ _createDomListener(event) {\n const domListener = (domEvt)=>{\n this.fire(event, domEvt);\n };\n // Supply the DOM listener callback with a function that will help\n // detach it from the DOM Node, when it is no longer necessary.\n // See: {@link detach}.\n domListener.removeListener = ()=>{\n this._domNode.removeEventListener(event, domListener, this._options);\n delete this._domListeners[event];\n };\n return domListener;\n }\n}\n/**\n * Gets an unique DOM Node identifier. The identifier will be set if not defined.\n *\n * @returns UID for given DOM Node.\n */ function getNodeUID(node) {\n return node['data-ck-expando'] || (node['data-ck-expando'] = uid());\n}\n/**\n * Gets id of the ProxyEmitter for the given node.\n */ function getProxyEmitterId(node, options) {\n let id = getNodeUID(node);\n for (const option of Object.keys(options).sort()){\n if (options[option]) {\n id += '-' + option;\n }\n }\n return id;\n}\n\n/**\n * Returns the closest scrollable ancestor of a DOM element.\n *\n * @param domElement DOM element.\n * @returns First ancestor of `domElement` that is scrollable or null if such ancestor doesn't exist.\n */ function findClosestScrollableAncestor(domElement) {\n let element = domElement.parentElement;\n if (!element) {\n return null;\n }\n while(element.tagName != 'BODY'){\n const overflow = element.style.overflowY || globalVar.window.getComputedStyle(element).overflowY;\n if (overflow === 'auto' || overflow === 'scroll') {\n break;\n }\n element = element.parentElement;\n if (!element) {\n return null;\n }\n }\n return element;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/getancestors\n */ /**\n * Returns all ancestors of given DOM node, starting from the top-most (root). Includes the given node itself. If the\n * node is a part of `DocumentFragment` that `DocumentFragment` will be returned. In contrary, if the node is\n * appended to a `Document`, that `Document` will not be returned (algorithms operating on DOM tree care for `Document#documentElement`\n * at most, which will be returned).\n *\n * @param node DOM node.\n * @returns Array of given `node` parents.\n */ function getAncestors(node) {\n const nodes = [];\n let currentNode = node;\n // We are interested in `Node`s `DocumentFragment`s only.\n while(currentNode && currentNode.nodeType != Node.DOCUMENT_NODE){\n nodes.unshift(currentNode);\n currentNode = currentNode.parentNode;\n }\n return nodes;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/getdatafromelement\n */ /**\n * Gets data from a given source element.\n *\n * @param el The element from which the data will be retrieved.\n * @returns The data string.\n */ function getDataFromElement(el) {\n if (el instanceof HTMLTextAreaElement) {\n return el.value;\n }\n return el.innerHTML;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/getborderwidths\n */ /**\n * Returns an object containing CSS border widths of a specified HTML element.\n *\n * @param element An element which has CSS borders.\n * @returns An object containing `top`, `left`, `right` and `bottom` properties\n * with numerical values of the `border-[top,left,right,bottom]-width` CSS styles.\n */ function getBorderWidths(element) {\n // Call getComputedStyle on the window the element document belongs to.\n const style = element.ownerDocument.defaultView.getComputedStyle(element);\n return {\n top: parseInt(style.borderTopWidth, 10),\n right: parseInt(style.borderRightWidth, 10),\n bottom: parseInt(style.borderBottomWidth, 10),\n left: parseInt(style.borderLeftWidth, 10)\n };\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/getrangefrommouseevent\n */ /**\n * Returns a DOM range from a given point specified by a mouse event.\n *\n * @param domEvent The mouse event.\n * @returns The DOM range.\n */ function getRangeFromMouseEvent(domEvent) {\n if (!domEvent.target) {\n return null;\n }\n const domDoc = domEvent.target.ownerDocument;\n const x = domEvent.clientX;\n const y = domEvent.clientY;\n let domRange = null;\n // Webkit & Blink.\n if (domDoc.caretRangeFromPoint && domDoc.caretRangeFromPoint(x, y)) {\n domRange = domDoc.caretRangeFromPoint(x, y);\n } else if (domEvent.rangeParent) {\n domRange = domDoc.createRange();\n domRange.setStart(domEvent.rangeParent, domEvent.rangeOffset);\n domRange.collapse(true);\n }\n return domRange;\n}\n\n/**\n * Searches and returns the lowest common ancestor of two given nodes.\n *\n * @param nodeA First node.\n * @param nodeB Second node.\n * @returns Lowest common ancestor of both nodes or `null` if nodes do not have a common ancestor.\n */ function getCommonAncestor(nodeA, nodeB) {\n const ancestorsA = getAncestors(nodeA);\n const ancestorsB = getAncestors(nodeB);\n let i = 0;\n // It does not matter which array is shorter.\n while(ancestorsA[i] == ancestorsB[i] && ancestorsA[i]){\n i++;\n }\n return i === 0 ? null : ancestorsA[i - 1];\n}\n\n/**\n * For a given element, returns the nearest ancestor element which CSS position is not \"static\".\n *\n * @param element The native DOM element to be checked.\n */ function getPositionedAncestor(element) {\n if (!element || !element.parentNode) {\n return null;\n }\n if (element.offsetParent === globalVar.document.body) {\n return null;\n }\n return element.offsetParent;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/istext\n */ /**\n * Checks if the object is a native DOM Text node.\n */ function isText(obj) {\n return Object.prototype.toString.call(obj) == '[object Text]';\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/isrange\n */ /**\n * Checks if the object is a native DOM Range.\n */ function isRange(obj) {\n return Object.prototype.toString.apply(obj) == '[object Range]';\n}\n\nconst RECT_PROPERTIES = [\n 'top',\n 'right',\n 'bottom',\n 'left',\n 'width',\n 'height'\n];\nconst POSITIONING_VALUES = new Set([\n 'relative',\n 'absolute',\n 'fixed',\n 'sticky'\n]);\n/**\n * A helper class representing a `ClientRect` object, e.g. value returned by\n * the native `object.getBoundingClientRect()` method. Provides a set of methods\n * to manipulate the rect and compare it against other rect instances.\n */ class Rect {\n /**\n\t * The \"top\" value of the rect.\n\t *\n\t * @readonly\n\t */ top;\n /**\n\t * The \"right\" value of the rect.\n\t *\n\t * @readonly\n\t */ right;\n /**\n\t * The \"bottom\" value of the rect.\n\t *\n\t * @readonly\n\t */ bottom;\n /**\n\t * The \"left\" value of the rect.\n\t *\n\t * @readonly\n\t */ left;\n /**\n\t * The \"width\" value of the rect.\n\t *\n\t * @readonly\n\t */ width;\n /**\n\t * The \"height\" value of the rect.\n\t *\n\t * @readonly\n\t */ height;\n /**\n\t * The object this rect is for.\n\t *\n\t * @readonly\n\t */ _source;\n /**\n\t * Creates an instance of rect.\n\t *\n\t * ```ts\n\t * // Rect of an HTMLElement.\n\t * const rectA = new Rect( document.body );\n\t *\n\t * // Rect of a DOM Range.\n\t * const rectB = new Rect( document.getSelection().getRangeAt( 0 ) );\n\t *\n\t * // Rect of a window (web browser viewport).\n\t * const rectC = new Rect( window );\n\t *\n\t * // Rect out of an object.\n\t * const rectD = new Rect( { top: 0, right: 10, bottom: 10, left: 0, width: 10, height: 10 } );\n\t *\n\t * // Rect out of another Rect instance.\n\t * const rectE = new Rect( rectD );\n\t *\n\t * // Rect out of a ClientRect.\n\t * const rectF = new Rect( document.body.getClientRects().item( 0 ) );\n\t * ```\n\t *\n\t * **Note**: By default a rect of an HTML element includes its CSS borders and scrollbars (if any)\n\t * ant the rect of a `window` includes scrollbars too. Use {@link #excludeScrollbarsAndBorders}\n\t * to get the inner part of the rect.\n\t *\n\t * @param source A source object to create the rect.\n\t */ constructor(source){\n const isSourceRange = isRange(source);\n Object.defineProperty(this, '_source', {\n // If the source is a Rect instance, copy it's #_source.\n value: source._source || source,\n writable: true,\n enumerable: false\n });\n if (isDomElement(source) || isSourceRange) {\n // The `Rect` class depends on `getBoundingClientRect` and `getClientRects` DOM methods. If the source\n // of a rect in an HTML element or a DOM range but it does not belong to any rendered DOM tree, these methods\n // will fail to obtain the geometry and the rect instance makes little sense to the features using it.\n // To get rid of this warning make sure the source passed to the constructor is a descendant of `window.document.body`.\n // @if CK_DEBUG // const sourceNode = isSourceRange ? source.startContainer : source;\n // @if CK_DEBUG // if ( !sourceNode.ownerDocument || !sourceNode.ownerDocument.body.contains( sourceNode ) ) {\n // @if CK_DEBUG // \tconsole.warn(\n // @if CK_DEBUG // \t\t'rect-source-not-in-dom: The source of this rect does not belong to any rendered DOM tree.',\n // @if CK_DEBUG // \t\t{ source } );\n // @if CK_DEBUG // }\n if (isSourceRange) {\n const rangeRects = Rect.getDomRangeRects(source);\n copyRectProperties(this, Rect.getBoundingRect(rangeRects));\n } else {\n copyRectProperties(this, source.getBoundingClientRect());\n }\n } else if (isWindow(source)) {\n const { innerWidth, innerHeight } = source;\n copyRectProperties(this, {\n top: 0,\n right: innerWidth,\n bottom: innerHeight,\n left: 0,\n width: innerWidth,\n height: innerHeight\n });\n } else {\n copyRectProperties(this, source);\n }\n }\n /**\n\t * Returns a clone of the rect.\n\t *\n\t * @returns A cloned rect.\n\t */ clone() {\n return new Rect(this);\n }\n /**\n\t * Moves the rect so that its upper–left corner lands in desired `[ x, y ]` location.\n\t *\n\t * @param x Desired horizontal location.\n\t * @param y Desired vertical location.\n\t * @returns A rect which has been moved.\n\t */ moveTo(x, y) {\n this.top = y;\n this.right = x + this.width;\n this.bottom = y + this.height;\n this.left = x;\n return this;\n }\n /**\n\t * Moves the rect in–place by a dedicated offset.\n\t *\n\t * @param x A horizontal offset.\n\t * @param y A vertical offset\n\t * @returns A rect which has been moved.\n\t */ moveBy(x, y) {\n this.top += y;\n this.right += x;\n this.left += x;\n this.bottom += y;\n return this;\n }\n /**\n\t * Returns a new rect a a result of intersection with another rect.\n\t */ getIntersection(anotherRect) {\n const rect = {\n top: Math.max(this.top, anotherRect.top),\n right: Math.min(this.right, anotherRect.right),\n bottom: Math.min(this.bottom, anotherRect.bottom),\n left: Math.max(this.left, anotherRect.left),\n width: 0,\n height: 0\n };\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n if (rect.width < 0 || rect.height < 0) {\n return null;\n } else {\n const newRect = new Rect(rect);\n newRect._source = this._source;\n return newRect;\n }\n }\n /**\n\t * Returns the area of intersection with another rect.\n\t *\n\t * @returns Area of intersection.\n\t */ getIntersectionArea(anotherRect) {\n const rect = this.getIntersection(anotherRect);\n if (rect) {\n return rect.getArea();\n } else {\n return 0;\n }\n }\n /**\n\t * Returns the area of the rect.\n\t */ getArea() {\n return this.width * this.height;\n }\n /**\n\t * Returns a new rect, a part of the original rect, which is actually visible to the user and is relative to the,`body`,\n\t * e.g. an original rect cropped by parent element rects which have `overflow` set in CSS\n\t * other than `\"visible\"`.\n\t *\n\t * If there's no such visible rect, which is when the rect is limited by one or many of\n\t * the ancestors, `null` is returned.\n\t *\n\t * **Note**: This method does not consider the boundaries of the viewport (window).\n\t * To get a rect cropped by all ancestors and the viewport, use an intersection such as:\n\t *\n\t * ```ts\n\t * const visibleInViewportRect = new Rect( window ).getIntersection( new Rect( source ).getVisible() );\n\t * ```\n\t *\n\t * @returns A visible rect instance or `null`, if there's none.\n\t */ getVisible() {\n const source = this._source;\n let visibleRect = this.clone();\n // There's no ancestor to crop with the overflow.\n if (isBody(source)) {\n return visibleRect;\n }\n let child = source;\n let parent = source.parentNode || source.commonAncestorContainer;\n let lastPositionedChildElement;\n // Check the ancestors all the way up to the .\n while(parent && !isBody(parent)){\n const isNonClippingParent = getElementOverflow(parent) === 'visible';\n if (isPositioned(child)) {\n lastPositionedChildElement = child;\n }\n // 1. If a parent has overflow: visible, it can be safely skipped in consideration for any parent-child configuration.\n // 2. If a parent has any other overflow (it clips), for the actual clipping to happen the following must be true:\n // * the last positioned child must have `position: absolute`,\n // * the parent must have a position other than `position: static`.\n //\n // https://github.com/ckeditor/ckeditor5/issues/14107.\n if (isNonClippingParent || lastPositionedChildElement && getElementPosition(lastPositionedChildElement) === 'absolute' && !isPositioned(parent)) {\n child = parent;\n parent = parent.parentNode;\n continue;\n }\n const parentRect = new Rect(parent);\n const intersectionRect = visibleRect.getIntersection(parentRect);\n if (intersectionRect) {\n if (intersectionRect.getArea() < visibleRect.getArea()) {\n // Reduce the visible rect to the intersection.\n visibleRect = intersectionRect;\n }\n } else {\n // There's no intersection, the rect is completely invisible.\n return null;\n }\n child = parent;\n parent = parent.parentNode;\n }\n return visibleRect;\n }\n /**\n\t * Checks if all property values ({@link #top}, {@link #left}, {@link #right},\n\t * {@link #bottom}, {@link #width} and {@link #height}) are the equal in both rect\n\t * instances.\n\t *\n\t * @param anotherRect A rect instance to compare with.\n\t * @returns `true` when Rects are equal. `false` otherwise.\n\t */ isEqual(anotherRect) {\n for (const prop of RECT_PROPERTIES){\n if (this[prop] !== anotherRect[prop]) {\n return false;\n }\n }\n return true;\n }\n /**\n\t * Checks whether a rect fully contains another rect instance.\n\t *\n\t * @param anotherRect\n\t * @returns `true` if contains, `false` otherwise.\n\t */ contains(anotherRect) {\n const intersectRect = this.getIntersection(anotherRect);\n return !!(intersectRect && intersectRect.isEqual(anotherRect));\n }\n /**\n\t * Recalculates screen coordinates to coordinates relative to the positioned ancestor offset.\n\t */ toAbsoluteRect() {\n const { scrollX, scrollY } = globalVar.window;\n const absoluteRect = this.clone().moveBy(scrollX, scrollY);\n if (isDomElement(absoluteRect._source)) {\n const positionedAncestor = getPositionedAncestor(absoluteRect._source);\n if (positionedAncestor) {\n shiftRectToCompensatePositionedAncestor(absoluteRect, positionedAncestor);\n }\n }\n return absoluteRect;\n }\n /**\n\t * Excludes scrollbars and CSS borders from the rect.\n\t *\n\t * * Borders are removed when {@link #_source} is an HTML element.\n\t * * Scrollbars are excluded from HTML elements and the `window`.\n\t *\n\t * @returns A rect which has been updated.\n\t */ excludeScrollbarsAndBorders() {\n const source = this._source;\n let scrollBarWidth, scrollBarHeight, direction;\n if (isWindow(source)) {\n scrollBarWidth = source.innerWidth - source.document.documentElement.clientWidth;\n scrollBarHeight = source.innerHeight - source.document.documentElement.clientHeight;\n direction = source.getComputedStyle(source.document.documentElement).direction;\n } else {\n const borderWidths = getBorderWidths(source);\n scrollBarWidth = source.offsetWidth - source.clientWidth - borderWidths.left - borderWidths.right;\n scrollBarHeight = source.offsetHeight - source.clientHeight - borderWidths.top - borderWidths.bottom;\n direction = source.ownerDocument.defaultView.getComputedStyle(source).direction;\n this.left += borderWidths.left;\n this.top += borderWidths.top;\n this.right -= borderWidths.right;\n this.bottom -= borderWidths.bottom;\n this.width = this.right - this.left;\n this.height = this.bottom - this.top;\n }\n this.width -= scrollBarWidth;\n if (direction === 'ltr') {\n this.right -= scrollBarWidth;\n } else {\n this.left += scrollBarWidth;\n }\n this.height -= scrollBarHeight;\n this.bottom -= scrollBarHeight;\n return this;\n }\n /**\n\t * Returns an array of rects of the given native DOM Range.\n\t *\n\t * Also see {@link module:utils/dom/rect~Rect.getDomElementRects}.\n\t *\n\t * @param range A native DOM range.\n\t * @returns DOM Range rects.\n\t */ static getDomRangeRects(range) {\n const rects = [];\n // Safari does not iterate over ClientRectList using for...of loop.\n const clientRects = Array.from(range.getClientRects());\n if (clientRects.length) {\n for (const rect of clientRects){\n const r = new Rect(rect);\n // Point the rect source to the DOM range instead of of the DOM client rect to allow proper clipping,\n // in `Rect#getVisible()` method.\n r._source = range;\n rects.push(r);\n }\n } else {\n let startContainer = range.startContainer;\n if (isText(startContainer)) {\n startContainer = startContainer.parentNode;\n }\n const rect = new Rect(startContainer.getBoundingClientRect());\n rect.right = rect.left;\n rect.width = 0;\n rects.push(rect);\n }\n return rects;\n }\n /**\n\t * Returns an array of Rects of the given DOM Element based on its native `getClientRects()` method.\n\t *\n\t * Also see {@link module:utils/dom/rect~Rect.getDomRangeRects}.\n\t */ static getDomElementRects(element) {\n return Array.from(element.getClientRects()).map((clientRect)=>{\n const rect = new Rect(clientRect);\n // Point the rect source to the DOM element instead of of the DOM client rect to allow proper clipping,\n // in `Rect#getVisible()` method.\n rect._source = element;\n return rect;\n });\n }\n /**\n\t * Returns a bounding rectangle that contains all the given `rects`.\n\t *\n\t * @param rects A list of rectangles that should be contained in the result rectangle.\n\t * @returns Bounding rectangle or `null` if no `rects` were given.\n\t */ static getBoundingRect(rects) {\n const boundingRectData = {\n left: Number.POSITIVE_INFINITY,\n top: Number.POSITIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n width: 0,\n height: 0\n };\n let rectangleCount = 0;\n for (const rect of rects){\n rectangleCount++;\n boundingRectData.left = Math.min(boundingRectData.left, rect.left);\n boundingRectData.top = Math.min(boundingRectData.top, rect.top);\n boundingRectData.right = Math.max(boundingRectData.right, rect.right);\n boundingRectData.bottom = Math.max(boundingRectData.bottom, rect.bottom);\n }\n if (rectangleCount == 0) {\n return null;\n }\n boundingRectData.width = boundingRectData.right - boundingRectData.left;\n boundingRectData.height = boundingRectData.bottom - boundingRectData.top;\n return new Rect(boundingRectData);\n }\n}\n/**\n * Acquires all the rect properties from the passed source.\n */ function copyRectProperties(rect, source) {\n for (const p of RECT_PROPERTIES){\n rect[p] = source[p];\n }\n}\n/**\n * Checks if provided object is a HTML element.\n */ function isBody(value) {\n if (!isDomElement(value)) {\n return false;\n }\n return value === value.ownerDocument.body;\n}\n/**\n * Checks if provided object \"looks like\" a DOM Element and has API required by `Rect` class.\n */ function isDomElement(value) {\n // Note: earlier we used `isElement()` from lodash library, however that function is less performant because\n // it makes complicated checks to make sure that given value is a DOM element.\n return value !== null && typeof value === 'object' && value.nodeType === 1 && typeof value.getBoundingClientRect === 'function';\n}\n/**\n * Returns the value of the `position` style of an `HTMLElement`.\n */ function getElementPosition(element) {\n return element.ownerDocument.defaultView.getComputedStyle(element).position;\n}\n/**\n * Returns the value of the `overflow` style of an `HTMLElement` or a `Range`.\n */ function getElementOverflow(element) {\n return element instanceof HTMLElement ? element.ownerDocument.defaultView.getComputedStyle(element).overflow : 'visible';\n}\n/**\n * Checks if the given node is positioned in any other way than `position: static`.\n */ function isPositioned(node) {\n return node instanceof HTMLElement && POSITIONING_VALUES.has(getElementPosition(node));\n}\n/**\n * For a given absolute Rect coordinates object and a positioned element ancestor, it updates its\n * coordinates that make up for the position and the scroll of the ancestor.\n *\n * This is necessary because while Rects (and DOMRects) are relative to the browser's viewport, their coordinates\n * are used in real–life to position elements with `position: absolute`, which are scoped by any positioned\n * (and scrollable) ancestors.\n */ function shiftRectToCompensatePositionedAncestor(rect, positionedElementAncestor) {\n const ancestorPosition = new Rect(positionedElementAncestor);\n const ancestorBorderWidths = getBorderWidths(positionedElementAncestor);\n let moveX = 0;\n let moveY = 0;\n // (https://github.com/ckeditor/ckeditor5-ui-default/issues/126)\n // If there's some positioned ancestor of the panel, then its `Rect` must be taken into\n // consideration. `Rect` is always relative to the viewport while `position: absolute` works\n // with respect to that positioned ancestor.\n moveX -= ancestorPosition.left;\n moveY -= ancestorPosition.top;\n // (https://github.com/ckeditor/ckeditor5-utils/issues/139)\n // If there's some positioned ancestor of the panel, not only its position must be taken into\n // consideration (see above) but also its internal scrolls. Scroll have an impact here because `Rect`\n // is relative to the viewport (it doesn't care about scrolling), while `position: absolute`\n // must compensate that scrolling.\n moveX += positionedElementAncestor.scrollLeft;\n moveY += positionedElementAncestor.scrollTop;\n // (https://github.com/ckeditor/ckeditor5-utils/issues/139)\n // If there's some positioned ancestor of the panel, then its `Rect` includes its CSS `borderWidth`\n // while `position: absolute` positioning does not consider it.\n // E.g. `{ position: absolute, top: 0, left: 0 }` means upper left corner of the element,\n // not upper-left corner of its border.\n moveX -= ancestorBorderWidths.left;\n moveY -= ancestorBorderWidths.top;\n rect.moveBy(moveX, moveY);\n}\n\n/**\n * A helper class which instances allow performing custom actions when native DOM elements are resized.\n *\n * ```ts\n * const editableElement = editor.editing.view.getDomRoot();\n *\n * const observer = new ResizeObserver( editableElement, entry => {\n * \tconsole.log( 'The editable element has been resized in DOM.' );\n * \tconsole.log( entry.target ); // -> editableElement\n * \tconsole.log( entry.contentRect.width ); // -> e.g. '423px'\n * } );\n * ```\n *\n * It uses the [native DOM resize observer](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)\n * under the hood.\n */ class ResizeObserver {\n /**\n\t * The element observed by this observer.\n\t */ _element;\n /**\n\t * The callback executed each time {@link #_element} is resized.\n\t */ _callback;\n /**\n\t * The single native observer instance shared across all {@link module:utils/dom/resizeobserver~ResizeObserver} instances.\n\t */ static _observerInstance = null;\n /**\n\t * A mapping of native DOM elements and their callbacks shared across all\n\t * {@link module:utils/dom/resizeobserver~ResizeObserver} instances.\n\t */ static _elementCallbacks = null;\n /**\n\t * Creates an instance of the `ResizeObserver` class.\n\t *\n\t * @param element A DOM element that is to be observed for resizing. Note that\n\t * the element must be visible (i.e. not detached from DOM) for the observer to work.\n\t * @param callback A function called when the observed element was resized. It passes\n\t * the [`ResizeObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry)\n\t * object with information about the resize event.\n\t */ constructor(element, callback){\n // **Note**: For the maximum performance, this class ensures only a single instance of the native\n // observer is used no matter how many instances of this class were created.\n if (!ResizeObserver._observerInstance) {\n ResizeObserver._createObserver();\n }\n this._element = element;\n this._callback = callback;\n ResizeObserver._addElementCallback(element, callback);\n ResizeObserver._observerInstance.observe(element);\n }\n /**\n\t * The element observed by this observer.\n\t */ get element() {\n return this._element;\n }\n /**\n\t * Destroys the observer which disables the `callback` passed to the {@link #constructor}.\n\t */ destroy() {\n ResizeObserver._deleteElementCallback(this._element, this._callback);\n }\n /**\n\t * Registers a new resize callback for the DOM element.\n\t */ static _addElementCallback(element, callback) {\n if (!ResizeObserver._elementCallbacks) {\n ResizeObserver._elementCallbacks = new Map();\n }\n let callbacks = ResizeObserver._elementCallbacks.get(element);\n if (!callbacks) {\n callbacks = new Set();\n ResizeObserver._elementCallbacks.set(element, callbacks);\n }\n callbacks.add(callback);\n }\n /**\n\t * Removes a resize callback from the DOM element. If no callbacks are left\n\t * for the element, it removes the element from the native observer.\n\t */ static _deleteElementCallback(element, callback) {\n const callbacks = ResizeObserver._getElementCallbacks(element);\n // Remove the element callback. Check if exist first in case someone\n // called destroy() twice.\n if (callbacks) {\n callbacks.delete(callback);\n // If no callbacks left for the element, also remove the element.\n if (!callbacks.size) {\n ResizeObserver._elementCallbacks.delete(element);\n ResizeObserver._observerInstance.unobserve(element);\n }\n }\n if (ResizeObserver._elementCallbacks && !ResizeObserver._elementCallbacks.size) {\n ResizeObserver._observerInstance = null;\n ResizeObserver._elementCallbacks = null;\n }\n }\n /**\n\t * Returns are registered resize callbacks for the DOM element.\n\t */ static _getElementCallbacks(element) {\n if (!ResizeObserver._elementCallbacks) {\n return null;\n }\n return ResizeObserver._elementCallbacks.get(element);\n }\n /**\n\t * Creates the single native observer shared across all `ResizeObserver` instances.\n\t */ static _createObserver() {\n ResizeObserver._observerInstance = new globalVar.window.ResizeObserver((entries)=>{\n for (const entry of entries){\n const callbacks = ResizeObserver._getElementCallbacks(entry.target);\n if (callbacks) {\n for (const callback of callbacks){\n callback(entry);\n }\n }\n }\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/setdatainelement\n */ /**\n * Sets data in a given element.\n *\n * @param el The element in which the data will be set.\n * @param data The data string.\n */ function setDataInElement(el, data) {\n if (el instanceof HTMLTextAreaElement) {\n el.value = data;\n }\n el.innerHTML = data;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/tounit\n */ /**\n * Returns a helper function, which adds a desired trailing\n * `unit` to the passed value.\n *\n * @param unit An unit like \"px\" or \"em\".\n */ function toUnit(unit) {\n return (value)=>value + unit;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/indexof\n */ /**\n * Returns index of the node in the parent element.\n *\n * @param node Node which index is tested.\n * @returns Index of the node in the parent element. Returns 0 if node has no parent.\n */ function indexOf(node) {\n let index = 0;\n while(node.previousSibling){\n node = node.previousSibling;\n index++;\n }\n return index;\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/insertat\n */ /**\n * Inserts node to the parent at given index.\n *\n * @param parentElement Parent element.\n * @param index Insertions index.\n * @param nodeToInsert Node to insert.\n */ function insertAt(parentElement, index, nodeToInsert) {\n parentElement.insertBefore(nodeToInsert, parentElement.childNodes[index] || null);\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/iscomment\n */ /**\n * Checks whether the object is a native DOM Comment node.\n */ function isComment(obj) {\n return obj && obj.nodeType === Node.COMMENT_NODE;\n}\n\n/**\n * Checks if the given attribute name is valid in terms of HTML.\n *\n * @param name Attribute name.\n */ function isValidAttributeName(name) {\n try {\n globalVar.document.createAttribute(name);\n } catch {\n return false;\n }\n return true;\n}\n\n/**\n * Checks whether the element is visible to the user in DOM:\n *\n * * connected to the root of the document,\n * * has no `display: none`,\n * * has no ancestors with `display: none`.\n *\n * **Note**: This helper does not check whether the element is hidden by cropping, overflow, etc..\n * To check that, use {@link module:utils/dom/rect~Rect} instead.\n */ function isVisible(element) {\n if (!element) {\n return false;\n }\n if (isText(element)) {\n return isVisible(element.parentElement);\n }\n if (element.getClientRects) {\n return !!element.getClientRects().length;\n }\n return false;\n}\n\n// @if CK_DEBUG_POSITION // const {\n// @if CK_DEBUG_POSITION // \tdefault: RectDrawer,\n// @if CK_DEBUG_POSITION // \tdiagonalStylesBlack,\n// @if CK_DEBUG_POSITION // \tdiagonalStylesGreen,\n// @if CK_DEBUG_POSITION // \tdiagonalStylesRed\n// @if CK_DEBUG_POSITION // } = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' );\n// @if CK_DEBUG_POSITION // const TARGET_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px', outlineStyle: 'dashed', outlineColor: 'blue', outlineOffset: '2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const VISIBLE_TARGET_RECT_STYLE = {\n// @if CK_DEBUG_POSITION //\t\t...diagonalStylesBlack,\n// @if CK_DEBUG_POSITION //\t\topacity: '1',\n// @if CK_DEBUG_POSITION //\t\tbackgroundColor: '#00000033',\n// @if CK_DEBUG_POSITION //\t\toutlineWidth: '2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const VIEWPORT_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px',\n// @if CK_DEBUG_POSITION // \toutlineOffset: '-2px',\n// @if CK_DEBUG_POSITION // \toutlineStyle: 'solid',\n// @if CK_DEBUG_POSITION // \toutlineColor: 'red'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const VISIBLE_LIMITER_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \t...diagonalStylesGreen,\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px',\n// @if CK_DEBUG_POSITION // \toutlineOffset: '-2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const ELEMENT_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px', outlineColor: 'orange', outlineOffset: '-2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const CHOSEN_POSITION_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \topacity: .5, outlineColor: 'magenta', backgroundColor: 'magenta'\n// @if CK_DEBUG_POSITION // };\n/**\n * Calculates the `position: absolute` coordinates of a given element so it can be positioned with respect to the\n * target in the visually most efficient way, taking various restrictions like viewport or limiter geometry\n * into consideration.\n *\n * **Note**: If there are no position coordinates found that meet the requirements (arguments of this helper),\n * `null` is returned.\n *\n * ```ts\n * // The element which is to be positioned.\n * const element = document.body.querySelector( '#toolbar' );\n *\n * // A target to which the element is positioned relatively.\n * const target = document.body.querySelector( '#container' );\n *\n * // Finding the optimal coordinates for the positioning.\n * const { left, top, name } = getOptimalPosition( {\n * \telement: element,\n * \ttarget: target,\n *\n * \t// The algorithm will chose among these positions to meet the requirements such\n * \t// as \"limiter\" element or \"fitInViewport\", set below. The positions are considered\n * \t// in the order of the array.\n * \tpositions: [\n * \t\t//\n * \t \t//\t[ Target ]\n * \t\t//\t+-----------------+\n * \t\t//\t| Element |\n * \t\t//\t+-----------------+\n * \t\t//\n * \t\ttargetRect => ( {\n * \t\t\ttop: targetRect.bottom,\n * \t\t\tleft: targetRect.left,\n * \t\t\tname: 'mySouthEastPosition'\n * \t\t} ),\n *\n * \t\t//\n * \t\t//\t+-----------------+\n * \t\t//\t| Element |\n * \t\t//\t+-----------------+\n * \t\t//\t[ Target ]\n * \t\t//\n * \t\t( targetRect, elementRect ) => ( {\n * \t\t\ttop: targetRect.top - elementRect.height,\n * \t\t\tleft: targetRect.left,\n * \t\t\tname: 'myNorthEastPosition'\n * \t\t} )\n * \t],\n *\n * \t// Find a position such guarantees the element remains within visible boundaries of .\n * \tlimiter: document.body,\n *\n * \t// Find a position such guarantees the element remains within visible boundaries of the browser viewport.\n * \tfitInViewport: true\n * } );\n *\n * // The best position which fits into document.body and the viewport. May be useful\n * // to set proper class on the `element`.\n * console.log( name ); // -> \"myNorthEastPosition\"\n *\n * // Using the absolute coordinates which has been found to position the element\n * // as in the diagram depicting the \"myNorthEastPosition\" position.\n * element.style.top = top;\n * element.style.left = left;\n * ```\n *\n * @param options The input data and configuration of the helper.\n */ function getOptimalPosition({ element, target, positions, limiter, fitInViewport, viewportOffsetConfig }) {\n // If the {@link module:utils/dom/position~Options#target} is a function, use what it returns.\n // https://github.com/ckeditor/ckeditor5-utils/issues/157\n if (isFunction(target)) {\n target = target();\n }\n // If the {@link module:utils/dom/position~Options#limiter} is a function, use what it returns.\n // https://github.com/ckeditor/ckeditor5-ui/issues/260\n if (isFunction(limiter)) {\n limiter = limiter();\n }\n const positionedElementAncestor = getPositionedAncestor(element);\n const constrainedViewportRect = getConstrainedViewportRect(viewportOffsetConfig);\n const elementRect = new Rect(element);\n const visibleTargetRect = getVisibleViewportIntersectionRect(target, constrainedViewportRect);\n let bestPosition;\n // @if CK_DEBUG_POSITION // const targetRect = new Rect( target );\n // @if CK_DEBUG_POSITION // RectDrawer.clear();\n // @if CK_DEBUG_POSITION // RectDrawer.draw( targetRect, TARGET_RECT_STYLE, 'Target' );\n // @if CK_DEBUG_POSITION // if ( constrainedViewportRect ) {\n // @if CK_DEBUG_POSITION //\t\tRectDrawer.draw( constrainedViewportRect, VIEWPORT_RECT_STYLE, 'Viewport' );\n // @if CK_DEBUG_POSITION // }\n // If the target got cropped by ancestors or went off the screen, positioning does not make any sense.\n if (!visibleTargetRect || !constrainedViewportRect.getIntersection(visibleTargetRect)) {\n return null;\n }\n // @if CK_DEBUG_POSITION //\tRectDrawer.draw( visibleTargetRect, VISIBLE_TARGET_RECT_STYLE, 'VisTgt' );\n const positionOptions = {\n targetRect: visibleTargetRect,\n elementRect,\n positionedElementAncestor,\n viewportRect: constrainedViewportRect\n };\n // If there are no limits, just grab the very first position and be done with that drama.\n if (!limiter && !fitInViewport) {\n bestPosition = new PositionObject(positions[0], positionOptions);\n } else {\n if (limiter) {\n const visibleLimiterRect = getVisibleViewportIntersectionRect(limiter, constrainedViewportRect);\n if (visibleLimiterRect) {\n positionOptions.limiterRect = visibleLimiterRect;\n // @if CK_DEBUG_POSITION // RectDrawer.draw( visibleLimiterRect, VISIBLE_LIMITER_RECT_STYLE, 'VisLim' );\n }\n }\n // If there's no best position found, i.e. when all intersections have no area because\n // rects have no width or height, then just return `null`\n bestPosition = getBestPosition(positions, positionOptions);\n }\n return bestPosition;\n}\n/**\n * Returns intersection of visible source `Rect` with Viewport `Rect`. In case when source `Rect` is not visible\n * or there is no intersection between source `Rect` and Viewport `Rect`, `null` will be returned.\n */ function getVisibleViewportIntersectionRect(source, viewportRect) {\n const visibleSourceRect = new Rect(source).getVisible();\n if (!visibleSourceRect) {\n return null;\n }\n return visibleSourceRect.getIntersection(viewportRect);\n}\n/**\n * Returns a viewport `Rect` shrunk by the viewport offset config from all sides.\n */ function getConstrainedViewportRect(viewportOffsetConfig) {\n viewportOffsetConfig = Object.assign({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }, viewportOffsetConfig);\n const viewportRect = new Rect(globalVar.window);\n viewportRect.top += viewportOffsetConfig.top;\n viewportRect.height -= viewportOffsetConfig.top;\n viewportRect.bottom -= viewportOffsetConfig.bottom;\n viewportRect.height -= viewportOffsetConfig.bottom;\n viewportRect.left += viewportOffsetConfig.left;\n viewportRect.right -= viewportOffsetConfig.right;\n viewportRect.width -= viewportOffsetConfig.left + viewportOffsetConfig.right;\n return viewportRect;\n}\n/**\n * For a given array of positioning functions, returns such that provides the best\n * fit of the `elementRect` into the `limiterRect` and `viewportRect`.\n */ function getBestPosition(positions, options) {\n const { elementRect } = options;\n // This is when element is fully visible.\n const elementRectArea = elementRect.getArea();\n const positionInstances = positions.map((positioningFunction)=>new PositionObject(positioningFunction, options))// Some positioning functions may return `null` if they don't want to participate.\n .filter((position)=>!!position.name);\n let maxFitFactor = 0;\n let bestPosition = null;\n for (const position of positionInstances){\n const { limiterIntersectionArea, viewportIntersectionArea } = position;\n // If a such position is found that element is fully contained by the limiter then, obviously,\n // there will be no better one, so finishing.\n if (limiterIntersectionArea === elementRectArea) {\n // @if CK_DEBUG_POSITION //\tRectDrawer.draw( position._rect, CHOSEN_POSITION_RECT_STYLE, [\n // @if CK_DEBUG_POSITION //\t\tposition.name,\n // @if CK_DEBUG_POSITION //\t\t'100% fit',\n // @if CK_DEBUG_POSITION //\t].join( '\\n' ) );\n return position;\n }\n // To maximize both viewport and limiter intersection areas we use distance on _viewportIntersectionArea\n // and _limiterIntersectionArea plane (without sqrt because we are looking for max value).\n const fitFactor = viewportIntersectionArea ** 2 + limiterIntersectionArea ** 2;\n // @if CK_DEBUG_POSITION //\tRectDrawer.draw( position._rect, { opacity: .4 }, [\n // @if CK_DEBUG_POSITION //\t\tposition.name,\n // @if CK_DEBUG_POSITION //\t\t'Vi=' + Math.round( viewportIntersectionArea ),\n // @if CK_DEBUG_POSITION //\t\t'Li=' + Math.round( limiterIntersectionArea )\n // @if CK_DEBUG_POSITION //\t].join( '\\n' ) );\n if (fitFactor > maxFitFactor) {\n maxFitFactor = fitFactor;\n bestPosition = position;\n }\n }\n // @if CK_DEBUG_POSITION // if ( bestPosition ) {\n // @if CK_DEBUG_POSITION // \tRectDrawer.draw( bestPosition._rect, CHOSEN_POSITION_RECT_STYLE );\n // @if CK_DEBUG_POSITION // }\n return bestPosition;\n}\n/**\n * A position class which instances are created and used by the {@link module:utils/dom/position~getOptimalPosition} helper.\n *\n * {@link module:utils/dom/position~Position#top} and {@link module:utils/dom/position~Position#left} properties of the position instance\n * translate directly to the `top` and `left` properties in CSS \"`position: absolute` coordinate system\". If set on the positioned element\n * in DOM, they will make it display it in the right place in the viewport.\n */ class PositionObject {\n name;\n config;\n _positioningFunctionCoordinates;\n _options;\n _cachedRect;\n _cachedAbsoluteRect;\n /**\n\t * Creates an instance of the {@link module:utils/dom/position~PositionObject} class.\n\t *\n\t * @param positioningFunction function The function that defines the expected\n\t * coordinates the positioned element should move to.\n\t * @param options options object.\n\t * @param options.elementRect The positioned element rect.\n\t * @param options.targetRect The target element rect.\n\t * @param options.viewportRect The viewport rect.\n\t * @param options.limiterRect The limiter rect.\n\t * @param options.positionedElementAncestor Nearest element ancestor element which CSS position is not \"static\".\n\t */ constructor(positioningFunction, options){\n const positioningFunctionOutput = positioningFunction(options.targetRect, options.elementRect, options.viewportRect, options.limiterRect);\n // Nameless position for a function that didn't participate.\n if (!positioningFunctionOutput) {\n return;\n }\n const { left, top, name, config } = positioningFunctionOutput;\n this.name = name;\n this.config = config;\n this._positioningFunctionCoordinates = {\n left,\n top\n };\n this._options = options;\n }\n /**\n\t * The left value in pixels in the CSS `position: absolute` coordinate system.\n\t * Set it on the positioned element in DOM to move it to the position.\n\t */ get left() {\n return this._absoluteRect.left;\n }\n /**\n\t * The top value in pixels in the CSS `position: absolute` coordinate system.\n\t * Set it on the positioned element in DOM to move it to the position.\n\t */ get top() {\n return this._absoluteRect.top;\n }\n /**\n\t * An intersection area between positioned element and limiter within viewport constraints.\n\t */ get limiterIntersectionArea() {\n const limiterRect = this._options.limiterRect;\n if (limiterRect) {\n return limiterRect.getIntersectionArea(this._rect);\n }\n return 0;\n }\n /**\n\t * An intersection area between positioned element and viewport.\n\t */ get viewportIntersectionArea() {\n const viewportRect = this._options.viewportRect;\n return viewportRect.getIntersectionArea(this._rect);\n }\n /**\n\t * An already positioned element rect. A clone of the element rect passed to the constructor\n\t * but placed in the viewport according to the positioning function.\n\t */ get _rect() {\n if (this._cachedRect) {\n return this._cachedRect;\n }\n this._cachedRect = this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left, this._positioningFunctionCoordinates.top);\n return this._cachedRect;\n }\n /**\n\t * An already absolutely positioned element rect. See ({@link #_rect}).\n\t */ get _absoluteRect() {\n if (this._cachedAbsoluteRect) {\n return this._cachedAbsoluteRect;\n }\n this._cachedAbsoluteRect = this._rect.toAbsoluteRect();\n return this._cachedAbsoluteRect;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module utils/dom/remove\n */ /**\n * Removes given node from parent.\n *\n * @param node Node to remove.\n */ function remove(node) {\n const parent = node.parentNode;\n if (parent) {\n parent.removeChild(node);\n }\n}\n\n/**\n * Returns the visual viewport offsets to adjust elements with `position: fixed` style.\n */ function getVisualViewportOffset() {\n const visualViewport = globalVar.window.visualViewport;\n if (!visualViewport || !(env.isiOS || env.isSafari)) {\n return {\n left: 0,\n top: 0\n };\n }\n const left = Math.max(Math.round(visualViewport.offsetLeft), 0);\n const top = Math.max(Math.round(visualViewport.offsetTop), 0);\n return {\n left,\n top\n };\n}\n\n/**\n * Makes any page `HTMLElement` or `Range` (`target`) visible inside the browser viewport.\n * This helper will scroll all `target` ancestors and the web browser viewport to reveal the target to\n * the user. If the `target` is already visible, nothing will happen.\n *\n * @param options Additional configuration of the scrolling behavior.\n * @param options.target A target, which supposed to become visible to the user.\n * @param options.viewportOffset An offset from the edge of the viewport (in pixels)\n * the `target` will be moved by if the viewport is scrolled. It enhances the user experience\n * by keeping the `target` some distance from the edge of the viewport and thus making it easier to\n * read or edit by the user.\n * @param options.ancestorOffset An offset from the boundary of scrollable ancestors (if any)\n * the `target` will be moved by if the viewport is scrolled. It enhances the user experience\n * by keeping the `target` some distance from the edge of the ancestors and thus making it easier to\n * read or edit by the user.\n * @param options.alignToTop When set `true`, the helper will make sure the `target` is scrolled up\n * to the top boundary of the viewport and/or scrollable ancestors if scrolled up. When not set\n * (default), the `target` will be revealed by scrolling as little as possible. This option will\n * not affect `targets` that must be scrolled down because they will appear at the top of the boundary\n * anyway.\n *\n * ```\n * scrollViewportToShowTarget() with scrollViewportToShowTarget() with\n * Initial state alignToTop unset (default) alignToTop = true\n *\n * ┌────────────────────────────────┬─┐ ┌────────────────────────────────┬─┐ ┌────────────────────────────────┬─┐\n * │ │▲│ │ │▲│ │ [ Target to be revealed ] │▲│\n * │ │ │ │ │ │ │ │ │\n * │ │█│ │ │ │ │ │ │\n * │ │█│ │ │ │ │ │ │\n * │ │ │ │ │█│ │ │ │\n * │ │ │ │ │█│ │ │█│\n * │ │ │ │ │ │ │ │█│\n * │ │▼│ │ [ Target to be revealed ] │▼│ │ │▼│\n * └────────────────────────────────┴─┘ └────────────────────────────────┴─┘ └────────────────────────────────┴─┘\n *\n *\n * [ Target to be revealed ]\n *```\n *\n * @param options.forceScroll When set `true`, the `target` will be aligned to the top of the viewport\n * and scrollable ancestors whether it is already visible or not. This option will only work when `alignToTop`\n * is `true`\n */ function scrollViewportToShowTarget({ target, viewportOffset = 0, ancestorOffset = 0, alignToTop, forceScroll }) {\n const targetWindow = getWindow(target);\n let currentWindow = targetWindow;\n let currentFrame = null;\n viewportOffset = normalizeViewportOffset(viewportOffset);\n // Iterate over all windows, starting from target's parent window up to window#top.\n while(currentWindow){\n let firstAncestorToScroll;\n // Let's scroll target's ancestors first to reveal it. Then, once the ancestor scrolls\n // settled down, the algorithm can eventually scroll the viewport of the current window.\n //\n // Note: If the current window is target's **original** window (e.g. the first one),\n // start scrolling the closest parent of the target. If not, scroll the closest parent\n // of an iframe that resides in the current window.\n if (currentWindow == targetWindow) {\n firstAncestorToScroll = getParentElement(target);\n } else {\n firstAncestorToScroll = getParentElement(currentFrame);\n }\n // Scroll the target's ancestors first. Once done, scrolling the viewport is easy.\n scrollAncestorsToShowRect({\n parent: firstAncestorToScroll,\n getRect: ()=>{\n // Note: If the target does not belong to the current window **directly**,\n // i.e. it resides in an iframe belonging to the window, obtain the target's rect\n // in the coordinates of the current window. By default, a Rect returns geometry\n // relative to the current window's viewport. To make it work in a parent window,\n // it must be shifted.\n return getRectRelativeToWindow(target, currentWindow);\n },\n alignToTop,\n ancestorOffset,\n forceScroll\n });\n // Obtain the rect of the target after it has been scrolled within its ancestors.\n // It's time to scroll the viewport.\n let targetRect = getRectRelativeToWindow(target, currentWindow);\n // Detect situation where the target is higher than the first scrollable ancestor.\n // In such case scrolling the viewport to reveal the target might be malfunctioning because\n // the target `.top` position is lower than the ancestor's `.top` position. If it's large enough it can be negative.\n // It causes the `scrollWindowToShowRect` to scroll the viewport to the negative top position which is not possible\n // and leads to the viewport being scrolled to the absolute top of the document. To prevent this, the target's rect\n // must be shifted to the ancestor's top position. It should not affect the target's visibility because the ancestor\n // is already scrolled to reveal the target.\n // See more: https://github.com/ckeditor/ckeditor5/issues/17079\n const ancestorWindowRelativeRect = getRectRelativeToWindow(firstAncestorToScroll, currentWindow);\n if (targetRect.height > ancestorWindowRelativeRect.height) {\n const ancestorTargetIntersection = targetRect.getIntersection(ancestorWindowRelativeRect);\n if (ancestorTargetIntersection) {\n targetRect = ancestorTargetIntersection;\n }\n }\n scrollWindowToShowRect({\n window: currentWindow,\n rect: targetRect,\n viewportOffset,\n alignToTop,\n forceScroll\n });\n if (currentWindow.parent != currentWindow) {\n // Keep the reference to the