@pie-lib/math-input 6.9.1-next.53 → 6.10.0

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 (63) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/horizontal-keypad.js +30 -6
  3. package/lib/horizontal-keypad.js.map +1 -1
  4. package/lib/index.js +21 -2
  5. package/lib/index.js.map +1 -1
  6. package/lib/keypad/index.js +63 -7
  7. package/lib/keypad/index.js.map +1 -1
  8. package/lib/keypad/keys-layout.js +8 -0
  9. package/lib/keypad/keys-layout.js.map +1 -1
  10. package/lib/keys/basic-operators.js +3 -0
  11. package/lib/keys/basic-operators.js.map +1 -1
  12. package/lib/keys/chars.js.map +1 -1
  13. package/lib/keys/comparison.js +6 -0
  14. package/lib/keys/comparison.js.map +1 -1
  15. package/lib/keys/constants.js +2 -0
  16. package/lib/keys/constants.js.map +1 -1
  17. package/lib/keys/digits.js +5 -0
  18. package/lib/keys/digits.js.map +1 -1
  19. package/lib/keys/edit.js +2 -0
  20. package/lib/keys/edit.js.map +1 -1
  21. package/lib/keys/exponent.js +2 -0
  22. package/lib/keys/exponent.js.map +1 -1
  23. package/lib/keys/fractions.js +2 -0
  24. package/lib/keys/fractions.js.map +1 -1
  25. package/lib/keys/geometry.js +6 -0
  26. package/lib/keys/geometry.js.map +1 -1
  27. package/lib/keys/grades.js +35 -2
  28. package/lib/keys/grades.js.map +1 -1
  29. package/lib/keys/index.js +28 -11
  30. package/lib/keys/index.js.map +1 -1
  31. package/lib/keys/log.js +2 -0
  32. package/lib/keys/log.js.map +1 -1
  33. package/lib/keys/logic.js +2 -0
  34. package/lib/keys/logic.js.map +1 -1
  35. package/lib/keys/matrices.js +2 -0
  36. package/lib/keys/matrices.js.map +1 -1
  37. package/lib/keys/misc.js +2 -0
  38. package/lib/keys/misc.js.map +1 -1
  39. package/lib/keys/navigation.js +3 -0
  40. package/lib/keys/navigation.js.map +1 -1
  41. package/lib/keys/operators.js +2 -0
  42. package/lib/keys/operators.js.map +1 -1
  43. package/lib/keys/statistics.js +2 -0
  44. package/lib/keys/statistics.js.map +1 -1
  45. package/lib/keys/sub-sup.js +2 -0
  46. package/lib/keys/sub-sup.js.map +1 -1
  47. package/lib/keys/trigonometry.js +2 -0
  48. package/lib/keys/trigonometry.js.map +1 -1
  49. package/lib/keys/utils.js +28 -0
  50. package/lib/keys/utils.js.map +1 -1
  51. package/lib/keys/vars.js +2 -0
  52. package/lib/keys/vars.js.map +1 -1
  53. package/lib/math-input.js +39 -4
  54. package/lib/math-input.js.map +1 -1
  55. package/lib/mq/custom-elements.js +2 -0
  56. package/lib/mq/custom-elements.js.map +1 -1
  57. package/lib/mq/index.js +3 -0
  58. package/lib/mq/index.js.map +1 -1
  59. package/lib/mq/input.js +50 -6
  60. package/lib/mq/input.js.map +1 -1
  61. package/lib/mq/static.js +46 -7
  62. package/lib/mq/static.js.map +1 -1
  63. package/package.json +2 -2
package/lib/mq/input.js CHANGED
@@ -1,86 +1,120 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = exports.Input = void 0;
9
+
8
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
9
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
11
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
12
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
13
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
14
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
15
24
  var _react = _interopRequireDefault(require("react"));
25
+
16
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
17
28
  var _styles = require("@material-ui/core/styles");
29
+
18
30
  var _debug = _interopRequireDefault(require("debug"));
31
+
19
32
  var _classnames = _interopRequireDefault(require("classnames"));
33
+
20
34
  var _customElements = require("./custom-elements");
35
+
21
36
  var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
37
+
22
38
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
39
+
23
40
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
24
42
  var MQ;
