@ckeditor/ckeditor5-indent 0.0.0-nightly-20240603.0 → 0.0.0-nightly-20240604.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/README.md CHANGED
@@ -15,12 +15,6 @@ Check out the [demo in the Block indentation feature guide](https://ckeditor.com
15
15
 
16
16
  See the [`@ckeditor/ckeditor5-indent` package](https://ckeditor.com/docs/ckeditor5/latest/api/indent.html) page in [CKEditor 5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
17
17
 
18
- ## Installation
19
-
20
- ```bash
21
- npm install ckeditor5
22
- ```
23
-
24
18
  ## License
25
19
 
26
20
  Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
package/dist/index.js CHANGED
@@ -7,44 +7,30 @@ import { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-u
7
7
  import { addMarginRules } from '@ckeditor/ckeditor5-engine/dist/index.js';
8
8
  import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
9
9
 
10
- /**
11
- * The indent editing feature.
12
- *
13
- * This plugin registers the `'indent'` and `'outdent'` commands.
14
- *
15
- * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the
16
- * {@link module:indent/indent~Indent indent feature} API documentation.
17
- */ class IndentEditing extends Plugin {
10
+ class IndentEditing extends Plugin {
18
11
  /**
19
- * @inheritDoc
20
- */ static get pluginName() {
12
+ * @inheritDoc
13
+ */ static get pluginName() {
21
14
  return 'IndentEditing';
22
15
  }
23
16
  /**
24
- * @inheritDoc
25
- */ init() {
17
+ * @inheritDoc
18
+ */ init() {
26
19
  const editor = this.editor;
27
20
  editor.commands.add('indent', new MultiCommand(editor));
28
21
  editor.commands.add('outdent', new MultiCommand(editor));
29
22
  }
30
23
  }
31
24
 
32
- /**
33
- * The indent UI feature.
34
- *
35
- * This plugin registers the `'indent'` and `'outdent'` buttons.
36
- *
37
- * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in
38
- * the {@link module:indent/indent~Indent indent feature} API documentation.
39
- */ class IndentUI extends Plugin {
25
+ class IndentUI extends Plugin {
40
26
  /**
41
- * @inheritDoc
42
- */ static get pluginName() {
27
+ * @inheritDoc
28
+ */ static get pluginName() {
43
29
  return 'IndentUI';
44
30
  }
45
31
  /**
46
- * @inheritDoc
47
- */ init() {
32
+ * @inheritDoc
33
+ */ init() {
48
34
  const editor = this.editor;
49
35
  const locale = editor.locale;
50
36
  const t = editor.t;
@@ -54,8 +40,8 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
54
40
  this._defineButton('outdent', t('Decrease indent'), localizedOutdentIcon);
55
41
  }
56
42
  /**
57
- * Defines UI buttons for both toolbar and menu bar.
58
- */ _defineButton(commandName, label, icon) {
43
+ * Defines UI buttons for both toolbar and menu bar.
44
+ */ _defineButton(commandName, label, icon) {
59
45
  const editor = this.editor;
60
46
  editor.ui.componentFactory.add(commandName, ()=>{
61
47
  const buttonView = this._createButton(ButtonView, commandName, label, icon);
@@ -69,8 +55,8 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
69
55
  });
70
56
  }
71
57
  /**
72
- * Creates a button to use either in toolbar or in menu bar.
73
- */ _createButton(ButtonClass, commandName, label, icon) {
58
+ * Creates a button to use either in toolbar or in menu bar.
59
+ */ _createButton(ButtonClass, commandName, label, icon) {
74
60
  const editor = this.editor;
75
61
  const command = editor.commands.get(commandName);
76
62
  const view = new ButtonClass(editor.locale);
@@ -88,34 +74,15 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
88
74
  }
89
75
  }
90
76
 
91
- /**
92
- * The indent feature.
93
- *
94
- * This plugin acts as a single entry point plugin for other features that implement indentation of elements like lists or paragraphs.
95
- *
96
- * The compatible features are:
97
- *
98
- * * The {@link module:list/list~List} or {@link module:list/list/listediting~ListEditing} feature for list indentation.
99
- * * The {@link module:indent/indentblock~IndentBlock} feature for block indentation.
100
- *
101
- * This is a "glue" plugin that loads the following plugins:
102
- *
103
- * * The {@link module:indent/indentediting~IndentEditing indent editing feature}.
104
- * * The {@link module:indent/indentui~IndentUI indent UI feature}.
105
- *
106
- * The dependent plugins register the `'indent'` and `'outdent'` commands and introduce the `'indent'` and `'outdent'` buttons
107
- * that allow to increase or decrease text indentation of supported elements.
108
- *
109
- * **Note**: In order for the commands and buttons to work, at least one of compatible features is required.
110
- */ class Indent extends Plugin {
77
+ class Indent extends Plugin {
111
78
  /**
112
- * @inheritDoc
113
- */ static get pluginName() {
79
+ * @inheritDoc
80
+ */ static get pluginName() {
114
81
  return 'Indent';
115
82
  }
116
83
  /**
117
- * @inheritDoc
118
- */ static get requires() {
84
+ * @inheritDoc
85
+ */ static get requires() {
119
86
  return [
120
87
  IndentEditing,
121
88
  IndentUI
@@ -123,36 +90,10 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
123
90
  }
124
91
  }
125
92
 
126
- /**
127
- * The indent block command.
128
- *
129
- * The command is registered by the {@link module:indent/indentblock~IndentBlock} as `'indentBlock'` for indenting blocks and
130
- * `'outdentBlock'` for outdenting blocks.
131
- *
132
- * To increase block indentation at the current selection, execute the command:
133
- *
134
- * ```ts
135
- * editor.execute( 'indentBlock' );
136
- * ```
137
- *
138
- * To decrease block indentation at the current selection, execute the command:
139
- *
140
- * ```ts
141
- * editor.execute( 'outdentBlock' );
142
- * ```
143
- */ class IndentBlockCommand extends Command {
144
- /**
145
- * The command's indentation behavior.
146
- */ _indentBehavior;
147
- /**
148
- * Creates an instance of the command.
149
- */ constructor(editor, indentBehavior){
150
- super(editor);
151
- this._indentBehavior = indentBehavior;
152
- }
93
+ class IndentBlockCommand extends Command {
153
94
  /**
154
- * @inheritDoc
155
- */ refresh() {
95
+ * @inheritDoc
96
+ */ refresh() {
156
97
  const editor = this.editor;
157
98
  const model = editor.model;
158
99
  const block = first(model.document.selection.getSelectedBlocks());
@@ -163,8 +104,8 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
163
104
  this.isEnabled = this._indentBehavior.checkEnabled(block.getAttribute('blockIndent'));
164
105
  }
165
106
  /**
166
- * @inheritDoc
167
- */ execute() {
107
+ * @inheritDoc
108
+ */ execute() {
168
109
  const model = this.editor.model;
169
110
  const blocksToChange = this._getBlocksToChange();
170
111
  model.change((writer)=>{
@@ -180,19 +121,19 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
180
121
  });
181
122
  }
182
123
  /**
183
- * Returns blocks from selection that should have blockIndent selection set.
184
- */ _getBlocksToChange() {
124
+ * Returns blocks from selection that should have blockIndent selection set.
125
+ */ _getBlocksToChange() {
185
126
  const model = this.editor.model;
186
127
  const selection = model.document.selection;
187
128
  const blocksInSelection = Array.from(selection.getSelectedBlocks());
188
129
  return blocksInSelection.filter((block)=>this._isIndentationChangeAllowed(block));
189
130
  }
190
131
  /**
191
- * Returns false if indentation cannot be applied, i.e.:
192
- * - for blocks disallowed by schema declaration
193
- * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.
194
- * Otherwise returns true.
195
- */ _isIndentationChangeAllowed(element) {
132
+ * Returns false if indentation cannot be applied, i.e.:
133
+ * - for blocks disallowed by schema declaration
134
+ * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.
135
+ * Otherwise returns true.
136
+ */ _isIndentationChangeAllowed(element) {
196
137
  const editor = this.editor;
197
138
  if (!editor.model.schema.checkAttribute(element, 'blockIndent')) {
198
139
  return false;
@@ -207,46 +148,30 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
207
148
  const documentListUtils = editor.plugins.get('ListUtils');
208
149
  return !documentListUtils.isListItemBlock(element);
209
150
  }
151
+ /**
152
+ * Creates an instance of the command.
153
+ */ constructor(editor, indentBehavior){
154
+ super(editor);
155
+ this._indentBehavior = indentBehavior;
156
+ }
210
157
  }
211
158
 
212
159
  /**
213
160
  * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
214
161
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
215
162
  */ /**
216
- * @module indent/indentcommandbehavior/indentusingoffset
217
- */ /**
218
163
  * The block indentation behavior that uses offsets to set indentation.
219
164
  */ class IndentUsingOffset {
220
165
  /**
221
- * The direction of indentation.
222
- */ isForward;
223
- /**
224
- * The offset of the next indentation step.
225
- */ offset;
226
- /**
227
- * Indentation unit.
228
- */ unit;
229
- /**
230
- * Creates an instance of the indentation behavior.
231
- *
232
- * @param config.direction The direction of indentation.
233
- * @param config.offset The offset of the next indentation step.
234
- * @param config.unit Indentation unit.
235
- */ constructor(config){
236
- this.isForward = config.direction === 'forward';
237
- this.offset = config.offset;
238
- this.unit = config.unit;
239
- }
240
- /**
241
- * @inheritDoc
242
- */ checkEnabled(indentAttributeValue) {
166
+ * @inheritDoc
167
+ */ checkEnabled(indentAttributeValue) {
243
168
  const currentOffset = parseFloat(indentAttributeValue || '0');
244
169
  // The command is always enabled for forward indentation.
245
170
  return this.isForward || currentOffset > 0;
246
171
  }
247
172
  /**
248
- * @inheritDoc
249
- */ getNextIndent(indentAttributeValue) {
173
+ * @inheritDoc
174
+ */ getNextIndent(indentAttributeValue) {
250
175
  const currentOffset = parseFloat(indentAttributeValue || '0');
251
176
  const isSameUnit = !indentAttributeValue || indentAttributeValue.endsWith(this.unit);
252
177
  if (!isSameUnit) {
@@ -256,34 +181,28 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
256
181
  const offsetToSet = currentOffset + nextOffset;
257
182
  return offsetToSet > 0 ? offsetToSet + this.unit : undefined;
258
183
  }
184
+ /**
185
+ * Creates an instance of the indentation behavior.
186
+ *
187
+ * @param config.direction The direction of indentation.
188
+ * @param config.offset The offset of the next indentation step.
189
+ * @param config.unit Indentation unit.
190
+ */ constructor(config){
191
+ this.isForward = config.direction === 'forward';
192
+ this.offset = config.offset;
193
+ this.unit = config.unit;
194
+ }
259
195
  }
260
196
 
261
197
  /**
262
198
  * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
263
199
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
264
200
  */ /**
265
- * @module indent/indentcommandbehavior/indentusingclasses
266
- */ /**
267
201
  * The block indentation behavior that uses classes to set indentation.
268
202
  */ class IndentUsingClasses {
269
203
  /**
270
- * The direction of indentation.
271
- */ isForward;
272
- /**
273
- * A list of classes used for indentation.
274
- */ classes;
275
- /**
276
- * Creates an instance of the indentation behavior.
277
- *
278
- * @param config.direction The direction of indentation.
279
- * @param config.classes A list of classes used for indentation.
280
- */ constructor(config){
281
- this.isForward = config.direction === 'forward';
282
- this.classes = config.classes;
283
- }
284
- /**
285
- * @inheritDoc
286
- */ checkEnabled(indentAttributeValue) {
204
+ * @inheritDoc
205
+ */ checkEnabled(indentAttributeValue) {
287
206
  const currentIndex = this.classes.indexOf(indentAttributeValue);
288
207
  if (this.isForward) {
289
208
  return currentIndex < this.classes.length - 1;
@@ -292,12 +211,21 @@ import { first } from '@ckeditor/ckeditor5-utils/dist/index.js';
292
211
  }
293
212
  }
294
213
  /**
295
- * @inheritDoc
296
- */ getNextIndent(indentAttributeValue) {
214
+ * @inheritDoc
215
+ */ getNextIndent(indentAttributeValue) {
297
216
  const currentIndex = this.classes.indexOf(indentAttributeValue);
298
217
  const indexStep = this.isForward ? 1 : -1;
299
218
  return this.classes[currentIndex + indexStep];
300
219
  }
220
+ /**
221
+ * Creates an instance of the indentation behavior.
222
+ *
223
+ * @param config.direction The direction of indentation.
224
+ * @param config.classes A list of classes used for indentation.
225
+ */ constructor(config){
226
+ this.isForward = config.direction === 'forward';
227
+ this.classes = config.classes;
228
+ }
301
229
  }
302
230
 
303
231
  const DEFAULT_ELEMENTS = [
@@ -309,31 +237,15 @@ const DEFAULT_ELEMENTS = [
309
237
  'heading5',
310
238
  'heading6'
311
239
  ];
312
- /**
313
- * The block indentation feature.
314
- *
315
- * It registers the `'indentBlock'` and `'outdentBlock'` commands.
316
- *
317
- * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to
318
- * the `'indent'` and `'outdent'` commands.
319
- */ class IndentBlock extends Plugin {
320
- /**
321
- * @inheritDoc
322
- */ constructor(editor){
323
- super(editor);
324
- editor.config.define('indentBlock', {
325
- offset: 40,
326
- unit: 'px'
327
- });
328
- }
240
+ class IndentBlock extends Plugin {
329
241
  /**
330
- * @inheritDoc
331
- */ static get pluginName() {
242
+ * @inheritDoc
243
+ */ static get pluginName() {
332
244
  return 'IndentBlock';
333
245
  }
334
246
  /**
335
- * @inheritDoc
336
- */ init() {
247
+ * @inheritDoc
248
+ */ init() {
337
249
  const editor = this.editor;
338
250
  const configuration = editor.config.get('indentBlock');
339
251
  if (configuration.classes && configuration.classes.length) {
@@ -362,8 +274,8 @@ const DEFAULT_ELEMENTS = [
362
274
  }
363
275
  }
364
276
  /**
365
- * @inheritDoc
366
- */ afterInit() {
277
+ * @inheritDoc
278
+ */ afterInit() {
367
279
  const editor = this.editor;
368
280
  const schema = editor.model.schema;
369
281
  const indentCommand = editor.commands.get('indent');
@@ -386,8 +298,8 @@ const DEFAULT_ELEMENTS = [
386
298
  outdentCommand.registerChildCommand(editor.commands.get('outdentBlock'));
387
299
  }
388
300
  /**
389
- * Setups conversion for using offset indents.
390
- */ _setupConversionUsingOffset() {
301
+ * Setups conversion for using offset indents.
302
+ */ _setupConversionUsingOffset() {
391
303
  const conversion = this.editor.conversion;
392
304
  const locale = this.editor.locale;
393
305
  const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';
@@ -420,8 +332,8 @@ const DEFAULT_ELEMENTS = [
420
332
  });
421
333
  }
422
334
  /**
423
- * Setups conversion for using classes.
424
- */ _setupConversionUsingClasses(classes) {
335
+ * Setups conversion for using classes.
336
+ */ _setupConversionUsingClasses(classes) {
425
337
  const definition = {
426
338
  model: {
427
339
  key: 'blockIndent',
@@ -440,6 +352,15 @@ const DEFAULT_ELEMENTS = [
440
352
  }
441
353
  this.editor.conversion.attributeToAttribute(definition);
442
354
  }
355
+ /**
356
+ * @inheritDoc
357
+ */ constructor(editor){
358
+ super(editor);
359
+ editor.config.define('indentBlock', {
360
+ offset: 40,
361
+ unit: 'px'
362
+ });
363
+ }
443
364
  }
444
365
 
445
366
  export { Indent, IndentBlock, IndentEditing, IndentUI };
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","editor","commands","add","MultiCommand","IndentUI","locale","t","localizedIndentIcon","uiLanguageDirection","icons","indent","outdent","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","constructor","indentBehavior","_indentBehavior","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","config","direction","offset","unit","indentAttributeValue","currentOffset","parseFloat","isSameUnit","endsWith","undefined","nextOffset","offsetToSet","IndentUsingClasses","classes","currentIndex","indexOf","length","indexStep","DEFAULT_ELEMENTS","IndentBlock","define","configuration","_setupConversionUsingClasses","data","addStyleProcessorRules","addMarginRules","_setupConversionUsingOffset","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, icons, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/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 */ 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 */ init() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = editor.t;\n const localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? icons.indent : icons.outdent;\n const localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? icons.outdent : icons.indent;\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 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 */ 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module indent/indentui\n */\n\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { icons, Plugin } from 'ckeditor5/src/core.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 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' ? icons.indent : icons.outdent;\n\t\tconst localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? icons.outdent : icons.indent;\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 get requires() {\n\t\treturn [ IndentEditing, IndentUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 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","init","editor","commands","add","MultiCommand","IndentUI","locale","t","localizedIndentIcon","uiLanguageDirection","icons","indent","outdent","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","refresh","model","block","first","document","selection","getSelectedBlocks","_isIndentationChangeAllowed","isEnabled","_indentBehavior","checkEnabled","getAttribute","blocksToChange","_getBlocksToChange","change","writer","currentIndent","nextIndent","getNextIndent","setAttribute","removeAttribute","blocksInSelection","Array","from","filter","element","schema","checkAttribute","plugins","has","isForward","documentListUtils","isListItemBlock","constructor","indentBehavior","IndentUsingOffset","indentAttributeValue","currentOffset","parseFloat","isSameUnit","endsWith","unit","offset","undefined","nextOffset","offsetToSet","config","direction","IndentUsingClasses","currentIndex","classes","indexOf","length","indexStep","DEFAULT_ELEMENTS","IndentBlock","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","define"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, MultiCommand, icons, Command } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { addMarginRules } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { first } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\nclass IndentEditing extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'IndentEditing';\n }\n /**\n * @inheritDoc\n */ 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\nclass IndentUI extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'IndentUI';\n }\n /**\n * @inheritDoc\n */ init() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = editor.t;\n const localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? icons.indent : icons.outdent;\n const localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? icons.outdent : icons.indent;\n this._defineButton('indent', t('Increase indent'), localizedIndentIcon);\n this._defineButton('outdent', t('Decrease indent'), localizedOutdentIcon);\n }\n /**\n * Defines UI buttons for both toolbar and menu bar.\n */ _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 * Creates a button to use either in toolbar or in menu bar.\n */ _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\nclass Indent extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'Indent';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n IndentEditing,\n IndentUI\n ];\n }\n}\n\nclass IndentBlockCommand extends Command {\n /**\n * @inheritDoc\n */ 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 * @inheritDoc\n */ 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 * Returns blocks from selection that should have blockIndent selection set.\n */ _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 * Returns false if indentation cannot be applied, i.e.:\n * - for blocks disallowed by schema declaration\n * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.\n * Otherwise returns true.\n */ _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 * Creates an instance of the command.\n */ constructor(editor, indentBehavior){\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */ /**\n * The block indentation behavior that uses offsets to set indentation.\n */ class IndentUsingOffset {\n /**\n * @inheritDoc\n */ 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 * @inheritDoc\n */ 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 * Creates an instance of the indentation behavior.\n *\n * @param config.direction The direction of indentation.\n * @param config.offset The offset of the next indentation step.\n * @param config.unit Indentation unit.\n */ constructor(config){\n this.isForward = config.direction === 'forward';\n this.offset = config.offset;\n this.unit = config.unit;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */ /**\n * The block indentation behavior that uses classes to set indentation.\n */ class IndentUsingClasses {\n /**\n * @inheritDoc\n */ 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 * @inheritDoc\n */ 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 * Creates an instance of the indentation behavior.\n *\n * @param config.direction The direction of indentation.\n * @param config.classes A list of classes used for indentation.\n */ constructor(config){\n this.isForward = config.direction === 'forward';\n this.classes = config.classes;\n }\n}\n\nconst DEFAULT_ELEMENTS = [\n 'paragraph',\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6'\n];\nclass IndentBlock extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'IndentBlock';\n }\n /**\n * @inheritDoc\n */ 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 * @inheritDoc\n */ 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 * Setups conversion for using offset indents.\n */ _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 * Setups conversion for using classes.\n */ _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 * @inheritDoc\n */ constructor(editor){\n super(editor);\n editor.config.define('indentBlock', {\n offset: 40,\n unit: 'px'\n });\n }\n}\n\nexport { Indent, IndentBlock, IndentEditing, IndentUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module indent/indentui\n */\n\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { icons, Plugin } from 'ckeditor5/src/core.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 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' ? icons.indent : icons.outdent;\n\t\tconst localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? icons.outdent : icons.indent;\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 get requires() {\n\t\treturn [ IndentEditing, IndentUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-indent",
3
- "version": "0.0.0-nightly-20240603.0",
3
+ "version": "0.0.0-nightly-20240604.0",
4
4
  "description": "Block indentation feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,7 +13,7 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "0.0.0-nightly-20240603.0"
16
+ "ckeditor5": "0.0.0-nightly-20240604.0"
17
17
  },
18
18
  "author": "CKSource (http://cksource.com/)",
19
19
  "license": "GPL-2.0-or-later",