All files / roosterjs-content-model-api/lib/publicApi/segment applySegmentFormat.ts

100% Statements 12/12
100% Branches 0/0
100% Functions 2/2
100% Lines 12/12

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 29 30 311x               1x       8x       8x 8x 8x 8x 8x 8x 8x 8x 8x            
import { formatSegmentWithContentModel } from '../utils/formatSegmentWithContentModel';
import type { ContentModelSegmentFormat, IEditor } from 'roosterjs-content-model-types';
 
/**
 * Bulk apply segment format to all selected content. This is usually used for format painter.
 * @param editor The editor to operate on
 * @param newFormat The segment format to apply
 */
export function applySegmentFormat(
    editor: IEditor,
    newFormat: Readonly<ContentModelSegmentFormat>
) {
    formatSegmentWithContentModel(
        editor,
        'applySegmentFormat',
        format => {
            format.backgroundColor = newFormat.backgroundColor;
            format.fontFamily = newFormat.fontFamily;
            format.fontSize = newFormat.fontSize;
            format.fontWeight = newFormat.fontWeight;
            format.italic = newFormat.italic;
            format.strikethrough = newFormat.strikethrough;
            format.superOrSubScriptSequence = newFormat.superOrSubScriptSequence;
            format.textColor = newFormat.textColor;
            format.underline = newFormat.underline;
        },
        undefined /* segmentHasStyleCallback*/,
        true /*includingFormatHandler*/
    );
}