@pie-lib/math-rendering 3.2.1 → 3.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.4.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.4.0-beta.0) (2025-07-15)
7
+
8
+ **Note:** Version bump only for package @pie-lib/math-rendering
9
+
10
+
11
+
12
+
13
+
14
+ # [3.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.0) (2025-07-15)
15
+
16
+ **Note:** Version bump only for package @pie-lib/math-rendering
17
+
18
+
19
+
20
+
21
+
6
22
  ## [3.2.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.0...@pie-lib/math-rendering@3.2.1) (2023-10-01)
7
23
 
8
24
 
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _mmlToLatex = _interopRequireDefault(require("../mml-to-latex"));
8
+
9
+ describe('mmlToLatex', function () {
10
+ it('should work', function () {
11
+ var mml = '<math xmlns="http://www.w3.org/1998/Math/MathML"> <mn>2</mn> <mi>x</mi> <mtext>&#xA0;</mtext> <mo>&#x2264;</mo> <mn>4</mn> <mi>y</mi> <mtext>&#xA0;</mtext> <mo>+</mo> <mtext>&#xA0;</mtext> <mn>8</mn> <msqrt> <mi>h</mi> </msqrt></math>'; // todo revisit this
12
+ // const latex = '2x\\text{ }\\leq4y\\text{ }+\\text{ }8\\sqrt{h}';
13
+
14
+ var latex = '2 x \\textrm{ } \\leq 4 y \\textrm{ } + \\textrm{ } 8 \\sqrt{h}';
15
+ expect((0, _mmlToLatex["default"])(mml)).toEqual(latex);
16
+ });
17
+ });
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbW1sLXRvLWxhdGV4LnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsIm1tbCIsImxhdGV4IiwiZXhwZWN0IiwidG9FcXVhbCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUNBOztBQUdBQSxRQUFRLENBQUMsWUFBRCxFQUFlLFlBQU07QUFDM0JDLEVBQUFBLEVBQUUsQ0FBQyxhQUFELEVBQWdCLFlBQU07QUFDdEIsUUFBTUMsR0FBRyxHQUNQLDBQQURGLENBRHNCLENBR3RCO0FBQ0E7O0FBQ0EsUUFBTUMsS0FBSyxHQUFHLGlFQUFkO0FBRUFDLElBQUFBLE1BQU0sQ0FBQyw0QkFBV0YsR0FBWCxDQUFELENBQU4sQ0FBd0JHLE9BQXhCLENBQWdDRixLQUFoQztBQUNELEdBUkMsQ0FBRjtBQVNELENBVk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbW1sVG9MYXRleCBmcm9tICcuLi9tbWwtdG8tbGF0ZXgnO1xuXG5cbmRlc2NyaWJlKCdtbWxUb0xhdGV4JywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHdvcmsnLCAoKSA9PiB7XG4gICAgY29uc3QgbW1sID1cbiAgICAgICc8bWF0aCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIj4gIDxtbj4yPC9tbj4gIDxtaT54PC9taT4gIDxtdGV4dD4mI3hBMDs8L210ZXh0PiAgPG1vPiYjeDIyNjQ7PC9tbz4gIDxtbj40PC9tbj4gIDxtaT55PC9taT4gIDxtdGV4dD4mI3hBMDs8L210ZXh0PiAgPG1vPis8L21vPiAgPG10ZXh0PiYjeEEwOzwvbXRleHQ+ICA8bW4+ODwvbW4+IDxtc3FydD4gICAgPG1pPmg8L21pPiAgPC9tc3FydD48L21hdGg+JztcbiAgICAvLyB0b2RvIHJldmlzaXQgdGhpc1xuICAgIC8vIGNvbnN0IGxhdGV4ID0gJzJ4XFxcXHRleHR7IH1cXFxcbGVxNHlcXFxcdGV4dHsgfStcXFxcdGV4dHsgfThcXFxcc3FydHtofSc7XG4gICAgY29uc3QgbGF0ZXggPSAnMiB4IFxcXFx0ZXh0cm17IH0gXFxcXGxlcSA0IHkgXFxcXHRleHRybXsgfSArIFxcXFx0ZXh0cm17IH0gOCBcXFxcc3FydHtofSc7XG5cbiAgICBleHBlY3QobW1sVG9MYXRleChtbWwpKS50b0VxdWFsKGxhdGV4KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _debug = _interopRequireDefault(require("debug"));
8
+
9
+ var _slate = require("slate");
10
+
11
+ var _normalization = require("../normalization");
12
+
13
+ var log = (0, _debug["default"])('@pie-lib:math-rendering:test:normalization');
14
+ describe('normalization', function () {
15
+ describe('unWrapMath', function () {
16
+ var assertUnWrap = function assertUnWrap(html, expected, wrapType) {
17
+ it("innerHTML: ".concat(html, " is unWrapped to: ").concat(expected, " with wrapType: ").concat(wrapType), function () {
18
+ var out = (0, _normalization.unWrapMath)(html);
19
+ expect(out).toEqual({
20
+ unwrapped: expected,
21
+ wrapType: wrapType
22
+ });
23
+ });
24
+ };
25
+
26
+ assertUnWrap('$$<$$', '<', _normalization.BracketTypes.DOLLAR);
27
+ assertUnWrap('$<$', '<', _normalization.BracketTypes.DOLLAR);
28
+ assertUnWrap('\\(<\\)', '<', _normalization.BracketTypes.ROUND_BRACKETS);
29
+ assertUnWrap('\\[<\\]', '<', _normalization.BracketTypes.ROUND_BRACKETS);
30
+ assertUnWrap('latex', 'latex', _normalization.BracketTypes.ROUND_BRACKETS);
31
+ assertUnWrap('\\displaystyle foo', 'foo', _normalization.BracketTypes.ROUND_BRACKETS);
32
+ });
33
+ describe('wrapMath', function () {
34
+ var assertWrap = function assertWrap(latex, expectedHtml, wrapper) {
35
+ wrapper = wrapper || _normalization.BracketTypes.ROUND_BRACKETS;
36
+ it("".concat(latex, " is wrapped to: ").concat(expectedHtml), function () {
37
+ var out = (0, _normalization.wrapMath)(latex, wrapper);
38
+ log('out: ', out);
39
+ expect(out).toEqual(expectedHtml);
40
+ });
41
+ };
42
+
43
+ assertWrap('latex', '\\(latex\\)', _normalization.BracketTypes.ROUND_BRACKETS);
44
+ assertWrap('latex', '\\(latex\\)', _normalization.BracketTypes.SQUARE_BRACKETS);
45
+ assertWrap('latex', '$latex$', _normalization.BracketTypes.DOLLAR);
46
+ assertWrap('latex', '$latex$', _normalization.BracketTypes.DOUBLE_DOLLAR);
47
+ /**
48
+ * Note that when this is converted to html it get's escaped - but that's an issue with the slate html-serializer.
49
+ */
50
+
51
+ assertWrap('<', '\\(<\\)');
52
+ });
53
+ });
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbm9ybWFsaXphdGlvbi50ZXN0LmpzIl0sIm5hbWVzIjpbImxvZyIsImRlc2NyaWJlIiwiYXNzZXJ0VW5XcmFwIiwiaHRtbCIsImV4cGVjdGVkIiwid3JhcFR5cGUiLCJpdCIsIm91dCIsImV4cGVjdCIsInRvRXF1YWwiLCJ1bndyYXBwZWQiLCJCcmFja2V0VHlwZXMiLCJET0xMQVIiLCJST1VORF9CUkFDS0VUUyIsImFzc2VydFdyYXAiLCJsYXRleCIsImV4cGVjdGVkSHRtbCIsIndyYXBwZXIiLCJTUVVBUkVfQlJBQ0tFVFMiLCJET1VCTEVfRE9MTEFSIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLDRDQUFOLENBQVo7QUFFQUMsUUFBUSxDQUFDLGVBQUQsRUFBa0IsWUFBTTtBQUM5QkEsRUFBQUEsUUFBUSxDQUFDLFlBQUQsRUFBZSxZQUFNO0FBQzNCLFFBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFpQkMsUUFBakIsRUFBOEI7QUFDakRDLE1BQUFBLEVBQUUsc0JBQWVILElBQWYsK0JBQXdDQyxRQUF4Qyw2QkFBbUVDLFFBQW5FLEdBQStFLFlBQU07QUFDckYsWUFBTUUsR0FBRyxHQUFHLCtCQUFXSixJQUFYLENBQVo7QUFFQUssUUFBQUEsTUFBTSxDQUFDRCxHQUFELENBQU4sQ0FBWUUsT0FBWixDQUFvQjtBQUNsQkMsVUFBQUEsU0FBUyxFQUFFTixRQURPO0FBRWxCQyxVQUFBQSxRQUFRLEVBQUVBO0FBRlEsU0FBcEI7QUFJRCxPQVBDLENBQUY7QUFRRCxLQVREOztBQVdBSCxJQUFBQSxZQUFZLENBQUMsT0FBRCxFQUFVLEdBQVYsRUFBZVMsNEJBQWFDLE1BQTVCLENBQVo7QUFDQVYsSUFBQUEsWUFBWSxDQUFDLEtBQUQsRUFBUSxHQUFSLEVBQWFTLDRCQUFhQyxNQUExQixDQUFaO0FBQ0FWLElBQUFBLFlBQVksQ0FBQyxTQUFELEVBQVksR0FBWixFQUFpQlMsNEJBQWFFLGNBQTlCLENBQVo7QUFDQVgsSUFBQUEsWUFBWSxDQUFDLFNBQUQsRUFBWSxHQUFaLEVBQWlCUyw0QkFBYUUsY0FBOUIsQ0FBWjtBQUNBWCxJQUFBQSxZQUFZLENBQUMsT0FBRCxFQUFVLE9BQVYsRUFBbUJTLDRCQUFhRSxjQUFoQyxDQUFaO0FBQ0FYLElBQUFBLFlBQVksQ0FBQyxvQkFBRCxFQUF1QixLQUF2QixFQUE4QlMsNEJBQWFFLGNBQTNDLENBQVo7QUFDRCxHQWxCTyxDQUFSO0FBb0JBWixFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekIsUUFBTWEsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0MsS0FBRCxFQUFRQyxZQUFSLEVBQXNCQyxPQUF0QixFQUFrQztBQUNuREEsTUFBQUEsT0FBTyxHQUFHQSxPQUFPLElBQUlOLDRCQUFhRSxjQUFsQztBQUNBUCxNQUFBQSxFQUFFLFdBQUlTLEtBQUosNkJBQTRCQyxZQUE1QixHQUE0QyxZQUFNO0FBQ2xELFlBQU1ULEdBQUcsR0FBRyw2QkFBU1EsS0FBVCxFQUFnQkUsT0FBaEIsQ0FBWjtBQUVBakIsUUFBQUEsR0FBRyxDQUFDLE9BQUQsRUFBVU8sR0FBVixDQUFIO0FBRUFDLFFBQUFBLE1BQU0sQ0FBQ0QsR0FBRCxDQUFOLENBQVlFLE9BQVosQ0FBb0JPLFlBQXBCO0FBQ0QsT0FOQyxDQUFGO0FBT0QsS0FURDs7QUFXQUYsSUFBQUEsVUFBVSxDQUFDLE9BQUQsRUFBVSxhQUFWLEVBQXlCSCw0QkFBYUUsY0FBdEMsQ0FBVjtBQUNBQyxJQUFBQSxVQUFVLENBQUMsT0FBRCxFQUFVLGFBQVYsRUFBeUJILDRCQUFhTyxlQUF0QyxDQUFWO0FBQ0FKLElBQUFBLFVBQVUsQ0FBQyxPQUFELEVBQVUsU0FBVixFQUFxQkgsNEJBQWFDLE1BQWxDLENBQVY7QUFDQUUsSUFBQUEsVUFBVSxDQUFDLE9BQUQsRUFBVSxTQUFWLEVBQXFCSCw0QkFBYVEsYUFBbEMsQ0FBVjtBQUVBO0FBQ0o7QUFDQTs7QUFDSUwsSUFBQUEsVUFBVSxDQUFDLEdBQUQsRUFBTSxTQUFOLENBQVY7QUFDRCxHQXJCTyxDQUFSO0FBc0JELENBM0NPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IERhdGEgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBCcmFja2V0VHlwZXMsIHdyYXBNYXRoLCB1bldyYXBNYXRoIH0gZnJvbSAnLi4vbm9ybWFsaXphdGlvbic7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjptYXRoLXJlbmRlcmluZzp0ZXN0Om5vcm1hbGl6YXRpb24nKTtcblxuZGVzY3JpYmUoJ25vcm1hbGl6YXRpb24nLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCd1bldyYXBNYXRoJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydFVuV3JhcCA9IChodG1sLCBleHBlY3RlZCwgd3JhcFR5cGUpID0+IHtcbiAgICAgIGl0KGBpbm5lckhUTUw6ICR7aHRtbH0gaXMgdW5XcmFwcGVkIHRvOiAke2V4cGVjdGVkfSB3aXRoIHdyYXBUeXBlOiAke3dyYXBUeXBlfWAsICgpID0+IHtcbiAgICAgICAgY29uc3Qgb3V0ID0gdW5XcmFwTWF0aChodG1sKTtcblxuICAgICAgICBleHBlY3Qob3V0KS50b0VxdWFsKHtcbiAgICAgICAgICB1bndyYXBwZWQ6IGV4cGVjdGVkLFxuICAgICAgICAgIHdyYXBUeXBlOiB3cmFwVHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgYXNzZXJ0VW5XcmFwKCckJDwkJCcsICc8JywgQnJhY2tldFR5cGVzLkRPTExBUik7XG4gICAgYXNzZXJ0VW5XcmFwKCckPCQnLCAnPCcsIEJyYWNrZXRUeXBlcy5ET0xMQVIpO1xuICAgIGFzc2VydFVuV3JhcCgnXFxcXCg8XFxcXCknLCAnPCcsIEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUyk7XG4gICAgYXNzZXJ0VW5XcmFwKCdcXFxcWzxcXFxcXScsICc8JywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgICBhc3NlcnRVbldyYXAoJ2xhdGV4JywgJ2xhdGV4JywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgICBhc3NlcnRVbldyYXAoJ1xcXFxkaXNwbGF5c3R5bGUgZm9vJywgJ2ZvbycsIEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUyk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd3cmFwTWF0aCcsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnRXcmFwID0gKGxhdGV4LCBleHBlY3RlZEh0bWwsIHdyYXBwZXIpID0+IHtcbiAgICAgIHdyYXBwZXIgPSB3cmFwcGVyIHx8IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUztcbiAgICAgIGl0KGAke2xhdGV4fSBpcyB3cmFwcGVkIHRvOiAke2V4cGVjdGVkSHRtbH1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG91dCA9IHdyYXBNYXRoKGxhdGV4LCB3cmFwcGVyKTtcblxuICAgICAgICBsb2coJ291dDogJywgb3V0KTtcblxuICAgICAgICBleHBlY3Qob3V0KS50b0VxdWFsKGV4cGVjdGVkSHRtbCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgYXNzZXJ0V3JhcCgnbGF0ZXgnLCAnXFxcXChsYXRleFxcXFwpJywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgICBhc3NlcnRXcmFwKCdsYXRleCcsICdcXFxcKGxhdGV4XFxcXCknLCBCcmFja2V0VHlwZXMuU1FVQVJFX0JSQUNLRVRTKTtcbiAgICBhc3NlcnRXcmFwKCdsYXRleCcsICckbGF0ZXgkJywgQnJhY2tldFR5cGVzLkRPTExBUik7XG4gICAgYXNzZXJ0V3JhcCgnbGF0ZXgnLCAnJGxhdGV4JCcsIEJyYWNrZXRUeXBlcy5ET1VCTEVfRE9MTEFSKTtcblxuICAgIC8qKlxuICAgICAqIE5vdGUgdGhhdCB3aGVuIHRoaXMgaXMgY29udmVydGVkIHRvIGh0bWwgaXQgZ2V0J3MgZXNjYXBlZCAtIGJ1dCB0aGF0J3MgYW4gaXNzdWUgd2l0aCB0aGUgc2xhdGUgaHRtbC1zZXJpYWxpemVyLlxuICAgICAqL1xuICAgIGFzc2VydFdyYXAoJzwnLCAnXFxcXCg8XFxcXCknKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _react = _interopRequireDefault(require("react"));
8
+
9
+ var _enzyme = require("enzyme");
10
+
11
+ var _renderMath = _interopRequireWildcard(require("../render-math"));
12
+
13
+ var _lodash = _interopRequireDefault(require("lodash"));
14
+
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+
19
+ jest.mock('mathjax-full/js/mathjax', function () {
20
+ return {
21
+ mathjax: {
22
+ document: jest.fn().mockReturnThis(),
23
+ findMath: jest.fn().mockReturnThis(),
24
+ compile: jest.fn().mockReturnThis(),
25
+ getMetrics: jest.fn().mockReturnThis(),
26
+ typeset: jest.fn().mockReturnThis(),
27
+ updateDocument: jest.fn().mockReturnThis(),
28
+ clear: jest.fn().mockReturnThis(),
29
+ handlers: {
30
+ handlesDocument: jest.fn().mockReturnThis()
31
+ },
32
+ handleRetriesFor: jest.fn().mockImplementation(function (callback) {
33
+ return callback();
34
+ })
35
+ }
36
+ };
37
+ }, {
38
+ virtual: false
39
+ });
40
+ jest.mock('mathjax-full/js/input/mathml', function () {
41
+ var mock = jest.fn().mockReturnThis();
42
+ mock.setMmlFactory = jest.fn();
43
+ return {
44
+ MathML: function MathML() {
45
+ return mock;
46
+ }
47
+ };
48
+ });
49
+ jest.mock('mathjax-full/js/input/tex', function () {
50
+ return {
51
+ TeX: jest.fn()
52
+ };
53
+ });
54
+ jest.mock('mathjax-full/js/core/MmlTree/MmlFactory', function () {
55
+ var instance = {
56
+ setMmlFactory: jest.fn(),
57
+ defaultNodes: {}
58
+ };
59
+ return {
60
+ MmlFactory: function MmlFactory() {
61
+ return instance;
62
+ }
63
+ };
64
+ });
65
+ var mockMathInstance = {
66
+ document: jest.fn().mockReturnThis(),
67
+ findMath: jest.fn().mockReturnThis(),
68
+ compile: jest.fn().mockReturnThis(),
69
+ enrich: jest.fn().mockReturnThis(),
70
+ addMenu: jest.fn().mockReturnThis(),
71
+ attachSpeech: jest.fn().mockReturnThis(),
72
+ assistiveMml: jest.fn().mockReturnThis(),
73
+ getMetrics: jest.fn().mockReturnThis(),
74
+ typeset: jest.fn().mockReturnThis(),
75
+ updateDocument: jest.fn().mockReturnValue({
76
+ math: {
77
+ list: undefined
78
+ },
79
+ clear: jest.fn().mockReturnThis()
80
+ }),
81
+ clear: jest.fn().mockReturnThis(),
82
+ handlers: {
83
+ handlesDocument: jest.fn().mockReturnThis()
84
+ },
85
+ handleRetriesFor: jest.fn().mockImplementation(function (callback) {
86
+ return callback();
87
+ })
88
+ };
89
+ var mockHtml = {
90
+ findMath: jest.fn().mockReturnValue(mockMathInstance)
91
+ };
92
+ var mockEnrichHandlerInstance = {
93
+ create: jest.fn().mockImplementation(function () {
94
+ return mockHtml;
95
+ })
96
+ };
97
+ jest.mock('mathjax-full/js/a11y/semantic-enrich', function () {
98
+ return {
99
+ EnrichHandler: function EnrichHandler() {
100
+ return mockEnrichHandlerInstance;
101
+ }
102
+ };
103
+ });
104
+ jest.mock('mathjax-full/js/a11y/assistive-mml', function () {
105
+ return {
106
+ AssistiveMmlHandler: function AssistiveMmlHandler() {}
107
+ };
108
+ });
109
+ jest.mock('mathjax-full/js/ui/menu/MenuHandler', function () {
110
+ return {
111
+ MenuHandler: function MenuHandler() {}
112
+ };
113
+ });
114
+ jest.mock('mathjax-full/js/output/chtml', function () {
115
+ return {
116
+ CHTML: jest.fn()
117
+ };
118
+ });
119
+ jest.mock('mathjax-full/js/adaptors/browserAdaptor', function () {
120
+ return {
121
+ browserAdaptor: jest.fn()
122
+ };
123
+ });
124
+ jest.mock('mathjax-full/js/handlers/html', function () {
125
+ return {
126
+ RegisterHTMLHandler: jest.fn()
127
+ };
128
+ });
129
+ jest.mock('mathjax-full/js/core/MmlTree/SerializedMmlVisitor', function () {
130
+ return {
131
+ SerializedMmlVisitor: jest.fn()
132
+ };
133
+ });
134
+ describe('render-math', function () {
135
+ it('calls classFactory.create once', function () {
136
+ var div = document.createElement('div');
137
+
138
+ _lodash["default"].times(10).forEach(function (i) {
139
+ return (0, _renderMath["default"])(div);
140
+ });
141
+
142
+ expect(mockEnrichHandlerInstance.create).toHaveBeenCalledTimes(1);
143
+ });
144
+ it('calls MathJax render', function () {
145
+ var div = document.createElement('div');
146
+ (0, _renderMath["default"])(div);
147
+ expect(mockEnrichHandlerInstance.create).toHaveBeenCalledTimes(1);
148
+ expect(mockHtml.findMath).toHaveBeenCalledWith({
149
+ elements: [div]
150
+ });
151
+ });
152
+ it('call render math for an array of elements', function () {
153
+ var divOne = document.createElement('div');
154
+ var divTwo = document.createElement('div');
155
+ (0, _renderMath["default"])([divOne, divTwo]);
156
+ expect(mockEnrichHandlerInstance.create).toHaveBeenCalledTimes(1);
157
+ expect(mockHtml.findMath).toHaveBeenCalledWith({
158
+ elements: [divOne, divTwo]
159
+ });
160
+ });
161
+ it('wraps the math containing element the right way', function () {
162
+ var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
163
+ "data-latex": ""
164
+ }, '420\\text{ cm}=4.2\\text{ meters}')));
165
+ var spanElem = wrapper.instance();
166
+ (0, _renderMath.fixMathElement)(spanElem);
167
+ expect(spanElem.textContent).toEqual('\\(420\\text{ cm}=4.2\\text{ meters}\\)');
168
+ });
169
+ });
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcmVuZGVyLW1hdGgudGVzdC5qcyJdLCJuYW1lcyI6WyJqZXN0IiwibW9jayIsIm1hdGhqYXgiLCJkb2N1bWVudCIsImZuIiwibW9ja1JldHVyblRoaXMiLCJmaW5kTWF0aCIsImNvbXBpbGUiLCJnZXRNZXRyaWNzIiwidHlwZXNldCIsInVwZGF0ZURvY3VtZW50IiwiY2xlYXIiLCJoYW5kbGVycyIsImhhbmRsZXNEb2N1bWVudCIsImhhbmRsZVJldHJpZXNGb3IiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJjYWxsYmFjayIsInZpcnR1YWwiLCJzZXRNbWxGYWN0b3J5IiwiTWF0aE1MIiwiVGVYIiwiaW5zdGFuY2UiLCJkZWZhdWx0Tm9kZXMiLCJNbWxGYWN0b3J5IiwibW9ja01hdGhJbnN0YW5jZSIsImVucmljaCIsImFkZE1lbnUiLCJhdHRhY2hTcGVlY2giLCJhc3Npc3RpdmVNbWwiLCJtb2NrUmV0dXJuVmFsdWUiLCJtYXRoIiwibGlzdCIsInVuZGVmaW5lZCIsIm1vY2tIdG1sIiwibW9ja0VucmljaEhhbmRsZXJJbnN0YW5jZSIsImNyZWF0ZSIsIkVucmljaEhhbmRsZXIiLCJBc3Npc3RpdmVNbWxIYW5kbGVyIiwiTWVudUhhbmRsZXIiLCJDSFRNTCIsImJyb3dzZXJBZGFwdG9yIiwiUmVnaXN0ZXJIVE1MSGFuZGxlciIsIlNlcmlhbGl6ZWRNbWxWaXNpdG9yIiwiZGVzY3JpYmUiLCJpdCIsImRpdiIsImNyZWF0ZUVsZW1lbnQiLCJfIiwidGltZXMiLCJmb3JFYWNoIiwiaSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiZWxlbWVudHMiLCJkaXZPbmUiLCJkaXZUd28iLCJ3cmFwcGVyIiwic3BhbkVsZW0iLCJ0ZXh0Q29udGVudCIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsSUFBSSxDQUFD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Q08sUUFBUSxDQUFDQyxXQUFWLENBQU4sQ0FBNkJDLE9BQTdCLENBQXFDLHlDQUFyQztBQUNELEdBWEMsQ0FBRjtBQVlELENBekNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbW91bnQgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IHJlbmRlck1hdGgsIHsgZml4TWF0aEVsZW1lbnQgfSBmcm9tICcuLi9yZW5kZXItbWF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5qZXN0Lm1vY2soXG4gICdtYXRoamF4LWZ1bGwvanMvbWF0aGpheCcsXG4gICgpID0+ICh7XG4gICAgbWF0aGpheDoge1xuICAgICAgZG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgZmluZE1hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgY29tcGlsZTogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgICBnZXRNZXRyaWNzOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIHR5cGVzZXQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgdXBkYXRlRG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgY2xlYXI6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgaGFuZGxlc0RvY3VtZW50OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVSZXRyaWVzRm9yOiBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSksXG4gICAgfSxcbiAgfSksXG4gIHtcbiAgICB2aXJ0dWFsOiBmYWxzZSxcbiAgfSxcbik7XG5cbmplc3QubW9jaygnbWF0aGpheC1mdWxsL2pzL2lucHV0L21hdGhtbCcsICgpID0+IHtcbiAgY29uc3QgbW9jayA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpO1xuICBtb2NrLnNldE1tbEZhY3RvcnkgPSBqZXN0LmZuKCk7XG4gIHJldHVybiB7XG4gICAgTWF0aE1MOiAoKSA9PiBtb2NrLFxuICB9O1xufSk7XG5cbmplc3QubW9jaygnbWF0aGpheC1mdWxsL2pzL2lucHV0L3RleCcsICgpID0+ICh7XG4gIFRlWDogamVzdC5mbigpLFxufSkpO1xuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvY29yZS9NbWxUcmVlL01tbEZhY3RvcnknLCAoKSA9PiB7XG4gIGNvbnN0IGluc3RhbmNlID0ge1xuICAgIHNldE1tbEZhY3Rvcnk6IGplc3QuZm4oKSxcbiAgICBkZWZhdWx0Tm9kZXM6IHt9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIE1tbEZhY3Rvcnk6ICgpID0+IGluc3RhbmNlLFxuICB9O1xufSk7XG5cbmNvbnN0IG1vY2tNYXRoSW5zdGFuY2UgPSB7XG4gIGRvY3VtZW50OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgZmluZE1hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICBjb21waWxlOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgZW5yaWNoOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgYWRkTWVudTogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gIGF0dGFjaFNwZWVjaDogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gIGFzc2lzdGl2ZU1tbDogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gIGdldE1ldHJpY3M6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB0eXBlc2V0OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgdXBkYXRlRG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgIG1hdGg6IHtcbiAgICAgIGxpc3Q6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIGNsZWFyOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgfSksXG4gIGNsZWFyOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVzRG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB9LFxuICBoYW5kbGVSZXRyaWVzRm9yOiBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSksXG59O1xuXG5jb25zdCBtb2NrSHRtbCA9IHtcbiAgZmluZE1hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUobW9ja01hdGhJbnN0YW5jZSksXG59O1xuXG5jb25zdCBtb2NrRW5yaWNoSGFuZGxlckluc3RhbmNlID0ge1xuICBjcmVhdGU6IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gbW9ja0h0bWwpLFxufTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvYTExeS9zZW1hbnRpYy1lbnJpY2gnLCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgRW5yaWNoSGFuZGxlcjogKCkgPT4gbW9ja0VucmljaEhhbmRsZXJJbnN0YW5jZSxcbiAgfTtcbn0pO1xuXG5qZXN0Lm1vY2soJ21hdGhqYXgtZnVsbC9qcy9hMTF5L2Fzc2lzdGl2ZS1tbWwnLCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgQXNzaXN0aXZlTW1sSGFuZGxlcjogKCkgPT4ge30sXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvdWkvbWVudS9NZW51SGFuZGxlcicsICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBNZW51SGFuZGxlcjogKCkgPT4ge30sXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvb3V0cHV0L2NodG1sJywgKCkgPT4gKHtcbiAgQ0hUTUw6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvYWRhcHRvcnMvYnJvd3NlckFkYXB0b3InLCAoKSA9PiAoe1xuICBicm93c2VyQWRhcHRvcjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ21hdGhqYXgtZnVsbC9qcy9oYW5kbGVycy9odG1sJywgKCkgPT4gKHtcbiAgUmVnaXN0ZXJIVE1MSGFuZGxlcjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ21hdGhqYXgtZnVsbC9qcy9jb3JlL01tbFRyZWUvU2VyaWFsaXplZE1tbFZpc2l0b3InLCAoKSA9PiAoe1xuICBTZXJpYWxpemVkTW1sVmlzaXRvcjogamVzdC5mbigpLFxufSkpO1xuXG5kZXNjcmliZSgncmVuZGVyLW1hdGgnLCAoKSA9PiB7XG4gIGl0KCdjYWxscyBjbGFzc0ZhY3RvcnkuY3JlYXRlIG9uY2UnLCAoKSA9PiB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICBfLnRpbWVzKDEwKS5mb3JFYWNoKChpKSA9PiByZW5kZXJNYXRoKGRpdikpO1xuXG4gICAgZXhwZWN0KG1vY2tFbnJpY2hIYW5kbGVySW5zdGFuY2UuY3JlYXRlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBNYXRoSmF4IHJlbmRlcicsICgpID0+IHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgIHJlbmRlck1hdGgoZGl2KTtcbiAgICBleHBlY3QobW9ja0VucmljaEhhbmRsZXJJbnN0YW5jZS5jcmVhdGUpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QobW9ja0h0bWwuZmluZE1hdGgpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgZWxlbWVudHM6IFtkaXZdIH0pO1xuICB9KTtcblxuICBpdCgnY2FsbCByZW5kZXIgbWF0aCBmb3IgYW4gYXJyYXkgb2YgZWxlbWVudHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZGl2T25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgY29uc3QgZGl2VHdvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICByZW5kZXJNYXRoKFtkaXZPbmUsIGRpdlR3b10pO1xuXG4gICAgZXhwZWN0KG1vY2tFbnJpY2hIYW5kbGVySW5zdGFuY2UuY3JlYXRlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KG1vY2tIdG1sLmZpbmRNYXRoKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBlbGVtZW50czogW2Rpdk9uZSwgZGl2VHdvXSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3dyYXBzIHRoZSBtYXRoIGNvbnRhaW5pbmcgZWxlbWVudCB0aGUgcmlnaHQgd2F5JywgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGRhdGEtbGF0ZXg9XCJcIj57JzQyMFxcXFx0ZXh0eyBjbX09NC4yXFxcXHRleHR7IG1ldGVyc30nfTwvc3Bhbj5cbiAgICAgIDwvZGl2PixcbiAgICApO1xuICAgIGNvbnN0IHNwYW5FbGVtID0gd3JhcHBlci5pbnN0YW5jZSgpO1xuXG4gICAgZml4TWF0aEVsZW1lbnQoc3BhbkVsZW0pO1xuXG4gICAgZXhwZWN0KHNwYW5FbGVtLnRleHRDb250ZW50KS50b0VxdWFsKCdcXFxcKDQyMFxcXFx0ZXh0eyBjbX09NC4yXFxcXHRleHR7IG1ldGVyc31cXFxcKScpO1xuICB9KTtcbn0pO1xuIl19
package/lib/index.js CHANGED
@@ -35,4 +35,4 @@ var _renderMath = _interopRequireDefault(require("./render-math"));
35
35
  var _mmlToLatex = _interopRequireDefault(require("./mml-to-latex"));
