@pie-lib/math-rendering 2.3.10 → 2.3.13
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 +27 -0
- package/lib/index.js +4 -4
- package/lib/mstack/chtml.js +24 -20
- package/lib/mstack/chtml.js.map +1 -1
- package/lib/mstack/mml.js +29 -25
- package/lib/mstack/mml.js.map +1 -1
- package/lib/normalization.js +8 -4
- package/lib/normalization.js.map +1 -1
- package/lib/render-math.js +26 -14
- package/lib/render-math.js.map +1 -1
- package/package.json +2 -2
- package/src/render-math.js +20 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
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
|
+
## [2.3.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.12...@pie-lib/math-rendering@2.3.13) (2022-03-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **math-rendering:** fix line spacing for mathjax mspace PD-1384 ([57fe827](https://github.com/pie-framework/pie-lib/commit/57fe827372c81138b35f294f16327c291872c8a2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [2.3.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.11...@pie-lib/math-rendering@2.3.12) (2021-11-29)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [2.3.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.10...@pie-lib/math-rendering@2.3.11) (2021-09-08)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
## [2.3.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.9...@pie-lib/math-rendering@2.3.10) (2021-09-08)
|
|
7
34
|
|
|
8
35
|
|
package/lib/index.js
CHANGED
|
@@ -9,16 +9,16 @@ Object.defineProperty(exports, "renderMath", {
|
|
|
9
9
|
return _renderMath["default"];
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "unWrapMath", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function get() {
|
|
15
|
-
return _normalization.
|
|
15
|
+
return _normalization.unWrapMath;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "wrapMath", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function get() {
|
|
21
|
-
return _normalization.
|
|
21
|
+
return _normalization.wrapMath;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
|
package/lib/mstack/chtml.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.
|
|
8
|
+
exports.getStackData = exports.Row = exports.Line = exports.CHTMLmstack = void 0;
|
|
7
9
|
|
|
8
10
|
var _Wrapper = require("mathjax-full/js/output/chtml/Wrapper");
|
|
9
11
|
|
|
@@ -11,31 +13,37 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
11
13
|
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
15
|
|
|
14
|
-
function
|
|
16
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
17
|
+
|
|
18
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
19
|
+
|
|
20
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
15
21
|
|
|
16
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
22
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
17
23
|
|
|
18
24
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
19
25
|
|
|
26
|
+
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; } }
|
|
27
|
+
|
|
20
28
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
21
29
|
|
|
22
|
-
function
|
|
30
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
23
31
|
|
|
24
|
-
function
|
|
32
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
33
|
|
|
26
|
-
function
|
|
34
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
35
|
|
|
28
|
-
function
|
|
36
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
29
37
|
|
|
30
|
-
function
|
|
38
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
31
39
|
|
|
32
|
-
function
|
|
40
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
33
41
|
|
|
34
42
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
35
43
|
|
|
36
44
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
37
45
|
|
|
38
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
46
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
39
47
|
|
|
40
48
|
var reduceText = function reduceText(acc, n) {
|
|
41
49
|
if (n.node && n.node.kind === 'text') {
|
|
@@ -45,9 +53,7 @@ var reduceText = function reduceText(acc, n) {
|
|
|
45
53
|
return acc;
|
|
46
54
|
};
|
|
47
55
|
|
|
48
|
-
var Line =
|
|
49
|
-
/*#__PURE__*/
|
|
50
|
-
function () {
|
|
56
|
+
var Line = /*#__PURE__*/function () {
|
|
51
57
|
function Line() {
|
|
52
58
|
_classCallCheck(this, Line);
|
|
53
59
|
|
|
@@ -66,9 +72,7 @@ function () {
|
|
|
66
72
|
|
|
67
73
|
exports.Line = Line;
|
|
68
74
|
|
|
69
|
-
var Row =
|
|
70
|
-
/*#__PURE__*/
|
|
71
|
-
function () {
|
|
75
|
+
var Row = /*#__PURE__*/function () {
|
|
72
76
|
function Row(columns, operator) {
|
|
73
77
|
_classCallCheck(this, Row);
|
|
74
78
|
|
|
@@ -197,11 +201,11 @@ var getStackData = function getStackData(mstack) {
|
|
|
197
201
|
|
|
198
202
|
exports.getStackData = getStackData;
|
|
199
203
|
|
|
200
|
-
var CHTMLmstack =
|
|
201
|
-
/*#__PURE__*/
|
|
202
|
-
function (_CHTMLWrapper) {
|
|
204
|
+
var CHTMLmstack = /*#__PURE__*/function (_CHTMLWrapper) {
|
|
203
205
|
_inherits(CHTMLmstack, _CHTMLWrapper);
|
|
204
206
|
|
|
207
|
+
var _super = _createSuper(CHTMLmstack);
|
|
208
|
+
|
|
205
209
|
function CHTMLmstack(factory, node) {
|
|
206
210
|
var _this;
|
|
207
211
|
|
|
@@ -209,7 +213,7 @@ function (_CHTMLWrapper) {
|
|
|
209
213
|
|
|
210
214
|
_classCallCheck(this, CHTMLmstack);
|
|
211
215
|
|
|
212
|
-
_this =
|
|
216
|
+
_this = _super.call(this, factory, node, parent);
|
|
213
217
|
_this.ce = _this.adaptor.document.createElement.bind(_this.adaptor.document);
|
|
214
218
|
return _this;
|
|
215
219
|
}
|
package/lib/mstack/chtml.js.map
CHANGED
|
@@ -1 +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":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAMC,CAAN,EAAY;AAC7B,MAAIA,CAAC,CAACC,IAAF,IAAUD,CAAC,CAACC,IAAF,CAAOC,IAAP,KAAgB,MAA9B,EAAsC;AACpCH,IAAAA,GAAG,IAAIC,CAAC,CAACC,IAAF,CAAOE,IAAd;AACD;;AACD,SAAOJ,GAAP;AACD,CALD;;IAOaK,I;;;AACX,kBAAc;AAAA;;AACZ,SAAKF,IAAL,GAAY,MAAZ;AACD;;;;wBAEa;AACZ,aAAO,EAAP;AACD;;;;;;;;IAGUG,G;;;AACX,eAAYC,OAAZ,EAAqBC,QAArB,EAA+B;AAAA;;AAC7B,SAAKL,IAAL,GAAY,KAAZ;AACA,SAAKK,QAAL,GAAgBA,QAAhB;AACA,SAAKD,OAAL,GAAeA,OAAf;AACD;;;;wBAEGE,K,EAA4B;AAAA,UAArBC,SAAqB,uEAAT,OAAS;;AAC9B,UAAID,KAAK,GAAG,KAAKF,OAAL,CAAaI,MAAzB,EAAiC;AAC/B,cAAM,IAAIC,KAAJ,CAAU,IAAV,CAAN;AACD;;AAED,UAAMC,IAAI,GAAGJ,KAAK,GAAG,KAAKF,OAAL,CAAaI,MAAlC;;AAEA,UAAMG,OAAO,GAAGC,mBAAEC,KAAF,CAAQH,IAAR,EAAcI,GAAd,CAAkB,UAAAhB,CAAC;AAAA,eAAI,SAAJ;AAAA,OAAnB,CAAhB;;AACA,aAAOS,SAAS,KAAK,OAAd,gCAA4BI,OAA5B,sBAAwC,KAAKP,OAA7C,kCAA4D,KAAKA,OAAjE,sBAA6EO,OAA7E,EAAP;AACD;;;;;;;;AAGH,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,EAAE,EAAI;AAChC,MAAMf,IAAI,GAAGe,EAAE,CAACC,UAAH,CAAcC,MAAd,CAAqBtB,UAArB,EAAiC,EAAjC,CAAb;AACA,SAAOK,IAAI,CAACkB,KAAL,CAAW,EAAX,CAAP;AACD,CAHD;AAKA;;;;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,KAAK,EAAI;AAC7B,MAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACrB,IAArB,EAA2B;AACzB,WAAO,EAAP;AACD;;AAED,MAAIqB,KAAK,CAACrB,IAAN,KAAe,OAAnB,EAA4B;AAC1B,UAAM,IAAIS,KAAJ,CAAU,iBAAV,CAAN;AACD;;AAED,MAAIY,KAAK,CAACrB,IAAN,KAAe,IAAnB,EAAyB;AACvB;AACA;AACAsB,IAAAA,OAAO,CAACC,IAAR,CAAa,mCAAb;AACA,WAAOR,mBAAmB,CAACM,KAAD,CAA1B,CAJuB,CAKvB;AACD;;AAED,MAAIA,KAAK,CAACrB,IAAN,KAAe,IAAnB,EAAyB;AACvB,WAAOe,mBAAmB,CAACM,KAAD,CAA1B;AACD;;AAED,MAAIA,KAAK,CAACG,OAAV,EAAmB;AACjB,WAAOH,KAAP;AACD;AACF,CAxBD;AA0BA;;;;;;;AAKA,IAAMI,QAAQ,GAAG,SAAXA,QAAW,CAAAJ,KAAK,EAAI;AACxB,MAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACrB,IAArB,EAA2B;AACzB;AACD;;AAED,MAAIqB,KAAK,CAACrB,IAAN,KAAe,OAAnB,EAA4B;AAC1B,QAAI,CAACqB,KAAK,CAACJ,UAAP,IAAqBI,KAAK,CAACJ,UAAN,CAAiBT,MAAjB,KAA4B,CAArD,EAAwD;AACtD,aAAO,IAAIL,GAAJ,CAAQ,EAAR,CAAP;AACD;;AACD,QAAMuB,CAAC,GAAGd,mBAAEe,KAAF,CAAQN,KAAK,CAACJ,UAAd,CAAV;;AACA,QAAMW,KAAK,GAAGF,CAAC,IAAIA,CAAC,CAAC1B,IAAF,KAAW,IAAhB,GAAuBY,mBAAEiB,IAAF,CAAOR,KAAK,CAACJ,UAAb,CAAvB,GAAkDI,KAAK,CAACJ,UAAtE;;AAEA,QAAMb,OAAO,GAAGQ,mBAAEkB,OAAF,CAAUF,KAAK,CAACd,GAAN,CAAUM,aAAV,CAAV,CAAhB;;AAEA,WAAO,IAAIjB,GAAJ,CAAQC,OAAR,EAAiBsB,CAAC,CAAC1B,IAAF,KAAW,IAAX,GAAkB0B,CAAlB,GAAsBK,SAAvC,CAAP;AACD;;AAED,MAAIV,KAAK,CAACrB,IAAN,KAAe,IAAnB,EAAyB;AACvB,QAAMI,QAAO,GAAGW,mBAAmB,CAACM,KAAD,CAAnC;;AACA,WAAO,IAAIlB,GAAJ,CAAQC,QAAR,EAAiB2B,SAAjB,CAAP;AACD;;AAED,MAAIV,KAAK,CAACrB,IAAN,KAAe,IAAnB,EAAyB;AACvBsB,IAAAA,OAAO,CAACC,IAAR,CAAa,oBAAb;AACA,WAAO,IAAIpB,GAAJ,CAAQ,EAAR,EAAYkB,KAAZ,CAAP;AACD;;AAED,MAAIA,KAAK,CAACrB,IAAN,KAAe,QAAnB,EAA6B;AAC3B,WAAO,IAAIE,IAAJ,EAAP;AACD;;AAED,MAAImB,KAAK,CAACG,OAAV,EAAmB;AACjB,WAAO,IAAIrB,GAAJ,CAAQ,CAACkB,KAAD,CAAR,CAAP;AACD;AACF,CAlCD;AAoCA;;;;;;AAKO,IAAMW,YAAY,GAAG,SAAfA,YAAe,CAAAC,MAAM,EAAI;AACpC,MAAI,CAACA,MAAD,IAAW,CAACA,MAAM,CAAChB,UAAvB,EAAmC;AACjC,WAAO,EAAP;AACD;;AACD,SAAOL,mBAAEsB,OAAF,CAAUD,MAAM,CAAChB,UAAP,CAAkBH,GAAlB,CAAsBW,QAAtB,CAAV,CAAP;AACD,CALM;;;;IAOMU,W;;;;;AACX,uBAAYC,OAAZ,EAAqBrC,IAArB,EAA0C;AAAA;;AAAA,QAAfsC,MAAe,uEAAN,IAAM;;AAAA;;AACxC,qFAAMD,OAAN,EAAerC,IAAf,EAAqBsC,MAArB;AAEA,UAAKC,EAAL,GAAU,MAAKC,OAAL,CAAaC,QAAb,CAAsBC,aAAtB,CAAoCC,IAApC,CAAyC,MAAKH,OAAL,CAAaC,QAAtD,CAAV;AAHwC;AAIzC;;;;4BAEOH,M,EAAQ;AAAA;;AACd,UAAMM,KAAK,GAAG,KAAKC,iBAAL,CAAuBP,MAAvB,CAAd;AAEA,UAAMQ,SAAS,GAAGb,YAAY,CAAC,IAAD,CAA9B,CAHc,CAKd;;AACA,UAAMc,OAAO,GAAGD,SAAS,CAAC3B,MAAV,CAAiB,UAACrB,GAAD,EAAMkD,CAAN,EAAY;AAC3C,YAAIA,CAAC,IAAIA,CAAC,CAAC3C,OAAF,CAAUI,MAAV,GAAmBX,GAA5B,EAAiC;AAC/BA,UAAAA,GAAG,GAAGkD,CAAC,CAAC3C,OAAF,CAAUI,MAAhB;AACD;;AACD,eAAOX,GAAP;AACD,OALe,EAKb,CALa,CAAhB;AAOA,UAAMmD,KAAK,GAAG,KAAKV,EAAL,CAAQ,OAAR,CAAd;AACAK,MAAAA,KAAK,CAACM,WAAN,CAAkBD,KAAlB;AAEAH,MAAAA,SAAS,CAACK,OAAV,CAAkB,UAAAC,GAAG,EAAI;AACvB,YAAMC,EAAE,GAAG,MAAI,CAACd,EAAL,CAAQ,IAAR,CAAX;;AACAU,QAAAA,KAAK,CAACC,WAAN,CAAkBG,EAAlB;;AAEA,YAAID,GAAG,CAACnD,IAAJ,KAAa,KAAjB,EAAwB;AACtB,cAAMqD,EAAE,GAAG,MAAI,CAACf,EAAL,CAAQ,IAAR,CAAX;;AACAc,UAAAA,EAAE,CAACH,WAAH,CAAeI,EAAf;;AACA,cAAIF,GAAG,CAAC9C,QAAJ,IAAgB8C,GAAG,CAAC9C,QAAJ,CAAamB,OAAjC,EAA0C;AACxC6B,YAAAA,EAAE,CAACC,YAAH,CAAgB,OAAhB,EAAyB,OAAzB;AACAH,YAAAA,GAAG,CAAC9C,QAAJ,CAAamB,OAAb,CAAqB6B,EAArB;AACD,WAHD,MAGO;AACLA,YAAAA,EAAE,CAACE,WAAH,GAAiB,EAAjB;AACD,WARqB,CAUtB;;;AACA,cAAMC,IAAI,GAAGL,GAAG,CAACM,GAAJ,CAAQX,OAAR,EAAiB,OAAjB,CAAb;AACAU,UAAAA,IAAI,CAACN,OAAL,CAAa,UAAAQ,CAAC,EAAI;AAChB,gBAAMC,CAAC,GAAG,MAAI,CAACrB,EAAL,CAAQ,IAAR,CAAV;;AACAc,YAAAA,EAAE,CAACH,WAAH,CAAeU,CAAf;;AACA,gBAAID,CAAC,KAAK,SAAV,EAAqB;AACnBC,cAAAA,CAAC,CAACJ,WAAF,GAAgB,EAAhB;AACD,aAFD,MAEO,IAAI,OAAOG,CAAP,KAAa,QAAjB,EAA2B;AAChCC,cAAAA,CAAC,CAACJ,WAAF,GAAgBG,CAAhB;AACD,aAFM,MAEA,IAAIA,CAAC,CAAC1D,IAAF,KAAW,MAAf,EAAuB;AAC5B2D,cAAAA,CAAC,CAACJ,WAAF,GAAgB,EAAhB;AACD,aAFM,MAEA,IAAIG,CAAC,CAAClC,OAAN,EAAe;AACpBmC,cAAAA,CAAC,CAACL,YAAF,CAAe,OAAf,EAAwB,OAAxB;AACAI,cAAAA,CAAC,CAAClC,OAAF,CAAUmC,CAAV;AACD;AACF,WAbD;AAcD,SA1BD,MA0BO,IAAIR,GAAG,CAACnD,IAAJ,KAAa,MAAjB,EAAyB;AAC9B,cAAMqD,GAAE,GAAG,MAAI,CAACf,EAAL,CAAQ,IAAR,CAAX;;AACAc,UAAAA,EAAE,CAACH,WAAH,CAAeI,GAAf;;AACAA,UAAAA,GAAE,CAACC,YAAH,CAAgB,SAAhB,EAA2BR,OAAO,GAAG,CAArC;;AACAO,UAAAA,GAAE,CAACC,YAAH,CAAgB,OAAhB,EAAyB,UAAzB;;AACAD,UAAAA,GAAE,CAACE,WAAH,GAAiB,EAAjB;AACD;AACF,OArCD;AAsCD;;;;EA7D8BK,qB;;;AA+DjCzB,WAAW,CAAC0B,MAAZ,GAAqB;AACnB,wBAAsB;AACpB,mBAAe,SADK;AAEpBC,IAAAA,MAAM,EAAE,eAFY;AAGpB,sBAAkB,KAHE;AAIpB,uBAAmB;AAJC,GADH;AAOnB,6BAA2B;AACzB,mBAAe;AADU,GAPR;AAUnB,kCAAgC;AAC9B;AACAA,IAAAA,MAAM,EAAE,gBAFsB;AAG9B,mBAAe,YAHe;AAI9B,mBAAe;AAJe,GAVb;AAgBnB,wCAAsC;AACpC,mBAAe;AADqB,GAhBnB;AAmBnB,yCAAuC;AACrCnD,IAAAA,OAAO,EAAE,CAD4B;AAErC,kBAAc;AAFuB;AAnBpB,CAArB","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(n => '__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 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 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};\n"],"file":"chtml.js"}
|
|
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(n => '__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 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 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};\n"],"file":"chtml.js"}
|
package/lib/mstack/mml.js
CHANGED
|
@@ -1,39 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.
|
|
8
|
+
exports.MmlNone = exports.MmlMstack = exports.MmlMsrow = exports.MmlMsline = void 0;
|
|
7
9
|
|
|
8
10
|
var _MmlNode = require("mathjax-full/js/core/MmlTree/MmlNode");
|
|
9
11
|
|
|
10
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
11
|
-
|
|
12
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
13
|
|
|
14
14
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
15
15
|
|
|
16
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
16
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
17
17
|
|
|
18
|
-
function
|
|
18
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
19
19
|
|
|
20
|
-
function
|
|
20
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
21
21
|
|
|
22
|
-
function
|
|
22
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
23
23
|
|
|
24
|
-
function
|
|
24
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
25
25
|
|
|
26
|
-
function
|
|
26
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
function (
|
|
28
|
+
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; } }
|
|
29
|
+
|
|
30
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
|
+
|
|
32
|
+
var MmlNone = /*#__PURE__*/function (_AbstractMmlNode) {
|
|
31
33
|
_inherits(MmlNone, _AbstractMmlNode);
|
|
32
34
|
|
|
35
|
+
var _super = _createSuper(MmlNone);
|
|
36
|
+
|
|
33
37
|
function MmlNone() {
|
|
34
38
|
_classCallCheck(this, MmlNone);
|
|
35
39
|
|
|
36
|
-
return
|
|
40
|
+
return _super.apply(this, arguments);
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
_createClass(MmlNone, [{
|
|
@@ -48,15 +52,15 @@ function (_AbstractMmlNode) {
|
|
|
48
52
|
|
|
49
53
|
exports.MmlNone = MmlNone;
|
|
50
54
|
|
|
51
|
-
var MmlMstack =
|
|
52
|
-
/*#__PURE__*/
|
|
53
|
-
function (_AbstractMmlNode2) {
|
|
55
|
+
var MmlMstack = /*#__PURE__*/function (_AbstractMmlNode2) {
|
|
54
56
|
_inherits(MmlMstack, _AbstractMmlNode2);
|
|
55
57
|
|
|
58
|
+
var _super2 = _createSuper(MmlMstack);
|
|
59
|
+
|
|
56
60
|
function MmlMstack() {
|
|
57
61
|
_classCallCheck(this, MmlMstack);
|
|
58
62
|
|
|
59
|
-
return
|
|
63
|
+
return _super2.apply(this, arguments);
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
_createClass(MmlMstack, [{
|
|
@@ -71,15 +75,15 @@ function (_AbstractMmlNode2) {
|
|
|
71
75
|
|
|
72
76
|
exports.MmlMstack = MmlMstack;
|
|
73
77
|
|
|
74
|
-
var MmlMsrow =
|
|
75
|
-
/*#__PURE__*/
|
|
76
|
-
function (_AbstractMmlNode3) {
|
|
78
|
+
var MmlMsrow = /*#__PURE__*/function (_AbstractMmlNode3) {
|
|
77
79
|
_inherits(MmlMsrow, _AbstractMmlNode3);
|
|
78
80
|
|
|
81
|
+
var _super3 = _createSuper(MmlMsrow);
|
|
82
|
+
|
|
79
83
|
function MmlMsrow() {
|
|
80
84
|
_classCallCheck(this, MmlMsrow);
|
|
81
85
|
|
|
82
|
-
return
|
|
86
|
+
return _super3.apply(this, arguments);
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
_createClass(MmlMsrow, [{
|
|
@@ -94,15 +98,15 @@ function (_AbstractMmlNode3) {
|
|
|
94
98
|
|
|
95
99
|
exports.MmlMsrow = MmlMsrow;
|
|
96
100
|
|
|
97
|
-
var MmlMsline =
|
|
98
|
-
/*#__PURE__*/
|
|
99
|
-
function (_AbstractMmlNode4) {
|
|
101
|
+
var MmlMsline = /*#__PURE__*/function (_AbstractMmlNode4) {
|
|
100
102
|
_inherits(MmlMsline, _AbstractMmlNode4);
|
|
101
103
|
|
|
104
|
+
var _super4 = _createSuper(MmlMsline);
|
|
105
|
+
|
|
102
106
|
function MmlMsline() {
|
|
103
107
|
_classCallCheck(this, MmlMsline);
|
|
104
108
|
|
|
105
|
-
return
|
|
109
|
+
return _super4.apply(this, arguments);
|
|
106
110
|
}
|
|
107
111
|
|
|
108
112
|
_createClass(MmlMsline, [{
|
package/lib/mstack/mml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mstack/mml.js"],"names":["MmlNone","AbstractMmlNode","MmlMstack","MmlMsrow","MmlMsline"],"mappings":"
|
|
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"}
|
package/lib/normalization.js
CHANGED
|
@@ -3,15 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.wrapMath = exports.unWrapMath = exports.BracketTypes = void 0;
|
|
7
7
|
|
|
8
8
|
var _PAIRS;
|
|
9
9
|
|
|
10
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
11
|
|
|
12
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
+
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
+
|
|
18
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
15
19
|
|
|
16
20
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
21
|
|
package/lib/normalization.js.map
CHANGED
|
@@ -1 +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":"
|
|
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"}
|
package/lib/render-math.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.fixMathElements = exports.fixMathElement = exports["default"] = void 0;
|
|
7
7
|
|
|
8
8
|
var _mathjax = require("mathjax-full/js/mathjax");
|
|
9
9
|
|
|
@@ -35,17 +35,21 @@ var _mspace = require("mathjax-full/js/output/chtml/Wrappers/mspace");
|
|
|
35
35
|
|
|
36
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
37
37
|
|
|
38
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
|
38
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
39
39
|
|
|
40
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
|
40
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
41
41
|
|
|
42
|
-
function
|
|
42
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
43
43
|
|
|
44
|
-
function
|
|
44
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
45
45
|
|
|
46
|
-
function
|
|
46
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
47
47
|
|
|
48
|
-
function
|
|
48
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
49
|
+
|
|
50
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
|
+
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
53
|
|
|
50
54
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
51
55
|
|
|
@@ -140,15 +144,21 @@ var bootstrap = function bootstrap(opts) {
|
|
|
140
144
|
longdiv: '\\enclose{longdiv}'
|
|
141
145
|
};
|
|
142
146
|
var texConfig = opts.useSingleDollar ? {
|
|
147
|
+
loader: {
|
|
148
|
+
require: require
|
|
149
|
+
},
|
|
143
150
|
packages: packages,
|
|
144
151
|
macros: macros,
|
|
145
152
|
inlineMath: [['$', '$'], ['\\(', '\\)']],
|
|
153
|
+
displayMath: [['$$', '$$'], ['\\[', '\\]']],
|
|
146
154
|
processEscapes: true
|
|
147
155
|
} : {
|
|
148
156
|
packages: packages,
|
|
149
157
|
macros: macros
|
|
150
158
|
};
|
|
151
159
|
var mmlConfig = {
|
|
160
|
+
parseAs: 'html',
|
|
161
|
+
forceReparse: false,
|
|
152
162
|
parseError: function parseError(node) {
|
|
153
163
|
// function to process parsing errors
|
|
154
164
|
console.log('error:', node);
|
|
@@ -158,10 +168,11 @@ var bootstrap = function bootstrap(opts) {
|
|
|
158
168
|
var fontURL = "https://unpkg.com/mathjax-full@".concat(_mathjax.mathjax.version, "/ts/output/chtml/fonts/tex-woff-v2");
|
|
159
169
|
var htmlConfig = {
|
|
160
170
|
fontURL: fontURL,
|
|
161
|
-
wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes,
|
|
171
|
+
wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes), _mstack.chtmlNodes))
|
|
162
172
|
};
|
|
163
173
|
var mml = new _mathml.MathML(mmlConfig);
|
|
164
|
-
|
|
174
|
+
console.log([new _tex.TeX(texConfig), mml]);
|
|
175
|
+
var customMmlFactory = new _MmlFactory.MmlFactory(_objectSpread(_objectSpread({}, _MmlFactory.MmlFactory.defaultNodes), _mstack.mmlNodes));
|
|
165
176
|
|
|
166
177
|
var html = _mathjax.mathjax.document(document, {
|
|
167
178
|
compileError: function compileError(mj, math, err) {
|
|
@@ -222,16 +233,17 @@ var renderMath = function renderMath(el, renderOpts) {
|
|
|
222
233
|
* In mathjax src code \newline latex gets parsed to <mjx-mspace></mjx-mspace>,
|
|
223
234
|
* but has the default style
|
|
224
235
|
* 'mjx-mspace': {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
236
|
+
"display": 'in-line',
|
|
237
|
+
"text-align": 'left'
|
|
238
|
+
} which prevents it from showing as a newline value
|
|
239
|
+
*/
|
|
229
240
|
|
|
230
241
|
|
|
231
242
|
_mspace.CHTMLmspace.styles = {
|
|
232
243
|
'mjx-mspace': {
|
|
233
244
|
display: 'block',
|
|
234
|
-
'text-align': 'center'
|
|
245
|
+
'text-align': 'center',
|
|
246
|
+
height: '5px'
|
|
235
247
|
}
|
|
236
248
|
};
|
|
237
249
|
var _default = renderMath;
|
package/lib/render-math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render-math.js"],"names":["window","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","pkg","name","version","split","defaultOpts","opts","fixMathElement","element","property","textContent","unwrapped","replace","fixMathElements","mathElements","document","querySelectorAll","forEach","item","bootstrap","Typeset","useSingleDollar","console","warn","packages","AllPackages","filter","push","macros","parallelogram","overarc","napprox","longdiv","texConfig","inlineMath","processEscapes","mmlConfig","parseError","node","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","mml","MathML","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","InputJax","TeX","OutputJax","CHTML","setMmlFactory","elements","findMath","length","compile","getMetrics","typeset","updateDocument","clear","renderMath","el","renderOpts","instance","Element","arr","Array","from","CHTMLmspace","styles","display"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\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';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nimport 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 { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst getGlobal = () => {\n const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\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 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 }\n};\n\nexport const fixMathElements = () => {\n const mathElements = document.querySelectorAll('[data-latex]');\n\n mathElements.forEach(item => fixMathElement(item));\n};\n\nconst bootstrap = opts => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\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 processEscapes: true\n }\n : {\n packages,\n macros\n };\n\n const mmlConfig = {\n parseError: function(node) {\n // function to process parsing errors\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n }\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\n const html = mathjax.document(document, {\n compileError: (mj, math, err) => {\n console.log('bad math?:', math);\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n console.log('typeset error');\n console.error(err);\n doc.typesetError(math, err);\n },\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig)\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n return {\n version: mathjax.version,\n html: html,\n\n Typeset: function(...elements) {\n this.html\n .findMath(elements.length ? { elements } : {})\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument()\n .clear();\n }\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)\n fixMathElements();\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) {\n getGlobal().instance.Typeset(el);\n } else if (el.length) {\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 }\n};\n\nexport default renderMath;\n"],"file":"render-math.js"}
|
|
1
|
+
{"version":3,"sources":["../src/render-math.js"],"names":["window","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","pkg","name","version","split","defaultOpts","opts","fixMathElement","element","property","textContent","unwrapped","replace","fixMathElements","mathElements","document","querySelectorAll","forEach","item","bootstrap","Typeset","useSingleDollar","console","warn","packages","AllPackages","filter","push","macros","parallelogram","overarc","napprox","longdiv","texConfig","loader","require","inlineMath","displayMath","processEscapes","mmlConfig","parseAs","forceReparse","parseError","node","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","mml","MathML","TeX","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","InputJax","OutputJax","CHTML","setMmlFactory","elements","findMath","length","compile","getMetrics","typeset","updateDocument","clear","renderMath","el","renderOpts","instance","Element","arr","Array","from","CHTMLmspace","styles","display","height"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\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';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nimport 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 { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst getGlobal = () => {\n const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\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 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 }\n};\n\nexport const fixMathElements = () => {\n const mathElements = document.querySelectorAll('[data-latex]');\n\n mathElements.forEach(item => fixMathElement(item));\n};\n\nconst bootstrap = opts => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\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 loader: {\n require: require\n },\n packages,\n macros,\n inlineMath: [\n ['$', '$'],\n ['\\\\(', '\\\\)']\n ],\n displayMath: [\n ['$$', '$$'],\n ['\\\\[', '\\\\]']\n ],\n processEscapes: true\n }\n : {\n packages,\n macros\n };\n\n const mmlConfig = {\n parseAs: 'html',\n forceReparse: false,\n parseError: function(node) {\n // function to process parsing errors\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n }\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 console.log([new TeX(texConfig), mml]);\n\n const customMmlFactory = new MmlFactory({\n ...MmlFactory.defaultNodes,\n ...mmlNodes\n });\n\n const html = mathjax.document(document, {\n compileError: (mj, math, err) => {\n console.log('bad math?:', math);\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n console.log('typeset error');\n console.error(err);\n doc.typesetError(math, err);\n },\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig)\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n return {\n version: mathjax.version,\n html: html,\n\n Typeset: function(...elements) {\n this.html\n .findMath(elements.length ? { elements } : {})\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument()\n .clear();\n }\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)\n fixMathElements();\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) {\n getGlobal().instance.Typeset(el);\n } else if (el.length) {\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": "2.3.
|
|
3
|
+
"version": "2.3.13",
|
|
4
4
|
"description": "math rendering utilities",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
"lodash": "^4.17.11",
|
|
15
15
|
"mathjax-full": "^3.2.0"
|
|
16
16
|
},
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "aece71eebc3d81299789f41be579058ca796d106",
|
|
18
18
|
"scripts": {}
|
|
19
19
|
}
|
package/src/render-math.js
CHANGED
|
@@ -94,9 +94,19 @@ const bootstrap = opts => {
|
|
|
94
94
|
|
|
95
95
|
const texConfig = opts.useSingleDollar
|
|
96
96
|
? {
|
|
97
|
+
loader: {
|
|
98
|
+
require: require
|
|
99
|
+
},
|
|
97
100
|
packages,
|
|
98
101
|
macros,
|
|
99
|
-
inlineMath: [
|
|
102
|
+
inlineMath: [
|
|
103
|
+
['$', '$'],
|
|
104
|
+
['\\(', '\\)']
|
|
105
|
+
],
|
|
106
|
+
displayMath: [
|
|
107
|
+
['$$', '$$'],
|
|
108
|
+
['\\[', '\\]']
|
|
109
|
+
],
|
|
100
110
|
processEscapes: true
|
|
101
111
|
}
|
|
102
112
|
: {
|
|
@@ -105,6 +115,8 @@ const bootstrap = opts => {
|
|
|
105
115
|
};
|
|
106
116
|
|
|
107
117
|
const mmlConfig = {
|
|
118
|
+
parseAs: 'html',
|
|
119
|
+
forceReparse: false,
|
|
108
120
|
parseError: function(node) {
|
|
109
121
|
// function to process parsing errors
|
|
110
122
|
console.log('error:', node);
|
|
@@ -123,6 +135,7 @@ const bootstrap = opts => {
|
|
|
123
135
|
};
|
|
124
136
|
|
|
125
137
|
const mml = new MathML(mmlConfig);
|
|
138
|
+
console.log([new TeX(texConfig), mml]);
|
|
126
139
|
|
|
127
140
|
const customMmlFactory = new MmlFactory({
|
|
128
141
|
...MmlFactory.defaultNodes,
|
|
@@ -189,14 +202,15 @@ const renderMath = (el, renderOpts) => {
|
|
|
189
202
|
* In mathjax src code \newline latex gets parsed to <mjx-mspace></mjx-mspace>,
|
|
190
203
|
* but has the default style
|
|
191
204
|
* 'mjx-mspace': {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
205
|
+
"display": 'in-line',
|
|
206
|
+
"text-align": 'left'
|
|
207
|
+
} which prevents it from showing as a newline value
|
|
208
|
+
*/
|
|
196
209
|
CHTMLmspace.styles = {
|
|
197
210
|
'mjx-mspace': {
|
|
198
211
|
display: 'block',
|
|
199
|
-
'text-align': 'center'
|
|
212
|
+
'text-align': 'center',
|
|
213
|
+
height: '5px'
|
|
200
214
|
}
|
|
201
215
|
};
|
|
202
216
|
|