Use dedicated XmlComponent rather than polute pure one

This commit is contained in:
Dolan
2018-09-17 20:22:11 +01:00
parent c5b004166d
commit b6bd532295
5 changed files with 18 additions and 6 deletions

View File

@ -1,10 +1,10 @@
// http://officeopenxml.com/WPfooters.php // http://officeopenxml.com/WPfooters.php
import { XmlComponent } from "file/xml-components"; import { InitializableXmlComponent, XmlComponent } from "file/xml-components";
import { Paragraph } from "../paragraph"; import { Paragraph } from "../paragraph";
import { Table } from "../table"; import { Table } from "../table";
import { FooterAttributes } from "./footer-attributes"; import { FooterAttributes } from "./footer-attributes";
export class Footer extends XmlComponent { export class Footer extends InitializableXmlComponent {
private readonly refId: number; private readonly refId: number;
constructor(referenceNumber: number, initContent?: XmlComponent) { constructor(referenceNumber: number, initContent?: XmlComponent) {

View File

@ -1,10 +1,10 @@
// http://officeopenxml.com/WPheaders.php // http://officeopenxml.com/WPheaders.php
import { XmlComponent } from "file/xml-components"; import { InitializableXmlComponent, XmlComponent } from "file/xml-components";
import { Paragraph } from "../paragraph"; import { Paragraph } from "../paragraph";
import { Table } from "../table"; import { Table } from "../table";
import { HeaderAttributes } from "./header-attributes"; import { HeaderAttributes } from "./header-attributes";
export class Header extends XmlComponent { export class Header extends InitializableXmlComponent {
private readonly refId: number; private readonly refId: number;
constructor(referenceNumber: number, initContent?: XmlComponent) { constructor(referenceNumber: number, initContent?: XmlComponent) {

View File

@ -3,3 +3,4 @@ export * from "./attributes";
export * from "./default-attributes"; export * from "./default-attributes";
export * from "./imported-xml-component"; export * from "./imported-xml-component";
export * from "./xmlable-object"; export * from "./xmlable-object";
export * from "./initializable-xml-component";

View File

@ -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;
}
}
}

View File

@ -5,9 +5,9 @@ export { BaseXmlComponent };
export abstract class XmlComponent extends BaseXmlComponent { export abstract class XmlComponent extends BaseXmlComponent {
protected root: Array<BaseXmlComponent | string>; protected root: Array<BaseXmlComponent | string>;
constructor(rootKey: string, initContent?: XmlComponent) { constructor(rootKey: string) {
super(rootKey); super(rootKey);
this.root = initContent ? initContent.root : new Array<BaseXmlComponent>(); this.root = new Array<BaseXmlComponent>();
} }
public prepForXml(): IXmlableObject { public prepForXml(): IXmlableObject {