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 50 51 52 | 1x 1x 1x 1x 1x 1x 439x 439x 439x 439x 439x 439x 1756x 134x 439x 435x 435x 435x 439x | import { addBlock } from '../../modelApi/common/addBlock';
import { ContextStyles } from './formatContainerProcessor';
import { createParagraph } from '../../modelApi/creators/createParagraph';
import { parseFormat } from '../utils/parseFormat';
import type {
ContentModelBlockGroup,
ContentModelSegmentFormat,
DomToModelContext,
} from 'roosterjs-content-model-types';
const SegmentDecoratorTags = ['A', 'CODE'];
/**
* @internal
*/
export function blockProcessor(
group: ContentModelBlockGroup,
element: HTMLElement,
context: DomToModelContext,
segmentFormat?: ContentModelSegmentFormat
) {
const decorator = context.blockDecorator.tagName ? context.blockDecorator : undefined;
const isSegmentDecorator = SegmentDecoratorTags.indexOf(element.tagName) >= 0;
parseFormat(element, context.formatParsers.block, context.blockFormat, context);
const blockFormat = { ...context.blockFormat };
parseFormat(element, context.formatParsers.container, blockFormat, context);
ContextStyles.forEach(style => {
if (blockFormat[style]) {
context.blockFormat[style] = blockFormat[style];
}
});
if (!isSegmentDecorator) {
const paragraph = createParagraph(
false /*isImplicit*/,
blockFormat,
segmentFormat,
decorator
);
context.paragraphMap?.assignMarkerToModel(element, paragraph);
addBlock(group, paragraph);
}
context.elementProcessors.child(group, element, context);
}
|