/
applySegmentFormat.ts
27 lines (26 loc) · 1.16 KB
/
applySegmentFormat.ts
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
import { formatSegmentWithContentModel } from '../utils/formatSegmentWithContentModel';
import type { ContentModelSegmentFormat, IEditor } from 'roosterjs-content-model-types';
/**
* Bulk apply segment format to all selected content. This is usually used for format painter.
* @param editor The editor to operate on
* @param newFormat The segment format to apply
*/
export function applySegmentFormat(editor: IEditor, newFormat: ContentModelSegmentFormat) {
formatSegmentWithContentModel(
editor,
'applySegmentFormat',
format => {
format.backgroundColor = newFormat.backgroundColor;
format.fontFamily = newFormat.fontFamily;
format.fontSize = newFormat.fontSize;
format.fontWeight = newFormat.fontWeight;
format.italic = newFormat.italic;
format.strikethrough = newFormat.strikethrough;
format.superOrSubScriptSequence = newFormat.superOrSubScriptSequence;
format.textColor = newFormat.textColor;
format.underline = newFormat.underline;
},
undefined /* segmentHasStyleCallback*/,
true /*includingFormatHandler*/
);
}