Sfoglia il codice sorgente

Changed: Create `upcastTable()` converter.

Maciej Gołaszewski 7 anni fa
parent
commit
4906f90045

+ 17 - 12
packages/ckeditor5-table/src/converters.js

@@ -8,17 +8,10 @@
  */
 
 import Position from '@ckeditor/ckeditor5-engine/src/view/position';
+import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
 
-export function createTable( viewElement, modelWriter ) {
-	const attributes = {};
-
-	const header = _getChildHeader( viewElement );
-
-	if ( header ) {
-		attributes.headingRows = header.childCount;
-	}
-
-	return modelWriter.createElement( 'table', attributes );
+export function upcastTable() {
+	return upcastElementToElement( { model: _createModelTable, view: 'table' } );
 }
 
 export function downcastTableCell( dispatcher ) {
@@ -36,8 +29,8 @@ export function downcastTableCell( dispatcher ) {
 	}, { priority: 'normal' } );
 }
 
-export function downcastTable( dispatcher ) {
-	dispatcher.on( 'insert:table', ( evt, data, conversionApi ) => {
+export function downcastTable() {
+	return dispatcher => dispatcher.on( 'insert:table', ( evt, data, conversionApi ) => {
 		const table = data.item;
 
 		if ( !conversionApi.consumable.consume( table, 'insert' ) ) {
@@ -67,6 +60,18 @@ export function downcastTable( dispatcher ) {
 	}, { priority: 'normal' } );
 }
 
+export function _createModelTable( viewElement, modelWriter ) {
+	const attributes = {};
+
+	const header = _getChildHeader( viewElement );
+
+	if ( header ) {
+		attributes.headingRows = header.childCount;
+	}
+
+	return modelWriter.createElement( 'table', attributes );
+}
+
 function _getChildHeader( table ) {
 	for ( const child of Array.from( table.getChildren() ) ) {
 		if ( child.name === 'thead' ) {

+ 3 - 3
packages/ckeditor5-table/src/tableediting.js

@@ -9,7 +9,7 @@
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
-import { createTable, downcastTableCell, downcastTable } from './converters';
+import { downcastTableCell, downcastTable, upcastTable } from './converters';
 import InsertTableCommand from './inserttablecommand';
 
 export default class TablesEditing extends Plugin {
@@ -44,8 +44,8 @@ export default class TablesEditing extends Plugin {
 		} );
 
 		// Table conversion.
-		conversion.for( 'upcast' ).add( upcastElementToElement( { model: createTable, view: 'table' } ) );
-		conversion.for( 'downcast' ).add( downcastTable );
+		conversion.for( 'upcast' ).add( upcastTable() );
+		conversion.for( 'downcast' ).add( downcastTable() );
 
 		// Table row upcast only since downcast conversion is done in `downcastTable()`.
 		conversion.for( 'upcast' ).add( upcastElementToElement( { model: 'tableRow', view: 'tr' } ) );

+ 3 - 3
packages/ckeditor5-table/tests/converters.js

@@ -9,7 +9,7 @@ import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversio
 
 import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
 import { setData as setModelData, getData as getModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
-import { createTable, downcastTable, downcastTableCell } from '../src/converters';
+import { downcastTable, downcastTableCell, upcastTable } from '../src/converters';
 
 describe( 'Table converters', () => {
 	let editor, model, viewDocument;
@@ -46,8 +46,8 @@ describe( 'Table converters', () => {
 					isLimit: true
 				} );
 
-				conversion.for( 'upcast' ).add( upcastElementToElement( { model: createTable, view: 'table' } ) );
-				conversion.for( 'downcast' ).add( downcastTable );
+				conversion.for( 'upcast' ).add( upcastTable() );
+				conversion.for( 'downcast' ).add( downcastTable() );
 
 				// Table row upcast only since downcast conversion is done in `downcastTable()`.
 				conversion.for( 'upcast' ).add( upcastElementToElement( { model: 'tableRow', view: 'tr' } ) );

+ 2 - 2
packages/ckeditor5-table/tests/inserttablecommand.js

@@ -7,7 +7,7 @@ import ModelTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/modeltestedit
 import { setData, getData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
 import { upcastElementToElement } from '@ckeditor/ckeditor5-engine/src/conversion/upcast-converters';
 import InsertTableCommand from '../src/inserttablecommand';
-import { createTable, downcastTable, downcastTableCell } from '../src/converters';
+import { _createModelTable, downcastTable, downcastTableCell } from '../src/converters';
 
 describe( 'InsertTableCommand', () => {
 	let editor, model, command;
@@ -47,7 +47,7 @@ describe( 'InsertTableCommand', () => {
 				model.schema.register( 'p', { inheritAllFrom: '$block' } );
 
 				// Table conversion.
-				conversion.for( 'upcast' ).add( upcastElementToElement( { model: createTable, view: 'table' } ) );
+				conversion.for( 'upcast' ).add( upcastElementToElement( { model: _createModelTable, view: 'table' } ) );
 				conversion.for( 'downcast' ).add( downcastTable );
 
 				// Table row upcast only since downcast conversion is done in `downcastTable()`.