@ckeditor/ckeditor5-alignment 41.3.0-alpha.3 → 41.3.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.
Files changed (139) hide show
  1. package/build/alignment.js +2 -2
  2. package/package.json +2 -3
  3. package/src/alignmentui.d.ts +20 -0
  4. package/src/alignmentui.js +90 -23
  5. package/dist/content-index.css +0 -4
  6. package/dist/editor-index.css +0 -4
  7. package/dist/index.css +0 -4
  8. package/dist/translations/af.d.ts +0 -8
  9. package/dist/translations/af.js +0 -5
  10. package/dist/translations/ar.d.ts +0 -8
  11. package/dist/translations/ar.js +0 -5
  12. package/dist/translations/az.d.ts +0 -8
  13. package/dist/translations/az.js +0 -5
  14. package/dist/translations/bg.d.ts +0 -8
  15. package/dist/translations/bg.js +0 -5
  16. package/dist/translations/bn.d.ts +0 -8
  17. package/dist/translations/bn.js +0 -5
  18. package/dist/translations/bs.d.ts +0 -8
  19. package/dist/translations/bs.js +0 -5
  20. package/dist/translations/ca.d.ts +0 -8
  21. package/dist/translations/ca.js +0 -5
  22. package/dist/translations/cs.d.ts +0 -8
  23. package/dist/translations/cs.js +0 -5
  24. package/dist/translations/da.d.ts +0 -8
  25. package/dist/translations/da.js +0 -5
  26. package/dist/translations/de-ch.d.ts +0 -8
  27. package/dist/translations/de-ch.js +0 -5
  28. package/dist/translations/de.d.ts +0 -8
  29. package/dist/translations/de.js +0 -5
  30. package/dist/translations/el.d.ts +0 -8
  31. package/dist/translations/el.js +0 -5
  32. package/dist/translations/en-au.d.ts +0 -8
  33. package/dist/translations/en-au.js +0 -5
  34. package/dist/translations/en-gb.d.ts +0 -8
  35. package/dist/translations/en-gb.js +0 -5
  36. package/dist/translations/en.d.ts +0 -8
  37. package/dist/translations/en.js +0 -5
  38. package/dist/translations/es-co.d.ts +0 -8
  39. package/dist/translations/es-co.js +0 -5
  40. package/dist/translations/es.d.ts +0 -8
  41. package/dist/translations/es.js +0 -5
  42. package/dist/translations/et.d.ts +0 -8
  43. package/dist/translations/et.js +0 -5
  44. package/dist/translations/fa.d.ts +0 -8
  45. package/dist/translations/fa.js +0 -5
  46. package/dist/translations/fi.d.ts +0 -8
  47. package/dist/translations/fi.js +0 -5
  48. package/dist/translations/fr.d.ts +0 -8
  49. package/dist/translations/fr.js +0 -5
  50. package/dist/translations/gl.d.ts +0 -8
  51. package/dist/translations/gl.js +0 -5
  52. package/dist/translations/he.d.ts +0 -8
  53. package/dist/translations/he.js +0 -5
  54. package/dist/translations/hi.d.ts +0 -8
  55. package/dist/translations/hi.js +0 -5
  56. package/dist/translations/hr.d.ts +0 -8
  57. package/dist/translations/hr.js +0 -5
  58. package/dist/translations/hu.d.ts +0 -8
  59. package/dist/translations/hu.js +0 -5
  60. package/dist/translations/id.d.ts +0 -8
  61. package/dist/translations/id.js +0 -5
  62. package/dist/translations/it.d.ts +0 -8
  63. package/dist/translations/it.js +0 -5
  64. package/dist/translations/ja.d.ts +0 -8
  65. package/dist/translations/ja.js +0 -5
  66. package/dist/translations/jv.d.ts +0 -8
  67. package/dist/translations/jv.js +0 -5
  68. package/dist/translations/kk.d.ts +0 -8
  69. package/dist/translations/kk.js +0 -5
  70. package/dist/translations/km.d.ts +0 -8
  71. package/dist/translations/km.js +0 -5
  72. package/dist/translations/ko.d.ts +0 -8
  73. package/dist/translations/ko.js +0 -5
  74. package/dist/translations/ku.d.ts +0 -8
  75. package/dist/translations/ku.js +0 -5
  76. package/dist/translations/lt.d.ts +0 -8
  77. package/dist/translations/lt.js +0 -5
  78. package/dist/translations/lv.d.ts +0 -8
  79. package/dist/translations/lv.js +0 -5
  80. package/dist/translations/ms.d.ts +0 -8
  81. package/dist/translations/ms.js +0 -5
  82. package/dist/translations/nb.d.ts +0 -8
  83. package/dist/translations/nb.js +0 -5
  84. package/dist/translations/ne.d.ts +0 -8
  85. package/dist/translations/ne.js +0 -5
  86. package/dist/translations/nl.d.ts +0 -8
  87. package/dist/translations/nl.js +0 -5
  88. package/dist/translations/no.d.ts +0 -8
  89. package/dist/translations/no.js +0 -5
  90. package/dist/translations/pl.d.ts +0 -8
  91. package/dist/translations/pl.js +0 -5
  92. package/dist/translations/pt-br.d.ts +0 -8
  93. package/dist/translations/pt-br.js +0 -5
  94. package/dist/translations/pt.d.ts +0 -8
  95. package/dist/translations/pt.js +0 -5
  96. package/dist/translations/ro.d.ts +0 -8
  97. package/dist/translations/ro.js +0 -5
  98. package/dist/translations/ru.d.ts +0 -8
  99. package/dist/translations/ru.js +0 -5
  100. package/dist/translations/sk.d.ts +0 -8
  101. package/dist/translations/sk.js +0 -5
  102. package/dist/translations/sl.d.ts +0 -8
  103. package/dist/translations/sl.js +0 -5
  104. package/dist/translations/sq.d.ts +0 -8
  105. package/dist/translations/sq.js +0 -5
  106. package/dist/translations/sr-latn.d.ts +0 -8
  107. package/dist/translations/sr-latn.js +0 -5
  108. package/dist/translations/sr.d.ts +0 -8
  109. package/dist/translations/sr.js +0 -5
  110. package/dist/translations/sv.d.ts +0 -8
  111. package/dist/translations/sv.js +0 -5
  112. package/dist/translations/th.d.ts +0 -8
  113. package/dist/translations/th.js +0 -5
  114. package/dist/translations/tk.d.ts +0 -8
  115. package/dist/translations/tk.js +0 -5
  116. package/dist/translations/tr.d.ts +0 -8
  117. package/dist/translations/tr.js +0 -5
  118. package/dist/translations/ug.d.ts +0 -8
  119. package/dist/translations/ug.js +0 -5
  120. package/dist/translations/uk.d.ts +0 -8
  121. package/dist/translations/uk.js +0 -5
  122. package/dist/translations/ur.d.ts +0 -8
  123. package/dist/translations/ur.js +0 -5
  124. package/dist/translations/uz.d.ts +0 -8
  125. package/dist/translations/uz.js +0 -5
  126. package/dist/translations/vi.d.ts +0 -8
  127. package/dist/translations/vi.js +0 -5
  128. package/dist/translations/zh-cn.d.ts +0 -8
  129. package/dist/translations/zh-cn.js +0 -5
  130. package/dist/translations/zh.d.ts +0 -8
  131. package/dist/translations/zh.js +0 -5
  132. package/dist/types/alignment.d.ts +0 -33
  133. package/dist/types/alignmentcommand.d.ts +0 -47
  134. package/dist/types/alignmentconfig.d.ts +0 -76
  135. package/dist/types/alignmentediting.d.ts +0 -30
  136. package/dist/types/alignmentui.d.ts +0 -49
  137. package/dist/types/augmentation.d.ts +0 -27
  138. package/dist/types/index.d.ts +0 -17
  139. package/dist/types/utils.d.ts +0 -43
