@pie-lib/math-input-mathlive 1.1.5-beta.9 → 2.0.1-next.20261109072207

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.
Files changed (195) hide show
  1. package/README.md +84 -109
  2. package/dist/_virtual/_rolldown/runtime.js +11 -0
  3. package/dist/horizontal-keypad.d.ts +22 -0
  4. package/dist/horizontal-keypad.js +54 -0
  5. package/dist/index.d.ts +20 -0
  6. package/dist/index.js +12 -0
  7. package/dist/keypad/index.d.ts +40 -0
  8. package/dist/keypad/index.js +245 -0
  9. package/dist/keypad/keys-layout.d.ts +7 -0
  10. package/dist/keypad/keys-layout.js +5 -0
  11. package/dist/keys/basic-operators.d.ts +5 -0
  12. package/dist/keys/basic-operators.js +30 -0
  13. package/dist/keys/chars.d.ts +5 -0
  14. package/dist/keys/comparison.d.ts +4 -0
  15. package/dist/keys/comparison.js +32 -0
  16. package/dist/keys/constants.d.ts +4 -0
  17. package/dist/keys/constants.js +35 -0
  18. package/dist/keys/digits.d.ts +15 -0
  19. package/dist/keys/digits.js +34 -0
  20. package/dist/keys/edit.d.ts +6 -0
  21. package/dist/keys/edit.js +9 -0
  22. package/dist/keys/exponent.d.ts +4 -0
  23. package/dist/keys/exponent.js +28 -0
  24. package/dist/keys/fractions.d.ts +3 -0
  25. package/dist/keys/fractions.js +27 -0
  26. package/dist/keys/geometry.d.ts +23 -0
  27. package/dist/keys/geometry.js +127 -0
  28. package/dist/keys/grades.d.ts +9 -0
  29. package/dist/keys/grades.js +414 -0
  30. package/dist/keys/index.d.ts +6 -0
  31. package/dist/keys/index.js +50 -0
  32. package/dist/keys/log.d.ts +3 -0
  33. package/dist/keys/log.js +25 -0
  34. package/dist/keys/logic.d.ts +2 -0
  35. package/dist/keys/logic.js +13 -0
  36. package/dist/keys/matrices.d.ts +2 -0
  37. package/dist/keys/matrices.js +17 -0
  38. package/dist/keys/misc.d.ts +10 -0
  39. package/dist/keys/misc.js +60 -0
  40. package/dist/keys/navigation.d.ts +2 -0
  41. package/dist/keys/navigation.js +13 -0
  42. package/dist/keys/operators.d.ts +1 -0
  43. package/dist/keys/operators.js +11 -0
  44. package/dist/keys/statistics.d.ts +5 -0
  45. package/dist/keys/statistics.js +38 -0
  46. package/dist/keys/sub-sup.d.ts +2 -0
  47. package/dist/keys/sub-sup.js +17 -0
  48. package/dist/keys/trigonometry.d.ts +6 -0
  49. package/dist/keys/trigonometry.js +43 -0
  50. package/dist/keys/utils.d.ts +5 -0
  51. package/dist/keys/utils.js +24 -0
  52. package/dist/keys/vars.d.ts +3 -0
  53. package/dist/keys/vars.js +22 -0
  54. package/dist/latex-bridge.d.ts +197 -0
  55. package/dist/latex-bridge.js +210 -0
  56. package/dist/longdiv.d.ts +24 -0
  57. package/dist/longdiv.js +43 -0
  58. package/dist/math-input.d.ts +26 -0
  59. package/dist/math-input.js +74 -0
  60. package/dist/mathlive-instance.d.ts +221 -0
  61. package/dist/mathlive-instance.js +159 -0
  62. package/dist/mf/common-styles.d.ts +594 -0
  63. package/dist/mf/common-styles.js +80 -0
  64. package/dist/mf/field-label.d.ts +16 -0
  65. package/dist/mf/field-label.js +13 -0
  66. package/dist/mf/index.d.ts +4 -0
  67. package/dist/mf/index.js +21 -0
  68. package/dist/mf/input.d.ts +94 -0
  69. package/dist/mf/input.js +127 -0
  70. package/dist/mf/static.d.ts +143 -0
  71. package/dist/mf/static.js +230 -0
  72. package/dist/selection.d.ts +43 -0
  73. package/dist/selection.js +39 -0
  74. package/package.json +32 -18
  75. package/lib/__tests__/composites.test.js +0 -255
  76. package/lib/__tests__/drop-in-compat.test.js +0 -133
  77. package/lib/__tests__/embedded-fonts.test.js +0 -121
  78. package/lib/__tests__/index.test.js +0 -118
  79. package/lib/__tests__/input-imperative.test.js +0 -155
  80. package/lib/__tests__/keypad-label.test.js +0 -231
  81. package/lib/__tests__/keypad-render.test.js +0 -206
  82. package/lib/__tests__/latex-bridge.test.js +0 -386
  83. package/lib/__tests__/mathlive-instance.test.js +0 -419
  84. package/lib/__tests__/mount-race.test.js +0 -218
  85. package/lib/__tests__/static-prompts.test.js +0 -405
  86. package/lib/__tests__/tmp-markup.test.js +0 -26
  87. package/lib/horizontal-keypad.js +0 -101
  88. package/lib/horizontal-keypad.js.map +0 -1
  89. package/lib/index.js +0 -143
  90. package/lib/index.js.map +0 -1
  91. package/lib/keypad/index.js +0 -431
  92. package/lib/keypad/index.js.map +0 -1
  93. package/lib/keypad/keys-layout.js +0 -22
  94. package/lib/keypad/keys-layout.js.map +0 -1
  95. package/lib/keys/basic-operators.js +0 -33
  96. package/lib/keys/basic-operators.js.map +0 -1
  97. package/lib/keys/chars.js +0 -12
  98. package/lib/keys/chars.js.map +0 -1
  99. package/lib/keys/comparison.js +0 -39
  100. package/lib/keys/comparison.js.map +0 -1
  101. package/lib/keys/constants.js +0 -37
  102. package/lib/keys/constants.js.map +0 -1
  103. package/lib/keys/digits.js +0 -46
  104. package/lib/keys/digits.js.map +0 -1
  105. package/lib/keys/edit.js +0 -14
  106. package/lib/keys/edit.js.map +0 -1
  107. package/lib/keys/exponent.js +0 -30
  108. package/lib/keys/exponent.js.map +0 -1
  109. package/lib/keys/fractions.js +0 -29
  110. package/lib/keys/fractions.js.map +0 -1
  111. package/lib/keys/geometry.js +0 -143
  112. package/lib/keys/geometry.js.map +0 -1
  113. package/lib/keys/grades.js +0 -259
  114. package/lib/keys/grades.js.map +0 -1
  115. package/lib/keys/index.js +0 -35
  116. package/lib/keys/index.js.map +0 -1
  117. package/lib/keys/log.js +0 -27
  118. package/lib/keys/log.js.map +0 -1
  119. package/lib/keys/logic.js +0 -19
  120. package/lib/keys/logic.js.map +0 -1
  121. package/lib/keys/matrices.js +0 -19
  122. package/lib/keys/matrices.js.map +0 -1
  123. package/lib/keys/misc.js +0 -69
  124. package/lib/keys/misc.js.map +0 -1
  125. package/lib/keys/navigation.js +0 -20
  126. package/lib/keys/navigation.js.map +0 -1
  127. package/lib/keys/operators.js +0 -15
  128. package/lib/keys/operators.js.map +0 -1
  129. package/lib/keys/statistics.js +0 -40
  130. package/lib/keys/statistics.js.map +0 -1
  131. package/lib/keys/sub-sup.js +0 -19
  132. package/lib/keys/sub-sup.js.map +0 -1
  133. package/lib/keys/trigonometry.js +0 -45
  134. package/lib/keys/trigonometry.js.map +0 -1
  135. package/lib/keys/utils.js +0 -87
  136. package/lib/keys/utils.js.map +0 -1
  137. package/lib/keys/vars.js +0 -24
  138. package/lib/keys/vars.js.map +0 -1
  139. package/lib/latex-bridge.js +0 -508
  140. package/lib/latex-bridge.js.map +0 -1
  141. package/lib/math-input.js +0 -143
  142. package/lib/math-input.js.map +0 -1
  143. package/lib/mathlive-instance.js +0 -585
  144. package/lib/mathlive-instance.js.map +0 -1
  145. package/lib/mf/common-styles.js +0 -203
  146. package/lib/mf/common-styles.js.map +0 -1
  147. package/lib/mf/index.js +0 -84
  148. package/lib/mf/index.js.map +0 -1
  149. package/lib/mf/input.js +0 -364
  150. package/lib/mf/input.js.map +0 -1
  151. package/lib/mf/static.js +0 -500
  152. package/lib/mf/static.js.map +0 -1
  153. package/src/__tests__/composites.test.jsx +0 -220
  154. package/src/__tests__/drop-in-compat.test.jsx +0 -112
  155. package/src/__tests__/index.test.jsx +0 -109
  156. package/src/__tests__/input-imperative.test.jsx +0 -144
  157. package/src/__tests__/keypad-label.test.jsx +0 -283
  158. package/src/__tests__/keypad-render.test.jsx +0 -123
  159. package/src/__tests__/latex-bridge.test.js +0 -389
  160. package/src/__tests__/mathlive-instance.test.js +0 -418
  161. package/src/__tests__/mount-race.test.jsx +0 -142
  162. package/src/__tests__/static-prompts.test.jsx +0 -364
  163. package/src/horizontal-keypad.jsx +0 -73
  164. package/src/index.jsx +0 -63
  165. package/src/keypad/index.jsx +0 -386
  166. package/src/keypad/keys-layout.js +0 -16
  167. package/src/keys/basic-operators.js +0 -32
  168. package/src/keys/chars.js +0 -5
  169. package/src/keys/comparison.js +0 -28
  170. package/src/keys/constants.js +0 -35
  171. package/src/keys/digits.js +0 -40
  172. package/src/keys/edit.js +0 -3
  173. package/src/keys/exponent.js +0 -28
  174. package/src/keys/fractions.js +0 -26
  175. package/src/keys/geometry.js +0 -149
  176. package/src/keys/grades.js +0 -367
  177. package/src/keys/index.js +0 -20
  178. package/src/keys/log.js +0 -22
  179. package/src/keys/logic.js +0 -15
  180. package/src/keys/matrices.js +0 -15
  181. package/src/keys/misc.js +0 -71
  182. package/src/keys/navigation.js +0 -8
  183. package/src/keys/operators.js +0 -10
  184. package/src/keys/statistics.js +0 -38
  185. package/src/keys/sub-sup.js +0 -15
  186. package/src/keys/trigonometry.js +0 -15
  187. package/src/keys/utils.js +0 -66
  188. package/src/keys/vars.js +0 -19
  189. package/src/latex-bridge.js +0 -524
  190. package/src/math-input.jsx +0 -115
  191. package/src/mathlive-instance.js +0 -582
  192. package/src/mf/common-styles.js +0 -210
  193. package/src/mf/index.js +0 -30
  194. package/src/mf/input.jsx +0 -319
  195. package/src/mf/static.jsx +0 -479
