added different types of underline
This commit is contained in:
@ -20,17 +20,6 @@ export class Italics extends XmlComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO needs work. add more types of underline
|
|
||||||
export class Underline extends XmlComponent {
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super("w:u");
|
|
||||||
this.root.push(new Attributes({
|
|
||||||
val: true
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class Caps extends XmlComponent {
|
export class Caps extends XmlComponent {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import {XmlComponent, Attributes} from "../xml-components";
|
import {XmlComponent, Attributes} from "../xml-components";
|
||||||
import {RunProperties} from "./properties";
|
import {RunProperties} from "./properties";
|
||||||
import {Bold, Italics, Underline} from "./formatting";
|
import {Bold, Italics} from "./formatting";
|
||||||
import {Tab} from "./tab";
|
import {Tab} from "./tab";
|
||||||
import {Break} from "./break";
|
import {Break} from "./break";
|
||||||
import {SmallCaps, Caps} from "./caps";
|
import {SmallCaps, Caps} from "./caps";
|
||||||
import {Strike, DoubleStrike} from "./strike";
|
import {Strike, DoubleStrike} from "./strike";
|
||||||
import {SubScript, SuperScript} from "./script";
|
import {SubScript, SuperScript} from "./script";
|
||||||
|
import {Underline} from "./underline"
|
||||||
|
|
||||||
export class Run extends XmlComponent {
|
export class Run extends XmlComponent {
|
||||||
private properties: RunProperties;
|
private properties: RunProperties;
|
||||||
|
132
ts/docx/run/underline.ts
Normal file
132
ts/docx/run/underline.ts
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
import {XmlComponent, Attributes} from "../xml-components";
|
||||||
|
|
||||||
|
abstract class BaseUnderline extends XmlComponent {
|
||||||
|
|
||||||
|
constructor(underlineType: string, color?: string) {
|
||||||
|
super("w:u");
|
||||||
|
this.root.push(new Attributes({
|
||||||
|
val: underlineType,
|
||||||
|
color: color
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Underline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DashUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dash");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DashDotDotHeavyUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dashDotDotHeavy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DashDotHeavyUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dashDotHeavy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DashLongUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dashLong");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DashLongHeavyUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dashLongHeavy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DotDashUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dotDash");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DotDotDashUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dotDotDash");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DottedUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dotted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DottedHeavyUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("dottedHeavy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class DoubleUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("double");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export class SingleUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("single");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ThickUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("thick");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class WaveUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("wave");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class WavyDoubleUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("wavyDouble");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class WavyHeavyUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("wavyHeavy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class WordsUnderline extends BaseUnderline {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super("words");
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,7 @@ function jsonify(obj: Object) {
|
|||||||
return JSON.parse(stringifiedJson);
|
return JSON.parse(stringifiedJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
describe.only("Run", () => {
|
describe("Run", () => {
|
||||||
let run: Run;
|
let run: Run;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
37
ts/tests/docx/run/underlineTests.ts
Normal file
37
ts/tests/docx/run/underlineTests.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import * as u from "../../../docx/run/underline";
|
||||||
|
import {TextRun} from "../../../docx/run/text-run";
|
||||||
|
import {assert} from "chai";
|
||||||
|
|
||||||
|
function jsonify(obj: Object) {
|
||||||
|
let stringifiedJson = JSON.stringify(obj);
|
||||||
|
return JSON.parse(stringifiedJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
describe.only("Underline", () => {
|
||||||
|
|
||||||
|
describe("#constructor()", () => {
|
||||||
|
|
||||||
|
it("should create a new Underline object", () => {
|
||||||
|
let underline = new u.Underline();
|
||||||
|
let newJson = jsonify(underline);
|
||||||
|
assert.equal(newJson.rootKey, "w:u");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe.only("Underline", () => {
|
||||||
|
|
||||||
|
describe("#constructor()", () => {
|
||||||
|
it("should create a new Underline object", () => {
|
||||||
|
let underline = new u.DashDotDotHeavyUnderline();
|
||||||
|
let newJson = jsonify(underline);
|
||||||
|
assert.equal(newJson.rootKey, "w:u");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should put value in attribute", () => {
|
||||||
|
let underline = new u.DashDotDotHeavyUnderline();
|
||||||
|
let newJson = jsonify(underline);
|
||||||
|
assert.equal(newJson.rootKey, "w:u");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Reference in New Issue
Block a user