All files / roosterjs-content-model-dom/lib/formatHandlers/table tableSpacingFormatHandler.ts

100% Statements 15/15
100% Branches 8/8
100% Functions 2/2
100% Lines 15/15

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      1x 1x         1x   358x 15x     358x 1x       104x 14x 14x 14x 90x 1x 1x 1x        
import type { FormatHandler } from '../FormatHandler';
import type { SpacingFormat } from 'roosterjs-content-model-types';
 
const BorderCollapsed = 'collapse';
const BorderSeparate = 'separate';
 
/**
 * @internal
 */
export const tableSpacingFormatHandler: FormatHandler<SpacingFormat> = {
    parse: (format, element) => {
        if (element.style.borderCollapse == BorderCollapsed) {
            format.borderCollapse = true;
        }
 
        if (element.style.borderCollapse == BorderSeparate) {
            format.borderSeparate = true;
        }
    },
    apply: (format, element) => {
        if (format.borderCollapse) {
            element.style.borderCollapse = BorderCollapsed;
            element.style.borderSpacing = '0';
            element.style.boxSizing = 'border-box';
        } else if (format.borderSeparate) {
            element.style.borderCollapse = BorderSeparate;
            element.style.borderSpacing = '0';
            element.style.boxSizing = 'border-box';
        }
    },
};