site/node_modules/mathjax-full/js/output/svg/Wrappers/mfrac.js

116 lines
5.1 KiB
JavaScript
Raw Permalink Normal View History

2024-10-14 06:09:33 +00:00
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SVGmfrac = void 0;
var Wrapper_js_1 = require("../Wrapper.js");
var mfrac_js_1 = require("../../common/Wrappers/mfrac.js");
var mfrac_js_2 = require("../../../core/MmlTree/MmlNodes/mfrac.js");
var SVGmfrac = (function (_super) {
__extends(SVGmfrac, _super);
function SVGmfrac() {
return _super !== null && _super.apply(this, arguments) || this;
}
SVGmfrac.prototype.toSVG = function (parent) {
this.standardSVGnode(parent);
var _a = this.node.attributes.getList('linethickness', 'bevelled'), linethickness = _a.linethickness, bevelled = _a.bevelled;
var display = this.isDisplay();
if (bevelled) {
this.makeBevelled(display);
}
else {
var thickness = this.length2em(String(linethickness), .06);
if (thickness === 0) {
this.makeAtop(display);
}
else {
this.makeFraction(display, thickness);
}
}
};
SVGmfrac.prototype.makeFraction = function (display, t) {
var svg = this.element;
var _a = this.node.attributes.getList('numalign', 'denomalign'), numalign = _a.numalign, denomalign = _a.denomalign;
var _b = __read(this.childNodes, 2), num = _b[0], den = _b[1];
var nbox = num.getOuterBBox();
var dbox = den.getOuterBBox();
var tex = this.font.params;
var a = tex.axis_height;
var d = .1;
var pad = (this.node.getProperty('withDelims') ? 0 : tex.nulldelimiterspace);
var W = Math.max((nbox.L + nbox.w + nbox.R) * nbox.rscale, (dbox.L + dbox.w + dbox.R) * dbox.rscale);
var nx = this.getAlignX(W, nbox, numalign) + d + pad;
var dx = this.getAlignX(W, dbox, denomalign) + d + pad;
var _c = this.getTUV(display, t), T = _c.T, u = _c.u, v = _c.v;
num.toSVG(svg);
num.place(nx, a + T + Math.max(nbox.d * nbox.rscale, u));
den.toSVG(svg);
den.place(dx, a - T - Math.max(dbox.h * dbox.rscale, v));
this.adaptor.append(svg, this.svg('rect', {
width: this.fixed(W + 2 * d), height: this.fixed(t),
x: this.fixed(pad), y: this.fixed(a - t / 2)
}));
};
SVGmfrac.prototype.makeAtop = function (display) {
var svg = this.element;
var _a = this.node.attributes.getList('numalign', 'denomalign'), numalign = _a.numalign, denomalign = _a.denomalign;
var _b = __read(this.childNodes, 2), num = _b[0], den = _b[1];
var nbox = num.getOuterBBox();
var dbox = den.getOuterBBox();
var tex = this.font.params;
var pad = (this.node.getProperty('withDelims') ? 0 : tex.nulldelimiterspace);
var W = Math.max((nbox.L + nbox.w + nbox.R) * nbox.rscale, (dbox.L + dbox.w + dbox.R) * dbox.rscale);
var nx = this.getAlignX(W, nbox, numalign) + pad;
var dx = this.getAlignX(W, dbox, denomalign) + pad;
var _c = this.getUVQ(display), u = _c.u, v = _c.v;
num.toSVG(svg);
num.place(nx, u);
den.toSVG(svg);
den.place(dx, -v);
};
SVGmfrac.prototype.makeBevelled = function (display) {
var svg = this.element;
var _a = __read(this.childNodes, 2), num = _a[0], den = _a[1];
var _b = this.getBevelData(display), u = _b.u, v = _b.v, delta = _b.delta, nbox = _b.nbox, dbox = _b.dbox;
var w = (nbox.L + nbox.w + nbox.R) * nbox.rscale;
num.toSVG(svg);
this.bevel.toSVG(svg);
den.toSVG(svg);
num.place(nbox.L * nbox.rscale, u);
this.bevel.place(w - delta / 2, 0);
den.place(w + this.bevel.getOuterBBox().w + dbox.L * dbox.rscale - delta, v);
};
SVGmfrac.kind = mfrac_js_2.MmlMfrac.prototype.kind;
return SVGmfrac;
}((0, mfrac_js_1.CommonMfracMixin)(Wrapper_js_1.SVGWrapper)));
exports.SVGmfrac = SVGmfrac;
//# sourceMappingURL=mfrac.js.map