More math components
This commit is contained in:
2
src/file/paragraph/math/script/sub-script/index.ts
Normal file
2
src/file/paragraph/math/script/sub-script/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from "./math-sub-script-function";
|
||||
export * from "./math-sub-script-function-properties";
|
@ -0,0 +1,17 @@
|
||||
import { expect } from "chai";
|
||||
|
||||
import { Formatter } from "export/formatter";
|
||||
import { MathSubScriptProperties } from "./math-sub-script-function-properties";
|
||||
|
||||
describe("MathSubScriptProperties", () => {
|
||||
describe("#constructor()", () => {
|
||||
it("should create a MathSubScriptProperties with correct root key", () => {
|
||||
const mathSubScriptProperties = new MathSubScriptProperties();
|
||||
|
||||
const tree = new Formatter().format(mathSubScriptProperties);
|
||||
expect(tree).to.deep.equal({
|
||||
"m:sSubPr": {},
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
@ -0,0 +1,8 @@
|
||||
// http://www.datypic.com/sc/ooxml/e-m_sSubPr-1.html
|
||||
import { XmlComponent } from "file/xml-components";
|
||||
|
||||
export class MathSubScriptProperties extends XmlComponent {
|
||||
constructor() {
|
||||
super("m:sSubPr");
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
import { expect } from "chai";
|
||||
|
||||
import { Formatter } from "export/formatter";
|
||||
|
||||
import { MathRun } from "../../math-run";
|
||||
import { MathSubScript } from "./math-sub-script-function";
|
||||
|
||||
describe("MathSubScript", () => {
|
||||
describe("#constructor()", () => {
|
||||
it("should create a MathSubScript with correct root key", () => {
|
||||
const mathSubScript = new MathSubScript({
|
||||
child: new MathRun("e"),
|
||||
subScript: new MathRun("2"),
|
||||
});
|
||||
|
||||
const tree = new Formatter().format(mathSubScript);
|
||||
expect(tree).to.deep.equal({
|
||||
"m:sSub": [
|
||||
{
|
||||
"m:sSubPr": {},
|
||||
},
|
||||
{
|
||||
"m:e": [
|
||||
{
|
||||
"m:r": [
|
||||
{
|
||||
"m:t": ["e"],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"m:sub": [
|
||||
{
|
||||
"m:r": [
|
||||
{
|
||||
"m:t": ["2"],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
@ -0,0 +1,21 @@
|
||||
// http://www.datypic.com/sc/ooxml/e-m_sSub-1.html
|
||||
import { XmlComponent } from "file/xml-components";
|
||||
|
||||
import { MathComponent } from "../../math-component";
|
||||
import { MathBase, MathSubScriptElement } from "../../n-ary";
|
||||
import { MathSubScriptProperties } from "./math-sub-script-function-properties";
|
||||
|
||||
export interface IMathSubScriptOptions {
|
||||
readonly child: MathComponent;
|
||||
readonly subScript: MathComponent;
|
||||
}
|
||||
|
||||
export class MathSubScript extends XmlComponent {
|
||||
constructor(options: IMathSubScriptOptions) {
|
||||
super("m:sSub");
|
||||
|
||||
this.root.push(new MathSubScriptProperties());
|
||||
this.root.push(new MathBase(options.child));
|
||||
this.root.push(new MathSubScriptElement(options.subScript));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user