@pie-lib/math-rendering-accessible 4.1.0-next.0 → 4.1.0-next.3
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 +28 -0
- package/package.json +4 -5
- package/src/__tests__/normalization.test.js +0 -1
- package/lib/__tests__/mml-to-latex.test.js +0 -15
- package/lib/__tests__/normalization.test.js +0 -47
- package/lib/__tests__/render-math.test.js +0 -79
- package/lib/index.js +0 -34
- package/lib/index.js.map +0 -1
- package/lib/mathjax-script.js +0 -2
- package/lib/mathjax-script.js.map +0 -1
- package/lib/mml-to-latex.js +0 -11
- package/lib/mml-to-latex.js.map +0 -1
- package/lib/mstack/__tests__/chtml.test.js +0 -134
- package/lib/mstack/chtml.js +0 -230
- package/lib/mstack/chtml.js.map +0 -1
- package/lib/mstack/index.js +0 -18
- package/lib/mstack/index.js.map +0 -1
- package/lib/mstack/mml.js +0 -68
- package/lib/mstack/mml.js.map +0 -1
- package/lib/normalization.js +0 -68
- package/lib/normalization.js.map +0 -1
- package/lib/render-math.js +0 -435
- package/lib/render-math.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
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
|
+
# [4.1.0-next.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@4.1.0-next.1...@pie-lib/math-rendering-accessible@4.1.0-next.3) (2026-01-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [4.1.0-next.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.22.1...@pie-lib/math-rendering-accessible@4.1.0-next.1) (2026-01-26)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* remove carets from [@pie-lib](https://github.com/pie-lib) dependencies and configure lerna to use exact versions ([c9cd800](https://github.com/pie-framework/pie-lib/commit/c9cd800844abca09e7acf1fd35b2ddf51a6d86df))
|
|
20
|
+
* remove carret, point to specific libs version ([09939a5](https://github.com/pie-framework/pie-lib/commit/09939a5aca19d7dda03d62c93d4d524f98dd69da))
|
|
21
|
+
* remove exports and publish ([#2068](https://github.com/pie-framework/pie-lib/issues/2068)) ([60a96cd](https://github.com/pie-framework/pie-lib/commit/60a96cde0ec65f6b1cac0ae329aa33a0abc50d05))
|
|
22
|
+
* use fixed lib deps ([de7c64d](https://github.com/pie-framework/pie-lib/commit/de7c64d14f13259fe44d47405e4421baef21e24e))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* bump react and react-dom ([01dc19e](https://github.com/pie-framework/pie-lib/commit/01dc19e88bbc8d372c561d1511df1a82937d45af))
|
|
28
|
+
* sync latest changes from dev ([c936e9c](https://github.com/pie-framework/pie-lib/commit/c936e9c7f9e095e7d9b9805ac2bf72bd271e05f1))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
6
34
|
# [4.0.0-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.22.2-next.0...@pie-lib/math-rendering-accessible@4.0.0-next.0) (2026-01-19)
|
|
7
35
|
|
|
8
36
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/math-rendering-accessible",
|
|
3
|
-
"version": "4.1.0-next.
|
|
3
|
+
"version": "4.1.0-next.3",
|
|
4
4
|
"description": "math rendering utilities",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -11,14 +11,13 @@
|
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@pie-framework/mathml-to-latex": "1.4.4",
|
|
14
|
-
"@pie-lib/math-rendering": "4.1.0-next.
|
|
14
|
+
"@pie-lib/math-rendering": "4.1.0-next.3",
|
|
15
15
|
"debug": "^4.1.1",
|
|
16
16
|
"lodash": "^4.17.11",
|
|
17
17
|
"mathjax-full": "3.2.2",
|
|
18
18
|
"mathml-to-latex": "1.2.0",
|
|
19
|
-
"react": "^18.2.0"
|
|
20
|
-
"slate": "^0.36.2"
|
|
19
|
+
"react": "^18.2.0"
|
|
21
20
|
},
|
|
22
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "8ea41592c5553487014f2694f91b657c4f62d131",
|
|
23
22
|
"scripts": {}
|
|
24
23
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
|
-
var _mmlToLatex = _interopRequireDefault(require("../mml-to-latex"));
|
|
6
|
-
describe('mmlToLatex', function () {
|
|
7
|
-
it('should work', function () {
|
|
8
|
-
var mml = '<math xmlns="http://www.w3.org/1998/Math/MathML"> <mn>2</mn> <mi>x</mi> <mtext> </mtext> <mo>≤</mo> <mn>4</mn> <mi>y</mi> <mtext> </mtext> <mo>+</mo> <mtext> </mtext> <mn>8</mn> <msqrt> <mi>h</mi> </msqrt></math>';
|
|
9
|
-
// todo revisit this
|
|
10
|
-
// const latex = '2x\\text{ }\\leq4y\\text{ }+\\text{ }8\\sqrt{h}';
|
|
11
|
-
var latex = '2 x \\textrm{ } \\leq 4 y \\textrm{ } + \\textrm{ } 8 \\sqrt{h}';
|
|
12
|
-
expect((0, _mmlToLatex["default"])(mml)).toEqual(latex);
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9tbWxUb0xhdGV4IiwiZGVzY3JpYmUiLCJpdCIsIm1tbCIsImxhdGV4IiwiZXhwZWN0IiwibW1sVG9MYXRleCIsInRvRXF1YWwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL21tbC10by1sYXRleC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbW1sVG9MYXRleCBmcm9tICcuLi9tbWwtdG8tbGF0ZXgnO1xuZGVzY3JpYmUoJ21tbFRvTGF0ZXgnLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgd29yaycsICgpID0+IHtcbiAgICBjb25zdCBtbWwgPVxuICAgICAgJzxtYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiPiAgPG1uPjI8L21uPiAgPG1pPng8L21pPiAgPG10ZXh0PiYjeEEwOzwvbXRleHQ+ICA8bW8+JiN4MjI2NDs8L21vPiAgPG1uPjQ8L21uPiAgPG1pPnk8L21pPiAgPG10ZXh0PiYjeEEwOzwvbXRleHQ+ICA8bW8+KzwvbW8+ICA8bXRleHQ+JiN4QTA7PC9tdGV4dD4gIDxtbj44PC9tbj4gPG1zcXJ0PiAgICA8bWk+aDwvbWk+ICA8L21zcXJ0PjwvbWF0aD4nO1xuICAgIC8vIHRvZG8gcmV2aXNpdCB0aGlzXG4gICAgLy8gY29uc3QgbGF0ZXggPSAnMnhcXFxcdGV4dHsgfVxcXFxsZXE0eVxcXFx0ZXh0eyB9K1xcXFx0ZXh0eyB9OFxcXFxzcXJ0e2h9JztcbiAgICBjb25zdCBsYXRleCA9ICcyIHggXFxcXHRleHRybXsgfSBcXFxcbGVxIDQgeSBcXFxcdGV4dHJteyB9ICsgXFxcXHRleHRybXsgfSA4IFxcXFxzcXJ0e2h9JztcblxuICAgIGV4cGVjdChtbWxUb0xhdGV4KG1tbCkpLnRvRXF1YWwobGF0ZXgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQUUsUUFBUSxDQUFDLFlBQVksRUFBRSxZQUFNO0VBQzNCQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQU07SUFDdEIsSUFBTUMsR0FBRyxHQUNQLDBQQUEwUDtJQUM1UDtJQUNBO0lBQ0EsSUFBTUMsS0FBSyxHQUFHLGlFQUFpRTtJQUUvRUMsTUFBTSxDQUFDLElBQUFDLHNCQUFVLEVBQUNILEdBQUcsQ0FBQyxDQUFDLENBQUNJLE9BQU8sQ0FBQ0gsS0FBSyxDQUFDO0VBQ3hDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
6
|
-
var _slate = require("slate");
|
|
7
|
-
var _normalization = require("../normalization");
|
|
8
|
-
var log = (0, _debug["default"])('@pie-lib:math-rendering:test:normalization');
|
|
9
|
-
describe('normalization', function () {
|
|
10
|
-
describe('unWrapMath', function () {
|
|
11
|
-
var assertUnWrap = function assertUnWrap(html, expected, wrapType) {
|
|
12
|
-
it("innerHTML: ".concat(html, " is unWrapped to: ").concat(expected, " with wrapType: ").concat(wrapType), function () {
|
|
13
|
-
var out = (0, _normalization.unWrapMath)(html);
|
|
14
|
-
expect(out).toEqual({
|
|
15
|
-
unwrapped: expected,
|
|
16
|
-
wrapType: wrapType
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
|
-
assertUnWrap('$$<$$', '<', _normalization.BracketTypes.DOLLAR);
|
|
21
|
-
assertUnWrap('$<$', '<', _normalization.BracketTypes.DOLLAR);
|
|
22
|
-
assertUnWrap('\\(<\\)', '<', _normalization.BracketTypes.ROUND_BRACKETS);
|
|
23
|
-
assertUnWrap('\\[<\\]', '<', _normalization.BracketTypes.ROUND_BRACKETS);
|
|
24
|
-
assertUnWrap('latex', 'latex', _normalization.BracketTypes.ROUND_BRACKETS);
|
|
25
|
-
assertUnWrap('\\displaystyle foo', 'foo', _normalization.BracketTypes.ROUND_BRACKETS);
|
|
26
|
-
});
|
|
27
|
-
describe('wrapMath', function () {
|
|
28
|
-
var assertWrap = function assertWrap(latex, expectedHtml, wrapper) {
|
|
29
|
-
wrapper = wrapper || _normalization.BracketTypes.ROUND_BRACKETS;
|
|
30
|
-
it("".concat(latex, " is wrapped to: ").concat(expectedHtml), function () {
|
|
31
|
-
var out = (0, _normalization.wrapMath)(latex, wrapper);
|
|
32
|
-
log('out: ', out);
|
|
33
|
-
expect(out).toEqual(expectedHtml);
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
assertWrap('latex', '\\(latex\\)', _normalization.BracketTypes.ROUND_BRACKETS);
|
|
37
|
-
assertWrap('latex', '\\(latex\\)', _normalization.BracketTypes.SQUARE_BRACKETS);
|
|
38
|
-
assertWrap('latex', '$latex$', _normalization.BracketTypes.DOLLAR);
|
|
39
|
-
assertWrap('latex', '$latex$', _normalization.BracketTypes.DOUBLE_DOLLAR);
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Note that when this is converted to html it get's escaped - but that's an issue with the slate html-serializer.
|
|
43
|
-
*/
|
|
44
|
-
assertWrap('<', '\\(<\\)');
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9kZWJ1ZyIsIl9zbGF0ZSIsIl9ub3JtYWxpemF0aW9uIiwibG9nIiwiZGVidWciLCJkZXNjcmliZSIsImFzc2VydFVuV3JhcCIsImh0bWwiLCJleHBlY3RlZCIsIndyYXBUeXBlIiwiaXQiLCJjb25jYXQiLCJvdXQiLCJ1bldyYXBNYXRoIiwiZXhwZWN0IiwidG9FcXVhbCIsInVud3JhcHBlZCIsIkJyYWNrZXRUeXBlcyIsIkRPTExBUiIsIlJPVU5EX0JSQUNLRVRTIiwiYXNzZXJ0V3JhcCIsImxhdGV4IiwiZXhwZWN0ZWRIdG1sIiwid3JhcHBlciIsIndyYXBNYXRoIiwiU1FVQVJFX0JSQUNLRVRTIiwiRE9VQkxFX0RPTExBUiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbm9ybWFsaXphdGlvbi50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgRGF0YSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEJyYWNrZXRUeXBlcywgd3JhcE1hdGgsIHVuV3JhcE1hdGggfSBmcm9tICcuLi9ub3JtYWxpemF0aW9uJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOm1hdGgtcmVuZGVyaW5nOnRlc3Q6bm9ybWFsaXphdGlvbicpO1xuXG5kZXNjcmliZSgnbm9ybWFsaXphdGlvbicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3VuV3JhcE1hdGgnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0VW5XcmFwID0gKGh0bWwsIGV4cGVjdGVkLCB3cmFwVHlwZSkgPT4ge1xuICAgICAgaXQoYGlubmVySFRNTDogJHtodG1sfSBpcyB1bldyYXBwZWQgdG86ICR7ZXhwZWN0ZWR9IHdpdGggd3JhcFR5cGU6ICR7d3JhcFR5cGV9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBvdXQgPSB1bldyYXBNYXRoKGh0bWwpO1xuXG4gICAgICAgIGV4cGVjdChvdXQpLnRvRXF1YWwoe1xuICAgICAgICAgIHVud3JhcHBlZDogZXhwZWN0ZWQsXG4gICAgICAgICAgd3JhcFR5cGU6IHdyYXBUeXBlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRVbldyYXAoJyQkPCQkJywgJzwnLCBCcmFja2V0VHlwZXMuRE9MTEFSKTtcbiAgICBhc3NlcnRVbldyYXAoJyQ8JCcsICc8JywgQnJhY2tldFR5cGVzLkRPTExBUik7XG4gICAgYXNzZXJ0VW5XcmFwKCdcXFxcKDxcXFxcKScsICc8JywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgICBhc3NlcnRVbldyYXAoJ1xcXFxbPFxcXFxdJywgJzwnLCBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFVuV3JhcCgnbGF0ZXgnLCAnbGF0ZXgnLCBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFVuV3JhcCgnXFxcXGRpc3BsYXlzdHlsZSBmb28nLCAnZm9vJywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dyYXBNYXRoJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydFdyYXAgPSAobGF0ZXgsIGV4cGVjdGVkSHRtbCwgd3JhcHBlcikgPT4ge1xuICAgICAgd3JhcHBlciA9IHdyYXBwZXIgfHwgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTO1xuICAgICAgaXQoYCR7bGF0ZXh9IGlzIHdyYXBwZWQgdG86ICR7ZXhwZWN0ZWRIdG1sfWAsICgpID0+IHtcbiAgICAgICAgY29uc3Qgb3V0ID0gd3JhcE1hdGgobGF0ZXgsIHdyYXBwZXIpO1xuXG4gICAgICAgIGxvZygnb3V0OiAnLCBvdXQpO1xuXG4gICAgICAgIGV4cGVjdChvdXQpLnRvRXF1YWwoZXhwZWN0ZWRIdG1sKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRXcmFwKCdsYXRleCcsICdcXFxcKGxhdGV4XFxcXCknLCBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFdyYXAoJ2xhdGV4JywgJ1xcXFwobGF0ZXhcXFxcKScsIEJyYWNrZXRUeXBlcy5TUVVBUkVfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFdyYXAoJ2xhdGV4JywgJyRsYXRleCQnLCBCcmFja2V0VHlwZXMuRE9MTEFSKTtcbiAgICBhc3NlcnRXcmFwKCdsYXRleCcsICckbGF0ZXgkJywgQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVIpO1xuXG4gICAgLyoqXG4gICAgICogTm90ZSB0aGF0IHdoZW4gdGhpcyBpcyBjb252ZXJ0ZWQgdG8gaHRtbCBpdCBnZXQncyBlc2NhcGVkIC0gYnV0IHRoYXQncyBhbiBpc3N1ZSB3aXRoIHRoZSBzbGF0ZSBodG1sLXNlcmlhbGl6ZXIuXG4gICAgICovXG4gICAgYXNzZXJ0V3JhcCgnPCcsICdcXFxcKDxcXFxcKScpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFNSSxHQUFHLEdBQUcsSUFBQUMsaUJBQUssRUFBQyw0Q0FBNEMsQ0FBQztBQUUvREMsUUFBUSxDQUFDLGVBQWUsRUFBRSxZQUFNO0VBQzlCQSxRQUFRLENBQUMsWUFBWSxFQUFFLFlBQU07SUFDM0IsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxRQUFRLEVBQUs7TUFDakRDLEVBQUUsZUFBQUMsTUFBQSxDQUFlSixJQUFJLHdCQUFBSSxNQUFBLENBQXFCSCxRQUFRLHNCQUFBRyxNQUFBLENBQW1CRixRQUFRLEdBQUksWUFBTTtRQUNyRixJQUFNRyxHQUFHLEdBQUcsSUFBQUMseUJBQVUsRUFBQ04sSUFBSSxDQUFDO1FBRTVCTyxNQUFNLENBQUNGLEdBQUcsQ0FBQyxDQUFDRyxPQUFPLENBQUM7VUFDbEJDLFNBQVMsRUFBRVIsUUFBUTtVQUNuQkMsUUFBUSxFQUFFQTtRQUNaLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFREgsWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUVXLDJCQUFZLENBQUNDLE1BQU0sQ0FBQztJQUMvQ1osWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUVXLDJCQUFZLENBQUNDLE1BQU0sQ0FBQztJQUM3Q1osWUFBWSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUVXLDJCQUFZLENBQUNFLGNBQWMsQ0FBQztJQUN6RGIsWUFBWSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUVXLDJCQUFZLENBQUNFLGNBQWMsQ0FBQztJQUN6RGIsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUVXLDJCQUFZLENBQUNFLGNBQWMsQ0FBQztJQUMzRGIsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRVcsMkJBQVksQ0FBQ0UsY0FBYyxDQUFDO0VBQ3hFLENBQUMsQ0FBQztFQUVGZCxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07SUFDekIsSUFBTWUsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxPQUFPLEVBQUs7TUFDbkRBLE9BQU8sR0FBR0EsT0FBTyxJQUFJTiwyQkFBWSxDQUFDRSxjQUFjO01BQ2hEVCxFQUFFLElBQUFDLE1BQUEsQ0FBSVUsS0FBSyxzQkFBQVYsTUFBQSxDQUFtQlcsWUFBWSxHQUFJLFlBQU07UUFDbEQsSUFBTVYsR0FBRyxHQUFHLElBQUFZLHVCQUFRLEVBQUNILEtBQUssRUFBRUUsT0FBTyxDQUFDO1FBRXBDcEIsR0FBRyxDQUFDLE9BQU8sRUFBRVMsR0FBRyxDQUFDO1FBRWpCRSxNQUFNLENBQUNGLEdBQUcsQ0FBQyxDQUFDRyxPQUFPLENBQUNPLFlBQVksQ0FBQztNQUNuQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRURGLFVBQVUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFSCwyQkFBWSxDQUFDRSxjQUFjLENBQUM7SUFDL0RDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFSCwyQkFBWSxDQUFDUSxlQUFlLENBQUM7SUFDaEVMLFVBQVUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFSCwyQkFBWSxDQUFDQyxNQUFNLENBQUM7SUFDbkRFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFSCwyQkFBWSxDQUFDUyxhQUFhLENBQUM7O0lBRTFEO0FBQ0o7QUFDQTtJQUNJTixVQUFVLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztFQUM1QixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
var _react2 = require("@testing-library/react");
|
|
7
|
-
var _renderMath = _interopRequireWildcard(require("../render-math"));
|
|
8
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
-
// import * as MathJaxModule from '../mathjax-script';
|
|
11
|
-
|
|
12
|
-
jest.mock('../mathjax-script', function () {
|
|
13
|
-
return {
|
|
14
|
-
initializeMathJax: jest.fn()
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
describe('render-math', function () {
|
|
18
|
-
beforeEach(function () {
|
|
19
|
-
// Reset the mocks before each test
|
|
20
|
-
jest.resetAllMocks();
|
|
21
|
-
// Mock window.MathJax and window.mathjaxLoadedP
|
|
22
|
-
global.window.MathJax = {
|
|
23
|
-
texReset: jest.fn(),
|
|
24
|
-
typesetClear: jest.fn(),
|
|
25
|
-
typeset: jest.fn(),
|
|
26
|
-
typesetPromise: jest.fn(function () {
|
|
27
|
-
return Promise.resolve();
|
|
28
|
-
})
|
|
29
|
-
};
|
|
30
|
-
global.window.mathjaxLoadedP = Promise.resolve();
|
|
31
|
-
});
|
|
32
|
-
it('calls initializeMathJax once without @pie-lib/math-rendering@2', function () {
|
|
33
|
-
jest.useFakeTimers();
|
|
34
|
-
var div = document.createElement('div');
|
|
35
|
-
delete window['@pie-lib/math-rendering@2'];
|
|
36
|
-
|
|
37
|
-
// Initialize as undefined for the first call
|
|
38
|
-
global.window.MathJax = undefined;
|
|
39
|
-
global.window.mathjaxLoadedP = undefined;
|
|
40
|
-
|
|
41
|
-
// Call renderMath once to initialize MathJax
|
|
42
|
-
(0, _renderMath["default"])(div);
|
|
43
|
-
|
|
44
|
-
// Subsequent calls should not re-initialize MathJax
|
|
45
|
-
global.window.MathJax = {
|
|
46
|
-
texReset: jest.fn(),
|
|
47
|
-
typesetClear: jest.fn(),
|
|
48
|
-
typeset: jest.fn(),
|
|
49
|
-
typesetPromise: jest.fn(function () {
|
|
50
|
-
return Promise.resolve();
|
|
51
|
-
})
|
|
52
|
-
};
|
|
53
|
-
global.window.mathjaxLoadedP = Promise.resolve();
|
|
54
|
-
|
|
55
|
-
// Call renderMath 9 more times
|
|
56
|
-
_lodash["default"].times(9).forEach(function (i) {
|
|
57
|
-
return (0, _renderMath["default"])(div);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// setTimeout(() => {
|
|
61
|
-
// expect(MathJaxModule.initializeMathJax).toHaveBeenCalledTimes(1);
|
|
62
|
-
// }, 500);
|
|
63
|
-
});
|
|
64
|
-
it('does not call initializeMathJax when @pie-lib/math-rendering@2 is present', function () {
|
|
65
|
-
var div = document.createElement('div');
|
|
66
|
-
(0, _renderMath["default"])(div);
|
|
67
|
-
// expect(MathJaxModule.initializeMathJax).not.toHaveBeenCalled();
|
|
68
|
-
});
|
|
69
|
-
it('wraps the math containing element the right way', function () {
|
|
70
|
-
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
71
|
-
"data-latex": ""
|
|
72
|
-
}, '420\\text{ cm}=4.2\\text{ meters}'))),
|
|
73
|
-
container = _render.container;
|
|
74
|
-
var spanElem = container.querySelector('span[data-latex]');
|
|
75
|
-
(0, _renderMath.fixMathElement)(spanElem);
|
|
76
|
-
expect(spanElem.textContent).toEqual('\\(420\\text{ cm}=4.2\\text{ meters}\\)');
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfcmVuZGVyTWF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xvZGFzaCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiamVzdCIsIm1vY2siLCJpbml0aWFsaXplTWF0aEpheCIsImZuIiwiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwicmVzZXRBbGxNb2NrcyIsImdsb2JhbCIsIndpbmRvdyIsIk1hdGhKYXgiLCJ0ZXhSZXNldCIsInR5cGVzZXRDbGVhciIsInR5cGVzZXQiLCJ0eXBlc2V0UHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwibWF0aGpheExvYWRlZFAiLCJpdCIsInVzZUZha2VUaW1lcnMiLCJkaXYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ1bmRlZmluZWQiLCJyZW5kZXJNYXRoIiwiXyIsInRpbWVzIiwiZm9yRWFjaCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjb250YWluZXIiLCJzcGFuRWxlbSIsInF1ZXJ5U2VsZWN0b3IiLCJmaXhNYXRoRWxlbWVudCIsImV4cGVjdCIsInRleHRDb250ZW50IiwidG9FcXVhbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcmVuZGVyLW1hdGgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgcmVuZGVyTWF0aCwgeyBmaXhNYXRoRWxlbWVudCB9IGZyb20gJy4uL3JlbmRlci1tYXRoJztcbi8vIGltcG9ydCAqIGFzIE1hdGhKYXhNb2R1bGUgZnJvbSAnLi4vbWF0aGpheC1zY3JpcHQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuamVzdC5tb2NrKCcuLi9tYXRoamF4LXNjcmlwdCcsICgpID0+ICh7XG4gIGluaXRpYWxpemVNYXRoSmF4OiBqZXN0LmZuKCksXG59KSk7XG5cbmRlc2NyaWJlKCdyZW5kZXItbWF0aCcsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgLy8gUmVzZXQgdGhlIG1vY2tzIGJlZm9yZSBlYWNoIHRlc3RcbiAgICBqZXN0LnJlc2V0QWxsTW9ja3MoKTtcbiAgICAvLyBNb2NrIHdpbmRvdy5NYXRoSmF4IGFuZCB3aW5kb3cubWF0aGpheExvYWRlZFBcbiAgICBnbG9iYWwud2luZG93Lk1hdGhKYXggPSB7XG4gICAgICB0ZXhSZXNldDogamVzdC5mbigpLFxuICAgICAgdHlwZXNldENsZWFyOiBqZXN0LmZuKCksXG4gICAgICB0eXBlc2V0OiBqZXN0LmZuKCksXG4gICAgICB0eXBlc2V0UHJvbWlzZTogamVzdC5mbigoKSA9PiBQcm9taXNlLnJlc29sdmUoKSksXG4gICAgfTtcbiAgICBnbG9iYWwud2luZG93Lm1hdGhqYXhMb2FkZWRQID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBpbml0aWFsaXplTWF0aEpheCBvbmNlIHdpdGhvdXQgQHBpZS1saWIvbWF0aC1yZW5kZXJpbmdAMicsICgpID0+IHtcbiAgICBqZXN0LnVzZUZha2VUaW1lcnMoKTtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgIGRlbGV0ZSB3aW5kb3dbJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nQDInXTtcblxuICAgIC8vIEluaXRpYWxpemUgYXMgdW5kZWZpbmVkIGZvciB0aGUgZmlyc3QgY2FsbFxuICAgIGdsb2JhbC53aW5kb3cuTWF0aEpheCA9IHVuZGVmaW5lZDtcbiAgICBnbG9iYWwud2luZG93Lm1hdGhqYXhMb2FkZWRQID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gQ2FsbCByZW5kZXJNYXRoIG9uY2UgdG8gaW5pdGlhbGl6ZSBNYXRoSmF4XG4gICAgcmVuZGVyTWF0aChkaXYpO1xuXG4gICAgLy8gU3Vic2VxdWVudCBjYWxscyBzaG91bGQgbm90IHJlLWluaXRpYWxpemUgTWF0aEpheFxuICAgIGdsb2JhbC53aW5kb3cuTWF0aEpheCA9IHtcbiAgICAgIHRleFJlc2V0OiBqZXN0LmZuKCksXG4gICAgICB0eXBlc2V0Q2xlYXI6IGplc3QuZm4oKSxcbiAgICAgIHR5cGVzZXQ6IGplc3QuZm4oKSxcbiAgICAgIHR5cGVzZXRQcm9taXNlOiBqZXN0LmZuKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKSxcbiAgICB9O1xuICAgIGdsb2JhbC53aW5kb3cubWF0aGpheExvYWRlZFAgPSBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgIC8vIENhbGwgcmVuZGVyTWF0aCA5IG1vcmUgdGltZXNcbiAgICBfLnRpbWVzKDkpLmZvckVhY2goKGkpID0+IHJlbmRlck1hdGgoZGl2KSk7XG5cbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgIGV4cGVjdChNYXRoSmF4TW9kdWxlLmluaXRpYWxpemVNYXRoSmF4KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgLy8gfSwgNTAwKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGNhbGwgaW5pdGlhbGl6ZU1hdGhKYXggd2hlbiBAcGllLWxpYi9tYXRoLXJlbmRlcmluZ0AyIGlzIHByZXNlbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICByZW5kZXJNYXRoKGRpdik7XG4gICAgLy8gZXhwZWN0KE1hdGhKYXhNb2R1bGUuaW5pdGlhbGl6ZU1hdGhKYXgpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCd3cmFwcyB0aGUgbWF0aCBjb250YWluaW5nIGVsZW1lbnQgdGhlIHJpZ2h0IHdheScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gZGF0YS1sYXRleD1cIlwiPnsnNDIwXFxcXHRleHR7IGNtfT00LjJcXFxcdGV4dHsgbWV0ZXJzfSd9PC9zcGFuPlxuICAgICAgPC9kaXY+LFxuICAgICk7XG4gICAgY29uc3Qgc3BhbkVsZW0gPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3BhbltkYXRhLWxhdGV4XScpO1xuXG4gICAgZml4TWF0aEVsZW1lbnQoc3BhbkVsZW0pO1xuXG4gICAgZXhwZWN0KHNwYW5FbGVtLnRleHRDb250ZW50KS50b0VxdWFsKCdcXFxcKDQyMFxcXFx0ZXh0eyBjbX09NC4yXFxcXHRleHR7IG1ldGVyc31cXFxcKScpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUksT0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQXVCLFNBQUFHLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEs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
|
package/lib/index.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
Object.defineProperty(exports, "mmlToLatex", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function get() {
|
|
10
|
-
return _mmlToLatex["default"];
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
Object.defineProperty(exports, "renderMath", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _renderMath["default"];
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "unWrapMath", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _normalization.unWrapMath;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "wrapMath", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function get() {
|
|
28
|
-
return _normalization.wrapMath;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
var _renderMath = _interopRequireDefault(require("./render-math"));
|
|
32
|
-
var _mmlToLatex = _interopRequireDefault(require("./mml-to-latex"));
|
|
33
|
-
var _normalization = require("./normalization");
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVuZGVyTWF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21tbFRvTGF0ZXgiLCJfbm9ybWFsaXphdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVuZGVyTWF0aCBmcm9tICcuL3JlbmRlci1tYXRoJztcbmltcG9ydCBtbWxUb0xhdGV4IGZyb20gJy4vbW1sLXRvLWxhdGV4JztcbmltcG9ydCB7IHdyYXBNYXRoLCB1bldyYXBNYXRoIH0gZnJvbSAnLi9ub3JtYWxpemF0aW9uJztcblxuZXhwb3J0IHsgcmVuZGVyTWF0aCwgd3JhcE1hdGgsIHVuV3JhcE1hdGgsIG1tbFRvTGF0ZXggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBIiwiaWdub3JlTGlzdCI6W119
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_renderMath","_interopRequireDefault","require","_mmlToLatex","_normalization"],"sources":["../src/index.js"],"sourcesContent":["import renderMath from './render-math';\nimport mmlToLatex from './mml-to-latex';\nimport { wrapMath, unWrapMath } from './normalization';\n\nexport { renderMath, wrapMath, unWrapMath, mmlToLatex };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA","ignoreList":[]}
|
package/lib/mathjax-script.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mathjax-script.js","names":[],"sources":["../src/mathjax-script.js"],"sourcesContent":[""],"mappings":"","ignoreList":[]}
|
package/lib/mml-to-latex.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _mathmlToLatex = require("@pie-framework/mathml-to-latex");
|
|
8
|
-
var _default = exports["default"] = function _default(mathml) {
|
|
9
|
-
return _mathmlToLatex.MathMLToLaTeX.convert(mathml);
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0aG1sVG9MYXRleCIsInJlcXVpcmUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtYXRobWwiLCJNYXRoTUxUb0xhVGVYIiwiY29udmVydCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tbWwtdG8tbGF0ZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aE1MVG9MYVRlWCB9IGZyb20gJ0BwaWUtZnJhbWV3b3JrL21hdGhtbC10by1sYXRleCc7XG5leHBvcnQgZGVmYXVsdCAobWF0aG1sKSA9PiBNYXRoTUxUb0xhVGVYLmNvbnZlcnQobWF0aG1sKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBQStELElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUNoRCxTQUFBRCxTQUFDRSxNQUFNO0VBQUEsT0FBS0MsNEJBQWEsQ0FBQ0MsT0FBTyxDQUFDRixNQUFNLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/mml-to-latex.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mml-to-latex.js","names":["_mathmlToLatex","require","_default","exports","mathml","MathMLToLaTeX","convert"],"sources":["../src/mml-to-latex.js"],"sourcesContent":["import { MathMLToLaTeX } from '@pie-framework/mathml-to-latex';\nexport default (mathml) => MathMLToLaTeX.convert(mathml);\n"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAA+D,IAAAC,QAAA,GAAAC,OAAA,cAChD,SAAAD,SAACE,MAAM;EAAA,OAAKC,4BAAa,CAACC,OAAO,CAACF,MAAM,CAAC;AAAA","ignoreList":[]}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
5
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
6
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _chtml = require("../chtml");
|
|
10
|
-
var _jsdom = require("jsdom");
|
|
11
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
12
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // import { CHTMLWrapper, instance } from 'mathjax-full/js/output/chtml/Wrapper';
|
|
14
|
-
jest.mock('mathjax-full/js/output/chtml/Wrapper', function () {
|
|
15
|
-
var instance = {
|
|
16
|
-
adaptor: {
|
|
17
|
-
document: {
|
|
18
|
-
createElement: jest.fn()
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
standardCHTMLnode: jest.fn()
|
|
22
|
-
};
|
|
23
|
-
return {
|
|
24
|
-
instance: instance,
|
|
25
|
-
CHTMLWrapper: /*#__PURE__*/(0, _createClass2["default"])(function CHTMLWrapper() {
|
|
26
|
-
(0, _classCallCheck2["default"])(this, CHTMLWrapper);
|
|
27
|
-
this.adaptor = {
|
|
28
|
-
document: {
|
|
29
|
-
createElement: jest.fn()
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
this.document = {};
|
|
33
|
-
// return instance;
|
|
34
|
-
})
|
|
35
|
-
};
|
|
36
|
-
});
|
|
37
|
-
var node = function node(kind, extras) {
|
|
38
|
-
return _objectSpread({
|
|
39
|
-
kind: kind,
|
|
40
|
-
childNodes: []
|
|
41
|
-
}, extras);
|
|
42
|
-
};
|
|
43
|
-
var textNode = function textNode(text) {
|
|
44
|
-
return node('text', {
|
|
45
|
-
text: text,
|
|
46
|
-
node: {
|
|
47
|
-
kind: 'text',
|
|
48
|
-
text: text
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
var mn = function mn(text) {
|
|
53
|
-
return node('mn', {
|
|
54
|
-
childNodes: [textNode(text)]
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
var mo = function mo(text) {
|
|
58
|
-
return node('mo', {
|
|
59
|
-
childNodes: [textNode(text)]
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
var mco = function mco(text) {
|
|
63
|
-
return _objectSpread(_objectSpread({}, mo(text)), {}, {
|
|
64
|
-
toCHTML: function toCHTML(n) {
|
|
65
|
-
var t = "mo:".concat(text);
|
|
66
|
-
n.textContent = t;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
var msrow = function msrow() {
|
|
71
|
-
for (var _len = arguments.length, childNodes = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
72
|
-
childNodes[_key] = arguments[_key];
|
|
73
|
-
}
|
|
74
|
-
return node('msrow', {
|
|
75
|
-
childNodes: childNodes
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
var mstack = function mstack() {
|
|
79
|
-
for (var _len2 = arguments.length, rows = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
80
|
-
rows[_key2] = arguments[_key2];
|
|
81
|
-
}
|
|
82
|
-
return node('mstack', {
|
|
83
|
-
childNodes: rows
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
var msline = function msline() {
|
|
87
|
-
return node('msline');
|
|
88
|
-
};
|
|
89
|
-
describe('getStackData', function () {
|
|
90
|
-
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) {
|
|
91
|
-
var input = _ref.input,
|
|
92
|
-
expected = _ref.expected;
|
|
93
|
-
var d = (0, _chtml.getStackData)(input);
|
|
94
|
-
// console.log('d:', d);
|
|
95
|
-
// console.log('e:', expected);
|
|
96
|
-
expect(_objectSpread({}, d)).toEqual(_objectSpread({}, expected));
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
describe('Row', function () {
|
|
100
|
-
describe('pad', function () {
|
|
101
|
-
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) {
|
|
102
|
-
var cols = _ref2.cols,
|
|
103
|
-
count = _ref2.count,
|
|
104
|
-
expected = _ref2.expected;
|
|
105
|
-
var r = new _chtml.Row(cols);
|
|
106
|
-
var p = r.pad(count, 'right');
|
|
107
|
-
expect(p).toEqual(expected);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
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) {
|
|
112
|
-
var label = _ref3.label,
|
|
113
|
-
tree = _ref3.tree;
|
|
114
|
-
var html;
|
|
115
|
-
beforeEach(function () {
|
|
116
|
-
var chtml = new _chtml.CHTMLmstack({}, {});
|
|
117
|
-
var dom = new _jsdom.JSDOM("<!DOCTYPE html><body></body>");
|
|
118
|
-
chtml.standardCHTMLnode = function (parent) {
|
|
119
|
-
return parent;
|
|
120
|
-
};
|
|
121
|
-
chtml.ce = dom.window.document.createElement.bind(dom.window.document);
|
|
122
|
-
chtml.childNodes = tree;
|
|
123
|
-
chtml.toCHTML(dom.window.document.body);
|
|
124
|
-
html = dom.window.document.body.innerHTML;
|
|
125
|
-
});
|
|
126
|
-
it(label, function () {
|
|
127
|
-
// Verify HTML is generated (not empty)
|
|
128
|
-
expect(html).toBeTruthy();
|
|
129
|
-
expect((0, _typeof2["default"])(html)).toBe('string');
|
|
130
|
-
// Verify it contains expected structure elements
|
|
131
|
-
expect(html.length).toBeGreaterThan(0);
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2h0bWwiLCJyZXF1aXJlIiwiX2pzZG9tIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImplc3QiLCJtb2NrIiwiaW5zdGFuY2UiLCJhZGFwdG9yIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZm4iLCJzdGFuZGFyZENIVE1Mbm9kZSIsIkNIVE1MV3JhcHBlciIsIl9jcmVhdGVDbGFzczIiLCJfY2xhc3NDYWxsQ2hlY2syIiwibm9kZSIsImtpbmQiLCJleHRyYXMiLCJjaGlsZE5vZGVzIiwidGV4dE5vZGUiLCJ0ZXh0IiwibW4iLCJtbyIsIm1jbyIsInRvQ0hUTUwiLCJuIiwiY29uY2F0IiwidGV4dENvbnRlbnQiLCJtc3JvdyIsIl9sZW4iLCJBcnJheSIsIl9rZXkiLCJtc3RhY2siLCJfbGVuMiIsInJvd3MiLCJfa2V5MiIsIm1zbGluZSIsImRlc2NyaWJlIiwiaXQiLCJlYWNoIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJSb3ciLCJMaW5lIiwiX3JlZiIsImlucHV0IiwiZXhwZWN0ZWQiLCJkIiwiZ2V0U3RhY2tEYXRhIiwiZXhwZWN0IiwidG9FcXVhbCIsIl9yZWYyIiwiY29scyIsImNvdW50IiwicCIsInBhZCIsIl9yZWYzIiwibGFiZWwiLCJ0cmVlIiwiaHRtbCIsImJlZm9yZUVhY2giLCJjaHRtbCIsIkNIVE1MbXN0YWNrIiwiZG9tIiwiSlNET00iLCJwYXJlbnQiLCJjZSIsIndpbmRvdyIsImJpbmQiLCJib2R5IiwiaW5uZXJIVE1MIiwidG9CZVRydXRoeSIsIl90eXBlb2YyIiwidG9CZSIsInRvQmVHcmVhdGVyVGhhbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc3RhY2svX190ZXN0c19fL2NodG1sLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U3RhY2tEYXRhLCBMaW5lLCBSb3csIENIVE1MbXN0YWNrIH0gZnJvbSAnLi4vY2h0bWwnO1xuLy8gaW1wb3J0IHsgQ0hUTUxXcmFwcGVyLCBpbnN0YW5jZSB9IGZyb20gJ21hdGhqYXgtZnVsbC9qcy9vdXRwdXQvY2h0bWwvV3JhcHBlcic7XG5pbXBvcnQgeyBKU0RPTSB9IGZyb20gJ2pzZG9tJztcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvb3V0cHV0L2NodG1sL1dyYXBwZXInLCAoKSA9PiB7XG4gIGNvbnN0IGluc3RhbmNlID0ge1xuICAgIGFkYXB0b3I6IHtcbiAgICAgIGRvY3VtZW50OiB7XG4gICAgICAgIGNyZWF0ZUVsZW1lbnQ6IGplc3QuZm4oKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzdGFuZGFyZENIVE1Mbm9kZTogamVzdC5mbigpLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgaW5zdGFuY2UsXG4gICAgQ0hUTUxXcmFwcGVyOiBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hZGFwdG9yID0geyBkb2N1bWVudDogeyBjcmVhdGVFbGVtZW50OiBqZXN0LmZuKCkgfSB9O1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0ge307XG4gICAgICAgIC8vIHJldHVybiBpbnN0YW5jZTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IG5vZGUgPSAoa2luZCwgZXh0cmFzKSA9PiAoeyBraW5kLCBjaGlsZE5vZGVzOiBbXSwgLi4uZXh0cmFzIH0pO1xuXG5jb25zdCB0ZXh0Tm9kZSA9ICh0ZXh0KSA9PiBub2RlKCd0ZXh0JywgeyB0ZXh0LCBub2RlOiB7IGtpbmQ6ICd0ZXh0JywgdGV4dCB9IH0pO1xuY29uc3QgbW4gPSAodGV4dCkgPT4gbm9kZSgnbW4nLCB7IGNoaWxkTm9kZXM6IFt0ZXh0Tm9kZSh0ZXh0KV0gfSk7XG5jb25zdCBtbyA9ICh0ZXh0KSA9PlxuICBub2RlKCdtbycsIHtcbiAgICBjaGlsZE5vZGVzOiBbdGV4dE5vZGUodGV4dCldLFxuICB9KTtcblxuY29uc3QgbWNvID0gKHRleHQpID0+ICh7XG4gIC4uLm1vKHRleHQpLFxuXG4gIHRvQ0hUTUw6IChuKSA9PiB7XG4gICAgY29uc3QgdCA9IGBtbzoke3RleHR9YDtcbiAgICBuLnRleHRDb250ZW50ID0gdDtcbiAgfSxcbn0pO1xuXG5jb25zdCBtc3JvdyA9ICguLi5jaGlsZE5vZGVzKSA9PiBub2RlKCdtc3JvdycsIHsgY2hpbGROb2RlcyB9KTtcbmNvbnN0IG1zdGFjayA9ICguLi5yb3dzKSA9PiBub2RlKCdtc3RhY2snLCB7IGNoaWxkTm9kZXM6IHJvd3MgfSk7XG5jb25zdCBtc2xpbmUgPSAoKSA9PiBub2RlKCdtc2xpbmUnKTtcbmRlc2NyaWJlKCdnZXRTdGFja0RhdGEnLCAoKSA9PiB7XG4gIGl0LmVhY2hgXG4gICAgaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHBlY3RlZFxuICAgICR7bXN0YWNrKG1zcm93KG1vKCcrJyksIG1uKCcxMTEnKSkpfSAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IFJvdyhbJzEnLCAnMScsICcxJ10sIG1vKCcrJykpXX1cbiAgICAke21zdGFjayhtc3JvdyhtbignMTExJykpKX0gICAgICAgICAgICAgICAgICAgICAgICAgICB8ICR7W25ldyBSb3coWycxJywgJzEnLCAnMSddKV19XG4gICAgJHttc3RhY2sobXNyb3cobW4oJzEnKSwgbW4oJzEnKSkpfSAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgUm93KFsnMScsICcxJ10pXX1cbiAgICAke21zdGFjayhtc3JvdyhtbignMScpKSwgbW4oJzEnKSl9ICAgICAgICAgICAgICAgICAgICB8ICR7W25ldyBSb3coWycxJ10pLCBuZXcgUm93KFsnMSddKV19XG4gICAgJHttc3RhY2sobXNsaW5lKCkpfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgTGluZSgpXX1cbiAgICAke21zdGFjayhtbignMScpLCBtc2xpbmUoKSwgbXNyb3cobW8oJysnKSwgbW4oJzEnKSkpfSB8ICR7W25ldyBSb3coWycxJ10pLCBuZXcgTGluZSgpLCBuZXcgUm93KFsnMSddLCBtbygnKycpKV19XG4gICAgJHttc3RhY2sobW4oJzEnKSwgbW4oJzEnKSl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgUm93KFsnMSddKSwgbmV3IFJvdyhbJzEnXSldfVxuICBgKCckaW5wdXQgPT4gJGV4cGVjdGVkJywgKHsgaW5wdXQsIGV4cGVjdGVkIH0pID0+IHtcbiAgICBjb25zdCBkID0gZ2V0U3RhY2tEYXRhKGlucHV0KTtcbiAgICAvLyBjb25zb2xlLmxvZygnZDonLCBkKTtcbiAgICAvLyBjb25zb2xlLmxvZygnZTonLCBleHBlY3RlZCk7XG4gICAgZXhwZWN0KHsgLi4uZCB9KS50b0VxdWFsKHsgLi4uZXhwZWN0ZWQgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdSb3cnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdwYWQnLCAoKSA9PiB7XG4gICAgaXQuZWFjaGBcbiAgICAgIGNvbHMgICB8IGNvdW50IHwgZXhwZWN0ZWRcbiAgICAgICR7W119ICB8ICR7MH0gIHwgJHtbXX1cbiAgICAgICR7WzFdfSB8ICR7MX0gIHwgJHtbMV19XG4gICAgICAke1sxXX0gfCAkezJ9ICB8ICR7WydfX3BhZF9fJywgMV19XG4gICAgICAke1sxXX0gfCAkezN9ICB8ICR7WydfX3BhZF9fJywgJ19fcGFkX18nLCAxXX1cbiAgICBgKCdwYWRzIHRvIHRoZSByaWdodCcsICh7IGNvbHMsIGNvdW50LCBleHBlY3RlZCB9KSA9PiB7XG4gICAgICBjb25zdCByID0gbmV3IFJvdyhjb2xzKTtcbiAgICAgIGNvbnN0IHAgPSByLnBhZChjb3VudCwgJ3JpZ2h0Jyk7XG4gICAgICBleHBlY3QocCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlLmVhY2hgXG4gIGxhYmVsICAgICAgICAgICAgICAgICAgICAgICB8IHRyZWVcbiAgJHsnb25lIHJvdyd9ICAgICAgICAgICAgICAgIHwgJHtbbXNyb3cobW4oJzEnKSldfVxuICAkeydpbXBsaWNpdCBvbmUgcm93J30gICAgICAgfCAke1ttbignMScpXX1cbiAgJHsndHdvIHJvd3MnfSAgICAgICAgICAgICAgIHwgJHtbbXNyb3cobW4oJzEnKSksIG1zcm93KG1uKCcyJykpXX1cbiAgJHsndHdvIHJvd3Mgd2l0aCBvcGVyYXRvcid9IHwgJHtbbXNyb3cobW4oJzEnKSksIG1zcm93KG1jbygnKycpLCBtbignMicpKV19XG5gKCdjaHRtbCcsICh7IGxhYmVsLCB0cmVlIH0pID0+IHtcbiAgbGV0IGh0bWw7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29uc3QgY2h0bWwgPSBuZXcgQ0hUTUxtc3RhY2soe30sIHt9KTtcbiAgICBjb25zdCBkb20gPSBuZXcgSlNET00oYDwhRE9DVFlQRSBodG1sPjxib2R5PjwvYm9keT5gKTtcbiAgICBjaHRtbC5zdGFuZGFyZENIVE1Mbm9kZSA9IChwYXJlbnQpID0+IHBhcmVudDtcbiAgICBjaHRtbC5jZSA9IGRvbS53aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudC5iaW5kKGRvbS53aW5kb3cuZG9jdW1lbnQpO1xuICAgIGNodG1sLmNoaWxkTm9kZXMgPSB0cmVlO1xuICAgIGNodG1sLnRvQ0hUTUwoZG9tLndpbmRvdy5kb2N1bWVudC5ib2R5KTtcbiAgICBodG1sID0gZG9tLndpbmRvdy5kb2N1bWVudC5ib2R5LmlubmVySFRNTDtcbiAgfSk7XG5cbiAgaXQobGFiZWwsICgpID0+IHtcbiAgICAvLyBWZXJpZnkgSFRNTCBpcyBnZW5lcmF0ZWQgKG5vdCBlbXB0eSlcbiAgICBleHBlY3QoaHRtbCkudG9CZVRydXRoeSgpO1xuICAgIGV4cGVjdCh0eXBlb2YgaHRtbCkudG9CZSgnc3RyaW5nJyk7XG4gICAgLy8gVmVyaWZ5IGl0IGNvbnRhaW5zIGV4cGVjdGVkIHN0cnVjdHVyZSBlbGVtZW50c1xuICAgIGV4cGVjdChodG1sLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUE4QixJQUFBRSxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBO0FBQUEsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQs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
|