43
+
25
44
  if (typeof window !== 'undefined') {
26
45
  MQ = _mathquill["default"].getInterface(2);
46
+
27
47
  if (MQ && MQ.registerEmbed) {
28
48
  (0, _customElements.registerLineBreak)(MQ);
29
49
  }
30
50
  }
31
- var log = (0, _debug["default"])('math-input:mq:input');
32
51
 
52
+ var log = (0, _debug["default"])('math-input:mq:input');
33
53
  /**
34
54
  * Wrapper for MathQuill MQ.MathField.
35
55
  */
56
+
36
57
  var Input = /*#__PURE__*/function (_React$Component) {
37
58
  (0, _inherits2["default"])(Input, _React$Component);
59
+
38
60
  var _super = _createSuper(Input);
61
+
39
62
  function Input() {
40
63
  var _this;
64
+
41
65
  (0, _classCallCheck2["default"])(this, Input);
66
+
42
67
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43
68
  args[_key] = arguments[_key];
44
69
  }
70
+
45
71
  _this = _super.call.apply(_super, [this].concat(args));
46
72
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onInputEdit", function () {
47
73
  log('[onInputEdit] ...');
48
74
  var onChange = _this.props.onChange;
75
+
49
76
  if (!_this.mathField) {
50
77
  return;
51
78
  }
79
+
52
80
  if (onChange) {
53
81
  onChange(_this.mathField.latex());
54
82
  }
55
83
  });
56
84
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "refresh", function () {
57
85
  _this.blur();
86
+
58
87
  _this.focus();
59
88
  });
60
89
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onKeyPress", function (event) {
61
90
  var keys = Object.keys(_this.mathField.__controller.options);
91
+
62
92
  if (keys.indexOf('ignoreNextMousedown') < 0) {
63
93
  // It seems like the controller has the above handler as an option
64
94
  // when all the right events are set and everything works fine
65
95
  // this seems to work in all cases
66
96
  _this.refresh();
67
97
  }
98
+
68
99
  if (event.charCode === 13) {
69
100
  // if enter's pressed, we're going for a custom embedded element that'll
70
101
  // have a block display (empty div) - for a hacked line break using ccs
71
102
  // all because mathquill doesn't support a line break
72
103
  _this.write('\\embed{newLine}[]');
104
+
73
105
  _this.onInputEdit();
74
106
  }
75
107
  });
76
108
  return _this;
77
109
  }
