@pie-lib/math-rendering 3.3.0-beta.5 → 3.3.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.3.0-beta.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.6) (2025-07-25)
7
+
8
+ **Note:** Version bump only for package @pie-lib/math-rendering
9
+
10
+
11
+
12
+
13
+
14
+ # [3.3.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.5) (2025-07-25)
15
+
16
+ **Note:** Version bump only for package @pie-lib/math-rendering
17
+
18
+
19
+
20
+
21
+
6
22
  # [3.3.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@3.2.1...@pie-lib/math-rendering@3.3.0-beta.5) (2025-07-25)
7
23
 
8
24
  **Note:** Version bump only for package @pie-lib/math-rendering
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/math-rendering",
3
- "version": "3.3.0-beta.5",
3
+ "version": "3.3.0-beta.6",
4
4
  "description": "math rendering utilities",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _mmlToLatex = _interopRequireDefault(require("../mml-to-latex"));
8
-
9
- describe('mmlToLatex', function () {
10
- it('should work', function () {
11
- var mml = '<math xmlns="http://www.w3.org/1998/Math/MathML"> <mn>2</mn> <mi>x</mi> <mtext>&#xA0;</mtext> <mo>&#x2264;</mo> <mn>4</mn> <mi>y</mi> <mtext>&#xA0;</mtext> <mo>+</mo> <mtext>&#xA0;</mtext> <mn>8</mn> <msqrt> <mi>h</mi> </msqrt></math>'; // todo revisit this
12
- // const latex = '2x\\text{ }\\leq4y\\text{ }+\\text{ }8\\sqrt{h}';
13
-
14
- var latex = '2 x \\textrm{ } \\leq 4 y \\textrm{ } + \\textrm{ } 8 \\sqrt{h}';
15
- expect((0, _mmlToLatex["default"])(mml)).toEqual(latex);
16
- });
17
- });
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbW1sLXRvLWxhdGV4LnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsIm1tbCIsImxhdGV4IiwiZXhwZWN0IiwidG9FcXVhbCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsWUFBRCxFQUFlLFlBQU07QUFDM0JDLEVBQUFBLEVBQUUsQ0FBQyxhQUFELEVBQWdCLFlBQU07QUFDdEIsUUFBTUMsR0FBRyxHQUNQLDBQQURGLENBRHNCLENBR3RCO0FBQ0E7O0FBQ0EsUUFBTUMsS0FBSyxHQUFHLGlFQUFkO0FBRUFDLElBQUFBLE1BQU0sQ0FBQyw0QkFBV0YsR0FBWCxDQUFELENBQU4sQ0FBd0JHLE9BQXhCLENBQWdDRixLQUFoQztBQUNELEdBUkMsQ0FBRjtBQVNELENBVk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbW1sVG9MYXRleCBmcm9tICcuLi9tbWwtdG8tbGF0ZXgnO1xuXG5kZXNjcmliZSgnbW1sVG9MYXRleCcsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCB3b3JrJywgKCkgPT4ge1xuICAgIGNvbnN0IG1tbCA9XG4gICAgICAnPG1hdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI+ICA8bW4+MjwvbW4+ICA8bWk+eDwvbWk+ICA8bXRleHQ+JiN4QTA7PC9tdGV4dD4gIDxtbz4mI3gyMjY0OzwvbW8+ICA8bW4+NDwvbW4+ICA8bWk+eTwvbWk+ICA8bXRleHQ+JiN4QTA7PC9tdGV4dD4gIDxtbz4rPC9tbz4gIDxtdGV4dD4mI3hBMDs8L210ZXh0PiAgPG1uPjg8L21uPiA8bXNxcnQ+ICAgIDxtaT5oPC9taT4gIDwvbXNxcnQ+PC9tYXRoPic7XG4gICAgLy8gdG9kbyByZXZpc2l0IHRoaXNcbiAgICAvLyBjb25zdCBsYXRleCA9ICcyeFxcXFx0ZXh0eyB9XFxcXGxlcTR5XFxcXHRleHR7IH0rXFxcXHRleHR7IH04XFxcXHNxcnR7aH0nO1xuICAgIGNvbnN0IGxhdGV4ID0gJzIgeCBcXFxcdGV4dHJteyB9IFxcXFxsZXEgNCB5IFxcXFx0ZXh0cm17IH0gKyBcXFxcdGV4dHJteyB9IDggXFxcXHNxcnR7aH0nO1xuXG4gICAgZXhwZWN0KG1tbFRvTGF0ZXgobW1sKSkudG9FcXVhbChsYXRleCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _debug = _interopRequireDefault(require("debug"));
8
-
9
- var _normalization = require("../normalization");
10
-
11
- var log = (0, _debug["default"])('@pie-lib:math-rendering:test:normalization');
12
- describe('normalization', function () {
13
- describe('unWrapMath', function () {
14
- var assertUnWrap = function assertUnWrap(html, expected, wrapType) {
15
- it("innerHTML: ".concat(html, " is unWrapped to: ").concat(expected, " with wrapType: ").concat(wrapType), function () {
16
- var out = (0, _normalization.unWrapMath)(html);
17
- expect(out).toEqual({
18
- unwrapped: expected,
19
- wrapType: wrapType
20
- });
21
- });
22
- };
23
-
24
- assertUnWrap('$$<$$', '<', _normalization.BracketTypes.DOLLAR);
25
- assertUnWrap('$<$', '<', _normalization.BracketTypes.DOLLAR);
26
- assertUnWrap('\\(<\\)', '<', _normalization.BracketTypes.ROUND_BRACKETS);
27
- assertUnWrap('\\[<\\]', '<', _normalization.BracketTypes.ROUND_BRACKETS);
28
- assertUnWrap('latex', 'latex', _normalization.BracketTypes.ROUND_BRACKETS);
29
- assertUnWrap('\\displaystyle foo', 'foo', _normalization.BracketTypes.ROUND_BRACKETS);
30
- });
31
- describe('wrapMath', function () {
32
- var assertWrap = function assertWrap(latex, expectedHtml, wrapper) {
33
- wrapper = wrapper || _normalization.BracketTypes.ROUND_BRACKETS;
34
- it("".concat(latex, " is wrapped to: ").concat(expectedHtml), function () {
35
- var out = (0, _normalization.wrapMath)(latex, wrapper);
36
- log('out: ', out);
37
- expect(out).toEqual(expectedHtml);
38
- });
39
- };
40
-
41
- assertWrap('latex', '\\(latex\\)', _normalization.BracketTypes.ROUND_BRACKETS);
42
- assertWrap('latex', '\\(latex\\)', _normalization.BracketTypes.SQUARE_BRACKETS);
43
- assertWrap('latex', '$latex$', _normalization.BracketTypes.DOLLAR);
44
- assertWrap('latex', '$latex$', _normalization.BracketTypes.DOUBLE_DOLLAR);
45
- /**
46
- * Note that when this is converted to html it get's escaped - but that's an issue with the slate html-serializer.
47
- */
48
-
49
- assertWrap('<', '\\(<\\)');
50
- });
51
- });
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbm9ybWFsaXphdGlvbi50ZXN0LmpzIl0sIm5hbWVzIjpbImxvZyIsImRlc2NyaWJlIiwiYXNzZXJ0VW5XcmFwIiwiaHRtbCIsImV4cGVjdGVkIiwid3JhcFR5cGUiLCJpdCIsIm91dCIsImV4cGVjdCIsInRvRXF1YWwiLCJ1bndyYXBwZWQiLCJCcmFja2V0VHlwZXMiLCJET0xMQVIiLCJST1VORF9CUkFDS0VUUyIsImFzc2VydFdyYXAiLCJsYXRleCIsImV4cGVjdGVkSHRtbCIsIndyYXBwZXIiLCJTUVVBUkVfQlJBQ0tFVFMiLCJET1VCTEVfRE9MTEFSIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLDRDQUFOLENBQVo7QUFFQUMsUUFBUSxDQUFDLGVBQUQsRUFBa0IsWUFBTTtBQUM5QkEsRUFBQUEsUUFBUSxDQUFDLFlBQUQsRUFBZSxZQUFNO0FBQzNCLFFBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFpQkMsUUFBakIsRUFBOEI7QUFDakRDLE1BQUFBLEVBQUUsc0JBQWVILElBQWYsK0JBQXdDQyxRQUF4Qyw2QkFBbUVDLFFBQW5FLEdBQStFLFlBQU07QUFDckYsWUFBTUUsR0FBRyxHQUFHLCtCQUFXSixJQUFYLENBQVo7QUFFQUssUUFBQUEsTUFBTSxDQUFDRCxHQUFELENBQU4sQ0FBWUUsT0FBWixDQUFvQjtBQUNsQkMsVUFBQUEsU0FBUyxFQUFFTixRQURPO0FBRWxCQyxVQUFBQSxRQUFRLEVBQUVBO0FBRlEsU0FBcEI7QUFJRCxPQVBDLENBQUY7QUFRRCxLQVREOztBQVdBSCxJQUFBQSxZQUFZLENBQUMsT0FBRCxFQUFVLEdBQVYsRUFBZVMsNEJBQWFDLE1BQTVCLENBQVo7QUFDQVYsSUFBQUEsWUFBWSxDQUFDLEtBQUQsRUFBUSxHQUFSLEVBQWFTLDRCQUFhQyxNQUExQixDQUFaO0FBQ0FWLElBQUFBLFlBQVksQ0FBQyxTQUFELEVBQVksR0FBWixFQUFpQlMsNEJBQWFFLGNBQTlCLENBQVo7QUFDQVgsSUFBQUEsWUFBWSxDQUFDLFNBQUQsRUFBWSxHQUFaLEVBQWlCUyw0QkFBYUUsY0FBOUIsQ0FBWjtBQUNBWCxJQUFBQSxZQUFZLENBQUMsT0FBRCxFQUFVLE9BQVYsRUFBbUJTLDRCQUFhRSxjQUFoQyxDQUFaO0FBQ0FYLElBQUFBLFlBQVksQ0FBQyxvQkFBRCxFQUF1QixLQUF2QixFQUE4QlMsNEJBQWFFLGNBQTNDLENBQVo7QUFDRCxHQWxCTyxDQUFSO0FBb0JBWixFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekIsUUFBTWEsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0MsS0FBRCxFQUFRQyxZQUFSLEVBQXNCQyxPQUF0QixFQUFrQztBQUNuREEsTUFBQUEsT0FBTyxHQUFHQSxPQUFPLElBQUlOLDRCQUFhRSxjQUFsQztBQUNBUCxNQUFBQSxFQUFFLFdBQUlTLEtBQUosNkJBQTRCQyxZQUE1QixHQUE0QyxZQUFNO0FBQ2xELFlBQU1ULEdBQUcsR0FBRyw2QkFBU1EsS0FBVCxFQUFnQkUsT0FBaEIsQ0FBWjtBQUVBakIsUUFBQUEsR0FBRyxDQUFDLE9BQUQsRUFBVU8sR0FBVixDQUFIO0FBRUFDLFFBQUFBLE1BQU0sQ0FBQ0QsR0FBRCxDQUFOLENBQVlFLE9BQVosQ0FBb0JPLFlBQXBCO0FBQ0QsT0FOQyxDQUFGO0FBT0QsS0FURDs7QUFXQUYsSUFBQUEsVUFBVSxDQUFDLE9BQUQsRUFBVSxhQUFWLEVBQXlCSCw0QkFBYUUsY0FBdEMsQ0FBVjtBQUNBQyxJQUFBQSxVQUFVLENBQUMsT0FBRCxFQUFVLGFBQVYsRUFBeUJILDRCQUFhTyxlQUF0QyxDQUFWO0FBQ0FKLElBQUFBLFVBQVUsQ0FBQyxPQUFELEVBQVUsU0FBVixFQUFxQkgsNEJBQWFDLE1BQWxDLENBQVY7QUFDQUUsSUFBQUEsVUFBVSxDQUFDLE9BQUQsRUFBVSxTQUFWLEVBQXFCSCw0QkFBYVEsYUFBbEMsQ0FBVjtBQUVBO0FBQ0o7QUFDQTs7QUFDSUwsSUFBQUEsVUFBVSxDQUFDLEdBQUQsRUFBTSxTQUFOLENBQVY7QUFDRCxHQXJCTyxDQUFSO0FBc0JELENBM0NPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IEJyYWNrZXRUeXBlcywgd3JhcE1hdGgsIHVuV3JhcE1hdGggfSBmcm9tICcuLi9ub3JtYWxpemF0aW9uJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOm1hdGgtcmVuZGVyaW5nOnRlc3Q6bm9ybWFsaXphdGlvbicpO1xuXG5kZXNjcmliZSgnbm9ybWFsaXphdGlvbicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3VuV3JhcE1hdGgnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0VW5XcmFwID0gKGh0bWwsIGV4cGVjdGVkLCB3cmFwVHlwZSkgPT4ge1xuICAgICAgaXQoYGlubmVySFRNTDogJHtodG1sfSBpcyB1bldyYXBwZWQgdG86ICR7ZXhwZWN0ZWR9IHdpdGggd3JhcFR5cGU6ICR7d3JhcFR5cGV9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBvdXQgPSB1bldyYXBNYXRoKGh0bWwpO1xuXG4gICAgICAgIGV4cGVjdChvdXQpLnRvRXF1YWwoe1xuICAgICAgICAgIHVud3JhcHBlZDogZXhwZWN0ZWQsXG4gICAgICAgICAgd3JhcFR5cGU6IHdyYXBUeXBlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRVbldyYXAoJyQkPCQkJywgJzwnLCBCcmFja2V0VHlwZXMuRE9MTEFSKTtcbiAgICBhc3NlcnRVbldyYXAoJyQ8JCcsICc8JywgQnJhY2tldFR5cGVzLkRPTExBUik7XG4gICAgYXNzZXJ0VW5XcmFwKCdcXFxcKDxcXFxcKScsICc8JywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgICBhc3NlcnRVbldyYXAoJ1xcXFxbPFxcXFxdJywgJzwnLCBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFVuV3JhcCgnbGF0ZXgnLCAnbGF0ZXgnLCBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFVuV3JhcCgnXFxcXGRpc3BsYXlzdHlsZSBmb28nLCAnZm9vJywgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dyYXBNYXRoJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydFdyYXAgPSAobGF0ZXgsIGV4cGVjdGVkSHRtbCwgd3JhcHBlcikgPT4ge1xuICAgICAgd3JhcHBlciA9IHdyYXBwZXIgfHwgQnJhY2tldFR5cGVzLlJPVU5EX0JSQUNLRVRTO1xuICAgICAgaXQoYCR7bGF0ZXh9IGlzIHdyYXBwZWQgdG86ICR7ZXhwZWN0ZWRIdG1sfWAsICgpID0+IHtcbiAgICAgICAgY29uc3Qgb3V0ID0gd3JhcE1hdGgobGF0ZXgsIHdyYXBwZXIpO1xuXG4gICAgICAgIGxvZygnb3V0OiAnLCBvdXQpO1xuXG4gICAgICAgIGV4cGVjdChvdXQpLnRvRXF1YWwoZXhwZWN0ZWRIdG1sKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3NlcnRXcmFwKCdsYXRleCcsICdcXFxcKGxhdGV4XFxcXCknLCBCcmFja2V0VHlwZXMuUk9VTkRfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFdyYXAoJ2xhdGV4JywgJ1xcXFwobGF0ZXhcXFxcKScsIEJyYWNrZXRUeXBlcy5TUVVBUkVfQlJBQ0tFVFMpO1xuICAgIGFzc2VydFdyYXAoJ2xhdGV4JywgJyRsYXRleCQnLCBCcmFja2V0VHlwZXMuRE9MTEFSKTtcbiAgICBhc3NlcnRXcmFwKCdsYXRleCcsICckbGF0ZXgkJywgQnJhY2tldFR5cGVzLkRPVUJMRV9ET0xMQVIpO1xuXG4gICAgLyoqXG4gICAgICogTm90ZSB0aGF0IHdoZW4gdGhpcyBpcyBjb252ZXJ0ZWQgdG8gaHRtbCBpdCBnZXQncyBlc2NhcGVkIC0gYnV0IHRoYXQncyBhbiBpc3N1ZSB3aXRoIHRoZSBzbGF0ZSBodG1sLXNlcmlhbGl6ZXIuXG4gICAgICovXG4gICAgYXNzZXJ0V3JhcCgnPCcsICdcXFxcKDxcXFxcKScpO1xuICB9KTtcbn0pO1xuIl19
@@ -1,170 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _renderMath = _interopRequireWildcard(require("../render-math"));
12
-
13
- var _lodash = _interopRequireDefault(require("lodash"));
14
-
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
-
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
-
19
- jest.mock('mathjax-full/js/mathjax', function () {
20
- return {
21
- mathjax: {
22
- document: jest.fn().mockReturnThis(),
23
- findMath: jest.fn().mockReturnThis(),
24
- compile: jest.fn().mockReturnThis(),
25
- getMetrics: jest.fn().mockReturnThis(),
26
- typeset: jest.fn().mockReturnThis(),
27
- updateDocument: jest.fn().mockReturnThis(),
28
- clear: jest.fn().mockReturnThis(),
29
- handlers: {
30
- handlesDocument: jest.fn().mockReturnThis()
31
- },
32
- handleRetriesFor: jest.fn().mockImplementation(function (callback) {
33
- return callback();
34
- })
35
- }
36
- };
37
- }, {
38
- virtual: false
39
- });
40
- jest.mock('mathjax-full/js/input/mathml', function () {
41
- var mock = jest.fn().mockReturnThis();
42
- mock.setMmlFactory = jest.fn();
43
- return {
44
- MathML: function MathML() {
45
- return mock;
46
- }
47
- };
48
- });
49
- jest.mock('mathjax-full/js/input/tex', function () {
50
- return {
51
- TeX: jest.fn()
52
- };
53
- });
54
- jest.mock('mathjax-full/js/core/MmlTree/MmlFactory', function () {
55
- var instance = {
56
- setMmlFactory: jest.fn(),
57
- defaultNodes: {}
58
- };
59
- return {
60
- MmlFactory: function MmlFactory() {
61
- return instance;
62
- }
63
- };
64
- });
65
- var mockMathInstance = {
66
- document: jest.fn().mockReturnThis(),
67
- findMath: jest.fn().mockReturnThis(),
68
- compile: jest.fn().mockReturnThis(),
69
- enrich: jest.fn().mockReturnThis(),
70
- addMenu: jest.fn().mockReturnThis(),
71
- attachSpeech: jest.fn().mockReturnThis(),
72
- assistiveMml: jest.fn().mockReturnThis(),
73
- getMetrics: jest.fn().mockReturnThis(),
74
- typeset: jest.fn().mockReturnThis(),
75
- updateDocument: jest.fn().mockReturnValue({
76
- math: {
77
- list: undefined
78
- },
79
- clear: jest.fn().mockReturnThis()
80
- }),
81
- clear: jest.fn().mockReturnThis(),
82
- handlers: {
83
- handlesDocument: jest.fn().mockReturnThis()
84
- },
85
- handleRetriesFor: jest.fn().mockImplementation(function (callback) {
86
- return callback();
87
- })
88
- };
89
- var mockHtml = {
90
- findMath: jest.fn().mockReturnValue(mockMathInstance)
91
- };
92
- var mockEnrichHandlerInstance = {
93
- create: jest.fn().mockImplementation(function () {
94
- return mockHtml;
95
- })
96
- };
97
- jest.mock('mathjax-full/js/a11y/semantic-enrich', function () {
98
- return {
99
- EnrichHandler: function EnrichHandler() {
100
- return mockEnrichHandlerInstance;
101
- }
102
- };
103
- });
104
- jest.mock('mathjax-full/js/a11y/assistive-mml', function () {
105
- return {
106
- AssistiveMmlHandler: function AssistiveMmlHandler() {}
107
- };
108
- });
109
- jest.mock('mathjax-full/js/ui/menu/MenuHandler', function () {
110
- return {
111
- MenuHandler: function MenuHandler() {}
112
- };
113
- });
114
- jest.mock('mathjax-full/js/output/chtml', function () {
115
- return {
116
- CHTML: jest.fn()
117
- };
118
- });
119
- jest.mock('mathjax-full/js/adaptors/browserAdaptor', function () {
120
- return {
121
- browserAdaptor: jest.fn()
122
- };
123
- });
124
- jest.mock('mathjax-full/js/handlers/html', function () {
125
- return {
126
- RegisterHTMLHandler: jest.fn()
127
- };
128
- });
129
- jest.mock('mathjax-full/js/core/MmlTree/SerializedMmlVisitor', function () {
130
- return {
131
- SerializedMmlVisitor: jest.fn()
132
- };
133
- });
134
- describe('render-math', function () {
135
- it('calls classFactory.create once', function () {
136
- var div = document.createElement('div');
137
-
138
- _lodash["default"].times(10).forEach(function (i) {
139
- return (0, _renderMath["default"])(div);
140
- });
141
-
142
- expect(mockEnrichHandlerInstance.create).toHaveBeenCalledTimes(1);
143
- });
144
- it('calls MathJax render', function () {
145
- var div = document.createElement('div');
146
- (0, _renderMath["default"])(div);
147
- expect(mockEnrichHandlerInstance.create).toHaveBeenCalledTimes(1);
148
- expect(mockHtml.findMath).toHaveBeenCalledWith({
149
- elements: [div]
150
- });
151
- });
152
- it('call render math for an array of elements', function () {
153
- var divOne = document.createElement('div');
154
- var divTwo = document.createElement('div');
155
- (0, _renderMath["default"])([divOne, divTwo]);
156
- expect(mockEnrichHandlerInstance.create).toHaveBeenCalledTimes(1);
157
- expect(mockHtml.findMath).toHaveBeenCalledWith({
158
- elements: [divOne, divTwo]
159
- });
160
- });
161
- it('wraps the math containing element the right way', function () {
162
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
163
- "data-latex": ""
164
- }, '420\\text{ cm}=4.2\\text{ meters}')));
165
- var spanElem = wrapper.instance();
166
- (0, _renderMath.fixMathElement)(spanElem);
167
- expect(spanElem.textContent).toEqual('\\(420\\text{ cm}=4.2\\text{ meters}\\)');
168
- });
169
- });
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcmVuZGVyLW1hdGgudGVzdC5qcyJdLCJuYW1lcyI6WyJqZXN0IiwibW9jayIsIm1hdGhqYXgiLCJkb2N1bWVudCIsImZuIiwibW9ja1JldHVyblRoaXMiLCJmaW5kTWF0aCIsImNvbXBpbGUiLCJnZXRNZXRyaWNzIiwidHlwZXNldCIsInVwZGF0ZURvY3VtZW50IiwiY2xlYXIiLCJoYW5kbGVycyIsImhhbmRsZXNEb2N1bWVudCIsImhhbmRsZVJldHJpZXNGb3IiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJjYWxsYmFjayIsInZpcnR1YWwiLCJzZXRNbWxGYWN0b3J5IiwiTWF0aE1MIiwiVGVYIiwiaW5zdGFuY2UiLCJkZWZhdWx0Tm9kZXMiLCJNbWxGYWN0b3J5IiwibW9ja01hdGhJbnN0YW5jZSIsImVucmljaCIsImFkZE1lbnUiLCJhdHRhY2hTcGVlY2giLCJhc3Npc3RpdmVNbWwiLCJtb2NrUmV0dXJuVmFsdWUiLCJtYXRoIiwibGlzdCIsInVuZGVmaW5lZCIsIm1vY2tIdG1sIiwibW9ja0VucmljaEhhbmRsZXJJbnN0YW5jZSIsImNyZWF0ZSIsIkVucmljaEhhbmRsZXIiLCJBc3Npc3RpdmVNbWxIYW5kbGVyIiwiTWVudUhhbmRsZXIiLCJDSFRNTCIsImJyb3dzZXJBZGFwdG9yIiwiUmVnaXN0ZXJIVE1MSGFuZGxlciIsIlNlcmlhbGl6ZWRNbWxWaXNpdG9yIiwiZGVzY3JpYmUiLCJpdCIsImRpdiIsImNyZWF0ZUVsZW1lbnQiLCJfIiwidGltZXMiLCJmb3JFYWNoIiwiaSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiZWxlbWVudHMiLCJkaXZPbmUiLCJkaXZUd28iLCJ3cmFwcGVyIiwic3BhbkVsZW0iLCJ0ZXh0Q29udGVudCIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsSUFBSSxDQUFD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Q08sUUFBUSxDQUFDQyxXQUFWLENBQU4sQ0FBNkJDLE9BQTdCLENBQXFDLHlDQUFyQztBQUNELEdBWEMsQ0FBRjtBQVlELENBekNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbW91bnQgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IHJlbmRlck1hdGgsIHsgZml4TWF0aEVsZW1lbnQgfSBmcm9tICcuLi9yZW5kZXItbWF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5qZXN0Lm1vY2soXG4gICdtYXRoamF4LWZ1bGwvanMvbWF0aGpheCcsXG4gICgpID0+ICh7XG4gICAgbWF0aGpheDoge1xuICAgICAgZG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgZmluZE1hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgY29tcGlsZTogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgICBnZXRNZXRyaWNzOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIHR5cGVzZXQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgdXBkYXRlRG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgY2xlYXI6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgaGFuZGxlc0RvY3VtZW50OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVSZXRyaWVzRm9yOiBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSksXG4gICAgfSxcbiAgfSksXG4gIHtcbiAgICB2aXJ0dWFsOiBmYWxzZSxcbiAgfSxcbik7XG5cbmplc3QubW9jaygnbWF0aGpheC1mdWxsL2pzL2lucHV0L21hdGhtbCcsICgpID0+IHtcbiAgY29uc3QgbW9jayA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpO1xuICBtb2NrLnNldE1tbEZhY3RvcnkgPSBqZXN0LmZuKCk7XG4gIHJldHVybiB7XG4gICAgTWF0aE1MOiAoKSA9PiBtb2NrLFxuICB9O1xufSk7XG5cbmplc3QubW9jaygnbWF0aGpheC1mdWxsL2pzL2lucHV0L3RleCcsICgpID0+ICh7XG4gIFRlWDogamVzdC5mbigpLFxufSkpO1xuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvY29yZS9NbWxUcmVlL01tbEZhY3RvcnknLCAoKSA9PiB7XG4gIGNvbnN0IGluc3RhbmNlID0ge1xuICAgIHNldE1tbEZhY3Rvcnk6IGplc3QuZm4oKSxcbiAgICBkZWZhdWx0Tm9kZXM6IHt9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIE1tbEZhY3Rvcnk6ICgpID0+IGluc3RhbmNlLFxuICB9O1xufSk7XG5cbmNvbnN0IG1vY2tNYXRoSW5zdGFuY2UgPSB7XG4gIGRvY3VtZW50OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgZmluZE1hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICBjb21waWxlOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgZW5yaWNoOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgYWRkTWVudTogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gIGF0dGFjaFNwZWVjaDogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gIGFzc2lzdGl2ZU1tbDogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gIGdldE1ldHJpY3M6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB0eXBlc2V0OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgdXBkYXRlRG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgIG1hdGg6IHtcbiAgICAgIGxpc3Q6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIGNsZWFyOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgfSksXG4gIGNsZWFyOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVzRG9jdW1lbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB9LFxuICBoYW5kbGVSZXRyaWVzRm9yOiBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSksXG59O1xuXG5jb25zdCBtb2NrSHRtbCA9IHtcbiAgZmluZE1hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUobW9ja01hdGhJbnN0YW5jZSksXG59O1xuXG5jb25zdCBtb2NrRW5yaWNoSGFuZGxlckluc3RhbmNlID0ge1xuICBjcmVhdGU6IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gbW9ja0h0bWwpLFxufTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvYTExeS9zZW1hbnRpYy1lbnJpY2gnLCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgRW5yaWNoSGFuZGxlcjogKCkgPT4gbW9ja0VucmljaEhhbmRsZXJJbnN0YW5jZSxcbiAgfTtcbn0pO1xuXG5qZXN0Lm1vY2soJ21hdGhqYXgtZnVsbC9qcy9hMTF5L2Fzc2lzdGl2ZS1tbWwnLCAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgQXNzaXN0aXZlTW1sSGFuZGxlcjogKCkgPT4ge30sXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvdWkvbWVudS9NZW51SGFuZGxlcicsICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBNZW51SGFuZGxlcjogKCkgPT4ge30sXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvb3V0cHV0L2NodG1sJywgKCkgPT4gKHtcbiAgQ0hUTUw6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdtYXRoamF4LWZ1bGwvanMvYWRhcHRvcnMvYnJvd3NlckFkYXB0b3InLCAoKSA9PiAoe1xuICBicm93c2VyQWRhcHRvcjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ21hdGhqYXgtZnVsbC9qcy9oYW5kbGVycy9odG1sJywgKCkgPT4gKHtcbiAgUmVnaXN0ZXJIVE1MSGFuZGxlcjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ21hdGhqYXgtZnVsbC9qcy9jb3JlL01tbFRyZWUvU2VyaWFsaXplZE1tbFZpc2l0b3InLCAoKSA9PiAoe1xuICBTZXJpYWxpemVkTW1sVmlzaXRvcjogamVzdC5mbigpLFxufSkpO1xuXG5kZXNjcmliZSgncmVuZGVyLW1hdGgnLCAoKSA9PiB7XG4gIGl0KCdjYWxscyBjbGFzc0ZhY3RvcnkuY3JlYXRlIG9uY2UnLCAoKSA9PiB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICBfLnRpbWVzKDEwKS5mb3JFYWNoKChpKSA9PiByZW5kZXJNYXRoKGRpdikpO1xuXG4gICAgZXhwZWN0KG1vY2tFbnJpY2hIYW5kbGVySW5zdGFuY2UuY3JlYXRlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBNYXRoSmF4IHJlbmRlcicsICgpID0+IHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgIHJlbmRlck1hdGgoZGl2KTtcbiAgICBleHBlY3QobW9ja0VucmljaEhhbmRsZXJJbnN0YW5jZS5jcmVhdGUpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QobW9ja0h0bWwuZmluZE1hdGgpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgZWxlbWVudHM6IFtkaXZdIH0pO1xuICB9KTtcblxuICBpdCgnY2FsbCByZW5kZXIgbWF0aCBmb3IgYW4gYXJyYXkgb2YgZWxlbWVudHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZGl2T25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgY29uc3QgZGl2VHdvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICByZW5kZXJNYXRoKFtkaXZPbmUsIGRpdlR3b10pO1xuXG4gICAgZXhwZWN0KG1vY2tFbnJpY2hIYW5kbGVySW5zdGFuY2UuY3JlYXRlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KG1vY2tIdG1sLmZpbmRNYXRoKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBlbGVtZW50czogW2Rpdk9uZSwgZGl2VHdvXSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3dyYXBzIHRoZSBtYXRoIGNvbnRhaW5pbmcgZWxlbWVudCB0aGUgcmlnaHQgd2F5JywgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGRhdGEtbGF0ZXg9XCJcIj57JzQyMFxcXFx0ZXh0eyBjbX09NC4yXFxcXHRleHR7IG1ldGVyc30nfTwvc3Bhbj5cbiAgICAgIDwvZGl2PixcbiAgICApO1xuICAgIGNvbnN0IHNwYW5FbGVtID0gd3JhcHBlci5pbnN0YW5jZSgpO1xuXG4gICAgZml4TWF0aEVsZW1lbnQoc3BhbkVsZW0pO1xuXG4gICAgZXhwZWN0KHNwYW5FbGVtLnRleHRDb250ZW50KS50b0VxdWFsKCdcXFxcKDQyMFxcXFx0ZXh0eyBjbX09NC4yXFxcXHRleHR7IG1ldGVyc31cXFxcKScpO1xuICB9KTtcbn0pO1xuIl19
@@ -1,151 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
6
-
7
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
-
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
-
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
-
13
- var _chtml = require("../chtml");
14
-
15
- var _jsdom = require("jsdom");
16
-
17
- var _templateObject, _templateObject2, _templateObject3;
18
-
19
- 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; }
20
-
21
- 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) { (0, _defineProperty2["default"])(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; }
22
-
23
- jest.mock('mathjax-full/js/output/chtml/Wrapper', function () {
24
- var instance = {
25
- adaptor: {
26
- document: {
27
- createElement: jest.fn()
28
- }
29
- },
30
- standardCHTMLnode: jest.fn()
31
- };
32
- return {
33
- instance: instance,
34
- CHTMLWrapper: /*#__PURE__*/(0, _createClass2["default"])(function CHTMLWrapper() {
35
- (0, _classCallCheck2["default"])(this, CHTMLWrapper);
36
- this.adaptor = {
37
- document: {
38
- createElement: jest.fn()
39
- }
40
- };
41
- this.document = {}; // return instance;
42
- })
43
- };
44
- });
45
-
46
- var node = function node(kind, extras) {
47
- return _objectSpread({
48
- kind: kind,
49
- childNodes: []
50
- }, extras);
51
- };
52
-
53
- var textNode = function textNode(text) {
54
- return node('text', {
55
- text: text,
56
- node: {
57
- kind: 'text',
58
- text: text
59
- }
60
- });
61
- };
62
-
63
- var mn = function mn(text) {
64
- return node('mn', {
65
- childNodes: [textNode(text)]
66
- });
67
- };
68
-
69
- var mo = function mo(text) {
70
- return node('mo', {
71
- childNodes: [textNode(text)]
72
- });
73
- };
74
-
75
- var mco = function mco(text) {
76
- return _objectSpread(_objectSpread({}, mo(text)), {}, {
77
- toCHTML: function toCHTML(n) {
78
- var t = "mo:".concat(text);
79
- n.textContent = t;
80
- }
81
- });
82
- };
83
-
84
- var msrow = function msrow() {
85
- for (var _len = arguments.length, childNodes = new Array(_len), _key = 0; _key < _len; _key++) {
86
- childNodes[_key] = arguments[_key];
87
- }
88
-
89
- return node('msrow', {
90
- childNodes: childNodes
91
- });
92
- };
93
-
94
- var mstack = function mstack() {
95
- for (var _len2 = arguments.length, rows = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
96
- rows[_key2] = arguments[_key2];
97
- }
98
-
99
- return node('mstack', {
100
- childNodes: rows
101
- });
102
- };
103
-
104
- var msline = function msline() {
105
- return node('msline');
106
- };
107
-
108
- describe('getStackData', function () {
109
- it.each(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n input | expected\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n "])), mstack(msrow(mo('+'), mn('111'))), [new _chtml.Row(['1', '1', '1'], mo('+'))], mstack(msrow(mn('111'))), [new _chtml.Row(['1', '1', '1'])], mstack(msrow(mn('1'), mn('1'))), [new _chtml.Row(['1', '1'])], mstack(msrow(mn('1')), mn('1')), [new _chtml.Row(['1']), new _chtml.Row(['1'])], mstack(msline()), [new _chtml.Line()], mstack(mn('1'), msline(), msrow(mo('+'), mn('1'))), [new _chtml.Row(['1']), new _chtml.Line(), new _chtml.Row(['1'], mo('+'))], mstack(mn('1'), mn('1')), [new _chtml.Row(['1']), new _chtml.Row(['1'])])('$input => $expected', function (_ref) {
110
- var input = _ref.input,
111
- expected = _ref.expected;
112
- var d = (0, _chtml.getStackData)(input); // console.log('d:', d);
113
- // console.log('e:', expected);
114
-
115
- expect(_objectSpread({}, d)).toEqual(_objectSpread({}, expected));
116
- });
117
- });
118
- describe('Row', function () {
119
- describe('pad', function () {
120
- it.each(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n cols | count | expected\n ", " | ", " | ", "\n ", " | ", " | ", "\n ", " | ", " | ", "\n ", " | ", " | ", "\n "])), [], 0, [], [1], 1, [1], [1], 2, ['__pad__', 1], [1], 3, ['__pad__', '__pad__', 1])('pads to the right', function (_ref2) {
121
- var cols = _ref2.cols,
122
- count = _ref2.count,
123
- expected = _ref2.expected;
124
- var r = new _chtml.Row(cols);
125
- var p = r.pad(count, 'right');
126
- expect(p).toEqual(expected);
127
- });
128
- });
129
- });
130
- describe.each(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n label | tree\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n"])), 'one row', [msrow(mn('1'))], 'implicit one row', [mn('1')], 'two rows', [msrow(mn('1')), msrow(mn('2'))], 'two rows with operator', [msrow(mn('1')), msrow(mco('+'), mn('2'))])('chtml', function (_ref3) {
131
- var label = _ref3.label,
132
- tree = _ref3.tree;
133
- var html;
134
- beforeEach(function () {
135
- var chtml = new _chtml.CHTMLmstack({}, {});
136
- var dom = new _jsdom.JSDOM("<!DOCTYPE html><body></body>");
137
-
138
- chtml.standardCHTMLnode = function (parent) {
139
- return parent;
140
- };
141
-
142
- chtml.ce = dom.window.document.createElement.bind(dom.window.document);
143
- chtml.childNodes = tree;
144
- chtml.toCHTML(dom.window.document.body);
145
- html = dom.window.document.body.innerHTML;
146
- });
147
- it(label, function () {
148
- expect(html).toMatchSnapshot();
149
- });
150
- });
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc3RhY2svX190ZXN0c19fL2NodG1sLnRlc3QuanMiXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJpbnN0YW5jZSIsImFkYXB0b3IiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJmbiIsInN0YW5kYXJkQ0hUTUxub2RlIiwiQ0hUTUxXcmFwcGVyIiwibm9kZSIsImtpbmQiLCJleHRyYXMiLCJjaGlsZE5vZGVzIiwidGV4dE5vZGUiLCJ0ZXh0IiwibW4iLCJtbyIsIm1jbyIsInRvQ0hUTUwiLCJuIiwidCIsInRleHRDb250ZW50IiwibXNyb3ciLCJtc3RhY2siLCJyb3dzIiwibXNsaW5lIiwiZGVzY3JpYmUiLCJpdCIsImVhY2giLCJSb3ciLCJMaW5lIiwiaW5wdXQiLCJleHBlY3RlZCIsImQiLCJleHBlY3QiLCJ0b0VxdWFsIiwiY29scyIsImNvdW50IiwiciIsInAiLCJwYWQiLCJsYWJlbCIsInRyZWUiLCJodG1sIiwiYmVmb3JlRWFjaCIsImNodG1sIiwiQ0hUTUxtc3RhY2siLCJkb20iLCJKU0RPTSIsInBhcmVudCIsImNlIiwid2luZG93IiwiYmluZCIsImJvZHkiLCJpbm5lckhUTUwiLCJ0b01hdGNoU25hcHNob3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOzs7Ozs7OztBQUVBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxzQ0FBVixFQUFrRCxZQUFNO0FBQ3RELE1BQU1DLFFBQVEsR0FBRztBQUNmQyxJQUFBQSxPQUFPLEVBQUU7QUFDUEMsTUFBQUEsUUFBUSxFQUFFO0FBQ1JDLFFBQUFBLGFBQWEsRUFBRUwsSUFBSSxDQUFDTSxFQUFMO0FBRFA7QUFESCxLQURNO0FBTWZDLElBQUFBLGlCQUFpQixFQUFFUCxJQUFJLENBQUNNLEVBQUw7QUFOSixHQUFqQjtBQVNBLFNBQU87QUFDTEosSUFBQUEsUUFBUSxFQUFSQSxRQURLO0FBRUxNLElBQUFBLFlBQVksNkNBQ1Ysd0JBQWM7QUFBQTtBQUNaLFdB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R0FSUyxDQUFWO0FBVUEzQixFQUFBQSxFQUFFLENBQUNjLEtBQUQsRUFBUSxZQUFNO0FBQ2RQLElBQUFBLE1BQU0sQ0FBQ1MsSUFBRCxDQUFOLENBQWFZLGVBQWI7QUFDRCxHQUZDLENBQUY7QUFHRCxDQXRCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFN0YWNrRGF0YSwgTGluZSwgUm93LCBDSFRNTG1zdGFjayB9IGZyb20gJy4uL2NodG1sJztcbi8vIGltcG9ydCB7IENIVE1MV3JhcHBlciwgaW5zdGFuY2UgfSBmcm9tICdtYXRoamF4LWZ1bGwvanMvb3V0cHV0L2NodG1sL1dyYXBwZXInO1xuaW1wb3J0IHsgSlNET00gfSBmcm9tICdqc2RvbSc7XG5cbmplc3QubW9jaygnbWF0aGpheC1mdWxsL2pzL291dHB1dC9jaHRtbC9XcmFwcGVyJywgKCkgPT4ge1xuICBjb25zdCBpbnN0YW5jZSA9IHtcbiAgICBhZGFwdG9yOiB7XG4gICAgICBkb2N1bWVudDoge1xuICAgICAgICBjcmVhdGVFbGVtZW50OiBqZXN0LmZuKCksXG4gICAgICB9LFxuICAgIH0sXG4gICAgc3RhbmRhcmRDSFRNTG5vZGU6IGplc3QuZm4oKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGluc3RhbmNlLFxuICAgIENIVE1MV3JhcHBlcjogY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWRhcHRvciA9IHsgZG9jdW1lbnQ6IHsgY3JlYXRlRWxlbWVudDogamVzdC5mbigpIH0gfTtcbiAgICAgICAgdGhpcy5kb2N1bWVudCA9IHt9O1xuICAgICAgICAvLyByZXR1cm4gaW5zdGFuY2U7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCBub2RlID0gKGtpbmQsIGV4dHJhcykgPT4gKHsga2luZCwgY2hpbGROb2RlczogW10sIC4uLmV4dHJhcyB9KTtcblxuY29uc3QgdGV4dE5vZGUgPSAodGV4dCkgPT4gbm9kZSgndGV4dCcsIHsgdGV4dCwgbm9kZTogeyBraW5kOiAndGV4dCcsIHRleHQgfSB9KTtcbmNvbnN0IG1uID0gKHRleHQpID0+IG5vZGUoJ21uJywgeyBjaGlsZE5vZGVzOiBbdGV4dE5vZGUodGV4dCldIH0pO1xuY29uc3QgbW8gPSAodGV4dCkgPT5cbiAgbm9kZSgnbW8nLCB7XG4gICAgY2hpbGROb2RlczogW3RleHROb2RlKHRleHQpXSxcbiAgfSk7XG5cbmNvbnN0IG1jbyA9ICh0ZXh0KSA9PiAoe1xuICAuLi5tbyh0ZXh0KSxcblxuICB0b0NIVE1MOiAobikgPT4ge1xuICAgIGNvbnN0IHQgPSBgbW86JHt0ZXh0fWA7XG4gICAgbi50ZXh0Q29udGVudCA9IHQ7XG4gIH0sXG59KTtcblxuY29uc3QgbXNyb3cgPSAoLi4uY2hpbGROb2RlcykgPT4gbm9kZSgnbXNyb3cnLCB7IGNoaWxkTm9kZXMgfSk7XG5jb25zdCBtc3RhY2sgPSAoLi4ucm93cykgPT4gbm9kZSgnbXN0YWNrJywgeyBjaGlsZE5vZGVzOiByb3dzIH0pO1xuY29uc3QgbXNsaW5lID0gKCkgPT4gbm9kZSgnbXNsaW5lJyk7XG5kZXNjcmliZSgnZ2V0U3RhY2tEYXRhJywgKCkgPT4ge1xuICBpdC5lYWNoYFxuICAgIGlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXhwZWN0ZWRcbiAgICAke21zdGFjayhtc3JvdyhtbygnKycpLCBtbignMTExJykpKX0gICAgICAgICAgICAgICAgICB8ICR7W25ldyBSb3coWycxJywgJzEnLCAnMSddLCBtbygnKycpKV19XG4gICAgJHttc3RhY2sobXNyb3cobW4oJzExMScpKSl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgUm93KFsnMScsICcxJywgJzEnXSldfVxuICAgICR7bXN0YWNrKG1zcm93KG1uKCcxJyksIG1uKCcxJykpKX0gICAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IFJvdyhbJzEnLCAnMSddKV19XG4gICAgJHttc3RhY2sobXNyb3cobW4oJzEnKSksIG1uKCcxJykpfSAgICAgICAgICAgICAgICAgICAgfCAke1tuZXcgUm93KFsnMSddKSwgbmV3IFJvdyhbJzEnXSldfVxuICAgICR7bXN0YWNrKG1zbGluZSgpKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IExpbmUoKV19XG4gICAgJHttc3RhY2sobW4oJzEnKSwgbXNsaW5lKCksIG1zcm93KG1vKCcrJyksIG1uKCcxJykpKX0gfCAke1tuZXcgUm93KFsnMSddKSwgbmV3IExpbmUoKSwgbmV3IFJvdyhbJzEnXSwgbW8oJysnKSldfVxuICAgICR7bXN0YWNrKG1uKCcxJyksIG1uKCcxJykpfSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJHtbbmV3IFJvdyhbJzEnXSksIG5ldyBSb3coWycxJ10pXX1cbiAgYCgnJGlucHV0ID0+ICRleHBlY3RlZCcsICh7IGlucHV0LCBleHBlY3RlZCB9KSA9PiB7XG4gICAgY29uc3QgZCA9IGdldFN0YWNrRGF0YShpbnB1dCk7XG4gICAgLy8gY29uc29sZS5sb2coJ2Q6JywgZCk7XG4gICAgLy8gY29uc29sZS5sb2coJ2U6JywgZXhwZWN0ZWQpO1xuICAgIGV4cGVjdCh7IC4uLmQgfSkudG9FcXVhbCh7IC4uLmV4cGVjdGVkIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnUm93JywgKCkgPT4ge1xuICBkZXNjcmliZSgncGFkJywgKCkgPT4ge1xuICAgIGl0LmVhY2hgXG4gICAgICBjb2xzICAgfCBjb3VudCB8IGV4cGVjdGVkXG4gICAgICAke1tdfSAgfCAkezB9ICB8ICR7W119XG4gICAgICAke1sxXX0gfCAkezF9ICB8ICR7WzFdfVxuICAgICAgJHtbMV19IHwgJHsyfSAgfCAke1snX19wYWRfXycsIDFdfVxuICAgICAgJHtbMV19IHwgJHszfSAgfCAke1snX19wYWRfXycsICdfX3BhZF9fJywgMV19XG4gICAgYCgncGFkcyB0byB0aGUgcmlnaHQnLCAoeyBjb2xzLCBjb3VudCwgZXhwZWN0ZWQgfSkgPT4ge1xuICAgICAgY29uc3QgciA9IG5ldyBSb3coY29scyk7XG4gICAgICBjb25zdCBwID0gci5wYWQoY291bnQsICdyaWdodCcpO1xuICAgICAgZXhwZWN0KHApLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZS5lYWNoYFxuICBsYWJlbCAgICAgICAgICAgICAgICAgICAgICAgfCB0cmVlXG4gICR7J29uZSByb3cnfSAgICAgICAgICAgICAgICB8ICR7W21zcm93KG1uKCcxJykpXX1cbiAgJHsnaW1wbGljaXQgb25lIHJvdyd9ICAgICAgIHwgJHtbbW4oJzEnKV19XG4gICR7J3R3byByb3dzJ30gICAgICAgICAgICAgICB8ICR7W21zcm93KG1uKCcxJykpLCBtc3JvdyhtbignMicpKV19XG4gICR7J3R3byByb3dzIHdpdGggb3BlcmF0b3InfSB8ICR7W21zcm93KG1uKCcxJykpLCBtc3JvdyhtY28oJysnKSwgbW4oJzInKSldfVxuYCgnY2h0bWwnLCAoeyBsYWJlbCwgdHJlZSB9KSA9PiB7XG4gIGxldCBodG1sO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnN0IGNodG1sID0gbmV3IENIVE1MbXN0YWNrKHt9LCB7fSk7XG4gICAgY29uc3QgZG9tID0gbmV3IEpTRE9NKGA8IURPQ1RZUEUgaHRtbD48Ym9keT48L2JvZHk+YCk7XG4gICAgY2h0bWwuc3RhbmRhcmRDSFRNTG5vZGUgPSAocGFyZW50KSA9PiBwYXJlbnQ7XG4gICAgY2h0bWwuY2UgPSBkb20ud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQuYmluZChkb20ud2luZG93LmRvY3VtZW50KTtcbiAgICBjaHRtbC5jaGlsZE5vZGVzID0gdHJlZTtcbiAgICBjaHRtbC50b0NIVE1MKGRvbS53aW5kb3cuZG9jdW1lbnQuYm9keSk7XG4gICAgaHRtbCA9IGRvbS53aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUw7XG4gIH0pO1xuXG4gIGl0KGxhYmVsLCAoKSA9PiB7XG4gICAgZXhwZWN0KGh0bWwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuIl19