stuff
This commit is contained in:
parent
bc92231240
commit
b8225c639e
11904 changed files with 1472749 additions and 133 deletions
291
node_modules/mathjax-full/js/input/mathml/MathMLCompile.js
generated
vendored
Normal file
291
node_modules/mathjax-full/js/input/mathml/MathMLCompile.js
generated
vendored
Normal file
|
|
@ -0,0 +1,291 @@
|
|||
"use strict";
|
||||
var __assign = (this && this.__assign) || function () {
|
||||
__assign = Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __values = (this && this.__values) || function(o) {
|
||||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
||||
if (m) return m.call(o);
|
||||
if (o && typeof o.length === "number") return {
|
||||
next: function () {
|
||||
if (o && i >= o.length) o = void 0;
|
||||
return { value: o && o[i++], done: !o };
|
||||
}
|
||||
};
|
||||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MathMLCompile = void 0;
|
||||
var MmlNode_js_1 = require("../../core/MmlTree/MmlNode.js");
|
||||
var Options_js_1 = require("../../util/Options.js");
|
||||
var Entities = __importStar(require("../../util/Entities.js"));
|
||||
var MathMLCompile = (function () {
|
||||
function MathMLCompile(options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
var Class = this.constructor;
|
||||
this.options = (0, Options_js_1.userOptions)((0, Options_js_1.defaultOptions)({}, Class.OPTIONS), options);
|
||||
}
|
||||
MathMLCompile.prototype.setMmlFactory = function (mmlFactory) {
|
||||
this.factory = mmlFactory;
|
||||
};
|
||||
MathMLCompile.prototype.compile = function (node) {
|
||||
var mml = this.makeNode(node);
|
||||
mml.verifyTree(this.options['verify']);
|
||||
mml.setInheritedAttributes({}, false, 0, false);
|
||||
mml.walkTree(this.markMrows);
|
||||
return mml;
|
||||
};
|
||||
MathMLCompile.prototype.makeNode = function (node) {
|
||||
var e_1, _a;
|
||||
var adaptor = this.adaptor;
|
||||
var limits = false;
|
||||
var kind = adaptor.kind(node).replace(/^.*:/, '');
|
||||
var texClass = adaptor.getAttribute(node, 'data-mjx-texclass') || '';
|
||||
if (texClass) {
|
||||
texClass = this.filterAttribute('data-mjx-texclass', texClass) || '';
|
||||
}
|
||||
var type = texClass && kind === 'mrow' ? 'TeXAtom' : kind;
|
||||
try {
|
||||
for (var _b = __values(this.filterClassList(adaptor.allClasses(node))), _c = _b.next(); !_c.done; _c = _b.next()) {
|
||||
var name_1 = _c.value;
|
||||
if (name_1.match(/^MJX-TeXAtom-/) && kind === 'mrow') {
|
||||
texClass = name_1.substr(12);
|
||||
type = 'TeXAtom';
|
||||
}
|
||||
else if (name_1 === 'MJX-fixedlimits') {
|
||||
limits = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||
}
|
||||
finally { if (e_1) throw e_1.error; }
|
||||
}
|
||||
this.factory.getNodeClass(type) || this.error('Unknown node type "' + type + '"');
|
||||
var mml = this.factory.create(type);
|
||||
if (type === 'TeXAtom' && texClass === 'OP' && !limits) {
|
||||
mml.setProperty('movesupsub', true);
|
||||
mml.attributes.setInherited('movablelimits', true);
|
||||
}
|
||||
if (texClass) {
|
||||
mml.texClass = MmlNode_js_1.TEXCLASS[texClass];
|
||||
mml.setProperty('texClass', mml.texClass);
|
||||
}
|
||||
this.addAttributes(mml, node);
|
||||
this.checkClass(mml, node);
|
||||
this.addChildren(mml, node);
|
||||
return mml;
|
||||
};
|
||||
MathMLCompile.prototype.addAttributes = function (mml, node) {
|
||||
var e_2, _a;
|
||||
var ignoreVariant = false;
|
||||
try {
|
||||
for (var _b = __values(this.adaptor.allAttributes(node)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
||||
var attr = _c.value;
|
||||
var name_2 = attr.name;
|
||||
var value = this.filterAttribute(name_2, attr.value);
|
||||
if (value === null || name_2 === 'xmlns') {
|
||||
continue;
|
||||
}
|
||||
if (name_2.substr(0, 9) === 'data-mjx-') {
|
||||
switch (name_2.substr(9)) {
|
||||
case 'alternate':
|
||||
mml.setProperty('variantForm', true);
|
||||
break;
|
||||
case 'variant':
|
||||
mml.attributes.set('mathvariant', value);
|
||||
ignoreVariant = true;
|
||||
break;
|
||||
case 'smallmatrix':
|
||||
mml.setProperty('scriptlevel', 1);
|
||||
mml.setProperty('useHeight', false);
|
||||
break;
|
||||
case 'accent':
|
||||
mml.setProperty('mathaccent', value === 'true');
|
||||
break;
|
||||
case 'auto-op':
|
||||
mml.setProperty('autoOP', value === 'true');
|
||||
break;
|
||||
case 'script-align':
|
||||
mml.setProperty('scriptalign', value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (name_2 !== 'class') {
|
||||
var val = value.toLowerCase();
|
||||
if (val === 'true' || val === 'false') {
|
||||
mml.attributes.set(name_2, val === 'true');
|
||||
}
|
||||
else if (!ignoreVariant || name_2 !== 'mathvariant') {
|
||||
mml.attributes.set(name_2, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||
}
|
||||
finally { if (e_2) throw e_2.error; }
|
||||
}
|
||||
};
|
||||
MathMLCompile.prototype.filterAttribute = function (_name, value) {
|
||||
return value;
|
||||
};
|
||||
MathMLCompile.prototype.filterClassList = function (list) {
|
||||
return list;
|
||||
};
|
||||
MathMLCompile.prototype.addChildren = function (mml, node) {
|
||||
var e_3, _a;
|
||||
if (mml.arity === 0) {
|
||||
return;
|
||||
}
|
||||
var adaptor = this.adaptor;
|
||||
try {
|
||||
for (var _b = __values(adaptor.childNodes(node)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
||||
var child = _c.value;
|
||||
var name_3 = adaptor.kind(child);
|
||||
if (name_3 === '#comment') {
|
||||
continue;
|
||||
}
|
||||
if (name_3 === '#text') {
|
||||
this.addText(mml, child);
|
||||
}
|
||||
else if (mml.isKind('annotation-xml')) {
|
||||
mml.appendChild(this.factory.create('XML').setXML(child, adaptor));
|
||||
}
|
||||
else {
|
||||
var childMml = mml.appendChild(this.makeNode(child));
|
||||
if (childMml.arity === 0 && adaptor.childNodes(child).length) {
|
||||
if (this.options['fixMisplacedChildren']) {
|
||||
this.addChildren(mml, child);
|
||||
}
|
||||
else {
|
||||
childMml.mError('There should not be children for ' + childMml.kind + ' nodes', this.options['verify'], true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||
}
|
||||
finally { if (e_3) throw e_3.error; }
|
||||
}
|
||||
};
|
||||
MathMLCompile.prototype.addText = function (mml, child) {
|
||||
var text = this.adaptor.value(child);
|
||||
if ((mml.isToken || mml.getProperty('isChars')) && mml.arity) {
|
||||
if (mml.isToken) {
|
||||
text = Entities.translate(text);
|
||||
text = this.trimSpace(text);
|
||||
}
|
||||
mml.appendChild(this.factory.create('text').setText(text));
|
||||
}
|
||||
else if (text.match(/\S/)) {
|
||||
this.error('Unexpected text node "' + text + '"');
|
||||
}
|
||||
};
|
||||
MathMLCompile.prototype.checkClass = function (mml, node) {
|
||||
var e_4, _a;
|
||||
var classList = [];
|
||||
try {
|
||||
for (var _b = __values(this.filterClassList(this.adaptor.allClasses(node))), _c = _b.next(); !_c.done; _c = _b.next()) {
|
||||
var name_4 = _c.value;
|
||||
if (name_4.substr(0, 4) === 'MJX-') {
|
||||
if (name_4 === 'MJX-variant') {
|
||||
mml.setProperty('variantForm', true);
|
||||
}
|
||||
else if (name_4.substr(0, 11) !== 'MJX-TeXAtom') {
|
||||
mml.attributes.set('mathvariant', this.fixCalligraphic(name_4.substr(3)));
|
||||
}
|
||||
}
|
||||
else {
|
||||
classList.push(name_4);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
||||
finally {
|
||||
try {
|
||||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
||||
}
|
||||
finally { if (e_4) throw e_4.error; }
|
||||
}
|
||||
if (classList.length) {
|
||||
mml.attributes.set('class', classList.join(' '));
|
||||
}
|
||||
};
|
||||
MathMLCompile.prototype.fixCalligraphic = function (variant) {
|
||||
return variant.replace(/caligraphic/, 'calligraphic');
|
||||
};
|
||||
MathMLCompile.prototype.markMrows = function (mml) {
|
||||
if (mml.isKind('mrow') && !mml.isInferred && mml.childNodes.length >= 2) {
|
||||
var first = mml.childNodes[0];
|
||||
var last = mml.childNodes[mml.childNodes.length - 1];
|
||||
if (first.isKind('mo') && first.attributes.get('fence') && first.attributes.get('stretchy') &&
|
||||
last.isKind('mo') && last.attributes.get('fence') && last.attributes.get('stretchy')) {
|
||||
if (first.childNodes.length) {
|
||||
mml.setProperty('open', first.getText());
|
||||
}
|
||||
if (last.childNodes.length) {
|
||||
mml.setProperty('close', last.getText());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
MathMLCompile.prototype.trimSpace = function (text) {
|
||||
return text.replace(/[\t\n\r]/g, ' ')
|
||||
.replace(/^ +/, '')
|
||||
.replace(/ +$/, '')
|
||||
.replace(/ +/g, ' ');
|
||||
};
|
||||
MathMLCompile.prototype.error = function (message) {
|
||||
throw new Error(message);
|
||||
};
|
||||
MathMLCompile.OPTIONS = {
|
||||
MmlFactory: null,
|
||||
fixMisplacedChildren: true,
|
||||
verify: __assign({}, MmlNode_js_1.AbstractMmlNode.verifyDefaults),
|
||||
translateEntities: true
|
||||
};
|
||||
return MathMLCompile;
|
||||
}());
|
||||
exports.MathMLCompile = MathMLCompile;
|
||||
//# sourceMappingURL=MathMLCompile.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue