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