// http://officeopenxml.com/WPsectionLineNumbering.php import { NextAttributeComponent, XmlComponent } from "@file/xml-components"; import { decimalNumber, PositiveUniversalMeasure, twipsMeasureValue } from "@util/values"; // // // // // // // export enum LineNumberRestartFormat { NEW_PAGE = "newPage", NEW_SECTION = "newSection", CONTINUOUS = "continuous", } // // // // // // export interface ILineNumberAttributes { readonly countBy?: number; readonly start?: number; readonly restart?: LineNumberRestartFormat; readonly distance?: number | PositiveUniversalMeasure; } export class LineNumberType extends XmlComponent { public constructor({ countBy, start, restart, distance }: ILineNumberAttributes) { super("w:lnNumType"); this.root.push( new NextAttributeComponent<{ readonly countBy?: number; readonly start?: number; readonly restart?: LineNumberRestartFormat; readonly distance?: number | PositiveUniversalMeasure; }>({ countBy: { key: "w:countBy", value: countBy === undefined ? undefined : decimalNumber(countBy) }, start: { key: "w:start", value: start === undefined ? undefined : decimalNumber(start) }, restart: { key: "w:restart", value: restart }, distance: { key: "w:distance", value: distance === undefined ? undefined : twipsMeasureValue(distance) }, }), ); } }