@@ -1,5 +1,5 @@
1
- !function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"Align center":"Align center","Align left":"Align left","Align right":"Align right",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
1
+ !function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Align center","Align left":"Align left","Align right":"Align right",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
2
2
  /*!
3
3
  * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var t={782:(t,e,n)=>{t.exports=n(237)("./src/core.js")},311:(t,e,n)=>{t.exports=n(237)("./src/ui.js")},584:(t,e,n)=>{t.exports=n(237)("./src/utils.js")},237:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var r=e[i]={exports:{}};return t[i](r,r.exports,n),r.exports}n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";n.r(i),n.d(i,{Alignment:()=>f,AlignmentEditing:()=>g,AlignmentUI:()=>d});var t=n(782),e=n(584);const o=["left","right","center","justify"];function r(t){return o.includes(t)}function a(t,e){return"rtl"==e.contentLanguageDirection?"right"===t:"left"===t}function s(t){const n=t.map((t=>{let e;return e="string"==typeof t?{name:t}:t,e})).filter((t=>{const n=o.includes(t.name);return n||(0,e.logWarning)("alignment-config-name-not-recognized",{option:t}),n})),i=n.filter((t=>Boolean(t.className))).length;if(i&&i<n.length)throw new e.CKEditorError("alignment-config-classnames-are-missing",{configuredOptions:t});return n.forEach(((n,i,o)=>{const r=o.slice(i+1);if(r.some((t=>t.name==n.name)))throw new e.CKEditorError("alignment-config-name-already-defined",{option:n,configuredOptions:t});if(n.className){if(r.some((t=>t.className==n.className)))throw new e.CKEditorError("alignment-config-classname-already-defined",{option:n,configuredOptions:t})}})),n}const l="alignment";class c extends t.Command{refresh(){const t=this.editor.locale,n=(0,e.first)(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=Boolean(n)&&this._canBeAligned(n),this.isEnabled&&n.hasAttribute("alignment")?this.value=n.getAttribute("alignment"):this.value="rtl"===t.contentLanguageDirection?"right":"left"}execute(t={}){const e=this.editor,n=e.locale,i=e.model,o=i.document,r=t.value;i.change((t=>{const e=Array.from(o.selection.getSelectedBlocks()).filter((t=>this._canBeAligned(t))),i=e[0].getAttribute("alignment");a(r,n)||i===r||!r?function(t,e){for(const n of t)e.removeAttribute(l,n)}(e,t):function(t,e,n){for(const i of t)e.setAttribute(l,n,i)}(e,t,r)}))}_canBeAligned(t){return this.editor.model.schema.checkAttribute(t,l)}}class g extends t.Plugin{static get pluginName(){return"AlignmentEditing"}constructor(t){super(t),t.config.define("alignment",{options:o.map((t=>({name:t})))})}init(){const t=this.editor,e=t.locale,n=t.model.schema,i=s(t.config.get("alignment.options")).filter((t=>r(t.name)&&!a(t.name,e))),o=i.some((t=>!!t.className));n.extend("$block",{allowAttributes:"alignment"}),t.model.schema.setAttributeProperties("alignment",{isFormatting:!0}),o?t.conversion.attributeToAttribute(function(t){const e={};for(const n of t)e[n.name]={key:"class",value:n.className};const n={model:{key:"alignment",values:t.map((t=>t.name))},view:e};return n}(i)):t.conversion.for("downcast").attributeToAttribute(function(t){const e={};for(const{name:n}of t)e[n]={key:"style",value:{"text-align":n}};const n={model:{key:"alignment",values:t.map((t=>t.name))},view:e};return n}(i));const l=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"style",value:{"text-align":n}},model:{key:"alignment",value:n}});return e}(i);for(const e of l)t.conversion.for("upcast").attributeToAttribute(e);const g=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"align",value:n},model:{key:"alignment",value:n}});return e}(i);for(const e of g)t.conversion.for("upcast").attributeToAttribute(e);t.commands.add("alignment",new c(t))}}var u=n(311);const m=new Map([["left",t.icons.alignLeft],["right",t.icons.alignRight],["center",t.icons.alignCenter],["justify",t.icons.alignJustify]]);class d extends t.Plugin{get localizedOptionTitles(){const t=this.editor.t;return{left:t("Align left"),right:t("Align right"),center:t("Align center"),justify:t("Justify")}}static get pluginName(){return"AlignmentUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t,i=s(t.config.get("alignment.options"));i.map((t=>t.name)).filter(r).forEach((t=>this._addButton(t))),e.add("alignment",(o=>{const r=(0,u.createDropdown)(o);(0,u.addToolbarToDropdown)(r,(()=>i.map((t=>e.create(`alignment:${t.name}`)))),{enableActiveItemFocusOnDropdownOpen:!0,isVertical:!0,ariaLabel:n("Text alignment toolbar")}),r.buttonView.set({label:n("Text alignment"),tooltip:!0}),r.extendTemplate({attributes:{class:"ck-alignment-dropdown"}});const a="rtl"===o.contentLanguageDirection?m.get("right"):m.get("left"),s=t.commands.get("alignment");return r.buttonView.bind("icon").to(s,"value",(t=>m.get(t)||a)),r.bind("isEnabled").to(s,"isEnabled"),this.listenTo(r,"execute",(()=>{t.editing.view.focus()})),r}))}_addButton(t){const e=this.editor;e.ui.componentFactory.add(`alignment:${t}`,(n=>{const i=e.commands.get("alignment"),o=new u.ButtonView(n);return o.set({label:this.localizedOptionTitles[t],icon:m.get(t),tooltip:!0,isToggleable:!0}),o.bind("isEnabled").to(i),o.bind("isOn").to(i,"value",(e=>e===t)),this.listenTo(o,"execute",(()=>{e.execute("alignment",{value:t}),e.editing.view.focus()})),o}))}}class f extends t.Plugin{static get requires(){return[g,d]}static get pluginName(){return"Alignment"}}})(),(window.CKEditor5=window.CKEditor5||{}).alignment=i})();
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(i){var o=t[i];if(void 0!==o)return o.exports;var a=t[i]={exports:{}};return e[i](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},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 i={};(()=>{"use strict";n.r(i),n.d(i,{Alignment:()=>f,AlignmentEditing:()=>u,AlignmentUI:()=>m});var e=n(782),t=n(584);const o=["left","right","center","justify"];function a(e){return o.includes(e)}function r(e,t){return"rtl"==t.contentLanguageDirection?"right"===e:"left"===e}function s(e){const n=e.map((e=>{let t;return t="string"==typeof e?{name:e}:e,t})).filter((e=>{const n=o.includes(e.name);return n||(0,t.logWarning)("alignment-config-name-not-recognized",{option:e}),n})),i=n.filter((e=>Boolean(e.className))).length;if(i&&i<n.length)throw new t.CKEditorError("alignment-config-classnames-are-missing",{configuredOptions:e});return n.forEach(((n,i,o)=>{const a=o.slice(i+1);if(a.some((e=>e.name==n.name)))throw new t.CKEditorError("alignment-config-name-already-defined",{option:n,configuredOptions:e});if(n.className){if(a.some((e=>e.className==n.className)))throw new t.CKEditorError("alignment-config-classname-already-defined",{option:n,configuredOptions:e})}})),n}const l="alignment";class c extends e.Command{refresh(){const e=this.editor.locale,n=(0,t.first)(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=Boolean(n)&&this._canBeAligned(n),this.isEnabled&&n.hasAttribute("alignment")?this.value=n.getAttribute("alignment"):this.value="rtl"===e.contentLanguageDirection?"right":"left"}execute(e={}){const t=this.editor,n=t.locale,i=t.model,o=i.document,a=e.value;i.change((e=>{const t=Array.from(o.selection.getSelectedBlocks()).filter((e=>this._canBeAligned(e))),i=t[0].getAttribute("alignment");r(a,n)||i===a||!a?function(e,t){for(const n of e)t.removeAttribute(l,n)}(t,e):function(e,t,n){for(const i of e)t.setAttribute(l,n,i)}(t,e,a)}))}_canBeAligned(e){return this.editor.model.schema.checkAttribute(e,l)}}class u extends e.Plugin{static get pluginName(){return"AlignmentEditing"}constructor(e){super(e),e.config.define("alignment",{options:o.map((e=>({name:e})))})}init(){const e=this.editor,t=e.locale,n=e.model.schema,i=s(e.config.get("alignment.options")).filter((e=>a(e.name)&&!r(e.name,t))),o=i.some((e=>!!e.className));n.extend("$block",{allowAttributes:"alignment"}),e.model.schema.setAttributeProperties("alignment",{isFormatting:!0}),o?e.conversion.attributeToAttribute(function(e){const t={};for(const n of e)t[n.name]={key:"class",value:n.className};const n={model:{key:"alignment",values:e.map((e=>e.name))},view:t};return n}(i)):e.conversion.for("downcast").attributeToAttribute(function(e){const t={};for(const{name:n}of e)t[n]={key:"style",value:{"text-align":n}};const n={model:{key:"alignment",values:e.map((e=>e.name))},view:t};return n}(i));const l=function(e){const t=[];for(const{name:n}of e)t.push({view:{key:"style",value:{"text-align":n}},model:{key:"alignment",value:n}});return t}(i);for(const t of l)e.conversion.for("upcast").attributeToAttribute(t);const u=function(e){const t=[];for(const{name:n}of e)t.push({view:{key:"align",value:n},model:{key:"alignment",value:n}});return t}(i);for(const t of u)e.conversion.for("upcast").attributeToAttribute(t);e.commands.add("alignment",new c(e))}}var d=n(311);const g=new Map([["left",e.icons.alignLeft],["right",e.icons.alignRight],["center",e.icons.alignCenter],["justify",e.icons.alignJustify]]);class m extends e.Plugin{get localizedOptionTitles(){const e=this.editor.t;return{left:e("Align left"),right:e("Align right"),center:e("Align center"),justify:e("Justify")}}static get pluginName(){return"AlignmentUI"}init(){const e=s(this.editor.config.get("alignment.options"));e.map((e=>e.name)).filter(a).forEach((e=>this._addButton(e))),this._addToolbarDropdown(e),this._addMenuBarMenu(e)}_addButton(e){this.editor.ui.componentFactory.add(`alignment:${e}`,(t=>this._createButton(t,e)))}_createButton(e,t,n={}){const i=this.editor,o=i.commands.get("alignment"),a=new d.ButtonView(e);return a.set({label:this.localizedOptionTitles[t],icon:g.get(t),tooltip:!0,isToggleable:!0,...n}),a.bind("isEnabled").to(o),a.bind("isOn").to(o,"value",(e=>e===t)),this.listenTo(a,"execute",(()=>{i.execute("alignment",{value:t}),i.editing.view.focus()})),a}_addToolbarDropdown(e){const t=this.editor;t.ui.componentFactory.add("alignment",(n=>{const i=(0,d.createDropdown)(n),o="rtl"===n.uiLanguageDirection?"w":"e",a=n.t;(0,d.addToolbarToDropdown)(i,(()=>e.map((e=>this._createButton(n,e.name,{tooltipPosition:o})))),{enableActiveItemFocusOnDropdownOpen:!0,isVertical:!0,ariaLabel:a("Text alignment toolbar")}),i.buttonView.set({label:a("Text alignment"),tooltip:!0}),i.extendTemplate({attributes:{class:"ck-alignment-dropdown"}});const r="rtl"===n.contentLanguageDirection?g.get("right"):g.get("left"),s=t.commands.get("alignment");return i.buttonView.bind("icon").to(s,"value",(e=>g.get(e)||r)),i.bind("isEnabled").to(s,"isEnabled"),this.listenTo(i,"execute",(()=>{t.editing.view.focus()})),i}))}_addMenuBarMenu(e){const t=this.editor;t.ui.componentFactory.add("menuBar:alignment",(n=>{const i=t.commands.get("alignment"),o=n.t,a=new d.MenuBarMenuView(n),r=new d.MenuBarMenuListView(n);a.bind("isEnabled").to(i),r.set({ariaLabel:o("Text alignment"),role:"menu"}),a.buttonView.set({label:o("Text alignment")});for(const o of e){const e=new d.MenuBarMenuListItemView(n,a),s=new d.MenuBarMenuListItemButtonView(n);s.extendTemplate({attributes:{"aria-checked":s.bindTemplate.to("isOn")}}),s.delegate("execute").to(a),s.set({label:this.localizedOptionTitles[o.name],icon:g.get(o.name)}),s.on("execute",(()=>{t.execute("alignment",{value:o.name}),t.editing.view.focus()})),s.bind("isOn").to(i,"value",(e=>e===o.name)),s.bind("isEnabled").to(i,"isEnabled"),e.children.add(s),r.items.add(e)}return a.panelView.children.add(r),a}))}}class f extends e.Plugin{static get requires(){return[u,m]}static get pluginName(){return"Alignment"}}})(),(window.CKEditor5=window.CKEditor5||{}).alignment=i})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-alignment",
3
- "version": "41.3.0-alpha.3",
3
+ "version": "41.3.0",
4
4
  "description": "Text alignment feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,7 +13,7 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "41.3.0-alpha.3"
16
+ "ckeditor5": "41.3.0"
17
17
  },
18
18
  "author": "CKSource (http://cksource.com/)",
19
19
  "license": "GPL-2.0-or-later",
@@ -25,7 +25,6 @@
25
25
  "directory": "packages/ckeditor5-alignment"
26
26
  },
27
27
  "files": [
28
- "dist",
29
28
  "lang",
30
29
  "src/**/*.js",
