Procházet zdrojové kódy

Merge branch 'master' into t/ckeditor5-engine/1210

Szymon Kupś před 7 roky
rodič
revize
92ab55be31

+ 9 - 9
packages/ckeditor5-list/src/converters.js

@@ -23,7 +23,7 @@ import { createViewListItemElement } from './utils';
  * It creates a `<ul><li></li><ul>` (or `<ol>`) view structure out of a `listItem` model element, inserts it at the correct
  * position, and merges the list with surrounding lists (if available).
  *
- * @see module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher#event:insert
+ * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data Additional information about the change.
  * @param {module:engine/conversion/modelconsumable~ModelConsumable} consumable Values to consume.
@@ -50,7 +50,7 @@ export function modelViewInsertion( evt, data, consumable, conversionApi ) {
 /**
  * A model-to-view converter for `listItem` model element removal.
  *
- * @see module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher#event:remove
+ * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:remove
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data Additional information about the change.
  * @param {module:engine/conversion/modelconsumable~ModelConsumable} consumable Values to consume.
@@ -96,7 +96,7 @@ export function modelViewRemove( evt, data, conversionApi ) {
  * This change means that `<li>` elements parent changes from `<ul>` to `<ol>` (or vice versa). This is accomplished
  * by breaking view elements, changing their name and merging them.
  *
- * @see module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher#event:attribute
+ * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data Additional information about the change.
  * @param {module:engine/conversion/modelconsumable~ModelConsumable} consumable Values to consume.
@@ -134,7 +134,7 @@ export function modelViewChangeType( evt, data, consumable, conversionApi ) {
 /**
  * A model-to-view converter for `indent` attribute change on `listItem` model element.
  *
- * @see module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher#event:attribute
+ * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data Additional information about the change.
  * @param {module:engine/conversion/modelconsumable~ModelConsumable} consumable Values to consume.
@@ -201,7 +201,7 @@ export function modelViewChangeIndent( evt, data, consumable, conversionApi ) {
  *		<paragraph>xxx</paragraph>       // Instead of this wrong view state:
  *		<listItem>bar</listItem>         <ul><li>foo</li><p>xxx</p><li>bar</li></ul>
  *
- * @see module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher#event:insert
+ * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data Additional information about the change.
  * @param {module:engine/conversion/modelconsumable~ModelConsumable} consumable Values to consume.
@@ -323,7 +323,7 @@ export function modelViewSplitOnInsert( evt, data, consumable, conversionApi ) {
  *		                                     <li>bar</li>
  *		                                 </ul>
  *
- * @see module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher#event:remove
+ * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:remove
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data Additional information about the change.
  * @param {module:engine/conversion/modelconsumable~ModelConsumable} consumable Values to consume.
@@ -347,7 +347,7 @@ export function modelViewMergeAfter( evt, data, conversionApi ) {
  * * checks `<li>`'s parent,
  * * stores and increases the `conversionApi.store.indent` value when `<li>`'s sub-items are converted.
  *
- * @see module:engine/conversion/viewconversiondispatcher~ViewConversionDispatcher#event:element
+ * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data An object containing conversion input and a placeholder for conversion output and possibly other values.
  * @param {module:engine/conversion/viewconsumable~ViewConsumable} consumable Values to consume.
@@ -421,7 +421,7 @@ export function viewModelConverter( evt, data, conversionApi ) {
  * This is mostly to clean whitespaces from between `<li>` view elements inside the view list element, however, also
  * incorrect data can be cleared if the view was incorrect.
  *
- * @see module:engine/conversion/viewconversiondispatcher~ViewConversionDispatcher#event:element
+ * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data An object containing conversion input and a placeholder for conversion output and possibly other values.
  * @param {module:engine/conversion/viewconsumable~ViewConsumable} consumable Values to consume.
@@ -442,7 +442,7 @@ export function cleanList( evt, data, conversionApi ) {
 /**
  * A view-to-model converter for `<li>` elements that cleans whitespace formatting from the input view.
  *
- * @see module:engine/conversion/viewconversiondispatcher~ViewConversionDispatcher#event:element
+ * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element
  * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.
  * @param {Object} data An object containing conversion input and a placeholder for conversion output and possibly other values.
  * @param {module:engine/conversion/viewconsumable~ViewConsumable} consumable Values to consume.

+ 19 - 19
packages/ckeditor5-list/src/listengine.js

@@ -71,25 +71,25 @@ export default class ListEngine extends Plugin {
 		editing.mapper.on( 'viewToModelPosition', viewToModelPosition );
 		data.mapper.on( 'modelToViewPosition', modelToViewPosition );
 
-		editing.modelToView.on( 'insert', modelViewSplitOnInsert, { priority: 'high' } );
-		editing.modelToView.on( 'insert:listItem', modelViewInsertion );
-		data.modelToView.on( 'insert', modelViewSplitOnInsert, { priority: 'high' } );
-		data.modelToView.on( 'insert:listItem', modelViewInsertion );
-
-		editing.modelToView.on( 'attribute:type:listItem', modelViewChangeType );
-		data.modelToView.on( 'attribute:type:listItem', modelViewChangeType );
-		editing.modelToView.on( 'attribute:indent:listItem', modelViewChangeIndent );
-		data.modelToView.on( 'attribute:indent:listItem', modelViewChangeIndent );
-
-		editing.modelToView.on( 'remove:listItem', modelViewRemove );
-		editing.modelToView.on( 'remove', modelViewMergeAfter, { priority: 'low' } );
-		data.modelToView.on( 'remove:listItem', modelViewRemove );
-		data.modelToView.on( 'remove', modelViewMergeAfter, { priority: 'low' } );
-
-		data.viewToModel.on( 'element:ul', cleanList, { priority: 'high' } );
-		data.viewToModel.on( 'element:ol', cleanList, { priority: 'high' } );
-		data.viewToModel.on( 'element:li', cleanListItem, { priority: 'high' } );
-		data.viewToModel.on( 'element:li', viewModelConverter );
+		editing.downcastDispatcher.on( 'insert', modelViewSplitOnInsert, { priority: 'high' } );
+		editing.downcastDispatcher.on( 'insert:listItem', modelViewInsertion );
+		data.downcastDispatcher.on( 'insert', modelViewSplitOnInsert, { priority: 'high' } );
+		data.downcastDispatcher.on( 'insert:listItem', modelViewInsertion );
+
+		editing.downcastDispatcher.on( 'attribute:type:listItem', modelViewChangeType );
+		data.downcastDispatcher.on( 'attribute:type:listItem', modelViewChangeType );
+		editing.downcastDispatcher.on( 'attribute:indent:listItem', modelViewChangeIndent );
+		data.downcastDispatcher.on( 'attribute:indent:listItem', modelViewChangeIndent );
+
+		editing.downcastDispatcher.on( 'remove:listItem', modelViewRemove );
+		editing.downcastDispatcher.on( 'remove', modelViewMergeAfter, { priority: 'low' } );
+		data.downcastDispatcher.on( 'remove:listItem', modelViewRemove );
+		data.downcastDispatcher.on( 'remove', modelViewMergeAfter, { priority: 'low' } );
+
+		data.upcastDispatcher.on( 'element:ul', cleanList, { priority: 'high' } );
+		data.upcastDispatcher.on( 'element:ol', cleanList, { priority: 'high' } );
+		data.upcastDispatcher.on( 'element:li', cleanListItem, { priority: 'high' } );
+		data.upcastDispatcher.on( 'element:li', viewModelConverter );
 
 		// Fix indentation of pasted items.
 		editor.model.on( 'insertContent', modelIndentPasteFixer, { priority: 'high' } );

+ 12 - 12
packages/ckeditor5-list/tests/listengine.js

@@ -14,7 +14,6 @@ import ModelText from '@ckeditor/ckeditor5-engine/src/model/text';
 import ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
 import ViewContainerElement from '@ckeditor/ckeditor5-engine/src/view/containerelement';
 import ViewUIElement from '@ckeditor/ckeditor5-engine/src/view/uielement';
-import buildViewConverter from '@ckeditor/ckeditor5-engine/src/conversion/buildviewconverter';
 
 import BoldEngine from '@ckeditor/ckeditor5-basic-styles/src/boldengine';
 import UndoEngine from '@ckeditor/ckeditor5-undo/src/undoengine';
@@ -25,7 +24,8 @@ import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtest
 import { getData as getModelData, setData as setModelData, parse as parseModel } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
 import { getData as getViewData, parse as parseView } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
 
-import { insertElement } from '@ckeditor/ckeditor5-engine/src/conversion/model-to-view-converters';
+import { insertElement } from '@ckeditor/ckeditor5-engine/src/conversion/downcast-converters';
+import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
 
 describe( 'ListEngine', () => {
 	let editor, model, modelDoc, modelRoot, view, viewDoc, viewRoot;
@@ -3298,7 +3298,7 @@ describe( 'ListEngine', () => {
 
 	describe( 'other', () => {
 		it( 'model insert converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'insert:listItem', ( evt, data, consumable, conversionApi ) => {
+			editor.editing.downcastDispatcher.on( 'insert:listItem', ( evt, data, consumable, conversionApi ) => {
 				consumable.consume( data.item, 'attribute:type' );
 				consumable.consume( data.item, 'attribute:indent' );
 
@@ -3314,7 +3314,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'model remove converter should be possible to overwrite', () => {
-			editor.editing.modelToView.on( 'remove:listItem', evt => {
+			editor.editing.downcastDispatcher.on( 'remove:listItem', evt => {
 				evt.stop();
 			}, { priority: 'highest' } );
 
@@ -3329,7 +3329,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'model change type converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'attribute:type', ( evt, data, consumable ) => {
+			editor.editing.downcastDispatcher.on( 'attribute:type', ( evt, data, consumable ) => {
 				consumable.consume( data.item, 'attribute:type' );
 			}, { priority: 'highest' } );
 
@@ -3343,7 +3343,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'model change indent converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'attribute:indent', ( evt, data, consumable ) => {
+			editor.editing.downcastDispatcher.on( 'attribute:indent', ( evt, data, consumable ) => {
 				consumable.consume( data.item, 'attribute:indent' );
 			}, { priority: 'highest' } );
 
@@ -3357,7 +3357,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'view li converter should not fire if change was already consumed', () => {
-			editor.data.viewToModel.on( 'element:li', ( evt, data, conversionApi ) => {
+			editor.data.upcastDispatcher.on( 'element:li', ( evt, data, conversionApi ) => {
 				conversionApi.consumable.consume( data.viewItem, { name: true } );
 			}, { priority: 'highest' } );
 
@@ -3367,7 +3367,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'view ul converter should not fire if change was already consumed', () => {
-			editor.data.viewToModel.on( 'element:ul', ( evt, data, conversionApi ) => {
+			editor.data.upcastDispatcher.on( 'element:ul', ( evt, data, conversionApi ) => {
 				conversionApi.consumable.consume( data.viewItem, { name: true } );
 			}, { priority: 'highest' } );
 
@@ -3377,7 +3377,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'view converter should pass model range in data.modelRange', () => {
-			editor.data.viewToModel.on( 'element:ul', ( evt, data ) => {
+			editor.data.upcastDispatcher.on( 'element:ul', ( evt, data ) => {
 				expect( data.modelRange ).to.be.instanceof( ModelRange );
 			}, { priority: 'lowest' } );
 
@@ -3497,7 +3497,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'should split parent element when one of modelCursor ancestors allows to insert list - in the middle', () => {
-			buildViewConverter().for( editor.data.viewToModel ).fromElement( 'div' ).toElement( 'div' );
+			editor.conversion.for( 'upcast' ).add( upcastElementToElement( { view: 'div', model: 'div' } ) );
 			model.schema.register( 'div', { inheritAllFrom: '$block' } );
 
 			editor.setData(
@@ -3518,7 +3518,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'should split parent element when one of modelCursor ancestors allows to insert list - at the end', () => {
-			buildViewConverter().for( editor.data.viewToModel ).fromElement( 'div' ).toElement( 'div' );
+			editor.conversion.for( 'upcast' ).add( upcastElementToElement( { view: 'div', model: 'div' } ) );
 			model.schema.register( 'div', { inheritAllFrom: '$block' } );
 
 			editor.setData(
@@ -3537,7 +3537,7 @@ describe( 'ListEngine', () => {
 		} );
 
 		it( 'should split parent element when one of modelCursor ancestors allows to insert list - at the beginning', () => {
-			buildViewConverter().for( editor.data.viewToModel ).fromElement( 'div' ).toElement( 'div' );
+			editor.conversion.for( 'upcast' ).add( upcastElementToElement( { view: 'div', model: 'div' } ) );
 			model.schema.register( 'div', { inheritAllFrom: '$block' } );
 
 			editor.setData(