@pie-lib/math-toolbar 1.31.2-next.0 → 1.33.0-mui-update.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 -7
- package/lib/done-button.js +34 -51
- package/lib/done-button.js.map +1 -1
- package/lib/editor-and-pad.js +285 -332
- package/lib/editor-and-pad.js.map +1 -1
- package/lib/index.js +64 -109
- package/lib/index.js.map +1 -1
- package/lib/math-preview.js +138 -185
- package/lib/math-preview.js.map +1 -1
- package/lib/utils.js +1 -5
- package/lib/utils.js.map +1 -1
- package/package.json +11 -9
- package/src/done-button.jsx +27 -33
- package/src/editor-and-pad.jsx +231 -229
- package/src/index.jsx +11 -14
- package/src/math-preview.jsx +124 -139
package/lib/editor-and-pad.js
CHANGED
|
@@ -1,74 +1,248 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = exports.EditorAndPad = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
22
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
14
|
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
15
|
var _debug = _interopRequireDefault(require("debug"));
|
|
27
|
-
|
|
28
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
-
|
|
30
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
37
|
-
|
|
38
|
-
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
39
|
-
|
|
18
|
+
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
19
|
+
var _styles = require("@mui/material/styles");
|
|
20
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
21
|
+
var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
40
22
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
41
|
-
|
|
23
|
+
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
|
|
24
|
+
var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
|
|
42
25
|
var _mathInput = require("@pie-lib/math-input");
|
|
43
|
-
|
|
44
26
|
var _renderUi = require("@pie-lib/render-ui");
|
|
45
|
-
|
|
46
27
|
var _utils = require("./utils");
|
|
47
|
-
|
|
48
|
-
function
|
|
49
|
-
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
|
-
|
|
54
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
55
|
-
|
|
28
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
29
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
30
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
31
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
56
32
|
var _mq$CommonMqStyles = _mathInput.mq.CommonMqStyles,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
33
|
+
commonMqFontStyles = _mq$CommonMqStyles.commonMqFontStyles,
|
|
34
|
+
commonMqKeyboardStyles = _mq$CommonMqStyles.commonMqKeyboardStyles,
|
|
35
|
+
longdivStyles = _mq$CommonMqStyles.longdivStyles,
|
|
36
|
+
supsubStyles = _mq$CommonMqStyles.supsubStyles;
|
|
61
37
|
var log = (0, _debug["default"])('@pie-lib:math-toolbar:editor-and-pad');
|
|
62
38
|
var decimalRegex = /\.|,/g;
|
|
63
|
-
|
|
39
|
+
var MathToolbarContainer = (0, _styles.styled)('div')(function (_ref) {
|
|
40
|
+
var theme = _ref.theme;
|
|
41
|
+
return {
|
|
42
|
+
zIndex: 9,
|
|
43
|
+
position: 'relative',
|
|
44
|
+
textAlign: 'center',
|
|
45
|
+
width: 'auto',
|
|
46
|
+
'& > .mq-math-mode': {
|
|
47
|
+
border: 'solid 1px lightgrey'
|
|
48
|
+
},
|
|
49
|
+
'& > .mq-focused': {
|
|
50
|
+
outline: 'none',
|
|
51
|
+
boxShadow: 'none',
|
|
52
|
+
border: "dotted 1px ".concat(theme.palette.primary.main),
|
|
53
|
+
borderRadius: '0px'
|
|
54
|
+
},
|
|
55
|
+
'& .mq-overarrow-inner': {
|
|
56
|
+
border: 'none !important',
|
|
57
|
+
paddingTop: '0 !important'
|
|
58
|
+
},
|
|
59
|
+
'& .mq-overarrow-inner-right': {
|
|
60
|
+
display: 'none !important'
|
|
61
|
+
},
|
|
62
|
+
'& .mq-overarrow-inner-left': {
|
|
63
|
+
display: 'none !important'
|
|
64
|
+
},
|
|
65
|
+
'& .mq-longdiv-inner': {
|
|
66
|
+
borderTop: '1px solid !important',
|
|
67
|
+
paddingTop: '1.5px !important'
|
|
68
|
+
},
|
|
69
|
+
'& .mq-overarrow.mq-arrow-both': {
|
|
70
|
+
top: '7.8px',
|
|
71
|
+
marginTop: '0px',
|
|
72
|
+
minWidth: '1.23em'
|
|
73
|
+
},
|
|
74
|
+
'& .mq-parallelogram': {
|
|
75
|
+
lineHeight: 0.85
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
var InputAndTypeContainer = (0, _styles.styled)('div')(function (_ref2) {
|
|
80
|
+
var theme = _ref2.theme,
|
|
81
|
+
hide = _ref2.hide;
|
|
82
|
+
return {
|
|
83
|
+
display: hide ? 'none' : 'flex',
|
|
84
|
+
alignItems: 'center',
|
|
85
|
+
'& .mq-editable-field .mq-cursor': {
|
|
86
|
+
top: '-4px'
|
|
87
|
+
},
|
|
88
|
+
'& .mq-math-mode .mq-selection, .mq-editable-field .mq-selection': {
|
|
89
|
+
paddingTop: '18px'
|
|
90
|
+
},
|
|
91
|
+
'& .mq-math-mode .mq-overarrow': {
|
|
92
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
93
|
+
},
|
|
94
|
+
'& .mq-math-mode .mq-overline .mq-overline-inner': {
|
|
95
|
+
paddingTop: '0.4em !important'
|
|
96
|
+
},
|
|
97
|
+
'& .mq-overarrow.mq-arrow-both': {
|
|
98
|
+
minWidth: '1.23em',
|
|
99
|
+
'& *': {
|
|
100
|
+
lineHeight: '1 !important'
|
|
101
|
+
},
|
|
102
|
+
'&:before': {
|
|
103
|
+
top: '-0.45em',
|
|
104
|
+
left: '-1px'
|
|
105
|
+
},
|
|
106
|
+
'&:after': {
|
|
107
|
+
position: 'absolute !important',
|
|
108
|
+
top: '0px !important',
|
|
109
|
+
right: '-2px'
|
|
110
|
+
},
|
|
111
|
+
'&.mq-empty:after': {
|
|
112
|
+
top: '-0.45em'
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
'& .mq-overarrow.mq-arrow-right': {
|
|
116
|
+
'&:before': {
|
|
117
|
+
top: '-0.4em',
|
|
118
|
+
right: '-1px'
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
'& *': _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, commonMqFontStyles), supsubStyles), longdivStyles), {}, {
|
|
122
|
+
'& .mq-math-mode .mq-sqrt-prefix': {
|
|
123
|
+
verticalAlign: 'baseline !important',
|
|
124
|
+
top: '1px !important',
|
|
125
|
+
left: '-0.1em !important'
|
|
126
|
+
},
|
|
127
|
+
'& .mq-math-mode .mq-overarc ': {
|
|
128
|
+
paddingTop: '0.45em !important'
|
|
129
|
+
},
|
|
130
|
+
'& .mq-math-mode .mq-empty': {
|
|
131
|
+
padding: '9px 1px !important'
|
|
132
|
+
},
|
|
133
|
+
'& .mq-math-mode .mq-root-block': {
|
|
134
|
+
paddingTop: '10px'
|
|
135
|
+
},
|
|
136
|
+
'& .mq-scaled .mq-sqrt-prefix': {
|
|
137
|
+
top: '0 !important'
|
|
138
|
+
},
|
|
139
|
+
'& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {
|
|
140
|
+
marginLeft: '4px !important',
|
|
141
|
+
paddingTop: '6px !important',
|
|
142
|
+
paddingLeft: '6px !important'
|
|
143
|
+
},
|
|
144
|
+
'& .mq-math-mode .mq-paren': {
|
|
145
|
+
verticalAlign: 'top !important',
|
|
146
|
+
padding: '1px 0.1em !important'
|
|
147
|
+
},
|
|
148
|
+
'& .mq-math-mode .mq-sqrt-stem': {
|
|
149
|
+
borderTop: '0.07em solid',
|
|
150
|
+
marginLeft: '-1.5px',
|
|
151
|
+
marginTop: '-2px !important',
|
|
152
|
+
paddingTop: '5px !important'
|
|
153
|
+
},
|
|
154
|
+
'& .mq-math-mode .mq-denominator': {
|
|
155
|
+
marginTop: '-5px !important',
|
|
156
|
+
padding: '0.5em 0.1em 0.1em !important'
|
|
157
|
+
},
|
|
158
|
+
'& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {
|
|
159
|
+
padding: '0 0.1em !important',
|
|
160
|
+
paddingBottom: '0 !important',
|
|
161
|
+
marginBottom: '-2px'
|
|
162
|
+
}
|
|
163
|
+
}),
|
|
164
|
+
'& span[data-prime="true"]': {
|
|
165
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
var StyledFormControl = (0, _styles.styled)(_FormControl["default"])({
|
|
170
|
+
flex: 'initial',
|
|
171
|
+
width: '25%',
|
|
172
|
+
minWidth: '100px',
|
|
173
|
+
marginLeft: '15px',
|
|
174
|
+
marginTop: '5px',
|
|
175
|
+
marginBottom: '5px',
|
|
176
|
+
marginRight: '5px',
|
|
177
|
+
'& label': {
|
|
178
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
179
|
+
},
|
|
180
|
+
'& div': {
|
|
181
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
var StyledInputLabel = (0, _styles.styled)(_InputLabel["default"])(function () {
|
|
185
|
+
return {
|
|
186
|
+
backgroundColor: 'transparent'
|
|
187
|
+
};
|
|
188
|
+
});
|
|
189
|
+
var InputContainerDiv = (0, _styles.styled)('div')(function (_ref3) {
|
|
190
|
+
var theme = _ref3.theme,
|
|
191
|
+
error = _ref3.error;
|
|
192
|
+
return _objectSpread(_objectSpread({
|
|
193
|
+
minWidth: '500px',
|
|
194
|
+
maxWidth: '900px',
|
|
195
|
+
minHeight: '30px',
|
|
196
|
+
width: '100%',
|
|
197
|
+
display: 'flex',
|
|
198
|
+
marginTop: theme.spacing(1),
|
|
199
|
+
marginBottom: theme.spacing(1)
|
|
200
|
+
}, error && {
|
|
201
|
+
border: '2px solid red'
|
|
202
|
+
}), {}, {
|
|
203
|
+
'& .mq-sqrt-prefix .mq-scaled': {
|
|
204
|
+
verticalAlign: 'middle !important'
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
var MathEditor = (0, _styles.styled)(_mathInput.mq.Input)(function (_ref4) {
|
|
209
|
+
var controlledKeypadMode = _ref4.controlledKeypadMode;
|
|
210
|
+
return {
|
|
211
|
+
maxWidth: controlledKeypadMode ? '400px' : '500px',
|
|
212
|
+
color: _renderUi.color.text(),
|
|
213
|
+
backgroundColor: _renderUi.color.background(),
|
|
214
|
+
padding: '2px'
|
|
215
|
+
};
|
|
216
|
+
});
|
|
217
|
+
var AddAnswerBlockButton = (0, _styles.styled)(_Button["default"])({
|
|
218
|
+
position: 'absolute',
|
|
219
|
+
right: '12px',
|
|
220
|
+
border: '1px solid lightgrey'
|
|
221
|
+
});
|
|
222
|
+
var StyledHr = (0, _styles.styled)('hr')(function (_ref5) {
|
|
223
|
+
var theme = _ref5.theme;
|
|
224
|
+
return {
|
|
225
|
+
padding: 0,
|
|
226
|
+
margin: 0,
|
|
227
|
+
height: '1px',
|
|
228
|
+
border: 'none',
|
|
229
|
+
borderBottom: "solid 1px ".concat(theme.palette.primary.main)
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
var KeyboardContainer = (0, _styles.styled)(_mathInput.HorizontalKeypad)(function (_ref6) {
|
|
233
|
+
var mode = _ref6.mode;
|
|
234
|
+
return _objectSpread(_objectSpread({}, commonMqKeyboardStyles), mode === 'language' && {
|
|
235
|
+
'& *': {
|
|
236
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
});
|
|
64
240
|
var toNodeData = function toNodeData(data) {
|
|
65
241
|
if (!data) {
|
|
66
242
|
return;
|
|
67
243
|
}
|
|
68
|
-
|
|
69
244
|
var type = data.type,
|
|
70
|
-
|
|
71
|
-
|
|
245
|
+
value = data.value;
|
|
72
246
|
if (type === 'command' || type === 'cursor') {
|
|
73
247
|
return data;
|
|
74
248
|
} else if (type === 'answer') {
|
|
@@ -86,42 +260,32 @@ var toNodeData = function toNodeData(data) {
|
|
|
86
260
|
};
|
|
87
261
|
}
|
|
88
262
|
};
|
|
89
|
-
|
|
90
|
-
var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
91
|
-
(0, _inherits2["default"])(EditorAndPad, _React$Component);
|
|
92
|
-
|
|
93
|
-
var _super = _createSuper(EditorAndPad);
|
|
94
|
-
|
|
263
|
+
var EditorAndPad = exports.EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
95
264
|
function EditorAndPad(props) {
|
|
96
265
|
var _this;
|
|
97
|
-
|
|
98
266
|
(0, _classCallCheck2["default"])(this, EditorAndPad);
|
|
99
|
-
_this =
|
|
100
|
-
(0, _defineProperty2["default"])(
|
|
267
|
+
_this = _callSuper(this, EditorAndPad, [props]);
|
|
268
|
+
(0, _defineProperty2["default"])(_this, "onClick", function (data) {
|
|
101
269
|
var _this$props = _this.props,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
270
|
+
noDecimal = _this$props.noDecimal,
|
|
271
|
+
noLatexHandling = _this$props.noLatexHandling,
|
|
272
|
+
onChange = _this$props.onChange;
|
|
105
273
|
var c = toNodeData(data);
|
|
106
274
|
log('mathChange: ', c);
|
|
107
|
-
|
|
108
275
|
if (noLatexHandling) {
|
|
109
276
|
onChange(c.value);
|
|
110
277
|
return;
|
|
111
|
-
}
|
|
112
|
-
|
|
278
|
+
}
|
|
113
279
|
|
|
280
|
+
// if decimals are not allowed for this response, we discard the input
|
|
114
281
|
if (noDecimal && (c.value === '.' || c.value === ',')) {
|
|
115
282
|
return;
|
|
116
283
|
}
|
|
117
|
-
|
|
118
284
|
if (!c) {
|
|
119
285
|
return;
|
|
120
286
|
}
|
|
121
|
-
|
|
122
287
|
if (c.type === 'clear') {
|
|
123
288
|
log('call clear...');
|
|
124
|
-
|
|
125
289
|
_this.input.clear();
|
|
126
290
|
} else if (c.type === 'command') {
|
|
127
291
|
_this.input.command(c.value);
|
|
@@ -133,51 +297,42 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
133
297
|
_this.input.write(c.value);
|
|
134
298
|
}
|
|
135
299
|
});
|
|
136
|
-
(0, _defineProperty2["default"])(
|
|
300
|
+
(0, _defineProperty2["default"])(_this, "updateDisable", function (isEdit) {
|
|
137
301
|
var maxResponseAreas = _this.props.maxResponseAreas;
|
|
138
|
-
|
|
139
302
|
if (maxResponseAreas) {
|
|
140
303
|
var shouldDisable = _this.checkResponseAreasNumber(maxResponseAreas, isEdit);
|
|
141
|
-
|
|
142
304
|
_this.setState({
|
|
143
305
|
addDisabled: shouldDisable
|
|
144
306
|
});
|
|
145
307
|
}
|
|
146
308
|
});
|
|
147
|
-
(0, _defineProperty2["default"])(
|
|
309
|
+
(0, _defineProperty2["default"])(_this, "onAnswerBlockClick", function () {
|
|
148
310
|
_this.props.onAnswerBlockAdd();
|
|
149
|
-
|
|
150
311
|
_this.onClick({
|
|
151
312
|
type: 'answer'
|
|
152
313
|
});
|
|
153
|
-
|
|
154
314
|
_this.updateDisable(true);
|
|
155
315
|
});
|
|
156
|
-
(0, _defineProperty2["default"])(
|
|
316
|
+
(0, _defineProperty2["default"])(_this, "onEditorChange", function (latex) {
|
|
157
317
|
var _this$props2 = _this.props,
|
|
158
|
-
|
|
159
|
-
|
|
318
|
+
onChange = _this$props2.onChange,
|
|
319
|
+
noDecimal = _this$props2.noDecimal;
|
|
160
320
|
(0, _mathInput.updateSpans)();
|
|
161
321
|
(0, _utils.markFractionBaseSuperscripts)();
|
|
322
|
+
_this.updateDisable(true);
|
|
162
323
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
324
|
+
// if no decimals are allowed and the last change is a decimal dot, discard the change
|
|
166
325
|
if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && _this.input) {
|
|
167
326
|
_this.input.clear();
|
|
168
|
-
|
|
169
327
|
_this.input.write(latex.replace(decimalRegex, ''));
|
|
170
|
-
|
|
171
328
|
return;
|
|
172
|
-
}
|
|
173
|
-
|
|
329
|
+
}
|
|
174
330
|
|
|
331
|
+
// eslint-disable-next-line no-useless-escape
|
|
175
332
|
var regexMatch = latex.match(/[0-9]\\ \\frac\{[^\{]*\}\{ \}/);
|
|
176
|
-
|
|
177
333
|
if (_this.input && regexMatch && regexMatch !== null && regexMatch !== void 0 && regexMatch.length) {
|
|
178
334
|
try {
|
|
179
335
|
_this.input.mathField.__controller.cursor.insLeftOf(_this.input.mathField.__controller.cursor.parent[-1].parent);
|
|
180
|
-
|
|
181
336
|
_this.input.mathField.el().dispatchEvent(new KeyboardEvent('keydown', {
|
|
182
337
|
keyCode: 8
|
|
183
338
|
}));
|
|
@@ -185,26 +340,22 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
185
340
|
// eslint-disable-next-line no-console
|
|
186
341
|
console.error(e.toString());
|
|
187
342
|
}
|
|
188
|
-
|
|
189
343
|
return;
|
|
190
344
|
}
|
|
191
|
-
|
|
192
345
|
onChange(latex);
|
|
193
346
|
});
|
|
194
|
-
(0, _defineProperty2["default"])(
|
|
347
|
+
(0, _defineProperty2["default"])(_this, "onEditorTypeChange", function (evt) {
|
|
195
348
|
_this.setState({
|
|
196
349
|
equationEditor: evt.target.value
|
|
197
350
|
});
|
|
198
351
|
});
|
|
199
|
-
(0, _defineProperty2["default"])(
|
|
200
|
-
var
|
|
201
|
-
|
|
202
|
-
|
|
352
|
+
(0, _defineProperty2["default"])(_this, "checkResponseAreasNumber", function (maxResponseAreas, isEdit) {
|
|
353
|
+
var _ref7 = _this.input && _this.input.props || {},
|
|
354
|
+
latex = _ref7.latex;
|
|
203
355
|
if (latex) {
|
|
204
356
|
var count = (latex.match(/answerBlock/g) || []).length;
|
|
205
357
|
return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;
|
|
206
358
|
}
|
|
207
|
-
|
|
208
359
|
return false;
|
|
209
360
|
});
|
|
210
361
|
_this.state = {
|
|
@@ -213,8 +364,8 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
213
364
|
};
|
|
214
365
|
return _this;
|
|
215
366
|
}
|
|
216
|
-
|
|
217
|
-
(0, _createClass2["default"])(EditorAndPad, [{
|
|
367
|
+
(0, _inherits2["default"])(EditorAndPad, _React$Component);
|
|
368
|
+
return (0, _createClass2["default"])(EditorAndPad, [{
|
|
218
369
|
key: "componentDidMount",
|
|
219
370
|
value: function componentDidMount() {
|
|
220
371
|
if (this.input && this.props.autoFocus) {
|
|
@@ -229,65 +380,67 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
229
380
|
function shouldComponentUpdate(nextProps, nextState) {
|
|
230
381
|
var inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
|
|
231
382
|
log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
|
|
232
|
-
|
|
233
383
|
if (!(0, _isEqual["default"])(this.props.error, nextProps.error)) {
|
|
234
384
|
return true;
|
|
235
385
|
}
|
|
236
|
-
|
|
237
386
|
if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {
|
|
238
387
|
return true;
|
|
239
388
|
}
|
|
240
|
-
|
|
241
389
|
if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {
|
|
242
390
|
return true;
|
|
243
391
|
}
|
|
244
|
-
|
|
245
392
|
if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {
|
|
246
393
|
return true;
|
|
247
394
|
}
|
|
248
|
-
|
|
249
395
|
if (!inputIsDifferent && this.props.controlledKeypad) {
|
|
250
396
|
return this.props.showKeypad !== nextProps.showKeypad;
|
|
251
397
|
}
|
|
252
|
-
|
|
253
398
|
return inputIsDifferent;
|
|
254
399
|
}
|
|
255
400
|
}, {
|
|
256
401
|
key: "render",
|
|
257
402
|
value: function render() {
|
|
258
403
|
var _this2 = this;
|
|
259
|
-
|
|
260
404
|
var _this$props3 = this.props,
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
error = _this$props3.error;
|
|
405
|
+
classNames = _this$props3.classNames,
|
|
406
|
+
keypadMode = _this$props3.keypadMode,
|
|
407
|
+
allowAnswerBlock = _this$props3.allowAnswerBlock,
|
|
408
|
+
additionalKeys = _this$props3.additionalKeys,
|
|
409
|
+
controlledKeypad = _this$props3.controlledKeypad,
|
|
410
|
+
controlledKeypadMode = _this$props3.controlledKeypadMode,
|
|
411
|
+
showKeypad = _this$props3.showKeypad,
|
|
412
|
+
setKeypadInteraction = _this$props3.setKeypadInteraction,
|
|
413
|
+
noDecimal = _this$props3.noDecimal,
|
|
414
|
+
hideInput = _this$props3.hideInput,
|
|
415
|
+
layoutForKeyPad = _this$props3.layoutForKeyPad,
|
|
416
|
+
latex = _this$props3.latex,
|
|
417
|
+
_onFocus = _this$props3.onFocus,
|
|
418
|
+
_onBlur = _this$props3.onBlur,
|
|
419
|
+
error = _this$props3.error;
|
|
277
420
|
var shouldShowKeypad = !controlledKeypad || controlledKeypad && showKeypad;
|
|
278
421
|
var addDisabled = this.state.addDisabled;
|
|
279
422
|
log('[render]', latex);
|
|
280
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
281
|
-
className: (0, _classnames["default"])(
|
|
282
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
283
|
-
|
|
284
|
-
}, controlledKeypadMode && /*#__PURE__*/_react["default"].createElement(
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
423
|
+
return /*#__PURE__*/_react["default"].createElement(MathToolbarContainer, {
|
|
424
|
+
className: (0, _classnames["default"])(classNames.mathToolbar)
|
|
425
|
+
}, /*#__PURE__*/_react["default"].createElement(InputAndTypeContainer, {
|
|
426
|
+
hide: hideInput
|
|
427
|
+
}, controlledKeypadMode && /*#__PURE__*/_react["default"].createElement(StyledFormControl, {
|
|
428
|
+
variant: 'standard'
|
|
429
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledInputLabel, {
|
|
430
|
+
id: "equation-editor-label"
|
|
431
|
+
}, 'Equation Editor'), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
432
|
+
labelId: "equation-editor-label",
|
|
433
|
+
id: "equation-editor-select",
|
|
434
|
+
name: "equationEditor",
|
|
435
|
+
label: 'Equation Editor',
|
|
289
436
|
onChange: this.onEditorTypeChange,
|
|
290
|
-
value: this.state.equationEditor
|
|
437
|
+
value: this.state.equationEditor,
|
|
438
|
+
MenuProps: {
|
|
439
|
+
transitionDuration: {
|
|
440
|
+
enter: 225,
|
|
441
|
+
exit: 195
|
|
442
|
+
}
|
|
443
|
+
}
|
|
291
444
|
}, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
292
445
|
value: "non-negative-integers"
|
|
293
446
|
}, "Numeric - Non-Negative Integers"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
@@ -312,51 +465,43 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
312
465
|
value: 'statistics'
|
|
313
466
|
}, "Statistics"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
314
467
|
value: 'item-authoring'
|
|
315
|
-
}, "Item Authoring"))), /*#__PURE__*/_react["default"].createElement(
|
|
316
|
-
|
|
317
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
468
|
+
}, "Item Authoring"))), /*#__PURE__*/_react["default"].createElement(InputContainerDiv, {
|
|
469
|
+
error: error
|
|
470
|
+
}, /*#__PURE__*/_react["default"].createElement(MathEditor, {
|
|
318
471
|
onFocus: function onFocus() {
|
|
319
472
|
_onFocus && _onFocus();
|
|
320
|
-
|
|
321
473
|
_this2.updateDisable(false);
|
|
322
474
|
},
|
|
323
475
|
onBlur: function onBlur(event) {
|
|
324
476
|
_this2.updateDisable(false);
|
|
325
|
-
|
|
326
477
|
_onBlur && _onBlur(event);
|
|
327
478
|
},
|
|
328
|
-
className: (0, _classnames["default"])(
|
|
329
|
-
|
|
479
|
+
className: (0, _classnames["default"])(classNames.editor),
|
|
480
|
+
controlledKeypadMode: controlledKeypadMode,
|
|
481
|
+
ref: function ref(r) {
|
|
330
482
|
return _this2.input = r;
|
|
331
483
|
},
|
|
332
484
|
latex: latex,
|
|
333
485
|
onChange: this.onEditorChange
|
|
334
|
-
}))), allowAnswerBlock && /*#__PURE__*/_react["default"].createElement(
|
|
335
|
-
className: classes.addAnswerBlockButton,
|
|
486
|
+
}))), allowAnswerBlock && /*#__PURE__*/_react["default"].createElement(AddAnswerBlockButton, {
|
|
336
487
|
type: "primary",
|
|
337
488
|
style: {
|
|
338
489
|
bottom: shouldShowKeypad ? '320px' : '20px'
|
|
339
490
|
},
|
|
340
491
|
onClick: this.onAnswerBlockClick,
|
|
341
492
|
disabled: addDisabled
|
|
342
|
-
}, "+ Response Area"), /*#__PURE__*/_react["default"].createElement("
|
|
343
|
-
|
|
344
|
-
}), shouldShowKeypad && /*#__PURE__*/_react["default"].createElement(_mathInput.HorizontalKeypad, {
|
|
345
|
-
className: (0, _classnames["default"])(classes[keypadMode], classes.keyboard),
|
|
493
|
+
}, "+ Response Area"), /*#__PURE__*/_react["default"].createElement(StyledHr, null), shouldShowKeypad && /*#__PURE__*/_react["default"].createElement(KeyboardContainer, {
|
|
494
|
+
mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
|
|
346
495
|
controlledKeypadMode: controlledKeypadMode,
|
|
347
496
|
layoutForKeyPad: layoutForKeyPad,
|
|
348
497
|
additionalKeys: additionalKeys,
|
|
349
|
-
mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
|
|
350
498
|
onClick: this.onClick,
|
|
351
499
|
noDecimal: noDecimal,
|
|
352
500
|
setKeypadInteraction: setKeypadInteraction
|
|
353
501
|
}));
|
|
354
502
|
}
|
|
355
503
|
}]);
|
|
356
|
-
return EditorAndPad;
|
|
357
504
|
}(_react["default"].Component);
|
|
358
|
-
|
|
359
|
-
exports.EditorAndPad = EditorAndPad;
|
|
360
505
|
(0, _defineProperty2["default"])(EditorAndPad, "propTypes", {
|
|
361
506
|
classNames: _propTypes["default"].object,
|
|
362
507
|
keypadMode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
@@ -377,199 +522,7 @@ exports.EditorAndPad = EditorAndPad;
|
|
|
377
522
|
onFocus: _propTypes["default"].func,
|
|
378
523
|
onBlur: _propTypes["default"].func,
|
|
379
524
|
onChange: _propTypes["default"].func.isRequired,
|
|
380
|
-
classes: _propTypes["default"].object,
|
|
381
525
|
setKeypadInteraction: _propTypes["default"].func
|
|
382
526
|
});
|
|
383
|
-
|
|
384
|
-
var styles = function styles(theme) {
|
|
385
|
-
return {
|
|
386
|
-
inputAndTypeContainer: {
|
|
387
|
-
display: 'flex',
|
|
388
|
-
alignItems: 'center',
|
|
389
|
-
'& .mq-editable-field .mq-cursor': {
|
|
390
|
-
top: '-4px'
|
|
391
|
-
},
|
|
392
|
-
'& .mq-math-mode .mq-selection, .mq-editable-field .mq-selection': {
|
|
393
|
-
paddingTop: '18px'
|
|
394
|
-
},
|
|
395
|
-
'& .mq-math-mode .mq-overarrow': {
|
|
396
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
397
|
-
},
|
|
398
|
-
'& .mq-math-mode .mq-overline .mq-overline-inner': {
|
|
399
|
-
paddingTop: '0.4em !important'
|
|
400
|
-
},
|
|
401
|
-
'& .mq-overarrow.mq-arrow-both': {
|
|
402
|
-
minWidth: '1.23em',
|
|
403
|
-
'& *': {
|
|
404
|
-
lineHeight: '1 !important'
|
|
405
|
-
},
|
|
406
|
-
'&:before': {
|
|
407
|
-
top: '-0.45em',
|
|
408
|
-
left: '-1px'
|
|
409
|
-
},
|
|
410
|
-
'&:after': {
|
|
411
|
-
position: 'absolute !important',
|
|
412
|
-
top: '0px !important',
|
|
413
|
-
right: '-2px'
|
|
414
|
-
},
|
|
415
|
-
'&.mq-empty:after': {
|
|
416
|
-
top: '-0.45em'
|
|
417
|
-
}
|
|
418
|
-
},
|
|
419
|
-
'& .mq-overarrow.mq-arrow-right': {
|
|
420
|
-
'&:before': {
|
|
421
|
-
top: '-0.4em',
|
|
422
|
-
right: '-1px'
|
|
423
|
-
}
|
|
424
|
-
},
|
|
425
|
-
'& *': _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, commonMqFontStyles), supsubStyles), longdivStyles), {}, {
|
|
426
|
-
'& .mq-math-mode .mq-sqrt-prefix': {
|
|
427
|
-
verticalAlign: 'baseline !important',
|
|
428
|
-
top: '1px !important',
|
|
429
|
-
left: '-0.1em !important'
|
|
430
|
-
},
|
|
431
|
-
'& .mq-math-mode .mq-overarc ': {
|
|
432
|
-
paddingTop: '0.45em !important'
|
|
433
|
-
},
|
|
434
|
-
'& .mq-math-mode .mq-empty': {
|
|
435
|
-
padding: '9px 1px !important'
|
|
436
|
-
},
|
|
437
|
-
'& .mq-math-mode .mq-root-block': {
|
|
438
|
-
paddingTop: '10px'
|
|
439
|
-
},
|
|
440
|
-
'& .mq-scaled .mq-sqrt-prefix': {
|
|
441
|
-
top: '0 !important'
|
|
442
|
-
},
|
|
443
|
-
'& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {
|
|
444
|
-
marginLeft: '4px !important',
|
|
445
|
-
paddingTop: '6px !important',
|
|
446
|
-
paddingLeft: '6px !important'
|
|
447
|
-
},
|
|
448
|
-
'& .mq-math-mode .mq-paren': {
|
|
449
|
-
verticalAlign: 'top !important',
|
|
450
|
-
padding: '1px 0.1em !important'
|
|
451
|
-
},
|
|
452
|
-
'& .mq-math-mode .mq-sqrt-stem': {
|
|
453
|
-
borderTop: '0.07em solid',
|
|
454
|
-
marginLeft: '-1.5px',
|
|
455
|
-
marginTop: '-2px !important',
|
|
456
|
-
paddingTop: '5px !important'
|
|
457
|
-
},
|
|
458
|
-
'& .mq-math-mode .mq-denominator': {
|
|
459
|
-
marginTop: '-5px !important',
|
|
460
|
-
padding: '0.5em 0.1em 0.1em !important'
|
|
461
|
-
},
|
|
462
|
-
'& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {
|
|
463
|
-
padding: '0 0.1em !important',
|
|
464
|
-
paddingBottom: '0 !important',
|
|
465
|
-
marginBottom: '-2px'
|
|
466
|
-
}
|
|
467
|
-
}),
|
|
468
|
-
'& span[data-prime="true"]': {
|
|
469
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
470
|
-
}
|
|
471
|
-
},
|
|
472
|
-
hide: {
|
|
473
|
-
display: 'none'
|
|
474
|
-
},
|
|
475
|
-
selectContainer: {
|
|
476
|
-
flex: 'initial',
|
|
477
|
-
width: '25%',
|
|
478
|
-
minWidth: '100px',
|
|
479
|
-
marginLeft: '15px',
|
|
480
|
-
marginTop: '5px',
|
|
481
|
-
marginBottom: '5px',
|
|
482
|
-
marginRight: '5px',
|
|
483
|
-
'& label': {
|
|
484
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
485
|
-
},
|
|
486
|
-
'& div': {
|
|
487
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
488
|
-
}
|
|
489
|
-
},
|
|
490
|
-
mathEditor: {
|
|
491
|
-
maxWidth: '400px',
|
|
492
|
-
color: _renderUi.color.text(),
|
|
493
|
-
backgroundColor: _renderUi.color.background(),
|
|
494
|
-
padding: '2px'
|
|
495
|
-
},
|
|
496
|
-
longMathEditor: {
|
|
497
|
-
maxWidth: '500px'
|
|
498
|
-
},
|
|
499
|
-
addAnswerBlockButton: {
|
|
500
|
-
position: 'absolute',
|
|
501
|
-
right: '12px',
|
|
502
|
-
border: '1px solid lightgrey'
|
|
503
|
-
},
|
|
504
|
-
hr: {
|
|
505
|
-
padding: 0,
|
|
506
|
-
margin: 0,
|
|
507
|
-
height: '1px',
|
|
508
|
-
border: 'none',
|
|
509
|
-
borderBottom: "solid 1px ".concat(theme.palette.primary.main)
|
|
510
|
-
},
|
|
511
|
-
mathToolbar: {
|
|
512
|
-
zIndex: 9,
|
|
513
|
-
position: 'relative',
|
|
514
|
-
textAlign: 'center',
|
|
515
|
-
width: 'auto',
|
|
516
|
-
'& > .mq-math-mode': {
|
|
517
|
-
border: 'solid 1px lightgrey'
|
|
518
|
-
},
|
|
519
|
-
'& > .mq-focused': {
|
|
520
|
-
outline: 'none',
|
|
521
|
-
boxShadow: 'none',
|
|
522
|
-
border: "dotted 1px ".concat(theme.palette.primary.main),
|
|
523
|
-
borderRadius: '0px'
|
|
524
|
-
},
|
|
525
|
-
'& .mq-overarrow-inner': {
|
|
526
|
-
border: 'none !important',
|
|
527
|
-
paddingTop: '0 !important'
|
|
528
|
-
},
|
|
529
|
-
'& .mq-overarrow-inner-right': {
|
|
530
|
-
display: 'none !important'
|
|
531
|
-
},
|
|
532
|
-
'& .mq-overarrow-inner-left': {
|
|
533
|
-
display: 'none !important'
|
|
534
|
-
},
|
|
535
|
-
'& .mq-longdiv-inner': {
|
|
536
|
-
borderTop: '1px solid !important',
|
|
537
|
-
paddingTop: '1.5px !important'
|
|
538
|
-
},
|
|
539
|
-
'& .mq-overarrow.mq-arrow-both': {
|
|
540
|
-
top: '7.8px',
|
|
541
|
-
marginTop: '0px',
|
|
542
|
-
minWidth: '1.23em'
|
|
543
|
-
},
|
|
544
|
-
'& .mq-parallelogram': {
|
|
545
|
-
lineHeight: 0.85
|
|
546
|
-
}
|
|
547
|
-
},
|
|
548
|
-
inputContainer: {
|
|
549
|
-
minWidth: '500px',
|
|
550
|
-
maxWidth: '900px',
|
|
551
|
-
minHeight: '30px',
|
|
552
|
-
width: '100%',
|
|
553
|
-
display: 'flex',
|
|
554
|
-
marginTop: theme.spacing.unit,
|
|
555
|
-
marginBottom: theme.spacing.unit,
|
|
556
|
-
'& .mq-sqrt-prefix .mq-scaled': {
|
|
557
|
-
verticalAlign: 'middle !important'
|
|
558
|
-
}
|
|
559
|
-
},
|
|
560
|
-
error: {
|
|
561
|
-
border: '2px solid red'
|
|
562
|
-
},
|
|
563
|
-
keyboard: commonMqKeyboardStyles,
|
|
564
|
-
language: {
|
|
565
|
-
'& *': {
|
|
566
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
};
|
|
570
|
-
};
|
|
571
|
-
|
|
572
|
-
var _default = (0, _styles.withStyles)(styles)(EditorAndPad);
|
|
573
|
-
|
|
574
|
-
exports["default"] = _default;
|
|
527
|
+
var _default = exports["default"] = EditorAndPad;
|
|
575
528
|
//# sourceMappingURL=editor-and-pad.js.map
|