All files / roosterjs-content-model-dom/lib/domToModel/processors brProcessor.ts

100% Statements 17/17
100% Branches 10/10
100% Functions 1/1
100% Lines 14/14

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 25 26 27 28 291x 1x 1x           1x 24x 24x   24x 2x     24x 2x     24x   24x 1x     24x    
import { addSegment } from '../../modelApi/common/addSegment';
import { createBr } from '../../modelApi/creators/createBr';
import { getRegularSelectionOffsets } from '../utils/getRegularSelectionOffsets';
import type { ElementProcessor } from 'roosterjs-content-model-types';
 
/**
 * @internal
 */
export const brProcessor: ElementProcessor<HTMLBRElement> = (group, element, context) => {
    const br = createBr(context.segmentFormat);
    const [start, end] = getRegularSelectionOffsets(context, element);
 
    if (start >= 0) {
        context.isInSelection = true;
    }
 
    if (context.isInSelection) {
        br.isSelected = true;
    }
 
    const paragraph = addSegment(group, br, context.blockFormat);
 
    if (end >= 0) {
        context.isInSelection = false;
    }
 
    context.domIndexer?.onSegment(element, paragraph, [br]);
};