Merge branch 'master' into build

This commit is contained in:
amitm02
2018-07-24 18:53:18 +03:00
8 changed files with 70 additions and 7 deletions

17
demo/demo20.js Normal file
View File

@ -0,0 +1,17 @@
const docx = require("../build");
var doc = new docx.Document();
const table = doc.createTable(4, 4);
table
.getCell(2, 2)
.addContent(new docx.Paragraph("Hello"))
.cellProperties.borders.addTopBorder(docx.BorderStyle.DASH_DOT_STROKED, 3, "red")
.addBottomBorder(docx.BorderStyle.DOUBLE, 3, "blue")
.addStartBorder(docx.BorderStyle.DOT_DOT_DASH, 3, "green")
.addEndBorder(docx.BorderStyle.DOT_DOT_DASH, 3, "#ff8000");
var exporter = new docx.LocalPacker(doc);
exporter.pack("My Document");
console.log("Document created successfully at project root!");

View File

@ -34,7 +34,7 @@ describe("Numbering", () => {
]); ]);
// Once chai 4.0.0 lands and #644 is resolved, we can add the following to the test: // Once chai 4.0.0 lands and #644 is resolved, we can add the following to the test:
// {"w:lvlText": [{"_attr": {"w:val": "•"}}]}, // {"w:lvlText": [{"_attr": {"w:val": "•"}}]},
// {"w:rPr": [{"w:rFonts": [{"_attr": {"w:ascii": "Symbol", "w:hAnsi": "Symbol", "w:hint": "default"}}]}]}, // {"w:rPr": [{"w:rFonts": [{"_attr": {"w:ascii": "Symbol", "w:cs": "Symbol", "w:eastAsia": "Symbol", "w:hAnsi": "Symbol", "w:hint": "default"}}]}]},
// {"w:pPr": [{"_attr": {}}, // {"w:pPr": [{"_attr": {}},
// {"w:ind": [{"_attr": {"w:left": 720, "w:hanging": 360}}]}]}, // {"w:ind": [{"_attr": {"w:left": 720, "w:hanging": 360}}]}]},
}); });
@ -297,7 +297,9 @@ describe("AbstractNumbering", () => {
const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.").font("Times"); const level = abstractNumbering.createLevel(0, "lowerRoman", "%0.").font("Times");
const tree = new Formatter().format(level); const tree = new Formatter().format(level);
expect(tree["w:lvl"]).to.include({ expect(tree["w:lvl"]).to.include({
"w:rPr": [{ "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:hAnsi": "Times" } }] }], "w:rPr": [
{ "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:cs": "Times", "w:eastAsia": "Times", "w:hAnsi": "Times" } }] },
],
}); });
}); });

View File

@ -123,3 +123,14 @@ export class Size extends XmlComponent {
); );
} }
} }
export class RTL extends XmlComponent {
constructor() {
super("w:rtl");
this.root.push(
new Attributes({
val: true,
}),
);
}
}

View File

@ -8,14 +8,16 @@ describe("RunFonts", () => {
it("uses the font name for both ascii and hAnsi", () => { it("uses the font name for both ascii and hAnsi", () => {
const tree = new Formatter().format(new RunFonts("Times")); const tree = new Formatter().format(new RunFonts("Times"));
expect(tree).to.deep.equal({ expect(tree).to.deep.equal({
"w:rFonts": [{ _attr: { "w:ascii": "Times", "w:hAnsi": "Times" } }], "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:cs": "Times", "w:eastAsia": "Times", "w:hAnsi": "Times" } }],
}); });
}); });
it("uses hint if given", () => { it("uses hint if given", () => {
const tree = new Formatter().format(new RunFonts("Times", "default")); const tree = new Formatter().format(new RunFonts("Times", "default"));
expect(tree).to.deep.equal({ expect(tree).to.deep.equal({
"w:rFonts": [{ _attr: { "w:ascii": "Times", "w:hAnsi": "Times", "w:hint": "default" } }], "w:rFonts": [
{ _attr: { "w:ascii": "Times", "w:cs": "Times", "w:eastAsia": "Times", "w:hAnsi": "Times", "w:hint": "default" } },
],
}); });
}); });
}); });

