2022-01-17 08:27:24 +02:00
|
|
|
import { Run, RunFonts } from "./run";
|
|
|
|
import {
|
|
|
|
createDefaultParagraphProperty,
|
|
|
|
ParagraphProperty,
|
|
|
|
LineSpacing,
|
|
|
|
AlignmentType,
|
|
|
|
SpecialIndentKind,
|
|
|
|
ParagraphPropertyChange,
|
|
|
|
} from "./paragraph-property";
|
2021-11-25 12:42:06 +02:00
|
|
|
import { Insert } from "./insert";
|
|
|
|
import { Delete } from "./delete";
|
|
|
|
import { BookmarkStart } from "./bookmark-start";
|
|
|
|
import { BookmarkEnd } from "./bookmark-end";
|
|
|
|
import { Comment } from "./comment";
|
|
|
|
import { CommentEnd } from "./comment-end";
|
2021-12-17 18:03:02 +02:00
|
|
|
import { Hyperlink } from "./hyperlink";
|
2020-01-30 16:14:25 +02:00
|
|
|
|
|
|
|
export type ParagraphChild =
|
2021-11-25 12:42:06 +02:00
|
|
|
| Run
|
|
|
|
| Insert
|
|
|
|
| Delete
|
2021-12-17 18:03:02 +02:00
|
|
|
| Hyperlink
|
2021-11-25 12:42:06 +02:00
|
|
|
| BookmarkStart
|
|
|
|
| BookmarkEnd
|
|
|
|
| Comment
|
|
|
|
| CommentEnd;
|
2020-01-30 16:14:25 +02:00
|
|
|
|
|
|
|
export class Paragraph {
|
2021-11-25 12:42:06 +02:00
|
|
|
hasNumberings = false;
|
|
|
|
children: ParagraphChild[] = [];
|
|
|
|
property: ParagraphProperty = createDefaultParagraphProperty();
|
|
|
|
|
|
|
|
addRun(run: Run) {
|
|
|
|
this.children.push(run);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2021-12-17 18:03:02 +02:00
|
|
|
addHyperlink(link: Hyperlink) {
|
|
|
|
this.children.push(link);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2021-11-25 12:42:06 +02:00
|
|
|
addInsert(ins: Insert) {
|
|
|
|
this.children.push(ins);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
addDelete(del: Delete) {
|
|
|
|
this.children.push(del);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
addBookmarkStart(id: number, name: string) {
|
|
|
|
this.children.push(new BookmarkStart(id, name));
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
addBookmarkEnd(id: number) {
|
|
|
|
this.children.push(new BookmarkEnd(id));
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
addCommentStart(comment: Comment) {
|
|
|
|
this.children.push(comment);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
addCommentEnd(end: CommentEnd) {
|
|
|
|
this.children.push(end);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
align(type: AlignmentType) {
|
|
|
|
this.property.align = type;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
style(id: string) {
|
|
|
|
this.property.styleId = id;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
indent(
|
|
|
|
left: number,
|
|
|
|
specialIndentKind?: SpecialIndentKind,
|
|
|
|
specialIndentSize?: number
|
|
|
|
) {
|
|
|
|
this.property.indent = { left, specialIndentKind, specialIndentSize };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
numbering(id: number, level: number) {
|
|
|
|
this.hasNumberings = true;
|
|
|
|
this.property.numbering = { id, level };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
lineSpacing(spacing: LineSpacing) {
|
|
|
|
this.property.lineSpacing = spacing;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
keepNext(v: boolean) {
|
|
|
|
this.property = { ...this.property, keepNext: v };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
keepLines(v: boolean) {
|
|
|
|
this.property = { ...this.property, keepLines: v };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
pageBreakBefore(v: boolean) {
|
|
|
|
this.property = { ...this.property, pageBreakBefore: v };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2022-01-14 08:03:53 +02:00
|
|
|
widowControl(v: boolean) {
|
|
|
|
this.property = { ...this.property, widowControl: v };
|
2021-11-25 12:42:06 +02:00
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
// run property
|
|
|
|
size(size: number) {
|
|
|
|
this.property.runProperty = { ...this.property.runProperty, size };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
bold() {
|
|
|
|
this.property.runProperty = { ...this.property.runProperty, bold: true };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
italic() {
|
|
|
|
this.property.runProperty = { ...this.property.runProperty, italic: true };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
fonts(fonts: RunFonts) {
|
|
|
|
this.property.runProperty = { ...this.property.runProperty, fonts };
|
|
|
|
return this;
|
|
|
|
}
|
2022-01-17 08:27:24 +02:00
|
|
|
|
|
|
|
delete(author: string, date: string) {
|
|
|
|
this.property.runProperty.del = { author, date };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
insert(author: string, date: string) {
|
|
|
|
this.property.runProperty.ins = { author, date };
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
paragraphPropertyChange(propertyChange: ParagraphPropertyChange) {
|
|
|
|
this.property.paragraphPropertyChange = propertyChange;
|
|
|
|
return this;
|
|
|
|
}
|
2020-01-30 16:14:25 +02:00
|
|
|
}
|