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 | 1x 1x 1x 35x 140x 11x 11x 1x | import { BorderKeys } from 'roosterjs-content-model-dom';
import type {
BorderFormat,
ContentModelTableCellFormat,
FormatParser,
} from 'roosterjs-content-model-types';
const ElementBorderKeys = new Map<
keyof BorderFormat,
{
c: keyof CSSStyleDeclaration;
s: keyof CSSStyleDeclaration;
w: keyof CSSStyleDeclaration;
}
>([
['borderTop', { w: 'borderTopWidth', s: 'borderTopStyle', c: 'borderTopColor' }],
['borderRight', { w: 'borderRightWidth', s: 'borderRightStyle', c: 'borderRightColor' }],
['borderBottom', { w: 'borderBottomWidth', s: 'borderBottomStyle', c: 'borderBottomColor' }],
['borderLeft', { w: 'borderLeftWidth', s: 'borderLeftStyle', c: 'borderLeftColor' }],
]);
/**
* @internal
*/
export const tableBorderParser: FormatParser<ContentModelTableCellFormat> = (format, element) => {
BorderKeys.forEach(key => {
if (!format[key]) {
const styleSet = ElementBorderKeys.get(key);
if (
styleSet &&
element.style[styleSet.w] &&
element.style[styleSet.s] &&
!element.style[styleSet.c]
) {
format[key] = `${element.style[styleSet.w]} ${element.style[styleSet.s]}`;
}
}
});
};
|