All files / roosterjs-content-model-core/lib/override pasteEntityProcessor.ts

100% Statements 11/11
50% Branches 1/2
100% Functions 2/2
100% Lines 11/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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 411x                     1x             1x     44x 44x 44x 44x   44x 2x               2x 2x        
import {
    AllowedTags,
    DisallowedTags,
    sanitizeElement,
} from '../command/createModelFromHtml/sanitizeElement';
import type {
    DomToModelOptionForSanitizing,
    ElementProcessor,
    ValueSanitizer,
} from 'roosterjs-content-model-types';
 
const DefaultStyleSanitizers: Readonly<Record<string, ValueSanitizer>> = {
    position: false,
};
 
/**
 * @internal
 */
export function createPasteEntityProcessor(
    options: DomToModelOptionForSanitizing
): ElementProcessor<HTMLElement> {
    const allowedTags = AllowedTags.concat(options.additionalAllowedTags);
    const disallowedTags = DisallowedTags.concat(options.additionalDisallowedTags);
    const styleSanitizers = Object.assign({}, DefaultStyleSanitizers, options.styleSanitizers);
    const attrSanitizers = options.attributeSanitizers;
 
    return (group, element, context) => {
        const sanitizedElement = sanitizeElement(
            element,
            allowedTags,
            disallowedTags,
            styleSanitizers,
            attrSanitizers
        );
 
        Eif (sanitizedElement) {
            context.defaultElementProcessors.entity(group, sanitizedElement, context);
        }
    };
}