瀏覽代碼

Insert row above/below refactored to use utils.

Kuba Niegowski 5 年之前
父節點
當前提交
542c77baea

+ 5 - 9
packages/ckeditor5-table/src/commands/insertcolumncommand.js

@@ -9,6 +9,7 @@
 
 
 import Command from '@ckeditor/ckeditor5-core/src/command';
 import Command from '@ckeditor/ckeditor5-core/src/command';
 import { findAncestor } from './utils';
 import { findAncestor } from './utils';
+import { getColumnIndexes, getSelectionAffectedTableCells } from '../utils';
 
 
 /**
 /**
  * The insert column command.
  * The insert column command.
@@ -72,16 +73,11 @@ export default class InsertColumnCommand extends Command {
 		const tableUtils = editor.plugins.get( 'TableUtils' );
 		const tableUtils = editor.plugins.get( 'TableUtils' );
 		const insertBefore = this.order === 'left';
 		const insertBefore = this.order === 'left';
 
 
-		const referencePosition = insertBefore ? selection.getFirstPosition() : selection.getLastPosition();
-		const referenceRange = insertBefore ? selection.getFirstRange() : selection.getLastRange();
+		const affectedTableCells = getSelectionAffectedTableCells( selection );
+		const columnIndexes = getColumnIndexes( affectedTableCells );
 
 
-		const containedElement = referenceRange.getContainedElement();
-		const isTableCell = containedElement && containedElement.is( 'tableCell' );
-
-		const tableCell = isTableCell ? containedElement : findAncestor( 'tableCell', referencePosition );
-		const table = findAncestor( 'table', tableCell );
-
-		const { column } = tableUtils.getCellLocation( tableCell );
+		const column = insertBefore ? columnIndexes.first : columnIndexes.last;
+		const table = findAncestor( 'table', affectedTableCells[ 0 ] );
 
 
 		tableUtils.insertColumns( table, { columns: 1, at: insertBefore ? column : column + 1 } );
 		tableUtils.insertColumns( table, { columns: 1, at: insertBefore ? column : column + 1 } );
 	}
 	}

+ 6 - 11
packages/ckeditor5-table/src/commands/insertrowcommand.js

@@ -9,6 +9,7 @@
 
 
 import Command from '@ckeditor/ckeditor5-core/src/command';
 import Command from '@ckeditor/ckeditor5-core/src/command';
 import { findAncestor } from './utils';
 import { findAncestor } from './utils';
+import { getRowIndexes, getSelectionAffectedTableCells } from '../utils';
 
 
 /**
 /**
  * The insert row command.
  * The insert row command.
@@ -71,18 +72,12 @@ export default class InsertRowCommand extends Command {
 		const tableUtils = editor.plugins.get( 'TableUtils' );
 		const tableUtils = editor.plugins.get( 'TableUtils' );
 		const insertAbove = this.order === 'above';
 		const insertAbove = this.order === 'above';
 
 
-		const referencePosition = insertAbove ? selection.getFirstPosition() : selection.getLastPosition();
-		const referenceRange = insertAbove ? selection.getFirstRange() : selection.getLastRange();
+		const affectedTableCells = getSelectionAffectedTableCells( selection );
+		const rowIndexes = getRowIndexes( affectedTableCells );
 
 
-		const containedElement = referenceRange.getContainedElement();
-		const isTableCell = containedElement && containedElement.is( 'tableCell' );
-		const tableCell = isTableCell ? containedElement : findAncestor( 'tableCell', referencePosition );
+		const row = insertAbove ? rowIndexes.first : rowIndexes.last;
+		const table = findAncestor( 'table', affectedTableCells[ 0 ] );
 
 
-		const tableRow = tableCell.parent;
-		const table = tableRow.parent;
-
-		const row = table.getChildIndex( tableRow );
-
-		tableUtils.insertRows( table, { rows: 1, at: this.order === 'below' ? row + 1 : row } );
+		tableUtils.insertRows( table, { rows: 1, at: insertAbove ? row : row + 1 } );
 	}
 	}
 }
 }