// http://officeopenxml.com/WPtableGrid.php // // // // // // // // import { NextAttributeComponent, XmlComponent } from "@file/xml-components"; import { PositiveUniversalMeasure, twipsMeasureValue } from "@util/values"; export class TableGrid extends XmlComponent { public constructor(widths: readonly number[] | readonly PositiveUniversalMeasure[]) { super("w:tblGrid"); for (const width of widths) { this.root.push(new GridCol(width)); } } } export class GridCol extends XmlComponent { public constructor(width?: number | PositiveUniversalMeasure) { super("w:gridCol"); if (width !== undefined) { this.root.push( new NextAttributeComponent<{ readonly width: number | PositiveUniversalMeasure }>({ width: { key: "w:w", value: twipsMeasureValue(width) }, }), ); } } }