123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- "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
|