in packages/roosterjs-editor-dom/lib/table/VTable.ts [196:236]
td: cloneNode(this.getTd(i, this.col)),
};
}
row.splice(newCol, 0, newCell);
});
break;
case TableOperation.DeleteRow:
this.forEachCellOfCurrentRow((cell, i) => {
let nextCell = this.getCell(this.row + 1, i);
if (cell.td && cell.td.rowSpan > 1 && nextCell.spanAbove) {
nextCell.td = cell.td;
}
});
this.cells.splice(this.row, 1);
break;
case TableOperation.DeleteColumn:
this.forEachCellOfCurrentColumn((cell, row, i) => {
let nextCell = this.getCell(i, this.col + 1);
if (cell.td && cell.td.colSpan > 1 && nextCell.spanLeft) {
nextCell.td = cell.td;
}
row.splice(this.col, 1);
});
break;
case TableOperation.MergeAbove:
case TableOperation.MergeBelow:
let rowStep = operation == TableOperation.MergeAbove ? -1 : 1;
for (
let rowIndex = this.row + rowStep;
rowIndex >= 0 && rowIndex < this.cells.length;
rowIndex += rowStep
) {
let cell = this.getCell(rowIndex, this.col);
if (cell.td && !cell.spanAbove) {
let aboveCell = rowIndex < this.row ? cell : currentCell;
let belowCell = rowIndex < this.row ? currentCell : cell;
if (aboveCell.td.colSpan == belowCell.td.colSpan) {