@pie-lib/math-rendering-accessible 3.36.0-mui-update.0 → 4.1.0-next.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 +8 -105
- package/lib/__tests__/mml-to-latex.test.js +15 -0
- package/lib/__tests__/normalization.test.js +47 -0
- package/lib/__tests__/render-math.test.js +79 -0
- package/lib/index.js +1 -1
- package/lib/mathjax-script.js +1 -1
- package/lib/mml-to-latex.js +1 -1
- package/lib/mstack/__tests__/chtml.test.js +134 -0
- package/lib/mstack/chtml.js +1 -1
- package/lib/mstack/index.js +1 -1
- package/lib/mstack/mml.js +1 -1
- package/lib/normalization.js +1 -1
- package/lib/render-math.js +16 -6
- package/lib/render-math.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/render-math.test.js +3 -3
- package/src/mstack/__tests__/chtml.test.js +5 -1
- package/src/render-math.js +16 -5
- package/src/mstack/__tests__/__snapshots__/chtml.test.js.snap +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
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
|
-
# [
|
|
6
|
+
# [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
7
|
|
|
8
8
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
## [3.22.2-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.36.0-mui-update.0...@pie-lib/math-rendering-accessible@3.22.2-next.0) (2026-01-19)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
17
17
|
|
|
@@ -19,176 +19,79 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
# [3.34.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.33.0-mui-update.0...@pie-lib/math-rendering-accessible@3.34.0-mui-update.0) (2025-12-17)
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
# [3.33.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.32.0-mui-update.0...@pie-lib/math-rendering-accessible@3.33.0-mui-update.0) (2025-12-17)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# [3.32.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.31.0-mui-update.0...@pie-lib/math-rendering-accessible@3.32.0-mui-update.0) (2025-12-11)
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
# [3.31.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.30.0-mui-update.0...@pie-lib/math-rendering-accessible@3.31.0-mui-update.0) (2025-12-02)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
### Features
|
|
50
|
-
|
|
51
|
-
* sync latest changes from dev ([c936e9c](https://github.com/pie-framework/pie-lib/commit/c936e9c7f9e095e7d9b9805ac2bf72bd271e05f1))
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
22
|
## [3.22.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.18.1...@pie-lib/math-rendering-accessible@3.22.1) (2025-10-22)
|
|
58
23
|
|
|
59
24
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
60
25
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
26
|
# [3.22.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.21.0...@pie-lib/math-rendering-accessible@3.22.0) (2025-10-16)
|
|
66
27
|
|
|
67
28
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
68
29
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
30
|
# [3.21.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.18.0...@pie-lib/math-rendering-accessible@3.21.0) (2025-10-16)
|
|
74
31
|
|
|
75
32
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
76
33
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
34
|
# [3.20.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.18.0...@pie-lib/math-rendering-accessible@3.20.0) (2025-10-16)
|
|
82
35
|
|
|
83
36
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
84
37
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
38
|
# [3.19.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.18.0...@pie-lib/math-rendering-accessible@3.19.0) (2025-10-16)
|
|
90
39
|
|
|
91
40
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
92
41
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
42
|
## [3.18.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.18.0...@pie-lib/math-rendering-accessible@3.18.1) (2025-10-14)
|
|
98
43
|
|
|
99
44
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
100
45
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
46
|
# 3.18.0 (2025-09-25)
|
|
106
47
|
|
|
107
|
-
|
|
108
48
|
### Bug Fixes
|
|
109
49
|
|
|
110
|
-
|
|
111
|
-
|
|
50
|
+
- fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
|
|
112
51
|
|
|
113
52
|
### Features
|
|
114
53
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
54
|
+
- split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
|
|
120
55
|
|
|
121
56
|
# [3.17.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.16.0...@pie-lib/math-rendering-accessible@3.17.0) (2025-09-18)
|
|
122
57
|
|
|
123
58
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
124
59
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
60
|
# [3.16.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.15.0...@pie-lib/math-rendering-accessible@3.16.0) (2025-09-18)
|
|
130
61
|
|
|
131
62
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
132
63
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
64
|
# 3.15.0 (2025-09-18)
|
|
138
65
|
|
|
139
|
-
|
|
140
66
|
### Bug Fixes
|
|
141
67
|
|
|
142
|
-
|
|
143
|
-
|
|
68
|
+
- fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
|
|
144
69
|
|
|
145
70
|
### Features
|
|
146
71
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
72
|
+
- split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
|
|
152
73
|
|
|
153
74
|
# [3.14.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.13.0...@pie-lib/math-rendering-accessible@3.14.0) (2025-09-17)
|
|
154
75
|
|
|
155
76
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
156
77
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
78
|
# [3.13.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.12.0...@pie-lib/math-rendering-accessible@3.13.0) (2025-09-17)
|
|
162
79
|
|
|
163
80
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
164
81
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
82
|
# [3.12.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering-accessible@3.11.1...@pie-lib/math-rendering-accessible@3.12.0) (2025-09-17)
|
|
170
83
|
|
|
171
84
|
**Note:** Version bump only for package @pie-lib/math-rendering-accessible
|
|
172
85
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
86
|
## 3.11.1 (2025-08-11)
|
|
178
87
|
|
|
179
|
-
|
|
180
88
|
### Bug Fixes
|
|
181
89
|
|
|
182
|
-
|
|
183
|
-
|
|
90
|
+
- fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
|
|
184
91
|
|
|
185
92
|
### Features
|
|
186
93
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
94
|
+
- split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
|
|
192
95
|
|
|
193
96
|
# 3.11.0 (2025-08-07)
|
|
194
97
|
|
|
@@ -0,0 +1,15 @@
|
|
|
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==
|
|
@@ -0,0 +1,47 @@
|
|
|
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=
|
|
@@ -0,0 +1,79 @@
|
|
|
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
CHANGED
|
@@ -31,4 +31,4 @@ Object.defineProperty(exports, "wrapMath", {
|
|
|
31
31
|
var _renderMath = _interopRequireDefault(require("./render-math"));
|
|
32
32
|
var _mmlToLatex = _interopRequireDefault(require("./mml-to-latex"));
|
|
33
33
|
var _normalization = require("./normalization");
|
|
34
|
-
//# sourceMappingURL=
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVuZGVyTWF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21tbFRvTGF0ZXgiLCJfbm9ybWFsaXphdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVuZGVyTWF0aCBmcm9tICcuL3JlbmRlci1tYXRoJztcbmltcG9ydCBtbWxUb0xhdGV4IGZyb20gJy4vbW1sLXRvLWxhdGV4JztcbmltcG9ydCB7IHdyYXBNYXRoLCB1bldyYXBNYXRoIH0gZnJvbSAnLi9ub3JtYWxpemF0aW9uJztcblxuZXhwb3J0IHsgcmVuZGVyTWF0aCwgd3JhcE1hdGgsIHVuV3JhcE1hdGgsIG1tbFRvTGF0ZXggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBIiwiaWdub3JlTGlzdCI6W119
|
package/lib/mathjax-script.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL21hdGhqYXgtc2NyaXB0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/mml-to-latex.js
CHANGED
|
@@ -8,4 +8,4 @@ var _mathmlToLatex = require("@pie-framework/mathml-to-latex");
|
|
|
8
8
|
var _default = exports["default"] = function _default(mathml) {
|
|
9
9
|
return _mathmlToLatex.MathMLToLaTeX.convert(mathml);
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0aG1sVG9MYXRleCIsInJlcXVpcmUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtYXRobWwiLCJNYXRoTUxUb0xhVGVYIiwiY29udmVydCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tbWwtdG8tbGF0ZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aE1MVG9MYVRlWCB9IGZyb20gJ0BwaWUtZnJhbWV3b3JrL21hdGhtbC10by1sYXRleCc7XG5leHBvcnQgZGVmYXVsdCAobWF0aG1sKSA9PiBNYXRoTUxUb0xhVGVYLmNvbnZlcnQobWF0aG1sKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBQStELElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUNoRCxTQUFBRCxTQUFDRSxNQUFNO0VBQUEsT0FBS0MsNEJBQWEsQ0FBQ0MsT0FBTyxDQUFDRixNQUFNLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,134 @@
|
|
|
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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
|
package/lib/mstack/chtml.js
CHANGED
|
@@ -227,4 +227,4 @@ CHTMLmstack.styles = {
|
|
|
227
227
|
'font-family': 'MJXZERO, MJXTEX !important'
|
|
228
228
|
}
|
|
229
229
|
};
|
|
230
|
-
//# sourceMappingURL=chtml.js.map
|
|
230
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfV3JhcHBlciIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwicmVkdWNlVGV4dCIsImFjYyIsIm4iLCJub2RlIiwia2luZCIsInRleHQiLCJMaW5lIiwiZXhwb3J0cyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiZ2V0IiwiUm93IiwiY29sdW1ucyIsIm9wZXJhdG9yIiwidmFsdWUiLCJwYWQiLCJjb3VudCIsImRpcmVjdGlvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIkVycm9yIiwiZGlmZiIsInBhZGRpbmciLCJfIiwidGltZXMiLCJtYXAiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibWF0aE5vZGVUb0NoYXJBcnJheSIsIm1uIiwiY2hpbGROb2RlcyIsInJlZHVjZSIsInNwbGl0IiwidG9Db2x1bW5BcnJheSIsImNoaWxkIiwiY29uc29sZSIsIndhcm4iLCJ0b0NIVE1MIiwicm93U3RhY2siLCJmIiwiZmlyc3QiLCJub2RlcyIsInRhaWwiLCJmbGF0dGVuIiwiZ2V0U3RhY2tEYXRhIiwibXN0YWNrIiwiY29tcGFjdCIsIkNIVE1MbXN0YWNrIiwiX0NIVE1MV3JhcHBlciIsImZhY3RvcnkiLCJfdGhpcyIsInBhcmVudCIsImNlIiwiYWRhcHRvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJpbmQiLCJfaW5oZXJpdHMyIiwiX3RoaXMyIiwiY2h0bWwiLCJzdGFuZGFyZENIVE1Mbm9kZSIsInN0YWNrRGF0YSIsIm1heENvbHMiLCJyIiwidGFibGUiLCJhcHBlbmRDaGlsZCIsImZvckVhY2giLCJyb3ciLCJ0ciIsInRkIiwic2V0QXR0cmlidXRlIiwidGV4dENvbnRlbnQiLCJjb2xzIiwiYyIsIkNIVE1MV3JhcHBlciIsInN0eWxlcyIsImJvcmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svY2h0bWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0hUTUxXcmFwcGVyIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL291dHB1dC9jaHRtbC9XcmFwcGVyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IHJlZHVjZVRleHQgPSAoYWNjLCBuKSA9PiB7XG4gIGlmIChuLm5vZGUgJiYgbi5ub2RlLmtpbmQgPT09ICd0ZXh0Jykge1xuICAgIGFjYyArPSBuLm5vZGUudGV4dDtcbiAgfVxuICByZXR1cm4gYWNjO1xufTtcblxuZXhwb3J0IGNsYXNzIExpbmUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmtpbmQgPSAnbGluZSc7XG4gIH1cblxuICBnZXQgY29sdW1ucygpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvdyB7XG4gIGNvbnN0cnVjdG9yKGNvbHVtbnMsIG9wZXJhdG9yKSB7XG4gICAgdGhpcy5raW5kID0gJ3Jvdyc7XG4gICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cblxuICBwYWQoY291bnQsIGRpcmVjdGlvbiA9ICdyaWdodCcpIHtcbiAgICBpZiAoY291bnQgPCB0aGlzLmNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZGlmZiA9IGNvdW50IC0gdGhpcy5jb2x1bW5zLmxlbmd0aDtcblxuICAgIGNvbnN0IHBhZGRpbmcgPSBfLnRpbWVzKGRpZmYpLm1hcCgoKSA9PiAnX19wYWRfXycpO1xuICAgIHJldHVybiBkaXJlY3Rpb24gPT09ICdyaWdodCcgPyBbLi4ucGFkZGluZywgLi4udGhpcy5jb2x1bW5zXSA6IFsuLi50aGlzLmNvbHVtbnMsIC4uLnBhZGRpbmddO1xuICB9XG59XG5cbmNvbnN0IG1hdGhOb2RlVG9DaGFyQXJyYXkgPSAobW4pID0+IHtcbiAgY29uc3QgdGV4dCA9IG1uLmNoaWxkTm9kZXMucmVkdWNlKHJlZHVjZVRleHQsICcnKTtcbiAgcmV0dXJuIHRleHQuc3BsaXQoJycpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0IGNoaWxkIGEgY29sdW1uIGVudHJ5XG4gKiBAcGFyYW0geyp9IGNoaWxkXG4gKiBAcmV0dXJuIGFuIGFycmF5IG9mIGNvbHVtbiBjb250ZW50XG4gKi9cbmNvbnN0IHRvQ29sdW1uQXJyYXkgPSAoY2hpbGQpID0+IHtcbiAgaWYgKCFjaGlsZCB8fCAhY2hpbGQua2luZCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbXNyb3cnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtc3JvdyBpbiBtc3Jvdz8nKTtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbW8nKSB7XG4gICAgLy8gV2UgYXJlIGdvaW5nIHRvIHRyZWF0IHRoaXMgb3BlcmF0b3IgYXMgYSB0ZXh0IGFycmF5LlxuICAgIC8vIEl0J3MgcHJvYmFibHkgZ29pbmcgdG8gYmUgYSBkZWNpbWFsIHBvaW50XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLndhcm4oJ21vIHRoYXQgaXMgbm90IDFzdCBub2RlIGluIG1zcm93PycpO1xuICAgIHJldHVybiBtYXRoTm9kZVRvQ2hhckFycmF5KGNoaWxkKTtcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ21vIG11c3QgYmUgZmlyc3QgY2hpbGQgb2YgbXNyb3cnKTtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbW4nKSB7XG4gICAgcmV0dXJuIG1hdGhOb2RlVG9DaGFyQXJyYXkoY2hpbGQpO1xuICB9XG5cbiAgaWYgKGNoaWxkLnRvQ0hUTUwpIHtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cbn07XG5cbi8qKlxuICogIGNvbnZlcnQgbXN0YWNrIGNodG1sIGNoaWxkTm9kZXMgaW50byBhIFJvd1xuICogIEBwYXJhbSBjaGlsZCBjaHRtbCBjaGlsZCBub2RlIG9mIG1zdGFja1xuICogIEByZXR1cm4gUm93IHwgTGluZVxuICovXG5jb25zdCByb3dTdGFjayA9IChjaGlsZCkgPT4ge1xuICBpZiAoIWNoaWxkIHx8ICFjaGlsZC5raW5kKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoaWxkLmtpbmQgPT09ICdtc3JvdycpIHtcbiAgICBpZiAoIWNoaWxkLmNoaWxkTm9kZXMgfHwgY2hpbGQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBuZXcgUm93KFtdKTtcbiAgICB9XG4gICAgY29uc3QgZiA9IF8uZmlyc3QoY2hpbGQuY2hpbGROb2Rlcyk7XG4gICAgY29uc3Qgbm9kZXMgPSBmICYmIGYua2luZCA9PT0gJ21vJyA/IF8udGFpbChjaGlsZC5jaGlsZE5vZGVzKSA6IGNoaWxkLmNoaWxkTm9kZXM7XG5cbiAgICBjb25zdCBjb2x1bW5zID0gXy5mbGF0dGVuKG5vZGVzLm1hcCh0b0NvbHVtbkFycmF5KSk7XG5cbiAgICByZXR1cm4gbmV3IFJvdyhjb2x1bW5zLCBmLmtpbmQgPT09ICdtbycgPyBmIDogdW5kZWZpbmVkKTtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbW4nKSB7XG4gICAgY29uc3QgY29sdW1ucyA9IG1hdGhOb2RlVG9DaGFyQXJyYXkoY2hpbGQpO1xuICAgIHJldHVybiBuZXcgUm93KGNvbHVtbnMsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21vJykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKCdtbyBvbiBpdHMgb3duIHJvdz8nKTtcbiAgICByZXR1cm4gbmV3IFJvdyhbXSwgY2hpbGQpO1xuICB9XG5cbiAgaWYgKGNoaWxkLmtpbmQgPT09ICdtc2xpbmUnKSB7XG4gICAgcmV0dXJuIG5ldyBMaW5lKCk7XG4gIH1cblxuICBpZiAoY2hpbGQudG9DSFRNTCkge1xuICAgIHJldHVybiBuZXcgUm93KFtjaGlsZF0pO1xuICB9XG59O1xuXG4vKiogY29udmVydCBNYXRoSmF4IGNodG1sIHRyZWUgdG8gUm93W11cbiAqIEBwYXJhbSBtc3RhY2sgdGhlIHJvb3Qgb2YgdGhlIG1hdGhqYXggY2h0bWwgdHJlZVxuICogQHJldHVybiBSb3dbXVxuICovXG5cbmV4cG9ydCBjb25zdCBnZXRTdGFja0RhdGEgPSAobXN0YWNrKSA9PiB7XG4gIGlmICghbXN0YWNrIHx8ICFtc3RhY2suY2hpbGROb2Rlcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gXy5jb21wYWN0KG1zdGFjay5jaGlsZE5vZGVzLm1hcChyb3dTdGFjaykpO1xufTtcblxuZXhwb3J0IGNsYXNzIENIVE1MbXN0YWNrIGV4dGVuZHMgQ0hUTUxXcmFwcGVyIHtcbiAgY29uc3RydWN0b3IoZmFjdG9yeSwgbm9kZSwgcGFyZW50ID0gbnVsbCkge1xuICAgIHN1cGVyKGZhY3RvcnksIG5vZGUsIHBhcmVudCk7XG5cbiAgICB0aGlzLmNlID0gdGhpcy5hZGFwdG9yLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQuYmluZCh0aGlzLmFkYXB0b3IuZG9jdW1lbnQpO1xuICB9XG5cbiAgdG9DSFRNTChwYXJlbnQpIHtcbiAgICBjb25zdCBjaHRtbCA9IHRoaXMuc3RhbmRhcmRDSFRNTG5vZGUocGFyZW50KTtcblxuICAgIGNvbnN0IHN0YWNrRGF0YSA9IGdldFN0YWNrRGF0YSh0aGlzKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdzdGFja0RhdGEnLCBzdGFja0RhdGEpO1xuICAgIGNvbnN0IG1heENvbHMgPSBzdGFja0RhdGEucmVkdWNlKChhY2MsIHIpID0+IHtcbiAgICAgIGlmIChyICYmIHIuY29sdW1ucy5sZW5ndGggPiBhY2MpIHtcbiAgICAgICAgYWNjID0gci5jb2x1bW5zLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgMCk7XG5cbiAgICBjb25zdCB0YWJsZSA9IHRoaXMuY2UoJ3RhYmxlJyk7XG4gICAgY2h0bWwuYXBwZW5kQ2hpbGQodGFibGUpO1xuXG4gICAgc3RhY2tEYXRhLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgY29uc3QgdHIgPSB0aGlzLmNlKCd0cicpO1xuICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpO1xuXG4gICAgICBpZiAocm93LmtpbmQgPT09ICdyb3cnKSB7XG4gICAgICAgIGNvbnN0IHRkID0gdGhpcy5jZSgndGQnKTtcbiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpO1xuICAgICAgICBpZiAocm93Lm9wZXJhdG9yICYmIHJvdy5vcGVyYXRvci50b0NIVE1MKSB7XG4gICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdjbGFzcycsICdpbm5lcicpO1xuICAgICAgICAgIHJvdy5vcGVyYXRvci50b0NIVE1MKHRkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0ZC50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWxpZ24gcmlnaHQgZm9yIG5vdzpcbiAgICAgICAgY29uc3QgY29scyA9IHJvdy5wYWQobWF4Q29scywgJ3JpZ2h0Jyk7XG4gICAgICAgIGNvbHMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGNvbnN0IHQgPSB0aGlzLmNlKCd0ZCcpO1xuICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHQpO1xuICAgICAgICAgIGlmIChjID09PSAnX19wYWRfXycpIHtcbiAgICAgICAgICAgIHQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdC50ZXh0Q29udGVudCA9IGM7XG4gICAgICAgICAgfSBlbHNlIGlmIChjLmtpbmQgPT09ICdub25lJykge1xuICAgICAgICAgICAgdC50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYy50b0NIVE1MKSB7XG4gICAgICAgICAgICB0LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaW5uZXInKTtcbiAgICAgICAgICAgIGMudG9DSFRNTCh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChyb3cua2luZCA9PT0gJ2xpbmUnKSB7XG4gICAgICAgIGNvbnN0IHRkID0gdGhpcy5jZSgndGQnKTtcbiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpO1xuICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nLCBtYXhDb2xzICsgMSk7XG4gICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnbWp4LWxpbmUnKTtcbiAgICAgICAgdGQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuQ0hUTUxtc3RhY2suc3R5bGVzID0ge1xuICAnbWp4LW1zdGFjayA+IHRhYmxlJzoge1xuICAgICdsaW5lLWhlaWdodCc6ICdpbml0aWFsJyxcbiAgICBib3JkZXI6ICdzb2xpZCAwcHggcmVkJyxcbiAgICAnYm9yZGVyLXNwYWNpbmcnOiAnMGVtJyxcbiAgICAnYm9yZGVyLWNvbGxhcHNlJzogJ3NlcGFyYXRlJyxcbiAgfSxcbiAgJ21qeC1tc3RhY2sgPiB0YWJsZSA+IHRyJzoge1xuICAgICdsaW5lLWhlaWdodCc6ICdpbml0aWFsJyxcbiAgfSxcbiAgJ21qeC1tc3RhY2sgPiB0YWJsZSA+IHRyID4gdGQnOiB7XG4gICAgLy8gcGFkZGluZzogJzEuMnJlbScsXG4gICAgYm9yZGVyOiAnc29saWQgMHB4IGJsdWUnLFxuICAgICdmb250LWZhbWlseSc6ICdzYW5zLXNlcmlmJyxcbiAgICAnbGluZS1oZWlnaHQnOiAnaW5pdGlhbCcsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0ciA+IHRkLmlubmVyJzoge1xuICAgICdmb250LWZhbWlseSc6ICdpbmhlcml0JyxcbiAgfSxcbiAgJ21qeC1tc3RhY2sgPiB0YWJsZSA+IHRyID4gLm1qeC1saW5lJzoge1xuICAgIHBhZGRpbmc6IDAsXG4gICAgJ2JvcmRlci10b3AnOiAnc29saWQgMXB4IGJsYWNrJyxcbiAgfSxcbiAgJy5URVgtQSc6IHtcbiAgICAnZm9udC1mYW1pbHknOiAnTUpYWkVSTywgTUpYVEVYICFpbXBvcnRhbnQnLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUF1QixTQUFBRyxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENBQUFRLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBRSxDQUFBO0FBQUEsU0FBQUcsMEJBQUEsY0FBQUwsQ0FBQSxJQUFBVSxPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FBQSxDQUFBQyxJQUFBLENBQUFQLE9BQUEsQ0FBQUMsU0FBQSxDQUFBRyxPQUFBLGlDQUFBVixDQUFBLGFBQUFLLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFMLENBQUE7QUFFdkIsSUFBTWMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLEdBQUcsRUFBRUMsQ0FBQyxFQUFLO0VBQzdCLElBQUlBLENBQUMsQ0FBQ0MsSUFBSSxJQUFJRCxDQUFDLENBQUNDLElBQUksQ0FBQ0MsSUFBSSxLQUFLLE1BQU0sRUFBRTtJQUNwQ0gsR0FBRyxJQUFJQyxDQUFDLENBQUNDLElBQUksQ0FBQ0UsSUFBSTtFQUNwQjtFQUNBLE9BQU9KLEdBQUc7QUFDWixDQUFDO0FBQUMsSUFFV0ssSUFBSSxHQUFBQyxPQUFBLENBQUFELElBQUE7RUFDZixTQUFBQSxLQUFBLEVBQWM7SUFBQSxJQUFBRSxnQkFBQSxtQkFBQUYsSUFBQTtJQUNaLElBQUksQ0FBQ0YsSUFBSSxHQUFHLE1BQU07RUFDcEI7RUFBQyxXQUFBSyxhQUFBLGFBQUFILElBQUE7SUFBQUksR0FBQTtJQUFBQyxHQUFBLEVBRUQsU0FBQUEsSUFBQSxFQUFjO01BQ1osT0FBTyxFQUFFO0lBQ1g7RUFBQztBQUFBO0FBQUEsSUFHVUMsR0FBRyxHQUFBTCxPQUFBLENBQUFLLEdBQUE7RUFDZCxTQUFBQSxJQUFZQyxPQUFPLEVBQUVDLFFBQVEsRUFBRTtJQUFBLElBQUFOLGdCQUFBLG1CQUFBSSxHQUFBO0lBQzdCLElBQUksQ0FBQ1IsSUFBSSxHQUFHLEtBQUs7SUFDakIsSUFBSSxDQUFDVSxRQUFRLEdBQUdBLFFBQVE7SUFDeEIsSUFBSSxDQUFDRCxPQUFPLEdBQUdBLE9BQU87RUFDeEI7RUFBQyxXQUFBSixhQUFBLGFBQUFHLEdBQUE7SUFBQUYsR0FBQTtJQUFBSyxLQUFBLEVBRUQsU0FBQUMsR0FBR0EsQ0FBQ0MsS0FBSyxFQUF1QjtNQUFBLElBQXJCQyxTQUFTLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLE9BQU87TUFDNUIsSUFBSUYsS0FBSyxHQUFHLElBQUksQ0FBQ0osT0FBTyxDQUFDTyxNQUFNLEVBQUU7UUFDL0IsTUFBTSxJQUFJRSxLQUFLLENBQUMsSUFBSSxDQUFDO01BQ3ZCO01BRUEsSUFBTUMsSUFBSSxHQUFHTixLQUFLLEdBQUcsSUFBSSxDQUFDSixPQUFPLENBQUNPLE1BQU07TUFFeEMsSUFBTUksT0FBTyxHQUFHQyxrQkFBQyxDQUFDQyxLQUFLLENBQUNILElBQUksQ0FBQyxDQUFDSSxHQUFHLENBQUM7UUFBQSxPQUFNLFNBQVM7TUFBQSxFQUFDO01BQ2xELE9BQU9ULFNBQVMsS0FBSyxPQUFPLE1BQUFVLE1BQUEsS0FBQUMsbUJBQUEsYUFBT0wsT0FBTyxPQUFBSyxtQkFBQSxhQUFLLElBQUksQ0FBQ2hCLE9BQU8sUUFBQWUsTUFBQSxLQUFBQyxtQkFBQSxhQUFRLElBQUksQ0FBQ2hCLE9BQU8sT0FBQWdCLG1CQUFBLGFBQUtMLE9BQU8sRUFBQztJQUM5RjtFQUFDO0FBQUE7QUFHSCxJQUFNTSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxFQUFFLEVBQUs7RUFDbEMsSUFBTTFCLElBQUksR0FBRzBCLEVBQUUsQ0FBQ0MsVUFBVSxDQUFDQyxNQUFNLENBQUNqQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0VBQ2pELE9BQU9LLElBQUksQ0FBQzZCLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDdkIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxLQUFLLEVBQUs7RUFDL0IsSUFBSSxDQUFDQSxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDaEMsSUFBSSxFQUFFO0lBQ3pCLE9BQU8sRUFBRTtFQUNYO0VBRUEsSUFBSWdDLEtBQUssQ0FBQ2hDLElBQUksS0FBSyxPQUFPLEVBQUU7SUFDMUIsTUFBTSxJQUFJa0IsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDO0VBRUEsSUFBSWMsS0FBSyxDQUFDaEMsSUFBSSxLQUFLLElBQUksRUFBRTtJQUN2QjtJQUNBO0lBQ0E7SUFDQWlDLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLG1DQUFtQyxDQUFDO0lBQ2pELE9BQU9SLG1CQUFtQixDQUFDTSxLQUFLLENBQUM7SUFDakM7RUFDRjtFQUVBLElBQUlBLEtBQUssQ0FBQ2hDLElBQUksS0FBSyxJQUFJLEVBQUU7SUFDdkIsT0FBTzBCLG1CQUFtQixDQUFDTSxLQUFLLENBQUM7RUFDbkM7RUFFQSxJQUFJQSxLQUFLLENBQUNHLE9BQU8sRUFBRTtJQUNqQixPQUFPSCxLQUFLO0VBQ2Q7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNSSxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUosS0FBSyxFQUFLO0VBQzFCLElBQUksQ0FBQ0EsS0FBSyxJQUFJLENBQUNBLEtBQUssQ0FBQ2hDLElBQUksRUFBRTtJQUN6QjtFQUNGO0VBRUEsSUFBSWdDLEtBQUssQ0FBQ2hDLElBQUksS0FBSyxPQUFPLEVBQUU7SUFDMUIsSUFBSSxDQUFDZ0MsS0FBSyxDQUFDSixVQUFVLElBQUlJLEtBQUssQ0FBQ0osVUFBVSxDQUFDWixNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ3RELE9BQU8sSUFBSVIsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNwQjtJQUNBLElBQU02QixDQUFDLEdBQUdoQixrQkFBQyxDQUFDaUIsS0FBSyxDQUFDTixLQUFLLENBQUNKLFVBQVUsQ0FBQztJQUNuQyxJQUFNVyxLQUFLLEdBQUdGLENBQUMsSUFBSUEsQ0FBQyxDQUFDckMsSUFBSSxLQUFLLElBQUksR0FBR3FCLGtCQUFDLENBQUNtQixJQUFJLENBQUNSLEtBQUssQ0FBQ0osVUFBVSxDQUFDLEdBQUdJLEtBQUssQ0FBQ0osVUFBVTtJQUVoRixJQUFNbkIsT0FBTyxHQUFHWSxrQkFBQyxDQUFDb0IsT0FBTyxDQUFDRixLQUFLLENBQUNoQixHQUFHLENBQUNRLGFBQWEsQ0FBQyxDQUFDO0lBRW5ELE9BQU8sSUFBSXZCLEdBQUcsQ0FBQ0MsT0FBTyxFQUFFNEIsQ0FBQyxDQUFDckMsSUFBSSxLQUFLLElBQUksR0FBR3FDLENBQUMsR0FBR3BCLFNBQVMsQ0FBQztFQUMxRDtFQUVBLElBQUllLEtBQUssQ0FBQ2hDLElBQUksS0FBSyxJQUFJLEVBQUU7SUFDdkIsSUFBTVMsUUFBTyxHQUFHaUIsbUJBQW1CLENBQUNNLEtBQUssQ0FBQztJQUMxQyxPQUFPLElBQUl4QixHQUFHLENBQUNDLFFBQU8sRUFBRVEsU0FBUyxDQUFDO0VBQ3BDO0VBRUEsSUFBSWUsS0FBSyxDQUFDaEMsSUFBSSxLQUFLLElBQUksRUFBRTtJQUN2QjtJQUNBaUMsT0FBTyxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbEMsT0FBTyxJQUFJMUIsR0FBRyxDQUFDLEVBQUUsRUFBRXdCLEtBQUssQ0FBQztFQUMzQjtFQUVBLElBQUlBLEtBQUssQ0FBQ2hDLElBQUksS0FBSyxRQUFRLEVBQUU7SUFDM0IsT0FBTyxJQUFJRSxJQUFJLENBQUMsQ0FBQztFQUNuQjtFQUVBLElBQUk4QixLQUFLLENBQUNHLE9BQU8sRUFBRTtJQUNqQixPQUFPLElBQUkzQixHQUFHLENBQUMsQ0FBQ3dCLEtBQUssQ0FBQyxDQUFDO0VBQ3pCO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFTyxJQUFNVSxZQUFZLEdBQUF2QyxPQUFBLENBQUF1QyxZQUFBLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSUMsTUFBTSxFQUFLO0VBQ3RDLElBQUksQ0FBQ0EsTUFBTSxJQUFJLENBQUNBLE1BQU0sQ0FBQ2YsVUFBVSxFQUFFO0lBQ2pDLE9BQU8sRUFBRTtFQUNYO0VBQ0EsT0FBT1Asa0JBQUMsQ0FBQ3VCLE9BQU8sQ0FBQ0QsTUFBTSxDQUFDZixVQUFVLENBQUNMLEdBQUcsQ0FBQ2EsUUFBUSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUFDLElBRVdTLFdBQVcsR0FBQTFDLE9BQUEsQ0FBQTBDLFdBQUEsMEJBQUFDLGFBQUE7RUFDdEIsU0FBQUQsWUFBWUUsT0FBTyxFQUFFaEQsSUFBSSxFQUFpQjtJQUFBLElBQUFpRCxLQUFBO0lBQUEsSUFBZkMsTUFBTSxHQUFBbEMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsSUFBSTtJQUFBLElBQUFYLGdCQUFBLG1CQUFBeUMsV0FBQTtJQUN0Q0csS0FBQSxHQUFBbkUsVUFBQSxPQUFBZ0UsV0FBQSxHQUFNRSxPQUFPLEVBQUVoRCxJQUFJLEVBQUVrRCxNQUFNO0lBRTNCRCxLQUFBLENBQUtFLEVBQUUsR0FBR0YsS0FBQSxDQUFLRyxPQUFPLENBQUNDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDQyxJQUFJLENBQUNOLEtBQUEsQ0FBS0csT0FBTyxDQUFDQyxRQUFRLENBQUM7SUFBQyxPQUFBSixLQUFBO0VBQzVFO0VBQUMsSUFBQU8sVUFBQSxhQUFBVixXQUFBLEVBQUFDLGFBQUE7RUFBQSxXQUFBekMsYUFBQSxhQUFBd0MsV0FBQTtJQUFBdkMsR0FBQTtJQUFBSyxLQUFBLEVBRUQsU0FBQXdCLE9BQU9BLENBQUNjLE1BQU0sRUFBRTtNQUFBLElBQUFPLE1BQUE7TUFDZCxJQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ1QsTUFBTSxDQUFDO01BRTVDLElBQU1VLFNBQVMsR0FBR2pCLFlBQVksQ0FBQyxJQUFJLENBQUM7O01BRXBDO01BQ0EsSUFBTWtCLE9BQU8sR0FBR0QsU0FBUyxDQUFDOUIsTUFBTSxDQUFDLFVBQUNoQyxHQUFHLEVBQUVnRSxDQUFDLEVBQUs7UUFDM0MsSUFBSUEsQ0FBQyxJQUFJQSxDQUFDLENBQUNwRCxPQUFPLENBQUNPLE1BQU0sR0FBR25CLEdBQUcsRUFBRTtVQUMvQkEsR0FBRyxHQUFHZ0UsQ0FBQyxDQUFDcEQsT0FBTyxDQUFDTyxNQUFNO1FBQ3hCO1FBQ0EsT0FBT25CLEdBQUc7TUFDWixDQUFDLEVBQUUsQ0FBQyxDQUFDO01BRUwsSUFBTWlFLEtBQUssR0FBRyxJQUFJLENBQUNaLEVBQUUsQ0FBQyxPQUFPLENBQUM7TUFDOUJPLEtBQUssQ0FBQ00sV0FBVyxDQUFDRCxLQUFLLENBQUM7TUFFeEJILFNBQVMsQ0FBQ0ssT0FBTyxDQUFDLFVBQUNDLEdBQUcsRUFBSztRQUN6QixJQUFNQyxFQUFFLEdBQUdWLE1BQUksQ0FBQ04sRUFBRSxDQUFDLElBQUksQ0FBQztRQUN4QlksS0FBSyxDQUFDQyxXQUFXLENBQUNHLEVBQUUsQ0FBQztRQUVyQixJQUFJRCxHQUFHLENBQUNqRSxJQUFJLEtBQUssS0FBSyxFQUFFO1VBQ3RCLElBQU1tRSxFQUFFLEdBQUdYLE1BQUksQ0FBQ04sRUFBRSxDQUFDLElBQUksQ0FBQztVQUN4QmdCLEVBQUUsQ0FBQ0gsV0FBVyxDQUFDSSxFQUFFLENBQUM7VUFDbEIsSUFBSUYsR0FBRyxDQUFDdkQsUUFBUSxJQUFJdUQsR0FBRyxDQUFDdkQsUUFBUSxDQUFDeUIsT0FBTyxFQUFFO1lBQ3hDZ0MsRUFBRSxDQUFDQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUNqQ0gsR0FBRyxDQUFDdkQsUUFBUSxDQUFDeUIsT0FBTyxDQUFDZ0MsRUFBRSxDQUFDO1VBQzFCLENBQUMsTUFBTTtZQUNMQSxFQUFFLENBQUNFLFdBQVcsR0FBRyxFQUFFO1VBQ3JCOztVQUVBO1VBQ0EsSUFBTUMsSUFBSSxHQUFHTCxHQUFHLENBQUNyRCxHQUFHLENBQUNnRCxPQUFPLEVBQUUsT0FBTyxDQUFDO1VBQ3RDVSxJQUFJLENBQUNOLE9BQU8sQ0FBQyxVQUFDTyxDQUFDLEVBQUs7WUFDbEIsSUFBTXpGLENBQUMsR0FBRzBFLE1BQUksQ0FBQ04sRUFBRSxDQUFDLElBQUksQ0FBQztZQUN2QmdCLEVBQUUsQ0FBQ0gsV0FBVyxDQUFDakYsQ0FBQyxDQUFDO1lBQ2pCLElBQUl5RixDQUFDLEtBQUssU0FBUyxFQUFFO2NBQ25CekYsQ0FBQyxDQUFDdUYsV0FBVyxHQUFHLEVBQUU7WUFDcEIsQ0FBQyxNQUFNLElBQUksT0FBT0UsQ0FBQyxLQUFLLFFBQVEsRUFBRTtjQUNoQ3pGLENBQUMsQ0FBQ3VGLFdBQVcsR0FBR0UsQ0FBQztZQUNuQixDQUFDLE1BQU0sSUFBSUEsQ0FBQyxDQUFDdkUsSUFBSSxLQUFLLE1BQU0sRUFBRTtjQUM1QmxCLENBQUMsQ0FBQ3VGLFdBQVcsR0FBRyxFQUFFO1lBQ3BCLENBQUMsTUFBTSxJQUFJRSxDQUFDLENBQUNwQyxPQUFPLEVBQUU7Y0FDcEJyRCxDQUFDLENBQUNzRixZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztjQUNoQ0csQ0FBQyxDQUFDcEMsT0FBTyxDQUFDckQsQ0FBQyxDQUFDO1lBQ2Q7VUFDRixDQUFDLENBQUM7UUFDSixDQUFDLE1BQU0sSUFBSW1GLEdBQUcsQ0FBQ2pFLElBQUksS0FBSyxNQUFNLEVBQUU7VUFDOUIsSUFBTW1FLEdBQUUsR0FBR1gsTUFBSSxDQUFDTixFQUFFLENBQUMsSUFBSSxDQUFDO1VBQ3hCZ0IsRUFBRSxDQUFDSCxXQUFXLENBQUNJLEdBQUUsQ0FBQztVQUNsQkEsR0FBRSxDQUFDQyxZQUFZLENBQUMsU0FBUyxFQUFFUixPQUFPLEdBQUcsQ0FBQyxDQUFDO1VBQ3ZDTyxHQUFFLENBQUNDLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1VBQ3BDRCxHQUFFLENBQUNFLFdBQVcsR0FBRyxFQUFFO1FBQ3JCO01BQ0YsQ0FBQyxDQUFDO0lBQ0o7RUFBQztBQUFBLEVBN0Q4QkcscUJBQVk7QUErRDdDM0IsV0FBVyxDQUFDNEIsTUFBTSxHQUFHO0VBQ25CLG9CQUFvQixFQUFFO0lBQ3BCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCQyxNQUFNLEVBQUUsZUFBZTtJQUN2QixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUM7RUFDRCx5QkFBeUIsRUFBRTtJQUN6QixhQUFhLEVBQUU7RUFDakIsQ0FBQztFQUNELDhCQUE4QixFQUFFO0lBQzlCO0lBQ0FBLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsYUFBYSxFQUFFLFlBQVk7SUFDM0IsYUFBYSxFQUFFO0VBQ2pCLENBQUM7RUFDRCxvQ0FBb0MsRUFBRTtJQUNwQyxhQUFhLEVBQUU7RUFDakIsQ0FBQztFQUNELHFDQUFxQyxFQUFFO0lBQ3JDdEQsT0FBTyxFQUFFLENBQUM7SUFDVixZQUFZLEVBQUU7RUFDaEIsQ0FBQztFQUNELFFBQVEsRUFBRTtJQUNSLGFBQWEsRUFBRTtFQUNqQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/mstack/index.js
CHANGED
|
@@ -15,4 +15,4 @@ var mmlNodes = exports.mmlNodes = {
|
|
|
15
15
|
msrow: _mml.MmlMsrow,
|
|
16
16
|
none: _mml.MmlNone
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2h0bWwiLCJyZXF1aXJlIiwiX21tbCIsImNodG1sTm9kZXMiLCJleHBvcnRzIiwibXN0YWNrIiwiQ0hUTUxtc3RhY2siLCJtbWxOb2RlcyIsIk1tbE1zdGFjayIsIm1zbGluZSIsIk1tbE1zbGluZSIsIm1zcm93IiwiTW1sTXNyb3ciLCJub25lIiwiTW1sTm9uZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0hUTUxtc3RhY2sgfSBmcm9tICcuL2NodG1sJztcbmltcG9ydCB7IE1tbE5vbmUsIE1tbE1zbGluZSwgTW1sTXN0YWNrLCBNbWxNc3JvdyB9IGZyb20gJy4vbW1sJztcblxuZXhwb3J0IGNvbnN0IGNodG1sTm9kZXMgPSB7XG4gIG1zdGFjazogQ0hUTUxtc3RhY2ssXG59O1xuXG5leHBvcnQgY29uc3QgbW1sTm9kZXMgPSB7XG4gIG1zdGFjazogTW1sTXN0YWNrLFxuICBtc2xpbmU6IE1tbE1zbGluZSxcbiAgbXNyb3c6IE1tbE1zcm93LFxuICBub25lOiBNbWxOb25lLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBRCxPQUFBO0FBRU8sSUFBTUUsVUFBVSxHQUFBQyxPQUFBLENBQUFELFVBQUEsR0FBRztFQUN4QkUsTUFBTSxFQUFFQztBQUNWLENBQUM7QUFFTSxJQUFNQyxRQUFRLEdBQUFILE9BQUEsQ0FBQUcsUUFBQSxHQUFHO0VBQ3RCRixNQUFNLEVBQUVHLGNBQVM7RUFDakJDLE1BQU0sRUFBRUMsY0FBUztFQUNqQkMsS0FBSyxFQUFFQyxhQUFRO0VBQ2ZDLElBQUksRUFBRUM7QUFDUixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
package/lib/mstack/mml.js
CHANGED
|
@@ -65,4 +65,4 @@ var MmlMsline = exports.MmlMsline = /*#__PURE__*/function (_AbstractMmlNode4) {
|
|
|
65
65
|
}
|
|
66
66
|
}]);
|
|
67
67
|
}(_MmlNode.AbstractMmlNode);
|
|
68
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTW1sTm9kZSIsInJlcXVpcmUiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIk1tbE5vbmUiLCJleHBvcnRzIiwiX0Fic3RyYWN0TW1sTm9kZSIsIl9jbGFzc0NhbGxDaGVjazIiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldCIsIkFic3RyYWN0TW1sTm9kZSIsIk1tbE1zdGFjayIsIl9BYnN0cmFjdE1tbE5vZGUyIiwiTW1sTXNyb3ciLCJfQWJzdHJhY3RNbWxOb2RlMyIsIk1tbE1zbGluZSIsIl9BYnN0cmFjdE1tbE5vZGU0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21zdGFjay9tbWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RNbWxOb2RlIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvcmUvTW1sVHJlZS9NbWxOb2RlJztcblxuZXhwb3J0IGNsYXNzIE1tbE5vbmUgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ25vbmUnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNbWxNc3RhY2sgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ21zdGFjayc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1tbE1zcm93IGV4dGVuZHMgQWJzdHJhY3RNbWxOb2RlIHtcbiAgZ2V0IGtpbmQoKSB7XG4gICAgcmV0dXJuICdtc3Jvdyc7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBNbWxNc2xpbmUgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ21zbGluZSc7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQXVFLFNBQUFDLFdBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFdBQUFELENBQUEsT0FBQUUsZ0JBQUEsYUFBQUYsQ0FBQSxPQUFBRywyQkFBQSxhQUFBSixDQUFBLEVBQUFLLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTixDQUFBLEVBQUFDLENBQUEsWUFBQUMsZ0JBQUEsYUFBQUgsQ0FBQSxFQUFBUSxXQUFBLElBQUFQLENBQUEsQ0FBQVEsS0FBQSxDQUFBVCxDQUFBLEVBQUFFLENBQUE7QUFBQSxTQUFBRywwQkFBQSxjQUFBTCxDQUFBLElBQUFVLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFDLElBQUEsQ0FBQVAsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUFWLENBQUEsYUFBQUsseUJBQUEsWUFBQUEsMEJBQUEsYUFBQUwsQ0FBQTtBQUFBLElBRTFEYyxPQUFPLEdBQUFDLE9BQUEsQ0FBQUQsT0FBQSwwQkFBQUUsZ0JBQUE7RUFBQSxTQUFBRixRQUFBO0lBQUEsSUFBQUcsZ0JBQUEsbUJBQUFILE9BQUE7SUFBQSxPQUFBZixVQUFBLE9BQUFlLE9BQUEsRUFBQUksU0FBQTtFQUFBO0VBQUEsSUFBQUMsVUFBQSxhQUFBTCxPQUFBLEVBQUFFLGdCQUFBO0VBQUEsV0FBQUksYUFBQSxhQUFBTixPQUFBO0lBQUFPLEdBQUE7SUFBQUMsR0FBQSxFQUNsQixTQUFBQSxJQUFBLEVBQVc7TUFDVCxPQUFPLE1BQU07SUFDZjtFQUFDO0FBQUEsRUFIMEJDLHdCQUFlO0FBQUEsSUFNL0JDLFNBQVMsR0FBQVQsT0FBQSxDQUFBUyxTQUFBLDBCQUFBQyxpQkFBQTtFQUFBLFNBQUFELFVBQUE7SUFBQSxJQUFBUCxnQkFBQSxtQkFBQU8sU0FBQTtJQUFBLE9BQUF6QixVQUFBLE9BQUF5QixTQUFBLEVBQUFOLFNBQUE7RUFBQTtFQUFBLElBQUFDLFVBQUEsYUFBQUssU0FBQSxFQUFBQyxpQkFBQTtFQUFBLFdBQUFMLGFBQUEsYUFBQUksU0FBQTtJQUFBSCxHQUFBO0lBQUFDLEdBQUEsRUFDcEIsU0FBQUEsSUFBQSxFQUFXO01BQ1QsT0FBTyxRQUFRO0lBQ2pCO0VBQUM7QUFBQSxFQUg0QkMsd0JBQWU7QUFBQSxJQU1qQ0csUUFBUSxHQUFBWCxPQUFBLENBQUFXLFFBQUEsMEJBQUFDLGlCQUFBO0VBQUEsU0FBQUQsU0FBQTtJQUFBLElBQUFULGdCQUFBLG1CQUFBUyxRQUFBO0lBQUEsT0FBQTNCLFVBQUEsT0FBQTJCLFFBQUEsRUFBQVIsU0FBQTtFQUFBO0VBQUEsSUFBQUMsVUFBQSxhQUFBTyxRQUFBLEVBQUFDLGlCQUFBO0VBQUEsV0FBQVAsYUFBQSxhQUFBTSxRQUFBO0lBQUFMLEdBQUE7SUFBQUMsR0FBQSxFQUNuQixTQUFBQSxJQUFBLEVBQVc7TUFDVCxPQUFPLE9BQU87SUFDaEI7RUFBQztBQUFBLEVBSDJCQyx3QkFBZTtBQUFBLElBS2hDSyxTQUFTLEdBQUFiLE9BQUEsQ0FBQWEsU0FBQSwwQkFBQUMsaUJBQUE7RUFBQSxTQUFBRCxVQUFBO0lBQUEsSUFBQVgsZ0JBQUEsbUJBQUFXLFNBQUE7SUFBQSxPQUFBN0IsVUFBQSxPQUFBNkIsU0FBQSxFQUFBVixTQUFBO0VBQUE7RUFBQSxJQUFBQyxVQUFBLGFBQUFTLFNBQUEsRUFBQUMsaUJBQUE7RUFBQSxXQUFBVCxhQUFBLGFBQUFRLFNBQUE7SUFBQVAsR0FBQTtJQUFBQyxHQUFBLEVBQ3BCLFNBQUFBLElBQUEsRUFBVztNQUNULE9BQU8sUUFBUTtJQUNqQjtFQUFDO0FBQUEsRUFINEJDLHdCQUFlIiwiaWdub3JlTGlzdCI6W119
|
package/lib/normalization.js
CHANGED
|
@@ -65,4 +65,4 @@ var unWrapMath = exports.unWrapMath = function unWrapMath(content) {
|
|
|
65
65
|
wrapType: BracketTypes.ROUND_BRACKETS
|
|
66
66
|
};
|
|
67
67
|
};
|
|
68
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCcmFja2V0VHlwZXMiLCJleHBvcnRzIiwiUk9VTkRfQlJBQ0tFVFMiLCJTUVVBUkVfQlJBQ0tFVFMiLCJET0xMQVIiLCJET1VCTEVfRE9MTEFSIiwiUEFJUlMiLCJfZGVmaW5lUHJvcGVydHkyIiwid3JhcE1hdGgiLCJjb250ZW50Iiwid3JhcFR5cGUiLCJjb25zb2xlIiwid2FybiIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsInN0YXJ0IiwiZW5kIiwiY29uY2F0IiwidW5XcmFwTWF0aCIsImRpc3BsYXlTdHlsZUluZGV4IiwiaW5kZXhPZiIsInJlcGxhY2UiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwidW53cmFwcGVkIiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJyYWNrZXRUeXBlcyA9IHt9O1xuXG5CcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMgPSAncm91bmRfYnJhY2tldHMnO1xuQnJhY2tldFR5cGVzLlNRVUFSRV9CUkFDS0VUUyA9ICdzcXVhcmVfYnJhY2tldHMnO1xuQnJhY2tldFR5cGVzLkRPTExBUiA9ICdkb2xsYXInO1xuQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVIgPSAnZG91YmxlX2RvbGxhcic7XG5cbmNvbnN0IFBBSVJTID0ge1xuICBbQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTXTogWydcXFxcKCcsICdcXFxcKSddLFxuICBbQnJhY2tldFR5cGVzLlNRVUFSRV9CUkFDS0VUU106IFsnXFxcXFsnLCAnXFxcXF0nXSxcbiAgW0JyYWNrZXRUeXBlcy5ET0xMQVJdOiBbJyQnLCAnJCddLFxuICBbQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVJdOiBbJyQkJywgJyQkJ10sXG59O1xuXG5leHBvcnQgY29uc3Qgd3JhcE1hdGggPSAoY29udGVudCwgd3JhcFR5cGUpID0+IHtcbiAgaWYgKHdyYXBUeXBlID09PSBCcmFja2V0VHlwZXMuU1FVQVJFX0JSQUNLRVRTKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcWy4uLlxcXFxdIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB3cmFwVHlwZSA9IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUztcbiAgfVxuICBpZiAod3JhcFR5cGUgPT09IEJyYWNrZXRUeXBlcy5ET1VCTEVfRE9MTEFSKSB7XG4gICAgY29uc29sZS53YXJuKCckJC4uLiQkIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB3cmFwVHlwZSA9IEJyYWNrZXRUeXBlcy5ET0xMQVI7XG4gIH1cblxuICBjb25zdCBbc3RhcnQsIGVuZF0gPSBQQUlSU1t3cmFwVHlwZV0gfHwgUEFJUlNbQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTXTtcbiAgcmV0dXJuIGAke3N0YXJ0fSR7Y29udGVudH0ke2VuZH1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuV3JhcE1hdGggPSAoY29udGVudCkgPT4ge1xuICBjb25zdCBkaXNwbGF5U3R5bGVJbmRleCA9IGNvbnRlbnQuaW5kZXhPZignXFxcXGRpc3BsYXlzdHlsZScpO1xuICBpZiAoZGlzcGxheVN0eWxlSW5kZXggIT09IC0xKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcZGlzcGxheXN0eWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSByZW1vdmluZycpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgY29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgnXFxcXGRpc3BsYXlzdHlsZScsICcnKS50cmltKCk7XG4gIH1cblxuICBpZiAoY29udGVudC5zdGFydHNXaXRoKCckJCcpICYmIGNvbnRlbnQuZW5kc1dpdGgoJyQkJykpIHtcbiAgICBjb25zb2xlLndhcm4oJyQkIHN5bnRheCBpcyBub3QgeWV0IHN1cHBvcnRlZCcpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgcmV0dXJuIHtcbiAgICAgIHVud3JhcHBlZDogY29udGVudC5zdWJzdHJpbmcoMiwgY29udGVudC5sZW5ndGggLSAyKSxcbiAgICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuRE9MTEFSLFxuICAgIH07XG4gIH1cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnJCcpICYmIGNvbnRlbnQuZW5kc1dpdGgoJyQnKSkge1xuICAgIHJldHVybiB7XG4gICAgICB1bndyYXBwZWQ6IGNvbnRlbnQuc3Vic3RyaW5nKDEsIGNvbnRlbnQubGVuZ3RoIC0gMSksXG4gICAgICB3cmFwVHlwZTogQnJhY2tldFR5cGVzLkRPTExBUixcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnXFxcXFsnKSAmJiBjb250ZW50LmVuZHNXaXRoKCdcXFxcXScpKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcWy4uXFxcXF0gc3ludGF4IGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICByZXR1cm4ge1xuICAgICAgdW53cmFwcGVkOiBjb250ZW50LnN1YnN0cmluZygyLCBjb250ZW50Lmxlbmd0aCAtIDIpLFxuICAgICAgd3JhcFR5cGU6IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnXFxcXCgnKSAmJiBjb250ZW50LmVuZHNXaXRoKCdcXFxcKScpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVud3JhcHBlZDogY29udGVudC5zdWJzdHJpbmcoMiwgY29udGVudC5sZW5ndGggLSAyKSxcbiAgICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdW53cmFwcGVkOiBjb250ZW50LFxuICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBTyxJQUFNQSxZQUFZLEdBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFHLENBQUMsQ0FBQztBQUU5QkEsWUFBWSxDQUFDRSxjQUFjLEdBQUcsZ0JBQWdCO0FBQzlDRixZQUFZLENBQUNHLGVBQWUsR0FBRyxpQkFBaUI7QUFDaERILFlBQVksQ0FBQ0ksTUFBTSxHQUFHLFFBQVE7QUFDOUJKLFlBQVksQ0FBQ0ssYUFBYSxHQUFHLGVBQWU7QUFFNUMsSUFBTUMsS0FBSyxPQUFBQyxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFDUlAsWUFBWSxDQUFDRSxjQUFjLEVBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQzVDRixZQUFZLENBQUNHLGVBQWUsRUFBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FDN0NILFlBQVksQ0FBQ0ksTUFBTSxFQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUNoQ0osWUFBWSxDQUFDSyxhQUFhLEVBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQzNDO0FBRU0sSUFBTUcsUUFBUSxHQUFBUCxPQUFBLENBQUFPLFFBQUEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxPQUFPLEVBQUVDLFFBQVEsRUFBSztFQUM3QyxJQUFJQSxRQUFRLEtBQUtWLFlBQVksQ0FBQ0csZUFBZSxFQUFFO0lBQzdDUSxPQUFPLENBQUNDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7SUFDaERGLFFBQVEsR0FBR1YsWUFBWSxDQUFDRSxjQUFjO0VBQ3hDO0VBQ0EsSUFBSVEsUUFBUSxLQUFLVixZQUFZLENBQUNLLGFBQWEsRUFBRTtJQUMzQ00sT0FBTyxDQUFDQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0lBQzlDRixRQUFRLEdBQUdWLFlBQVksQ0FBQ0ksTUFBTTtFQUNoQztFQUVBLElBQUFTLElBQUEsR0FBcUJQLEtBQUssQ0FBQ0ksUUFBUSxDQUFDLElBQUlKLEtBQUssQ0FBQ04sWUFBWSxDQUFDRSxjQUFjLENBQUM7SUFBQVksS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7SUFBbkVHLEtBQUssR0FBQUYsS0FBQTtJQUFFRyxHQUFHLEdBQUFILEtBQUE7RUFDakIsVUFBQUksTUFBQSxDQUFVRixLQUFLLEVBQUFFLE1BQUEsQ0FBR1QsT0FBTyxFQUFBUyxNQUFBLENBQUdELEdBQUc7QUFDakMsQ0FBQztBQUVNLElBQU1FLFVBQVUsR0FBQWxCLE9BQUEsQ0FBQWtCLFVBQUEsR0FBRyxTQUFiQSxVQUFVQSxDQUFJVixPQUFPLEVBQUs7RUFDckMsSUFBTVcsaUJBQWlCLEdBQUdYLE9BQU8sQ0FBQ1ksT0FBTyxDQUFDLGdCQUFnQixDQUFDO0VBQzNELElBQUlELGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO0lBQzVCVCxPQUFPLENBQUNDLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLENBQUM7SUFDNURILE9BQU8sR0FBR0EsT0FBTyxDQUFDYSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ3hEO0VBRUEsSUFBSWQsT0FBTyxDQUFDZSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUlmLE9BQU8sQ0FBQ2dCLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN0RGQsT0FBTyxDQUFDQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELE9BQU87TUFDTGMsU0FBUyxFQUFFakIsT0FBTyxDQUFDa0IsU0FBUyxDQUFDLENBQUMsRUFBRWxCLE9BQU8sQ0FBQ21CLE1BQU0sR0FBRyxDQUFDLENBQUM7TUFDbkRsQixRQUFRLEVBQUVWLFlBQVksQ0FBQ0k7SUFDekIsQ0FBQztFQUNIO0VBQ0EsSUFBSUssT0FBTyxDQUFDZSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUlmLE9BQU8sQ0FBQ2dCLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNwRCxPQUFPO01BQ0xDLFNBQVMsRUFBRWpCLE9BQU8sQ0FBQ2tCLFNBQVMsQ0FBQyxDQUFDLEVBQUVsQixPQUFPLENBQUNtQixNQUFNLEdBQUcsQ0FBQyxDQUFDO01BQ25EbEIsUUFBUSxFQUFFVixZQUFZLENBQUNJO0lBQ3pCLENBQUM7RUFDSDtFQUVBLElBQUlLLE9BQU8sQ0FBQ2UsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJZixPQUFPLENBQUNnQixRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDeERkLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxPQUFPO01BQ0xjLFNBQVMsRUFBRWpCLE9BQU8sQ0FBQ2tCLFNBQVMsQ0FBQyxDQUFDLEVBQUVsQixPQUFPLENBQUNtQixNQUFNLEdBQUcsQ0FBQyxDQUFDO01BQ25EbEIsUUFBUSxFQUFFVixZQUFZLENBQUNFO0lBQ3pCLENBQUM7RUFDSDtFQUVBLElBQUlPLE9BQU8sQ0FBQ2UsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJZixPQUFPLENBQUNnQixRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDeEQsT0FBTztNQUNMQyxTQUFTLEVBQUVqQixPQUFPLENBQUNrQixTQUFTLENBQUMsQ0FBQyxFQUFFbEIsT0FBTyxDQUFDbUIsTUFBTSxHQUFHLENBQUMsQ0FBQztNQUNuRGxCLFFBQVEsRUFBRVYsWUFBWSxDQUFDRTtJQUN6QixDQUFDO0VBQ0g7RUFFQSxPQUFPO0lBQ0x3QixTQUFTLEVBQUVqQixPQUFPO0lBQ2xCQyxRQUFRLEVBQUVWLFlBQVksQ0FBQ0U7RUFDekIsQ0FBQztBQUNILENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/render-math.js
CHANGED
|
@@ -9,6 +9,8 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
9
9
|
var _normalization = require("./normalization");
|
|
10
10
|
var _SerializedMmlVisitor = require("mathjax-full/js/core/MmlTree/SerializedMmlVisitor");
|
|
11
11
|
var _TexError = _interopRequireDefault(require("mathjax-full/js/input/tex/TexError"));
|
|
12
|
+
/* global MathJax */
|
|
13
|
+
|
|
12
14
|
var visitor = new _SerializedMmlVisitor.SerializedMmlVisitor();
|
|
13
15
|
var toMMl = function toMMl(node) {
|
|
14
16
|
return visitor.visitTree(node);
|
|
@@ -150,6 +152,7 @@ var renderContentWithMathJax = function renderContentWithMathJax(executeOn) {
|
|
|
150
152
|
|
|
151
153
|
// If the original input was a string, return the parsed MathML
|
|
152
154
|
} catch (e) {
|
|
155
|
+
// eslint-disable-next-line no-console
|
|
153
156
|
console.error('Error post-processing MathJax typesetting:', e.toString());
|
|
154
157
|
}
|
|
155
158
|
|
|
@@ -157,7 +160,7 @@ var renderContentWithMathJax = function renderContentWithMathJax(executeOn) {
|
|
|
157
160
|
mathJaxInstance.startup.document.clear();
|
|
158
161
|
})["catch"](function (error) {
|
|
159
162
|
// If there was an internal error, put the message into the output instead
|
|
160
|
-
|
|
163
|
+
// eslint-disable-next-line no-console
|
|
161
164
|
console.error('Error in typesetting with MathJax:', error);
|
|
162
165
|
});
|
|
163
166
|
}
|
|
@@ -176,7 +179,7 @@ var convertMathJax2ToMathJax3 = function convertMathJax2ToMathJax3() {
|
|
|
176
179
|
if (required.match(/[^_a-zA-Z0-9]/) || required === '') {
|
|
177
180
|
throw new _TexError["default"]('BadPackageName', 'Argument for %1 is not a valid package name', name);
|
|
178
181
|
}
|
|
179
|
-
if (
|
|
182
|
+
if (Object.prototype.hasOwnProperty.call(requireMap, required)) {
|
|
180
183
|
required = requireMap[required];
|
|
181
184
|
}
|
|
182
185
|
RequireLoad(parser, required);
|
|
@@ -203,7 +206,7 @@ var convertMathJax2ToMathJax3 = function convertMathJax2ToMathJax3() {
|
|
|
203
206
|
} else if (typeof args === 'function') {
|
|
204
207
|
return args;
|
|
205
208
|
}
|
|
206
|
-
throw Error(
|
|
209
|
+
throw Error('Can\'t make callback from given data');
|
|
207
210
|
};
|
|
208
211
|
|
|
209
212
|
//
|
|
@@ -226,16 +229,20 @@ var convertMathJax2ToMathJax3 = function convertMathJax2ToMathJax3() {
|
|
|
226
229
|
},
|
|
227
230
|
Register: {
|
|
228
231
|
MessageHook: function MessageHook() {
|
|
232
|
+
// eslint-disable-next-line no-console
|
|
229
233
|
console.log('MessageHooks are not supported in version 3');
|
|
230
234
|
},
|
|
231
235
|
StartupHook: function StartupHook() {
|
|
236
|
+
// eslint-disable-next-line no-console
|
|
232
237
|
console.log('StartupHooks are not supported in version 3');
|
|
233
238
|
},
|
|
234
239
|
LoadHook: function LoadHook() {
|
|
240
|
+
// eslint-disable-next-line no-console
|
|
235
241
|
console.log('LoadHooks are not supported in version 3');
|
|
236
242
|
}
|
|
237
243
|
},
|
|
238
244
|
Config: function Config() {
|
|
245
|
+
// eslint-disable-next-line no-console
|
|
239
246
|
console.log('MathJax configurations should be converted for version 3');
|
|
240
247
|
}
|
|
241
248
|
};
|
|
@@ -300,6 +307,7 @@ var initializeMathJax = exports.initializeMathJax = function initializeMathJax(c
|
|
|
300
307
|
var globalObj = getGlobal();
|
|
301
308
|
globalObj.instance = MathJax;
|
|
302
309
|
window.mathjaxLoadedComplete = true;
|
|
310
|
+
// eslint-disable-next-line no-console
|
|
303
311
|
console.log('MathJax has initialised!', new Date().toString());
|
|
304
312
|
|
|
305
313
|
// in this file, initializeMathJax is called with a callback that has to be executed when MathJax was loaded
|
|
@@ -366,7 +374,7 @@ var initializeMathJax = exports.initializeMathJax = function initializeMathJax(c
|
|
|
366
374
|
});
|
|
367
375
|
});
|
|
368
376
|
};
|
|
369
|
-
var renderMath = function renderMath(el
|
|
377
|
+
var renderMath = function renderMath(el) {
|
|
370
378
|
var usedForMmlOutput = typeof el === 'string';
|
|
371
379
|
var executeOn = document.body;
|
|
372
380
|
if (!usedForMmlOutput) {
|
|
@@ -384,7 +392,8 @@ var renderMath = function renderMath(el, renderOpts) {
|
|
|
384
392
|
window.mathjaxLoadedComplete = true;
|
|
385
393
|
renderContentsWithMathJax(el);
|
|
386
394
|
})["catch"](function (error) {
|
|
387
|
-
|
|
395
|
+
// eslint-disable-next-line no-console
|
|
396
|
+
console.error('Error in initializing MathJax:', error);
|
|
388
397
|
});
|
|
389
398
|
}
|
|
390
399
|
} else {
|
|
@@ -404,6 +413,7 @@ var renderMath = function renderMath(el, renderOpts) {
|
|
|
404
413
|
var parsedMathMl = mathMl.replaceAll('\n', '');
|
|
405
414
|
return parsedMathMl;
|
|
406
415
|
} catch (error) {
|
|
416
|
+
// eslint-disable-next-line no-console
|
|
407
417
|
console.error('Error rendering math:', error.message);
|
|
408
418
|
}
|
|
409
419
|
return el;
|
|
@@ -422,4 +432,4 @@ var renderMath = function renderMath(el, renderOpts) {
|
|
|
422
432
|
};
|
|
423
433
|
})();
|
|
424
434
|
var _default = exports["default"] = renderMath;
|
|
425
|
-
//# sourceMappingURL=render-math.js.map
|
|
435
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9ybWFsaXphdGlvbiIsInJlcXVpcmUiLCJfU2VyaWFsaXplZE1tbFZpc2l0b3IiLCJfVGV4RXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwidmlzaXRvciIsIlNlcmlhbGl6ZWRNbWxWaXNpdG9yIiwidG9NTWwiLCJub2RlIiwidmlzaXRUcmVlIiwiTkVXTElORV9CTE9DS19SRUdFWCIsIk5FV0xJTkVfTEFURVgiLCJtYXRoUmVuZGVyaW5nS0VZIiwibWF0aFJlbmRlcmluZ0FjY2Vzc2libGVLRVkiLCJNYXRoSmF4VmVyc2lvbiIsImV4cG9ydHMiLCJnZXRHbG9iYWwiLCJ3aW5kb3ciLCJmaXhNYXRoRWxlbWVudCIsImVsZW1lbnQiLCJkYXRhc2V0IiwibWF0aEhhbmRsZWQiLCJwcm9wZXJ0eSIsInRleHRDb250ZW50Iiwid3JhcE1hdGgiLCJ1bldyYXBNYXRoIiwidW53cmFwcGVkIiwicmVwbGFjZSIsImZpeE1hdGhFbGVtZW50cyIsImVsIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJtYXRoRWxlbWVudHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJhZGp1c3RNYXRoTUxTdHlsZSIsIm5vZGVzIiwic2V0QXR0cmlidXRlIiwiY3JlYXRlUGxhY2Vob2xkZXIiLCJfZWxlbWVudCRwcmV2aW91c1NpYmwiLCJwcmV2aW91c1NpYmxpbmciLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIl9lbGVtZW50JHBhcmVudE5vZGUiLCJvcmlnaW5hbERpc3BsYXkiLCJzdHlsZSIsImRpc3BsYXkiLCJwbGFjZWhvbGRlciIsImNyZWF0ZUVsZW1lbnQiLCJjc3NUZXh0IiwiYWRkIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsInJlbW92ZVBsYWNlaG9sZGVyc0FuZFJlc3RvcmVEaXNwbGF5IiwiX3RhcmdldEVsZW1lbnQkZGF0YXNlIiwidGFyZ2V0RWxlbWVudCIsIm5leHRFbGVtZW50U2libGluZyIsInJlbW92ZSIsInJlbW92ZUV4Y2Vzc01qeENvbnRhaW5lcnMiLCJjb250ZW50IiwiZWxlbWVudHMiLCJtanhDb250YWluZXJzIiwiaSIsInJlbW92ZUNoaWxkIiwicmVuZGVyQ29udGVudHNXaXRoTWF0aEpheCIsIkFycmF5IiwiZWxOb2RlIiwicmVuZGVyQ29udGVudFdpdGhNYXRoSmF4IiwiZXhlY3V0ZU9uIiwiYm9keSIsIkhUTUxFbGVtZW50IiwibWF0aEpheEluc3RhbmNlIiwiaW5zdGFuY2UiLCJ0ZXhSZXNldCIsInR5cGVzZXRDbGVhciIsInR5cGVzZXRQcm9taXNlIiwidGhlbiIsInVwZGF0ZWREb2N1bWVudCIsInN0YXJ0dXAiLCJsaXN0IiwibWF0aCIsIm5leHQiLCJfdHlwZW9mMiIsImRhdGEiLCJtYXRoTWwiLCJyb290IiwicGFyc2VkTWF0aE1sIiwicmVwbGFjZUFsbCIsInR5cGVzZXRSb290IiwiZSIsImNvbnNvbGUiLCJlcnJvciIsInRvU3RyaW5nIiwiY2xlYXIiLCJjb252ZXJ0TWF0aEpheDJUb01hdGhKYXgzIiwiQ29tbWFuZE1hcCIsIk1hdGhKYXgiLCJfIiwiaW5wdXQiLCJ0ZXgiLCJTeW1ib2xNYXAiLCJyZXF1aXJlTWFwIiwiY29uZmlnIiwiUmVxdWlyZUxvYWQiLCJSZXF1aXJlQ29uZmlndXJhdGlvbiIsIlJlcXVpcmVNZXRob2RzIiwiUmVxdWlyZSIsInBhcnNlciIsIm5hbWUiLCJyZXF1aXJlZCIsIkdldEFyZ3VtZW50IiwibWF0Y2giLCJUZXhFcnJvciIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIkNhbGxiYWNrIiwiYXJncyIsImlzQXJyYXkiLCJGdW5jdGlvbiIsImJpbmQiLCJhcHBseSIsInNsaWNlIiwiY29uY2F0IiwiRXJyb3IiLCJIdWIiLCJRdWV1ZSIsIm0iLCJmbiIsInByb21pc2UiLCJUeXBlc2V0IiwiY2FsbGJhY2siLCJSZWdpc3RlciIsIk1lc3NhZ2VIb29rIiwibG9nIiwiU3RhcnR1cEhvb2siLCJMb2FkSG9vayIsIkNvbmZpZyIsImluaXRpYWxpemVNYXRoSmF4IiwibWF0aGpheExvYWRlZFAiLCJQcmV2aW91c01hdGhKYXhJc1VzZWQiLCJ2ZXJzaW9uIiwidGV4Q29uZmlnIiwibWFjcm9zIiwicGFyYWxsZWxvZ3JhbSIsIm92ZXJhcmMiLCJuYXBwcm94IiwibG9uZ2RpdiIsImRpc3BsYXlNYXRoIiwiYXV0b2xvYWQiLCJjb2xvciIsImNvbG9ydjIiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkFNU21hdGgiLCJBTVNzeW1ib2xzIiwiQU1TY2QiLCJIVE1MIiwibm9FcnJvcnMiLCJub1VuZGVmaW5lZCIsInR5cGVzZXQiLCJyZWFkeSIsIm1hdGhqYXgiLCJTVEFURSIsImNvcmUiLCJNYXRoSXRlbSIsIk1lbnUiLCJ1aSIsIm1lbnUiLCJyZXJlbmRlciIsIl90aGlzIiwic3RhcnQiLCJUWVBFU0VUIiwiaGFuZGxlUmV0cmllc0ZvciIsImRlZmF1bHRSZWFkeSIsImdsb2JhbE9iaiIsIm1hdGhqYXhMb2FkZWRDb21wbGV0ZSIsIkRhdGUiLCJsb2FkZXIiLCJsb2FkIiwicHJlTG9hZCIsImZhaWxlZCIsIm1lc3NhZ2UiLCJjaHRtbCIsImZvbnRVUkwiLCJkaXNwbGF5QWxpZ24iLCJjdXN0b21LZXkiLCJvcHRpb25zIiwiZW5hYmxlRW5yaWNobWVudCIsInNyZSIsInNwZWVjaCIsIm1lbnVPcHRpb25zIiwic2V0dGluZ3MiLCJhc3Npc3RpdmVNbWwiLCJjb2xsYXBzaWJsZSIsImV4cGxvcmVyIiwic2NyaXB0IiwidHlwZSIsInNyYyIsImFzeW5jIiwiaGVhZCIsImFwcGVuZENoaWxkIiwic2V0VGltZW91dCIsIl9kb2N1bWVudCIsInJlbmRlck1hdGgiLCJ1c2VkRm9yTW1sT3V0cHV0IiwiZGl2IiwiaW5uZXJIVE1MIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvcmVuZGVyLW1hdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIE1hdGhKYXggKi9cbmltcG9ydCB7IHdyYXBNYXRoLCB1bldyYXBNYXRoIH0gZnJvbSAnLi9ub3JtYWxpemF0aW9uJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRNbWxWaXNpdG9yIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvcmUvTW1sVHJlZS9TZXJpYWxpemVkTW1sVmlzaXRvcic7XG5pbXBvcnQgVGV4RXJyb3IgZnJvbSAnbWF0aGpheC1mdWxsL2pzL2lucHV0L3RleC9UZXhFcnJvcic7XG5cbmNvbnN0IHZpc2l0b3IgPSBuZXcgU2VyaWFsaXplZE1tbFZpc2l0b3IoKTtcbmNvbnN0IHRvTU1sID0gKG5vZGUpID0+IHZpc2l0b3IudmlzaXRUcmVlKG5vZGUpO1xuXG5jb25zdCBORVdMSU5FX0JMT0NLX1JFR0VYID0gL1xcXFxlbWJlZFxce25ld0xpbmVcXH1cXFtcXF0vZztcbmNvbnN0IE5FV0xJTkVfTEFURVggPSAnXFxcXG5ld2xpbmUgJztcblxuY29uc3QgbWF0aFJlbmRlcmluZ0tFWSA9ICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZ0AyJztcbmNvbnN0IG1hdGhSZW5kZXJpbmdBY2Nlc3NpYmxlS0VZID0gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nLWFjY2Vzc2libGVAMSc7XG5cbmV4cG9ydCBjb25zdCBNYXRoSmF4VmVyc2lvbiA9ICczLjIuMic7XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWwgPSAoKSA9PiB7XG4gIC8vIFRPRE8gZG9lcyBpdCBtYWtlIHNlbnNlIHRvIHVzZSB2ZXJzaW9uP1xuICAvLyBjb25zdCBrZXkgPSBgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbi5zcGxpdCgnLicpWzBdfWA7XG4gIC8vIEl0IGxvb2tzIGxpa2UgRWQgbWFkZSB0aGlzIGNoYW5nZSB3aGVuIGhlIHN3aXRjaGVkIGZyb20gbWF0aGpheDMgdG8gbWF0aGpheC1mdWxsXG4gIC8vIEkgdGhpbmsgaXQgd2FzIHN1cHBvc2VkIHRvIG1ha2Ugc3VyZSB2ZXJzaW9uIDEgKHVzaW5nIG1hdGhqYXgzKSBpcyBub3QgdXNlZFxuICAvLyBpbiBjb21iaW5hdGlvbiB3aXRoIHZlcnNpb24gMiAodXNpbmcgbWF0aGpheC1mdWxsKVxuICAvLyBUT0RPIGhpZ2hlciBsZXZlbCB3cmFwcGVycyB1c2UgdGhpcyBpbnN0YW5jZSBvZiBtYXRoLXJlbmRlcmluZywgYW5kIGlmIDIgZGlmZmVyZW50IGluc3RhbmNlcyBhcmUgdXNlZCwgbWF0aCByZW5kZXJpbmcgaXMgbm90IHdvcmtpbmdcbiAgLy8gIHNvIEkgd2lsbCBoYXJkY29kZSB0aGlzIGZvciBub3cgdW50aWwgYSBiZXR0ZXIgc29sdXRpb24gaXMgZm91bmRcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKCF3aW5kb3dbbWF0aFJlbmRlcmluZ0FjY2Vzc2libGVLRVldKSB7XG4gICAgICB3aW5kb3dbbWF0aFJlbmRlcmluZ0FjY2Vzc2libGVLRVldID0ge307XG4gICAgfVxuICAgIHJldHVybiB3aW5kb3dbbWF0aFJlbmRlcmluZ0FjY2Vzc2libGVLRVldO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZpeE1hdGhFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcbiAgaWYgKGVsZW1lbnQuZGF0YXNldC5tYXRoSGFuZGxlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBwcm9wZXJ0eSA9ICdpbm5lclRleHQnO1xuXG4gIGlmIChlbGVtZW50LnRleHRDb250ZW50KSB7XG4gICAgcHJvcGVydHkgPSAndGV4dENvbnRlbnQnO1xuICB9XG5cbiAgaWYgKGVsZW1lbnRbcHJvcGVydHldKSB7XG4gICAgZWxlbWVudFtwcm9wZXJ0eV0gPSB3cmFwTWF0aCh1bldyYXBNYXRoKGVsZW1lbnRbcHJvcGVydHldKS51bndyYXBwZWQpO1xuICAgIC8vIGJlY2F1c2UgbWF0aHF1aWxsIGRvZXNuJ3QgdW5kZXJzdGFuZCBsaW5lIGJyZWFrcywgc29tZXRpbWVzIHdlIGVuZCB1cCB3aXRoIGN1c3RvbSBlbGVtZW50cyBvbiBwcm9tcHRzL3JhdGlvbmFsZS9ldGMuXG4gICAgLy8gd2UgbmVlZCB0byByZXBsYWNlIHRoZSBjdXN0b20gZW1iZWRkZWQgZWxlbWVudHMgd2l0aCB2YWxpZCBsYXRleCB0aGF0IE1hdGhqYXggY2FuIHVuZGVyc3RhbmRcbiAgICBlbGVtZW50W3Byb3BlcnR5XSA9IGVsZW1lbnRbcHJvcGVydHldLnJlcGxhY2UoTkVXTElORV9CTE9DS19SRUdFWCwgTkVXTElORV9MQVRFWCk7XG4gICAgZWxlbWVudC5kYXRhc2V0Lm1hdGhIYW5kbGVkID0gdHJ1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZpeE1hdGhFbGVtZW50cyA9IChlbCA9IGRvY3VtZW50KSA9PiB7XG4gIGNvbnN0IG1hdGhFbGVtZW50cyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhdGV4XScpO1xuXG4gIG1hdGhFbGVtZW50cy5mb3JFYWNoKChpdGVtKSA9PiBmaXhNYXRoRWxlbWVudChpdGVtKSk7XG59O1xuXG5jb25zdCBhZGp1c3RNYXRoTUxTdHlsZSA9IChlbCA9IGRvY3VtZW50KSA9PiB7XG4gIGNvbnN0IG5vZGVzID0gZWwucXVlcnlTZWxlY3RvckFsbCgnbWF0aCcpO1xuICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiBub2RlLnNldEF0dHJpYnV0ZSgnZGlzcGxheXN0eWxlJywgJ3RydWUnKSk7XG59O1xuXG5jb25zdCBjcmVhdGVQbGFjZWhvbGRlciA9IChlbGVtZW50KSA9PiB7XG4gIGlmICghZWxlbWVudC5wcmV2aW91c1NpYmxpbmcgfHwgIWVsZW1lbnQucHJldmlvdXNTaWJsaW5nLmNsYXNzTGlzdD8uY29udGFpbnMoJ21hdGgtcGxhY2Vob2xkZXInKSkge1xuICAgIC8vIFN0b3JlIHRoZSBvcmlnaW5hbCBkaXNwbGF5IHN0eWxlIGJlZm9yZSBzZXR0aW5nIGl0IHRvICdub25lJ1xuICAgIGVsZW1lbnQuZGF0YXNldC5vcmlnaW5hbERpc3BsYXkgPSBlbGVtZW50LnN0eWxlLmRpc3BsYXkgfHwgJyc7XG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgcGxhY2Vob2xkZXIuc3R5bGUuY3NzVGV4dCA9XG4gICAgICAnaGVpZ2h0OiAxMHB4OyB3aWR0aDogNTBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYmFja2dyb3VuZDogI2ZhZmFmYTsgYm9yZGVyLXJhZGl1czogNHB4Oyc7XG4gICAgcGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCgnbWF0aC1wbGFjZWhvbGRlcicpO1xuICAgIGVsZW1lbnQucGFyZW50Tm9kZT8uaW5zZXJ0QmVmb3JlKHBsYWNlaG9sZGVyLCBlbGVtZW50KTtcbiAgfVxufTtcblxuY29uc3QgcmVtb3ZlUGxhY2Vob2xkZXJzQW5kUmVzdG9yZURpc3BsYXkgPSAoKSA9PiB7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tYXRoLXBsYWNlaG9sZGVyJykuZm9yRWFjaCgocGxhY2Vob2xkZXIpID0+IHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gcGxhY2Vob2xkZXIubmV4dEVsZW1lbnRTaWJsaW5nO1xuXG4gICAgaWYgKHRhcmdldEVsZW1lbnQgJiYgdGFyZ2V0RWxlbWVudC5kYXRhc2V0Py5vcmlnaW5hbERpc3BsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gdGFyZ2V0RWxlbWVudC5kYXRhc2V0Lm9yaWdpbmFsRGlzcGxheTtcbiAgICAgIGRlbGV0ZSB0YXJnZXRFbGVtZW50LmRhdGFzZXQub3JpZ2luYWxEaXNwbGF5O1xuICAgIH1cblxuICAgIHBsYWNlaG9sZGVyLnJlbW92ZSgpO1xuICB9KTtcbn07XG5jb25zdCByZW1vdmVFeGNlc3NNanhDb250YWluZXJzID0gKGNvbnRlbnQpID0+IHtcbiAgY29uc3QgZWxlbWVudHMgPSBjb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhdGV4XVtkYXRhLW1hdGgtaGFuZGxlZD1cInRydWVcIl0nKTtcblxuICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbWp4Q29udGFpbmVycyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbWp4LWNvbnRhaW5lcicpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWp4LWNvbnRhaW5lciBjaGlsZHJlbi5cbiAgICBpZiAobWp4Q29udGFpbmVycy5sZW5ndGggPiAxKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IG1qeENvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbWp4Q29udGFpbmVyc1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG1qeENvbnRhaW5lcnNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCByZW5kZXJDb250ZW50c1dpdGhNYXRoSmF4ID0gKGVsKSA9PiB7XG4gIC8vIGVsIHNvbWV0aW1lcyBpcyBhbiBhcnJheVxuICAvLyByZW5kZXJNYXRoIGlzIHVzZWQgbGlrZSB0aGF0IGluIHBpZS1wcmludC1zdXBwb3J0IGFuZCBwaWUtZWxlbWVudC1leHRlbnNpb25zXG4gIC8vIHRoZXJlIHNlZW1zIHRvIGJlIG5vIHJlYXNvbiBmb3IgdGhhdCwgaG93ZXZlciwgaXQncyBiZXR0ZXIgdG8gaGFuZGxlIHRoZSBjYXNlIGhlcmVcbiAgaWYgKGVsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBlbC5mb3JFYWNoKChlbE5vZGUpID0+IHJlbmRlckNvbnRlbnRXaXRoTWF0aEpheChlbE5vZGUpKTtcbiAgfSBlbHNlIHtcbiAgICByZW5kZXJDb250ZW50V2l0aE1hdGhKYXgoZWwpO1xuICB9XG59O1xuXG5jb25zdCByZW5kZXJDb250ZW50V2l0aE1hdGhKYXggPSAoZXhlY3V0ZU9uKSA9PiB7XG4gIGV4ZWN1dGVPbiA9IGV4ZWN1dGVPbiB8fCBkb2N1bWVudC5ib2R5O1xuXG4gIC8vIHRoaXMgaGFwcGVucyBmb3IgY2hhcnRpbmcgLSBtYXJrLWxhYmVsOyB3ZSByZWNlaXZlIGEgcmVmIHdoaWNoIGlzIG5vdCB5ZXQgcmVhZHkgKCBlbCA9IHsgY3VycmVudDogbnVsbCB9KVxuICAvLyAgd2UgaGF2ZSB0byBmaXggdGhpcyBpbiBjaGFydGluZ1xuICBpZiAoIShleGVjdXRlT24gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHJldHVybjtcblxuICBmaXhNYXRoRWxlbWVudHMoZXhlY3V0ZU9uKTtcbiAgYWRqdXN0TWF0aE1MU3R5bGUoZXhlY3V0ZU9uKTtcblxuICBjb25zdCBtYXRoSmF4SW5zdGFuY2UgPSBnZXRHbG9iYWwoKS5pbnN0YW5jZTtcblxuICBpZiAobWF0aEpheEluc3RhbmNlKSB7XG4gICAgLy8gUmVzZXQgYW5kIGNsZWFyIHR5cGVzZXR0aW5nIGJlZm9yZSBwcm9jZXNzaW5nIHRoZSBuZXcgY29udGVudFxuICAgIC8vIFJlc2V0IHRoZSB0ZXggbGFiZWxzIChhbmQgYXV0b21hdGljIGVxdWF0aW9uIG51bWJlcikuXG5cbiAgICBtYXRoSmF4SW5zdGFuY2UudGV4UmVzZXQoKTtcblxuICAgIC8vICBSZXNldCB0aGUgdHlwZXNldHRpbmcgc3lzdGVtIChmb250IGNhY2hlcywgZXRjLilcbiAgICBtYXRoSmF4SW5zdGFuY2UudHlwZXNldENsZWFyKCk7XG5cbiAgICAvLyBVc2UgdHlwZXNldFByb21pc2UgZm9yIGFzeW5jaHJvbm91cyB0eXBlc2V0dGluZ1xuICAgIC8vIFVzaW5nIE1hdGhKYXgudHlwZXNldFByb21pc2UoKSBmb3IgYXN5bmNocm9ub3VzIHR5cGVzZXR0aW5nIHRvIGhhbmRsZSBzaXR1YXRpb25zIHdoZXJlIGFkZGl0aW9uYWwgY29kZSBuZWVkcyB0byBiZSBsb2FkZWQgKGUuZy4sIGZvciBjZXJ0YWluIFRlWCBjb21tYW5kcyBvciBjaGFyYWN0ZXJzKS5cbiAgICAvLyBUaGlzIGVuc3VyZXMgdHlwZXNldHRpbmcgd2FpdHMgZm9yIGFueSBuZWVkZWQgcmVzb3VyY2VzIHRvIGxvYWQgYW5kIGNvbXBsZXRlIHByb2Nlc3NpbmcsIHVubGlrZSB0aGUgc3luY2hyb25vdXMgTWF0aEpheC50eXBlc2V0KCkgd2hpY2ggY2FuJ3QgaGFuZGxlIHN1Y2ggZHluYW1pYyBsb2FkaW5nLlxuICAgIG1hdGhKYXhJbnN0YW5jZVxuICAgICAgLnR5cGVzZXRQcm9taXNlKFtleGVjdXRlT25dKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlbW92ZVBsYWNlaG9sZGVyc0FuZFJlc3RvcmVEaXNwbGF5KCk7XG4gICAgICAgICAgcmVtb3ZlRXhjZXNzTWp4Q29udGFpbmVycyhleGVjdXRlT24pO1xuXG4gICAgICAgICAgY29uc3QgdXBkYXRlZERvY3VtZW50ID0gbWF0aEpheEluc3RhbmNlLnN0YXJ0dXAuZG9jdW1lbnQ7XG4gICAgICAgICAgY29uc3QgbGlzdCA9IHVwZGF0ZWREb2N1bWVudC5tYXRoLmxpc3Q7XG5cbiAgICAgICAgICBmb3IgKGxldCBpdGVtID0gbGlzdC5uZXh0OyB0eXBlb2YgaXRlbS5kYXRhICE9PSAnc3ltYm9sJzsgaXRlbSA9IGl0ZW0ubmV4dCkge1xuICAgICAgICAgICAgY29uc3QgbWF0aE1sID0gdG9NTWwoaXRlbS5kYXRhLnJvb3QpO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkTWF0aE1sID0gbWF0aE1sLnJlcGxhY2VBbGwoJ1xcbicsICcnKTtcblxuICAgICAgICAgICAgaXRlbS5kYXRhLnR5cGVzZXRSb290LnNldEF0dHJpYnV0ZSgnZGF0YS1tYXRobWwnLCBwYXJzZWRNYXRoTWwpO1xuICAgICAgICAgICAgaXRlbS5kYXRhLnR5cGVzZXRSb290LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgaW5wdXQgd2FzIGEgc3RyaW5nLCByZXR1cm4gdGhlIHBhcnNlZCBNYXRoTUxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcG9zdC1wcm9jZXNzaW5nIE1hdGhKYXggdHlwZXNldHRpbmc6JywgZS50b1N0cmluZygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENsZWFyaW5nIHRoZSBkb2N1bWVudCBpZiBuZWVkZWRcbiAgICAgICAgbWF0aEpheEluc3RhbmNlLnN0YXJ0dXAuZG9jdW1lbnQuY2xlYXIoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIC8vICBJZiB0aGVyZSB3YXMgYW4gaW50ZXJuYWwgZXJyb3IsIHB1dCB0aGUgbWVzc2FnZSBpbnRvIHRoZSBvdXRwdXQgaW5zdGVhZFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiB0eXBlc2V0dGluZyB3aXRoIE1hdGhKYXg6JywgZXJyb3IpO1xuICAgICAgfSk7XG4gIH1cbn07XG5cbmNvbnN0IGNvbnZlcnRNYXRoSmF4MlRvTWF0aEpheDMgPSAoKSA9PiB7XG4gIC8vIE1ha2UgTWF0aEpheCB2MiBjb21wYXRpYmxlIHdpdGggdjNcbiAgLy8gIGh0dHBzOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi92My4yLWxhdGVzdC91cGdyYWRpbmcvdjIuaHRtbCN2ZXJzaW9uLTItY29tcGF0aWJpbGl0eS1leGFtcGxlXG4gIC8vICBSZXBsYWNlIHRoZSByZXF1aXJlIGNvbW1hbmQgbWFwIHdpdGggYSBuZXcgb25lIHRoYXQgY2hlY2tzIGZvclxuICAvLyAgICByZW5hbWVkIGV4dGVuc2lvbnMgYW5kIGNvbnZlcnRzIHRoZW0gdG8gdGhlIG5ldyBuYW1lcy5cbiAgY29uc3QgQ29tbWFuZE1hcCA9IE1hdGhKYXguXy5pbnB1dC50ZXguU3ltYm9sTWFwLkNvbW1hbmRNYXA7XG4gIGNvbnN0IHJlcXVpcmVNYXAgPSBNYXRoSmF4LmNvbmZpZy5zdGFydHVwLnJlcXVpcmVNYXA7XG4gIGNvbnN0IFJlcXVpcmVMb2FkID0gTWF0aEpheC5fLmlucHV0LnRleC5yZXF1aXJlLlJlcXVpcmVDb25maWd1cmF0aW9uLlJlcXVpcmVMb2FkO1xuICBjb25zdCBSZXF1aXJlTWV0aG9kcyA9IHtcbiAgICBSZXF1aXJlOiBmdW5jdGlvbihwYXJzZXIsIG5hbWUpIHtcbiAgICAgIGxldCByZXF1aXJlZCA9IHBhcnNlci5HZXRBcmd1bWVudChuYW1lKTtcbiAgICAgIGlmIChyZXF1aXJlZC5tYXRjaCgvW15fYS16QS1aMC05XS8pIHx8IHJlcXVpcmVkID09PSAnJykge1xuICAgICAgICB0aHJvdyBuZXcgVGV4RXJyb3IoJ0JhZFBhY2thZ2VOYW1lJywgJ0FyZ3VtZW50IGZvciAlMSBpcyBub3QgYSB2YWxpZCBwYWNrYWdlIG5hbWUnLCBuYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVxdWlyZU1hcCwgcmVxdWlyZWQpKSB7XG4gICAgICAgIHJlcXVpcmVkID0gcmVxdWlyZU1hcFtyZXF1aXJlZF07XG4gICAgICB9XG4gICAgICBSZXF1aXJlTG9hZChwYXJzZXIsIHJlcXVpcmVkKTtcbiAgICB9LFxuICB9O1xuXG4gIG5ldyBDb21tYW5kTWFwKCdyZXF1aXJlJywgeyByZXF1aXJlOiAnUmVxdWlyZScgfSwgUmVxdWlyZU1ldGhvZHMpO1xuXG4gIC8vXG4gIC8vIEFkZCBhIHJlcGxhY2VtZW50IGZvciBNYXRoSmF4LkNhbGxiYWNrIGNvbW1hbmRcbiAgLy9cbiAgTWF0aEpheC5DYWxsYmFjayA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhcmdzKSkge1xuICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAxICYmIHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBhcmdzWzBdO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycgJiYgYXJnc1sxXSBpbnN0YW5jZW9mIE9iamVjdCAmJiB0eXBlb2YgYXJnc1sxXVthcmdzWzBdXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gRnVuY3Rpb24uYmluZC5hcHBseShhcmdzWzFdW2FyZ3NbMF1dLCBhcmdzLnNsaWNlKDEpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uLmJpbmQuYXBwbHkoYXJnc1swXSwgW3dpbmRvd10uY29uY2F0KGFyZ3Muc2xpY2UoMSkpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3NbMV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uLmJpbmQuYXBwbHkoYXJnc1sxXSwgW2FyZ3NbMF1dLmNvbmNhdChhcmdzLnNsaWNlKDIpKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYXJncyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGFyZ3M7XG4gICAgfVxuICAgIHRocm93IEVycm9yKCdDYW5cXCd0IG1ha2UgY2FsbGJhY2sgZnJvbSBnaXZlbiBkYXRhJyk7XG4gIH07XG5cbiAgLy9cbiAgLy8gQWRkIGEgcmVwbGFjZW1lbnQgZm9yIE1hdGhKYXguSHViIGNvbW1hbmRzXG4gIC8vXG4gIE1hdGhKYXguSHViID0ge1xuICAgIFF1ZXVlOiBmdW5jdGlvbigpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBtID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG07IGkrKykge1xuICAgICAgICBjb25zdCBmbiA9IE1hdGhKYXguQ2FsbGJhY2soYXJndW1lbnRzW2ldKTtcbiAgICAgICAgTWF0aEpheC5zdGFydHVwLnByb21pc2UgPSBNYXRoSmF4LnN0YXJ0dXAucHJvbWlzZS50aGVuKGZuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBNYXRoSmF4LnN0YXJ0dXAucHJvbWlzZTtcbiAgICB9LFxuICAgIFR5cGVzZXQ6IGZ1bmN0aW9uKGVsZW1lbnRzLCBjYWxsYmFjaykge1xuICAgICAgbGV0IHByb21pc2UgPSBNYXRoSmF4LnR5cGVzZXRQcm9taXNlKGVsZW1lbnRzKTtcblxuICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oY2FsbGJhY2spO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfSxcbiAgICBSZWdpc3Rlcjoge1xuICAgICAgTWVzc2FnZUhvb2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmxvZygnTWVzc2FnZUhvb2tzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHZlcnNpb24gMycpO1xuICAgICAgfSxcbiAgICAgIFN0YXJ0dXBIb29rOiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5sb2coJ1N0YXJ0dXBIb29rcyBhcmUgbm90IHN1cHBvcnRlZCBpbiB2ZXJzaW9uIDMnKTtcbiAgICAgIH0sXG4gICAgICBMb2FkSG9vazogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUubG9nKCdMb2FkSG9va3MgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdmVyc2lvbiAzJyk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgQ29uZmlnOiBmdW5jdGlvbigpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZygnTWF0aEpheCBjb25maWd1cmF0aW9ucyBzaG91bGQgYmUgY29udmVydGVkIGZvciB2ZXJzaW9uIDMnKTtcbiAgICB9LFxuICB9O1xufTtcbmV4cG9ydCBjb25zdCBpbml0aWFsaXplTWF0aEpheCA9IChjYWxsYmFjaykgPT4ge1xuICBpZiAod2luZG93Lm1hdGhqYXhMb2FkZWRQKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgUHJldmlvdXNNYXRoSmF4SXNVc2VkID1cbiAgICB3aW5kb3cuTWF0aEpheCAmJlxuICAgIHdpbmRvdy5NYXRoSmF4LnZlcnNpb24gJiZcbiAgICB3aW5kb3cuTWF0aEpheC52ZXJzaW9uICE9PSBNYXRoSmF4VmVyc2lvbiAmJlxuICAgIHdpbmRvdy5NYXRoSmF4LnZlcnNpb25bMF0gPT09ICcyJztcblxuICBjb25zdCB0ZXhDb25maWcgPSB7XG4gICAgbWFjcm9zOiB7XG4gICAgICBwYXJhbGxlbG9ncmFtOiAnXFxcXGxvd2VyLjJlbXtcXFxcSHVnZVxcXFx1bmljb2Rle3gyNUIxfX0nLFxuICAgICAgb3ZlcmFyYzogJ1xcXFxvdmVycGFyZW4nLFxuICAgICAgbmFwcHJveDogJ1xcXFxub3RcXFxcYXBwcm94JyxcbiAgICAgIGxvbmdkaXY6ICdcXFxcZW5jbG9zZXtsb25nZGl2fScsXG4gICAgfSxcbiAgICBkaXNwbGF5TWF0aDogW1xuICAgICAgWyckJCcsICckJCddLFxuICAgICAgWydcXFxcWycsICdcXFxcXSddLFxuICAgIF0sXG4gIH07XG5cbiAgaWYgKFByZXZpb3VzTWF0aEpheElzVXNlZCkge1xuICAgIHRleENvbmZpZy5hdXRvbG9hZCA9IHtcbiAgICAgIGNvbG9yOiBbXSwgLy8gZG9uJ3QgYXV0b2xvYWQgdGhlIGNvbG9yIGV4dGVuc2lvblxuICAgICAgY29sb3J2MjogWydjb2xvciddLCAvLyBkbyBhdXRvbG9hZCB0aGUgY29sb3J2MiBleHRlbnNpb25cbiAgICB9O1xuICB9XG5cbiAgLy8gQ3JlYXRlIGEgbmV3IHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIE1hdGhKYXggaXMgcmVhZHlcbiAgd2luZG93Lm1hdGhqYXhMb2FkZWRQID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAvLyBTZXQgdXAgdGhlIE1hdGhKYXggY29uZmlndXJhdGlvblxuICAgIHdpbmRvdy5NYXRoSmF4ID0ge1xuICAgICAgc3RhcnR1cDoge1xuICAgICAgICAvL1xuICAgICAgICAvLyAgTWFwcGluZyBvZiBvbGQgZXh0ZW5zaW9uIG5hbWVzIHRvIG5ldyBvbmVzXG4gICAgICAgIC8vXG4gICAgICAgIHJlcXVpcmVNYXA6IFByZXZpb3VzTWF0aEpheElzVXNlZFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBBTVNtYXRoOiAnYW1zJyxcbiAgICAgICAgICAgICAgQU1Tc3ltYm9sczogJ2FtcycsXG4gICAgICAgICAgICAgIEFNU2NkOiAnYW1zY2QnLFxuICAgICAgICAgICAgICBIVE1MOiAnaHRtbCcsXG4gICAgICAgICAgICAgIG5vRXJyb3JzOiAnbm9lcnJvcnMnLFxuICAgICAgICAgICAgICBub1VuZGVmaW5lZDogJ25vdW5kZWZpbmVkJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB0eXBlc2V0OiBmYWxzZSxcbiAgICAgICAgcmVhZHk6ICgpID0+IHtcbiAgICAgICAgICBpZiAoUHJldmlvdXNNYXRoSmF4SXNVc2VkKSB7XG4gICAgICAgICAgICBjb252ZXJ0TWF0aEpheDJUb01hdGhKYXgzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBtYXRoamF4IH0gPSBNYXRoSmF4Ll8ubWF0aGpheDtcbiAgICAgICAgICBjb25zdCB7IFNUQVRFIH0gPSBNYXRoSmF4Ll8uY29yZS5NYXRoSXRlbTtcbiAgICAgICAgICBjb25zdCB7IE1lbnUgfSA9IE1hdGhKYXguXy51aS5tZW51Lk1lbnU7XG4gICAgICAgICAgY29uc3QgcmVyZW5kZXIgPSBNZW51LnByb3RvdHlwZS5yZXJlbmRlcjtcbiAgICAgICAgICBNZW51LnByb3RvdHlwZS5yZXJlbmRlciA9IGZ1bmN0aW9uKHN0YXJ0ID0gU1RBVEUuVFlQRVNFVCkge1xuICAgICAgICAgICAgbWF0aGpheC5oYW5kbGVSZXRyaWVzRm9yKCgpID0+IHJlcmVuZGVyLmNhbGwodGhpcywgc3RhcnQpKTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIE1hdGhKYXguc3RhcnR1cC5kZWZhdWx0UmVhZHkoKTtcbiAgICAgICAgICAvLyBTZXQgdGhlIE1hdGhKYXggaW5zdGFuY2UgaW4gdGhlIGdsb2JhbCBvYmplY3RcblxuICAgICAgICAgIGNvbnN0IGdsb2JhbE9iaiA9IGdldEdsb2JhbCgpO1xuICAgICAgICAgIGdsb2JhbE9iai5pbnN0YW5jZSA9IE1hdGhKYXg7XG5cbiAgICAgICAgICB3aW5kb3cubWF0aGpheExvYWRlZENvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUubG9nKCdNYXRoSmF4IGhhcyBpbml0aWFsaXNlZCEnLCBuZXcgRGF0ZSgpLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgICAgLy8gaW4gdGhpcyBmaWxlLCBpbml0aWFsaXplTWF0aEpheCBpcyBjYWxsZWQgd2l0aCBhIGNhbGxiYWNrIHRoYXQgaGFzIHRvIGJlIGV4ZWN1dGVkIHdoZW4gTWF0aEpheCB3YXMgbG9hZGVkXG4gICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGJ1dCBwcmV2aW91cyB2ZXJzaW9ucyBvZiBtYXRoLXJlbmRlcmluZy1hY2Nlc3NpYmxlIHRoZXkncmUgZXhwZWN0aW5nIHdpbmRvdy5tYXRoamF4TG9hZGVkUCB0byBiZSBhIFByb21pc2UsIHNvIHdlIGFsc28ga2VlcCB0aGVcbiAgICAgICAgICAvLyAgcmVzb2x2ZSBoZXJlO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBsb2FkZXI6IHtcbiAgICAgICAgbG9hZDogWydpbnB1dC9tbWwnXSxcbiAgICAgICAgLy8gSSBqdXN0IGFkZGVkIHByZUxvYWQ6ICgpID0+IHt9IHRvIHByZXZlbnQgdGhlIGNvbnNvbGUgZXJyb3I6IFwiTWF0aEpheC5sb2FkZXIucHJlTG9hZCBpcyBub3QgYSBmdW5jdGlvblwiLFxuICAgICAgICAvLyAgd2hpY2ggaXMgYmVpbmcgY2FsbGVkIGJlY2F1c2UgaW4gbWF0aC1yZW5kZXJpbmctYWNjZXNzaWJsZS9yZW5kZXItbWF0aCB3ZSdyZSBoYXZpbmcgdGhpcyBsaW5lOlxuICAgICAgICAvLyAgaW1wb3J0ICogYXMgbXIgZnJvbSAnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnO1xuICAgICAgICAvLyAgd2hpY2ggdGFrZXMgdXMgdG86IGltcG9ydCB7IEFsbFBhY2thZ2VzIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2lucHV0L3RleC9BbGxQYWNrYWdlcyc7XG4gICAgICAgIC8vICB3aGljaCB0cmllcyB0byBjYWxsIE1hdGhKYXgubG9hZGVyLnByZUxvYWQuXG4gICAgICAgIC8vIFVuZGVyc3RhbmQgdGhhdCBBbGxQYWNrYWdlcyBpcyBOT1QgbmVlZGVkIGluIG1hdGgtcmVuZGVyaW5nLWFjY2Vzc2libGUsIHNvIGl0IGlzIG5vdCBhIHByb2JsZW0gaWYgd2UgaGFyZGNvZGUgdGhpcyBmdW5jdGlvbi5cbiAgICAgICAgLy8gVGhlIGJldHRlciBzb2x1dGlvbiB3b3VsZCBiZSBmb3IgbWF0aC1yZW5kZXJpbmctYWNjZXNzaWJsZSB0byBpbXBvcnQgbWF0aC1yZW5kZXJpbmcgb25seSBJRiBuZWVkZWQsXG4gICAgICAgIC8vICBidXQgdGhhdCdzIGFjdHVhbGx5IGNvbXBsaWNhdGVkIGFuZCBjb3VsZCBjYXVzZSBvdGhlciBpc3N1ZXMuXG4gICAgICAgIHByZUxvYWQ6ICgpID0+IHt9LFxuICAgICAgICAvLyBmdW5jdGlvbiB0byBjYWxsIGlmIGEgY29tcG9uZW50IGZhaWxzIHRvIGxvYWRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgZmFpbGVkOiAoZXJyb3IpID0+IGNvbnNvbGUubG9nKGBNYXRoSmF4KCR7ZXJyb3IucGFja2FnZSB8fCAnPyd9KTogJHtlcnJvci5tZXNzYWdlfWApLFxuICAgICAgfSxcbiAgICAgIHRleDogdGV4Q29uZmlnLFxuICAgICAgY2h0bWw6IHtcbiAgICAgICAgZm9udFVSTDogJ2h0dHBzOi8vdW5wa2cuY29tL21hdGhqYXgtZnVsbEAzLjIuMi90cy9vdXRwdXQvY2h0bWwvZm9udHMvdGV4LXdvZmYtdjInLFxuICAgICAgICBkaXNwbGF5QWxpZ246ICdjZW50ZXInLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbUtleTogJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nLWFjY2Vzc2libGVAMScsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGVuYWJsZUVucmljaG1lbnQ6IHRydWUsXG4gICAgICAgIHNyZToge1xuICAgICAgICAgIHNwZWVjaDogJ2RlZXAnLFxuICAgICAgICB9LFxuICAgICAgICBtZW51T3B0aW9uczoge1xuICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICBhc3Npc3RpdmVNbWw6IHRydWUsXG4gICAgICAgICAgICBjb2xsYXBzaWJsZTogZmFsc2UsXG4gICAgICAgICAgICBleHBsb3JlcjogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICAvLyBMb2FkIHRoZSBNYXRoSmF4IHNjcmlwdFxuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgc2NyaXB0LnNyYyA9IGBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21hdGhqYXhAJHtNYXRoSmF4VmVyc2lvbn0vZXM1L3RleC1jaHRtbC1mdWxsLmpzYDtcbiAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIC8vIGF0IHRoaXMgdGltZSBvZiB0aGUgZXhlY3V0aW9uLCB0aGVyZSdzIG5vIGRvY3VtZW50LmJvZHk7IHNldFRpbWVvdXQgZG9lcyB0aGUgdHJpY2tcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghd2luZG93Lm1hdGhqYXhMb2FkZWRDb21wbGV0ZSkge1xuICAgICAgICBjb25zdCBtYXRoRWxlbWVudHMgPSBkb2N1bWVudD8uYm9keT8ucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbGF0ZXhdJyk7XG4gICAgICAgIChtYXRoRWxlbWVudHMgfHwgW10pLmZvckVhY2goY3JlYXRlUGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbmNvbnN0IHJlbmRlck1hdGggPSAoZWwpID0+IHtcbiAgY29uc3QgdXNlZEZvck1tbE91dHB1dCA9IHR5cGVvZiBlbCA9PT0gJ3N0cmluZyc7XG4gIGxldCBleGVjdXRlT24gPSBkb2N1bWVudC5ib2R5O1xuXG4gIGlmICghdXNlZEZvck1tbE91dHB1dCkge1xuICAgIC8vIElmIG1hdGgtcmVuZGVyaW5nIHdhcyBub3QgYXZhaWxhYmxlLCB0aGVuOlxuICAgIC8vICBJZiB3aW5kb3cubWF0aGpheExvYWRlZENvbXBsZXRlLCBpdCBtZWFucyB0aGF0IHdlIGluaXRpYWxpc2VkIE1hdGhKYXggdXNpbmcgdGhlIGZ1bmN0aW9uIGZyb20gdGhpcyBmaWxlLFxuICAgIC8vICBhbmQgaXQgbWVhbnMgTWF0aEpheCBpcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLCBzbyB3ZSBjYW4gYWxyZWFkeSB1c2UgaXRcbiAgICBpZiAod2luZG93Lm1hdGhqYXhMb2FkZWRDb21wbGV0ZSkge1xuICAgICAgcmVuZGVyQ29udGVudHNXaXRoTWF0aEpheChlbCk7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cubWF0aGpheExvYWRlZFApIHtcbiAgICAgIC8vICBIb3dldmVyLCBiZWNhdXNlIHRoZXJlIGlzIGEgc21hbGwgY2hhbmNlIHRoYXQgTWF0aEpheCB3YXMgaW5pdGlhbGlzZWQgYnkgYSBwcmV2aW91cyB2ZXJzaW9uIG9mIG1hdGgtcmVuZGVyaW5nLWFjY2Vzc2libGUsXG4gICAgICAvLyAgICB3ZSBuZWVkIHRvIGtlZXAgdGhlIG9sZCBoYW5kbGluZyBtZXRob2QsIHdoaWNoIG1lYW5zIGFkZGluZyB0aGUgLnRoZW4uY2F0Y2ggb24gd2luZG93Lm1hdGhqYXhMb2FkZWRQIFByb21pc2UuXG4gICAgICAvLyBXZSBzdGlsbCB3YW50IHRvIHNldCB3aW5kb3cubWF0aGpheExvYWRlZENvbXBsZXRlLCB0byBwcmV2ZW50IGFkZGluZyAudGhlbi5jYXRjaCBhZnRlciB0aGUgZmlyc3QgaW5pdGlhbGl6YXRpb25cbiAgICAgIC8vICAoYWdhaW4sIGluIGNhc2UgTWF0aEpheCB3YXMgaW5pdGlhbGlzZWQgYnkgYSBwcmV2aW91cyBtYXRoLXJlbmRlcmluZy1hY2Nlc3NpYmxlIHZlcnNpb24pXG4gICAgICB3aW5kb3cubWF0aGpheExvYWRlZFBcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5tYXRoamF4TG9hZGVkQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgIHJlbmRlckNvbnRlbnRzV2l0aE1hdGhKYXgoZWwpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBpbml0aWFsaXppbmcgTWF0aEpheDonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBIZXJlIHdlJ3JlIGhhbmRsaW5nIHRoZSBjYXNlIHdoZW4gcmVuZGVyTWF0aCBpcyBiZWluZyBjYWxsZWQgZm9yIG1tbE91dHB1dFxuICAgIGlmICh3aW5kb3cuTWF0aEpheCAmJiB3aW5kb3cubWF0aGpheExvYWRlZFApIHtcbiAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICBkaXYuaW5uZXJIVE1MID0gZWw7XG4gICAgICBleGVjdXRlT24gPSBkaXY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIE1hdGhKYXgudGV4UmVzZXQoKTtcbiAgICAgICAgTWF0aEpheC50eXBlc2V0Q2xlYXIoKTtcbiAgICAgICAgd2luZG93Lk1hdGhKYXgudHlwZXNldChbZXhlY3V0ZU9uXSk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREb2N1bWVudCA9IHdpbmRvdy5NYXRoSmF4LnN0YXJ0dXAuZG9jdW1lbnQ7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB1cGRhdGVkRG9jdW1lbnQubWF0aC5saXN0O1xuICAgICAgICBjb25zdCBpdGVtID0gbGlzdC5uZXh0O1xuICAgICAgICBjb25zdCBtYXRoTWwgPSB0b01NbChpdGVtLmRhdGEucm9vdCk7XG5cbiAgICAgICAgY29uc3QgcGFyc2VkTWF0aE1sID0gbWF0aE1sLnJlcGxhY2VBbGwoJ1xcbicsICcnKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VkTWF0aE1sO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVuZGVyaW5nIG1hdGg6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZWw7XG4gIH1cbn07XG5cbi8vIHRoaXMgZnVuY3Rpb24gY2FsbHMgaXRzZWxmXG4oZnVuY3Rpb24oKSB7XG4gIGluaXRpYWxpemVNYXRoSmF4KHJlbmRlckNvbnRlbnRXaXRoTWF0aEpheCk7XG5cbiAgd2luZG93W21hdGhSZW5kZXJpbmdLRVldID0ge1xuICAgIGluc3RhbmNlOiB7XG4gICAgICBUeXBlc2V0OiByZW5kZXJNYXRoLFxuICAgIH0sXG4gIH07XG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCByZW5kZXJNYXRoO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBLElBQUFBLGNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLHFCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFIQTs7QUFLQSxJQUFNSSxPQUFPLEdBQUcsSUFBSUMsMENBQW9CLENBQUMsQ0FBQztBQUMxQyxJQUFNQyxLQUFLLEdBQUcsU0FBUkEsS0FBS0EsQ0FBSUMsSUFBSTtFQUFBLE9BQUtILE9BQU8sQ0FBQ0ksU0FBUyxDQUFDRCxJQUFJLENBQUM7QUFBQTtBQUUvQyxJQUFNRSxtQkFBbUIsR0FBRyx5QkFBeUI7QUFDckQsSUFBTUMsYUFBYSxHQUFHLFlBQVk7QUFFbEMsSUFBTUMsZ0JBQWdCLEdBQUcsMkJBQTJCO0FBQ3BELElBQU1DLDBCQUEwQixHQUFHLHNDQUFzQztBQUVsRSxJQUFNQyxjQUFjLEdBQUFDLE9BQUEsQ0FBQUQsY0FBQSxHQUFHLE9BQU87QUFFOUIsSUFBTUUsU0FBUyxHQUFBRCxPQUFBLENBQUFDLFNBQUEsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7RUFDN0I7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxJQUFJLE9BQU9DLE1BQU0sS0FBSyxXQUFXLEVBQUU7SUFDakMsSUFBSSxDQUFDQSxNQUFNLENBQUNKLDBCQUEwQixDQUFDLEVBQUU7TUFDdkNJLE1BQU0sQ0FBQ0osMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekM7SUFDQSxPQUFPSSxNQUFNLENBQUNKLDBCQUEwQixDQUFDO0VBQzNDLENBQUMsTUFBTTtJQUNMLE9BQU8sQ0FBQyxDQUFDO0VBQ1g7QUFDRixDQUFDO0FBRU0sSUFBTUssY0FBYyxHQUFBSCxPQUFBLENBQUFHLGNBQUEsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUMsT0FBTyxFQUFL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
|
package/lib/render-math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-math.js","names":["_normalization","require","_SerializedMmlVisitor","_TexError","_interopRequireDefault","visitor","SerializedMmlVisitor","toMMl","node","visitTree","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","mathRenderingKEY","mathRenderingAccessibleKEY","MathJaxVersion","exports","getGlobal","window","fixMathElement","element","dataset","mathHandled","property","textContent","wrapMath","unWrapMath","unwrapped","replace","fixMathElements","el","arguments","length","undefined","document","mathElements","querySelectorAll","forEach","item","adjustMathMLStyle","nodes","setAttribute","createPlaceholder","_element$previousSibl","previousSibling","classList","contains","_element$parentNode","originalDisplay","style","display","placeholder","createElement","cssText","add","parentNode","insertBefore","removePlaceholdersAndRestoreDisplay","_targetElement$datase","targetElement","nextElementSibling","remove","removeExcessMjxContainers","content","elements","mjxContainers","i","removeChild","renderContentsWithMathJax","Array","elNode","renderContentWithMathJax","executeOn","body","HTMLElement","mathJaxInstance","instance","texReset","typesetClear","typesetPromise","then","updatedDocument","startup","list","math","next","_typeof2","data","mathMl","root","parsedMathMl","replaceAll","typesetRoot","e","console","error","toString","clear","convertMathJax2ToMathJax3","CommandMap","MathJax","_","input","tex","SymbolMap","requireMap","config","RequireLoad","RequireConfiguration","RequireMethods","Require","parser","name","required","GetArgument","match","TexError","hasOwnProperty","Callback","args","isArray","Object","Function","bind","apply","slice","concat","Error","Hub","Queue","m","fn","promise","Typeset","callback","Register","MessageHook","log","StartupHook","LoadHook","Config","initializeMathJax","mathjaxLoadedP","PreviousMathJaxIsUsed","version","texConfig","macros","parallelogram","overarc","napprox","longdiv","displayMath","autoload","color","colorv2","Promise","resolve","AMSmath","AMSsymbols","AMScd","HTML","noErrors","noUndefined","typeset","ready","mathjax","STATE","core","MathItem","Menu","ui","menu","rerender","prototype","_this","start","TYPESET","handleRetriesFor","call","defaultReady","globalObj","mathjaxLoadedComplete","Date","loader","load","preLoad","failed","message","chtml","fontURL","displayAlign","customKey","options","enableEnrichment","sre","speech","menuOptions","settings","assistiveMml","collapsible","explorer","script","type","src","async","head","appendChild","setTimeout","_document","renderMath","renderOpts","usedForMmlOutput","div","innerHTML","_default"],"sources":["../src/render-math.js"],"sourcesContent":["import { wrapMath, unWrapMath } from './normalization';\nimport { SerializedMmlVisitor } from 'mathjax-full/js/core/MmlTree/SerializedMmlVisitor';\nimport TexError from 'mathjax-full/js/input/tex/TexError';\n\nconst visitor = new SerializedMmlVisitor();\nconst toMMl = (node) => visitor.visitTree(node);\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst mathRenderingKEY = '@pie-lib/math-rendering@2';\nconst mathRenderingAccessibleKEY = '@pie-lib/math-rendering-accessible@1';\n\nexport const MathJaxVersion = '3.2.2';\n\nexport const getGlobal = () => {\n // TODO does it make sense to use version?\n // const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\n // It looks like Ed made this change when he switched from mathjax3 to mathjax-full\n // I think it was supposed to make sure version 1 (using mathjax3) is not used\n // in combination with version 2 (using mathjax-full)\n // TODO higher level wrappers use this instance of math-rendering, and if 2 different instances are used, math rendering is not working\n // so I will hardcode this for now until a better solution is found\n if (typeof window !== 'undefined') {\n if (!window[mathRenderingAccessibleKEY]) {\n window[mathRenderingAccessibleKEY] = {};\n }\n return window[mathRenderingAccessibleKEY];\n } else {\n return {};\n }\n};\n\nexport const fixMathElement = (element) => {\n if (element.dataset.mathHandled) {\n return;\n }\n\n let property = 'innerText';\n\n if (element.textContent) {\n property = 'textContent';\n }\n\n if (element[property]) {\n element[property] = wrapMath(unWrapMath(element[property]).unwrapped);\n // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.\n // we need to replace the custom embedded elements with valid latex that Mathjax can understand\n element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);\n element.dataset.mathHandled = true;\n }\n};\n\nexport const fixMathElements = (el = document) => {\n const mathElements = el.querySelectorAll('[data-latex]');\n\n mathElements.forEach((item) => fixMathElement(item));\n};\n\nconst adjustMathMLStyle = (el = document) => {\n const nodes = el.querySelectorAll('math');\n nodes.forEach((node) => node.setAttribute('displaystyle', 'true'));\n};\n\nconst createPlaceholder = (element) => {\n if (!element.previousSibling || !element.previousSibling.classList?.contains('math-placeholder')) {\n // Store the original display style before setting it to 'none'\n element.dataset.originalDisplay = element.style.display || '';\n element.style.display = 'none';\n\n const placeholder = document.createElement('span');\n placeholder.style.cssText =\n 'height: 10px; width: 50px; display: inline-block; vertical-align: middle; justify-content: center; background: #fafafa; border-radius: 4px;';\n placeholder.classList.add('math-placeholder');\n element.parentNode?.insertBefore(placeholder, element);\n }\n};\n\nconst removePlaceholdersAndRestoreDisplay = () => {\n document.querySelectorAll('.math-placeholder').forEach((placeholder) => {\n const targetElement = placeholder.nextElementSibling;\n\n if (targetElement && targetElement.dataset?.originalDisplay !== undefined) {\n targetElement.style.display = targetElement.dataset.originalDisplay;\n delete targetElement.dataset.originalDisplay;\n }\n\n placeholder.remove();\n });\n};\nconst removeExcessMjxContainers = (content) => {\n const elements = content.querySelectorAll('[data-latex][data-math-handled=\"true\"]');\n\n elements.forEach((element) => {\n const mjxContainers = element.querySelectorAll('mjx-container');\n\n // Check if there are more than one mjx-container children.\n if (mjxContainers.length > 1) {\n for (let i = 1; i < mjxContainers.length; i++) {\n mjxContainers[i].parentNode.removeChild(mjxContainers[i]);\n }\n }\n });\n};\n\nconst renderContentsWithMathJax = (el) => {\n // el sometimes is an array\n // renderMath is used like that in pie-print-support and pie-element-extensions\n // there seems to be no reason for that, however, it's better to handle the case here\n if (el instanceof Array) {\n el.forEach((elNode) => renderContentWithMathJax(elNode));\n } else {\n renderContentWithMathJax(el);\n }\n};\n\nconst renderContentWithMathJax = (executeOn) => {\n executeOn = executeOn || document.body;\n\n // this happens for charting - mark-label; we receive a ref which is not yet ready ( el = { current: null })\n // we have to fix this in charting\n if (!(executeOn instanceof HTMLElement)) return;\n\n fixMathElements(executeOn);\n adjustMathMLStyle(executeOn);\n\n const mathJaxInstance = getGlobal().instance;\n\n if (mathJaxInstance) {\n // Reset and clear typesetting before processing the new content\n // Reset the tex labels (and automatic equation number).\n\n mathJaxInstance.texReset();\n\n // Reset the typesetting system (font caches, etc.)\n mathJaxInstance.typesetClear();\n\n // Use typesetPromise for asynchronous typesetting\n // Using MathJax.typesetPromise() for asynchronous typesetting to handle situations where additional code needs to be loaded (e.g., for certain TeX commands or characters).\n // This ensures typesetting waits for any needed resources to load and complete processing, unlike the synchronous MathJax.typeset() which can't handle such dynamic loading.\n mathJaxInstance\n .typesetPromise([executeOn])\n .then(() => {\n try {\n removePlaceholdersAndRestoreDisplay();\n removeExcessMjxContainers(executeOn);\n\n const updatedDocument = mathJaxInstance.startup.document;\n const list = updatedDocument.math.list;\n\n for (let item = list.next; typeof item.data !== 'symbol'; item = item.next) {\n const mathMl = toMMl(item.data.root);\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n item.data.typesetRoot.setAttribute('data-mathml', parsedMathMl);\n item.data.typesetRoot.setAttribute('tabindex', '-1');\n }\n\n // If the original input was a string, return the parsed MathML\n } catch (e) {\n console.error('Error post-processing MathJax typesetting:', e.toString());\n }\n\n // Clearing the document if needed\n mathJaxInstance.startup.document.clear();\n })\n .catch((error) => {\n // If there was an internal error, put the message into the output instead\n\n console.error('Error in typesetting with MathJax:', error);\n });\n }\n};\n\nconst convertMathJax2ToMathJax3 = () => {\n // Make MathJax v2 compatible with v3\n // https://docs.mathjax.org/en/v3.2-latest/upgrading/v2.html#version-2-compatibility-example\n // Replace the require command map with a new one that checks for\n // renamed extensions and converts them to the new names.\n const CommandMap = MathJax._.input.tex.SymbolMap.CommandMap;\n const requireMap = MathJax.config.startup.requireMap;\n const RequireLoad = MathJax._.input.tex.require.RequireConfiguration.RequireLoad;\n const RequireMethods = {\n Require: function(parser, name) {\n let required = parser.GetArgument(name);\n if (required.match(/[^_a-zA-Z0-9]/) || required === '') {\n throw new TexError('BadPackageName', 'Argument for %1 is not a valid package name', name);\n }\n if (requireMap.hasOwnProperty(required)) {\n required = requireMap[required];\n }\n RequireLoad(parser, required);\n },\n };\n\n new CommandMap('require', { require: 'Require' }, RequireMethods);\n\n //\n // Add a replacement for MathJax.Callback command\n //\n MathJax.Callback = function(args) {\n if (Array.isArray(args)) {\n if (args.length === 1 && typeof args[0] === 'function') {\n return args[0];\n } else if (typeof args[0] === 'string' && args[1] instanceof Object && typeof args[1][args[0]] === 'function') {\n return Function.bind.apply(args[1][args[0]], args.slice(1));\n } else if (typeof args[0] === 'function') {\n return Function.bind.apply(args[0], [window].concat(args.slice(1)));\n } else if (typeof args[1] === 'function') {\n return Function.bind.apply(args[1], [args[0]].concat(args.slice(2)));\n }\n } else if (typeof args === 'function') {\n return args;\n }\n throw Error(\"Can't make callback from given data\");\n };\n\n //\n // Add a replacement for MathJax.Hub commands\n //\n MathJax.Hub = {\n Queue: function() {\n for (let i = 0, m = arguments.length; i < m; i++) {\n const fn = MathJax.Callback(arguments[i]);\n MathJax.startup.promise = MathJax.startup.promise.then(fn);\n }\n return MathJax.startup.promise;\n },\n Typeset: function(elements, callback) {\n let promise = MathJax.typesetPromise(elements);\n\n if (callback) {\n promise = promise.then(callback);\n }\n return promise;\n },\n Register: {\n MessageHook: function() {\n console.log('MessageHooks are not supported in version 3');\n },\n StartupHook: function() {\n console.log('StartupHooks are not supported in version 3');\n },\n LoadHook: function() {\n console.log('LoadHooks are not supported in version 3');\n },\n },\n Config: function() {\n console.log('MathJax configurations should be converted for version 3');\n },\n };\n};\nexport const initializeMathJax = (callback) => {\n if (window.mathjaxLoadedP) {\n return;\n }\n\n const PreviousMathJaxIsUsed =\n window.MathJax &&\n window.MathJax.version &&\n window.MathJax.version !== MathJaxVersion &&\n window.MathJax.version[0] === '2';\n\n const texConfig = {\n macros: {\n parallelogram: '\\\\lower.2em{\\\\Huge\\\\unicode{x25B1}}',\n overarc: '\\\\overparen',\n napprox: '\\\\not\\\\approx',\n longdiv: '\\\\enclose{longdiv}',\n },\n displayMath: [\n ['$$', '$$'],\n ['\\\\[', '\\\\]'],\n ],\n };\n\n if (PreviousMathJaxIsUsed) {\n texConfig.autoload = {\n color: [], // don't autoload the color extension\n colorv2: ['color'], // do autoload the colorv2 extension\n };\n }\n\n // Create a new promise that resolves when MathJax is ready\n window.mathjaxLoadedP = new Promise((resolve) => {\n // Set up the MathJax configuration\n window.MathJax = {\n startup: {\n //\n // Mapping of old extension names to new ones\n //\n requireMap: PreviousMathJaxIsUsed\n ? {\n AMSmath: 'ams',\n AMSsymbols: 'ams',\n AMScd: 'amscd',\n HTML: 'html',\n noErrors: 'noerrors',\n noUndefined: 'noundefined',\n }\n : {},\n typeset: false,\n ready: () => {\n if (PreviousMathJaxIsUsed) {\n convertMathJax2ToMathJax3();\n }\n\n const { mathjax } = MathJax._.mathjax;\n const { STATE } = MathJax._.core.MathItem;\n const { Menu } = MathJax._.ui.menu.Menu;\n const rerender = Menu.prototype.rerender;\n Menu.prototype.rerender = function(start = STATE.TYPESET) {\n mathjax.handleRetriesFor(() => rerender.call(this, start));\n };\n MathJax.startup.defaultReady();\n // Set the MathJax instance in the global object\n\n const globalObj = getGlobal();\n globalObj.instance = MathJax;\n\n window.mathjaxLoadedComplete = true;\n console.log('MathJax has initialised!', new Date().toString());\n\n // in this file, initializeMathJax is called with a callback that has to be executed when MathJax was loaded\n if (callback) {\n callback();\n }\n\n // but previous versions of math-rendering-accessible they're expecting window.mathjaxLoadedP to be a Promise, so we also keep the\n // resolve here;\n resolve();\n },\n },\n loader: {\n load: ['input/mml'],\n // I just added preLoad: () => {} to prevent the console error: \"MathJax.loader.preLoad is not a function\",\n // which is being called because in math-rendering-accessible/render-math we're having this line:\n // import * as mr from '@pie-lib/math-rendering';\n // which takes us to: import { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';\n // which tries to call MathJax.loader.preLoad.\n // Understand that AllPackages is NOT needed in math-rendering-accessible, so it is not a problem if we hardcode this function.\n // The better solution would be for math-rendering-accessible to import math-rendering only IF needed,\n // but that's actually complicated and could cause other issues.\n preLoad: () => {},\n // function to call if a component fails to load\n // eslint-disable-next-line no-console\n failed: (error) => console.log(`MathJax(${error.package || '?'}): ${error.message}`),\n },\n tex: texConfig,\n chtml: {\n fontURL: 'https://unpkg.com/mathjax-full@3.2.2/ts/output/chtml/fonts/tex-woff-v2',\n displayAlign: 'center',\n },\n customKey: '@pie-lib/math-rendering-accessible@1',\n options: {\n enableEnrichment: true,\n sre: {\n speech: 'deep',\n },\n menuOptions: {\n settings: {\n assistiveMml: true,\n collapsible: false,\n explorer: false,\n },\n },\n },\n };\n // Load the MathJax script\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = `https://cdn.jsdelivr.net/npm/mathjax@${MathJaxVersion}/es5/tex-chtml-full.js`;\n script.async = true;\n document.head.appendChild(script);\n\n // at this time of the execution, there's no document.body; setTimeout does the trick\n setTimeout(() => {\n if (!window.mathjaxLoadedComplete) {\n const mathElements = document?.body?.querySelectorAll('[data-latex]');\n (mathElements || []).forEach(createPlaceholder);\n }\n });\n });\n};\n\nconst renderMath = (el, renderOpts) => {\n const usedForMmlOutput = typeof el === 'string';\n let executeOn = document.body;\n\n if (!usedForMmlOutput) {\n // If math-rendering was not available, then:\n // If window.mathjaxLoadedComplete, it means that we initialised MathJax using the function from this file,\n // and it means MathJax is successfully completed, so we can already use it\n if (window.mathjaxLoadedComplete) {\n renderContentsWithMathJax(el);\n } else if (window.mathjaxLoadedP) {\n // However, because there is a small chance that MathJax was initialised by a previous version of math-rendering-accessible,\n // we need to keep the old handling method, which means adding the .then.catch on window.mathjaxLoadedP Promise.\n // We still want to set window.mathjaxLoadedComplete, to prevent adding .then.catch after the first initialization\n // (again, in case MathJax was initialised by a previous math-rendering-accessible version)\n window.mathjaxLoadedP\n .then(() => {\n window.mathjaxLoadedComplete = true;\n renderContentsWithMathJax(el);\n })\n .catch((error) => console.error('Error in initializing MathJax:', error));\n }\n } else {\n // Here we're handling the case when renderMath is being called for mmlOutput\n if (window.MathJax && window.mathjaxLoadedP) {\n const div = document.createElement('div');\n\n div.innerHTML = el;\n executeOn = div;\n\n try {\n MathJax.texReset();\n MathJax.typesetClear();\n window.MathJax.typeset([executeOn]);\n const updatedDocument = window.MathJax.startup.document;\n const list = updatedDocument.math.list;\n const item = list.next;\n const mathMl = toMMl(item.data.root);\n\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n return parsedMathMl;\n } catch (error) {\n console.error('Error rendering math:', error.message);\n }\n\n return el;\n }\n\n return el;\n }\n};\n\n// this function calls itself\n(function() {\n initializeMathJax(renderContentWithMathJax);\n\n window[mathRenderingKEY] = {\n instance: {\n Typeset: renderMath,\n },\n };\n})();\n\nexport default renderMath;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"render-math.js","names":["_normalization","require","_SerializedMmlVisitor","_TexError","_interopRequireDefault","visitor","SerializedMmlVisitor","toMMl","node","visitTree","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","mathRenderingKEY","mathRenderingAccessibleKEY","MathJaxVersion","exports","getGlobal","window","fixMathElement","element","dataset","mathHandled","property","textContent","wrapMath","unWrapMath","unwrapped","replace","fixMathElements","el","arguments","length","undefined","document","mathElements","querySelectorAll","forEach","item","adjustMathMLStyle","nodes","setAttribute","createPlaceholder","_element$previousSibl","previousSibling","classList","contains","_element$parentNode","originalDisplay","style","display","placeholder","createElement","cssText","add","parentNode","insertBefore","removePlaceholdersAndRestoreDisplay","_targetElement$datase","targetElement","nextElementSibling","remove","removeExcessMjxContainers","content","elements","mjxContainers","i","removeChild","renderContentsWithMathJax","Array","elNode","renderContentWithMathJax","executeOn","body","HTMLElement","mathJaxInstance","instance","texReset","typesetClear","typesetPromise","then","updatedDocument","startup","list","math","next","_typeof2","data","mathMl","root","parsedMathMl","replaceAll","typesetRoot","e","console","error","toString","clear","convertMathJax2ToMathJax3","CommandMap","MathJax","_","input","tex","SymbolMap","requireMap","config","RequireLoad","RequireConfiguration","RequireMethods","Require","parser","name","required","GetArgument","match","TexError","Object","prototype","hasOwnProperty","call","Callback","args","isArray","Function","bind","apply","slice","concat","Error","Hub","Queue","m","fn","promise","Typeset","callback","Register","MessageHook","log","StartupHook","LoadHook","Config","initializeMathJax","mathjaxLoadedP","PreviousMathJaxIsUsed","version","texConfig","macros","parallelogram","overarc","napprox","longdiv","displayMath","autoload","color","colorv2","Promise","resolve","AMSmath","AMSsymbols","AMScd","HTML","noErrors","noUndefined","typeset","ready","mathjax","STATE","core","MathItem","Menu","ui","menu","rerender","_this","start","TYPESET","handleRetriesFor","defaultReady","globalObj","mathjaxLoadedComplete","Date","loader","load","preLoad","failed","message","chtml","fontURL","displayAlign","customKey","options","enableEnrichment","sre","speech","menuOptions","settings","assistiveMml","collapsible","explorer","script","type","src","async","head","appendChild","setTimeout","_document","renderMath","usedForMmlOutput","div","innerHTML","_default"],"sources":["../src/render-math.js"],"sourcesContent":["/* global MathJax */\nimport { wrapMath, unWrapMath } from './normalization';\nimport { SerializedMmlVisitor } from 'mathjax-full/js/core/MmlTree/SerializedMmlVisitor';\nimport TexError from 'mathjax-full/js/input/tex/TexError';\n\nconst visitor = new SerializedMmlVisitor();\nconst toMMl = (node) => visitor.visitTree(node);\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst mathRenderingKEY = '@pie-lib/math-rendering@2';\nconst mathRenderingAccessibleKEY = '@pie-lib/math-rendering-accessible@1';\n\nexport const MathJaxVersion = '3.2.2';\n\nexport const getGlobal = () => {\n // TODO does it make sense to use version?\n // const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\n // It looks like Ed made this change when he switched from mathjax3 to mathjax-full\n // I think it was supposed to make sure version 1 (using mathjax3) is not used\n // in combination with version 2 (using mathjax-full)\n // TODO higher level wrappers use this instance of math-rendering, and if 2 different instances are used, math rendering is not working\n // so I will hardcode this for now until a better solution is found\n if (typeof window !== 'undefined') {\n if (!window[mathRenderingAccessibleKEY]) {\n window[mathRenderingAccessibleKEY] = {};\n }\n return window[mathRenderingAccessibleKEY];\n } else {\n return {};\n }\n};\n\nexport const fixMathElement = (element) => {\n if (element.dataset.mathHandled) {\n return;\n }\n\n let property = 'innerText';\n\n if (element.textContent) {\n property = 'textContent';\n }\n\n if (element[property]) {\n element[property] = wrapMath(unWrapMath(element[property]).unwrapped);\n // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.\n // we need to replace the custom embedded elements with valid latex that Mathjax can understand\n element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);\n element.dataset.mathHandled = true;\n }\n};\n\nexport const fixMathElements = (el = document) => {\n const mathElements = el.querySelectorAll('[data-latex]');\n\n mathElements.forEach((item) => fixMathElement(item));\n};\n\nconst adjustMathMLStyle = (el = document) => {\n const nodes = el.querySelectorAll('math');\n nodes.forEach((node) => node.setAttribute('displaystyle', 'true'));\n};\n\nconst createPlaceholder = (element) => {\n if (!element.previousSibling || !element.previousSibling.classList?.contains('math-placeholder')) {\n // Store the original display style before setting it to 'none'\n element.dataset.originalDisplay = element.style.display || '';\n element.style.display = 'none';\n\n const placeholder = document.createElement('span');\n placeholder.style.cssText =\n 'height: 10px; width: 50px; display: inline-block; vertical-align: middle; justify-content: center; background: #fafafa; border-radius: 4px;';\n placeholder.classList.add('math-placeholder');\n element.parentNode?.insertBefore(placeholder, element);\n }\n};\n\nconst removePlaceholdersAndRestoreDisplay = () => {\n document.querySelectorAll('.math-placeholder').forEach((placeholder) => {\n const targetElement = placeholder.nextElementSibling;\n\n if (targetElement && targetElement.dataset?.originalDisplay !== undefined) {\n targetElement.style.display = targetElement.dataset.originalDisplay;\n delete targetElement.dataset.originalDisplay;\n }\n\n placeholder.remove();\n });\n};\nconst removeExcessMjxContainers = (content) => {\n const elements = content.querySelectorAll('[data-latex][data-math-handled=\"true\"]');\n\n elements.forEach((element) => {\n const mjxContainers = element.querySelectorAll('mjx-container');\n\n // Check if there are more than one mjx-container children.\n if (mjxContainers.length > 1) {\n for (let i = 1; i < mjxContainers.length; i++) {\n mjxContainers[i].parentNode.removeChild(mjxContainers[i]);\n }\n }\n });\n};\n\nconst renderContentsWithMathJax = (el) => {\n // el sometimes is an array\n // renderMath is used like that in pie-print-support and pie-element-extensions\n // there seems to be no reason for that, however, it's better to handle the case here\n if (el instanceof Array) {\n el.forEach((elNode) => renderContentWithMathJax(elNode));\n } else {\n renderContentWithMathJax(el);\n }\n};\n\nconst renderContentWithMathJax = (executeOn) => {\n executeOn = executeOn || document.body;\n\n // this happens for charting - mark-label; we receive a ref which is not yet ready ( el = { current: null })\n // we have to fix this in charting\n if (!(executeOn instanceof HTMLElement)) return;\n\n fixMathElements(executeOn);\n adjustMathMLStyle(executeOn);\n\n const mathJaxInstance = getGlobal().instance;\n\n if (mathJaxInstance) {\n // Reset and clear typesetting before processing the new content\n // Reset the tex labels (and automatic equation number).\n\n mathJaxInstance.texReset();\n\n // Reset the typesetting system (font caches, etc.)\n mathJaxInstance.typesetClear();\n\n // Use typesetPromise for asynchronous typesetting\n // Using MathJax.typesetPromise() for asynchronous typesetting to handle situations where additional code needs to be loaded (e.g., for certain TeX commands or characters).\n // This ensures typesetting waits for any needed resources to load and complete processing, unlike the synchronous MathJax.typeset() which can't handle such dynamic loading.\n mathJaxInstance\n .typesetPromise([executeOn])\n .then(() => {\n try {\n removePlaceholdersAndRestoreDisplay();\n removeExcessMjxContainers(executeOn);\n\n const updatedDocument = mathJaxInstance.startup.document;\n const list = updatedDocument.math.list;\n\n for (let item = list.next; typeof item.data !== 'symbol'; item = item.next) {\n const mathMl = toMMl(item.data.root);\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n item.data.typesetRoot.setAttribute('data-mathml', parsedMathMl);\n item.data.typesetRoot.setAttribute('tabindex', '-1');\n }\n\n // If the original input was a string, return the parsed MathML\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error post-processing MathJax typesetting:', e.toString());\n }\n\n // Clearing the document if needed\n mathJaxInstance.startup.document.clear();\n })\n .catch((error) => {\n // If there was an internal error, put the message into the output instead\n // eslint-disable-next-line no-console\n console.error('Error in typesetting with MathJax:', error);\n });\n }\n};\n\nconst convertMathJax2ToMathJax3 = () => {\n // Make MathJax v2 compatible with v3\n // https://docs.mathjax.org/en/v3.2-latest/upgrading/v2.html#version-2-compatibility-example\n // Replace the require command map with a new one that checks for\n // renamed extensions and converts them to the new names.\n const CommandMap = MathJax._.input.tex.SymbolMap.CommandMap;\n const requireMap = MathJax.config.startup.requireMap;\n const RequireLoad = MathJax._.input.tex.require.RequireConfiguration.RequireLoad;\n const RequireMethods = {\n Require: function(parser, name) {\n let required = parser.GetArgument(name);\n if (required.match(/[^_a-zA-Z0-9]/) || required === '') {\n throw new TexError('BadPackageName', 'Argument for %1 is not a valid package name', name);\n }\n if (Object.prototype.hasOwnProperty.call(requireMap, required)) {\n required = requireMap[required];\n }\n RequireLoad(parser, required);\n },\n };\n\n new CommandMap('require', { require: 'Require' }, RequireMethods);\n\n //\n // Add a replacement for MathJax.Callback command\n //\n MathJax.Callback = function(args) {\n if (Array.isArray(args)) {\n if (args.length === 1 && typeof args[0] === 'function') {\n return args[0];\n } else if (typeof args[0] === 'string' && args[1] instanceof Object && typeof args[1][args[0]] === 'function') {\n return Function.bind.apply(args[1][args[0]], args.slice(1));\n } else if (typeof args[0] === 'function') {\n return Function.bind.apply(args[0], [window].concat(args.slice(1)));\n } else if (typeof args[1] === 'function') {\n return Function.bind.apply(args[1], [args[0]].concat(args.slice(2)));\n }\n } else if (typeof args === 'function') {\n return args;\n }\n throw Error('Can\\'t make callback from given data');\n };\n\n //\n // Add a replacement for MathJax.Hub commands\n //\n MathJax.Hub = {\n Queue: function() {\n for (let i = 0, m = arguments.length; i < m; i++) {\n const fn = MathJax.Callback(arguments[i]);\n MathJax.startup.promise = MathJax.startup.promise.then(fn);\n }\n return MathJax.startup.promise;\n },\n Typeset: function(elements, callback) {\n let promise = MathJax.typesetPromise(elements);\n\n if (callback) {\n promise = promise.then(callback);\n }\n return promise;\n },\n Register: {\n MessageHook: function() {\n // eslint-disable-next-line no-console\n console.log('MessageHooks are not supported in version 3');\n },\n StartupHook: function() {\n // eslint-disable-next-line no-console\n console.log('StartupHooks are not supported in version 3');\n },\n LoadHook: function() {\n // eslint-disable-next-line no-console\n console.log('LoadHooks are not supported in version 3');\n },\n },\n Config: function() {\n // eslint-disable-next-line no-console\n console.log('MathJax configurations should be converted for version 3');\n },\n };\n};\nexport const initializeMathJax = (callback) => {\n if (window.mathjaxLoadedP) {\n return;\n }\n\n const PreviousMathJaxIsUsed =\n window.MathJax &&\n window.MathJax.version &&\n window.MathJax.version !== MathJaxVersion &&\n window.MathJax.version[0] === '2';\n\n const texConfig = {\n macros: {\n parallelogram: '\\\\lower.2em{\\\\Huge\\\\unicode{x25B1}}',\n overarc: '\\\\overparen',\n napprox: '\\\\not\\\\approx',\n longdiv: '\\\\enclose{longdiv}',\n },\n displayMath: [\n ['$$', '$$'],\n ['\\\\[', '\\\\]'],\n ],\n };\n\n if (PreviousMathJaxIsUsed) {\n texConfig.autoload = {\n color: [], // don't autoload the color extension\n colorv2: ['color'], // do autoload the colorv2 extension\n };\n }\n\n // Create a new promise that resolves when MathJax is ready\n window.mathjaxLoadedP = new Promise((resolve) => {\n // Set up the MathJax configuration\n window.MathJax = {\n startup: {\n //\n // Mapping of old extension names to new ones\n //\n requireMap: PreviousMathJaxIsUsed\n ? {\n AMSmath: 'ams',\n AMSsymbols: 'ams',\n AMScd: 'amscd',\n HTML: 'html',\n noErrors: 'noerrors',\n noUndefined: 'noundefined',\n }\n : {},\n typeset: false,\n ready: () => {\n if (PreviousMathJaxIsUsed) {\n convertMathJax2ToMathJax3();\n }\n\n const { mathjax } = MathJax._.mathjax;\n const { STATE } = MathJax._.core.MathItem;\n const { Menu } = MathJax._.ui.menu.Menu;\n const rerender = Menu.prototype.rerender;\n Menu.prototype.rerender = function(start = STATE.TYPESET) {\n mathjax.handleRetriesFor(() => rerender.call(this, start));\n };\n MathJax.startup.defaultReady();\n // Set the MathJax instance in the global object\n\n const globalObj = getGlobal();\n globalObj.instance = MathJax;\n\n window.mathjaxLoadedComplete = true;\n // eslint-disable-next-line no-console\n console.log('MathJax has initialised!', new Date().toString());\n\n // in this file, initializeMathJax is called with a callback that has to be executed when MathJax was loaded\n if (callback) {\n callback();\n }\n\n // but previous versions of math-rendering-accessible they're expecting window.mathjaxLoadedP to be a Promise, so we also keep the\n // resolve here;\n resolve();\n },\n },\n loader: {\n load: ['input/mml'],\n // I just added preLoad: () => {} to prevent the console error: \"MathJax.loader.preLoad is not a function\",\n // which is being called because in math-rendering-accessible/render-math we're having this line:\n // import * as mr from '@pie-lib/math-rendering';\n // which takes us to: import { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';\n // which tries to call MathJax.loader.preLoad.\n // Understand that AllPackages is NOT needed in math-rendering-accessible, so it is not a problem if we hardcode this function.\n // The better solution would be for math-rendering-accessible to import math-rendering only IF needed,\n // but that's actually complicated and could cause other issues.\n preLoad: () => {},\n // function to call if a component fails to load\n // eslint-disable-next-line no-console\n failed: (error) => console.log(`MathJax(${error.package || '?'}): ${error.message}`),\n },\n tex: texConfig,\n chtml: {\n fontURL: 'https://unpkg.com/mathjax-full@3.2.2/ts/output/chtml/fonts/tex-woff-v2',\n displayAlign: 'center',\n },\n customKey: '@pie-lib/math-rendering-accessible@1',\n options: {\n enableEnrichment: true,\n sre: {\n speech: 'deep',\n },\n menuOptions: {\n settings: {\n assistiveMml: true,\n collapsible: false,\n explorer: false,\n },\n },\n },\n };\n // Load the MathJax script\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = `https://cdn.jsdelivr.net/npm/mathjax@${MathJaxVersion}/es5/tex-chtml-full.js`;\n script.async = true;\n document.head.appendChild(script);\n\n // at this time of the execution, there's no document.body; setTimeout does the trick\n setTimeout(() => {\n if (!window.mathjaxLoadedComplete) {\n const mathElements = document?.body?.querySelectorAll('[data-latex]');\n (mathElements || []).forEach(createPlaceholder);\n }\n });\n });\n};\n\nconst renderMath = (el) => {\n const usedForMmlOutput = typeof el === 'string';\n let executeOn = document.body;\n\n if (!usedForMmlOutput) {\n // If math-rendering was not available, then:\n // If window.mathjaxLoadedComplete, it means that we initialised MathJax using the function from this file,\n // and it means MathJax is successfully completed, so we can already use it\n if (window.mathjaxLoadedComplete) {\n renderContentsWithMathJax(el);\n } else if (window.mathjaxLoadedP) {\n // However, because there is a small chance that MathJax was initialised by a previous version of math-rendering-accessible,\n // we need to keep the old handling method, which means adding the .then.catch on window.mathjaxLoadedP Promise.\n // We still want to set window.mathjaxLoadedComplete, to prevent adding .then.catch after the first initialization\n // (again, in case MathJax was initialised by a previous math-rendering-accessible version)\n window.mathjaxLoadedP\n .then(() => {\n window.mathjaxLoadedComplete = true;\n renderContentsWithMathJax(el);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error('Error in initializing MathJax:', error);\n });\n }\n } else {\n // Here we're handling the case when renderMath is being called for mmlOutput\n if (window.MathJax && window.mathjaxLoadedP) {\n const div = document.createElement('div');\n\n div.innerHTML = el;\n executeOn = div;\n\n try {\n MathJax.texReset();\n MathJax.typesetClear();\n window.MathJax.typeset([executeOn]);\n const updatedDocument = window.MathJax.startup.document;\n const list = updatedDocument.math.list;\n const item = list.next;\n const mathMl = toMMl(item.data.root);\n\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n return parsedMathMl;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error rendering math:', error.message);\n }\n\n return el;\n }\n\n return el;\n }\n};\n\n// this function calls itself\n(function() {\n initializeMathJax(renderContentWithMathJax);\n\n window[mathRenderingKEY] = {\n instance: {\n Typeset: renderMath,\n },\n };\n})();\n\nexport default renderMath;\n"],"mappings":";;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AAHA;;AAKA,IAAMI,OAAO,GAAG,IAAIC,0CAAoB,CAAC,CAAC;AAC1C,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAIC,IAAI;EAAA,OAAKH,OAAO,CAACI,SAAS,CAACD,IAAI,CAAC;AAAA;AAE/C,IAAME,mBAAmB,GAAG,yBAAyB;AACrD,IAAMC,aAAa,GAAG,YAAY;AAElC,IAAMC,gBAAgB,GAAG,2BAA2B;AACpD,IAAMC,0BAA0B,GAAG,sCAAsC;AAElE,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,OAAO;AAE9B,IAAME,SAAS,GAAAD,OAAA,CAAAC,SAAA,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,IAAI,CAACA,MAAM,CAACJ,0BAA0B,CAAC,EAAE;MACvCI,MAAM,CAACJ,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACzC;IACA,OAAOI,MAAM,CAACJ,0BAA0B,CAAC;EAC3C,CAAC,MAAM;IACL,OAAO,CAAC,CAAC;EACX;AACF,CAAC;AAEM,IAAMK,cAAc,GAAAH,OAAA,CAAAG,cAAA,GAAG,SAAjBA,cAAcA,CAAIC,OAAO,EAAK;EACzC,IAAIA,OAAO,CAACC,OAAO,CAACC,WAAW,EAAE;IAC/B;EACF;EAEA,IAAIC,QAAQ,GAAG,WAAW;EAE1B,IAAIH,OAAO,CAACI,WAAW,EAAE;IACvBD,QAAQ,GAAG,aAAa;EAC1B;EAEA,IAAIH,OAAO,CAACG,QAAQ,CAAC,EAAE;IACrBH,OAAO,CAACG,QAAQ,CAAC,GAAG,IAAAE,uBAAQ,EAAC,IAAAC,yBAAU,EAACN,OAAO,CAACG,QAAQ,CAAC,CAAC,CAACI,SAAS,CAAC;IACrE;IACA;IACAP,OAAO,CAACG,QAAQ,CAAC,GAAGH,OAAO,CAACG,QAAQ,CAAC,CAACK,OAAO,CAACjB,mBAAmB,EAAEC,aAAa,CAAC;IACjFQ,OAAO,CAACC,OAAO,CAACC,WAAW,GAAG,IAAI;EACpC;AACF,CAAC;AAEM,IAAMO,eAAe,GAAAb,OAAA,CAAAa,eAAA,GAAG,SAAlBA,eAAeA,CAAA,EAAsB;EAAA,IAAlBC,EAAE,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGG,QAAQ;EAC3C,IAAMC,YAAY,GAAGL,EAAE,CAACM,gBAAgB,CAAC,cAAc,CAAC;EAExDD,YAAY,CAACE,OAAO,CAAC,UAACC,IAAI;IAAA,OAAKnB,cAAc,CAACmB,IAAI,CAAC;EAAA,EAAC;AACtD,CAAC;AAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAsB;EAAA,IAAlBT,EAAE,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGG,QAAQ;EACtC,IAAMM,KAAK,GAAGV,EAAE,CAACM,gBAAgB,CAAC,MAAM,CAAC;EACzCI,KAAK,CAACH,OAAO,CAAC,UAAC5B,IAAI;IAAA,OAAKA,IAAI,CAACgC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC;EAAA,EAAC;AACpE,CAAC;AAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAItB,OAAO,EAAK;EAAA,IAAAuB,qBAAA;EACrC,IAAI,CAACvB,OAAO,CAACwB,eAAe,IAAI,GAAAD,qBAAA,GAACvB,OAAO,CAACwB,eAAe,CAACC,SAAS,cAAAF,qBAAA,eAAjCA,qBAAA,CAAmCG,QAAQ,CAAC,kBAAkB,CAAC,GAAE;IAAA,IAAAC,mBAAA;IAChG;IACA3B,OAAO,CAACC,OAAO,CAAC2B,eAAe,GAAG5B,OAAO,CAAC6B,KAAK,CAACC,OAAO,IAAI,EAAE;IAC7D9B,OAAO,CAAC6B,KAAK,CAACC,OAAO,GAAG,MAAM;IAE9B,IAAMC,WAAW,GAAGjB,QAAQ,CAACkB,aAAa,CAAC,MAAM,CAAC;IAClDD,WAAW,CAACF,KAAK,CAACI,OAAO,GACvB,6IAA6I;IAC/IF,WAAW,CAACN,SAAS,CAACS,GAAG,CAAC,kBAAkB,CAAC;IAC7C,CAAAP,mBAAA,GAAA3B,OAAO,CAACmC,UAAU,cAAAR,mBAAA,eAAlBA,mBAAA,CAAoBS,YAAY,CAACL,WAAW,EAAE/B,OAAO,CAAC;EACxD;AACF,CAAC;AAED,IAAMqC,mCAAmC,GAAG,SAAtCA,mCAAmCA,CAAA,EAAS;EAChDvB,QAAQ,CAACE,gBAAgB,CAAC,mBAAmB,CAAC,CAACC,OAAO,CAAC,UAACc,WAAW,EAAK;IAAA,IAAAO,qBAAA;IACtE,IAAMC,aAAa,GAAGR,WAAW,CAACS,kBAAkB;IAEpD,IAAID,aAAa,IAAI,EAAAD,qBAAA,GAAAC,aAAa,CAACtC,OAAO,cAAAqC,qBAAA,uBAArBA,qBAAA,CAAuBV,eAAe,MAAKf,SAAS,EAAE;MACzE0B,aAAa,CAACV,KAAK,CAACC,OAAO,GAAGS,aAAa,CAACtC,OAAO,CAAC2B,eAAe;MACnE,OAAOW,aAAa,CAACtC,OAAO,CAAC2B,eAAe;IAC9C;IAEAG,WAAW,CAACU,MAAM,CAAC,CAAC;EACtB,CAAC,CAAC;AACJ,CAAC;AACD,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,OAAO,EAAK;EAC7C,IAAMC,QAAQ,GAAGD,OAAO,CAAC3B,gBAAgB,CAAC,wCAAwC,CAAC;EAEnF4B,QAAQ,CAAC3B,OAAO,CAAC,UAACjB,OAAO,EAAK;IAC5B,IAAM6C,aAAa,GAAG7C,OAAO,CAACgB,gBAAgB,CAAC,eAAe,CAAC;;IAE/D;IACA,IAAI6B,aAAa,CAACjC,MAAM,GAAG,CAAC,EAAE;MAC5B,KAAK,IAAIkC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,aAAa,CAACjC,MAAM,EAAEkC,CAAC,EAAE,EAAE;QAC7CD,aAAa,CAACC,CAAC,CAAC,CAACX,UAAU,CAACY,WAAW,CAACF,aAAa,CAACC,CAAC,CAAC,CAAC;MAC3D;IACF;EACF,CAAC,CAAC;AACJ,CAAC;AAED,IAAME,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAItC,EAAE,EAAK;EACxC;EACA;EACA;EACA,IAAIA,EAAE,YAAYuC,KAAK,EAAE;IACvBvC,EAAE,CAACO,OAAO,CAAC,UAACiC,MAAM;MAAA,OAAKC,wBAAwB,CAACD,MAAM,CAAC;IAAA,EAAC;EAC1D,CAAC,MAAM;IACLC,wBAAwB,CAACzC,EAAE,CAAC;EAC9B;AACF,CAAC;AAED,IAAMyC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,SAAS,EAAK;EAC9CA,SAAS,GAAGA,SAAS,IAAItC,QAAQ,CAACuC,IAAI;;EAEtC;EACA;EACA,IAAI,EAAED,SAAS,YAAYE,WAAW,CAAC,EAAE;EAEzC7C,eAAe,CAAC2C,SAAS,CAAC;EAC1BjC,iBAAiB,CAACiC,SAAS,CAAC;EAE5B,IAAMG,eAAe,GAAG1D,SAAS,CAAC,CAAC,CAAC2D,QAAQ;EAE5C,IAAID,eAAe,EAAE;IACnB;IACA;;IAEAA,eAAe,CAACE,QAAQ,CAAC,CAAC;;IAE1B;IACAF,eAAe,CAACG,YAAY,CAAC,CAAC;;IAE9B;IACA;IACA;IACAH,eAAe,CACZI,cAAc,CAAC,CAACP,SAAS,CAAC,CAAC,CAC3BQ,IAAI,CAAC,YAAM;MACV,IAAI;QACFvB,mCAAmC,CAAC,CAAC;QACrCK,yBAAyB,CAACU,SAAS,CAAC;QAEpC,IAAMS,eAAe,GAAGN,eAAe,CAACO,OAAO,CAAChD,QAAQ;QACxD,IAAMiD,IAAI,GAAGF,eAAe,CAACG,IAAI,CAACD,IAAI;QAEtC,KAAK,IAAI7C,IAAI,GAAG6C,IAAI,CAACE,IAAI,EAAE,IAAAC,QAAA,aAAOhD,IAAI,CAACiD,IAAI,MAAK,QAAQ,EAAEjD,IAAI,GAAGA,IAAI,CAAC+C,IAAI,EAAE;UAC1E,IAAMG,MAAM,GAAGhF,KAAK,CAAC8B,IAAI,CAACiD,IAAI,CAACE,IAAI,CAAC;UACpC,IAAMC,YAAY,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;UAEhDrD,IAAI,CAACiD,IAAI,CAACK,WAAW,CAACnD,YAAY,CAAC,aAAa,EAAEiD,YAAY,CAAC;UAC/DpD,IAAI,CAACiD,IAAI,CAACK,WAAW,CAACnD,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;QACtD;;QAEA;MACF,CAAC,CAAC,OAAOoD,CAAC,EAAE;QACV;QACAC,OAAO,CAACC,KAAK,CAAC,4CAA4C,EAAEF,CAAC,CAACG,QAAQ,CAAC,CAAC,CAAC;MAC3E;;MAEA;MACArB,eAAe,CAACO,OAAO,CAAChD,QAAQ,CAAC+D,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,SACI,CAAC,UAACF,KAAK,EAAK;MAChB;MACA;MACAD,OAAO,CAACC,KAAK,CAAC,oCAAoC,EAAEA,KAAK,CAAC;IAC5D,CAAC,CAAC;EACN;AACF,CAAC;AAED,IAAMG,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA,EAAS;EACtC;EACA;EACA;EACA;EACA,IAAMC,UAAU,GAAGC,OAAO,CAACC,CAAC,CAACC,KAAK,CAACC,GAAG,CAACC,SAAS,CAACL,UAAU;EAC3D,IAAMM,UAAU,GAAGL,OAAO,CAACM,MAAM,CAACxB,OAAO,CAACuB,UAAU;EACpD,IAAME,WAAW,GAAGP,OAAO,CAACC,CAAC,CAACC,KAAK,CAACC,GAAG,CAACrG,OAAO,CAAC0G,oBAAoB,CAACD,WAAW;EAChF,IAAME,cAAc,GAAG;IACrBC,OAAO,EAAE,SAATA,OAAOA,CAAWC,MAAM,EAAEC,IAAI,EAAE;MAC9B,IAAIC,QAAQ,GAAGF,MAAM,CAACG,WAAW,CAACF,IAAI,CAAC;MACvC,IAAIC,QAAQ,CAACE,KAAK,CAAC,eAAe,CAAC,IAAIF,QAAQ,KAAK,EAAE,EAAE;QACtD,MAAM,IAAIG,oBAAQ,CAAC,gBAAgB,EAAE,6CAA6C,EAAEJ,IAAI,CAAC;MAC3F;MACA,IAAIK,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACf,UAAU,EAAEQ,QAAQ,CAAC,EAAE;QAC9DA,QAAQ,GAAGR,UAAU,CAACQ,QAAQ,CAAC;MACjC;MACAN,WAAW,CAACI,MAAM,EAAEE,QAAQ,CAAC;IAC/B;EACF,CAAC;EAED,IAAId,UAAU,CAAC,SAAS,EAAE;IAAEjG,OAAO,EAAE;EAAU,CAAC,EAAE2G,cAAc,CAAC;;EAEjE;EACA;EACA;EACAT,OAAO,CAACqB,QAAQ,GAAG,UAASC,IAAI,EAAE;IAChC,IAAIrD,KAAK,CAACsD,OAAO,CAACD,IAAI,CAAC,EAAE;MACvB,IAAIA,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI,OAAO0F,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;QACtD,OAAOA,IAAI,CAAC,CAAC,CAAC;MAChB,CAAC,MAAM,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAIA,IAAI,CAAC,CAAC,CAAC,YAAYL,MAAM,IAAI,OAAOK,IAAI,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7G,OAAOE,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEA,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC;MAC7D,CAAC,MAAM,IAAI,OAAOL,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;QACxC,OAAOE,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAACxG,MAAM,CAAC,CAAC8G,MAAM,CAACN,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;MACrE,CAAC,MAAM,IAAI,OAAOL,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;QACxC,OAAOE,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC,CAAC,CAAC,CAACM,MAAM,CAACN,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;MACtE;IACF,CAAC,MAAM,IAAI,OAAOL,IAAI,KAAK,UAAU,EAAE;MACrC,OAAOA,IAAI;IACb;IACA,MAAMO,KAAK,CAAC,sCAAsC,CAAC;EACrD,CAAC;;EAED;EACA;EACA;EACA7B,OAAO,CAAC8B,GAAG,GAAG;IACZC,KAAK,EAAE,SAAPA,KAAKA,CAAA,EAAa;MAChB,KAAK,IAAIjE,CAAC,GAAG,CAAC,EAAEkE,CAAC,GAAGrG,SAAS,CAACC,MAAM,EAAEkC,CAAC,GAAGkE,CAAC,EAAElE,CAAC,EAAE,EAAE;QAChD,IAAMmE,EAAE,GAAGjC,OAAO,CAACqB,QAAQ,CAAC1F,SAAS,CAACmC,CAAC,CAAC,CAAC;QACzCkC,OAAO,CAAClB,OAAO,CAACoD,OAAO,GAAGlC,OAAO,CAAClB,OAAO,CAACoD,OAAO,CAACtD,IAAI,CAACqD,EAAE,CAAC;MAC5D;MACA,OAAOjC,OAAO,CAAClB,OAAO,CAACoD,OAAO;IAChC,CAAC;IACDC,OAAO,EAAE,SAATA,OAAOA,CAAWvE,QAAQ,EAAEwE,QAAQ,EAAE;MACpC,IAAIF,OAAO,GAAGlC,OAAO,CAACrB,cAAc,CAACf,QAAQ,CAAC;MAE9C,IAAIwE,QAAQ,EAAE;QACZF,OAAO,GAAGA,OAAO,CAACtD,IAAI,CAACwD,QAAQ,CAAC;MAClC;MACA,OAAOF,OAAO;IAChB,CAAC;IACDG,QAAQ,EAAE;MACRC,WAAW,EAAE,SAAbA,WAAWA,CAAA,EAAa;QACtB;QACA5C,OAAO,CAAC6C,GAAG,CAAC,6CAA6C,CAAC;MAC5D,CAAC;MACDC,WAAW,EAAE,SAAbA,WAAWA,CAAA,EAAa;QACtB;QACA9C,OAAO,CAAC6C,GAAG,CAAC,6CAA6C,CAAC;MAC5D,CAAC;MACDE,QAAQ,EAAE,SAAVA,QAAQA,CAAA,EAAa;QACnB;QACA/C,OAAO,CAAC6C,GAAG,CAAC,0CAA0C,CAAC;MACzD;IACF,CAAC;IACDG,MAAM,EAAE,SAARA,MAAMA,CAAA,EAAa;MACjB;MACAhD,OAAO,CAAC6C,GAAG,CAAC,0DAA0D,CAAC;IACzE;EACF,CAAC;AACH,CAAC;AACM,IAAMI,iBAAiB,GAAA/H,OAAA,CAAA+H,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIP,QAAQ,EAAK;EAC7C,IAAItH,MAAM,CAAC8H,cAAc,EAAE;IACzB;EACF;EAEA,IAAMC,qBAAqB,GACzB/H,MAAM,CAACkF,OAAO,IACdlF,MAAM,CAACkF,OAAO,CAAC8C,OAAO,IACtBhI,MAAM,CAACkF,OAAO,CAAC8C,OAAO,KAAKnI,cAAc,IACzCG,MAAM,CAACkF,OAAO,CAAC8C,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;EAEnC,IAAMC,SAAS,GAAG;IAChBC,MAAM,EAAE;MACNC,aAAa,EAAE,qCAAqC;MACpDC,OAAO,EAAE,aAAa;MACtBC,OAAO,EAAE,eAAe;MACxBC,OAAO,EAAE;IACX,CAAC;IACDC,WAAW,EAAE,CACX,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,CAAC,KAAK,EAAE,KAAK,CAAC;EAElB,CAAC;EAED,IAAIR,qBAAqB,EAAE;IACzBE,SAAS,CAACO,QAAQ,GAAG;MACnBC,KAAK,EAAE,EAAE;MAAE;MACXC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAE;IACtB,CAAC;EACH;;EAEA;EACA1I,MAAM,CAAC8H,cAAc,GAAG,IAAIa,OAAO,CAAC,UAACC,OAAO,EAAK;IAC/C;IACA5I,MAAM,CAACkF,OAAO,GAAG;MACflB,OAAO,EAAE;QACP;QACA;QACA;QACAuB,UAAU,EAAEwC,qBAAqB,GAC7B;UACEc,OAAO,EAAE,KAAK;UACdC,UAAU,EAAE,KAAK;UACjBC,KAAK,EAAE,OAAO;UACdC,IAAI,EAAE,MAAM;UACZC,QAAQ,EAAE,UAAU;UACpBC,WAAW,EAAE;QACf,CAAC,GACD,CAAC,CAAC;QACNC,OAAO,EAAE,KAAK;QACdC,KAAK,EAAE,SAAPA,KAAKA,CAAA,EAAQ;UACX,IAAIrB,qBAAqB,EAAE;YACzB/C,yBAAyB,CAAC,CAAC;UAC7B;UAEA,IAAQqE,OAAO,GAAKnE,OAAO,CAACC,CAAC,CAACkE,OAAO,CAA7BA,OAAO;UACf,IAAQC,KAAK,GAAKpE,OAAO,CAACC,CAAC,CAACoE,IAAI,CAACC,QAAQ,CAAjCF,KAAK;UACb,IAAQG,IAAI,GAAKvE,OAAO,CAACC,CAAC,CAACuE,EAAE,CAACC,IAAI,CAACF,IAAI,CAA/BA,IAAI;UACZ,IAAMG,QAAQ,GAAGH,IAAI,CAACrD,SAAS,CAACwD,QAAQ;UACxCH,IAAI,CAACrD,SAAS,CAACwD,QAAQ,GAAG,YAAgC;YAAA,IAAAC,KAAA;YAAA,IAAvBC,KAAK,GAAAjJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGyI,KAAK,CAACS,OAAO;YACtDV,OAAO,CAACW,gBAAgB,CAAC;cAAA,OAAMJ,QAAQ,CAACtD,IAAI,CAACuD,KAAI,EAAEC,KAAK,CAAC;YAAA,EAAC;UAC5D,CAAC;UACD5E,OAAO,CAAClB,OAAO,CAACiG,YAAY,CAAC,CAAC;UAC9B;;UAEA,IAAMC,SAAS,GAAGnK,SAAS,CAAC,CAAC;UAC7BmK,SAAS,CAACxG,QAAQ,GAAGwB,OAAO;UAE5BlF,MAAM,CAACmK,qBAAqB,GAAG,IAAI;UACnC;UACAvF,OAAO,CAAC6C,GAAG,CAAC,0BAA0B,EAAE,IAAI2C,IAAI,CAAC,CAAC,CAACtF,QAAQ,CAAC,CAAC,CAAC;;UAE9D;UACA,IAAIwC,QAAQ,EAAE;YACZA,QAAQ,CAAC,CAAC;UACZ;;UAEA;UACA;UACAsB,OAAO,CAAC,CAAC;QACX;MACF,CAAC;MACDyB,MAAM,EAAE;QACNC,IAAI,EAAE,CAAC,WAAW,CAAC;QACnB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACAC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAQ,CAAC,CAAC;QACjB;QACA;QACAC,MAAM,EAAE,SAARA,MAAMA,CAAG3F,KAAK;UAAA,OAAKD,OAAO,CAAC6C,GAAG,YAAAX,MAAA,CAAYjC,KAAK,WAAQ,IAAI,GAAG,SAAAiC,MAAA,CAAMjC,KAAK,CAAC4F,OAAO,CAAE,CAAC;QAAA;MACtF,CAAC;MACDpF,GAAG,EAAE4C,SAAS;MACdyC,KAAK,EAAE;QACLC,OAAO,EAAE,wEAAwE;QACjFC,YAAY,EAAE;MAChB,CAAC;MACDC,SAAS,EAAE,sCAAsC;MACjDC,OAAO,EAAE;QACPC,gBAAgB,EAAE,IAAI;QACtBC,GAAG,EAAE;UACHC,MAAM,EAAE;QACV,CAAC;QACDC,WAAW,EAAE;UACXC,QAAQ,EAAE;YACRC,YAAY,EAAE,IAAI;YAClBC,WAAW,EAAE,KAAK;YAClBC,QAAQ,EAAE;UACZ;QACF;MACF;IACF,CAAC;IACD;IACA,IAAMC,MAAM,GAAGvK,QAAQ,CAACkB,aAAa,CAAC,QAAQ,CAAC;IAC/CqJ,MAAM,CAACC,IAAI,GAAG,iBAAiB;IAC/BD,MAAM,CAACE,GAAG,2CAAA3E,MAAA,CAA2CjH,cAAc,2BAAwB;IAC3F0L,MAAM,CAACG,KAAK,GAAG,IAAI;IACnB1K,QAAQ,CAAC2K,IAAI,CAACC,WAAW,CAACL,MAAM,CAAC;;IAEjC;IACAM,UAAU,CAAC,YAAM;MACf,IAAI,CAAC7L,MAAM,CAACmK,qBAAqB,EAAE;QAAA,IAAA2B,SAAA;QACjC,IAAM7K,YAAY,IAAA6K,SAAA,GAAG9K,QAAQ,cAAA8K,SAAA,gBAAAA,SAAA,GAARA,SAAA,CAAUvI,IAAI,cAAAuI,SAAA,uBAAdA,SAAA,CAAgB5K,gBAAgB,CAAC,cAAc,CAAC;QACrE,CAACD,YAAY,IAAI,EAAE,EAAEE,OAAO,CAACK,iBAAiB,CAAC;MACjD;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAED,IAAMuK,UAAU,GAAG,SAAbA,UAAUA,CAAInL,EAAE,EAAK;EACzB,IAAMoL,gBAAgB,GAAG,OAAOpL,EAAE,KAAK,QAAQ;EAC/C,IAAI0C,SAAS,GAAGtC,QAAQ,CAACuC,IAAI;EAE7B,IAAI,CAACyI,gBAAgB,EAAE;IACrB;IACA;IACA;IACA,IAAIhM,MAAM,CAACmK,qBAAqB,EAAE;MAChCjH,yBAAyB,CAACtC,EAAE,CAAC;IAC/B,CAAC,MAAM,IAAIZ,MAAM,CAAC8H,cAAc,EAAE;MAChC;MACA;MACA;MACA;MACA9H,MAAM,CAAC8H,cAAc,CAClBhE,IAAI,CAAC,YAAM;QACV9D,MAAM,CAACmK,qBAAqB,GAAG,IAAI;QACnCjH,yBAAyB,CAACtC,EAAE,CAAC;MAC/B,CAAC,CAAC,SACI,CAAC,UAACiE,KAAK,EAAK;QAChB;QACAD,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;MACxD,CAAC,CAAC;IACN;EACF,CAAC,MAAM;IACL;IACA,IAAI7E,MAAM,CAACkF,OAAO,IAAIlF,MAAM,CAAC8H,cAAc,EAAE;MAC3C,IAAMmE,GAAG,GAAGjL,QAAQ,CAACkB,aAAa,CAAC,KAAK,CAAC;MAEzC+J,GAAG,CAACC,SAAS,GAAGtL,EAAE;MAClB0C,SAAS,GAAG2I,GAAG;MAEf,IAAI;QACF/G,OAAO,CAACvB,QAAQ,CAAC,CAAC;QAClBuB,OAAO,CAACtB,YAAY,CAAC,CAAC;QACtB5D,MAAM,CAACkF,OAAO,CAACiE,OAAO,CAAC,CAAC7F,SAAS,CAAC,CAAC;QACnC,IAAMS,eAAe,GAAG/D,MAAM,CAACkF,OAAO,CAAClB,OAAO,CAAChD,QAAQ;QACvD,IAAMiD,IAAI,GAAGF,eAAe,CAACG,IAAI,CAACD,IAAI;QACtC,IAAM7C,IAAI,GAAG6C,IAAI,CAACE,IAAI;QACtB,IAAMG,MAAM,GAAGhF,KAAK,CAAC8B,IAAI,CAACiD,IAAI,CAACE,IAAI,CAAC;QAEpC,IAAMC,YAAY,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QAEhD,OAAOD,YAAY;MACrB,CAAC,CAAC,OAAOK,KAAK,EAAE;QACd;QACAD,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC4F,OAAO,CAAC;MACvD;MAEA,OAAO7J,EAAE;IACX;IAEA,OAAOA,EAAE;EACX;AACF,CAAC;;AAED;AACA,CAAC,YAAW;EACViH,iBAAiB,CAACxE,wBAAwB,CAAC;EAE3CrD,MAAM,CAACL,gBAAgB,CAAC,GAAG;IACzB+D,QAAQ,EAAE;MACR2D,OAAO,EAAE0E;IACX;EACF,CAAC;AACH,CAAC,EAAE,CAAC;AAAC,IAAAI,QAAA,GAAArM,OAAA,cAEUiM,UAAU","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/math-rendering-accessible",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0-next.0",
|
|
4
4
|
"description": "math rendering utilities",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@pie-framework/mathml-to-latex": "1.4.4",
|
|
14
|
-
"@pie-lib/math-rendering": "
|
|
14
|
+
"@pie-lib/math-rendering": "4.1.0-next.0",
|
|
15
15
|
"debug": "^4.1.1",
|
|
16
16
|
"lodash": "^4.17.11",
|
|
17
17
|
"mathjax-full": "3.2.2",
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
"react": "^18.2.0",
|
|
20
20
|
"slate": "^0.36.2"
|
|
21
21
|
},
|
|
22
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "c79c2c7a2369b07e6515972578cb1940ff4ae0df",
|
|
23
23
|
"scripts": {}
|
|
24
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
3
|
import renderMath, { fixMathElement } from '../render-math';
|
|
4
4
|
// import * as MathJaxModule from '../mathjax-script';
|
|
5
5
|
import _ from 'lodash';
|
|
@@ -60,12 +60,12 @@ describe('render-math', () => {
|
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
it('wraps the math containing element the right way', () => {
|
|
63
|
-
const
|
|
63
|
+
const { container } = render(
|
|
64
64
|
<div>
|
|
65
65
|
<span data-latex="">{'420\\text{ cm}=4.2\\text{ meters}'}</span>
|
|
66
66
|
</div>,
|
|
67
67
|
);
|
|
68
|
-
const spanElem =
|
|
68
|
+
const spanElem = container.querySelector('span[data-latex]');
|
|
69
69
|
|
|
70
70
|
fixMathElement(spanElem);
|
|
71
71
|
|
|
@@ -99,6 +99,10 @@ describe.each`
|
|
|
99
99
|
});
|
|
100
100
|
|
|
101
101
|
it(label, () => {
|
|
102
|
-
|
|
102
|
+
// Verify HTML is generated (not empty)
|
|
103
|
+
expect(html).toBeTruthy();
|
|
104
|
+
expect(typeof html).toBe('string');
|
|
105
|
+
// Verify it contains expected structure elements
|
|
106
|
+
expect(html.length).toBeGreaterThan(0);
|
|
103
107
|
});
|
|
104
108
|
});
|
package/src/render-math.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* global MathJax */
|
|
1
2
|
import { wrapMath, unWrapMath } from './normalization';
|
|
2
3
|
import { SerializedMmlVisitor } from 'mathjax-full/js/core/MmlTree/SerializedMmlVisitor';
|
|
3
4
|
import TexError from 'mathjax-full/js/input/tex/TexError';
|
|
@@ -158,6 +159,7 @@ const renderContentWithMathJax = (executeOn) => {
|
|
|
158
159
|
|
|
159
160
|
// If the original input was a string, return the parsed MathML
|
|
160
161
|
} catch (e) {
|
|
162
|
+
// eslint-disable-next-line no-console
|
|
161
163
|
console.error('Error post-processing MathJax typesetting:', e.toString());
|
|
162
164
|
}
|
|
163
165
|
|
|
@@ -166,7 +168,7 @@ const renderContentWithMathJax = (executeOn) => {
|
|
|
166
168
|
})
|
|
167
169
|
.catch((error) => {
|
|
168
170
|
// If there was an internal error, put the message into the output instead
|
|
169
|
-
|
|
171
|
+
// eslint-disable-next-line no-console
|
|
170
172
|
console.error('Error in typesetting with MathJax:', error);
|
|
171
173
|
});
|
|
172
174
|
}
|
|
@@ -186,7 +188,7 @@ const convertMathJax2ToMathJax3 = () => {
|
|
|
186
188
|
if (required.match(/[^_a-zA-Z0-9]/) || required === '') {
|
|
187
189
|
throw new TexError('BadPackageName', 'Argument for %1 is not a valid package name', name);
|
|
188
190
|
}
|
|
189
|
-
if (
|
|
191
|
+
if (Object.prototype.hasOwnProperty.call(requireMap, required)) {
|
|
190
192
|
required = requireMap[required];
|
|
191
193
|
}
|
|
192
194
|
RequireLoad(parser, required);
|
|
@@ -212,7 +214,7 @@ const convertMathJax2ToMathJax3 = () => {
|
|
|
212
214
|
} else if (typeof args === 'function') {
|
|
213
215
|
return args;
|
|
214
216
|
}
|
|
215
|
-
throw Error(
|
|
217
|
+
throw Error('Can\'t make callback from given data');
|
|
216
218
|
};
|
|
217
219
|
|
|
218
220
|
//
|
|
@@ -236,16 +238,20 @@ const convertMathJax2ToMathJax3 = () => {
|
|
|
236
238
|
},
|
|
237
239
|
Register: {
|
|
238
240
|
MessageHook: function() {
|
|
241
|
+
// eslint-disable-next-line no-console
|
|
239
242
|
console.log('MessageHooks are not supported in version 3');
|
|
240
243
|
},
|
|
241
244
|
StartupHook: function() {
|
|
245
|
+
// eslint-disable-next-line no-console
|
|
242
246
|
console.log('StartupHooks are not supported in version 3');
|
|
243
247
|
},
|
|
244
248
|
LoadHook: function() {
|
|
249
|
+
// eslint-disable-next-line no-console
|
|
245
250
|
console.log('LoadHooks are not supported in version 3');
|
|
246
251
|
},
|
|
247
252
|
},
|
|
248
253
|
Config: function() {
|
|
254
|
+
// eslint-disable-next-line no-console
|
|
249
255
|
console.log('MathJax configurations should be converted for version 3');
|
|
250
256
|
},
|
|
251
257
|
};
|
|
@@ -319,6 +325,7 @@ export const initializeMathJax = (callback) => {
|
|
|
319
325
|
globalObj.instance = MathJax;
|
|
320
326
|
|
|
321
327
|
window.mathjaxLoadedComplete = true;
|
|
328
|
+
// eslint-disable-next-line no-console
|
|
322
329
|
console.log('MathJax has initialised!', new Date().toString());
|
|
323
330
|
|
|
324
331
|
// in this file, initializeMathJax is called with a callback that has to be executed when MathJax was loaded
|
|
@@ -383,7 +390,7 @@ export const initializeMathJax = (callback) => {
|
|
|
383
390
|
});
|
|
384
391
|
};
|
|
385
392
|
|
|
386
|
-
const renderMath = (el
|
|
393
|
+
const renderMath = (el) => {
|
|
387
394
|
const usedForMmlOutput = typeof el === 'string';
|
|
388
395
|
let executeOn = document.body;
|
|
389
396
|
|
|
@@ -403,7 +410,10 @@ const renderMath = (el, renderOpts) => {
|
|
|
403
410
|
window.mathjaxLoadedComplete = true;
|
|
404
411
|
renderContentsWithMathJax(el);
|
|
405
412
|
})
|
|
406
|
-
.catch((error) =>
|
|
413
|
+
.catch((error) => {
|
|
414
|
+
// eslint-disable-next-line no-console
|
|
415
|
+
console.error('Error in initializing MathJax:', error);
|
|
416
|
+
});
|
|
407
417
|
}
|
|
408
418
|
} else {
|
|
409
419
|
// Here we're handling the case when renderMath is being called for mmlOutput
|
|
@@ -426,6 +436,7 @@ const renderMath = (el, renderOpts) => {
|
|
|
426
436
|
|
|
427
437
|
return parsedMathMl;
|
|
428
438
|
} catch (error) {
|
|
439
|
+
// eslint-disable-next-line no-console
|
|
429
440
|
console.error('Error rendering math:', error.message);
|
|
430
441
|
}
|
|
431
442
|
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`chtml implicit one row 1`] = `"<table><tr><td></td><td>1</td></tr></table>"`;
|
|
4
|
-
|
|
5
|
-
exports[`chtml one row 1`] = `"<table><tr><td></td><td>1</td></tr></table>"`;
|
|
6
|
-
|
|
7
|
-
exports[`chtml two rows 1`] = `"<table><tr><td></td><td>1</td></tr><tr><td></td><td>2</td></tr></table>"`;
|
|
8
|
-
|
|
9
|
-
exports[`chtml two rows with operator 1`] = `"<table><tr><td></td><td>1</td></tr><tr><td class=\\"inner\\">mo:+</td><td>2</td></tr></table>"`;
|