All files / roosterjs-content-model-core/lib/command/cutCopy preprocessTable.ts

100% Statements 10/10
83.33% Branches 10/12
100% Functions 5/5
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 241x           1x 12x 12x   19x   48x     19x   12x   12x 21x      
import { getSelectedCells } from 'roosterjs-content-model-dom';
import type { ContentModelTable } from 'roosterjs-content-model-types';
 
/**
 * @internal
 */
export function preprocessTable(table: ContentModelTable) {
    const sel = getSelectedCells(table);
    table.rows = table.rows
        .map(row => {
            return {
                ...row,
                cells: row.cells.filter(cell => cell.isSelected),
            };
        })
        .filter(row => row.cells.length > 0);
 
    delete table.format.width;
 
    table.widths = sel
        ? table.widths.filter((_, index) => index >= sel?.firstColumn && index <= sel?.lastColumn)
        : [];
}