110
+
78
111
  (0, _createClass2["default"])(Input, [{
79
112
  key: "componentDidMount",
80
113
  value: function componentDidMount() {
81
114
  if (!MQ) {
82
115
  throw new Error('MQ is not defined - but component has mounted?');
83
116
  }
117
+
84
118
  this.mathField = MQ.MathField(this.input, {
85
119
  handlers: {
86
120
  edit: this.onInputEdit.bind(this)
@@ -99,7 +133,9 @@ var Input = /*#__PURE__*/function (_React$Component) {
99
133
  if (!this.mathField) {
100
134
  return;
101
135
  }
136
+
102
137
  var latex = this.props.latex;
138
+
103
139
  if (latex) {
104
140
  this.mathField.latex(latex);
105
141
  }
@@ -126,7 +162,9 @@ var Input = /*#__PURE__*/function (_React$Component) {
126
162
  key: "command",
127
163
  value: function command(v) {
128
164
  var _this2 = this;
165
+
129
166
  log('command: ', v);
167
+
130
168
  if (Array.isArray(v)) {
131
169
  v.forEach(function (vv) {
132
170
  _this2.mathField.cmd(vv);
@@ -134,6 +172,7 @@ var Input = /*#__PURE__*/function (_React$Component) {
134
172
  } else {
135
173
  this.mathField.cmd(v);
136
174
  }
175
+
137
176
  this.mathField.focus();
138
177
  return this.mathField.latex();
139
178
  }
@@ -163,12 +202,13 @@ var Input = /*#__PURE__*/function (_React$Component) {
163
202
  key: "render",
164
203
  value: function render() {
165
204
  var _this3 = this;
205
+
166
206
  var _this$props = this.props,
167
- onClick = _this$props.onClick,
168
- onFocus = _this$props.onFocus,
169
- onBlur = _this$props.onBlur,
170
- classes = _this$props.classes,
171
- className = _this$props.className;
207
+ onClick = _this$props.onClick,
208
+ onFocus = _this$props.onFocus,
209
+ onBlur = _this$props.onBlur,
210
+ classes = _this$props.classes,
211
+ className = _this$props.className;
172
212
  return /*#__PURE__*/_react["default"].createElement("span", {
173
213
  className: (0, _classnames["default"])(classes.input, className),
174
214
  onKeyPress: this.onKeyPress,
@@ -183,6 +223,7 @@ var Input = /*#__PURE__*/function (_React$Component) {
183
223
  }]);
184
224
  return Input;
185
225
  }(_react["default"].Component);
226
+
186
227
  exports.Input = Input;
187
228
  (0, _defineProperty2["default"])(Input, "propTypes", {
188
229
  className: _propTypes["default"].string,
@@ -193,9 +234,12 @@ exports.Input = Input;
193
234
  onFocus: _propTypes["default"].func,
194
235
  onBlur: _propTypes["default"].func
195
236
  });
237
+
196
238
  var styles = function styles() {
197
239
  return {};
198
240
  };
241
+
199
242
  var _default = (0, _styles.withStyles)(styles)(Input);
243
+
200
244
  exports["default"] = _default;
201
245
  //# sourceMappingURL=input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":["MQ","window","MathQuill","getInterface","registerEmbed","registerLineBreak","log","debug","Input","onChange","props","mathField","latex","blur","focus","event","keys","Object","__controller","options","indexOf","refresh","charCode","write","onInputEdit","Error","MathField","input","handlers","edit","bind","updateLatex","v","Array","isArray","forEach","vv","cmd","keystroke","nextProps","onClick","onFocus","onBlur","classes","className","classNames","onKeyPress","r","React","Component","PropTypes","string","object","isRequired","func","styles","withStyles"],"sources":["../../src/mq/input.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport debug from 'debug';\nimport classNames from 'classnames';\nimport { registerLineBreak } from './custom-elements';\nimport MathQuill from '@pie-framework/mathquill';\n\nlet MQ;\nif (typeof window !== 'undefined') {\n MQ = MathQuill.getInterface(2);\n\n if (MQ && MQ.registerEmbed) {\n registerLineBreak(MQ);\n }\n}\n\nconst log = debug('math-input:mq:input');\n\n/**\n * Wrapper for MathQuill MQ.MathField.\n */\nexport class Input extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\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 const { latex } = this.props;\n if (latex) {\n this.mathField.latex(latex);\n }\n }\n\n clear() {\n this.mathField.latex('');\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 this.mathField.focus();\n return this.mathField.latex();\n }\n\n keystroke(v) {\n this.mathField.keystroke(v);\n this.mathField.focus();\n return this.mathField.latex();\n }\n\n write(v) {\n log('write: ', v);\n this.mathField.write(v);\n this.mathField.focus();\n return this.mathField.latex();\n }\n\n onInputEdit = () => {\n log('[onInputEdit] ...');\n const { onChange } = this.props;\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 // if enter's pressed, we're going for a custom embedded element that'll\n // have a block display (empty div) - for a hacked line break using ccs\n // all because mathquill doesn't support a line break\n this.write('\\\\embed{newLine}[]');\n this.onInputEdit();\n }\n };\n\n shouldComponentUpdate(nextProps) {\n log('next: ', nextProps.latex);\n log('current: ', this.mathField.latex());\n return nextProps.latex !== this.mathField.latex();\n }\n\n render() {\n const { onClick, onFocus, onBlur, classes, className } = this.props;\n\n return (\n <span\n className={classNames(classes.input, className)}\n onKeyPress={this.onKeyPress}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(r) => (this.input = r)}\n />\n );\n }\n}\n\nconst styles = () => ({});\n\nexport default withStyles(styles)(Input);\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/mq/input.jsx"],"names":["MQ","window","MathQuill","getInterface","registerEmbed","log","Input","onChange","props","mathField","latex","blur","focus","event","keys","Object","__controller","options","indexOf","refresh","charCode","write","onInputEdit","Error","MathField","input","handlers","edit","bind","updateLatex","v","Array","isArray","forEach","vv","cmd","keystroke","nextProps","onClick","onFocus","onBlur","classes","className","onKeyPress","r","React","Component","PropTypes","string","object","isRequired","func","styles"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport debug from 'debug';\nimport classNames from 'classnames';\nimport { registerLineBreak } from './custom-elements';\nimport MathQuill from '@pie-framework/mathquill';\n\nlet MQ;\nif (typeof window !== 'undefined') {\n MQ = MathQuill.getInterface(2);\n\n if (MQ && MQ.registerEmbed) {\n registerLineBreak(MQ);\n }\n}\n\nconst log = debug('math-input:mq:input');\n\n/**\n * Wrapper for MathQuill MQ.MathField.\n */\nexport class Input extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\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 const { latex } = this.props;\n if (latex) {\n this.mathField.latex(latex);\n }\n }\n\n clear() {\n this.mathField.latex('');\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 this.mathField.focus();\n return this.mathField.latex();\n }\n\n keystroke(v) {\n this.mathField.keystroke(v);\n this.mathField.focus();\n return this.mathField.latex();\n }\n\n write(v) {\n log('write: ', v);\n this.mathField.write(v);\n this.mathField.focus();\n return this.mathField.latex();\n }\n\n onInputEdit = () => {\n log('[onInputEdit] ...');\n const { onChange } = this.props;\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 // if enter's pressed, we're going for a custom embedded element that'll\n // have a block display (empty div) - for a hacked line break using ccs\n // all because mathquill doesn't support a line break\n this.write('\\\\embed{newLine}[]');\n this.onInputEdit();\n }\n };\n\n shouldComponentUpdate(nextProps) {\n log('next: ', nextProps.latex);\n log('current: ', this.mathField.latex());\n return nextProps.latex !== this.mathField.latex();\n }\n\n render() {\n const { onClick, onFocus, onBlur, classes, className } = this.props;\n\n return (\n <span\n className={classNames(classes.input, className)}\n onKeyPress={this.onKeyPress}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(r) => (this.input = r)}\n />\n );\n }\n}\n\nconst styles = () => ({});\n\nexport default withStyles(styles)(Input);\n"],"file":"input.js"}
package/lib/mq/static.js CHANGED
@@ -1,65 +1,95 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
9
+
8
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
9
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
11
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
12
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
13
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
14
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
15
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
+
16
26
  var _react = _interopRequireDefault(require("react"));
27
+
17
28
  var _debug = _interopRequireDefault(require("debug"));
29
+
18
30
  var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
31
+
19
32
  var _index = require("../index");
33
+
20
34
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
35
+
21
36
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
+
22
38
  var MQ;
39
+
23
40
  if (typeof window !== 'undefined') {
24
41
  MQ = _mathquill["default"].getInterface(2);
25
42
  }
43
+
26
44
  var log = (0, _debug["default"])('pie-lib:math-input:mq:static');
27
45
  var REGEX = /\\MathQuillMathField\[r\d*\]\{(.*?)\}/g;
28
46
  var WHITESPACE_REGEX = / /g;
47
+
29
48
  function stripSpaces() {
30
49
  var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
31
50
  return string.replace(WHITESPACE_REGEX, '');
32
51
  }
33
-
34
52
  /**
35
53
  * Wrapper for MathQuill MQ.MathField.
36
54
  */
55
+
56
+
37
57
  var Static = /*#__PURE__*/function (_React$Component) {
38
58
  (0, _inherits2["default"])(Static, _React$Component);
59
+
39
60
  var _super = _createSuper(Static);
61
+
40
62
  function Static() {
41
63
  var _this;
64
+
42
65
  (0, _classCallCheck2["default"])(this, Static);
66
+
43
67
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
44
68
  args[_key] = arguments[_key];
45
69
  }
70
+
46
71
  _this = _super.call.apply(_super, [this].concat(args));
47
72
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function (e) {
48
73
  try {
49
74
  var rootBlock = e.target.parentElement.nextSibling;
50
75
  var id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
76
+
51
77
  if (!id) {
52
78
  rootBlock = rootBlock.parentElement;
53
79
  id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
54
80
  }
81
+
55
82
  var innerField = _this.mathField.innerFields.find(function (f) {
56
83
  return f.id === id;
57
84
  });
85
+
58
86
  if (innerField) {
59
87
  var name = _this.props.getFieldName(innerField, _this.mathField.innerFields);
88
+
60
89
  if (_this.props.setInput) {
61
90
  _this.props.setInput(innerField);
62
91
  }
92
+
63
93
  _this.props.onSubFieldFocus(name, innerField);
64
94
  }
65
95
  } catch (err) {
@@ -69,6 +99,7 @@ var Static = /*#__PURE__*/function (_React$Component) {
69
99
  });
70
100
  return _this;
71
101
  }
102
+
72
103
  (0, _createClass2["default"])(Static, [{
73
104
  key: "componentDidMount",
74
105
  value: function componentDidMount() {
@@ -87,13 +118,17 @@ var Static = /*#__PURE__*/function (_React$Component) {
87
118
  if (!this.mathField) {
88
119
  return;
89
120
  }
121
+
90
122
  var name = this.props.getFieldName(field, this.mathField.innerFields);
123
+
91
124
  if (this.props.onSubFieldChange) {
92
125
  // eslint-disable-next-line no-useless-escape
93
126
  var regexMatch = field.latex().match(/[0-9]\\ \\frac\{[^\{]*\}\{ \}/);
127
+
94
128
  if (this.input && regexMatch && regexMatch !== null && regexMatch !== void 0 && regexMatch.length) {
95
129
  try {
96
130
  field.__controller.cursor.insLeftOf(field.__controller.cursor.parent[-1].parent);
131
+
97
132
  field.el().dispatchEvent(new KeyboardEvent('keydown', {
98
133
  keyCode: 8
99
134
  }));
@@ -110,8 +145,9 @@ var Static = /*#__PURE__*/function (_React$Component) {
110
145
  value: function update() {
111
146
  if (!MQ) {
112
147
  throw new Error('MQ is not defined - but component has mounted?');
113
- }
114
- // this.input.innerHTML = this.props.latex;
148
+ } // this.input.innerHTML = this.props.latex;
149
+
150
+
115
151
  if (!this.mathField) {
116
152
  this.mathField = MQ.StaticMath(this.input, {
117
153
  handlers: {
@@ -119,6 +155,7 @@ var Static = /*#__PURE__*/function (_React$Component) {
119
155
  }
120
156
  });
121
157
  }
158
+
122
159
  try {
123
160
  this.mathField.parseLatex(this.props.latex);
124
161
  this.mathField.latex(this.props.latex);
@@ -151,8 +188,8 @@ var Static = /*#__PURE__*/function (_React$Component) {
151
188
  return out;
152
189
  } catch (e) {
153
190
  // eslint-disable-next-line no-console
154
- console.warn('Error parsing latex:', e.message, 'skip update');
155
- // eslint-disable-next-line no-console
191
+ console.warn('Error parsing latex:', e.message, 'skip update'); // eslint-disable-next-line no-console
192
+
156
193
  console.warn(e);
157
194
  return false;
158
195
  }
@@ -161,9 +198,10 @@ var Static = /*#__PURE__*/function (_React$Component) {
161
198
  key: "render",
162
199
  value: function render() {
163
200
  var _this2 = this;
201
+
164
202
  var _this$props = this.props,
165
- onBlur = _this$props.onBlur,
166
- className = _this$props.className;
203
+ onBlur = _this$props.onBlur,
204
+ className = _this$props.className;
167
205
  return /*#__PURE__*/_react["default"].createElement("span", {
168
206
  className: className,
169
207
  onFocus: this.onFocus,
@@ -176,6 +214,7 @@ var Static = /*#__PURE__*/function (_React$Component) {
176
214
  }]);
177
215
  return Static;
178
216
  }(_react["default"].Component);
217
+
179
218
  exports["default"] = Static;
180
219
  (0, _defineProperty2["default"])(Static, "propTypes", {
181
220
  latex: _propTypes["default"].string.isRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"static.js","names":["MQ","window","MathQuill","getInterface","log","debug","REGEX","WHITESPACE_REGEX","stripSpaces","string","replace","Static","e","rootBlock","target","parentElement","nextSibling","id","parseInt","getAttribute","innerField","mathField","innerFields","find","f","name","props","getFieldName","setInput","onSubFieldFocus","err","console","error","message","update","updateSpans","field","onSubFieldChange","regexMatch","latex","match","input","length","__controller","cursor","insLeftOf","parent","el","dispatchEvent","KeyboardEvent","keyCode","toString","Error","StaticMath","handlers","edit","onInputEdit","bind","parseLatex","blur","focus","nextProps","parsedLatex","stripped","newFieldCount","out","trim","Object","keys","warn","onBlur","className","onFocus","r","React","Component","PropTypes","isRequired","func"],"sources":["../../src/mq/static.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport MathQuill from '@pie-framework/mathquill';\nimport { updateSpans } from '../index';\n\nlet MQ;\nif (typeof window !== 'undefined') {\n MQ = MathQuill.getInterface(2);\n}\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\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 componentDidMount() {\n this.update();\n updateSpans();\n }\n\n componentDidUpdate() {\n this.update();\n updateSpans();\n }\n\n onInputEdit(field) {\n if (!this.mathField) {\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.input && 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 console.error(e.toString());\n }\n } else {\n this.props.onSubFieldChange(name, field.latex());\n }\n }\n }\n\n update() {\n if (!MQ) {\n throw new Error('MQ is not defined - but component has mounted?');\n }\n // this.input.innerHTML = this.props.latex;\n if (!this.mathField) {\n this.mathField = MQ.StaticMath(this.input, {\n handlers: {\n edit: this.onInputEdit.bind(this),\n },\n });\n }\n\n try {\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 }\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={(r) => (this.input = r)} />;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/mq/static.jsx"],"names":["MQ","window","MathQuill","getInterface","log","REGEX","WHITESPACE_REGEX","stripSpaces","string","replace","Static","e","rootBlock","target","parentElement","nextSibling","id","parseInt","getAttribute","innerField","mathField","innerFields","find","f","name","props","getFieldName","setInput","onSubFieldFocus","err","console","error","message","update","field","onSubFieldChange","regexMatch","latex","match","input","length","__controller","cursor","insLeftOf","parent","el","dispatchEvent","KeyboardEvent","keyCode","toString","Error","StaticMath","handlers","edit","onInputEdit","bind","parseLatex","blur","focus","nextProps","parsedLatex","stripped","newFieldCount","out","trim","Object","keys","warn","onBlur","className","onFocus","r","React","Component","PropTypes","isRequired","func"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport MathQuill from '@pie-framework/mathquill';\nimport { updateSpans } from '../index';\n\nlet MQ;\nif (typeof window !== 'undefined') {\n MQ = MathQuill.getInterface(2);\n}\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\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 componentDidMount() {\n this.update();\n updateSpans();\n }\n\n componentDidUpdate() {\n this.update();\n updateSpans();\n }\n\n onInputEdit(field) {\n if (!this.mathField) {\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.input && 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 console.error(e.toString());\n }\n } else {\n this.props.onSubFieldChange(name, field.latex());\n }\n }\n }\n\n update() {\n if (!MQ) {\n throw new Error('MQ is not defined - but component has mounted?');\n }\n // this.input.innerHTML = this.props.latex;\n if (!this.mathField) {\n this.mathField = MQ.StaticMath(this.input, {\n handlers: {\n edit: this.onInputEdit.bind(this),\n },\n });\n }\n\n try {\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 }\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={(r) => (this.input = r)} />;\n }\n}\n"],"file":"static.js"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "6.9.1-next.53+cbb2d706",
6
+ "version": "6.10.0",
7
7
  "main": "lib/index.js",
8
8
  "module": "src/index.jsx",
9
9
  "dependencies": {
@@ -22,5 +22,5 @@
22
22
  "react-dom": "^16.9.0"
23
23
  },
24
24
  "scripts": {},
25
- "gitHead": "cbb2d70637263fd7d0bf2a0a7d0b4b75e2a7370c"
25
+ "gitHead": "252c387e845b7f3b5887d10ae458cefb76ad3fa5"
26
26
  }