Add Right and Center tab stops

This commit is contained in:
Dolan
2017-09-19 12:51:37 +01:00
parent 492face7ab
commit da8405b5b9
2 changed files with 26 additions and 4 deletions

View File

@ -13,7 +13,7 @@ import { PageBreak } from "./page-break";
import { ParagraphProperties } from "./properties"; import { ParagraphProperties } from "./properties";
import { ISpacingProperties, Spacing } from "./spacing"; import { ISpacingProperties, Spacing } from "./spacing";
import { Style } from "./style"; import { Style } from "./style";
import { LeftTabStop, MaxRightTabStop } from "./tab-stop"; import { CenterTabStop, LeftTabStop, MaxRightTabStop, RightTabStop } from "./tab-stop";
import { NumberProperties } from "./unordered-list"; import { NumberProperties } from "./unordered-list";
export * from "./formatting"; export * from "./formatting";
@ -117,6 +117,16 @@ export class Paragraph extends XmlComponent {
return this; return this;
} }
public rightTabStop(position: number): Paragraph {
this.properties.push(new RightTabStop(position));
return this;
}
public centerTabStop(position: number): Paragraph {
this.properties.push(new CenterTabStop(position));
return this;
}
public bullet(): Paragraph { public bullet(): Paragraph {
this.properties.push(new Style("ListParagraph")); this.properties.push(new Style("ListParagraph"));
this.properties.push(new NumberProperties(1, 0)); this.properties.push(new NumberProperties(1, 0));

View File

@ -8,15 +8,15 @@ export class TabStop extends XmlComponent {
} }
} }
export type TabOptions = "left" | "right"; export type TabValue = "left" | "right" | "center" | "bar" | "clear" | "decimal" | "end" | "num" | "start";
export class TabAttributes extends XmlAttributeComponent<{val: TabOptions, pos: string | number}> { export class TabAttributes extends XmlAttributeComponent<{val: TabValue, pos: string | number}> {
protected xmlKeys = {val: "w:val", pos: "w:pos"}; protected xmlKeys = {val: "w:val", pos: "w:pos"};
} }
export class Tab extends XmlComponent { export class Tab extends XmlComponent {
constructor(value: TabOptions, position: string | number) { constructor(value: TabValue, position: string | number) {
super("w:tab"); super("w:tab");
this.root.push(new TabAttributes({ this.root.push(new TabAttributes({
val: value, val: value,
@ -36,3 +36,15 @@ export class LeftTabStop extends TabStop {
super(new Tab("left", position)); super(new Tab("left", position));
} }
} }
export class RightTabStop extends TabStop {
constructor(position: number) {
super(new Tab("right", position));
}
}
export class CenterTabStop extends TabStop {
constructor(position: number) {
super(new Tab("center", position));
}
}