| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/public/plugins/@ckeditor/ckeditor5-alignment/src/ |
Upload File : |
/**
* @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 alignment/alignmentediting
*/
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
import AlignmentCommand from './alignmentcommand';
import { isDefault, isSupported, supportedOptions } from './utils';
/**
* The alignment editing feature. It introduces the {@link module:alignment/alignmentcommand~AlignmentCommand command} and adds
* the `alignment` attribute for block elements in the {@link module:engine/model/model~Model model}.
* @extends module:core/plugin~Plugin
*/
export default class AlignmentEditing extends Plugin {
/**
* @inheritDoc
*/
static get pluginName() {
return 'AlignmentEditing';
}
/**
* @inheritDoc
*/
constructor( editor ) {
super( editor );
editor.config.define( 'alignment', {
options: [ ...supportedOptions ]
} );
}
/**
* @inheritDoc
*/
init() {
const editor = this.editor;
const locale = editor.locale;
const schema = editor.model.schema;
// Filter out unsupported options.
const enabledOptions = editor.config.get( 'alignment.options' ).filter( isSupported );
// Allow alignment attribute on all blocks.
schema.extend( '$block', { allowAttributes: 'alignment' } );
editor.model.schema.setAttributeProperties( 'alignment', { isFormatting: true } );
const definition = _buildDefinition( enabledOptions.filter( option => !isDefault( option, locale ) ) );
editor.conversion.attributeToAttribute( definition );
editor.commands.add( 'alignment', new AlignmentCommand( editor ) );
}
}
// Utility function responsible for building converter definition.
// @private
function _buildDefinition( options ) {
const definition = {
model: {
key: 'alignment',
values: options.slice()
},
view: {}
};
for ( const option of options ) {
definition.view[ option ] = {
key: 'style',
value: {
'text-align': option
}
};
}
return definition;
}