All files / roosterjs-content-model-plugins/lib/hiddenProperty fixupHiddenProperties.ts

100% Statements 11/11
100% Branches 4/4
100% Functions 2/2
100% Lines 8/8

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 281x                   1x 2x 1x             1x   2x 2x 1x        
import { setLinkUndeletable } from 'roosterjs-content-model-dom';
import type { HiddenPropertyOptions } from './HiddenPropertyOptions';
import type { IEditor } from 'roosterjs-content-model-types';
 
/**
 * @internal
 * Maintain hidden properties in DOM after editor content is reset using HTML
 * This includes:
 * 1. Undeletable property
 */
export function fixupHiddenProperties(editor: IEditor, options: HiddenPropertyOptions) {
    if (options.undeletableLinkChecker) {
        checkUndeletable(editor, options.undeletableLinkChecker);
    }
 
    // Add more hidden properties checkers here
}
 
function checkUndeletable(editor: IEditor, checker: (link: HTMLAnchorElement) => boolean) {
    const anchors = editor.getDOMHelper().queryElements('a');
 
    for (const a of anchors) {
        if (checker(a)) {
            setLinkUndeletable(a, true);
        }
    }
}