@pie-lib/math-rendering 3.22.2-next.0 → 3.22.2-next.164
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 -67
- package/esm/index.css +847 -0
- package/esm/index.js +88775 -0
- package/esm/index.js.map +1 -0
- package/esm/package.json +3 -0
- package/lib/index.js +0 -4
- package/lib/index.js.map +1 -1
- package/lib/mml-to-latex.js +1 -5
- package/lib/mml-to-latex.js.map +1 -1
- package/lib/mstack/chtml.js +21 -87
- package/lib/mstack/chtml.js.map +1 -1
- package/lib/mstack/index.js +2 -7
- package/lib/mstack/index.js.map +1 -1
- package/lib/mstack/mml.js +19 -60
- package/lib/mstack/mml.js.map +1 -1
- package/lib/normalization.js +7 -34
- package/lib/normalization.js.map +1 -1
- package/lib/render-math.js +53 -129
- package/lib/render-math.js.map +1 -1
- package/package.json +15 -4
- package/src/__tests__/render-math.test.js +3 -3
- package/src/mstack/__tests__/chtml.test.js +5 -1
- package/src/render-math.js +25 -4
- package/src/mstack/__tests__/__snapshots__/chtml.test.js.snap +0 -9
package/lib/normalization.js
CHANGED
|
@@ -1,95 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.wrapMath = exports.unWrapMath = exports.BracketTypes = void 0;
|
|
9
|
-
|
|
10
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var _PAIRS;
|
|
15
|
-
|
|
16
|
-
var BracketTypes = {};
|
|
17
|
-
exports.BracketTypes = BracketTypes;
|
|
10
|
+
var BracketTypes = exports.BracketTypes = {};
|
|
18
11
|
BracketTypes.ROUND_BRACKETS = 'round_brackets';
|
|
19
12
|
BracketTypes.SQUARE_BRACKETS = 'square_brackets';
|
|
20
13
|
BracketTypes.DOLLAR = 'dollar';
|
|
21
14
|
BracketTypes.DOUBLE_DOLLAR = 'double_dollar';
|
|
22
|
-
var PAIRS = (
|
|
23
|
-
|
|
24
|
-
var wrapMath = function wrapMath(content, wrapType) {
|
|
15
|
+
var PAIRS = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, BracketTypes.ROUND_BRACKETS, ['\\(', '\\)']), BracketTypes.SQUARE_BRACKETS, ['\\[', '\\]']), BracketTypes.DOLLAR, ['$', '$']), BracketTypes.DOUBLE_DOLLAR, ['$$', '$$']);
|
|
16
|
+
var wrapMath = exports.wrapMath = function wrapMath(content, wrapType) {
|
|
25
17
|
if (wrapType === BracketTypes.SQUARE_BRACKETS) {
|
|
26
18
|
console.warn('\\[...\\] is not supported yet'); // eslint-disable-line
|
|
27
|
-
|
|
28
19
|
wrapType = BracketTypes.ROUND_BRACKETS;
|
|
29
20
|
}
|
|
30
|
-
|
|
31
21
|
if (wrapType === BracketTypes.DOUBLE_DOLLAR) {
|
|
32
22
|
console.warn('$$...$$ is not supported yet'); // eslint-disable-line
|
|
33
|
-
|
|
34
23
|
wrapType = BracketTypes.DOLLAR;
|
|
35
24
|
}
|
|
36
|
-
|
|
37
25
|
var _ref = PAIRS[wrapType] || PAIRS[BracketTypes.ROUND_BRACKETS],
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
26
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
27
|
+
start = _ref2[0],
|
|
28
|
+
end = _ref2[1];
|
|
42
29
|
return "".concat(start).concat(content).concat(end);
|
|
43
30
|
};
|
|
44
|
-
|
|
45
|
-
exports.wrapMath = wrapMath;
|
|
46
|
-
|
|
47
|
-
var unWrapMath = function unWrapMath(content) {
|
|
31
|
+
var unWrapMath = exports.unWrapMath = function unWrapMath(content) {
|
|
48
32
|
var displayStyleIndex = content.indexOf('\\displaystyle');
|
|
49
|
-
|
|
50
33
|
if (displayStyleIndex !== -1) {
|
|
51
34
|
console.warn('\\displaystyle is not supported - removing'); // eslint-disable-line
|
|
52
|
-
|
|
53
35
|
content = content.replace('\\displaystyle', '').trim();
|
|
54
36
|
}
|
|
55
|
-
|
|
56
37
|
if (content.startsWith('$$') && content.endsWith('$$')) {
|
|
57
38
|
console.warn('$$ syntax is not yet supported'); // eslint-disable-line
|
|
58
|
-
|
|
59
39
|
return {
|
|
60
40
|
unwrapped: content.substring(2, content.length - 2),
|
|
61
41
|
wrapType: BracketTypes.DOLLAR
|
|
62
42
|
};
|
|
63
43
|
}
|
|
64
|
-
|
|
65
44
|
if (content.startsWith('$') && content.endsWith('$')) {
|
|
66
45
|
return {
|
|
67
46
|
unwrapped: content.substring(1, content.length - 1),
|
|
68
47
|
wrapType: BracketTypes.DOLLAR
|
|
69
48
|
};
|
|
70
49
|
}
|
|
71
|
-
|
|
72
50
|
if (content.startsWith('\\[') && content.endsWith('\\]')) {
|
|
73
51
|
console.warn('\\[..\\] syntax is not yet supported'); // eslint-disable-line
|
|
74
|
-
|
|
75
52
|
return {
|
|
76
53
|
unwrapped: content.substring(2, content.length - 2),
|
|
77
54
|
wrapType: BracketTypes.ROUND_BRACKETS
|
|
78
55
|
};
|
|
79
56
|
}
|
|
80
|
-
|
|
81
57
|
if (content.startsWith('\\(') && content.endsWith('\\)')) {
|
|
82
58
|
return {
|
|
83
59
|
unwrapped: content.substring(2, content.length - 2),
|
|
84
60
|
wrapType: BracketTypes.ROUND_BRACKETS
|
|
85
61
|
};
|
|
86
62
|
}
|
|
87
|
-
|
|
88
63
|
return {
|
|
89
64
|
unwrapped: content,
|
|
90
65
|
wrapType: BracketTypes.ROUND_BRACKETS
|
|
91
66
|
};
|
|
92
67
|
};
|
|
93
|
-
|
|
94
|
-
exports.unWrapMath = unWrapMath;
|
|
95
68
|
//# sourceMappingURL=normalization.js.map
|
package/lib/normalization.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"normalization.js","names":["BracketTypes","exports","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","PAIRS","_defineProperty2","wrapMath","content","wrapType","console","warn","_ref","_ref2","_slicedToArray2","start","end","concat","unWrapMath","displayStyleIndex","indexOf","replace","trim","startsWith","endsWith","unwrapped","substring","length"],"sources":["../src/normalization.js"],"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"],"mappings":"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","ignoreList":[]}
|
package/lib/render-math.js
CHANGED
|
@@ -1,119 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.fixMathElements = exports.fixMathElement = exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
8
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
-
|
|
20
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
21
|
-
|
|
22
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
-
|
|
24
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
-
|
|
26
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
27
|
-
|
|
14
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
28
16
|
var _mathjax = require("mathjax-full/js/mathjax");
|
|
29
|
-
|
|
30
17
|
var _global = require("mathjax-full/js/components/global");
|
|
31
|
-
|
|
32
18
|
var _assistiveMml = require("mathjax-full/js/a11y/assistive-mml");
|
|
33
|
-
|
|
34
19
|
var _semanticEnrich = require("mathjax-full/js/a11y/semantic-enrich");
|
|
35
|
-
|
|
36
20
|
var _MenuHandler = require("mathjax-full/js/ui/menu/MenuHandler");
|
|
37
|
-
|
|
38
21
|
var _FindMathML2 = require("mathjax-full/js/input/mathml/FindMathML");
|
|
39
|
-
|
|
40
22
|
var _mathml = require("mathjax-full/js/input/mathml");
|
|
41
|
-
|
|
42
23
|
var _tex = require("mathjax-full/js/input/tex");
|
|
43
|
-
|
|
44
24
|
var _chtml = require("mathjax-full/js/output/chtml");
|
|
45
|
-
|
|
46
25
|
var _html = require("mathjax-full/js/handlers/html");
|
|
47
|
-
|
|
48
26
|
var _browserAdaptor = require("mathjax-full/js/adaptors/browserAdaptor");
|
|
49
|
-
|
|
50
27
|
var _AllPackages = require("mathjax-full/js/input/tex/AllPackages");
|
|
51
|
-
|
|
52
28
|
var _system = require("speech-rule-engine/js/common/system");
|
|
53
|
-
|
|
54
29
|
var _mstack = require("./mstack");
|
|
55
|
-
|
|
56
30
|
var _debug = _interopRequireDefault(require("debug"));
|
|
57
|
-
|
|
58
31
|
var _normalization = require("./normalization");
|
|
59
|
-
|
|
60
32
|
var _MmlFactory = require("mathjax-full/js/core/MmlTree/MmlFactory");
|
|
61
|
-
|
|
62
33
|
var _SerializedMmlVisitor = require("mathjax-full/js/core/MmlTree/SerializedMmlVisitor");
|
|
63
|
-
|
|
64
34
|
var _WrapperFactory = require("mathjax-full/js/output/chtml/WrapperFactory");
|
|
65
|
-
|
|
66
35
|
var _mspace = require("mathjax-full/js/output/chtml/Wrappers/mspace");
|
|
67
|
-
|
|
68
36
|
var _HTMLDomStrings = require("mathjax-full/js/handlers/html/HTMLDomStrings");
|
|
69
|
-
|
|
70
|
-
function
|
|
71
|
-
|
|
72
|
-
function
|
|
73
|
-
|
|
74
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
75
|
-
|
|
76
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
77
|
-
|
|
37
|
+
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; }
|
|
38
|
+
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; }
|
|
39
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
40
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
41
|
+
function _superPropGet(t, o, e, r) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
|
|
78
42
|
if (typeof window !== 'undefined') {
|
|
79
43
|
(0, _html.RegisterHTMLHandler)((0, _browserAdaptor.browserAdaptor)());
|
|
80
44
|
}
|
|
81
|
-
|
|
82
45
|
var sreReady = false;
|
|
83
46
|
(0, _system.engineReady)().then(function () {
|
|
84
47
|
sreReady = true;
|
|
85
|
-
});
|
|
48
|
+
});
|
|
86
49
|
|
|
87
|
-
|
|
50
|
+
// import pkg from '../../package.json';
|
|
88
51
|
|
|
52
|
+
var visitor = new _SerializedMmlVisitor.SerializedMmlVisitor();
|
|
89
53
|
var toMMl = function toMMl(node) {
|
|
90
54
|
return visitor.visitTree(node);
|
|
91
55
|
};
|
|
92
|
-
|
|
93
56
|
var log = (0, _debug["default"])('pie-lib:math-rendering');
|
|
94
57
|
var NEWLINE_BLOCK_REGEX = /\\embed\{newLine\}\[\]/g;
|
|
95
58
|
var NEWLINE_LATEX = '\\newline ';
|
|
96
|
-
|
|
97
59
|
var getGlobal = function getGlobal() {
|
|
98
60
|
// TODO does it make sense to use version?
|
|
99
61
|
// const key = `${pkg.name}@${pkg.version.split('.')[0]}`;
|
|
100
62
|
// It looks like Ed made this change when he switched from mathjax3 to mathjax-full
|
|
101
63
|
// I think it was supposed to make sure version 1 (using mathjax3) is not used
|
|
102
64
|
// in combination with version 2 (using mathjax-full)
|
|
65
|
+
|
|
103
66
|
// TODO higher level wrappers use this instance of math-rendering, and if 2 different instances are used, math rendering is not working
|
|
104
67
|
// so I will hardcode this for now until a better solution is found
|
|
105
68
|
var key = '@pie-lib/math-rendering@2';
|
|
106
|
-
|
|
107
69
|
if (typeof window !== 'undefined') {
|
|
108
70
|
if (!window[key]) {
|
|
109
71
|
window[key] = {};
|
|
110
72
|
}
|
|
111
|
-
|
|
112
73
|
return window[key];
|
|
113
74
|
} else {
|
|
114
75
|
return {};
|
|
115
76
|
}
|
|
116
77
|
};
|
|
78
|
+
|
|
117
79
|
/** Add temporary support for a global singleDollar override
|
|
118
80
|
* <code>
|
|
119
81
|
* // This will enable single dollar rendering
|
|
@@ -121,44 +83,32 @@ var getGlobal = function getGlobal() {
|
|
|
121
83
|
* window.pie.mathRendering = {useSingleDollar: true };
|
|
122
84
|
* </code>
|
|
123
85
|
*/
|
|
124
|
-
|
|
125
|
-
|
|
126
86
|
var defaultOpts = function defaultOpts() {
|
|
127
87
|
return getGlobal().opts || {};
|
|
128
88
|
};
|
|
129
|
-
|
|
130
|
-
var fixMathElement = function fixMathElement(element) {
|
|
89
|
+
var fixMathElement = exports.fixMathElement = function fixMathElement(element) {
|
|
131
90
|
if (element.dataset.mathHandled) {
|
|
132
91
|
return;
|
|
133
92
|
}
|
|
134
|
-
|
|
135
93
|
var property = 'innerText';
|
|
136
|
-
|
|
137
94
|
if (element.textContent) {
|
|
138
95
|
property = 'textContent';
|
|
139
96
|
}
|
|
140
|
-
|
|
141
97
|
if (element[property]) {
|
|
142
|
-
element[property] = (0, _normalization.wrapMath)((0, _normalization.unWrapMath)(element[property]).unwrapped);
|
|
98
|
+
element[property] = (0, _normalization.wrapMath)((0, _normalization.unWrapMath)(element[property]).unwrapped);
|
|
99
|
+
// because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.
|
|
143
100
|
// we need to replace the custom embedded elements with valid latex that Mathjax can understand
|
|
144
|
-
|
|
145
101
|
element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);
|
|
146
102
|
element.dataset.mathHandled = true;
|
|
147
103
|
}
|
|
148
104
|
};
|
|
149
|
-
|
|
150
|
-
exports.fixMathElement = fixMathElement;
|
|
151
|
-
|
|
152
|
-
var fixMathElements = function fixMathElements() {
|
|
105
|
+
var fixMathElements = exports.fixMathElements = function fixMathElements() {
|
|
153
106
|
var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
|
|
154
107
|
var mathElements = el.querySelectorAll('[data-latex]');
|
|
155
108
|
mathElements.forEach(function (item) {
|
|
156
109
|
return fixMathElement(item);
|
|
157
110
|
});
|
|
158
111
|
};
|
|
159
|
-
|
|
160
|
-
exports.fixMathElements = fixMathElements;
|
|
161
|
-
|
|
162
112
|
var adjustMathMLStyle = function adjustMathMLStyle() {
|
|
163
113
|
var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
|
|
164
114
|
var nodes = el.querySelectorAll('math');
|
|
@@ -166,52 +116,39 @@ var adjustMathMLStyle = function adjustMathMLStyle() {
|
|
|
166
116
|
return node.setAttribute('displaystyle', 'true');
|
|
167
117
|
});
|
|
168
118
|
};
|
|
169
|
-
|
|
170
119
|
var myFindMathML = /*#__PURE__*/function (_FindMathML) {
|
|
171
|
-
(0, _inherits2["default"])(myFindMathML, _FindMathML);
|
|
172
|
-
|
|
173
|
-
var _super = _createSuper(myFindMathML);
|
|
174
|
-
|
|
175
120
|
function myFindMathML() {
|
|
176
121
|
(0, _classCallCheck2["default"])(this, myFindMathML);
|
|
177
|
-
return
|
|
122
|
+
return _callSuper(this, myFindMathML, arguments);
|
|
178
123
|
}
|
|
179
|
-
|
|
180
|
-
(0, _createClass2["default"])(myFindMathML, [{
|
|
124
|
+
(0, _inherits2["default"])(myFindMathML, _FindMathML);
|
|
125
|
+
return (0, _createClass2["default"])(myFindMathML, [{
|
|
181
126
|
key: "processMath",
|
|
182
127
|
value: function processMath(set) {
|
|
183
128
|
var adaptor = this.adaptor;
|
|
184
|
-
|
|
185
129
|
for (var _i = 0, _Array$from = Array.from(set); _i < _Array$from.length; _i++) {
|
|
186
130
|
var mml = _Array$from[_i];
|
|
187
|
-
|
|
188
131
|
if (adaptor.kind(adaptor.parent(mml)) === 'mjx-assistive-mml') {
|
|
189
132
|
set["delete"](mml);
|
|
190
133
|
}
|
|
191
134
|
}
|
|
192
|
-
|
|
193
|
-
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(myFindMathML.prototype), "processMath", this).call(this, set);
|
|
135
|
+
return _superPropGet(myFindMathML, "processMath", this, 3)([set]);
|
|
194
136
|
}
|
|
195
137
|
}]);
|
|
196
|
-
return myFindMathML;
|
|
197
138
|
}(_FindMathML2.FindMathML);
|
|
198
|
-
|
|
199
139
|
var createMathMLInstance = function createMathMLInstance(opts) {
|
|
200
140
|
var docProvided = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
|
|
201
141
|
opts = opts || defaultOpts();
|
|
202
|
-
|
|
203
142
|
if (opts.useSingleDollar) {
|
|
204
143
|
// eslint-disable-next-line
|
|
205
144
|
console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)');
|
|
206
145
|
}
|
|
207
|
-
|
|
208
146
|
var packages = _AllPackages.AllPackages.filter(function (name) {
|
|
209
147
|
return name !== 'bussproofs';
|
|
210
148
|
}); // Bussproofs needs an output jax
|
|
149
|
+
|
|
211
150
|
// The autoload extension predefines all the macros from the extensions that haven't been loaded already
|
|
212
151
|
// so that they automatically load the needed extension when they are first used
|
|
213
|
-
|
|
214
|
-
|
|
215
152
|
packages.push('autoload');
|
|
216
153
|
var macros = {
|
|
217
154
|
parallelogram: "\\lower.2em{\\Huge\\unicode{x25B1}}",
|
|
@@ -238,7 +175,6 @@ var createMathMLInstance = function createMathMLInstance(opts) {
|
|
|
238
175
|
FindMathML: new myFindMathML()
|
|
239
176
|
};
|
|
240
177
|
var cachedMathjax;
|
|
241
|
-
|
|
242
178
|
if (_global.MathJax && _global.MathJax.version !== _mathjax.mathjax.version) {
|
|
243
179
|
// handling other MathJax version on the page
|
|
244
180
|
// replacing it temporarily with the version we have
|
|
@@ -247,7 +183,6 @@ var createMathMLInstance = function createMathMLInstance(opts) {
|
|
|
247
183
|
cachedMathjax = window.MathJax;
|
|
248
184
|
Object.assign(_global.MathJax, _mathjax.mathjax);
|
|
249
185
|
}
|
|
250
|
-
|
|
251
186
|
var fontURL = "https://unpkg.com/mathjax-full@".concat(_mathjax.mathjax.version, "/ts/output/chtml/fonts/tex-woff-v2");
|
|
252
187
|
var htmlConfig = {
|
|
253
188
|
fontURL: fontURL,
|
|
@@ -259,14 +194,14 @@ var createMathMLInstance = function createMathMLInstance(opts) {
|
|
|
259
194
|
var html = classFactory.create(docProvided, {
|
|
260
195
|
compileError: function compileError(mj, math, err) {
|
|
261
196
|
// eslint-disable-next-line no-console
|
|
262
|
-
console.log('bad math?:', math);
|
|
263
|
-
|
|
197
|
+
console.log('bad math?:', math);
|
|
198
|
+
// eslint-disable-next-line no-console
|
|
264
199
|
console.error(err);
|
|
265
200
|
},
|
|
266
201
|
typesetError: function typesetError(doc, math, err) {
|
|
267
202
|
// eslint-disable-next-line no-console
|
|
268
|
-
console.log('typeset error');
|
|
269
|
-
|
|
203
|
+
console.log('typeset error');
|
|
204
|
+
// eslint-disable-next-line no-console
|
|
270
205
|
console.error(err);
|
|
271
206
|
doc.typesetError(math, err);
|
|
272
207
|
},
|
|
@@ -279,20 +214,17 @@ var createMathMLInstance = function createMathMLInstance(opts) {
|
|
|
279
214
|
DomStrings: new _HTMLDomStrings.HTMLDomStrings({
|
|
280
215
|
skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code', 'annotation', 'annotation-xml', 'mjx-assistive-mml', 'mjx-container']
|
|
281
216
|
})
|
|
282
|
-
});
|
|
217
|
+
});
|
|
283
218
|
|
|
219
|
+
// Note: we must set this *after* mathjax.document (no idea why)
|
|
284
220
|
mml.setMmlFactory(customMmlFactory);
|
|
285
|
-
|
|
286
221
|
if (cachedMathjax) {
|
|
287
222
|
// if we have a cached version, we replace it here
|
|
288
223
|
window.MathJax = cachedMathjax;
|
|
289
224
|
}
|
|
290
|
-
|
|
291
225
|
return html;
|
|
292
226
|
};
|
|
293
|
-
|
|
294
227
|
var enrichSpeechInitialized = false;
|
|
295
|
-
|
|
296
228
|
var bootstrap = function bootstrap(opts) {
|
|
297
229
|
if (typeof window === 'undefined') {
|
|
298
230
|
return {
|
|
@@ -301,40 +233,50 @@ var bootstrap = function bootstrap(opts) {
|
|
|
301
233
|
}
|
|
302
234
|
};
|
|
303
235
|
}
|
|
304
|
-
|
|
305
236
|
var html = createMathMLInstance(opts);
|
|
306
237
|
return {
|
|
307
238
|
version: _mathjax.mathjax.version,
|
|
308
239
|
html: html,
|
|
309
240
|
Typeset: function Typeset() {
|
|
310
241
|
var _this = this;
|
|
311
|
-
|
|
312
242
|
for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
313
243
|
elements[_key] = arguments[_key];
|
|
314
244
|
}
|
|
315
|
-
|
|
316
245
|
var attemptRender = function attemptRender() {
|
|
317
|
-
var _updatedDocument$math
|
|
318
|
-
|
|
246
|
+
var _updatedDocument$math;
|
|
319
247
|
var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
320
|
-
|
|
321
248
|
var updatedDocument = _this.html.findMath(elements.length ? {
|
|
322
249
|
elements: elements
|
|
323
250
|
} : {}).compile();
|
|
324
|
-
|
|
325
251
|
if (!temporary && sreReady) {
|
|
326
|
-
|
|
252
|
+
try {
|
|
253
|
+
updatedDocument = updatedDocument.enrich();
|
|
254
|
+
} catch (e) {
|
|
255
|
+
// If enrich fails, speech-rule-engine isn't actually ready yet
|
|
256
|
+
// eslint-disable-next-line no-console
|
|
257
|
+
console.warn('[math-rendering] Speech-rule-engine not fully initialized, skipping enrichment');
|
|
258
|
+
sreReady = false;
|
|
259
|
+
}
|
|
327
260
|
}
|
|
261
|
+
updatedDocument = updatedDocument.getMetrics().typeset();
|
|
328
262
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
263
|
+
// Only add assistive MML and speech if speech-rule-engine is ready and not in temporary mode
|
|
264
|
+
if (!temporary && sreReady) {
|
|
265
|
+
try {
|
|
266
|
+
updatedDocument = updatedDocument.assistiveMml().attachSpeech();
|
|
267
|
+
} catch (e) {
|
|
268
|
+
// If this fails, speech-rule-engine isn't ready
|
|
269
|
+
// eslint-disable-next-line no-console
|
|
270
|
+
console.warn('[math-rendering] Speech-rule-engine not fully initialized, skipping assistive features');
|
|
271
|
+
sreReady = false;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
updatedDocument = updatedDocument.addMenu().updateDocument();
|
|
275
|
+
if (!enrichSpeechInitialized && (0, _typeof2["default"])((_updatedDocument$math = updatedDocument.math.list) === null || _updatedDocument$math === void 0 || (_updatedDocument$math = _updatedDocument$math.next) === null || _updatedDocument$math === void 0 ? void 0 : _updatedDocument$math.data) === 'object') {
|
|
332
276
|
enrichSpeechInitialized = true;
|
|
333
277
|
}
|
|
334
|
-
|
|
335
278
|
try {
|
|
336
279
|
var list = updatedDocument.math.list;
|
|
337
|
-
|
|
338
280
|
if (list) {
|
|
339
281
|
for (var item = list.next; (0, _typeof2["default"])(item.data) !== 'symbol'; item = item.next) {
|
|
340
282
|
var mathMl = toMMl(item.data.root);
|
|
@@ -347,74 +289,59 @@ var bootstrap = function bootstrap(opts) {
|
|
|
347
289
|
// eslint-disable-next-line no-console
|
|
348
290
|
console.error(e.toString());
|
|
349
291
|
}
|
|
350
|
-
|
|
351
292
|
updatedDocument.clear();
|
|
352
293
|
};
|
|
353
|
-
|
|
354
294
|
if (!enrichSpeechInitialized) {
|
|
355
295
|
attemptRender(true);
|
|
356
296
|
}
|
|
357
|
-
|
|
358
297
|
_mathjax.mathjax.handleRetriesFor(function () {
|
|
359
298
|
attemptRender();
|
|
360
299
|
});
|
|
361
300
|
}
|
|
362
301
|
};
|
|
363
302
|
};
|
|
364
|
-
|
|
365
303
|
var renderMath = function renderMath(el, renderOpts) {
|
|
366
304
|
var _getGlobal$instance, _getGlobal$instance2;
|
|
367
|
-
|
|
368
305
|
if (window && window.MathJax && window.MathJax.customKey && window.MathJax.customKey == '@pie-lib/math-rendering-accessible@1') {
|
|
369
306
|
return;
|
|
370
307
|
}
|
|
371
|
-
|
|
372
308
|
var isString = typeof el === 'string';
|
|
373
309
|
var executeOn = document.body;
|
|
374
|
-
|
|
375
310
|
if (isString) {
|
|
376
311
|
var div = document.createElement('div');
|
|
377
312
|
div.innerHTML = el;
|
|
378
313
|
executeOn = div;
|
|
379
314
|
}
|
|
380
|
-
|
|
381
315
|
fixMathElements(executeOn);
|
|
382
316
|
adjustMathMLStyle(executeOn);
|
|
383
|
-
|
|
384
317
|
if (isString) {
|
|
385
318
|
var html = createMathMLInstance(undefined, executeOn);
|
|
386
319
|
var updatedDocument = html.findMath().compile().getMetrics().typeset().updateDocument();
|
|
387
320
|
var list = updatedDocument.math.list;
|
|
388
321
|
var item = list.next;
|
|
389
|
-
|
|
390
322
|
if (!item) {
|
|
391
323
|
return '';
|
|
392
324
|
}
|
|
393
|
-
|
|
394
325
|
var mathMl = toMMl(item.data.root);
|
|
395
326
|
var parsedMathMl = mathMl.replaceAll('\n', '');
|
|
396
327
|
return parsedMathMl;
|
|
397
328
|
}
|
|
398
|
-
|
|
399
329
|
if (!getGlobal().instance) {
|
|
400
330
|
getGlobal().instance = bootstrap(renderOpts);
|
|
401
331
|
}
|
|
402
|
-
|
|
403
332
|
if (!el) {
|
|
404
333
|
log('el is undefined');
|
|
405
334
|
return;
|
|
406
335
|
}
|
|
407
|
-
|
|
408
336
|
if (el instanceof Element && (_getGlobal$instance = getGlobal().instance) !== null && _getGlobal$instance !== void 0 && _getGlobal$instance.Typeset) {
|
|
409
337
|
getGlobal().instance.Typeset(el);
|
|
410
338
|
} else if (el.length && (_getGlobal$instance2 = getGlobal().instance) !== null && _getGlobal$instance2 !== void 0 && _getGlobal$instance2.Typeset) {
|
|
411
339
|
var _getGlobal$instance3;
|
|
412
|
-
|
|
413
340
|
var arr = Array.from(el);
|
|
414
|
-
|
|
415
|
-
(_getGlobal$instance3 = getGlobal().instance).Typeset.apply(_getGlobal$instance3, (0, _toConsumableArray2["default"])(arr));
|
|
341
|
+
(_getGlobal$instance3 = getGlobal().instance).Typeset.apply(_getGlobal$instance3, arr);
|
|
416
342
|
}
|
|
417
343
|
};
|
|
344
|
+
|
|
418
345
|
/**
|
|
419
346
|
* This style is added to overried default styling of mjx-mspace Mathjax tag
|
|
420
347
|
* In mathjax src code \newline latex gets parsed to <mjx-mspace></mjx-mspace>,
|
|
@@ -424,8 +351,6 @@ var renderMath = function renderMath(el, renderOpts) {
|
|
|
424
351
|
"text-align": 'left'
|
|
425
352
|
} which prevents it from showing as a newline value
|
|
426
353
|
*/
|
|
427
|
-
|
|
428
|
-
|
|
429
354
|
_mspace.CHTMLmspace.styles = {
|
|
430
355
|
'mjx-mspace': {
|
|
431
356
|
display: 'block',
|
|
@@ -433,6 +358,5 @@ _mspace.CHTMLmspace.styles = {
|
|
|
433
358
|
height: '5px'
|
|
434
359
|
}
|
|
435
360
|
};
|
|
436
|
-
var _default = renderMath;
|
|
437
|
-
exports["default"] = _default;
|
|
361
|
+
var _default = exports["default"] = renderMath;
|
|
438
362
|
//# sourceMappingURL=render-math.js.map
|