All files / roosterjs-content-model-dom/lib/domUtils/selection trimModelForSelection.ts

90.91% Statements 10/11
75% Branches 6/8
100% Functions 2/2
90.91% Lines 10/11

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 24 251x 1x 1x               1x 30x   30x 8x 4x 4x   4x            
import { iterateSelections } from '../../modelApi/selection/iterateSelections';
import { preprocessTable } from './preprocessTable';
import { pruneUnselectedModel } from './pruneUnselectedModel';
import type { ContentModelDocument, DOMSelection } from 'roosterjs-content-model-types';
 
/**
 * Remove the unselected content from the model
 * @param model the model document
 * @param selection The editor selection
 * */
export function trimModelForSelection(model: ContentModelDocument, selection: DOMSelection) {
    pruneUnselectedModel(model);
 
    if (selection.type === 'table') {
        iterateSelections(model, (_, tableContext) => {
            Eif (tableContext?.table) {
                preprocessTable(tableContext.table);
 
                return true;
            }
            return false;
        });
    }
}