ckeditor5-symfony 1.9.1 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../../src/elements/editor/editor.ts"],"names":[],"mappings":"AA+BA;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IACrD;;OAEG;IACH,OAAO,CAAC,aAAa,CAA6B;IAElD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;OAEG;YACW,gBAAgB;IAwD9B;;;OAGG;IACH,oBAAoB;IASpB;;OAEG;YACW,YAAY;CAuH3B"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../../src/elements/editor/editor.ts"],"names":[],"mappings":"AA+BA;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IACrD;;OAEG;IACH,OAAO,CAAC,aAAa,CAA6B;IAElD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;OAEG;YACW,gBAAgB;IAwD9B;;;OAGG;IACH,oBAAoB;IASpB;;OAEG;YACW,YAAY;CAwH3B"}
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var K=Object.create;var R=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var rt=(i,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Z(t))!et.call(i,n)&&n!==r&&R(i,n,{get:()=>t[n],enumerable:!(a=Q(t,n))||a.enumerable});return i};var e=(i,t,r)=>(r=i!=null?K(tt(i)):{},rt(t||!i||!i.__esModule?R(r,"default",{value:i,enumerable:!0}):r,i));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function L(i,t){if(!i||i.size!==t.size)return!1;for(const[r,a]of i)if(!t.has(r)||t.get(r)!==a)return!1;return!0}class q{items=new Map;initializationErrors=new Map;pendingCallbacks=new Map;watchers=new Set;batchDepth=0;lastNotifiedItems=null;lastNotifiedErrors=null;execute(t,r,a){const n=this.items.get(t),s=this.initializationErrors.get(t);return s?(a?.(s),Promise.reject(s)):n?Promise.resolve(r(n)):new Promise((o,l)=>{const u=this.getPendingCallbacks(t);u.success.push(async c=>{o(await r(c))}),a?u.error.push(a):u.error.push(l)})}mountEffect(t,r){let a,n,s=!1;const o=this.watch(l=>{const u=l.get(t);if(u!==n&&(a?.(),a=void 0,n=u,!!u))try{const c=r(u);s?(c?.(),o()):a=c}catch(c){throw console.error(c),c}});return()=>{s=!0,n&&(o(),a?.(),a=void 0)}}register(t,r){this.batch(()=>{if(this.items.has(t))throw new Error(`Item with ID "${t}" is already registered.`);this.resetErrors(t),this.items.set(t,r);const a=this.pendingCallbacks.get(t);a&&(a.success.forEach(n=>n(r)),this.pendingCallbacks.delete(t)),this.items.size===1&&t!==null&&this.register(null,r)})}error(t,r){this.batch(()=>{this.items.delete(t),this.initializationErrors.set(t,r);const a=this.pendingCallbacks.get(t);a&&(a.error.forEach(n=>n(r)),this.pendingCallbacks.delete(t)),this.initializationErrors.size===1&&!this.items.size&&this.error(null,r)})}resetErrors(t){const{initializationErrors:r}=this;r.has(null)&&r.get(null)===r.get(t)&&r.delete(null),r.delete(t)}unregister(t,r=!0){this.batch(()=>{t&&this.items.get(null)===this.items.get(t)&&this.unregister(null,!1),this.items.delete(t),r&&this.pendingCallbacks.delete(t),this.resetErrors(t)})}getItems(){return Array.from(this.items.values())}getItem(t){return this.items.get(t)}hasItem(t){return this.items.has(t)}waitFor(t){return new Promise((r,a)=>{this.execute(t,r,a)})}async destroyAll(){const t=Array.from(new Set(this.items.values())).map(r=>r.destroy());this.items.clear(),this.pendingCallbacks.clear(),await Promise.all(t),this.flushWatchers()}async reset(){await this.destroyAll(),this.watchers.clear()}batch(t){this.batchDepth++;try{return t()}finally{this.batchDepth--,this.batchDepth===0&&this.flushWatchers()}}watch(t){return this.watchers.add(t),t(new Map(this.items),new Map(this.initializationErrors)),this.unwatch.bind(this,t)}unwatch(t){this.watchers.delete(t)}flushWatchers(){L(this.lastNotifiedItems,this.items)&&L(this.lastNotifiedErrors,this.initializationErrors)||(this.lastNotifiedItems=new Map(this.items),this.lastNotifiedErrors=new Map(this.initializationErrors),this.watchers.forEach(t=>t(new Map(this.items),new Map(this.initializationErrors))))}getPendingCallbacks(t){let r=this.pendingCallbacks.get(t);return r||(r={success:[],error:[]},this.pendingCallbacks.set(t,r)),r}}function N(i,t){let r=null;return(...a)=>{r&&clearTimeout(r),r=setTimeout(()=>{t(...a)},i)}}function U(i){return Object.keys(i).length===0&&i.constructor===Object}function it(i,t){const r=Object.entries(i).map(([a,n])=>[a,t(n,a)]);return Object.fromEntries(r)}function at(){return Math.random().toString(36).substring(2)}function nt(i,{timeOutAfter:t=500,retryAfter:r=100}={}){return new Promise((a,n)=>{const s=Date.now();let o=null;const l=setTimeout(()=>{n(o??new Error("Timeout"))},t),u=async()=>{try{const c=await i();clearTimeout(l),a(c)}catch(c){o=c,Date.now()-s>t?n(c):setTimeout(u,r)}};u()})}function P(){return new Promise(i=>{switch(document.readyState){case"loading":document.addEventListener("DOMContentLoaded",()=>i(),{once:!0});break;case"interactive":case"complete":setTimeout(i,0);break;default:console.warn("Unexpected document.readyState:",document.readyState),setTimeout(i,0)}})}function st(i,t,r){const a=!i.editorName||i.editorName==="ClassicEditor",n=new Set([...Object.keys(t),...Object.keys(r.roots??{})]),s=Array.from(n).reduce((l,u)=>({...l,[u]:{...r.roots?.[u],...u==="main"?r.root:{},...u in t?{...t[u].content!==null&&{initialData:t[u].content},...!a&&t[u].element!==null&&{element:t[u].element}}:{}}}),Object.create(r.roots||{})),o={...r,roots:s,...a&&t.main?.element&&{attachTo:t.main.element}};return delete o.root,o}const D=Symbol.for("context-editor-watchdog");async function ot({context:i,creator:t,config:r}){const a=at();await i.add({creator:t.create.bind(t),id:a,type:"editor",config:r});const n=i.getItem(a),s={state:"available",editorContextId:a,context:i};n[D]=s;const o=i.destroy.bind(i);return i.destroy=async()=>(s.state="unavailable",o()),{...s,editor:n}}function ct(i){return D in i?i[D]:null}function ut(i){return Array.from(i.model.document.getRoots()).reduce((t,r)=>(r.rootName==="$graveyard"||(t[r.rootName]=i.getData({rootName:r.rootName})),t),Object.create({}))}function j(i){return"addEditable"in i.ui}function O(i){return["inline","classic","balloon","decoupled"].includes(i)}class p extends Error{constructor(t){super(t),this.name="CKEditor5SymfonyError"}}async function lt(i){const t=await import("ckeditor5"),a={inline:t.InlineEditor,balloon:t.BalloonEditor,classic:t.ClassicEditor,decoupled:t.DecoupledEditor,multiroot:t.MultiRootEditor}[i];if(!a)throw new p(`Unsupported editor type: ${i}`);return a}class T{static the=new T;plugins=new Map;constructor(){}register(t,r){if(this.plugins.has(t))throw new p(`Plugin with name "${t}" is already registered.`);return this.plugins.set(t,r),this.unregister.bind(this,t)}unregister(t){if(!this.plugins.has(t))throw new p(`Plugin with name "${t}" is not registered.`);this.plugins.delete(t)}unregisterAll(){this.plugins.clear()}async get(t){return this.plugins.get(t)?.()}has(t){return this.plugins.has(t)}}async function H(i){const t=await import("ckeditor5");let r=null;const a=i.map(async n=>{const s=await T.the.get(n);if(s)return s;const{[n]:o}=t;if(o)return o;if(!r)try{r=await import("ckeditor5-premium-features")}catch(u){throw console.error(`Failed to load premium package: ${u}`),new p(`Plugin "${n}" not found in base package and failed to load premium package.`)}const{[n]:l}=r||{};if(l)return l;throw new p(`Plugin "${n}" not found in base or premium packages.`)});return{loadedPlugins:await Promise.all(a),hasPremium:!!r}}async function B(i,t){const r=[i.ui,i.content];return await Promise.all([W("ckeditor5",r),t&&W("ckeditor5-premium-features",r)].filter(n=>!!n)).then(n=>n.flat())}async function W(i,t){return await Promise.all(t.filter(r=>r!=="en").map(async r=>{const a=await mt(i,r);return a?.default??a}).filter(Boolean))}async function mt(i,t){try{if(i==="ckeditor5")switch(t){case"af":return await import("ckeditor5/translations/af.js");case"ar":return await import("ckeditor5/translations/ar.js");case"ast":return await import("ckeditor5/translations/ast.js");case"az":return await import("ckeditor5/translations/az.js");case"bg":return await import("ckeditor5/translations/bg.js");case"bn":return await import("ckeditor5/translations/bn.js");case"bs":return await import("ckeditor5/translations/bs.js");case"ca":return await import("ckeditor5/translations/ca.js");case"cs":return await import("ckeditor5/translations/cs.js");case"da":return await import("ckeditor5/translations/da.js");case"de":return await import("ckeditor5/translations/de.js");case"de-ch":return await import("ckeditor5/translations/de-ch.js");case"el":return await import("ckeditor5/translations/el.js");case"en":return await import("ckeditor5/translations/en.js");case"en-au":return await import("ckeditor5/translations/en-au.js");case"en-gb":return await import("ckeditor5/translations/en-gb.js");case"eo":return await import("ckeditor5/translations/eo.js");case"es":return await import("ckeditor5/translations/es.js");case"es-co":return await import("ckeditor5/translations/es-co.js");case"et":return await import("ckeditor5/translations/et.js");case"eu":return await import("ckeditor5/translations/eu.js");case"fa":return await import("ckeditor5/translations/fa.js");case"fi":return await import("ckeditor5/translations/fi.js");case"fr":return await import("ckeditor5/translations/fr.js");case"gl":return await import("ckeditor5/translations/gl.js");case"gu":return await import("ckeditor5/translations/gu.js");case"he":return await import("ckeditor5/translations/he.js");case"hi":return await import("ckeditor5/translations/hi.js");case"hr":return await import("ckeditor5/translations/hr.js");case"hu":return await import("ckeditor5/translations/hu.js");case"hy":return await import("ckeditor5/translations/hy.js");case"id":return await import("ckeditor5/translations/id.js");case"it":return await import("ckeditor5/translations/it.js");case"ja":return await import("ckeditor5/translations/ja.js");case"jv":return await import("ckeditor5/translations/jv.js");case"kk":return await import("ckeditor5/translations/kk.js");case"km":return await import("ckeditor5/translations/km.js");case"kn":return await import("ckeditor5/translations/kn.js");case"ko":return await import("ckeditor5/translations/ko.js");case"ku":return await import("ckeditor5/translations/ku.js");case"lt":return await import("ckeditor5/translations/lt.js");case"lv":return await import("ckeditor5/translations/lv.js");case"ms":return await import("ckeditor5/translations/ms.js");case"nb":return await import("ckeditor5/translations/nb.js");case"ne":return await import("ckeditor5/translations/ne.js");case"nl":return await import("ckeditor5/translations/nl.js");case"no":return await import("ckeditor5/translations/no.js");case"oc":return await import("ckeditor5/translations/oc.js");case"pl":return await import("ckeditor5/translations/pl.js");case"pt":return await import("ckeditor5/translations/pt.js");case"pt-br":return await import("ckeditor5/translations/pt-br.js");case"ro":return await import("ckeditor5/translations/ro.js");case"ru":return await import("ckeditor5/translations/ru.js");case"si":return await import("ckeditor5/translations/si.js");case"sk":return await import("ckeditor5/translations/sk.js");case"sl":return await import("ckeditor5/translations/sl.js");case"sq":return await import("ckeditor5/translations/sq.js");case"sr":return await import("ckeditor5/translations/sr.js");case"sr-latn":return await import("ckeditor5/translations/sr-latn.js");case"sv":return await import("ckeditor5/translations/sv.js");case"th":return await import("ckeditor5/translations/th.js");case"tk":return await import("ckeditor5/translations/tk.js");case"tr":return await import("ckeditor5/translations/tr.js");case"tt":return await import("ckeditor5/translations/tt.js");case"ug":return await import("ckeditor5/translations/ug.js");case"uk":return await import("ckeditor5/translations/uk.js");case"ur":return await import("ckeditor5/translations/ur.js");case"uz":return await import("ckeditor5/translations/uz.js");case"vi":return await import("ckeditor5/translations/vi.js");case"zh":return await import("ckeditor5/translations/zh.js");case"zh-cn":return await import("ckeditor5/translations/zh-cn.js");default:return console.warn(`Language ${t} not found in ckeditor5 translations`),null}else switch(t){case"af":return await import("ckeditor5-premium-features/translations/af.js");case"ar":return await import("ckeditor5-premium-features/translations/ar.js");case"ast":return await import("ckeditor5-premium-features/translations/ast.js");case"az":return await import("ckeditor5-premium-features/translations/az.js");case"bg":return await import("ckeditor5-premium-features/translations/bg.js");case"bn":return await import("ckeditor5-premium-features/translations/bn.js");case"bs":return await import("ckeditor5-premium-features/translations/bs.js");case"ca":return await import("ckeditor5-premium-features/translations/ca.js");case"cs":return await import("ckeditor5-premium-features/translations/cs.js");case"da":return await import("ckeditor5-premium-features/translations/da.js");case"de":return await import("ckeditor5-premium-features/translations/de.js");case"de-ch":return await import("ckeditor5-premium-features/translations/de-ch.js");case"el":return await import("ckeditor5-premium-features/translations/el.js");case"en":return await import("ckeditor5-premium-features/translations/en.js");case"en-au":return await import("ckeditor5-premium-features/translations/en-au.js");case"en-gb":return await import("ckeditor5-premium-features/translations/en-gb.js");case"eo":return await import("ckeditor5-premium-features/translations/eo.js");case"es":return await import("ckeditor5-premium-features/translations/es.js");case"es-co":return await import("ckeditor5-premium-features/translations/es-co.js");case"et":return await import("ckeditor5-premium-features/translations/et.js");case"eu":return await import("ckeditor5-premium-features/translations/eu.js");case"fa":return await import("ckeditor5-premium-features/translations/fa.js");case"fi":return await import("ckeditor5-premium-features/translations/fi.js");case"fr":return await import("ckeditor5-premium-features/translations/fr.js");case"gl":return await import("ckeditor5-premium-features/translations/gl.js");case"gu":return await import("ckeditor5-premium-features/translations/gu.js");case"he":return await import("ckeditor5-premium-features/translations/he.js");case"hi":return await import("ckeditor5-premium-features/translations/hi.js");case"hr":return await import("ckeditor5-premium-features/translations/hr.js");case"hu":return await import("ckeditor5-premium-features/translations/hu.js");case"hy":return await import("ckeditor5-premium-features/translations/hy.js");case"id":return await import("ckeditor5-premium-features/translations/id.js");case"it":return await import("ckeditor5-premium-features/translations/it.js");case"ja":return await import("ckeditor5-premium-features/translations/ja.js");case"jv":return await import("ckeditor5-premium-features/translations/jv.js");case"kk":return await import("ckeditor5-premium-features/translations/kk.js");case"km":return await import("ckeditor5-premium-features/translations/km.js");case"kn":return await import("ckeditor5-premium-features/translations/kn.js");case"ko":return await import("ckeditor5-premium-features/translations/ko.js");case"ku":return await import("ckeditor5-premium-features/translations/ku.js");case"lt":return await import("ckeditor5-premium-features/translations/lt.js");case"lv":return await import("ckeditor5-premium-features/translations/lv.js");case"ms":return await import("ckeditor5-premium-features/translations/ms.js");case"nb":return await import("ckeditor5-premium-features/translations/nb.js");case"ne":return await import("ckeditor5-premium-features/translations/ne.js");case"nl":return await import("ckeditor5-premium-features/translations/nl.js");case"no":return await import("ckeditor5-premium-features/translations/no.js");case"oc":return await import("ckeditor5-premium-features/translations/oc.js");case"pl":return await import("ckeditor5-premium-features/translations/pl.js");case"pt":return await import("ckeditor5-premium-features/translations/pt.js");case"pt-br":return await import("ckeditor5-premium-features/translations/pt-br.js");case"ro":return await import("ckeditor5-premium-features/translations/ro.js");case"ru":return await import("ckeditor5-premium-features/translations/ru.js");case"si":return await import("ckeditor5-premium-features/translations/si.js");case"sk":return await import("ckeditor5-premium-features/translations/sk.js");case"sl":return await import("ckeditor5-premium-features/translations/sl.js");case"sq":return await import("ckeditor5-premium-features/translations/sq.js");case"sr":return await import("ckeditor5-premium-features/translations/sr.js");case"sr-latn":return await import("ckeditor5-premium-features/translations/sr-latn.js");case"sv":return await import("ckeditor5-premium-features/translations/sv.js");case"th":return await import("ckeditor5-premium-features/translations/th.js");case"tk":return await import("ckeditor5-premium-features/translations/tk.js");case"tr":return await import("ckeditor5-premium-features/translations/tr.js");case"tt":return await import("ckeditor5-premium-features/translations/tt.js");case"ug":return await import("ckeditor5-premium-features/translations/ug.js");case"uk":return await import("ckeditor5-premium-features/translations/uk.js");case"ur":return await import("ckeditor5-premium-features/translations/ur.js");case"uz":return await import("ckeditor5-premium-features/translations/uz.js");case"vi":return await import("ckeditor5-premium-features/translations/vi.js");case"zh":return await import("ckeditor5-premium-features/translations/zh.js");case"zh-cn":return await import("ckeditor5-premium-features/translations/zh-cn.js");default:return console.warn(`Language ${t} not found in premium translations`),await import("ckeditor5-premium-features/translations/en.js")}}catch(r){return console.error(`Failed to load translation for ${i}/${t}:`,r),null}}function F(i){return it(i,t=>({dictionary:t}))}function V(i){const t=Array.from(document.querySelectorAll(`cke5-editable[data-cke-editor-id="${i}"]`)).reduce((s,o)=>{const l=o.getAttribute("data-cke-root-name");return s[l]={element:o.querySelector("[data-cke-editable-content]"),content:o.getAttribute("data-cke-content")},s},Object.create({})),r=document.querySelector(`cke5-editor[data-cke-editor-id="${i}"]`);if(!r)return t;const a=JSON.parse(r.getAttribute("data-cke-content"))??{},n=document.querySelector(`#${i}_editor`);n&&!t.main&&(t.main={element:n,content:a.main||""});for(const[s,o]of Object.entries(a))t[s]?t[s]={...t[s],content:t[s].content??o}:t[s]={element:null,content:o};return t}function _(){return Array.from(document.querySelectorAll("cke5-editor")).map(i=>i.getAttribute("data-cke-editor-id")).filter(i=>i!==null)}function A(i){if(!i||typeof i!="object")return i;if(Array.isArray(i))return i.map(a=>A(a));const t=i;if(t.$element&&typeof t.$element=="string"){const a=document.querySelector(t.$element);return a||console.warn(`Element not found for selector: ${t.$element}`),a||null}const r=Object.create(null);for(const[a,n]of Object.entries(i))r[a]=A(n);return r}function I(i,t,r){if(!r||typeof r!="object")return r;if(Array.isArray(r))return r.map(s=>I(i,t,s));const a=r;if(a.$translation&&typeof a.$translation=="string"){const s=a.$translation,o=dt(i,s,t);return o===void 0&&console.warn(`Translation not found for key: ${s}`),o!==void 0?o:null}const n=Object.create(null);for(const[s,o]of Object.entries(r))n[s]=I(i,t,o);return n}function dt(i,t,r){for(const a of i){const n=a[r];if(n?.dictionary&&t in n.dictionary)return n.dictionary[t]}}function ht(i,t){const{editing:r}=i;r.view.change(a=>{a.setStyle("height",`${t}px`,r.view.document.getRoot())})}const M=Symbol.for("symfony-editor-watchdog");async function pt(i,t){const{EditorWatchdog:r}=await import("ckeditor5"),a=new r(null,{crashNumberLimit:10,minimumNonErrorTimePeriod:5e3});return a.setCreator(async()=>{const n=await i();return n[M]=a,n}),a}function wt(i){return M in i?i[M]:null}class g extends q{static the=new g}class ft extends HTMLElement{contextPromise=null;async connectedCallback(){await P();const t=this.getAttribute("data-cke-context-id"),r=JSON.parse(this.getAttribute("data-cke-language")),a=JSON.parse(this.getAttribute("data-cke-context")),{customTranslations:n,watchdogConfig:s,config:{plugins:o,...l}}=a,{loadedPlugins:u,hasPremium:c}=await H(o??[]),w=[...await B(r,c),F(n||{})].filter(f=>!U(f));this.contextPromise=(async()=>{const{ContextWatchdog:f,Context:k}=await import("ckeditor5"),E=new f(k,{crashNumberLimit:10,...s});let m=A(l);return m=I([...w].reverse(),r.ui,m),await E.create({...m,language:r,plugins:u,...w.length&&{translations:w}}),E.on("itemError",(...C)=>{console.error("Context item error:",...C)}),E})();const b=await this.contextPromise;this.isConnected&&g.the.register(t,b)}async disconnectedCallback(){const t=this.getAttribute("data-cke-context-id");this.style.display="none";try{await(await this.contextPromise)?.destroy()}finally{this.contextPromise=null,t&&g.the.hasItem(t)&&g.the.unregister(t)}}}class d extends q{static the=new d}class J extends HTMLElement{unmountEffect=null;async connectedCallback(){await P(),this.hasAttribute("data-cke-editor-id")||this.setAttribute("data-cke-editor-id",_()[0]);const t=this.getAttribute("data-cke-editor-id"),r=this.getAttribute("data-cke-root-name"),a=this.getAttribute("data-cke-content"),n=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10);if(!t||!r)throw new p("Editor ID or Root Name is missing.");this.style.display="block",this.unmountEffect=d.the.mountEffect(t,s=>{if(!this.isConnected)return;const o=this.querySelector("input");if(s.model.document.getRoot(r)){if(a!==null){const c=s.getData({rootName:r});c&&c!==a&&s.setData({[r]:a})}return}if(j(s)){const{ui:c,editing:y}=s;s.addRoot(r,{isUndoable:!1,...a!==null&&{initialData:a}});const w=this.querySelector("[data-cke-editable-content]"),b=c.view.createEditable(r,w);c.addEditable(b),y.view.forceRender()}const l=()=>{const c=s.getData({rootName:r});o&&(o.value=c,o.dispatchEvent(new Event("input"))),this.dispatchEvent(new CustomEvent("change",{detail:{value:c}}))},u=N(n,l);return s.model.document.on("change:data",u),l(),()=>{if(s.model.document.off("change:data",u),s.state!=="destroyed"&&r){const c=s.model.document.getRoot(r);if(c&&j(s)){try{s.ui.view.editables[r]&&s.detachEditable(c)}catch(y){console.error("Unable unmount editable from root:",y)}c.isAttached()&&s.detachRoot(r,!1)}}}})}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}async function gt({saveDebounceMs:i,editorId:t,targetElement:r}){const{Plugin:a}=await import("ckeditor5");return class extends a{static get pluginName(){return"DispatchEditorRootsChangeEvent"}afterInit(){const s=N(i,this.dispatch);this.editor.model.document.on("change:data",s),this.editor.once("ready",this.dispatch)}dispatch=()=>{r.dispatchEvent(new CustomEvent("ckeditor5:change:data",{detail:{editorId:t,editor:this.editor,roots:ut(this.editor)},bubbles:!0}))}}}async function yt(i){const{Plugin:t}=await import("ckeditor5");return class extends t{input=null;form=null;static get pluginName(){return"SyncEditorWithInput"}afterInit(){const{editor:a}=this,s=a.sourceElement.id.replace(/_editor$/,"");this.input=document.getElementById(`${s}_input`),this.input&&(a.model.document.on("change:data",N(i,()=>this.sync())),a.once("ready",this.sync),this.form=this.input.closest("form"),this.form?.addEventListener("submit",this.sync))}sync=()=>{if(this.input){const a=this.editor.getData();this.input.value=a,this.input.dispatchEvent(new Event("input",{bubbles:!0}))}};destroy(){this.form&&this.form.removeEventListener("submit",this.sync),this.input=null,this.form=null}}}class G extends HTMLElement{unmountEffect=null;async connectedCallback(){await P(),await this.initializeEditor()}async initializeEditor(){const t=this.getAttribute("data-cke-editor-id");d.the.resetErrors(t);try{this.style.display="block";const r=await this.createEditor(),a=ct(r),n=wt(r);if(this.isConnected){const s=d.the.mountEffect(t,o=>{o.once("destroy",()=>{d.the.unregister(t,!1)},{priority:"highest"})});this.unmountEffect=async()=>{d.the.unregister(t),s(),a?a.state!=="unavailable"&&await a.context.remove(a.editorContextId):n?await n.destroy():await r.destroy()},d.the.register(t,r)}}catch(r){console.error(`Error initializing CKEditor5 instance with ID "${t}":`,r),this.unmountEffect=null,d.the.error(t,r)}}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}async createEditor(){const t=this.getAttribute("data-cke-editor-id"),r=JSON.parse(this.getAttribute("data-cke-preset")),a=this.getAttribute("data-cke-context-id"),n=this.getAttribute("data-cke-editable-height")?Number.parseInt(this.getAttribute("data-cke-editable-height"),10):null,s=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10),o=JSON.parse(this.getAttribute("data-cke-language")),l=this.hasAttribute("data-cke-watchdog"),{customTranslations:u,editorType:c,licenseKey:y,config:{plugins:w,...b}}=r,f=await lt(c),k=await(a?g.the.waitFor(a):null),E=async()=>{const{loadedPlugins:m,hasPremium:C}=await H(w);m.push(await gt({saveDebounceMs:s,editorId:t,targetElement:this})),O(c)&&m.push(await yt(s));const x=[...await B(o,C),F(u||{})].filter(z=>!U(z));let v=V(t);const S=Object.keys(v);O(c)&&S.push("main"),Y(v,S)||(v=await Et(t,S));let h={...b,licenseKey:y,plugins:m,language:o,...x.length&&{translations:x}};h=A(h),h=I([...x].reverse(),o.ui,h),h=st(f,v,h);const $=await(async()=>k?(await ot({context:k,creator:f,config:h})).editor:f.create(h))();return O(c)&&n&&ht($,n),$};if(l&&!k){const m=await pt(E);return m.on("restart",()=>{const C=m.editor;d.the.register(t,C)}),await m.create({}),m.editor}return E()}}function Y(i,t){return t.every(r=>i[r]?.element)}async function Et(i,t){return nt(()=>{const r=V(i);if(!Y(r,t))throw new Error(`It looks like not all required root elements are present yet.
1
+ "use strict";var Q=Object.create;var L=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var tt=Object.getOwnPropertyNames;var et=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty;var it=(i,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of tt(t))!rt.call(i,n)&&n!==r&&L(i,n,{get:()=>t[n],enumerable:!(a=Z(t,n))||a.enumerable});return i};var e=(i,t,r)=>(r=i!=null?Q(et(i)):{},it(t||!i||!i.__esModule?L(r,"default",{value:i,enumerable:!0}):r,i));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function j(i,t){if(!i||i.size!==t.size)return!1;for(const[r,a]of i)if(!t.has(r)||t.get(r)!==a)return!1;return!0}class U{items=new Map;initializationErrors=new Map;pendingCallbacks=new Map;watchers=new Set;batchDepth=0;lastNotifiedItems=null;lastNotifiedErrors=null;execute(t,r,a){const n=this.items.get(t),s=this.initializationErrors.get(t);return s?(a?.(s),Promise.reject(s)):n?Promise.resolve(r(n)):new Promise((o,l)=>{const u=this.getPendingCallbacks(t);u.success.push(async c=>{o(await r(c))}),a?u.error.push(a):u.error.push(l)})}mountEffect(t,r){let a,n,s=!1;const o=this.watch(l=>{const u=l.get(t);if(u!==n&&(a?.(),a=void 0,n=u,!!u))try{const c=r(u);s?(c?.(),o()):a=c}catch(c){throw console.error(c),c}});return()=>{s=!0,n&&(o(),a?.(),a=void 0)}}register(t,r){this.batch(()=>{if(this.items.has(t))throw new Error(`Item with ID "${t}" is already registered.`);this.resetErrors(t),this.items.set(t,r);const a=this.pendingCallbacks.get(t);a&&(a.success.forEach(n=>n(r)),this.pendingCallbacks.delete(t)),this.items.size===1&&t!==null&&this.register(null,r)})}error(t,r){this.batch(()=>{this.items.delete(t),this.initializationErrors.set(t,r);const a=this.pendingCallbacks.get(t);a&&(a.error.forEach(n=>n(r)),this.pendingCallbacks.delete(t)),this.initializationErrors.size===1&&!this.items.size&&this.error(null,r)})}resetErrors(t){const{initializationErrors:r}=this;r.has(null)&&r.get(null)===r.get(t)&&r.delete(null),r.delete(t)}unregister(t,r=!0){this.batch(()=>{t&&this.items.get(null)===this.items.get(t)&&this.unregister(null,!1),this.items.delete(t),r&&this.pendingCallbacks.delete(t),this.resetErrors(t)})}getItems(){return Array.from(this.items.values())}getItem(t){return this.items.get(t)}hasItem(t){return this.items.has(t)}waitFor(t){return new Promise((r,a)=>{this.execute(t,r,a)})}async destroyAll(){const t=Array.from(new Set(this.items.values())).map(r=>r.destroy());this.items.clear(),this.pendingCallbacks.clear(),await Promise.all(t),this.flushWatchers()}async reset(){await this.destroyAll(),this.watchers.clear()}batch(t){this.batchDepth++;try{return t()}finally{this.batchDepth--,this.batchDepth===0&&this.flushWatchers()}}watch(t){return this.watchers.add(t),t(new Map(this.items),new Map(this.initializationErrors)),this.unwatch.bind(this,t)}unwatch(t){this.watchers.delete(t)}flushWatchers(){j(this.lastNotifiedItems,this.items)&&j(this.lastNotifiedErrors,this.initializationErrors)||(this.lastNotifiedItems=new Map(this.items),this.lastNotifiedErrors=new Map(this.initializationErrors),this.watchers.forEach(t=>t(new Map(this.items),new Map(this.initializationErrors))))}getPendingCallbacks(t){let r=this.pendingCallbacks.get(t);return r||(r={success:[],error:[]},this.pendingCallbacks.set(t,r)),r}}function $(i,t){let r=null;return(...a)=>{r&&clearTimeout(r),r=setTimeout(()=>{t(...a)},i)}}function H(i){return Object.keys(i).length===0&&i.constructor===Object}function at(i,t){const r=Object.entries(i).map(([a,n])=>[a,t(n,a)]);return Object.fromEntries(r)}function nt(){return Math.random().toString(36).substring(2)}function st(i,{timeOutAfter:t=500,retryAfter:r=100}={}){return new Promise((a,n)=>{const s=Date.now();let o=null;const l=setTimeout(()=>{n(o??new Error("Timeout"))},t),u=async()=>{try{const c=await i();clearTimeout(l),a(c)}catch(c){o=c,Date.now()-s>t?n(c):setTimeout(u,r)}};u()})}function P(){return new Promise(i=>{switch(document.readyState){case"loading":document.addEventListener("DOMContentLoaded",()=>i(),{once:!0});break;case"interactive":case"complete":setTimeout(i,0);break;default:console.warn("Unexpected document.readyState:",document.readyState),setTimeout(i,0)}})}function ot(i,t,r){const a=!i.editorName||i.editorName==="ClassicEditor",n=new Set([...Object.keys(t),...Object.keys(r.roots??{})]),s=Array.from(n).reduce((l,u)=>({...l,[u]:{...r.roots?.[u],...u==="main"?r.root:{},...u in t?{...t[u].content!==null&&{initialData:t[u].content},...!a&&t[u].element!==null&&{element:t[u].element}}:{}}}),Object.create(r.roots||{})),o={...r,roots:s,...a&&t.main?.element&&{attachTo:t.main.element}};return delete o.root,o}const M=Symbol.for("context-editor-watchdog");async function ct({context:i,creator:t,config:r}){const a=nt();await i.add({creator:t.create.bind(t),id:a,type:"editor",config:r});const n=i.getItem(a),s={state:"available",editorContextId:a,context:i};n[M]=s;const o=i.destroy.bind(i);return i.destroy=async()=>(s.state="unavailable",o()),{...s,editor:n}}function ut(i){return M in i?i[M]:null}function lt(i){return Array.from(i.model.document.getRoots()).reduce((t,r)=>(r.rootName==="$graveyard"||(t[r.rootName]=i.getData({rootName:r.rootName})),t),Object.create({}))}function W(i){return"addEditable"in i.ui}function D(i){return["inline","classic","balloon","decoupled"].includes(i)}class p extends Error{constructor(t){super(t),this.name="CKEditor5SymfonyError"}}async function mt(i){const t=await import("ckeditor5"),a={inline:t.InlineEditor,balloon:t.BalloonEditor,classic:t.ClassicEditor,decoupled:t.DecoupledEditor,multiroot:t.MultiRootEditor}[i];if(!a)throw new p(`Unsupported editor type: ${i}`);return a}class T{static the=new T;plugins=new Map;constructor(){}register(t,r){if(this.plugins.has(t))throw new p(`Plugin with name "${t}" is already registered.`);return this.plugins.set(t,r),this.unregister.bind(this,t)}unregister(t){if(!this.plugins.has(t))throw new p(`Plugin with name "${t}" is not registered.`);this.plugins.delete(t)}unregisterAll(){this.plugins.clear()}async get(t){return this.plugins.get(t)?.()}has(t){return this.plugins.has(t)}}async function B(i){const t=await import("ckeditor5");let r=null;const a=i.map(async n=>{const s=await T.the.get(n);if(s)return s;const{[n]:o}=t;if(o)return o;if(!r)try{r=await import("ckeditor5-premium-features")}catch(u){throw console.error(`Failed to load premium package: ${u}`),new p(`Plugin "${n}" not found in base package and failed to load premium package.`)}const{[n]:l}=r||{};if(l)return l;throw new p(`Plugin "${n}" not found in base or premium packages.`)});return{loadedPlugins:await Promise.all(a),hasPremium:!!r}}async function F(i,t){const r=[i.ui,i.content];return await Promise.all([q("ckeditor5",r),t&&q("ckeditor5-premium-features",r)].filter(n=>!!n)).then(n=>n.flat())}async function q(i,t){return await Promise.all(t.filter(r=>r!=="en").map(async r=>{const a=await dt(i,r);return a?.default??a}).filter(Boolean))}async function dt(i,t){try{if(i==="ckeditor5")switch(t){case"af":return await import("ckeditor5/translations/af.js");case"ar":return await import("ckeditor5/translations/ar.js");case"ast":return await import("ckeditor5/translations/ast.js");case"az":return await import("ckeditor5/translations/az.js");case"bg":return await import("ckeditor5/translations/bg.js");case"bn":return await import("ckeditor5/translations/bn.js");case"bs":return await import("ckeditor5/translations/bs.js");case"ca":return await import("ckeditor5/translations/ca.js");case"cs":return await import("ckeditor5/translations/cs.js");case"da":return await import("ckeditor5/translations/da.js");case"de":return await import("ckeditor5/translations/de.js");case"de-ch":return await import("ckeditor5/translations/de-ch.js");case"el":return await import("ckeditor5/translations/el.js");case"en":return await import("ckeditor5/translations/en.js");case"en-au":return await import("ckeditor5/translations/en-au.js");case"en-gb":return await import("ckeditor5/translations/en-gb.js");case"eo":return await import("ckeditor5/translations/eo.js");case"es":return await import("ckeditor5/translations/es.js");case"es-co":return await import("ckeditor5/translations/es-co.js");case"et":return await import("ckeditor5/translations/et.js");case"eu":return await import("ckeditor5/translations/eu.js");case"fa":return await import("ckeditor5/translations/fa.js");case"fi":return await import("ckeditor5/translations/fi.js");case"fr":return await import("ckeditor5/translations/fr.js");case"gl":return await import("ckeditor5/translations/gl.js");case"gu":return await import("ckeditor5/translations/gu.js");case"he":return await import("ckeditor5/translations/he.js");case"hi":return await import("ckeditor5/translations/hi.js");case"hr":return await import("ckeditor5/translations/hr.js");case"hu":return await import("ckeditor5/translations/hu.js");case"hy":return await import("ckeditor5/translations/hy.js");case"id":return await import("ckeditor5/translations/id.js");case"it":return await import("ckeditor5/translations/it.js");case"ja":return await import("ckeditor5/translations/ja.js");case"jv":return await import("ckeditor5/translations/jv.js");case"kk":return await import("ckeditor5/translations/kk.js");case"km":return await import("ckeditor5/translations/km.js");case"kn":return await import("ckeditor5/translations/kn.js");case"ko":return await import("ckeditor5/translations/ko.js");case"ku":return await import("ckeditor5/translations/ku.js");case"lt":return await import("ckeditor5/translations/lt.js");case"lv":return await import("ckeditor5/translations/lv.js");case"ms":return await import("ckeditor5/translations/ms.js");case"nb":return await import("ckeditor5/translations/nb.js");case"ne":return await import("ckeditor5/translations/ne.js");case"nl":return await import("ckeditor5/translations/nl.js");case"no":return await import("ckeditor5/translations/no.js");case"oc":return await import("ckeditor5/translations/oc.js");case"pl":return await import("ckeditor5/translations/pl.js");case"pt":return await import("ckeditor5/translations/pt.js");case"pt-br":return await import("ckeditor5/translations/pt-br.js");case"ro":return await import("ckeditor5/translations/ro.js");case"ru":return await import("ckeditor5/translations/ru.js");case"si":return await import("ckeditor5/translations/si.js");case"sk":return await import("ckeditor5/translations/sk.js");case"sl":return await import("ckeditor5/translations/sl.js");case"sq":return await import("ckeditor5/translations/sq.js");case"sr":return await import("ckeditor5/translations/sr.js");case"sr-latn":return await import("ckeditor5/translations/sr-latn.js");case"sv":return await import("ckeditor5/translations/sv.js");case"th":return await import("ckeditor5/translations/th.js");case"tk":return await import("ckeditor5/translations/tk.js");case"tr":return await import("ckeditor5/translations/tr.js");case"tt":return await import("ckeditor5/translations/tt.js");case"ug":return await import("ckeditor5/translations/ug.js");case"uk":return await import("ckeditor5/translations/uk.js");case"ur":return await import("ckeditor5/translations/ur.js");case"uz":return await import("ckeditor5/translations/uz.js");case"vi":return await import("ckeditor5/translations/vi.js");case"zh":return await import("ckeditor5/translations/zh.js");case"zh-cn":return await import("ckeditor5/translations/zh-cn.js");default:return console.warn(`Language ${t} not found in ckeditor5 translations`),null}else switch(t){case"af":return await import("ckeditor5-premium-features/translations/af.js");case"ar":return await import("ckeditor5-premium-features/translations/ar.js");case"ast":return await import("ckeditor5-premium-features/translations/ast.js");case"az":return await import("ckeditor5-premium-features/translations/az.js");case"bg":return await import("ckeditor5-premium-features/translations/bg.js");case"bn":return await import("ckeditor5-premium-features/translations/bn.js");case"bs":return await import("ckeditor5-premium-features/translations/bs.js");case"ca":return await import("ckeditor5-premium-features/translations/ca.js");case"cs":return await import("ckeditor5-premium-features/translations/cs.js");case"da":return await import("ckeditor5-premium-features/translations/da.js");case"de":return await import("ckeditor5-premium-features/translations/de.js");case"de-ch":return await import("ckeditor5-premium-features/translations/de-ch.js");case"el":return await import("ckeditor5-premium-features/translations/el.js");case"en":return await import("ckeditor5-premium-features/translations/en.js");case"en-au":return await import("ckeditor5-premium-features/translations/en-au.js");case"en-gb":return await import("ckeditor5-premium-features/translations/en-gb.js");case"eo":return await import("ckeditor5-premium-features/translations/eo.js");case"es":return await import("ckeditor5-premium-features/translations/es.js");case"es-co":return await import("ckeditor5-premium-features/translations/es-co.js");case"et":return await import("ckeditor5-premium-features/translations/et.js");case"eu":return await import("ckeditor5-premium-features/translations/eu.js");case"fa":return await import("ckeditor5-premium-features/translations/fa.js");case"fi":return await import("ckeditor5-premium-features/translations/fi.js");case"fr":return await import("ckeditor5-premium-features/translations/fr.js");case"gl":return await import("ckeditor5-premium-features/translations/gl.js");case"gu":return await import("ckeditor5-premium-features/translations/gu.js");case"he":return await import("ckeditor5-premium-features/translations/he.js");case"hi":return await import("ckeditor5-premium-features/translations/hi.js");case"hr":return await import("ckeditor5-premium-features/translations/hr.js");case"hu":return await import("ckeditor5-premium-features/translations/hu.js");case"hy":return await import("ckeditor5-premium-features/translations/hy.js");case"id":return await import("ckeditor5-premium-features/translations/id.js");case"it":return await import("ckeditor5-premium-features/translations/it.js");case"ja":return await import("ckeditor5-premium-features/translations/ja.js");case"jv":return await import("ckeditor5-premium-features/translations/jv.js");case"kk":return await import("ckeditor5-premium-features/translations/kk.js");case"km":return await import("ckeditor5-premium-features/translations/km.js");case"kn":return await import("ckeditor5-premium-features/translations/kn.js");case"ko":return await import("ckeditor5-premium-features/translations/ko.js");case"ku":return await import("ckeditor5-premium-features/translations/ku.js");case"lt":return await import("ckeditor5-premium-features/translations/lt.js");case"lv":return await import("ckeditor5-premium-features/translations/lv.js");case"ms":return await import("ckeditor5-premium-features/translations/ms.js");case"nb":return await import("ckeditor5-premium-features/translations/nb.js");case"ne":return await import("ckeditor5-premium-features/translations/ne.js");case"nl":return await import("ckeditor5-premium-features/translations/nl.js");case"no":return await import("ckeditor5-premium-features/translations/no.js");case"oc":return await import("ckeditor5-premium-features/translations/oc.js");case"pl":return await import("ckeditor5-premium-features/translations/pl.js");case"pt":return await import("ckeditor5-premium-features/translations/pt.js");case"pt-br":return await import("ckeditor5-premium-features/translations/pt-br.js");case"ro":return await import("ckeditor5-premium-features/translations/ro.js");case"ru":return await import("ckeditor5-premium-features/translations/ru.js");case"si":return await import("ckeditor5-premium-features/translations/si.js");case"sk":return await import("ckeditor5-premium-features/translations/sk.js");case"sl":return await import("ckeditor5-premium-features/translations/sl.js");case"sq":return await import("ckeditor5-premium-features/translations/sq.js");case"sr":return await import("ckeditor5-premium-features/translations/sr.js");case"sr-latn":return await import("ckeditor5-premium-features/translations/sr-latn.js");case"sv":return await import("ckeditor5-premium-features/translations/sv.js");case"th":return await import("ckeditor5-premium-features/translations/th.js");case"tk":return await import("ckeditor5-premium-features/translations/tk.js");case"tr":return await import("ckeditor5-premium-features/translations/tr.js");case"tt":return await import("ckeditor5-premium-features/translations/tt.js");case"ug":return await import("ckeditor5-premium-features/translations/ug.js");case"uk":return await import("ckeditor5-premium-features/translations/uk.js");case"ur":return await import("ckeditor5-premium-features/translations/ur.js");case"uz":return await import("ckeditor5-premium-features/translations/uz.js");case"vi":return await import("ckeditor5-premium-features/translations/vi.js");case"zh":return await import("ckeditor5-premium-features/translations/zh.js");case"zh-cn":return await import("ckeditor5-premium-features/translations/zh-cn.js");default:return console.warn(`Language ${t} not found in premium translations`),await import("ckeditor5-premium-features/translations/en.js")}}catch(r){return console.error(`Failed to load translation for ${i}/${t}:`,r),null}}function V(i){return at(i,t=>({dictionary:t}))}function _(i){const t=Array.from(document.querySelectorAll(`cke5-editable[data-cke-editor-id="${i}"]`)).reduce((s,o)=>{const l=o.getAttribute("data-cke-root-name");return s[l]={element:o.querySelector("[data-cke-editable-content]"),content:o.getAttribute("data-cke-content")},s},Object.create({})),r=document.querySelector(`cke5-editor[data-cke-editor-id="${i}"]`);if(!r)return t;const a=JSON.parse(r.getAttribute("data-cke-content"))??{},n=document.querySelector(`#${i}_editor`);n&&!t.main&&(t.main={element:n,content:a.main||""});for(const[s,o]of Object.entries(a))t[s]?t[s]={...t[s],content:t[s].content??o}:t[s]={element:null,content:o};return t}function J(){return Array.from(document.querySelectorAll("cke5-editor")).map(i=>i.getAttribute("data-cke-editor-id")).filter(i=>i!==null)}function A(i){if(!i||typeof i!="object")return i;if(Array.isArray(i))return i.map(a=>A(a));const t=i;if(t.$element&&typeof t.$element=="string"){const a=document.querySelector(t.$element);return a||console.warn(`Element not found for selector: ${t.$element}`),a||null}const r=Object.create(null);for(const[a,n]of Object.entries(i))r[a]=A(n);return r}function I(i,t,r){if(!r||typeof r!="object")return r;if(Array.isArray(r))return r.map(s=>I(i,t,s));const a=r;if(a.$translation&&typeof a.$translation=="string"){const s=a.$translation,o=ht(i,s,t);return o===void 0&&console.warn(`Translation not found for key: ${s}`),o!==void 0?o:null}const n=Object.create(null);for(const[s,o]of Object.entries(r))n[s]=I(i,t,o);return n}function ht(i,t,r){for(const a of i){const n=a[r];if(n?.dictionary&&t in n.dictionary)return n.dictionary[t]}}function pt(i,t){const{editing:r}=i;r.view.change(a=>{a.setStyle("height",`${t}px`,r.view.document.getRoot())})}const N=Symbol.for("symfony-editor-watchdog");async function wt(i,t){const{EditorWatchdog:r}=await import("ckeditor5"),a=new r(null,t??{crashNumberLimit:10,minimumNonErrorTimePeriod:5e3});return a.setCreator(async()=>{const n=await i();return n[N]=a,n}),a}function ft(i){return N in i?i[N]:null}class g extends U{static the=new g}class gt extends HTMLElement{contextPromise=null;async connectedCallback(){await P();const t=this.getAttribute("data-cke-context-id"),r=JSON.parse(this.getAttribute("data-cke-language")),a=JSON.parse(this.getAttribute("data-cke-context")),{customTranslations:n,watchdogConfig:s,config:{plugins:o,...l}}=a,{loadedPlugins:u,hasPremium:c}=await B(o??[]),w=[...await F(r,c),V(n||{})].filter(k=>!H(k));this.contextPromise=(async()=>{const{ContextWatchdog:k,Context:C}=await import("ckeditor5"),f=new k(C,{crashNumberLimit:10,...s});let E=A(l);return E=I([...w].reverse(),r.ui,E),await f.create({...E,language:r,plugins:u,...w.length&&{translations:w}}),f.on("itemError",(...d)=>{console.error("Context item error:",...d)}),f})();const b=await this.contextPromise;this.isConnected&&g.the.register(t,b)}async disconnectedCallback(){const t=this.getAttribute("data-cke-context-id");this.style.display="none";try{await(await this.contextPromise)?.destroy()}finally{this.contextPromise=null,t&&g.the.hasItem(t)&&g.the.unregister(t)}}}class m extends U{static the=new m}class G extends HTMLElement{unmountEffect=null;async connectedCallback(){await P(),this.hasAttribute("data-cke-editor-id")||this.setAttribute("data-cke-editor-id",J()[0]);const t=this.getAttribute("data-cke-editor-id"),r=this.getAttribute("data-cke-root-name"),a=this.getAttribute("data-cke-content"),n=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10);if(!t||!r)throw new p("Editor ID or Root Name is missing.");this.style.display="block",this.unmountEffect=m.the.mountEffect(t,s=>{if(!this.isConnected)return;const o=this.querySelector("input");if(s.model.document.getRoot(r)){if(a!==null){const c=s.getData({rootName:r});c&&c!==a&&s.setData({[r]:a})}return}if(W(s)){const{ui:c,editing:y}=s;s.addRoot(r,{isUndoable:!1,...a!==null&&{initialData:a}});const w=this.querySelector("[data-cke-editable-content]"),b=c.view.createEditable(r,w);c.addEditable(b),y.view.forceRender()}const l=()=>{const c=s.getData({rootName:r});o&&(o.value=c,o.dispatchEvent(new Event("input"))),this.dispatchEvent(new CustomEvent("change",{detail:{value:c}}))},u=$(n,l);return s.model.document.on("change:data",u),l(),()=>{if(s.model.document.off("change:data",u),s.state!=="destroyed"&&r){const c=s.model.document.getRoot(r);if(c&&W(s)){try{s.ui.view.editables[r]&&s.detachEditable(c)}catch(y){console.error("Unable unmount editable from root:",y)}c.isAttached()&&s.detachRoot(r,!1)}}}})}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}async function yt({saveDebounceMs:i,editorId:t,targetElement:r}){const{Plugin:a}=await import("ckeditor5");return class extends a{static get pluginName(){return"DispatchEditorRootsChangeEvent"}afterInit(){const s=$(i,this.dispatch);this.editor.model.document.on("change:data",s),this.editor.once("ready",this.dispatch)}dispatch=()=>{r.dispatchEvent(new CustomEvent("ckeditor5:change:data",{detail:{editorId:t,editor:this.editor,roots:lt(this.editor)},bubbles:!0}))}}}async function Et(i){const{Plugin:t}=await import("ckeditor5");return class extends t{input=null;form=null;static get pluginName(){return"SyncEditorWithInput"}afterInit(){const{editor:a}=this,s=a.sourceElement.id.replace(/_editor$/,"");this.input=document.getElementById(`${s}_input`),this.input&&(a.model.document.on("change:data",$(i,()=>this.sync())),a.once("ready",this.sync),this.form=this.input.closest("form"),this.form?.addEventListener("submit",this.sync))}sync=()=>{if(this.input){const a=this.editor.getData();this.input.value=a,this.input.dispatchEvent(new Event("input",{bubbles:!0}))}};destroy(){this.form&&this.form.removeEventListener("submit",this.sync),this.input=null,this.form=null}}}class Y extends HTMLElement{unmountEffect=null;async connectedCallback(){await P(),await this.initializeEditor()}async initializeEditor(){const t=this.getAttribute("data-cke-editor-id");m.the.resetErrors(t);try{this.style.display="block";const r=await this.createEditor(),a=ut(r),n=ft(r);if(this.isConnected){const s=m.the.mountEffect(t,o=>{o.once("destroy",()=>{m.the.unregister(t,!1)},{priority:"highest"})});this.unmountEffect=async()=>{m.the.unregister(t),s(),a?a.state!=="unavailable"&&await a.context.remove(a.editorContextId):n?await n.destroy():await r.destroy()},m.the.register(t,r)}}catch(r){console.error(`Error initializing CKEditor5 instance with ID "${t}":`,r),this.unmountEffect=null,m.the.error(t,r)}}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}async createEditor(){const t=this.getAttribute("data-cke-editor-id"),r=JSON.parse(this.getAttribute("data-cke-preset")),a=this.getAttribute("data-cke-context-id"),n=this.getAttribute("data-cke-editable-height")?Number.parseInt(this.getAttribute("data-cke-editable-height"),10):null,s=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10),o=JSON.parse(this.getAttribute("data-cke-language")),l=this.hasAttribute("data-cke-watchdog"),{customTranslations:u,editorType:c,licenseKey:y,watchdogConfig:w,config:{plugins:b,...k}}=r,C=await mt(c),f=await(a?g.the.waitFor(a):null),E=async()=>{const{loadedPlugins:d,hasPremium:x}=await B(b);d.push(await yt({saveDebounceMs:s,editorId:t,targetElement:this})),D(c)&&d.push(await Et(s));const S=[...await F(o,x),V(u||{})].filter(R=>!H(R));let v=_(t);const O=Object.keys(v);D(c)&&O.push("main"),X(v,O)||(v=await bt(t,O));let h={...k,licenseKey:y,plugins:d,language:o,...S.length&&{translations:S}};h=A(h),h=I([...S].reverse(),o.ui,h),h=ot(C,v,h);const z=await(async()=>f?(await ct({context:f,creator:C,config:h})).editor:C.create(h))();return D(c)&&n&&pt(z,n),z};if(l&&!f){const d=await wt(E,w);return d.on("restart",()=>{const x=d.editor;m.the.register(t,x)}),await d.create({}),d.editor}return E()}}function X(i,t){return t.every(r=>i[r]?.element)}async function bt(i,t){return st(()=>{const r=_(i);if(!X(r,t))throw new Error(`It looks like not all required root elements are present yet.
2
2
  * If you want to wait for them, ensure they are registered before editor initialization.
3
3
  * If you want lazy initialize roots, consider removing root values from the \`initialData\` config and assign initial data in editable components.
4
- Missing roots: ${t.filter(a=>!r[a]?.element).join(", ")}.`);return r},{timeOutAfter:2e3,retryAfter:100})}class X extends HTMLElement{unmountEffect=null;async connectedCallback(){await P();const t=this.getAttribute("data-cke-editor-id")||_()[0],r=this.getAttribute("data-cke-name");!t||!r||(this.style.display="block",this.unmountEffect=d.the.mountEffect(t,a=>{if(!this.isConnected)return;const{ui:n}=a,s=bt(r),o=n.view[s];if(!o)throw new p(`Unknown UI part name: "${r}". Supported names are "toolbar" and "menubar".`);return this.appendChild(o.element),()=>{this.innerHTML=""}}))}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}function bt(i){switch(i){case"toolbar":return"toolbar";case"menubar":return"menuBarView";default:return null}}const kt={"cke5-editor":G,"cke5-context":ft,"cke5-ui-part":X,"cke5-editable":J};function Ct(){for(const[i,t]of Object.entries(kt))window.customElements.get(i)||window.customElements.define(i,t)}Ct();exports.CKEditor5SymfonyError=p;exports.ContextsRegistry=g;exports.CustomEditorPluginsRegistry=T;exports.EditableComponentElement=J;exports.EditorComponentElement=G;exports.EditorsRegistry=d;exports.UIPartComponentElement=X;
4
+ Missing roots: ${t.filter(a=>!r[a]?.element).join(", ")}.`);return r},{timeOutAfter:2e3,retryAfter:100})}class K extends HTMLElement{unmountEffect=null;async connectedCallback(){await P();const t=this.getAttribute("data-cke-editor-id")||J()[0],r=this.getAttribute("data-cke-name");!t||!r||(this.style.display="block",this.unmountEffect=m.the.mountEffect(t,a=>{if(!this.isConnected)return;const{ui:n}=a,s=kt(r),o=n.view[s];if(!o)throw new p(`Unknown UI part name: "${r}". Supported names are "toolbar" and "menubar".`);return this.appendChild(o.element),()=>{this.innerHTML=""}}))}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}function kt(i){switch(i){case"toolbar":return"toolbar";case"menubar":return"menuBarView";default:return null}}const Ct={"cke5-editor":Y,"cke5-context":gt,"cke5-ui-part":K,"cke5-editable":G};function vt(){for(const[i,t]of Object.entries(Ct))window.customElements.get(i)||window.customElements.define(i,t)}vt();exports.CKEditor5SymfonyError=p;exports.ContextsRegistry=g;exports.CustomEditorPluginsRegistry=T;exports.EditableComponentElement=G;exports.EditorComponentElement=Y;exports.EditorsRegistry=m;exports.UIPartComponentElement=K;
5
5
  //# sourceMappingURL=index.cjs.map