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

Refactor upcast helpers to use `conversionApi` object instead of imports.

Maciej Gołaszewski 5 лет назад
Родитель
Сommit
f3430d9976
1 измененных файлов с 13 добавлено и 11 удалено
  1. 13 11
      packages/ckeditor5-engine/src/conversion/upcasthelpers.js

+ 13 - 11
packages/ckeditor5-engine/src/conversion/upcasthelpers.js

@@ -4,11 +4,9 @@
  */
 
 import Matcher from '../view/matcher';
-import ModelRange from '../model/range';
 import ConversionHelpers from './conversionhelpers';
 
 import { cloneDeep } from 'lodash-es';
-import ModelSelection from '../model/selection';
 
 /**
  * Contains {@link module:engine/view/view view} to {@link module:engine/model/model model} converters for
@@ -374,7 +372,10 @@ export function convertText() {
 
 				conversionApi.writer.insert( text, data.modelCursor );
 
-				data.modelRange = ModelRange._createFromPositionAndShift( data.modelCursor, text.offsetSize );
+				data.modelRange = conversionApi.writer.createRange(
+					data.modelCursor,
+					data.modelCursor.getShiftedBy( text.offsetSize )
+				);
 				data.modelCursor = data.modelRange.end;
 			}
 		}
@@ -398,7 +399,6 @@ export function convertText() {
 export function convertSelectionChange( model, mapper ) {
 	return ( evt, data ) => {
 		const viewSelection = data.newSelection;
-		const modelSelection = new ModelSelection();
 
 		const ranges = [];
 
@@ -406,7 +406,9 @@ export function convertSelectionChange( model, mapper ) {
 			ranges.push( mapper.toModelRange( viewRange ) );
 		}
 
-		modelSelection.setTo( ranges, { backward: viewSelection.isBackward } );
+		const modelSelection = model.createSelection( ranges, { backward: viewSelection.isBackward } );
+
+		// modelSelection.setTo( ranges, { backward: viewSelection.isBackward } );
 
 		if ( !modelSelection.isEqual( model.document.selection ) ) {
 			model.change( writer => {
@@ -560,6 +562,11 @@ function prepareToElementConverter( config ) {
 		// Force consuming element's name.
 		match.name = true;
 
+		// When element was already consumed then skip it.
+		if ( !conversionApi.consumable.test( data.viewItem, match ) ) {
+			return;
+		}
+
 		// Create model element basing on config.
 		const modelElement = getModelElement( config.model, data.viewItem, conversionApi.writer );
 
@@ -568,11 +575,6 @@ function prepareToElementConverter( config ) {
 			return;
 		}
 
-		// When element was already consumed then skip it.
-		if ( !conversionApi.consumable.test( data.viewItem, match ) ) {
-			return;
-		}
-
 		// Find allowed parent for element that we are going to insert.
 		// If current parent does not allow to insert element but one of the ancestors does
 		// then split nodes to allowed parent.
@@ -595,7 +597,7 @@ function prepareToElementConverter( config ) {
 		const parts = conversionApi.getSplitParts( modelElement );
 
 		// Set conversion result range.
-		data.modelRange = new ModelRange(
+		data.modelRange = conversionApi.writer.createRange(
 			conversionApi.writer.createPositionBefore( modelElement ),
 			conversionApi.writer.createPositionAfter( parts[ parts.length - 1 ] )
 		);