diff --git a/src/file/footer/footer.ts b/src/file/footer/footer.ts index 448df0e0dc..0aa5938d0b 100644 --- a/src/file/footer/footer.ts +++ b/src/file/footer/footer.ts @@ -1,10 +1,10 @@ // http://officeopenxml.com/WPfooters.php -import { XmlComponent } from "file/xml-components"; +import { InitializableXmlComponent, XmlComponent } from "file/xml-components"; import { Paragraph } from "../paragraph"; import { Table } from "../table"; import { FooterAttributes } from "./footer-attributes"; -export class Footer extends XmlComponent { +export class Footer extends InitializableXmlComponent { private readonly refId: number; constructor(referenceNumber: number, initContent?: XmlComponent) { diff --git a/src/file/header/header.ts b/src/file/header/header.ts index d4d73b3912..a7c352b367 100644 --- a/src/file/header/header.ts +++ b/src/file/header/header.ts @@ -1,10 +1,10 @@ // http://officeopenxml.com/WPheaders.php -import { XmlComponent } from "file/xml-components"; +import { InitializableXmlComponent, XmlComponent } from "file/xml-components"; import { Paragraph } from "../paragraph"; import { Table } from "../table"; import { HeaderAttributes } from "./header-attributes"; -export class Header extends XmlComponent { +export class Header extends InitializableXmlComponent { private readonly refId: number; constructor(referenceNumber: number, initContent?: XmlComponent) { diff --git a/src/file/xml-components/index.ts b/src/file/xml-components/index.ts index 917933869e..66e9641bfd 100644 --- a/src/file/xml-components/index.ts +++ b/src/file/xml-components/index.ts @@ -3,3 +3,4 @@ export * from "./attributes"; export * from "./default-attributes"; export * from "./imported-xml-component"; export * from "./xmlable-object"; +export * from "./initializable-xml-component"; diff --git a/src/file/xml-components/initializable-xml-component.ts b/src/file/xml-components/initializable-xml-component.ts new file mode 100644 index 0000000000..5d461c007a --- /dev/null +++ b/src/file/xml-components/initializable-xml-component.ts @@ -0,0 +1,11 @@ +import { XmlComponent } from "file/xml-components"; + +export abstract class InitializableXmlComponent extends XmlComponent { + constructor(rootKey: string, initComponent?: InitializableXmlComponent) { + super(rootKey); + + if (initComponent) { + this.root = initComponent.root; + } + } +} diff --git a/src/file/xml-components/xml-component.ts b/src/file/xml-components/xml-component.ts index 17cf152405..8afc5d4782 100644 --- a/src/file/xml-components/xml-component.ts +++ b/src/file/xml-components/xml-component.ts @@ -5,9 +5,9 @@ export { BaseXmlComponent }; export abstract class XmlComponent extends BaseXmlComponent { protected root: Array; - constructor(rootKey: string, initContent?: XmlComponent) { + constructor(rootKey: string) { super(rootKey); - this.root = initContent ? initContent.root : new Array(); + this.root = new Array(); } public prepForXml(): IXmlableObject {