36
36
 
37
37
  var _normalization = require("./normalization");
38
- //# sourceMappingURL=index.js.map
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbmRlck1hdGggZnJvbSAnLi9yZW5kZXItbWF0aCc7XG5pbXBvcnQgbW1sVG9MYXRleCBmcm9tICcuL21tbC10by1sYXRleCc7XG5pbXBvcnQgeyB3cmFwTWF0aCwgdW5XcmFwTWF0aCB9IGZyb20gJy4vbm9ybWFsaXphdGlvbic7XG5cbmV4cG9ydCB7IHJlbmRlck1hdGgsIHdyYXBNYXRoLCB1bldyYXBNYXRoLCBtbWxUb0xhdGV4IH07XG4iXX0=
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports["default"] = void 0;
9
7
 
10
- var _mathmlToLatex = _interopRequireDefault(require("mathml-to-latex"));
8
+ var _mathmlToLatex = require("@pie-framework/mathml-to-latex");
11
9
 
12
10
  var _default = function _default(mathml) {
13
- return _mathmlToLatex["default"].convert(mathml);
11
+ return _mathmlToLatex.MathMLToLaTeX.convert(mathml);
14
12
  };
15
13
 
16
14
  exports["default"] = _default;
17
- //# sourceMappingURL=mml-to-latex.js.map
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tbWwtdG8tbGF0ZXguanMiXSwibmFtZXMiOlsibWF0aG1sIiwiTWF0aE1MVG9MYVRlWCIsImNvbnZlcnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7ZUFDZSxrQkFBQ0EsTUFBRDtBQUFBLFNBQVlDLDZCQUFjQyxPQUFkLENBQXNCRixNQUF0QixDQUFaO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdGhNTFRvTGFUZVggfSBmcm9tICdAcGllLWZyYW1ld29yay9tYXRobWwtdG8tbGF0ZXgnO1xuZXhwb3J0IGRlZmF1bHQgKG1hdGhtbCkgPT4gTWF0aE1MVG9MYVRlWC5jb252ZXJ0KG1hdGhtbCk7XG4iXX0=
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
6
+
7
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+
13
+ var _chtml = require("../chtml");
14
+
15
+ var _jsdom = require("jsdom");
16
+
17
+ var _templateObject, _templateObject2, _templateObject3;
18
+
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
+
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+
23
+ jest.mock('mathjax-full/js/output/chtml/Wrapper', function () {
24
+ var instance = {
25
+ adaptor: {
26
+ document: {
27
+ createElement: jest.fn()
28
+ }
29
+ },
30
+ standardCHTMLnode: jest.fn()
31
+ };
32
+ return {
33
+ instance: instance,
34
+ CHTMLWrapper: /*#__PURE__*/(0, _createClass2["default"])(function CHTMLWrapper() {
35
+ (0, _classCallCheck2["default"])(this, CHTMLWrapper);
36
+ this.adaptor = {
37
+ document: {
38
+ createElement: jest.fn()
39
+ }
40
+ };
41
+ this.document = {}; // return instance;
42
+ })
43
+ };
44
+ });
45
+
46
+ var node = function node(kind, extras) {
47
+ return _objectSpread({
48
+ kind: kind,
49
+ childNodes: []
50
+ }, extras);
51
+ };
52
+
53
+ var textNode = function textNode(text) {
54
+ return node('text', {
55
+ text: text,
56
+ node: {
57
+ kind: 'text',
58
+ text: text
59
+ }
60
+ });
61
+ };
62
+
63
+ var mn = function mn(text) {
64
+ return node('mn', {
65
+ childNodes: [textNode(text)]
66
+ });
67
+ };
68
+
69
+ var mo = function mo(text) {
70
+ return node('mo', {
71
+ childNodes: [textNode(text)]
72
+ });
73
+ };
74
+
75
+ var mco = function mco(text) {
76
+ return _objectSpread(_objectSpread({}, mo(text)), {}, {
77
+ toCHTML: function toCHTML(n) {
78
+ var t = "mo:".concat(text);
79
+ n.textContent = t;
80
+ }
81
+ });
82
+ };
83
+
84
+ var msrow = function msrow() {
85
+ for (var _len = arguments.length, childNodes = new Array(_len), _key = 0; _key < _len; _key++) {
86
+ childNodes[_key] = arguments[_key];
87
+ }
88
+
89
+ return node('msrow', {
90
+ childNodes: childNodes
91
+ });
92
+ };
93
+
94
+ var mstack = function mstack() {
95
+ for (var _len2 = arguments.length, rows = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
96
+ rows[_key2] = arguments[_key2];
97
+ }
98
+
99
+ return node('mstack', {
100
+ childNodes: rows
101
+ });
102
+ };
103
+
104
+ var msline = function msline() {
105
+ return node('msline');
106
+ };
107
+
108
+ describe('getStackData', function () {
109
+ it.each(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n input | expected\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n "])), mstack(msrow(mo('+'), mn('111'))), [new _chtml.Row(['1', '1', '1'], mo('+'))], mstack(msrow(mn('111'))), [new _chtml.Row(['1', '1', '1'])], mstack(msrow(mn('1'), mn('1'))), [new _chtml.Row(['1', '1'])], mstack(msrow(mn('1')), mn('1')), [new _chtml.Row(['1']), new _chtml.Row(['1'])], mstack(msline()), [new _chtml.Line()], mstack(mn('1'), msline(), msrow(mo('+'), mn('1'))), [new _chtml.Row(['1']), new _chtml.Line(), new _chtml.Row(['1'], mo('+'))], mstack(mn('1'), mn('1')), [new _chtml.Row(['1']), new _chtml.Row(['1'])])('$input => $expected', function (_ref) {
110
+ var input = _ref.input,
111
+ expected = _ref.expected;
112
+ var d = (0, _chtml.getStackData)(input); // console.log('d:', d);
113
+ // console.log('e:', expected);
114
+
115
+ expect(_objectSpread({}, d)).toEqual(_objectSpread({}, expected));
116
+ });
117
+ });
118
+ describe('Row', function () {
119
+ describe('pad', function () {
120
+ it.each(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n cols | count | expected\n ", " | ", " | ", "\n ", " | ", " | ", "\n ", " | ", " | ", "\n ", " | ", " | ", "\n "])), [], 0, [], [1], 1, [1], [1], 2, ['__pad__', 1], [1], 3, ['__pad__', '__pad__', 1])('pads to the right', function (_ref2) {
121
+ var cols = _ref2.cols,
122
+ count = _ref2.count,
123
+ expected = _ref2.expected;
124
+ var r = new _chtml.Row(cols);
125
+ var p = r.pad(count, 'right');
126
+ expect(p).toEqual(expected);
127
+ });
128
+ });
129
+ });
130
+ describe.each(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n label | tree\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n"])), 'one row', [msrow(mn('1'))], 'implicit one row', [mn('1')], 'two rows', [msrow(mn('1')), msrow(mn('2'))], 'two rows with operator', [msrow(mn('1')), msrow(mco('+'), mn('2'))])('chtml', function (_ref3) {
131
+ var label = _ref3.label,
132
+ tree = _ref3.tree;
133
+ var html;
134
+ beforeEach(function () {
135
+ var chtml = new _chtml.CHTMLmstack({}, {});
136
+ var dom = new _jsdom.JSDOM("<!DOCTYPE html><body></body>");
137
+
138
+ chtml.standardCHTMLnode = function (parent) {
139
+ return parent;
140
+ };
141
+
142
+ chtml.ce = dom.window.document.createElement.bind(dom.window.document);
143
+ chtml.childNodes = tree;
144
+ chtml.toCHTML(dom.window.document.body);
145
+ html = dom.window.document.body.innerHTML;
146
+ });
147
+ it(label, function () {
148
+ expect(html).toMatchSnapshot();
149
+ });
150
+ });
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc3RhY2svX190ZXN0c19fL2NodG1sLnRlc3QuanMiXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJpbnN0YW5jZSIsImFkYXB0b3IiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJmbiIsInN0YW5kYXJkQ0hUTUxub2RlIiwiQ0hUTUxXcmFwcGVyIiwibm9kZSIsImtpbmQiLCJleHRyYXMiLCJjaGlsZE5vZGVzIiwidGV4dE5vZGUiLCJ0ZXh0IiwibW4iLCJtbyIsIm1jbyIsInRvQ0hUTUwiLCJuIiwidCIsInRleHRDb250ZW50IiwibXNyb3ciLCJtc3RhY2siLCJyb3dzIiwibXNsaW5lIiwiZGVzY3JpYmUiLCJpdCIsImVhY2giLCJSb3ciLCJMaW5lIiwiaW5wdXQiLCJleHBlY3RlZCIsImQiLCJleHBlY3QiLCJ0b0VxdWFsIiwiY29scyIsImNvdW50IiwiciIsInAiLCJwYWQiLCJsYWJlbCIsInRyZWUiLCJodG1sIiwiYmVmb3JlRWFjaCIsImNodG1sIiwiQ0hUTUxtc3RhY2siLCJkb20iLCJKU0RPTSIsInBhcmVudCIsImNlIiwid2luZG93IiwiYmluZCIsImJvZHkiLCJpbm5lckhUTUwiLCJ0b01hdGNoU25hcHNob3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOzs7Ozs7OztBQUVBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxzQ0FBVixFQUFrRCxZQUFNO0FBQ3RELE1BQU1DLFFBQVEsR0FBRztBQUNmQyxJQUFBQSxPQUFPLEVBQUU7QUFDUEMsTUFBQUEsUUFBUSxFQUFFO0FBQ1JDLFFBQUFBLGFBQWEsRUFBRUwsSUFBSSxDQUFDTSxFQUFMO0FBRFA7QUFESCxLQURNO0FBTWZDLElBQUFBLGlCQUFpQixFQUFFUCxJQUFJLENBQUNNLEVBQUw7QUFOSixHQUFqQjtBQVNBLFNBQU87QUFDTEosSUFBQUEsUUFBUSxFQUFSQSxRQURLO0FBRUxNLElBQUFBLFlBQVksNkNBQ1Ysd0JBQWM7QUFBQTtBQUNaLFdB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R0FSUyxDQUFWO0FBVUEzQixFQUFBQSxFQUFFLENBQUNjLEtBQUQsRUFBUSxZQUFNO0FBQ2RQLElBQUFBLE1BQU0sQ0FBQ1MsSUFBRCxDQUFOLENBQWFZLGVBQWI7QUFDRCxHQUZDLENBQUY7QUFHRCxDQXRCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFN0YWNrRGF0YSwgTGluZSwgUm93LCBDSFRNTG1zdGFjayB9IGZyb20gJy4uL2NodG1sJztcbi8vIGltcG9ydCB7IENIVE1MV3JhcHBlciwgaW5zdGFuY2UgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvb3V0cHV0L2NodG1sL1dyYXBwZXInO1xuaW1wb3J0IHsgSlNET00gfSBmcm9tICdqc2RvbSc7XG5cbmplc3QubW9jaygnbWF0aGpheC1mdWxsL2pzL291dHB1dC9jaHRtbC9XcmFwcGVyJywgKCkgPT4ge1xuICBjb25zdCBpbnN0YW5jZSA9IHtcbiAgICBhZGFwdG9yOiB7XG4gICAgICBkb2N1bWVudDoge1xuICAgICAgICBjcmVhdGVFbGVtZW50OiBqZXN0LmZuKCksXG4gICAgICB9LFxuICAgIH0sXG4gICAgc3RhbmRhcmRDSFRNTG5vZGU6IGplc3QuZm4oKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGluc3RhbmNlLFxuICAgIENIVE1MV3JhcHBlcjogY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWRhcHRvciA9IHsgZG9jdW1lbnQ6IHsgY3JlYXRlRWxlbWVudDogamVzdC5mbigpIH0gfTtcbiAgICAgICAgdGhpcy5kb2N1bWVudCA9IHt9O1xuICAgICAgICAvLyByZXR1cm4gaW5zdGFuY2U7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCBub2RlID0gKGtpbmQsIGV4dHJhcykgPT4gKHsga2luZCwgY2hpbGROb2RlczogW10sIC4uLmV4dHJhcyB9KTtcblxuY29uc3QgdGV4dE5vZGUgPSAodGV4dCkgPT4gbm9kZSgndGV4dCcsIHsgdGV4dCwgbm9kZTogeyBraW5kOiAndGV4dCcsIHRleHQgfSB9KTtcbmNvbnN0IG1uID0gKHRleHQpID0+IG5vZGUoJ21uJywgeyBjaGlsZE5vZGVzOiBbdGV4dE5vZGUodGV4dCldIH0pO1xuY29uc3QgbW8gPSAodGV4dCkgPT5cbiAgbm9kZSgnbW8nLCB7XG4gICAgY2hpbGROb2RlczogW3RleHROb2RlKHRleHQpXSxcbiAgfSk7XG5cbmNvbnN0IG1jbyA9ICh0ZXh0KSA9PiAoe1xuICAuLi5tbyh0ZXh0KSxcblxuICB0b0NIVE1MOiAobikgPT4ge1xuICAgIGNvbnN0IHQgPSBgbW86JHt0ZXh0fWA7XG4gICAgbi50ZXh0Q29udGVudCA9IHQ7XG4gIH0sXG59KTtcblxuY29uc3QgbXNyb3cgPSAoLi4uY2hpbGROb2RlcykgPT4gbm9kZSgnbXNyb3cnLCB7IGNoaWxkTm9kZXMgfSk7XG5jb25zdCBtc3RhY2sgPSAoLi4ucm93cykgPT4gbm9kZSgnbXN0YWNrJywgeyBjaGlsZE5vZGVzOiByb3dzIH0pO1xuY29uc3QgbXNsaW5lID0gKCkgPT4gbm9kZSgnbXNsaW5lJyk7XG5kZXNjcmliZSgnZ2V0U3RhY2tEYXRhJywgKCkgPT4ge1xuICBpdC5lYWNoYFxuICAgIGlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXhwZWN0ZWRcbiAgICAke21zdGFjayhtc3JvdyhtbygnKycpLCBtbignMTExJykpKX0gICAgICAgICAgICAgICAgICB8ICR7W25ldyBSb3coWycxJywgJzEnLCAnMSddLCBtbygnKycpKV19XG4gICAgJHttc3RhY2sobXNyb3cobW4oJzExMScpKSl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgUm93KFsnMScsICcxJywgJzEnXSldfVxuICAgICR7bXN0YWNrKG1zcm93KG1uKCcxJyksIG1uKCcxJykpKX0gICAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IFJvdyhbJzEnLCAnMSddKV19XG4gICAgJHttc3RhY2sobXNyb3cobW4oJzEnKSksIG1uKCcxJykpfSAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgUm93KFsnMSddKSwgbmV3IFJvdyhbJzEnXSldfVxuICAgICR7bXN0YWNrKG1zbGluZSgpKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IExpbmUoKV19XG4gICAgJHttc3RhY2sobW4oJzEnKSwgbXNsaW5lKCksIG1zcm93KG1vKCcrJyksIG1uKCcxJykpKX0gfCAke1tuZXcgUm93KFsnMSddKSwgbmV3IExpbmUoKSwgbmV3IFJvdyhbJzEnXSwgbW8oJysnKSldfVxuICAgICR7bXN0YWNrKG1uKCcxJyksIG1uKCcxJykpfSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IFJvdyhbJzEnXSksIG5ldyBSb3coWycxJ10pXX1cbiAgYCgnJGlucHV0ID0+ICRleHBlY3RlZCcsICh7IGlucHV0LCBleHBlY3RlZCB9KSA9PiB7XG4gICAgY29uc3QgZCA9IGdldFN0YWNrRGF0YShpbnB1dCk7XG4gICAgLy8gY29uc29sZS5sb2coJ2Q6JywgZCk7XG4gICAgLy8gY29uc29sZS5sb2coJ2U6JywgZXhwZWN0ZWQpO1xuICAgIGV4cGVjdCh7IC4uLmQgfSkudG9FcXVhbCh7IC4uLmV4cGVjdGVkIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnUm93JywgKCkgPT4ge1xuICBkZXNjcmliZSgncGFkJywgKCkgPT4ge1xuICAgIGl0LmVhY2hgXG4gICAgICBjb2xzICAgfCBjb3VudCB8IGV4cGVjdGVkXG4gICAgICAke1tdfSAgfCAkezB9ICB8ICR7W119XG4gICAgICAke1sxXX0gfCAkezF9ICB8ICR7WzFdfVxuICAgICAgJHtbMV19IHwgJHsyfSAgfCAke1snX19wYWRfXycsIDFdfVxuICAgICAgJHtbMV19IHwgJHszfSAgfCAke1snX19wYWRfXycsICdfX3BhZF9fJywgMV19XG4gICAgYCgncGFkcyB0byB0aGUgcmlnaHQnLCAoeyBjb2xzLCBjb3VudCwgZXhwZWN0ZWQgfSkgPT4ge1xuICAgICAgY29uc3QgciA9IG5ldyBSb3coY29scyk7XG4gICAgICBjb25zdCBwID0gci5wYWQoY291bnQsICdyaWdodCcpO1xuICAgICAgZXhwZWN0KHApLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZS5lYWNoYFxuICBsYWJlbCAgICAgICAgICAgICAgICAgICAgICAgfCB0cmVlXG4gICR7J29uZSByb3cnfSAgICAgICAgICAgICAgICB8ICR7W21zcm93KG1uKCcxJykpXX1cbiAgJHsnaW1wbGljaXQgb25lIHJvdyd9ICAgICAgIHwgJHtbbW4oJzEnKV19XG4gICR7J3R3byByb3dzJ30gICAgICAgICAgICAgICB8ICR7W21zcm93KG1uKCcxJykpLCBtc3JvdyhtbignMicpKV19XG4gICR7J3R3byByb3dzIHdpdGggb3BlcmF0b3InfSB8ICR7W21zcm93KG1uKCcxJykpLCBtc3JvdyhtY28oJysnKSwgbW4oJzInKSldfVxuYCgnY2h0bWwnLCAoeyBsYWJlbCwgdHJlZSB9KSA9PiB7XG4gIGxldCBodG1sO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnN0IGNodG1sID0gbmV3IENIVE1MbXN0YWNrKHt9LCB7fSk7XG4gICAgY29uc3QgZG9tID0gbmV3IEpTRE9NKGA8IURPQ1RZUEUgaHRtbD48Ym9keT48L2JvZHk+YCk7XG4gICAgY2h0bWwuc3RhbmRhcmRDSFRNTG5vZGUgPSAocGFyZW50KSA9PiBwYXJlbnQ7XG4gICAgY2h0bWwuY2UgPSBkb20ud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQuYmluZChkb20ud2luZG93LmRvY3VtZW50KTtcbiAgICBjaHRtbC5jaGlsZE5vZGVzID0gdHJlZTtcbiAgICBjaHRtbC50b0NIVE1MKGRvbS53aW5kb3cuZG9jdW1lbnQuYm9keSk7XG4gICAgaHRtbCA9IGRvbS53aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUw7XG4gIH0pO1xuXG4gIGl0KGxhYmVsLCAoKSA9PiB7XG4gICAgZXhwZWN0KGh0bWwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuIl19
@@ -293,4 +293,4 @@ CHTMLmstack.styles = {
293
293
  'font-family': 'MJXZERO, MJXTEX !important'
294
294
  }
