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 | 1x 2387x 2387x 1038x 1038x 1038x 1038x 1038x 1038x 1038x 1038x 1349x | import type {
ContentModelBlockFormat,
ContentModelSegmentFormat,
ModelToDomContext,
} from 'roosterjs-content-model-types';
/**
* @internal
*/
export function stackFormat(
context: ModelToDomContext,
tagNameOrFormat: string | (ContentModelSegmentFormat & ContentModelBlockFormat) | null,
callback: () => void
) {
const newFormat =
typeof tagNameOrFormat === 'string'
? context.defaultContentModelFormatMap[tagNameOrFormat]
: tagNameOrFormat;
if (newFormat) {
const implicitFormat = context.implicitFormat;
const nodeStack = context.listFormat.nodeStack;
try {
context.implicitFormat = {
...implicitFormat,
...newFormat,
};
context.listFormat.nodeStack = [];
callback();
} finally {
context.implicitFormat = implicitFormat;
context.listFormat.nodeStack = nodeStack;
}
} else {
callback();
}
}
|