diff --git a/src/file/table/table-row/table-row-properties.ts b/src/file/table/table-row/table-row-properties.ts index 7d96ea9810..f3e3a168ce 100644 --- a/src/file/table/table-row/table-row-properties.ts +++ b/src/file/table/table-row/table-row-properties.ts @@ -1,7 +1,41 @@ -import { XmlComponent } from "file/xml-components"; +import { XmlAttributeComponent, XmlComponent } from "file/xml-components"; export class TableRowProperties extends XmlComponent { constructor() { super("w:trPr"); } + + public setCantSplit(): TableRowProperties { + this.root.push(new CantSplit()); + + return this; + } + + public setTableHeader(): TableRowProperties { + this.root.push(new TableHeader()); + + return this; + } +} + +class CantSplitAttributes extends XmlAttributeComponent<{ readonly val: boolean }> { + protected readonly xmlKeys = { val: "w:val" }; +} + +export class CantSplit extends XmlComponent { + constructor() { + super("w:cantSplit"); + this.root.push(new CantSplitAttributes({ val: true })); + } +} + +class TableHeaderAttributes extends XmlAttributeComponent<{ readonly val: boolean }> { + protected readonly xmlKeys = { val: "w:val" }; +} + +export class TableHeader extends XmlComponent { + constructor() { + super("w:tblHeader"); + this.root.push(new TableHeaderAttributes({ val: true })); + } } diff --git a/src/file/table/table-row/table-row.ts b/src/file/table/table-row/table-row.ts index 3a08197cf7..b7c4e38fa2 100644 --- a/src/file/table/table-row/table-row.ts +++ b/src/file/table/table-row/table-row.ts @@ -37,4 +37,16 @@ export class TableRow extends XmlComponent { return this.addGridSpan(startIndex, cellSpan); } + + public setCantSplit(): TableRow { + this.properties.setCantSplit(); + + return this; + } + + public setTableHeader(): TableRow { + this.properties.setTableHeader(); + + return this; + } }