From b6bd532295cda207cfdd0ebbaf86b7cfa8971741 Mon Sep 17 00:00:00 2001 From: Dolan Date: Mon, 17 Sep 2018 20:22:11 +0100 Subject: [PATCH] Use dedicated XmlComponent rather than polute pure one --- src/file/footer/footer.ts | 4 ++-- src/file/header/header.ts | 4 ++-- src/file/xml-components/index.ts | 1 + .../xml-components/initializable-xml-component.ts | 11 +++++++++++ src/file/xml-components/xml-component.ts | 4 ++-- 5 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 src/file/xml-components/initializable-xml-component.ts 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 {