UNPKG

@qtikit/mathml-to-latex

Version:

A JavaScript tool to convert mathml string to LaTeX string

44 lines (43 loc) 1.84 kB
"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;