@qtikit/mathml-to-latex
Version:
A JavaScript tool to convert mathml string to LaTeX string
44 lines (43 loc) • 1.84 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.XmlToMathMLAdapter = void 0;
var xmldom_1 = __importDefault(require("xmldom"));
var XmlToMathMLAdapter = /** @class */ (function () {
function XmlToMathMLAdapter(elementsConvertor, errorHandler) {
this._xml = '';
this._elementsConvertor = elementsConvertor;
this._errorHandler = errorHandler;
this._xmlDOM = new xmldom_1.default.DOMParser({
locator: this._errorHandler.errorLocator,
errorHandler: this._fixError.bind(this),
});
}
XmlToMathMLAdapter.prototype.convert = function (xml) {
this._xml = this._removeLineBreaks(xml);
return this._elementsConvertor.convert(this._mathMLElements);
};
XmlToMathMLAdapter.prototype._fixError = function (errorMessage) {
this._xml = this._errorHandler.fixError(this._xml, errorMessage);
};
XmlToMathMLAdapter.prototype._removeLineBreaks = function (xml) {
var LINE_BREAK = /\n|\r\n|\r/g;
return xml.replace(LINE_BREAK, '');
};
Object.defineProperty(XmlToMathMLAdapter.prototype, "_mathMLElements", {
get: function () {
var elements = this._xmlDOM.parseFromString(this._xml).getElementsByTagName('math');
if (this._errorHandler.isThereAnyErrors()) {
this._errorHandler.cleanErrors();
elements = this._xmlDOM.parseFromString(this._xml).getElementsByTagName('math');
}
return Array.from(elements);
},
enumerable: false,
configurable: true
});
return XmlToMathMLAdapter;
}());
exports.XmlToMathMLAdapter = XmlToMathMLAdapter;