All files / roosterjs-content-model-dom/lib/modelApi/common addDecorators.ts

100% Statements 9/9
100% Branches 6/6
100% Functions 3/3
100% Lines 9/9

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49                    1x       1855x 130x                       1x       1789x 17x                 1x       1777x 1777x    
import type {
    DomToModelDecoratorContext,
    ReadonlyContentModelCode,
    ReadonlyContentModelLink,
    ShallowMutableContentModelSegment,
} from 'roosterjs-content-model-types';
 
/**
 * @internal
 */
export function addLink(
    segment: ShallowMutableContentModelSegment,
    link: ReadonlyContentModelLink
) {
    if (link.format.href || link.format.name) {
        segment.link = {
            format: { ...link.format },
            dataset: { ...link.dataset },
        };
    }
}
 
/**
 * Add a code decorator into segment if any
 * @param segment The segment to add decorator to
 * @param code The code decorator to add
 */
export function addCode(
    segment: ShallowMutableContentModelSegment,
    code: ReadonlyContentModelCode
) {
    if (code.format.fontFamily) {
        segment.code = {
            format: { ...code.format },
        };
    }
}
 
/**
 * @internal
 */
export function addDecorators(
    segment: ShallowMutableContentModelSegment,
    context: DomToModelDecoratorContext
) {
    addLink(segment, context.link);
    addCode(segment, context.code);
}