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 | 1x 1x 1x 7x 7x 7x 4x 4x 4x 4x 4x 4x 3x | import { splitTextSegment } from 'roosterjs-content-model-api';
import type {
ContentModelText,
FormatContentModelContext,
ShallowMutableContentModelParagraph,
} from 'roosterjs-content-model-types';
const FRACTIONS: Map<string, string> = new Map<string, string>([
['1/2', '½'],
['1/4', '¼'],
['3/4', '¾'],
]);
/**
* @internal
*/
export function transformFraction(
previousSegment: ContentModelText,
paragraph: ShallowMutableContentModelParagraph,
context: FormatContentModelContext
): boolean {
const fraction = previousSegment.text.split(' ').pop()?.trim();
const text = fraction ? FRACTIONS.get(fraction) : undefined;
if (fraction && text) {
const textLength = previousSegment.text.length - 1;
const textIndex = textLength - fraction.length;
const textSegment = splitTextSegment(previousSegment, paragraph, textIndex, textLength);
textSegment.text = text;
context.canUndoByBackspace = true;
return true;
}
return false;
}
|