Files
docx-js/src/file/paragraph/math/n-ary/math-integral.ts

39 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-10-08 12:56:35 +11:00
import { XmlComponent } from "@file/xml-components";
import { MathComponent } from "../math-component";
import { createMathBase } from "./math-base";
import { createMathNAryProperties } from "./math-n-ary-properties";
import { createMathSubScriptElement } from "./math-sub-script";
import { createMathSuperScriptElement } from "./math-super-script";
2022-10-08 12:56:35 +11:00
export type IMathIntegralOptions = {
2022-10-08 12:56:35 +11:00
readonly children: readonly MathComponent[];
readonly subScript?: readonly MathComponent[];
readonly superScript?: readonly MathComponent[];
};
2022-10-08 12:56:35 +11:00
export class MathIntegral extends XmlComponent {
public constructor(options: IMathIntegralOptions) {
super("m:nary");
this.root.push(
createMathNAryProperties({
accent: "",
hasSuperScript: !!options.superScript,
hasSubScript: !!options.subScript,
limitLocationVal: "subSup",
}),
);
2022-10-08 12:56:35 +11:00
if (!!options.subScript) {
this.root.push(createMathSubScriptElement({ children: options.subScript }));
2022-10-08 12:56:35 +11:00
}
if (!!options.superScript) {
this.root.push(createMathSuperScriptElement({ children: options.superScript }));
2022-10-08 12:56:35 +11:00
}
this.root.push(createMathBase({ children: options.children }));
2022-10-08 12:56:35 +11:00
}
}