@ckeditor/ckeditor5-indent 47.6.1 → 48.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ckeditor5-metadata.json +9 -21
- package/{src → dist}/indent.d.ts +1 -1
- package/{src → dist}/indentblock.d.ts +1 -1
- package/{src → dist}/indentblockcommand.d.ts +1 -1
- package/dist/indentcommandbehavior/resetindentusingclasses.d.ts +24 -0
- package/dist/indentcommandbehavior/resetindentusingoffset.d.ts +24 -0
- package/{src → dist}/indentediting.d.ts +1 -1
- package/{src → dist}/indentui.d.ts +1 -1
- package/dist/index.css +3 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +82 -114
- package/dist/index.js.map +1 -1
- package/{src → dist}/integrations/indentblocklistcommand.d.ts +1 -1
- package/{src → dist}/integrations/indentblocklistintegration.d.ts +4 -12
- package/{src → dist}/integrations/indentblocklistitemcommand.d.ts +1 -8
- package/package.json +25 -48
- package/build/indent.js +0 -5
- package/build/translations/af.js +0 -1
- package/build/translations/ar.js +0 -1
- package/build/translations/ast.js +0 -1
- package/build/translations/az.js +0 -1
- package/build/translations/be.js +0 -1
- package/build/translations/bg.js +0 -1
- package/build/translations/bn.js +0 -1
- package/build/translations/bs.js +0 -1
- package/build/translations/ca.js +0 -1
- package/build/translations/cs.js +0 -1
- package/build/translations/da.js +0 -1
- package/build/translations/de-ch.js +0 -1
- package/build/translations/de.js +0 -1
- package/build/translations/el.js +0 -1
- package/build/translations/en-au.js +0 -1
- package/build/translations/en-gb.js +0 -1
- package/build/translations/eo.js +0 -1
- package/build/translations/es-co.js +0 -1
- package/build/translations/es.js +0 -1
- package/build/translations/et.js +0 -1
- package/build/translations/eu.js +0 -1
- package/build/translations/fa.js +0 -1
- package/build/translations/fi.js +0 -1
- package/build/translations/fr.js +0 -1
- package/build/translations/gl.js +0 -1
- package/build/translations/gu.js +0 -1
- package/build/translations/he.js +0 -1
- package/build/translations/hi.js +0 -1
- package/build/translations/hr.js +0 -1
- package/build/translations/hu.js +0 -1
- package/build/translations/hy.js +0 -1
- package/build/translations/id.js +0 -1
- package/build/translations/it.js +0 -1
- package/build/translations/ja.js +0 -1
- package/build/translations/jv.js +0 -1
- package/build/translations/kk.js +0 -1
- package/build/translations/km.js +0 -1
- package/build/translations/kn.js +0 -1
- package/build/translations/ko.js +0 -1
- package/build/translations/ku.js +0 -1
- package/build/translations/lt.js +0 -1
- package/build/translations/lv.js +0 -1
- package/build/translations/ms.js +0 -1
- package/build/translations/nb.js +0 -1
- package/build/translations/ne.js +0 -1
- package/build/translations/nl.js +0 -1
- package/build/translations/no.js +0 -1
- package/build/translations/oc.js +0 -1
- package/build/translations/pl.js +0 -1
- package/build/translations/pt-br.js +0 -1
- package/build/translations/pt.js +0 -1
- package/build/translations/ro.js +0 -1
- package/build/translations/ru.js +0 -1
- package/build/translations/si.js +0 -1
- package/build/translations/sk.js +0 -1
- package/build/translations/sl.js +0 -1
- package/build/translations/sq.js +0 -1
- package/build/translations/sr-latn.js +0 -1
- package/build/translations/sr.js +0 -1
- package/build/translations/sv.js +0 -1
- package/build/translations/th.js +0 -1
- package/build/translations/ti.js +0 -1
- package/build/translations/tk.js +0 -1
- package/build/translations/tr.js +0 -1
- package/build/translations/tt.js +0 -1
- package/build/translations/ug.js +0 -1
- package/build/translations/uk.js +0 -1
- package/build/translations/ur.js +0 -1
- package/build/translations/uz.js +0 -1
- package/build/translations/vi.js +0 -1
- package/build/translations/zh-cn.js +0 -1
- package/build/translations/zh.js +0 -1
- package/lang/contexts.json +0 -4
- package/lang/translations/af.po +0 -20
- package/lang/translations/ar.po +0 -20
- package/lang/translations/ast.po +0 -20
- package/lang/translations/az.po +0 -20
- package/lang/translations/be.po +0 -20
- package/lang/translations/bg.po +0 -20
- package/lang/translations/bn.po +0 -20
- package/lang/translations/bs.po +0 -20
- package/lang/translations/ca.po +0 -20
- package/lang/translations/cs.po +0 -20
- package/lang/translations/da.po +0 -20
- package/lang/translations/de-ch.po +0 -20
- package/lang/translations/de.po +0 -20
- package/lang/translations/el.po +0 -20
- package/lang/translations/en-au.po +0 -20
- package/lang/translations/en-gb.po +0 -20
- package/lang/translations/en.po +0 -20
- package/lang/translations/eo.po +0 -20
- package/lang/translations/es-co.po +0 -20
- package/lang/translations/es.po +0 -20
- package/lang/translations/et.po +0 -20
- package/lang/translations/eu.po +0 -20
- package/lang/translations/fa.po +0 -20
- package/lang/translations/fi.po +0 -20
- package/lang/translations/fr.po +0 -20
- package/lang/translations/gl.po +0 -20
- package/lang/translations/gu.po +0 -20
- package/lang/translations/he.po +0 -20
- package/lang/translations/hi.po +0 -20
- package/lang/translations/hr.po +0 -20
- package/lang/translations/hu.po +0 -20
- package/lang/translations/hy.po +0 -20
- package/lang/translations/id.po +0 -20
- package/lang/translations/it.po +0 -20
- package/lang/translations/ja.po +0 -20
- package/lang/translations/jv.po +0 -20
- package/lang/translations/kk.po +0 -20
- package/lang/translations/km.po +0 -20
- package/lang/translations/kn.po +0 -20
- package/lang/translations/ko.po +0 -20
- package/lang/translations/ku.po +0 -20
- package/lang/translations/lt.po +0 -20
- package/lang/translations/lv.po +0 -20
- package/lang/translations/ms.po +0 -20
- package/lang/translations/nb.po +0 -20
- package/lang/translations/ne.po +0 -20
- package/lang/translations/nl.po +0 -20
- package/lang/translations/no.po +0 -20
- package/lang/translations/oc.po +0 -20
- package/lang/translations/pl.po +0 -20
- package/lang/translations/pt-br.po +0 -20
- package/lang/translations/pt.po +0 -20
- package/lang/translations/ro.po +0 -20
- package/lang/translations/ru.po +0 -20
- package/lang/translations/si.po +0 -20
- package/lang/translations/sk.po +0 -20
- package/lang/translations/sl.po +0 -20
- package/lang/translations/sq.po +0 -20
- package/lang/translations/sr-latn.po +0 -20
- package/lang/translations/sr.po +0 -20
- package/lang/translations/sv.po +0 -20
- package/lang/translations/th.po +0 -20
- package/lang/translations/ti.po +0 -20
- package/lang/translations/tk.po +0 -20
- package/lang/translations/tr.po +0 -20
- package/lang/translations/tt.po +0 -20
- package/lang/translations/ug.po +0 -20
- package/lang/translations/uk.po +0 -20
- package/lang/translations/ur.po +0 -20
- package/lang/translations/uz.po +0 -20
- package/lang/translations/vi.po +0 -20
- package/lang/translations/zh-cn.po +0 -20
- package/lang/translations/zh.po +0 -20
- package/src/augmentation.js +0 -5
- package/src/indent.js +0 -50
- package/src/indentblock.js +0 -160
- package/src/indentblockcommand.js +0 -102
- package/src/indentcommandbehavior/indentbehavior.js +0 -5
- package/src/indentcommandbehavior/indentusingclasses.js +0 -51
- package/src/indentcommandbehavior/indentusingoffset.js +0 -59
- package/src/indentconfig.js +0 -5
- package/src/indentediting.js +0 -38
- package/src/indentui.js +0 -79
- package/src/index.js +0 -18
- package/src/integrations/indentblocklistcommand.js +0 -108
- package/src/integrations/indentblocklistintegration.js +0 -328
- package/src/integrations/indentblocklistitemcommand.js +0 -96
- /package/{src → dist}/augmentation.d.ts +0 -0
- /package/{src → dist}/indentcommandbehavior/indentbehavior.d.ts +0 -0
- /package/{src → dist}/indentcommandbehavior/indentusingclasses.d.ts +0 -0
- /package/{src → dist}/indentcommandbehavior/indentusingoffset.d.ts +0 -0
- /package/{src → dist}/indentconfig.d.ts +0 -0
- /package/{src → dist}/index.d.ts +0 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js","../src/indentediting.ts","../src/indentui.ts","../src/indent.ts","../src/indentblockcommand.ts","../src/indentcommandbehavior/indentusingoffset.ts","../src/indentcommandbehavior/indentusingclasses.ts","../src/integrations/indentblocklistcommand.ts","../src/integrations/indentblocklistitemcommand.ts","../src/integrations/indentblocklistintegration.ts","../src/indentblock.ts"],"names":["IndentEditing","Plugin","pluginName","isOfficialPlugin","init","editor","commands","add","MultiCommand","IndentUI","locale","t","localizedIndentIcon","uiLanguageDirection","IconIndent","IconOutdent","localizedOutdentIcon","_defineButton","commandName","label","icon","ui","componentFactory","buttonView","_createButton","ButtonView","set","tooltip","MenuBarMenuListItemButtonView","ButtonClass","command","get","view","bind","to","listenTo","execute","editing","focus","Indent","requires","IndentBlockCommand","Command","_indentBehavior","indentBehavior","refresh","model","block","first","document","selection","getSelectedBlocks","_isIndentationChangeAllowed","isEnabled","checkEnabled","getAttribute","blocksToChange","_getBlocksToChange","change","writer","currentIndent","nextIndent","getNextIndent","setAttribute","removeAttribute","blocksInSelection","Array","from","filter","element","schema","checkAttribute","plugins","has","isForward","listUtils","isListItemBlock","IndentUsingOffset","offset","unit","config","direction","indentAttributeValue","currentOffset","parseFloat","isSameUnit","endsWith","undefined","nextOffset","offsetToSet","IndentUsingClasses","classes","currentIndex","indexOf","length","indexStep","nextIndex","nextIndexClamped","Math","min","IndentBlockListCommand","listItem","_getFirstListItemIfSelectionIsAtListStart","options","listItems","firstListOnly","blocks","_isListItemBlock","push","item","position","getFirstPosition","parent","isAtStart","isFirstListItemInList","IndentBlockListItemCommand","_getAffectedListItems","expandedBlocks","expandListBlocksToCompleteItems","hasAttribute","isNaN","IndentBlockListIntegration","_setupConversionUsingClassesForListBlock","_setupConversionUsingClassesForListItemBlock","data","addStyleProcessorRules","addMarginStylesRules","_setupConversionUsingOffsetForListBlock","_setupConversionUsingOffsetForListItemBlock","listEditing","on","evt","listNodes","node","previousNodeInList","ensureIndentValuesConsistency","return","shiftKey","stopPropagation","preventDefault","stop","context","priority","afterInit","extend","allowAttributes","setAttributeProperties","isFormatting","addAttributeCheck","last","clearBlockIndentAttributesOnListIndentChange","_evt","changedBlocks","indentListCommand","outdentListCommand","indentCommand","outdentCommand","registerChildCommand","conversion","marginProperty","contentLanguageDirection","for","dispatcher","listBlockIndentUpcastConverter","registerDowncastStrategy","scope","attributeName","setAttributeOnDowncast","value","setStyle","listBlockIndentUpcastConverterUsingClasses","addClass","conversionApi","consumable","modelRange","Object","assign","convertChildren","viewItem","modelCursor","viewClasses","getClassNames","matchedClass","find","cls","includes","applied","indentLevel","getItems","shallow","consume","marginValue","getStyle","styles","prevNodeIndentListValue","DEFAULT_ELEMENTS","IndentBlock","define","configuration","_setupConversionUsingClasses","_setupConversionUsingOffset","configuredElements","map","option","knownElements","forEach","elementName","isRegistered","attributeToAttribute","key","viewElement","is","modelAttributeValue","definition","values","className"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, MultiCommand, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconIndent, IconOutdent } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { addMarginStylesRules } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { _isListItemBlock } from '@ckeditor/ckeditor5-list/dist/index.js';\n\n/**\n * The indent editing feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` commands.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the\n * {@link module:indent/indent~Indent indent feature} API documentation.\n */ class IndentEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentEditing';\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 editor.commands.add('indent', new MultiCommand(editor));\n editor.commands.add('outdent', new MultiCommand(editor));\n }\n}\n\n/**\n * The indent UI feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` buttons.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in\n * the {@link module:indent/indent~Indent indent feature} API documentation.\n */ class IndentUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentUI';\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 locale = editor.locale;\n const t = editor.t;\n const localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? IconIndent : IconOutdent;\n const localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? IconOutdent : IconIndent;\n this._defineButton('indent', t('Increase indent'), localizedIndentIcon);\n this._defineButton('outdent', t('Decrease indent'), localizedOutdentIcon);\n }\n /**\n\t * Defines UI buttons for both toolbar and menu bar.\n\t */ _defineButton(commandName, label, icon) {\n const editor = this.editor;\n editor.ui.componentFactory.add(commandName, ()=>{\n const buttonView = this._createButton(ButtonView, commandName, label, icon);\n buttonView.set({\n tooltip: true\n });\n return buttonView;\n });\n editor.ui.componentFactory.add('menuBar:' + commandName, ()=>{\n return this._createButton(MenuBarMenuListItemButtonView, commandName, label, icon);\n });\n }\n /**\n\t * Creates a button to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass, commandName, label, icon) {\n const editor = this.editor;\n const command = editor.commands.get(commandName);\n const view = new ButtonClass(editor.locale);\n view.set({\n label,\n icon\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(commandName);\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The indent feature.\n *\n * This plugin acts as a single entry point plugin for other features that implement indentation of elements like lists or paragraphs.\n *\n * The compatible features are:\n *\n * * The {@link module:list/list~List} or {@link module:list/list/listediting~ListEditing} feature for list indentation.\n * * The {@link module:indent/indentblock~IndentBlock} feature for block indentation.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:indent/indentediting~IndentEditing indent editing feature}.\n * * The {@link module:indent/indentui~IndentUI indent UI feature}.\n *\n * The dependent plugins register the `'indent'` and `'outdent'` commands and introduce the `'indent'` and `'outdent'` buttons\n * that allow to increase or decrease text indentation of supported elements.\n *\n * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.\n */ class Indent extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Indent';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n IndentEditing,\n IndentUI\n ];\n }\n}\n\n/**\n * The indent block command.\n *\n * The command is registered by the {@link module:indent/indentblock~IndentBlock} as `'indentBlock'` for indenting blocks and\n * `'outdentBlock'` for outdenting blocks.\n *\n * To increase block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlock' );\n * ```\n *\n * To decrease block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlock' );\n * ```\n */ class IndentBlockCommand extends Command {\n /**\n\t * The command's indentation behavior.\n\t */ _indentBehavior;\n /**\n\t * Creates an instance of the command.\n\t */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const editor = this.editor;\n const model = editor.model;\n const block = first(model.document.selection.getSelectedBlocks());\n if (!block || !this._isIndentationChangeAllowed(block)) {\n this.isEnabled = false;\n return;\n }\n this.isEnabled = this._indentBehavior.checkEnabled(block.getAttribute('blockIndent'));\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n const model = this.editor.model;\n const blocksToChange = this._getBlocksToChange();\n model.change((writer)=>{\n for (const block of blocksToChange){\n const currentIndent = block.getAttribute('blockIndent');\n const nextIndent = this._indentBehavior.getNextIndent(currentIndent);\n if (nextIndent) {\n writer.setAttribute('blockIndent', nextIndent, block);\n } else {\n writer.removeAttribute('blockIndent', block);\n }\n }\n });\n }\n /**\n\t * Returns blocks from selection that should have blockIndent selection set.\n\t */ _getBlocksToChange() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const blocksInSelection = Array.from(selection.getSelectedBlocks());\n return blocksInSelection.filter((block)=>this._isIndentationChangeAllowed(block));\n }\n /**\n\t * Returns false if indentation cannot be applied, i.e.:\n\t * - for blocks disallowed by schema declaration\n\t * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.\n\t * Otherwise returns true.\n\t */ _isIndentationChangeAllowed(element) {\n const editor = this.editor;\n if (!editor.model.schema.checkAttribute(element, 'blockIndent')) {\n return false;\n }\n if (!editor.plugins.has('ListUtils')) {\n return true;\n }\n // Only forward indentation is disallowed in list items. This allows the user to outdent blocks that are already indented.\n if (!this._indentBehavior.isForward) {\n return true;\n }\n const listUtils = editor.plugins.get('ListUtils');\n return !listUtils.isListItemBlock(element);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, 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 * @module indent/indentcommandbehavior/indentusingoffset\n */ /**\n * The block indentation behavior that uses offsets to set indentation.\n *\n * @internal\n */ class IndentUsingOffset {\n /**\n\t * The direction of indentation.\n\t */ isForward;\n /**\n\t * The offset of the next indentation step.\n\t */ offset;\n /**\n\t * Indentation unit.\n\t */ unit;\n /**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.offset The offset of the next indentation step.\n\t * @param config.unit Indentation unit.\n\t */ constructor(config){\n this.isForward = config.direction === 'forward';\n this.offset = config.offset;\n this.unit = config.unit;\n }\n /**\n\t * @inheritDoc\n\t */ checkEnabled(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue || '0');\n // The command is always enabled for forward indentation.\n return this.isForward || currentOffset > 0;\n }\n /**\n\t * @inheritDoc\n\t */ getNextIndent(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue || '0');\n const isSameUnit = !indentAttributeValue || indentAttributeValue.endsWith(this.unit);\n if (currentOffset < 0) {\n return;\n }\n if (!isSameUnit) {\n return this.isForward ? this.offset + this.unit : undefined;\n }\n const nextOffset = this.isForward ? this.offset : -this.offset;\n const offsetToSet = currentOffset + nextOffset;\n return offsetToSet > 0 ? offsetToSet + this.unit : undefined;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, 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 * @module indent/indentcommandbehavior/indentusingclasses\n */ /**\n * The block indentation behavior that uses classes to set indentation.\n *\n * @internal\n */ class IndentUsingClasses {\n /**\n\t * The direction of indentation.\n\t */ isForward;\n /**\n\t * A list of classes used for indentation.\n\t */ classes;\n /**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.classes A list of classes used for indentation.\n\t */ constructor(config){\n this.isForward = config.direction === 'forward';\n this.classes = config.classes;\n }\n /**\n\t * @inheritDoc\n\t */ checkEnabled(indentAttributeValue) {\n const currentIndex = this.classes.indexOf(indentAttributeValue);\n if (this.isForward) {\n return currentIndex < this.classes.length - 1;\n } else {\n return currentIndex >= 0;\n }\n }\n /**\n\t * @inheritDoc\n\t */ getNextIndent(indentAttributeValue) {\n const currentIndex = this.classes.indexOf(indentAttributeValue);\n const indexStep = this.isForward ? 1 : -1;\n const nextIndex = currentIndex + indexStep;\n const nextIndexClamped = Math.min(nextIndex, this.classes.length - 1);\n return this.classes[nextIndexClamped];\n }\n}\n\n/**\n * The indent block list command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockList'` for indenting lists and `'outdentBlockList'` for outdenting lists.\n *\n * To increase/decrease block indentation of the list the selection must be at the start of the first top–level list item\n * in the list.\n *\n * To increase block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockList' );\n * ```\n *\n * To decrease block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockList' );\n * ```\n */ class IndentBlockListCommand extends Command {\n /**\n\t * The command's indentation behavior.\n\t */ _indentBehavior;\n /**\n\t * Creates an instance of the command.\n\t */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const listItem = this._getFirstListItemIfSelectionIsAtListStart(this.editor.model.document.selection);\n this.isEnabled = !!listItem && this._indentBehavior.checkEnabled(listItem.getAttribute('blockIndentList'));\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.firstListOnly When `true`, indentation is applied only to the first list at the beginning of the selection.\n\t * When `false` or omitted, indentation is applied to all lists of the selection.\n\t */ execute(options = {}) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n model.change((writer)=>{\n const listItem = this._getFirstListItemIfSelectionIsAtListStart(selection);\n const listItems = [];\n if (!options.firstListOnly) {\n const blocks = Array.from(selection.getSelectedBlocks());\n for (const block of blocks){\n if (_isListItemBlock(block) && block.getAttribute('listIndent') === 0 && model.schema.checkAttribute(block, 'blockIndentList')) {\n listItems.push(block);\n }\n }\n } else {\n listItems.push(listItem);\n }\n for (const item of listItems){\n const currentIndent = item.getAttribute('blockIndentList');\n const nextIndent = this._indentBehavior.getNextIndent(currentIndent);\n if (nextIndent) {\n writer.setAttribute('blockIndentList', nextIndent, item);\n } else {\n writer.removeAttribute('blockIndentList', item);\n }\n }\n });\n }\n /**\n\t * Returns the list item at the beginning of the current selection if it is the first top–level list item in the list.\n\t * Otherwise, returns `null`.\n\t */ _getFirstListItemIfSelectionIsAtListStart(selection) {\n const position = selection.getFirstPosition();\n const listUtils = this.editor.plugins.get('ListUtils');\n const parent = position.parent;\n const schema = this.editor.model.schema;\n if (position.isAtStart && _isListItemBlock(parent) && parent.getAttribute('listIndent') == 0 && schema.checkAttribute(parent, 'blockIndentList') && listUtils.isFirstListItemInList(parent)) {\n return parent;\n }\n return null;\n }\n}\n\n/**\n * The indent block list item command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockListItem'` for indenting list items and `'outdentBlockListItem'` for outdenting list items.\n *\n * It's only possible to reset the block indentation of a list item to `0`.\n * This means that if a list item has negative block indentation, the command will only allow forward indentation\n * to make it possible to reset it to `0` and if a list item has positive block indentation, the command\n * will only allow backward indentation to make it possible to reset it to `0`.\n *\n * To increase block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockListItem' );\n * ```\n *\n * To decrease block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockListItem' );\n * ```\n */ class IndentBlockListItemCommand extends Command {\n /**\n\t * The command's indentation behavior.\n\t */ _indentBehavior;\n /**\n\t * Creates an instance of the command.\n\t */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.isEnabled = this._getAffectedListItems().length > 0;\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n const editor = this.editor;\n const model = editor.model;\n model.change((writer)=>{\n for (const block of this._getAffectedListItems()){\n writer.removeAttribute('blockIndentListItem', block);\n }\n });\n }\n /**\n\t * Returns an array of list items which block indentation should be changed.\n\t */ _getAffectedListItems() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const listUtils = this.editor.plugins.get('ListUtils');\n const blocksInSelection = Array.from(selection.getSelectedBlocks());\n const expandedBlocks = listUtils.expandListBlocksToCompleteItems(blocksInSelection);\n return expandedBlocks.filter((block)=>this._isIndentationChangeAllowed(block));\n }\n /**\n\t * Returns `true` if changing the block indentation is allowed for the given list item.\n\t *\n\t * Indentation of a list item is only allowed if it moves toward zero. This means that:\n\t * - when currentIndent = 0, the command should be disabled\n\t * - when currentIndent < 0, only forward indentation should be allowed\n\t * - when currentIndent > 0, only backward indentation should be allowed\n\t *\n\t * For classes-based indentation, the command should be enabled if there is a class to be removed.\n\t */ _isIndentationChangeAllowed(element) {\n if (!element.hasAttribute('blockIndentListItem')) {\n return false;\n }\n const currentIndent = parseFloat(element.getAttribute('blockIndentListItem'));\n // Class based indent, allow only outdent.\n // TODO find a better way, probably use behavior to find out.\n if (isNaN(currentIndent)) {\n return !this._indentBehavior.isForward;\n }\n return this._indentBehavior.isForward && currentIndent < 0 || !this._indentBehavior.isForward && currentIndent > 0;\n }\n}\n\n/**\n * This integration enables using block indentation feature with lists.\n */ class IndentBlockListIntegration extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentBlockListIntegration';\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 if (!this.editor.plugins.has('ListEditing')) {\n return;\n }\n const config = editor.config.get('indentBlock');\n if (config.classes && config.classes.length) {\n this._setupConversionUsingClassesForListBlock(config.classes);\n this._setupConversionUsingClassesForListItemBlock(config.classes);\n editor.commands.add('indentBlockList', new IndentBlockListCommand(editor, new IndentUsingClasses({\n direction: 'forward',\n classes: config.classes\n })));\n editor.commands.add('outdentBlockList', new IndentBlockListCommand(editor, new IndentUsingClasses({\n direction: 'backward',\n classes: config.classes\n })));\n editor.commands.add('indentBlockListItem', new IndentBlockListItemCommand(editor, new IndentUsingClasses({\n direction: 'forward',\n classes: config.classes\n })));\n editor.commands.add('outdentBlockListItem', new IndentBlockListItemCommand(editor, new IndentUsingClasses({\n direction: 'backward',\n classes: config.classes\n })));\n } else {\n editor.data.addStyleProcessorRules(addMarginStylesRules);\n this._setupConversionUsingOffsetForListBlock();\n this._setupConversionUsingOffsetForListItemBlock();\n editor.commands.add('indentBlockList', new IndentBlockListCommand(editor, new IndentUsingOffset({\n direction: 'forward',\n offset: config.offset,\n unit: config.unit\n })));\n editor.commands.add('outdentBlockList', new IndentBlockListCommand(editor, new IndentUsingOffset({\n direction: 'backward',\n offset: config.offset,\n unit: config.unit\n })));\n editor.commands.add('indentBlockListItem', new IndentBlockListItemCommand(editor, new IndentUsingOffset({\n direction: 'forward',\n offset: config.offset,\n unit: config.unit\n })));\n editor.commands.add('outdentBlockListItem', new IndentBlockListItemCommand(editor, new IndentUsingOffset({\n direction: 'backward',\n offset: config.offset,\n unit: config.unit\n })));\n }\n const listEditing = editor.plugins.get('ListEditing');\n // Make sure that all items in a single list (items at the same level & listType) have the same blockIndentList attribute value.\n listEditing.on('postFixer', (evt, { listNodes, writer })=>{\n for (const { node, previousNodeInList } of listNodes){\n // This is a first item of a nested list.\n if (!previousNodeInList) {\n continue;\n }\n if (previousNodeInList.getAttribute('listType') != node.getAttribute('listType')) {\n continue;\n }\n if (ensureIndentValuesConsistency('blockIndentList', node, previousNodeInList, writer)) {\n evt.return = true;\n }\n if (previousNodeInList.getAttribute('listItemId') != node.getAttribute('listItemId')) {\n continue;\n }\n if (ensureIndentValuesConsistency('blockIndentListItem', node, previousNodeInList, writer)) {\n evt.return = true;\n }\n }\n });\n this.listenTo(editor.editing.view.document, 'tab', (evt, data)=>{\n const commandName = data.shiftKey ? 'outdentBlockList' : 'indentBlockList';\n const command = this.editor.commands.get(commandName);\n if (command.isEnabled) {\n editor.execute(commandName, {\n firstListOnly: true\n });\n data.stopPropagation();\n data.preventDefault();\n evt.stop();\n }\n }, {\n context: 'li',\n priority: 'high'\n });\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n const model = editor.model;\n const schema = model.schema;\n if (!editor.plugins.has('ListEditing')) {\n return;\n }\n // Schema registration.\n schema.extend('$listItem', {\n allowAttributes: [\n 'blockIndentList',\n 'blockIndentListItem'\n ]\n });\n schema.setAttributeProperties('blockIndentList', {\n isFormatting: true\n });\n schema.setAttributeProperties('blockIndentListItem', {\n isFormatting: true\n });\n model.schema.addAttributeCheck((context)=>{\n const item = context.last;\n if (!item.getAttribute('listItemId')) {\n return false;\n }\n }, 'blockIndentList');\n model.schema.addAttributeCheck((context)=>{\n const item = context.last;\n if (!item.getAttribute('listItemId')) {\n return false;\n }\n }, 'blockIndentListItem');\n // Clear blockIndentList and blockIndentListItem when list indent changes.\n const clearBlockIndentAttributesOnListIndentChange = (_evt, changedBlocks)=>{\n editor.model.change((writer)=>{\n for (const node of changedBlocks){\n if (node.hasAttribute('listItemId')) {\n if (node.hasAttribute('blockIndentList')) {\n writer.removeAttribute('blockIndentList', node);\n }\n if (node.hasAttribute('blockIndentListItem')) {\n writer.removeAttribute('blockIndentListItem', node);\n }\n }\n }\n });\n };\n const indentListCommand = editor.commands.get('indentList');\n const outdentListCommand = editor.commands.get('outdentList');\n if (indentListCommand) {\n this.listenTo(indentListCommand, 'afterExecute', clearBlockIndentAttributesOnListIndentChange);\n }\n if (outdentListCommand) {\n this.listenTo(outdentListCommand, 'afterExecute', clearBlockIndentAttributesOnListIndentChange);\n }\n // Register list block indent commands in multi command.\n const indentCommand = editor.commands.get('indent');\n const outdentCommand = editor.commands.get('outdent');\n indentCommand.registerChildCommand(editor.commands.get('indentBlockList'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlockList'));\n indentCommand.registerChildCommand(editor.commands.get('indentBlockListItem'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlockListItem'));\n }\n /**\n\t * Setups conversion for list block indent using offset indents.\n\t */ _setupConversionUsingOffsetForListBlock() {\n const editor = this.editor;\n const conversion = editor.conversion;\n const locale = editor.locale;\n const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n const listEditing = editor.plugins.get('ListEditing');\n conversion.for('upcast').add((dispatcher)=>{\n dispatcher.on('element:ol', listBlockIndentUpcastConverter('blockIndentList', marginProperty));\n dispatcher.on('element:ul', listBlockIndentUpcastConverter('blockIndentList', marginProperty));\n });\n listEditing.registerDowncastStrategy({\n scope: 'list',\n attributeName: 'blockIndentList',\n setAttributeOnDowncast (writer, value, element) {\n if (value) {\n writer.setStyle(marginProperty, value, element);\n }\n }\n });\n }\n /**\n\t * Setups conversion for list item block indent using offset indents.\n\t */ _setupConversionUsingOffsetForListItemBlock() {\n const editor = this.editor;\n const locale = editor.locale;\n const conversion = editor.conversion;\n const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n const listEditing = editor.plugins.get('ListEditing');\n conversion.for('upcast').add((dispatcher)=>{\n dispatcher.on('element:li', listBlockIndentUpcastConverter('blockIndentListItem', marginProperty), {\n priority: 'low'\n });\n });\n listEditing.registerDowncastStrategy({\n scope: 'item',\n attributeName: 'blockIndentListItem',\n setAttributeOnDowncast (writer, value, element) {\n if (value) {\n writer.setStyle(marginProperty, value, element);\n }\n }\n });\n }\n /**\n\t * Setups conversion for list block indent using classes.\n\t */ _setupConversionUsingClassesForListBlock(classes) {\n const editor = this.editor;\n const conversion = editor.conversion;\n const listEditing = editor.plugins.get('ListEditing');\n conversion.for('upcast').add((dispatcher)=>{\n dispatcher.on('element:ol', listBlockIndentUpcastConverterUsingClasses('blockIndentList', classes));\n dispatcher.on('element:ul', listBlockIndentUpcastConverterUsingClasses('blockIndentList', classes));\n });\n listEditing.registerDowncastStrategy({\n scope: 'list',\n attributeName: 'blockIndentList',\n setAttributeOnDowncast (writer, value, element) {\n if (value) {\n writer.addClass(value, element);\n }\n }\n });\n }\n /**\n\t * Setups conversion for list item block indent using classes.\n\t */ _setupConversionUsingClassesForListItemBlock(classes) {\n const editor = this.editor;\n const conversion = editor.conversion;\n const listEditing = editor.plugins.get('ListEditing');\n conversion.for('upcast').add((dispatcher)=>{\n dispatcher.on('element:li', listBlockIndentUpcastConverterUsingClasses('blockIndentListItem', classes), {\n priority: 'low'\n });\n });\n listEditing.registerDowncastStrategy({\n scope: 'item',\n attributeName: 'blockIndentListItem',\n setAttributeOnDowncast (writer, value, element) {\n if (value) {\n writer.addClass(value, element);\n }\n }\n });\n }\n}\nfunction listBlockIndentUpcastConverterUsingClasses(attributeName, classes) {\n return (evt, data, conversionApi)=>{\n const { writer, consumable } = conversionApi;\n if (!data.modelRange) {\n Object.assign(data, conversionApi.convertChildren(data.viewItem, data.modelCursor));\n }\n const viewClasses = Array.from(data.viewItem.getClassNames());\n const matchedClass = classes.find((cls)=>viewClasses.includes(cls));\n if (matchedClass === undefined) {\n return;\n }\n let applied = false;\n let indentLevel;\n for (const item of data.modelRange.getItems({\n shallow: true\n })){\n if (indentLevel === undefined) {\n indentLevel = item.getAttribute('listIndent');\n }\n if (item.hasAttribute(attributeName)) {\n continue;\n }\n if (item.getAttribute('listIndent') !== indentLevel) {\n continue;\n }\n writer.setAttribute(attributeName, matchedClass, item);\n applied = true;\n }\n if (applied) {\n consumable.consume(data.viewItem, {\n classes: matchedClass\n });\n }\n };\n}\nfunction listBlockIndentUpcastConverter(attributeName, marginProperty) {\n return (evt, data, conversionApi)=>{\n const { writer, consumable } = conversionApi;\n if (!data.modelRange) {\n Object.assign(data, conversionApi.convertChildren(data.viewItem, data.modelCursor));\n }\n const marginValue = data.viewItem.getStyle(marginProperty);\n let applied = false;\n let indentLevel;\n for (const item of data.modelRange.getItems({\n shallow: true\n })){\n if (indentLevel === undefined) {\n indentLevel = item.getAttribute('listIndent');\n }\n if (item.hasAttribute(attributeName)) {\n continue;\n }\n if (item.getAttribute('listIndent') !== indentLevel) {\n continue;\n }\n writer.setAttribute(attributeName, marginValue, item);\n applied = true;\n }\n if (applied) {\n consumable.consume(data.viewItem, {\n styles: marginProperty\n });\n }\n };\n}\nfunction ensureIndentValuesConsistency(attributeName, node, previousNodeInList, writer) {\n const prevNodeIndentListValue = previousNodeInList.getAttribute(attributeName);\n if (node.getAttribute(attributeName) === prevNodeIndentListValue) {\n return false;\n }\n if (prevNodeIndentListValue) {\n writer.setAttribute(attributeName, prevNodeIndentListValue, node);\n } else {\n writer.removeAttribute(attributeName, node);\n }\n return true;\n}\n\nconst DEFAULT_ELEMENTS = [\n 'paragraph',\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6'\n];\n/**\n * The block indentation feature.\n *\n * It registers the `'indentBlock'` and `'outdentBlock'` commands.\n *\n * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to\n * the `'indent'` and `'outdent'` commands.\n */ class IndentBlock extends Plugin {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('indentBlock', {\n offset: 40,\n unit: 'px'\n });\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentBlock';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n IndentBlockListIntegration\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const configuration = editor.config.get('indentBlock');\n if (configuration.classes && configuration.classes.length) {\n this._setupConversionUsingClasses(configuration.classes);\n editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingClasses({\n direction: 'forward',\n classes: configuration.classes\n })));\n editor.commands.add('outdentBlock', new IndentBlockCommand(editor, new IndentUsingClasses({\n direction: 'backward',\n classes: configuration.classes\n })));\n } else {\n editor.data.addStyleProcessorRules(addMarginStylesRules);\n this._setupConversionUsingOffset();\n editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({\n direction: 'forward',\n offset: configuration.offset,\n unit: configuration.unit\n })));\n editor.commands.add('outdentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({\n direction: 'backward',\n offset: configuration.offset,\n unit: configuration.unit\n })));\n }\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const indentCommand = editor.commands.get('indent');\n const outdentCommand = editor.commands.get('outdent');\n // Enable block indentation to heading configuration options. If it is not defined enable in paragraph and default headings.\n const options = editor.config.get('heading.options');\n const configuredElements = options && options.map((option)=>option.model);\n const knownElements = configuredElements || DEFAULT_ELEMENTS;\n knownElements.forEach((elementName)=>{\n if (schema.isRegistered(elementName)) {\n schema.extend(elementName, {\n allowAttributes: 'blockIndent'\n });\n }\n });\n schema.setAttributeProperties('blockIndent', {\n isFormatting: true\n });\n indentCommand.registerChildCommand(editor.commands.get('indentBlock'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlock'));\n }\n /**\n\t * Setups conversion for using offset indents.\n\t */ _setupConversionUsingOffset() {\n const conversion = this.editor.conversion;\n const locale = this.editor.locale;\n const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n conversion.for('upcast').attributeToAttribute({\n view: {\n styles: {\n [marginProperty]: /[\\s\\S]+/\n }\n },\n model: {\n key: 'blockIndent',\n value: (viewElement)=>{\n // Do not indent block elements in Document Lists. See https://github.com/ckeditor/ckeditor5/issues/12466.\n if (!viewElement.is('element', 'li')) {\n return viewElement.getStyle(marginProperty);\n }\n }\n }\n });\n conversion.for('downcast').attributeToAttribute({\n model: 'blockIndent',\n view: (modelAttributeValue)=>{\n return {\n key: 'style',\n value: {\n [marginProperty]: modelAttributeValue\n }\n };\n }\n });\n }\n /**\n\t * Setups conversion for using classes.\n\t */ _setupConversionUsingClasses(classes) {\n const definition = {\n model: {\n key: 'blockIndent',\n values: []\n },\n view: {}\n };\n for (const className of classes){\n definition.model.values.push(className);\n definition.view[className] = {\n key: 'class',\n value: [\n className\n ]\n };\n }\n this.editor.conversion.attributeToAttribute(definition);\n }\n}\n\nexport { Indent, IndentBlock, IndentBlockCommand, IndentBlockListCommand, IndentBlockListIntegration, IndentBlockListItemCommand, IndentEditing, IndentUI, IndentUsingClasses as _IndentUsingClasses, IndentUsingOffset as _IndentUsingOffset };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentediting\n */\n\nimport { Plugin, MultiCommand } from 'ckeditor5/src/core.js';\n\n/**\n * The indent editing feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` commands.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the\n * {@link module:indent/indent~Indent indent feature} API documentation.\n */\nexport class IndentEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentEditing' 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\n\t\teditor.commands.add( 'indent', new MultiCommand( editor ) );\n\t\teditor.commands.add( 'outdent', new MultiCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentui\n */\n\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { IconIndent, IconOutdent } from 'ckeditor5/src/icons.js';\n\n/**\n * The indent UI feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` buttons.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in\n * the {@link module:indent/indent~Indent indent feature} API documentation.\n */\nexport class IndentUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentUI' 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 locale = editor.locale;\n\t\tconst t = editor.t;\n\n\t\tconst localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? IconIndent : IconOutdent;\n\t\tconst localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? IconOutdent : IconIndent;\n\n\t\tthis._defineButton( 'indent', t( 'Increase indent' ), localizedIndentIcon );\n\t\tthis._defineButton( 'outdent', t( 'Decrease indent' ), localizedOutdentIcon );\n\t}\n\n\t/**\n\t * Defines UI buttons for both toolbar and menu bar.\n\t */\n\tprivate _defineButton( commandName: 'indent' | 'outdent', label: string, icon: string ): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( commandName, () => {\n\t\t\tconst buttonView = this._createButton( ButtonView, commandName, label, icon );\n\n\t\t\tbuttonView.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:' + commandName, () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView, commandName, label, icon );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>(\n\t\tButtonClass: T,\n\t\tcommandName: string,\n\t\tlabel: string,\n\t\ticon: string\n\t): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( commandName )!;\n\t\tconst view = new ButtonClass( editor.locale ) as InstanceType<T>;\n\n\t\tview.set( {\n\t\t\tlabel,\n\t\t\ticon\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( commandName );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indent\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport { IndentEditing } from './indentediting.js';\nimport { IndentUI } from './indentui.js';\n\n/**\n * The indent feature.\n *\n * This plugin acts as a single entry point plugin for other features that implement indentation of elements like lists or paragraphs.\n *\n * The compatible features are:\n *\n * * The {@link module:list/list~List} or {@link module:list/list/listediting~ListEditing} feature for list indentation.\n * * The {@link module:indent/indentblock~IndentBlock} feature for block indentation.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:indent/indentediting~IndentEditing indent editing feature}.\n * * The {@link module:indent/indentui~IndentUI indent UI feature}.\n *\n * The dependent plugins register the `'indent'` and `'outdent'` commands and introduce the `'indent'` and `'outdent'` buttons\n * that allow to increase or decrease text indentation of supported elements.\n *\n * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.\n */\nexport class Indent extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Indent' 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 static get requires() {\n\t\treturn [ IndentEditing, IndentUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentblockcommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { ModelElement } from 'ckeditor5/src/engine.js';\nimport type { ListUtils } from '@ckeditor/ckeditor5-list';\nimport { first } from 'ckeditor5/src/utils.js';\n\nimport type { IndentBehavior } from './indentcommandbehavior/indentbehavior.js';\n\n/**\n * The indent block command.\n *\n * The command is registered by the {@link module:indent/indentblock~IndentBlock} as `'indentBlock'` for indenting blocks and\n * `'outdentBlock'` for outdenting blocks.\n *\n * To increase block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlock' );\n * ```\n *\n * To decrease block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlock' );\n * ```\n */\nexport class IndentBlockCommand extends Command {\n\t/**\n\t * The command's indentation behavior.\n\t */\n\tprivate readonly _indentBehavior: IndentBehavior;\n\n\t/**\n\t * Creates an instance of the command.\n\t */\n\tconstructor( editor: Editor, indentBehavior: IndentBehavior ) {\n\t\tsuper( editor );\n\n\t\tthis._indentBehavior = indentBehavior;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\n\t\tconst block = first( model.document.selection.getSelectedBlocks() );\n\n\t\tif ( !block || !this._isIndentationChangeAllowed( block ) ) {\n\t\t\tthis.isEnabled = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isEnabled = this._indentBehavior.checkEnabled( block.getAttribute( 'blockIndent' ) as string );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\n\t\tconst blocksToChange = this._getBlocksToChange();\n\n\t\tmodel.change( writer => {\n\t\t\tfor ( const block of blocksToChange ) {\n\t\t\t\tconst currentIndent = block.getAttribute( 'blockIndent' ) as string;\n\n\t\t\t\tconst nextIndent = this._indentBehavior.getNextIndent( currentIndent );\n\n\t\t\t\tif ( nextIndent ) {\n\t\t\t\t\twriter.setAttribute( 'blockIndent', nextIndent, block );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'blockIndent', block );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns blocks from selection that should have blockIndent selection set.\n\t */\n\tprivate _getBlocksToChange(): Array<ModelElement> {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst blocksInSelection = Array.from( selection.getSelectedBlocks() );\n\n\t\treturn blocksInSelection.filter( block => this._isIndentationChangeAllowed( block ) );\n\t}\n\n\t/**\n\t * Returns false if indentation cannot be applied, i.e.:\n\t * - for blocks disallowed by schema declaration\n\t * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.\n\t * Otherwise returns true.\n\t */\n\tprivate _isIndentationChangeAllowed( element: ModelElement ): boolean {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.model.schema.checkAttribute( element, 'blockIndent' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !editor.plugins.has( 'ListUtils' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Only forward indentation is disallowed in list items. This allows the user to outdent blocks that are already indented.\n\t\tif ( !this._indentBehavior.isForward ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst listUtils: ListUtils = editor.plugins.get( 'ListUtils' );\n\n\t\treturn !listUtils.isListItemBlock( element );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentcommandbehavior/indentusingoffset\n */\n\nimport type { IndentBehavior } from './indentbehavior.js';\n\n/**\n * The block indentation behavior that uses offsets to set indentation.\n *\n * @internal\n */\nexport class IndentUsingOffset implements IndentBehavior {\n\t/**\n\t * The direction of indentation.\n\t */\n\tpublic isForward: boolean;\n\n\t/**\n\t * The offset of the next indentation step.\n\t */\n\tpublic offset: number;\n\n\t/**\n\t * Indentation unit.\n\t */\n\tpublic unit: string;\n\n\t/**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.offset The offset of the next indentation step.\n\t * @param config.unit Indentation unit.\n\t */\n\tconstructor( config: { direction: 'forward' | 'backward'; offset: number; unit: string } ) {\n\t\tthis.isForward = config.direction === 'forward';\n\t\tthis.offset = config.offset;\n\t\tthis.unit = config.unit;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic checkEnabled( indentAttributeValue: string ): boolean {\n\t\tconst currentOffset = parseFloat( indentAttributeValue || '0' );\n\n\t\t// The command is always enabled for forward indentation.\n\t\treturn this.isForward || currentOffset > 0;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic getNextIndent( indentAttributeValue: string ): string | undefined {\n\t\tconst currentOffset = parseFloat( indentAttributeValue || '0' );\n\t\tconst isSameUnit = !indentAttributeValue || indentAttributeValue.endsWith( this.unit );\n\n\t\tif ( currentOffset < 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !isSameUnit ) {\n\t\t\treturn this.isForward ? this.offset + this.unit : undefined;\n\t\t}\n\n\t\tconst nextOffset = this.isForward ? this.offset : -this.offset;\n\t\tconst offsetToSet = currentOffset + nextOffset;\n\n\t\treturn offsetToSet > 0 ? offsetToSet + this.unit : undefined;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentcommandbehavior/indentusingclasses\n */\n\nimport type { IndentBehavior } from './indentbehavior.js';\n\n/**\n * The block indentation behavior that uses classes to set indentation.\n *\n * @internal\n */\nexport class IndentUsingClasses implements IndentBehavior {\n\t/**\n\t * The direction of indentation.\n\t */\n\tpublic isForward: boolean;\n\n\t/**\n\t * A list of classes used for indentation.\n\t */\n\tpublic classes: Array<string>;\n\n\t/**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.classes A list of classes used for indentation.\n\t */\n\tconstructor( config: { direction: 'forward' | 'backward'; classes: Array<string> } ) {\n\t\tthis.isForward = config.direction === 'forward';\n\t\tthis.classes = config.classes!;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic checkEnabled( indentAttributeValue: string ): boolean {\n\t\tconst currentIndex = this.classes.indexOf( indentAttributeValue );\n\n\t\tif ( this.isForward ) {\n\t\t\treturn currentIndex < this.classes.length - 1;\n\t\t} else {\n\t\t\treturn currentIndex >= 0;\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic getNextIndent( indentAttributeValue: string ): string | undefined {\n\t\tconst currentIndex = this.classes.indexOf( indentAttributeValue );\n\t\tconst indexStep = this.isForward ? 1 : -1;\n\t\tconst nextIndex = currentIndex + indexStep;\n\t\tconst nextIndexClamped = Math.min( nextIndex, this.classes.length - 1 );\n\n\t\treturn this.classes[ nextIndexClamped ];\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/integrations/indentblocklistcommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { ModelDocumentSelection, ModelElement } from 'ckeditor5/src/engine.js';\nimport { _isListItemBlock } from '@ckeditor/ckeditor5-list';\n\nimport type { IndentBehavior } from '../indentcommandbehavior/indentbehavior.js';\n\n/**\n * The indent block list command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockList'` for indenting lists and `'outdentBlockList'` for outdenting lists.\n *\n * To increase/decrease block indentation of the list the selection must be at the start of the first top–level list item\n * in the list.\n *\n * To increase block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockList' );\n * ```\n *\n * To decrease block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockList' );\n * ```\n */\nexport class IndentBlockListCommand extends Command {\n\t/**\n\t * The command's indentation behavior.\n\t */\n\tprivate readonly _indentBehavior: IndentBehavior;\n\n\t/**\n\t * Creates an instance of the command.\n\t */\n\tconstructor( editor: Editor, indentBehavior: IndentBehavior ) {\n\t\tsuper( editor );\n\n\t\tthis._indentBehavior = indentBehavior;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst listItem = this._getFirstListItemIfSelectionIsAtListStart( this.editor.model.document.selection );\n\n\t\tthis.isEnabled = !!listItem && this._indentBehavior.checkEnabled( listItem.getAttribute( 'blockIndentList' ) as string );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.firstListOnly When `true`, indentation is applied only to the first list at the beginning of the selection.\n\t * When `false` or omitted, indentation is applied to all lists of the selection.\n\t */\n\tpublic override execute( options: { firstListOnly?: boolean } = {} ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tmodel.change( writer => {\n\t\t\tconst listItem = this._getFirstListItemIfSelectionIsAtListStart( selection )!;\n\t\t\tconst listItems = [];\n\n\t\t\tif ( !options.firstListOnly ) {\n\t\t\t\tconst blocks = Array.from( selection.getSelectedBlocks() );\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t_isListItemBlock( block ) &&\n\t\t\t\t\t\tblock.getAttribute( 'listIndent' ) === 0 &&\n\t\t\t\t\t\tmodel.schema.checkAttribute( block, 'blockIndentList' )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlistItems.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlistItems.push( listItem );\n\t\t\t}\n\n\t\t\tfor ( const item of listItems ) {\n\t\t\t\tconst currentIndent = item.getAttribute( 'blockIndentList' ) as string;\n\t\t\t\tconst nextIndent = this._indentBehavior.getNextIndent( currentIndent );\n\n\t\t\t\tif ( nextIndent ) {\n\t\t\t\t\twriter.setAttribute( 'blockIndentList', nextIndent, item );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'blockIndentList', item );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the list item at the beginning of the current selection if it is the first top–level list item in the list.\n\t * Otherwise, returns `null`.\n\t */\n\tprivate _getFirstListItemIfSelectionIsAtListStart( selection: ModelDocumentSelection ): ModelElement | null {\n\t\tconst position = selection.getFirstPosition()!;\n\t\tconst listUtils = this.editor.plugins.get( 'ListUtils' );\n\t\tconst parent = position.parent as ModelElement;\n\t\tconst schema = this.editor.model.schema;\n\n\t\tif (\n\t\t\tposition.isAtStart &&\n\t\t\t_isListItemBlock( parent ) &&\n\t\t\tparent.getAttribute( 'listIndent' ) == 0 &&\n\t\t\tschema.checkAttribute( parent, 'blockIndentList' ) &&\n\t\t\tlistUtils.isFirstListItemInList( parent )\n\t\t) {\n\t\t\treturn parent;\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/integrations/indentblocklistitemcommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { type ModelElement } from 'ckeditor5/src/engine.js';\nimport { type ListUtils } from '@ckeditor/ckeditor5-list';\n\nimport type { IndentBehavior } from '../indentcommandbehavior/indentbehavior.js';\n\n/**\n * The indent block list item command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockListItem'` for indenting list items and `'outdentBlockListItem'` for outdenting list items.\n *\n * It's only possible to reset the block indentation of a list item to `0`.\n * This means that if a list item has negative block indentation, the command will only allow forward indentation\n * to make it possible to reset it to `0` and if a list item has positive block indentation, the command\n * will only allow backward indentation to make it possible to reset it to `0`.\n *\n * To increase block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockListItem' );\n * ```\n *\n * To decrease block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockListItem' );\n * ```\n */\nexport class IndentBlockListItemCommand extends Command {\n\t/**\n\t * The command's indentation behavior.\n\t */\n\tprivate readonly _indentBehavior: IndentBehavior;\n\n\t/**\n\t * Creates an instance of the command.\n\t */\n\tconstructor( editor: Editor, indentBehavior: IndentBehavior ) {\n\t\tsuper( editor );\n\n\t\tthis._indentBehavior = indentBehavior;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.isEnabled = this._getAffectedListItems().length > 0;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tfor ( const block of this._getAffectedListItems() ) {\n\t\t\t\twriter.removeAttribute( 'blockIndentListItem', block );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns an array of list items which block indentation should be changed.\n\t */\n\tprivate _getAffectedListItems(): Array<ModelElement> {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst listUtils: ListUtils = this.editor.plugins.get( 'ListUtils' );\n\t\tconst blocksInSelection = Array.from( selection.getSelectedBlocks() );\n\t\tconst expandedBlocks = listUtils.expandListBlocksToCompleteItems( blocksInSelection );\n\n\t\treturn expandedBlocks.filter( block => this._isIndentationChangeAllowed( block ) );\n\t}\n\n\t/**\n\t * Returns `true` if changing the block indentation is allowed for the given list item.\n\t *\n\t * Indentation of a list item is only allowed if it moves toward zero. This means that:\n\t * - when currentIndent = 0, the command should be disabled\n\t * - when currentIndent < 0, only forward indentation should be allowed\n\t * - when currentIndent > 0, only backward indentation should be allowed\n\t *\n\t * For classes-based indentation, the command should be enabled if there is a class to be removed.\n\t */\n\tprivate _isIndentationChangeAllowed( element: ModelElement ): boolean {\n\t\tif ( !element.hasAttribute( 'blockIndentListItem' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst currentIndent = parseFloat( element.getAttribute( 'blockIndentListItem' ) as string );\n\n\t\t// Class based indent, allow only outdent.\n\t\t// TODO find a better way, probably use behavior to find out.\n\t\tif ( isNaN( currentIndent ) ) {\n\t\t\treturn !this._indentBehavior.isForward;\n\t\t}\n\n\t\treturn this._indentBehavior.isForward && currentIndent < 0 ||\n\t\t\t!this._indentBehavior.isForward && currentIndent > 0;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/integrations/indentblocklistintegration\n */\n\nimport {\n\ttype ListEditingPostFixerEvent,\n\ttype _ListIndentCommandAfterExecuteEvent\n} from '@ckeditor/ckeditor5-list';\n\nimport { type GetCallback } from 'ckeditor5/src/utils.js';\n\nimport {\n\ttype MultiCommand,\n\tPlugin\n} from 'ckeditor5/src/core.js';\n\nimport {\n\taddMarginStylesRules,\n\ttype ModelElement,\n\ttype UpcastElementEvent,\n\ttype ViewDocumentTabEvent\n} from 'ckeditor5/src/engine.js';\n\nimport { IndentBlockListCommand } from './indentblocklistcommand.js';\nimport { IndentBlockListItemCommand } from './indentblocklistitemcommand.js';\nimport { IndentUsingOffset } from '../indentcommandbehavior/indentusingoffset.js';\nimport { IndentUsingClasses } from '../indentcommandbehavior/indentusingclasses.js';\n\n/**\n * This integration enables using block indentation feature with lists.\n */\nexport class IndentBlockListIntegration extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentBlockListIntegration' 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\n\t\tif ( !this.editor.plugins.has( 'ListEditing' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst config = editor.config.get( 'indentBlock' )!;\n\n\t\tif ( config.classes && config.classes.length ) {\n\t\t\tthis._setupConversionUsingClassesForListBlock( config.classes! );\n\t\t\tthis._setupConversionUsingClassesForListItemBlock( config.classes! );\n\n\t\t\teditor.commands.add( 'indentBlockList', new IndentBlockListCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockList', new IndentBlockListCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'indentBlockListItem', new IndentBlockListItemCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockListItem', new IndentBlockListItemCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\t\t} else {\n\t\t\teditor.data.addStyleProcessorRules( addMarginStylesRules );\n\n\t\t\tthis._setupConversionUsingOffsetForListBlock();\n\t\t\tthis._setupConversionUsingOffsetForListItemBlock();\n\n\t\t\teditor.commands.add( 'indentBlockList', new IndentBlockListCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockList', new IndentBlockListCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'indentBlockListItem', new IndentBlockListItemCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockListItem', new IndentBlockListItemCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\t\t}\n\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\t// Make sure that all items in a single list (items at the same level & listType) have the same blockIndentList attribute value.\n\t\tlistEditing.on<ListEditingPostFixerEvent>( 'postFixer', ( evt, { listNodes, writer } ) => {\n\t\t\tfor ( const { node, previousNodeInList } of listNodes ) {\n\t\t\t\t// This is a first item of a nested list.\n\t\t\t\tif ( !previousNodeInList ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( previousNodeInList.getAttribute( 'listType' ) != node.getAttribute( 'listType' ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( ensureIndentValuesConsistency( 'blockIndentList', node, previousNodeInList, writer ) ) {\n\t\t\t\t\tevt.return = true;\n\t\t\t\t}\n\n\t\t\t\tif ( previousNodeInList.getAttribute( 'listItemId' ) != node.getAttribute( 'listItemId' ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( ensureIndentValuesConsistency( 'blockIndentListItem', node, previousNodeInList, writer ) ) {\n\t\t\t\t\tevt.return = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.listenTo<ViewDocumentTabEvent>( editor.editing.view.document, 'tab', ( evt, data ) => {\n\t\t\tconst commandName = data.shiftKey ? 'outdentBlockList' : 'indentBlockList';\n\t\t\tconst command = this.editor.commands.get( commandName )!;\n\n\t\t\tif ( command.isEnabled ) {\n\t\t\t\teditor.execute( commandName, { firstListOnly: true } );\n\n\t\t\t\tdata.stopPropagation();\n\t\t\t\tdata.preventDefault();\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { context: 'li', priority: 'high' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst schema = model.schema;\n\n\t\tif ( !editor.plugins.has( 'ListEditing' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Schema registration.\n\t\tschema.extend( '$listItem', { allowAttributes: [ 'blockIndentList', 'blockIndentListItem' ] } );\n\t\tschema.setAttributeProperties( 'blockIndentList', { isFormatting: true } );\n\t\tschema.setAttributeProperties( 'blockIndentListItem', { isFormatting: true } );\n\n\t\tmodel.schema.addAttributeCheck( context => {\n\t\t\tconst item = context.last;\n\n\t\t\tif ( !item.getAttribute( 'listItemId' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'blockIndentList' );\n\n\t\tmodel.schema.addAttributeCheck( context => {\n\t\t\tconst item = context.last;\n\n\t\t\tif ( !item.getAttribute( 'listItemId' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'blockIndentListItem' );\n\n\t\t// Clear blockIndentList and blockIndentListItem when list indent changes.\n\t\tconst clearBlockIndentAttributesOnListIndentChange = (\n\t\t\t_evt: unknown,\n\t\t\tchangedBlocks: Array<ModelElement>\n\t\t) => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tfor ( const node of changedBlocks ) {\n\t\t\t\t\tif ( node.hasAttribute( 'listItemId' ) ) {\n\t\t\t\t\t\tif ( node.hasAttribute( 'blockIndentList' ) ) {\n\t\t\t\t\t\t\twriter.removeAttribute( 'blockIndentList', node );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( node.hasAttribute( 'blockIndentListItem' ) ) {\n\t\t\t\t\t\t\twriter.removeAttribute( 'blockIndentListItem', node );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\tconst indentListCommand = editor.commands.get( 'indentList' );\n\t\tconst outdentListCommand = editor.commands.get( 'outdentList' );\n\n\t\tif ( indentListCommand ) {\n\t\t\tthis.listenTo<_ListIndentCommandAfterExecuteEvent>(\n\t\t\t\tindentListCommand,\n\t\t\t\t'afterExecute',\n\t\t\t\tclearBlockIndentAttributesOnListIndentChange\n\t\t\t);\n\t\t}\n\n\t\tif ( outdentListCommand ) {\n\t\t\tthis.listenTo<_ListIndentCommandAfterExecuteEvent>(\n\t\t\t\toutdentListCommand,\n\t\t\t\t'afterExecute',\n\t\t\t\tclearBlockIndentAttributesOnListIndentChange\n\t\t\t);\n\t\t}\n\n\t\t// Register list block indent commands in multi command.\n\t\tconst indentCommand = editor.commands.get( 'indent' ) as MultiCommand;\n\t\tconst outdentCommand = editor.commands.get( 'outdent' ) as MultiCommand;\n\n\t\tindentCommand.registerChildCommand( editor.commands.get( 'indentBlockList' )! );\n\t\toutdentCommand.registerChildCommand( editor.commands.get( 'outdentBlockList' )! );\n\n\t\tindentCommand.registerChildCommand( editor.commands.get( 'indentBlockListItem' )! );\n\t\toutdentCommand.registerChildCommand( editor.commands.get( 'outdentBlockListItem' )! );\n\t}\n\n\t/**\n\t * Setups conversion for list block indent using offset indents.\n\t */\n\tprivate _setupConversionUsingOffsetForListBlock(): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\t\tconst locale = editor.locale;\n\t\tconst marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\tconversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>( 'element:ol', listBlockIndentUpcastConverter( 'blockIndentList', marginProperty ) );\n\t\t\tdispatcher.on<UpcastElementEvent>( 'element:ul', listBlockIndentUpcastConverter( 'blockIndentList', marginProperty ) );\n\t\t} );\n\n\t\tlistEditing.registerDowncastStrategy( {\n\t\t\tscope: 'list',\n\t\t\tattributeName: 'blockIndentList',\n\n\t\t\tsetAttributeOnDowncast( writer, value, element ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.setStyle( marginProperty, value as string, element );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Setups conversion for list item block indent using offset indents.\n\t */\n\tprivate _setupConversionUsingOffsetForListItemBlock(): void {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst conversion = editor.conversion;\n\t\tconst marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\tconversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>(\n\t\t\t\t'element:li',\n\t\t\t\tlistBlockIndentUpcastConverter( 'blockIndentListItem', marginProperty ),\n\t\t\t\t{ priority: 'low' }\n\t\t\t);\n\t\t} );\n\n\t\tlistEditing.registerDowncastStrategy( {\n\t\t\tscope: 'item',\n\t\t\tattributeName: 'blockIndentListItem',\n\n\t\t\tsetAttributeOnDowncast( writer, value, element ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.setStyle( marginProperty, value as string, element );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Setups conversion for list block indent using classes.\n\t */\n\tprivate _setupConversionUsingClassesForListBlock( classes: Array<string> ): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\tconversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>(\n\t\t\t\t'element:ol',\n\t\t\t\tlistBlockIndentUpcastConverterUsingClasses( 'blockIndentList', classes )\n\t\t\t);\n\t\t\tdispatcher.on<UpcastElementEvent>(\n\t\t\t\t'element:ul',\n\t\t\t\tlistBlockIndentUpcastConverterUsingClasses( 'blockIndentList', classes )\n\t\t\t);\n\t\t} );\n\n\t\tlistEditing.registerDowncastStrategy( {\n\t\t\tscope: 'list',\n\t\t\tattributeName: 'blockIndentList',\n\n\t\t\tsetAttributeOnDowncast( writer, value, element ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.addClass( value as string, element );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Setups conversion for list item block indent using classes.\n\t */\n\tprivate _setupConversionUsingClassesForListItemBlock( classes: Array<string> ): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\tconversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>(\n\t\t\t\t'element:li',\n\t\t\t\tlistBlockIndentUpcastConverterUsingClasses( 'blockIndentListItem', classes ),\n\t\t\t\t{ priority: 'low' }\n\t\t\t);\n\t\t} );\n\n\t\tlistEditing.registerDowncastStrategy( {\n\t\t\tscope: 'item',\n\t\t\tattributeName: 'blockIndentListItem',\n\n\t\t\tsetAttributeOnDowncast( writer, value, element ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.addClass( value as string, element );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n\nfunction listBlockIndentUpcastConverterUsingClasses( attributeName: string, classes: Array<string> ): GetCallback<UpcastElementEvent> {\n\treturn ( evt, data, conversionApi ) => {\n\t\tconst { writer, consumable } = conversionApi;\n\n\t\tif ( !data.modelRange ) {\n\t\t\tObject.assign( data, conversionApi.convertChildren( data.viewItem, data.modelCursor ) );\n\t\t}\n\n\t\tconst viewClasses = Array.from( data.viewItem.getClassNames() );\n\t\tconst matchedClass = classes.find( cls => viewClasses.includes( cls ) );\n\n\t\tif ( matchedClass === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet applied = false;\n\t\tlet indentLevel;\n\n\t\tfor ( const item of data.modelRange!.getItems( { shallow: true } ) ) {\n\t\t\tif ( indentLevel === undefined ) {\n\t\t\t\tindentLevel = item.getAttribute( 'listIndent' );\n\t\t\t}\n\n\t\t\tif ( item.hasAttribute( attributeName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( item.getAttribute( 'listIndent' ) !== indentLevel ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\twriter.setAttribute( attributeName, matchedClass, item );\n\t\t\tapplied = true;\n\t\t}\n\n\t\tif ( applied ) {\n\t\t\tconsumable.consume( data.viewItem, { classes: matchedClass } );\n\t\t}\n\t};\n}\n\nfunction listBlockIndentUpcastConverter( attributeName: string, marginProperty: string ): GetCallback<UpcastElementEvent> {\n\treturn ( evt, data, conversionApi ) => {\n\t\tconst { writer, consumable } = conversionApi;\n\n\t\tif ( !data.modelRange ) {\n\t\t\tObject.assign( data, conversionApi.convertChildren( data.viewItem, data.modelCursor ) );\n\t\t}\n\n\t\tconst marginValue = data.viewItem.getStyle( marginProperty );\n\t\tlet applied = false;\n\t\tlet indentLevel;\n\n\t\tfor ( const item of data.modelRange!.getItems( { shallow: true } ) ) {\n\t\t\tif ( indentLevel === undefined ) {\n\t\t\t\tindentLevel = item.getAttribute( 'listIndent' );\n\t\t\t}\n\n\t\t\tif ( item.hasAttribute( attributeName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( item.getAttribute( 'listIndent' ) !== indentLevel ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\twriter.setAttribute( attributeName, marginValue, item );\n\t\t\tapplied = true;\n\t\t}\n\n\t\tif ( applied ) {\n\t\t\tconsumable.consume( data.viewItem, { styles: marginProperty } );\n\t\t}\n\t};\n}\n\nfunction ensureIndentValuesConsistency( attributeName: string, node: any, previousNodeInList: any, writer: any ): boolean {\n\tconst prevNodeIndentListValue = previousNodeInList.getAttribute( attributeName );\n\n\tif ( node.getAttribute( attributeName ) === prevNodeIndentListValue ) {\n\t\treturn false;\n\t}\n\n\tif ( prevNodeIndentListValue ) {\n\t\twriter.setAttribute( attributeName, prevNodeIndentListValue, node );\n\t} else {\n\t\twriter.removeAttribute( attributeName, node );\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentblock\n */\n\nimport { Plugin, type Editor, type MultiCommand } from 'ckeditor5/src/core.js';\nimport { addMarginStylesRules, type DowncastAttributeDescriptor, type ViewElement } from 'ckeditor5/src/engine.js';\n\nimport type { HeadingOption } from '@ckeditor/ckeditor5-heading';\nimport { IndentBlockCommand } from './indentblockcommand.js';\nimport { IndentUsingOffset } from './indentcommandbehavior/indentusingoffset.js';\nimport { IndentUsingClasses } from './indentcommandbehavior/indentusingclasses.js';\nimport { IndentBlockListIntegration } from './integrations/indentblocklistintegration.js';\n\nconst DEFAULT_ELEMENTS = [ 'paragraph', 'heading1', 'heading2', 'heading3', 'heading4', 'heading5', 'heading6' ];\n\n/**\n * The block indentation feature.\n *\n * It registers the `'indentBlock'` and `'outdentBlock'` commands.\n *\n * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to\n * the `'indent'` and `'outdent'` commands.\n */\nexport class IndentBlock extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'indentBlock', {\n\t\t\toffset: 40,\n\t\t\tunit: 'px'\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentBlock' 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 static get requires() {\n\t\treturn [ IndentBlockListIntegration ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst configuration = editor.config.get( 'indentBlock' )!;\n\n\t\tif ( configuration.classes && configuration.classes.length ) {\n\t\t\tthis._setupConversionUsingClasses( configuration.classes );\n\n\t\t\teditor.commands.add( 'indentBlock', new IndentBlockCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\tclasses: configuration.classes\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlock', new IndentBlockCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\tclasses: configuration.classes\n\t\t\t} ) ) );\n\t\t} else {\n\t\t\teditor.data.addStyleProcessorRules( addMarginStylesRules );\n\t\t\tthis._setupConversionUsingOffset();\n\n\t\t\teditor.commands.add( 'indentBlock', new IndentBlockCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\toffset: configuration.offset!,\n\t\t\t\tunit: configuration.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlock', new IndentBlockCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\toffset: configuration.offset!,\n\t\t\t\tunit: configuration.unit!\n\t\t\t} ) ) );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tconst indentCommand = editor.commands.get( 'indent' ) as MultiCommand;\n\t\tconst outdentCommand = editor.commands.get( 'outdent' ) as MultiCommand;\n\n\t\t// Enable block indentation to heading configuration options. If it is not defined enable in paragraph and default headings.\n\t\tconst options: Array<HeadingOption> = editor.config.get( 'heading.options' )!;\n\t\tconst configuredElements = options && options.map( option => option.model );\n\t\tconst knownElements = configuredElements || DEFAULT_ELEMENTS;\n\n\t\tknownElements.forEach( elementName => {\n\t\t\tif ( schema.isRegistered( elementName ) ) {\n\t\t\t\tschema.extend( elementName, { allowAttributes: 'blockIndent' } );\n\t\t\t}\n\t\t} );\n\n\t\tschema.setAttributeProperties( 'blockIndent', { isFormatting: true } );\n\n\t\tindentCommand.registerChildCommand( editor.commands.get( 'indentBlock' )! );\n\t\toutdentCommand.registerChildCommand( editor.commands.get( 'outdentBlock' )! );\n\t}\n\n\t/**\n\t * Setups conversion for using offset indents.\n\t */\n\tprivate _setupConversionUsingOffset(): void {\n\t\tconst conversion = this.editor.conversion;\n\t\tconst locale = this.editor.locale;\n\t\tconst marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n\n\t\tconversion.for( 'upcast' ).attributeToAttribute( {\n\t\t\tview: {\n\t\t\t\tstyles: {\n\t\t\t\t\t[ marginProperty ]: /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\tmodel: {\n\t\t\t\tkey: 'blockIndent',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\t// Do not indent block elements in Document Lists. See https://github.com/ckeditor/ckeditor5/issues/12466.\n\t\t\t\t\tif ( !viewElement.is( 'element', 'li' ) ) {\n\t\t\t\t\t\treturn viewElement.getStyle( marginProperty );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'downcast' ).attributeToAttribute( {\n\t\t\tmodel: 'blockIndent',\n\t\t\tview: modelAttributeValue => {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'style',\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\t[ marginProperty as string ]: modelAttributeValue as string\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 * Setups conversion for using classes.\n\t */\n\tprivate _setupConversionUsingClasses( classes: Array<string> ) {\n\t\tconst definition: {\n\t\t\tmodel: { key: string; values: Array<string> };\n\t\t\tview: Record<string, DowncastAttributeDescriptor>;\n\t\t} = {\n\t\t\tmodel: {\n\t\t\t\tkey: 'blockIndent',\n\t\t\t\tvalues: []\n\t\t\t},\n\t\t\tview: {}\n\t\t};\n\n\t\tfor ( const className of classes ) {\n\t\t\tdefinition.model.values.push( className );\n\t\t\tdefinition.view[ className ] = {\n\t\t\t\tkey: 'class',\n\t\t\t\tvalue: [ className ]\n\t\t\t};\n\t\t}\n\n\t\tthis.editor.conversion.attributeToAttribute( definition );\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["index.js","../src/indentediting.ts","../src/indentui.ts","../src/indent.ts","../src/indentblockcommand.ts","../src/indentcommandbehavior/indentusingoffset.ts","../src/indentcommandbehavior/indentusingclasses.ts","../src/integrations/indentblocklistcommand.ts","../src/integrations/indentblocklistitemcommand.ts","../src/indentcommandbehavior/resetindentusingoffset.ts","../src/indentcommandbehavior/resetindentusingclasses.ts","../src/integrations/indentblocklistintegration.ts","../src/indentblock.ts"],"names":["IndentEditing","Plugin","pluginName","isOfficialPlugin","init","editor","commands","add","MultiCommand","IndentUI","locale","t","localizedIndentIcon","uiLanguageDirection","IconIndent","IconOutdent","localizedOutdentIcon","_defineButton","commandName","label","icon","ui","componentFactory","buttonView","_createButton","ButtonView","set","tooltip","MenuBarMenuListItemButtonView","ButtonClass","command","get","view","bind","to","listenTo","execute","editing","focus","Indent","requires","IndentBlockCommand","Command","_indentBehavior","indentBehavior","refresh","model","block","first","document","selection","getSelectedBlocks","_isIndentationChangeAllowed","isEnabled","checkEnabled","getAttribute","blocksToChange","_getBlocksToChange","change","writer","currentIndent","nextIndent","getNextIndent","setAttribute","removeAttribute","blocksInSelection","Array","from","filter","element","schema","checkAttribute","plugins","has","isForward","listUtils","isListItemBlock","IndentUsingOffset","offset","unit","config","direction","indentAttributeValue","currentOffset","parseFloat","isSameUnit","endsWith","undefined","nextOffset","offsetToSet","IndentUsingClasses","classes","currentIndex","indexOf","length","indexStep","nextIndex","nextIndexClamped","Math","min","IndentBlockListCommand","listItem","_getFirstListItemIfSelectionIsAtListStart","options","listItems","firstListOnly","blocks","_isListItemBlock","push","expandedListItems","expandListBlocksToCompleteList","item","position","getFirstPosition","parent","isAtStart","isFirstListItemInList","IndentBlockListItemCommand","_getAffectedListItems","expandedBlocks","expandListBlocksToCompleteItems","hasAttribute","ResetIndentUsingOffset","ResetIndentUsingClasses","IndentBlockListIntegration","_setupConversionUsingClasses","data","addStyleProcessorRules","addMarginStylesRules","_setupConversionUsingOffset","listEditing","on","evt","listNodes","node","previousNodeInList","ensureIndentValuesConsistency","return","shiftKey","stopPropagation","preventDefault","stop","context","priority","afterInit","extend","allowAttributes","setAttributeProperties","isFormatting","addAttributeCheck","last","clearBlockIndentAttributesOnListIndentChange","_evt","changedBlocks","indentListCommand","outdentListCommand","indentCommand","outdentCommand","registerChildCommand","attributeName","scope","conversion","marginProperty","contentLanguageDirection","for","dispatcher","listBlockIndentUpcastConverter","getStyle","consumable","consume","styles","registerDowncastStrategy","setAttributeOnDowncast","value","setStyle","find","cls","hasClass","addClass","getValue","conversionApi","modelRange","Object","assign","convertChildren","viewItem","modelCursor","applied","indentLevel","getItems","shallow","prevNodeIndentListValue","DEFAULT_ELEMENTS","IndentBlock","define","configuration","configuredElements","map","option","knownElements","forEach","elementName","isRegistered","attributeToAttribute","key","viewElement","is","modelAttributeValue","definition","values","className"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, MultiCommand, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconIndent, IconOutdent } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { addMarginStylesRules } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { _isListItemBlock } from '@ckeditor/ckeditor5-list/dist/index.js';\n\n/**\n * The indent editing feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` commands.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the\n * {@link module:indent/indent~Indent indent feature} API documentation.\n */ class IndentEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentEditing';\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 editor.commands.add('indent', new MultiCommand(editor));\n editor.commands.add('outdent', new MultiCommand(editor));\n }\n}\n\n/**\n * The indent UI feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` buttons.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in\n * the {@link module:indent/indent~Indent indent feature} API documentation.\n */ class IndentUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentUI';\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 locale = editor.locale;\n const t = editor.t;\n const localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? IconIndent : IconOutdent;\n const localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? IconOutdent : IconIndent;\n this._defineButton('indent', t('Increase indent'), localizedIndentIcon);\n this._defineButton('outdent', t('Decrease indent'), localizedOutdentIcon);\n }\n /**\n\t * Defines UI buttons for both toolbar and menu bar.\n\t */ _defineButton(commandName, label, icon) {\n const editor = this.editor;\n editor.ui.componentFactory.add(commandName, ()=>{\n const buttonView = this._createButton(ButtonView, commandName, label, icon);\n buttonView.set({\n tooltip: true\n });\n return buttonView;\n });\n editor.ui.componentFactory.add('menuBar:' + commandName, ()=>{\n return this._createButton(MenuBarMenuListItemButtonView, commandName, label, icon);\n });\n }\n /**\n\t * Creates a button to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass, commandName, label, icon) {\n const editor = this.editor;\n const command = editor.commands.get(commandName);\n const view = new ButtonClass(editor.locale);\n view.set({\n label,\n icon\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute(commandName);\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The indent feature.\n *\n * This plugin acts as a single entry point plugin for other features that implement indentation of elements like lists or paragraphs.\n *\n * The compatible features are:\n *\n * * The {@link module:list/list~List} or {@link module:list/list/listediting~ListEditing} feature for list indentation.\n * * The {@link module:indent/indentblock~IndentBlock} feature for block indentation.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:indent/indentediting~IndentEditing indent editing feature}.\n * * The {@link module:indent/indentui~IndentUI indent UI feature}.\n *\n * The dependent plugins register the `'indent'` and `'outdent'` commands and introduce the `'indent'` and `'outdent'` buttons\n * that allow to increase or decrease text indentation of supported elements.\n *\n * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.\n */ class Indent extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Indent';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n IndentEditing,\n IndentUI\n ];\n }\n}\n\n/**\n * The indent block command.\n *\n * The command is registered by the {@link module:indent/indentblock~IndentBlock} as `'indentBlock'` for indenting blocks and\n * `'outdentBlock'` for outdenting blocks.\n *\n * To increase block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlock' );\n * ```\n *\n * To decrease block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlock' );\n * ```\n */ class IndentBlockCommand extends Command {\n /**\n\t * The command's indentation behavior.\n\t */ _indentBehavior;\n /**\n\t * Creates an instance of the command.\n\t */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const editor = this.editor;\n const model = editor.model;\n const block = first(model.document.selection.getSelectedBlocks());\n if (!block || !this._isIndentationChangeAllowed(block)) {\n this.isEnabled = false;\n return;\n }\n this.isEnabled = this._indentBehavior.checkEnabled(block.getAttribute('blockIndent'));\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n const model = this.editor.model;\n const blocksToChange = this._getBlocksToChange();\n model.change((writer)=>{\n for (const block of blocksToChange){\n const currentIndent = block.getAttribute('blockIndent');\n const nextIndent = this._indentBehavior.getNextIndent(currentIndent);\n if (nextIndent) {\n writer.setAttribute('blockIndent', nextIndent, block);\n } else {\n writer.removeAttribute('blockIndent', block);\n }\n }\n });\n }\n /**\n\t * Returns blocks from selection that should have blockIndent selection set.\n\t */ _getBlocksToChange() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const blocksInSelection = Array.from(selection.getSelectedBlocks());\n return blocksInSelection.filter((block)=>this._isIndentationChangeAllowed(block));\n }\n /**\n\t * Returns false if indentation cannot be applied, i.e.:\n\t * - for blocks disallowed by schema declaration\n\t * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.\n\t * Otherwise returns true.\n\t */ _isIndentationChangeAllowed(element) {\n const editor = this.editor;\n if (!editor.model.schema.checkAttribute(element, 'blockIndent')) {\n return false;\n }\n if (!editor.plugins.has('ListUtils')) {\n return true;\n }\n // Only forward indentation is disallowed in list items. This allows the user to outdent blocks that are already indented.\n if (!this._indentBehavior.isForward) {\n return true;\n }\n const listUtils = editor.plugins.get('ListUtils');\n return !listUtils.isListItemBlock(element);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, 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 * @module indent/indentcommandbehavior/indentusingoffset\n */ /**\n * The block indentation behavior that uses offsets to set indentation.\n *\n * @internal\n */ class IndentUsingOffset {\n /**\n\t * The direction of indentation.\n\t */ isForward;\n /**\n\t * The offset of the next indentation step.\n\t */ offset;\n /**\n\t * Indentation unit.\n\t */ unit;\n /**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.offset The offset of the next indentation step.\n\t * @param config.unit Indentation unit.\n\t */ constructor(config){\n this.isForward = config.direction === 'forward';\n this.offset = config.offset;\n this.unit = config.unit;\n }\n /**\n\t * @inheritDoc\n\t */ checkEnabled(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue || '0');\n // The command is always enabled for forward indentation.\n return this.isForward || currentOffset > 0;\n }\n /**\n\t * @inheritDoc\n\t */ getNextIndent(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue || '0');\n const isSameUnit = !indentAttributeValue || indentAttributeValue.endsWith(this.unit);\n if (currentOffset < 0) {\n return;\n }\n if (!isSameUnit) {\n return this.isForward ? this.offset + this.unit : undefined;\n }\n const nextOffset = this.isForward ? this.offset : -this.offset;\n const offsetToSet = currentOffset + nextOffset;\n return offsetToSet > 0 ? offsetToSet + this.unit : undefined;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2026, 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 * @module indent/indentcommandbehavior/indentusingclasses\n */ /**\n * The block indentation behavior that uses classes to set indentation.\n *\n * @internal\n */ class IndentUsingClasses {\n /**\n\t * The direction of indentation.\n\t */ isForward;\n /**\n\t * A list of classes used for indentation.\n\t */ classes;\n /**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.classes A list of classes used for indentation.\n\t */ constructor(config){\n this.isForward = config.direction === 'forward';\n this.classes = config.classes;\n }\n /**\n\t * @inheritDoc\n\t */ checkEnabled(indentAttributeValue) {\n const currentIndex = this.classes.indexOf(indentAttributeValue);\n if (this.isForward) {\n return currentIndex < this.classes.length - 1;\n } else {\n return currentIndex >= 0;\n }\n }\n /**\n\t * @inheritDoc\n\t */ getNextIndent(indentAttributeValue) {\n const currentIndex = this.classes.indexOf(indentAttributeValue);\n const indexStep = this.isForward ? 1 : -1;\n const nextIndex = currentIndex + indexStep;\n const nextIndexClamped = Math.min(nextIndex, this.classes.length - 1);\n return this.classes[nextIndexClamped];\n }\n}\n\n/**\n * The indent block list command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockList'` for indenting lists and `'outdentBlockList'` for outdenting lists.\n *\n * To increase/decrease block indentation of the list the selection must be at the start of the first top–level list item\n * in the list.\n *\n * To increase block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockList' );\n * ```\n *\n * To decrease block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockList' );\n * ```\n */ class IndentBlockListCommand extends Command {\n /**\n\t * The command's indentation behavior.\n\t */ _indentBehavior;\n /**\n\t * Creates an instance of the command.\n\t */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const listItem = this._getFirstListItemIfSelectionIsAtListStart(this.editor.model.document.selection);\n this.isEnabled = !!listItem && this._indentBehavior.checkEnabled(listItem.getAttribute('blockIndentList'));\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.firstListOnly When `true`, indentation is applied only to the first list at the beginning of the selection.\n\t * When `false` or omitted, indentation is applied to all lists of the selection.\n\t */ execute(options = {}) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const listUtils = editor.plugins.get('ListUtils');\n model.change((writer)=>{\n const listItem = this._getFirstListItemIfSelectionIsAtListStart(selection);\n const listItems = [];\n if (!options.firstListOnly) {\n const blocks = Array.from(selection.getSelectedBlocks());\n for (const block of blocks){\n if (_isListItemBlock(block) && block.getAttribute('listIndent') === 0 && model.schema.checkAttribute(block, 'blockIndentList')) {\n listItems.push(block);\n }\n }\n } else {\n listItems.push(listItem);\n }\n // Expand to all list items in the selected lists to process them together and reduce postfixer usage.\n const expandedListItems = listUtils.expandListBlocksToCompleteList(listItems);\n for (const item of expandedListItems){\n const currentIndent = item.getAttribute('blockIndentList');\n const nextIndent = this._indentBehavior.getNextIndent(currentIndent);\n if (nextIndent) {\n writer.setAttribute('blockIndentList', nextIndent, item);\n } else {\n writer.removeAttribute('blockIndentList', item);\n }\n }\n });\n }\n /**\n\t * Returns the list item at the beginning of the current selection if it is the first top–level list item in the list.\n\t * Otherwise, returns `null`.\n\t */ _getFirstListItemIfSelectionIsAtListStart(selection) {\n const position = selection.getFirstPosition();\n const listUtils = this.editor.plugins.get('ListUtils');\n const parent = position.parent;\n const schema = this.editor.model.schema;\n if (position.isAtStart && _isListItemBlock(parent) && parent.getAttribute('listIndent') == 0 && schema.checkAttribute(parent, 'blockIndentList') && listUtils.isFirstListItemInList(parent)) {\n return parent;\n }\n return null;\n }\n}\n\n/**\n * The indent block list item command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockListItem'` for indenting list items and `'outdentBlockListItem'` for outdenting list items.\n *\n * It's only possible to reset the block indentation of a list item to `0`.\n * This means that if a list item has negative block indentation, the command will only allow forward indentation\n * to make it possible to reset it to `0` and if a list item has positive block indentation, the command\n * will only allow backward indentation to make it possible to reset it to `0`.\n *\n * To increase block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockListItem' );\n * ```\n *\n * To decrease block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockListItem' );\n * ```\n */ class IndentBlockListItemCommand extends Command {\n /**\n\t * The command's indentation behavior.\n\t */ _indentBehavior;\n /**\n\t * Creates an instance of the command.\n\t */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.isEnabled = this._getAffectedListItems().length > 0;\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n const editor = this.editor;\n const model = editor.model;\n model.change((writer)=>{\n for (const block of this._getAffectedListItems()){\n writer.removeAttribute('blockIndentListItem', block);\n }\n });\n }\n /**\n\t * Returns an array of list items which block indentation should be changed.\n\t */ _getAffectedListItems() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const listUtils = this.editor.plugins.get('ListUtils');\n const blocksInSelection = Array.from(selection.getSelectedBlocks());\n const expandedBlocks = listUtils.expandListBlocksToCompleteItems(blocksInSelection);\n return expandedBlocks.filter((block)=>this._isIndentationChangeAllowed(block));\n }\n /**\n\t * Returns `true` if changing the block indentation is allowed for the given list item.\n\t */ _isIndentationChangeAllowed(element) {\n if (!element.hasAttribute('blockIndentListItem')) {\n return false;\n }\n return this._indentBehavior.checkEnabled(element.getAttribute('blockIndentListItem'));\n }\n}\n\n/**\n * The list item block indentation behavior that resets offset-based indentation toward zero.\n *\n * Unlike {@link module:indent/indentcommandbehavior/indentusingoffset~IndentUsingOffset}, this behavior\n * is enabled only when the current indentation value can be moved toward zero:\n * - for forward direction only when the current offset is negative,\n * - for backward direction only when the current offset is positive.\n *\n * @internal\n */ class ResetIndentUsingOffset extends IndentUsingOffset {\n /**\n\t * @inheritDoc\n\t */ checkEnabled(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue);\n return this.isForward && currentOffset < 0 || !this.isForward && currentOffset > 0;\n }\n}\n\n/**\n * The list item block indentation behavior that resets class-based indentation toward zero.\n *\n * Unlike {@link module:indent/indentcommandbehavior/indentusingclasses~IndentUsingClasses}, this behavior\n * is enabled only in the backward (outdent) direction when a class-based indentation is set.\n * This is because class-based indentation values cannot be negative, so the only way to reset\n * them to zero is to remove the class by outdenting.\n *\n * @internal\n */ class ResetIndentUsingClasses extends IndentUsingClasses {\n /**\n\t * @inheritDoc\n\t */ checkEnabled(indentAttributeValue) {\n return !this.isForward && !!indentAttributeValue;\n }\n}\n\n/**\n * This integration enables using block indentation feature with lists.\n */ class IndentBlockListIntegration extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentBlockListIntegration';\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 if (!this.editor.plugins.has('ListEditing')) {\n return;\n }\n const config = editor.config.get('indentBlock');\n if (config.classes && config.classes.length) {\n this._setupConversionUsingClasses(config.classes, 'ol', 'blockIndentList', 'list');\n this._setupConversionUsingClasses(config.classes, 'ul', 'blockIndentList', 'list');\n this._setupConversionUsingClasses(config.classes, 'li', 'blockIndentListItem', 'item');\n editor.commands.add('indentBlockList', new IndentBlockListCommand(editor, new IndentUsingClasses({\n direction: 'forward',\n classes: config.classes\n })));\n editor.commands.add('outdentBlockList', new IndentBlockListCommand(editor, new IndentUsingClasses({\n direction: 'backward',\n classes: config.classes\n })));\n editor.commands.add('indentBlockListItem', new IndentBlockListItemCommand(editor, new ResetIndentUsingClasses({\n direction: 'forward',\n classes: config.classes\n })));\n editor.commands.add('outdentBlockListItem', new IndentBlockListItemCommand(editor, new ResetIndentUsingClasses({\n direction: 'backward',\n classes: config.classes\n })));\n } else {\n editor.data.addStyleProcessorRules(addMarginStylesRules);\n this._setupConversionUsingOffset('ol', 'blockIndentList', 'list');\n this._setupConversionUsingOffset('ul', 'blockIndentList', 'list');\n this._setupConversionUsingOffset('li', 'blockIndentListItem', 'item');\n editor.commands.add('indentBlockList', new IndentBlockListCommand(editor, new IndentUsingOffset({\n direction: 'forward',\n offset: config.offset,\n unit: config.unit\n })));\n editor.commands.add('outdentBlockList', new IndentBlockListCommand(editor, new IndentUsingOffset({\n direction: 'backward',\n offset: config.offset,\n unit: config.unit\n })));\n editor.commands.add('indentBlockListItem', new IndentBlockListItemCommand(editor, new ResetIndentUsingOffset({\n direction: 'forward',\n offset: config.offset,\n unit: config.unit\n })));\n editor.commands.add('outdentBlockListItem', new IndentBlockListItemCommand(editor, new ResetIndentUsingOffset({\n direction: 'backward',\n offset: config.offset,\n unit: config.unit\n })));\n }\n const listEditing = editor.plugins.get('ListEditing');\n // Make sure that all items in a single list (items at the same level & listType) have the same blockIndentList attribute value.\n // Also make sure that all block in a single list item (blocks with the same listItemId) have the same\n // blockIndentListItem attribute value.\n listEditing.on('postFixer', (evt, { listNodes, writer })=>{\n for (const { node, previousNodeInList } of listNodes){\n // This is a first item of a nested list.\n if (!previousNodeInList) {\n continue;\n }\n if (previousNodeInList.getAttribute('listType') != node.getAttribute('listType')) {\n continue;\n }\n if (ensureIndentValuesConsistency('blockIndentList', node, previousNodeInList, writer)) {\n evt.return = true;\n }\n if (previousNodeInList.getAttribute('listItemId') != node.getAttribute('listItemId')) {\n continue;\n }\n if (ensureIndentValuesConsistency('blockIndentListItem', node, previousNodeInList, writer)) {\n evt.return = true;\n }\n }\n });\n this.listenTo(editor.editing.view.document, 'tab', (evt, data)=>{\n const commandName = data.shiftKey ? 'outdentBlockList' : 'indentBlockList';\n const command = this.editor.commands.get(commandName);\n if (command.isEnabled) {\n editor.execute(commandName, {\n firstListOnly: true\n });\n data.stopPropagation();\n data.preventDefault();\n evt.stop();\n }\n }, {\n context: 'li',\n priority: 'high'\n });\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n const model = editor.model;\n const schema = model.schema;\n if (!editor.plugins.has('ListEditing')) {\n return;\n }\n // Schema registration.\n schema.extend('$listItem', {\n allowAttributes: [\n 'blockIndentList',\n 'blockIndentListItem'\n ]\n });\n schema.setAttributeProperties('blockIndentList', {\n isFormatting: true\n });\n schema.setAttributeProperties('blockIndentListItem', {\n isFormatting: true\n });\n model.schema.addAttributeCheck((context)=>{\n const item = context.last;\n if (!item.getAttribute('listItemId')) {\n return false;\n }\n }, 'blockIndentList');\n model.schema.addAttributeCheck((context)=>{\n const item = context.last;\n if (!item.getAttribute('listItemId')) {\n return false;\n }\n }, 'blockIndentListItem');\n // Clear blockIndentList and blockIndentListItem when list indent changes.\n const clearBlockIndentAttributesOnListIndentChange = (_evt, changedBlocks)=>{\n editor.model.change((writer)=>{\n for (const node of changedBlocks){\n if (node.hasAttribute('listItemId')) {\n if (node.hasAttribute('blockIndentList')) {\n writer.removeAttribute('blockIndentList', node);\n }\n if (node.hasAttribute('blockIndentListItem')) {\n writer.removeAttribute('blockIndentListItem', node);\n }\n }\n }\n });\n };\n const indentListCommand = editor.commands.get('indentList');\n const outdentListCommand = editor.commands.get('outdentList');\n if (indentListCommand) {\n this.listenTo(indentListCommand, 'afterExecute', clearBlockIndentAttributesOnListIndentChange);\n }\n if (outdentListCommand) {\n this.listenTo(outdentListCommand, 'afterExecute', clearBlockIndentAttributesOnListIndentChange);\n }\n // Register list block indent commands in multi command.\n const indentCommand = editor.commands.get('indent');\n const outdentCommand = editor.commands.get('outdent');\n indentCommand.registerChildCommand(editor.commands.get('indentBlockList'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlockList'));\n indentCommand.registerChildCommand(editor.commands.get('indentBlockListItem'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlockListItem'));\n }\n /**\n\t * Setups conversion for list block indent using offset.\n\t */ _setupConversionUsingOffset(element, attributeName, scope) {\n const editor = this.editor;\n const locale = editor.locale;\n const conversion = editor.conversion;\n const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n const listEditing = editor.plugins.get('ListEditing');\n conversion.for('upcast').add((dispatcher)=>{\n dispatcher.on(`element:${element}`, listBlockIndentUpcastConverter(attributeName, (item)=>item.getStyle(marginProperty), (consumable, item)=>consumable.consume(item, {\n styles: marginProperty\n })), {\n priority: 'low'\n });\n });\n listEditing.registerDowncastStrategy({\n scope,\n attributeName,\n setAttributeOnDowncast (writer, value, element) {\n if (value) {\n writer.setStyle(marginProperty, value, element);\n }\n }\n });\n }\n /**\n\t * Setups conversion for list block indent using classes.\n\t */ _setupConversionUsingClasses(classes, element, attributeName, scope) {\n const editor = this.editor;\n const conversion = editor.conversion;\n const listEditing = editor.plugins.get('ListEditing');\n conversion.for('upcast').add((dispatcher)=>{\n dispatcher.on(`element:${element}`, listBlockIndentUpcastConverter(attributeName, (item)=>classes.find((cls)=>item.hasClass(cls)), (consumable, item, value)=>consumable.consume(item, {\n classes: value\n })), {\n priority: 'low'\n });\n });\n listEditing.registerDowncastStrategy({\n scope,\n attributeName,\n setAttributeOnDowncast (writer, value, element) {\n if (value) {\n writer.addClass(value, element);\n }\n }\n });\n }\n}\n/**\n * Returns an upcast converter for block list indentation.\n *\n * @param attributeName The name of the model attribute.\n * @param getValue A function to get the value from the view element.\n * @param consume A function to consume the view element.\n * @returns A callback for the upcast conversion.\n */ function listBlockIndentUpcastConverter(attributeName, getValue, consume) {\n return (evt, data, conversionApi)=>{\n const { writer, consumable } = conversionApi;\n if (!data.modelRange) {\n Object.assign(data, conversionApi.convertChildren(data.viewItem, data.modelCursor));\n }\n const value = getValue(data.viewItem);\n if (value === undefined) {\n return;\n }\n let applied = false;\n let indentLevel;\n for (const item of data.modelRange.getItems({\n shallow: true\n })){\n if (indentLevel === undefined) {\n indentLevel = item.getAttribute('listIndent');\n }\n if (item.hasAttribute(attributeName)) {\n continue;\n }\n if (item.getAttribute('listIndent') !== indentLevel) {\n continue;\n }\n writer.setAttribute(attributeName, value, item);\n applied = true;\n }\n if (applied) {\n consume(consumable, data.viewItem, value);\n }\n };\n}\n/**\n * Ensures that two nodes have the same value of the given attribute.\n * If the values are different, the attribute value from the previous node is applied to the given node.\n * Returns true if the attribute value was changed, false otherwise.\n */ function ensureIndentValuesConsistency(attributeName, node, previousNodeInList, writer) {\n const prevNodeIndentListValue = previousNodeInList.getAttribute(attributeName);\n if (node.getAttribute(attributeName) === prevNodeIndentListValue) {\n return false;\n }\n if (prevNodeIndentListValue) {\n writer.setAttribute(attributeName, prevNodeIndentListValue, node);\n } else {\n writer.removeAttribute(attributeName, node);\n }\n return true;\n}\n\nconst DEFAULT_ELEMENTS = [\n 'paragraph',\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6'\n];\n/**\n * The block indentation feature.\n *\n * It registers the `'indentBlock'` and `'outdentBlock'` commands.\n *\n * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to\n * the `'indent'` and `'outdent'` commands.\n */ class IndentBlock extends Plugin {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('indentBlock', {\n offset: 40,\n unit: 'px'\n });\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'IndentBlock';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n IndentBlockListIntegration\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const configuration = editor.config.get('indentBlock');\n if (configuration.classes && configuration.classes.length) {\n this._setupConversionUsingClasses(configuration.classes);\n editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingClasses({\n direction: 'forward',\n classes: configuration.classes\n })));\n editor.commands.add('outdentBlock', new IndentBlockCommand(editor, new IndentUsingClasses({\n direction: 'backward',\n classes: configuration.classes\n })));\n } else {\n editor.data.addStyleProcessorRules(addMarginStylesRules);\n this._setupConversionUsingOffset();\n editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({\n direction: 'forward',\n offset: configuration.offset,\n unit: configuration.unit\n })));\n editor.commands.add('outdentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({\n direction: 'backward',\n offset: configuration.offset,\n unit: configuration.unit\n })));\n }\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const indentCommand = editor.commands.get('indent');\n const outdentCommand = editor.commands.get('outdent');\n // Enable block indentation to heading configuration options. If it is not defined enable in paragraph and default headings.\n const options = editor.config.get('heading.options');\n const configuredElements = options && options.map((option)=>option.model);\n const knownElements = configuredElements || DEFAULT_ELEMENTS;\n knownElements.forEach((elementName)=>{\n if (schema.isRegistered(elementName)) {\n schema.extend(elementName, {\n allowAttributes: 'blockIndent'\n });\n }\n });\n schema.setAttributeProperties('blockIndent', {\n isFormatting: true\n });\n indentCommand.registerChildCommand(editor.commands.get('indentBlock'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlock'));\n }\n /**\n\t * Setups conversion for using offset indents.\n\t */ _setupConversionUsingOffset() {\n const conversion = this.editor.conversion;\n const locale = this.editor.locale;\n const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n conversion.for('upcast').attributeToAttribute({\n view: {\n styles: {\n [marginProperty]: /[\\s\\S]+/\n }\n },\n model: {\n key: 'blockIndent',\n value: (viewElement)=>{\n // Do not indent block elements in Document Lists. See https://github.com/ckeditor/ckeditor5/issues/12466.\n if (!viewElement.is('element', 'li')) {\n return viewElement.getStyle(marginProperty);\n }\n }\n }\n });\n conversion.for('downcast').attributeToAttribute({\n model: 'blockIndent',\n view: (modelAttributeValue)=>{\n return {\n key: 'style',\n value: {\n [marginProperty]: modelAttributeValue\n }\n };\n }\n });\n }\n /**\n\t * Setups conversion for using classes.\n\t */ _setupConversionUsingClasses(classes) {\n const definition = {\n model: {\n key: 'blockIndent',\n values: []\n },\n view: {}\n };\n for (const className of classes){\n definition.model.values.push(className);\n definition.view[className] = {\n key: 'class',\n value: [\n className\n ]\n };\n }\n this.editor.conversion.attributeToAttribute(definition);\n }\n}\n\nexport { Indent, IndentBlock, IndentBlockCommand, IndentBlockListCommand, IndentBlockListIntegration, IndentBlockListItemCommand, IndentEditing, IndentUI, IndentUsingClasses as _IndentUsingClasses, IndentUsingOffset as _IndentUsingOffset };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentediting\n */\n\nimport { Plugin, MultiCommand } from '@ckeditor/ckeditor5-core';\n\n/**\n * The indent editing feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` commands.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the\n * {@link module:indent/indent~Indent indent feature} API documentation.\n */\nexport class IndentEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentEditing' 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\n\t\teditor.commands.add( 'indent', new MultiCommand( editor ) );\n\t\teditor.commands.add( 'outdent', new MultiCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentui\n */\n\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { IconIndent, IconOutdent } from '@ckeditor/ckeditor5-icons';\n\n/**\n * The indent UI feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` buttons.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in\n * the {@link module:indent/indent~Indent indent feature} API documentation.\n */\nexport class IndentUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentUI' 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 locale = editor.locale;\n\t\tconst t = editor.t;\n\n\t\tconst localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? IconIndent : IconOutdent;\n\t\tconst localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? IconOutdent : IconIndent;\n\n\t\tthis._defineButton( 'indent', t( 'Increase indent' ), localizedIndentIcon );\n\t\tthis._defineButton( 'outdent', t( 'Decrease indent' ), localizedOutdentIcon );\n\t}\n\n\t/**\n\t * Defines UI buttons for both toolbar and menu bar.\n\t */\n\tprivate _defineButton( commandName: 'indent' | 'outdent', label: string, icon: string ): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( commandName, () => {\n\t\t\tconst buttonView = this._createButton( ButtonView, commandName, label, icon );\n\n\t\t\tbuttonView.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:' + commandName, () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView, commandName, label, icon );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>(\n\t\tButtonClass: T,\n\t\tcommandName: string,\n\t\tlabel: string,\n\t\ticon: string\n\t): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst command = editor.commands.get( commandName )!;\n\t\tconst view = new ButtonClass( editor.locale ) as InstanceType<T>;\n\n\t\tview.set( {\n\t\t\tlabel,\n\t\t\ticon\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( commandName );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indent\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n\nimport { IndentEditing } from './indentediting.js';\nimport { IndentUI } from './indentui.js';\n\n/**\n * The indent feature.\n *\n * This plugin acts as a single entry point plugin for other features that implement indentation of elements like lists or paragraphs.\n *\n * The compatible features are:\n *\n * * The {@link module:list/list~List} or {@link module:list/list/listediting~ListEditing} feature for list indentation.\n * * The {@link module:indent/indentblock~IndentBlock} feature for block indentation.\n *\n * This is a \"glue\" plugin that loads the following plugins:\n *\n * * The {@link module:indent/indentediting~IndentEditing indent editing feature}.\n * * The {@link module:indent/indentui~IndentUI indent UI feature}.\n *\n * The dependent plugins register the `'indent'` and `'outdent'` commands and introduce the `'indent'` and `'outdent'` buttons\n * that allow to increase or decrease text indentation of supported elements.\n *\n * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.\n */\nexport class Indent extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Indent' 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 static get requires() {\n\t\treturn [ IndentEditing, IndentUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentblockcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport type { ModelElement } from '@ckeditor/ckeditor5-engine';\nimport type { ListUtils } from '@ckeditor/ckeditor5-list';\nimport { first } from '@ckeditor/ckeditor5-utils';\n\nimport type { IndentBehavior } from './indentcommandbehavior/indentbehavior.js';\n\n/**\n * The indent block command.\n *\n * The command is registered by the {@link module:indent/indentblock~IndentBlock} as `'indentBlock'` for indenting blocks and\n * `'outdentBlock'` for outdenting blocks.\n *\n * To increase block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlock' );\n * ```\n *\n * To decrease block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlock' );\n * ```\n */\nexport class IndentBlockCommand extends Command {\n\t/**\n\t * The command's indentation behavior.\n\t */\n\tprivate readonly _indentBehavior: IndentBehavior;\n\n\t/**\n\t * Creates an instance of the command.\n\t */\n\tconstructor( editor: Editor, indentBehavior: IndentBehavior ) {\n\t\tsuper( editor );\n\n\t\tthis._indentBehavior = indentBehavior;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\n\t\tconst block = first( model.document.selection.getSelectedBlocks() );\n\n\t\tif ( !block || !this._isIndentationChangeAllowed( block ) ) {\n\t\t\tthis.isEnabled = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isEnabled = this._indentBehavior.checkEnabled( block.getAttribute( 'blockIndent' ) as string );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\n\t\tconst blocksToChange = this._getBlocksToChange();\n\n\t\tmodel.change( writer => {\n\t\t\tfor ( const block of blocksToChange ) {\n\t\t\t\tconst currentIndent = block.getAttribute( 'blockIndent' ) as string;\n\n\t\t\t\tconst nextIndent = this._indentBehavior.getNextIndent( currentIndent );\n\n\t\t\t\tif ( nextIndent ) {\n\t\t\t\t\twriter.setAttribute( 'blockIndent', nextIndent, block );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'blockIndent', block );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns blocks from selection that should have blockIndent selection set.\n\t */\n\tprivate _getBlocksToChange(): Array<ModelElement> {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst blocksInSelection = Array.from( selection.getSelectedBlocks() );\n\n\t\treturn blocksInSelection.filter( block => this._isIndentationChangeAllowed( block ) );\n\t}\n\n\t/**\n\t * Returns false if indentation cannot be applied, i.e.:\n\t * - for blocks disallowed by schema declaration\n\t * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.\n\t * Otherwise returns true.\n\t */\n\tprivate _isIndentationChangeAllowed( element: ModelElement ): boolean {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.model.schema.checkAttribute( element, 'blockIndent' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !editor.plugins.has( 'ListUtils' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Only forward indentation is disallowed in list items. This allows the user to outdent blocks that are already indented.\n\t\tif ( !this._indentBehavior.isForward ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst listUtils: ListUtils = editor.plugins.get( 'ListUtils' );\n\n\t\treturn !listUtils.isListItemBlock( element );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentcommandbehavior/indentusingoffset\n */\n\nimport type { IndentBehavior } from './indentbehavior.js';\n\n/**\n * The block indentation behavior that uses offsets to set indentation.\n *\n * @internal\n */\nexport class IndentUsingOffset implements IndentBehavior {\n\t/**\n\t * The direction of indentation.\n\t */\n\tpublic isForward: boolean;\n\n\t/**\n\t * The offset of the next indentation step.\n\t */\n\tpublic offset: number;\n\n\t/**\n\t * Indentation unit.\n\t */\n\tpublic unit: string;\n\n\t/**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.offset The offset of the next indentation step.\n\t * @param config.unit Indentation unit.\n\t */\n\tconstructor( config: { direction: 'forward' | 'backward'; offset: number; unit: string } ) {\n\t\tthis.isForward = config.direction === 'forward';\n\t\tthis.offset = config.offset;\n\t\tthis.unit = config.unit;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic checkEnabled( indentAttributeValue: string ): boolean {\n\t\tconst currentOffset = parseFloat( indentAttributeValue || '0' );\n\n\t\t// The command is always enabled for forward indentation.\n\t\treturn this.isForward || currentOffset > 0;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic getNextIndent( indentAttributeValue: string ): string | undefined {\n\t\tconst currentOffset = parseFloat( indentAttributeValue || '0' );\n\t\tconst isSameUnit = !indentAttributeValue || indentAttributeValue.endsWith( this.unit );\n\n\t\tif ( currentOffset < 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !isSameUnit ) {\n\t\t\treturn this.isForward ? this.offset + this.unit : undefined;\n\t\t}\n\n\t\tconst nextOffset = this.isForward ? this.offset : -this.offset;\n\t\tconst offsetToSet = currentOffset + nextOffset;\n\n\t\treturn offsetToSet > 0 ? offsetToSet + this.unit : undefined;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentcommandbehavior/indentusingclasses\n */\n\nimport type { IndentBehavior } from './indentbehavior.js';\n\n/**\n * The block indentation behavior that uses classes to set indentation.\n *\n * @internal\n */\nexport class IndentUsingClasses implements IndentBehavior {\n\t/**\n\t * The direction of indentation.\n\t */\n\tpublic isForward: boolean;\n\n\t/**\n\t * A list of classes used for indentation.\n\t */\n\tpublic classes: Array<string>;\n\n\t/**\n\t * Creates an instance of the indentation behavior.\n\t *\n\t * @param config.direction The direction of indentation.\n\t * @param config.classes A list of classes used for indentation.\n\t */\n\tconstructor( config: { direction: 'forward' | 'backward'; classes: Array<string> } ) {\n\t\tthis.isForward = config.direction === 'forward';\n\t\tthis.classes = config.classes!;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic checkEnabled( indentAttributeValue: string ): boolean {\n\t\tconst currentIndex = this.classes.indexOf( indentAttributeValue );\n\n\t\tif ( this.isForward ) {\n\t\t\treturn currentIndex < this.classes.length - 1;\n\t\t} else {\n\t\t\treturn currentIndex >= 0;\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic getNextIndent( indentAttributeValue: string ): string | undefined {\n\t\tconst currentIndex = this.classes.indexOf( indentAttributeValue );\n\t\tconst indexStep = this.isForward ? 1 : -1;\n\t\tconst nextIndex = currentIndex + indexStep;\n\t\tconst nextIndexClamped = Math.min( nextIndex, this.classes.length - 1 );\n\n\t\treturn this.classes[ nextIndexClamped ];\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/integrations/indentblocklistcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport type { ModelDocumentSelection, ModelElement } from '@ckeditor/ckeditor5-engine';\nimport { _isListItemBlock } from '@ckeditor/ckeditor5-list';\n\nimport type { IndentBehavior } from '../indentcommandbehavior/indentbehavior.js';\n\n/**\n * The indent block list command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockList'` for indenting lists and `'outdentBlockList'` for outdenting lists.\n *\n * To increase/decrease block indentation of the list the selection must be at the start of the first top–level list item\n * in the list.\n *\n * To increase block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockList' );\n * ```\n *\n * To decrease block indentation of the list, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockList' );\n * ```\n */\nexport class IndentBlockListCommand extends Command {\n\t/**\n\t * The command's indentation behavior.\n\t */\n\tprivate readonly _indentBehavior: IndentBehavior;\n\n\t/**\n\t * Creates an instance of the command.\n\t */\n\tconstructor( editor: Editor, indentBehavior: IndentBehavior ) {\n\t\tsuper( editor );\n\n\t\tthis._indentBehavior = indentBehavior;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst listItem = this._getFirstListItemIfSelectionIsAtListStart( this.editor.model.document.selection );\n\n\t\tthis.isEnabled = !!listItem && this._indentBehavior.checkEnabled( listItem.getAttribute( 'blockIndentList' ) as string );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.firstListOnly When `true`, indentation is applied only to the first list at the beginning of the selection.\n\t * When `false` or omitted, indentation is applied to all lists of the selection.\n\t */\n\tpublic override execute( options: { firstListOnly?: boolean } = {} ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst listUtils = editor.plugins.get( 'ListUtils' );\n\n\t\tmodel.change( writer => {\n\t\t\tconst listItem = this._getFirstListItemIfSelectionIsAtListStart( selection )!;\n\t\t\tconst listItems = [];\n\n\t\t\tif ( !options.firstListOnly ) {\n\t\t\t\tconst blocks = Array.from( selection.getSelectedBlocks() );\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t_isListItemBlock( block ) &&\n\t\t\t\t\t\tblock.getAttribute( 'listIndent' ) === 0 &&\n\t\t\t\t\t\tmodel.schema.checkAttribute( block, 'blockIndentList' )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlistItems.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlistItems.push( listItem );\n\t\t\t}\n\n\t\t\t// Expand to all list items in the selected lists to process them together and reduce postfixer usage.\n\t\t\tconst expandedListItems = listUtils.expandListBlocksToCompleteList( listItems );\n\n\t\t\tfor ( const item of expandedListItems ) {\n\t\t\t\tconst currentIndent = item.getAttribute( 'blockIndentList' ) as string;\n\t\t\t\tconst nextIndent = this._indentBehavior.getNextIndent( currentIndent );\n\n\t\t\t\tif ( nextIndent ) {\n\t\t\t\t\twriter.setAttribute( 'blockIndentList', nextIndent, item );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'blockIndentList', item );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the list item at the beginning of the current selection if it is the first top–level list item in the list.\n\t * Otherwise, returns `null`.\n\t */\n\tprivate _getFirstListItemIfSelectionIsAtListStart( selection: ModelDocumentSelection ): ModelElement | null {\n\t\tconst position = selection.getFirstPosition()!;\n\t\tconst listUtils = this.editor.plugins.get( 'ListUtils' );\n\t\tconst parent = position.parent as ModelElement;\n\t\tconst schema = this.editor.model.schema;\n\n\t\tif (\n\t\t\tposition.isAtStart &&\n\t\t\t_isListItemBlock( parent ) &&\n\t\t\tparent.getAttribute( 'listIndent' ) == 0 &&\n\t\t\tschema.checkAttribute( parent, 'blockIndentList' ) &&\n\t\t\tlistUtils.isFirstListItemInList( parent )\n\t\t) {\n\t\t\treturn parent;\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/integrations/indentblocklistitemcommand\n */\n\nimport { Command, type Editor } from '@ckeditor/ckeditor5-core';\nimport { type ModelElement } from '@ckeditor/ckeditor5-engine';\nimport { type ListUtils } from '@ckeditor/ckeditor5-list';\n\nimport type { IndentBehavior } from '../indentcommandbehavior/indentbehavior.js';\n\n/**\n * The indent block list item command.\n *\n * The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as\n * `'indentBlockListItem'` for indenting list items and `'outdentBlockListItem'` for outdenting list items.\n *\n * It's only possible to reset the block indentation of a list item to `0`.\n * This means that if a list item has negative block indentation, the command will only allow forward indentation\n * to make it possible to reset it to `0` and if a list item has positive block indentation, the command\n * will only allow backward indentation to make it possible to reset it to `0`.\n *\n * To increase block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlockListItem' );\n * ```\n *\n * To decrease block indentation of the list item, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlockListItem' );\n * ```\n */\nexport class IndentBlockListItemCommand extends Command {\n\t/**\n\t * The command's indentation behavior.\n\t */\n\tprivate readonly _indentBehavior: IndentBehavior;\n\n\t/**\n\t * Creates an instance of the command.\n\t */\n\tconstructor( editor: Editor, indentBehavior: IndentBehavior ) {\n\t\tsuper( editor );\n\n\t\tthis._indentBehavior = indentBehavior;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.isEnabled = this._getAffectedListItems().length > 0;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tfor ( const block of this._getAffectedListItems() ) {\n\t\t\t\twriter.removeAttribute( 'blockIndentListItem', block );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Returns an array of list items which block indentation should be changed.\n\t */\n\tprivate _getAffectedListItems(): Array<ModelElement> {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst listUtils: ListUtils = this.editor.plugins.get( 'ListUtils' );\n\t\tconst blocksInSelection = Array.from( selection.getSelectedBlocks() );\n\t\tconst expandedBlocks = listUtils.expandListBlocksToCompleteItems( blocksInSelection );\n\n\t\treturn expandedBlocks.filter( block => this._isIndentationChangeAllowed( block ) );\n\t}\n\n\t/**\n\t * Returns `true` if changing the block indentation is allowed for the given list item.\n\t */\n\tprivate _isIndentationChangeAllowed( element: ModelElement ): boolean {\n\t\tif ( !element.hasAttribute( 'blockIndentListItem' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this._indentBehavior.checkEnabled( element.getAttribute( 'blockIndentListItem' ) as string );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentcommandbehavior/resetindentusingoffset\n */\n\nimport { IndentUsingOffset } from './indentusingoffset.js';\n\n/**\n * The list item block indentation behavior that resets offset-based indentation toward zero.\n *\n * Unlike {@link module:indent/indentcommandbehavior/indentusingoffset~IndentUsingOffset}, this behavior\n * is enabled only when the current indentation value can be moved toward zero:\n * - for forward direction only when the current offset is negative,\n * - for backward direction only when the current offset is positive.\n *\n * @internal\n */\nexport class ResetIndentUsingOffset extends IndentUsingOffset {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override checkEnabled( indentAttributeValue: string ): boolean {\n\t\tconst currentOffset = parseFloat( indentAttributeValue );\n\n\t\treturn this.isForward && currentOffset < 0 || !this.isForward && currentOffset > 0;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentcommandbehavior/resetindentusingclasses\n */\n\nimport { IndentUsingClasses } from './indentusingclasses.js';\n\n/**\n * The list item block indentation behavior that resets class-based indentation toward zero.\n *\n * Unlike {@link module:indent/indentcommandbehavior/indentusingclasses~IndentUsingClasses}, this behavior\n * is enabled only in the backward (outdent) direction when a class-based indentation is set.\n * This is because class-based indentation values cannot be negative, so the only way to reset\n * them to zero is to remove the class by outdenting.\n *\n * @internal\n */\nexport class ResetIndentUsingClasses extends IndentUsingClasses {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override checkEnabled( indentAttributeValue: string ): boolean {\n\t\treturn !this.isForward && !!indentAttributeValue;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/integrations/indentblocklistintegration\n */\n\nimport {\n\ttype ListEditingPostFixerEvent,\n\ttype _ListIndentCommandAfterExecuteEvent\n} from '@ckeditor/ckeditor5-list';\n\nimport { type GetCallback } from '@ckeditor/ckeditor5-utils';\n\nimport {\n\ttype MultiCommand,\n\tPlugin\n} from '@ckeditor/ckeditor5-core';\n\nimport {\n\taddMarginStylesRules,\n\ttype ModelWriter,\n\ttype ModelElement,\n\ttype UpcastElementEvent,\n\ttype ViewConsumable,\n\ttype ViewDocumentTabEvent,\n\ttype ViewElement\n} from '@ckeditor/ckeditor5-engine';\n\nimport { IndentBlockListCommand } from './indentblocklistcommand.js';\nimport { IndentBlockListItemCommand } from './indentblocklistitemcommand.js';\nimport { IndentUsingOffset } from '../indentcommandbehavior/indentusingoffset.js';\nimport { IndentUsingClasses } from '../indentcommandbehavior/indentusingclasses.js';\nimport { ResetIndentUsingOffset } from '../indentcommandbehavior/resetindentusingoffset.js';\nimport { ResetIndentUsingClasses } from '../indentcommandbehavior/resetindentusingclasses.js';\n\n/**\n * This integration enables using block indentation feature with lists.\n */\nexport class IndentBlockListIntegration extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentBlockListIntegration' 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\n\t\tif ( !this.editor.plugins.has( 'ListEditing' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst config = editor.config.get( 'indentBlock' )!;\n\n\t\tif ( config.classes && config.classes.length ) {\n\t\t\tthis._setupConversionUsingClasses( config.classes, 'ol', 'blockIndentList', 'list' );\n\t\t\tthis._setupConversionUsingClasses( config.classes, 'ul', 'blockIndentList', 'list' );\n\t\t\tthis._setupConversionUsingClasses( config.classes!, 'li', 'blockIndentListItem', 'item' );\n\n\t\t\teditor.commands.add( 'indentBlockList', new IndentBlockListCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockList', new IndentBlockListCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'indentBlockListItem', new IndentBlockListItemCommand( editor, new ResetIndentUsingClasses( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockListItem', new IndentBlockListItemCommand( editor, new ResetIndentUsingClasses( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\tclasses: config.classes!\n\t\t\t} ) ) );\n\t\t} else {\n\t\t\teditor.data.addStyleProcessorRules( addMarginStylesRules );\n\n\t\t\tthis._setupConversionUsingOffset( 'ol', 'blockIndentList', 'list' );\n\t\t\tthis._setupConversionUsingOffset( 'ul', 'blockIndentList', 'list' );\n\t\t\tthis._setupConversionUsingOffset( 'li', 'blockIndentListItem', 'item' );\n\n\t\t\teditor.commands.add( 'indentBlockList', new IndentBlockListCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockList', new IndentBlockListCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'indentBlockListItem', new IndentBlockListItemCommand( editor, new ResetIndentUsingOffset( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlockListItem', new IndentBlockListItemCommand( editor, new ResetIndentUsingOffset( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\toffset: config.offset!,\n\t\t\t\tunit: config.unit!\n\t\t\t} ) ) );\n\t\t}\n\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\t// Make sure that all items in a single list (items at the same level & listType) have the same blockIndentList attribute value.\n\t\t// Also make sure that all block in a single list item (blocks with the same listItemId) have the same\n\t\t// blockIndentListItem attribute value.\n\t\tlistEditing.on<ListEditingPostFixerEvent>( 'postFixer', ( evt, { listNodes, writer } ) => {\n\t\t\tfor ( const { node, previousNodeInList } of listNodes ) {\n\t\t\t\t// This is a first item of a nested list.\n\t\t\t\tif ( !previousNodeInList ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( previousNodeInList.getAttribute( 'listType' ) != node.getAttribute( 'listType' ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( ensureIndentValuesConsistency( 'blockIndentList', node, previousNodeInList, writer ) ) {\n\t\t\t\t\tevt.return = true;\n\t\t\t\t}\n\n\t\t\t\tif ( previousNodeInList.getAttribute( 'listItemId' ) != node.getAttribute( 'listItemId' ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( ensureIndentValuesConsistency( 'blockIndentListItem', node, previousNodeInList, writer ) ) {\n\t\t\t\t\tevt.return = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.listenTo<ViewDocumentTabEvent>( editor.editing.view.document, 'tab', ( evt, data ) => {\n\t\t\tconst commandName = data.shiftKey ? 'outdentBlockList' : 'indentBlockList';\n\t\t\tconst command = this.editor.commands.get( commandName )!;\n\n\t\t\tif ( command.isEnabled ) {\n\t\t\t\teditor.execute( commandName, { firstListOnly: true } );\n\n\t\t\t\tdata.stopPropagation();\n\t\t\t\tdata.preventDefault();\n\t\t\t\tevt.stop();\n\t\t\t}\n\t\t}, { context: 'li', priority: 'high' } );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst schema = model.schema;\n\n\t\tif ( !editor.plugins.has( 'ListEditing' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Schema registration.\n\t\tschema.extend( '$listItem', { allowAttributes: [ 'blockIndentList', 'blockIndentListItem' ] } );\n\t\tschema.setAttributeProperties( 'blockIndentList', { isFormatting: true } );\n\t\tschema.setAttributeProperties( 'blockIndentListItem', { isFormatting: true } );\n\n\t\tmodel.schema.addAttributeCheck( context => {\n\t\t\tconst item = context.last;\n\n\t\t\tif ( !item.getAttribute( 'listItemId' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'blockIndentList' );\n\n\t\tmodel.schema.addAttributeCheck( context => {\n\t\t\tconst item = context.last;\n\n\t\t\tif ( !item.getAttribute( 'listItemId' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'blockIndentListItem' );\n\n\t\t// Clear blockIndentList and blockIndentListItem when list indent changes.\n\t\tconst clearBlockIndentAttributesOnListIndentChange = (\n\t\t\t_evt: unknown,\n\t\t\tchangedBlocks: Array<ModelElement>\n\t\t) => {\n\t\t\teditor.model.change( writer => {\n\t\t\t\tfor ( const node of changedBlocks ) {\n\t\t\t\t\tif ( node.hasAttribute( 'listItemId' ) ) {\n\t\t\t\t\t\tif ( node.hasAttribute( 'blockIndentList' ) ) {\n\t\t\t\t\t\t\twriter.removeAttribute( 'blockIndentList', node );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( node.hasAttribute( 'blockIndentListItem' ) ) {\n\t\t\t\t\t\t\twriter.removeAttribute( 'blockIndentListItem', node );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\tconst indentListCommand = editor.commands.get( 'indentList' );\n\t\tconst outdentListCommand = editor.commands.get( 'outdentList' );\n\n\t\tif ( indentListCommand ) {\n\t\t\tthis.listenTo<_ListIndentCommandAfterExecuteEvent>(\n\t\t\t\tindentListCommand,\n\t\t\t\t'afterExecute',\n\t\t\t\tclearBlockIndentAttributesOnListIndentChange\n\t\t\t);\n\t\t}\n\n\t\tif ( outdentListCommand ) {\n\t\t\tthis.listenTo<_ListIndentCommandAfterExecuteEvent>(\n\t\t\t\toutdentListCommand,\n\t\t\t\t'afterExecute',\n\t\t\t\tclearBlockIndentAttributesOnListIndentChange\n\t\t\t);\n\t\t}\n\n\t\t// Register list block indent commands in multi command.\n\t\tconst indentCommand = editor.commands.get( 'indent' ) as MultiCommand;\n\t\tconst outdentCommand = editor.commands.get( 'outdent' ) as MultiCommand;\n\n\t\tindentCommand.registerChildCommand( editor.commands.get( 'indentBlockList' )! );\n\t\toutdentCommand.registerChildCommand( editor.commands.get( 'outdentBlockList' )! );\n\n\t\tindentCommand.registerChildCommand( editor.commands.get( 'indentBlockListItem' )! );\n\t\toutdentCommand.registerChildCommand( editor.commands.get( 'outdentBlockListItem' )! );\n\t}\n\n\t/**\n\t * Setups conversion for list block indent using offset.\n\t */\n\tprivate _setupConversionUsingOffset( element: string, attributeName: string, scope: 'list' | 'item' ): void {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst conversion = editor.conversion;\n\t\tconst marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\tconversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>(\n\t\t\t\t`element:${ element }`,\n\t\t\t\tlistBlockIndentUpcastConverter(\n\t\t\t\t\tattributeName,\n\t\t\t\t\titem => item.getStyle( marginProperty ),\n\t\t\t\t\t( consumable, item ) => consumable.consume( item, { styles: marginProperty } )\n\t\t\t\t),\n\t\t\t\t{ priority: 'low' }\n\t\t\t);\n\t\t} );\n\n\t\tlistEditing.registerDowncastStrategy( {\n\t\t\tscope,\n\t\t\tattributeName,\n\n\t\t\tsetAttributeOnDowncast( writer, value, element ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.setStyle( marginProperty, value as string, element );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Setups conversion for list block indent using classes.\n\t */\n\tprivate _setupConversionUsingClasses( classes: Array<string>, element: string, attributeName: string, scope: 'list' | 'item' ): void {\n\t\tconst editor = this.editor;\n\t\tconst conversion = editor.conversion;\n\t\tconst listEditing = editor.plugins.get( 'ListEditing' );\n\n\t\tconversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>(\n\t\t\t\t`element:${ element }`,\n\t\t\t\tlistBlockIndentUpcastConverter(\n\t\t\t\t\tattributeName,\n\t\t\t\t\titem => classes.find( cls => item.hasClass( cls ) ),\n\t\t\t\t\t( consumable, item, value ) => consumable.consume( item, { classes: value } )\n\t\t\t\t),\n\t\t\t\t{ priority: 'low' }\n\t\t\t);\n\t\t} );\n\n\t\tlistEditing.registerDowncastStrategy( {\n\t\t\tscope,\n\t\t\tattributeName,\n\n\t\t\tsetAttributeOnDowncast( writer, value, element ) {\n\t\t\t\tif ( value ) {\n\t\t\t\t\twriter.addClass( value as string, element );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Returns an upcast converter for block list indentation.\n *\n * @param attributeName The name of the model attribute.\n * @param getValue A function to get the value from the view element.\n * @param consume A function to consume the view element.\n * @returns A callback for the upcast conversion.\n */\nfunction listBlockIndentUpcastConverter(\n\tattributeName: string,\n\tgetValue: ( viewItem: ViewElement ) => string | undefined,\n\tconsume: ( consumable: ViewConsumable, viewItem: ViewElement, value: string ) => void\n): GetCallback<UpcastElementEvent> {\n\treturn ( evt, data, conversionApi ) => {\n\t\tconst { writer, consumable } = conversionApi;\n\n\t\tif ( !data.modelRange ) {\n\t\t\tObject.assign( data, conversionApi.convertChildren( data.viewItem, data.modelCursor ) );\n\t\t}\n\n\t\tconst value = getValue( data.viewItem );\n\n\t\tif ( value === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet applied = false;\n\t\tlet indentLevel;\n\n\t\tfor ( const item of data.modelRange!.getItems( { shallow: true } ) ) {\n\t\t\tif ( indentLevel === undefined ) {\n\t\t\t\tindentLevel = item.getAttribute( 'listIndent' );\n\t\t\t}\n\n\t\t\tif ( item.hasAttribute( attributeName ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( item.getAttribute( 'listIndent' ) !== indentLevel ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\twriter.setAttribute( attributeName, value, item );\n\t\t\tapplied = true;\n\t\t}\n\n\t\tif ( applied ) {\n\t\t\tconsume( consumable, data.viewItem, value );\n\t\t}\n\t};\n}\n\n/**\n * Ensures that two nodes have the same value of the given attribute.\n * If the values are different, the attribute value from the previous node is applied to the given node.\n * Returns true if the attribute value was changed, false otherwise.\n */\nfunction ensureIndentValuesConsistency(\n\tattributeName: string,\n\tnode: ModelElement,\n\tpreviousNodeInList: ModelElement,\n\twriter: ModelWriter\n): boolean {\n\tconst prevNodeIndentListValue = previousNodeInList.getAttribute( attributeName );\n\n\tif ( node.getAttribute( attributeName ) === prevNodeIndentListValue ) {\n\t\treturn false;\n\t}\n\n\tif ( prevNodeIndentListValue ) {\n\t\twriter.setAttribute( attributeName, prevNodeIndentListValue, node );\n\t} else {\n\t\twriter.removeAttribute( attributeName, node );\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2026, 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 indent/indentblock\n */\n\nimport { Plugin, type Editor, type MultiCommand } from '@ckeditor/ckeditor5-core';\nimport { addMarginStylesRules, type DowncastAttributeDescriptor, type ViewElement } from '@ckeditor/ckeditor5-engine';\n\nimport type { HeadingOption } from '@ckeditor/ckeditor5-heading';\nimport { IndentBlockCommand } from './indentblockcommand.js';\nimport { IndentUsingOffset } from './indentcommandbehavior/indentusingoffset.js';\nimport { IndentUsingClasses } from './indentcommandbehavior/indentusingclasses.js';\nimport { IndentBlockListIntegration } from './integrations/indentblocklistintegration.js';\n\nconst DEFAULT_ELEMENTS = [ 'paragraph', 'heading1', 'heading2', 'heading3', 'heading4', 'heading5', 'heading6' ];\n\n/**\n * The block indentation feature.\n *\n * It registers the `'indentBlock'` and `'outdentBlock'` commands.\n *\n * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to\n * the `'indent'` and `'outdent'` commands.\n */\nexport class IndentBlock extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'indentBlock', {\n\t\t\toffset: 40,\n\t\t\tunit: 'px'\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'IndentBlock' 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 static get requires() {\n\t\treturn [ IndentBlockListIntegration ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst configuration = editor.config.get( 'indentBlock' )!;\n\n\t\tif ( configuration.classes && configuration.classes.length ) {\n\t\t\tthis._setupConversionUsingClasses( configuration.classes );\n\n\t\t\teditor.commands.add( 'indentBlock', new IndentBlockCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\tclasses: configuration.classes\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlock', new IndentBlockCommand( editor, new IndentUsingClasses( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\tclasses: configuration.classes\n\t\t\t} ) ) );\n\t\t} else {\n\t\t\teditor.data.addStyleProcessorRules( addMarginStylesRules );\n\t\t\tthis._setupConversionUsingOffset();\n\n\t\t\teditor.commands.add( 'indentBlock', new IndentBlockCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'forward',\n\t\t\t\toffset: configuration.offset!,\n\t\t\t\tunit: configuration.unit!\n\t\t\t} ) ) );\n\n\t\t\teditor.commands.add( 'outdentBlock', new IndentBlockCommand( editor, new IndentUsingOffset( {\n\t\t\t\tdirection: 'backward',\n\t\t\t\toffset: configuration.offset!,\n\t\t\t\tunit: configuration.unit!\n\t\t\t} ) ) );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tconst indentCommand = editor.commands.get( 'indent' ) as MultiCommand;\n\t\tconst outdentCommand = editor.commands.get( 'outdent' ) as MultiCommand;\n\n\t\t// Enable block indentation to heading configuration options. If it is not defined enable in paragraph and default headings.\n\t\tconst options: Array<HeadingOption> = editor.config.get( 'heading.options' )!;\n\t\tconst configuredElements = options && options.map( option => option.model );\n\t\tconst knownElements = configuredElements || DEFAULT_ELEMENTS;\n\n\t\tknownElements.forEach( elementName => {\n\t\t\tif ( schema.isRegistered( elementName ) ) {\n\t\t\t\tschema.extend( elementName, { allowAttributes: 'blockIndent' } );\n\t\t\t}\n\t\t} );\n\n\t\tschema.setAttributeProperties( 'blockIndent', { isFormatting: true } );\n\n\t\tindentCommand.registerChildCommand( editor.commands.get( 'indentBlock' )! );\n\t\toutdentCommand.registerChildCommand( editor.commands.get( 'outdentBlock' )! );\n\t}\n\n\t/**\n\t * Setups conversion for using offset indents.\n\t */\n\tprivate _setupConversionUsingOffset(): void {\n\t\tconst conversion = this.editor.conversion;\n\t\tconst locale = this.editor.locale;\n\t\tconst marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n\n\t\tconversion.for( 'upcast' ).attributeToAttribute( {\n\t\t\tview: {\n\t\t\t\tstyles: {\n\t\t\t\t\t[ marginProperty ]: /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\tmodel: {\n\t\t\t\tkey: 'blockIndent',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => {\n\t\t\t\t\t// Do not indent block elements in Document Lists. See https://github.com/ckeditor/ckeditor5/issues/12466.\n\t\t\t\t\tif ( !viewElement.is( 'element', 'li' ) ) {\n\t\t\t\t\t\treturn viewElement.getStyle( marginProperty );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'downcast' ).attributeToAttribute( {\n\t\t\tmodel: 'blockIndent',\n\t\t\tview: modelAttributeValue => {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'style',\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\t[ marginProperty as string ]: modelAttributeValue as string\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 * Setups conversion for using classes.\n\t */\n\tprivate _setupConversionUsingClasses( classes: Array<string> ) {\n\t\tconst definition: {\n\t\t\tmodel: { key: string; values: Array<string> };\n\t\t\tview: Record<string, DowncastAttributeDescriptor>;\n\t\t} = {\n\t\t\tmodel: {\n\t\t\t\tkey: 'blockIndent',\n\t\t\t\tvalues: []\n\t\t\t},\n\t\t\tview: {}\n\t\t};\n\n\t\tfor ( const className of classes ) {\n\t\t\tdefinition.model.values.push( className );\n\t\t\tdefinition.view[ className ] = {\n\t\t\t\tkey: 'class',\n\t\t\t\tvalue: [ className ]\n\t\t\t};\n\t\t}\n\n\t\tthis.editor.conversion.attributeToAttribute( definition );\n\t}\n}\n"]}
|