Made XmlableObject non ambient typings to fix typescript problem

This commit is contained in:
Dolan
2017-07-08 20:45:19 +01:00
parent 6784dc1f3d
commit 8f632d4ecd
7 changed files with 14 additions and 9 deletions

View File

@ -1,6 +1,6 @@
import { Paragraph } from "../paragraph";
import { XmlComponent } from "../xml-components";
import { IXmlableObject } from "../xml-components/xmlable-object";
import { TableGrid } from "./grid";
import { TableProperties, WidthTypes } from "./properties";
@ -99,7 +99,7 @@ export class TableCell extends XmlComponent {
return this;
}
public prepForXml(): XmlableObject {
public prepForXml(): IXmlableObject {
// Cells must end with a paragraph
const retval = super.prepForXml();
const content = retval["w:tc"];

View File

@ -1,3 +1,5 @@
import { IXmlableObject } from "./xmlable-object";
export abstract class BaseXmlComponent {
protected rootKey: string;
@ -5,5 +7,5 @@ export abstract class BaseXmlComponent {
this.rootKey = rootKey;
}
public abstract prepForXml(): XmlableObject;
public abstract prepForXml(): IXmlableObject;
}

View File

@ -1,4 +1,5 @@
import { BaseXmlComponent } from "./base";
import { IXmlableObject } from "./xmlable-object";
export type AttributeMap<T> = {[P in keyof T]: string};
@ -11,7 +12,7 @@ export abstract class XmlAttributeComponent<T> extends BaseXmlComponent {
this.root = properties;
}
public prepForXml(): XmlableObject {
public prepForXml(): IXmlableObject {
const attrs = {};
Object.keys(this.root).forEach((key) => {
const value = this.root[key];

View File

@ -1,4 +1,5 @@
import { BaseXmlComponent } from "./base";
import { IXmlableObject } from "./xmlable-object";
export { BaseXmlComponent };
export abstract class XmlComponent extends BaseXmlComponent {
@ -9,7 +10,7 @@ export abstract class XmlComponent extends BaseXmlComponent {
this.root = new Array<BaseXmlComponent>();
}
public prepForXml(): XmlableObject {
public prepForXml(): IXmlableObject {
const children = this.root.map((comp) => {
if (comp instanceof BaseXmlComponent) {
return comp.prepForXml();

View File

@ -1,3 +0,0 @@
declare interface XmlableObject extends Object {
_attr?: { [key: string]: (string | number | boolean) }
}

View File

@ -0,0 +1,3 @@
export interface IXmlableObject extends Object {
_attr?: { [key: string]: (string | number | boolean) };
}

View File

@ -1,7 +1,8 @@
import { BaseXmlComponent } from "../docx/xml-components";
import { IXmlableObject } from "../docx/xml-components/xmlable-object";
export class Formatter {
public format(input: BaseXmlComponent): XmlableObject {
public format(input: BaseXmlComponent): IXmlableObject {
return input.prepForXml();
}
}