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 | 1x 1x 1x 1x 1x 1x 127x 127x 127x 127x 127x 127x 127x 127x 127x | import { createContentModelDocument } from '../creators/createContentModelDocument'; import { createText } from '../creators/createText'; import { ensureParagraph } from './ensureParagraph'; import { createModelToDomContextWithConfig } from '../../modelToDom/context/createModelToDomContext'; import { createDomToModelContextWithConfig } from '../../domToModel/context/createDomToModelContext'; import type { ContentModelSegmentFormat, DomToModelContext, EditorEnvironment, ModelToDomContext, } from 'roosterjs-content-model-types'; /** * Some format values can be changed when apply to DOM, such as font family. * This function will normalize the format and return the same string after DOM modification. * @param format The format to be normalized * @return Normalized format */ export function normalizeSegmentFormat( format: ContentModelSegmentFormat, environment: EditorEnvironment ): ContentModelSegmentFormat { const span = document.createElement('span'); const segment = createText('text', format); const domToModelContext: DomToModelContext = createDomToModelContextWithConfig( environment.domToModelSettings.calculated ); const modelToDomContext: ModelToDomContext = createModelToDomContextWithConfig( environment.modelToDomSettings.calculated ); const model = createContentModelDocument(); modelToDomContext.modelHandlers.segment( span.ownerDocument, span, segment, modelToDomContext, [] ); domToModelContext.elementProcessors.element(model, span, domToModelContext); const paragraph = ensureParagraph(model); return paragraph.segments[0]?.format ?? format; } |