@pie-lib/math-input 6.6.9 → 6.7.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.
- package/CHANGELOG.md +34 -0
- package/lib/horizontal-keypad.js +24 -32
- package/lib/horizontal-keypad.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/keypad/index.js +61 -59
- package/lib/keypad/index.js.map +1 -1
- package/lib/keypad/keys-layout.js +1 -1
- package/lib/keys/comparison.js +5 -3
- package/lib/keys/comparison.js.map +1 -1
- package/lib/keys/digits.js +2 -2
- package/lib/keys/digits.js.map +1 -1
- package/lib/keys/geometry.js +5 -3
- package/lib/keys/geometry.js.map +1 -1
- package/lib/keys/grades.js +11 -23
- package/lib/keys/grades.js.map +1 -1
- package/lib/keys/index.js +3 -3
- package/lib/keys/index.js.map +1 -1
- package/lib/keys/utils.js +7 -17
- package/lib/keys/utils.js.map +1 -1
- package/lib/math-input.js +27 -41
- package/lib/math-input.js.map +1 -1
- package/lib/mq/index.js +2 -2
- package/lib/mq/index.js.map +1 -1
- package/lib/mq/input.js +23 -35
- package/lib/mq/input.js.map +1 -1
- package/lib/mq/static.js +19 -29
- package/lib/mq/static.js.map +1 -1
- package/package.json +2 -2
- package/src/horizontal-keypad.jsx +3 -1
- package/src/keypad/index.jsx +38 -5
- package/src/keys/grades.js +1 -1
package/lib/math-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/math-input.jsx"],"names":["log","MathInput","props","key","input","latex","command","write","keystroke","setState","focused","l","onChange","state","classes","className","keyset","showKeypad","mathInput","mqInput","r","inputFocus","inputBlur","changeLatex","pad","baseSet","keypadPress","React","Component","PropTypes","object","isRequired","string","array","displayMode","oneOf","func","grey","styles","theme","formGroup","display","textAlign","width","borderRadius","border","marginTop","spacing","unit","marginBottom","transition","palette","primary","main","light","padding","outline","boxShadow","dark"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/math-input.jsx"],"names":["log","MathInput","props","key","input","latex","command","write","keystroke","setState","focused","l","onChange","state","classes","className","keyset","showKeypad","mathInput","mqInput","r","inputFocus","inputBlur","changeLatex","pad","baseSet","keypadPress","React","Component","PropTypes","object","isRequired","string","array","displayMode","oneOf","func","grey","styles","theme","formGroup","display","textAlign","width","borderRadius","border","marginTop","spacing","unit","marginBottom","transition","palette","primary","main","light","padding","outline","boxShadow","dark"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport * as mq from './mq';\nimport { baseSet } from './keys';\nimport KeyPad from './keypad';\nimport debug from 'debug';\n\nconst log = debug('pie-lib:math-input');\n\nexport class MathInput extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n keyset: PropTypes.array,\n displayMode: PropTypes.oneOf(['block', 'block-on-focus']),\n latex: PropTypes.string,\n onChange: PropTypes.func\n };\n\n static defaultProps = {\n keyset: [],\n displayMode: 'block'\n };\n\n constructor(props) {\n super(props);\n this.state = {\n focused: false\n };\n }\n\n keypadPress = key => {\n log('[keypadPress] key:', key);\n\n if (!this.input) {\n return;\n }\n\n if (key.latex && !key.command) {\n this.input.write(key.latex);\n } else if (key.write) {\n this.input.write(key.write);\n } else if (key.command) {\n this.input.command(key.command);\n } else if (key.keystroke) {\n this.input.keystroke(key.keystroke);\n }\n };\n\n inputFocus = () => {\n this.setState({ focused: true });\n };\n\n inputBlur = () => {\n this.setState({ focused: false });\n };\n\n changeLatex = l => {\n const { onChange } = this.props;\n\n if (onChange && l !== this.props.latex) {\n log('[changeLatex]', l, this.props.latex);\n onChange(l);\n }\n };\n\n render() {\n const { classes, className, keyset, latex } = this.props;\n const { focused } = this.state;\n\n const showKeypad = true; // TODO: add support for different displayModes - displayMode === 'block' || focused;\n\n return (\n <div className={classNames(classes.mathInput, className, focused && classes.focused)}>\n <mq.Input\n className={classes.mqInput}\n innerRef={r => (this.input = r)}\n onFocus={this.inputFocus}\n onBlur={this.inputBlur}\n latex={latex}\n onChange={this.changeLatex}\n />\n {showKeypad && (\n <div className={classes.pad}>\n <KeyPad baseSet={baseSet} additionalKeys={keyset} onPress={this.keypadPress} />\n </div>\n )}\n </div>\n );\n }\n}\n\nconst grey = 'rgba(0, 0, 0, 0.23)';\nconst styles = theme => ({\n formGroup: {\n display: 'flex',\n textAlign: 'right',\n float: 'right'\n },\n pad: {\n width: '100%',\n display: 'flex'\n },\n mathInput: {\n borderRadius: '4px',\n border: `solid 1px ${grey}`,\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n transition: 'border 200ms linear'\n },\n focused: {\n border: `solid 1px ${theme.palette.primary.main}`\n },\n mqInput: {\n width: '100%',\n border: `solid 0px ${theme.palette.primary.light}`,\n transition: 'border 200ms linear',\n padding: theme.spacing.unit,\n '&.mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: `solid 0px ${theme.palette.primary.dark}`\n }\n }\n});\nexport default withStyles(styles)(MathInput);\n"],"file":"math-input.js"}
|
package/lib/mq/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -19,6 +21,4 @@ Object.defineProperty(exports, "Static", {
|
|
|
19
21
|
var _input = _interopRequireDefault(require("./input"));
|
|
20
22
|
|
|
21
23
|
var _static = _interopRequireDefault(require("./static"));
|
|
22
|
-
|
|
23
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/lib/mq/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mq/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/mq/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["import Input from './input';\nimport Static from './static';\n\nexport { Input, Static };\n"],"file":"index.js"}
|
package/lib/mq/input.js
CHANGED
|
@@ -1,50 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = exports.Input = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
11
|
|
|
14
|
-
var
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
17
|
|
|
20
|
-
var
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
var _react = _interopRequireDefault(require("react"));
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
var _styles = require("@material-ui/core/styles");
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
35
33
|
|
|
36
|
-
|
|
34
|
+
var _customElements = require("./custom-elements");
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
39
37
|
|
|
40
|
-
function
|
|
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); }; }
|
|
41
39
|
|
|
42
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; } }
|
|
43
41
|
|
|
44
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
45
|
-
|
|
46
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
47
|
-
|
|
48
42
|
var MQ;
|
|
49
43
|
|
|
50
44
|
if (typeof window !== 'undefined') {
|
|
@@ -61,22 +55,21 @@ var log = (0, _debug["default"])('math-input:mq:input');
|
|
|
61
55
|
*/
|
|
62
56
|
|
|
63
57
|
var Input = /*#__PURE__*/function (_React$Component) {
|
|
64
|
-
|
|
58
|
+
(0, _inherits2["default"])(Input, _React$Component);
|
|
65
59
|
|
|
66
60
|
var _super = _createSuper(Input);
|
|
67
61
|
|
|
68
62
|
function Input() {
|
|
69
63
|
var _this;
|
|
70
64
|
|
|
71
|
-
|
|
65
|
+
(0, _classCallCheck2["default"])(this, Input);
|
|
72
66
|
|
|
73
67
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
74
68
|
args[_key] = arguments[_key];
|
|
75
69
|
}
|
|
76
70
|
|
|
77
71
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
78
|
-
|
|
79
|
-
_defineProperty(_assertThisInitialized(_this), "onInputEdit", function () {
|
|
72
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onInputEdit", function () {
|
|
80
73
|
log('[onInputEdit] ...');
|
|
81
74
|
var onChange = _this.props.onChange;
|
|
82
75
|
|
|
@@ -88,14 +81,12 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
88
81
|
onChange(_this.mathField.latex());
|
|
89
82
|
}
|
|
90
83
|
});
|
|
91
|
-
|
|
92
|
-
_defineProperty(_assertThisInitialized(_this), "refresh", function () {
|
|
84
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "refresh", function () {
|
|
93
85
|
_this.blur();
|
|
94
86
|
|
|
95
87
|
_this.focus();
|
|
96
88
|
});
|
|
97
|
-
|
|
98
|
-
_defineProperty(_assertThisInitialized(_this), "onKeyPress", function (event) {
|
|
89
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onKeyPress", function (event) {
|
|
99
90
|
var keys = Object.keys(_this.mathField.__controller.options);
|
|
100
91
|
|
|
101
92
|
if (keys.indexOf('ignoreNextMousedown') < 0) {
|
|
@@ -114,11 +105,10 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
114
105
|
_this.onInputEdit();
|
|
115
106
|
}
|
|
116
107
|
});
|
|
117
|
-
|
|
118
108
|
return _this;
|
|
119
109
|
}
|
|
120
110
|
|
|
121
|
-
|
|
111
|
+
(0, _createClass2["default"])(Input, [{
|
|
122
112
|
key: "componentDidMount",
|
|
123
113
|
value: function componentDidMount() {
|
|
124
114
|
if (!MQ) {
|
|
@@ -231,13 +221,11 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
231
221
|
});
|
|
232
222
|
}
|
|
233
223
|
}]);
|
|
234
|
-
|
|
235
224
|
return Input;
|
|
236
225
|
}(_react["default"].Component);
|
|
237
226
|
|
|
238
227
|
exports.Input = Input;
|
|
239
|
-
|
|
240
|
-
_defineProperty(Input, "propTypes", {
|
|
228
|
+
(0, _defineProperty2["default"])(Input, "propTypes", {
|
|
241
229
|
className: _propTypes["default"].string,
|
|
242
230
|
classes: _propTypes["default"].object.isRequired,
|
|
243
231
|
onClick: _propTypes["default"].func,
|
package/lib/mq/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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,46 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
var _react = _interopRequireDefault(require("react"));
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
var _index = require("../index");
|
|
35
33
|
|
|
36
|
-
function
|
|
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); }; }
|
|
37
35
|
|
|
38
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; } }
|
|
39
37
|
|
|
40
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
|
-
|
|
42
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
|
-
|
|
44
38
|
var MQ;
|
|
45
39
|
|
|
46
40
|
if (typeof window !== 'undefined') {
|
|
@@ -61,22 +55,21 @@ function stripSpaces() {
|
|
|
61
55
|
|
|
62
56
|
|
|
63
57
|
var Static = /*#__PURE__*/function (_React$Component) {
|
|
64
|
-
|
|
58
|
+
(0, _inherits2["default"])(Static, _React$Component);
|
|
65
59
|
|
|
66
60
|
var _super = _createSuper(Static);
|
|
67
61
|
|
|
68
62
|
function Static() {
|
|
69
63
|
var _this;
|
|
70
64
|
|
|
71
|
-
|
|
65
|
+
(0, _classCallCheck2["default"])(this, Static);
|
|
72
66
|
|
|
73
67
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
74
68
|
args[_key] = arguments[_key];
|
|
75
69
|
}
|
|
76
70
|
|
|
77
71
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
78
|
-
|
|
79
|
-
_defineProperty(_assertThisInitialized(_this), "onFocus", function (e) {
|
|
72
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function (e) {
|
|
80
73
|
try {
|
|
81
74
|
var rootBlock = e.target.parentElement.nextSibling;
|
|
82
75
|
var id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
|
|
@@ -104,11 +97,10 @@ var Static = /*#__PURE__*/function (_React$Component) {
|
|
|
104
97
|
console.error('error finding root block', err.message);
|
|
105
98
|
}
|
|
106
99
|
});
|
|
107
|
-
|
|
108
100
|
return _this;
|
|
109
101
|
}
|
|
110
102
|
|
|
111
|
-
|
|
103
|
+
(0, _createClass2["default"])(Static, [{
|
|
112
104
|
key: "componentDidMount",
|
|
113
105
|
value: function componentDidMount() {
|
|
114
106
|
this.update();
|
|
@@ -205,13 +197,11 @@ var Static = /*#__PURE__*/function (_React$Component) {
|
|
|
205
197
|
});
|
|
206
198
|
}
|
|
207
199
|
}]);
|
|
208
|
-
|
|
209
200
|
return Static;
|
|
210
201
|
}(_react["default"].Component);
|
|
211
202
|
|
|
212
203
|
exports["default"] = Static;
|
|
213
|
-
|
|
214
|
-
_defineProperty(Static, "propTypes", {
|
|
204
|
+
(0, _defineProperty2["default"])(Static, "propTypes", {
|
|
215
205
|
latex: _propTypes["default"].string.isRequired,
|
|
216
206
|
onFocus: _propTypes["default"].func,
|
|
217
207
|
onBlur: _propTypes["default"].func,
|
package/lib/mq/static.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","latex","Error","StaticMath","input","handlers","edit","onInputEdit","bind","parseLatex","blur","focus","nextProps","parsedLatex","stripped","newFieldCount","match","length","out","trim","Object","keys","warn","onBlur","className","onFocus","r","React","Component","PropTypes","isRequired","func"],"mappings":"
|
|
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","latex","Error","StaticMath","input","handlers","edit","onInputEdit","bind","parseLatex","blur","focus","nextProps","parsedLatex","stripped","newFieldCount","match","length","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 if (this.props.onSubFieldChange) {\n this.props.onSubFieldChange(name, field.latex());\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 (\n <span\n className={className}\n onFocus={this.onFocus}\n onBlur={onBlur}\n ref={r => (this.input = r)}\n />\n );\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.7.1",
|
|
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": "856c051f8dcb735d955408ffcfe49f22f96729c9"
|
|
26
26
|
}
|
|
@@ -18,6 +18,7 @@ export default class HorizontalKeypad extends React.Component {
|
|
|
18
18
|
static propTypes = {
|
|
19
19
|
className: PropTypes.string,
|
|
20
20
|
mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
21
|
+
layoutForKeyPad: PropTypes.object,
|
|
21
22
|
onClick: PropTypes.func.isRequired,
|
|
22
23
|
onFocus: PropTypes.func,
|
|
23
24
|
noDecimal: PropTypes.bool,
|
|
@@ -37,7 +38,7 @@ export default class HorizontalKeypad extends React.Component {
|
|
|
37
38
|
};
|
|
38
39
|
|
|
39
40
|
render() {
|
|
40
|
-
const { mode, onFocus, noDecimal, className, additionalKeys } = this.props;
|
|
41
|
+
const { mode, onFocus, noDecimal, className, additionalKeys, layoutForKeyPad } = this.props;
|
|
41
42
|
const normalizedKeys = normalizeAdditionalKeys(additionalKeys);
|
|
42
43
|
|
|
43
44
|
return (
|
|
@@ -45,6 +46,7 @@ export default class HorizontalKeypad extends React.Component {
|
|
|
45
46
|
className={className}
|
|
46
47
|
onFocus={onFocus}
|
|
47
48
|
noDecimal={noDecimal}
|
|
49
|
+
layoutForKeyPad={layoutForKeyPad}
|
|
48
50
|
additionalKeys={extendKeySet(keysForGrade(mode), normalizedKeys)}
|
|
49
51
|
onPress={this.keypadPress}
|
|
50
52
|
mode={mode}
|
package/src/keypad/index.jsx
CHANGED
|
@@ -166,12 +166,25 @@ const LatexButton = withStyles(theme => ({
|
|
|
166
166
|
);
|
|
167
167
|
});
|
|
168
168
|
|
|
169
|
+
const createCustomLayout = layoutObj => {
|
|
170
|
+
if (layoutObj) {
|
|
171
|
+
return {
|
|
172
|
+
gridTemplateColumns: `repeat(${layoutObj.columns}, minmax(min-content, 150px))`,
|
|
173
|
+
gridTemplateRows: `repeat(${layoutObj.rows}, minmax(40px, 60px))`,
|
|
174
|
+
gridAutoFlow: 'initial'
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return {};
|
|
179
|
+
};
|
|
180
|
+
|
|
169
181
|
export class KeyPad extends React.Component {
|
|
170
182
|
static propTypes = {
|
|
171
183
|
classes: PropTypes.object.isRequired,
|
|
172
184
|
className: PropTypes.string,
|
|
173
185
|
baseSet: PropTypes.array,
|
|
174
186
|
additionalKeys: PropTypes.array,
|
|
187
|
+
layoutForKeyPad: PropTypes.object,
|
|
175
188
|
onPress: PropTypes.func.isRequired,
|
|
176
189
|
onFocus: PropTypes.func,
|
|
177
190
|
noDecimal: PropTypes.bool,
|
|
@@ -207,14 +220,23 @@ export class KeyPad extends React.Component {
|
|
|
207
220
|
};
|
|
208
221
|
|
|
209
222
|
render() {
|
|
210
|
-
const {
|
|
223
|
+
const {
|
|
224
|
+
classes,
|
|
225
|
+
className,
|
|
226
|
+
baseSet,
|
|
227
|
+
additionalKeys,
|
|
228
|
+
layoutForKeyPad,
|
|
229
|
+
onFocus,
|
|
230
|
+
mode
|
|
231
|
+
} = this.props;
|
|
211
232
|
|
|
212
233
|
const noBaseSet = [
|
|
213
234
|
'non-negative-integers',
|
|
214
235
|
'integers',
|
|
215
236
|
'decimals',
|
|
216
237
|
'fractions',
|
|
217
|
-
'item-authoring'
|
|
238
|
+
'item-authoring',
|
|
239
|
+
'language'
|
|
218
240
|
];
|
|
219
241
|
|
|
220
242
|
const keysWithoutBaseSet = noBaseSet.includes(mode);
|
|
@@ -225,10 +247,15 @@ export class KeyPad extends React.Component {
|
|
|
225
247
|
const shift = allKeys.length % 5 ? 1 : 0;
|
|
226
248
|
const style = {
|
|
227
249
|
gridTemplateColumns: `repeat(${Math.floor(allKeys.length / 5) +
|
|
228
|
-
shift}, minmax(min-content, 150px))
|
|
250
|
+
shift}, minmax(min-content, 150px))`,
|
|
251
|
+
...createCustomLayout(layoutForKeyPad)
|
|
229
252
|
};
|
|
230
253
|
return (
|
|
231
|
-
<div
|
|
254
|
+
<div
|
|
255
|
+
className={classNames(classes.keys, className, classes[mode])}
|
|
256
|
+
style={style}
|
|
257
|
+
onFocus={onFocus}
|
|
258
|
+
>
|
|
232
259
|
{allKeys.map((k, index) => {
|
|
233
260
|
const onClick = this.buttonClick.bind(this, k);
|
|
234
261
|
|
|
@@ -241,11 +268,14 @@ export class KeyPad extends React.Component {
|
|
|
241
268
|
className: classNames(
|
|
242
269
|
classes.labelButton,
|
|
243
270
|
!keysWithoutBaseSet && classes[k.category],
|
|
271
|
+
classes[k.extraClass],
|
|
244
272
|
k.label === ',' && classes.comma,
|
|
245
273
|
k.label === '.' && classes.dot
|
|
246
274
|
),
|
|
247
275
|
disabled: this.keyIsNotAllowed(k),
|
|
248
|
-
key: `${k.label || k.latex || k.command}-${index}
|
|
276
|
+
key: `${k.label || k.latex || k.command}-${index}`,
|
|
277
|
+
...(k.actions || {}),
|
|
278
|
+
...(k.extraProps || {})
|
|
249
279
|
};
|
|
250
280
|
|
|
251
281
|
if (k.latex) {
|
|
@@ -281,6 +311,9 @@ const styles = theme => ({
|
|
|
281
311
|
gridColumnGap: '0px',
|
|
282
312
|
gridAutoFlow: 'column'
|
|
283
313
|
},
|
|
314
|
+
character: {
|
|
315
|
+
textTransform: 'initial !important'
|
|
316
|
+
},
|
|
284
317
|
holder: {
|
|
285
318
|
position: 'relative',
|
|
286
319
|
width: '100%',
|
package/src/keys/grades.js
CHANGED