@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.
- package/CHANGELOG.md +11 -0
- package/lib/horizontal-keypad.js +30 -6
- package/lib/horizontal-keypad.js.map +1 -1
- package/lib/index.js +21 -2
- package/lib/index.js.map +1 -1
- package/lib/keypad/index.js +63 -7
- package/lib/keypad/index.js.map +1 -1
- package/lib/keypad/keys-layout.js +8 -0
- package/lib/keypad/keys-layout.js.map +1 -1
- package/lib/keys/basic-operators.js +3 -0
- package/lib/keys/basic-operators.js.map +1 -1
- package/lib/keys/chars.js.map +1 -1
- package/lib/keys/comparison.js +6 -0
- package/lib/keys/comparison.js.map +1 -1
- package/lib/keys/constants.js +2 -0
- package/lib/keys/constants.js.map +1 -1
- package/lib/keys/digits.js +5 -0
- package/lib/keys/digits.js.map +1 -1
- package/lib/keys/edit.js +2 -0
- package/lib/keys/edit.js.map +1 -1
- package/lib/keys/exponent.js +2 -0
- package/lib/keys/exponent.js.map +1 -1
- package/lib/keys/fractions.js +2 -0
- package/lib/keys/fractions.js.map +1 -1
- package/lib/keys/geometry.js +6 -0
- package/lib/keys/geometry.js.map +1 -1
- package/lib/keys/grades.js +35 -2
- package/lib/keys/grades.js.map +1 -1
- package/lib/keys/index.js +28 -11
- package/lib/keys/index.js.map +1 -1
- package/lib/keys/log.js +2 -0
- package/lib/keys/log.js.map +1 -1
- package/lib/keys/logic.js +2 -0
- package/lib/keys/logic.js.map +1 -1
- package/lib/keys/matrices.js +2 -0
- package/lib/keys/matrices.js.map +1 -1
- package/lib/keys/misc.js +2 -0
- package/lib/keys/misc.js.map +1 -1
- package/lib/keys/navigation.js +3 -0
- package/lib/keys/navigation.js.map +1 -1
- package/lib/keys/operators.js +2 -0
- package/lib/keys/operators.js.map +1 -1
- package/lib/keys/statistics.js +2 -0
- package/lib/keys/statistics.js.map +1 -1
- package/lib/keys/sub-sup.js +2 -0
- package/lib/keys/sub-sup.js.map +1 -1
- package/lib/keys/trigonometry.js +2 -0
- package/lib/keys/trigonometry.js.map +1 -1
- package/lib/keys/utils.js +28 -0
- package/lib/keys/utils.js.map +1 -1
- package/lib/keys/vars.js +2 -0
- package/lib/keys/vars.js.map +1 -1
- package/lib/math-input.js +39 -4
- package/lib/math-input.js.map +1 -1
- package/lib/mq/custom-elements.js +2 -0
- package/lib/mq/custom-elements.js.map +1 -1
- package/lib/mq/index.js +3 -0
- package/lib/mq/index.js.map +1 -1
- package/lib/mq/input.js +50 -6
- package/lib/mq/input.js.map +1 -1
- package/lib/mq/static.js +46 -7
- package/lib/mq/static.js.map +1 -1
- 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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
package/lib/mq/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
166
|
-
|
|
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,
|
package/lib/mq/static.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAIA,EAAJ;;AACA,IAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;AACjCD,EAAAA,EAAE,GAAGE,sBAAUC,YAAV,CAAuB,CAAvB,CAAL;AACD;;AAED,IAAMC,GAAG,GAAG,uBAAM,8BAAN,CAAZ;AACA,IAAMC,KAAK,GAAG,wCAAd;AACA,IAAMC,gBAAgB,GAAG,IAAzB;;AAEA,SAASC,WAAT,GAAkC;AAAA,MAAbC,MAAa,uEAAJ,EAAI;AAChC,SAAOA,MAAM,CAACC,OAAP,CAAeH,gBAAf,EAAiC,EAAjC,CAAP;AACD;AAED;AACA;AACA;;;IACqBI,M;;;;;;;;;;;;;;;gGAkGT,UAACC,CAAD,EAAO;AACf,UAAI;AACF,YAAIC,SAAS,GAAGD,CAAC,CAACE,MAAF,CAASC,aAAT,CAAuBC,WAAvC;AACA,YAAIC,EAAE,GAAGC,QAAQ,CAACL,SAAS,CAACM,YAAV,CAAuB,oBAAvB,CAAD,EAA+C,EAA/C,CAAjB;;AAEA,YAAI,CAACF,EAAL,EAAS;AACPJ,UAAAA,SAAS,GAAGA,SAAS,CAACE,aAAtB;AACAE,UAAAA,EAAE,GAAGC,QAAQ,CAACL,SAAS,CAACM,YAAV,CAAuB,oBAAvB,CAAD,EAA+C,EAA/C,CAAb;AACD;;AAED,YAAMC,UAAU,GAAG,MAAKC,SAAL,CAAeC,WAAf,CAA2BC,IAA3B,CAAgC,UAACC,CAAD;AAAA,iBAAOA,CAAC,CAACP,EAAF,KAASA,EAAhB;AAAA,SAAhC,CAAnB;;AAEA,YAAIG,UAAJ,EAAgB;AACd,cAAMK,IAAI,GAAG,MAAKC,KAAL,CAAWC,YAAX,CAAwBP,UAAxB,EAAoC,MAAKC,SAAL,CAAeC,WAAnD,CAAb;;AACA,cAAI,MAAKI,KAAL,CAAWE,QAAf,EAAyB;AACvB,kBAAKF,KAAL,CAAWE,QAAX,CAAoBR,UAApB;AACD;;AACD,gBAAKM,KAAL,CAAWG,eAAX,CAA2BJ,IAA3B,EAAiCL,UAAjC;AACD;AACF,OAlBD,CAkBE,OAAOU,GAAP,EAAY;AACZ;AACAC,QAAAA,OAAO,CAACC,KAAR,CAAc,0BAAd,EAA0CF,GAAG,CAACG,OAA9C;AACD;AACF,K;;;;;;WA7GD,6BAAoB;AAClB,WAAKC,MAAL;AACA;AACD;;;WAED,8BAAqB;AACnB,WAAKA,MAAL;AACA;AACD;;;WAED,qBAAYC,KAAZ,EAAmB;AACjB,UAAI,CAAC,KAAKd,SAAV,EAAqB;AACnB;AACD;;AACD,UAAMI,IAAI,GAAG,KAAKC,KAAL,CAAWC,YAAX,CAAwBQ,KAAxB,EAA+B,KAAKd,SAAL,CAAeC,WAA9C,CAAb;;AAEA,UAAI,KAAKI,KAAL,CAAWU,gBAAf,EAAiC;AAC/B;AACA,YAAMC,UAAU,GAAGF,KAAK,CAACG,KAAN,GAAcC,KAAd,CAAoB,+BAApB,CAAnB;;AAEA,YAAI,KAAKC,KAAL,IAAcH,UAAd,IAA4BA,UAA5B,aAA4BA,UAA5B,eAA4BA,UAAU,CAAEI,MAA5C,EAAoD;AAClD,cAAI;AACFN,YAAAA,KAAK,CAACO,YAAN,CAAmBC,MAAnB,CAA0BC,SAA1B,CAAoCT,KAAK,CAACO,YAAN,CAAmBC,MAAnB,CAA0BE,MAA1B,CAAiC,CAAC,CAAlC,EAAqCA,MAAzE;;AACAV,YAAAA,KAAK,CAACW,EAAN,GAAWC,aAAX,CAAyB,IAAIC,aAAJ,CAAkB,SAAlB,EAA6B;AAAEC,cAAAA,OAAO,EAAE;AAAX,aAA7B,CAAzB;AACD,WAHD,CAGE,OAAOrC,CAAP,EAAU;AACVmB,YAAAA,OAAO,CAACC,KAAR,CAAcpB,CAAC,CAACsC,QAAF,EAAd;AACD;AACF,SAPD,MAOO;AACL,eAAKxB,KAAL,CAAWU,gBAAX,CAA4BX,IAA5B,EAAkCU,KAAK,CAACG,KAAN,EAAlC;AACD;AACF;AACF;;;WAED,kBAAS;AACP,UAAI,CAACrC,EAAL,EAAS;AACP,cAAM,IAAIkD,KAAJ,CAAU,gDAAV,CAAN;AACD,OAHM,CAIP;;;AACA,UAAI,CAAC,KAAK9B,SAAV,EAAqB;AACnB,aAAKA,SAAL,GAAiBpB,EAAE,CAACmD,UAAH,CAAc,KAAKZ,KAAnB,EAA0B;AACzCa,UAAAA,QAAQ,EAAE;AACRC,YAAAA,IAAI,EAAE,KAAKC,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB;AADE;AAD+B,SAA1B,CAAjB;AAKD;;AAED,UAAI;AACF,aAAKnC,SAAL,CAAeoC,UAAf,CAA0B,KAAK/B,KAAL,CAAWY,KAArC;AACA,aAAKjB,SAAL,CAAeiB,KAAf,CAAqB,KAAKZ,KAAL,CAAWY,KAAhC;AACD,OAHD,CAGE,OAAO1B,CAAP,EAAU;AACV;AACA,aAAKS,SAAL,CAAeiB,KAAf,CAAqB,4BAArB;AACD;AACF;;;WAED,gBAAO;AACLjC,MAAAA,GAAG,CAAC,gBAAD,CAAH;AACA,WAAKgB,SAAL,CAAeqC,IAAf;AACD;;;WAED,iBAAQ;AACNrD,MAAAA,GAAG,CAAC,oBAAD,CAAH;AACA,WAAKgB,SAAL,CAAesC,KAAf;AACD;;;WAED,+BAAsBC,SAAtB,EAAiC;AAC/B,UAAI;AACF,YAAMC,WAAW,GAAG,KAAKxC,SAAL,CAAeoC,UAAf,CAA0BG,SAAS,CAACtB,KAApC,CAApB;AACA,YAAMwB,QAAQ,GAAGtD,WAAW,CAACqD,WAAD,CAA5B;AACA,YAAME,aAAa,GAAG,CAACH,SAAS,CAACtB,KAAV,CAAgBC,KAAhB,CAAsBjC,KAAtB,KAAgC,EAAjC,EAAqCmC,MAA3D;AAEA,YAAMuB,GAAG,GACPF,QAAQ,KAAKtD,WAAW,CAAC,KAAKa,SAAL,CAAeiB,KAAf,GAAuB2B,IAAvB,EAAD,CAAxB,IACAF,aAAa,KAAKG,MAAM,CAACC,IAAP,CAAY,KAAK9C,SAAL,CAAeC,WAA3B,EAAwCmB,MAAxC,GAAiD,CAFrE;AAIApC,QAAAA,GAAG,CAAC,0BAAD,EAA6B2D,GAA7B,CAAH;AACA,eAAOA,GAAP;AACD,OAXD,CAWE,OAAOpD,CAAP,EAAU;AACV;AACAmB,QAAAA,OAAO,CAACqC,IAAR,CAAa,sBAAb,EAAqCxD,CAAC,CAACqB,OAAvC,EAAgD,aAAhD,EAFU,CAGV;;AACAF,QAAAA,OAAO,CAACqC,IAAR,CAAaxD,CAAb;AACA,eAAO,KAAP;AACD;AACF;;;WA2BD,kBAAS;AAAA;;AACP,wBAA8B,KAAKc,KAAnC;AAAA,UAAQ2C,MAAR,eAAQA,MAAR;AAAA,UAAgBC,SAAhB,eAAgBA,SAAhB;AAEA,0BAAO;AAAM,QAAA,SAAS,EAAEA,SAAjB;AAA4B,QAAA,OAAO,EAAE,KAAKC,OAA1C;AAAmD,QAAA,MAAM,EAAEF,MAA3D;AAAmE,QAAA,GAAG,EAAE,aAACG,CAAD;AAAA,iBAAQ,MAAI,CAAChC,KAAL,GAAagC,CAArB;AAAA;AAAxE,QAAP;AACD;;;EA/HiCC,kBAAMC,S;;;iCAArB/D,M,eACA;AACjB2B,EAAAA,KAAK,EAAEqC,sBAAUlE,MAAV,CAAiBmE,UADP;AAEjBL,EAAAA,OAAO,EAAEI,sBAAUE,IAFF;AAGjBR,EAAAA,MAAM,EAAEM,sBAAUE,IAHD;AAIjBP,EAAAA,SAAS,EAAEK,sBAAUlE,MAJJ;AAKjBkB,EAAAA,YAAY,EAAEgD,sBAAUE,IALP;AAMjBzC,EAAAA,gBAAgB,EAAEuC,sBAAUE,IANX;AAOjBhD,EAAAA,eAAe,EAAE8C,sBAAUE,IAPV;AAQjBjD,EAAAA,QAAQ,EAAE+C,sBAAUE;AARH,C","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.
|
|
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": "
|
|
25
|
+
"gitHead": "252c387e845b7f3b5887d10ae458cefb76ad3fa5"
|
|
26
26
|
}
|