View File

@ -2,6 +2,8 @@ import { XmlAttributeComponent, XmlComponent } from "file/xml-components";
interface IRunFontAttributesProperties { interface IRunFontAttributesProperties {
ascii: string; ascii: string;
cs: string;
eastAsia: string;
hAnsi: string; hAnsi: string;
hint?: string; hint?: string;
} }
@ -9,6 +11,8 @@ interface IRunFontAttributesProperties {
class RunFontAttributes extends XmlAttributeComponent<IRunFontAttributesProperties> { class RunFontAttributes extends XmlAttributeComponent<IRunFontAttributesProperties> {
protected xmlKeys = { protected xmlKeys = {
ascii: "w:ascii", ascii: "w:ascii",
cs: "w:cs",
eastAsia: "w:eastAsia",
hAnsi: "w:hAnsi", hAnsi: "w:hAnsi",
hint: "w:hint", hint: "w:hint",
}; };
@ -20,6 +24,8 @@ export class RunFonts extends XmlComponent {
this.root.push( this.root.push(
new RunFontAttributes({ new RunFontAttributes({
ascii: ascii, ascii: ascii,
cs: ascii,
eastAsia: ascii,
hAnsi: ascii, hAnsi: ascii,
hint: hint, hint: hint,
}), }),

View File

@ -108,7 +108,13 @@ describe("Run", () => {
run.font("Times"); run.font("Times");
const tree = new Formatter().format(run); const tree = new Formatter().format(run);
expect(tree).to.deep.equal({ expect(tree).to.deep.equal({
"w:r": [{ "w:rPr": [{ "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:hAnsi": "Times" } }] }] }], "w:r": [
{
"w:rPr": [
{ "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:cs": "Times", "w:eastAsia": "Times", "w:hAnsi": "Times" } }] },
],
},
],
}); });
}); });
}); });
@ -133,6 +139,16 @@ describe("Run", () => {
}); });
}); });
describe("#rtl", () => {
it("should set the run to the RTL mode", () => {
run.rtl();
const tree = new Formatter().format(run);
expect(tree).to.deep.equal({
"w:r": [{ "w:rPr": [{ "w:rtl": [{ _attr: { "w:val": true } }]}]}],
});
});
});
describe("#style", () => { describe("#style", () => {
it("should set the style to the given styleId", () => { it("should set the style to the given styleId", () => {
run.style("myRunStyle"); run.style("myRunStyle");

View File

@ -1,7 +1,7 @@
// http://officeopenxml.com/WPtext.php // http://officeopenxml.com/WPtext.php
import { Break } from "./break"; import { Break } from "./break";
import { Caps, SmallCaps } from "./caps"; import { Caps, SmallCaps } from "./caps";
import { Bold, Color, DoubleStrike, Italics, Size, Strike } from "./formatting"; import { Bold, Color, DoubleStrike, Italics, Size, RTL, Strike } from "./formatting";
import { Begin, End, Page, Separate } from "./page-number"; import { Begin, End, Page, Separate } from "./page-number";
import { RunProperties } from "./properties"; import { RunProperties } from "./properties";
import { RunFonts } from "./run-fonts"; import { RunFonts } from "./run-fonts";
@ -46,6 +46,11 @@ export class Run extends XmlComponent {
return this; return this;
} }
public rtl(): Run {
this.properties.push(new RTL());
return this;
}
public break(): Run { public break(): Run {
this.root.splice(1, 0, new Break()); this.root.splice(1, 0, new Break());
return this; return this;

View File

@ -459,7 +459,11 @@ describe("ParagraphStyle", () => {
"w:style": [ "w:style": [
{ _attr: { "w:type": "paragraph", "w:styleId": "myStyleId" } }, { _attr: { "w:type": "paragraph", "w:styleId": "myStyleId" } },
{ "w:pPr": [] }, { "w:pPr": [] },
{ "w:rPr": [{ "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:hAnsi": "Times" } }] }] }, {
"w:rPr": [
{ "w:rFonts": [{ _attr: { "w:ascii": "Times", "w:cs": "Times", "w:eastAsia": "Times", "w:hAnsi": "Times" } }] },
],
},
], ],
}); });
}); });