295
295
  };
296
- //# sourceMappingURL=chtml.js.map
296
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svY2h0bWwuanMiXSwibmFtZXMiOlsicmVkdWNlVGV4dCIsImFjYyIsIm4iLCJub2RlIiwia2luZCIsInRleHQiLCJMaW5lIiwiUm93IiwiY29sdW1ucyIsIm9wZXJhdG9yIiwiY291bnQiLCJkaXJlY3Rpb24iLCJsZW5ndGgiLCJFcnJvciIsImRpZmYiLCJwYWRkaW5nIiwiXyIsInRpbWVzIiwibWFwIiwibWF0aE5vZGVUb0NoYXJBcnJheSIsIm1uIiwiY2hpbGROb2RlcyIsInJlZHVjZSIsInNwbGl0IiwidG9Db2x1bW5BcnJheSIsImNoaWxkIiwiY29uc29sZSIsIndhcm4iLCJ0b0NIVE1MIiwicm93U3RhY2siLCJmIiwiZmlyc3QiLCJub2RlcyIsInRhaWwiLCJmbGF0dGVuIiwidW5kZWZpbmVkIiwiZ2V0U3RhY2tEYXRhIiwibXN0YWNrIiwiY29tcGFjdCIsIkNIVE1MbXN0YWNrIiwiZmFjdG9yeSIsInBhcmVudCIsImNlIiwiYWRhcHRvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJpbmQiLCJjaHRtbCIsInN0YW5kYXJkQ0hUTUxub2RlIiwic3RhY2tEYXRhIiwibWF4Q29scyIsInIiLCJ0YWJsZSIsImFwcGVuZENoaWxkIiwiZm9yRWFjaCIsInJvdyIsInRyIiwidGQiLCJzZXRBdHRyaWJ1dGUiLCJ0ZXh0Q29udGVudCIsImNvbHMiLCJwYWQiLCJjIiwidCIsIkNIVE1MV3JhcHBlciIsInN0eWxlcyIsImJvcmRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLEdBQUQsRUFBTUMsQ0FBTixFQUFZO0FBQzdCLE1BQUlBLENBQUMsQ0FBQ0MsSUFBRixJQUFVRCxDQUFDLENBQUNDLElBQUYsQ0FBT0MsSUFBUCxLQUFnQixNQUE5QixFQUFzQztBQUNwQ0gsSUFBQUEsR0FBRyxJQUFJQyxDQUFDLENB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QUFBQSxPQUFPLEVBQUUsQ0FENEI7QUFFckMsa0JBQWM7QUFGdUIsR0FuQnBCO0FBdUJuQixZQUFVO0FBQ1IsbUJBQWU7QUFEUDtBQXZCUyxDQUFyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENIVE1MV3JhcHBlciB9IGZyb20gJ21hdGhqYXgtZnVsbC9qcy9vdXRwdXQvY2h0bWwvV3JhcHBlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCByZWR1Y2VUZXh0ID0gKGFjYywgbikgPT4ge1xuICBpZiAobi5ub2RlICYmIG4ubm9kZS5raW5kID09PSAndGV4dCcpIHtcbiAgICBhY2MgKz0gbi5ub2RlLnRleHQ7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn07XG5cbmV4cG9ydCBjbGFzcyBMaW5lIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5raW5kID0gJ2xpbmUnO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3cge1xuICBjb25zdHJ1Y3Rvcihjb2x1bW5zLCBvcGVyYXRvcikge1xuICAgIHRoaXMua2luZCA9ICdyb3cnO1xuICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG5cbiAgcGFkKGNvdW50LCBkaXJlY3Rpb24gPSAncmlnaHQnKSB7XG4gICAgaWYgKGNvdW50IDwgdGhpcy5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubycpO1xuICAgIH1cblxuICAgIGNvbnN0IGRpZmYgPSBjb3VudCAtIHRoaXMuY29sdW1ucy5sZW5ndGg7XG5cbiAgICBjb25zdCBwYWRkaW5nID0gXy50aW1lcyhkaWZmKS5tYXAoKCkgPT4gJ19fcGFkX18nKTtcbiAgICByZXR1cm4gZGlyZWN0aW9uID09PSAncmlnaHQnID8gWy4uLnBhZGRpbmcsIC4uLnRoaXMuY29sdW1uc10gOiBbLi4udGhpcy5jb2x1bW5zLCAuLi5wYWRkaW5nXTtcbiAgfVxufVxuXG5jb25zdCBtYXRoTm9kZVRvQ2hhckFycmF5ID0gKG1uKSA9PiB7XG4gIGNvbnN0IHRleHQgPSBtbi5jaGlsZE5vZGVzLnJlZHVjZShyZWR1Y2VUZXh0LCAnJyk7XG4gIHJldHVybiB0ZXh0LnNwbGl0KCcnKTtcbn07XG5cbi8qKlxuICogQ29udmVydCBjaGlsZCBhIGNvbHVtbiBlbnRyeVxuICogQHBhcmFtIHsqfSBjaGlsZFxuICogQHJldHVybiBhbiBhcnJheSBvZiBjb2x1bW4gY29udGVudFxuICovXG5jb25zdCB0b0NvbHVtbkFycmF5ID0gKGNoaWxkKSA9PiB7XG4gIGlmICghY2hpbGQgfHwgIWNoaWxkLmtpbmQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21zcm93Jykge1xuICAgIHRocm93IG5ldyBFcnJvcignbXNyb3cgaW4gbXNyb3c/Jyk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21vJykge1xuICAgIC8vIFdlIGFyZSBnb2luZyB0byB0cmVhdCB0aGlzIG9wZXJhdG9yIGFzIGEgdGV4dCBhcnJheS5cbiAgICAvLyBJdCdzIHByb2JhYmx5IGdvaW5nIHRvIGJlIGEgZGVjaW1hbCBwb2ludFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKCdtbyB0aGF0IGlzIG5vdCAxc3Qgbm9kZSBpbiBtc3Jvdz8nKTtcbiAgICByZXR1cm4gbWF0aE5vZGVUb0NoYXJBcnJheShjaGlsZCk7XG4gICAgLy8gdGhyb3cgbmV3IEVycm9yKCdtbyBtdXN0IGJlIGZpcnN0IGNoaWxkIG9mIG1zcm93Jyk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21uJykge1xuICAgIHJldHVybiBtYXRoTm9kZVRvQ2hhckFycmF5KGNoaWxkKTtcbiAgfVxuXG4gIGlmIChjaGlsZC50b0NIVE1MKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9XG59O1xuXG4vKipcbiAqICBjb252ZXJ0IG1zdGFjayBjaHRtbCBjaGlsZE5vZGVzIGludG8gYSBSb3dcbiAqICBAcGFyYW0gY2hpbGQgY2h0bWwgY2hpbGQgbm9kZSBvZiBtc3RhY2tcbiAqICBAcmV0dXJuIFJvdyB8IExpbmVcbiAqL1xuY29uc3Qgcm93U3RhY2sgPSAoY2hpbGQpID0+IHtcbiAgaWYgKCFjaGlsZCB8fCAhY2hpbGQua2luZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbXNyb3cnKSB7XG4gICAgaWYgKCFjaGlsZC5jaGlsZE5vZGVzIHx8IGNoaWxkLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbmV3IFJvdyhbXSk7XG4gICAgfVxuICAgIGNvbnN0IGYgPSBfLmZpcnN0KGNoaWxkLmNoaWxkTm9kZXMpO1xuICAgIGNvbnN0IG5vZGVzID0gZiAmJiBmLmtpbmQgPT09ICdtbycgPyBfLnRhaWwoY2hpbGQuY2hpbGROb2RlcykgOiBjaGlsZC5jaGlsZE5vZGVzO1xuXG4gICAgY29uc3QgY29sdW1ucyA9IF8uZmxhdHRlbihub2Rlcy5tYXAodG9Db2x1bW5BcnJheSkpO1xuXG4gICAgcmV0dXJuIG5ldyBSb3coY29sdW1ucywgZi5raW5kID09PSAnbW8nID8gZiA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21uJykge1xuICAgIGNvbnN0IGNvbHVtbnMgPSBtYXRoTm9kZVRvQ2hhckFycmF5KGNoaWxkKTtcbiAgICByZXR1cm4gbmV3IFJvdyhjb2x1bW5zLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgaWYgKGNoaWxkLmtpbmQgPT09ICdtbycpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybignbW8gb24gaXRzIG93biByb3c/Jyk7XG4gICAgcmV0dXJuIG5ldyBSb3coW10sIGNoaWxkKTtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbXNsaW5lJykge1xuICAgIHJldHVybiBuZXcgTGluZSgpO1xuICB9XG5cbiAgaWYgKGNoaWxkLnRvQ0hUTUwpIHtcbiAgICByZXR1cm4gbmV3IFJvdyhbY2hpbGRdKTtcbiAgfVxufTtcblxuLyoqIGNvbnZlcnQgTWF0aEpheCBjaHRtbCB0cmVlIHRvIFJvd1tdXG4gKiBAcGFyYW0gbXN0YWNrIHRoZSByb290IG9mIHRoZSBtYXRoamF4IGNodG1sIHRyZWVcbiAqIEByZXR1cm4gUm93W11cbiAqL1xuXG5leHBvcnQgY29uc3QgZ2V0U3RhY2tEYXRhID0gKG1zdGFjaykgPT4ge1xuICBpZiAoIW1zdGFjayB8fCAhbXN0YWNrLmNoaWxkTm9kZXMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIF8uY29tcGFjdChtc3RhY2suY2hpbGROb2Rlcy5tYXAocm93U3RhY2spKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBDSFRNTG1zdGFjayBleHRlbmRzIENIVE1MV3JhcHBlciB7XG4gIGNvbnN0cnVjdG9yKGZhY3RvcnksIG5vZGUsIHBhcmVudCA9IG51bGwpIHtcbiAgICBzdXBlcihmYWN0b3J5LCBub2RlLCBwYXJlbnQpO1xuXG4gICAgdGhpcy5jZSA9IHRoaXMuYWRhcHRvci5kb2N1bWVudC5jcmVhdGVFbGVtZW50LmJpbmQodGhpcy5hZGFwdG9yLmRvY3VtZW50KTtcbiAgfVxuXG4gIHRvQ0hUTUwocGFyZW50KSB7XG4gICAgY29uc3QgY2h0bWwgPSB0aGlzLnN0YW5kYXJkQ0hUTUxub2RlKHBhcmVudCk7XG5cbiAgICBjb25zdCBzdGFja0RhdGEgPSBnZXRTdGFja0RhdGEodGhpcyk7XG5cbiAgICAvLyBjb25zb2xlLmxvZygnc3RhY2tEYXRhJywgc3RhY2tEYXRhKTtcbiAgICBjb25zdCBtYXhDb2xzID0gc3RhY2tEYXRhLnJlZHVjZSgoYWNjLCByKSA9PiB7XG4gICAgICBpZiAociAmJiByLmNvbHVtbnMubGVuZ3RoID4gYWNjKSB7XG4gICAgICAgIGFjYyA9IHIuY29sdW1ucy5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIDApO1xuXG4gICAgY29uc3QgdGFibGUgPSB0aGlzLmNlKCd0YWJsZScpO1xuICAgIGNodG1sLmFwcGVuZENoaWxkKHRhYmxlKTtcblxuICAgIHN0YWNrRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIGNvbnN0IHRyID0gdGhpcy5jZSgndHInKTtcbiAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTtcblxuICAgICAgaWYgKHJvdy5raW5kID09PSAncm93Jykge1xuICAgICAgICBjb25zdCB0ZCA9IHRoaXMuY2UoJ3RkJyk7XG4gICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTtcbiAgICAgICAgaWYgKHJvdy5vcGVyYXRvciAmJiByb3cub3BlcmF0b3IudG9DSFRNTCkge1xuICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaW5uZXInKTtcbiAgICAgICAgICByb3cub3BlcmF0b3IudG9DSFRNTCh0ZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsaWduIHJpZ2h0IGZvciBub3c6XG4gICAgICAgIGNvbnN0IGNvbHMgPSByb3cucGFkKG1heENvbHMsICdyaWdodCcpO1xuICAgICAgICBjb2xzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICBjb25zdCB0ID0gdGhpcy5jZSgndGQnKTtcbiAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0KTtcbiAgICAgICAgICBpZiAoYyA9PT0gJ19fcGFkX18nKSB7XG4gICAgICAgICAgICB0LnRleHRDb250ZW50ID0gJyc7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHQudGV4dENvbnRlbnQgPSBjO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYy5raW5kID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKGMudG9DSFRNTCkge1xuICAgICAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2lubmVyJyk7XG4gICAgICAgICAgICBjLnRvQ0hUTUwodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocm93LmtpbmQgPT09ICdsaW5lJykge1xuICAgICAgICBjb25zdCB0ZCA9IHRoaXMuY2UoJ3RkJyk7XG4gICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTtcbiAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdjb2xzcGFuJywgbWF4Q29scyArIDEpO1xuICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ21qeC1saW5lJyk7XG4gICAgICAgIHRkLnRleHRDb250ZW50ID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbkNIVE1MbXN0YWNrLnN0eWxlcyA9IHtcbiAgJ21qeC1tc3RhY2sgPiB0YWJsZSc6IHtcbiAgICAnbGluZS1oZWlnaHQnOiAnaW5pdGlhbCcsXG4gICAgYm9yZGVyOiAnc29saWQgMHB4IHJlZCcsXG4gICAgJ2JvcmRlci1zcGFjaW5nJzogJzBlbScsXG4gICAgJ2JvcmRlci1jb2xsYXBzZSc6ICdzZXBhcmF0ZScsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0cic6IHtcbiAgICAnbGluZS1oZWlnaHQnOiAnaW5pdGlhbCcsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0ciA+IHRkJzoge1xuICAgIC8vIHBhZGRpbmc6ICcxLjJyZW0nLFxuICAgIGJvcmRlcjogJ3NvbGlkIDBweCBibHVlJyxcbiAgICAnZm9udC1mYW1pbHknOiAnc2Fucy1zZXJpZicsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJ2luaXRpYWwnLFxuICB9LFxuICAnbWp4LW1zdGFjayA+IHRhYmxlID4gdHIgPiB0ZC5pbm5lcic6IHtcbiAgICAnZm9udC1mYW1pbHknOiAnaW5oZXJpdCcsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0ciA+IC5tangtbGluZSc6IHtcbiAgICBwYWRkaW5nOiAwLFxuICAgICdib3JkZXItdG9wJzogJ3NvbGlkIDFweCBibGFjaycsXG4gIH0sXG4gICcuVEVYLUEnOiB7XG4gICAgJ2ZvbnQtZmFtaWx5JzogJ01KWFpFUk8sIE1KWFRFWCAhaW1wb3J0YW50JyxcbiAgfSxcbn07XG4iXX0=
@@ -20,4 +20,4 @@ var mmlNodes = {
20
20
  none: _mml.MmlNone
21
21
  };