31
30
  "src/**/*.d.ts",
@@ -42,4 +42,24 @@ export default class AlignmentUI extends Plugin {
42
42
  * @param option The name of the alignment option for which the button is added.
43
43
  */
44
44
  private _addButton;
45
+ /**
46
+ * Helper method for creating the button view element.
47
+ *
48
+ * @param locale Editor locale.
49
+ * @param option The name of the alignment option for which the button is added.
50
+ * @param buttonAttrs Optional parameters passed to button view instance.
51
+ */
52
+ private _createButton;
53
+ /**
54
+ * Helper method for initializing the toolnar dropdown and linking it with an appropriate command.
55
+ *
56
+ * @param option The name of the alignment option for which the button is added.
57
+ */
58
+ private _addToolbarDropdown;
59
+ /**
60
+ * Creates a menu for all alignment options to use either in menu bar.
61
+ *
62
+ * @param options Normalized alignment options from config.
63
+ */
64
+ private _addMenuBarMenu;
45
65
  }
@@ -6,7 +6,7 @@
6
6
  * @module alignment/alignmentui
7
7
  */
8
8
  import { Plugin, icons } from 'ckeditor5/src/core.js';
9
- import { ButtonView, createDropdown, addToolbarToDropdown } from 'ckeditor5/src/ui.js';
9
+ import { ButtonView, createDropdown, addToolbarToDropdown, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, MenuBarMenuView, MenuBarMenuListView } from 'ckeditor5/src/ui.js';
10
10
  import { isSupported, normalizeAlignmentOptions } from './utils.js';
