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 | 1x 1x 1x 1x 1x 31x 31x 1x 1x 1x 1x 2x 1x 1x 1x | import { isBlockElement, isElementOfType, isNodeOfType } from 'roosterjs-content-model-dom';
import type {
ContentModelEntity,
EntityInfoFormat,
FormatParser,
OnNodeCreated,
} from 'roosterjs-content-model-types';
const BlockEntityClass = '_EBlock';
const OneHundredPercent = '100%';
const InlineBlock = 'inline-block';
/**
* @internal
*/
export const onCreateCopyEntityNode: OnNodeCreated = (model, node) => {
const entityModel = model as ContentModelEntity;
if (
entityModel &&
entityModel.wrapper &&
entityModel.blockType == 'Entity' &&
isNodeOfType(node, 'ELEMENT_NODE') &&
isElementOfType(node, 'div') &&
!isBlockElement(entityModel.wrapper) &&
entityModel.wrapper.style.display == InlineBlock &&
entityModel.wrapper.style.width == OneHundredPercent
) {
node.classList.add(BlockEntityClass);
node.style.display = 'block';
node.style.width = '';
}
};
/**
* @internal
*/
export const pasteBlockEntityParser: FormatParser<EntityInfoFormat> = (_, element) => {
if (element.classList.contains(BlockEntityClass)) {
element.classList.remove(BlockEntityClass);
element.style.display = InlineBlock;
element.style.width = OneHundredPercent;
}
};
|