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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,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
- # [3.4.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.4.0-beta.0) (2025-07-15)
6
+ # [3.5.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.5.0) (2025-07-31)
7
7
 
8
8
  **Note:** Version bump only for package @pie-lib/math-rendering
9
9
 
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- # [3.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.0) (2025-07-15)
14
+ # [3.4.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.4.0) (2025-07-31)
15
15
 
16
16
  **Note:** Version bump only for package @pie-lib/math-rendering
17
17
 
@@ -19,89 +19,87 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
19
19
 
20
20
 
21
21
 
22
- ## [3.2.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.0...@pie-lib/math-rendering@3.2.1) (2023-10-01)
22
+ # [3.3.0-beta.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.8) (2025-07-25)
23
23
 
24
+ **Note:** Version bump only for package @pie-lib/math-rendering
24
25
 
25
- ### Bug Fixes
26
26
 
27
- * revert mathml-to-latex version as it seems to break math rendering ([46e841c](https://github.com/pie-framework/pie-lib/commit/46e841c00c2a04ff0e3442625870b3b457571a8e))
28
27
 
29
28
 
30
29
 
30
+ # [3.3.0-beta.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.7) (2025-07-25)
31
31
 
32
+ **Note:** Version bump only for package @pie-lib/math-rendering
32
33
 
33
- # [3.2.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.1.2...@pie-lib/math-rendering@3.2.0) (2023-09-27)
34
34
 
35
35
 
36
- ### Features
37
36
 
38
- * update version ([f716545](https://github.com/pie-framework/pie-lib/commit/f716545d526dc856e2160619650787273a993f27))
39
37
 
38
+ # [3.3.0-beta.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.7) (2025-07-25)
40
39
 
40
+ **Note:** Version bump only for package @pie-lib/math-rendering
41
41
 
42
42
 
43
43
 
44
- ## [3.1.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.1.1...@pie-lib/math-rendering@3.1.2) (2023-09-27)
45
44
 
46
45
 
47
- ### Bug Fixes
46
+ # [3.3.0-beta.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.6) (2025-07-25)
47
+
48
+ **Note:** Version bump only for package @pie-lib/math-rendering
48
49
 
49
- * force publish ([489a242](https://github.com/pie-framework/pie-lib/commit/489a2421c109fb202b778680f1b57b942e49c86a))
50
50
 
51
51
 
52
52
 
53
53
 
54
+ # [3.3.0-beta.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.6) (2025-07-25)
54
55
 
55
- ## [3.1.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.1.0...@pie-lib/math-rendering@3.1.1) (2023-09-25)
56
+ **Note:** Version bump only for package @pie-lib/math-rendering
56
57
 
57
58
 
58
- ### Bug Fixes
59
59
 
60
- * update mathml-to-latex version PD-3182, PD-3184 ([c019296](https://github.com/pie-framework/pie-lib/commit/c0192965a3a045e13993a3301dfc35e7e314a592))
61
60
 
62
61
 
62
+ # [3.3.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.5) (2025-07-25)
63
63
 
64
+ **Note:** Version bump only for package @pie-lib/math-rendering
64
65
 
65
66
 
66
- # [3.1.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.0.0...@pie-lib/math-rendering@3.1.0) (2023-09-20)
67
67
 
68
68
 
69
- ### Features
70
69
 
71
- * use forked mathml-to-latex library, as it contains fixes PD-3011 ([8949ac2](https://github.com/pie-framework/pie-lib/commit/8949ac2ddf6664bf437a35dbe21555f18ac77426))
70
+ # [3.3.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.5) (2025-07-25)
72
71
 
72
+ **Note:** Version bump only for package @pie-lib/math-rendering
73
73
 
74
74
 
75
75
 
76
76
 
77
- # [3.0.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.18...@pie-lib/math-rendering@3.0.0) (2023-09-20)
78
77
 
78
+ # [3.3.0-beta.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.4) (2025-07-25)
79
79
 
80
- ### Bug Fixes
80
+ **Note:** Version bump only for package @pie-lib/math-rendering
81
81
 
82
- * update mathml-to-latex version ([1d101d2](https://github.com/pie-framework/pie-lib/commit/1d101d22298bd480a5aec638e4c9708d5aa52ce4))
83
82
 
84
83
 
85
- ### BREAKING CHANGES
86
84
 
87
- * updated mathml-to-latex version.
88
85
 
86
+ # [3.3.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.3) (2025-07-25)
89
87
 
88
+ **Note:** Version bump only for package @pie-lib/math-rendering
90
89
 
91
90
 
92
91
 
93
- ## [2.5.18](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.17...@pie-lib/math-rendering@2.5.18) (2023-09-14)
94
92
 
95
93
 
96
- ### Bug Fixes
94
+ # [3.3.0-beta.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.4) (2025-07-23)
97
95
 
98
- * force v1.2.0 of mathml-to-latex, as v1.3.0 contains a braking change ([4792ed9](https://github.com/pie-framework/pie-lib/commit/4792ed965608ee5ff4c872e69dee9b3b59261cf0))
96
+ **Note:** Version bump only for package @pie-lib/math-rendering
99
97
 
100
98
 
101
99
 
102
100
 
103
101
 
104
- ## [2.5.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.16...@pie-lib/math-rendering@2.5.17) (2023-06-24)
102
+ # [3.3.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.3) (2025-07-23)
105
103
 
106
104
  **Note:** Version bump only for package @pie-lib/math-rendering
107
105
 
@@ -109,13 +107,123 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
109
107
 
110
108
 
111
109
 
112
- ## [2.5.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.15...@pie-lib/math-rendering@2.5.16) (2023-06-13)
110
+ # [3.3.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.3) (2025-07-20)
111
+
112
+ **Note:** Version bump only for package @pie-lib/math-rendering
113
+
114
+
115
+
116
+
117
+
118
+ # [3.3.0-beta.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.2) (2025-07-20)
119
+
120
+ **Note:** Version bump only for package @pie-lib/math-rendering
121
+
122
+
123
+
124
+
125
+
126
+ # [3.3.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.1) (2025-07-20)
127
+
128
+ **Note:** Version bump only for package @pie-lib/math-rendering
129
+
130
+
131
+
132
+
133
+
134
+ # [3.3.0-beta.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.2) (2025-07-20)
135
+
136
+ **Note:** Version bump only for package @pie-lib/math-rendering
137
+
138
+
139
+
140
+
141
+
142
+ # [3.3.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.1) (2025-07-20)
143
+
144
+ **Note:** Version bump only for package @pie-lib/math-rendering
145
+
146
+
147
+
148
+
149
+
150
+ # [3.3.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.1) (2025-07-20)
151
+
152
+ **Note:** Version bump only for package @pie-lib/math-rendering
153
+
154
+
155
+
156
+
157
+
158
+ # [3.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.0) (2025-07-20)
159
+
160
+ **Note:** Version bump only for package @pie-lib/math-rendering
161
+
162
+
163
+
164
+
165
+
166
+ # [3.4.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.4.0-beta.0) (2025-07-15)
167
+
168
+ **Note:** Version bump only for package @pie-lib/math-rendering
169
+
170
+ # [3.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.0) (2025-07-15)
113
171
 
114
172
  **Note:** Version bump only for package @pie-lib/math-rendering
115
173
 
174
+ ## [3.2.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.0...@pie-lib/math-rendering@3.2.1) (2023-10-01)
175
+
176
+ ### Bug Fixes
177
+
178
+ - revert mathml-to-latex version as it seems to break math rendering ([46e841c](https://github.com/pie-framework/pie-lib/commit/46e841c00c2a04ff0e3442625870b3b457571a8e))
179
+
180
+ # [3.2.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.1.2...@pie-lib/math-rendering@3.2.0) (2023-09-27)
181
+
182
+ ### Features
183
+
184
+ - update version ([f716545](https://github.com/pie-framework/pie-lib/commit/f716545d526dc856e2160619650787273a993f27))
116
185
 
186
+ ## [3.1.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.1.1...@pie-lib/math-rendering@3.1.2) (2023-09-27)
117
187
 
188
+ ### Bug Fixes
118
189
 
190
+ - force publish ([489a242](https://github.com/pie-framework/pie-lib/commit/489a2421c109fb202b778680f1b57b942e49c86a))
191
+
192
+ ## [3.1.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.1.0...@pie-lib/math-rendering@3.1.1) (2023-09-25)
193
+
194
+ ### Bug Fixes
195
+
196
+ - update mathml-to-latex version PD-3182, PD-3184 ([c019296](https://github.com/pie-framework/pie-lib/commit/c0192965a3a045e13993a3301dfc35e7e314a592))
197
+
198
+ # [3.1.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.0.0...@pie-lib/math-rendering@3.1.0) (2023-09-20)
199
+
200
+ ### Features
201
+
202
+ - use forked mathml-to-latex library, as it contains fixes PD-3011 ([8949ac2](https://github.com/pie-framework/pie-lib/commit/8949ac2ddf6664bf437a35dbe21555f18ac77426))
203
+
204
+ # [3.0.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.18...@pie-lib/math-rendering@3.0.0) (2023-09-20)
205
+
206
+ ### Bug Fixes
207
+
208
+ - update mathml-to-latex version ([1d101d2](https://github.com/pie-framework/pie-lib/commit/1d101d22298bd480a5aec638e4c9708d5aa52ce4))
209
+
210
+ ### BREAKING CHANGES
211
+
212
+ - updated mathml-to-latex version.
213
+
214
+ ## [2.5.18](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.17...@pie-lib/math-rendering@2.5.18) (2023-09-14)
215
+
216
+ ### Bug Fixes
217
+
218
+ - force v1.2.0 of mathml-to-latex, as v1.3.0 contains a braking change ([4792ed9](https://github.com/pie-framework/pie-lib/commit/4792ed965608ee5ff4c872e69dee9b3b59261cf0))
219
+
220
+ ## [2.5.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.16...@pie-lib/math-rendering@2.5.17) (2023-06-24)
221
+
222
+ **Note:** Version bump only for package @pie-lib/math-rendering
223
+
224
+ ## [2.5.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.15...@pie-lib/math-rendering@2.5.16) (2023-06-13)
225
+
226
+ **Note:** Version bump only for package @pie-lib/math-rendering
119
227
 
120
228
  ## [2.5.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.14...@pie-lib/math-rendering@2.5.15) (2023-06-12)
121
229
 
package/lib/index.js CHANGED
@@ -35,4 +35,4 @@ var _renderMath = _interopRequireDefault(require("./render-math"));
35
35
  var _mmlToLatex = _interopRequireDefault(require("./mml-to-latex"));
36
36
 
37
37
  var _normalization = require("./normalization");
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbmRlck1hdGggZnJvbSAnLi9yZW5kZXItbWF0aCc7XG5pbXBvcnQgbW1sVG9MYXRleCBmcm9tICcuL21tbC10by1sYXRleCc7XG5pbXBvcnQgeyB3cmFwTWF0aCwgdW5XcmFwTWF0aCB9IGZyb20gJy4vbm9ybWFsaXphdGlvbic7XG5cbmV4cG9ydCB7IHJlbmRlck1hdGgsIHdyYXBNYXRoLCB1bldyYXBNYXRoLCBtbWxUb0xhdGV4IH07XG4iXX0=
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA","sourcesContent":["import renderMath from './render-math';\nimport mmlToLatex from './mml-to-latex';\nimport { wrapMath, unWrapMath } from './normalization';\n\nexport { renderMath, wrapMath, unWrapMath, mmlToLatex };\n"],"file":"index.js"}
@@ -12,4 +12,4 @@ var _default = function _default(mathml) {
12
12
  };
13
13
 
14
14
  exports["default"] = _default;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tbWwtdG8tbGF0ZXguanMiXSwibmFtZXMiOlsibWF0aG1sIiwiTWF0aE1MVG9MYVRlWCIsImNvbnZlcnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7ZUFDZSxrQkFBQ0EsTUFBRDtBQUFBLFNBQVlDLDZCQUFjQyxPQUFkLENBQXNCRixNQUF0QixDQUFaO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdGhNTFRvTGFUZVggfSBmcm9tICdAcGllLWZyYW1ld29yay9tYXRobWwtdG8tbGF0ZXgnO1xuZXhwb3J0IGRlZmF1bHQgKG1hdGhtbCkgPT4gTWF0aE1MVG9MYVRlWC5jb252ZXJ0KG1hdGhtbCk7XG4iXX0=
15
+ //# sourceMappingURL=mml-to-latex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mml-to-latex.js"],"names":["mathml","MathMLToLaTeX","convert"],"mappings":";;;;;;;AAAA;;eACe,kBAACA,MAAD;AAAA,SAAYC,6BAAcC,OAAd,CAAsBF,MAAtB,CAAZ;AAAA,C","sourcesContent":["import { MathMLToLaTeX } from '@pie-framework/mathml-to-latex';\nexport default (mathml) => MathMLToLaTeX.convert(mathml);\n"],"file":"mml-to-latex.js"}
@@ -293,4 +293,4 @@ CHTMLmstack.styles = {
293
293
  'font-family': 'MJXZERO, MJXTEX !important'
294
294
  }
295
295
  };
296
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svY2h0bWwuanMiXSwibmFtZXMiOlsicmVkdWNlVGV4dCIsImFjYyIsIm4iLCJub2RlIiwia2luZCIsInRleHQiLCJMaW5lIiwiUm93IiwiY29sdW1ucyIsIm9wZXJhdG9yIiwiY291bnQiLCJkaXJlY3Rpb24iLCJsZW5ndGgiLCJFcnJvciIsImRpZmYiLCJwYWRkaW5nIiwiXyIsInRpbWVzIiwibWFwIiwibWF0aE5vZGVUb0NoYXJBcnJheSIsIm1uIiwiY2hpbGROb2RlcyIsInJlZHVjZSIsInNwbGl0IiwidG9Db2x1bW5BcnJheSIsImNoaWxkIiwiY29uc29sZSIsIndhcm4iLCJ0b0NIVE1MIiwicm93U3RhY2siLCJmIiwiZmlyc3QiLCJub2RlcyIsInRhaWwiLCJmbGF0dGVuIiwidW5kZWZpbmVkIiwiZ2V0U3RhY2tEYXRhIiwibXN0YWNrIiwiY29tcGFjdCIsIkNIVE1MbXN0YWNrIiwiZmFjdG9yeSIsInBhcmVudCIsImNlIiwiYWRhcHRvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJpbmQiLCJjaHRtbCIsInN0YW5kYXJkQ0hUTUxub2RlIiwic3RhY2tEYXRhIiwibWF4Q29scyIsInIiLCJ0YWJsZSIsImFwcGVuZENoaWxkIiwiZm9yRWFjaCIsInJvdyIsInRyIiwidGQiLCJzZXRBdHRyaWJ1dGUiLCJ0ZXh0Q29udGVudCIsImNvbHMiLCJwYWQiLCJjIiwidCIsIkNIVE1MV3JhcHBlciIsInN0eWxlcyIsImJvcmRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLEdBQUQsRUFBTUMsQ0FBTixFQUFZO0FBQzdCLE1BQUlBLENBQUMsQ0FBQ0MsSUFBRixJQUFVRCxDQUFDLENBQUNDLElBQUYsQ0FBT0MsSUFBUCxLQUFnQixNQUE5QixFQUFzQztBQUNwQ0gsSUFBQUEsR0FBRyxJQUFJQyxDQUFDLENB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QUFBQSxPQUFPLEVBQUUsQ0FENEI7QUFFckMsa0JBQWM7QUFGdUIsR0FuQnBCO0FBdUJuQixZQUFVO0FBQ1IsbUJBQWU7QUFEUDtBQXZCUyxDQUFyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENIVE1MV3JhcHBlciB9IGZyb20gJ21hdGhqYXgtZnVsbC9qcy9vdXRwdXQvY2h0bWwvV3JhcHBlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCByZWR1Y2VUZXh0ID0gKGFjYywgbikgPT4ge1xuICBpZiAobi5ub2RlICYmIG4ubm9kZS5raW5kID09PSAndGV4dCcpIHtcbiAgICBhY2MgKz0gbi5ub2RlLnRleHQ7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn07XG5cbmV4cG9ydCBjbGFzcyBMaW5lIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5raW5kID0gJ2xpbmUnO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3cge1xuICBjb25zdHJ1Y3Rvcihjb2x1bW5zLCBvcGVyYXRvcikge1xuICAgIHRoaXMua2luZCA9ICdyb3cnO1xuICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG5cbiAgcGFkKGNvdW50LCBkaXJlY3Rpb24gPSAncmlnaHQnKSB7XG4gICAgaWYgKGNvdW50IDwgdGhpcy5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubycpO1xuICAgIH1cblxuICAgIGNvbnN0IGRpZmYgPSBjb3VudCAtIHRoaXMuY29sdW1ucy5sZW5ndGg7XG5cbiAgICBjb25zdCBwYWRkaW5nID0gXy50aW1lcyhkaWZmKS5tYXAoKCkgPT4gJ19fcGFkX18nKTtcbiAgICByZXR1cm4gZGlyZWN0aW9uID09PSAncmlnaHQnID8gWy4uLnBhZGRpbmcsIC4uLnRoaXMuY29sdW1uc10gOiBbLi4udGhpcy5jb2x1bW5zLCAuLi5wYWRkaW5nXTtcbiAgfVxufVxuXG5jb25zdCBtYXRoTm9kZVRvQ2hhckFycmF5ID0gKG1uKSA9PiB7XG4gIGNvbnN0IHRleHQgPSBtbi5jaGlsZE5vZGVzLnJlZHVjZShyZWR1Y2VUZXh0LCAnJyk7XG4gIHJldHVybiB0ZXh0LnNwbGl0KCcnKTtcbn07XG5cbi8qKlxuICogQ29udmVydCBjaGlsZCBhIGNvbHVtbiBlbnRyeVxuICogQHBhcmFtIHsqfSBjaGlsZFxuICogQHJldHVybiBhbiBhcnJheSBvZiBjb2x1bW4gY29udGVudFxuICovXG5jb25zdCB0b0NvbHVtbkFycmF5ID0gKGNoaWxkKSA9PiB7XG4gIGlmICghY2hpbGQgfHwgIWNoaWxkLmtpbmQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21zcm93Jykge1xuICAgIHRocm93IG5ldyBFcnJvcignbXNyb3cgaW4gbXNyb3c/Jyk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21vJykge1xuICAgIC8vIFdlIGFyZSBnb2luZyB0byB0cmVhdCB0aGlzIG9wZXJhdG9yIGFzIGEgdGV4dCBhcnJheS5cbiAgICAvLyBJdCdzIHByb2JhYmx5IGdvaW5nIHRvIGJlIGEgZGVjaW1hbCBwb2ludFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKCdtbyB0aGF0IGlzIG5vdCAxc3Qgbm9kZSBpbiBtc3Jvdz8nKTtcbiAgICByZXR1cm4gbWF0aE5vZGVUb0NoYXJBcnJheShjaGlsZCk7XG4gICAgLy8gdGhyb3cgbmV3IEVycm9yKCdtbyBtdXN0IGJlIGZpcnN0IGNoaWxkIG9mIG1zcm93Jyk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21uJykge1xuICAgIHJldHVybiBtYXRoTm9kZVRvQ2hhckFycmF5KGNoaWxkKTtcbiAgfVxuXG4gIGlmIChjaGlsZC50b0NIVE1MKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9XG59O1xuXG4vKipcbiAqICBjb252ZXJ0IG1zdGFjayBjaHRtbCBjaGlsZE5vZGVzIGludG8gYSBSb3dcbiAqICBAcGFyYW0gY2hpbGQgY2h0bWwgY2hpbGQgbm9kZSBvZiBtc3RhY2tcbiAqICBAcmV0dXJuIFJvdyB8IExpbmVcbiAqL1xuY29uc3Qgcm93U3RhY2sgPSAoY2hpbGQpID0+IHtcbiAgaWYgKCFjaGlsZCB8fCAhY2hpbGQua2luZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbXNyb3cnKSB7XG4gICAgaWYgKCFjaGlsZC5jaGlsZE5vZGVzIHx8IGNoaWxkLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbmV3IFJvdyhbXSk7XG4gICAgfVxuICAgIGNvbnN0IGYgPSBfLmZpcnN0KGNoaWxkLmNoaWxkTm9kZXMpO1xuICAgIGNvbnN0IG5vZGVzID0gZiAmJiBmLmtpbmQgPT09ICdtbycgPyBfLnRhaWwoY2hpbGQuY2hpbGROb2RlcykgOiBjaGlsZC5jaGlsZE5vZGVzO1xuXG4gICAgY29uc3QgY29sdW1ucyA9IF8uZmxhdHRlbihub2Rlcy5tYXAodG9Db2x1bW5BcnJheSkpO1xuXG4gICAgcmV0dXJuIG5ldyBSb3coY29sdW1ucywgZi5raW5kID09PSAnbW8nID8gZiA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICBpZiAoY2hpbGQua2luZCA9PT0gJ21uJykge1xuICAgIGNvbnN0IGNvbHVtbnMgPSBtYXRoTm9kZVRvQ2hhckFycmF5KGNoaWxkKTtcbiAgICByZXR1cm4gbmV3IFJvdyhjb2x1bW5zLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgaWYgKGNoaWxkLmtpbmQgPT09ICdtbycpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybignbW8gb24gaXRzIG93biByb3c/Jyk7XG4gICAgcmV0dXJuIG5ldyBSb3coW10sIGNoaWxkKTtcbiAgfVxuXG4gIGlmIChjaGlsZC5raW5kID09PSAnbXNsaW5lJykge1xuICAgIHJldHVybiBuZXcgTGluZSgpO1xuICB9XG5cbiAgaWYgKGNoaWxkLnRvQ0hUTUwpIHtcbiAgICByZXR1cm4gbmV3IFJvdyhbY2hpbGRdKTtcbiAgfVxufTtcblxuLyoqIGNvbnZlcnQgTWF0aEpheCBjaHRtbCB0cmVlIHRvIFJvd1tdXG4gKiBAcGFyYW0gbXN0YWNrIHRoZSByb290IG9mIHRoZSBtYXRoamF4IGNodG1sIHRyZWVcbiAqIEByZXR1cm4gUm93W11cbiAqL1xuXG5leHBvcnQgY29uc3QgZ2V0U3RhY2tEYXRhID0gKG1zdGFjaykgPT4ge1xuICBpZiAoIW1zdGFjayB8fCAhbXN0YWNrLmNoaWxkTm9kZXMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIF8uY29tcGFjdChtc3RhY2suY2hpbGROb2Rlcy5tYXAocm93U3RhY2spKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBDSFRNTG1zdGFjayBleHRlbmRzIENIVE1MV3JhcHBlciB7XG4gIGNvbnN0cnVjdG9yKGZhY3RvcnksIG5vZGUsIHBhcmVudCA9IG51bGwpIHtcbiAgICBzdXBlcihmYWN0b3J5LCBub2RlLCBwYXJlbnQpO1xuXG4gICAgdGhpcy5jZSA9IHRoaXMuYWRhcHRvci5kb2N1bWVudC5jcmVhdGVFbGVtZW50LmJpbmQodGhpcy5hZGFwdG9yLmRvY3VtZW50KTtcbiAgfVxuXG4gIHRvQ0hUTUwocGFyZW50KSB7XG4gICAgY29uc3QgY2h0bWwgPSB0aGlzLnN0YW5kYXJkQ0hUTUxub2RlKHBhcmVudCk7XG5cbiAgICBjb25zdCBzdGFja0RhdGEgPSBnZXRTdGFja0RhdGEodGhpcyk7XG5cbiAgICAvLyBjb25zb2xlLmxvZygnc3RhY2tEYXRhJywgc3RhY2tEYXRhKTtcbiAgICBjb25zdCBtYXhDb2xzID0gc3RhY2tEYXRhLnJlZHVjZSgoYWNjLCByKSA9PiB7XG4gICAgICBpZiAociAmJiByLmNvbHVtbnMubGVuZ3RoID4gYWNjKSB7XG4gICAgICAgIGFjYyA9IHIuY29sdW1ucy5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIDApO1xuXG4gICAgY29uc3QgdGFibGUgPSB0aGlzLmNlKCd0YWJsZScpO1xuICAgIGNodG1sLmFwcGVuZENoaWxkKHRhYmxlKTtcblxuICAgIHN0YWNrRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIGNvbnN0IHRyID0gdGhpcy5jZSgndHInKTtcbiAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTtcblxuICAgICAgaWYgKHJvdy5raW5kID09PSAncm93Jykge1xuICAgICAgICBjb25zdCB0ZCA9IHRoaXMuY2UoJ3RkJyk7XG4gICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTtcbiAgICAgICAgaWYgKHJvdy5vcGVyYXRvciAmJiByb3cub3BlcmF0b3IudG9DSFRNTCkge1xuICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnaW5uZXInKTtcbiAgICAgICAgICByb3cub3BlcmF0b3IudG9DSFRNTCh0ZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsaWduIHJpZ2h0IGZvciBub3c6XG4gICAgICAgIGNvbnN0IGNvbHMgPSByb3cucGFkKG1heENvbHMsICdyaWdodCcpO1xuICAgICAgICBjb2xzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICBjb25zdCB0ID0gdGhpcy5jZSgndGQnKTtcbiAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0KTtcbiAgICAgICAgICBpZiAoYyA9PT0gJ19fcGFkX18nKSB7XG4gICAgICAgICAgICB0LnRleHRDb250ZW50ID0gJyc7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHQudGV4dENvbnRlbnQgPSBjO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYy5raW5kID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKGMudG9DSFRNTCkge1xuICAgICAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2lubmVyJyk7XG4gICAgICAgICAgICBjLnRvQ0hUTUwodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocm93LmtpbmQgPT09ICdsaW5lJykge1xuICAgICAgICBjb25zdCB0ZCA9IHRoaXMuY2UoJ3RkJyk7XG4gICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTtcbiAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdjb2xzcGFuJywgbWF4Q29scyArIDEpO1xuICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ21qeC1saW5lJyk7XG4gICAgICAgIHRkLnRleHRDb250ZW50ID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbkNIVE1MbXN0YWNrLnN0eWxlcyA9IHtcbiAgJ21qeC1tc3RhY2sgPiB0YWJsZSc6IHtcbiAgICAnbGluZS1oZWlnaHQnOiAnaW5pdGlhbCcsXG4gICAgYm9yZGVyOiAnc29saWQgMHB4IHJlZCcsXG4gICAgJ2JvcmRlci1zcGFjaW5nJzogJzBlbScsXG4gICAgJ2JvcmRlci1jb2xsYXBzZSc6ICdzZXBhcmF0ZScsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0cic6IHtcbiAgICAnbGluZS1oZWlnaHQnOiAnaW5pdGlhbCcsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0ciA+IHRkJzoge1xuICAgIC8vIHBhZGRpbmc6ICcxLjJyZW0nLFxuICAgIGJvcmRlcjogJ3NvbGlkIDBweCBibHVlJyxcbiAgICAnZm9udC1mYW1pbHknOiAnc2Fucy1zZXJpZicsXG4gICAgJ2xpbmUtaGVpZ2h0JzogJ2luaXRpYWwnLFxuICB9LFxuICAnbWp4LW1zdGFjayA+IHRhYmxlID4gdHIgPiB0ZC5pbm5lcic6IHtcbiAgICAnZm9udC1mYW1pbHknOiAnaW5oZXJpdCcsXG4gIH0sXG4gICdtangtbXN0YWNrID4gdGFibGUgPiB0ciA+IC5tangtbGluZSc6IHtcbiAgICBwYWRkaW5nOiAwLFxuICAgICdib3JkZXItdG9wJzogJ3NvbGlkIDFweCBibGFjaycsXG4gIH0sXG4gICcuVEVYLUEnOiB7XG4gICAgJ2ZvbnQtZmFtaWx5JzogJ01KWFpFUk8sIE1KWFRFWCAhaW1wb3J0YW50JyxcbiAgfSxcbn07XG4iXX0=
296
+ //# sourceMappingURL=chtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mstack/chtml.js"],"names":["reduceText","acc","n","node","kind","text","Line","Row","columns","operator","count","direction","length","Error","diff","padding","_","times","map","mathNodeToCharArray","mn","childNodes","reduce","split","toColumnArray","child","console","warn","toCHTML","rowStack","f","first","nodes","tail","flatten","undefined","getStackData","mstack","compact","CHTMLmstack","factory","parent","ce","adaptor","document","createElement","bind","chtml","standardCHTMLnode","stackData","maxCols","r","table","appendChild","forEach","row","tr","td","setAttribute","textContent","cols","pad","c","t","CHTMLWrapper","styles","border"],"mappings":"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","sourcesContent":["import { CHTMLWrapper } from 'mathjax-full/js/output/chtml/Wrapper';\nimport _ from 'lodash';\n\nconst reduceText = (acc, n) => {\n if (n.node && n.node.kind === 'text') {\n acc += n.node.text;\n }\n return acc;\n};\n\nexport class Line {\n constructor() {\n this.kind = 'line';\n }\n\n get columns() {\n return [];\n }\n}\n\nexport class Row {\n constructor(columns, operator) {\n this.kind = 'row';\n this.operator = operator;\n this.columns = columns;\n }\n\n pad(count, direction = 'right') {\n if (count < this.columns.length) {\n throw new Error('no');\n }\n\n const diff = count - this.columns.length;\n\n const padding = _.times(diff).map(() => '__pad__');\n return direction === 'right' ? [...padding, ...this.columns] : [...this.columns, ...padding];\n }\n}\n\nconst mathNodeToCharArray = (mn) => {\n const text = mn.childNodes.reduce(reduceText, '');\n return text.split('');\n};\n\n/**\n * Convert child a column entry\n * @param {*} child\n * @return an array of column content\n */\nconst toColumnArray = (child) => {\n if (!child || !child.kind) {\n return [];\n }\n\n if (child.kind === 'msrow') {\n throw new Error('msrow in msrow?');\n }\n\n if (child.kind === 'mo') {\n // We are going to treat this operator as a text array.\n // It's probably going to be a decimal point\n // eslint-disable-next-line no-console\n console.warn('mo that is not 1st node in msrow?');\n return mathNodeToCharArray(child);\n // throw new Error('mo must be first child of msrow');\n }\n\n if (child.kind === 'mn') {\n return mathNodeToCharArray(child);\n }\n\n if (child.toCHTML) {\n return child;\n }\n};\n\n/**\n * convert mstack chtml childNodes into a Row\n * @param child chtml child node of mstack\n * @return Row | Line\n */\nconst rowStack = (child) => {\n if (!child || !child.kind) {\n return;\n }\n\n if (child.kind === 'msrow') {\n if (!child.childNodes || child.childNodes.length === 0) {\n return new Row([]);\n }\n const f = _.first(child.childNodes);\n const nodes = f && f.kind === 'mo' ? _.tail(child.childNodes) : child.childNodes;\n\n const columns = _.flatten(nodes.map(toColumnArray));\n\n return new Row(columns, f.kind === 'mo' ? f : undefined);\n }\n\n if (child.kind === 'mn') {\n const columns = mathNodeToCharArray(child);\n return new Row(columns, undefined);\n }\n\n if (child.kind === 'mo') {\n // eslint-disable-next-line no-console\n console.warn('mo on its own row?');\n return new Row([], child);\n }\n\n if (child.kind === 'msline') {\n return new Line();\n }\n\n if (child.toCHTML) {\n return new Row([child]);\n }\n};\n\n/** convert MathJax chtml tree to Row[]\n * @param mstack the root of the mathjax chtml tree\n * @return Row[]\n */\n\nexport const getStackData = (mstack) => {\n if (!mstack || !mstack.childNodes) {\n return [];\n }\n return _.compact(mstack.childNodes.map(rowStack));\n};\n\nexport class CHTMLmstack extends CHTMLWrapper {\n constructor(factory, node, parent = null) {\n super(factory, node, parent);\n\n this.ce = this.adaptor.document.createElement.bind(this.adaptor.document);\n }\n\n toCHTML(parent) {\n const chtml = this.standardCHTMLnode(parent);\n\n const stackData = getStackData(this);\n\n // console.log('stackData', stackData);\n const maxCols = stackData.reduce((acc, r) => {\n if (r && r.columns.length > acc) {\n acc = r.columns.length;\n }\n return acc;\n }, 0);\n\n const table = this.ce('table');\n chtml.appendChild(table);\n\n stackData.forEach((row) => {\n const tr = this.ce('tr');\n table.appendChild(tr);\n\n if (row.kind === 'row') {\n const td = this.ce('td');\n tr.appendChild(td);\n if (row.operator && row.operator.toCHTML) {\n td.setAttribute('class', 'inner');\n row.operator.toCHTML(td);\n } else {\n td.textContent = '';\n }\n\n // align right for now:\n const cols = row.pad(maxCols, 'right');\n cols.forEach((c) => {\n const t = this.ce('td');\n tr.appendChild(t);\n if (c === '__pad__') {\n t.textContent = '';\n } else if (typeof c === 'string') {\n t.textContent = c;\n } else if (c.kind === 'none') {\n t.textContent = '';\n } else if (c.toCHTML) {\n t.setAttribute('class', 'inner');\n c.toCHTML(t);\n }\n });\n } else if (row.kind === 'line') {\n const td = this.ce('td');\n tr.appendChild(td);\n td.setAttribute('colspan', maxCols + 1);\n td.setAttribute('class', 'mjx-line');\n td.textContent = '';\n }\n });\n }\n}\nCHTMLmstack.styles = {\n 'mjx-mstack > table': {\n 'line-height': 'initial',\n border: 'solid 0px red',\n 'border-spacing': '0em',\n 'border-collapse': 'separate',\n },\n 'mjx-mstack > table > tr': {\n 'line-height': 'initial',\n },\n 'mjx-mstack > table > tr > td': {\n // padding: '1.2rem',\n border: 'solid 0px blue',\n 'font-family': 'sans-serif',\n 'line-height': 'initial',\n },\n 'mjx-mstack > table > tr > td.inner': {\n 'font-family': 'inherit',\n },\n 'mjx-mstack > table > tr > .mjx-line': {\n padding: 0,\n 'border-top': 'solid 1px black',\n },\n '.TEX-A': {\n 'font-family': 'MJXZERO, MJXTEX !important',\n },\n};\n"],"file":"chtml.js"}
@@ -20,4 +20,4 @@ var mmlNodes = {
20
20
  none: _mml.MmlNone
21
21
  };
22
22
  exports.mmlNodes = mmlNodes;
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svaW5kZXguanMiXSwibmFtZXMiOlsiY2h0bWxOb2RlcyIsIm1zdGFjayIsIkNIVE1MbXN0YWNrIiwibW1sTm9kZXMiLCJNbWxNc3RhY2siLCJtc2xpbmUiLCJNbWxNc2xpbmUiLCJtc3JvdyIsIk1tbE1zcm93Iiwibm9uZSIsIk1tbE5vbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFTyxJQUFNQSxVQUFVLEdBQUc7QUFDeEJDLEVBQUFBLE1BQU0sRUFBRUM7QUFEZ0IsQ0FBbkI7O0FBSUEsSUFBTUMsUUFBUSxHQUFHO0FBQ3RCRixFQUFBQSxNQUFNLEVBQUVHLGNBRGM7QUFFdEJDLEVBQUFBLE1BQU0sRUFBRUMsY0FGYztBQUd0QkMsRUFBQUEsS0FBSyxFQUFFQyxhQUhlO0FBSXRCQyxFQUFBQSxJQUFJLEVBQUVDO0FBSmdCLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0hUTUxtc3RhY2sgfSBmcm9tICcuL2NodG1sJztcbmltcG9ydCB7IE1tbE5vbmUsIE1tbE1zbGluZSwgTW1sTXN0YWNrLCBNbWxNc3JvdyB9IGZyb20gJy4vbW1sJztcblxuZXhwb3J0IGNvbnN0IGNodG1sTm9kZXMgPSB7XG4gIG1zdGFjazogQ0hUTUxtc3RhY2ssXG59O1xuXG5leHBvcnQgY29uc3QgbW1sTm9kZXMgPSB7XG4gIG1zdGFjazogTW1sTXN0YWNrLFxuICBtc2xpbmU6IE1tbE1zbGluZSxcbiAgbXNyb3c6IE1tbE1zcm93LFxuICBub25lOiBNbWxOb25lLFxufTtcbiJdfQ==
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mstack/index.js"],"names":["chtmlNodes","mstack","CHTMLmstack","mmlNodes","MmlMstack","msline","MmlMsline","msrow","MmlMsrow","none","MmlNone"],"mappings":";;;;;;;AAAA;;AACA;;AAEO,IAAMA,UAAU,GAAG;AACxBC,EAAAA,MAAM,EAAEC;AADgB,CAAnB;;AAIA,IAAMC,QAAQ,GAAG;AACtBF,EAAAA,MAAM,EAAEG,cADc;AAEtBC,EAAAA,MAAM,EAAEC,cAFc;AAGtBC,EAAAA,KAAK,EAAEC,aAHe;AAItBC,EAAAA,IAAI,EAAEC;AAJgB,CAAjB","sourcesContent":["import { CHTMLmstack } from './chtml';\nimport { MmlNone, MmlMsline, MmlMstack, MmlMsrow } from './mml';\n\nexport const chtmlNodes = {\n mstack: CHTMLmstack,\n};\n\nexport const mmlNodes = {\n mstack: MmlMstack,\n msline: MmlMsline,\n msrow: MmlMsrow,\n none: MmlNone,\n};\n"],"file":"index.js"}
package/lib/mstack/mml.js CHANGED
@@ -106,4 +106,4 @@ var MmlMsline = /*#__PURE__*/function (_AbstractMmlNode4) {
106
106
  }(_MmlNode.AbstractMmlNode);
107
107
 
108
108
  exports.MmlMsline = MmlMsline;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc3RhY2svbW1sLmpzIl0sIm5hbWVzIjpbIk1tbE5vbmUiLCJBYnN0cmFjdE1tbE5vZGUiLCJNbWxNc3RhY2siLCJNbWxNc3JvdyIsIk1tbE1zbGluZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7SUFFYUEsTzs7Ozs7Ozs7Ozs7O1NBQ1gsZUFBVztBQUNULGFBQU8sTUFBUDtBQUNEOzs7RUFIMEJDLHdCOzs7O0lBTWhCQyxTOzs7Ozs7Ozs7Ozs7U0FDWCxlQUFXO0FBQ1QsYUFBTyxRQUFQO0FBQ0Q7OztFQUg0QkQsd0I7Ozs7SUFNbEJFLFE7Ozs7Ozs7Ozs7OztTQUNYLGVBQVc7QUFDVCxhQUFPLE9BQVA7QUFDRDs7O0VBSDJCRix3Qjs7OztJQUtqQkcsUzs7Ozs7Ozs7Ozs7O1NBQ1gsZUFBVztBQUNULGFBQU8sUUFBUDtBQUNEOzs7RUFINEJILHdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RNbWxOb2RlIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvcmUvTW1sVHJlZS9NbWxOb2RlJztcblxuZXhwb3J0IGNsYXNzIE1tbE5vbmUgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ25vbmUnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNbWxNc3RhY2sgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ21zdGFjayc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1tbE1zcm93IGV4dGVuZHMgQWJzdHJhY3RNbWxOb2RlIHtcbiAgZ2V0IGtpbmQoKSB7XG4gICAgcmV0dXJuICdtc3Jvdyc7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBNbWxNc2xpbmUgZXh0ZW5kcyBBYnN0cmFjdE1tbE5vZGUge1xuICBnZXQga2luZCgpIHtcbiAgICByZXR1cm4gJ21zbGluZSc7XG4gIH1cbn1cbiJdfQ==
109
+ //# sourceMappingURL=mml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mstack/mml.js"],"names":["MmlNone","AbstractMmlNode","MmlMstack","MmlMsrow","MmlMsline"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAEaA,O;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,MAAP;AACD;;;EAH0BC,wB;;;;IAMhBC,S;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,QAAP;AACD;;;EAH4BD,wB;;;;IAMlBE,Q;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,OAAP;AACD;;;EAH2BF,wB;;;;IAKjBG,S;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,QAAP;AACD;;;EAH4BH,wB","sourcesContent":["import { AbstractMmlNode } from 'mathjax-full/js/core/MmlTree/MmlNode';\n\nexport class MmlNone extends AbstractMmlNode {\n get kind() {\n return 'none';\n }\n}\n\nexport class MmlMstack extends AbstractMmlNode {\n get kind() {\n return 'mstack';\n }\n}\n\nexport class MmlMsrow extends AbstractMmlNode {\n get kind() {\n return 'msrow';\n }\n}\nexport class MmlMsline extends AbstractMmlNode {\n get kind() {\n return 'msline';\n }\n}\n"],"file":"mml.js"}
@@ -92,4 +92,4 @@ var unWrapMath = function unWrapMath(content) {
92
92
  };
93
93
 
94
94
  exports.unWrapMath = unWrapMath;
95
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub3JtYWxpemF0aW9uLmpzIl0sIm5hbWVzIjpbIkJyYWNrZXRUeXBlcyIsIlJPVU5EX0JSQUNLRVRTIiwiU1FVQVJFX0JSQUNLRVRTIiwiRE9MTEFSIiwiRE9VQkxFX0RPTExBUiIsIlBBSVJTIiwid3JhcE1hdGgiLCJjb250ZW50Iiwid3JhcFR5cGUiLCJjb25zb2xlIiwid2FybiIsInN0YXJ0IiwiZW5kIiwidW5XcmFwTWF0aCIsImRpc3BsYXlTdHlsZUluZGV4IiwiaW5kZXhPZiIsInJlcGxhY2UiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwidW53cmFwcGVkIiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBTyxJQUFNQSxZQUFZLEdBQUcsRUFBckI7O0FBRVBBLFlBQVksQ0FBQ0MsY0FBYixHQUE4QixnQkFBOUI7QUFDQUQsWUFBWSxDQUFDRSxlQUFiLEdBQStCLGlCQUEvQjtBQUNBRixZQUFZLENBQUNHLE1BQWIsR0FBc0IsUUFBdEI7QUFDQUgsWUFBWSxDQUFDSSxhQUFiLEdBQTZCLGVBQTdCO0FBRUEsSUFBTUMsS0FBSywwREFDUkwsWUFBWSxDQUFDQyxjQURMLEVBQ3NCLENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FEdEIsNENBRVJELFlBQVksQ0FBQ0UsZUFGTCxFQUV1QixDQUFDLEtBQUQsRUFBUSxLQUFSLENBRnZCLDRDQUdSRixZQUFZLENBQUNHLE1BSEwsRUFHYyxDQUFDLEdBQUQsRUFBTSxHQUFOLENBSGQsNENBSVJILFlBQVksQ0FBQ0ksYUFKTCxFQUlxQixDQUFDLElBQUQsRUFBTyxJQUFQLENBSnJCLFVBQVg7O0FBT08sSUFBTUUsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxRQUFWLEVBQXVCO0FBQzdDLE1BQUlBLFFBQVEsS0FBS1IsWUFBWSxDQUFDRSxlQUE5QixFQUErQztBQUM3Q08sSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsZ0NB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bEIsR0FBUDtBQUlELENBeENNIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJyYWNrZXRUeXBlcyA9IHt9O1xuXG5CcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMgPSAncm91bmRfYnJhY2tldHMnO1xuQnJhY2tldFR5cGVzLlNRVUFSRV9CUkFDS0VUUyA9ICdzcXVhcmVfYnJhY2tldHMnO1xuQnJhY2tldFR5cGVzLkRPTExBUiA9ICdkb2xsYXInO1xuQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVIgPSAnZG91YmxlX2RvbGxhcic7XG5cbmNvbnN0IFBBSVJTID0ge1xuICBbQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTXTogWydcXFxcKCcsICdcXFxcKSddLFxuICBbQnJhY2tldFR5cGVzLlNRVUFSRV9CUkFDS0VUU106IFsnXFxcXFsnLCAnXFxcXF0nXSxcbiAgW0JyYWNrZXRUeXBlcy5ET0xMQVJdOiBbJyQnLCAnJCddLFxuICBbQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVJdOiBbJyQkJywgJyQkJ10sXG59O1xuXG5leHBvcnQgY29uc3Qgd3JhcE1hdGggPSAoY29udGVudCwgd3JhcFR5cGUpID0+IHtcbiAgaWYgKHdyYXBUeXBlID09PSBCcmFja2V0VHlwZXMuU1FVQVJFX0JSQUNLRVRTKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcWy4uLlxcXFxdIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB3cmFwVHlwZSA9IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUztcbiAgfVxuICBpZiAod3JhcFR5cGUgPT09IEJyYWNrZXRUeXBlcy5ET1VCTEVfRE9MTEFSKSB7XG4gICAgY29uc29sZS53YXJuKCckJC4uLiQkIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB3cmFwVHlwZSA9IEJyYWNrZXRUeXBlcy5ET0xMQVI7XG4gIH1cblxuICBjb25zdCBbc3RhcnQsIGVuZF0gPSBQQUlSU1t3cmFwVHlwZV0gfHwgUEFJUlNbQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTXTtcbiAgcmV0dXJuIGAke3N0YXJ0fSR7Y29udGVudH0ke2VuZH1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuV3JhcE1hdGggPSAoY29udGVudCkgPT4ge1xuICBjb25zdCBkaXNwbGF5U3R5bGVJbmRleCA9IGNvbnRlbnQuaW5kZXhPZignXFxcXGRpc3BsYXlzdHlsZScpO1xuICBpZiAoZGlzcGxheVN0eWxlSW5kZXggIT09IC0xKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcZGlzcGxheXN0eWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSByZW1vdmluZycpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgY29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgnXFxcXGRpc3BsYXlzdHlsZScsICcnKS50cmltKCk7XG4gIH1cblxuICBpZiAoY29udGVudC5zdGFydHNXaXRoKCckJCcpICYmIGNvbnRlbnQuZW5kc1dpdGgoJyQkJykpIHtcbiAgICBjb25zb2xlLndhcm4oJyQkIHN5bnRheCBpcyBub3QgeWV0IHN1cHBvcnRlZCcpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgcmV0dXJuIHtcbiAgICAgIHVud3JhcHBlZDogY29udGVudC5zdWJzdHJpbmcoMiwgY29udGVudC5sZW5ndGggLSAyKSxcbiAgICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuRE9MTEFSLFxuICAgIH07XG4gIH1cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnJCcpICYmIGNvbnRlbnQuZW5kc1dpdGgoJyQnKSkge1xuICAgIHJldHVybiB7XG4gICAgICB1bndyYXBwZWQ6IGNvbnRlbnQuc3Vic3RyaW5nKDEsIGNvbnRlbnQubGVuZ3RoIC0gMSksXG4gICAgICB3cmFwVHlwZTogQnJhY2tldFR5cGVzLkRPTExBUixcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnXFxcXFsnKSAmJiBjb250ZW50LmVuZHNXaXRoKCdcXFxcXScpKSB7XG4gICAgY29uc29sZS53YXJuKCdcXFxcWy4uXFxcXF0gc3ludGF4IGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICByZXR1cm4ge1xuICAgICAgdW53cmFwcGVkOiBjb250ZW50LnN1YnN0cmluZygyLCBjb250ZW50Lmxlbmd0aCAtIDIpLFxuICAgICAgd3JhcFR5cGU6IEJyYWNrZXRUeXBlcy5ST1VORF9CUkFDS0VUUyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnXFxcXCgnKSAmJiBjb250ZW50LmVuZHNXaXRoKCdcXFxcKScpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVud3JhcHBlZDogY29udGVudC5zdWJzdHJpbmcoMiwgY29udGVudC5sZW5ndGggLSAyKSxcbiAgICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdW53cmFwcGVkOiBjb250ZW50LFxuICAgIHdyYXBUeXBlOiBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMsXG4gIH07XG59O1xuIl19
95
+ //# sourceMappingURL=normalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/normalization.js"],"names":["BracketTypes","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","PAIRS","wrapMath","content","wrapType","console","warn","start","end","unWrapMath","displayStyleIndex","indexOf","replace","trim","startsWith","endsWith","unwrapped","substring","length"],"mappings":"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","sourcesContent":["export const BracketTypes = {};\n\nBracketTypes.ROUND_BRACKETS = 'round_brackets';\nBracketTypes.SQUARE_BRACKETS = 'square_brackets';\nBracketTypes.DOLLAR = 'dollar';\nBracketTypes.DOUBLE_DOLLAR = 'double_dollar';\n\nconst PAIRS = {\n [BracketTypes.ROUND_BRACKETS]: ['\\\\(', '\\\\)'],\n [BracketTypes.SQUARE_BRACKETS]: ['\\\\[', '\\\\]'],\n [BracketTypes.DOLLAR]: ['$', '$'],\n [BracketTypes.DOUBLE_DOLLAR]: ['$$', '$$'],\n};\n\nexport const wrapMath = (content, wrapType) => {\n if (wrapType === BracketTypes.SQUARE_BRACKETS) {\n console.warn('\\\\[...\\\\] is not supported yet'); // eslint-disable-line\n wrapType = BracketTypes.ROUND_BRACKETS;\n }\n if (wrapType === BracketTypes.DOUBLE_DOLLAR) {\n console.warn('$$...$$ is not supported yet'); // eslint-disable-line\n wrapType = BracketTypes.DOLLAR;\n }\n\n const [start, end] = PAIRS[wrapType] || PAIRS[BracketTypes.ROUND_BRACKETS];\n return `${start}${content}${end}`;\n};\n\nexport const unWrapMath = (content) => {\n const displayStyleIndex = content.indexOf('\\\\displaystyle');\n if (displayStyleIndex !== -1) {\n console.warn('\\\\displaystyle is not supported - removing'); // eslint-disable-line\n content = content.replace('\\\\displaystyle', '').trim();\n }\n\n if (content.startsWith('$$') && content.endsWith('$$')) {\n console.warn('$$ syntax is not yet supported'); // eslint-disable-line\n return {\n unwrapped: content.substring(2, content.length - 2),\n wrapType: BracketTypes.DOLLAR,\n };\n }\n if (content.startsWith('$') && content.endsWith('$')) {\n return {\n unwrapped: content.substring(1, content.length - 1),\n wrapType: BracketTypes.DOLLAR,\n };\n }\n\n if (content.startsWith('\\\\[') && content.endsWith('\\\\]')) {\n console.warn('\\\\[..\\\\] syntax is not yet supported'); // eslint-disable-line\n return {\n unwrapped: content.substring(2, content.length - 2),\n wrapType: BracketTypes.ROUND_BRACKETS,\n };\n }\n\n if (content.startsWith('\\\\(') && content.endsWith('\\\\)')) {\n return {\n unwrapped: content.substring(2, content.length - 2),\n wrapType: BracketTypes.ROUND_BRACKETS,\n };\n }\n\n return {\n unwrapped: content,\n wrapType: BracketTypes.ROUND_BRACKETS,\n };\n};\n"],"file":"normalization.js"}
@@ -435,4 +435,4 @@ _mspace.CHTMLmspace.styles = {
435
435
  };
436
436
  var _default = renderMath;
437
437
  exports["default"] = _default;
438
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXItbWF0aC5qcyJdLCJuYW1lcyI6WyJ3aW5kb3ciLCJzcmVSZWFkeSIsInRoZW4iLCJ2aXNpdG9yIiwiU2VyaWFsaXplZE1tbFZpc2l0b3IiLCJ0b01NbCIsIm5vZGUiLCJ2aXNpdFRyZWUiLCJsb2ciLCJORVdMSU5FX0JMT0NLX1JFR0VYIiwiTkVXTElORV9MQVRFWCIsImdldEdsb2JhbCIsImtleSIsImRlZmF1bHRPcHRzIiwib3B0cyIsImZpeE1hdGhFbGVtZW50IiwiZWxlbWVudCIsImRhdGFzZXQiLCJtYXRoSGFuZGxlZCIsInByb3BlcnR5IiwidGV4dENvbnRlbnQiLCJ1bndyYXBwZWQiLCJyZXBsYWNlIiwiZml4TWF0aEVsZW1lbnRzIiwiZWwiLCJkb2N1bWVudCIsIm1hdGhFbGVtZW50cyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaXRlbSIsImFkanVzdE1hdGhNTFN0eWxlIiwibm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJteUZpbmRNYXRoTUwiLCJzZXQiLCJhZGFwdG9yIiwiQXJyYXkiLCJmcm9tIiwibW1sIiwia2luZCIsInBhcmVudCIsIkZpbmRNYXRoTUwiLCJjcmVhdGVNYXRoTUxJbnN0YW5jZSIsImRvY1Byb3ZpZGVkIiwidXNlU2luZ2xlRG9sbGFyIiwiY29uc29sZSIsIndhcm4iLCJwYWNrYWdlcyIsIkFsbFBhY2thZ2VzIiwiZmlsdGVyIiwibmFtZSIsInB1c2giLCJtYWNyb3MiLCJwYXJhbGxlbG9ncmFtIiwib3ZlcmFyYyIsIm5hcHByb3giLCJsb25nZGl2IiwidGV4Q29uZmlnIiwiaW5saW5lTWF0aCIsInByb2Nlc3NFc2NhcGVzIiwibW1sQ29uZmlnIiwicGFyc2VFcnJvciIsImVycm9yIiwiY2FjaGVkTWF0aGpheCIsImdsb2JhbE1hdGhqYXgiLCJ2ZXJzaW9uIiwibWF0aGpheCIsIk1hdGhKYXgiLCJfIiwiY29uZmlnIiwiT2JqZWN0IiwiYXNzaWduIiwiZm9udFVSTCIsImh0bWxDb25maWciLCJ3cmFwcGVyRmFjdG9yeSIsIkNIVE1MV3JhcHBlckZhY3RvcnkiLCJkZWZhdWx0Tm9kZXMiLCJjaHRtbE5vZGVzIiwiTWF0aE1MIiwiY3VzdG9tTW1sRmFjdG9yeSIsIk1tbEZhY3RvcnkiLCJtbWxOb2RlcyIsImNsYXNzRmFjdG9yeSIsImhhbmRsZXJzIiwiaGFuZGxlc0RvY3VtZW50IiwiaHRtbCIsImNyZWF0ZSIsImNvbXBpbGVFcnJvciIsIm1qIiwibWF0aCIsImVyciIsInR5cGVzZXRFcnJvciIsImRvYyIsInNyZSIsInNwZWVjaCIsImVucmljaFNwZWVjaCIsIklucHV0SmF4IiwiVGVYIiwiT3V0cHV0SmF4IiwiQ0hUTUwiLCJEb21TdHJpbmdzIiwiSFRNTERvbVN0cmluZ3MiLCJza2lwSHRtbFRhZ3MiLCJzZXRNbWxGYWN0b3J5IiwiZW5yaWNoU3BlZWNoSW5pdGlhbGl6ZWQiLCJib290c3RyYXAiLCJUeXBlc2V0IiwiZWxlbWVudHMiLCJhdHRlbXB0UmVuZGVyIiwidGVtcG9yYXJ5IiwidXBkYXRlZERvY3VtZW50IiwiZmluZE1hdGgiLCJsZW5ndGgiLCJjb21waWxlIiwiZW5yaWNoIiwiZ2V0TWV0cmljcyIsInR5cGVzZXQiLCJhc3Npc3RpdmVNbWwiLCJhdHRhY2hTcGVlY2giLCJhZGRNZW51IiwidXBkYXRlRG9jdW1lbnQiLCJsaXN0IiwibmV4dCIsImRhdGEiLCJtYXRoTWwiLCJyb290IiwicGFyc2VkTWF0aE1sIiwicmVwbGFjZUFsbCIsInR5cGVzZXRSb290IiwiZSIsInRvU3RyaW5nIiwiY2xlYXIiLCJoYW5kbGVSZXRyaWVzRm9yIiwicmVuZGVyTWF0aCIsInJlbmRlck9wdHMiLCJjdXN0b21LZXkiLCJpc1N0cmluZyIsImV4ZWN1dGVPbiIsImJvZHkiLCJkaXYiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwidW5kZWZpbmVkIiwiaW5zdGFuY2UiLCJFbGVtZW50IiwiYXJyIiwiQ0hUTUxtc3BhY2UiLCJzdHlsZXMiLCJkaXNwbGF5IiwiaGVpZ2h0Il0sIm1hcHBpbmdz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LFNBQVMsR0FBR29JLFFBQWpCLEVBQTJCO0FBQ3pCcEksSUFBQUEsU0FBUyxHQUFHb0ksUUFBWixHQUF1QnRDLFNBQVMsQ0FBQzZCLFVBQUQsQ0FBaEM7QUFDRDs7QUFFRCxNQUFJLENBQUM5RyxFQUFMLEVBQVM7QUFDUGhCLElBQUFBLEdBQUcsQ0FBQyxpQkFBRCxDQUFIO0FBQ0E7QUFDRDs7QUFFRCxNQUFJZ0IsRUFBRSxZQUFZd0gsT0FBZCwyQkFBeUJySSxTQUFTLEdBQUdvSSxRQUFyQyxnREFBeUIsb0JBQXNCckMsT0FBbkQsRUFBNEQ7QUFDMUQvRixJQUFBQSxTQUFTLEdBQUdvSSxRQUFaLENBQXFCckMsT0FBckIsQ0FBNkJsRixFQUE3QjtBQUNELEdBRkQsTUFFTyxJQUFJQSxFQUFFLENBQUN3RixNQUFILDRCQUFhckcsU0FBUyxHQUFHb0ksUUFBekIsaURBQWEscUJBQXNCckMsT0FBdkMsRUFBZ0Q7QUFBQTs7QUFDckQsUUFBTXVDLEdBQUcsR0FBRzdHLEtBQUssQ0FBQ0MsSUFBTixDQUFXYixFQUFYLENBQVo7O0FBQ0EsNEJBQUFiLFNBQVMsR0FBR29JLFFBQVosRUFBcUJyQyxPQUFyQixpRUFBZ0N1QyxHQUFoQztBQUNEO0FBQ0YsQ0E3REQ7QUErREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQUMsb0JBQVlDLE1BQVosR0FBcUI7QUFDbkIsZ0JBQWM7QUFDWkMsSUFBQUEsT0FBTyxFQUFFLE9BREc7QUFFWixrQkFBYyxRQUZGO0FBR1pDLElBQUFBLE1BQU0sRUFBRTtBQUhJO0FBREssQ0FBckI7ZUFRZWhCLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRoamF4IH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL21hdGhqYXgnO1xuaW1wb3J0IHsgTWF0aEpheCBhcyBnbG9iYWxNYXRoamF4IH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvbXBvbmVudHMvZ2xvYmFsJztcbmltcG9ydCB7IEFzc2lzdGl2ZU1tbEhhbmRsZXIgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvYTExeS9hc3Npc3RpdmUtbW1sJztcbmltcG9ydCB7IEVucmljaEhhbmRsZXIgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvYTExeS9zZW1hbnRpYy1lbnJpY2gnO1xuaW1wb3J0IHsgTWVudUhhbmRsZXIgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvdWkvbWVudS9NZW51SGFuZGxlcic7XG5pbXBvcnQgeyBGaW5kTWF0aE1MIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2lucHV0L21hdGhtbC9GaW5kTWF0aE1MJztcbmltcG9ydCB7IE1hdGhNTCB9IGZyb20gJ21hdGhqYXgtZnVsbC9qcy9pbnB1dC9tYXRobWwnO1xuaW1wb3J0IHsgVGVYIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2lucHV0L3RleCc7XG5cbmltcG9ydCB7IENIVE1MIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL291dHB1dC9jaHRtbCc7XG5pbXBvcnQgeyBSZWdpc3RlckhUTUxIYW5kbGVyIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2hhbmRsZXJzL2h0bWwnO1xuaW1wb3J0IHsgYnJvd3NlckFkYXB0b3IgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvYWRhcHRvcnMvYnJvd3NlckFkYXB0b3InO1xuaW1wb3J0IHsgQWxsUGFja2FnZXMgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvaW5wdXQvdGV4L0FsbFBhY2thZ2VzJztcbmltcG9ydCB7IGVuZ2luZVJlYWR5IH0gZnJvbSAnc3BlZWNoLXJ1bGUtZW5naW5lL2pzL2NvbW1vbi9zeXN0ZW0nO1xuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgUmVnaXN0ZXJIVE1MSGFuZGxlcihicm93c2VyQWRhcHRvcigpKTtcbn1cblxubGV0IHNyZVJlYWR5ID0gZmFsc2U7XG5cbmVuZ2luZVJlYWR5KCkudGhlbigoKSA9PiB7XG4gIHNyZVJlYWR5ID0gdHJ1ZTtcbn0pO1xuXG4vLyBpbXBvcnQgcGtnIGZyb20gJy4uLy4uL3BhY2thZ2UuanNvbic7XG5pbXBvcnQgeyBtbWxOb2RlcywgY2h0bWxOb2RlcyB9IGZyb20gJy4vbXN0YWNrJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyB3cmFwTWF0aCwgdW5XcmFwTWF0aCB9IGZyb20gJy4vbm9ybWFsaXphdGlvbic7XG5pbXBvcnQgeyBNbWxGYWN0b3J5IH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvcmUvTW1sVHJlZS9NbWxGYWN0b3J5JztcbmltcG9ydCB7IFNlcmlhbGl6ZWRNbWxWaXNpdG9yIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2NvcmUvTW1sVHJlZS9TZXJpYWxpemVkTW1sVmlzaXRvcic7XG5pbXBvcnQgeyBDSFRNTFdyYXBwZXJGYWN0b3J5IH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL291dHB1dC9jaHRtbC9XcmFwcGVyRmFjdG9yeSc7XG5pbXBvcnQgeyBDSFRNTG1zcGFjZSB9IGZyb20gJ21hdGhqYXgtZnVsbC9qcy9vdXRwdXQvY2h0bWwvV3JhcHBlcnMvbXNwYWNlJztcbmltcG9ydCB7IEhUTUxEb21TdHJpbmdzIH0gZnJvbSAnbWF0aGpheC1mdWxsL2pzL2hhbmRsZXJzL2h0bWwvSFRNTERvbVN0cmluZ3MnO1xuXG5jb25zdCB2aXNpdG9yID0gbmV3IFNlcmlhbGl6ZWRNbWxWaXNpdG9yKCk7XG5jb25zdCB0b01NbCA9IChub2RlKSA9PiB2aXNpdG9yLnZpc2l0VHJlZShub2RlKTtcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6bWF0aC1yZW5kZXJpbmcnKTtcblxuY29uc3QgTkVXTElORV9CTE9DS19SRUdFWCA9IC9cXFxcZW1iZWRcXHtuZXdMaW5lXFx9XFxbXFxdL2c7XG5jb25zdCBORVdMSU5FX0xBVEVYID0gJ1xcXFxuZXdsaW5lICc7XG5cbmNvbnN0IGdldEdsb2JhbCA9ICgpID0+IHtcbiAgLy8gVE9ETyBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gdXNlIHZlcnNpb24/XG4gIC8vIGNvbnN0IGtleSA9IGAke3BrZy5uYW1lfUAke3BrZy52ZXJzaW9uLnNwbGl0KCcuJylbMF19YDtcbiAgLy8gSXQgbG9va3MgbGlrZSBFZCBtYWRlIHRoaXMgY2hhbmdlIHdoZW4gaGUgc3dpdGNoZWQgZnJvbSBtYXRoamF4MyB0byBtYXRoamF4LWZ1bGxcbiAgLy8gSSB0aGluayBpdCB3YXMgc3VwcG9zZWQgdG8gbWFrZSBzdXJlIHZlcnNpb24gMSAodXNpbmcgbWF0aGpheDMpIGlzIG5vdCB1c2VkXG4gIC8vIGluIGNvbWJpbmF0aW9uIHdpdGggdmVyc2lvbiAyICh1c2luZyBtYXRoamF4LWZ1bGwpXG5cbiAgLy8gVE9ETyBoaWdoZXIgbGV2ZWwgd3JhcHBlcnMgdXNlIHRoaXMgaW5zdGFuY2Ugb2YgbWF0aC1yZW5kZXJpbmcsIGFuZCBpZiAyIGRpZmZlcmVudCBpbnN0YW5jZXMgYXJlIHVzZWQsIG1hdGggcmVuZGVyaW5nIGlzIG5vdCB3b3JraW5nXG4gIC8vICBzbyBJIHdpbGwgaGFyZGNvZGUgdGhpcyBmb3Igbm93IHVudGlsIGEgYmV0dGVyIHNvbHV0aW9uIGlzIGZvdW5kXG4gIGNvbnN0IGtleSA9ICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZ0AyJztcblxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoIXdpbmRvd1trZXldKSB7XG4gICAgICB3aW5kb3dba2V5XSA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gd2luZG93W2tleV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59O1xuXG4vKiogQWRkIHRlbXBvcmFyeSBzdXBwb3J0IGZvciBhIGdsb2JhbCBzaW5nbGVEb2xsYXIgb3ZlcnJpZGVcbiAqICA8Y29kZT5cbiAqICAgLy8gVGhpcyB3aWxsIGVuYWJsZSBzaW5nbGUgZG9sbGFyIHJlbmRlcmluZ1xuICogICB3aW5kb3cucGllID0gd2luZG93LnBpZSB8fCB7fTtcbiAqICAgd2luZG93LnBpZS5tYXRoUmVuZGVyaW5nID0gIHt1c2VTaW5nbGVEb2xsYXI6IHRydWUgfTtcbiAqICA8L2NvZGU+XG4gKi9cbmNvbnN0IGRlZmF1bHRPcHRzID0gKCkgPT4gZ2V0R2xvYmFsKCkub3B0cyB8fCB7fTtcblxuZXhwb3J0IGNvbnN0IGZpeE1hdGhFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcbiAgaWYgKGVsZW1lbnQuZGF0YXNldC5tYXRoSGFuZGxlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBwcm9wZXJ0eSA9ICdpbm5lclRleHQnO1xuXG4gIGlmIChlbGVtZW50LnRleHRDb250ZW50KSB7XG4gICAgcHJvcGVydHkgPSAndGV4dENvbnRlbnQnO1xuICB9XG5cbiAgaWYgKGVsZW1lbnRbcHJvcGVydHldKSB7XG4gICAgZWxlbWVudFtwcm9wZXJ0eV0gPSB3cmFwTWF0aCh1bldyYXBNYXRoKGVsZW1lbnRbcHJvcGVydHldKS51bndyYXBwZWQpO1xuICAgIC8vIGJlY2F1c2UgbWF0aHF1aWxsIGRvZXNuJ3QgdW5kZXJzdGFuZCBsaW5lIGJyZWFrcywgc29tZXRpbWVzIHdlIGVuZCB1cCB3aXRoIGN1c3RvbSBlbGVtZW50cyBvbiBwcm9tcHRzL3JhdGlvbmFsZS9ldGMuXG4gICAgLy8gd2UgbmVlZCB0byByZXBsYWNlIHRoZSBjdXN0b20gZW1iZWRkZWQgZWxlbWVudHMgd2l0aCB2YWxpZCBsYXRleCB0aGF0IE1hdGhqYXggY2FuIHVuZGVyc3RhbmRcbiAgICBlbGVtZW50W3Byb3BlcnR5XSA9IGVsZW1lbnRbcHJvcGVydHldLnJlcGxhY2UoTkVXTElORV9CTE9DS19SRUdFWCwgTkVXTElORV9MQVRFWCk7XG4gICAgZWxlbWVudC5kYXRhc2V0Lm1hdGhIYW5kbGVkID0gdHJ1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZpeE1hdGhFbGVtZW50cyA9IChlbCA9IGRvY3VtZW50KSA9PiB7XG4gIGNvbnN0IG1hdGhFbGVtZW50cyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhdGV4XScpO1xuXG4gIG1hdGhFbGVtZW50cy5mb3JFYWNoKChpdGVtKSA9PiBmaXhNYXRoRWxlbWVudChpdGVtKSk7XG59O1xuXG5jb25zdCBhZGp1c3RNYXRoTUxTdHlsZSA9IChlbCA9IGRvY3VtZW50KSA9PiB7XG4gIGNvbnN0IG5vZGVzID0gZWwucXVlcnlTZWxlY3RvckFsbCgnbWF0aCcpO1xuICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiBub2RlLnNldEF0dHJpYnV0ZSgnZGlzcGxheXN0eWxlJywgJ3RydWUnKSk7XG59O1xuXG5jbGFzcyBteUZpbmRNYXRoTUwgZXh0ZW5kcyBGaW5kTWF0aE1MIHtcbiAgcHJvY2Vzc01hdGgoc2V0KSB7XG4gICAgY29uc3QgYWRhcHRvciA9IHRoaXMuYWRhcHRvcjtcbiAgICBmb3IgKGNvbnN0IG1tbCBvZiBBcnJheS5mcm9tKHNldCkpIHtcbiAgICAgIGlmIChhZGFwdG9yLmtpbmQoYWRhcHRvci5wYXJlbnQobW1sKSkgPT09ICdtangtYXNzaXN0aXZlLW1tbCcpIHtcbiAgICAgICAgc2V0LmRlbGV0ZShtbWwpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIucHJvY2Vzc01hdGgoc2V0KTtcbiAgfVxufVxuXG5jb25zdCBjcmVhdGVNYXRoTUxJbnN0YW5jZSA9IChvcHRzLCBkb2NQcm92aWRlZCA9IGRvY3VtZW50KSA9PiB7XG4gIG9wdHMgPSBvcHRzIHx8IGRlZmF1bHRPcHRzKCk7XG5cbiAgaWYgKG9wdHMudXNlU2luZ2xlRG9sbGFyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgY29uc29sZS53YXJuKCdbbWF0aC1yZW5kZXJpbmddIHVzaW5nICQgaXMgbm90IGFkdmlzYWJsZSwgcGxlYXNlIHVzZSAkJC4uJCQgb3IgXFxcXCguLi5cXFxcKScpO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZXMgPSBBbGxQYWNrYWdlcy5maWx0ZXIoKG5hbWUpID0+IG5hbWUgIT09ICdidXNzcHJvb2ZzJyk7IC8vIEJ1c3Nwcm9vZnMgbmVlZHMgYW4gb3V0cHV0IGpheFxuXG4gIC8vIFRoZSBhdXRvbG9hZCBleHRlbnNpb24gcHJlZGVmaW5lcyBhbGwgdGhlIG1hY3JvcyBmcm9tIHRoZSBleHRlbnNpb25zIHRoYXQgaGF2ZW4ndCBiZWVuIGxvYWRlZCBhbHJlYWR5XG4gIC8vIHNvIHRoYXQgdGhleSBhdXRvbWF0aWNhbGx5IGxvYWQgdGhlIG5lZWRlZCBleHRlbnNpb24gd2hlbiB0aGV5IGFyZSBmaXJzdCB1c2VkXG4gIHBhY2thZ2VzLnB1c2goJ2F1dG9sb2FkJyk7XG5cbiAgY29uc3QgbWFjcm9zID0ge1xuICAgIHBhcmFsbGVsb2dyYW06ICdcXFxcbG93ZXIuMmVte1xcXFxIdWdlXFxcXHVuaWNvZGV7eDI1QjF9fScsXG4gICAgb3ZlcmFyYzogJ1xcXFxvdmVycGFyZW4nLFxuICAgIG5hcHByb3g6ICdcXFxcbm90XFxcXGFwcHJveCcsXG4gICAgbG9uZ2RpdjogJ1xcXFxlbmNsb3Nle2xvbmdkaXZ9JyxcbiAgfTtcblxuICBjb25zdCB0ZXhDb25maWcgPSBvcHRzLnVzZVNpbmdsZURvbGxhclxuICAgID8ge1xuICAgICAgICBwYWNrYWdlcyxcbiAgICAgICAgbWFjcm9zLFxuICAgICAgICBpbmxpbmVNYXRoOiBbXG4gICAgICAgICAgWyckJywgJyQnXSxcbiAgICAgICAgICBbJ1xcXFwoJywgJ1xcXFwpJ10sXG4gICAgICAgIF0sXG4gICAgICAgIHByb2Nlc3NFc2NhcGVzOiB0cnVlLFxuICAgICAgfVxuICAgIDoge1xuICAgICAgICBwYWNrYWdlcyxcbiAgICAgICAgbWFjcm9zLFxuICAgICAgfTtcblxuICBjb25zdCBtbWxDb25maWcgPSB7XG4gICAgcGFyc2VFcnJvcjogZnVuY3Rpb24obm9kZSkge1xuICAgICAgLy8gZnVuY3Rpb24gdG8gcHJvY2VzcyBwYXJzaW5nIGVycm9yc1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvcjonLCBub2RlKTtcbiAgICAgIHRoaXMuZXJyb3IodGhpcy5hZGFwdG9yLnRleHRDb250ZW50KG5vZGUpLnJlcGxhY2UoL1xcbi4qL2csICcnKSk7XG4gICAgfSxcbiAgICBGaW5kTWF0aE1MOiBuZXcgbXlGaW5kTWF0aE1MKCksXG4gIH07XG5cbiAgbGV0IGNhY2hlZE1hdGhqYXg7XG5cbiAgaWYgKGdsb2JhbE1hdGhqYXggJiYgZ2xvYmFsTWF0aGpheC52ZXJzaW9uICE9PSBtYXRoamF4LnZlcnNpb24pIHtcbiAgICAvLyBoYW5kbGluZyBvdGhlciBNYXRoSmF4IHZlcnNpb24gb24gdGhlIHBhZ2VcbiAgICAvLyByZXBsYWNpbmcgaXQgdGVtcG9yYXJpbHkgd2l0aCB0aGUgdmVyc2lvbiB3ZSBoYXZlXG4gICAgd2luZG93Lk1hdGhKYXguXyA9IHdpbmRvdy5NYXRoSmF4Ll8gfHwge307XG4gICAgd2luZG93Lk1hdGhKYXguY29uZmlnID0gd2luZG93Lk1hdGhKYXguY29uZmlnIHx8IHt9O1xuICAgIGNhY2hlZE1hdGhqYXggPSB3aW5kb3cuTWF0aEpheDtcbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbE1hdGhqYXgsIG1hdGhqYXgpO1xuICB9XG5cbiAgY29uc3QgZm9udFVSTCA9IGBodHRwczovL3VucGtnLmNvbS9tYXRoamF4LWZ1bGxAJHttYXRoamF4LnZlcnNpb259L3RzL291dHB1dC9jaHRtbC9mb250cy90ZXgtd29mZi12MmA7XG4gIGNvbnN0IGh0bWxDb25maWcgPSB7XG4gICAgZm9udFVSTCxcblxuICAgIHdyYXBwZXJGYWN0b3J5OiBuZXcgQ0hUTUxXcmFwcGVyRmFjdG9yeSh7XG4gICAgICAuLi5DSFRNTFdyYXBwZXJGYWN0b3J5LmRlZmF1bHROb2RlcyxcbiAgICAgIC4uLmNodG1sTm9kZXMsXG4gICAgfSksXG4gIH07XG5cbiAgY29uc3QgbW1sID0gbmV3IE1hdGhNTChtbWxDb25maWcpO1xuXG4gIGNvbnN0IGN1c3RvbU1tbEZhY3RvcnkgPSBuZXcgTW1sRmFjdG9yeSh7XG4gICAgLi4uTW1sRmFjdG9yeS5kZWZhdWx0Tm9kZXMsXG4gICAgLi4ubW1sTm9kZXMsXG4gIH0pO1xuICBjb25zdCBjbGFzc0ZhY3RvcnkgPSBFbnJpY2hIYW5kbGVyKFxuICAgIE1lbnVIYW5kbGVyKEFzc2lzdGl2ZU1tbEhhbmRsZXIobWF0aGpheC5oYW5kbGVycy5oYW5kbGVzRG9jdW1lbnQoZG9jUHJvdmlkZWQpKSksXG4gICAgbW1sLFxuICApO1xuXG4gIGNvbnN0IGh0bWwgPSBjbGFzc0ZhY3RvcnkuY3JlYXRlKGRvY1Byb3ZpZGVkLCB7XG4gICAgY29tcGlsZUVycm9yOiAobWosIG1hdGgsIGVycikgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKCdiYWQgbWF0aD86JywgbWF0aCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH0sXG4gICAgdHlwZXNldEVycm9yOiBmdW5jdGlvbihkb2MsIG1hdGgsIGVycikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKCd0eXBlc2V0IGVycm9yJyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgZG9jLnR5cGVzZXRFcnJvcihtYXRoLCBlcnIpO1xuICAgIH0sXG5cbiAgICBzcmU6IHtcbiAgICAgIHNwZWVjaDogJ2RlZXAnLFxuICAgIH0sXG4gICAgZW5yaWNoU3BlZWNoOiAnZGVlcCcsXG5cbiAgICBJbnB1dEpheDogW25ldyBUZVgodGV4Q29uZmlnKSwgbW1sXSxcbiAgICBPdXRwdXRKYXg6IG5ldyBDSFRNTChodG1sQ29uZmlnKSxcbiAgICBEb21TdHJpbmdzOiBuZXcgSFRNTERvbVN0cmluZ3Moe1xuICAgICAgc2tpcEh0bWxUYWdzOiBbXG4gICAgICAgICdzY3JpcHQnLFxuICAgICAgICAnbm9zY3JpcHQnLFxuICAgICAgICAnc3R5bGUnLFxuICAgICAgICAndGV4dGFyZWEnLFxuICAgICAgICAncHJlJyxcbiAgICAgICAgJ2NvZGUnLFxuICAgICAgICAnYW5ub3RhdGlvbicsXG4gICAgICAgICdhbm5vdGF0aW9uLXhtbCcsXG4gICAgICAgICdtangtYXNzaXN0aXZlLW1tbCcsXG4gICAgICAgICdtangtY29udGFpbmVyJyxcbiAgICAgIF0sXG4gICAgfSksXG4gIH0pO1xuXG4gIC8vIE5vdGU6IHdlIG11c3Qgc2V0IHRoaXMgKmFmdGVyKiBtYXRoamF4LmRvY3VtZW50IChubyBpZGVhIHdoeSlcbiAgbW1sLnNldE1tbEZhY3RvcnkoY3VzdG9tTW1sRmFjdG9yeSk7XG5cbiAgaWYgKGNhY2hlZE1hdGhqYXgpIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGEgY2FjaGVkIHZlcnNpb24sIHdlIHJlcGxhY2UgaXQgaGVyZVxuICAgIHdpbmRvdy5NYXRoSmF4ID0gY2FjaGVkTWF0aGpheDtcbiAgfVxuXG4gIHJldHVybiBodG1sO1xufTtcblxubGV0IGVucmljaFNwZWVjaEluaXRpYWxpemVkID0gZmFsc2U7XG5cbmNvbnN0IGJvb3RzdHJhcCA9IChvcHRzKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB7IFR5cGVzZXQ6ICgpID0+ICh7fSkgfTtcbiAgfVxuXG4gIGNvbnN0IGh0bWwgPSBjcmVhdGVNYXRoTUxJbnN0YW5jZShvcHRzKTtcblxuICByZXR1cm4ge1xuICAgIHZlcnNpb246IG1hdGhqYXgudmVyc2lvbixcbiAgICBodG1sOiBodG1sLFxuICAgIFR5cGVzZXQ6IGZ1bmN0aW9uKC4uLmVsZW1lbnRzKSB7XG4gICAgICBjb25zdCBhdHRlbXB0UmVuZGVyID0gKHRlbXBvcmFyeSA9IGZhbHNlKSA9PiB7XG4gICAgICAgIGxldCB1cGRhdGVkRG9jdW1lbnQgPSB0aGlzLmh0bWwuZmluZE1hdGgoZWxlbWVudHMubGVuZ3RoID8geyBlbGVtZW50cyB9IDoge30pLmNvbXBpbGUoKTtcblxuICAgICAgICBpZiAoIXRlbXBvcmFyeSAmJiBzcmVSZWFkeSkge1xuICAgICAgICAgIHVwZGF0ZWREb2N1bWVudCA9IHVwZGF0ZWREb2N1bWVudC5lbnJpY2goKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZWREb2N1bWVudCA9IHVwZGF0ZWREb2N1bWVudFxuICAgICAgICAgIC5nZXRNZXRyaWNzKClcbiAgICAgICAgICAudHlwZXNldCgpXG4gICAgICAgICAgLmFzc2lzdGl2ZU1tbCgpXG4gICAgICAgICAgLmF0dGFjaFNwZWVjaCgpXG4gICAgICAgICAgLmFkZE1lbnUoKVxuICAgICAgICAgIC51cGRhdGVEb2N1bWVudCgpO1xuXG4gICAgICAgIGlmICghZW5yaWNoU3BlZWNoSW5pdGlhbGl6ZWQgJiYgdHlwZW9mIHVwZGF0ZWREb2N1bWVudC5tYXRoLmxpc3Q/Lm5leHQ/LmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZW5yaWNoU3BlZWNoSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBsaXN0ID0gdXBkYXRlZERvY3VtZW50Lm1hdGgubGlzdDtcblxuICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpdGVtID0gbGlzdC5uZXh0OyB0eXBlb2YgaXRlbS5kYXRhICE9PSAnc3ltYm9sJzsgaXRlbSA9IGl0ZW0ubmV4dCkge1xuICAgICAgICAgICAgICBjb25zdCBtYXRoTWwgPSB0b01NbChpdGVtLmRhdGEucm9vdCk7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcnNlZE1hdGhNbCA9IG1hdGhNbC5yZXBsYWNlQWxsKCdcXG4nLCAnJyk7XG5cbiAgICAgICAgICAgICAgaXRlbS5kYXRhLnR5cGVzZXRSb290LnNldEF0dHJpYnV0ZSgnZGF0YS1tYXRobWwnLCBwYXJzZWRNYXRoTWwpO1xuICAgICAgICAgICAgICBpdGVtLmRhdGEudHlwZXNldFJvb3Quc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlZERvY3VtZW50LmNsZWFyKCk7XG4gICAgICB9O1xuXG4gICAgICBpZiAoIWVucmljaFNwZWVjaEluaXRpYWxpemVkKSB7XG4gICAgICAgIGF0dGVtcHRSZW5kZXIodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIG1hdGhqYXguaGFuZGxlUmV0cmllc0ZvcigoKSA9PiB7XG4gICAgICAgIGF0dGVtcHRSZW5kZXIoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59O1xuXG5jb25zdCByZW5kZXJNYXRoID0gKGVsLCByZW5kZXJPcHRzKSA9PiB7XG4gIGlmIChcbiAgICB3aW5kb3cgJiZcbiAgICB3aW5kb3cuTWF0aEpheCAmJlxuICAgIHdpbmRvdy5NYXRoSmF4LmN1c3RvbUtleSAmJlxuICAgIHdpbmRvdy5NYXRoSmF4LmN1c3RvbUtleSA9PSAnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmctYWNjZXNzaWJsZUAxJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBpc1N0cmluZyA9IHR5cGVvZiBlbCA9PT0gJ3N0cmluZyc7XG4gIGxldCBleGVjdXRlT24gPSBkb2N1bWVudC5ib2R5O1xuXG4gIGlmIChpc1N0cmluZykge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgZGl2LmlubmVySFRNTCA9IGVsO1xuICAgIGV4ZWN1dGVPbiA9IGRpdjtcbiAgfVxuXG4gIGZpeE1hdGhFbGVtZW50cyhleGVjdXRlT24pO1xuICBhZGp1c3RNYXRoTUxTdHlsZShleGVjdXRlT24pO1xuXG4gIGlmIChpc1N0cmluZykge1xuICAgIGNvbnN0IGh0bWwgPSBjcmVhdGVNYXRoTUxJbnN0YW5jZSh1bmRlZmluZWQsIGV4ZWN1dGVPbik7XG5cbiAgICBjb25zdCB1cGRhdGVkRG9jdW1lbnQgPSBodG1sXG4gICAgICAuZmluZE1hdGgoKVxuICAgICAgLmNvbXBpbGUoKVxuICAgICAgLmdldE1ldHJpY3MoKVxuICAgICAgLnR5cGVzZXQoKVxuICAgICAgLnVwZGF0ZURvY3VtZW50KCk7XG5cbiAgICBjb25zdCBsaXN0ID0gdXBkYXRlZERvY3VtZW50Lm1hdGgubGlzdDtcbiAgICBjb25zdCBpdGVtID0gbGlzdC5uZXh0O1xuXG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0aE1sID0gdG9NTWwoaXRlbS5kYXRhLnJvb3QpO1xuICAgIGNvbnN0IHBhcnNlZE1hdGhNbCA9IG1hdGhNbC5yZXBsYWNlQWxsKCdcXG4nLCAnJyk7XG5cbiAgICByZXR1cm4gcGFyc2VkTWF0aE1sO1xuICB9XG5cbiAgaWYgKCFnZXRHbG9iYWwoKS5pbnN0YW5jZSkge1xuICAgIGdldEdsb2JhbCgpLmluc3RhbmNlID0gYm9vdHN0cmFwKHJlbmRlck9wdHMpO1xuICB9XG5cbiAgaWYgKCFlbCkge1xuICAgIGxvZygnZWwgaXMgdW5kZWZpbmVkJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGVsIGluc3RhbmNlb2YgRWxlbWVudCAmJiBnZXRHbG9iYWwoKS5pbnN0YW5jZT8uVHlwZXNldCkge1xuICAgIGdldEdsb2JhbCgpLmluc3RhbmNlLlR5cGVzZXQoZWwpO1xuICB9IGVsc2UgaWYgKGVsLmxlbmd0aCAmJiBnZXRHbG9iYWwoKS5pbnN0YW5jZT8uVHlwZXNldCkge1xuICAgIGNvbnN0IGFyciA9IEFycmF5LmZyb20oZWwpO1xuICAgIGdldEdsb2JhbCgpLmluc3RhbmNlLlR5cGVzZXQoLi4uYXJyKTtcbiAgfVxufTtcblxuLyoqXG4gKiBUaGlzIHN0eWxlIGlzIGFkZGVkIHRvIG92ZXJyaWVkIGRlZmF1bHQgc3R5bGluZyBvZiBtangtbXNwYWNlIE1hdGhqYXggdGFnXG4gKiBJbiBtYXRoamF4IHNyYyBjb2RlIFxcbmV3bGluZSBsYXRleCBnZXRzIHBhcnNlZCB0byA8bWp4LW1zcGFjZT48L21qeC1tc3BhY2U+LFxuICogYnV0IGhhcyB0aGUgZGVmYXVsdCBzdHlsZVxuICogJ21qeC1tc3BhY2UnOiB7XG4gIFwiZGlzcGxheVwiOiAnaW4tbGluZScsXG4gIFwidGV4dC1hbGlnblwiOiAnbGVmdCdcbn0gd2hpY2ggcHJldmVudHMgaXQgZnJvbSBzaG93aW5nIGFzIGEgbmV3bGluZSB2YWx1ZVxuICovXG5DSFRNTG1zcGFjZS5zdHlsZXMgPSB7XG4gICdtangtbXNwYWNlJzoge1xuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgJ3RleHQtYWxpZ24nOiAnY2VudGVyJyxcbiAgICBoZWlnaHQ6ICc1cHgnLFxuICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgcmVuZGVyTWF0aDtcbiJdfQ==
438
+ //# sourceMappingURL=render-math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/render-math.js"],"names":["window","sreReady","then","visitor","SerializedMmlVisitor","toMMl","node","visitTree","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","defaultOpts","opts","fixMathElement","element","dataset","mathHandled","property","textContent","unwrapped","replace","fixMathElements","el","document","mathElements","querySelectorAll","forEach","item","adjustMathMLStyle","nodes","setAttribute","myFindMathML","set","adaptor","Array","from","mml","kind","parent","FindMathML","createMathMLInstance","docProvided","useSingleDollar","console","warn","packages","AllPackages","filter","name","push","macros","parallelogram","overarc","napprox","longdiv","texConfig","inlineMath","processEscapes","mmlConfig","parseError","error","cachedMathjax","globalMathjax","version","mathjax","MathJax","_","config","Object","assign","fontURL","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","MathML","customMmlFactory","MmlFactory","mmlNodes","classFactory","handlers","handlesDocument","html","create","compileError","mj","math","err","typesetError","doc","sre","speech","enrichSpeech","InputJax","TeX","OutputJax","CHTML","DomStrings","HTMLDomStrings","skipHtmlTags","setMmlFactory","enrichSpeechInitialized","bootstrap","Typeset","elements","attemptRender","temporary","updatedDocument","findMath","length","compile","enrich","getMetrics","typeset","assistiveMml","attachSpeech","addMenu","updateDocument","list","next","data","mathMl","root","parsedMathMl","replaceAll","typesetRoot","e","toString","clear","handleRetriesFor","renderMath","renderOpts","customKey","isString","executeOn","body","div","createElement","innerHTML","undefined","instance","Element","arr","CHTMLmspace","styles","display","height"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\nimport { MathJax as globalMathjax } from 'mathjax-full/js/components/global';\nimport { AssistiveMmlHandler } from 'mathjax-full/js/a11y/assistive-mml';\nimport { EnrichHandler } from 'mathjax-full/js/a11y/semantic-enrich';\nimport { MenuHandler } from 'mathjax-full/js/ui/menu/MenuHandler';\nimport { FindMathML } from 'mathjax-full/js/input/mathml/FindMathML';\nimport { MathML } from 'mathjax-full/js/input/mathml';\nimport { TeX } from 'mathjax-full/js/input/tex';\n\nimport { CHTML } from 'mathjax-full/js/output/chtml';\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';\nimport { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';\nimport { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';\nimport { engineReady } from 'speech-rule-engine/js/common/system';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nlet sreReady = false;\n\nengineReady().then(() => {\n sreReady = true;\n});\n\n// import pkg from '../../package.json';\nimport { mmlNodes, chtmlNodes } from './mstack';\nimport debug from 'debug';\nimport { wrapMath, unWrapMath } from './normalization';\nimport { MmlFactory } from 'mathjax-full/js/core/MmlTree/MmlFactory';\nimport { SerializedMmlVisitor } from 'mathjax-full/js/core/MmlTree/SerializedMmlVisitor';\nimport { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\nimport { HTMLDomStrings } from 'mathjax-full/js/handlers/html/HTMLDomStrings';\n\nconst visitor = new SerializedMmlVisitor();\nconst toMMl = (node) => visitor.visitTree(node);\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst 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\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 const key = '@pie-lib/math-rendering@2';\n\n if (typeof window !== 'undefined') {\n if (!window[key]) {\n window[key] = {};\n }\n return window[key];\n } else {\n return {};\n }\n};\n\n/** Add temporary support for a global singleDollar override\n * <code>\n * // This will enable single dollar rendering\n * window.pie = window.pie || {};\n * window.pie.mathRendering = {useSingleDollar: true };\n * </code>\n */\nconst defaultOpts = () => getGlobal().opts || {};\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\nclass myFindMathML extends FindMathML {\n processMath(set) {\n const adaptor = this.adaptor;\n for (const mml of Array.from(set)) {\n if (adaptor.kind(adaptor.parent(mml)) === 'mjx-assistive-mml') {\n set.delete(mml);\n }\n }\n return super.processMath(set);\n }\n}\n\nconst createMathMLInstance = (opts, docProvided = document) => {\n opts = opts || defaultOpts();\n\n if (opts.useSingleDollar) {\n // eslint-disable-next-line\n console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\\\(...\\\\)');\n }\n\n const packages = AllPackages.filter((name) => name !== 'bussproofs'); // Bussproofs needs an output jax\n\n // The autoload extension predefines all the macros from the extensions that haven't been loaded already\n // so that they automatically load the needed extension when they are first used\n packages.push('autoload');\n\n const macros = {\n parallelogram: '\\\\lower.2em{\\\\Huge\\\\unicode{x25B1}}',\n overarc: '\\\\overparen',\n napprox: '\\\\not\\\\approx',\n longdiv: '\\\\enclose{longdiv}',\n };\n\n const texConfig = opts.useSingleDollar\n ? {\n packages,\n macros,\n inlineMath: [\n ['$', '$'],\n ['\\\\(', '\\\\)'],\n ],\n processEscapes: true,\n }\n : {\n packages,\n macros,\n };\n\n const mmlConfig = {\n parseError: function(node) {\n // function to process parsing errors\n // eslint-disable-next-line no-console\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n },\n FindMathML: new myFindMathML(),\n };\n\n let cachedMathjax;\n\n if (globalMathjax && globalMathjax.version !== mathjax.version) {\n // handling other MathJax version on the page\n // replacing it temporarily with the version we have\n window.MathJax._ = window.MathJax._ || {};\n window.MathJax.config = window.MathJax.config || {};\n cachedMathjax = window.MathJax;\n Object.assign(globalMathjax, mathjax);\n }\n\n const fontURL = `https://unpkg.com/mathjax-full@${mathjax.version}/ts/output/chtml/fonts/tex-woff-v2`;\n const htmlConfig = {\n fontURL,\n\n wrapperFactory: new CHTMLWrapperFactory({\n ...CHTMLWrapperFactory.defaultNodes,\n ...chtmlNodes,\n }),\n };\n\n const mml = new MathML(mmlConfig);\n\n const customMmlFactory = new MmlFactory({\n ...MmlFactory.defaultNodes,\n ...mmlNodes,\n });\n const classFactory = EnrichHandler(\n MenuHandler(AssistiveMmlHandler(mathjax.handlers.handlesDocument(docProvided))),\n mml,\n );\n\n const html = classFactory.create(docProvided, {\n compileError: (mj, math, err) => {\n // eslint-disable-next-line no-console\n console.log('bad math?:', math);\n // eslint-disable-next-line no-console\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n // eslint-disable-next-line no-console\n console.log('typeset error');\n // eslint-disable-next-line no-console\n console.error(err);\n doc.typesetError(math, err);\n },\n\n sre: {\n speech: 'deep',\n },\n enrichSpeech: 'deep',\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig),\n DomStrings: new HTMLDomStrings({\n skipHtmlTags: [\n 'script',\n 'noscript',\n 'style',\n 'textarea',\n 'pre',\n 'code',\n 'annotation',\n 'annotation-xml',\n 'mjx-assistive-mml',\n 'mjx-container',\n ],\n }),\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n if (cachedMathjax) {\n // if we have a cached version, we replace it here\n window.MathJax = cachedMathjax;\n }\n\n return html;\n};\n\nlet enrichSpeechInitialized = false;\n\nconst bootstrap = (opts) => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\n const html = createMathMLInstance(opts);\n\n return {\n version: mathjax.version,\n html: html,\n Typeset: function(...elements) {\n const attemptRender = (temporary = false) => {\n let updatedDocument = this.html.findMath(elements.length ? { elements } : {}).compile();\n\n if (!temporary && sreReady) {\n updatedDocument = updatedDocument.enrich();\n }\n\n updatedDocument = updatedDocument\n .getMetrics()\n .typeset()\n .assistiveMml()\n .attachSpeech()\n .addMenu()\n .updateDocument();\n\n if (!enrichSpeechInitialized && typeof updatedDocument.math.list?.next?.data === 'object') {\n enrichSpeechInitialized = true;\n }\n\n try {\n const list = updatedDocument.math.list;\n\n if (list) {\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 } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n\n updatedDocument.clear();\n };\n\n if (!enrichSpeechInitialized) {\n attemptRender(true);\n }\n\n mathjax.handleRetriesFor(() => {\n attemptRender();\n });\n },\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n if (\n window &&\n window.MathJax &&\n window.MathJax.customKey &&\n window.MathJax.customKey == '@pie-lib/math-rendering-accessible@1'\n ) {\n return;\n }\n\n const isString = typeof el === 'string';\n let executeOn = document.body;\n\n if (isString) {\n const div = document.createElement('div');\n\n div.innerHTML = el;\n executeOn = div;\n }\n\n fixMathElements(executeOn);\n adjustMathMLStyle(executeOn);\n\n if (isString) {\n const html = createMathMLInstance(undefined, executeOn);\n\n const updatedDocument = html\n .findMath()\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument();\n\n const list = updatedDocument.math.list;\n const item = list.next;\n\n if (!item) {\n return '';\n }\n\n const mathMl = toMMl(item.data.root);\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n return parsedMathMl;\n }\n\n if (!getGlobal().instance) {\n getGlobal().instance = bootstrap(renderOpts);\n }\n\n if (!el) {\n log('el is undefined');\n return;\n }\n\n if (el instanceof Element && getGlobal().instance?.Typeset) {\n getGlobal().instance.Typeset(el);\n } else if (el.length && getGlobal().instance?.Typeset) {\n const arr = Array.from(el);\n getGlobal().instance.Typeset(...arr);\n }\n};\n\n/**\n * This style is added to overried default styling of mjx-mspace Mathjax tag\n * In mathjax src code \\newline latex gets parsed to <mjx-mspace></mjx-mspace>,\n * but has the default style\n * 'mjx-mspace': {\n \"display\": 'in-line',\n \"text-align\": 'left'\n} which prevents it from showing as a newline value\n */\nCHTMLmspace.styles = {\n 'mjx-mspace': {\n display: 'block',\n 'text-align': 'center',\n height: '5px',\n },\n};\n\nexport default renderMath;\n"],"file":"render-math.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/math-rendering",
3
- "version": "3.4.0-beta.0",
3
+ "version": "3.5.0",
4
4
  "description": "math rendering utilities",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -13,8 +13,9 @@
13
13
  "@pie-framework/mathml-to-latex": "1.4.4",
14
14
  "debug": "^4.1.1",
15
15
  "lodash": "^4.17.11",
16
- "mathjax-full": "3.2.2"
16
+ "mathjax-full": "3.2.2",
17
+ "react": "^16.8.1"
17
18
  },
18
- "gitHead": "3818c24530f62b5bb9be7a2c6aa5428f13a17e0a",
19
+ "gitHead": "ecb1ca31aa1c24d23af00d5ad04ce73ed8871057",
19
20
  "scripts": {}
20
21
  }
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import mmlToLatex from '../mml-to-latex';
3
3
 
4
-
5
4
  describe('mmlToLatex', () => {
6
5
  it('should work', () => {
7
6
  const mml =
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import debug from 'debug';
3
- import { Data } from 'slate';
4
3
  import { BracketTypes, wrapMath, unWrapMath } from '../normalization';
5
4
 
6
5
  const log = debug('@pie-lib:math-rendering:test:normalization');
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _mmlToLatex = _interopRequireDefault(require("../mml-to-latex"));
8
-
9
- describe('mmlToLatex', function () {
10
- it('should work', function () {
11
- var mml = '<math xmlns="http://www.w3.org/1998/Math/MathML"> <mn>2</mn> <mi>x</mi> <mtext>&#xA0;</mtext> <mo>&#x2264;</mo> <mn>4</mn> <mi>y</mi> <mtext>&#xA0;</mtext> <mo>+</mo> <mtext>&#xA0;</mtext> <mn>8</mn> <msqrt> <mi>h</mi> </msqrt></math>'; // todo revisit this
12
- // const latex = '2x\\text{ }\\leq4y\\text{ }+\\text{ }8\\sqrt{h}';
13
-
14
- var latex = '2 x \\textrm{ } \\leq 4 y \\textrm{ } + \\textrm{ } 8 \\sqrt{h}';
15
- expect((0, _mmlToLatex["default"])(mml)).toEqual(latex);
16
- });
17
- });
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbW1sLXRvLWxhdGV4LnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsIm1tbCIsImxhdGV4IiwiZXhwZWN0IiwidG9FcXVhbCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUNBOztBQUdBQSxRQUFRLENBQUMsWUFBRCxFQUFlLFlBQU07QUFDM0JDLEVBQUFBLEVBQUUsQ0FBQyxhQUFELEVBQWdCLFlBQU07QUFDdEIsUUFBTUMsR0FBRyxHQUNQLDBQQURGLENBRHNCLENBR3RCO0FBQ0E7O0FBQ0EsUUFBTUMsS0FBSyxHQUFHLGlFQUFkO0FBRUFDLElBQUFBLE1BQU0sQ0FBQyw0QkFBV0YsR0FBWCxDQUFELENBQU4sQ0FBd0JHLE9BQXhCLENBQWdDRixLQUFoQztBQUNELEdBUkMsQ0FBRjtBQVNELENBVk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbW1sVG9MYXRleCBmcm9tICcuLi9tbWwtdG8tbGF0ZXgnO1xuXG5cbmRlc2NyaWJlKCdtbWxUb0xhdGV4JywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHdvcmsnLCAoKSA9PiB7XG4gICAgY29uc3QgbW1sID1cbiAgICAgICc8bWF0aCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIj4gIDxtbj4yPC9tbj4gIDxtaT54PC9taT4gIDxtdGV4dD4mI3hBMDs8L210ZXh0PiAgPG1vPiYjeDIyNjQ7PC9tbz4gIDxtbj40PC9tbj4gIDxtaT55PC9taT4gIDxtdGV4dD4mI3hBMDs8L210ZXh0PiAgPG1vPis8L21vPiAgPG10ZXh0PiYjeEEwOzwvbXRleHQ+ICA8bW4+ODwvbW4+IDxtc3FydD4gICAgPG1pPmg8L21pPiAgPC9tc3FydD48L21hdGg+JztcbiAgICAvLyB0b2RvIHJldmlzaXQgdGhpc1xuICAgIC8vIGNvbnN0IGxhdGV4ID0gJzJ4XFxcXHRleHR7IH1cXFxcbGVxNHlcXFxcdGV4dHsgfStcXFxcdGV4dHsgfThcXFxcc3FydHtofSc7XG4gICAgY29uc3QgbGF0ZXggPSAnMiB4IFxcXFx0ZXh0cm17IH0gXFxcXGxlcSA0IHkgXFxcXHRleHRybXsgfSArIFxcXFx0ZXh0cm17IH0gOCBcXFxcc3FydHtofSc7XG5cbiAgICBleHBlY3QobW1sVG9MYXRleChtbWwpKS50b0VxdWFsKGxhdGV4KTtcbiAgfSk7XG59KTtcbiJdfQ==