| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /**
- * @module image/image/imageresize
- */
- import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
- import WidgetResizer from '@ckeditor/ckeditor5-widget/src/widgetresizer';
- /**
- * Image resize plugin.
- *
- * @extends module:core/plugin~Plugin
- */
- export default class ImageResize extends Plugin {
- /**
- * @inheritDoc
- */
- static get requires() {
- return [ WidgetResizer ];
- }
- /**
- * @inheritDoc
- */
- static get pluginName() {
- return 'ImageResize';
- }
- /**
- * @inheritDoc
- */
- init() {
- const editor = this.editor;
- editor.editing.downcastDispatcher.on( 'insert:image', ( evt, data, conversionApi ) => {
- const widget = conversionApi.mapper.toViewElement( data.item );
- editor.plugins.get( 'WidgetResizer' ).apply( widget, conversionApi.writer, {
- getResizeHost( wrapper ) {
- return wrapper.querySelector( 'img' );
- },
- getAspectRatio( resizeHost ) {
- return resizeHost.naturalWidth / resizeHost.naturalHeight;
- },
- isCentered( context ) {
- const imageStyle = context._getModel( editor, context.widgetWrapperElement ).getAttribute( 'imageStyle' );
- return !imageStyle || imageStyle == 'full';
- }
- } );
- }, {
- priority: 'low'
- } );
- }
- }
|