#1988 Allow for children in comments

This commit is contained in:
Dolan Miu
2023-03-19 00:18:38 +00:00
parent d6256d2acb
commit d5b495df5b
3 changed files with 40 additions and 11 deletions

View File

@ -5,7 +5,34 @@ import { Document, Packer, Paragraph, TextRun, CommentRangeStart, CommentRangeEn
const doc = new Document({ const doc = new Document({
comments: { comments: {
children: [{ id: 0, author: "Ray Chen", date: new Date(), text: "comment text content" }], children: [
{
id: 0,
author: "Ray Chen",
date: new Date(),
children: [
new Paragraph({
children: [
new TextRun({
text: "some initial text content",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "comment text content",
}),
new TextRun({ text: "", break: 1 }),
new TextRun({
text: "More text here",
bold: true,
}),
],
}),
],
},
],
}, },
sections: [ sections: [
{ {

View File

@ -2,6 +2,8 @@ import { expect } from "chai";
import * as sinon from "sinon"; import * as sinon from "sinon";
import { Formatter } from "@export/formatter"; import { Formatter } from "@export/formatter";
import { Paragraph } from "../paragraph";
import { Comment, CommentRangeEnd, CommentRangeStart, CommentReference, Comments } from "./comment-run"; import { Comment, CommentRangeEnd, CommentRangeStart, CommentReference, Comments } from "./comment-run";
describe("CommentRangeStart", () => { describe("CommentRangeStart", () => {
@ -56,7 +58,7 @@ describe("Comment", () => {
it("should create", () => { it("should create", () => {
const component = new Comment({ const component = new Comment({
id: 0, id: 0,
text: "test-comment", children: [new Paragraph("test-comment")],
date: new Date("1999-01-01T00:00:00.000Z"), date: new Date("1999-01-01T00:00:00.000Z"),
}); });
const tree = new Formatter().format(component); const tree = new Formatter().format(component);
@ -88,7 +90,7 @@ describe("Comment", () => {
it("should create by using default date", () => { it("should create by using default date", () => {
const component = new Comment({ const component = new Comment({
id: 0, id: 0,
text: "test-comment", children: [new Paragraph("test-comment")],
}); });
const tree = new Formatter().format(component); const tree = new Formatter().format(component);
expect(tree).to.deep.equal({ expect(tree).to.deep.equal({
@ -125,12 +127,12 @@ describe("Comments", () => {
children: [ children: [
{ {
id: 0, id: 0,
text: "test-comment", children: [new Paragraph("test-comment")],
date: new Date("1999-01-01T00:00:00.000Z"), date: new Date("1999-01-01T00:00:00.000Z"),
}, },
{ {
id: 1, id: 1,
text: "test-comment-2", children: [new Paragraph("test-comment-2")],
date: new Date("1999-01-01T00:00:00.000Z"), date: new Date("1999-01-01T00:00:00.000Z"),
}, },
], ],

View File

@ -1,11 +1,9 @@
import { Paragraph } from "@file/paragraph"; import { FileChild } from "@file/file-child";
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components"; import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
import { TextRun } from "./text-run";
export interface ICommentOptions { export interface ICommentOptions {
readonly id: number; readonly id: number;
readonly text: string; readonly children: readonly FileChild[];
readonly initials?: string; readonly initials?: string;
readonly author?: string; readonly author?: string;
readonly date?: Date; readonly date?: Date;
@ -120,7 +118,7 @@ export class CommentReference extends XmlComponent {
} }
export class Comment extends XmlComponent { export class Comment extends XmlComponent {
public constructor({ id, initials, author, date = new Date(), text }: ICommentOptions) { public constructor({ id, initials, author, date = new Date(), children }: ICommentOptions) {
super("w:comment"); super("w:comment");
this.root.push( this.root.push(
@ -132,7 +130,9 @@ export class Comment extends XmlComponent {
}), }),
); );
this.root.push(new Paragraph({ children: [new TextRun(text)] })); for (const child of children) {
this.root.push(child);
}
} }
} }
export class Comments extends XmlComponent { export class Comments extends XmlComponent {