import { NextAttributeComponent, XmlComponent } from "@file/xml-components"; import { PositiveUniversalMeasure, UniversalMeasure, signedTwipsMeasureValue, twipsMeasureValue } from "@util/values"; // // // // // // // // // export type IPageMarginAttributes = { readonly top?: number | UniversalMeasure; readonly right?: number | PositiveUniversalMeasure; readonly bottom?: number | UniversalMeasure; readonly left?: number | PositiveUniversalMeasure; readonly header?: number | PositiveUniversalMeasure; readonly footer?: number | PositiveUniversalMeasure; readonly gutter?: number | PositiveUniversalMeasure; }; export class PageMargin extends XmlComponent { public constructor( top: number | UniversalMeasure, right: number | PositiveUniversalMeasure, bottom: number | UniversalMeasure, left: number | PositiveUniversalMeasure, header: number | PositiveUniversalMeasure, footer: number | PositiveUniversalMeasure, gutter: number | PositiveUniversalMeasure, ) { super("w:pgMar"); this.root.push( new NextAttributeComponent({ top: { key: "w:top", value: signedTwipsMeasureValue(top) }, right: { key: "w:right", value: twipsMeasureValue(right) }, bottom: { key: "w:bottom", value: signedTwipsMeasureValue(bottom) }, left: { key: "w:left", value: twipsMeasureValue(left) }, header: { key: "w:header", value: twipsMeasureValue(header) }, footer: { key: "w:footer", value: twipsMeasureValue(footer) }, gutter: { key: "w:gutter", value: twipsMeasureValue(gutter) }, }), ); } }