22
22
  exports.mmlNodes = mmlNodes;
23
- //# sourceMappingURL=index.js.map
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svaW5kZXguanMiXSwibmFtZXMiOlsiY2h0bWxOb2RlcyIsIm1zdGFjayIsIkNIVE1MbXN0YWNrIiwibW1sTm9kZXMiLCJNbWxNc3RhY2siLCJtc2xpbmUiLCJNbWxNc2xpbmUiLCJtc3JvdyIsIk1tbE1zcm93Iiwibm9uZSIsIk1tbE5vbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFTyxJQUFNQSxVQUFVLEdBQUc7QUFDeEJDLEVBQUFBLE1BQU0sRUFBRUM7QUFEZ0IsQ0FBbkI7O0FBSUEsSUFBTUMsUUFBUSxHQUFHO0FBQ3RCRixFQUFBQSxNQUFNLEVBQUVHLGNBRGM7QUFFdEJDLEVBQUFBLE1BQU0sRUFBRUMsY0FGYztBQUd0QkMsRUFBQUEsS0FBSyxFQUFFQyxhQUhlO0FBSXRCQyxFQUFBQSxJQUFJLEVBQUVDO0FBSmdCLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0hUTUxtc3RhY2sgfSBmcm9tICcuL2NodG1sJztcbmltcG9ydCB7IE1tbE5vbmUsIE1tbE1zbGluZSwgTW1sTXN0YWNrLCBNbWxNc3JvdyB9IGZyb20gJy4vbW1sJztcblxuZXhwb3J0IGNvbnN0IGNodG1sTm9kZXMgPSB7XG4gIG1zdGFjazogQ0hUTUxtc3RhY2ssXG59O1xuXG5leHBvcnQgY29uc3QgbW1sTm9kZXMgPSB7XG4gIG1zdGFjazogTW1sTXN0YWNrLFxuICBtc2xpbmU6IE1tbE1zbGluZSxcbiAgbXNyb3c6IE1tbE1zcm93LFxuICBub25lOiBNbWxOb25lLFxufTtcbiJdfQ==
package/lib/mstack/mml.js CHANGED
@@ -106,4 +106,4 @@ var MmlMsline = /*#__PURE__*/function (_AbstractMmlNode4) {
106
106
  }(_MmlNode.AbstractMmlNode);
