@ckeditor/ckeditor5-language 45.2.1-alpha.5 → 45.2.1-alpha.6
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/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js","../src/utils.ts","../src/textpartlanguagecommand.ts","../src/textpartlanguageediting.ts","../src/textpartlanguageui.ts","../src/textpartlanguage.ts"],"names":["stringifyLanguageAttribute","languageCode","textDirection","getLanguageDirection","parseLanguageAttribute","str","split","TextPartLanguageCommand","Command","model","editor","doc","document","value","_getValueFromFirstAllowedNode","isEnabled","schema","checkAttributeInSelection","selection","execute","change","writer","isCollapsed","setSelectionAttribute","removeSelectionAttribute","ranges","getValidRanges","getRanges","range","setAttribute","removeAttribute","getAttribute","item","getItems","checkAttribute","TextPartLanguageEditing","Plugin","pluginName","isOfficialPlugin","config","define","textPartLanguage","title","extend","allowAttributes","setAttributeProperties","copyOnEnter","_defineConverters","commands","add","conversion","for","elementToAttribute","key","viewElement","view","name","attributes","lang","attributeToElement","attributeValue","data","is","createAttributeElement","dir","TextPartLanguageUI","t","defaultTitle","accessibleLabel","ui","componentFactory","locale","definitions","titles","_getItemMetadata","languageCommand","get","dropdownView","createDropdown","addListToDropdown","ariaLabel","role","buttonView","set","ariaLabelledBy","undefined","isOn","withText","tooltip","extendTemplate","class","bind","to","selectedLanguageTitle","listenTo","evt","source","editing","focus","menuView","MenuBarMenuView","label","listView","MenuBarMenuListView","definition","type","items","ListSeparatorView","listItemView","MenuBarMenuListItemView","MenuBarMenuListItemButtonView","isToggleable","Object","keys","delegate","children","panelView","on","itemDefinitions","Collection","options","removeTitle","ViewModel","option","def","language","TextPartLanguage","requires"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { getLanguageDirection, Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { createDropdown, addListToDropdown, MenuBarMenuView, MenuBarMenuListView, ListSeparatorView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, ViewModel } from '@ckeditor/ckeditor5-ui/dist/index.js';\n\n/**\n * Returns the language attribute value in a human-readable text format:\n *\n * ```\n * <languageCode>:<textDirection>\n * ```\n *\n * * `languageCode` - The language code used for the `lang` attribute in the [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.\n * * `textDirection` - One of the following values: `rtl` or `ltr`, indicating the reading direction of the language.\n *\n * See the {@link module:core/editor/editorconfig~LanguageConfig#textPartLanguage text part language configuration}\n * for more information about language properties.\n *\n * If the `textDirection` argument is omitted, it will be automatically detected based on `languageCode`.\n *\n * @param languageCode The language code in the ISO 639-1 format.\n * @param textDirection The language text direction. Automatically detected if omitted.\n */ function stringifyLanguageAttribute(languageCode, textDirection) {\n textDirection = textDirection || getLanguageDirection(languageCode);\n return `${languageCode}:${textDirection}`;\n}\n/**\n * Retrieves language properties converted to attribute value by the\n * {@link module:language/utils~stringifyLanguageAttribute stringifyLanguageAttribute} function.\n *\n * @param str The attribute value.\n * @returns The object with properties:\n * * languageCode - The language code in the ISO 639 format.\n * * textDirection - The language text direction.\n */ function parseLanguageAttribute(str) {\n const [languageCode, textDirection] = str.split(':');\n return {\n languageCode,\n textDirection\n };\n}\n\n/**\n * The text part language command plugin.\n */ class TextPartLanguageCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = this._getValueFromFirstAllowedNode();\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'language');\n }\n /**\n\t * Executes the command. Applies the attribute to the selection or removes it from the selection.\n\t *\n\t * If `languageCode` is set to `false` or a `null` value, it will remove attributes. Otherwise, it will set\n\t * the attribute in the `{@link #value value}` format.\n\t *\n\t * The execution result differs, depending on the {@link module:engine/model/document~Document#selection}:\n\t *\n\t * * If the selection is on a range, the command applies the attribute to all nodes in that range\n\t * (if they are allowed to have this attribute by the {@link module:engine/model/schema~Schema schema}).\n\t * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n\t * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy attributes from the selection).\n\t * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n\t * that the selection inherits all attributes from a node if it is in an empty node).\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.languageCode The language code to be applied to the model.\n\t * @param options.textDirection The language text direction.\n\t */ execute({ languageCode, textDirection } = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const value = languageCode ? stringifyLanguageAttribute(languageCode, textDirection) : false;\n model.change((writer)=>{\n if (selection.isCollapsed) {\n if (value) {\n writer.setSelectionAttribute('language', value);\n } else {\n writer.removeSelectionAttribute('language');\n }\n } else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), 'language');\n for (const range of ranges){\n if (value) {\n writer.setAttribute('language', value, range);\n } else {\n writer.removeAttribute('language', range);\n }\n }\n }\n });\n }\n /**\n\t * Returns the attribute value of the first node in the selection that allows the attribute.\n\t * For a collapsed selection it returns the selection attribute.\n\t *\n\t * @returns The attribute value.\n\t */ _getValueFromFirstAllowedNode() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n if (selection.isCollapsed) {\n return selection.getAttribute('language') || false;\n }\n for (const range of selection.getRanges()){\n for (const item of range.getItems()){\n if (schema.checkAttribute(item, 'language')) {\n return item.getAttribute('language') || false;\n }\n }\n }\n return false;\n }\n}\n\n/**\n * The text part language editing.\n *\n * Introduces the `'textPartLanguage'` command and the `'language'` model element attribute.\n */ class TextPartLanguageEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'TextPartLanguageEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n // Text part language options are only used to ensure that the feature works by default.\n // In the real usage it should be reconfigured by a developer. We are not providing\n // translations for `title` properties on purpose, as it's only an example configuration.\n editor.config.define('language', {\n textPartLanguage: [\n {\n title: 'Arabic',\n languageCode: 'ar'\n },\n {\n title: 'French',\n languageCode: 'fr'\n },\n {\n title: 'Spanish',\n languageCode: 'es'\n }\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.model.schema.extend('$text', {\n allowAttributes: 'language'\n });\n editor.model.schema.setAttributeProperties('language', {\n copyOnEnter: true\n });\n this._defineConverters();\n editor.commands.add('textPartLanguage', new TextPartLanguageCommand(editor));\n }\n /**\n\t * @private\n\t */ _defineConverters() {\n const conversion = this.editor.conversion;\n conversion.for('upcast').elementToAttribute({\n model: {\n key: 'language',\n value: (viewElement)=>{\n const languageCode = viewElement.getAttribute('lang');\n const textDirection = viewElement.getAttribute('dir');\n return stringifyLanguageAttribute(languageCode, textDirection);\n }\n },\n view: {\n name: 'span',\n attributes: {\n lang: /[\\s\\S]+/\n }\n }\n });\n conversion.for('downcast').attributeToElement({\n model: 'language',\n view: (attributeValue, { writer }, data)=>{\n if (!attributeValue) {\n return;\n }\n if (!data.item.is('$textProxy') && !data.item.is('documentSelection')) {\n return;\n }\n const { languageCode, textDirection } = parseLanguageAttribute(attributeValue);\n return writer.createAttributeElement('span', {\n lang: languageCode,\n dir: textDirection\n });\n }\n });\n }\n}\n\n/**\n * The text part language UI plugin.\n *\n * It introduces the `'language'` dropdown.\n */ class TextPartLanguageUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'TextPartLanguageUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const t = editor.t;\n const defaultTitle = t('Choose language');\n const accessibleLabel = t('Language');\n // Register UI component.\n editor.ui.componentFactory.add('textPartLanguage', (locale)=>{\n const { definitions, titles } = this._getItemMetadata();\n const languageCommand = editor.commands.get('textPartLanguage');\n const dropdownView = createDropdown(locale);\n addListToDropdown(dropdownView, definitions, {\n ariaLabel: accessibleLabel,\n role: 'menu'\n });\n dropdownView.buttonView.set({\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined,\n isOn: false,\n withText: true,\n tooltip: accessibleLabel\n });\n dropdownView.extendTemplate({\n attributes: {\n class: [\n 'ck-text-fragment-language-dropdown'\n ]\n }\n });\n dropdownView.bind('isEnabled').to(languageCommand, 'isEnabled');\n dropdownView.buttonView.bind('label').to(languageCommand, 'value', (value)=>{\n return value && titles[value] || defaultTitle;\n });\n dropdownView.buttonView.bind('ariaLabel').to(languageCommand, 'value', (value)=>{\n const selectedLanguageTitle = value && titles[value];\n if (!selectedLanguageTitle) {\n return accessibleLabel;\n }\n return `${selectedLanguageTitle}, ${accessibleLabel}`;\n });\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', (evt)=>{\n languageCommand.execute({\n languageCode: evt.source.languageCode,\n textDirection: evt.source.textDirection\n });\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n // Register menu bar UI component.\n editor.ui.componentFactory.add('menuBar:textPartLanguage', (locale)=>{\n const { definitions } = this._getItemMetadata();\n const languageCommand = editor.commands.get('textPartLanguage');\n const menuView = new MenuBarMenuView(locale);\n menuView.buttonView.set({\n label: accessibleLabel\n });\n const listView = new MenuBarMenuListView(locale);\n listView.set({\n ariaLabel: t('Language'),\n role: 'menu'\n });\n for (const definition of definitions){\n if (definition.type != 'button') {\n listView.items.add(new ListSeparatorView(locale));\n continue;\n }\n const listItemView = new MenuBarMenuListItemView(locale, menuView);\n const buttonView = new MenuBarMenuListItemButtonView(locale);\n buttonView.set({\n role: 'menuitemradio',\n isToggleable: true\n });\n buttonView.bind(...Object.keys(definition.model)).to(definition.model);\n buttonView.delegate('execute').to(menuView);\n listItemView.children.add(buttonView);\n listView.items.add(listItemView);\n }\n menuView.bind('isEnabled').to(languageCommand, 'isEnabled');\n menuView.panelView.children.add(listView);\n menuView.on('execute', (evt)=>{\n languageCommand.execute({\n languageCode: evt.source.languageCode,\n textDirection: evt.source.textDirection\n });\n editor.editing.view.focus();\n });\n return menuView;\n });\n }\n /**\n\t * Returns metadata for dropdown and menu items.\n\t */ _getItemMetadata() {\n const editor = this.editor;\n const itemDefinitions = new Collection();\n const titles = {};\n const languageCommand = editor.commands.get('textPartLanguage');\n const options = editor.config.get('language.textPartLanguage');\n const t = editor.locale.t;\n const removeTitle = t('Remove language');\n // Item definition with false `languageCode` will behave as remove lang button.\n itemDefinitions.add({\n type: 'button',\n model: new ViewModel({\n label: removeTitle,\n languageCode: false,\n withText: true\n })\n });\n itemDefinitions.add({\n type: 'separator'\n });\n for (const option of options){\n const def = {\n type: 'button',\n model: new ViewModel({\n label: option.title,\n languageCode: option.languageCode,\n role: 'menuitemradio',\n textDirection: option.textDirection,\n withText: true\n })\n };\n const language = stringifyLanguageAttribute(option.languageCode, option.textDirection);\n def.model.bind('isOn').to(languageCommand, 'value', (value)=>value === language);\n itemDefinitions.add(def);\n titles[language] = option.title;\n }\n return {\n definitions: itemDefinitions,\n titles\n };\n }\n}\n\n/**\n * The text part language feature.\n *\n * This feature allows setting a language of the document's text part to support\n * [WCAG 3.1.2 Language of Parts](https://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html) specification.\n *\n * To change the editor's UI language, refer to the {@glink getting-started/setup/ui-language Setting the UI language} guide.\n *\n * For more information about this feature, check the {@glink api/language package page} as well as the {@glink features/language\n * Text part language} feature guide.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:language/textpartlanguageediting~TextPartLanguageEditing text part language editing feature}\n * and the {@link module:language/textpartlanguageui~TextPartLanguageUI text part language UI feature}.\n */ class TextPartLanguage extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n TextPartLanguageEditing,\n TextPartLanguageUI\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'TextPartLanguage';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { TextPartLanguage, TextPartLanguageEditing, TextPartLanguageUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/utils\n */\n\nimport { getLanguageDirection, type LanguageDirection } from 'ckeditor5/src/utils.js';\n\n/**\n * Returns the language attribute value in a human-readable text format:\n *\n * ```\n * <languageCode>:<textDirection>\n * ```\n *\n * * `languageCode` - The language code used for the `lang` attribute in the [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.\n * * `textDirection` - One of the following values: `rtl` or `ltr`, indicating the reading direction of the language.\n *\n * See the {@link module:core/editor/editorconfig~LanguageConfig#textPartLanguage text part language configuration}\n * for more information about language properties.\n *\n * If the `textDirection` argument is omitted, it will be automatically detected based on `languageCode`.\n *\n * @param languageCode The language code in the ISO 639-1 format.\n * @param textDirection The language text direction. Automatically detected if omitted.\n */\nexport function stringifyLanguageAttribute( languageCode: string, textDirection?: LanguageDirection ): string {\n\ttextDirection = textDirection || getLanguageDirection( languageCode );\n\treturn `${ languageCode }:${ textDirection }`;\n}\n\n/**\n * Retrieves language properties converted to attribute value by the\n * {@link module:language/utils~stringifyLanguageAttribute stringifyLanguageAttribute} function.\n *\n * @param str The attribute value.\n * @returns The object with properties:\n * * languageCode - The language code in the ISO 639 format.\n * * textDirection - The language text direction.\n */\nexport function parseLanguageAttribute( str: string ): { languageCode: string; textDirection: string } {\n\tconst [ languageCode, textDirection ] = str.split( ':' );\n\n\treturn { languageCode, textDirection };\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguagecommand\n */\n\nimport type { LanguageDirection } from 'ckeditor5/src/utils.js';\nimport { Command } from 'ckeditor5/src/core.js';\nimport { stringifyLanguageAttribute } from './utils.js';\n\n/**\n * The text part language command plugin.\n */\nexport default class TextPartLanguageCommand extends Command {\n\t/**\n\t * If the selection starts in a language attribute, the value is set to\n\t * the value of that language in the following format:\n\t *\n\t * ```\n\t * <languageCode>:<textDirection>\n\t * ```\n\t *\n\t * * `languageCode` - The language code used for the `lang` attribute in the [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)\n\t * format.\n\t * * `textDirection` - One of the following values: `rtl` or `ltr`, indicating the reading direction of the language.\n\t *\n\t * See the {@link module:core/editor/editorconfig~LanguageConfig#textPartLanguage text part language configuration}\n\t * for more information about language properties.\n\t *\n\t * It is set to `false` otherwise.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: false | string;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.value = this._getValueFromFirstAllowedNode();\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'language' );\n\t}\n\n\t/**\n\t * Executes the command. Applies the attribute to the selection or removes it from the selection.\n\t *\n\t * If `languageCode` is set to `false` or a `null` value, it will remove attributes. Otherwise, it will set\n\t * the attribute in the `{@link #value value}` format.\n\t *\n\t * The execution result differs, depending on the {@link module:engine/model/document~Document#selection}:\n\t *\n\t * * If the selection is on a range, the command applies the attribute to all nodes in that range\n\t * (if they are allowed to have this attribute by the {@link module:engine/model/schema~Schema schema}).\n\t * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n\t * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy attributes from the selection).\n\t * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n\t * that the selection inherits all attributes from a node if it is in an empty node).\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.languageCode The language code to be applied to the model.\n\t * @param options.textDirection The language text direction.\n\t */\n\tpublic override execute(\n\t\t{ languageCode, textDirection }: { languageCode?: string | false; textDirection?: LanguageDirection } = {}\n\t): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\t\tconst selection = doc.selection;\n\n\t\tconst value = languageCode ? stringifyLanguageAttribute( languageCode, textDirection ) : false;\n\n\t\tmodel.change( writer => {\n\t\t\tif ( selection.isCollapsed ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.setSelectionAttribute( 'language', value );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeSelectionAttribute( 'language' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst ranges = model.schema.getValidRanges( selection.getRanges(), 'language' );\n\n\t\t\t\tfor ( const range of ranges ) {\n\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\twriter.setAttribute( 'language', value, range );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.removeAttribute( 'language', range );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the attribute value of the first node in the selection that allows the attribute.\n\t * For a collapsed selection it returns the selection attribute.\n\t *\n\t * @returns The attribute value.\n\t */\n\tprivate _getValueFromFirstAllowedNode(): false | string {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tif ( selection.isCollapsed ) {\n\t\t\treturn selection.getAttribute( 'language' ) as string || false;\n\t\t}\n\n\t\tfor ( const range of selection.getRanges() ) {\n\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\tif ( schema.checkAttribute( item, 'language' ) ) {\n\t\t\t\t\treturn item.getAttribute( 'language' ) as string || false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguageediting\n */\n\nimport type { ViewElement } from 'ckeditor5/src/engine.js';\nimport type { LanguageDirection } from 'ckeditor5/src/utils.js';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport TextPartLanguageCommand from './textpartlanguagecommand.js';\nimport { stringifyLanguageAttribute, parseLanguageAttribute } from './utils.js';\n\n/**\n * The text part language editing.\n *\n * Introduces the `'textPartLanguage'` command and the `'language'` model element attribute.\n */\nexport default class TextPartLanguageEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'TextPartLanguageEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Text part language options are only used to ensure that the feature works by default.\n\t\t// In the real usage it should be reconfigured by a developer. We are not providing\n\t\t// translations for `title` properties on purpose, as it's only an example configuration.\n\t\teditor.config.define( 'language', {\n\t\t\ttextPartLanguage: [\n\t\t\t\t{ title: 'Arabic', languageCode: 'ar' },\n\t\t\t\t{ title: 'French', languageCode: 'fr' },\n\t\t\t\t{ title: 'Spanish', languageCode: 'es' }\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.model.schema.extend( '$text', { allowAttributes: 'language' } );\n\t\teditor.model.schema.setAttributeProperties( 'language', {\n\t\t\tcopyOnEnter: true\n\t\t} );\n\n\t\tthis._defineConverters();\n\n\t\teditor.commands.add( 'textPartLanguage', new TextPartLanguageCommand( editor ) );\n\t}\n\n\t/**\n\t * @private\n\t */\n\tprivate _defineConverters(): void {\n\t\tconst conversion = this.editor.conversion;\n\n\t\tconversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tmodel: {\n\t\t\t\tkey: 'language',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\tconst languageCode = viewElement.getAttribute( 'lang' )!;\n\t\t\t\t\tconst textDirection = viewElement.getAttribute( 'dir' )! as LanguageDirection;\n\n\t\t\t\t\treturn stringifyLanguageAttribute( languageCode, textDirection );\n\t\t\t\t}\n\t\t\t},\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tattributes: { lang: /[\\s\\S]+/ }\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'language',\n\t\t\tview: ( attributeValue, { writer }, data ) => {\n\t\t\t\tif ( !attributeValue ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( !data.item.is( '$textProxy' ) && !data.item.is( 'documentSelection' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { languageCode, textDirection } = parseLanguageAttribute( attributeValue );\n\n\t\t\t\treturn writer.createAttributeElement( 'span', {\n\t\t\t\t\tlang: languageCode,\n\t\t\t\t\tdir: textDirection\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguageui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\taddListToDropdown,\n\tcreateDropdown,\n\tListSeparatorView,\n\tMenuBarMenuView,\n\tMenuBarMenuListView,\n\tMenuBarMenuListItemView,\n\tMenuBarMenuListItemButtonView,\n\tViewModel,\n\ttype ListDropdownItemDefinition\n} from 'ckeditor5/src/ui.js';\nimport { Collection, type LanguageDirection } from 'ckeditor5/src/utils.js';\nimport { stringifyLanguageAttribute } from './utils.js';\nimport type TextPartLanguageCommand from './textpartlanguagecommand.js';\n\n/**\n * The text part language UI plugin.\n *\n * It introduces the `'language'` dropdown.\n */\nexport default class TextPartLanguageUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'TextPartLanguageUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst defaultTitle = t( 'Choose language' );\n\t\tconst accessibleLabel = t( 'Language' );\n\n\t\t// Register UI component.\n\t\teditor.ui.componentFactory.add( 'textPartLanguage', locale => {\n\t\t\tconst { definitions, titles } = this._getItemMetadata();\n\t\t\tconst languageCommand = editor.commands.get( 'textPartLanguage' )!;\n\n\t\t\tconst dropdownView = createDropdown( locale );\n\t\t\taddListToDropdown( dropdownView, definitions, {\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tdropdownView.buttonView.set( {\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\tariaLabelledBy: undefined,\n\t\t\t\tisOn: false,\n\t\t\t\twithText: true,\n\t\t\t\ttooltip: accessibleLabel\n\t\t\t} );\n\n\t\t\tdropdownView.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'ck-text-fragment-language-dropdown'\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tdropdownView.bind( 'isEnabled' ).to( languageCommand, 'isEnabled' );\n\t\t\tdropdownView.buttonView.bind( 'label' ).to( languageCommand, 'value', value => {\n\t\t\t\treturn ( value && titles[ value ] ) || defaultTitle;\n\t\t\t} );\n\n\t\t\tdropdownView.buttonView.bind( 'ariaLabel' ).to( languageCommand, 'value', value => {\n\t\t\t\tconst selectedLanguageTitle = value && titles[ value ];\n\n\t\t\t\tif ( !selectedLanguageTitle ) {\n\t\t\t\t\treturn accessibleLabel;\n\t\t\t\t}\n\n\t\t\t\treturn `${ selectedLanguageTitle }, ${ accessibleLabel }`;\n\t\t\t} );\n\n\t\t\t// Execute command when an item from the dropdown is selected.\n\t\t\tthis.listenTo( dropdownView, 'execute', evt => {\n\t\t\t\tlanguageCommand.execute( {\n\t\t\t\t\tlanguageCode: ( evt.source as any ).languageCode,\n\t\t\t\t\ttextDirection: ( evt.source as any ).textDirection\n\t\t\t\t} );\n\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t} );\n\n\t\t// Register menu bar UI component.\n\t\teditor.ui.componentFactory.add( 'menuBar:textPartLanguage', locale => {\n\t\t\tconst { definitions } = this._getItemMetadata();\n\t\t\tconst languageCommand = editor.commands.get( 'textPartLanguage' )!;\n\n\t\t\tconst menuView = new MenuBarMenuView( locale );\n\n\t\t\tmenuView.buttonView.set( {\n\t\t\t\tlabel: accessibleLabel\n\t\t\t} );\n\n\t\t\tconst listView = new MenuBarMenuListView( locale );\n\n\t\t\tlistView.set( {\n\t\t\t\tariaLabel: t( 'Language' ),\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tfor ( const definition of definitions ) {\n\t\t\t\tif ( definition.type != 'button' ) {\n\t\t\t\t\tlistView.items.add( new ListSeparatorView( locale ) );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst listItemView = new MenuBarMenuListItemView( locale, menuView );\n\t\t\t\tconst buttonView = new MenuBarMenuListItemButtonView( locale );\n\n\t\t\t\tbuttonView.set( {\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\tisToggleable: true\n\t\t\t\t} );\n\n\t\t\t\tbuttonView.bind( ...Object.keys( definition.model ) as Array<keyof MenuBarMenuListItemButtonView> ).to( definition.model );\n\t\t\t\tbuttonView.delegate( 'execute' ).to( menuView );\n\n\t\t\t\tlistItemView.children.add( buttonView );\n\t\t\t\tlistView.items.add( listItemView );\n\t\t\t}\n\n\t\t\tmenuView.bind( 'isEnabled' ).to( languageCommand, 'isEnabled' );\n\t\t\tmenuView.panelView.children.add( listView );\n\t\t\tmenuView.on( 'execute', evt => {\n\t\t\t\tlanguageCommand.execute( {\n\t\t\t\t\tlanguageCode: ( evt.source as any ).languageCode as string,\n\t\t\t\t\ttextDirection: ( evt.source as any ).textDirection as LanguageDirection\n\t\t\t\t} );\n\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn menuView;\n\t\t} );\n\t}\n\n\t/**\n\t * Returns metadata for dropdown and menu items.\n\t */\n\tprivate _getItemMetadata(): ItemMetadata {\n\t\tconst editor = this.editor;\n\t\tconst itemDefinitions = new Collection<ListDropdownItemDefinition>();\n\t\tconst titles: Record<string, string> = {};\n\t\tconst languageCommand: TextPartLanguageCommand = editor.commands.get( 'textPartLanguage' )!;\n\t\tconst options = editor.config.get( 'language.textPartLanguage' )!;\n\t\tconst t = editor.locale.t;\n\t\tconst removeTitle = t( 'Remove language' );\n\n\t\t// Item definition with false `languageCode` will behave as remove lang button.\n\t\titemDefinitions.add( {\n\t\t\ttype: 'button',\n\t\t\tmodel: new ViewModel( {\n\t\t\t\tlabel: removeTitle,\n\t\t\t\tlanguageCode: false,\n\t\t\t\twithText: true\n\t\t\t} )\n\t\t} );\n\n\t\titemDefinitions.add( {\n\t\t\ttype: 'separator'\n\t\t} );\n\n\t\tfor ( const option of options ) {\n\t\t\tconst def = {\n\t\t\t\ttype: 'button' as const,\n\t\t\t\tmodel: new ViewModel( {\n\t\t\t\t\tlabel: option.title,\n\t\t\t\t\tlanguageCode: option.languageCode,\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\ttextDirection: option.textDirection,\n\t\t\t\t\twithText: true\n\t\t\t\t} )\n\t\t\t};\n\n\t\t\tconst language = stringifyLanguageAttribute( option.languageCode, option.textDirection );\n\n\t\t\tdef.model.bind( 'isOn' ).to( languageCommand, 'value', value => value === language );\n\n\t\t\titemDefinitions.add( def );\n\n\t\t\ttitles[ language ] = option.title;\n\t\t}\n\n\t\treturn {\n\t\t\tdefinitions: itemDefinitions,\n\t\t\ttitles\n\t\t};\n\t}\n}\n\ntype ItemMetadata = {\n\tdefinitions: Collection<ListDropdownItemDefinition>;\n\ttitles: Record<string, string>;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguage\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport TextPartLanguageEditing from './textpartlanguageediting.js';\nimport TextPartLanguageUI from './textpartlanguageui.js';\n\n/**\n * The text part language feature.\n *\n * This feature allows setting a language of the document's text part to support\n * [WCAG 3.1.2 Language of Parts](https://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html) specification.\n *\n * To change the editor's UI language, refer to the {@glink getting-started/setup/ui-language Setting the UI language} guide.\n *\n * For more information about this feature, check the {@glink api/language package page} as well as the {@glink features/language\n * Text part language} feature guide.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:language/textpartlanguageediting~TextPartLanguageEditing text part language editing feature}\n * and the {@link module:language/textpartlanguageui~TextPartLanguageUI text part language UI feature}.\n */\nexport default class TextPartLanguage extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ TextPartLanguageEditing, TextPartLanguageUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'TextPartLanguage' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["index.js","../src/utils.ts","../src/textpartlanguagecommand.ts","../src/textpartlanguageediting.ts","../src/textpartlanguageui.ts","../src/textpartlanguage.ts"],"names":["stringifyLanguageAttribute","languageCode","textDirection","getLanguageDirection","parseLanguageAttribute","str","split","TextPartLanguageCommand","Command","refresh","model","editor","doc","document","value","_getValueFromFirstAllowedNode","isEnabled","schema","checkAttributeInSelection","selection","execute","change","writer","isCollapsed","setSelectionAttribute","removeSelectionAttribute","ranges","getValidRanges","getRanges","range","setAttribute","removeAttribute","getAttribute","item","getItems","checkAttribute","TextPartLanguageEditing","Plugin","pluginName","isOfficialPlugin","config","define","textPartLanguage","title","init","extend","allowAttributes","setAttributeProperties","copyOnEnter","_defineConverters","commands","add","conversion","for","elementToAttribute","key","viewElement","view","name","attributes","lang","attributeToElement","attributeValue","data","is","createAttributeElement","dir","TextPartLanguageUI","t","defaultTitle","accessibleLabel","ui","componentFactory","locale","definitions","titles","_getItemMetadata","languageCommand","get","dropdownView","createDropdown","addListToDropdown","ariaLabel","role","buttonView","set","ariaLabelledBy","undefined","isOn","withText","tooltip","extendTemplate","class","bind","to","selectedLanguageTitle","listenTo","evt","source","editing","focus","menuView","MenuBarMenuView","label","listView","MenuBarMenuListView","definition","type","items","ListSeparatorView","listItemView","MenuBarMenuListItemView","MenuBarMenuListItemButtonView","isToggleable","Object","keys","delegate","children","panelView","on","itemDefinitions","Collection","options","removeTitle","ViewModel","option","def","language","TextPartLanguage","requires"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { getLanguageDirection, Collection } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { createDropdown, addListToDropdown, MenuBarMenuView, MenuBarMenuListView, ListSeparatorView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, ViewModel } from '@ckeditor/ckeditor5-ui/dist/index.js';\n\n/**\n * Returns the language attribute value in a human-readable text format:\n *\n * ```\n * <languageCode>:<textDirection>\n * ```\n *\n * * `languageCode` - The language code used for the `lang` attribute in the [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.\n * * `textDirection` - One of the following values: `rtl` or `ltr`, indicating the reading direction of the language.\n *\n * See the {@link module:core/editor/editorconfig~LanguageConfig#textPartLanguage text part language configuration}\n * for more information about language properties.\n *\n * If the `textDirection` argument is omitted, it will be automatically detected based on `languageCode`.\n *\n * @param languageCode The language code in the ISO 639-1 format.\n * @param textDirection The language text direction. Automatically detected if omitted.\n */ function stringifyLanguageAttribute(languageCode, textDirection) {\n textDirection = textDirection || getLanguageDirection(languageCode);\n return `${languageCode}:${textDirection}`;\n}\n/**\n * Retrieves language properties converted to attribute value by the\n * {@link module:language/utils~stringifyLanguageAttribute stringifyLanguageAttribute} function.\n *\n * @param str The attribute value.\n * @returns The object with properties:\n * * languageCode - The language code in the ISO 639 format.\n * * textDirection - The language text direction.\n */ function parseLanguageAttribute(str) {\n const [languageCode, textDirection] = str.split(':');\n return {\n languageCode,\n textDirection\n };\n}\n\n/**\n * The text part language command plugin.\n */ class TextPartLanguageCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = this._getValueFromFirstAllowedNode();\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'language');\n }\n /**\n\t * Executes the command. Applies the attribute to the selection or removes it from the selection.\n\t *\n\t * If `languageCode` is set to `false` or a `null` value, it will remove attributes. Otherwise, it will set\n\t * the attribute in the `{@link #value value}` format.\n\t *\n\t * The execution result differs, depending on the {@link module:engine/model/document~Document#selection}:\n\t *\n\t * * If the selection is on a range, the command applies the attribute to all nodes in that range\n\t * (if they are allowed to have this attribute by the {@link module:engine/model/schema~Schema schema}).\n\t * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n\t * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy attributes from the selection).\n\t * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n\t * that the selection inherits all attributes from a node if it is in an empty node).\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.languageCode The language code to be applied to the model.\n\t * @param options.textDirection The language text direction.\n\t */ execute({ languageCode, textDirection } = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const value = languageCode ? stringifyLanguageAttribute(languageCode, textDirection) : false;\n model.change((writer)=>{\n if (selection.isCollapsed) {\n if (value) {\n writer.setSelectionAttribute('language', value);\n } else {\n writer.removeSelectionAttribute('language');\n }\n } else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), 'language');\n for (const range of ranges){\n if (value) {\n writer.setAttribute('language', value, range);\n } else {\n writer.removeAttribute('language', range);\n }\n }\n }\n });\n }\n /**\n\t * Returns the attribute value of the first node in the selection that allows the attribute.\n\t * For a collapsed selection it returns the selection attribute.\n\t *\n\t * @returns The attribute value.\n\t */ _getValueFromFirstAllowedNode() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n if (selection.isCollapsed) {\n return selection.getAttribute('language') || false;\n }\n for (const range of selection.getRanges()){\n for (const item of range.getItems()){\n if (schema.checkAttribute(item, 'language')) {\n return item.getAttribute('language') || false;\n }\n }\n }\n return false;\n }\n}\n\n/**\n * The text part language editing.\n *\n * Introduces the `'textPartLanguage'` command and the `'language'` model element attribute.\n */ class TextPartLanguageEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'TextPartLanguageEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n // Text part language options are only used to ensure that the feature works by default.\n // In the real usage it should be reconfigured by a developer. We are not providing\n // translations for `title` properties on purpose, as it's only an example configuration.\n editor.config.define('language', {\n textPartLanguage: [\n {\n title: 'Arabic',\n languageCode: 'ar'\n },\n {\n title: 'French',\n languageCode: 'fr'\n },\n {\n title: 'Spanish',\n languageCode: 'es'\n }\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.model.schema.extend('$text', {\n allowAttributes: 'language'\n });\n editor.model.schema.setAttributeProperties('language', {\n copyOnEnter: true\n });\n this._defineConverters();\n editor.commands.add('textPartLanguage', new TextPartLanguageCommand(editor));\n }\n /**\n\t * @private\n\t */ _defineConverters() {\n const conversion = this.editor.conversion;\n conversion.for('upcast').elementToAttribute({\n model: {\n key: 'language',\n value: (viewElement)=>{\n const languageCode = viewElement.getAttribute('lang');\n const textDirection = viewElement.getAttribute('dir');\n return stringifyLanguageAttribute(languageCode, textDirection);\n }\n },\n view: {\n name: 'span',\n attributes: {\n lang: /[\\s\\S]+/\n }\n }\n });\n conversion.for('downcast').attributeToElement({\n model: 'language',\n view: (attributeValue, { writer }, data)=>{\n if (!attributeValue) {\n return;\n }\n if (!data.item.is('$textProxy') && !data.item.is('documentSelection')) {\n return;\n }\n const { languageCode, textDirection } = parseLanguageAttribute(attributeValue);\n return writer.createAttributeElement('span', {\n lang: languageCode,\n dir: textDirection\n });\n }\n });\n }\n}\n\n/**\n * The text part language UI plugin.\n *\n * It introduces the `'language'` dropdown.\n */ class TextPartLanguageUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'TextPartLanguageUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const t = editor.t;\n const defaultTitle = t('Choose language');\n const accessibleLabel = t('Language');\n // Register UI component.\n editor.ui.componentFactory.add('textPartLanguage', (locale)=>{\n const { definitions, titles } = this._getItemMetadata();\n const languageCommand = editor.commands.get('textPartLanguage');\n const dropdownView = createDropdown(locale);\n addListToDropdown(dropdownView, definitions, {\n ariaLabel: accessibleLabel,\n role: 'menu'\n });\n dropdownView.buttonView.set({\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined,\n isOn: false,\n withText: true,\n tooltip: accessibleLabel\n });\n dropdownView.extendTemplate({\n attributes: {\n class: [\n 'ck-text-fragment-language-dropdown'\n ]\n }\n });\n dropdownView.bind('isEnabled').to(languageCommand, 'isEnabled');\n dropdownView.buttonView.bind('label').to(languageCommand, 'value', (value)=>{\n return value && titles[value] || defaultTitle;\n });\n dropdownView.buttonView.bind('ariaLabel').to(languageCommand, 'value', (value)=>{\n const selectedLanguageTitle = value && titles[value];\n if (!selectedLanguageTitle) {\n return accessibleLabel;\n }\n return `${selectedLanguageTitle}, ${accessibleLabel}`;\n });\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', (evt)=>{\n languageCommand.execute({\n languageCode: evt.source.languageCode,\n textDirection: evt.source.textDirection\n });\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n // Register menu bar UI component.\n editor.ui.componentFactory.add('menuBar:textPartLanguage', (locale)=>{\n const { definitions } = this._getItemMetadata();\n const languageCommand = editor.commands.get('textPartLanguage');\n const menuView = new MenuBarMenuView(locale);\n menuView.buttonView.set({\n label: accessibleLabel\n });\n const listView = new MenuBarMenuListView(locale);\n listView.set({\n ariaLabel: t('Language'),\n role: 'menu'\n });\n for (const definition of definitions){\n if (definition.type != 'button') {\n listView.items.add(new ListSeparatorView(locale));\n continue;\n }\n const listItemView = new MenuBarMenuListItemView(locale, menuView);\n const buttonView = new MenuBarMenuListItemButtonView(locale);\n buttonView.set({\n role: 'menuitemradio',\n isToggleable: true\n });\n buttonView.bind(...Object.keys(definition.model)).to(definition.model);\n buttonView.delegate('execute').to(menuView);\n listItemView.children.add(buttonView);\n listView.items.add(listItemView);\n }\n menuView.bind('isEnabled').to(languageCommand, 'isEnabled');\n menuView.panelView.children.add(listView);\n menuView.on('execute', (evt)=>{\n languageCommand.execute({\n languageCode: evt.source.languageCode,\n textDirection: evt.source.textDirection\n });\n editor.editing.view.focus();\n });\n return menuView;\n });\n }\n /**\n\t * Returns metadata for dropdown and menu items.\n\t */ _getItemMetadata() {\n const editor = this.editor;\n const itemDefinitions = new Collection();\n const titles = {};\n const languageCommand = editor.commands.get('textPartLanguage');\n const options = editor.config.get('language.textPartLanguage');\n const t = editor.locale.t;\n const removeTitle = t('Remove language');\n // Item definition with false `languageCode` will behave as remove lang button.\n itemDefinitions.add({\n type: 'button',\n model: new ViewModel({\n label: removeTitle,\n languageCode: false,\n withText: true\n })\n });\n itemDefinitions.add({\n type: 'separator'\n });\n for (const option of options){\n const def = {\n type: 'button',\n model: new ViewModel({\n label: option.title,\n languageCode: option.languageCode,\n role: 'menuitemradio',\n textDirection: option.textDirection,\n withText: true\n })\n };\n const language = stringifyLanguageAttribute(option.languageCode, option.textDirection);\n def.model.bind('isOn').to(languageCommand, 'value', (value)=>value === language);\n itemDefinitions.add(def);\n titles[language] = option.title;\n }\n return {\n definitions: itemDefinitions,\n titles\n };\n }\n}\n\n/**\n * The text part language feature.\n *\n * This feature allows setting a language of the document's text part to support\n * [WCAG 3.1.2 Language of Parts](https://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html) specification.\n *\n * To change the editor's UI language, refer to the {@glink getting-started/setup/ui-language Setting the UI language} guide.\n *\n * For more information about this feature, check the {@glink api/language package page} as well as the {@glink features/language\n * Text part language} feature guide.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:language/textpartlanguageediting~TextPartLanguageEditing text part language editing feature}\n * and the {@link module:language/textpartlanguageui~TextPartLanguageUI text part language UI feature}.\n */ class TextPartLanguage extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n TextPartLanguageEditing,\n TextPartLanguageUI\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'TextPartLanguage';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { TextPartLanguage, TextPartLanguageEditing, TextPartLanguageUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/utils\n */\n\nimport { getLanguageDirection, type LanguageDirection } from 'ckeditor5/src/utils.js';\n\n/**\n * Returns the language attribute value in a human-readable text format:\n *\n * ```\n * <languageCode>:<textDirection>\n * ```\n *\n * * `languageCode` - The language code used for the `lang` attribute in the [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.\n * * `textDirection` - One of the following values: `rtl` or `ltr`, indicating the reading direction of the language.\n *\n * See the {@link module:core/editor/editorconfig~LanguageConfig#textPartLanguage text part language configuration}\n * for more information about language properties.\n *\n * If the `textDirection` argument is omitted, it will be automatically detected based on `languageCode`.\n *\n * @param languageCode The language code in the ISO 639-1 format.\n * @param textDirection The language text direction. Automatically detected if omitted.\n */\nexport function stringifyLanguageAttribute( languageCode: string, textDirection?: LanguageDirection ): string {\n\ttextDirection = textDirection || getLanguageDirection( languageCode );\n\treturn `${ languageCode }:${ textDirection }`;\n}\n\n/**\n * Retrieves language properties converted to attribute value by the\n * {@link module:language/utils~stringifyLanguageAttribute stringifyLanguageAttribute} function.\n *\n * @param str The attribute value.\n * @returns The object with properties:\n * * languageCode - The language code in the ISO 639 format.\n * * textDirection - The language text direction.\n */\nexport function parseLanguageAttribute( str: string ): { languageCode: string; textDirection: string } {\n\tconst [ languageCode, textDirection ] = str.split( ':' );\n\n\treturn { languageCode, textDirection };\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguagecommand\n */\n\nimport type { LanguageDirection } from 'ckeditor5/src/utils.js';\nimport { Command } from 'ckeditor5/src/core.js';\nimport { stringifyLanguageAttribute } from './utils.js';\n\n/**\n * The text part language command plugin.\n */\nexport default class TextPartLanguageCommand extends Command {\n\t/**\n\t * If the selection starts in a language attribute, the value is set to\n\t * the value of that language in the following format:\n\t *\n\t * ```\n\t * <languageCode>:<textDirection>\n\t * ```\n\t *\n\t * * `languageCode` - The language code used for the `lang` attribute in the [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)\n\t * format.\n\t * * `textDirection` - One of the following values: `rtl` or `ltr`, indicating the reading direction of the language.\n\t *\n\t * See the {@link module:core/editor/editorconfig~LanguageConfig#textPartLanguage text part language configuration}\n\t * for more information about language properties.\n\t *\n\t * It is set to `false` otherwise.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: false | string;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\n\t\tthis.value = this._getValueFromFirstAllowedNode();\n\t\tthis.isEnabled = model.schema.checkAttributeInSelection( doc.selection, 'language' );\n\t}\n\n\t/**\n\t * Executes the command. Applies the attribute to the selection or removes it from the selection.\n\t *\n\t * If `languageCode` is set to `false` or a `null` value, it will remove attributes. Otherwise, it will set\n\t * the attribute in the `{@link #value value}` format.\n\t *\n\t * The execution result differs, depending on the {@link module:engine/model/document~Document#selection}:\n\t *\n\t * * If the selection is on a range, the command applies the attribute to all nodes in that range\n\t * (if they are allowed to have this attribute by the {@link module:engine/model/schema~Schema schema}).\n\t * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n\t * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy attributes from the selection).\n\t * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n\t * that the selection inherits all attributes from a node if it is in an empty node).\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.languageCode The language code to be applied to the model.\n\t * @param options.textDirection The language text direction.\n\t */\n\tpublic override execute(\n\t\t{ languageCode, textDirection }: { languageCode?: string | false; textDirection?: LanguageDirection } = {}\n\t): void {\n\t\tconst model = this.editor.model;\n\t\tconst doc = model.document;\n\t\tconst selection = doc.selection;\n\n\t\tconst value = languageCode ? stringifyLanguageAttribute( languageCode, textDirection ) : false;\n\n\t\tmodel.change( writer => {\n\t\t\tif ( selection.isCollapsed ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.setSelectionAttribute( 'language', value );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeSelectionAttribute( 'language' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst ranges = model.schema.getValidRanges( selection.getRanges(), 'language' );\n\n\t\t\t\tfor ( const range of ranges ) {\n\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\twriter.setAttribute( 'language', value, range );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.removeAttribute( 'language', range );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the attribute value of the first node in the selection that allows the attribute.\n\t * For a collapsed selection it returns the selection attribute.\n\t *\n\t * @returns The attribute value.\n\t */\n\tprivate _getValueFromFirstAllowedNode(): false | string {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tif ( selection.isCollapsed ) {\n\t\t\treturn selection.getAttribute( 'language' ) as string || false;\n\t\t}\n\n\t\tfor ( const range of selection.getRanges() ) {\n\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\tif ( schema.checkAttribute( item, 'language' ) ) {\n\t\t\t\t\treturn item.getAttribute( 'language' ) as string || false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguageediting\n */\n\nimport type { ViewElement } from 'ckeditor5/src/engine.js';\nimport type { LanguageDirection } from 'ckeditor5/src/utils.js';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport TextPartLanguageCommand from './textpartlanguagecommand.js';\nimport { stringifyLanguageAttribute, parseLanguageAttribute } from './utils.js';\n\n/**\n * The text part language editing.\n *\n * Introduces the `'textPartLanguage'` command and the `'language'` model element attribute.\n */\nexport default class TextPartLanguageEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'TextPartLanguageEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\t// Text part language options are only used to ensure that the feature works by default.\n\t\t// In the real usage it should be reconfigured by a developer. We are not providing\n\t\t// translations for `title` properties on purpose, as it's only an example configuration.\n\t\teditor.config.define( 'language', {\n\t\t\ttextPartLanguage: [\n\t\t\t\t{ title: 'Arabic', languageCode: 'ar' },\n\t\t\t\t{ title: 'French', languageCode: 'fr' },\n\t\t\t\t{ title: 'Spanish', languageCode: 'es' }\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.model.schema.extend( '$text', { allowAttributes: 'language' } );\n\t\teditor.model.schema.setAttributeProperties( 'language', {\n\t\t\tcopyOnEnter: true\n\t\t} );\n\n\t\tthis._defineConverters();\n\n\t\teditor.commands.add( 'textPartLanguage', new TextPartLanguageCommand( editor ) );\n\t}\n\n\t/**\n\t * @private\n\t */\n\tprivate _defineConverters(): void {\n\t\tconst conversion = this.editor.conversion;\n\n\t\tconversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tmodel: {\n\t\t\t\tkey: 'language',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\tconst languageCode = viewElement.getAttribute( 'lang' )!;\n\t\t\t\t\tconst textDirection = viewElement.getAttribute( 'dir' )! as LanguageDirection;\n\n\t\t\t\t\treturn stringifyLanguageAttribute( languageCode, textDirection );\n\t\t\t\t}\n\t\t\t},\n\t\t\tview: {\n\t\t\t\tname: 'span',\n\t\t\t\tattributes: { lang: /[\\s\\S]+/ }\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'downcast' ).attributeToElement( {\n\t\t\tmodel: 'language',\n\t\t\tview: ( attributeValue, { writer }, data ) => {\n\t\t\t\tif ( !attributeValue ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( !data.item.is( '$textProxy' ) && !data.item.is( 'documentSelection' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { languageCode, textDirection } = parseLanguageAttribute( attributeValue );\n\n\t\t\t\treturn writer.createAttributeElement( 'span', {\n\t\t\t\t\tlang: languageCode,\n\t\t\t\t\tdir: textDirection\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguageui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\taddListToDropdown,\n\tcreateDropdown,\n\tListSeparatorView,\n\tMenuBarMenuView,\n\tMenuBarMenuListView,\n\tMenuBarMenuListItemView,\n\tMenuBarMenuListItemButtonView,\n\tViewModel,\n\ttype ListDropdownItemDefinition\n} from 'ckeditor5/src/ui.js';\nimport { Collection, type LanguageDirection } from 'ckeditor5/src/utils.js';\nimport { stringifyLanguageAttribute } from './utils.js';\nimport type TextPartLanguageCommand from './textpartlanguagecommand.js';\n\n/**\n * The text part language UI plugin.\n *\n * It introduces the `'language'` dropdown.\n */\nexport default class TextPartLanguageUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'TextPartLanguageUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst defaultTitle = t( 'Choose language' );\n\t\tconst accessibleLabel = t( 'Language' );\n\n\t\t// Register UI component.\n\t\teditor.ui.componentFactory.add( 'textPartLanguage', locale => {\n\t\t\tconst { definitions, titles } = this._getItemMetadata();\n\t\t\tconst languageCommand = editor.commands.get( 'textPartLanguage' )!;\n\n\t\t\tconst dropdownView = createDropdown( locale );\n\t\t\taddListToDropdown( dropdownView, definitions, {\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tdropdownView.buttonView.set( {\n\t\t\t\tariaLabel: accessibleLabel,\n\t\t\t\tariaLabelledBy: undefined,\n\t\t\t\tisOn: false,\n\t\t\t\twithText: true,\n\t\t\t\ttooltip: accessibleLabel\n\t\t\t} );\n\n\t\t\tdropdownView.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'ck-text-fragment-language-dropdown'\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tdropdownView.bind( 'isEnabled' ).to( languageCommand, 'isEnabled' );\n\t\t\tdropdownView.buttonView.bind( 'label' ).to( languageCommand, 'value', value => {\n\t\t\t\treturn ( value && titles[ value ] ) || defaultTitle;\n\t\t\t} );\n\n\t\t\tdropdownView.buttonView.bind( 'ariaLabel' ).to( languageCommand, 'value', value => {\n\t\t\t\tconst selectedLanguageTitle = value && titles[ value ];\n\n\t\t\t\tif ( !selectedLanguageTitle ) {\n\t\t\t\t\treturn accessibleLabel;\n\t\t\t\t}\n\n\t\t\t\treturn `${ selectedLanguageTitle }, ${ accessibleLabel }`;\n\t\t\t} );\n\n\t\t\t// Execute command when an item from the dropdown is selected.\n\t\t\tthis.listenTo( dropdownView, 'execute', evt => {\n\t\t\t\tlanguageCommand.execute( {\n\t\t\t\t\tlanguageCode: ( evt.source as any ).languageCode,\n\t\t\t\t\ttextDirection: ( evt.source as any ).textDirection\n\t\t\t\t} );\n\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn dropdownView;\n\t\t} );\n\n\t\t// Register menu bar UI component.\n\t\teditor.ui.componentFactory.add( 'menuBar:textPartLanguage', locale => {\n\t\t\tconst { definitions } = this._getItemMetadata();\n\t\t\tconst languageCommand = editor.commands.get( 'textPartLanguage' )!;\n\n\t\t\tconst menuView = new MenuBarMenuView( locale );\n\n\t\t\tmenuView.buttonView.set( {\n\t\t\t\tlabel: accessibleLabel\n\t\t\t} );\n\n\t\t\tconst listView = new MenuBarMenuListView( locale );\n\n\t\t\tlistView.set( {\n\t\t\t\tariaLabel: t( 'Language' ),\n\t\t\t\trole: 'menu'\n\t\t\t} );\n\n\t\t\tfor ( const definition of definitions ) {\n\t\t\t\tif ( definition.type != 'button' ) {\n\t\t\t\t\tlistView.items.add( new ListSeparatorView( locale ) );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst listItemView = new MenuBarMenuListItemView( locale, menuView );\n\t\t\t\tconst buttonView = new MenuBarMenuListItemButtonView( locale );\n\n\t\t\t\tbuttonView.set( {\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\tisToggleable: true\n\t\t\t\t} );\n\n\t\t\t\tbuttonView.bind( ...Object.keys( definition.model ) as Array<keyof MenuBarMenuListItemButtonView> ).to( definition.model );\n\t\t\t\tbuttonView.delegate( 'execute' ).to( menuView );\n\n\t\t\t\tlistItemView.children.add( buttonView );\n\t\t\t\tlistView.items.add( listItemView );\n\t\t\t}\n\n\t\t\tmenuView.bind( 'isEnabled' ).to( languageCommand, 'isEnabled' );\n\t\t\tmenuView.panelView.children.add( listView );\n\t\t\tmenuView.on( 'execute', evt => {\n\t\t\t\tlanguageCommand.execute( {\n\t\t\t\t\tlanguageCode: ( evt.source as any ).languageCode as string,\n\t\t\t\t\ttextDirection: ( evt.source as any ).textDirection as LanguageDirection\n\t\t\t\t} );\n\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn menuView;\n\t\t} );\n\t}\n\n\t/**\n\t * Returns metadata for dropdown and menu items.\n\t */\n\tprivate _getItemMetadata(): ItemMetadata {\n\t\tconst editor = this.editor;\n\t\tconst itemDefinitions = new Collection<ListDropdownItemDefinition>();\n\t\tconst titles: Record<string, string> = {};\n\t\tconst languageCommand: TextPartLanguageCommand = editor.commands.get( 'textPartLanguage' )!;\n\t\tconst options = editor.config.get( 'language.textPartLanguage' )!;\n\t\tconst t = editor.locale.t;\n\t\tconst removeTitle = t( 'Remove language' );\n\n\t\t// Item definition with false `languageCode` will behave as remove lang button.\n\t\titemDefinitions.add( {\n\t\t\ttype: 'button',\n\t\t\tmodel: new ViewModel( {\n\t\t\t\tlabel: removeTitle,\n\t\t\t\tlanguageCode: false,\n\t\t\t\twithText: true\n\t\t\t} )\n\t\t} );\n\n\t\titemDefinitions.add( {\n\t\t\ttype: 'separator'\n\t\t} );\n\n\t\tfor ( const option of options ) {\n\t\t\tconst def = {\n\t\t\t\ttype: 'button' as const,\n\t\t\t\tmodel: new ViewModel( {\n\t\t\t\t\tlabel: option.title,\n\t\t\t\t\tlanguageCode: option.languageCode,\n\t\t\t\t\trole: 'menuitemradio',\n\t\t\t\t\ttextDirection: option.textDirection,\n\t\t\t\t\twithText: true\n\t\t\t\t} )\n\t\t\t};\n\n\t\t\tconst language = stringifyLanguageAttribute( option.languageCode, option.textDirection );\n\n\t\t\tdef.model.bind( 'isOn' ).to( languageCommand, 'value', value => value === language );\n\n\t\t\titemDefinitions.add( def );\n\n\t\t\ttitles[ language ] = option.title;\n\t\t}\n\n\t\treturn {\n\t\t\tdefinitions: itemDefinitions,\n\t\t\ttitles\n\t\t};\n\t}\n}\n\ntype ItemMetadata = {\n\tdefinitions: Collection<ListDropdownItemDefinition>;\n\ttitles: Record<string, string>;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module language/textpartlanguage\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport TextPartLanguageEditing from './textpartlanguageediting.js';\nimport TextPartLanguageUI from './textpartlanguageui.js';\n\n/**\n * The text part language feature.\n *\n * This feature allows setting a language of the document's text part to support\n * [WCAG 3.1.2 Language of Parts](https://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html) specification.\n *\n * To change the editor's UI language, refer to the {@glink getting-started/setup/ui-language Setting the UI language} guide.\n *\n * For more information about this feature, check the {@glink api/language package page} as well as the {@glink features/language\n * Text part language} feature guide.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:language/textpartlanguageediting~TextPartLanguageEditing text part language editing feature}\n * and the {@link module:language/textpartlanguageui~TextPartLanguageUI text part language UI feature}.\n */\nexport default class TextPartLanguage extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ TextPartLanguageEditing, TextPartLanguageUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'TextPartLanguage' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-language",
|
|
3
|
-
"version": "45.2.1-alpha.
|
|
3
|
+
"version": "45.2.1-alpha.6",
|
|
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": "45.2.1-alpha.
|
|
17
|
-
"@ckeditor/ckeditor5-ui": "45.2.1-alpha.
|
|
18
|
-
"@ckeditor/ckeditor5-utils": "45.2.1-alpha.
|
|
19
|
-
"ckeditor5": "45.2.1-alpha.
|
|
16
|
+
"@ckeditor/ckeditor5-core": "45.2.1-alpha.6",
|
|
17
|
+
"@ckeditor/ckeditor5-ui": "45.2.1-alpha.6",
|
|
18
|
+
"@ckeditor/ckeditor5-utils": "45.2.1-alpha.6",
|
|
19
|
+
"ckeditor5": "45.2.1-alpha.6"
|
|
20
20
|
},
|
|
21
21
|
"author": "CKSource (http://cksource.com/)",
|
|
22
22
|
"license": "SEE LICENSE IN LICENSE.md",
|