From daea8d286811baf336d938d2541fb9b550c21b91 Mon Sep 17 00:00:00 2001 From: Dolan Miu Date: Mon, 12 Oct 2020 22:13:03 +0100 Subject: [PATCH] Make fractions take math component --- demo/55-math.ts | 40 ++++++++----------- .../math/fraction/math-denominator.spec.ts | 3 +- .../math/fraction/math-denominator.ts | 6 +-- .../math/fraction/math-fraction.spec.ts | 7 ++-- .../paragraph/math/fraction/math-fraction.ts | 9 +++-- .../math/fraction/math-numerator.spec.ts | 3 +- .../paragraph/math/fraction/math-numerator.ts | 6 +-- 7 files changed, 35 insertions(+), 39 deletions(-) diff --git a/demo/55-math.ts b/demo/55-math.ts index 92993a695a..ad7473915c 100644 --- a/demo/55-math.ts +++ b/demo/55-math.ts @@ -6,10 +6,8 @@ import { Math, MathAngledBrackets, MathCurlyBrackets, - MathDenominator, MathFraction, MathFunction, - MathNumerator, MathPreSubSuperScript, MathRadical, MathRoundBrackets, @@ -35,8 +33,8 @@ doc.addSection({ children: [ new MathRun("2+2"), new MathFraction({ - numerator: new MathNumerator("hi"), - denominator: new MathDenominator("2"), + numerator: new MathRun("hi"), + denominator: new MathRun("2"), }), ], }), @@ -142,8 +140,8 @@ doc.addSection({ children: [ new MathSubScript({ child: new MathFraction({ - numerator: new MathNumerator("1"), - denominator: new MathDenominator("2"), + numerator: new MathRun("1"), + denominator: new MathRun("2"), }), subScript: new MathRun("4"), }), @@ -158,8 +156,8 @@ doc.addSection({ new MathSubScript({ child: new MathRadical({ child: new MathFraction({ - numerator: new MathNumerator("1"), - denominator: new MathDenominator("2"), + numerator: new MathRun("1"), + denominator: new MathRun("2"), }), degree: new MathRun("4"), }), @@ -207,26 +205,26 @@ doc.addSection({ children: [ new MathRoundBrackets({ child: new MathFraction({ - numerator: new MathNumerator("1"), - denominator: new MathDenominator("2"), + numerator: new MathRun("1"), + denominator: new MathRun("2"), }), }), new MathSquareBrackets({ child: new MathFraction({ - numerator: new MathNumerator("1"), - denominator: new MathDenominator("2"), + numerator: new MathRun("1"), + denominator: new MathRun("2"), }), }), new MathCurlyBrackets({ child: new MathFraction({ - numerator: new MathNumerator("1"), - denominator: new MathDenominator("2"), + numerator: new MathRun("1"), + denominator: new MathRun("2"), }), }), new MathAngledBrackets({ child: new MathFraction({ - numerator: new MathNumerator("1"), - denominator: new MathDenominator("2"), + numerator: new MathRun("1"), + denominator: new MathRun("2"), }), }), ], @@ -238,14 +236,10 @@ doc.addSection({ new Math({ children: [ new MathFraction({ - numerator: new Math({ - children: [ - new MathRadical({ - child: new MathRun("4"), - }), - ], + numerator: new MathRadical({ + child: new MathRun("4"), }), - demoninator: new MathRun("2a"), + denominator: new MathRun("2a"), }), ], }), diff --git a/src/file/paragraph/math/fraction/math-denominator.spec.ts b/src/file/paragraph/math/fraction/math-denominator.spec.ts index cca8ae0ee1..a5f50ce1ad 100644 --- a/src/file/paragraph/math/fraction/math-denominator.spec.ts +++ b/src/file/paragraph/math/fraction/math-denominator.spec.ts @@ -2,12 +2,13 @@ import { expect } from "chai"; import { Formatter } from "export/formatter"; +import { MathRun } from "../math-run"; import { MathDenominator } from "./math-denominator"; describe("MathDenominator", () => { describe("#constructor()", () => { it("should create a MathDenominator with correct root key", () => { - const mathDenominator = new MathDenominator("2+2"); + const mathDenominator = new MathDenominator(new MathRun("2+2")); const tree = new Formatter().format(mathDenominator); expect(tree).to.deep.equal({ "m:den": [ diff --git a/src/file/paragraph/math/fraction/math-denominator.ts b/src/file/paragraph/math/fraction/math-denominator.ts index f640324c2e..db59eabc8c 100644 --- a/src/file/paragraph/math/fraction/math-denominator.ts +++ b/src/file/paragraph/math/fraction/math-denominator.ts @@ -1,11 +1,11 @@ import { XmlComponent } from "file/xml-components"; -import { MathRun } from "../math-run"; +import { MathComponent } from "../math-component"; export class MathDenominator extends XmlComponent { - constructor(text: string) { + constructor(child: MathComponent) { super("m:den"); - this.root.push(new MathRun(text)); + this.root.push(child); } } diff --git a/src/file/paragraph/math/fraction/math-fraction.spec.ts b/src/file/paragraph/math/fraction/math-fraction.spec.ts index 9a7386e85e..9ebd3c4bcd 100644 --- a/src/file/paragraph/math/fraction/math-fraction.spec.ts +++ b/src/file/paragraph/math/fraction/math-fraction.spec.ts @@ -2,16 +2,15 @@ import { expect } from "chai"; import { Formatter } from "export/formatter"; -import { MathDenominator } from "./math-denominator"; +import { MathRun } from "../math-run"; import { MathFraction } from "./math-fraction"; -import { MathNumerator } from "./math-numerator"; describe("MathFraction", () => { describe("#constructor()", () => { it("should create a MathFraction with correct root key", () => { const mathFraction = new MathFraction({ - numerator: new MathNumerator("2"), - denominator: new MathDenominator("2"), + numerator: new MathRun("2"), + denominator: new MathRun("2"), }); const tree = new Formatter().format(mathFraction); expect(tree).to.deep.equal({ diff --git a/src/file/paragraph/math/fraction/math-fraction.ts b/src/file/paragraph/math/fraction/math-fraction.ts index 574a989bba..65768a1fca 100644 --- a/src/file/paragraph/math/fraction/math-fraction.ts +++ b/src/file/paragraph/math/fraction/math-fraction.ts @@ -1,18 +1,19 @@ import { XmlComponent } from "file/xml-components"; +import { MathComponent } from "../math-component"; import { MathDenominator } from "./math-denominator"; import { MathNumerator } from "./math-numerator"; export interface IMathFractionOptions { - readonly numerator: MathNumerator; - readonly denominator: MathDenominator; + readonly numerator: MathComponent; + readonly denominator: MathComponent; } export class MathFraction extends XmlComponent { constructor(options: IMathFractionOptions) { super("m:f"); - this.root.push(options.numerator); - this.root.push(options.denominator); + this.root.push(new MathNumerator(options.numerator)); + this.root.push(new MathDenominator(options.denominator)); } } diff --git a/src/file/paragraph/math/fraction/math-numerator.spec.ts b/src/file/paragraph/math/fraction/math-numerator.spec.ts index 1cc5fc4aa4..862dc18938 100644 --- a/src/file/paragraph/math/fraction/math-numerator.spec.ts +++ b/src/file/paragraph/math/fraction/math-numerator.spec.ts @@ -2,12 +2,13 @@ import { expect } from "chai"; import { Formatter } from "export/formatter"; +import { MathRun } from "../math-run"; import { MathNumerator } from "./math-numerator"; describe("MathNumerator", () => { describe("#constructor()", () => { it("should create a MathNumerator with correct root key", () => { - const mathNumerator = new MathNumerator("2+2"); + const mathNumerator = new MathNumerator(new MathRun("2+2")); const tree = new Formatter().format(mathNumerator); expect(tree).to.deep.equal({ "m:num": [ diff --git a/src/file/paragraph/math/fraction/math-numerator.ts b/src/file/paragraph/math/fraction/math-numerator.ts index f7e68715b8..bad0ace36f 100644 --- a/src/file/paragraph/math/fraction/math-numerator.ts +++ b/src/file/paragraph/math/fraction/math-numerator.ts @@ -1,11 +1,11 @@ import { XmlComponent } from "file/xml-components"; -import { MathRun } from "../math-run"; +import { MathComponent } from "../math-component"; export class MathNumerator extends XmlComponent { - constructor(text: string) { + constructor(child: MathComponent) { super("m:num"); - this.root.push(new MathRun(text)); + this.root.push(child); } }