11
11
  const iconsMap = new Map([
12
12
  ['left', icons.alignLeft],
@@ -54,17 +54,65 @@ export default class AlignmentUI extends Plugin {
54
54
  */
55
55
  init() {
56
56
  const editor = this.editor;
57
- const componentFactory = editor.ui.componentFactory;
58
- const t = editor.t;
59
57
  const options = normalizeAlignmentOptions(editor.config.get('alignment.options'));
60
58
  options
61
59
  .map(option => option.name)
62
60
  .filter(isSupported)
63
61
  .forEach(option => this._addButton(option));
64
- componentFactory.add('alignment', locale => {
62
+ this._addToolbarDropdown(options);
63
+ this._addMenuBarMenu(options);
64
+ }
65
+ /**
66
+ * Helper method for initializing the button and linking it with an appropriate command.
67
+ *
68
+ * @param option The name of the alignment option for which the button is added.
69
+ */
70
+ _addButton(option) {
71
+ const editor = this.editor;
72
+ editor.ui.componentFactory.add(`alignment:${option}`, locale => this._createButton(locale, option));
73
+ }
74
+ /**
75
+ * Helper method for creating the button view element.
76
+ *
77
+ * @param locale Editor locale.
78
+ * @param option The name of the alignment option for which the button is added.
79
+ * @param buttonAttrs Optional parameters passed to button view instance.
80
+ */
81
+ _createButton(locale, option, buttonAttrs = {}) {
82
+ const editor = this.editor;
83
+ const command = editor.commands.get('alignment');
84
+ const buttonView = new ButtonView(locale);
85
+ buttonView.set({
86
+ label: this.localizedOptionTitles[option],
87
+ icon: iconsMap.get(option),
88
+ tooltip: true,
89
+ isToggleable: true,
90
+ ...buttonAttrs
91
+ });
92
+ // Bind button model to command.
93
+ buttonView.bind('isEnabled').to(command);
94
+ buttonView.bind('isOn').to(command, 'value', value => value === option);
95
+ // Execute command.
96
+ this.listenTo(buttonView, 'execute', () => {
97
+ editor.execute('alignment', { value: option });
98
+ editor.editing.view.focus();
99
+ });
100
+ return buttonView;
101
+ }
102
+ /**
103
+ * Helper method for initializing the toolnar dropdown and linking it with an appropriate command.
104
+ *
105
+ * @param option The name of the alignment option for which the button is added.
106
+ */
107
+ _addToolbarDropdown(options) {
108
+ const editor = this.editor;
109
+ const factory = editor.ui.componentFactory;
110
+ factory.add('alignment', locale => {
65
111
  const dropdownView = createDropdown(locale);
112
+ const tooltipPosition = locale.uiLanguageDirection === 'rtl' ? 'w' : 'e';
113
+ const t = locale.t;
66
114
  // Add existing alignment buttons to dropdown's toolbar.
67
- addToolbarToDropdown(dropdownView, () => options.map(option => componentFactory.create(`alignment:${option.name}`)), {
115
+ addToolbarToDropdown(dropdownView, () => options.map(option => this._createButton(locale, option.name, { tooltipPosition })), {
68
116
  enableActiveItemFocusOnDropdownOpen: true,
69
117
  isVertical: true,
70
118
  ariaLabel: t('Text alignment toolbar')
@@ -95,30 +143,49 @@ export default class AlignmentUI extends Plugin {
95
143
  });
96
144
  }
97
145
  /**
98
- * Helper method for initializing the button and linking it with an appropriate command.
146
+ * Creates a menu for all alignment options to use either in menu bar.
99
147
  *
100
- * @param option The name of the alignment option for which the button is added.
148
+ * @param options Normalized alignment options from config.
101
149
  */
102
- _addButton(option) {
150
+ _addMenuBarMenu(options) {
103
151
  const editor = this.editor;
104
- editor.ui.componentFactory.add(`alignment:${option}`, locale => {
152
+ editor.ui.componentFactory.add('menuBar:alignment', locale => {
105
153
  const command = editor.commands.get('alignment');
106
- const buttonView = new ButtonView(locale);
107
- buttonView.set({
108
- label: this.localizedOptionTitles[option],
109
- icon: iconsMap.get(option),
110
- tooltip: true,
111
- isToggleable: true
154
+ const t = locale.t;
155
+ const menuView = new MenuBarMenuView(locale);
156
+ const listView = new MenuBarMenuListView(locale);
157
+ menuView.bind('isEnabled').to(command);
158
+ listView.set({
159
+ ariaLabel: t('Text alignment'),
160
+ role: 'menu'
112
161
  });
113
- // Bind button model to command.
114
- buttonView.bind('isEnabled').to(command);
115
- buttonView.bind('isOn').to(command, 'value', value => value === option);
116
- // Execute command.
117
- this.listenTo(buttonView, 'execute', () => {
118
- editor.execute('alignment', { value: option });
119
- editor.editing.view.focus();
162
+ menuView.buttonView.set({
163
+ label: t('Text alignment')
120
164
  });
121
- return buttonView;
165
+ for (const option of options) {
166
+ const listItemView = new MenuBarMenuListItemView(locale, menuView);
167
+ const buttonView = new MenuBarMenuListItemButtonView(locale);
168
+ buttonView.extendTemplate({
169
+ attributes: {
170
+ 'aria-checked': buttonView.bindTemplate.to('isOn')
171
+ }
172
+ });
173
+ buttonView.delegate('execute').to(menuView);
174
+ buttonView.set({
175
+ label: this.localizedOptionTitles[option.name],
176
+ icon: iconsMap.get(option.name)
177
+ });
178
+ buttonView.on('execute', () => {
179
+ editor.execute('alignment', { value: option.name });
180
+ editor.editing.view.focus();
181
+ });
182
+ buttonView.bind('isOn').to(command, 'value', value => value === option.name);
183
+ buttonView.bind('isEnabled').to(command, 'isEnabled');
184
+ listItemView.children.add(buttonView);
185
+ listView.items.add(listItemView);
186
+ }
187
+ menuView.panelView.children.add(listView);
188
+ return menuView;
122
189
  });
123
190
  }
124
191
  }
@@ -1,4 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
@@ -1,4 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
package/dist/index.css DELETED
@@ -1,4 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"af":{"dictionary":{"Align left":"Belyn links","Align right":"Belyn regs","Align center":"Belyn in die middel","Justify":"Belyn beide kante","Text alignment":"Teksbelyning","Text alignment toolbar":"Teksbelyning nutsbank"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"ar":{"dictionary":{"Align left":"محاذاة لليسار","Align right":"محاذاة لليمين","Align center":"محاذاة في المنتصف","Justify":"ضبط","Text alignment":"محاذاة النص","Text alignment toolbar":"شريط أدوات محاذاة النص"},getPluralForm(n){return n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"az":{"dictionary":{"Align left":"Soldan düzləndir","Align right":"Sağdan düzləndir","Align center":"Mərkəzə düzləndir","Justify":"Eninə görə","Text alignment":"Mətn düzləndirməsi","Text alignment toolbar":"Mətnin düzləndirmə paneli"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"bg":{"dictionary":{"Align left":"Ляво подравняване","Align right":"Дясно подравняване","Align center":"Централно подравняване","Justify":"Разпредели по равно","Text alignment":"Подравняване на текста","Text alignment toolbar":"Лента за подравняване на текст"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"bn":{"dictionary":{"Align left":"বামে সারিবদ্ধ করুন","Align right":"ডানদিকে সারিবদ্ধ করুন","Align center":"কেন্দ্র সারিবদ্ধ করুন","Justify":"জাস্টিফাই","Text alignment":"টেক্সট সারিবদ্ধকরণ","Text alignment toolbar":"টেক্সট শ্রেণীবিন্যাস টুলবার"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"bs":{"dictionary":{"Align left":"Lijevo poravnanje","Align right":"Desno poravnanje","Align center":"Centrirati","Justify":"","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje teksta"},getPluralForm(n){return (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"ca":{"dictionary":{"Align left":"Alineació esquerra","Align right":"Alineació dreta","Align center":"Alineació centre","Justify":"Justificar","Text alignment":"Alineació text","Text alignment toolbar":"Barra d'eines d'alineació de text"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"cs":{"dictionary":{"Align left":"Zarovnat vlevo","Align right":"Zarovnat vpravo","Align center":"Zarovnat na střed","Justify":"Zarovnat do bloku","Text alignment":"Zarovnání textu","Text alignment toolbar":"Panel nástrojů zarovnání textu"},getPluralForm(n){return (n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"da":{"dictionary":{"Align left":"Justér venstre","Align right":"Justér højre","Align center":"Justér center","Justify":"Justér","Text alignment":"Tekstjustering","Text alignment toolbar":"Tekstjustering værktøjslinje"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"de-ch":{"dictionary":{"Align left":"Linksbündig","Align right":"Rechtsbündig","Align center":"Zentriert","Justify":"Blocksatz","Text alignment":"Textausrichtung","Text alignment toolbar":"Textausrichtung Werkzeugleiste"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"de":{"dictionary":{"Align left":"Linksbündig","Align right":"Rechtsbündig","Align center":"Zentriert","Justify":"Blocksatz","Text alignment":"Textausrichtung","Text alignment toolbar":"Text-Ausrichtung Toolbar"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"el":{"dictionary":{"Align left":"Στοίχιση αριστερά","Align right":"Στοίχιση δεξιά","Align center":"Στοίχιση στο κέντρο","Justify":"Πλήρης στοίχηση","Text alignment":"Στοίχιση κειμένου","Text alignment toolbar":"Γραμμή εργαλείων στοίχισης κειμένου"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"en-au":{"dictionary":{"Align left":"Align left","Align right":"Align right","Align center":"Align centre","Justify":"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"en-gb":{"dictionary":{"Align left":"Align left","Align right":"Align right","Align center":"Align center","Justify":"Justify","Text alignment":"Text alignment","Text alignment toolbar":""},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"en":{"dictionary":{"Align left":"Align left","Align right":"Align right","Align center":"Align center","Justify":"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"},"getPluralForm":null}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"es-co":{"dictionary":{"Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha","Align center":"Centrar","Justify":"Justificar","Text alignment":"Alineación de texto","Text alignment toolbar":"Herramientas de alineación de texto"},getPluralForm(n){return n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"es":{"dictionary":{"Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha","Align center":"Centrar","Justify":"Justificar","Text alignment":"Alineación del texto","Text alignment toolbar":"Barra de herramientas de alineación del texto"},getPluralForm(n){return n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"et":{"dictionary":{"Align left":"Vasakjoondus","Align right":"Paremjoondus","Align center":"Keskjoondus","Justify":"Rööpjoondus","Text alignment":"Teksti joondamine","Text alignment toolbar":"Teksti joonduse tööriistariba"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"fa":{"dictionary":{"Align left":"تراز چپ","Align right":"تراز راست","Align center":"تراز وسط","Justify":"هم تراز کردن","Text alignment":"تراز متن","Text alignment toolbar":"نوار ابزار ترازبندی متن"},getPluralForm(n){return (n > 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"fi":{"dictionary":{"Align left":"Tasaa vasemmalle","Align right":"Tasaa oikealle","Align center":"Tasaa keskelle","Justify":"Tasaa molemmat reunat","Text alignment":"Tekstin tasaus","Text alignment toolbar":"Tekstin suuntauksen työkalupalkki"},getPluralForm(n){return (n != 1);}}}