ckeditor5-image-upload-base64
Version:
The development environment of CKEditor 5 – the best browser-based rich text editor.
62 lines (54 loc) • 1.46 kB
JavaScript
/**
* @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
/**
* @module indent/indentcommandbehavior/indentusingclasses
*/
/**
* The block indentation behavior that uses classes to set indentation.
*
* @implements module:indent/indentblockcommand~IndentBehavior
*/
export default class IndentUsingClasses {
/**
* Creates an instance of the indentation behavior.
*
* @param {Object} config
* @param {String} config.direction The direction of indentation.
* @param {Array.<String>} config.classes A list of classes used for indentation.
*/
constructor( config ) {
/**
* The direction of indentation.
*
* @type {Boolean}
*/
this.isForward = config.direction === 'forward';
/**
* A list of classes used for indentation.
*
* @type {Array.<String>}
*/
this.classes = config.classes;
}
/**
* @inheritDoc
*/
checkEnabled( indentAttributeValue ) {
const currentIndex = this.classes.indexOf( indentAttributeValue );
if ( this.isForward ) {
return currentIndex < this.classes.length - 1;
} else {
return currentIndex >= 0;
}
}
/**
* @inheritDoc
*/
getNextIndent( indentAttributeValue ) {
const currentIndex = this.classes.indexOf( indentAttributeValue );
const indexStep = this.isForward ? 1 : -1;
return this.classes[ currentIndex + indexStep ];
}
}