1 |
- {"ast":null,"code":"\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sitem = __importStar(require(\"./BaseItems.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar TexParser_js_1 = __importDefault(require(\"../TexParser.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar Tags_js_1 = require(\"../Tags.js\");\nvar lengths_js_1 = require(\"../../../util/lengths.js\");\nvar Entities_js_1 = require(\"../../../util/Entities.js\");\nvar Options_js_1 = require(\"../../../util/Options.js\");\nvar BaseMethods = {};\nvar P_HEIGHT = 1.2 / .85;\nvar MmlTokenAllow = {\n fontfamily: 1,\n fontsize: 1,\n fontweight: 1,\n fontstyle: 1,\n color: 1,\n background: 1,\n id: 1,\n 'class': 1,\n href: 1,\n style: 1\n};\nBaseMethods.Open = function (parser, _c) {\n parser.Push(parser.itemFactory.create('open'));\n};\nBaseMethods.Close = function (parser, _c) {\n parser.Push(parser.itemFactory.create('close'));\n};\nBaseMethods.Tilde = function (parser, _c) {\n parser.Push(parser.create('token', 'mtext', {}, Entities_js_1.entities.nbsp));\n};\nBaseMethods.Space = function (_parser, _c) {};\nBaseMethods.Superscript = function (parser, _c) {\n var _a;\n if (parser.GetNext().match(/\\d/)) {\n parser.string = parser.string.substr(0, parser.i + 1) + ' ' + parser.string.substr(parser.i + 1);\n }\n var primes;\n var base;\n var top = parser.stack.Top();\n if (top.isKind('prime')) {\n _a = __read(top.Peek(2), 2), base = _a[0], primes = _a[1];\n parser.stack.Pop();\n } else {\n base = parser.stack.Prev();\n if (!base) {\n base = parser.create('token', 'mi', {}, '');\n }\n }\n var movesupsub = NodeUtil_js_1.default.getProperty(base, 'movesupsub');\n var position = NodeUtil_js_1.default.isType(base, 'msubsup') ? base.sup : base.over;\n if (NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') && NodeUtil_js_1.default.getChildAt(base, base.sup) || NodeUtil_js_1.default.isType(base, 'munderover') && !NodeUtil_js_1.default.isType(base, 'mover') && NodeUtil_js_1.default.getChildAt(base, base.over) && !NodeUtil_js_1.default.getProperty(base, 'subsupOK')) {\n throw new TexError_js_1.default('DoubleExponent', 'Double exponent: use braces to clarify');\n }\n if (!NodeUtil_js_1.default.isType(base, 'msubsup') || NodeUtil_js_1.default.isType(base, 'msup')) {\n if (movesupsub) {\n if (!NodeUtil_js_1.default.isType(base, 'munderover') || NodeUtil_js_1.default.isType(base, 'mover') || NodeUtil_js_1.default.getChildAt(base, base.over)) {\n base = parser.create('node', 'munderover', [base], {\n movesupsub: true\n });\n }\n position = base.over;\n } else {\n base = parser.create('node', 'msubsup', [base]);\n position = base.sup;\n }\n }\n parser.Push(parser.itemFactory.create('subsup', base).setProperties({\n position: position,\n primes: primes,\n movesupsub: movesupsub\n }));\n};\nBaseMethods.Subscript = function (parser, _c) {\n var _a;\n if (parser.GetNext().match(/\\d/)) {\n parser.string = parser.string.substr(0, parser.i + 1) + ' ' + parser.string.substr(parser.i + 1);\n }\n var primes, base;\n var top = parser.stack.Top();\n if (top.isKind('prime')) {\n _a = __read(top.Peek(2), 2), base = _a[0], primes = _a[1];\n parser.stack.Pop();\n } else {\n base = parser.stack.Prev();\n if (!base) {\n base = parser.create('token', 'mi', {}, '');\n }\n }\n var movesupsub = NodeUtil_js_1.default.getProperty(base, 'movesupsub');\n var position = NodeUtil_js_1.default.isType(base, 'msubsup') ? base.sub : base.under;\n if (NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') && NodeUtil_js_1.default.getChildAt(base, base.sub) || NodeUtil_js_1.default.isType(base, 'munderover') && !NodeUtil_js_1.default.isType(base, 'mover') && NodeUtil_js_1.default.getChildAt(base, base.under) && !NodeUtil_js_1.default.getProperty(base, 'subsupOK')) {\n throw new TexError_js_1.default('DoubleSubscripts', 'Double subscripts: use braces to clarify');\n }\n if (!NodeUtil_js_1.default.isType(base, 'msubsup') || NodeUtil_js_1.default.isType(base, 'msup')) {\n if (movesupsub) {\n if (!NodeUtil_js_1.default.isType(base, 'munderover') || NodeUtil_js_1.default.isType(base, 'mover') || NodeUtil_js_1.default.getChildAt(base, base.under)) {\n base = parser.create('node', 'munderover', [base], {\n movesupsub: true\n });\n }\n position = base.under;\n } else {\n base = parser.create('node', 'msubsup', [base]);\n position = base.sub;\n }\n }\n parser.Push(parser.itemFactory.create('subsup', base).setProperties({\n position: position,\n primes: primes,\n movesupsub: movesupsub\n }));\n};\nBaseMethods.Prime = function (parser, c) {\n var base = parser.stack.Prev();\n if (!base) {\n base = parser.create('node', 'mi');\n }\n if (NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') && NodeUtil_js_1.default.getChildAt(base, base.sup)) {\n throw new TexError_js_1.default('DoubleExponentPrime', 'Prime causes double exponent: use braces to clarify');\n }\n var sup = '';\n parser.i--;\n do {\n sup += Entities_js_1.entities.prime;\n parser.i++, c = parser.GetNext();\n } while (c === '\\'' || c === Entities_js_1.entities.rsquo);\n sup = ['', '\\u2032', '\\u2033', '\\u2034', '\\u2057'][sup.length] || sup;\n var node = parser.create('token', 'mo', {\n variantForm: true\n }, sup);\n parser.Push(parser.itemFactory.create('prime', base, node));\n};\nBaseMethods.Comment = function (parser, _c) {\n while (parser.i < parser.string.length && parser.string.charAt(parser.i) !== '\\n') {\n parser.i++;\n }\n};\nBaseMethods.Hash = function (_parser, _c) {\n throw new TexError_js_1.default('CantUseHash1', 'You can\\'t use \\'macro parameter character #\\' in math mode');\n};\nBaseMethods.MathFont = function (parser, name, variant) {\n var text = parser.GetArgument(name);\n var mml = new TexParser_js_1.default(text, __assign(__assign({}, parser.stack.env), {\n font: variant,\n multiLetterIdentifiers: /^[a-zA-Z]+/,\n noAutoOP: true\n }), parser.configuration).mml();\n parser.Push(parser.create('node', 'TeXAtom', [mml]));\n};\nBaseMethods.SetFont = function (parser, _name, font) {\n parser.stack.env['font'] = font;\n};\nBaseMethods.SetStyle = function (parser, _name, texStyle, style, level) {\n parser.stack.env['style'] = texStyle;\n parser.stack.env['level'] = level;\n parser.Push(parser.itemFactory.create('style').setProperty('styles', {\n displaystyle: style,\n scriptlevel: level\n }));\n};\nBaseMethods.SetSize = function (parser, _name, size) {\n parser.stack.env['size'] = size;\n parser.Push(parser.itemFactory.create('style').setProperty('styles', {\n mathsize: (0, lengths_js_1.em)(size)\n }));\n};\nBaseMethods.Spacer = function (parser, _name, space) {\n var node = parser.create('node', 'mspace', [], {\n width: (0, lengths_js_1.em)(space)\n });\n var style = parser.create('node', 'mstyle', [node], {\n scriptlevel: 0\n });\n parser.Push(style);\n};\nBaseMethods.LeftRight = function (parser, name) {\n var first = name.substr(1);\n parser.Push(parser.itemFactory.create(first, parser.GetDelimiter(name), parser.stack.env.color));\n};\nBaseMethods.NamedFn = function (parser, name, id) {\n if (!id) {\n id = name.substr(1);\n }\n var mml = parser.create('token', 'mi', {\n texClass: MmlNode_js_1.TEXCLASS.OP\n }, id);\n parser.Push(parser.itemFactory.create('fn', mml));\n};\nBaseMethods.NamedOp = function (parser, name, id) {\n if (!id) {\n id = name.substr(1);\n }\n id = id.replace(/ /, '\\u2006');\n var mml = parser.create('token', 'mo', {\n movablelimits: true,\n movesupsub: true,\n form: TexConstants_js_1.TexConstant.Form.PREFIX,\n texClass: MmlNode_js_1.TEXCLASS.OP\n }, id);\n parser.Push(mml);\n};\nBaseMethods.Limits = function (parser, _name, limits) {\n var op = parser.stack.Prev(true);\n if (!op || NodeUtil_js_1.default.getTexClass(NodeUtil_js_1.default.getCoreMO(op)) !== MmlNode_js_1.TEXCLASS.OP && NodeUtil_js_1.default.getProperty(op, 'movesupsub') == null) {\n throw new TexError_js_1.default('MisplacedLimits', '%1 is allowed only on operators', parser.currentCS);\n }\n var top = parser.stack.Top();\n var node;\n if (NodeUtil_js_1.default.isType(op, 'munderover') && !limits) {\n node = parser.create('node', 'msubsup');\n NodeUtil_js_1.default.copyChildren(op, node);\n op = top.Last = node;\n } else if (NodeUtil_js_1.default.isType(op, 'msubsup') && limits) {\n node = parser.create('node', 'munderover');\n NodeUtil_js_1.default.copyChildren(op, node);\n op = top.Last = node;\n }\n NodeUtil_js_1.default.setProperty(op, 'movesupsub', limits ? true : false);\n NodeUtil_js_1.default.setProperties(NodeUtil_js_1.default.getCoreMO(op), {\n 'movablelimits': false\n });\n if (NodeUtil_js_1.default.getAttribute(op, 'movablelimits') || NodeUtil_js_1.default.getProperty(op, 'movablelimits')) {\n NodeUtil_js_1.default.setProperties(op, {\n 'movablelimits': false\n });\n }\n};\nBaseMethods.Over = function (parser, name, open, close) {\n var mml = parser.itemFactory.create('over').setProperty('name', parser.currentCS);\n if (open || close) {\n mml.setProperty('open', open);\n mml.setProperty('close', close);\n } else if (name.match(/withdelims$/)) {\n mml.setProperty('open', parser.GetDelimiter(name));\n mml.setProperty('close', parser.GetDelimiter(name));\n }\n if (name.match(/^\\\\above/)) {\n mml.setProperty('thickness', parser.GetDimen(name));\n } else if (name.match(/^\\\\atop/) || open || close) {\n mml.setProperty('thickness', 0);\n }\n parser.Push(mml);\n};\nBaseMethods.Frac = function (parser, name) {\n var num = parser.ParseArg(name);\n var den = parser.ParseArg(name);\n var node = parser.create('node', 'mfrac', [num, den]);\n parser.Push(node);\n};\nBaseMethods.Sqrt = function (parser, name) {\n var n = parser.GetBrackets(name);\n var arg = parser.GetArgument(name);\n if (arg === '\\\\frac') {\n arg += '{' + parser.GetArgument(arg) + '}{' + parser.GetArgument(arg) + '}';\n }\n var mml = new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();\n if (!n) {\n mml = parser.create('node', 'msqrt', [mml]);\n } else {\n mml = parser.create('node', 'mroot', [mml, parseRoot(parser, n)]);\n }\n parser.Push(mml);\n};\nfunction parseRoot(parser, n) {\n var env = parser.stack.env;\n var inRoot = env['inRoot'];\n env['inRoot'] = true;\n var newParser = new TexParser_js_1.default(n, env, parser.configuration);\n var node = newParser.mml();\n var global = newParser.stack.global;\n if (global['leftRoot'] || global['upRoot']) {\n var def = {};\n if (global['leftRoot']) {\n def['width'] = global['leftRoot'];\n }\n if (global['upRoot']) {\n def['voffset'] = global['upRoot'];\n def['height'] = global['upRoot'];\n }\n node = parser.create('node', 'mpadded', [node], def);\n }\n env['inRoot'] = inRoot;\n return node;\n}\nBaseMethods.Root = function (parser, name) {\n var n = parser.GetUpTo(name, '\\\\of');\n var arg = parser.ParseArg(name);\n var node = parser.create('node', 'mroot', [arg, parseRoot(parser, n)]);\n parser.Push(node);\n};\nBaseMethods.MoveRoot = function (parser, name, id) {\n if (!parser.stack.env['inRoot']) {\n throw new TexError_js_1.default('MisplacedMoveRoot', '%1 can appear only within a root', parser.currentCS);\n }\n if (parser.stack.global[id]) {\n throw new TexError_js_1.default('MultipleMoveRoot', 'Multiple use of %1', parser.currentCS);\n }\n var n = parser.GetArgument(name);\n if (!n.match(/-?[0-9]+/)) {\n throw new TexError_js_1.default('IntegerArg', 'The argument to %1 must be an integer', parser.currentCS);\n }\n n = parseInt(n, 10) / 15 + 'em';\n if (n.substr(0, 1) !== '-') {\n n = '+' + n;\n }\n parser.stack.global[id] = n;\n};\nBaseMethods.Accent = function (parser, name, accent, stretchy) {\n var c = parser.ParseArg(name);\n var def = __assign(__assign({}, ParseUtil_js_1.default.getFontDef(parser)), {\n accent: true,\n mathaccent: true\n });\n var entity = NodeUtil_js_1.default.createEntity(accent);\n var moNode = parser.create('token', 'mo', def, entity);\n var mml = moNode;\n NodeUtil_js_1.default.setAttribute(mml, 'stretchy', stretchy ? true : false);\n var mo = NodeUtil_js_1.default.isEmbellished(c) ? NodeUtil_js_1.default.getCoreMO(c) : c;\n if (NodeUtil_js_1.default.isType(mo, 'mo') || NodeUtil_js_1.default.getProperty(mo, 'movablelimits')) {\n NodeUtil_js_1.default.setProperties(mo, {\n 'movablelimits': false\n });\n }\n var muoNode = parser.create('node', 'munderover');\n NodeUtil_js_1.default.setChild(muoNode, 0, c);\n NodeUtil_js_1.default.setChild(muoNode, 1, null);\n NodeUtil_js_1.default.setChild(muoNode, 2, mml);\n var texAtom = parser.create('node', 'TeXAtom', [muoNode]);\n parser.Push(texAtom);\n};\nBaseMethods.UnderOver = function (parser, name, c, stack) {\n var entity = NodeUtil_js_1.default.createEntity(c);\n var mo = parser.create('token', 'mo', {\n stretchy: true,\n accent: true\n }, entity);\n var pos = name.charAt(1) === 'o' ? 'over' : 'under';\n var base = parser.ParseArg(name);\n parser.Push(ParseUtil_js_1.default.underOver(parser, base, mo, pos, stack));\n};\nBaseMethods.Overset = function (parser, name) {\n var top = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (top.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(top, 'accent', false);\n }\n var node = parser.create('node', 'mover', [base, top]);\n parser.Push(node);\n};\nBaseMethods.Underset = function (parser, name) {\n var bot = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (bot.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(bot, 'accent', false);\n }\n var node = parser.create('node', 'munder', [base, bot], {\n accentunder: false\n });\n parser.Push(node);\n};\nBaseMethods.Overunderset = function (parser, name) {\n var top = parser.ParseArg(name);\n var bot = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (top.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(top, 'accent', false);\n }\n if (bot.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(bot, 'accent', false);\n }\n var node = parser.create('node', 'munderover', [base, bot, top], {\n accent: false,\n accentunder: false\n });\n parser.Push(node);\n};\nBaseMethods.TeXAtom = function (parser, name, mclass) {\n var def = {\n texClass: mclass\n };\n var mml;\n var node;\n var parsed;\n if (mclass === MmlNode_js_1.TEXCLASS.OP) {\n def['movesupsub'] = def['movablelimits'] = true;\n var arg = parser.GetArgument(name);\n var match = arg.match(/^\\s*\\\\rm\\s+([a-zA-Z0-9 ]+)$/);\n if (match) {\n def['mathvariant'] = TexConstants_js_1.TexConstant.Variant.NORMAL;\n node = parser.create('token', 'mi', def, match[1]);\n } else {\n parsed = new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();\n node = parser.create('node', 'TeXAtom', [parsed], def);\n }\n mml = parser.itemFactory.create('fn', node);\n } else {\n parsed = parser.ParseArg(name);\n mml = parser.create('node', 'TeXAtom', [parsed], def);\n }\n parser.Push(mml);\n};\nBaseMethods.MmlToken = function (parser, name) {\n var kind = parser.GetArgument(name);\n var attr = parser.GetBrackets(name, '').replace(/^\\s+/, '');\n var text = parser.GetArgument(name);\n var def = {};\n var keep = [];\n var node;\n try {\n node = parser.create('node', kind);\n } catch (e) {\n node = null;\n }\n if (!node || !node.isToken) {\n throw new TexError_js_1.default('NotMathMLToken', '%1 is not a token element', kind);\n }\n while (attr !== '') {\n var match = attr.match(/^([a-z]+)\\s*=\\s*('[^']*'|\"[^\"]*\"|[^ ,]*)\\s*,?\\s*/i);\n if (!match) {\n throw new TexError_js_1.default('InvalidMathMLAttr', 'Invalid MathML attribute: %1', attr);\n }\n if (!node.attributes.hasDefault(match[1]) && !MmlTokenAllow[match[1]]) {\n throw new TexError_js_1.default('UnknownAttrForElement', '%1 is not a recognized attribute for %2', match[1], kind);\n }\n var value = ParseUtil_js_1.default.MmlFilterAttribute(parser, match[1], match[2].replace(/^(['\"])(.*)\\1$/, '$2'));\n if (value) {\n if (value.toLowerCase() === 'true') {\n value = true;\n } else if (value.toLowerCase() === 'false') {\n value = false;\n }\n def[match[1]] = value;\n keep.push(match[1]);\n }\n attr = attr.substr(match[0].length);\n }\n if (keep.length) {\n def['mjx-keep-attrs'] = keep.join(' ');\n }\n var textNode = parser.create('text', text);\n node.appendChild(textNode);\n NodeUtil_js_1.default.setProperties(node, def);\n parser.Push(node);\n};\nBaseMethods.Strut = function (parser, _name) {\n var row = parser.create('node', 'mrow');\n var padded = parser.create('node', 'mpadded', [row], {\n height: '8.6pt',\n depth: '3pt',\n width: 0\n });\n parser.Push(padded);\n};\nBaseMethods.Phantom = function (parser, name, v, h) {\n var box = parser.create('node', 'mphantom', [parser.ParseArg(name)]);\n if (v || h) {\n box = parser.create('node', 'mpadded', [box]);\n if (h) {\n NodeUtil_js_1.default.setAttribute(box, 'height', 0);\n NodeUtil_js_1.default.setAttribute(box, 'depth', 0);\n }\n if (v) {\n NodeUtil_js_1.default.setAttribute(box, 'width', 0);\n }\n }\n var atom = parser.create('node', 'TeXAtom', [box]);\n parser.Push(atom);\n};\nBaseMethods.Smash = function (parser, name) {\n var bt = ParseUtil_js_1.default.trimSpaces(parser.GetBrackets(name, ''));\n var smash = parser.create('node', 'mpadded', [parser.ParseArg(name)]);\n switch (bt) {\n case 'b':\n NodeUtil_js_1.default.setAttribute(smash, 'depth', 0);\n break;\n case 't':\n NodeUtil_js_1.default.setAttribute(smash, 'height', 0);\n break;\n default:\n NodeUtil_js_1.default.setAttribute(smash, 'height', 0);\n NodeUtil_js_1.default.setAttribute(smash, 'depth', 0);\n }\n var atom = parser.create('node', 'TeXAtom', [smash]);\n parser.Push(atom);\n};\nBaseMethods.Lap = function (parser, name) {\n var mml = parser.create('node', 'mpadded', [parser.ParseArg(name)], {\n width: 0\n });\n if (name === '\\\\llap') {\n NodeUtil_js_1.default.setAttribute(mml, 'lspace', '-1width');\n }\n var atom = parser.create('node', 'TeXAtom', [mml]);\n parser.Push(atom);\n};\nBaseMethods.RaiseLower = function (parser, name) {\n var h = parser.GetDimen(name);\n var item = parser.itemFactory.create('position').setProperties({\n name: parser.currentCS,\n move: 'vertical'\n });\n if (h.charAt(0) === '-') {\n h = h.slice(1);\n name = name.substr(1) === 'raise' ? '\\\\lower' : '\\\\raise';\n }\n if (name === '\\\\lower') {\n item.setProperty('dh', '-' + h);\n item.setProperty('dd', '+' + h);\n } else {\n item.setProperty('dh', '+' + h);\n item.setProperty('dd', '-' + h);\n }\n parser.Push(item);\n};\nBaseMethods.MoveLeftRight = function (parser, name) {\n var h = parser.GetDimen(name);\n var nh = h.charAt(0) === '-' ? h.slice(1) : '-' + h;\n if (name === '\\\\moveleft') {\n var tmp = h;\n h = nh;\n nh = tmp;\n }\n parser.Push(parser.itemFactory.create('position').setProperties({\n name: parser.currentCS,\n move: 'horizontal',\n left: parser.create('node', 'mspace', [], {\n width: h\n }),\n right: parser.create('node', 'mspace', [], {\n width: nh\n })\n }));\n};\nBaseMethods.Hskip = function (parser, name) {\n var node = parser.create('node', 'mspace', [], {\n width: parser.GetDimen(name)\n });\n parser.Push(node);\n};\nBaseMethods.Nonscript = function (parser, _name) {\n parser.Push(parser.itemFactory.create('nonscript'));\n};\nBaseMethods.Rule = function (parser, name, style) {\n var w = parser.GetDimen(name),\n h = parser.GetDimen(name),\n d = parser.GetDimen(name);\n var def = {\n width: w,\n height: h,\n depth: d\n };\n if (style !== 'blank') {\n def['mathbackground'] = parser.stack.env['color'] || 'black';\n }\n var node = parser.create('node', 'mspace', [], def);\n parser.Push(node);\n};\nBaseMethods.rule = function (parser, name) {\n var v = parser.GetBrackets(name),\n w = parser.GetDimen(name),\n h = parser.GetDimen(name);\n var mml = parser.create('node', 'mspace', [], {\n width: w,\n height: h,\n mathbackground: parser.stack.env['color'] || 'black'\n });\n if (v) {\n mml = parser.create('node', 'mpadded', [mml], {\n voffset: v\n });\n if (v.match(/^\\-/)) {\n NodeUtil_js_1.default.setAttribute(mml, 'height', v);\n NodeUtil_js_1.default.setAttribute(mml, 'depth', '+' + v.substr(1));\n } else {\n NodeUtil_js_1.default.setAttribute(mml, 'height', '+' + v);\n }\n }\n parser.Push(mml);\n};\nBaseMethods.MakeBig = function (parser, name, mclass, size) {\n size *= P_HEIGHT;\n var sizeStr = String(size).replace(/(\\.\\d\\d\\d).+/, '$1') + 'em';\n var delim = parser.GetDelimiter(name, true);\n var mo = parser.create('token', 'mo', {\n minsize: sizeStr,\n maxsize: sizeStr,\n fence: true,\n stretchy: true,\n symmetric: true\n }, delim);\n var node = parser.create('node', 'TeXAtom', [mo], {\n texClass: mclass\n });\n parser.Push(node);\n};\nBaseMethods.BuildRel = function (parser, name) {\n var top = parser.ParseUpTo(name, '\\\\over');\n var bot = parser.ParseArg(name);\n var node = parser.create('node', 'munderover');\n NodeUtil_js_1.default.setChild(node, 0, bot);\n NodeUtil_js_1.default.setChild(node, 1, null);\n NodeUtil_js_1.default.setChild(node, 2, top);\n var atom = parser.create('node', 'TeXAtom', [node], {\n texClass: MmlNode_js_1.TEXCLASS.REL\n });\n parser.Push(atom);\n};\nBaseMethods.HBox = function (parser, name, style, font) {\n parser.PushAll(ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name), style, font));\n};\nBaseMethods.FBox = function (parser, name) {\n var internal = ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name));\n var node = parser.create('node', 'menclose', internal, {\n notation: 'box'\n });\n parser.Push(node);\n};\nBaseMethods.FrameBox = function (parser, name) {\n var width = parser.GetBrackets(name);\n var pos = parser.GetBrackets(name) || 'c';\n var mml = ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name));\n if (width) {\n mml = [parser.create('node', 'mpadded', mml, {\n width: width,\n 'data-align': (0, Options_js_1.lookup)(pos, {\n l: 'left',\n r: 'right'\n }, 'center')\n })];\n }\n var node = parser.create('node', 'TeXAtom', [parser.create('node', 'menclose', mml, {\n notation: 'box'\n })], {\n texClass: MmlNode_js_1.TEXCLASS.ORD\n });\n parser.Push(node);\n};\nBaseMethods.Not = function (parser, _name) {\n parser.Push(parser.itemFactory.create('not'));\n};\nBaseMethods.Dots = function (parser, _name) {\n var ldotsEntity = NodeUtil_js_1.default.createEntity('2026');\n var cdotsEntity = NodeUtil_js_1.default.createEntity('22EF');\n var ldots = parser.create('token', 'mo', {\n stretchy: false\n }, ldotsEntity);\n var cdots = parser.create('token', 'mo', {\n stretchy: false\n }, cdotsEntity);\n parser.Push(parser.itemFactory.create('dots').setProperties({\n ldots: ldots,\n cdots: cdots\n }));\n};\nBaseMethods.Matrix = function (parser, _name, open, close, align, spacing, vspacing, style, cases, numbered) {\n var c = parser.GetNext();\n if (c === '') {\n throw new TexError_js_1.default('MissingArgFor', 'Missing argument for %1', parser.currentCS);\n }\n if (c === '{') {\n parser.i++;\n } else {\n parser.string = c + '}' + parser.string.slice(parser.i + 1);\n parser.i = 0;\n }\n var array = parser.itemFactory.create('array').setProperty('requireClose', true);\n array.arraydef = {\n rowspacing: vspacing || '4pt',\n columnspacing: spacing || '1em'\n };\n if (cases) {\n array.setProperty('isCases', true);\n }\n if (numbered) {\n array.setProperty('isNumbered', true);\n array.arraydef.side = numbered;\n }\n if (open || close) {\n array.setProperty('open', open);\n array.setProperty('close', close);\n }\n if (style === 'D') {\n array.arraydef.displaystyle = true;\n }\n if (align != null) {\n array.arraydef.columnalign = align;\n }\n parser.Push(array);\n};\nBaseMethods.Entry = function (parser, name) {\n parser.Push(parser.itemFactory.create('cell').setProperties({\n isEntry: true,\n name: name\n }));\n var top = parser.stack.Top();\n var env = top.getProperty('casesEnv');\n var cases = top.getProperty('isCases');\n if (!cases && !env) return;\n var str = parser.string;\n var braces = 0,\n close = -1,\n i = parser.i,\n m = str.length;\n var end = env ? new RegExp(\"^\\\\\\\\end\\\\s*\\\\{\".concat(env.replace(/\\*/, '\\\\*'), \"\\\\}\")) : null;\n while (i < m) {\n var c = str.charAt(i);\n if (c === '{') {\n braces++;\n i++;\n } else if (c === '}') {\n if (braces === 0) {\n m = 0;\n } else {\n braces--;\n if (braces === 0 && close < 0) {\n close = i - parser.i;\n }\n i++;\n }\n } else if (c === '&' && braces === 0) {\n throw new TexError_js_1.default('ExtraAlignTab', 'Extra alignment tab in \\\\cases text');\n } else if (c === '\\\\') {\n var rest = str.substr(i);\n if (rest.match(/^((\\\\cr)[^a-zA-Z]|\\\\\\\\)/) || end && rest.match(end)) {\n m = 0;\n } else {\n i += 2;\n }\n } else {\n i++;\n }\n }\n var text = str.substr(parser.i, i - parser.i);\n if (!text.match(/^\\s*\\\\text[^a-zA-Z]/) || close !== text.replace(/\\s+$/, '').length - 1) {\n var internal = ParseUtil_js_1.default.internalMath(parser, ParseUtil_js_1.default.trimSpaces(text), 0);\n parser.PushAll(internal);\n parser.i = i;\n }\n};\nBaseMethods.Cr = function (parser, name) {\n parser.Push(parser.itemFactory.create('cell').setProperties({\n isCR: true,\n name: name\n }));\n};\nBaseMethods.CrLaTeX = function (parser, name, nobrackets) {\n if (nobrackets === void 0) {\n nobrackets = false;\n }\n var n;\n if (!nobrackets) {\n if (parser.string.charAt(parser.i) === '*') {\n parser.i++;\n }\n if (parser.string.charAt(parser.i) === '[') {\n var dim = parser.GetBrackets(name, '');\n var _a = __read(ParseUtil_js_1.default.matchDimen(dim), 2),\n value = _a[0],\n unit = _a[1];\n if (dim && !value) {\n throw new TexError_js_1.default('BracketMustBeDimension', 'Bracket argument to %1 must be a dimension', parser.currentCS);\n }\n n = value + unit;\n }\n }\n parser.Push(parser.itemFactory.create('cell').setProperties({\n isCR: true,\n name: name,\n linebreak: true\n }));\n var top = parser.stack.Top();\n var node;\n if (top instanceof sitem.ArrayItem) {\n if (n) {\n top.addRowSpacing(n);\n }\n } else {\n if (n) {\n node = parser.create('node', 'mspace', [], {\n depth: n\n });\n parser.Push(node);\n }\n node = parser.create('node', 'mspace', [], {\n linebreak: TexConstants_js_1.TexConstant.LineBreak.NEWLINE\n });\n parser.Push(node);\n }\n};\nBaseMethods.HLine = function (parser, _name, style) {\n if (style == null) {\n style = 'solid';\n }\n var top = parser.stack.Top();\n if (!(top instanceof sitem.ArrayItem) || top.Size()) {\n throw new TexError_js_1.default('Misplaced', 'Misplaced %1', parser.currentCS);\n }\n if (!top.table.length) {\n top.frame.push('top');\n } else {\n var lines = top.arraydef['rowlines'] ? top.arraydef['rowlines'].split(/ /) : [];\n while (lines.length < top.table.length) {\n lines.push('none');\n }\n lines[top.table.length - 1] = style;\n top.arraydef['rowlines'] = lines.join(' ');\n }\n};\nBaseMethods.HFill = function (parser, _name) {\n var top = parser.stack.Top();\n if (top instanceof sitem.ArrayItem) {\n top.hfill.push(top.Size());\n } else {\n throw new TexError_js_1.default('UnsupportedHFill', 'Unsupported use of %1', parser.currentCS);\n }\n};\nBaseMethods.BeginEnd = function (parser, name) {\n var env = parser.GetArgument(name);\n if (env.match(/\\\\/i)) {\n throw new TexError_js_1.default('InvalidEnv', 'Invalid environment name \\'%1\\'', env);\n }\n var macro = parser.configuration.handlers.get('environment').lookup(env);\n if (macro && name === '\\\\end') {\n if (!macro.args[0]) {\n var mml = parser.itemFactory.create('end').setProperty('name', env);\n parser.Push(mml);\n return;\n }\n parser.stack.env['closing'] = env;\n }\n ParseUtil_js_1.default.checkMaxMacros(parser, false);\n parser.parse('environment', [parser, env]);\n};\nBaseMethods.Array = function (parser, begin, open, close, align, spacing, vspacing, style, raggedHeight) {\n if (!align) {\n align = parser.GetArgument('\\\\begin{' + begin.getName() + '}');\n }\n var lines = ('c' + align).replace(/[^clr|:]/g, '').replace(/[^|:]([|:])+/g, '$1');\n align = align.replace(/[^clr]/g, '').split('').join(' ');\n align = align.replace(/l/g, 'left').replace(/r/g, 'right').replace(/c/g, 'center');\n var array = parser.itemFactory.create('array');\n array.arraydef = {\n columnalign: align,\n columnspacing: spacing || '1em',\n rowspacing: vspacing || '4pt'\n };\n if (lines.match(/[|:]/)) {\n if (lines.charAt(0).match(/[|:]/)) {\n array.frame.push('left');\n array.dashed = lines.charAt(0) === ':';\n }\n if (lines.charAt(lines.length - 1).match(/[|:]/)) {\n array.frame.push('right');\n }\n lines = lines.substr(1, lines.length - 2);\n array.arraydef.columnlines = lines.split('').join(' ').replace(/[^|: ]/g, 'none').replace(/\\|/g, 'solid').replace(/:/g, 'dashed');\n }\n if (open) {\n array.setProperty('open', parser.convertDelimiter(open));\n }\n if (close) {\n array.setProperty('close', parser.convertDelimiter(close));\n }\n if ((style || '').charAt(1) === '\\'') {\n array.arraydef['data-cramped'] = true;\n style = style.charAt(0);\n }\n if (style === 'D') {\n array.arraydef['displaystyle'] = true;\n } else if (style) {\n array.arraydef['displaystyle'] = false;\n }\n if (style === 'S') {\n array.arraydef['scriptlevel'] = 1;\n }\n if (raggedHeight) {\n array.arraydef['useHeight'] = false;\n }\n parser.Push(begin);\n return array;\n};\nBaseMethods.AlignedArray = function (parser, begin) {\n var align = parser.GetBrackets('\\\\begin{' + begin.getName() + '}');\n var item = BaseMethods.Array(parser, begin);\n return ParseUtil_js_1.default.setArrayAlign(item, align);\n};\nBaseMethods.Equation = function (parser, begin, numbered) {\n parser.Push(begin);\n ParseUtil_js_1.default.checkEqnEnv(parser);\n return parser.itemFactory.create('equation', numbered).setProperty('name', begin.getName());\n};\nBaseMethods.EqnArray = function (parser, begin, numbered, taggable, align, spacing) {\n parser.Push(begin);\n if (taggable) {\n ParseUtil_js_1.default.checkEqnEnv(parser);\n }\n align = align.replace(/[^clr]/g, '').split('').join(' ');\n align = align.replace(/l/g, 'left').replace(/r/g, 'right').replace(/c/g, 'center');\n var newItem = parser.itemFactory.create('eqnarray', begin.getName(), numbered, taggable, parser.stack.global);\n newItem.arraydef = {\n displaystyle: true,\n columnalign: align,\n columnspacing: spacing || '1em',\n rowspacing: '3pt',\n side: parser.options['tagSide'],\n minlabelspacing: parser.options['tagIndent']\n };\n return newItem;\n};\nBaseMethods.HandleNoTag = function (parser, _name) {\n parser.tags.notag();\n};\nBaseMethods.HandleLabel = function (parser, name) {\n var label = parser.GetArgument(name);\n if (label === '') {\n return;\n }\n if (!parser.tags.refUpdate) {\n if (parser.tags.label) {\n throw new TexError_js_1.default('MultipleCommand', 'Multiple %1', parser.currentCS);\n }\n parser.tags.label = label;\n if ((parser.tags.allLabels[label] || parser.tags.labels[label]) && !parser.options['ignoreDuplicateLabels']) {\n throw new TexError_js_1.default('MultipleLabel', 'Label \\'%1\\' multiply defined', label);\n }\n parser.tags.labels[label] = new Tags_js_1.Label();\n }\n};\nBaseMethods.HandleRef = function (parser, name, eqref) {\n var label = parser.GetArgument(name);\n var ref = parser.tags.allLabels[label] || parser.tags.labels[label];\n if (!ref) {\n if (!parser.tags.refUpdate) {\n parser.tags.redo = true;\n }\n ref = new Tags_js_1.Label();\n }\n var tag = ref.tag;\n if (eqref) {\n tag = parser.tags.formatTag(tag);\n }\n var node = parser.create('node', 'mrow', ParseUtil_js_1.default.internalMath(parser, tag), {\n href: parser.tags.formatUrl(ref.id, parser.options.baseURL),\n 'class': 'MathJax_ref'\n });\n parser.Push(node);\n};\nBaseMethods.Macro = function (parser, name, macro, argcount, def) {\n if (argcount) {\n var args = [];\n if (def != null) {\n var optional = parser.GetBrackets(name);\n args.push(optional == null ? def : optional);\n }\n for (var i = args.length; i < argcount; i++) {\n args.push(parser.GetArgument(name));\n }\n macro = ParseUtil_js_1.default.substituteArgs(parser, args, macro);\n }\n parser.string = ParseUtil_js_1.default.addArgs(parser, macro, parser.string.slice(parser.i));\n parser.i = 0;\n ParseUtil_js_1.default.checkMaxMacros(parser);\n};\nBaseMethods.MathChoice = function (parser, name) {\n var D = parser.ParseArg(name);\n var T = parser.ParseArg(name);\n var S = parser.ParseArg(name);\n var SS = parser.ParseArg(name);\n parser.Push(parser.create('node', 'MathChoice', [D, T, S, SS]));\n};\nexports.default = BaseMethods;","map":{"version":3,"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__createBinding","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__setModuleDefault","v","value","__importStar","mod","result","__read","Symbol","iterator","r","ar","e","next","done","push","error","__importDefault","exports","sitem","require","NodeUtil_js_1","TexError_js_1","TexParser_js_1","TexConstants_js_1","ParseUtil_js_1","MmlNode_js_1","Tags_js_1","lengths_js_1","Entities_js_1","Options_js_1","BaseMethods","P_HEIGHT","MmlTokenAllow","fontfamily","fontsize","fontweight","fontstyle","color","background","id","href","style","Open","parser","_c","Push","itemFactory","Close","Tilde","entities","nbsp","Space","_parser","Superscript","_a","GetNext","match","string","substr","primes","base","top","stack","Top","isKind","Peek","Pop","Prev","movesupsub","default","getProperty","position","isType","sup","over","getChildAt","setProperties","Subscript","sub","under","Prime","c","prime","rsquo","node","variantForm","Comment","charAt","Hash","MathFont","name","variant","text","GetArgument","mml","env","font","multiLetterIdentifiers","noAutoOP","configuration","SetFont","_name","SetStyle","texStyle","level","setProperty","displaystyle","scriptlevel","SetSize","size","mathsize","em","Spacer","space","width","LeftRight","first","GetDelimiter","NamedFn","texClass","TEXCLASS","OP","NamedOp","replace","movablelimits","form","TexConstant","Form","PREFIX","Limits","limits","op","getTexClass","getCoreMO","currentCS","copyChildren","Last","getAttribute","Over","open","close","GetDimen","Frac","num","ParseArg","den","Sqrt","GetBrackets","arg","parseRoot","inRoot","newParser","global","def","Root","GetUpTo","MoveRoot","parseInt","Accent","accent","stretchy","getFontDef","mathaccent","entity","createEntity","moNode","setAttribute","mo","isEmbellished","muoNode","setChild","texAtom","UnderOver","pos","underOver","Overset","checkMovableLimits","Underset","bot","accentunder","Overunderset","TeXAtom","mclass","parsed","Variant","NORMAL","MmlToken","kind","attr","keep","isToken","attributes","hasDefault","MmlFilterAttribute","toLowerCase","join","textNode","appendChild","Strut","row","padded","height","depth","Phantom","h","box","atom","Smash","bt","trimSpaces","smash","Lap","RaiseLower","item","move","slice","MoveLeftRight","nh","tmp","left","right","Hskip","Nonscript","Rule","w","d","rule","mathbackground","voffset","MakeBig","sizeStr","String","delim","minsize","maxsize","fence","symmetric","BuildRel","ParseUpTo","REL","HBox","PushAll","internalMath","FBox","internal","notation","FrameBox","lookup","l","ORD","Not","Dots","ldotsEntity","cdotsEntity","ldots","cdots","Matrix","align","spacing","vspacing","cases","numbered","array","arraydef","rowspacing","columnspacing","side","columnalign","Entry","isEntry","str","braces","end","RegExp","concat","rest","Cr","isCR","CrLaTeX","nobrackets","dim","matchDimen","unit","linebreak","ArrayItem","addRowSpacing","LineBreak","NEWLINE","HLine","Size","table","frame","lines","split","HFill","hfill","BeginEnd","macro","handlers","args","checkMaxMacros","parse","Array","begin","raggedHeight","getName","dashed","columnlines","convertDelimiter","AlignedArray","setArrayAlign","Equation","checkEqnEnv","EqnArray","taggable","newItem","options","minlabelspacing","HandleNoTag","tags","notag","HandleLabel","label","refUpdate","allLabels","labels","Label","HandleRef","eqref","ref","redo","tag","formatTag","formatUrl","baseURL","Macro","argcount","optional","substituteArgs","addArgs","MathChoice","D","T","S","SS"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/mathjax-full/js/input/tex/base/BaseMethods.js"],"sourcesContent":["\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar sitem = __importStar(require(\"./BaseItems.js\"));\nvar NodeUtil_js_1 = __importDefault(require(\"../NodeUtil.js\"));\nvar TexError_js_1 = __importDefault(require(\"../TexError.js\"));\nvar TexParser_js_1 = __importDefault(require(\"../TexParser.js\"));\nvar TexConstants_js_1 = require(\"../TexConstants.js\");\nvar ParseUtil_js_1 = __importDefault(require(\"../ParseUtil.js\"));\nvar MmlNode_js_1 = require(\"../../../core/MmlTree/MmlNode.js\");\nvar Tags_js_1 = require(\"../Tags.js\");\nvar lengths_js_1 = require(\"../../../util/lengths.js\");\nvar Entities_js_1 = require(\"../../../util/Entities.js\");\nvar Options_js_1 = require(\"../../../util/Options.js\");\nvar BaseMethods = {};\nvar P_HEIGHT = 1.2 / .85;\nvar MmlTokenAllow = {\n fontfamily: 1, fontsize: 1, fontweight: 1, fontstyle: 1,\n color: 1, background: 1,\n id: 1, 'class': 1, href: 1, style: 1\n};\nBaseMethods.Open = function (parser, _c) {\n parser.Push(parser.itemFactory.create('open'));\n};\nBaseMethods.Close = function (parser, _c) {\n parser.Push(parser.itemFactory.create('close'));\n};\nBaseMethods.Tilde = function (parser, _c) {\n parser.Push(parser.create('token', 'mtext', {}, Entities_js_1.entities.nbsp));\n};\nBaseMethods.Space = function (_parser, _c) { };\nBaseMethods.Superscript = function (parser, _c) {\n var _a;\n if (parser.GetNext().match(/\\d/)) {\n parser.string = parser.string.substr(0, parser.i + 1) +\n ' ' + parser.string.substr(parser.i + 1);\n }\n var primes;\n var base;\n var top = parser.stack.Top();\n if (top.isKind('prime')) {\n _a = __read(top.Peek(2), 2), base = _a[0], primes = _a[1];\n parser.stack.Pop();\n }\n else {\n base = parser.stack.Prev();\n if (!base) {\n base = parser.create('token', 'mi', {}, '');\n }\n }\n var movesupsub = NodeUtil_js_1.default.getProperty(base, 'movesupsub');\n var position = NodeUtil_js_1.default.isType(base, 'msubsup') ? base.sup :\n base.over;\n if ((NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') &&\n NodeUtil_js_1.default.getChildAt(base, base.sup)) ||\n (NodeUtil_js_1.default.isType(base, 'munderover') && !NodeUtil_js_1.default.isType(base, 'mover') &&\n NodeUtil_js_1.default.getChildAt(base, base.over) &&\n !NodeUtil_js_1.default.getProperty(base, 'subsupOK'))) {\n throw new TexError_js_1.default('DoubleExponent', 'Double exponent: use braces to clarify');\n }\n if (!NodeUtil_js_1.default.isType(base, 'msubsup') || NodeUtil_js_1.default.isType(base, 'msup')) {\n if (movesupsub) {\n if (!NodeUtil_js_1.default.isType(base, 'munderover') || NodeUtil_js_1.default.isType(base, 'mover') ||\n NodeUtil_js_1.default.getChildAt(base, base.over)) {\n base = parser.create('node', 'munderover', [base], { movesupsub: true });\n }\n position = base.over;\n }\n else {\n base = parser.create('node', 'msubsup', [base]);\n position = base.sup;\n }\n }\n parser.Push(parser.itemFactory.create('subsup', base).setProperties({\n position: position, primes: primes, movesupsub: movesupsub\n }));\n};\nBaseMethods.Subscript = function (parser, _c) {\n var _a;\n if (parser.GetNext().match(/\\d/)) {\n parser.string =\n parser.string.substr(0, parser.i + 1) + ' ' +\n parser.string.substr(parser.i + 1);\n }\n var primes, base;\n var top = parser.stack.Top();\n if (top.isKind('prime')) {\n _a = __read(top.Peek(2), 2), base = _a[0], primes = _a[1];\n parser.stack.Pop();\n }\n else {\n base = parser.stack.Prev();\n if (!base) {\n base = parser.create('token', 'mi', {}, '');\n }\n }\n var movesupsub = NodeUtil_js_1.default.getProperty(base, 'movesupsub');\n var position = NodeUtil_js_1.default.isType(base, 'msubsup') ?\n base.sub : base.under;\n if ((NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') &&\n NodeUtil_js_1.default.getChildAt(base, base.sub)) ||\n (NodeUtil_js_1.default.isType(base, 'munderover') && !NodeUtil_js_1.default.isType(base, 'mover') &&\n NodeUtil_js_1.default.getChildAt(base, base.under) &&\n !NodeUtil_js_1.default.getProperty(base, 'subsupOK'))) {\n throw new TexError_js_1.default('DoubleSubscripts', 'Double subscripts: use braces to clarify');\n }\n if (!NodeUtil_js_1.default.isType(base, 'msubsup') || NodeUtil_js_1.default.isType(base, 'msup')) {\n if (movesupsub) {\n if (!NodeUtil_js_1.default.isType(base, 'munderover') || NodeUtil_js_1.default.isType(base, 'mover') ||\n NodeUtil_js_1.default.getChildAt(base, base.under)) {\n base = parser.create('node', 'munderover', [base], { movesupsub: true });\n }\n position = base.under;\n }\n else {\n base = parser.create('node', 'msubsup', [base]);\n position = base.sub;\n }\n }\n parser.Push(parser.itemFactory.create('subsup', base).setProperties({\n position: position, primes: primes, movesupsub: movesupsub\n }));\n};\nBaseMethods.Prime = function (parser, c) {\n var base = parser.stack.Prev();\n if (!base) {\n base = parser.create('node', 'mi');\n }\n if (NodeUtil_js_1.default.isType(base, 'msubsup') && !NodeUtil_js_1.default.isType(base, 'msup') &&\n NodeUtil_js_1.default.getChildAt(base, base.sup)) {\n throw new TexError_js_1.default('DoubleExponentPrime', 'Prime causes double exponent: use braces to clarify');\n }\n var sup = '';\n parser.i--;\n do {\n sup += Entities_js_1.entities.prime;\n parser.i++, c = parser.GetNext();\n } while (c === '\\'' || c === Entities_js_1.entities.rsquo);\n sup = ['', '\\u2032', '\\u2033', '\\u2034', '\\u2057'][sup.length] || sup;\n var node = parser.create('token', 'mo', { variantForm: true }, sup);\n parser.Push(parser.itemFactory.create('prime', base, node));\n};\nBaseMethods.Comment = function (parser, _c) {\n while (parser.i < parser.string.length && parser.string.charAt(parser.i) !== '\\n') {\n parser.i++;\n }\n};\nBaseMethods.Hash = function (_parser, _c) {\n throw new TexError_js_1.default('CantUseHash1', 'You can\\'t use \\'macro parameter character #\\' in math mode');\n};\nBaseMethods.MathFont = function (parser, name, variant) {\n var text = parser.GetArgument(name);\n var mml = new TexParser_js_1.default(text, __assign(__assign({}, parser.stack.env), { font: variant, multiLetterIdentifiers: /^[a-zA-Z]+/, noAutoOP: true }), parser.configuration).mml();\n parser.Push(parser.create('node', 'TeXAtom', [mml]));\n};\nBaseMethods.SetFont = function (parser, _name, font) {\n parser.stack.env['font'] = font;\n};\nBaseMethods.SetStyle = function (parser, _name, texStyle, style, level) {\n parser.stack.env['style'] = texStyle;\n parser.stack.env['level'] = level;\n parser.Push(parser.itemFactory.create('style').setProperty('styles', { displaystyle: style, scriptlevel: level }));\n};\nBaseMethods.SetSize = function (parser, _name, size) {\n parser.stack.env['size'] = size;\n parser.Push(parser.itemFactory.create('style').setProperty('styles', { mathsize: (0, lengths_js_1.em)(size) }));\n};\nBaseMethods.Spacer = function (parser, _name, space) {\n var node = parser.create('node', 'mspace', [], { width: (0, lengths_js_1.em)(space) });\n var style = parser.create('node', 'mstyle', [node], { scriptlevel: 0 });\n parser.Push(style);\n};\nBaseMethods.LeftRight = function (parser, name) {\n var first = name.substr(1);\n parser.Push(parser.itemFactory.create(first, parser.GetDelimiter(name), parser.stack.env.color));\n};\nBaseMethods.NamedFn = function (parser, name, id) {\n if (!id) {\n id = name.substr(1);\n }\n var mml = parser.create('token', 'mi', { texClass: MmlNode_js_1.TEXCLASS.OP }, id);\n parser.Push(parser.itemFactory.create('fn', mml));\n};\nBaseMethods.NamedOp = function (parser, name, id) {\n if (!id) {\n id = name.substr(1);\n }\n id = id.replace(/ /, '\\u2006');\n var mml = parser.create('token', 'mo', {\n movablelimits: true,\n movesupsub: true,\n form: TexConstants_js_1.TexConstant.Form.PREFIX,\n texClass: MmlNode_js_1.TEXCLASS.OP\n }, id);\n parser.Push(mml);\n};\nBaseMethods.Limits = function (parser, _name, limits) {\n var op = parser.stack.Prev(true);\n if (!op || (NodeUtil_js_1.default.getTexClass(NodeUtil_js_1.default.getCoreMO(op)) !== MmlNode_js_1.TEXCLASS.OP &&\n NodeUtil_js_1.default.getProperty(op, 'movesupsub') == null)) {\n throw new TexError_js_1.default('MisplacedLimits', '%1 is allowed only on operators', parser.currentCS);\n }\n var top = parser.stack.Top();\n var node;\n if (NodeUtil_js_1.default.isType(op, 'munderover') && !limits) {\n node = parser.create('node', 'msubsup');\n NodeUtil_js_1.default.copyChildren(op, node);\n op = top.Last = node;\n }\n else if (NodeUtil_js_1.default.isType(op, 'msubsup') && limits) {\n node = parser.create('node', 'munderover');\n NodeUtil_js_1.default.copyChildren(op, node);\n op = top.Last = node;\n }\n NodeUtil_js_1.default.setProperty(op, 'movesupsub', limits ? true : false);\n NodeUtil_js_1.default.setProperties(NodeUtil_js_1.default.getCoreMO(op), { 'movablelimits': false });\n if (NodeUtil_js_1.default.getAttribute(op, 'movablelimits') ||\n NodeUtil_js_1.default.getProperty(op, 'movablelimits')) {\n NodeUtil_js_1.default.setProperties(op, { 'movablelimits': false });\n }\n};\nBaseMethods.Over = function (parser, name, open, close) {\n var mml = parser.itemFactory.create('over').setProperty('name', parser.currentCS);\n if (open || close) {\n mml.setProperty('open', open);\n mml.setProperty('close', close);\n }\n else if (name.match(/withdelims$/)) {\n mml.setProperty('open', parser.GetDelimiter(name));\n mml.setProperty('close', parser.GetDelimiter(name));\n }\n if (name.match(/^\\\\above/)) {\n mml.setProperty('thickness', parser.GetDimen(name));\n }\n else if (name.match(/^\\\\atop/) || open || close) {\n mml.setProperty('thickness', 0);\n }\n parser.Push(mml);\n};\nBaseMethods.Frac = function (parser, name) {\n var num = parser.ParseArg(name);\n var den = parser.ParseArg(name);\n var node = parser.create('node', 'mfrac', [num, den]);\n parser.Push(node);\n};\nBaseMethods.Sqrt = function (parser, name) {\n var n = parser.GetBrackets(name);\n var arg = parser.GetArgument(name);\n if (arg === '\\\\frac') {\n arg += '{' + parser.GetArgument(arg) + '}{' + parser.GetArgument(arg) + '}';\n }\n var mml = new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();\n if (!n) {\n mml = parser.create('node', 'msqrt', [mml]);\n }\n else {\n mml = parser.create('node', 'mroot', [mml, parseRoot(parser, n)]);\n }\n parser.Push(mml);\n};\nfunction parseRoot(parser, n) {\n var env = parser.stack.env;\n var inRoot = env['inRoot'];\n env['inRoot'] = true;\n var newParser = new TexParser_js_1.default(n, env, parser.configuration);\n var node = newParser.mml();\n var global = newParser.stack.global;\n if (global['leftRoot'] || global['upRoot']) {\n var def = {};\n if (global['leftRoot']) {\n def['width'] = global['leftRoot'];\n }\n if (global['upRoot']) {\n def['voffset'] = global['upRoot'];\n def['height'] = global['upRoot'];\n }\n node = parser.create('node', 'mpadded', [node], def);\n }\n env['inRoot'] = inRoot;\n return node;\n}\nBaseMethods.Root = function (parser, name) {\n var n = parser.GetUpTo(name, '\\\\of');\n var arg = parser.ParseArg(name);\n var node = parser.create('node', 'mroot', [arg, parseRoot(parser, n)]);\n parser.Push(node);\n};\nBaseMethods.MoveRoot = function (parser, name, id) {\n if (!parser.stack.env['inRoot']) {\n throw new TexError_js_1.default('MisplacedMoveRoot', '%1 can appear only within a root', parser.currentCS);\n }\n if (parser.stack.global[id]) {\n throw new TexError_js_1.default('MultipleMoveRoot', 'Multiple use of %1', parser.currentCS);\n }\n var n = parser.GetArgument(name);\n if (!n.match(/-?[0-9]+/)) {\n throw new TexError_js_1.default('IntegerArg', 'The argument to %1 must be an integer', parser.currentCS);\n }\n n = (parseInt(n, 10) / 15) + 'em';\n if (n.substr(0, 1) !== '-') {\n n = '+' + n;\n }\n parser.stack.global[id] = n;\n};\nBaseMethods.Accent = function (parser, name, accent, stretchy) {\n var c = parser.ParseArg(name);\n var def = __assign(__assign({}, ParseUtil_js_1.default.getFontDef(parser)), { accent: true, mathaccent: true });\n var entity = NodeUtil_js_1.default.createEntity(accent);\n var moNode = parser.create('token', 'mo', def, entity);\n var mml = moNode;\n NodeUtil_js_1.default.setAttribute(mml, 'stretchy', stretchy ? true : false);\n var mo = (NodeUtil_js_1.default.isEmbellished(c) ? NodeUtil_js_1.default.getCoreMO(c) : c);\n if (NodeUtil_js_1.default.isType(mo, 'mo') || NodeUtil_js_1.default.getProperty(mo, 'movablelimits')) {\n NodeUtil_js_1.default.setProperties(mo, { 'movablelimits': false });\n }\n var muoNode = parser.create('node', 'munderover');\n NodeUtil_js_1.default.setChild(muoNode, 0, c);\n NodeUtil_js_1.default.setChild(muoNode, 1, null);\n NodeUtil_js_1.default.setChild(muoNode, 2, mml);\n var texAtom = parser.create('node', 'TeXAtom', [muoNode]);\n parser.Push(texAtom);\n};\nBaseMethods.UnderOver = function (parser, name, c, stack) {\n var entity = NodeUtil_js_1.default.createEntity(c);\n var mo = parser.create('token', 'mo', { stretchy: true, accent: true }, entity);\n var pos = (name.charAt(1) === 'o' ? 'over' : 'under');\n var base = parser.ParseArg(name);\n parser.Push(ParseUtil_js_1.default.underOver(parser, base, mo, pos, stack));\n};\nBaseMethods.Overset = function (parser, name) {\n var top = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (top.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(top, 'accent', false);\n }\n var node = parser.create('node', 'mover', [base, top]);\n parser.Push(node);\n};\nBaseMethods.Underset = function (parser, name) {\n var bot = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (bot.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(bot, 'accent', false);\n }\n var node = parser.create('node', 'munder', [base, bot], { accentunder: false });\n parser.Push(node);\n};\nBaseMethods.Overunderset = function (parser, name) {\n var top = parser.ParseArg(name);\n var bot = parser.ParseArg(name);\n var base = parser.ParseArg(name);\n ParseUtil_js_1.default.checkMovableLimits(base);\n if (top.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(top, 'accent', false);\n }\n if (bot.isKind('mo')) {\n NodeUtil_js_1.default.setAttribute(bot, 'accent', false);\n }\n var node = parser.create('node', 'munderover', [base, bot, top], { accent: false, accentunder: false });\n parser.Push(node);\n};\nBaseMethods.TeXAtom = function (parser, name, mclass) {\n var def = { texClass: mclass };\n var mml;\n var node;\n var parsed;\n if (mclass === MmlNode_js_1.TEXCLASS.OP) {\n def['movesupsub'] = def['movablelimits'] = true;\n var arg = parser.GetArgument(name);\n var match = arg.match(/^\\s*\\\\rm\\s+([a-zA-Z0-9 ]+)$/);\n if (match) {\n def['mathvariant'] = TexConstants_js_1.TexConstant.Variant.NORMAL;\n node = parser.create('token', 'mi', def, match[1]);\n }\n else {\n parsed = new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();\n node = parser.create('node', 'TeXAtom', [parsed], def);\n }\n mml = parser.itemFactory.create('fn', node);\n }\n else {\n parsed = parser.ParseArg(name);\n mml = parser.create('node', 'TeXAtom', [parsed], def);\n }\n parser.Push(mml);\n};\nBaseMethods.MmlToken = function (parser, name) {\n var kind = parser.GetArgument(name);\n var attr = parser.GetBrackets(name, '').replace(/^\\s+/, '');\n var text = parser.GetArgument(name);\n var def = {};\n var keep = [];\n var node;\n try {\n node = parser.create('node', kind);\n }\n catch (e) {\n node = null;\n }\n if (!node || !node.isToken) {\n throw new TexError_js_1.default('NotMathMLToken', '%1 is not a token element', kind);\n }\n while (attr !== '') {\n var match = attr.match(/^([a-z]+)\\s*=\\s*('[^']*'|\"[^\"]*\"|[^ ,]*)\\s*,?\\s*/i);\n if (!match) {\n throw new TexError_js_1.default('InvalidMathMLAttr', 'Invalid MathML attribute: %1', attr);\n }\n if (!node.attributes.hasDefault(match[1]) && !MmlTokenAllow[match[1]]) {\n throw new TexError_js_1.default('UnknownAttrForElement', '%1 is not a recognized attribute for %2', match[1], kind);\n }\n var value = ParseUtil_js_1.default.MmlFilterAttribute(parser, match[1], match[2].replace(/^(['\"])(.*)\\1$/, '$2'));\n if (value) {\n if (value.toLowerCase() === 'true') {\n value = true;\n }\n else if (value.toLowerCase() === 'false') {\n value = false;\n }\n def[match[1]] = value;\n keep.push(match[1]);\n }\n attr = attr.substr(match[0].length);\n }\n if (keep.length) {\n def['mjx-keep-attrs'] = keep.join(' ');\n }\n var textNode = parser.create('text', text);\n node.appendChild(textNode);\n NodeUtil_js_1.default.setProperties(node, def);\n parser.Push(node);\n};\nBaseMethods.Strut = function (parser, _name) {\n var row = parser.create('node', 'mrow');\n var padded = parser.create('node', 'mpadded', [row], { height: '8.6pt', depth: '3pt', width: 0 });\n parser.Push(padded);\n};\nBaseMethods.Phantom = function (parser, name, v, h) {\n var box = parser.create('node', 'mphantom', [parser.ParseArg(name)]);\n if (v || h) {\n box = parser.create('node', 'mpadded', [box]);\n if (h) {\n NodeUtil_js_1.default.setAttribute(box, 'height', 0);\n NodeUtil_js_1.default.setAttribute(box, 'depth', 0);\n }\n if (v) {\n NodeUtil_js_1.default.setAttribute(box, 'width', 0);\n }\n }\n var atom = parser.create('node', 'TeXAtom', [box]);\n parser.Push(atom);\n};\nBaseMethods.Smash = function (parser, name) {\n var bt = ParseUtil_js_1.default.trimSpaces(parser.GetBrackets(name, ''));\n var smash = parser.create('node', 'mpadded', [parser.ParseArg(name)]);\n switch (bt) {\n case 'b':\n NodeUtil_js_1.default.setAttribute(smash, 'depth', 0);\n break;\n case 't':\n NodeUtil_js_1.default.setAttribute(smash, 'height', 0);\n break;\n default:\n NodeUtil_js_1.default.setAttribute(smash, 'height', 0);\n NodeUtil_js_1.default.setAttribute(smash, 'depth', 0);\n }\n var atom = parser.create('node', 'TeXAtom', [smash]);\n parser.Push(atom);\n};\nBaseMethods.Lap = function (parser, name) {\n var mml = parser.create('node', 'mpadded', [parser.ParseArg(name)], { width: 0 });\n if (name === '\\\\llap') {\n NodeUtil_js_1.default.setAttribute(mml, 'lspace', '-1width');\n }\n var atom = parser.create('node', 'TeXAtom', [mml]);\n parser.Push(atom);\n};\nBaseMethods.RaiseLower = function (parser, name) {\n var h = parser.GetDimen(name);\n var item = parser.itemFactory.create('position').setProperties({ name: parser.currentCS, move: 'vertical' });\n if (h.charAt(0) === '-') {\n h = h.slice(1);\n name = name.substr(1) === 'raise' ? '\\\\lower' : '\\\\raise';\n }\n if (name === '\\\\lower') {\n item.setProperty('dh', '-' + h);\n item.setProperty('dd', '+' + h);\n }\n else {\n item.setProperty('dh', '+' + h);\n item.setProperty('dd', '-' + h);\n }\n parser.Push(item);\n};\nBaseMethods.MoveLeftRight = function (parser, name) {\n var h = parser.GetDimen(name);\n var nh = (h.charAt(0) === '-' ? h.slice(1) : '-' + h);\n if (name === '\\\\moveleft') {\n var tmp = h;\n h = nh;\n nh = tmp;\n }\n parser.Push(parser.itemFactory.create('position').setProperties({\n name: parser.currentCS, move: 'horizontal',\n left: parser.create('node', 'mspace', [], { width: h }),\n right: parser.create('node', 'mspace', [], { width: nh })\n }));\n};\nBaseMethods.Hskip = function (parser, name) {\n var node = parser.create('node', 'mspace', [], { width: parser.GetDimen(name) });\n parser.Push(node);\n};\nBaseMethods.Nonscript = function (parser, _name) {\n parser.Push(parser.itemFactory.create('nonscript'));\n};\nBaseMethods.Rule = function (parser, name, style) {\n var w = parser.GetDimen(name), h = parser.GetDimen(name), d = parser.GetDimen(name);\n var def = { width: w, height: h, depth: d };\n if (style !== 'blank') {\n def['mathbackground'] = (parser.stack.env['color'] || 'black');\n }\n var node = parser.create('node', 'mspace', [], def);\n parser.Push(node);\n};\nBaseMethods.rule = function (parser, name) {\n var v = parser.GetBrackets(name), w = parser.GetDimen(name), h = parser.GetDimen(name);\n var mml = parser.create('node', 'mspace', [], {\n width: w, height: h,\n mathbackground: (parser.stack.env['color'] || 'black')\n });\n if (v) {\n mml = parser.create('node', 'mpadded', [mml], { voffset: v });\n if (v.match(/^\\-/)) {\n NodeUtil_js_1.default.setAttribute(mml, 'height', v);\n NodeUtil_js_1.default.setAttribute(mml, 'depth', '+' + v.substr(1));\n }\n else {\n NodeUtil_js_1.default.setAttribute(mml, 'height', '+' + v);\n }\n }\n parser.Push(mml);\n};\nBaseMethods.MakeBig = function (parser, name, mclass, size) {\n size *= P_HEIGHT;\n var sizeStr = String(size).replace(/(\\.\\d\\d\\d).+/, '$1') + 'em';\n var delim = parser.GetDelimiter(name, true);\n var mo = parser.create('token', 'mo', {\n minsize: sizeStr, maxsize: sizeStr,\n fence: true, stretchy: true, symmetric: true\n }, delim);\n var node = parser.create('node', 'TeXAtom', [mo], { texClass: mclass });\n parser.Push(node);\n};\nBaseMethods.BuildRel = function (parser, name) {\n var top = parser.ParseUpTo(name, '\\\\over');\n var bot = parser.ParseArg(name);\n var node = parser.create('node', 'munderover');\n NodeUtil_js_1.default.setChild(node, 0, bot);\n NodeUtil_js_1.default.setChild(node, 1, null);\n NodeUtil_js_1.default.setChild(node, 2, top);\n var atom = parser.create('node', 'TeXAtom', [node], { texClass: MmlNode_js_1.TEXCLASS.REL });\n parser.Push(atom);\n};\nBaseMethods.HBox = function (parser, name, style, font) {\n parser.PushAll(ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name), style, font));\n};\nBaseMethods.FBox = function (parser, name) {\n var internal = ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name));\n var node = parser.create('node', 'menclose', internal, { notation: 'box' });\n parser.Push(node);\n};\nBaseMethods.FrameBox = function (parser, name) {\n var width = parser.GetBrackets(name);\n var pos = parser.GetBrackets(name) || 'c';\n var mml = ParseUtil_js_1.default.internalMath(parser, parser.GetArgument(name));\n if (width) {\n mml = [parser.create('node', 'mpadded', mml, {\n width: width,\n 'data-align': (0, Options_js_1.lookup)(pos, { l: 'left', r: 'right' }, 'center')\n })];\n }\n var node = parser.create('node', 'TeXAtom', [parser.create('node', 'menclose', mml, { notation: 'box' })], { texClass: MmlNode_js_1.TEXCLASS.ORD });\n parser.Push(node);\n};\nBaseMethods.Not = function (parser, _name) {\n parser.Push(parser.itemFactory.create('not'));\n};\nBaseMethods.Dots = function (parser, _name) {\n var ldotsEntity = NodeUtil_js_1.default.createEntity('2026');\n var cdotsEntity = NodeUtil_js_1.default.createEntity('22EF');\n var ldots = parser.create('token', 'mo', { stretchy: false }, ldotsEntity);\n var cdots = parser.create('token', 'mo', { stretchy: false }, cdotsEntity);\n parser.Push(parser.itemFactory.create('dots').setProperties({\n ldots: ldots,\n cdots: cdots\n }));\n};\nBaseMethods.Matrix = function (parser, _name, open, close, align, spacing, vspacing, style, cases, numbered) {\n var c = parser.GetNext();\n if (c === '') {\n throw new TexError_js_1.default('MissingArgFor', 'Missing argument for %1', parser.currentCS);\n }\n if (c === '{') {\n parser.i++;\n }\n else {\n parser.string = c + '}' + parser.string.slice(parser.i + 1);\n parser.i = 0;\n }\n var array = parser.itemFactory.create('array').setProperty('requireClose', true);\n array.arraydef = {\n rowspacing: (vspacing || '4pt'),\n columnspacing: (spacing || '1em')\n };\n if (cases) {\n array.setProperty('isCases', true);\n }\n if (numbered) {\n array.setProperty('isNumbered', true);\n array.arraydef.side = numbered;\n }\n if (open || close) {\n array.setProperty('open', open);\n array.setProperty('close', close);\n }\n if (style === 'D') {\n array.arraydef.displaystyle = true;\n }\n if (align != null) {\n array.arraydef.columnalign = align;\n }\n parser.Push(array);\n};\nBaseMethods.Entry = function (parser, name) {\n parser.Push(parser.itemFactory.create('cell').setProperties({ isEntry: true, name: name }));\n var top = parser.stack.Top();\n var env = top.getProperty('casesEnv');\n var cases = top.getProperty('isCases');\n if (!cases && !env)\n return;\n var str = parser.string;\n var braces = 0, close = -1, i = parser.i, m = str.length;\n var end = (env ? new RegExp(\"^\\\\\\\\end\\\\s*\\\\{\".concat(env.replace(/\\*/, '\\\\*'), \"\\\\}\")) : null);\n while (i < m) {\n var c = str.charAt(i);\n if (c === '{') {\n braces++;\n i++;\n }\n else if (c === '}') {\n if (braces === 0) {\n m = 0;\n }\n else {\n braces--;\n if (braces === 0 && close < 0) {\n close = i - parser.i;\n }\n i++;\n }\n }\n else if (c === '&' && braces === 0) {\n throw new TexError_js_1.default('ExtraAlignTab', 'Extra alignment tab in \\\\cases text');\n }\n else if (c === '\\\\') {\n var rest = str.substr(i);\n if (rest.match(/^((\\\\cr)[^a-zA-Z]|\\\\\\\\)/) || (end && rest.match(end))) {\n m = 0;\n }\n else {\n i += 2;\n }\n }\n else {\n i++;\n }\n }\n var text = str.substr(parser.i, i - parser.i);\n if (!text.match(/^\\s*\\\\text[^a-zA-Z]/) || close !== text.replace(/\\s+$/, '').length - 1) {\n var internal = ParseUtil_js_1.default.internalMath(parser, ParseUtil_js_1.default.trimSpaces(text), 0);\n parser.PushAll(internal);\n parser.i = i;\n }\n};\nBaseMethods.Cr = function (parser, name) {\n parser.Push(parser.itemFactory.create('cell').setProperties({ isCR: true, name: name }));\n};\nBaseMethods.CrLaTeX = function (parser, name, nobrackets) {\n if (nobrackets === void 0) { nobrackets = false; }\n var n;\n if (!nobrackets) {\n if (parser.string.charAt(parser.i) === '*') {\n parser.i++;\n }\n if (parser.string.charAt(parser.i) === '[') {\n var dim = parser.GetBrackets(name, '');\n var _a = __read(ParseUtil_js_1.default.matchDimen(dim), 2), value = _a[0], unit = _a[1];\n if (dim && !value) {\n throw new TexError_js_1.default('BracketMustBeDimension', 'Bracket argument to %1 must be a dimension', parser.currentCS);\n }\n n = value + unit;\n }\n }\n parser.Push(parser.itemFactory.create('cell').setProperties({ isCR: true, name: name, linebreak: true }));\n var top = parser.stack.Top();\n var node;\n if (top instanceof sitem.ArrayItem) {\n if (n) {\n top.addRowSpacing(n);\n }\n }\n else {\n if (n) {\n node = parser.create('node', 'mspace', [], { depth: n });\n parser.Push(node);\n }\n node = parser.create('node', 'mspace', [], { linebreak: TexConstants_js_1.TexConstant.LineBreak.NEWLINE });\n parser.Push(node);\n }\n};\nBaseMethods.HLine = function (parser, _name, style) {\n if (style == null) {\n style = 'solid';\n }\n var top = parser.stack.Top();\n if (!(top instanceof sitem.ArrayItem) || top.Size()) {\n throw new TexError_js_1.default('Misplaced', 'Misplaced %1', parser.currentCS);\n }\n if (!top.table.length) {\n top.frame.push('top');\n }\n else {\n var lines = (top.arraydef['rowlines'] ? top.arraydef['rowlines'].split(/ /) : []);\n while (lines.length < top.table.length) {\n lines.push('none');\n }\n lines[top.table.length - 1] = style;\n top.arraydef['rowlines'] = lines.join(' ');\n }\n};\nBaseMethods.HFill = function (parser, _name) {\n var top = parser.stack.Top();\n if (top instanceof sitem.ArrayItem) {\n top.hfill.push(top.Size());\n }\n else {\n throw new TexError_js_1.default('UnsupportedHFill', 'Unsupported use of %1', parser.currentCS);\n }\n};\nBaseMethods.BeginEnd = function (parser, name) {\n var env = parser.GetArgument(name);\n if (env.match(/\\\\/i)) {\n throw new TexError_js_1.default('InvalidEnv', 'Invalid environment name \\'%1\\'', env);\n }\n var macro = parser.configuration.handlers.get('environment').lookup(env);\n if (macro && name === '\\\\end') {\n if (!macro.args[0]) {\n var mml = parser.itemFactory.create('end').setProperty('name', env);\n parser.Push(mml);\n return;\n }\n parser.stack.env['closing'] = env;\n }\n ParseUtil_js_1.default.checkMaxMacros(parser, false);\n parser.parse('environment', [parser, env]);\n};\nBaseMethods.Array = function (parser, begin, open, close, align, spacing, vspacing, style, raggedHeight) {\n if (!align) {\n align = parser.GetArgument('\\\\begin{' + begin.getName() + '}');\n }\n var lines = ('c' + align).replace(/[^clr|:]/g, '').replace(/[^|:]([|:])+/g, '$1');\n align = align.replace(/[^clr]/g, '').split('').join(' ');\n align = align.replace(/l/g, 'left').replace(/r/g, 'right').replace(/c/g, 'center');\n var array = parser.itemFactory.create('array');\n array.arraydef = {\n columnalign: align,\n columnspacing: (spacing || '1em'),\n rowspacing: (vspacing || '4pt')\n };\n if (lines.match(/[|:]/)) {\n if (lines.charAt(0).match(/[|:]/)) {\n array.frame.push('left');\n array.dashed = lines.charAt(0) === ':';\n }\n if (lines.charAt(lines.length - 1).match(/[|:]/)) {\n array.frame.push('right');\n }\n lines = lines.substr(1, lines.length - 2);\n array.arraydef.columnlines =\n lines.split('').join(' ').replace(/[^|: ]/g, 'none').replace(/\\|/g, 'solid').replace(/:/g, 'dashed');\n }\n if (open) {\n array.setProperty('open', parser.convertDelimiter(open));\n }\n if (close) {\n array.setProperty('close', parser.convertDelimiter(close));\n }\n if ((style || '').charAt(1) === '\\'') {\n array.arraydef['data-cramped'] = true;\n style = style.charAt(0);\n }\n if (style === 'D') {\n array.arraydef['displaystyle'] = true;\n }\n else if (style) {\n array.arraydef['displaystyle'] = false;\n }\n if (style === 'S') {\n array.arraydef['scriptlevel'] = 1;\n }\n if (raggedHeight) {\n array.arraydef['useHeight'] = false;\n }\n parser.Push(begin);\n return array;\n};\nBaseMethods.AlignedArray = function (parser, begin) {\n var align = parser.GetBrackets('\\\\begin{' + begin.getName() + '}');\n var item = BaseMethods.Array(parser, begin);\n return ParseUtil_js_1.default.setArrayAlign(item, align);\n};\nBaseMethods.Equation = function (parser, begin, numbered) {\n parser.Push(begin);\n ParseUtil_js_1.default.checkEqnEnv(parser);\n return parser.itemFactory.create('equation', numbered).\n setProperty('name', begin.getName());\n};\nBaseMethods.EqnArray = function (parser, begin, numbered, taggable, align, spacing) {\n parser.Push(begin);\n if (taggable) {\n ParseUtil_js_1.default.checkEqnEnv(parser);\n }\n align = align.replace(/[^clr]/g, '').split('').join(' ');\n align = align.replace(/l/g, 'left').replace(/r/g, 'right').replace(/c/g, 'center');\n var newItem = parser.itemFactory.create('eqnarray', begin.getName(), numbered, taggable, parser.stack.global);\n newItem.arraydef = {\n displaystyle: true,\n columnalign: align,\n columnspacing: (spacing || '1em'),\n rowspacing: '3pt',\n side: parser.options['tagSide'],\n minlabelspacing: parser.options['tagIndent']\n };\n return newItem;\n};\nBaseMethods.HandleNoTag = function (parser, _name) {\n parser.tags.notag();\n};\nBaseMethods.HandleLabel = function (parser, name) {\n var label = parser.GetArgument(name);\n if (label === '') {\n return;\n }\n if (!parser.tags.refUpdate) {\n if (parser.tags.label) {\n throw new TexError_js_1.default('MultipleCommand', 'Multiple %1', parser.currentCS);\n }\n parser.tags.label = label;\n if ((parser.tags.allLabels[label] || parser.tags.labels[label]) && !parser.options['ignoreDuplicateLabels']) {\n throw new TexError_js_1.default('MultipleLabel', 'Label \\'%1\\' multiply defined', label);\n }\n parser.tags.labels[label] = new Tags_js_1.Label();\n }\n};\nBaseMethods.HandleRef = function (parser, name, eqref) {\n var label = parser.GetArgument(name);\n var ref = parser.tags.allLabels[label] || parser.tags.labels[label];\n if (!ref) {\n if (!parser.tags.refUpdate) {\n parser.tags.redo = true;\n }\n ref = new Tags_js_1.Label();\n }\n var tag = ref.tag;\n if (eqref) {\n tag = parser.tags.formatTag(tag);\n }\n var node = parser.create('node', 'mrow', ParseUtil_js_1.default.internalMath(parser, tag), {\n href: parser.tags.formatUrl(ref.id, parser.options.baseURL), 'class': 'MathJax_ref'\n });\n parser.Push(node);\n};\nBaseMethods.Macro = function (parser, name, macro, argcount, def) {\n if (argcount) {\n var args = [];\n if (def != null) {\n var optional = parser.GetBrackets(name);\n args.push(optional == null ? def : optional);\n }\n for (var i = args.length; i < argcount; i++) {\n args.push(parser.GetArgument(name));\n }\n macro = ParseUtil_js_1.default.substituteArgs(parser, args, macro);\n }\n parser.string = ParseUtil_js_1.default.addArgs(parser, macro, parser.string.slice(parser.i));\n parser.i = 0;\n ParseUtil_js_1.default.checkMaxMacros(parser);\n};\nBaseMethods.MathChoice = function (parser, name) {\n var D = parser.ParseArg(name);\n var T = parser.ParseArg(name);\n var S = parser.ParseArg(name);\n var SS = parser.ParseArg(name);\n parser.Push(parser.create('node', 'MathChoice', [D, T, S, SS]));\n};\nexports.default = BaseMethods;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
|