@ckeditor/ckeditor5-indent 45.2.1-alpha.9 → 46.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/build/indent.js CHANGED
@@ -2,4 +2,4 @@
2
2
  /*!
3
3
  * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var t={237:t=>{"use strict";t.exports=CKEditor5.dll},311:(t,e,n)=>{t.exports=n(237)("./src/ui.js")},355:(t,e,n)=>{t.exports=n(237)("./src/icons.js")},584:(t,e,n)=>{t.exports=n(237)("./src/utils.js")},782:(t,e,n)=>{t.exports=n(237)("./src/core.js")},783:(t,e,n)=>{t.exports=n(237)("./src/engine.js")}},e={};function n(i){var s=e[i];if(void 0!==s)return s.exports;var o=e[i]={exports:{}};return t[i](o,o.exports,n),o.exports}n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";n.r(i),n.d(i,{Indent:()=>d,IndentBlock:()=>f,IndentEditing:()=>e,IndentUI:()=>r});var t=n(782);class e extends t.Plugin{static get pluginName(){return"IndentEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.commands.add("indent",new t.MultiCommand(e)),e.commands.add("outdent",new t.MultiCommand(e))}}var s=n(311),o=n(355);class r extends t.Plugin{static get pluginName(){return"IndentUI"}static get isOfficialPlugin(){return!0}init(){const t=this.editor,e=t.locale,n=t.t,i="ltr"==e.uiLanguageDirection?o.IconIndent:o.IconOutdent,s="ltr"==e.uiLanguageDirection?o.IconOutdent:o.IconIndent;this._defineButton("indent",n("Increase indent"),i),this._defineButton("outdent",n("Decrease indent"),s)}_defineButton(t,e,n){const i=this.editor;i.ui.componentFactory.add(t,()=>{const i=this._createButton(s.ButtonView,t,e,n);return i.set({tooltip:!0}),i}),i.ui.componentFactory.add("menuBar:"+t,()=>this._createButton(s.MenuBarMenuListItemButtonView,t,e,n))}_createButton(t,e,n,i){const s=this.editor,o=s.commands.get(e),r=new t(s.locale);return r.set({label:n,icon:i}),r.bind("isEnabled").to(o,"isEnabled"),this.listenTo(r,"execute",()=>{s.execute(e),s.editing.view.focus()}),r}}class d extends t.Plugin{static get pluginName(){return"Indent"}static get isOfficialPlugin(){return!0}static get requires(){return[e,r]}}var a=n(783),c=n(584);class l extends t.Command{_indentBehavior;constructor(t,e){super(t),this._indentBehavior=e}refresh(){const t=this.editor.model,e=(0,c.first)(t.document.selection.getSelectedBlocks());e&&this._isIndentationChangeAllowed(e)?this.isEnabled=this._indentBehavior.checkEnabled(e.getAttribute("blockIndent")):this.isEnabled=!1}execute(){const t=this.editor.model,e=this._getBlocksToChange();t.change(t=>{for(const n of e){const e=n.getAttribute("blockIndent"),i=this._indentBehavior.getNextIndent(e);i?t.setAttribute("blockIndent",i,n):t.removeAttribute("blockIndent",n)}})}_getBlocksToChange(){const t=this.editor.model.document.selection;return Array.from(t.getSelectedBlocks()).filter(t=>this._isIndentationChangeAllowed(t))}_isIndentationChangeAllowed(t){const e=this.editor;if(!e.model.schema.checkAttribute(t,"blockIndent"))return!1;if(!e.plugins.has("ListUtils"))return!0;if(!this._indentBehavior.isForward)return!0;return!e.plugins.get("ListUtils").isListItemBlock(t)}}class u{isForward;offset;unit;constructor(t){this.isForward="forward"===t.direction,this.offset=t.offset,this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||"0");return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||"0");if(!(!t||t.endsWith(this.unit)))return this.isForward?this.offset+this.unit:void 0;const n=e+(this.isForward?this.offset:-this.offset);return n>0?n+this.unit:void 0}}class g{isForward;classes;constructor(t){this.isForward="forward"===t.direction,this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);return this.isForward?e<this.classes.length-1:e>=0}getNextIndent(t){const e=this.classes.indexOf(t),n=this.isForward?1:-1;return this.classes[e+n]}}const h=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];class f extends t.Plugin{constructor(t){super(t),t.config.define("indentBlock",{offset:40,unit:"px"})}static get pluginName(){return"IndentBlock"}static get isOfficialPlugin(){return!0}init(){const t=this.editor,e=t.config.get("indentBlock");e.classes&&e.classes.length?(this._setupConversionUsingClasses(e.classes),t.commands.add("indentBlock",new l(t,new g({direction:"forward",classes:e.classes}))),t.commands.add("outdentBlock",new l(t,new g({direction:"backward",classes:e.classes})))):(t.data.addStyleProcessorRules(a.addMarginRules),this._setupConversionUsingOffset(),t.commands.add("indentBlock",new l(t,new u({direction:"forward",offset:e.offset,unit:e.unit}))),t.commands.add("outdentBlock",new l(t,new u({direction:"backward",offset:e.offset,unit:e.unit}))))}afterInit(){const t=this.editor,e=t.model.schema,n=t.commands.get("indent"),i=t.commands.get("outdent"),s=t.config.get("heading.options");(s&&s.map(t=>t.model)||h).forEach(t=>{e.isRegistered(t)&&e.extend(t,{allowAttributes:"blockIndent"})}),e.setAttributeProperties("blockIndent",{isFormatting:!0}),n.registerChildCommand(t.commands.get("indentBlock")),i.registerChildCommand(t.commands.get("outdentBlock"))}_setupConversionUsingOffset(){const t=this.editor.conversion,e="rtl"===this.editor.locale.contentLanguageDirection?"margin-right":"margin-left";t.for("upcast").attributeToAttribute({view:{styles:{[e]:/[\s\S]+/}},model:{key:"blockIndent",value:t=>{if(!t.is("element","li"))return t.getStyle(e)}}}),t.for("downcast").attributeToAttribute({model:"blockIndent",view:t=>({key:"style",value:{[e]:t}})})}_setupConversionUsingClasses(t){const e={model:{key:"blockIndent",values:[]},view:{}};for(const n of t)e.model.values.push(n),e.view[n]={key:"class",value:[n]};this.editor.conversion.attributeToAttribute(e)}}})(),(window.CKEditor5=window.CKEditor5||{}).indent=i})();
5
+ */(()=>{var t={237:t=>{"use strict";t.exports=CKEditor5.dll},311:(t,e,n)=>{t.exports=n(237)("./src/ui.js")},355:(t,e,n)=>{t.exports=n(237)("./src/icons.js")},584:(t,e,n)=>{t.exports=n(237)("./src/utils.js")},782:(t,e,n)=>{t.exports=n(237)("./src/core.js")},783:(t,e,n)=>{t.exports=n(237)("./src/engine.js")}},e={};function n(s){var i=e[s];if(void 0!==i)return i.exports;var o=e[s]={exports:{}};return t[s](o,o.exports,n),o.exports}n.d=(t,e)=>{for(var s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};(()=>{"use strict";n.r(s),n.d(s,{Indent:()=>d,IndentBlock:()=>f,IndentBlockCommand:()=>l,IndentEditing:()=>e,IndentUI:()=>r,_IndentUsingClasses:()=>g,_IndentUsingOffset:()=>u});var t=n(782);class e extends t.Plugin{static get pluginName(){return"IndentEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.commands.add("indent",new t.MultiCommand(e)),e.commands.add("outdent",new t.MultiCommand(e))}}var i=n(311),o=n(355);class r extends t.Plugin{static get pluginName(){return"IndentUI"}static get isOfficialPlugin(){return!0}init(){const t=this.editor,e=t.locale,n=t.t,s="ltr"==e.uiLanguageDirection?o.IconIndent:o.IconOutdent,i="ltr"==e.uiLanguageDirection?o.IconOutdent:o.IconIndent;this._defineButton("indent",n("Increase indent"),s),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const s=this.editor;s.ui.componentFactory.add(t,()=>{const s=this._createButton(i.ButtonView,t,e,n);return s.set({tooltip:!0}),s}),s.ui.componentFactory.add("menuBar:"+t,()=>this._createButton(i.MenuBarMenuListItemButtonView,t,e,n))}_createButton(t,e,n,s){const i=this.editor,o=i.commands.get(e),r=new t(i.locale);return r.set({label:n,icon:s}),r.bind("isEnabled").to(o,"isEnabled"),this.listenTo(r,"execute",()=>{i.execute(e),i.editing.view.focus()}),r}}class d extends t.Plugin{static get pluginName(){return"Indent"}static get isOfficialPlugin(){return!0}static get requires(){return[e,r]}}var a=n(783),c=n(584);class l extends t.Command{_indentBehavior;constructor(t,e){super(t),this._indentBehavior=e}refresh(){const t=this.editor.model,e=(0,c.first)(t.document.selection.getSelectedBlocks());e&&this._isIndentationChangeAllowed(e)?this.isEnabled=this._indentBehavior.checkEnabled(e.getAttribute("blockIndent")):this.isEnabled=!1}execute(){const t=this.editor.model,e=this._getBlocksToChange();t.change(t=>{for(const n of e){const e=n.getAttribute("blockIndent"),s=this._indentBehavior.getNextIndent(e);s?t.setAttribute("blockIndent",s,n):t.removeAttribute("blockIndent",n)}})}_getBlocksToChange(){const t=this.editor.model.document.selection;return Array.from(t.getSelectedBlocks()).filter(t=>this._isIndentationChangeAllowed(t))}_isIndentationChangeAllowed(t){const e=this.editor;if(!e.model.schema.checkAttribute(t,"blockIndent"))return!1;if(!e.plugins.has("ListUtils"))return!0;if(!this._indentBehavior.isForward)return!0;return!e.plugins.get("ListUtils").isListItemBlock(t)}}class u{isForward;offset;unit;constructor(t){this.isForward="forward"===t.direction,this.offset=t.offset,this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||"0");return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||"0");if(!(!t||t.endsWith(this.unit)))return this.isForward?this.offset+this.unit:void 0;const n=e+(this.isForward?this.offset:-this.offset);return n>0?n+this.unit:void 0}}class g{isForward;classes;constructor(t){this.isForward="forward"===t.direction,this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);return this.isForward?e<this.classes.length-1:e>=0}getNextIndent(t){const e=this.classes.indexOf(t),n=this.isForward?1:-1;return this.classes[e+n]}}const h=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];class f extends t.Plugin{constructor(t){super(t),t.config.define("indentBlock",{offset:40,unit:"px"})}static get pluginName(){return"IndentBlock"}static get isOfficialPlugin(){return!0}init(){const t=this.editor,e=t.config.get("indentBlock");e.classes&&e.classes.length?(this._setupConversionUsingClasses(e.classes),t.commands.add("indentBlock",new l(t,new g({direction:"forward",classes:e.classes}))),t.commands.add("outdentBlock",new l(t,new g({direction:"backward",classes:e.classes})))):(t.data.addStyleProcessorRules(a.addMarginStylesRules),this._setupConversionUsingOffset(),t.commands.add("indentBlock",new l(t,new u({direction:"forward",offset:e.offset,unit:e.unit}))),t.commands.add("outdentBlock",new l(t,new u({direction:"backward",offset:e.offset,unit:e.unit}))))}afterInit(){const t=this.editor,e=t.model.schema,n=t.commands.get("indent"),s=t.commands.get("outdent"),i=t.config.get("heading.options");(i&&i.map(t=>t.model)||h).forEach(t=>{e.isRegistered(t)&&e.extend(t,{allowAttributes:"blockIndent"})}),e.setAttributeProperties("blockIndent",{isFormatting:!0}),n.registerChildCommand(t.commands.get("indentBlock")),s.registerChildCommand(t.commands.get("outdentBlock"))}_setupConversionUsingOffset(){const t=this.editor.conversion,e="rtl"===this.editor.locale.contentLanguageDirection?"margin-right":"margin-left";t.for("upcast").attributeToAttribute({view:{styles:{[e]:/[\s\S]+/}},model:{key:"blockIndent",value:t=>{if(!t.is("element","li"))return t.getStyle(e)}}}),t.for("downcast").attributeToAttribute({model:"blockIndent",view:t=>({key:"style",value:{[e]:t}})})}_setupConversionUsingClasses(t){const e={model:{key:"blockIndent",values:[]},view:{}};for(const n of t)e.model.values.push(n),e.view[n]={key:"class",value:[n]};this.editor.conversion.attributeToAttribute(e)}}})(),(window.CKEditor5=window.CKEditor5||{}).indent=s})();
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  import { Plugin, MultiCommand, Command } from '@ckeditor/ckeditor5-core/dist/index.js';
6
6
  import { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';
7
7
  import { IconIndent, IconOutdent } from '@ckeditor/ckeditor5-icons/dist/index.js';
8
- import { addMarginRules } from '@ckeditor/ckeditor5-engine/dist/index.js';
8
+ import { addMarginStylesRules } from '@ckeditor/ckeditor5-engine/dist/index.js';
9
9
  import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
10
10
 
11
11
  /**
@@ -220,8 +220,8 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
220
220
  if (!this._indentBehavior.isForward) {
221
221
  return true;
222
222
  }
223
- const documentListUtils = editor.plugins.get('ListUtils');
224
- return !documentListUtils.isListItemBlock(element);
223
+ const listUtils = editor.plugins.get('ListUtils');
224
+ return !listUtils.isListItemBlock(element);
225
225
  }
226
226
  }
227
227
 
@@ -232,6 +232,8 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
232
232
  * @module indent/indentcommandbehavior/indentusingoffset
233
233
  */ /**
234
234
  * The block indentation behavior that uses offsets to set indentation.
235
+ *
236
+ * @internal
235
237
  */ class IndentUsingOffset {
236
238
  /**
237
239
  * The direction of indentation.
@@ -281,6 +283,8 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
281
283
  * @module indent/indentcommandbehavior/indentusingclasses
282
284
  */ /**
283
285
  * The block indentation behavior that uses classes to set indentation.
286
+ *
287
+ * @internal
284
288
  */ class IndentUsingClasses {
285
289
  /**
286
290
  * The direction of indentation.
@@ -368,7 +372,7 @@ const DEFAULT_ELEMENTS = [
368
372
  classes: configuration.classes
369
373
  })));
370
374
  } else {
371
- editor.data.addStyleProcessorRules(addMarginRules);
375
+ editor.data.addStyleProcessorRules(addMarginStylesRules);
372
376
  this._setupConversionUsingOffset();
373
377
  editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({
374
378
  direction: 'forward',
@@ -463,5 +467,5 @@ const DEFAULT_ELEMENTS = [
463
467
  }
464
468
  }
465
469
 
466
- export { Indent, IndentBlock, IndentEditing, IndentUI };
470
+ export { Indent, IndentBlock, IndentBlockCommand, IndentEditing, IndentUI, IndentUsingClasses as _IndentUsingClasses, IndentUsingOffset as _IndentUsingOffset };
467
471
  //# sourceMappingURL=index.js.map
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/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","documentListUtils","isListItemBlock","IndentUsingOffset","offset","unit","config","direction","indentAttributeValue","currentOffset","parseFloat","isSameUnit","endsWith","undefined","nextOffset","offsetToSet","IndentUsingClasses","classes","currentIndex","indexOf","length","indexStep","DEFAULT_ELEMENTS","IndentBlock","define","configuration","_setupConversionUsingClasses","data","addStyleProcessorRules","addMarginRules","_setupConversionUsingOffset","afterInit","indentCommand","outdentCommand","options","configuredElements","map","option","knownElements","forEach","elementName","isRegistered","extend","allowAttributes","setAttributeProperties","isFormatting","registerChildCommand","conversion","marginProperty","contentLanguageDirection","for","attributeToAttribute","styles","key","value","viewElement","is","getStyle","modelAttributeValue","definition","values","className","push"],"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 { addMarginRules } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/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 documentListUtils = editor.plugins.get('ListUtils');\n return !documentListUtils.isListItemBlock(element);\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module indent/indentcommandbehavior/indentusingoffset\n */ /**\n * The block indentation behavior that uses offsets to set indentation.\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 (!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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module indent/indentcommandbehavior/indentusingclasses\n */ /**\n * The block indentation behavior that uses classes to set indentation.\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 return this.classes[currentIndex + indexStep];\n }\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 */ 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(addMarginRules);\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, IndentEditing, IndentUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 default 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 default 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 default 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module indent/indentblockcommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport type { Element } 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 default 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<Element> {\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: Element ): 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 documentListUtils: ListUtils = editor.plugins.get( 'ListUtils' );\n\n\t\treturn !documentListUtils.isListItemBlock( element );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 */\nexport default 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 ( !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\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 */\nexport default 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\n\t\treturn this.classes[ currentIndex + indexStep ];\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module indent/indentblock\n */\n\nimport { Plugin, type Editor, type MultiCommand } from 'ckeditor5/src/core.js';\nimport { addMarginRules, type AttributeDescriptor, type ViewElement } from 'ckeditor5/src/engine.js';\n\nimport IndentBlockCommand from './indentblockcommand.js';\nimport IndentUsingOffset from './indentcommandbehavior/indentusingoffset.js';\nimport IndentUsingClasses from './indentcommandbehavior/indentusingclasses.js';\nimport type { HeadingOption } from '@ckeditor/ckeditor5-heading';\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 default 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 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( addMarginRules );\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, AttributeDescriptor>;\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/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","DEFAULT_ELEMENTS","IndentBlock","define","configuration","_setupConversionUsingClasses","data","addStyleProcessorRules","addMarginStylesRules","_setupConversionUsingOffset","afterInit","indentCommand","outdentCommand","options","configuredElements","map","option","knownElements","forEach","elementName","isRegistered","extend","allowAttributes","setAttributeProperties","isFormatting","registerChildCommand","conversion","marginProperty","contentLanguageDirection","for","attributeToAttribute","styles","key","value","viewElement","is","getStyle","modelAttributeValue","definition","values","className","push"],"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';\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @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 (!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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @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 return this.classes[currentIndex + indexStep];\n }\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 */ 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, IndentEditing, IndentUI, IndentUsingClasses as _IndentUsingClasses, IndentUsingOffset as _IndentUsingOffset };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 ( !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\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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\n\t\treturn this.classes[ currentIndex + indexStep ];\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module 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 { IndentBlockCommand } from './indentblockcommand.js';\nimport { IndentUsingOffset } from './indentcommandbehavior/indentusingoffset.js';\nimport { IndentUsingClasses } from './indentcommandbehavior/indentusingclasses.js';\nimport type { HeadingOption } from '@ckeditor/ckeditor5-heading';\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 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-indent",
3
- "version": "45.2.1-alpha.9",
3
+ "version": "46.0.0-alpha.0",
4
4
  "description": "Block indentation feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,14 +13,14 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "@ckeditor/ckeditor5-core": "45.2.1-alpha.9",
17
- "@ckeditor/ckeditor5-engine": "45.2.1-alpha.9",
18
- "@ckeditor/ckeditor5-icons": "45.2.1-alpha.9",
19
- "@ckeditor/ckeditor5-heading": "45.2.1-alpha.9",
20
- "@ckeditor/ckeditor5-list": "45.2.1-alpha.9",
21
- "@ckeditor/ckeditor5-ui": "45.2.1-alpha.9",
22
- "@ckeditor/ckeditor5-utils": "45.2.1-alpha.9",
23
- "ckeditor5": "45.2.1-alpha.9"
16
+ "@ckeditor/ckeditor5-core": "46.0.0-alpha.0",
17
+ "@ckeditor/ckeditor5-engine": "46.0.0-alpha.0",
18
+ "@ckeditor/ckeditor5-icons": "46.0.0-alpha.0",
19
+ "@ckeditor/ckeditor5-heading": "46.0.0-alpha.0",
20
+ "@ckeditor/ckeditor5-list": "46.0.0-alpha.0",
21
+ "@ckeditor/ckeditor5-ui": "46.0.0-alpha.0",
22
+ "@ckeditor/ckeditor5-utils": "46.0.0-alpha.0",
23
+ "ckeditor5": "46.0.0-alpha.0"
24
24
  },
25
25
  "author": "CKSource (http://cksource.com/)",
26
26
  "license": "SEE LICENSE IN LICENSE.md",
package/src/indent.d.ts CHANGED
@@ -6,8 +6,8 @@
6
6
  * @module indent/indent
7
7
  */
8
8
  import { Plugin } from 'ckeditor5/src/core.js';
9
- import IndentEditing from './indentediting.js';
10
- import IndentUI from './indentui.js';
9
+ import { IndentEditing } from './indentediting.js';
10
+ import { IndentUI } from './indentui.js';
11
11
  /**
12
12
  * The indent feature.
13
13
  *
@@ -28,7 +28,7 @@ import IndentUI from './indentui.js';
28
28
  *
29
29
  * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.
30
30
  */
31
- export default class Indent extends Plugin {
31
+ export declare class Indent extends Plugin {
32
32
  /**
33
33
  * @inheritDoc
34
34
  */
package/src/indent.js CHANGED
@@ -6,8 +6,8 @@
6
6
  * @module indent/indent
7
7
  */
8
8
  import { Plugin } from 'ckeditor5/src/core.js';
9
- import IndentEditing from './indentediting.js';
10
- import IndentUI from './indentui.js';
9
+ import { IndentEditing } from './indentediting.js';
10
+ import { IndentUI } from './indentui.js';
11
11
  /**
12
12
  * The indent feature.
13
13
  *
@@ -28,7 +28,7 @@ import IndentUI from './indentui.js';
28
28
  *
29
29
  * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.
30
30
  */
31
- export default class Indent extends Plugin {
31
+ export class Indent extends Plugin {
32
32
  /**
33
33
  * @inheritDoc
34
34
  */
@@ -14,7 +14,7 @@ import { Plugin, type Editor } from 'ckeditor5/src/core.js';
14
14
  * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to
15
15
  * the `'indent'` and `'outdent'` commands.
16
16
  */
17
- export default class IndentBlock extends Plugin {
17
+ export declare class IndentBlock extends Plugin {
18
18
  /**
19
19
  * @inheritDoc
20
20
  */
@@ -6,10 +6,10 @@
6
6
  * @module indent/indentblock
7
7
  */
8
8
  import { Plugin } from 'ckeditor5/src/core.js';
9
- import { addMarginRules } from 'ckeditor5/src/engine.js';
10
- import IndentBlockCommand from './indentblockcommand.js';
11
- import IndentUsingOffset from './indentcommandbehavior/indentusingoffset.js';
12
- import IndentUsingClasses from './indentcommandbehavior/indentusingclasses.js';
9
+ import { addMarginStylesRules } from 'ckeditor5/src/engine.js';
10
+ import { IndentBlockCommand } from './indentblockcommand.js';
11
+ import { IndentUsingOffset } from './indentcommandbehavior/indentusingoffset.js';
12
+ import { IndentUsingClasses } from './indentcommandbehavior/indentusingclasses.js';
13
13
  const DEFAULT_ELEMENTS = ['paragraph', 'heading1', 'heading2', 'heading3', 'heading4', 'heading5', 'heading6'];
14
14
  /**
15
15
  * The block indentation feature.
@@ -19,7 +19,7 @@ const DEFAULT_ELEMENTS = ['paragraph', 'heading1', 'heading2', 'heading3', 'head
19
19
  * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to
20
20
  * the `'indent'` and `'outdent'` commands.
21
21
  */
22
- export default class IndentBlock extends Plugin {
22
+ export class IndentBlock extends Plugin {
23
23
  /**
24
24
  * @inheritDoc
25
25
  */
@@ -60,7 +60,7 @@ export default class IndentBlock extends Plugin {
60
60
  })));
61
61
  }
62
62
  else {
63
- editor.data.addStyleProcessorRules(addMarginRules);
63
+ editor.data.addStyleProcessorRules(addMarginStylesRules);
64
64
  this._setupConversionUsingOffset();
65
65
  editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({
66
66
  direction: 'forward',
@@ -25,7 +25,7 @@ import type { IndentBehavior } from './indentcommandbehavior/indentbehavior.js';
25
25
  * editor.execute( 'outdentBlock' );
26
26
  * ```
27
27
  */
28
- export default class IndentBlockCommand extends Command {
28
+ export declare class IndentBlockCommand extends Command {
29
29
  /**
30
30
  * The command's indentation behavior.
31
31
  */
@@ -25,7 +25,7 @@ import { first } from 'ckeditor5/src/utils.js';
25
25
  * editor.execute( 'outdentBlock' );
26
26
  * ```
27
27
  */
28
- export default class IndentBlockCommand extends Command {
28
+ export class IndentBlockCommand extends Command {
29
29
  /**
30
30
  * The command's indentation behavior.
31
31
  */
@@ -96,7 +96,7 @@ export default class IndentBlockCommand extends Command {
96
96
  if (!this._indentBehavior.isForward) {
97
97
  return true;
98
98
  }
99
- const documentListUtils = editor.plugins.get('ListUtils');
100
- return !documentListUtils.isListItemBlock(element);
99
+ const listUtils = editor.plugins.get('ListUtils');
100
+ return !listUtils.isListItemBlock(element);
101
101
  }
102
102
  }
@@ -8,8 +8,10 @@
8
8
  import type { IndentBehavior } from './indentbehavior.js';
9
9
  /**
10
10
  * The block indentation behavior that uses classes to set indentation.
11
+ *
12
+ * @internal
11
13
  */
12
- export default class IndentUsingClasses implements IndentBehavior {
14
+ export declare class IndentUsingClasses implements IndentBehavior {
13
15
  /**
14
16
  * The direction of indentation.
15
17
  */
@@ -4,8 +4,10 @@
4
4
  */
5
5
  /**
6
6
  * The block indentation behavior that uses classes to set indentation.
7
+ *
8
+ * @internal
7
9
  */
8
- export default class IndentUsingClasses {
10
+ export class IndentUsingClasses {
9
11
  /**
10
12
  * The direction of indentation.
11
13
  */
@@ -8,8 +8,10 @@
8
8
  import type { IndentBehavior } from './indentbehavior.js';
9
9
  /**
10
10
  * The block indentation behavior that uses offsets to set indentation.
11
+ *
12
+ * @internal
11
13
  */
12
- export default class IndentUsingOffset implements IndentBehavior {
14
+ export declare class IndentUsingOffset implements IndentBehavior {
13
15
  /**
14
16
  * The direction of indentation.
15
17
  */
@@ -4,8 +4,10 @@
4
4
  */
5
5
  /**
6
6
  * The block indentation behavior that uses offsets to set indentation.
7
+ *
8
+ * @internal
7
9
  */
8
- export default class IndentUsingOffset {
10
+ export class IndentUsingOffset {
9
11
  /**
10
12
  * The direction of indentation.
11
13
  */
@@ -14,7 +14,7 @@ import { Plugin } from 'ckeditor5/src/core.js';
14
14
  * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the
15
15
  * {@link module:indent/indent~Indent indent feature} API documentation.
16
16
  */
17
- export default class IndentEditing extends Plugin {
17
+ export declare class IndentEditing extends Plugin {
18
18
  /**
19
19
  * @inheritDoc
20
20
  */
@@ -14,7 +14,7 @@ import { Plugin, MultiCommand } from 'ckeditor5/src/core.js';
14
14
  * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the
15
15
  * {@link module:indent/indent~Indent indent feature} API documentation.
16
16
  */
17
- export default class IndentEditing extends Plugin {
17
+ export class IndentEditing extends Plugin {
18
18
  /**
19
19
  * @inheritDoc
20
20
  */
package/src/indentui.d.ts CHANGED
@@ -11,7 +11,7 @@ import { Plugin } from 'ckeditor5/src/core.js';
11
11
  * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in
12
12
  * the {@link module:indent/indent~Indent indent feature} API documentation.
13
13
  */
14
- export default class IndentUI extends Plugin {
14
+ export declare class IndentUI extends Plugin {
15
15
  /**
16
16
  * @inheritDoc
17
17
  */
package/src/indentui.js CHANGED
@@ -16,7 +16,7 @@ import { IconIndent, IconOutdent } from 'ckeditor5/src/icons.js';
16
16
  * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in
17
17
  * the {@link module:indent/indent~Indent indent feature} API documentation.
18
18
  */
19
- export default class IndentUI extends Plugin {
19
+ export class IndentUI extends Plugin {
20
20
  /**
21
21
  * @inheritDoc
22
22
  */
package/src/index.d.ts CHANGED
@@ -5,10 +5,13 @@
5
5
  /**
6
6
  * @module indent
7
7
  */
8
- export { default as Indent } from './indent.js';
9
- export { default as IndentEditing } from './indentediting.js';
10
- export { default as IndentUI } from './indentui.js';
11
- export { default as IndentBlock } from './indentblock.js';
8
+ export { Indent } from './indent.js';
9
+ export { IndentEditing } from './indentediting.js';
10
+ export { IndentUI } from './indentui.js';
11
+ export { IndentBlock } from './indentblock.js';
12
+ export { IndentBlockCommand } from './indentblockcommand.js';
12
13
  export type { IndentBlockConfig } from './indentconfig.js';
13
- export type { default as IndentBlockCommand } from './indentblockcommand.js';
14
+ export type { IndentBehavior } from './indentcommandbehavior/indentbehavior.js';
15
+ export { IndentUsingClasses as _IndentUsingClasses } from './indentcommandbehavior/indentusingclasses.js';
16
+ export { IndentUsingOffset as _IndentUsingOffset } from './indentcommandbehavior/indentusingoffset.js';
14
17
  import './augmentation.js';
package/src/index.js CHANGED
@@ -5,8 +5,11 @@
5
5
  /**
6
6
  * @module indent
7
7
  */
8
- export { default as Indent } from './indent.js';
9
- export { default as IndentEditing } from './indentediting.js';
10
- export { default as IndentUI } from './indentui.js';
11
- export { default as IndentBlock } from './indentblock.js';
8
+ export { Indent } from './indent.js';
9
+ export { IndentEditing } from './indentediting.js';
10
+ export { IndentUI } from './indentui.js';
11
+ export { IndentBlock } from './indentblock.js';
12
+ export { IndentBlockCommand } from './indentblockcommand.js';
13
+ export { IndentUsingClasses as _IndentUsingClasses } from './indentcommandbehavior/indentusingclasses.js';
14
+ export { IndentUsingOffset as _IndentUsingOffset } from './indentcommandbehavior/indentusingoffset.js';
12
15
  import './augmentation.js';