107
107
 
108
108
  exports.MmlMsline = MmlMsline;
109
- //# sourceMappingURL=mml.js.map
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svbW1sLmpzIl0sIm5hbWVzIjpbIk1tbE5vbmUiLCJBYnN0cmFjdE1tbE5vZGUiLCJNbWxNc3RhY2siLCJNbWxNc3JvdyIsIk1tbE1zbGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7SUFFYUEsTzs7Ozs7Ozs7Ozs7O1NBQ1gsZUFBVztBQUNULGFBQU8sTUFBUDtBQUNEOzs7RUFIMEJDLHdCOzs7O0lBTWhCQyxTOzs7Ozs7Ozs7Ozs7U0FDWCxlQUFXO0FBQ1QsYUFBTyxRQUFQO0FBQ0Q7OztFQUg0QkQsd0I7Ozs7SUFNbEJFLFE7Ozs7Ozs7Ozs7OztTQUNYLGVBQVc7QUFDVCxhQUFPLE9BQVA7QUFDRDs7O0VBSDJCRix3Qjs7OztJQUtqQkcsUzs7Ozs7Ozs7Ozs7O1NBQ1gsZUFBVztBQUNULGFBQU8sUUFBUDtBQUNEOzs7RUFINEJILHdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RNbWxOb2RlIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvcmUvTW1sVHJlZS9NbWxOb2RlJztcblxuZXhwb3J0IGNsYXNzIE1tbE5vbmUgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ25vbmUnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNbWxNc3RhY2sgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ21zdGFjayc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1tbE1zcm93IGV4dGVuZHMgQWJzdHJhY3RNbWxOb2RlIHtcbiAgZ2V0IGtpbmQoKSB7XG4gICAgcmV0dXJuICdtc3Jvdyc7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBNbWxNc2xpbmUgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ21zbGluZSc7XG4gIH1cbn1cbiJdfQ==
@@ -92,4 +92,4 @@ var unWrapMath = function unWrapMath(content) {
92
92
  };
