@pie-lib/math-input 8.1.1-next.3 → 8.1.1

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 (185) hide show
  1. package/CHANGELOG.json +17 -0
  2. package/CHANGELOG.md +1178 -0
  3. package/LICENSE.md +5 -0
  4. package/lib/horizontal-keypad.js +96 -0
  5. package/lib/horizontal-keypad.js.map +1 -0
  6. package/lib/index.js +69 -0
  7. package/lib/index.js.map +1 -0
  8. package/lib/keypad/index.js +413 -0
  9. package/lib/keypad/index.js.map +1 -0
  10. package/lib/keypad/keys-layout.js +22 -0
  11. package/lib/keypad/keys-layout.js.map +1 -0
  12. package/lib/keys/basic-operators.js +33 -0
  13. package/lib/keys/basic-operators.js.map +1 -0
  14. package/lib/keys/chars.js +12 -0
  15. package/lib/keys/chars.js.map +1 -0
  16. package/lib/keys/comparison.js +39 -0
  17. package/lib/keys/comparison.js.map +1 -0
  18. package/lib/keys/constants.js +37 -0
  19. package/lib/keys/constants.js.map +1 -0
  20. package/lib/keys/digits.js +46 -0
  21. package/lib/keys/digits.js.map +1 -0
  22. package/lib/keys/edit.js +14 -0
  23. package/lib/keys/edit.js.map +1 -0
  24. package/lib/keys/exponent.js +30 -0
  25. package/lib/keys/exponent.js.map +1 -0
  26. package/lib/keys/fractions.js +29 -0
  27. package/lib/keys/fractions.js.map +1 -0
  28. package/lib/keys/geometry.js +140 -0
  29. package/lib/keys/geometry.js.map +1 -0
  30. package/lib/keys/grades.js +259 -0
  31. package/lib/keys/grades.js.map +1 -0
  32. package/lib/keys/index.js +35 -0
  33. package/lib/keys/index.js.map +1 -0
  34. package/lib/keys/log.js +27 -0
  35. package/lib/keys/log.js.map +1 -0
  36. package/lib/keys/logic.js +19 -0
  37. package/lib/keys/logic.js.map +1 -0
  38. package/lib/keys/matrices.js +19 -0
  39. package/lib/keys/matrices.js.map +1 -0
  40. package/lib/keys/misc.js +62 -0
  41. package/lib/keys/misc.js.map +1 -0
  42. package/lib/keys/navigation.js +20 -0
  43. package/lib/keys/navigation.js.map +1 -0
  44. package/lib/keys/operators.js +15 -0
  45. package/lib/keys/operators.js.map +1 -0
  46. package/lib/keys/statistics.js +40 -0
  47. package/lib/keys/statistics.js.map +1 -0
  48. package/lib/keys/sub-sup.js +19 -0
  49. package/lib/keys/sub-sup.js.map +1 -0
  50. package/lib/keys/trigonometry.js +45 -0
  51. package/lib/keys/trigonometry.js.map +1 -0
  52. package/lib/keys/utils.js +87 -0
  53. package/lib/keys/utils.js.map +1 -0
  54. package/lib/keys/vars.js +24 -0
  55. package/lib/keys/vars.js.map +1 -0
  56. package/lib/math-input.js +141 -0
  57. package/lib/math-input.js.map +1 -0
  58. package/lib/mq/common-mq-styles.js +102 -0
  59. package/lib/mq/common-mq-styles.js.map +1 -0
  60. package/lib/mq/custom-elements.js +20 -0
  61. package/lib/mq/custom-elements.js.map +1 -0
  62. package/lib/mq/index.js +28 -0
  63. package/lib/mq/index.js.map +1 -0
  64. package/lib/mq/input.js +186 -0
  65. package/lib/mq/input.js.map +1 -0
  66. package/lib/mq/mathquill-instance.js +52 -0
  67. package/lib/mq/mathquill-instance.js.map +1 -0
  68. package/lib/mq/static.js +301 -0
  69. package/lib/mq/static.js.map +1 -0
  70. package/lib/updateSpans.js +19 -0
  71. package/lib/updateSpans.js.map +1 -0
  72. package/package.json +18 -33
  73. package/src/__tests__/horizontal-keypad.test.jsx +463 -0
  74. package/src/__tests__/index.test.js +247 -0
  75. package/src/__tests__/math-input-test.jsx +45 -0
  76. package/src/__tests__/updateSpans.test.js +297 -0
  77. package/src/horizontal-keypad.jsx +69 -0
  78. package/src/index.jsx +28 -0
  79. package/src/keypad/__tests__/index.test.jsx +25 -0
  80. package/src/keypad/__tests__/keys-layout.test.js +14 -0
  81. package/src/keypad/index.jsx +439 -0
  82. package/src/keypad/keys-layout.js +16 -0
  83. package/src/keys/__tests__/utils.test.js +57 -0
  84. package/src/keys/basic-operators.js +32 -0
  85. package/src/keys/chars.js +5 -0
  86. package/src/keys/comparison.js +28 -0
  87. package/src/keys/constants.js +35 -0
  88. package/src/keys/digits.js +40 -0
  89. package/src/keys/edit.js +3 -0
  90. package/src/keys/exponent.js +28 -0
  91. package/src/keys/fractions.js +26 -0
  92. package/src/keys/geometry.js +144 -0
  93. package/src/keys/grades.js +367 -0
  94. package/src/keys/index.js +20 -0
  95. package/src/keys/log.js +22 -0
  96. package/src/keys/logic.js +15 -0
  97. package/src/keys/matrices.js +15 -0
  98. package/src/keys/misc.js +65 -0
  99. package/src/keys/navigation.js +8 -0
  100. package/src/keys/operators.js +10 -0
  101. package/src/keys/statistics.js +38 -0
  102. package/src/keys/sub-sup.js +15 -0
  103. package/src/keys/trigonometry.js +15 -0
  104. package/src/keys/utils.js +66 -0
  105. package/src/keys/vars.js +19 -0
  106. package/src/math-input.jsx +119 -0
  107. package/src/mq/__tests__/custom-elements.test.js +342 -0
  108. package/src/mq/__tests__/input.test.jsx +40 -0
  109. package/src/mq/__tests__/mathquill-instance.test.js +67 -0
  110. package/src/mq/__tests__/static.test.jsx +33 -0
  111. package/src/mq/common-mq-styles.js +109 -0
  112. package/src/mq/custom-elements.js +11 -0
  113. package/src/mq/index.js +5 -0
  114. package/src/mq/input.jsx +166 -0
  115. package/src/mq/mathquill-instance.js +45 -0
  116. package/src/mq/static.jsx +290 -0
  117. package/src/updateSpans.js +15 -0
  118. package/dist/_virtual/_rolldown/runtime.js +0 -11
  119. package/dist/horizontal-keypad.d.ts +0 -31
  120. package/dist/horizontal-keypad.js +0 -57
  121. package/dist/index.d.ts +0 -18
  122. package/dist/index.js +0 -19
  123. package/dist/keypad/accessible-keypad.d.ts +0 -37
  124. package/dist/keypad/accessible-keypad.js +0 -614
  125. package/dist/keypad/index.d.ts +0 -2
  126. package/dist/keypad/keys-layout.d.ts +0 -15
  127. package/dist/keypad/keys-layout.js +0 -5
  128. package/dist/keypad/model.d.ts +0 -28
  129. package/dist/keypad/model.js +0 -4
  130. package/dist/keys/basic-operators.d.ts +0 -13
  131. package/dist/keys/basic-operators.js +0 -30
  132. package/dist/keys/chars.d.ts +0 -13
  133. package/dist/keys/comparison.d.ts +0 -12
  134. package/dist/keys/comparison.js +0 -32
  135. package/dist/keys/constants.d.ts +0 -12
  136. package/dist/keys/constants.js +0 -35
  137. package/dist/keys/digits.d.ts +0 -23
  138. package/dist/keys/digits.js +0 -34
  139. package/dist/keys/edit.d.ts +0 -14
  140. package/dist/keys/edit.js +0 -9
  141. package/dist/keys/exponent.d.ts +0 -12
  142. package/dist/keys/exponent.js +0 -28
  143. package/dist/keys/fractions.d.ts +0 -11
  144. package/dist/keys/fractions.js +0 -27
  145. package/dist/keys/geometry.d.ts +0 -31
  146. package/dist/keys/geometry.js +0 -127
  147. package/dist/keys/grades.d.ts +0 -17
  148. package/dist/keys/grades.js +0 -414
  149. package/dist/keys/index.d.ts +0 -14
  150. package/dist/keys/index.js +0 -50
  151. package/dist/keys/log.d.ts +0 -11
  152. package/dist/keys/log.js +0 -25
  153. package/dist/keys/logic.d.ts +0 -10
  154. package/dist/keys/logic.js +0 -13
  155. package/dist/keys/matrices.d.ts +0 -10
  156. package/dist/keys/matrices.js +0 -17
  157. package/dist/keys/misc.d.ts +0 -18
  158. package/dist/keys/misc.js +0 -60
  159. package/dist/keys/navigation.d.ts +0 -10
  160. package/dist/keys/navigation.js +0 -13
  161. package/dist/keys/operators.d.ts +0 -9
  162. package/dist/keys/operators.js +0 -11
  163. package/dist/keys/statistics.d.ts +0 -13
  164. package/dist/keys/statistics.js +0 -38
  165. package/dist/keys/sub-sup.d.ts +0 -10
  166. package/dist/keys/sub-sup.js +0 -17
  167. package/dist/keys/trigonometry.d.ts +0 -14
  168. package/dist/keys/trigonometry.js +0 -43
  169. package/dist/keys/utils.d.ts +0 -13
  170. package/dist/keys/utils.js +0 -24
  171. package/dist/keys/vars.d.ts +0 -11
  172. package/dist/keys/vars.js +0 -22
  173. package/dist/math-input.d.ts +0 -30
  174. package/dist/mq/common-mq-styles.d.ts +0 -225
  175. package/dist/mq/common-mq-styles.js +0 -54
  176. package/dist/mq/custom-elements.d.ts +0 -10
  177. package/dist/mq/custom-elements.js +0 -10
  178. package/dist/mq/index.d.ts +0 -12
  179. package/dist/mq/index.js +0 -12
  180. package/dist/mq/input.d.ts +0 -35
  181. package/dist/mq/input.js +0 -83
  182. package/dist/mq/static.d.ts +0 -43
  183. package/dist/mq/static.js +0 -142
  184. package/dist/updateSpans.d.ts +0 -10
  185. package/dist/updateSpans.js +0 -9
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.Input = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _react = _interopRequireDefault(require("react"));
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var _styles = require("@mui/material/styles");
17
+ var _debug = _interopRequireDefault(require("debug"));
18
+ var _mathquillInstance = require("./mathquill-instance");
19
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ var log = (0, _debug["default"])('math-input:mq:input');
22
+ var StyledSpan = (0, _styles.styled)('span')({
23
+ // No specific styles needed, but component is available for future styling
24
+ });
25
+
26
+ /**
27
+ * Wrapper for MathQuill MQ.MathField.
28
+ */
29
+ var Input = exports.Input = /*#__PURE__*/function (_React$Component) {
30
+ function Input() {
31
+ var _this;
32
+ (0, _classCallCheck2["default"])(this, Input);
33
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34
+ args[_key] = arguments[_key];
35
+ }
36
+ _this = _callSuper(this, Input, [].concat(args));
37
+ (0, _defineProperty2["default"])(_this, "onInputEdit", function () {
38
+ log('[onInputEdit] ...');
39
+ var onChange = _this.props.onChange;
40
+ if (!_this.mathField) {
41
+ return;
42
+ }
43
+ if (onChange) {
44
+ onChange(_this.mathField.latex());
45
+ }
46
+ });
47
+ (0, _defineProperty2["default"])(_this, "refresh", function () {
48
+ _this.blur();
49
+ _this.focus();
50
+ });
51
+ (0, _defineProperty2["default"])(_this, "onKeyPress", function (event) {
52
+ var keys = Object.keys(_this.mathField.__controller.options);
53
+ if (keys.indexOf('ignoreNextMousedown') < 0) {
54
+ // It seems like the controller has the above handler as an option
55
+ // when all the right events are set and everything works fine
56
+ // this seems to work in all cases
57
+ _this.refresh();
58
+ }
59
+ if (event.charCode === 13) {
60
+ event.preventDefault();
61
+ return;
62
+ }
63
+ });
64
+ (0, _defineProperty2["default"])(_this, "onClick", function (event) {
65
+ var onClick = _this.props.onClick;
66
+ _this.refresh();
67
+ onClick && onClick(event);
68
+ });
69
+ return _this;
70
+ }
71
+ (0, _inherits2["default"])(Input, _React$Component);
72
+ return (0, _createClass2["default"])(Input, [{
73
+ key: "componentDidMount",
74
+ value: function componentDidMount() {
75
+ if (!_mathquillInstance.MQ) {
76
+ throw new Error('MQ is not defined - but component has mounted?');
77
+ }
78
+ this.mathField = _mathquillInstance.MQ.MathField(this.input, {
79
+ handlers: {
80
+ edit: this.onInputEdit.bind(this)
81
+ }
82
+ });
83
+ this.updateLatex();
84
+ }
85
+ }, {
86
+ key: "componentDidUpdate",
87
+ value: function componentDidUpdate() {
88
+ this.updateLatex();
89
+ }
90
+ }, {
91
+ key: "updateLatex",
92
+ value: function updateLatex() {
93
+ if (!this.mathField) {
94
+ return;
95
+ }
96
+ var latex = this.props.latex;
97
+ if (latex !== undefined && latex !== null) {
98
+ this.mathField.latex(latex);
99
+ }
100
+ }
101
+ }, {
102
+ key: "clear",
103
+ value: function clear() {
104
+ this.mathField.latex('');
105
+ return '';
106
+ }
107
+ }, {
108
+ key: "blur",
109
+ value: function blur() {
110
+ log('blur mathfield');
111
+ this.mathField.blur();
112
+ }
113
+ }, {
114
+ key: "focus",
115
+ value: function focus() {
116
+ log('focus mathfield...');
117
+ this.mathField.focus();
118
+ }
119
+ }, {
120
+ key: "command",
121
+ value: function command(v) {
122
+ var _this2 = this;
123
+ log('command: ', v);
124
+ if (Array.isArray(v)) {
125
+ v.forEach(function (vv) {
126
+ _this2.mathField.cmd(vv);
127
+ });
128
+ } else {
129
+ this.mathField.cmd(v);
130
+ }
131
+ this.mathField.focus();
132
+ return this.mathField.latex();
133
+ }
134
+ }, {
135
+ key: "keystroke",
136
+ value: function keystroke(v) {
137
+ this.mathField.keystroke(v);
138
+ this.mathField.focus();
139
+ return this.mathField.latex();
140
+ }
141
+ }, {
142
+ key: "write",
143
+ value: function write(v) {
144
+ log('write: ', v);
145
+ this.mathField.write(v);
146
+ this.mathField.focus();
147
+ return this.mathField.latex();
148
+ }
149
+ }, {
150
+ key: "shouldComponentUpdate",
151
+ value: function shouldComponentUpdate(nextProps) {
152
+ log('next: ', nextProps.latex);
153
+ log('current: ', this.mathField.latex());
154
+ return nextProps.latex !== this.mathField.latex();
155
+ }
156
+ }, {
157
+ key: "render",
158
+ value: function render() {
159
+ var _this3 = this;
160
+ var _this$props = this.props,
161
+ onFocus = _this$props.onFocus,
162
+ onBlur = _this$props.onBlur,
163
+ className = _this$props.className;
164
+ return /*#__PURE__*/_react["default"].createElement(StyledSpan, {
165
+ className: className,
166
+ onKeyDown: this.onKeyPress,
167
+ onClick: this.onClick,
168
+ onFocus: onFocus,
169
+ onBlur: onBlur,
170
+ ref: function ref(r) {
171
+ return _this3.input = r;
172
+ }
173
+ });
174
+ }
175
+ }]);
176
+ }(_react["default"].Component);
177
+ (0, _defineProperty2["default"])(Input, "propTypes", {
178
+ className: _propTypes["default"].string,
179
+ onClick: _propTypes["default"].func,
180
+ onChange: _propTypes["default"].func,
181
+ latex: _propTypes["default"].string,
182
+ onFocus: _propTypes["default"].func,
183
+ onBlur: _propTypes["default"].func
184
+ });
185
+ var _default = exports["default"] = Input;
186
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_debug","_mathquillInstance","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","log","debug","StyledSpan","styled","Input","exports","_React$Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","onChange","props","mathField","latex","blur","focus","event","keys","Object","__controller","options","indexOf","refresh","charCode","preventDefault","onClick","_inherits2","_createClass2","key","value","componentDidMount","MQ","Error","MathField","input","handlers","edit","onInputEdit","bind","updateLatex","componentDidUpdate","undefined","clear","command","v","_this2","isArray","forEach","vv","cmd","keystroke","write","shouldComponentUpdate","nextProps","render","_this3","_this$props","onFocus","onBlur","className","createElement","onKeyDown","onKeyPress","ref","r","React","Component","PropTypes","string","func","_default"],"sources":["../../src/mq/input.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport debug from 'debug';\nimport { MQ } from './mathquill-instance';\n\nconst log = debug('math-input:mq:input');\n\nconst StyledSpan = styled('span')({\n // No specific styles needed, but component is available for future styling\n});\n\n/**\n * Wrapper for MathQuill MQ.MathField.\n */\nexport class Input extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n onClick: PropTypes.func,\n onChange: PropTypes.func,\n latex: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n };\n\n componentDidMount() {\n if (!MQ) {\n throw new Error('MQ is not defined - but component has mounted?');\n }\n\n this.mathField = MQ.MathField(this.input, {\n handlers: {\n edit: this.onInputEdit.bind(this),\n },\n });\n\n this.updateLatex();\n }\n\n componentDidUpdate() {\n this.updateLatex();\n }\n\n updateLatex() {\n if (!this.mathField) {\n return;\n }\n\n const { latex } = this.props;\n\n if (latex !== undefined && latex !== null) {\n this.mathField.latex(latex);\n }\n }\n\n clear() {\n this.mathField.latex('');\n\n return '';\n }\n\n blur() {\n log('blur mathfield');\n this.mathField.blur();\n }\n\n focus() {\n log('focus mathfield...');\n this.mathField.focus();\n }\n\n command(v) {\n log('command: ', v);\n if (Array.isArray(v)) {\n v.forEach((vv) => {\n this.mathField.cmd(vv);\n });\n } else {\n this.mathField.cmd(v);\n }\n\n this.mathField.focus();\n\n return this.mathField.latex();\n }\n\n keystroke(v) {\n this.mathField.keystroke(v);\n this.mathField.focus();\n\n return this.mathField.latex();\n }\n\n write(v) {\n log('write: ', v);\n this.mathField.write(v);\n this.mathField.focus();\n\n return this.mathField.latex();\n }\n\n onInputEdit = () => {\n log('[onInputEdit] ...');\n const { onChange } = this.props;\n\n if (!this.mathField) {\n return;\n }\n\n if (onChange) {\n onChange(this.mathField.latex());\n }\n };\n\n refresh = () => {\n this.blur();\n this.focus();\n };\n\n onKeyPress = (event) => {\n const keys = Object.keys(this.mathField.__controller.options);\n\n if (keys.indexOf('ignoreNextMousedown') < 0) {\n // It seems like the controller has the above handler as an option\n // when all the right events are set and everything works fine\n // this seems to work in all cases\n this.refresh();\n }\n\n if (event.charCode === 13) {\n event.preventDefault();\n return;\n }\n };\n\n onClick = (event) => {\n const { onClick } = this.props;\n\n this.refresh();\n onClick && onClick(event);\n };\n\n shouldComponentUpdate(nextProps) {\n log('next: ', nextProps.latex);\n log('current: ', this.mathField.latex());\n\n return nextProps.latex !== this.mathField.latex();\n }\n\n render() {\n const { onFocus, onBlur, className } = this.props;\n\n return (\n <StyledSpan\n className={className}\n onKeyDown={this.onKeyPress}\n onClick={this.onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(r) => (this.input = r)}\n />\n );\n }\n}\n\nexport default Input;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MQ = void 0;
8
+ exports.applyStaticMath = applyStaticMath;
9
+ exports.registerEmbed = registerEmbed;
10
+ var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
11
+ var _customElements = require("./custom-elements");
12
+ var MQ;
13
+ if (typeof window !== 'undefined') {
14
+ exports.MQ = MQ = _mathquill["default"].getInterface(3);
15
+ if (MQ && MQ.registerEmbed) {
16
+ (0, _customElements.registerLineBreak)(MQ);
17
+ }
18
+ }
19
+
20
+ /**
21
+ * Register a MathQuill embed (e.g. answer blocks in pie-elements).
22
+ * No-op in SSR or if the interface is unavailable.
23
+ *
24
+ * @param {string} name
25
+ * @param {Function} factory
26
+ */
27
+ function registerEmbed(name, factory) {
28
+ if (!MQ || !MQ.registerEmbed) {
29
+ return;
30
+ }
31
+ MQ.registerEmbed(name, factory);
32
+ }
33
+
34
+ /**
35
+ * Apply MathQuill static math to a DOM element.
36
+ * Optionally sets element text to `latex` before enhancing (typical pie-elements usage).
37
+ *
38
+ * @param {HTMLElement} element
39
+ * @param {string} [latex] If provided, assigned to element.textContent before StaticMath runs.
40
+ * @param {object} [options] Optional MathQuill StaticMath options (e.g. handlers).
41
+ * @returns {object|undefined} MathQuill static math instance, if any.
42
+ */
43
+ function applyStaticMath(element, latex, options) {
44
+ if (!MQ || !element) {
45
+ return undefined;
46
+ }
47
+ if (latex !== undefined && latex !== null) {
48
+ element.textContent = latex;
49
+ }
50
+ return MQ.StaticMath(element, options);
51
+ }
52
+ //# sourceMappingURL=mathquill-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathquill-instance.js","names":["_mathquill","_interopRequireDefault","require","_customElements","MQ","window","exports","MathQuill","getInterface","registerEmbed","registerLineBreak","name","factory","applyStaticMath","element","latex","options","undefined","textContent","StaticMath"],"sources":["../../src/mq/mathquill-instance.js"],"sourcesContent":["import MathQuill from '@pie-framework/mathquill';\nimport { registerLineBreak } from './custom-elements';\n\nlet MQ;\nif (typeof window !== 'undefined') {\n MQ = MathQuill.getInterface(3);\n if (MQ && MQ.registerEmbed) {\n registerLineBreak(MQ);\n }\n}\n\n/**\n * Register a MathQuill embed (e.g. answer blocks in pie-elements).\n * No-op in SSR or if the interface is unavailable.\n *\n * @param {string} name\n * @param {Function} factory\n */\nexport function registerEmbed(name, factory) {\n if (!MQ || !MQ.registerEmbed) {\n return;\n }\n MQ.registerEmbed(name, factory);\n}\n\n/**\n * Apply MathQuill static math to a DOM element.\n * Optionally sets element text to `latex` before enhancing (typical pie-elements usage).\n *\n * @param {HTMLElement} element\n * @param {string} [latex] If provided, assigned to element.textContent before StaticMath runs.\n * @param {object} [options] Optional MathQuill StaticMath options (e.g. handlers).\n * @returns {object|undefined} MathQuill static math instance, if any.\n */\nexport function applyStaticMath(element, latex, options) {\n if (!MQ || !element) {\n return undefined;\n }\n if (latex !== undefined && latex !== null) {\n element.textContent = latex;\n }\n return MQ.StaticMath(element, options);\n}\n\nexport { MQ };\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAIE,EAAE;AACN,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;EACjCC,OAAA,CAAAF,EAAA,GAAAA,EAAE,GAAGG,qBAAS,CAACC,YAAY,CAAC,CAAC,CAAC;EAC9B,IAAIJ,EAAE,IAAIA,EAAE,CAACK,aAAa,EAAE;IAC1B,IAAAC,iCAAiB,EAACN,EAAE,CAAC;EACvB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,aAAaA,CAACE,IAAI,EAAEC,OAAO,EAAE;EAC3C,IAAI,CAACR,EAAE,IAAI,CAACA,EAAE,CAACK,aAAa,EAAE;IAC5B;EACF;EACAL,EAAE,CAACK,aAAa,CAACE,IAAI,EAAEC,OAAO,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACvD,IAAI,CAACZ,EAAE,IAAI,CAACU,OAAO,EAAE;IACnB,OAAOG,SAAS;EAClB;EACA,IAAIF,KAAK,KAAKE,SAAS,IAAIF,KAAK,KAAK,IAAI,EAAE;IACzCD,OAAO,CAACI,WAAW,GAAGH,KAAK;EAC7B;EACA,OAAOX,EAAE,CAACe,UAAU,CAACL,OAAO,EAAEE,OAAO,CAAC;AACxC","ignoreList":[]}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _debug = _interopRequireDefault(require("debug"));
17
+ var _updateSpans = require("../updateSpans");
18
+ var _mathquillInstance = require("./mathquill-instance");
19
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ var log = (0, _debug["default"])('pie-lib:math-input:mq:static');
22
+ var REGEX = /\\MathQuillMathField\[r\d*\]\{(.*?)\}/g;
23
+ var WHITESPACE_REGEX = / /g;
24
+ function stripSpaces() {
25
+ var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
26
+ return string.replace(WHITESPACE_REGEX, '');
27
+ }
28
+ function countBraces(latex) {
29
+ var count = 0;
30
+ for (var i = 0; i < (latex || '').length; i++) {
31
+ if (latex[i] === '{') {
32
+ count++;
33
+ }
34
+ }
35
+ return count;
36
+ }
37
+
38
+ /**
39
+ * Wrapper for MathQuill MQ.MathField.
40
+ */
41
+ var Static = exports["default"] = /*#__PURE__*/function (_React$Component) {
42
+ function Static(props) {
43
+ var _this;
44
+ (0, _classCallCheck2["default"])(this, Static);
45
+ _this = _callSuper(this, Static, [props]);
46
+ (0, _defineProperty2["default"])(_this, "createLiveRegion", function () {
47
+ _this.liveRegion = document.createElement('div');
48
+ _this.liveRegion.style.position = 'absolute';
49
+ _this.liveRegion.style.width = '1px';
50
+ _this.liveRegion.style.height = '1px';
51
+ _this.liveRegion.style.marginTop = '-1px';
52
+ _this.liveRegion.style.clip = 'rect(1px, 1px, 1px, 1px)';
53
+ _this.liveRegion.style.overflow = 'hidden';
54
+ _this.liveRegion.setAttribute('aria-live', 'polite');
55
+ _this.liveRegion.setAttribute('aria-atomic', 'true');
56
+ document.body.appendChild(_this.liveRegion);
57
+ });
58
+ (0, _defineProperty2["default"])(_this, "addEventListeners", function () {
59
+ var input = _this.inputRef.current;
60
+ if (input) {
61
+ input.addEventListener('keydown', _this.handleKeyDown);
62
+ input.addEventListener('click', _this.handleMathKeyboardClick);
63
+ }
64
+ });
65
+ (0, _defineProperty2["default"])(_this, "removeEventListeners", function () {
66
+ var input = _this.inputRef.current;
67
+ if (input) {
68
+ input.removeEventListener('keydown', _this.handleKeyDown);
69
+ input.removeEventListener('click', _this.handleMathKeyboardClick);
70
+ }
71
+ });
72
+ (0, _defineProperty2["default"])(_this, "removeLiveRegion", function () {
73
+ if (_this.liveRegion) {
74
+ document.body.removeChild(_this.liveRegion);
75
+ _this.liveRegion = null;
76
+ }
77
+ });
78
+ (0, _defineProperty2["default"])(_this, "handleKeyDown", function (event) {
79
+ if ((event === null || event === void 0 ? void 0 : event.key) === 'Backspace' || (event === null || event === void 0 ? void 0 : event.key) === 'Delete') {
80
+ _this.setState({
81
+ isDeleteKeyPressed: true
82
+ });
83
+ }
84
+ _this.setState({
85
+ inputSource: 'keyboard'
86
+ });
87
+ });
88
+ (0, _defineProperty2["default"])(_this, "handleMathKeyboardClick", function () {
89
+ _this.setState({
90
+ inputSource: 'mathKeyboard'
91
+ });
92
+ });
93
+ (0, _defineProperty2["default"])(_this, "onInputEdit", function (field) {
94
+ if (!_this.mathField || _this._isProgrammaticUpdate) {
95
+ return;
96
+ }
97
+ var name = _this.props.getFieldName(field, _this.mathField.innerFields);
98
+ if (_this.props.onSubFieldChange) {
99
+ var _this$inputRef;
100
+ // eslint-disable-next-line no-useless-escape
101
+ var regexMatch = field.latex().match(/[0-9]\\ \\frac\{[^\{]*\}\{ \}/);
102
+ if ((_this$inputRef = _this.inputRef) !== null && _this$inputRef !== void 0 && _this$inputRef.current && regexMatch && regexMatch !== null && regexMatch !== void 0 && regexMatch.length) {
103
+ try {
104
+ field.__controller.cursor.insLeftOf(field.__controller.cursor.parent[-1].parent);
105
+ field.el().dispatchEvent(new KeyboardEvent('keydown', {
106
+ keyCode: 8
107
+ }));
108
+ } catch (e) {
109
+ // eslint-disable-next-line no-console
110
+ console.error(e.toString());
111
+ }
112
+ } else {
113
+ _this.props.onSubFieldChange(name, field.latex());
114
+ }
115
+ }
116
+ _this.announceLatexConversion(field.latex());
117
+ });
118
+ (0, _defineProperty2["default"])(_this, "announceLatexConversion", function (newLatex) {
119
+ if (!_this.state) {
120
+ // eslint-disable-next-line no-console
121
+ console.error('State is not initialized');
122
+ return;
123
+ }
124
+ var _this$state = _this.state,
125
+ previousLatex = _this$state.previousLatex,
126
+ inputSource = _this$state.inputSource,
127
+ isDeleteKeyPressed = _this$state.isDeleteKeyPressed;
128
+ var announcement = 'Converted to math symbol';
129
+ if (inputSource === 'keyboard' && !isDeleteKeyPressed) {
130
+ var newBraces = countBraces(newLatex);
131
+ var oldBraces = countBraces(previousLatex);
132
+ if (newBraces > oldBraces) {
133
+ _this.announceMessage(announcement);
134
+ } else {
135
+ try {
136
+ _this.mathField.parseLatex(previousLatex);
137
+ _this.mathField.parseLatex(newLatex);
138
+ if (newLatex == previousLatex) {
139
+ _this.announceMessage(announcement);
140
+ }
141
+ } catch (e) {
142
+ // eslint-disable-next-line no-console
143
+ console.warn('Error parsing latex:', e.message);
144
+ // eslint-disable-next-line no-console
145
+ console.warn(e);
146
+ }
147
+ }
148
+ }
149
+
150
+ // Only setState when values change to avoid "Maximum update depth exceeded"
151
+ if (_this.state.previousLatex !== newLatex || _this.state.isDeleteKeyPressed) {
152
+ _this.setState({
153
+ previousLatex: newLatex,
154
+ isDeleteKeyPressed: false
155
+ });
156
+ }
157
+ });
158
+ (0, _defineProperty2["default"])(_this, "announceMessage", function (message) {
159
+ _this.setState({
160
+ previousLatex: ''
161
+ });
162
+ if (_this.liveRegion) {
163
+ _this.liveRegion.textContent = message;
164
+
165
+ // Clear the message after it is announced
166
+ setTimeout(function () {
167
+ _this.liveRegion.textContent = '';
168
+ }, 500);
169
+ }
170
+ });
171
+ (0, _defineProperty2["default"])(_this, "update", function () {
172
+ if (!_mathquillInstance.MQ) {
173
+ throw new Error('MQ is not defined - but component has mounted?');
174
+ }
175
+ if (!_this.mathField) {
176
+ var _this$inputRef2;
177
+ _this.mathField = _mathquillInstance.MQ.StaticMath((_this$inputRef2 = _this.inputRef) === null || _this$inputRef2 === void 0 ? void 0 : _this$inputRef2.current, {
178
+ handlers: {
179
+ edit: _this.onInputEdit.bind(_this)
180
+ }
181
+ });
182
+ }
183
+ try {
184
+ _this._isProgrammaticUpdate = true;
185
+ _this.mathField.parseLatex(_this.props.latex);
186
+ _this.mathField.latex(_this.props.latex);
187
+ } catch (e) {
188
+ // default latex if received has errors
189
+ _this.mathField.latex('\\MathQuillMathField[r1]{}');
190
+ } finally {
191
+ _this._isProgrammaticUpdate = false;
192
+ }
193
+ });
194
+ (0, _defineProperty2["default"])(_this, "blur", function () {
195
+ log('blur mathfield');
196
+ _this.mathField.blur();
197
+ });
198
+ (0, _defineProperty2["default"])(_this, "focus", function () {
199
+ log('focus mathfield...');
200
+ _this.mathField.focus();
201
+ });
202
+ (0, _defineProperty2["default"])(_this, "onFocus", function (e) {
203
+ try {
204
+ var rootBlock = e.target.parentElement.nextSibling;
205
+ var id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
206
+ if (!id) {
207
+ rootBlock = rootBlock.parentElement;
208
+ id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
209
+ }
210
+ var innerField = _this.mathField.innerFields.find(function (f) {
211
+ return f.id === id;
212
+ });
213
+ if (innerField) {
214
+ var name = _this.props.getFieldName(innerField, _this.mathField.innerFields);
215
+ if (_this.props.setInput) {
216
+ _this.props.setInput(innerField);
217
+ }
218
+ _this.props.onSubFieldFocus(name, innerField);
219
+ }
220
+ } catch (err) {
221
+ // eslint-disable-next-line no-console
222
+ console.error('error finding root block', err.message);
223
+ }
224
+ });
225
+ _this.state = {
226
+ announcement: '',
227
+ previousLatex: '',
228
+ inputSource: null,
229
+ isDeleteKeyPressed: false
230
+ };
231
+ _this.inputRef = /*#__PURE__*/_react["default"].createRef();
232
+ return _this;
233
+ }
234
+ (0, _inherits2["default"])(Static, _React$Component);
235
+ return (0, _createClass2["default"])(Static, [{
236
+ key: "componentDidMount",
237
+ value: function componentDidMount() {
238
+ this.update();
239
+ (0, _updateSpans.updateSpans)();
240
+ this.createLiveRegion();
241
+ this.addEventListeners();
242
+ }
243
+ }, {
244
+ key: "componentDidUpdate",
245
+ value: function componentDidUpdate() {
246
+ this.update();
247
+ (0, _updateSpans.updateSpans)();
248
+ }
249
+ }, {
250
+ key: "componentWillUnmount",
251
+ value: function componentWillUnmount() {
252
+ this.removeLiveRegion();
253
+ this.removeEventListeners();
254
+ }
255
+ }, {
256
+ key: "shouldComponentUpdate",
257
+ value: function shouldComponentUpdate(nextProps) {
258
+ try {
259
+ var parsedLatex = this.mathField.parseLatex(nextProps.latex);
260
+ var stripped = stripSpaces(parsedLatex);
261
+ var newFieldCount = (nextProps.latex.match(REGEX) || []).length;
262
+ var out = stripped !== stripSpaces(this.mathField.latex().trim()) || newFieldCount !== Object.keys(this.mathField.innerFields).length / 2;
263
+ log('[shouldComponentUpdate] ', out);
264
+ return out;
265
+ } catch (e) {
266
+ // eslint-disable-next-line no-console
267
+ console.warn('Error parsing latex:', e.message, 'skip update');
268
+ // eslint-disable-next-line no-console
269
+ console.warn(e);
270
+ return false;
271
+ }
272
+ }
273
+ }, {
274
+ key: "render",
275
+ value: function render() {
276
+ var _this$props = this.props,
277
+ onBlur = _this$props.onBlur,
278
+ className = _this$props.className;
279
+ return /*#__PURE__*/_react["default"].createElement("span", {
280
+ className: className,
281
+ onFocus: this.onFocus,
282
+ onBlur: onBlur,
283
+ ref: this.inputRef
284
+ });
285
+ }
286
+ }]);
287
+ }(_react["default"].Component);
288
+ (0, _defineProperty2["default"])(Static, "propTypes", {
289
+ latex: _propTypes["default"].string.isRequired,
290
+ onFocus: _propTypes["default"].func,
291
+ onBlur: _propTypes["default"].func,
292
+ className: _propTypes["default"].string,
293
+ getFieldName: _propTypes["default"].func,
294
+ onSubFieldChange: _propTypes["default"].func,
295
+ onSubFieldFocus: _propTypes["default"].func,
296
+ setInput: _propTypes["default"].func
297
+ });
298
+ (0, _defineProperty2["default"])(Static, "defaultProps", {
299
+ getFieldName: function getFieldName() {}
300
+ });
301
+ //# sourceMappingURL=static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.js","names":["_propTypes","_interopRequireDefault","require","_react","_debug","_updateSpans","_mathquillInstance","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","log","debug","REGEX","WHITESPACE_REGEX","stripSpaces","string","arguments","length","undefined","replace","countBraces","latex","count","i","Static","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","liveRegion","document","createElement","style","position","width","height","marginTop","clip","overflow","setAttribute","body","appendChild","input","inputRef","current","addEventListener","handleKeyDown","handleMathKeyboardClick","removeEventListener","removeChild","event","key","setState","isDeleteKeyPressed","inputSource","field","mathField","_isProgrammaticUpdate","name","getFieldName","innerFields","onSubFieldChange","_this$inputRef","regexMatch","match","__controller","cursor","insLeftOf","parent","el","dispatchEvent","KeyboardEvent","keyCode","console","error","toString","announceLatexConversion","newLatex","state","_this$state","previousLatex","announcement","newBraces","oldBraces","announceMessage","parseLatex","warn","message","textContent","setTimeout","MQ","Error","_this$inputRef2","StaticMath","handlers","edit","onInputEdit","bind","blur","focus","rootBlock","target","parentElement","nextSibling","id","parseInt","getAttribute","innerField","find","f","setInput","onSubFieldFocus","err","React","createRef","_inherits2","_createClass2","value","componentDidMount","update","updateSpans","createLiveRegion","addEventListeners","componentDidUpdate","componentWillUnmount","removeLiveRegion","removeEventListeners","shouldComponentUpdate","nextProps","parsedLatex","stripped","newFieldCount","out","trim","Object","keys","render","_this$props","onBlur","className","onFocus","ref","Component","PropTypes","isRequired","func"],"sources":["../../src/mq/static.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { updateSpans } from '../updateSpans';\nimport { MQ } from './mathquill-instance';\n\nconst log = debug('pie-lib:math-input:mq:static');\nconst REGEX = /\\\\MathQuillMathField\\[r\\d*\\]\\{(.*?)\\}/g;\nconst WHITESPACE_REGEX = / /g;\n\nfunction stripSpaces(string = '') {\n return string.replace(WHITESPACE_REGEX, '');\n}\n\nfunction countBraces(latex) {\n let count = 0;\n\n for (let i = 0; i < (latex || '').length; i++) {\n if (latex[i] === '{') {\n count++;\n }\n }\n\n return count;\n}\n\n/**\n * Wrapper for MathQuill MQ.MathField.\n */\nexport default class Static extends React.Component {\n static propTypes = {\n latex: PropTypes.string.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string,\n getFieldName: PropTypes.func,\n onSubFieldChange: PropTypes.func,\n onSubFieldFocus: PropTypes.func,\n setInput: PropTypes.func,\n };\n\n static defaultProps = {\n getFieldName: () => {},\n };\n\n constructor(props) {\n super(props);\n this.state = {\n announcement: '',\n previousLatex: '',\n inputSource: null,\n isDeleteKeyPressed: false,\n };\n\n this.inputRef = React.createRef();\n }\n\n componentDidMount() {\n this.update();\n updateSpans();\n\n this.createLiveRegion();\n this.addEventListeners();\n }\n\n componentDidUpdate() {\n this.update();\n updateSpans();\n }\n\n componentWillUnmount() {\n this.removeLiveRegion();\n this.removeEventListeners();\n }\n\n createLiveRegion = () => {\n this.liveRegion = document.createElement('div');\n this.liveRegion.style.position = 'absolute';\n this.liveRegion.style.width = '1px';\n this.liveRegion.style.height = '1px';\n this.liveRegion.style.marginTop = '-1px';\n this.liveRegion.style.clip = 'rect(1px, 1px, 1px, 1px)';\n this.liveRegion.style.overflow = 'hidden';\n this.liveRegion.setAttribute('aria-live', 'polite');\n this.liveRegion.setAttribute('aria-atomic', 'true');\n\n document.body.appendChild(this.liveRegion);\n };\n\n addEventListeners = () => {\n const input = this.inputRef.current;\n\n if (input) {\n input.addEventListener('keydown', this.handleKeyDown);\n input.addEventListener('click', this.handleMathKeyboardClick);\n }\n };\n\n removeEventListeners = () => {\n const input = this.inputRef.current;\n\n if (input) {\n input.removeEventListener('keydown', this.handleKeyDown);\n input.removeEventListener('click', this.handleMathKeyboardClick);\n }\n };\n\n removeLiveRegion = () => {\n if (this.liveRegion) {\n document.body.removeChild(this.liveRegion);\n this.liveRegion = null;\n }\n };\n\n handleKeyDown = (event) => {\n if (event?.key === 'Backspace' || event?.key === 'Delete') {\n this.setState({ isDeleteKeyPressed: true });\n }\n this.setState({ inputSource: 'keyboard' });\n };\n\n handleMathKeyboardClick = () => {\n this.setState({ inputSource: 'mathKeyboard' });\n };\n\n onInputEdit = (field) => {\n if (!this.mathField || this._isProgrammaticUpdate) {\n return;\n }\n const name = this.props.getFieldName(field, this.mathField.innerFields);\n\n if (this.props.onSubFieldChange) {\n // eslint-disable-next-line no-useless-escape\n const regexMatch = field.latex().match(/[0-9]\\\\ \\\\frac\\{[^\\{]*\\}\\{ \\}/);\n\n if (this.inputRef?.current && regexMatch && regexMatch?.length) {\n try {\n field.__controller.cursor.insLeftOf(field.__controller.cursor.parent[-1].parent);\n field.el().dispatchEvent(new KeyboardEvent('keydown', { keyCode: 8 }));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n } else {\n this.props.onSubFieldChange(name, field.latex());\n }\n }\n\n this.announceLatexConversion(field.latex());\n };\n\n announceLatexConversion = (newLatex) => {\n if (!this.state) {\n // eslint-disable-next-line no-console\n console.error('State is not initialized');\n return;\n }\n\n const { previousLatex, inputSource, isDeleteKeyPressed } = this.state;\n const announcement = 'Converted to math symbol';\n\n if (inputSource === 'keyboard' && !isDeleteKeyPressed) {\n const newBraces = countBraces(newLatex);\n const oldBraces = countBraces(previousLatex);\n\n if (newBraces > oldBraces) {\n this.announceMessage(announcement);\n } else {\n try {\n this.mathField.parseLatex(previousLatex);\n this.mathField.parseLatex(newLatex);\n\n if (newLatex == previousLatex) {\n this.announceMessage(announcement);\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Error parsing latex:', e.message);\n // eslint-disable-next-line no-console\n console.warn(e);\n }\n }\n }\n\n // Only setState when values change to avoid \"Maximum update depth exceeded\"\n if (this.state.previousLatex !== newLatex || this.state.isDeleteKeyPressed) {\n this.setState({ previousLatex: newLatex, isDeleteKeyPressed: false });\n }\n };\n\n announceMessage = (message) => {\n this.setState({ previousLatex: '' });\n\n if (this.liveRegion) {\n this.liveRegion.textContent = message;\n\n // Clear the message after it is announced\n setTimeout(() => {\n this.liveRegion.textContent = '';\n }, 500);\n }\n };\n\n update = () => {\n if (!MQ) {\n throw new Error('MQ is not defined - but component has mounted?');\n }\n if (!this.mathField) {\n this.mathField = MQ.StaticMath(this.inputRef?.current, {\n handlers: {\n edit: this.onInputEdit.bind(this),\n },\n });\n }\n\n try {\n this._isProgrammaticUpdate = true;\n this.mathField.parseLatex(this.props.latex);\n this.mathField.latex(this.props.latex);\n } catch (e) {\n // default latex if received has errors\n this.mathField.latex('\\\\MathQuillMathField[r1]{}');\n } finally {\n this._isProgrammaticUpdate = false;\n }\n };\n\n\n blur = () => {\n log('blur mathfield');\n this.mathField.blur();\n };\n\n focus = () => {\n log('focus mathfield...');\n this.mathField.focus();\n };\n\n shouldComponentUpdate(nextProps) {\n try {\n const parsedLatex = this.mathField.parseLatex(nextProps.latex);\n const stripped = stripSpaces(parsedLatex);\n const newFieldCount = (nextProps.latex.match(REGEX) || []).length;\n\n const out =\n stripped !== stripSpaces(this.mathField.latex().trim()) ||\n newFieldCount !== Object.keys(this.mathField.innerFields).length / 2;\n\n log('[shouldComponentUpdate] ', out);\n return out;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('Error parsing latex:', e.message, 'skip update');\n // eslint-disable-next-line no-console\n console.warn(e);\n return false;\n }\n }\n\n onFocus = (e) => {\n try {\n let rootBlock = e.target.parentElement.nextSibling;\n let id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);\n\n if (!id) {\n rootBlock = rootBlock.parentElement;\n id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);\n }\n\n const innerField = this.mathField.innerFields.find((f) => f.id === id);\n\n if (innerField) {\n const name = this.props.getFieldName(innerField, this.mathField.innerFields);\n if (this.props.setInput) {\n this.props.setInput(innerField);\n }\n this.props.onSubFieldFocus(name, innerField);\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('error finding root block', err.message);\n }\n };\n\n render() {\n const { onBlur, className } = this.props;\n\n return <span className={className} onFocus={this.onFocus} onBlur={onBlur} ref={this.inputRef} />;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateSpans = void 0;
7
+ // increase the font of parallel notation
8
+ var updateSpans = exports.updateSpans = function updateSpans() {
9
+ var spans = Array.from(document.querySelectorAll('span[mathquill-command-id]'));
10
+ (spans || []).forEach(function (span) {
11
+ if (span && span.innerText === '∥' && span.className !== 'mq-editable-field') {
12
+ span.style.fontSize = '32px';
13
+ }
14
+ if ((span.innerText === '′' || span.innerText === '′′') && !span.hasAttribute('data-prime')) {
15
+ span.setAttribute('data-prime', 'true');
16
+ }
17
+ });
18
+ };
19
+ //# sourceMappingURL=updateSpans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateSpans.js","names":["updateSpans","exports","spans","Array","from","document","querySelectorAll","forEach","span","innerText","className","style","fontSize","hasAttribute","setAttribute"],"sources":["../src/updateSpans.js"],"sourcesContent":["// increase the font of parallel notation\nconst updateSpans = () => {\n const spans = Array.from(document.querySelectorAll('span[mathquill-command-id]'));\n (spans || []).forEach((span) => {\n if (span && span.innerText === '∥' && span.className !== 'mq-editable-field') {\n span.style.fontSize = '32px';\n }\n\n if ((span.innerText === '′' || span.innerText === '′′') && !span.hasAttribute('data-prime')) {\n span.setAttribute('data-prime', 'true');\n }\n });\n};\n\nexport { updateSpans };\n"],"mappings":";;;;;;AAAA;AACA,IAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAA,EAAS;EACxB,IAAME,KAAK,GAAGC,KAAK,CAACC,IAAI,CAACC,QAAQ,CAACC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;EACjF,CAACJ,KAAK,IAAI,EAAE,EAAEK,OAAO,CAAC,UAACC,IAAI,EAAK;IAC9B,IAAIA,IAAI,IAAIA,IAAI,CAACC,SAAS,KAAK,GAAG,IAAID,IAAI,CAACE,SAAS,KAAK,mBAAmB,EAAE;MAC5EF,IAAI,CAACG,KAAK,CAACC,QAAQ,GAAG,MAAM;IAC9B;IAEA,IAAI,CAACJ,IAAI,CAACC,SAAS,KAAK,GAAG,IAAID,IAAI,CAACC,SAAS,KAAK,IAAI,KAAK,CAACD,IAAI,CAACK,YAAY,CAAC,YAAY,CAAC,EAAE;MAC3FL,IAAI,CAACM,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;IACzC;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}