瀏覽代碼

Align code to the changes in engine Position/Range API.

Maciej Gołaszewski 7 年之前
父節點
當前提交
108c0783a4

+ 1 - 1
packages/ckeditor5-table/src/commands/inserttablecommand.js

@@ -62,7 +62,7 @@ export default class InsertTableCommand extends Command {
 
 			model.insertContent( table, insertPosition );
 
-			writer.setSelection( Position.createAt( table.getChild( 0 ).getChild( 0 ).getChild( 0 ) ) );
+			writer.setSelection( Position.createAt( table.getNodeByPath( [ 0, 0, 0 ] ), 0 ) );
 		} );
 	}
 }

+ 4 - 1
packages/ckeditor5-table/src/commands/removerowcommand.js

@@ -81,7 +81,10 @@ export default class RemoveRowCommand extends Command {
 			for ( const { row, column, cell } of [ ...tableWalker ] ) {
 				if ( cellsToMove.has( column ) ) {
 					const { cell: cellToMove, rowspanToSet } = cellsToMove.get( column );
-					const targetPosition = previousCell ? Position.createAfter( previousCell ) : Position.createAt( table.getChild( row ) );
+
+					const targetPosition = previousCell ?
+						Position.createAfter( previousCell ) :
+						Position.createAt( table.getChild( row ), 0 );
 
 					writer.move( Range.createOn( cellToMove ), targetPosition );
 					updateNumericAttribute( 'rowspan', rowspanToSet, cellToMove, writer );

+ 5 - 5
packages/ckeditor5-table/src/converters/downcast.js

@@ -38,7 +38,7 @@ export function downcastInsertTable( options = {} ) {
 
 		const figureElement = conversionApi.writer.createContainerElement( 'figure', { class: 'table' } );
 		const tableElement = conversionApi.writer.createContainerElement( 'table' );
-		conversionApi.writer.insert( ViewPosition.createAt( figureElement ), tableElement );
+		conversionApi.writer.insert( ViewPosition.createAt( figureElement, 0 ), tableElement );
 
 		let tableWidget;
 
@@ -215,7 +215,7 @@ export function downcastTableHeadingRowsChange( options = {} ) {
 				.reverse(); // The rows will be moved from <thead> to <tbody> in reverse order at the beginning of a <tbody>.
 
 			const viewTableBody = getOrCreateTableSection( 'tbody', viewTable, conversionApi );
-			moveViewRowsToTableSection( rowsToMove, viewTableBody, conversionApi );
+			moveViewRowsToTableSection( rowsToMove, viewTableBody, conversionApi, 0 );
 
 			// Check if cells moved from <thead> to <tbody> requires renaming to <td> as this depends on current heading columns attribute.
 			const tableWalker = new TableWalker( table, { startRow: newRows ? newRows - 1 : newRows, endRow: oldRows - 1 } );
@@ -330,7 +330,7 @@ function renameViewTableCell( tableCell, desiredCellElementName, conversionApi,
 		renamedCell = toWidgetEditable( editable, conversionApi.writer );
 
 		conversionApi.writer.insert( ViewPosition.createAfter( viewCell ), renamedCell );
-		conversionApi.writer.move( ViewRange.createIn( viewCell ), ViewPosition.createAt( renamedCell ) );
+		conversionApi.writer.move( ViewRange.createIn( viewCell ), ViewPosition.createAt( renamedCell, 0 ) );
 		conversionApi.writer.remove( ViewRange.createOn( viewCell ) );
 	} else {
 		renamedCell = conversionApi.writer.rename( desiredCellElementName, viewCell );
@@ -497,7 +497,7 @@ function getExistingTableSectionElement( sectionName, tableElement ) {
 function createTableSection( sectionName, tableElement, conversionApi ) {
 	const tableChildElement = conversionApi.writer.createContainerElement( sectionName );
 
-	conversionApi.writer.insert( ViewPosition.createAt( tableElement, sectionName == 'tbody' ? 'end' : 'start' ), tableChildElement );
+	conversionApi.writer.insert( ViewPosition.createAt( tableElement, sectionName == 'tbody' ? 'end' : 0 ), tableChildElement );
 
 	return tableChildElement;
 }
@@ -522,7 +522,7 @@ function removeTableSectionIfEmpty( sectionName, tableElement, conversionApi ) {
 // @param {Array.<module:engine/model/element~Element>} rowsToMove
 // @param {module:engine/view/element~Element} viewTableSection
 // @param {Object} conversionApi
-// @param {Number|'end'|'before'|'after'} [offset=0] Offset or one of the flags.
+// @param {Number|'end'|'before'|'after'} offset Offset or one of the flags.
 function moveViewRowsToTableSection( rowsToMove, viewTableSection, conversionApi, offset ) {
 	for ( const tableRow of rowsToMove ) {
 		const viewTableRow = conversionApi.mapper.toViewElement( tableRow );

+ 2 - 2
packages/ckeditor5-table/src/converters/upcasttable.js

@@ -82,7 +82,7 @@ export default function upcastTable() {
 			// before: <allowed><notAllowed>[]</notAllowed></allowed>
 			// after:  <allowed><notAllowed></notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>
 			if ( splitResult.cursorParent ) {
-				data.modelCursor = ModelPosition.createAt( splitResult.cursorParent );
+				data.modelCursor = ModelPosition.createAt( splitResult.cursorParent, 0 );
 
 				// Otherwise just continue after inserted element.
 			} else {
@@ -115,7 +115,7 @@ export function upcastTableCell( elementName ) {
 			conversionApi.writer.insert( tableCell, splitResult.position );
 			conversionApi.consumable.consume( viewTableCell, { name: true } );
 
-			const modelCursor = ModelPosition.createAt( tableCell );
+			const modelCursor = ModelPosition.createAt( tableCell, 0 );
 			conversionApi.convertChildren( viewTableCell, modelCursor );
 
 			// Ensure a paragraph in the model for empty table cells.

+ 2 - 2
packages/ckeditor5-table/tests/converters/table-cell-content-post-fixer.js

@@ -62,7 +62,7 @@ describe( 'Table cell content post-fixer', () => {
 		// Insert table row with one table cell
 		model.change( writer => {
 			writer.insertElement( 'tableRow', Position.createAfter( root.getNodeByPath( [ 0, 0 ] ) ) );
-			writer.insertElement( 'tableCell', Position.createAt( root.getNodeByPath( [ 0, 1 ] ) ) );
+			writer.insertElement( 'tableCell', Position.createAt( root.getNodeByPath( [ 0, 1 ] ), 0 ) );
 		} );
 
 		expect( formatTable( getModelData( model, { withoutSelection: true } ) ) ).to.equal( formatTable(
@@ -88,7 +88,7 @@ describe( 'Table cell content post-fixer', () => {
 
 		// Insert table row with one table cell
 		model.change( writer => {
-			writer.insertElement( 'tableCell', Position.createAt( root.getNodeByPath( [ 0, 0 ], 'end' ) ) );
+			writer.insertElement( 'tableCell', Position.createAt( root.getNodeByPath( [ 0, 0 ] ), 'end' ) );
 		} );
 
 		expect( formatTable( getModelData( model, { withoutSelection: true } ) ) ).to.equal( formatTable(

+ 1 - 1
packages/ckeditor5-table/tests/converters/tablecell-post-fixer.js

@@ -267,7 +267,7 @@ describe( 'TableCell post-fixer', () => {
 
 			const paragraph = writer.createElement( 'paragraph' );
 
-			writer.insert( paragraph, Position.createAt( tableCell ) );
+			writer.insert( paragraph, Position.createAt( tableCell, 0 ) );
 
 			// Set selection to newly created paragraph.
 			writer.setSelection( paragraph, 0 );