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

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
@@ -0,0 +1,39 @@
1
+ import e from "debug";
2
+ //#region src/selection.ts
3
+ var t = e("pie-lib:math-input-mathlive:selection"), n = (e, t, n, r) => {
4
+ let i = (e) => n(e) || {}, a = (e) => i(e).depth || 0, o = (e) => a(e) > 0 && i(e).latex === "";
5
+ if (t < e && ([e, t] = [t, e]), t - e < 1) return [e, t];
6
+ let s = Infinity;
7
+ for (let n = e; n <= t; n++) s = Math.min(s, a(n));
8
+ for (let n = e + 1; n <= t; n++) if (a(n) === s && o(n)) {
9
+ --s;
10
+ break;
11
+ }
12
+ for (s = Math.max(s, 0); e > 0 && a(e) > s;) --e;
13
+ for (; t < r && a(t) > s;) t += 1;
14
+ let c = e + 1;
15
+ for (; c <= t && a(c) > s;) c += 1;
16
+ return e > 0 && c <= t && /^[\^_]/.test(i(c).latex || "") && a(e) === s && --e, [e, t];
17
+ }, r = (e) => {
18
+ if (!e || typeof e.addEventListener != "function") return;
19
+ let r = !1, i = () => {
20
+ if (!r) try {
21
+ if (e.selectionIsCollapsed || typeof e.getElementInfo != "function") return;
22
+ let t = e.selection, i = t && t.ranges && t.ranges[0];
23
+ if (!i) return;
24
+ let [a, o] = i, s = Math.min(a, o), c = Math.max(a, o), [l, u] = n(s, c, (t) => e.getElementInfo(t), e.lastOffset);
25
+ if (l === s && u === c) return;
26
+ r = !0, e.selection = {
27
+ ranges: [[l, u]],
28
+ direction: t.direction
29
+ };
30
+ } catch (e) {
31
+ t("could not normalise the selection: %s", e && e.message);
32
+ } finally {
33
+ r = !1;
34
+ }
35
+ };
36
+ return e.addEventListener("selection-change", i), () => e.removeEventListener("selection-change", i);
37
+ };
38
+ //#endregion
39
+ export { n as expandRange, r as trackWholeAtomSelection };
package/package.json CHANGED
@@ -1,31 +1,45 @@
1
1
  {
2
2
  "name": "@pie-lib/math-input-mathlive",
3
- "publishConfig": {
4
- "access": "public"
5
- },
6
- "version": "1.1.5-beta.9",
3
+ "version": "2.0.1-next.20261107131445",
7
4
  "description": "MathLive-based math input (drop-in alternative to @pie-lib/math-input)",
8
- "main": "lib/index.js",
9
- "module": "src/index.jsx",
10
- "repository": "pie-framework/pie-lib",
11
- "license": "ISC",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/pie-framework/pie-elements-ng.git",
9
+ "directory": "packages/lib-react/math-input-mathlive"
10
+ },
12
11
  "dependencies": {
13
12
  "@emotion/react": "^11.14.0",
14
13
  "@emotion/styled": "^11.14.1",
15
14
  "@mui/icons-material": "^7.3.4",
16
15
  "@mui/material": "^7.3.4",
17
- "@pie-lib/render-ui": "^6.1.0",
18
16
  "debug": "^4.1.1",
19
- "lodash-es": "^4.17.23",
20
- "mathlive": "^0.110.0",
21
- "prop-types": "^15.7.2"
17
+ "mathlive": "0.110.0",
18
+ "prop-types": "^15.7.2",
19
+ "@pie-element/shared-lodash": "0.1.4-next.20261026212738",
20
+ "@pie-lib/render-ui": "8.0.8-next.20261106152257",
21
+ "@pie-lib/translator": "5.0.3-next.20261105161708"
22
22
  },
23
- "peerDependencies": {
24
- "react": "^18.2.0"
23
+ "type": "module",
24
+ "main": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "default": "./dist/index.js"
30
+ }
25
31
  },
26
- "devDependencies": {
27
- "react": "^18.2.0",
28
- "react-dom": "^18.2.0"
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "sideEffects": false,
36
+ "scripts": {
37
+ "build": "bun x vite build && bun x tsc --emitDeclarationOnly",
38
+ "dev": "bun x vite",
39
+ "test": "bun x vitest run"
29
40
  },
30
- "scripts": {}
41
+ "peerDependencies": {
42
+ "react": "^18.0.0 || ^19.0.0",
43
+ "react-dom": "^18.0.0 || ^19.0.0"
44
+ }
31
45
  }
