2022-10-08 12:56:35 +11:00
|
|
|
import { XmlComponent } from "@file/xml-components";
|
|
|
|
|
|
|
|
import { MathComponent } from "../math-component";
|
2025-04-14 16:43:15 +05:30
|
|
|
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
|
|
|
|
2024-10-21 03:57:15 +01:00
|
|
|
export type IMathIntegralOptions = {
|
2022-10-08 12:56:35 +11:00
|
|
|
readonly children: readonly MathComponent[];
|
|
|
|
readonly subScript?: readonly MathComponent[];
|
|
|
|
readonly superScript?: readonly MathComponent[];
|
2024-10-21 03:57:15 +01:00
|
|
|
};
|
2022-10-08 12:56:35 +11:00
|
|
|
|
|
|
|
export class MathIntegral extends XmlComponent {
|
|
|
|
public constructor(options: IMathIntegralOptions) {
|
|
|
|
super("m:nary");
|
|
|
|
|
2025-04-14 16:43:15 +05:30
|
|
|
this.root.push(
|
|
|
|
createMathNAryProperties({
|
|
|
|
accent: "",
|
|
|
|
hasSuperScript: !!options.superScript,
|
|
|
|
hasSubScript: !!options.subScript,
|
|
|
|
limitLocationVal: "subSup",
|
|
|
|
}),
|
|
|
|
);
|
2022-10-08 12:56:35 +11:00
|
|
|
|
|
|
|
if (!!options.subScript) {
|
2025-04-14 16:43:15 +05:30
|
|
|
this.root.push(createMathSubScriptElement({ children: options.subScript }));
|
2022-10-08 12:56:35 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
if (!!options.superScript) {
|
2025-04-14 16:43:15 +05:30
|
|
|
this.root.push(createMathSuperScriptElement({ children: options.superScript }));
|
2022-10-08 12:56:35 +11:00
|
|
|
}
|
|
|
|
|
2025-04-14 16:43:15 +05:30
|
|
|
this.root.push(createMathBase({ children: options.children }));
|
2022-10-08 12:56:35 +11:00
|
|
|
}
|
|
|
|
}
|