Add MathIntegral class

This commit is contained in:
tvale1
2022-10-08 12:56:35 +11:00
parent 059455929b
commit 9ab6df99b1
5 changed files with 67 additions and 1 deletions

View File

@ -16,6 +16,7 @@ import {
MathSubScript, MathSubScript,
MathSubSuperScript, MathSubSuperScript,
MathSum, MathSum,
MathIntegral,
MathSuperScript, MathSuperScript,
Packer, Packer,
Paragraph, Paragraph,
@ -90,6 +91,35 @@ const doc = new Document({
}), }),
], ],
}), }),
new Paragraph({
children: [
new Math({
children: [
new MathIntegral({
children: [new MathRun("test")],
}),
new MathIntegral({
children: [
new MathSuperScript({
children: [new MathRun("e")],
superScript: [new MathRun("2")],
}),
],
subScript: [new MathRun("i")],
}),
new MathIntegral({
children: [
new MathRadical({
children: [new MathRun("i")],
}),
],
subScript: [new MathRun("i")],
superScript: [new MathRun("10")],
}),
],
}),
],
}),
new Paragraph({ new Paragraph({
children: [ children: [
new Math({ new Math({

View File

@ -3,6 +3,7 @@ import { MathFraction } from "./fraction";
import { MathFunction } from "./function"; import { MathFunction } from "./function";
import { MathRun } from "./math-run"; import { MathRun } from "./math-run";
import { MathSum } from "./n-ary"; import { MathSum } from "./n-ary";
import { MathIntegral } from "./n-ary";
import { MathRadical } from "./radical"; import { MathRadical } from "./radical";
import { MathSubScript, MathSubSuperScript, MathSuperScript } from "./script"; import { MathSubScript, MathSubSuperScript, MathSuperScript } from "./script";
@ -10,6 +11,7 @@ export type MathComponent =
| MathRun | MathRun
| MathFraction | MathFraction
| MathSum | MathSum
| MathIntegral
| MathSuperScript | MathSuperScript
| MathSubScript | MathSubScript
| MathSubSuperScript | MathSubSuperScript

View File

@ -4,4 +4,5 @@ export * from "./math-limit-location";
export * from "./math-n-ary-properties"; export * from "./math-n-ary-properties";
export * from "./math-sub-script"; export * from "./math-sub-script";
export * from "./math-sum"; export * from "./math-sum";
export * from "./math-integral";
export * from "./math-super-script"; export * from "./math-super-script";

View File

@ -0,0 +1,31 @@
import { XmlComponent } from "@file/xml-components";
import { MathComponent } from "../math-component";
import { MathBase } from "./math-base";
import { MathNAryProperties } from "./math-n-ary-properties";
import { MathSubScriptElement } from "./math-sub-script";
import { MathSuperScriptElement } from "./math-super-script";
export interface IMathIntegralOptions {
readonly children: readonly MathComponent[];
readonly subScript?: readonly MathComponent[];
readonly superScript?: readonly MathComponent[];
}
export class MathIntegral extends XmlComponent {
public constructor(options: IMathIntegralOptions) {
super("m:nary");
this.root.push(new MathNAryProperties("", !!options.superScript, !!options.subScript));
if (!!options.subScript) {
this.root.push(new MathSubScriptElement(options.subScript));
}
if (!!options.superScript) {
this.root.push(new MathSuperScriptElement(options.superScript));
}
this.root.push(new MathBase(options.children));
}
}

View File

@ -10,7 +10,9 @@ export class MathNAryProperties extends XmlComponent {
public constructor(accent: string, hasSuperScript: boolean, hasSubScript: boolean) { public constructor(accent: string, hasSuperScript: boolean, hasSubScript: boolean) {
super("m:naryPr"); super("m:naryPr");
this.root.push(new MathAccentCharacter(accent)); if (!!accent){
this.root.push(new MathAccentCharacter(accent));
}
this.root.push(new MathLimitLocation()); this.root.push(new MathLimitLocation());
if (!hasSuperScript) { if (!hasSuperScript) {