!function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Choose language":"Choose language",Language:"Language","Remove language":"Remove language"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
/*!
 * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md.
 */(()=>{var e={704:(e,t,a)=>{e.exports=a(79)("./src/core.js")},273:(e,t,a)=>{e.exports=a(79)("./src/ui.js")},209:(e,t,a)=>{e.exports=a(79)("./src/utils.js")},79:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function a(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,a),i.exports}a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";a.r(n),a.d(n,{TextPartLanguage:()=>u,TextPartLanguageEditing:()=>r,TextPartLanguageUI:()=>s});var e=a(704),t=a(209);function o(e,a){return`${e}:${a=a||(0,t.getLanguageDirection)(e)}`}class i extends e.Command{refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"language")}execute({languageCode:e,textDirection:t}={}){const a=this.editor.model,n=a.document.selection,i=!!e&&o(e,t);a.change((e=>{if(n.isCollapsed)i?e.setSelectionAttribute("language",i):e.removeSelectionAttribute("language");else{const t=a.schema.getValidRanges(n.getRanges(),"language");for(const a of t)i?e.setAttribute("language",i,a):e.removeAttribute("language",a)}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,a=e.document.selection;if(a.isCollapsed)return a.getAttribute("language")||!1;for(const e of a.getRanges())for(const a of e.getItems())if(t.checkAttribute(a,"language"))return a.getAttribute("language")||!1;return!1}}class r extends e.Plugin{static get pluginName(){return"TextPartLanguageEditing"}constructor(e){super(e),e.config.define("language",{textPartLanguage:[{title:"Arabic",languageCode:"ar"},{title:"French",languageCode:"fr"},{title:"Spanish",languageCode:"es"}]})}init(){const e=this.editor;e.model.schema.extend("$text",{allowAttributes:"language"}),e.model.schema.setAttributeProperties("language",{copyOnEnter:!0}),this._defineConverters(),e.commands.add("textPartLanguage",new i(e))}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToAttribute({model:{key:"language",value:e=>o(e.getAttribute("lang"),e.getAttribute("dir"))},view:{name:"span",attributes:{lang:/[\s\S]+/}}}),e.for("downcast").attributeToElement({model:"language",view:(e,{writer:t},a)=>{if(!e)return;if(!a.item.is("$textProxy")&&!a.item.is("documentSelection"))return;const{languageCode:n,textDirection:o}=function(e){const[t,a]=e.split(":");return{languageCode:t,textDirection:a}}(e);return t.createAttributeElement("span",{lang:n,dir:o})}})}}var g=a(273);class s extends e.Plugin{static get pluginName(){return"TextPartLanguageUI"}init(){const e=this.editor,a=e.t,n=e.config.get("language.textPartLanguage"),i=a("Choose language"),r=a("Remove language"),s=a("Language");e.ui.componentFactory.add("textPartLanguage",(a=>{const u=new t.Collection,l={},d=e.commands.get("textPartLanguage");u.add({type:"button",model:new g.Model({label:r,languageCode:!1,withText:!0})}),u.add({type:"separator"});for(const e of n){const t={type:"button",model:new g.Model({label:e.title,languageCode:e.languageCode,role:"menuitemradio",textDirection:e.textDirection,withText:!0})},a=o(e.languageCode,e.textDirection);t.model.bind("isOn").to(d,"value",(e=>e===a)),u.add(t),l[a]=e.title}const c=(0,g.createDropdown)(a);return(0,g.addListToDropdown)(c,u,{ariaLabel:s,role:"menu"}),c.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),c.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}}),c.bind("isEnabled").to(d,"isEnabled"),c.buttonView.bind("label").to(d,"value",(e=>e&&l[e]||i)),this.listenTo(c,"execute",(t=>{d.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),c}))}}class u extends e.Plugin{static get requires(){return[r,s]}static get pluginName(){return"TextPartLanguage"}}})(),(window.CKEditor5=window.CKEditor5||{}).language=n})();