ckeditor5-blazor 1.11.1 → 1.12.1

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":"editable.d.ts","sourceRoot":"","sources":["../../../src/elements/editable.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,WAAW;IACvD;;OAEG;IACH,OAAO,CAAC,aAAa,CAA6B;IAElD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAA2B;IAEnD;;OAEG;IACG,iBAAiB;IAQvB;;OAEG;YACW,kBAAkB;IA2HhC;;OAEG;IACH,oBAAoB;CAWrB"}
1
+ {"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../../../src/elements/editable.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,WAAW;IACvD;;OAEG;IACH,OAAO,CAAC,aAAa,CAA6B;IAElD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAA2B;IAEnD;;OAEG;IACG,iBAAiB;IAQvB;;OAEG;YACW,kBAAkB;IA6HhC;;OAEG;IACH,oBAAoB;CAWrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"assign-editor-roots-to-config.d.ts","sourceRoot":"","sources":["../../../../../src/elements/editor/utils/assign-editor-roots-to-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,YAAY,EAC9D,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,MAAM,EAAE,CAAC,GACR,CAAC,CAuCH"}
1
+ {"version":3,"file":"assign-editor-roots-to-config.d.ts","sourceRoot":"","sources":["../../../../../src/elements/editor/utils/assign-editor-roots-to-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,YAAY,EAC9D,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,MAAM,EAAE,CAAC,GACR,CAAC,CAwCH"}
@@ -19,5 +19,6 @@ export declare function queryAllEditorEditables(editorId: EditorId): Record<stri
19
19
  export type EditableItem = {
20
20
  element: HTMLElement | null;
21
21
  content: string | null;
22
+ modelElement: string | null;
22
23
  };
23
24
  //# sourceMappingURL=query-all-editor-editables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-all-editor-editables.d.ts","sourceRoot":"","sources":["../../../../../src/elements/editor/utils/query-all-editor-editables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAkDxF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"query-all-editor-editables.d.ts","sourceRoot":"","sources":["../../../../../src/elements/editor/utils/query-all-editor-editables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CA2DxF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC"}
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var ut=Object.create;var q=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var mt=Object.getPrototypeOf,ht=Object.prototype.hasOwnProperty;var pt=(r,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of dt(t))!ht.call(r,i)&&i!==e&&q(r,i,{get:()=>t[i],enumerable:!(a=lt(t,i))||a.enumerable});return r};var n=(r,t,e)=>(e=r!=null?ut(mt(r)):{},pt(t||!r||!r.__esModule?q(e,"default",{value:r,enumerable:!0}):e,r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class k extends Error{constructor(t){super(t),this.name="CKEditor5BlazorError"}}function B(r,t){if(!r||r.size!==t.size)return!1;for(const[e,a]of r)if(!t.has(e)||t.get(e)!==a)return!1;return!0}class G{items=new Map;initializationErrors=new Map;pendingCallbacks=new Map;watchers=new Set;batchDepth=0;lastNotifiedItems=null;lastNotifiedErrors=null;execute(t,e,a){const i=this.items.get(t),o=this.initializationErrors.get(t);return o?(a?.(o),Promise.reject(o)):i?Promise.resolve(e(i)):new Promise((s,l)=>{const c=this.getPendingCallbacks(t);c.success.push(async u=>{s(await e(u))}),a?c.error.push(a):c.error.push(l)})}mountEffect(t,e){let a,i,o=!1;const s=this.watch(l=>{const c=l.get(t);if(c!==i&&(a?.(),a=void 0,i=c,!!c))try{const u=e(c);o?(u?.(),s()):a=u}catch(u){throw console.error(u),u}});return()=>{o=!0,i&&(s(),a?.(),a=void 0)}}register(t,e){this.batch(()=>{if(this.items.has(t))throw new Error(`Item with ID "${t}" is already registered.`);this.resetErrors(t),this.items.set(t,e);const a=this.pendingCallbacks.get(t);a&&(a.success.forEach(i=>i(e)),this.pendingCallbacks.delete(t)),this.items.size===1&&t!==null&&this.register(null,e)})}error(t,e){this.batch(()=>{this.items.delete(t),this.initializationErrors.set(t,e);const a=this.pendingCallbacks.get(t);a&&(a.error.forEach(i=>i(e)),this.pendingCallbacks.delete(t)),this.initializationErrors.size===1&&!this.items.size&&this.error(null,e)})}resetErrors(t){const{initializationErrors:e}=this;e.has(null)&&e.get(null)===e.get(t)&&e.delete(null),e.delete(t)}unregister(t,e=!0){this.batch(()=>{t&&this.items.get(null)===this.items.get(t)&&this.unregister(null,!1),this.items.delete(t),e&&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((e,a)=>{this.execute(t,e,a)})}async destroyAll(){const t=Array.from(new Set(this.items.values())).map(e=>e.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(){B(this.lastNotifiedItems,this.items)&&B(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 e=this.pendingCallbacks.get(t);return e||(e={success:[],error:[]},this.pendingCallbacks.set(t,e)),e}}function _(r,t){let e=null;return(...a)=>{e&&clearTimeout(e),e=setTimeout(()=>{t(...a)},r)}}function R(r){return Object.keys(r).length===0&&r.constructor===Object}function ft(r,t){const e=Object.entries(r).map(([a,i])=>[a,t(i,a)]);return Object.fromEntries(e)}function wt(r,t){if(r===t)return!0;const e=Object.keys(r),a=Object.keys(t);if(e.length!==a.length)return!1;for(const i of e)if(r[i]!==t[i]||!Object.prototype.hasOwnProperty.call(t,i))return!1;return!0}function gt(){return Math.random().toString(36).substring(2)}function yt(r,{timeOutAfter:t=500,retryAfter:e=100}={}){return new Promise((a,i)=>{const o=Date.now();let s=null;const l=setTimeout(()=>{i(s??new Error("Timeout"))},t),c=async()=>{try{const u=await r();clearTimeout(l),a(u)}catch(u){s=u,Date.now()-o>t?i(u):setTimeout(c,e)}};c()})}function D(){return new Promise(r=>{switch(document.readyState){case"loading":document.addEventListener("DOMContentLoaded",()=>r(),{once:!0});break;case"interactive":case"complete":setTimeout(r,0);break;default:console.warn("Unexpected document.readyState:",document.readyState),setTimeout(r,0)}})}function F(r){if(r.hasAttribute("data-cke-interactive"))return{promise:Promise.resolve(),disconnect:()=>{}};let t;return{promise:new Promise(a=>{t=new MutationObserver(i=>{for(const o of i)if(o.type==="attributes"&&o.attributeName==="data-cke-interactive"&&r.hasAttribute("data-cke-interactive")){t.disconnect(),a();break}}),t.observe(r,{attributes:!0})}),disconnect:()=>t?.disconnect()}}function M(r){r.setAttribute("data-cke-interactive","true")}function Et(r,t,e){const a=!r.editorName||r.editorName==="ClassicEditor",i=new Set([...Object.keys(t),...Object.keys(e.roots??{})]),o=Array.from(i).reduce((l,c)=>({...l,[c]:{...e.roots?.[c],...c==="main"?e.root:{},...c in t?{...t[c].content!==null&&{initialData:t[c].content},...!a&&t[c].element!==null&&{element:t[c].element}}:{}}}),Object.create(e.roots||{})),s={...e,roots:o,...a&&t.main?.element&&{attachTo:t.main.element}};return delete s.root,s}function bt(r){const t=[r.ui?.element,r.ui?.view?.toolbar?.element,r.ui?.view?.menuBarView?.element].filter(Boolean);for(const o of t)i(o);const e=r.ui?.view?.body?._bodyCollectionContainer;e?.isConnected&&i(e);const a=r.editing?.view;if(a)for(const o of a.domRoots.values())o instanceof HTMLElement&&(o.removeAttribute("contenteditable"),o.removeAttribute("role"),o.removeAttribute("aria-label"),o.removeAttribute("aria-multiline"),o.removeAttribute("spellcheck"),o.classList.remove("ck","ck-content","ck-editor__editable","ck-rounded-corners","ck-editor__editable_inline","ck-blurred","ck-focused"),i(o));function i(o){o.hasAttribute("data-cke-controlled")?o.innerHTML="":o.remove()}}const W=Symbol.for("context-editor-watchdog");async function kt({context:r,creator:t,config:e}){const a=gt();await r.add({creator:t.create.bind(t),id:a,type:"editor",config:e});const i=r.getItem(a),o={state:"available",editorContextId:a,context:r};i[W]=o;const s=r.destroy.bind(r);return r.destroy=async()=>(o.state="unavailable",s()),{...o,editor:i}}function vt(r){return W in r?r[W]:null}function K(r){return Array.from(r.model.document.getRoots()).reduce((t,e)=>(e.rootName==="$graveyard"||(t[e.rootName]=r.getData({rootName:e.rootName})),t),Object.create({}))}function $(r){return["inline","classic","balloon","decoupled"].includes(r)}async function H(r){const t=await import("ckeditor5"),a={inline:t.InlineEditor,balloon:t.BalloonEditor,classic:t.ClassicEditor,decoupled:t.DecoupledEditor,multiroot:t.MultiRootEditor}[r];if(!a)throw new k(`Unsupported editor type: ${r}`);return a}class z{static the=new z;plugins=new Map;constructor(){}register(t,e){if(this.plugins.has(t))throw new k(`Plugin with name "${t}" is already registered.`);return this.plugins.set(t,e),this.unregister.bind(this,t)}unregister(t){if(!this.plugins.has(t))throw new k(`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 Y(r){const t=await import("ckeditor5");let e=null;const a=r.map(async i=>{if(Ct(i)){const{name:c,path:u}=i.$import,m=await import(u),f=(Object.prototype.hasOwnProperty.call(m,c)?m[c]:void 0)??(Object.prototype.hasOwnProperty.call(m,"default")?m.default:void 0);if(!f)throw new k(`Plugin "${c}" not found in module "${u}".`);return f}const o=await z.the.get(i);if(o)return o;const{[i]:s}=t;if(s)return s;if(!e)try{e=await import("ckeditor5-premium-features")}catch(c){throw console.error(`Failed to load premium package: ${c}`),new k(`Plugin "${i}" not found in base package and failed to load premium package.`)}const{[i]:l}=e||{};if(l)return l;throw new k(`Plugin "${i}" not found in base or premium packages.`)});return{loadedPlugins:await Promise.all(a),hasPremium:!!e}}function Ct(r){return typeof r=="object"&&r!==null&&"$import"in r}async function X(r,t){const e=[r.ui,r.content];return await Promise.all([J("ckeditor5",e),t&&J("ckeditor5-premium-features",e)].filter(i=>!!i)).then(i=>i.flat())}async function J(r,t){return await Promise.all(t.filter(e=>e!=="en").map(async e=>{const a=await At(r,e);return a?.default??a}).filter(Boolean))}async function At(r,t){try{if(r==="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(e){return console.error(`Failed to load translation for ${r}/${t}:`,e),null}}function Q(r){return ft(r,t=>({dictionary:t}))}function Z(r){return r?typeof r=="string"?{ui:r,content:r}:r:{ui:"en",content:"en"}}function tt(r){const t=Array.from(document.querySelectorAll(`cke5-editable[data-cke-editor-id="${r}"]`)).reduce((o,s)=>{const l=s.getAttribute("data-cke-root-name");return o[l]={element:s.querySelector("[data-cke-editable-content]"),content:s.getAttribute("data-cke-content")},o},Object.create({})),e=document.querySelector(`cke5-editor[data-cke-editor-id="${r}"]`);if(!e)return t;const a=JSON.parse(e.getAttribute("data-cke-content"))??{},i=document.querySelector(`#${r}_editor`);i&&!t.main&&(t.main={element:i,content:a.main||""});for(const[o,s]of Object.entries(a))t[o]?t[o]={...t[o],content:t[o].content??s}:t[o]={element:null,content:s};return t}function U(){return Array.from(document.querySelectorAll("cke5-editor")).map(r=>r.getAttribute("data-cke-editor-id")).filter(r=>r!==null)}function S(r){if(!r||typeof r!="object")return r;if(Array.isArray(r))return r.map(a=>S(a));const t=r;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 e=Object.create(null);for(const[a,i]of Object.entries(r))e[a]=S(i);return e}function x(r,t,e){if(!e||typeof e!="object")return e;if(Array.isArray(e))return e.map(o=>x(r,t,o));const a=e;if(a.$translation&&typeof a.$translation=="string"){const o=a.$translation,s=It(r,o,t);return s===void 0&&console.warn(`Translation not found for key: ${o}`),s!==void 0?s:null}const i=Object.create(null);for(const[o,s]of Object.entries(e))i[o]=x(r,t,s);return i}function It(r,t,e){for(const a of r){const i=a[e];if(i?.dictionary&&t in i.dictionary)return i.dictionary[t]}}function Tt(r,t){const{editing:e}=r;e.view.change(a=>{a.setStyle("height",`${t}px`,e.view.document.getRoot())})}const L=Symbol.for("elixir-editor-watchdog");async function Ot(r,t){const{EditorWatchdog:e}=await import("ckeditor5"),a=new e(null,t??{crashNumberLimit:10,minimumNonErrorTimePeriod:5e3});return a.setCreator(async()=>{const i=await r();return i[L]=a,i}),a}function Nt(r){return L in r?r[L]:null}class C extends G{static the=new C}class Pt extends HTMLElement{contextPromise=null;interactiveWait;async connectedCallback(){await D(),this.interactiveWait=F(this),await this.interactiveWait.promise,await this.initializeContext()}async initializeContext(){const t=JSON.parse(this.getAttribute("data-cke-context")),{customTranslations:e,watchdogConfig:a,config:{plugins:i,...o}}=t,s=this.getAttribute("data-cke-context-id"),l=this.getAttribute("data-cke-language")?JSON.parse(this.getAttribute("data-cke-language")):Z(o.language),{loadedPlugins:c,hasPremium:u}=await Y(i??[]),m=[...await X(l,u),Q(e||{})].filter(E=>!R(E));this.contextPromise=(async()=>{const{ContextWatchdog:E,Context:w}=await import("ckeditor5"),g=new E(w,{crashNumberLimit:10,...a});let p=S(o);return p=x([...m].reverse(),l.ui,p),await g.create({...p,language:l,plugins:c,...m.length&&{translations:m}}),g.on("itemError",(...A)=>{console.error("Context item error:",...A)}),g})();const f=await this.contextPromise;this.isConnected&&C.the.register(s,f)}async disconnectedCallback(){this.interactiveWait?.disconnect();const t=this.getAttribute("data-cke-context-id");this.style.display="none";try{await(await this.contextPromise)?.destroy()}finally{this.contextPromise=null,t&&C.the.hasItem(t)&&C.the.unregister(t)}}}class h extends G{static the=new h}class et extends HTMLElement{unmountEffect=null;interactiveWait;async connectedCallback(){await D(),this.interactiveWait=F(this),await this.interactiveWait.promise,await this.initializeEditable()}async initializeEditable(){this.hasAttribute("data-cke-editor-id")||this.setAttribute("data-cke-editor-id",U()[0]);const t=this.getAttribute("data-cke-editor-id"),e=this.getAttribute("data-cke-root-name"),a=JSON.parse(this.getAttribute("data-cke-root-attributes")||"{}"),i=this.getAttribute("data-cke-content"),o=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10);if(!t||!e)throw new k("Editor ID or Root Name is missing.");this.style.display="block",this.unmountEffect=h.the.mountEffect(t,s=>{if(!this.isConnected)return;const{ui:l,editing:c,model:u}=s,d=this.querySelector("input"),m=u.document.getRoot(e);if(m?.isAttached()){if(i!==null){const p=s.getData({rootName:e});p&&p!==i&&s.setData({[e]:i})}R(a)||s.model.change(p=>{p.setAttributes(a,m)});return}s.addRoot(e,{isUndoable:!1,modelAttributes:{...a},...i!==null&&{initialData:i}});const f=this.querySelector("[data-cke-editable-content]"),E=l.view.createEditable(e,f);l.addEditable(E),c.view.forceRender();const w=()=>{if(!u.document.getRoot(e)?.isAttached())return;const p=s.getData({rootName:e});d&&(d.value=p,d.dispatchEvent(new Event("input"))),this.dispatchEvent(new CustomEvent("change",{detail:{value:p}}))},g=_(o,w);return s.model.document.on("change:data",g),w(),()=>{if(s.model.document.off("change:data",g),s.state!=="destroyed"&&e){const p=s.model.document.getRoot(e);if(p&&"detachEditable"in s){try{s.ui.view.editables[e]&&s.detachEditable(p)}catch(A){console.error("Unable unmount editable from root:",A)}p.isAttached()&&s.detachRoot(e,!1)}}}})}disconnectedCallback(){this.interactiveWait?.disconnect(),this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}async function Rt({saveDebounceMs:r,editorId:t,targetElement:e}){const{Plugin:a}=await import("ckeditor5");return class extends a{static get pluginName(){return"DispatchEditorRootsChangeEvent"}afterInit(){const{editor:o}=this,s=_(r,this.dispatch);o.model.document.on("change:data",s),o.once("ready",this.dispatch)}dispatch=()=>{const{editor:o}=this;e.dispatchEvent(new y({editorId:t,editor:o,roots:K(o)}))}}}class y extends CustomEvent{static EVENT_NAME="ckeditor5:change:data";constructor(t){super(y.EVENT_NAME,{detail:t,bubbles:!0})}}async function St(r){const{Plugin:t}=await import("ckeditor5");return class extends t{input=null;form=null;static get pluginName(){return"SyncEditorWithInput"}afterInit(){const{editor:a}=this,o=a.sourceElement.id.replace(/_editor$/,"");this.input=document.getElementById(`${o}_input`),this.input&&(a.model.document.on("change:data",_(r,()=>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 rt extends HTMLElement{unmountEffect=null;interactiveWait;async connectedCallback(){await D(),this.interactiveWait=F(this),H("classic"),await this.interactiveWait.promise,await this.initializeEditor()}async initializeEditor(){const t=this.getAttribute("data-cke-editor-id");h.the.resetErrors(t);try{this.style.display="block";const e=await this.createEditor(),a=vt(e),i=Nt(e);if(this.isConnected){const o=h.the.mountEffect(t,s=>{s.once("destroy",()=>{h.the.unregister(t,!1)},{priority:"highest"})});this.unmountEffect=async()=>{h.the.unregister(t),o(),a?a.state!=="unavailable"&&await a.context.remove(a.editorContextId):i?await i.destroy():await e.destroy()},h.the.register(t,e)}}catch(e){console.error(`Error initializing CKEditor5 instance with ID "${t}":`,e),h.the.error(t,e)}}async disconnectedCallback(){this.interactiveWait?.disconnect(),this.style.display="none",this.unmountEffect?.()}async createEditor(){const t=JSON.parse(this.getAttribute("data-cke-preset")),{customTranslations:e,editorType:a,licenseKey:i,watchdogConfig:o,config:{plugins:s,...l}}=t,c=this.getAttribute("data-cke-editor-id"),u=this.getAttribute("data-cke-context-id"),d=JSON.parse(this.getAttribute("data-cke-root-attributes")||"{}"),m=this.getAttribute("data-cke-editable-height")?Number.parseInt(this.getAttribute("data-cke-editable-height"),10):null,f=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10),E=this.hasAttribute("data-cke-watchdog"),w=this.getAttribute("data-cke-language")?JSON.parse(this.getAttribute("data-cke-language")):Z(t.config.language),g=await H(a),p=await(u?C.the.waitFor(u):null),A=async()=>{const{loadedPlugins:b,hasPremium:T}=await Y(s);b.push(await Rt({saveDebounceMs:f,editorId:c,targetElement:this})),$(a)&&b.push(await St(f));const I=[...await X(w,T),Q(e||{})].filter(P=>!R(P));let O=tt(c);const V=Object.keys(O);$(a)&&V.push("main"),nt(O,V)||(O=await xt(c,V));let v={...l,licenseKey:i,plugins:b,language:w,...I.length&&{translations:I}};v=S(v),v=x([...I].reverse(),w.ui,v),v=Et(g,O,v);const N=await(async()=>p?(await kt({context:p,creator:g,config:v})).editor:g.create(v))();return R(d)||N.model.change(P=>{P.setAttributes(d,N.model.document.getRoot())}),$(a)&&m&&Tt(N,m),N};if(E&&!p){const b=await Ot(A,o);return b.on("error",(T,{causesRestart:j})=>{if(j){const I=h.the.getItem(c);I&&(bt(I),h.the.unregister(c))}}),b.on("restart",()=>{const T=b.editor;h.the.register(c,T)}),await b.create({}),b.editor}return A()}}function nt(r,t){return t.every(e=>r[e]?.element)}async function xt(r,t){return yt(()=>{const e=tt(r);if(!nt(e,t))throw new Error(`It looks like not all required root elements are present yet.
1
+ "use strict";var ut=Object.create;var j=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var mt=Object.getPrototypeOf,ht=Object.prototype.hasOwnProperty;var pt=(r,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dt(t))!ht.call(r,o)&&o!==e&&j(r,o,{get:()=>t[o],enumerable:!(a=lt(t,o))||a.enumerable});return r};var n=(r,t,e)=>(e=r!=null?ut(mt(r)):{},pt(t||!r||!r.__esModule?j(e,"default",{value:r,enumerable:!0}):e,r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class v extends Error{constructor(t){super(t),this.name="CKEditor5BlazorError"}}function B(r,t){if(!r||r.size!==t.size)return!1;for(const[e,a]of r)if(!t.has(e)||t.get(e)!==a)return!1;return!0}class G{items=new Map;initializationErrors=new Map;pendingCallbacks=new Map;watchers=new Set;batchDepth=0;lastNotifiedItems=null;lastNotifiedErrors=null;execute(t,e,a){const o=this.items.get(t),i=this.initializationErrors.get(t);return i?(a?.(i),Promise.reject(i)):o?Promise.resolve(e(o)):new Promise((s,c)=>{const u=this.getPendingCallbacks(t);u.success.push(async l=>{s(await e(l))}),a?u.error.push(a):u.error.push(c)})}mountEffect(t,e){let a,o,i=!1;const s=this.watch(c=>{const u=c.get(t);if(u!==o&&(a?.(),a=void 0,o=u,!!u))try{const l=e(u);i?(l?.(),s()):a=l}catch(l){throw console.error(l),l}});return()=>{i=!0,o&&(s(),a?.(),a=void 0)}}register(t,e){this.batch(()=>{if(this.items.has(t))throw new Error(`Item with ID "${t}" is already registered.`);this.resetErrors(t),this.items.set(t,e);const a=this.pendingCallbacks.get(t);a&&(a.success.forEach(o=>o(e)),this.pendingCallbacks.delete(t)),this.items.size===1&&t!==null&&this.register(null,e)})}error(t,e){this.batch(()=>{this.items.delete(t),this.initializationErrors.set(t,e);const a=this.pendingCallbacks.get(t);a&&(a.error.forEach(o=>o(e)),this.pendingCallbacks.delete(t)),this.initializationErrors.size===1&&!this.items.size&&this.error(null,e)})}resetErrors(t){const{initializationErrors:e}=this;e.has(null)&&e.get(null)===e.get(t)&&e.delete(null),e.delete(t)}unregister(t,e=!0){this.batch(()=>{t&&this.items.get(null)===this.items.get(t)&&this.unregister(null,!1),this.items.delete(t),e&&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((e,a)=>{this.execute(t,e,a)})}async destroyAll(){const t=Array.from(new Set(this.items.values())).map(e=>e.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(){B(this.lastNotifiedItems,this.items)&&B(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 e=this.pendingCallbacks.get(t);return e||(e={success:[],error:[]},this.pendingCallbacks.set(t,e)),e}}function _(r,t){let e=null;return(...a)=>{e&&clearTimeout(e),e=setTimeout(()=>{t(...a)},r)}}function R(r){return Object.keys(r).length===0&&r.constructor===Object}function ft(r,t){const e=Object.entries(r).map(([a,o])=>[a,t(o,a)]);return Object.fromEntries(e)}function wt(r,t){if(r===t)return!0;const e=Object.keys(r),a=Object.keys(t);if(e.length!==a.length)return!1;for(const o of e)if(r[o]!==t[o]||!Object.prototype.hasOwnProperty.call(t,o))return!1;return!0}function gt(){return Math.random().toString(36).substring(2)}function Et(r,{timeOutAfter:t=500,retryAfter:e=100}={}){return new Promise((a,o)=>{const i=Date.now();let s=null;const c=setTimeout(()=>{o(s??new Error("Timeout"))},t),u=async()=>{try{const l=await r();clearTimeout(c),a(l)}catch(l){s=l,Date.now()-i>t?o(l):setTimeout(u,e)}};u()})}function x(){return new Promise(r=>{switch(document.readyState){case"loading":document.addEventListener("DOMContentLoaded",()=>r(),{once:!0});break;case"interactive":case"complete":setTimeout(r,0);break;default:console.warn("Unexpected document.readyState:",document.readyState),setTimeout(r,0)}})}function F(r){if(r.hasAttribute("data-cke-interactive"))return{promise:Promise.resolve(),disconnect:()=>{}};let t;return{promise:new Promise(a=>{t=new MutationObserver(o=>{for(const i of o)if(i.type==="attributes"&&i.attributeName==="data-cke-interactive"&&r.hasAttribute("data-cke-interactive")){t.disconnect(),a();break}}),t.observe(r,{attributes:!0})}),disconnect:()=>t?.disconnect()}}function D(r){r.setAttribute("data-cke-interactive","true")}function bt(r,t,e){const a=!r.editorName||r.editorName==="ClassicEditor",o=new Set([...Object.keys(t),...Object.keys(e.roots??{})]),i=Array.from(o).reduce((c,u)=>({...c,[u]:{...e.roots?.[u],...u==="main"?e.root:{},...u in t?{...t[u].content!==null&&{initialData:t[u].content},modelElement:t[u].modelElement||"$root",...!a&&t[u].element!==null&&{element:t[u].element}}:{}}}),{...e.roots||{}}),s={...e,roots:i,...a&&t.main?.element&&{attachTo:t.main.element}};return delete s.root,s}function yt(r){const t=[r.ui?.element,r.ui?.view?.toolbar?.element,r.ui?.view?.menuBarView?.element].filter(Boolean);for(const i of t)o(i);const e=r.ui?.view?.body?._bodyCollectionContainer;e?.isConnected&&o(e);const a=r.editing?.view;if(a)for(const i of a.domRoots.values())i instanceof HTMLElement&&(i.removeAttribute("contenteditable"),i.removeAttribute("role"),i.removeAttribute("aria-label"),i.removeAttribute("aria-multiline"),i.removeAttribute("spellcheck"),i.classList.remove("ck","ck-content","ck-editor__editable","ck-rounded-corners","ck-editor__editable_inline","ck-blurred","ck-focused"),o(i));function o(i){i.hasAttribute("data-cke-controlled")?i.innerHTML="":i.remove()}}const W=Symbol.for("context-editor-watchdog");async function kt({context:r,creator:t,config:e}){const a=gt();await r.add({creator:t.create.bind(t),id:a,type:"editor",config:e});const o=r.getItem(a),i={state:"available",editorContextId:a,context:r};o[W]=i;const s=r.destroy.bind(r);return r.destroy=async()=>(i.state="unavailable",s()),{...i,editor:o}}function vt(r){return W in r?r[W]:null}function Y(r){return Array.from(r.model.document.getRoots()).reduce((t,e)=>(e.rootName==="$graveyard"||(t[e.rootName]=r.getData({rootName:e.rootName})),t),Object.create(null))}function $(r){return["inline","classic","balloon","decoupled"].includes(r)}async function H(r){const t=await import("ckeditor5"),a={inline:t.InlineEditor,balloon:t.BalloonEditor,classic:t.ClassicEditor,decoupled:t.DecoupledEditor,multiroot:t.MultiRootEditor}[r];if(!a)throw new v(`Unsupported editor type: ${r}`);return a}class z{static the=new z;plugins=new Map;constructor(){}register(t,e){if(this.plugins.has(t))throw new v(`Plugin with name "${t}" is already registered.`);return this.plugins.set(t,e),this.unregister.bind(this,t)}unregister(t){if(!this.plugins.has(t))throw new v(`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 K(r){const t=await import("ckeditor5");let e=null;const a=r.map(async o=>{if(Ct(o)){const{name:u,path:l}=o.$import,d=await import(l),f=(Object.prototype.hasOwnProperty.call(d,u)?d[u]:void 0)??(Object.prototype.hasOwnProperty.call(d,"default")?d.default:void 0);if(!f)throw new v(`Plugin "${u}" not found in module "${l}".`);return f}const i=await z.the.get(o);if(i)return i;const{[o]:s}=t;if(s)return s;if(!e)try{e=await import("ckeditor5-premium-features")}catch(u){throw console.error(`Failed to load premium package: ${u}`),new v(`Plugin "${o}" not found in base package and failed to load premium package.`)}const{[o]:c}=e||{};if(c)return c;throw new v(`Plugin "${o}" not found in base or premium packages.`)});return{loadedPlugins:await Promise.all(a),hasPremium:!!e}}function Ct(r){return typeof r=="object"&&r!==null&&"$import"in r}async function X(r,t){const e=[r.ui,r.content];return await Promise.all([J("ckeditor5",e),t&&J("ckeditor5-premium-features",e)].filter(o=>!!o)).then(o=>o.flat())}async function J(r,t){return await Promise.all(t.filter(e=>e!=="en").map(async e=>{const a=await At(r,e);return a?.default??a}).filter(Boolean))}async function At(r,t){try{if(r==="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(e){return console.error(`Failed to load translation for ${r}/${t}:`,e),null}}function Q(r){return ft(r,t=>({dictionary:t}))}function Z(r){return r?typeof r=="string"?{ui:r,content:r}:r:{ui:"en",content:"en"}}function tt(r){const t=Array.from(document.querySelectorAll(`cke5-editable[data-cke-editor-id="${r}"]`)).reduce((s,c)=>{const u=c.getAttribute("data-cke-root-name"),l=c.getAttribute("data-cke-root-model-element-name")||null;return s[u]={element:c.querySelector("[data-cke-editable-content]"),content:c.getAttribute("data-cke-content"),modelElement:l},s},Object.create(null)),e=document.querySelector(`cke5-editor[data-cke-editor-id="${r}"]`);if(!e)return t;const a=JSON.parse(e.getAttribute("data-cke-content"))??{},o=document.querySelector(`#${r}_editor`),i=e.getAttribute("data-cke-root-model-element-name");"main"in t?t.main.modelElement??=i:o&&(t.main={element:o,content:a.main||"",modelElement:i});for(const[s,c]of Object.entries(a))t[s]?t[s]={...t[s],content:t[s].content??c,modelElement:t[s].modelElement??i}:t[s]={element:null,content:c,modelElement:i};return t}function U(){return Array.from(document.querySelectorAll("cke5-editor")).map(r=>r.getAttribute("data-cke-editor-id")).filter(r=>r!==null)}function S(r){if(!r||typeof r!="object")return r;if(Array.isArray(r))return r.map(a=>S(a));const t=r;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 e=Object.create(null);for(const[a,o]of Object.entries(r))e[a]=S(o);return e}function M(r,t,e){if(!e||typeof e!="object")return e;if(Array.isArray(e))return e.map(i=>M(r,t,i));const a=e;if(a.$translation&&typeof a.$translation=="string"){const i=a.$translation,s=It(r,i,t);return s===void 0&&console.warn(`Translation not found for key: ${i}`),s!==void 0?s:null}const o=Object.create(null);for(const[i,s]of Object.entries(e))o[i]=M(r,t,s);return o}function It(r,t,e){for(const a of r){const o=a[e];if(o?.dictionary&&t in o.dictionary)return o.dictionary[t]}}function Tt(r,t){const{editing:e}=r;e.view.change(a=>{a.setStyle("height",`${t}px`,e.view.document.getRoot())})}const L=Symbol.for("elixir-editor-watchdog");async function Ot(r,t){const{EditorWatchdog:e}=await import("ckeditor5"),a=new e(null,t??{crashNumberLimit:10,minimumNonErrorTimePeriod:5e3});return a.setCreator(async()=>{const o=await r();return o[L]=a,o}),a}function Nt(r){return L in r?r[L]:null}class A extends G{static the=new A}class Pt extends HTMLElement{contextPromise=null;interactiveWait;async connectedCallback(){await x(),this.interactiveWait=F(this),await this.interactiveWait.promise,await this.initializeContext()}async initializeContext(){const t=JSON.parse(this.getAttribute("data-cke-context")),{customTranslations:e,watchdogConfig:a,config:{plugins:o,...i}}=t,s=this.getAttribute("data-cke-context-id"),c=this.getAttribute("data-cke-language")?JSON.parse(this.getAttribute("data-cke-language")):Z(i.language),{loadedPlugins:u,hasPremium:l}=await K(o??[]),d=[...await X(c,l),Q(e||{})].filter(y=>!R(y));this.contextPromise=(async()=>{const{ContextWatchdog:y,Context:k}=await import("ckeditor5"),g=new y(k,{crashNumberLimit:10,...a});let E=S(i);return E=M([...d].reverse(),c.ui,E),await g.create({...E,language:c,plugins:u,...d.length&&{translations:d}}),g.on("itemError",(...p)=>{console.error("Context item error:",...p)}),g})();const f=await this.contextPromise;this.isConnected&&A.the.register(s,f)}async disconnectedCallback(){this.interactiveWait?.disconnect();const t=this.getAttribute("data-cke-context-id");this.style.display="none";try{await(await this.contextPromise)?.destroy()}finally{this.contextPromise=null,t&&A.the.hasItem(t)&&A.the.unregister(t)}}}class h extends G{static the=new h}class et extends HTMLElement{unmountEffect=null;interactiveWait;async connectedCallback(){await x(),this.interactiveWait=F(this),await this.interactiveWait.promise,await this.initializeEditable()}async initializeEditable(){this.hasAttribute("data-cke-editor-id")||this.setAttribute("data-cke-editor-id",U()[0]);const t=this.getAttribute("data-cke-editor-id"),e=this.getAttribute("data-cke-root-name"),a=JSON.parse(this.getAttribute("data-cke-root-attributes")||"{}"),o=this.getAttribute("data-cke-root-model-element-name")||"$root",i=this.getAttribute("data-cke-content"),s=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10);if(!t||!e)throw new v("Editor ID or Root Name is missing.");this.style.display="block",this.unmountEffect=h.the.mountEffect(t,c=>{if(!this.isConnected)return;const{ui:u,editing:l,model:m}=c,d=this.querySelector("input"),f=m.document.getRoot(e);if(f?.isAttached()){if(i!==null){const p=c.getData({rootName:e});p&&p!==i&&c.setData({[e]:i})}R(a)||c.model.change(p=>{p.setAttributes(a,f)});return}c.addRoot(e,{isUndoable:!1,modelAttributes:{...a},modelElement:o,...i!==null&&{initialData:i}});const y=this.querySelector("[data-cke-editable-content]"),k=u.view.createEditable(e,y);u.addEditable(k),l.view.forceRender();const g=()=>{if(!m.document.getRoot(e)?.isAttached())return;const p=c.getData({rootName:e});d&&(d.value=p,d.dispatchEvent(new Event("input"))),this.dispatchEvent(new CustomEvent("change",{detail:{value:p}}))},E=_(s,g);return c.model.document.on("change:data",E),g(),()=>{if(c.model.document.off("change:data",E),c.state!=="destroyed"&&e){const p=c.model.document.getRoot(e);if(p&&"detachEditable"in c){try{c.ui.view.editables[e]&&c.detachEditable(p)}catch(w){console.error("Unable unmount editable from root:",w)}p.isAttached()&&c.detachRoot(e,!1)}}}})}disconnectedCallback(){this.interactiveWait?.disconnect(),this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}async function Rt({saveDebounceMs:r,editorId:t,targetElement:e}){const{Plugin:a}=await import("ckeditor5");return class extends a{static get pluginName(){return"DispatchEditorRootsChangeEvent"}afterInit(){const{editor:i}=this,s=_(r,this.dispatch);i.model.document.on("change:data",s),i.once("ready",this.dispatch)}dispatch=()=>{const{editor:i}=this;e.dispatchEvent(new b({editorId:t,editor:i,roots:Y(i)}))}}}class b extends CustomEvent{static EVENT_NAME="ckeditor5:change:data";constructor(t){super(b.EVENT_NAME,{detail:t,bubbles:!0})}}async function St(r){const{Plugin:t}=await import("ckeditor5");return class extends t{input=null;form=null;static get pluginName(){return"SyncEditorWithInput"}afterInit(){const{editor:a}=this,i=a.sourceElement.id.replace(/_editor$/,"");this.input=document.getElementById(`${i}_input`),this.input&&(a.model.document.on("change:data",_(r,()=>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 rt extends HTMLElement{unmountEffect=null;interactiveWait;async connectedCallback(){await x(),this.interactiveWait=F(this),H("classic"),await this.interactiveWait.promise,await this.initializeEditor()}async initializeEditor(){const t=this.getAttribute("data-cke-editor-id");h.the.resetErrors(t);try{this.style.display="block";const e=await this.createEditor(),a=vt(e),o=Nt(e);if(this.isConnected){const i=h.the.mountEffect(t,s=>{s.once("destroy",()=>{h.the.unregister(t,!1)},{priority:"highest"})});this.unmountEffect=async()=>{h.the.unregister(t),i(),a?a.state!=="unavailable"&&await a.context.remove(a.editorContextId):o?await o.destroy():await e.destroy()},h.the.register(t,e)}}catch(e){console.error(`Error initializing CKEditor5 instance with ID "${t}":`,e),h.the.error(t,e)}}async disconnectedCallback(){this.interactiveWait?.disconnect(),this.style.display="none",this.unmountEffect?.()}async createEditor(){const t=JSON.parse(this.getAttribute("data-cke-preset")),{customTranslations:e,editorType:a,licenseKey:o,watchdogConfig:i,config:{plugins:s,...c}}=t,u=this.getAttribute("data-cke-editor-id"),l=this.getAttribute("data-cke-context-id"),m=JSON.parse(this.getAttribute("data-cke-root-attributes")||"{}"),d=this.getAttribute("data-cke-editable-height")?Number.parseInt(this.getAttribute("data-cke-editable-height"),10):null,f=Number.parseInt(this.getAttribute("data-cke-save-debounce-ms"),10),y=this.hasAttribute("data-cke-watchdog"),k=this.getAttribute("data-cke-language")?JSON.parse(this.getAttribute("data-cke-language")):Z(t.config.language),g=await H(a),E=await(l?A.the.waitFor(l):null),p=async()=>{const{loadedPlugins:w,hasPremium:T}=await K(s);w.push(await Rt({saveDebounceMs:f,editorId:u,targetElement:this})),$(a)&&w.push(await St(f));const I=[...await X(k,T),Q(e||{})].filter(P=>!R(P));let O=tt(u);const V=Object.keys(O);$(a)&&V.push("main"),nt(O,V)||(O=await Mt(u,V));let C={...c,licenseKey:o,plugins:w,language:k,...I.length&&{translations:I}};C=S(C),C=M([...I].reverse(),k.ui,C),C=bt(g,O,C);const N=await(async()=>E?(await kt({context:E,creator:g,config:C})).editor:g.create(C))();return R(m)||N.model.change(P=>{P.setAttributes(m,N.model.document.getRoot())}),$(a)&&d&&Tt(N,d),N};if(y&&!E){const w=await Ot(p,i);return w.on("error",(T,{causesRestart:q})=>{if(q){const I=h.the.getItem(u);I&&(yt(I),h.the.unregister(u))}}),w.on("restart",()=>{const T=w.editor;h.the.register(u,T)}),await w.create({}),w.editor}return p()}}function nt(r,t){return t.every(e=>r[e]?.element)}async function Mt(r,t){return Et(()=>{const e=tt(r);if(!nt(e,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=>!e[a]?.element).join(", ")}.`);return e},{timeOutAfter:2e3,retryAfter:100})}class at extends HTMLElement{unmountEffect=null;async connectedCallback(){await D();const t=this.getAttribute("data-cke-editor-id")||U()[0],e=this.getAttribute("data-cke-name");!t||!e||(this.style.display="block",this.unmountEffect=h.the.mountEffect(t,a=>{if(!this.isConnected)return;const{ui:i}=a,o=Dt(e),s=i.view[o];if(!s)throw new k(`Unknown UI part name: "${e}". Supported names are "toolbar" and "menubar".`);return this.appendChild(s.element),()=>{this.innerHTML=""}}))}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}function Dt(r){switch(r){case"toolbar":return"toolbar";case"menubar":return"menuBarView";default:return null}}const Mt={"cke5-editor":rt,"cke5-context":Pt,"cke5-ui-part":at,"cke5-editable":et};function it(){for(const[r,t]of Object.entries(Mt))window.customElements.get(r)||window.customElements.define(r,t)}function zt(r){return M(r),{unmount(){}}}function ot(r,t){const e={pendingValue:null,lastSyncedValue:null},a=()=>{e.pendingValue=null},i=(o,s,l)=>{if(l||e.pendingValue===null)return;const c=t.getCurrentValue();t.isEqual(c,e.pendingValue)||t.applyValue(e.pendingValue),e.pendingValue=null};return r.model.document.on("change:data",a),r.ui.focusTracker.on("change:isFocused",i),{unmount(){r.model.document.off("change:data",a),r.ui.focusTracker.off("change:isFocused",i)},shouldNotify(o){return e.lastSyncedValue!==null&&t.isEqual(e.lastSyncedValue,o)?!1:(e.lastSyncedValue=o,!0)},setValue(o){if(r.ui.focusTracker.isFocused){e.pendingValue=o;return}e.lastSyncedValue!==null&&t.isEqual(e.lastSyncedValue,o)||(e.lastSyncedValue=o,t.applyValue(o))}}}function st(){return{unmount(){},shouldNotify(r){return!1},setValue(r){}}}function ct(r,t){const e=new Set;return a=>{r.model.enqueueChange({isUndoable:!1},i=>{const o=r.model.document.getRoot(t);if(o){for(const s of e)a&&s in a||(i.removeAttribute(s,o),e.delete(s));for(const[s,l]of Object.entries(a??{}))i.setAttribute(s,l,o),e.add(s)}})}}function Vt(r,t){const e=r.getAttribute("data-cke-editor-id")??U()[0],a=r.getAttribute("data-cke-root-name")??"main";let i=!1,o=null,s=null,l=st(),c=null;const u=d=>{if(!(d instanceof y)||d.detail.editorId!==e)return;const m=d.detail.roots[a];m!==void 0&&l.shouldNotify(m)&&t.invokeMethodAsync("OnChangeEditableData",s,m)};return o=h.the.mountEffect(e,d=>(s=globalThis.DotNet.createJSObjectReference(d),l=ot(d,{getCurrentValue:()=>d.getData({rootName:a})??"",applyValue:m=>d.setData({[a]:m}),isEqual:(m,f)=>m===f}),c=ct(d,a),()=>{l.unmount(),s&&(globalThis.DotNet?.disposeJSObjectReference(s),s=null),c=null})),document.body.addEventListener(y.EVENT_NAME,u),M(r),{unmount(){i||(document.body.removeEventListener(y.EVENT_NAME,u),o?.(),o=null,i=!0)},setValue:async d=>{i||(await h.the.waitFor(e),l.setValue(d))},setRootAttributes:async d=>{i||(await h.the.waitFor(e),c?.(d))}}}function $t(r,t){const e=r.getAttribute("data-cke-editor-id");let a=!1,i=null,o=st(),s=null,l=null;const c=u=>{!(u instanceof y)||u.detail.editorId!==e||o.shouldNotify(u.detail.roots)&&t.invokeMethodAsync("OnChangeEditorData",l,u.detail.roots)};return i=h.the.mountEffect(e,u=>{l=globalThis.DotNet.createJSObjectReference(u),o=ot(u,{getCurrentValue:()=>K(u),applyValue:m=>u.setData(m),isEqual:wt}),s=ct(u,"main");const d=(m,f,E)=>{const w=E?"OnEditorFocus":"OnEditorBlur";t.invokeMethodAsync(w,l)};return u.ui.focusTracker.on("change:isFocused",d),t.invokeMethodAsync("OnEditorReady",l),()=>{u.ui.focusTracker.off("change:isFocused",d),o.unmount(),l&&(globalThis.DotNet?.disposeJSObjectReference(l),l=null),s=null}}),document.body.addEventListener(y.EVENT_NAME,c),it(),M(r),{setValue:async u=>{a||(await h.the.waitFor(e),o.setValue(u))},setRootAttributes:async u=>{a||(await h.the.waitFor(e),s?.(u))},unmount(){a||(document.body.removeEventListener(y.EVENT_NAME,c),i?.(),i=null,a=!0)},attachImageUploadAdapter:async()=>{a||h.the.mountEffect(e,u=>{Wt(u,t)})}}}function Wt(r,t){if(!r.plugins.has("FileRepository"))return;const e=r.plugins.get("FileRepository");e.createUploadAdapter=a=>{let i=!1;return{async upload(){const o=await a.file;if(i)throw new Error("Upload aborted.");const s=await Lt(o),l=await t.invokeMethodAsync("OnEditorImageUpload",{fileName:o.name,mimeType:o.type,payload:s});if(!l)throw new Error("OnImageUpload handler returned null. Make sure the OnImageUpload parameter is set on the <CKE5Editor> component.");return{default:l}},abort(){i=!0}}}}function Lt(r){return new Promise((t,e)=>{const a=new FileReader;a.onload=()=>{const i=a.result,o=i.split(",")[1]??i;t(o)},a.onerror=()=>e(a.error),a.readAsDataURL(r)})}function _t(r){return M(r),{unmount(){}}}exports.CKEditor5BlazorError=k;exports.CKEditor5ChangeDataEvent=y;exports.ContextsRegistry=C;exports.CustomEditorPluginsRegistry=z;exports.EditableComponentElement=et;exports.EditorComponentElement=rt;exports.EditorsRegistry=h;exports.UIPartComponentElement=at;exports.createContextBlazorInterop=zt;exports.createEditableBlazorInterop=Vt;exports.createEditorBlazorInterop=$t;exports.createUIPartBlazorInterop=_t;exports.ensureEditorElementsRegistered=it;
4
+ Missing roots: ${t.filter(a=>!e[a]?.element).join(", ")}.`);return e},{timeOutAfter:2e3,retryAfter:100})}class at extends HTMLElement{unmountEffect=null;async connectedCallback(){await x();const t=this.getAttribute("data-cke-editor-id")||U()[0],e=this.getAttribute("data-cke-name");!t||!e||(this.style.display="block",this.unmountEffect=h.the.mountEffect(t,a=>{if(!this.isConnected)return;const{ui:o}=a,i=xt(e),s=o.view[i];if(!s)throw new v(`Unknown UI part name: "${e}". Supported names are "toolbar" and "menubar".`);return this.appendChild(s.element),()=>{this.innerHTML=""}}))}disconnectedCallback(){this.style.display="none",this.unmountEffect?.(),this.unmountEffect=null}}function xt(r){switch(r){case"toolbar":return"toolbar";case"menubar":return"menuBarView";default:return null}}const Dt={"cke5-editor":rt,"cke5-context":Pt,"cke5-ui-part":at,"cke5-editable":et};function it(){for(const[r,t]of Object.entries(Dt))window.customElements.get(r)||window.customElements.define(r,t)}function zt(r){return D(r),{unmount(){}}}function ot(r,t){const e={pendingValue:null,lastSyncedValue:null},a=()=>{e.pendingValue=null},o=(i,s,c)=>{if(c||e.pendingValue===null)return;const u=t.getCurrentValue();t.isEqual(u,e.pendingValue)||t.applyValue(e.pendingValue),e.pendingValue=null};return r.model.document.on("change:data",a),r.ui.focusTracker.on("change:isFocused",o),{unmount(){r.model.document.off("change:data",a),r.ui.focusTracker.off("change:isFocused",o)},shouldNotify(i){return e.lastSyncedValue!==null&&t.isEqual(e.lastSyncedValue,i)?!1:(e.lastSyncedValue=i,!0)},setValue(i){if(r.ui.focusTracker.isFocused){e.pendingValue=i;return}e.lastSyncedValue!==null&&t.isEqual(e.lastSyncedValue,i)||(e.lastSyncedValue=i,t.applyValue(i))}}}function st(){return{unmount(){},shouldNotify(r){return!1},setValue(r){}}}function ct(r,t){const e=new Set;return a=>{r.model.enqueueChange({isUndoable:!1},o=>{const i=r.model.document.getRoot(t);if(i){for(const s of e)a&&s in a||(o.removeAttribute(s,i),e.delete(s));for(const[s,c]of Object.entries(a??{}))o.setAttribute(s,c,i),e.add(s)}})}}function Vt(r,t){const e=r.getAttribute("data-cke-editor-id")??U()[0],a=r.getAttribute("data-cke-root-name")??"main";let o=!1,i=null,s=null,c=st(),u=null;const l=m=>{if(!(m instanceof b)||m.detail.editorId!==e)return;const d=m.detail.roots[a];d!==void 0&&c.shouldNotify(d)&&t.invokeMethodAsync("OnChangeEditableData",s,d)};return i=h.the.mountEffect(e,m=>(s=globalThis.DotNet.createJSObjectReference(m),c=ot(m,{getCurrentValue:()=>m.getData({rootName:a})??"",applyValue:d=>m.setData({[a]:d}),isEqual:(d,f)=>d===f}),u=ct(m,a),()=>{c.unmount(),s&&(globalThis.DotNet?.disposeJSObjectReference(s),s=null),u=null})),document.body.addEventListener(b.EVENT_NAME,l),D(r),{unmount(){o||(document.body.removeEventListener(b.EVENT_NAME,l),i?.(),i=null,o=!0)},setValue:async m=>{o||(await h.the.waitFor(e),c.setValue(m))},setRootAttributes:async m=>{o||(await h.the.waitFor(e),u?.(m))}}}function $t(r,t){const e=r.getAttribute("data-cke-editor-id");let a=!1,o=null,i=st(),s=null,c=null;const u=l=>{!(l instanceof b)||l.detail.editorId!==e||i.shouldNotify(l.detail.roots)&&t.invokeMethodAsync("OnChangeEditorData",c,l.detail.roots)};return o=h.the.mountEffect(e,l=>{c=globalThis.DotNet.createJSObjectReference(l),i=ot(l,{getCurrentValue:()=>Y(l),applyValue:d=>l.setData(d),isEqual:wt}),s=ct(l,"main");const m=(d,f,y)=>{const k=y?"OnEditorFocus":"OnEditorBlur";t.invokeMethodAsync(k,c)};return l.ui.focusTracker.on("change:isFocused",m),t.invokeMethodAsync("OnEditorReady",c),()=>{l.ui.focusTracker.off("change:isFocused",m),i.unmount(),c&&(globalThis.DotNet?.disposeJSObjectReference(c),c=null),s=null}}),document.body.addEventListener(b.EVENT_NAME,u),it(),D(r),{setValue:async l=>{a||(await h.the.waitFor(e),i.setValue(l))},setRootAttributes:async l=>{a||(await h.the.waitFor(e),s?.(l))},unmount(){a||(document.body.removeEventListener(b.EVENT_NAME,u),o?.(),o=null,a=!0)},attachImageUploadAdapter:async()=>{a||h.the.mountEffect(e,l=>{Wt(l,t)})}}}function Wt(r,t){if(!r.plugins.has("FileRepository"))return;const e=r.plugins.get("FileRepository");e.createUploadAdapter=a=>{let o=!1;return{async upload(){const i=await a.file;if(o)throw new Error("Upload aborted.");const s=await Lt(i),c=await t.invokeMethodAsync("OnEditorImageUpload",{fileName:i.name,mimeType:i.type,payload:s});if(!c)throw new Error("OnImageUpload handler returned null. Make sure the OnImageUpload parameter is set on the <CKE5Editor> component.");return{default:c}},abort(){o=!0}}}}function Lt(r){return new Promise((t,e)=>{const a=new FileReader;a.onload=()=>{const o=a.result,i=o.split(",")[1]??o;t(i)},a.onerror=()=>e(a.error),a.readAsDataURL(r)})}function _t(r){return D(r),{unmount(){}}}exports.CKEditor5BlazorError=v;exports.CKEditor5ChangeDataEvent=b;exports.ContextsRegistry=A;exports.CustomEditorPluginsRegistry=z;exports.EditableComponentElement=et;exports.EditorComponentElement=rt;exports.EditorsRegistry=h;exports.UIPartComponentElement=at;exports.createContextBlazorInterop=zt;exports.createEditableBlazorInterop=Vt;exports.createEditorBlazorInterop=$t;exports.createUIPartBlazorInterop=_t;exports.ensureEditorElementsRegistered=it;
5
5
  //# sourceMappingURL=index.cjs.map