@@ -1,255 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _react = _interopRequireDefault(require("react"));
5
- var _react2 = require("@testing-library/react");
6
- var _mathInput = _interopRequireDefault(require("../math-input"));
7
- var _horizontalKeypad = _interopRequireDefault(require("../horizontal-keypad"));
8
- var _input = _interopRequireDefault(require("../mf/input"));
9
- /**
10
- * The pieces that sit between the keypad and the field: how a pressed key is
11
- * routed into the field, and the legacy `{value,type}` shape math-toolbar
12
- * consumes.
13
- */
14
- describe('MathInput.keypadPress routing', function () {
15
- var withInput = function withInput() {
16
- var mi = new _mathInput["default"]({});
17
- var calls = {
18
- write: [],
19
- keystroke: []
20
- };
21
- mi.input = {
22
- write: function write(v) {
23
- return calls.write.push(v);
24
- },
25
- keystroke: function keystroke(v) {
26
- return calls.keystroke.push(v);
27
- }
28
- };
29
- return {
30
- mi: mi,
31
- calls: calls
32
- };
33
- };
34
- it('routes an insert action to write()', function () {
35
- var _withInput = withInput(),
36
- mi = _withInput.mi,
37
- calls = _withInput.calls;
38
- mi.keypadPress({
39
- latex: '\\pi'
40
- });
41
- expect(calls.write).toEqual(['\\pi']);
42
- expect(calls.keystroke).toEqual([]);
43
- });
44
- it('expands an argument-taking command before writing', function () {
45
- var _withInput2 = withInput(),
46
- mi = _withInput2.mi,
47
- calls = _withInput2.calls;
48
- mi.keypadPress({
49
- command: '\\frac'
50
- });
51
- expect(calls.write).toEqual(['\\frac{#?}{#?}']);
52
- });
53
- it('routes a cursor keystroke to keystroke()', function () {
54
- var _withInput3 = withInput(),
55
- mi = _withInput3.mi,
56
- calls = _withInput3.calls;
57
- mi.keypadPress({
58
- keystroke: 'Left'
59
- });
60
- expect(calls.keystroke).toEqual(['moveToPreviousChar']);
61
- expect(calls.write).toEqual([]);
62
- });
63
- it('ignores keys with no action', function () {
64
- var _withInput4 = withInput(),
65
- mi = _withInput4.mi,
66
- calls = _withInput4.calls;
67
- mi.keypadPress({});
68
- mi.keypadPress({
69
- keystroke: 'Nonsense'
70
- });
71
- expect(calls.write).toEqual([]);
72
- expect(calls.keystroke).toEqual([]);
73
- });
74
- it('is a no-op before the field ref exists', function () {
75
- var mi = new _mathInput["default"]({});
76
- expect(function () {
77
- return mi.keypadPress({
78
- latex: '\\pi'
79
- });
80
- }).not.toThrow();
81
- });
82
- it('changeLatex only fires onChange when the value differs', function () {
83
- var onChange = jest.fn();
84
- var mi = new _mathInput["default"]({
85
- latex: 'x',
86
- onChange: onChange
87
- });
88
- mi.changeLatex('x');
89
- expect(onChange).not.toHaveBeenCalled();
90
- mi.changeLatex('y');
91
- expect(onChange).toHaveBeenCalledWith('y');
92
- });
93
- it('tracks focus state', function () {
94
- var mi = new _mathInput["default"]({});
95
- mi.setState = function (s) {
96
- return Object.assign(mi.state, s);
97
- };
98
- mi.inputFocus();
99
- expect(mi.state.focused).toBe(true);
100
- mi.inputBlur();
101
- expect(mi.state.focused).toBe(false);
102
- });
103
- });
104
- describe('HorizontalKeypad legacy {value,type} model', function () {
105
- var pressed = function pressed(key) {
106
- var onClick = jest.fn();
107
- var hk = new _horizontalKeypad["default"]({
108
- onClick: onClick
109
- });
110
- hk.keypadPress(key);
111
- return onClick.mock.calls[0][0];
112
- };
113
- it('maps a command to {value, type: command}', function () {
114
- expect(pressed({
115
- command: '\\frac'
116
- })).toEqual({
117
- value: '\\frac',
118
- type: 'command'
119
- });
120
- });
121
- it('maps a write to {value}', function () {
122
- expect(pressed({
123
- write: 'x'
124
- })).toEqual({
125
- value: 'x'
126
- });
127
- });
128
- it('maps a keystroke to {type: cursor}', function () {
129
- expect(pressed({
130
- keystroke: 'Left'
131
- })).toEqual({
132
- type: 'cursor',
133
- value: 'Left'
134
- });
135
- });
136
- it('renders without throwing', function () {
137
- expect(function () {
138
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_horizontalKeypad["default"], {
139
- onClick: function onClick() {}
140
- }));
141
- }).not.toThrow();
142
- });
143
- });
144
- describe('Input: controlled-value sync and events', function () {
145
- var withField = function withField() {
146
- var input = new _input["default"]({});
147
- input.mathField = {
148
- value: '',
149
- getValue: function getValue() {
150
- return input.mathField.value;
151
- },
152
- insert: function insert(v) {
153
- input.mathField.value += v;
154
- },
155
- executeCommand: function executeCommand() {},
156
- focus: function focus() {},
157
- blur: function blur() {},
158
- addEventListener: function addEventListener() {},
159
- removeEventListener: function removeEventListener() {},
160
- remove: function remove() {}
161
- };
162
- return input;
163
- };
164
- it('emits stored-form latex on edit', function () {
165
- var onChange = jest.fn();
166
- var input = withField();
167
- input.props = {
168
- onChange: onChange
169
- };
170
- input.mathField.value = '\\longdiv{\\placeholder{}}';
171
- input.onInputEdit();
172
-
173
- // \placeholder is MathLive-internal and must not reach the model
174
- expect(onChange).toHaveBeenCalledWith('\\longdiv{}');
175
- expect(input.lastEmitted).toEqual('\\longdiv{}');
176
- });
177
- it('does not push a prop echo back into the field', function () {
178
- var input = withField();
179
- input.mathField.value = 'x';
180
- input.lastEmitted = 'x';
181
- input.props = {
182
- latex: 'x'
183
- };
184
- input.componentDidUpdate({
185
- latex: ''
186
- });
187
- expect(input.mathField.value).toEqual('x');
188
- });
189
- it('pushes a genuinely new latex prop into the field', function () {
190
- var input = withField();
191
- input.mathField.value = 'x';
192
- input.lastEmitted = 'x';
193
- input.props = {
194
- latex: 'y'
195
- };
196
- input.componentDidUpdate({
197
- latex: 'x'
198
- });
199
- expect(input.mathField.value).toEqual('y');
200
- });
201
- it('bridges stored latex on the way in', function () {
202
- var input = withField();
203
- input.props = {
204
- latex: '\\longdiv{5}'
205
- };
206
- input.componentDidUpdate({
207
- latex: ''
208
- });
209
-
210
- // must become native \enclose so the content stays editable
211
- expect(input.mathField.value).toEqual('\\enclose{longdiv}{5}');
212
- });
213
- it('toggles readOnly', function () {
214
- var input = withField();
215
- input.props = {
216
- readOnly: true
217
- };
218
- input.componentDidUpdate({
219
- readOnly: false
220
- });
221
- expect(input.mathField.readOnly).toBe(true);
222
- });
223
- it('clear() empties the field', function () {
224
- var input = withField();
225
- input.mathField.value = 'abc';
226
- expect(input.clear()).toEqual('');
227
- expect(input.mathField.value).toEqual('');
228
- });
229
- it('suppresses Enter so it cannot insert a line break', function () {
230
- var input = withField();
231
- var preventDefault = jest.fn();
232
- input.onKeyDown({
233
- key: 'Enter',
234
- preventDefault: preventDefault
235
- });
236
- expect(preventDefault).toHaveBeenCalled();
237
- preventDefault.mockClear();
238
- input.onKeyDown({
239
- key: 'a',
240
- preventDefault: preventDefault
241
- });
242
- expect(preventDefault).not.toHaveBeenCalled();
243
- });
244
- it('componentDidUpdate is safe before the field exists', function () {
245
- var input = new _input["default"]({
246
- latex: 'x'
247
- });
248
- expect(function () {
249
- return input.componentDidUpdate({
250
- latex: ''
251
- });
252
- }).not.toThrow();
253
- });
254
- });
255
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aElucHV0IiwiX2hvcml6b250YWxLZXlwYWQiLCJfaW5wdXQiLCJkZXNjcmliZSIsIndpdGhJbnB1dCIsIm1pIiwiTWF0aElucHV0IiwiY2FsbHMiLCJ3cml0ZSIsImtleXN0cm9rZSIsImlucHV0IiwidiIsInB1c2giLCJpdCIsIl93aXRoSW5wdXQiLCJrZXlwYWRQcmVzcyIsImxhdGV4IiwiZXhwZWN0IiwidG9FcXVhbCIsIl93aXRoSW5wdXQyIiwiY29tbWFuZCIsIl93aXRoSW5wdXQzIiwiX3dpdGhJbnB1dDQiLCJub3QiLCJ0b1Rocm93Iiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJjaGFuZ2VMYXRleCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInNldFN0YXRlIiwicyIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlIiwiaW5wdXRGb2N1cyIsImZvY3VzZWQiLCJ0b0JlIiwiaW5wdXRCbHVyIiwicHJlc3NlZCIsImtleSIsIm9uQ2xpY2siLCJoayIsIkhvcml6b250YWxLZXlwYWQiLCJtb2NrIiwidmFsdWUiLCJ0eXBlIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIndpdGhGaWVsZCIsIklucHV0IiwibWF0aEZpZWxkIiwiZ2V0VmFsdWUiLCJpbnNlcnQiLCJleGVjdXRlQ29tbWFuZCIsImZvY3VzIiwiYmx1ciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVtb3ZlIiwicHJvcHMiLCJvbklucHV0RWRpdCIsImxhc3RFbWl0dGVkIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicmVhZE9ubHkiLCJjbGVhciIsInByZXZlbnREZWZhdWx0Iiwib25LZXlEb3duIiwibW9ja0NsZWFyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9jb21wb3NpdGVzLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcblxuaW1wb3J0IE1hdGhJbnB1dCBmcm9tICcuLi9tYXRoLWlucHV0JztcbmltcG9ydCBIb3Jpem9udGFsS2V5cGFkIGZyb20gJy4uL2hvcml6b250YWwta2V5cGFkJztcbmltcG9ydCBJbnB1dCBmcm9tICcuLi9tZi9pbnB1dCc7XG5cbi8qKlxuICogVGhlIHBpZWNlcyB0aGF0IHNpdCBiZXR3ZWVuIHRoZSBrZXlwYWQgYW5kIHRoZSBmaWVsZDogaG93IGEgcHJlc3NlZCBrZXkgaXNcbiAqIHJvdXRlZCBpbnRvIHRoZSBmaWVsZCwgYW5kIHRoZSBsZWdhY3kgYHt2YWx1ZSx0eXBlfWAgc2hhcGUgbWF0aC10b29sYmFyXG4gKiBjb25zdW1lcy5cbiAqL1xuZGVzY3JpYmUoJ01hdGhJbnB1dC5rZXlwYWRQcmVzcyByb3V0aW5nJywgKCkgPT4ge1xuICBjb25zdCB3aXRoSW5wdXQgPSAoKSA9PiB7XG4gICAgY29uc3QgbWkgPSBuZXcgTWF0aElucHV0KHt9KTtcbiAgICBjb25zdCBjYWxscyA9IHsgd3JpdGU6IFtdLCBrZXlzdHJva2U6IFtdIH07XG5cbiAgICBtaS5pbnB1dCA9IHtcbiAgICAgIHdyaXRlOiAodikgPT4gY2FsbHMud3JpdGUucHVzaCh2KSxcbiAgICAgIGtleXN0cm9rZTogKHYpID0+IGNhbGxzLmtleXN0cm9rZS5wdXNoKHYpLFxuICAgIH07XG5cbiAgICByZXR1cm4geyBtaSwgY2FsbHMgfTtcbiAgfTtcblxuICBpdCgncm91dGVzIGFuIGluc2VydCBhY3Rpb24gdG8gd3JpdGUoKScsICgpID0+IHtcbiAgICBjb25zdCB7IG1pLCBjYWxscyB9ID0gd2l0aElucHV0KCk7XG5cbiAgICBtaS5rZXlwYWRQcmVzcyh7IGxhdGV4OiAnXFxcXHBpJyB9KTtcblxuICAgIGV4cGVjdChjYWxscy53cml0ZSkudG9FcXVhbChbJ1xcXFxwaSddKTtcbiAgICBleHBlY3QoY2FsbHMua2V5c3Ryb2tlKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoJ2V4cGFuZHMgYW4gYXJndW1lbnQtdGFraW5nIGNvbW1hbmQgYmVmb3JlIHdyaXRpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBtaSwgY2FsbHMgfSA9IHdpdGhJbnB1dCgpO1xuXG4gICAgbWkua2V5cGFkUHJlc3MoeyBjb21tYW5kOiAnXFxcXGZyYWMnIH0pO1xuXG4gICAgZXhwZWN0KGNhbGxzLndyaXRlKS50b0VxdWFsKFsnXFxcXGZyYWN7Iz99eyM/fSddKTtcbiAgfSk7XG5cbiAgaXQoJ3JvdXRlcyBhIGN1cnNvciBrZXlzdHJva2UgdG8ga2V5c3Ryb2tlKCknLCAoKSA9PiB7XG4gICAgY29uc3QgeyBtaSwgY2FsbHMgfSA9IHdpdGhJbnB1dCgpO1xuXG4gICAgbWkua2V5cGFkUHJlc3MoeyBrZXlzdHJva2U6ICdMZWZ0JyB9KTtcblxuICAgIGV4cGVjdChjYWxscy5rZXlzdHJva2UpLnRvRXF1YWwoWydtb3ZlVG9QcmV2aW91c0NoYXInXSk7XG4gICAgZXhwZWN0KGNhbGxzLndyaXRlKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoJ2lnbm9yZXMga2V5cyB3aXRoIG5vIGFjdGlvbicsICgpID0+IHtcbiAgICBjb25zdCB7IG1pLCBjYWxscyB9ID0gd2l0aElucHV0KCk7XG5cbiAgICBtaS5rZXlwYWRQcmVzcyh7fSk7XG4gICAgbWkua2V5cGFkUHJlc3MoeyBrZXlzdHJva2U6ICdOb25zZW5zZScgfSk7XG5cbiAgICBleHBlY3QoY2FsbHMud3JpdGUpLnRvRXF1YWwoW10pO1xuICAgIGV4cGVjdChjYWxscy5rZXlzdHJva2UpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICBpdCgnaXMgYSBuby1vcCBiZWZvcmUgdGhlIGZpZWxkIHJlZiBleGlzdHMnLCAoKSA9PiB7XG4gICAgY29uc3QgbWkgPSBuZXcgTWF0aElucHV0KHt9KTtcblxuICAgIGV4cGVjdCgoKSA9PiBtaS5rZXlwYWRQcmVzcyh7IGxhdGV4OiAnXFxcXHBpJyB9KSkubm90LnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgaXQoJ2NoYW5nZUxhdGV4IG9ubHkgZmlyZXMgb25DaGFuZ2Ugd2hlbiB0aGUgdmFsdWUgZGlmZmVycycsICgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCBtaSA9IG5ldyBNYXRoSW5wdXQoeyBsYXRleDogJ3gnLCBvbkNoYW5nZSB9KTtcblxuICAgIG1pLmNoYW5nZUxhdGV4KCd4Jyk7XG4gICAgZXhwZWN0KG9uQ2hhbmdlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gICAgbWkuY2hhbmdlTGF0ZXgoJ3knKTtcbiAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCd5Jyk7XG4gIH0pO1xuXG4gIGl0KCd0cmFja3MgZm9jdXMgc3RhdGUnLCAoKSA9PiB7XG4gICAgY29uc3QgbWkgPSBuZXcgTWF0aElucHV0KHt9KTtcblxuICAgIG1pLnNldFN0YXRlID0gKHMpID0+IE9iamVjdC5hc3NpZ24obWkuc3RhdGUsIHMpO1xuICAgIG1pLmlucHV0Rm9jdXMoKTtcbiAgICBleHBlY3QobWkuc3RhdGUuZm9jdXNlZCkudG9CZSh0cnVlKTtcblxuICAgIG1pLmlucHV0Qmx1cigpO1xuICAgIGV4cGVjdChtaS5zdGF0ZS5mb2N1c2VkKS50b0JlKGZhbHNlKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0hvcml6b250YWxLZXlwYWQgbGVnYWN5IHt2YWx1ZSx0eXBlfSBtb2RlbCcsICgpID0+IHtcbiAgY29uc3QgcHJlc3NlZCA9IChrZXkpID0+IHtcbiAgICBjb25zdCBvbkNsaWNrID0gamVzdC5mbigpO1xuICAgIGNvbnN0IGhrID0gbmV3IEhvcml6b250YWxLZXlwYWQoeyBvbkNsaWNrIH0pO1xuXG4gICAgaGsua2V5cGFkUHJlc3Moa2V5KTtcblxuICAgIHJldHVybiBvbkNsaWNrLm1vY2suY2FsbHNbMF1bMF07XG4gIH07XG5cbiAgaXQoJ21hcHMgYSBjb21tYW5kIHRvIHt2YWx1ZSwgdHlwZTogY29tbWFuZH0nLCAoKSA9PiB7XG4gICAgZXhwZWN0KHByZXNzZWQoeyBjb21tYW5kOiAnXFxcXGZyYWMnIH0pKS50b0VxdWFsKHsgdmFsdWU6ICdcXFxcZnJhYycsIHR5cGU6ICdjb21tYW5kJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ21hcHMgYSB3cml0ZSB0byB7dmFsdWV9JywgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVzc2VkKHsgd3JpdGU6ICd4JyB9KSkudG9FcXVhbCh7IHZhbHVlOiAneCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdtYXBzIGEga2V5c3Ryb2tlIHRvIHt0eXBlOiBjdXJzb3J9JywgKCkgPT4ge1xuICAgIGV4cGVjdChwcmVzc2VkKHsga2V5c3Ryb2tlOiAnTGVmdCcgfSkpLnRvRXF1YWwoeyB0eXBlOiAnY3Vyc29yJywgdmFsdWU6ICdMZWZ0JyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCB0aHJvd2luZycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxIb3Jpem9udGFsS2V5cGFkIG9uQ2xpY2s9eygpID0+IHt9fSAvPikpLm5vdC50b1Rocm93KCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdJbnB1dDogY29udHJvbGxlZC12YWx1ZSBzeW5jIGFuZCBldmVudHMnLCAoKSA9PiB7XG4gIGNvbnN0IHdpdGhGaWVsZCA9ICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IG5ldyBJbnB1dCh7fSk7XG5cbiAgICBpbnB1dC5tYXRoRmllbGQgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgICBnZXRWYWx1ZTogKCkgPT4gaW5wdXQubWF0aEZpZWxkLnZhbHVlLFxuICAgICAgaW5zZXJ0KHYpIHtcbiAgICAgICAgaW5wdXQubWF0aEZpZWxkLnZhbHVlICs9IHY7XG4gICAgICB9LFxuICAgICAgZXhlY3V0ZUNvbW1hbmQoKSB7fSxcbiAgICAgIGZvY3VzKCkge30sXG4gICAgICBibHVyKCkge30sXG4gICAgICBhZGRFdmVudExpc3RlbmVyKCkge30sXG4gICAgICByZW1vdmVFdmVudExpc3RlbmVyKCkge30sXG4gICAgICByZW1vdmUoKSB7fSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIGl0KCdlbWl0cyBzdG9yZWQtZm9ybSBsYXRleCBvbiBlZGl0JywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IGlucHV0ID0gd2l0aEZpZWxkKCk7XG5cbiAgICBpbnB1dC5wcm9wcyA9IHsgb25DaGFuZ2UgfTtcbiAgICBpbnB1dC5tYXRoRmllbGQudmFsdWUgPSAnXFxcXGxvbmdkaXZ7XFxcXHBsYWNlaG9sZGVye319JztcbiAgICBpbnB1dC5vbklucHV0RWRpdCgpO1xuXG4gICAgLy8gXFxwbGFjZWhvbGRlciBpcyBNYXRoTGl2ZS1pbnRlcm5hbCBhbmQgbXVzdCBub3QgcmVhY2ggdGhlIG1vZGVsXG4gICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnXFxcXGxvbmdkaXZ7fScpO1xuICAgIGV4cGVjdChpbnB1dC5sYXN0RW1pdHRlZCkudG9FcXVhbCgnXFxcXGxvbmdkaXZ7fScpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgcHVzaCBhIHByb3AgZWNobyBiYWNrIGludG8gdGhlIGZpZWxkJywgKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gd2l0aEZpZWxkKCk7XG5cbiAgICBpbnB1dC5tYXRoRmllbGQudmFsdWUgPSAneCc7XG4gICAgaW5wdXQubGFzdEVtaXR0ZWQgPSAneCc7XG4gICAgaW5wdXQucHJvcHMgPSB7IGxhdGV4OiAneCcgfTtcblxuICAgIGlucHV0LmNvbXBvbmVudERpZFVwZGF0ZSh7IGxhdGV4OiAnJyB9KTtcblxuICAgIGV4cGVjdChpbnB1dC5tYXRoRmllbGQudmFsdWUpLnRvRXF1YWwoJ3gnKTtcbiAgfSk7XG5cbiAgaXQoJ3B1c2hlcyBhIGdlbnVpbmVseSBuZXcgbGF0ZXggcHJvcCBpbnRvIHRoZSBmaWVsZCcsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuXG4gICAgaW5wdXQubWF0aEZpZWxkLnZhbHVlID0gJ3gnO1xuICAgIGlucHV0Lmxhc3RFbWl0dGVkID0gJ3gnO1xuICAgIGlucHV0LnByb3BzID0geyBsYXRleDogJ3knIH07XG5cbiAgICBpbnB1dC5jb21wb25lbnREaWRVcGRhdGUoeyBsYXRleDogJ3gnIH0pO1xuXG4gICAgZXhwZWN0KGlucHV0Lm1hdGhGaWVsZC52YWx1ZSkudG9FcXVhbCgneScpO1xuICB9KTtcblxuICBpdCgnYnJpZGdlcyBzdG9yZWQgbGF0ZXggb24gdGhlIHdheSBpbicsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuXG4gICAgaW5wdXQucHJvcHMgPSB7IGxhdGV4OiAnXFxcXGxvbmdkaXZ7NX0nIH07XG4gICAgaW5wdXQuY29tcG9uZW50RGlkVXBkYXRlKHsgbGF0ZXg6ICcnIH0pO1xuXG4gICAgLy8gbXVzdCBiZWNvbWUgbmF0aXZlIFxcZW5jbG9zZSBzbyB0aGUgY29udGVudCBzdGF5cyBlZGl0YWJsZVxuICAgIGV4cGVjdChpbnB1dC5tYXRoRmllbGQudmFsdWUpLnRvRXF1YWwoJ1xcXFxlbmNsb3Nle2xvbmdkaXZ9ezV9Jyk7XG4gIH0pO1xuXG4gIGl0KCd0b2dnbGVzIHJlYWRPbmx5JywgKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gd2l0aEZpZWxkKCk7XG5cbiAgICBpbnB1dC5wcm9wcyA9IHsgcmVhZE9ubHk6IHRydWUgfTtcbiAgICBpbnB1dC5jb21wb25lbnREaWRVcGRhdGUoeyByZWFkT25seTogZmFsc2UgfSk7XG5cbiAgICBleHBlY3QoaW5wdXQubWF0aEZpZWxkLnJlYWRPbmx5KS50b0JlKHRydWUpO1xuICB9KTtcblxuICBpdCgnY2xlYXIoKSBlbXB0aWVzIHRoZSBmaWVsZCcsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuXG4gICAgaW5wdXQubWF0aEZpZWxkLnZhbHVlID0gJ2FiYyc7XG4gICAgZXhwZWN0KGlucHV0LmNsZWFyKCkpLnRvRXF1YWwoJycpO1xuICAgIGV4cGVjdChpbnB1dC5tYXRoRmllbGQudmFsdWUpLnRvRXF1YWwoJycpO1xuICB9KTtcblxuICBpdCgnc3VwcHJlc3NlcyBFbnRlciBzbyBpdCBjYW5ub3QgaW5zZXJ0IGEgbGluZSBicmVhaycsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHdpdGhGaWVsZCgpO1xuICAgIGNvbnN0IHByZXZlbnREZWZhdWx0ID0gamVzdC5mbigpO1xuXG4gICAgaW5wdXQub25LZXlEb3duKHsga2V5OiAnRW50ZXInLCBwcmV2ZW50RGVmYXVsdCB9KTtcbiAgICBleHBlY3QocHJldmVudERlZmF1bHQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcblxuICAgIHByZXZlbnREZWZhdWx0Lm1vY2tDbGVhcigpO1xuICAgIGlucHV0Lm9uS2V5RG93bih7IGtleTogJ2EnLCBwcmV2ZW50RGVmYXVsdCB9KTtcbiAgICBleHBlY3QocHJldmVudERlZmF1bHQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdjb21wb25lbnREaWRVcGRhdGUgaXMgc2FmZSBiZWZvcmUgdGhlIGZpZWxkIGV4aXN0cycsICgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IG5ldyBJbnB1dCh7IGxhdGV4OiAneCcgfSk7XG5cbiAgICBleHBlY3QoKCkgPT4gaW5wdXQuY29tcG9uZW50RGlkVXBkYXRlKHsgbGF0ZXg6ICcnIH0pKS5ub3QudG9UaHJvdygpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFB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
@@ -1,133 +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 _react = _interopRequireDefault(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _styles = require("@mui/material/styles");
8
- var _index = require("../index");
9
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- /**
12
- * Exercises the exact call patterns real consumers use against
13
- * @pie-lib/math-input, to catch drop-in incompatibilities.
14
- *
15
- * Sources:
16
- * - packages/math-toolbar/src/editor-and-pad.jsx:16,185
17
- * - packages/math-toolbar/src/math-preview.jsx:8,156
18
- * - packages/editable-html/src/plugins/respArea/math-templated/index.jsx:92
19
- * - packages/editable-html-tip-tap/src/components/respArea/MathTemplated.jsx:111
20
- */
21
- describe('drop-in compatibility with @pie-lib/math-input consumers', function () {
22
- describe('mq.CommonMqStyles destructuring', function () {
23
- it('math-preview.jsx: { commonMqFontStyles, longdivStyles, supsubStyles }', function () {
24
- var _mq$CommonMqStyles = _index.mq.CommonMqStyles,
25
- commonMqFontStyles = _mq$CommonMqStyles.commonMqFontStyles,
26
- longdivStyles = _mq$CommonMqStyles.longdivStyles,
27
- supsubStyles = _mq$CommonMqStyles.supsubStyles;
28
- expect(commonMqFontStyles).toBeDefined();
29
- expect(longdivStyles).toBeDefined();
30
- expect(supsubStyles).toBeDefined();
31
- });
32
- it('editor-and-pad.jsx: also { commonMqKeyboardStyles }', function () {
33
- var _mq$CommonMqStyles2 = _index.mq.CommonMqStyles,
34
- commonMqFontStyles = _mq$CommonMqStyles2.commonMqFontStyles,
35
- commonMqKeyboardStyles = _mq$CommonMqStyles2.commonMqKeyboardStyles,
36
- longdivStyles = _mq$CommonMqStyles2.longdivStyles,
37
- supsubStyles = _mq$CommonMqStyles2.supsubStyles;
38
- expect(commonMqKeyboardStyles).toBeDefined();
39
- // All four must be spreadable into an emotion style object.
40
- expect(function () {
41
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, commonMqFontStyles), commonMqKeyboardStyles), longdivStyles), supsubStyles);
42
- }).not.toThrow();
43
- });
44
- it('the destructured groups survive being spread into a styled component', function () {
45
- var _mq$CommonMqStyles3 = _index.mq.CommonMqStyles,
46
- commonMqFontStyles = _mq$CommonMqStyles3.commonMqFontStyles,
47
- longdivStyles = _mq$CommonMqStyles3.longdivStyles,
48
- supsubStyles = _mq$CommonMqStyles3.supsubStyles;
49
- var Styled = (0, _styles.styled)('div')(_objectSpread(_objectSpread(_objectSpread({}, commonMqFontStyles), longdivStyles), supsubStyles));
50
- expect(function () {
51
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(Styled, null));
52
- }).not.toThrow();
53
- });
54
- });
55
- describe('mq.Input', function () {
56
- it('editor-and-pad.jsx: styled(mq.Input) renders', function () {
57
- var MathEditor = (0, _styles.styled)(_index.mq.Input)(function () {
58
- return {
59
- width: '100%'
60
- };
61
- });
62
- expect(function () {
63
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(MathEditor, {
64
- latex: "\\\\frac{1}{2}",
65
- onChange: function onChange() {}
66
- }));
67
- }).not.toThrow();
68
- });
69
- it('accepts the className that styled() injects', function () {
70
- var Styled = (0, _styles.styled)(_index.mq.Input)({
71
- padding: 4
72
- });
73
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(Styled, {
74
- latex: "x",
75
- onChange: function onChange() {}
76
- })),
77
- container = _render.container;
78
- expect(container.firstChild).toBeTruthy();
79
- expect(container.firstChild.className).toBeTruthy();
80
- });
81
- });
82
- describe('mq.Static', function () {
83
- it('math-preview.jsx: <mq.Static latex onFocus onBlur />', function () {
84
- expect(function () {
85
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.mq.Static, {
86
- latex: '\\frac{1}{2}',
87
- onFocus: function onFocus() {},
88
- onBlur: function onBlur() {}
89
- }));
90
- }).not.toThrow();
91
- });
92
- it('math-templated respArea: <mq.Static latex={value} />', function () {
93
- expect(function () {
94
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.mq.Static, {
95
- latex: 'x=1'
96
- }));
97
- }).not.toThrow();
98
- });
99
- it('renders answer-block latex (the templated-math case) without throwing', function () {
100
- expect(function () {
101
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.mq.Static, {
102
- latex: 'x=\\MathQuillMathField[r1]{}',
103
- onSubFieldChange: function onSubFieldChange() {}
104
- }));
105
- }).not.toThrow();
106
- });
107
- it('is styleable, as keypad labels were in math-input', function () {
108
- var Styled = (0, _styles.styled)(_index.mq.Static)({
109
- pointerEvents: 'none'
110
- });
111
- expect(function () {
112
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(Styled, {
113
- latex: '\\pi'
114
- }));
115
- }).not.toThrow();
116
- });
117
- });
118
- describe('surface parity', function () {
119
- it('exposes exactly the names math-input exported', function () {
120
- // eslint-disable-next-line global-require
121
- var pkg = require('../index');
122
- ['keysForGrade', 'addBrackets', 'removeBrackets', 'keys', 'HorizontalKeypad', 'mq', 'updateSpans', 'registerEmbed', 'applyStaticMath'].forEach(function (name) {
123
- expect(pkg[name]).toBeDefined();
124
- });
125
- });
126
- it('mq exposes Input, Static and CommonMqStyles', function () {
127
- ['Input', 'Static', 'CommonMqStyles'].forEach(function (name) {
128
- expect(_index.mq[name]).toBeDefined();
129
- });
130
- });
131
- });
132
- });
133
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIml0IiwiX21xJENvbW1vbk1xU3R5bGVzIiwibXEiLCJDb21tb25NcVN0eWxlcyIsImNvbW1vbk1xRm9udFN0eWxlcyIsImxvbmdkaXZTdHlsZXMiLCJzdXBzdWJTdHlsZXMiLCJleHBlY3QiLCJ0b0JlRGVmaW5lZCIsIl9tcSRDb21tb25NcVN0eWxlczIiLCJjb21tb25NcUtleWJvYXJkU3R5bGVzIiwibm90IiwidG9UaHJvdyIsIl9tcSRDb21tb25NcVN0eWxlczMiLCJTdHlsZWQiLCJzdHlsZWQiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiTWF0aEVkaXRvciIsIklucHV0Iiwid2lkdGgiLCJsYXRleCIsIm9uQ2hhbmdlIiwicGFkZGluZyIsIl9yZW5kZXIiLCJjb250YWluZXIiLCJmaXJzdENoaWxkIiwidG9CZVRydXRoeSIsImNsYXNzTmFtZSIsIlN0YXRpYyIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvblN1YkZpZWxkQ2hhbmdlIiwicG9pbnRlckV2ZW50cyIsInBrZyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2Ryb3AtaW4tY29tcGF0LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcblxuaW1wb3J0IHsgbXEgfSBmcm9tICcuLi9pbmRleCc7XG5cbi8qKlxuICogRXhlcmNpc2VzIHRoZSBleGFjdCBjYWxsIHBhdHRlcm5zIHJlYWwgY29uc3VtZXJzIHVzZSBhZ2FpbnN0XG4gKiBAcGllLWxpYi9tYXRoLWlucHV0LCB0byBjYXRjaCBkcm9wLWluIGluY29tcGF0aWJpbGl0aWVzLlxuICpcbiAqIFNvdXJjZXM6XG4gKiAgLSBwYWNrYWdlcy9tYXRoLXRvb2xiYXIvc3JjL2VkaXRvci1hbmQtcGFkLmpzeDoxNiwxODVcbiAqICAtIHBhY2thZ2VzL21hdGgtdG9vbGJhci9zcmMvbWF0aC1wcmV2aWV3LmpzeDo4LDE1NlxuICogIC0gcGFja2FnZXMvZWRpdGFibGUtaHRtbC9zcmMvcGx1Z2lucy9yZXNwQXJlYS9tYXRoLXRlbXBsYXRlZC9pbmRleC5qc3g6OTJcbiAqICAtIHBhY2thZ2VzL2VkaXRhYmxlLWh0bWwtdGlwLXRhcC9zcmMvY29tcG9uZW50cy9yZXNwQXJlYS9NYXRoVGVtcGxhdGVkLmpzeDoxMTFcbiAqL1xuZGVzY3JpYmUoJ2Ryb3AtaW4gY29tcGF0aWJpbGl0eSB3aXRoIEBwaWUtbGliL21hdGgtaW5wdXQgY29uc3VtZXJzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnbXEuQ29tbW9uTXFTdHlsZXMgZGVzdHJ1Y3R1cmluZycsICgpID0+IHtcbiAgICBpdCgnbWF0aC1wcmV2aWV3LmpzeDogeyBjb21tb25NcUZvbnRTdHlsZXMsIGxvbmdkaXZTdHlsZXMsIHN1cHN1YlN0eWxlcyB9JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb21tb25NcUZvbnRTdHlsZXMsIGxvbmdkaXZTdHlsZXMsIHN1cHN1YlN0eWxlcyB9ID0gbXEuQ29tbW9uTXFTdHlsZXM7XG5cbiAgICAgIGV4cGVjdChjb21tb25NcUZvbnRTdHlsZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobG9uZ2RpdlN0eWxlcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChzdXBzdWJTdHlsZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZWRpdG9yLWFuZC1wYWQuanN4OiBhbHNvIHsgY29tbW9uTXFLZXlib2FyZFN0eWxlcyB9JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb21tb25NcUZvbnRTdHlsZXMsIGNvbW1vbk1xS2V5Ym9hcmRTdHlsZXMsIGxvbmdkaXZTdHlsZXMsIHN1cHN1YlN0eWxlcyB9ID0gbXEuQ29tbW9uTXFTdHlsZXM7XG5cbiAgICAgIGV4cGVjdChjb21tb25NcUtleWJvYXJkU3R5bGVzKS50b0JlRGVmaW5lZCgpO1xuICAgICAgLy8gQWxsIGZvdXIgbXVzdCBiZSBzcHJlYWRhYmxlIGludG8gYW4gZW1vdGlvbiBzdHlsZSBvYmplY3QuXG4gICAgICBleHBlY3QoKCkgPT4gKHtcbiAgICAgICAgLi4uY29tbW9uTXFGb250U3R5bGVzLFxuICAgICAgICAuLi5jb21tb25NcUtleWJvYXJkU3R5bGVzLFxuICAgICAgICAuLi5sb25nZGl2U3R5bGVzLFxuICAgICAgICAuLi5zdXBzdWJTdHlsZXMsXG4gICAgICB9KSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KCd0aGUgZGVzdHJ1Y3R1cmVkIGdyb3VwcyBzdXJ2aXZlIGJlaW5nIHNwcmVhZCBpbnRvIGEgc3R5bGVkIGNvbXBvbmVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29tbW9uTXFGb250U3R5bGVzLCBsb25nZGl2U3R5bGVzLCBzdXBzdWJTdHlsZXMgfSA9IG1xLkNvbW1vbk1xU3R5bGVzO1xuICAgICAgY29uc3QgU3R5bGVkID0gc3R5bGVkKCdkaXYnKSh7IC4uLmNvbW1vbk1xRm9udFN0eWxlcywgLi4ubG9uZ2RpdlN0eWxlcywgLi4uc3Vwc3ViU3R5bGVzIH0pO1xuXG4gICAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxTdHlsZWQgLz4pKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbXEuSW5wdXQnLCAoKSA9PiB7XG4gICAgaXQoJ2VkaXRvci1hbmQtcGFkLmpzeDogc3R5bGVkKG1xLklucHV0KSByZW5kZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgTWF0aEVkaXRvciA9IHN0eWxlZChtcS5JbnB1dCkoKCkgPT4gKHsgd2lkdGg6ICcxMDAlJyB9KSk7XG5cbiAgICAgIGV4cGVjdCgoKSA9PiByZW5kZXIoPE1hdGhFZGl0b3IgbGF0ZXg9XCJcXFxcZnJhY3sxfXsyfVwiIG9uQ2hhbmdlPXsoKSA9PiB7fX0gLz4pKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FjY2VwdHMgdGhlIGNsYXNzTmFtZSB0aGF0IHN0eWxlZCgpIGluamVjdHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBTdHlsZWQgPSBzdHlsZWQobXEuSW5wdXQpKHsgcGFkZGluZzogNCB9KTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZCBsYXRleD1cInhcIiBvbkNoYW5nZT17KCkgPT4ge319IC8+KTtcblxuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlVHJ1dGh5KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQuY2xhc3NOYW1lKS50b0JlVHJ1dGh5KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdtcS5TdGF0aWMnLCAoKSA9PiB7XG4gICAgaXQoJ21hdGgtcHJldmlldy5qc3g6IDxtcS5TdGF0aWMgbGF0ZXggb25Gb2N1cyBvbkJsdXIgLz4nLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4gcmVuZGVyKDxtcS5TdGF0aWMgbGF0ZXg9eydcXFxcZnJhY3sxfXsyfSd9IG9uRm9jdXM9eygpID0+IHt9fSBvbkJsdXI9eygpID0+IHt9fSAvPikpLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnbWF0aC10ZW1wbGF0ZWQgcmVzcEFyZWE6IDxtcS5TdGF0aWMgbGF0ZXg9e3ZhbHVlfSAvPicsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiByZW5kZXIoPG1xLlN0YXRpYyBsYXRleD17J3g9MSd9IC8+KSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFuc3dlci1ibG9jayBsYXRleCAodGhlIHRlbXBsYXRlZC1tYXRoIGNhc2UpIHdpdGhvdXQgdGhyb3dpbmcnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT5cbiAgICAgICAgcmVuZGVyKDxtcS5TdGF0aWMgbGF0ZXg9eyd4PVxcXFxNYXRoUXVpbGxNYXRoRmllbGRbcjFde30nfSBvblN1YkZpZWxkQ2hhbmdlPXsoKSA9PiB7fX0gLz4pLFxuICAgICAgKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIHN0eWxlYWJsZSwgYXMga2V5cGFkIGxhYmVscyB3ZXJlIGluIG1hdGgtaW5wdXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBTdHlsZWQgPSBzdHlsZWQobXEuU3RhdGljKSh7IHBvaW50ZXJFdmVudHM6ICdub25lJyB9KTtcblxuICAgICAgZXhwZWN0KCgpID0+IHJlbmRlcig8U3R5bGVkIGxhdGV4PXsnXFxcXHBpJ30gLz4pKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc3VyZmFjZSBwYXJpdHknLCAoKSA9PiB7XG4gICAgaXQoJ2V4cG9zZXMgZXhhY3RseSB0aGUgbmFtZXMgbWF0aC1pbnB1dCBleHBvcnRlZCcsICgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnbG9iYWwtcmVxdWlyZVxuICAgICAgY29uc3QgcGtnID0gcmVxdWlyZSgnLi4vaW5kZXgnKTtcblxuICAgICAgW1xuICAgICAgICAna2V5c0ZvckdyYWRlJyxcbiAgICAgICAgJ2FkZEJyYWNrZXRzJyxcbiAgICAgICAgJ3JlbW92ZUJyYWNrZXRzJyxcbiAgICAgICAgJ2tleXMnLFxuICAgICAgICAnSG9yaXpvbnRhbEtleXBhZCcsXG4gICAgICAgICdtcScsXG4gICAgICAgICd1cGRhdGVTcGFucycsXG4gICAgICAgICdyZWdpc3RlckVtYmVkJyxcbiAgICAgICAgJ2FwcGx5U3RhdGljTWF0aCcsXG4gICAgICBdLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgZXhwZWN0KHBrZ1tuYW1lXSkudG9CZURlZmluZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ21xIGV4cG9zZXMgSW5wdXQsIFN0YXRpYyBhbmQgQ29tbW9uTXFTdHlsZXMnLCAoKSA9PiB7XG4gICAgICBbJ0lucHV0JywgJ1N0YXRpYycsICdDb21tb25NcVN0eWxlcyddLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgZXhwZWN0KG1xW25hbWVdKS50b0JlRGVmaW5lZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFBOEIsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxD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