93
93
 
94
94
  exports.unWrapMath = unWrapMath;
95
- //# sourceMappingURL=normalization.js.map
95
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub3JtYWxpemF0aW9uLmpzIl0sIm5hbWVzIjpbIkJyYWNrZXRUeXBlcyIsIlJPVU5EX0JSQUNLRVRTIiwiU1FVQVJFX0JSQUNLRVRTIiwiRE9MTEFSIiwiRE9VQkxFX0RPTExBUiIsIlBBSVJTIiwid3JhcE1hdGgiLCJjb250ZW50Iiwid3JhcFR5cGUiLCJjb25zb2xlIiwid2FybiIsInN0YXJ0IiwiZW5kIiwidW5XcmFwTWF0aCIsImRpc3BsYXlTdHlsZUluZGV4IiwiaW5kZXhPZiIsInJlcGxhY2UiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwidW53cmFwcGVkIiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBTyxJQUFNQSxZQUFZLEdBQUcsRUFBckI7O0FBRVBBLFlBQVksQ0FBQ0MsY0FBYixHQUE4QixnQkFBOUI7QUFDQUQsWUFBWSxDQUFDRSxlQUFiLEdBQStCLGlCQUEvQjtBQUNBRixZQUFZLENBQUNHLE1BQWIsR0FBc0IsUUFBdEI7QUFDQUgsWUFBWSxDQUFDSSxhQUFiLEdBQTZCLGVBQTdCO0FBRUEsSUFBTUMsS0FBSywwREFDUkwsWUFBWSxDQUFDQyxjQURMLEVBQ3NCLENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FEdEIsNENBRVJELFlBQVksQ0FBQ0UsZUFGTCxFQUV1QixDQUFDLEtBQUQsRUFBUSxLQUFSLENBRnZCLDRDQUdSRixZQUFZLENBQUNHLE1BSEwsRUFHYyxDQUFDLEdBQUQsRUFBTSxHQUFOLENBSGQsNENBSVJILFlBQVksQ0FBQ0ksYUFKTCxFQUlxQixDQUFDLElBQUQsRUFBTyxJQUFQLENBSnJCLFVBQVg7O0FBT08sSUFBTUUsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxRQUFWLEVBQXVCO0FBQzdDLE1BQUlBLFFBQVEsS0FBS1IsWUFBWSxDQUFDRSxlQUE5QixFQUErQztBQUM3Q08sSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsZ0NB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bEIsR0FBUDtBQUlELENBeENNIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJyYWNrZXRUeXBlcyA9IHt9O1xuXG5CcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMgPSAncm91bmRfYnJhY2tldHMnO1xuQnJhY2tldFR5cGVzLlNRVUFSRV9CUkFDS0VUUyA9ICdzcXVhcmVfYnJhY2tldHMnO1xuQnJhY2tldFR5cGVzLkRPTExBUiA9ICdkb2xsYXInO1xuQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVIgPSAnZG91YmxlX2RvbGxhcic7XG5cbmNvbnN0IFBBSVJTID0ge1xuICBbQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTXTogWydcXFxcKCcsICdcXFxcKSddLFxuICBbQnJhY2tldFR5cGVzLlNRVUFSRV9CUkFDS0VUU106IFsnXFxcXFsnLCAnXFxcXF0nXSxcbiAgW0JyYWNrZXRUeXBlcy5ET0xMQVJdOiBbJyQnLCAnJCddLFxuICBbQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVJdOiBbJyQkJywgJyQkJ10sXG59O1xuXG5leHBvcnQgY29uc3Qgd3JhcE1hdGggPSAoY29udGVudCwgd3JhcFR5cGUpID0+IHtcbiAgaWYgKHdyYXBUeXBlID09PSBCcmFja2V0VHlwZXMuU1FVQVJFX0JSQUNLRVRTKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcWy4uLlxcXFxdIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB3cmFwVHlwZSA9IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUztcbiAgfVxuICBpZiAod3JhcFR5cGUgPT09IEJyYWNrZXRUeXBlcy5ET1VCTEVfRE9MTEFSKSB7XG4gICAgY29uc29sZS53YXJuKCckJC4uLiQkIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB3cmFwVHlwZSA9IEJyYWNrZXRUeXBlcy5ET0xMQVI7XG4gIH1cblxuICBjb25zdCBbc3RhcnQsIGVuZF0gPSBQQUlSU1t3cmFwVHlwZV0gfHwgUEFJUlNbQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTXTtcbiAgcmV0dXJuIGAke3N0YXJ0fSR7Y29udGVudH0ke2VuZH1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuV3JhcE1hdGggPSAoY29udGVudCkgPT4ge1xuICBjb25zdCBkaXNwbGF5U3R5bGVJbmRleCA9IGNvbnRlbnQuaW5kZXhPZignXFxcXGRpc3BsYXlzdHlsZScpO1xuICBpZiAoZGlzcGxheVN0eWxlSW5kZXggIT09IC0xKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcZGlzcGxheXN0eWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSByZW1vdmluZycpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgY29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgnXFxcXGRpc3BsYXlzdHlsZScsICcnKS50cmltKCk7XG4gIH1cblxuICBpZiAoY29udGVudC5zdGFydHNXaXRoKCckJCcpICYmIGNvbnRlbnQuZW5kc1dpdGgoJyQkJykpIHtcbiAgICBjb25zb2xlLndhcm4oJyQkIHN5bnRheCBpcyBub3QgeWV0IHN1cHBvcnRlZCcpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgcmV0dXJuIHtcbiAgICAgIHVud3JhcHBlZDogY29udGVudC5zdWJzdHJpbmcoMiwgY29udGVudC5sZW5ndGggLSAyKSxcbiAgICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuRE9MTEFSLFxuICAgIH07XG4gIH1cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnJCcpICYmIGNvbnRlbnQuZW5kc1dpdGgoJyQnKSkge1xuICAgIHJldHVybiB7XG4gICAgICB1bndyYXBwZWQ6IGNvbnRlbnQuc3Vic3RyaW5nKDEsIGNvbnRlbnQubGVuZ3RoIC0gMSksXG4gICAgICB3cmFwVHlwZTogQnJhY2tldFR5cGVzLkRPTExBUixcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnXFxcXFsnKSAmJiBjb250ZW50LmVuZHNXaXRoKCdcXFxcXScpKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcWy4uXFxcXF0gc3ludGF4IGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICByZXR1cm4ge1xuICAgICAgdW53cmFwcGVkOiBjb250ZW50LnN1YnN0cmluZygyLCBjb250ZW50Lmxlbmd0aCAtIDIpLFxuICAgICAgd3JhcFR5cGU6IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnXFxcXCgnKSAmJiBjb250ZW50LmVuZHNXaXRoKCdcXFxcKScpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVud3JhcHBlZDogY29udGVudC5zdWJzdHJpbmcoMiwgY29udGVudC5sZW5ndGggLSAyKSxcbiAgICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdW53cmFwcGVkOiBjb250ZW50LFxuICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMsXG4gIH07XG59O1xuIl19