@ckeditor/ckeditor5-language 44.2.0-alpha.9 → 44.2.1-alpha.0

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.
package/build/language.js CHANGED
@@ -2,4 +2,4 @@
2
2
  /*!
3
3
  * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var e={782:(e,t,n)=>{e.exports=n(237)("./src/core.js")},311:(e,t,n)=>{e.exports=n(237)("./src/ui.js")},584:(e,t,n)=>{e.exports=n(237)("./src/utils.js")},237:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function n(a){var i=t[a];if(void 0!==i)return i.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";n.r(a),n.d(a,{TextPartLanguage:()=>s,TextPartLanguageEditing:()=>r,TextPartLanguageUI:()=>u});var e=n(782),t=n(584);function i(e,n){return`${e}:${n=n||(0,t.getLanguageDirection)(e)}`}class o 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 n=this.editor.model,a=n.document.selection,o=!!e&&i(e,t);n.change((e=>{if(a.isCollapsed)o?e.setSelectionAttribute("language",o):e.removeSelectionAttribute("language");else{const t=n.schema.getValidRanges(a.getRanges(),"language");for(const n of t)o?e.setAttribute("language",o,n):e.removeAttribute("language",n)}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,n=e.document.selection;if(n.isCollapsed)return n.getAttribute("language")||!1;for(const e of n.getRanges())for(const n of e.getItems())if(t.checkAttribute(n,"language"))return n.getAttribute("language")||!1;return!1}}class r extends e.Plugin{static get pluginName(){return"TextPartLanguageEditing"}static get isOfficialPlugin(){return!0}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 o(e))}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToAttribute({model:{key:"language",value:e=>i(e.getAttribute("lang"),e.getAttribute("dir"))},view:{name:"span",attributes:{lang:/[\s\S]+/}}}),e.for("downcast").attributeToElement({model:"language",view:(e,{writer:t},n)=>{if(!e)return;if(!n.item.is("$textProxy")&&!n.item.is("documentSelection"))return;const{languageCode:a,textDirection:i}=function(e){const[t,n]=e.split(":");return{languageCode:t,textDirection:n}}(e);return t.createAttributeElement("span",{lang:a,dir:i})}})}}var g=n(311);class u extends e.Plugin{static get pluginName(){return"TextPartLanguageUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,n=t("Choose language"),a=t("Language");e.ui.componentFactory.add("textPartLanguage",(t=>{const{definitions:i,titles:o}=this._getItemMetadata(),r=e.commands.get("textPartLanguage"),u=(0,g.createDropdown)(t);return(0,g.addListToDropdown)(u,i,{ariaLabel:a,role:"menu"}),u.buttonView.set({ariaLabel:a,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:a}),u.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}}),u.bind("isEnabled").to(r,"isEnabled"),u.buttonView.bind("label").to(r,"value",(e=>e&&o[e]||n)),u.buttonView.bind("ariaLabel").to(r,"value",(e=>{const t=e&&o[e];return t?`${t}, ${a}`:a})),this.listenTo(u,"execute",(t=>{r.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),u})),e.ui.componentFactory.add("menuBar:textPartLanguage",(n=>{const{definitions:i}=this._getItemMetadata(),o=e.commands.get("textPartLanguage"),r=new g.MenuBarMenuView(n);r.buttonView.set({label:a});const u=new g.MenuBarMenuListView(n);u.set({ariaLabel:t("Language"),role:"menu"});for(const e of i){if("button"!=e.type){u.items.add(new g.ListSeparatorView(n));continue}const t=new g.MenuBarMenuListItemView(n,r),a=new g.MenuBarMenuListItemButtonView(n);a.set({role:"menuitemradio",isToggleable:!0}),a.bind(...Object.keys(e.model)).to(e.model),a.delegate("execute").to(r),t.children.add(a),u.items.add(t)}return r.bind("isEnabled").to(o,"isEnabled"),r.panelView.children.add(u),r.on("execute",(t=>{o.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),r}))}_getItemMetadata(){const e=this.editor,n=new t.Collection,a={},o=e.commands.get("textPartLanguage"),r=e.config.get("language.textPartLanguage"),u=(0,e.locale.t)("Remove language");n.add({type:"button",model:new g.ViewModel({label:u,languageCode:!1,withText:!0})}),n.add({type:"separator"});for(const e of r){const t={type:"button",model:new g.ViewModel({label:e.title,languageCode:e.languageCode,role:"menuitemradio",textDirection:e.textDirection,withText:!0})},r=i(e.languageCode,e.textDirection);t.model.bind("isOn").to(o,"value",(e=>e===r)),n.add(t),a[r]=e.title}return{definitions:n,titles:a}}}class s extends e.Plugin{static get requires(){return[r,u]}static get pluginName(){return"TextPartLanguage"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).language=a})();
5
+ */(()=>{var e={237:e=>{"use strict";e.exports=CKEditor5.dll},311:(e,t,n)=>{e.exports=n(237)("./src/ui.js")},584:(e,t,n)=>{e.exports=n(237)("./src/utils.js")},782:(e,t,n)=>{e.exports=n(237)("./src/core.js")}},t={};function n(a){var i=t[a];if(void 0!==i)return i.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";n.r(a),n.d(a,{TextPartLanguage:()=>s,TextPartLanguageEditing:()=>r,TextPartLanguageUI:()=>u});var e=n(782),t=n(584);function i(e,n){return`${e}:${n=n||(0,t.getLanguageDirection)(e)}`}class o 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 n=this.editor.model,a=n.document.selection,o=!!e&&i(e,t);n.change((e=>{if(a.isCollapsed)o?e.setSelectionAttribute("language",o):e.removeSelectionAttribute("language");else{const t=n.schema.getValidRanges(a.getRanges(),"language");for(const n of t)o?e.setAttribute("language",o,n):e.removeAttribute("language",n)}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,n=e.document.selection;if(n.isCollapsed)return n.getAttribute("language")||!1;for(const e of n.getRanges())for(const n of e.getItems())if(t.checkAttribute(n,"language"))return n.getAttribute("language")||!1;return!1}}class r extends e.Plugin{static get pluginName(){return"TextPartLanguageEditing"}static get isOfficialPlugin(){return!0}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 o(e))}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToAttribute({model:{key:"language",value:e=>i(e.getAttribute("lang"),e.getAttribute("dir"))},view:{name:"span",attributes:{lang:/[\s\S]+/}}}),e.for("downcast").attributeToElement({model:"language",view:(e,{writer:t},n)=>{if(!e)return;if(!n.item.is("$textProxy")&&!n.item.is("documentSelection"))return;const{languageCode:a,textDirection:i}=function(e){const[t,n]=e.split(":");return{languageCode:t,textDirection:n}}(e);return t.createAttributeElement("span",{lang:a,dir:i})}})}}var g=n(311);class u extends e.Plugin{static get pluginName(){return"TextPartLanguageUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,n=t("Choose language"),a=t("Language");e.ui.componentFactory.add("textPartLanguage",(t=>{const{definitions:i,titles:o}=this._getItemMetadata(),r=e.commands.get("textPartLanguage"),u=(0,g.createDropdown)(t);return(0,g.addListToDropdown)(u,i,{ariaLabel:a,role:"menu"}),u.buttonView.set({ariaLabel:a,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:a}),u.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}}),u.bind("isEnabled").to(r,"isEnabled"),u.buttonView.bind("label").to(r,"value",(e=>e&&o[e]||n)),u.buttonView.bind("ariaLabel").to(r,"value",(e=>{const t=e&&o[e];return t?`${t}, ${a}`:a})),this.listenTo(u,"execute",(t=>{r.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),u})),e.ui.componentFactory.add("menuBar:textPartLanguage",(n=>{const{definitions:i}=this._getItemMetadata(),o=e.commands.get("textPartLanguage"),r=new g.MenuBarMenuView(n);r.buttonView.set({label:a});const u=new g.MenuBarMenuListView(n);u.set({ariaLabel:t("Language"),role:"menu"});for(const e of i){if("button"!=e.type){u.items.add(new g.ListSeparatorView(n));continue}const t=new g.MenuBarMenuListItemView(n,r),a=new g.MenuBarMenuListItemButtonView(n);a.set({role:"menuitemradio",isToggleable:!0}),a.bind(...Object.keys(e.model)).to(e.model),a.delegate("execute").to(r),t.children.add(a),u.items.add(t)}return r.bind("isEnabled").to(o,"isEnabled"),r.panelView.children.add(u),r.on("execute",(t=>{o.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),r}))}_getItemMetadata(){const e=this.editor,n=new t.Collection,a={},o=e.commands.get("textPartLanguage"),r=e.config.get("language.textPartLanguage"),u=(0,e.locale.t)("Remove language");n.add({type:"button",model:new g.ViewModel({label:u,languageCode:!1,withText:!0})}),n.add({type:"separator"});for(const e of r){const t={type:"button",model:new g.ViewModel({label:e.title,languageCode:e.languageCode,role:"menuitemradio",textDirection:e.textDirection,withText:!0})},r=i(e.languageCode,e.textDirection);t.model.bind("isOn").to(o,"value",(e=>e===r)),n.add(t),a[r]=e.title}return{definitions:n,titles:a}}}class s extends e.Plugin{static get requires(){return[r,u]}static get pluginName(){return"TextPartLanguage"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).language=a})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-language",
3
- "version": "44.2.0-alpha.9",
3
+ "version": "44.2.1-alpha.0",
4
4
  "description": "Text part language feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,10 +13,10 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "@ckeditor/ckeditor5-core": "44.2.0-alpha.9",
17
- "@ckeditor/ckeditor5-ui": "44.2.0-alpha.9",
18
- "@ckeditor/ckeditor5-utils": "44.2.0-alpha.9",
19
- "ckeditor5": "44.2.0-alpha.9"
16
+ "@ckeditor/ckeditor5-core": "44.2.1-alpha.0",
17
+ "@ckeditor/ckeditor5-ui": "44.2.1-alpha.0",
18
+ "@ckeditor/ckeditor5-utils": "44.2.1-alpha.0",
19
+ "ckeditor5": "44.2.1-alpha.0"
20
20
  },
21
21
  "author": "CKSource (http://cksource.com/)",
22
22
  "license": "SEE LICENSE IN LICENSE.md",