// http://officeopenxml.com/WPsectionLineNumbering.php import { XmlAttributeComponent, XmlComponent } from "@file/xml-components"; import { decimalNumber, 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 | string; } export class LineNumberAttributes extends XmlAttributeComponent { protected readonly xmlKeys = { countBy: "w:countBy", start: "w:start", restart: "w:restart", distance: "w:distance", }; } export class LineNumberType extends XmlComponent { public constructor({ countBy, start, restart, distance }: ILineNumberAttributes) { super("w:lnNumType"); this.root.push( new LineNumberAttributes({ countBy: countBy === undefined ? undefined : decimalNumber(countBy), start: start === undefined ? undefined : decimalNumber(start), restart, distance: distance === undefined ? undefined : twipsMeasureValue(distance), }), ); } }