import { XmlAttributeComponent, XmlComponent } from "file/xml-components"; // // // // // // // export enum HeaderFooterReferenceType { DEFAULT = "default", FIRST = "first", EVEN = "even", } // // // // // // // // // // // // // // // // export interface IHeaderFooterOptions { readonly type?: HeaderFooterReferenceType; readonly id?: number; } class FooterReferenceAttributes extends XmlAttributeComponent<{ readonly type: HeaderFooterReferenceType; readonly id: string; }> { protected readonly xmlKeys = { type: "w:type", id: "r:id", }; } export enum HeaderFooterType { HEADER = "w:headerReference", FOOTER = "w:footerReference", } export class HeaderFooterReference extends XmlComponent { constructor(type: HeaderFooterType, options: IHeaderFooterOptions) { super(type); this.root.push( new FooterReferenceAttributes({ type: options.type || HeaderFooterReferenceType.DEFAULT, id: `rId${options.id}`, }), ); } }