@@ -1,121 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _embedded = require("../fonts/embedded");
6
- var _fonts = require("../fonts");
7
- /**
8
- * MathLive composes some glyphs from Private Use Area codepoints that only the
9
- * KaTeX fonts carry (`\ne` is U+E020 overlapped on `=`), so a missing font file
10
- * renders tofu rather than a plainer glyph. The faces therefore ship in the
11
- * bundle - pie-elements has no stylesheet to carry `@font-face` and no asset
12
- * path to serve woff2 files from.
13
- */
14
- describe('embedded fonts', function () {
15
- var originalFonts = document.fonts;
16
- var fakeFontSet = function fakeFontSet() {
17
- var existing = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
18
- var added = [];
19
- var set = (0, _defineProperty2["default"])({
20
- add: function add(f) {
21
- return added.push(f);
22
- }
23
- }, Symbol.iterator, function () {
24
- return existing[Symbol.iterator]();
25
- });
26
- Object.defineProperty(document, 'fonts', {
27
- value: set,
28
- configurable: true
29
- });
30
- return added;
31
- };
32
- beforeEach(function () {
33
- (0, _fonts.resetEmbeddedFontsForTests)();
34
- global.FontFace = jest.fn(function FontFace(family, src, descriptors) {
35
- Object.assign(this, {
36
- family: family,
37
- src: src,
38
- descriptors: descriptors
39
- });
40
- });
41
- });
42
- afterEach(function () {
43
- Object.defineProperty(document, 'fonts', {
44
- value: originalFonts,
45
- configurable: true
46
- });
47
- delete global.FontFace;
48
- });
49
-
50
- // The 12 families MathLive's own loadFonts() looks for; if every one is in
51
- // document.fonts it short-circuits to "ready" and issues no network request.
52
- it('covers every family MathLive requires', function () {
53
- expect(_fonts.EMBEDDED_FONT_FAMILIES.sort()).toEqual(['KaTeX_AMS', 'KaTeX_Caligraphic', 'KaTeX_Fraktur', 'KaTeX_Main', 'KaTeX_Math', 'KaTeX_SansSerif', 'KaTeX_Script', 'KaTeX_Size1', 'KaTeX_Size2', 'KaTeX_Size3', 'KaTeX_Size4', 'KaTeX_Typewriter'].sort());
54
- });
55
- it('carries all 20 faces as self-contained data URIs', function () {
56
- expect(_embedded.EMBEDDED_FONTS).toHaveLength(20);
57
- _embedded.EMBEDDED_FONTS.forEach(function (_ref) {
58
- var family = _ref.family,
59
- src = _ref.src;
60
- expect(family).toMatch(/^KaTeX_/);
61
- // No network: a data URI, not a path or a CDN URL.
62
- expect(src).toMatch(/^url\(data:font\/woff2;base64,[A-Za-z0-9+/=]+\) format\('woff2'\)$/);
63
- });
64
- });
65
- it('is generated from the installed mathlive, so glyph metrics match the engine', function () {
66
- /* eslint-disable global-require */
67
- var fs = require('fs');
68
- var path = require('path');
69
- /* eslint-enable global-require */
70
-
71
- // Read the file rather than require('mathlive/package.json'): MathLive's
72
- // exports map does not expose that subpath.
73
- var manifest = [path.resolve(__dirname, '../../../../node_modules/mathlive/package.json'), path.resolve(__dirname, '../../node_modules/mathlive/package.json')].find(function (p) {
74
- return fs.existsSync(p);
75
- });
76
- expect(manifest).toBeDefined();
77
- expect(_embedded.MATHLIVE_VERSION).toEqual(JSON.parse(fs.readFileSync(manifest, 'utf8')).version);
78
- });
79
- it('registers every face with the document', function () {
80
- var added = fakeFontSet();
81
- expect((0, _fonts.registerEmbeddedFonts)()).toBe(true);
82
- expect(added).toHaveLength(20);
83
- expect(added.map(function (f) {
84
- return f.family;
85
- })).toContain('KaTeX_Main');
86
- // Descriptors ride along, or bold/italic math would synthesise from regular.
87
- expect(added.find(function (f) {
88
- return f.src.startsWith('url(data:') && f.descriptors.weight === 'bold';
89
- })).toBeDefined();
90
- });
91
- it('does not register twice', function () {
92
- var added = fakeFontSet();
93
- (0, _fonts.registerEmbeddedFonts)();
94
- (0, _fonts.registerEmbeddedFonts)();
95
- expect(added).toHaveLength(20);
96
- });
97
- it('leaves the document alone when it already provides every family', function () {
98
- // A host that serves the fonts itself - configureFonts, or importing
99
- // mathlive/fonts.css - wins.
100
- var added = fakeFontSet(_fonts.EMBEDDED_FONT_FAMILIES.map(function (family) {
101
- return {
102
- family: family
103
- };
104
- }));
105
- expect((0, _fonts.registerEmbeddedFonts)()).toBe(true);
106
- expect(added).toHaveLength(0);
107
- });
108
- it('reports failure instead of throwing when the FontFace API is missing', function () {
109
- fakeFontSet();
110
- delete global.FontFace;
111
- expect((0, _fonts.registerEmbeddedFonts)()).toBe(false);
112
- });
113
- it('reports failure instead of throwing when a face cannot be constructed', function () {
114
- fakeFontSet();
115
- global.FontFace = jest.fn(function () {
116
- throw new Error('bad font');
117
- });
118
- expect((0, _fonts.registerEmbeddedFonts)()).toBe(false);
119
- });
120
- });
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZW1iZWRkZWQiLCJyZXF1aXJlIiwiX2ZvbnRzIiwiZGVzY3JpYmUiLCJvcmlnaW5hbEZvbnRzIiwiZG9jdW1lbnQiLCJmb250cyIsImZha2VGb250U2V0IiwiZXhpc3RpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJhZGRlZCIsInNldCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJhZGQiLCJmIiwicHVzaCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsImJlZm9yZUVhY2giLCJyZXNldEVtYmVkZGVkRm9udHNGb3JUZXN0cyIsImdsb2JhbCIsIkZvbnRGYWNlIiwiamVzdCIsImZuIiwiZmFtaWx5Iiwic3JjIiwiZGVzY3JpcHRvcnMiLCJhc3NpZ24iLCJhZnRlckVhY2giLCJpdCIsImV4cGVjdCIsIkVNQkVEREVEX0ZPTlRfRkFNSUxJRVMiLCJzb3J0IiwidG9FcXVhbCIsIkVNQkVEREVEX0ZPTlRTIiwidG9IYXZlTGVuZ3RoIiwiZm9yRWFjaCIsIl9yZWYiLCJ0b01hdGNoIiwiZnMiLCJwYXRoIiwibWFuaWZlc3QiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiZmluZCIsInAiLCJleGlzdHNTeW5jIiwidG9CZURlZmluZWQiLCJNQVRITElWRV9WRVJTSU9OIiwiSlNPTiIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwidmVyc2lvbiIsInJlZ2lzdGVyRW1iZWRkZWRGb250cyIsInRvQmUiLCJtYXAiLCJ0b0NvbnRhaW4iLCJzdGFydHNXaXRoIiwid2VpZ2h0IiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2VtYmVkZGVkLWZvbnRzLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU1CRURERURfRk9OVFMsIE1BVEhMSVZFX1ZFUlNJT04gfSBmcm9tICcuLi9mb250cy9lbWJlZGRlZCc7XG5pbXBvcnQgeyBFTUJFRERFRF9GT05UX0ZBTUlMSUVTLCByZWdpc3RlckVtYmVkZGVkRm9udHMsIHJlc2V0RW1iZWRkZWRGb250c0ZvclRlc3RzIH0gZnJvbSAnLi4vZm9udHMnO1xuXG4vKipcbiAqIE1hdGhMaXZlIGNvbXBvc2VzIHNvbWUgZ2x5cGhzIGZyb20gUHJpdmF0ZSBVc2UgQXJlYSBjb2RlcG9pbnRzIHRoYXQgb25seSB0aGVcbiAqIEthVGVYIGZvbnRzIGNhcnJ5IChgXFxuZWAgaXMgVStFMDIwIG92ZXJsYXBwZWQgb24gYD1gKSwgc28gYSBtaXNzaW5nIGZvbnQgZmlsZVxuICogcmVuZGVycyB0b2Z1IHJhdGhlciB0aGFuIGEgcGxhaW5lciBnbHlwaC4gVGhlIGZhY2VzIHRoZXJlZm9yZSBzaGlwIGluIHRoZVxuICogYnVuZGxlIC0gcGllLWVsZW1lbnRzIGhhcyBubyBzdHlsZXNoZWV0IHRvIGNhcnJ5IGBAZm9udC1mYWNlYCBhbmQgbm8gYXNzZXRcbiAqIHBhdGggdG8gc2VydmUgd29mZjIgZmlsZXMgZnJvbS5cbiAqL1xuZGVzY3JpYmUoJ2VtYmVkZGVkIGZvbnRzJywgKCkgPT4ge1xuICBjb25zdCBvcmlnaW5hbEZvbnRzID0gZG9jdW1lbnQuZm9udHM7XG5cbiAgY29uc3QgZmFrZUZvbnRTZXQgPSAoZXhpc3RpbmcgPSBbXSkgPT4ge1xuICAgIGNvbnN0IGFkZGVkID0gW107XG4gICAgY29uc3Qgc2V0ID0ge1xuICAgICAgYWRkOiAoZikgPT4gYWRkZWQucHVzaChmKSxcbiAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAoKSA9PiBleGlzdGluZ1tTeW1ib2wuaXRlcmF0b3JdKCksXG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkb2N1bWVudCwgJ2ZvbnRzJywgeyB2YWx1ZTogc2V0LCBjb25maWd1cmFibGU6IHRydWUgfSk7XG5cbiAgICByZXR1cm4gYWRkZWQ7XG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcmVzZXRFbWJlZGRlZEZvbnRzRm9yVGVzdHMoKTtcbiAgICBnbG9iYWwuRm9udEZhY2UgPSBqZXN0LmZuKGZ1bmN0aW9uIEZvbnRGYWNlKGZhbWlseSwgc3JjLCBkZXNjcmlwdG9ycykge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7IGZhbWlseSwgc3JjLCBkZXNjcmlwdG9ycyB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZG9jdW1lbnQsICdmb250cycsIHsgdmFsdWU6IG9yaWdpbmFsRm9udHMsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICBkZWxldGUgZ2xvYmFsLkZvbnRGYWNlO1xuICB9KTtcblxuICAvLyBUaGUgMTIgZmFtaWxpZXMgTWF0aExpdmUncyBvd24gbG9hZEZvbnRzKCkgbG9va3MgZm9yOyBpZiBldmVyeSBvbmUgaXMgaW5cbiAgLy8gZG9jdW1lbnQuZm9udHMgaXQgc2hvcnQtY2lyY3VpdHMgdG8gXCJyZWFkeVwiIGFuZCBpc3N1ZXMgbm8gbmV0d29yayByZXF1ZXN0LlxuICBpdCgnY292ZXJzIGV2ZXJ5IGZhbWlseSBNYXRoTGl2ZSByZXF1aXJlcycsICgpID0+IHtcbiAgICBleHBlY3QoRU1CRURERURfRk9OVF9GQU1JTElFUy5zb3J0KCkpLnRvRXF1YWwoXG4gICAgICBbXG4gICAgICAgICdLYVRlWF9BTVMnLFxuICAgICAgICAnS2FUZVhfQ2FsaWdyYXBoaWMnLFxuICAgICAgICAnS2FUZVhfRnJha3R1cicsXG4gICAgICAgICdLYVRlWF9NYWluJyxcbiAgICAgICAgJ0thVGVYX01hdGgnLFxuICAgICAgICAnS2FUZVhfU2Fuc1NlcmlmJyxcbiAgICAgICAgJ0thVGVYX1NjcmlwdCcsXG4gICAgICAgICdLYVRlWF9TaXplMScsXG4gICAgICAgICdLYVRlWF9TaXplMicsXG4gICAgICAgICdLYVRlWF9TaXplMycsXG4gICAgICAgICdLYVRlWF9TaXplNCcsXG4gICAgICAgICdLYVRlWF9UeXBld3JpdGVyJyxcbiAgICAgIF0uc29ydCgpLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdjYXJyaWVzIGFsbCAyMCBmYWNlcyBhcyBzZWxmLWNvbnRhaW5lZCBkYXRhIFVSSXMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KEVNQkVEREVEX0ZPTlRTKS50b0hhdmVMZW5ndGgoMjApO1xuXG4gICAgRU1CRURERURfRk9OVFMuZm9yRWFjaCgoeyBmYW1pbHksIHNyYyB9KSA9PiB7XG4gICAgICBleHBlY3QoZmFtaWx5KS50b01hdGNoKC9eS2FUZVhfLyk7XG4gICAgICAvLyBObyBuZXR3b3JrOiBhIGRhdGEgVVJJLCBub3QgYSBwYXRoIG9yIGEgQ0ROIFVSTC5cbiAgICAgIGV4cGVjdChzcmMpLnRvTWF0Y2goL151cmxcXChkYXRhOmZvbnRcXC93b2ZmMjtiYXNlNjQsW0EtWmEtejAtOSsvPV0rXFwpIGZvcm1hdFxcKCd3b2ZmMidcXCkkLyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgaW5zdGFsbGVkIG1hdGhsaXZlLCBzbyBnbHlwaCBtZXRyaWNzIG1hdGNoIHRoZSBlbmdpbmUnLCAoKSA9PiB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgZ2xvYmFsLXJlcXVpcmUgKi9cbiAgICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGdsb2JhbC1yZXF1aXJlICovXG5cbiAgICAvLyBSZWFkIHRoZSBmaWxlIHJhdGhlciB0aGFuIHJlcXVpcmUoJ21hdGhsaXZlL3BhY2thZ2UuanNvbicpOiBNYXRoTGl2ZSdzXG4gICAgLy8gZXhwb3J0cyBtYXAgZG9lcyBub3QgZXhwb3NlIHRoYXQgc3VicGF0aC5cbiAgICBjb25zdCBtYW5pZmVzdCA9IFtcbiAgICAgIHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvbWF0aGxpdmUvcGFja2FnZS5qc29uJyksXG4gICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vbm9kZV9tb2R1bGVzL21hdGhsaXZlL3BhY2thZ2UuanNvbicpLFxuICAgIF0uZmluZCgocCkgPT4gZnMuZXhpc3RzU3luYyhwKSk7XG5cbiAgICBleHBlY3QobWFuaWZlc3QpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KE1BVEhMSVZFX1ZFUlNJT04pLnRvRXF1YWwoSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMobWFuaWZlc3QsICd1dGY4JykpLnZlcnNpb24pO1xuICB9KTtcblxuICBpdCgncmVnaXN0ZXJzIGV2ZXJ5IGZhY2Ugd2l0aCB0aGUgZG9jdW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgYWRkZWQgPSBmYWtlRm9udFNldCgpO1xuXG4gICAgZXhwZWN0KHJlZ2lzdGVyRW1iZWRkZWRGb250cygpKS50b0JlKHRydWUpO1xuICAgIGV4cGVjdChhZGRlZCkudG9IYXZlTGVuZ3RoKDIwKTtcbiAgICBleHBlY3QoYWRkZWQubWFwKChmKSA9PiBmLmZhbWlseSkpLnRvQ29udGFpbignS2FUZVhfTWFpbicpO1xuICAgIC8vIERlc2NyaXB0b3JzIHJpZGUgYWxvbmcsIG9yIGJvbGQvaXRhbGljIG1hdGggd291bGQgc3ludGhlc2lzZSBmcm9tIHJlZ3VsYXIuXG4gICAgZXhwZWN0KGFkZGVkLmZpbmQoKGYpID0+IGYuc3JjLnN0YXJ0c1dpdGgoJ3VybChkYXRhOicpICYmIGYuZGVzY3JpcHRvcnMud2VpZ2h0ID09PSAnYm9sZCcpKS50b0JlRGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgcmVnaXN0ZXIgdHdpY2UnLCAoKSA9PiB7XG4gICAgY29uc3QgYWRkZWQgPSBmYWtlRm9udFNldCgpO1xuXG4gICAgcmVnaXN0ZXJFbWJlZGRlZEZvbnRzKCk7XG4gICAgcmVnaXN0ZXJFbWJlZGRlZEZvbnRzKCk7XG5cbiAgICBleHBlY3QoYWRkZWQpLnRvSGF2ZUxlbmd0aCgyMCk7XG4gIH0pO1xuXG4gIGl0KCdsZWF2ZXMgdGhlIGRvY3VtZW50IGFsb25lIHdoZW4gaXQgYWxyZWFkeSBwcm92aWRlcyBldmVyeSBmYW1pbHknLCAoKSA9PiB7XG4gICAgLy8gQSBob3N0IHRoYXQgc2VydmVzIHRoZSBmb250cyBpdHNlbGYgLSBjb25maWd1cmVGb250cywgb3IgaW1wb3J0aW5nXG4gICAgLy8gbWF0aGxpdmUvZm9udHMuY3NzIC0gd2lucy5cbiAgICBjb25zdCBhZGRlZCA9IGZha2VGb250U2V0KEVNQkVEREVEX0ZPTlRfRkFNSUxJRVMubWFwKChmYW1pbHkpID0+ICh7IGZhbWlseSB9KSkpO1xuXG4gICAgZXhwZWN0KHJlZ2lzdGVyRW1iZWRkZWRGb250cygpKS50b0JlKHRydWUpO1xuICAgIGV4cGVjdChhZGRlZCkudG9IYXZlTGVuZ3RoKDApO1xuICB9KTtcblxuICBpdCgncmVwb3J0cyBmYWlsdXJlIGluc3RlYWQgb2YgdGhyb3dpbmcgd2hlbiB0aGUgRm9udEZhY2UgQVBJIGlzIG1pc3NpbmcnLCAoKSA9PiB7XG4gICAgZmFrZUZvbnRTZXQoKTtcbiAgICBkZWxldGUgZ2xvYmFsLkZvbnRGYWNlO1xuXG4gICAgZXhwZWN0KHJlZ2lzdGVyRW1iZWRkZWRGb250cygpKS50b0JlKGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3JlcG9ydHMgZmFpbHVyZSBpbnN0ZWFkIG9mIHRocm93aW5nIHdoZW4gYSBmYWNlIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCcsICgpID0+IHtcbiAgICBmYWtlRm9udFNldCgpO1xuICAgIGdsb2JhbC5Gb250RmFjZSA9IGplc3QuZm4oKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgZm9udCcpO1xuICAgIH0pO1xuXG4gICAgZXhwZWN0KHJlZ2lzdGVyRW1iZWRkZWRGb250cygpKS50b0JlKGZhbHNlKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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
@@ -1,118 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
- var _react = _interopRequireDefault(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _index = require("../index");
8
- describe('math-input-mathlive public API', function () {
9
- it('mirrors the @pie-lib/math-input export surface', function () {
10
- expect((0, _typeof2["default"])(_index.keysForGrade)).toBe('function');
11
- expect((0, _typeof2["default"])(_index.addBrackets)).toBe('function');
12
- expect((0, _typeof2["default"])(_index.removeBrackets)).toBe('function');
13
- expect((0, _typeof2["default"])(_index.registerEmbed)).toBe('function');
14
- expect((0, _typeof2["default"])(_index.applyStaticMath)).toBe('function');
15
- expect((0, _typeof2["default"])(_index.updateSpans)).toBe('function');
16
- expect(_index.keys).toBeDefined();
17
- expect(_index.keys.baseSet).toBeDefined();
18
- });
19
- it('exports the field wrappers under both mf and mq', function () {
20
- expect(_index.mf.Input).toBeDefined();
21
- expect(_index.mf.Static).toBeDefined();
22
- // `mq` alias lets a consumer swap packages by changing only the import.
23
- expect(_index.mq).toBe(_index.mf);
24
- });
25
- it('updateSpans is a safe no-op', function () {
26
- expect(function () {
27
- return (0, _index.updateSpans)();
28
- }).not.toThrow();
29
- });
30
- it('CommonMqStyles keeps the shape consumers destructure', function () {
31
- // math-toolbar does:
32
- // const { commonMqFontStyles, commonMqKeyboardStyles, longdivStyles, supsubStyles }
33
- // = mq.CommonMqStyles;
34
- var _mf$CommonMqStyles = _index.mf.CommonMqStyles,
35
- commonMqFontStyles = _mf$CommonMqStyles.commonMqFontStyles,
36
- commonMqKeyboardStyles = _mf$CommonMqStyles.commonMqKeyboardStyles,
37
- longdivStyles = _mf$CommonMqStyles.longdivStyles,
38
- supsubStyles = _mf$CommonMqStyles.supsubStyles;
39
- [commonMqFontStyles, commonMqKeyboardStyles, longdivStyles, supsubStyles].forEach(function (s) {
40
- expect(s).toBeDefined();
41
- expect((0, _typeof2["default"])(s)).toBe('object');
42
- });
43
- });
44
- it('bracket helpers round-trip', function () {
45
- expect((0, _index.addBrackets)('x')).toEqual('\\(x\\)');
46
- expect((0, _index.removeBrackets)('\\(x\\)')).toEqual('x');
47
- expect((0, _index.removeBrackets)((0, _index.addBrackets)('\\frac{1}{2}'))).toEqual('\\frac{1}{2}');
48
- });
49
- it('keysForGrade returns a 5-row keyset', function () {
50
- var set = (0, _index.keysForGrade)('geometry');
51
- expect(Array.isArray(set)).toBe(true);
52
- expect(set.length).toBe(5);
53
- });
54
- });
55
- describe('rendering', function () {
56
- // MathLive is a browser-only custom element; loadMathLive() resolves async and
57
- // is a no-op-ish under jsdom. These assert the components mount without
58
- // throwing, which is what regressed most often in the MathQuill version.
59
- it('KeyPad renders without a live MathLive instance', function () {
60
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.KeyPad, {
61
- onPress: function onPress() {}
62
- })),
63
- container = _render.container;
64
- expect(container.querySelectorAll('button').length).toBeGreaterThan(0);
65
- });
66
- it('KeyPad falls back to raw latex for labels before MathLive loads', function () {
67
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.KeyPad, {
68
- onPress: function onPress() {},
69
- baseSet: [[{
70
- name: 'pi',
71
- latex: '\\pi',
72
- category: 'constants'
73
- }]]
74
- })),
75
- container = _render2.container;
76
- expect(container.textContent).toContain('\\pi');
77
- });
78
- it('KeyPad fires onPress with the key definition', function () {
79
- var onPress = jest.fn();
80
- var key = {
81
- name: 'x',
82
- label: 'x',
83
- write: 'x',
84
- category: 'vars'
85
- };
86
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.KeyPad, {
87
- onPress: onPress,
88
- baseSet: [[key]]
89
- })),
90
- container = _render3.container;
91
- container.querySelector('button').click();
92
- expect(onPress).toHaveBeenCalledWith(key);
93
- });
94
- it('MathInput mounts', function () {
95
- expect(function () {
96
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.MathInput, {
97
- latex: "\\\\frac{1}{2}",
98
- onChange: function onChange() {}
99
- }));
100
- }).not.toThrow();
101
- });
102
- it('HorizontalKeypad mounts and reports the legacy {value,type} model', function () {
103
- var onClick = jest.fn();
104
- expect(function () {
105
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.HorizontalKeypad, {
106
- onClick: onClick
107
- }));
108
- }).not.toThrow();
109
- });
110
- it('Static renders display-mode latex without a mathfield', function () {
111
- expect(function () {
112
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.mf.Static, {
113
- latex: "\\\\frac{1}{2}"
114
- }));
115
- }).not.toThrow();
116
- });
117
- });
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfaW5kZXgiLCJkZXNjcmliZSIsIml0IiwiZXhwZWN0IiwiX3R5cGVvZjIiLCJrZXlzRm9yR3JhZGUiLCJ0b0JlIiwiYWRkQnJhY2tldHMiLCJyZW1vdmVCcmFja2V0cyIsInJlZ2lzdGVyRW1iZWQiLCJhcHBseVN0YXRpY01hdGgiLCJ1cGRhdGVTcGFucyIsImtleXMiLCJ0b0JlRGVmaW5lZCIsImJhc2VTZXQiLCJtZiIsIklucHV0IiwiU3RhdGljIiwibXEiLCJub3QiLCJ0b1Rocm93IiwiX21mJENvbW1vbk1xU3R5bGVzIiwiQ29tbW9uTXFTdHlsZXMiLCJjb21tb25NcUZvbnRTdHlsZXMiLCJjb21tb25NcUtleWJvYXJkU3R5bGVzIiwibG9uZ2RpdlN0eWxlcyIsInN1cHN1YlN0eWxlcyIsImZvckVhY2giLCJzIiwidG9FcXVhbCIsInNldCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiS2V5UGFkIiwib25QcmVzcyIsImNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0b0JlR3JlYXRlclRoYW4iLCJfcmVuZGVyMiIsIm5hbWUiLCJsYXRleCIsImNhdGVnb3J5IiwidGV4dENvbnRlbnQiLCJ0b0NvbnRhaW4iLCJqZXN0IiwiZm4iLCJrZXkiLCJsYWJlbCIsIndyaXRlIiwiX3JlbmRlcjMiLCJxdWVyeVNlbGVjdG9yIiwiY2xpY2siLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIk1hdGhJbnB1dCIsIm9uQ2hhbmdlIiwib25DbGljayIsIkhvcml6b250YWxLZXlwYWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuaW1wb3J0IHtcbiAga2V5cyxcbiAga2V5c0ZvckdyYWRlLFxuICBhZGRCcmFja2V0cyxcbiAgcmVtb3ZlQnJhY2tldHMsXG4gIHJlZ2lzdGVyRW1iZWQsXG4gIGFwcGx5U3RhdGljTWF0aCxcbiAgdXBkYXRlU3BhbnMsXG4gIG1mLFxuICBtcSxcbiAgTWF0aElucHV0LFxuICBIb3Jpem9udGFsS2V5cGFkLFxuICBLZXlQYWQsXG59IGZyb20gJy4uL2luZGV4JztcblxuZGVzY3JpYmUoJ21hdGgtaW5wdXQtbWF0aGxpdmUgcHVibGljIEFQSScsICgpID0+IHtcbiAgaXQoJ21pcnJvcnMgdGhlIEBwaWUtbGliL21hdGgtaW5wdXQgZXhwb3J0IHN1cmZhY2UnLCAoKSA9PiB7XG4gICAgZXhwZWN0KHR5cGVvZiBrZXlzRm9yR3JhZGUpLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgZXhwZWN0KHR5cGVvZiBhZGRCcmFja2V0cykudG9CZSgnZnVuY3Rpb24nKTtcbiAgICBleHBlY3QodHlwZW9mIHJlbW92ZUJyYWNrZXRzKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIGV4cGVjdCh0eXBlb2YgcmVnaXN0ZXJFbWJlZCkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICBleHBlY3QodHlwZW9mIGFwcGx5U3RhdGljTWF0aCkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICBleHBlY3QodHlwZW9mIHVwZGF0ZVNwYW5zKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIGV4cGVjdChrZXlzKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChrZXlzLmJhc2VTZXQpLnRvQmVEZWZpbmVkKCk7XG4gIH0pO1xuXG4gIGl0KCdleHBvcnRzIHRoZSBmaWVsZCB3cmFwcGVycyB1bmRlciBib3RoIG1mIGFuZCBtcScsICgpID0+IHtcbiAgICBleHBlY3QobWYuSW5wdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KG1mLlN0YXRpYykudG9CZURlZmluZWQoKTtcbiAgICAvLyBgbXFgIGFsaWFzIGxldHMgYSBjb25zdW1lciBzd2FwIHBhY2thZ2VzIGJ5IGNoYW5naW5nIG9ubHkgdGhlIGltcG9ydC5cbiAgICBleHBlY3QobXEpLnRvQmUobWYpO1xuICB9KTtcblxuICBpdCgndXBkYXRlU3BhbnMgaXMgYSBzYWZlIG5vLW9wJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB1cGRhdGVTcGFucygpKS5ub3QudG9UaHJvdygpO1xuICB9KTtcblxuICBpdCgnQ29tbW9uTXFTdHlsZXMga2VlcHMgdGhlIHNoYXBlIGNvbnN1bWVycyBkZXN0cnVjdHVyZScsICgpID0+IHtcbiAgICAvLyBtYXRoLXRvb2xiYXIgZG9lczpcbiAgICAvLyAgIGNvbnN0IHsgY29tbW9uTXFGb250U3R5bGVzLCBjb21tb25NcUtleWJvYXJkU3R5bGVzLCBsb25nZGl2U3R5bGVzLCBzdXBzdWJTdHlsZXMgfVxuICAgIC8vICAgICA9IG1xLkNvbW1vbk1xU3R5bGVzO1xuICAgIGNvbnN0IHsgY29tbW9uTXFGb250U3R5bGVzLCBjb21tb25NcUtleWJvYXJkU3R5bGVzLCBsb25nZGl2U3R5bGVzLCBzdXBzdWJTdHlsZXMgfSA9IG1mLkNvbW1vbk1xU3R5bGVzO1xuXG4gICAgW2NvbW1vbk1xRm9udFN0eWxlcywgY29tbW9uTXFLZXlib2FyZFN0eWxlcywgbG9uZ2RpdlN0eWxlcywgc3Vwc3ViU3R5bGVzXS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBleHBlY3QocykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcykudG9CZSgnb2JqZWN0Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdicmFja2V0IGhlbHBlcnMgcm91bmQtdHJpcCcsICgpID0+IHtcbiAgICBleHBlY3QoYWRkQnJhY2tldHMoJ3gnKSkudG9FcXVhbCgnXFxcXCh4XFxcXCknKTtcbiAgICBleHBlY3QocmVtb3ZlQnJhY2tldHMoJ1xcXFwoeFxcXFwpJykpLnRvRXF1YWwoJ3gnKTtcbiAgICBleHBlY3QocmVtb3ZlQnJhY2tldHMoYWRkQnJhY2tldHMoJ1xcXFxmcmFjezF9ezJ9JykpKS50b0VxdWFsKCdcXFxcZnJhY3sxfXsyfScpO1xuICB9KTtcblxuICBpdCgna2V5c0ZvckdyYWRlIHJldHVybnMgYSA1LXJvdyBrZXlzZXQnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2V0ID0ga2V5c0ZvckdyYWRlKCdnZW9tZXRyeScpO1xuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkoc2V0KSkudG9CZSh0cnVlKTtcbiAgICBleHBlY3Qoc2V0Lmxlbmd0aCkudG9CZSg1KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgLy8gTWF0aExpdmUgaXMgYSBicm93c2VyLW9ubHkgY3VzdG9tIGVsZW1lbnQ7IGxvYWRNYXRoTGl2ZSgpIHJlc29sdmVzIGFzeW5jIGFuZFxuICAvLyBpcyBhIG5vLW9wLWlzaCB1bmRlciBqc2RvbS4gVGhlc2UgYXNzZXJ0IHRoZSBjb21wb25lbnRzIG1vdW50IHdpdGhvdXRcbiAgLy8gdGhyb3dpbmcsIHdoaWNoIGlzIHdoYXQgcmVncmVzc2VkIG1vc3Qgb2Z0ZW4gaW4gdGhlIE1hdGhRdWlsbCB2ZXJzaW9uLlxuICBpdCgnS2V5UGFkIHJlbmRlcnMgd2l0aG91dCBhIGxpdmUgTWF0aExpdmUgaW5zdGFuY2UnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSAvPik7XG5cbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICB9KTtcblxuICBpdCgnS2V5UGFkIGZhbGxzIGJhY2sgdG8gcmF3IGxhdGV4IGZvciBsYWJlbHMgYmVmb3JlIE1hdGhMaXZlIGxvYWRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICA8S2V5UGFkIG9uUHJlc3M9eygpID0+IHt9fSBiYXNlU2V0PXtbW3sgbmFtZTogJ3BpJywgbGF0ZXg6ICdcXFxccGknLCBjYXRlZ29yeTogJ2NvbnN0YW50cycgfV1dfSAvPixcbiAgICApO1xuXG4gICAgZXhwZWN0KGNvbnRhaW5lci50ZXh0Q29udGVudCkudG9Db250YWluKCdcXFxccGknKTtcbiAgfSk7XG5cbiAgaXQoJ0tleVBhZCBmaXJlcyBvblByZXNzIHdpdGggdGhlIGtleSBkZWZpbml0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uUHJlc3MgPSBqZXN0LmZuKCk7XG4gICAgY29uc3Qga2V5ID0geyBuYW1lOiAneCcsIGxhYmVsOiAneCcsIHdyaXRlOiAneCcsIGNhdGVnb3J5OiAndmFycycgfTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxLZXlQYWQgb25QcmVzcz17b25QcmVzc30gYmFzZVNldD17W1trZXldXX0gLz4pO1xuXG4gICAgY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLmNsaWNrKCk7XG5cbiAgICBleHBlY3Qob25QcmVzcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoa2V5KTtcbiAgfSk7XG5cbiAgaXQoJ01hdGhJbnB1dCBtb3VudHMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHJlbmRlcig8TWF0aElucHV0IGxhdGV4PVwiXFxcXGZyYWN7MX17Mn1cIiBvbkNoYW5nZT17KCkgPT4ge319IC8+KSkubm90LnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgaXQoJ0hvcml6b250YWxLZXlwYWQgbW91bnRzIGFuZCByZXBvcnRzIHRoZSBsZWdhY3kge3ZhbHVlLHR5cGV9IG1vZGVsJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG5cbiAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxIb3Jpem9udGFsS2V5cGFkIG9uQ2xpY2s9e29uQ2xpY2t9IC8+KSkubm90LnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgaXQoJ1N0YXRpYyByZW5kZXJzIGRpc3BsYXktbW9kZSBsYXRleCB3aXRob3V0IGEgbWF0aGZpZWxkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiByZW5kZXIoPG1mLlN0YXRpYyBsYXRleD1cIlxcXFxmcmFjezF9ezJ9XCIgLz4pKS5ub3QudG9UaHJvdygpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBZUFHLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxZQUFNO0VBQy9DQyxFQUFFLENBQUMsZ0RBQWdELEVBQUUsWUFBTTtJQUN6REMsTUFBTSxLQUFBQyxRQUFBLGFBQVFDLG1CQUFZLEVBQUMsQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM1Q0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFHLGtCQUFXLEVBQUMsQ0FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQ0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFJLHFCQUFjLEVBQUMsQ0FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5Q0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFLLG9CQUFhLEVBQUMsQ0FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM3Q0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFNLHNCQUFlLEVBQUMsQ0FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMvQ0gsTUFBTSxLQUFBQyxRQUFBLGFBQVFPLGtCQUFXLEVBQUMsQ0FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQ0gsTUFBTSxDQUFDUyxXQUFJLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7SUFDMUJWLE1BQU0sQ0FBQ1MsV0FBSSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0QsV0FBVyxDQUFDLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0VBRUZYLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxZQUFNO0lBQzFEQyxNQUFNLENBQUNZLFNBQUUsQ0FBQ0MsS0FBSyxDQUFDLENBQUNILFdBQVcsQ0FBQyxDQUFDO0lBQzlCVixNQUFNLENBQUNZLFNBQUUsQ0FBQ0UsTUFBTSxDQUFDLENBQUNKLFdBQVcsQ0FBQyxDQUFDO0lBQy9CO0lBQ0FWLE1BQU0sQ0FBQ2UsU0FBRSxDQUFDLENBQUNaLElBQUksQ0FBQ1MsU0FBRSxDQUFDO0VBQ3JCLENBQUMsQ0FBQztFQUVGYixFQUFFLENBQUMsNkJBQTZCLEVBQUUsWUFBTTtJQUN0Q0MsTUFBTSxDQUFDO01BQUEsT0FBTSxJQUFBUSxrQkFBVyxFQUFDLENBQUM7SUFBQSxFQUFDLENBQUNRLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDM0MsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsc0RBQXNELEVBQUUsWUFBTTtJQUMvRDtJQUNBO0lBQ0E7SUFDQSxJQUFBbUIsa0JBQUEsR0FBb0ZOLFNBQUUsQ0FBQ08sY0FBYztNQUE3RkMsa0JBQWtCLEdBQUFGLGtCQUFBLENBQWxCRSxrQkFBa0I7TUFBRUMsc0JBQXNCLEdBQUFILGtCQUFBLENBQXRCRyxzQkFBc0I7TUFBRUMsYUFBYSxHQUFBSixrQkFBQSxDQUFiSSxhQUFhO01BQUVDLFlBQVksR0FBQUwsa0JBQUEsQ0FBWkssWUFBWTtJQUUvRSxDQUFDSCxrQkFBa0IsRUFBRUMsc0JBQXNCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxVQUFDQyxDQUFDLEVBQUs7TUFDdkZ6QixNQUFNLENBQUN5QixDQUFDLENBQUMsQ0FBQ2YsV0FBVyxDQUFDLENBQUM7TUFDdkJWLE1BQU0sS0FBQUMsUUFBQSxhQUFRd0IsQ0FBQyxFQUFDLENBQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGSixFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUNyQ0MsTUFBTSxDQUFDLElBQUFJLGtCQUFXLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQ3NCLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDM0MxQixNQUFNLENBQUMsSUFBQUsscUJBQWMsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDcUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUM5QzFCLE1BQU0sQ0FBQyxJQUFBSyxxQkFBYyxFQUFDLElBQUFELGtCQUFXLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDc0IsT0FBTyxDQUFDLGNBQWMsQ0FBQztFQUM3RSxDQUFDLENBQUM7RUFFRjNCLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxZQUFNO0lBQzlDLElBQU00QixHQUFHLEdBQUcsSUFBQXpCLG1CQUFZLEVBQUMsVUFBVSxDQUFDO0lBRXBDRixNQUFNLENBQUM0QixLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckNILE1BQU0sQ0FBQzJCLEdBQUcsQ0FBQ0csTUFBTSxDQUFDLENBQUMzQixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGTCxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07RUFDMUI7RUFDQTtFQUNBO0VBQ0FDLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxZQUFNO0lBQzFELElBQUFnQyxPQUFBLEdBQXNCLElBQUFDLGNBQU0sZUFBQ3ZDLE1BQUEsWUFBQXdDLGFBQUEsQ0FBQ3BDLE1BQUEsQ0FBQXFDLE1BQU07UUFBQ0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUSxDQUFDO01BQUUsQ0FBRSxDQUFDLENBQUM7TUFBbkRDLFNBQVMsR0FBQUwsT0FBQSxDQUFUSyxTQUFTO0lBRWpCcEMsTUFBTSxDQUFDb0MsU0FBUyxDQUFDQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQ1AsTUFBTSxDQUFDLENBQUNRLGVBQWUsQ0FBQyxDQUFDLENBQUM7RUFDeEUsQ0FBQyxDQUFDO0VBRUZ2QyxFQUFFLENBQUMsaUVBQWlFLEVBQUUsWUFBTTtJQUMxRSxJQUFBd0MsUUFBQSxHQUFzQixJQUFBUCxjQUFNLGVBQzFCdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBcUMsTUFBTTtRQUFDQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRLENBQUMsQ0FBRTtRQUFDeEIsT0FBTyxFQUFFLENBQUMsQ0FBQztVQUFFNkIsSUFBSSxFQUFFLElBQUk7VUFBRUMsS0FBSyxFQUFFLE1BQU07VUFBRUMsUUFBUSxFQUFFO1FBQVksQ0FBQyxDQUFDO01BQUUsQ0FBRSxDQUNqRyxDQUFDO01BRk9OLFNBQVMsR0FBQUcsUUFBQSxDQUFUSCxTQUFTO0lBSWpCcEMsTUFBTSxDQUFDb0MsU0FBUyxDQUFDTyxXQUFXLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLE1BQU0sQ0FBQztFQUNqRCxDQUFDLENBQUM7RUFFRjdDLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxZQUFNO0lBQ3ZELElBQU1vQyxPQUFPLEdBQUdVLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekIsSUFBTUMsR0FBRyxHQUFHO01BQUVQLElBQUksRUFBRSxHQUFHO01BQUVRLEtBQUssRUFBRSxHQUFHO01BQUVDLEtBQUssRUFBRSxHQUFHO01BQUVQLFFBQVEsRUFBRTtJQUFPLENBQUM7SUFDbkUsSUFBQVEsUUFBQSxHQUFzQixJQUFBbEIsY0FBTSxlQUFDdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBcUMsTUFBTTtRQUFDQyxPQUFPLEVBQUVBLE9BQVE7UUFBQ3hCLE9BQU8sRUFBRSxDQUFDLENBQUNvQyxHQUFHLENBQUM7TUFBRSxDQUFFLENBQUMsQ0FBQztNQUFwRVgsU0FBUyxHQUFBYyxRQUFBLENBQVRkLFNBQVM7SUFFakJBLFNBQVMsQ0FBQ2UsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztJQUV6Q3BELE1BQU0sQ0FBQ21DLE9BQU8sQ0FBQyxDQUFDa0Isb0JBQW9CLENBQUNOLEdBQUcsQ0FBQztFQUMzQyxDQUFDLENBQUM7RUFFRmhELEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQzNCQyxNQUFNLENBQUM7TUFBQSxPQUFNLElBQUFnQyxjQUFNLGVBQUN2QyxNQUFBLFlBQUF3QyxhQUFBLENBQUNwQyxNQUFBLENBQUF5RCxTQUFTO1FBQUNiLEtBQUssRUFBQyxnQkFBYztRQUFDYyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQSxFQUFRLENBQUM7TUFBRSxDQUFFLENBQUMsQ0FBQztJQUFBLEVBQUMsQ0FBQ3ZDLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDNUYsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsbUVBQW1FLEVBQUUsWUFBTTtJQUM1RSxJQUFNeUQsT0FBTyxHQUFHWCxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBRXpCOUMsTUFBTSxDQUFDO01BQUEsT0FBTSxJQUFBZ0MsY0FBTSxlQUFDdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBNEQsZ0JBQWdCO1FBQUNELE9BQU8sRUFBRUE7TUFBUSxDQUFFLENBQUMsQ0FBQztJQUFBLEVBQUMsQ0FBQ3hDLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDNUUsQ0FBQyxDQUFDO0VBRUZsQixFQUFFLENBQUMsdURBQXVELEVBQUUsWUFBTTtJQUNoRUMsTUFBTSxDQUFDO01BQUEsT0FBTSxJQUFBZ0MsY0FBTSxlQUFDdkMsTUFBQSxZQUFBd0MsYUFBQSxDQUFDcEMsTUFBQSxDQUFBZSxFQUFFLENBQUNFLE1BQU07UUFBQzJCLEtBQUssRUFBQztNQUFjLENBQUUsQ0FBQyxDQUFDO0lBQUEsRUFBQyxDQUFDekIsR0FBRyxDQUFDQyxPQUFPLENBQUMsQ0FBQztFQUN4RSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,155 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _latexBridge = require("../latex-bridge");
5
- var _input = _interopRequireDefault(require("../mf/input"));
6
- /**
7
- * The imperative surface that @pie-lib/math-toolbar drives
8
- * (editor-and-pad.jsx: clear/command/keystroke/write/latex).
9
- *
10
- * These call the methods against a stub mathfield, because a real
11
- * <math-field> needs a browser. What matters here is the *translation*:
12
- * MathQuill-era arguments must become valid MathLive operations.
13
- */
14
- var stubField = function stubField() {
15
- var calls = {
16
- insert: [],
17
- executeCommand: [],
18
- focus: 0
19
- };
20
- return {
21
- calls: calls,
22
- value: '',
23
- getValue: function getValue() {
24
- return '';
25
- },
26
- insert: function insert(v) {
27
- calls.insert.push(v);
28
- },
29
- executeCommand: function executeCommand(v) {
30
- calls.executeCommand.push(v);
31
- },
32
- focus: function focus() {
33
- calls.focus++;
34
- },
35
- blur: function blur() {}
36
- };
37
- };
38
- var withField = function withField() {
39
- var input = new _input["default"]({});
40
- var f = stubField();
41
- input.mathField = f;
42
- return {
43
- input: input,
44
- f: f
45
- };
46
- };
47
- describe('Input imperative API (drives math-toolbar)', function () {
48
- describe('keystroke', function () {
49
- it('maps MathQuill keystroke names to MathLive selectors', function () {
50
- var _withField = withField(),
51
- input = _withField.input,
52
- f = _withField.f;
53
- input.keystroke('Left');
54
- input.keystroke('Right');
55
- input.keystroke('Backspace');
56
- expect(f.calls.executeCommand).toEqual(['moveToPreviousChar', 'moveToNextChar', 'deleteBackward']);
57
- });
58
- it('passes an unknown value through as a selector', function () {
59
- var _withField2 = withField(),
60
- input = _withField2.input,
61
- f = _withField2.f;
62
- input.keystroke('deleteForward');
63
- expect(f.calls.executeCommand).toEqual(['deleteForward']);
64
- });
65
- it('does not throw when the engine rejects the selector', function () {
66
- var _withField3 = withField(),
67
- input = _withField3.input;
68
- input.mathField.executeCommand = function () {
69
- throw new Error('unknown command');
70
- };
71
- expect(function () {
72
- return input.keystroke('Nonsense');
73
- }).not.toThrow();
74
- });
75
- it('covers every keystroke the keypad emits', function () {
76
- // navigation.js / edit.js only produce these three
77
- ['Left', 'Right', 'Backspace'].forEach(function (k) {
78
- return expect(_latexBridge.KEYSTROKES[k]).toBeDefined();
79
- });
80
- });
81
- });
82
- describe('command', function () {
83
- it('expands argument-taking commands into placeholders', function () {
84
- var _withField4 = withField(),
85
- input = _withField4.input,
86
- f = _withField4.f;
87
- input.command('\\frac');
88
-
89
- // a bare \frac would give no editable slots
90
- expect(f.calls.insert).toEqual(['\\frac{#?}{#?}']);
91
- });
92
- it('handles array commands', function () {
93
- var _withField5 = withField(),
94
- input = _withField5.input,
95
- f = _withField5.f;
96
- input.command(['\\log', '_']);
97
- expect(f.calls.insert).toEqual(['\\log_{#?}']);
98
- });
99
- it('passes argument-less commands through', function () {
100
- var _withField6 = withField(),
101
- input = _withField6.input,
102
- f = _withField6.f;
103
- input.command('\\pi');
104
- expect(f.calls.insert).toEqual(['\\pi']);
105
- });
106
- it('agrees with keyToAction', function () {
107
- expect((0, _latexBridge.keyToAction)({
108
- command: '\\sqrt'
109
- }).value).toEqual('\\sqrt{#?}');
110
- });
111
- });
112
- describe('safety before MathLive loads', function () {
113
- it('every method is a no-op rather than a crash', function () {
114
- var input = new _input["default"]({});
115
-
116
- // mathField is undefined until loadMathLive() resolves
117
- expect(input.latex()).toEqual('');
118
- expect(input.clear()).toEqual('');
119
- expect(input.command('\\frac')).toEqual('');
120
- expect(input.keystroke('Left')).toEqual('');
121
- expect(input.write('x')).toEqual('');
122
- expect(function () {
123
- return input.focus();
124
- }).not.toThrow();
125
- expect(function () {
126
- return input.blur();
127
- }).not.toThrow();
128
- expect(function () {
129
- return input.setLatex('x');
130
- }).not.toThrow();
131
- expect(input.element).toBeUndefined();
132
- });
133
- });
134
- describe('mqCompat facade', function () {
135
- // math-toolbar used to call this.input.mathField.latex(); external
136
- // consumers may still do the same.
137
- it('exposes latex() as a getter', function () {
138
- var _withField7 = withField(),
139
- input = _withField7.input;
140
- input.mathField.getValue = function () {
141
- return '\\frac{1}{2}';
142
- };
143
- expect(input.mqCompat.latex()).toEqual('\\frac{1}{2}');
144
- });
145
- it('exposes latex(v) as a setter and el()', function () {
146
- var _withField8 = withField(),
147
- input = _withField8.input,
148
- f = _withField8.f;
149
- input.mqCompat.latex('x+1');
150
- expect(f.value).toEqual('x+1');
151
- expect(input.mqCompat.el()).toBe(f);
152
- });
153
- });
154
- });
155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF0ZXhCcmlkZ2UiLCJyZXF1aXJlIiwiX2lucHV0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInN0dWJGaWVsZCIsImNhbGxzIiwiaW5zZXJ0IiwiZXhlY3V0ZUNvbW1hbmQiLCJmb2N1cyIsInZhbHVlIiwiZ2V0VmFsdWUiLCJ2IiwicHVzaCIsImJsdXIiLCJ3aXRoRmllbGQiLCJpbnB1dCIsIklucHV0IiwiZiIsIm1hdGhGaWVsZCIsImRlc2NyaWJlIiwiaXQiLCJfd2l0aEZpZWxkIiwia2V5c3Ryb2tlIiwiZXhwZWN0IiwidG9FcXVhbCIsIl93aXRoRmllbGQyIiwiX3dpdGhGaWVsZDMiLCJFcnJvciIsIm5vdCIsInRvVGhyb3ciLCJmb3JFYWNoIiwiayIsIktFWVNUUk9LRVMiLCJ0b0JlRGVmaW5lZCIsIl93aXRoRmllbGQ0IiwiY29tbWFuZCIsIl93aXRoRmllbGQ1IiwiX3dpdGhGaWVsZDYiLCJrZXlUb0FjdGlvbiIsImxhdGV4IiwiY2xlYXIiLCJ3cml0ZSIsInNldExhdGV4IiwiZWxlbWVudCIsInRvQmVVbmRlZmluZWQiLCJfd2l0aEZpZWxkNyIsIm1xQ29tcGF0IiwiX3dpdGhGaWVsZDgiLCJlbCIsInRvQmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2lucHV0LWltcGVyYXRpdmUudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS0VZU1RST0tFUywga2V5VG9BY3Rpb24gfSBmcm9tICcuLi9sYXRleC1icmlkZ2UnO1xuaW1wb3J0IElucHV0IGZyb20gJy4uL21mL2lucHV0JztcblxuLyoqXG4gKiBUaGUgaW1wZXJhdGl2ZSBzdXJmYWNlIHRoYXQgQHBpZS1saWIvbWF0aC10b29sYmFyIGRyaXZlc1xuICogKGVkaXRvci1hbmQtcGFkLmpzeDogY2xlYXIvY29tbWFuZC9rZXlzdHJva2Uvd3JpdGUvbGF0ZXgpLlxuICpcbiAqIFRoZXNlIGNhbGwgdGhlIG1ldGhvZHMgYWdhaW5zdCBhIHN0dWIgbWF0aGZpZWxkLCBiZWNhdXNlIGEgcmVhbFxuICogPG1hdGgtZmllbGQ+IG5lZWRzIGEgYnJvd3Nlci4gV2hhdCBtYXR0ZXJzIGhlcmUgaXMgdGhlICp0cmFuc2xhdGlvbio6XG4gKiBNYXRoUXVpbGwtZXJhIGFyZ3VtZW50cyBtdXN0IGJlY29tZSB2YWxpZCBNYXRoTGl2ZSBvcGVyYXRpb25zLlxuICovXG5jb25zdCBzdHViRmllbGQgPSAoKSA9PiB7XG4gIGNvbnN0IGNhbGxzID0geyBpbnNlcnQ6IFtdLCBleGVjdXRlQ29tbWFuZDogW10sIGZvY3VzOiAwIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjYWxscyxcbiAgICB2YWx1ZTogJycsXG4gICAgZ2V0VmFsdWU6ICgpID0+ICcnLFxuICAgIGluc2VydCh2KSB7XG4gICAgICBjYWxscy5pbnNlcnQucHVzaCh2KTtcbiAgICB9LFxuICAgIGV4ZWN1dGVDb21tYW5kKHYpIHtcbiAgICAgIGNhbGxzLmV4ZWN1dGVDb21tYW5kLnB1c2godik7XG4gICAgfSxcbiAgICBmb2N1cygpIHtcbiAgICAgIGNhbGxzLmZvY3VzKys7XG4gICAgfSxcbiAgICBibHVyKCkge30sXG4gIH07XG59O1xuXG5jb25zdCB3aXRoRmllbGQgPSAoKSA9PiB7XG4gIGNvbnN0IGlucHV0ID0gbmV3IElucHV0KHt9KTtcbiAgY29uc3QgZiA9IHN0dWJGaWVsZCgpO1xuXG4gIGlucHV0Lm1hdGhGaWVsZCA9IGY7XG5cbiAgcmV0dXJuIHsgaW5wdXQsIGYgfTtcbn07XG5cbmRlc2NyaWJlKCdJbnB1dCBpbXBlcmF0aXZlIEFQSSAoZHJpdmVzIG1hdGgtdG9vbGJhciknLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdrZXlzdHJva2UnLCAoKSA9PiB7XG4gICAgaXQoJ21hcHMgTWF0aFF1aWxsIGtleXN0cm9rZSBuYW1lcyB0byBNYXRoTGl2ZSBzZWxlY3RvcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0LCBmIH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQua2V5c3Ryb2tlKCdMZWZ0Jyk7XG4gICAgICBpbnB1dC5rZXlzdHJva2UoJ1JpZ2h0Jyk7XG4gICAgICBpbnB1dC5rZXlzdHJva2UoJ0JhY2tzcGFjZScpO1xuXG4gICAgICBleHBlY3QoZi5jYWxscy5leGVjdXRlQ29tbWFuZCkudG9FcXVhbChbJ21vdmVUb1ByZXZpb3VzQ2hhcicsICdtb3ZlVG9OZXh0Q2hhcicsICdkZWxldGVCYWNrd2FyZCddKTtcbiAgICB9KTtcblxuICAgIGl0KCdwYXNzZXMgYW4gdW5rbm93biB2YWx1ZSB0aHJvdWdoIGFzIGEgc2VsZWN0b3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0LCBmIH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQua2V5c3Ryb2tlKCdkZWxldGVGb3J3YXJkJyk7XG5cbiAgICAgIGV4cGVjdChmLmNhbGxzLmV4ZWN1dGVDb21tYW5kKS50b0VxdWFsKFsnZGVsZXRlRm9yd2FyZCddKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCB0aHJvdyB3aGVuIHRoZSBlbmdpbmUgcmVqZWN0cyB0aGUgc2VsZWN0b3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQubWF0aEZpZWxkLmV4ZWN1dGVDb21tYW5kID0gKCkgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gY29tbWFuZCcpO1xuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IGlucHV0LmtleXN0cm9rZSgnTm9uc2Vuc2UnKSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb3ZlcnMgZXZlcnkga2V5c3Ryb2tlIHRoZSBrZXlwYWQgZW1pdHMnLCAoKSA9PiB7XG4gICAgICAvLyBuYXZpZ2F0aW9uLmpzIC8gZWRpdC5qcyBvbmx5IHByb2R1Y2UgdGhlc2UgdGhyZWVcbiAgICAgIFsnTGVmdCcsICdSaWdodCcsICdCYWNrc3BhY2UnXS5mb3JFYWNoKChrKSA9PiBleHBlY3QoS0VZU1RST0tFU1trXSkudG9CZURlZmluZWQoKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb21tYW5kJywgKCkgPT4ge1xuICAgIGl0KCdleHBhbmRzIGFyZ3VtZW50LXRha2luZyBjb21tYW5kcyBpbnRvIHBsYWNlaG9sZGVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5jb21tYW5kKCdcXFxcZnJhYycpO1xuXG4gICAgICAvLyBhIGJhcmUgXFxmcmFjIHdvdWxkIGdpdmUgbm8gZWRpdGFibGUgc2xvdHNcbiAgICAgIGV4cGVjdChmLmNhbGxzLmluc2VydCkudG9FcXVhbChbJ1xcXFxmcmFjeyM/fXsjP30nXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBhcnJheSBjb21tYW5kcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5jb21tYW5kKFsnXFxcXGxvZycsICdfJ10pO1xuXG4gICAgICBleHBlY3QoZi5jYWxscy5pbnNlcnQpLnRvRXF1YWwoWydcXFxcbG9nX3sjP30nXSk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFzc2VzIGFyZ3VtZW50LWxlc3MgY29tbWFuZHMgdGhyb3VnaCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5jb21tYW5kKCdcXFxccGknKTtcblxuICAgICAgZXhwZWN0KGYuY2FsbHMuaW5zZXJ0KS50b0VxdWFsKFsnXFxcXHBpJ10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FncmVlcyB3aXRoIGtleVRvQWN0aW9uJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGtleVRvQWN0aW9uKHsgY29tbWFuZDogJ1xcXFxzcXJ0JyB9KS52YWx1ZSkudG9FcXVhbCgnXFxcXHNxcnR7Iz99Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzYWZldHkgYmVmb3JlIE1hdGhMaXZlIGxvYWRzJywgKCkgPT4ge1xuICAgIGl0KCdldmVyeSBtZXRob2QgaXMgYSBuby1vcCByYXRoZXIgdGhhbiBhIGNyYXNoJywgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSBuZXcgSW5wdXQoe30pO1xuXG4gICAgICAvLyBtYXRoRmllbGQgaXMgdW5kZWZpbmVkIHVudGlsIGxvYWRNYXRoTGl2ZSgpIHJlc29sdmVzXG4gICAgICBleHBlY3QoaW5wdXQubGF0ZXgoKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoaW5wdXQuY2xlYXIoKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoaW5wdXQuY29tbWFuZCgnXFxcXGZyYWMnKSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoaW5wdXQua2V5c3Ryb2tlKCdMZWZ0JykpLnRvRXF1YWwoJycpO1xuICAgICAgZXhwZWN0KGlucHV0LndyaXRlKCd4JykpLnRvRXF1YWwoJycpO1xuICAgICAgZXhwZWN0KCgpID0+IGlucHV0LmZvY3VzKCkpLm5vdC50b1Rocm93KCk7XG4gICAgICBleHBlY3QoKCkgPT4gaW5wdXQuYmx1cigpKS5ub3QudG9UaHJvdygpO1xuICAgICAgZXhwZWN0KCgpID0+IGlucHV0LnNldExhdGV4KCd4JykpLm5vdC50b1Rocm93KCk7XG4gICAgICBleHBlY3QoaW5wdXQuZWxlbWVudCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbXFDb21wYXQgZmFjYWRlJywgKCkgPT4ge1xuICAgIC8vIG1hdGgtdG9vbGJhciB1c2VkIHRvIGNhbGwgdGhpcy5pbnB1dC5tYXRoRmllbGQubGF0ZXgoKTsgZXh0ZXJuYWxcbiAgICAvLyBjb25zdW1lcnMgbWF5IHN0aWxsIGRvIHRoZSBzYW1lLlxuICAgIGl0KCdleHBvc2VzIGxhdGV4KCkgYXMgYSBnZXR0ZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGlucHV0IH0gPSB3aXRoRmllbGQoKTtcblxuICAgICAgaW5wdXQubWF0aEZpZWxkLmdldFZhbHVlID0gKCkgPT4gJ1xcXFxmcmFjezF9ezJ9JztcblxuICAgICAgZXhwZWN0KGlucHV0Lm1xQ29tcGF0LmxhdGV4KCkpLnRvRXF1YWwoJ1xcXFxmcmFjezF9ezJ9Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZXhwb3NlcyBsYXRleCh2KSBhcyBhIHNldHRlciBhbmQgZWwoKScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5wdXQsIGYgfSA9IHdpdGhGaWVsZCgpO1xuXG4gICAgICBpbnB1dC5tcUNvbXBhdC5sYXRleCgneCsxJyk7XG4gICAgICBleHBlY3QoZi52YWx1ZSkudG9FcXVhbCgneCsxJyk7XG4gICAgICBleHBlY3QoaW5wdXQubXFDb21wYXQuZWwoKSkudG9CZShmKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1HLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7RUFDdEIsSUFBTUMsS0FBSyxHQUFHO0lBQUVDLE1BQU0sRUFBRSxFQUFFO0lBQUVDLGNBQWMsRUFBRSxFQUFFO0lBQUVDLEtBQUssRUFBRTtFQUFFLENBQUM7RUFFMUQsT0FBTztJQUNMSCxLQUFLLEVBQUxBLEtBQUs7SUFDTEksS0FBSyxFQUFFLEVBQUU7SUFDVEMsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7TUFBQSxPQUFRLEVBQUU7SUFBQTtJQUNsQkosTUFBTSxXQUFOQSxNQUFNQSxDQUFDSyxDQUFDLEVBQUU7TUFDUk4sS0FBSyxDQUFDQyxNQUFNLENBQUNNLElBQUksQ0FBQ0QsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDREosY0FBYyxXQUFkQSxjQUFjQSxDQUFDSSxDQUFDLEVBQUU7TUFDaEJOLEtBQUssQ0FBQ0UsY0FBYyxD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