clean up style & components attributes

This commit is contained in:
felipe
2017-03-09 10:54:40 +01:00
parent 18ca93e50a
commit e6e0658812
4 changed files with 97 additions and 53 deletions

View File

@ -1,23 +0,0 @@
import { XmlAttributeComponent, XmlComponent } from "../../docx/xml-components";
interface IStyleAttributesProperties {
type?: string;
styleId?: string;
default?: string;
customStyle?: string;
val?: string;
}
export class StyleAttributes extends XmlAttributeComponent {
private _attr: IStyleAttributesProperties;
constructor(properties: IStyleAttributesProperties) {
super({
type: "w:type",
styleId: "w:styleId",
default: "w:default",
customStyle: "w:customStyle",
val: "w:val",
}, properties);
}
}

View File

@ -1,13 +1,22 @@
import { XmlComponent } from "../../docx/xml-components";
import { StyleAttributes } from "./attributes";
import { XmlAttributeComponent, XmlComponent } from "../../docx/xml-components";
interface IComponentAttributes {
val: string;
}
class ComponentAttributes extends XmlAttributeComponent {
private _attr: IComponentAttributes;
constructor(properties: IComponentAttributes) {
super({val: "w:val"}, properties);
}
}
export class Name extends XmlComponent {
constructor(value: string) {
super("w:name");
this.root.push(new StyleAttributes({
val: value,
}));
this.root.push(new ComponentAttributes({val: value}));
}
}
@ -15,9 +24,7 @@ export class BasedOn extends XmlComponent {
constructor(value: string) {
super("w:basedOn");
this.root.push(new StyleAttributes({
val: value,
}));
this.root.push(new ComponentAttributes({val: value}));
}
}
@ -25,10 +32,7 @@ export class Next extends XmlComponent {
constructor(value: string) {
super("w:next");
this.root.push(new StyleAttributes({
styleId: "1",
val: value,
}));
this.root.push(new ComponentAttributes({val: value}));
}
}
@ -36,9 +40,7 @@ export class Link extends XmlComponent {
constructor(value: string) {
super("w:link");
this.root.push(new StyleAttributes({
val: value,
}));
this.root.push(new ComponentAttributes({val: value}));
}
}
@ -46,9 +48,8 @@ export class UiPriority extends XmlComponent {
constructor(value: string) {
super("w:uiPriority");
this.root.push(new StyleAttributes({
val: value,
}));
// TODO: this value should be a ST_DecimalNumber
this.root.push(new ComponentAttributes({val: value}));
}
}

View File

@ -1,15 +1,34 @@
import { ParagraphProperties } from "../../docx/paragraph/properties";
import { RunProperties } from "../../docx/run/properties";
import { XmlComponent } from "../../docx/xml-components";
import { XmlAttributeComponent, XmlComponent } from "../../docx/xml-components";
import { StyleAttributes } from "./attributes";
import { BasedOn, Name, Next, QuickFormat } from "./components";
export interface IStyleAttributes {
type?: string;
styleId?: string;
default?: boolean;
customStyle?: string;
}
class StyleAttributes extends XmlAttributeComponent {
private _attr: IStyleAttributes;
constructor(properties: IStyleAttributes) {
super({
type: "w:type",
styleId: "w:styleId",
default: "w:default",
customStyle: "w:customStyle",
}, properties);
}
}
export class Style extends XmlComponent {
constructor(attributes: StyleAttributes) {
constructor(attributes: IStyleAttributes) {
super("w:style");
this.root.push(attributes);
this.root.push(new StyleAttributes(attributes));
}
public push(styleSegment: XmlComponent): void {
@ -23,12 +42,7 @@ export class ParagraphStyle extends Style {
private runProperties: RunProperties;
constructor(styleId: string) {
const attributes = new StyleAttributes({
type: "paragraph",
styleId: styleId,
});
super(attributes);
super({type: "paragraph", styleId: styleId});
this.paragraphProperties = new ParagraphProperties();
this.runProperties = new RunProperties();
this.root.push(this.paragraphProperties);