added paragraph formatting methods to numbering Level
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
|
import * as paragraph from "../docx/paragraph/formatting";
|
||||||
import { ParagraphProperties } from "../docx/paragraph/properties";
|
import { ParagraphProperties } from "../docx/paragraph/properties";
|
||||||
import { RunProperties } from "../docx/run/properties";
|
import { RunProperties } from "../docx/run/properties";
|
||||||
import { Attributes, XmlAttributeComponent, XmlComponent } from "../docx/xml-components";
|
import { Attributes, XmlAttributeComponent, XmlComponent } from "../docx/xml-components";
|
||||||
@ -86,4 +87,51 @@ export class Level extends XmlComponent {
|
|||||||
this.runProperties.push(property);
|
this.runProperties.push(property);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------- Paragraph formatting ------------------------ //
|
||||||
|
|
||||||
|
public center(): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.Alignment("center"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public left(): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.Alignment("left"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public right(): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.Alignment("right"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public justified(): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.Alignment("both"));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public thematicBreak(): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.ThematicBreak());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public maxRightTabStop(): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.MaxRightTabStop());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public leftTabStop(position: number): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.LeftTabStop(position));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public indent(left: number, hanging?: number): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.Indent(left, hanging));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public spacing(params: paragraph.ISpacingProperties): Level {
|
||||||
|
this.addParagraphProperty(new paragraph.Spacing(params));
|
||||||
|
return this;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -105,5 +105,122 @@ describe("AbstractNumbering", () => {
|
|||||||
expect(tree["w:lvl"]).to.include({ "w:numFmt": [{ _attr: { "w:val": "lowerLetter" } }] });
|
expect(tree["w:lvl"]).to.include({ "w:numFmt": [{ _attr: { "w:val": "lowerLetter" } }] });
|
||||||
expect(tree["w:lvl"]).to.include({ "w:lvlText": [{ _attr: { "w:val": "%1)" } }] });
|
expect(tree["w:lvl"]).to.include({ "w:lvlText": [{ _attr: { "w:val": "%1)" } }] });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("formatting methods: paragraph properties", () => {
|
||||||
|
it("#indent", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerLetter", "%0.")
|
||||||
|
.indent(720);
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [{"w:ind": [{_attr: {"w:left": 720}}]}],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#spacing", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerLetter", "%0.")
|
||||||
|
.spacing({before: 50, after: 150});
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:spacing": [{_attr: {"w:before": 50, "w:after": 150}}]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#center", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerLetter", "%0.")
|
||||||
|
.center();
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:jc": [{_attr: {"w:val": "center"}}]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#left", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.", "left")
|
||||||
|
.left();
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:jc": [{_attr: {"w:val": "left"}}]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#right", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.")
|
||||||
|
.right();
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:jc": [{_attr: {"w:val": "right"}}]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#justified", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.")
|
||||||
|
.justified();
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:jc": [{_attr: {"w:val": "both"}}]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#thematicBreak", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.")
|
||||||
|
.thematicBreak();
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:pBdr": [{"w:bottom": [{_attr: {
|
||||||
|
"w:color": "auto",
|
||||||
|
"w:space": "1",
|
||||||
|
"w:val": "single",
|
||||||
|
"w:sz": "6",
|
||||||
|
}}]}]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#leftTabStop", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.")
|
||||||
|
.leftTabStop(1200);
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:tabs": [
|
||||||
|
{"w:tab": [{_attr: {"w:val": "left", "w:pos": 1200}}]},
|
||||||
|
]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("#maxRightTabStop", () => {
|
||||||
|
const abstractNumbering = new AbstractNumbering(1);
|
||||||
|
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.")
|
||||||
|
.maxRightTabStop();
|
||||||
|
const tree = new Formatter().format(level);
|
||||||
|
expect(tree["w:lvl"]).to.include({
|
||||||
|
"w:pPr": [
|
||||||
|
{"w:tabs": [
|
||||||
|
{"w:tab": [{_attr: {"w:val": "right", "w:pos": 9026}}]},
|
||||||
|
]},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user