UNPKG

react-native-mathjax-html-to-svg

Version:

React Native component to display mathematics in html using MathJax. Uses [MathJax](https://github.com/mathjax/)

50 lines (49 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var BaseMethods_js_1 = require("../base/BaseMethods.js"); var MmlNode_js_1 = require("../../../core/MmlTree/MmlNode.js"); var TexError_js_1 = require("../TexError.js"); var BraketMethods = {}; BraketMethods.Macro = BaseMethods_js_1.default.Macro; BraketMethods.Braket = function (parser, _name, open, close, stretchy, barmax) { var next = parser.GetNext(); if (next === '') { throw new TexError_js_1.default('MissingArgFor', 'Missing argument for %1', parser.currentCS); } var single = true; if (next === '{') { parser.i++; single = false; } parser.Push(parser.itemFactory.create('braket') .setProperties({ barmax: barmax, barcount: 0, open: open, close: close, stretchy: stretchy, single: single })); }; BraketMethods.Bar = function (parser, name) { var c = name === '|' ? '|' : '\u2225'; var top = parser.stack.Top(); if (top.kind !== 'braket' || top.getProperty('barcount') >= top.getProperty('barmax')) { var mml = parser.create('token', 'mo', { texClass: MmlNode_js_1.TEXCLASS.ORD, stretchy: false }, c); parser.Push(mml); return; } if (c === '|' && parser.GetNext() === '|') { parser.i++; c = '\u2225'; } var stretchy = top.getProperty('stretchy'); if (!stretchy) { var node_1 = parser.create('token', 'mo', { stretchy: false, braketbar: true }, c); parser.Push(node_1); return; } var node = parser.create('node', 'TeXAtom', [], { texClass: MmlNode_js_1.TEXCLASS.CLOSE }); parser.Push(node); top.setProperty('barcount', top.getProperty('barcount') + 1); node = parser.create('token', 'mo', { stretchy: true, braketbar: true }, c); parser.Push(node); node = parser.create('node', 'TeXAtom', [], { texClass: MmlNode_js_1.TEXCLASS.OPEN }); parser.Push(node); }; exports.default = BraketMethods;