8
0
Просмотр исходного кода

Remove Position, Range, Selection imports from view/model.

Maciej Gołaszewski 7 лет назад
Родитель
Сommit
5f21c586d7

+ 2 - 4
packages/ckeditor5-image/src/image/imageediting.js

@@ -21,12 +21,10 @@ import { toImageWidget } from './utils';
 import { downcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/downcast-converters';
 import { upcastElementToElement, upcastAttributeToAttribute } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
 
-import ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
-
 /**
  * The image engine plugin.
  * It registers `<image>` as a block element in the document schema, and allows `alt`, `src` and `srcset` attributes.
- * It also egisters converters for editing and data pipelines.
+ * It also registers converters for editing and data pipelines.
  *
  * @extends module:core/plugin~Plugin
  */
@@ -120,7 +118,7 @@ export function createImageViewElement( writer ) {
 	const emptyElement = writer.createEmptyElement( 'img' );
 	const figure = writer.createContainerElement( 'figure', { class: 'image' } );
 
-	writer.insert( ViewPosition.createAt( figure, 0 ), emptyElement );
+	writer.insert( writer.createPositionAt( figure, 0 ), emptyElement );
 
 	return figure;
 }

+ 1 - 2
packages/ckeditor5-image/src/imagecaption/imagecaptionediting.js

@@ -8,7 +8,6 @@
  */
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
-import ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
 import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
 import { isImage } from '../image/utils';
 import {
@@ -240,7 +239,7 @@ function captionModelToView( elementCreator, hide = true ) {
 // @param {module:engine/view/containerelement~ContainerElement} viewImage
 // @param {Object} conversionApi
 function insertViewCaptionAndBind( viewCaption, modelCaption, viewImage, conversionApi ) {
-	const viewPosition = ViewPosition.createAt( viewImage, 'end' );
+	const viewPosition = conversionApi.writer.createPositionAt( viewImage, 'end' );
 
 	conversionApi.writer.insert( viewPosition, viewCaption );
 	conversionApi.mapper.bindElements( modelCaption, viewCaption );

+ 6 - 9
packages/ckeditor5-image/src/imageupload/imageuploadprogress.js

@@ -12,9 +12,6 @@
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';
 import uploadingPlaceholder from '../../theme/icons/image_placeholder.svg';
-import UIElement from '@ckeditor/ckeditor5-engine/src/view/uielement';
-import ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
-import ViewRange from '@ckeditor/ckeditor5-engine/src/view/range';
 import env from '@ckeditor/ckeditor5-utils/src/env';
 
 import '../../theme/imageuploadprogress.css';
@@ -159,7 +156,7 @@ function _showPlaceholder( placeholder, viewFigure, writer ) {
 	}
 
 	if ( !_getUIElement( viewFigure, placeholderSymbol ) ) {
-		writer.insert( ViewPosition.createAfter( viewImg ), _createPlaceholder( writer ) );
+		writer.insert( writer.createPositionAfter( viewImg ), _createPlaceholder( writer ) );
 	}
 }
 
@@ -184,7 +181,7 @@ function _hidePlaceholder( viewFigure, writer ) {
 // @param {module:engine/view/view~View} view
 function _showProgressBar( viewFigure, writer, loader, view ) {
 	const progressBar = _createProgressBar( writer );
-	writer.insert( ViewPosition.createAt( viewFigure, 'end' ), progressBar );
+	writer.insert( writer.createPositionAt( viewFigure, 'end' ), progressBar );
 
 	// Update progress bar width when uploadedPercent is changed.
 	loader.on( 'change:uploadedPercent', ( evt, name, value ) => {
@@ -208,12 +205,12 @@ function _hideProgressBar( viewFigure, writer ) {
 // @param {module:engine/view/downcastwriter~DowncastWriter} writer
 // @param {module:engine/view/view~View} view
 function _showCompleteIcon( viewFigure, writer, view ) {
-	const completeIcon = new UIElement( 'div', { class: 'ck-image-upload-complete-icon' } );
+	const completeIcon = writer.createUIElement( 'div', { class: 'ck-image-upload-complete-icon' } );
 
-	writer.insert( ViewPosition.createAt( viewFigure, 'end' ), completeIcon );
+	writer.insert( writer.createPositionAt( viewFigure, 'end' ), completeIcon );
 
 	setTimeout( () => {
-		view.change( writer => writer.remove( ViewRange.createOn( completeIcon ) ) );
+		view.change( writer => writer.remove( writer.createRangeOn( completeIcon ) ) );
 	}, 3000 );
 }
 
@@ -268,6 +265,6 @@ function _removeUIElement( viewFigure, writer, uniqueProperty ) {
 	const element = _getUIElement( viewFigure, uniqueProperty );
 
 	if ( element ) {
-		writer.remove( ViewRange.createOn( element ) );
+		writer.remove( writer.createRangeOn( element ) );
 	}
 }

+ 2 - 4
packages/ckeditor5-image/tests/image/imageloadobserver.js

@@ -8,8 +8,6 @@
 import ImageLoadObserver from '../../src/image/imageloadobserver';
 import Observer from '@ckeditor/ckeditor5-engine/src/view/observer/observer';
 import View from '@ckeditor/ckeditor5-engine/src/view/view';
-import Position from '@ckeditor/ckeditor5-engine/src/view/position';
-import Range from '@ckeditor/ckeditor5-engine/src/view/range';
 import createViewRoot from '@ckeditor/ckeditor5-engine/tests/view/_utils/createroot';
 import { setData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
 
@@ -106,8 +104,8 @@ describe( 'ImageLoadObserver', () => {
 		view.change( writer => {
 			const text = writer.createText( 'foo', { b: true } );
 
-			writer.insert( Position.createAt( viewRoot.getChild( 0 ).getChild( 0 ), 0 ), text );
-			writer.wrap( Range.createOn( text ), writer.createAttributeElement( 'b' ) );
+			writer.insert( writer.createPositionAt( viewRoot.getChild( 0 ).getChild( 0 ), 0 ), text );
+			writer.wrap( writer.createRangeOn( text ), writer.createAttributeElement( 'b' ) );
 		} );
 
 		sinon.assert.calledWith( mapSpy, viewP );

+ 9 - 11
packages/ckeditor5-image/tests/image/utils.js

@@ -3,12 +3,9 @@
  * For licensing, see LICENSE.md.
  */
 
-import ViewElement from '@ckeditor/ckeditor5-engine/src/view/element';
-import ViewSelection from '@ckeditor/ckeditor5-engine/src/view/selection';
 import ViewDocumentFragment from '@ckeditor/ckeditor5-engine/src/view/documentfragment';
 import ViewDowncastWriter from '@ckeditor/ckeditor5-engine/src/view/downcastwriter';
 import ViewDocument from '@ckeditor/ckeditor5-engine/src/view/document';
-import ViewRange from '@ckeditor/ckeditor5-engine/src/view/range';
 import ModelElement from '@ckeditor/ckeditor5-engine/src/model/element';
 import { toImageWidget, isImageWidget, isImageWidgetSelected, isImage } from '../../src/image/utils';
 import { isWidget, getLabel } from '@ckeditor/ckeditor5-widget/src/utils';
@@ -18,8 +15,9 @@ describe( 'image widget utils', () => {
 
 	beforeEach( () => {
 		writer = new ViewDowncastWriter( new ViewDocument() );
-		image = new ViewElement( 'img' );
-		element = new ViewElement( 'figure', null, image );
+		image = writer.createContainerElement( 'img' );
+		element = writer.createContainerElement( 'figure' );
+		writer.insert( writer.createPositionAt( element, 0 ), image );
 		toImageWidget( element, writer, 'image widget' );
 	} );
 
@@ -51,7 +49,7 @@ describe( 'image widget utils', () => {
 		} );
 
 		it( 'should return false for non-widgetized elements', () => {
-			expect( isImageWidget( new ViewElement( 'p' ) ) ).to.be.false;
+			expect( isImageWidget( writer.createContainerElement( 'p' ) ) ).to.be.false;
 		} );
 	} );
 
@@ -62,28 +60,28 @@ describe( 'image widget utils', () => {
 			// We need to create a container for the element to be able to create a Range on this element.
 			frag = new ViewDocumentFragment( [ element ] );
 
-			const selection = new ViewSelection( element, 'on' );
+			const selection = writer.createSelection( element, 'on' );
 
 			expect( isImageWidgetSelected( selection ) ).to.be.true;
 		} );
 
 		it( 'should return false when non-widgetized elements is the only element in the selection', () => {
-			const notWidgetizedElement = new ViewElement( 'p' );
+			const notWidgetizedElement = writer.createContainerElement( 'p' );
 
 			// We need to create a container for the element to be able to create a Range on this element.
 			frag = new ViewDocumentFragment( [ notWidgetizedElement ] );
 
-			const selection = new ViewSelection( notWidgetizedElement, 'on' );
+			const selection = writer.createSelection( notWidgetizedElement, 'on' );
 
 			expect( isImageWidgetSelected( selection ) ).to.be.false;
 		} );
 
 		it( 'should return false when widget element is not the only element in the selection', () => {
-			const notWidgetizedElement = new ViewElement( 'p' );
+			const notWidgetizedElement = writer.createContainerElement( 'p' );
 
 			frag = new ViewDocumentFragment( [ element, notWidgetizedElement ] );
 
-			const selection = new ViewSelection( ViewRange.createIn( frag ) );
+			const selection = writer.createSelection( writer.createRangeIn( frag ) );
 
 			expect( isImageWidgetSelected( selection ) ).to.be.false;
 		} );

+ 2 - 5
packages/ckeditor5-image/tests/imagecaption/imagecaptionediting.js

@@ -10,9 +10,6 @@ import ImageEditing from '../../src/image/imageediting';
 import UndoEditing from '@ckeditor/ckeditor5-undo/src/undoediting';
 import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
 
-import ViewAttributeElement from '@ckeditor/ckeditor5-engine/src/view/attributeelement';
-import ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
-
 import { getData as getModelData, setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
 import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
 
@@ -153,9 +150,9 @@ describe( 'ImageCaptionEditing', () => {
 						conversionApi.consumable.consume( data.item, 'insert' );
 
 						const imageFigure = conversionApi.mapper.toViewElement( data.range.start.parent );
-						const viewElement = new ViewAttributeElement( 'span' );
+						const viewElement = conversionApi.writer.createAttributeElement( 'span' );
 
-						const viewPosition = ViewPosition.createAt( imageFigure, 'end' );
+						const viewPosition = conversionApi.writer.createPositionAt( imageFigure, 'end' );
 						conversionApi.mapper.bindElements( data.item, viewElement );
 						conversionApi.writer.insert( viewPosition, viewElement );
 					},

+ 7 - 7
packages/ckeditor5-image/tests/imageupload/imageuploadediting.js

@@ -86,7 +86,7 @@ describe( 'ImageUploadEditing', () => {
 		const dataTransfer = new DataTransfer( { files: [ fileMock ], types: [ 'Files' ] } );
 		setModelData( model, '<paragraph>[]foo</paragraph>' );
 
-		const targetRange = model.createRange( model.createPositionAt( doc.getRoot() ), 1, model.createPositionAt( doc.getRoot(), 1 ) );
+		const targetRange = model.createRange( model.createPositionAt( doc.getRoot(), 1 ), model.createPositionAt( doc.getRoot(), 1 ) );
 		const targetViewRange = editor.editing.mapper.toViewRange( targetRange );
 
 		viewDocument.fire( 'clipboardInput', { dataTransfer, targetRanges: [ targetViewRange ] } );
@@ -119,7 +119,7 @@ describe( 'ImageUploadEditing', () => {
 		const dataTransfer = new DataTransfer( { files, types: [ 'Files' ] } );
 		setModelData( model, '<paragraph>[]foo</paragraph>' );
 
-		const targetRange = model.createRange( model.createPositionAt( doc.getRoot() ), 1, model.createPositionAt( doc.getRoot(), 1 ) );
+		const targetRange = model.createRange( model.createPositionAt( doc.getRoot(), 1 ), model.createPositionAt( doc.getRoot(), 1 ) );
 		const targetViewRange = editor.editing.mapper.toViewRange( targetRange );
 
 		viewDocument.fire( 'clipboardInput', { dataTransfer, targetRanges: [ targetViewRange ] } );
@@ -144,7 +144,7 @@ describe( 'ImageUploadEditing', () => {
 
 		expect( command.isEnabled ).to.be.false;
 
-		const targetRange = model.createRange( model.createPositionAt( doc.getRoot() ), 0, model.createPositionAt( doc.getRoot(), 0 ) );
+		const targetRange = model.createRange( model.createPositionAt( doc.getRoot(), 0 ), model.createPositionAt( doc.getRoot(), 0 ) );
 		const targetViewRange = editor.editing.mapper.toViewRange( targetRange );
 
 		viewDocument.fire( 'clipboardInput', { dataTransfer, targetRanges: [ targetViewRange ] } );
@@ -206,7 +206,7 @@ describe( 'ImageUploadEditing', () => {
 		} );
 		setModelData( model, '<paragraph>[]foo</paragraph>' );
 
-		const targetRange = model.createRange( model.createPositionAt( doc.getRoot() ), 1, model.createPositionAt( doc.getRoot(), 1 ) );
+		const targetRange = model.createRange( model.createPositionAt( doc.getRoot(), 1 ), model.createPositionAt( doc.getRoot(), 1 ) );
 		const targetViewRange = editor.editing.mapper.toViewRange( targetRange );
 
 		viewDocument.fire( 'clipboardInput', { dataTransfer, targetRanges: [ targetViewRange ] } );
@@ -245,7 +245,7 @@ describe( 'ImageUploadEditing', () => {
 
 		fileRepository.createUploadAdapter = undefined;
 
-		const targetRange = model.createRange( model.createPositionAt( doc.getRoot() ), 1, model.createPositionAt( doc.getRoot(), 1 ) );
+		const targetRange = model.createRange( model.createPositionAt( doc.getRoot(), 1 ), model.createPositionAt( doc.getRoot(), 1 ) );
 		const targetViewRange = editor.editing.mapper.toViewRange( targetRange );
 
 		expect( () => {
@@ -287,7 +287,7 @@ describe( 'ImageUploadEditing', () => {
 
 		expect( getViewData( view ) ).to.equal(
 			'[<figure class="ck-widget image" contenteditable="false">' +
-				'<img></img>' +
+			'<img></img>' +
 			'</figure>]' );
 	} );
 
@@ -525,7 +525,7 @@ describe( 'ImageUploadEditing', () => {
 			model.document.once( 'change', () => {
 				expect( getViewData( view ) ).to.equal(
 					'[<figure class="ck-widget image" contenteditable="false">' +
-						'<img sizes="100vw" src="image.png" srcset="image-500.png 500w, image-800.png 800w" width="800"></img>' +
+					'<img sizes="100vw" src="image.png" srcset="image-500.png 500w, image-800.png 800w" width="800"></img>' +
 					'</figure>]<p>foo bar</p>'
 				);
 				expect( loader.status ).to.equal( 'idle' );

+ 2 - 2
packages/ckeditor5-image/tests/manual/tickets/106/1.js

@@ -7,7 +7,6 @@
 
 import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
 import ArticlePluginSet from '@ckeditor/ckeditor5-core/tests/_utils/articlepluginset';
-import Range from '@ckeditor/ckeditor5-engine/src/model/range';
 
 const config = {
 	plugins: [ ArticlePluginSet ],
@@ -104,7 +103,8 @@ function startExternalDelete( editor ) {
 
 	function removeSecondBlock() {
 		model.enqueueChange( 'transparent', writer => {
-			writer.remove( Range.createFromPositionAndShift( writer.createPositionFromPath( model.document.getRoot(), [ 1 ] ), 1 ) );
+			const start = writer.createPositionFromPath( model.document.getRoot(), [ 1 ] );
+			writer.remove( writer.createRange( start, start.getShiftedBy( 1 ) ) );
 		} );
 	}