@pie-lib/math-toolbar 1.9.2 → 1.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 CHANGED
@@ -3,6 +3,43 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.10.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.9.4...@pie-lib/math-toolbar@1.10.0) (2022-07-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **math-toolbar:** add sanity check for clicking in editor-and-pad ([4c5dc18](https://github.com/pie-framework/pie-lib/commit/4c5dc18e077fca9a50f9c638f64ba08bba3b0884))
12
+
13
+
14
+ ### Features
15
+
16
+ * **math-toolbar:** Make math-toolbar preview style inline with mathjax ([266b1bc](https://github.com/pie-framework/pie-lib/commit/266b1bc9a277530fd653edfacbb836596957dd33))
17
+ * **math-toolbar:** Make math-toolbar style inline with mathjax from Numeric to Grade 8HS PD-1521 ([5c49326](https://github.com/pie-framework/pie-lib/commit/5c493262ccf2ca8ba4c80af42e566b4e7a8c3571))
18
+ * **plugins:** added special characters adding capabilities [PD-1462] ([b9f41e1](https://github.com/pie-framework/pie-lib/commit/b9f41e11f44df140a66145d0b04558ca2b0ea48e))
19
+
20
+
21
+
22
+
23
+
24
+ ## [1.9.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.9.3...@pie-lib/math-toolbar@1.9.4) (2022-06-13)
25
+
26
+ **Note:** Version bump only for package @pie-lib/math-toolbar
27
+
28
+
29
+
30
+
31
+
32
+ ## [1.9.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.9.2...@pie-lib/math-toolbar@1.9.3) (2022-05-10)
33
+
34
+
35
+ ### Bug Fixes
36
+
37
+ * **math-toolbar:** make sure errors visually update for item validation ([d36fe40](https://github.com/pie-framework/pie-lib/commit/d36fe4071deb5cb10f61758cfe73b185574b27af))
38
+
39
+
40
+
41
+
42
+
6
43
  ## [1.9.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@1.9.1...@pie-lib/math-toolbar@1.9.2) (2022-05-09)
7
44
 
8
45
 
@@ -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
  });
@@ -15,8 +17,6 @@ var _styles = require("@material-ui/core/styles");
15
17
 
16
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
19
 
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
-
20
20
  var RawDoneButton = function RawDoneButton(_ref) {
21
21
  var classes = _ref.classes,
22
22
  onClick = _ref.onClick;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/done-button.jsx"],"names":["RawDoneButton","classes","onClick","iconRoot","label","root","propTypes","PropTypes","object","isRequired","func","styles","verticalAlign","width","height","color","position","top","DoneButton"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,sBAC3B,gCAAC,sBAAD;AACE,kBAAW,MADb;AAEE,IAAA,SAAS,EAAED,OAAO,CAACE,QAFrB;AAGE,IAAA,OAAO,EAAED,OAHX;AAIE,IAAA,OAAO,EAAE;AACPE,MAAAA,KAAK,EAAEH,OAAO,CAACG,KADR;AAEPC,MAAAA,IAAI,EAAEJ,OAAO,CAACE;AAFP;AAJX,kBASE,gCAAC,iBAAD,OATF,CAD2B;AAAA,CAAtB;;;AAcPH,aAAa,CAACM,SAAd,GAA0B;AACxBL,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADF;AAExBP,EAAAA,OAAO,EAAEK,sBAAUG;AAFK,CAA1B;AAKA,IAAMC,MAAM,GAAG;AACbR,EAAAA,QAAQ,EAAE;AACRS,IAAAA,aAAa,EAAE,KADP;AAERC,IAAAA,KAAK,EAAE,MAFC;AAGRC,IAAAA,MAAM,EAAE,MAHA;AAIRC,IAAAA,KAAK,EAAE;AAJC,GADG;AAObX,EAAAA,KAAK,EAAE;AACLY,IAAAA,QAAQ,EAAE,UADL;AAELC,IAAAA,GAAG,EAAE;AAFA;AAPM,CAAf;AAYO,IAAMC,UAAU,GAAG,wBAAWP,MAAX,EAAmBX,aAAnB,CAAnB","sourcesContent":["import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: '#00bb00'\n },\n label: {\n position: 'absolute',\n top: '2px'\n }\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n"],"file":"done-button.js"}
1
+ {"version":3,"sources":["../src/done-button.jsx"],"names":["RawDoneButton","classes","onClick","iconRoot","label","root","propTypes","PropTypes","object","isRequired","func","styles","verticalAlign","width","height","color","position","top","DoneButton"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,sBAC3B,gCAAC,sBAAD;AACE,kBAAW,MADb;AAEE,IAAA,SAAS,EAAED,OAAO,CAACE,QAFrB;AAGE,IAAA,OAAO,EAAED,OAHX;AAIE,IAAA,OAAO,EAAE;AACPE,MAAAA,KAAK,EAAEH,OAAO,CAACG,KADR;AAEPC,MAAAA,IAAI,EAAEJ,OAAO,CAACE;AAFP;AAJX,kBASE,gCAAC,iBAAD,OATF,CAD2B;AAAA,CAAtB;;;AAcPH,aAAa,CAACM,SAAd,GAA0B;AACxBL,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADF;AAExBP,EAAAA,OAAO,EAAEK,sBAAUG;AAFK,CAA1B;AAKA,IAAMC,MAAM,GAAG;AACbR,EAAAA,QAAQ,EAAE;AACRS,IAAAA,aAAa,EAAE,KADP;AAERC,IAAAA,KAAK,EAAE,MAFC;AAGRC,IAAAA,MAAM,EAAE,MAHA;AAIRC,IAAAA,KAAK,EAAE;AAJC,GADG;AAObX,EAAAA,KAAK,EAAE;AACLY,IAAAA,QAAQ,EAAE,UADL;AAELC,IAAAA,GAAG,EAAE;AAFA;AAPM,CAAf;AAYO,IAAMC,UAAU,GAAG,wBAAWP,MAAX,EAAmBX,aAAnB,CAAnB","sourcesContent":["import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: '#00bb00'\n },\n label: {\n position: 'absolute',\n top: '2px'\n }\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n"],"file":"done-button.js"}
@@ -1,12 +1,26 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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.EditorAndPad = void 0;
9
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ 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
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
10
24
  var _mathInput = require("@pie-lib/math-input");
11
25
 
12
26
  var _react = _interopRequireDefault(require("react"));
@@ -27,33 +41,15 @@ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
27
41
 
28
42
  var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
29
43
 
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
-
32
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
44
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
33
45
 
34
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
35
-
36
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
37
-
38
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
39
-
40
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
41
-
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
43
-
44
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
45
-
46
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
46
+ 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); }; }
47
47
 
48
48
  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; } }
49
49
 
50
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
51
-
52
50
  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
51
 
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) { _defineProperty(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
-
56
- 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; }
52
+ 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; }
57
53
 
58
54
  var log = (0, _debug["default"])('@pie-lib:math-toolbar:editor-and-pad');
59
55
  var decimalRegex = /\.|,/g;
@@ -85,26 +81,37 @@ var toNodeData = function toNodeData(data) {
85
81
  };
86
82
 
87
83
  var EditorAndPad = /*#__PURE__*/function (_React$Component) {
88
- _inherits(EditorAndPad, _React$Component);
84
+ (0, _inherits2["default"])(EditorAndPad, _React$Component);
89
85
 
90
86
  var _super = _createSuper(EditorAndPad);
91
87
 
92
88
  function EditorAndPad(props) {
93
89
  var _this;
94
90
 
95
- _classCallCheck(this, EditorAndPad);
96
-
91
+ (0, _classCallCheck2["default"])(this, EditorAndPad);
97
92
  _this = _super.call(this, props);
98
-
99
- _defineProperty(_assertThisInitialized(_this), "onClick", function (data) {
100
- var noDecimal = _this.props.noDecimal;
93
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClick", function (data) {
94
+ var _this$props = _this.props,
95
+ noDecimal = _this$props.noDecimal,
96
+ noLatexHandling = _this$props.noLatexHandling,
97
+ onChange = _this$props.onChange;
101
98
  var c = toNodeData(data);
102
- log('mathChange: ', c); // if decimals are not allowed for this response, we discard the input
99
+ log('mathChange: ', c);
100
+
101
+ if (noLatexHandling) {
102
+ onChange(c.value);
103
+ return;
104
+ } // if decimals are not allowed for this response, we discard the input
105
+
103
106
 
104
107
  if (noDecimal && (c.value === '.' || c.value === ',')) {
105
108
  return;
106
109
  }
107
110
 
111
+ if (!c) {
112
+ return;
113
+ }
114
+
108
115
  if (c.type === 'clear') {
109
116
  log('call clear...');
110
117
 
@@ -119,8 +126,7 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
119
126
  _this.input.write(c.value);
120
127
  }
121
128
  });
122
-
123
- _defineProperty(_assertThisInitialized(_this), "updateDisable", function (isEdit) {
129
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateDisable", function (isEdit) {
124
130
  var maxResponseAreas = _this.props.maxResponseAreas;
125
131
 
126
132
  if (maxResponseAreas) {
@@ -131,8 +137,7 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
131
137
  });
132
138
  }
133
139
  });
134
-
135
- _defineProperty(_assertThisInitialized(_this), "onAnswerBlockClick", function () {
140
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerBlockClick", function () {
136
141
  _this.props.onAnswerBlockAdd();
137
142
 
138
143
  _this.onClick({
@@ -141,11 +146,10 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
141
146
 
142
147
  _this.updateDisable(true);
143
148
  });
144
-
145
- _defineProperty(_assertThisInitialized(_this), "onEditorChange", function (latex) {
146
- var _this$props = _this.props,
147
- onChange = _this$props.onChange,
148
- noDecimal = _this$props.noDecimal;
149
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onEditorChange", function (latex) {
150
+ var _this$props2 = _this.props,
151
+ onChange = _this$props2.onChange,
152
+ noDecimal = _this$props2.noDecimal;
149
153
  (0, _mathInput.updateSpans)();
150
154
 
151
155
  _this.updateDisable(true); // if no decimals are allowed and the last change is a decimal dot, discard the change
@@ -161,14 +165,12 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
161
165
 
162
166
  onChange(latex);
163
167
  });
164
-
165
- _defineProperty(_assertThisInitialized(_this), "onEditorTypeChange", function (evt) {
168
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onEditorTypeChange", function (evt) {
166
169
  _this.setState({
167
170
  equationEditor: evt.target.value
168
171
  });
169
172
  });
170
-
171
- _defineProperty(_assertThisInitialized(_this), "checkResponseAreasNumber", function (maxResponseAreas, isEdit) {
173
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "checkResponseAreasNumber", function (maxResponseAreas, isEdit) {
172
174
  var _ref = _this.input && _this.input.props || {},
173
175
  latex = _ref.latex;
174
176
 
@@ -179,7 +181,6 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
179
181
 
180
182
  return false;
181
183
  });
182
-
183
184
  _this.state = {
184
185
  equationEditor: 'item-authoring',
185
186
  addDisabled: false
@@ -187,7 +188,7 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
187
188
  return _this;
188
189
  }
189
190
 
190
- _createClass(EditorAndPad, [{
191
+ (0, _createClass2["default"])(EditorAndPad, [{
191
192
  key: "componentDidMount",
192
193
  value: function componentDidMount() {
193
194
  if (this.input && this.props.autoFocus) {
@@ -203,6 +204,10 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
203
204
  var inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
204
205
  log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
205
206
 
207
+ if (!(0, _isEqual["default"])(this.props.error, nextProps.error)) {
208
+ return true;
209
+ }
210
+
206
211
  if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {
207
212
  return true;
208
213
  }
@@ -226,27 +231,29 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
226
231
  value: function render() {
227
232
  var _this2 = this;
228
233
 
229
- var _this$props2 = this.props,
230
- classNames = _this$props2.classNames,
231
- keypadMode = _this$props2.keypadMode,
232
- allowAnswerBlock = _this$props2.allowAnswerBlock,
233
- additionalKeys = _this$props2.additionalKeys,
234
- controlledKeypad = _this$props2.controlledKeypad,
235
- controlledKeypadMode = _this$props2.controlledKeypadMode,
236
- showKeypad = _this$props2.showKeypad,
237
- noDecimal = _this$props2.noDecimal,
238
- latex = _this$props2.latex,
239
- _onFocus = _this$props2.onFocus,
240
- _onBlur = _this$props2.onBlur,
241
- classes = _this$props2.classes,
242
- error = _this$props2.error;
234
+ var _this$props3 = this.props,
235
+ classNames = _this$props3.classNames,
236
+ keypadMode = _this$props3.keypadMode,
237
+ allowAnswerBlock = _this$props3.allowAnswerBlock,
238
+ additionalKeys = _this$props3.additionalKeys,
239
+ controlledKeypad = _this$props3.controlledKeypad,
240
+ controlledKeypadMode = _this$props3.controlledKeypadMode,
241
+ showKeypad = _this$props3.showKeypad,
242
+ noDecimal = _this$props3.noDecimal,
243
+ hideInput = _this$props3.hideInput,
244
+ layoutForKeyPad = _this$props3.layoutForKeyPad,
245
+ latex = _this$props3.latex,
246
+ _onFocus = _this$props3.onFocus,
247
+ _onBlur = _this$props3.onBlur,
248
+ classes = _this$props3.classes,
249
+ error = _this$props3.error;
243
250
  var shouldShowKeypad = !controlledKeypad || controlledKeypad && showKeypad;
244
251
  var addDisabled = this.state.addDisabled;
245
252
  log('[render]', latex);
246
253
  return /*#__PURE__*/_react["default"].createElement("div", {
247
254
  className: (0, _classnames["default"])(classes.mathToolbar, classNames.mathToolbar)
248
255
  }, /*#__PURE__*/_react["default"].createElement("div", {
249
- className: classes.inputAndTypeContainer
256
+ className: (0, _classnames["default"])(classes.inputAndTypeContainer, (0, _defineProperty2["default"])({}, classes.hide, hideInput))
250
257
  }, controlledKeypadMode && /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
251
258
  label: "Equation Editor",
252
259
  className: classes.selectContainer
@@ -278,7 +285,9 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
278
285
  value: 'statistics'
279
286
  }, "Statistics"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
280
287
  value: 'item-authoring'
281
- }, "Item Authoring"))), /*#__PURE__*/_react["default"].createElement("div", {
288
+ }, "Item Authoring"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
289
+ value: 'language'
290
+ }, "Language"))), /*#__PURE__*/_react["default"].createElement("div", {
282
291
  className: (0, _classnames["default"])(classes.inputContainer, error ? classes.error : '')
283
292
  }, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Input, {
284
293
  onFocus: function onFocus() {
@@ -308,6 +317,8 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
308
317
  }, "+ Response Area"), /*#__PURE__*/_react["default"].createElement("hr", {
309
318
  className: classes.hr
310
319
  }), shouldShowKeypad && /*#__PURE__*/_react["default"].createElement(_mathInput.HorizontalKeypad, {
320
+ className: classes.keyboard,
321
+ layoutForKeyPad: layoutForKeyPad,
311
322
  additionalKeys: additionalKeys,
312
323
  mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
313
324
  onClick: this.onClick,
@@ -315,13 +326,11 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
315
326
  }));
316
327
  }
317
328
  }]);
318
-
319
329
  return EditorAndPad;
320
330
  }(_react["default"].Component);
321
331
 
322
332
  exports.EditorAndPad = EditorAndPad;
323
-
324
- _defineProperty(EditorAndPad, "propTypes", {
333
+ (0, _defineProperty2["default"])(EditorAndPad, "propTypes", {
325
334
  classNames: _propTypes["default"].object,
326
335
  keypadMode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
327
336
  autoFocus: _propTypes["default"].bool,
@@ -330,6 +339,9 @@ _defineProperty(EditorAndPad, "propTypes", {
330
339
  controlledKeypad: _propTypes["default"].bool,
331
340
  controlledKeypadMode: _propTypes["default"].bool,
332
341
  noDecimal: _propTypes["default"].bool,
342
+ hideInput: _propTypes["default"].bool,
343
+ noLatexHandling: _propTypes["default"].bool,
344
+ layoutForKeyPad: _propTypes["default"].object,
333
345
  additionalKeys: _propTypes["default"].array,
334
346
  latex: _propTypes["default"].string.isRequired,
335
347
  onAnswerBlockAdd: _propTypes["default"].func,
@@ -344,7 +356,10 @@ var styles = function styles(theme) {
344
356
  inputAndTypeContainer: {
345
357
  display: 'flex',
346
358
  alignItems: 'center',
347
- '& *': {
359
+ '& .mq-root-block': {
360
+ marginTop: '8px'
361
+ },
362
+ '& .mq-math-mode .mq-overarrow': {
348
363
  fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
349
364
  },
350
365
  '& .mq-overarrow.mq-arrow-both': {
@@ -369,8 +384,51 @@ var styles = function styles(theme) {
369
384
  top: '-0.4em',
370
385
  right: '-1px'
371
386
  }
387
+ },
388
+ '& *': {
389
+ fontFamily: 'MJXZERO, MJXTEX-I !important',
390
+ '& .mq-math-mode .mq-empty': {
391
+ padding: '9px 1px !important'
392
+ },
393
+ '& .mq-longdiv-inner': {
394
+ marginTop: '-1px',
395
+ marginLeft: '5px !important;',
396
+ '& > .mq-empty': {
397
+ padding: '0 !important',
398
+ marginLeft: '0px !important',
399
+ marginTop: '2px'
400
+ }
401
+ },
402
+ '& .mq-math-mode .mq-longdiv': {
403
+ display: 'flex !important'
404
+ },
405
+ '& .mq-math-mode .mq-supsub': {
406
+ fontSize: '70.7% !important'
407
+ },
408
+ '& .mq-math-mode .mq-paren': {
409
+ verticalAlign: 'middle !important'
410
+ },
411
+ '& .mq-math-mode .mq-sqrt-stem': {
412
+ borderTop: '0.07em solid',
413
+ marginLeft: '-1.5px',
414
+ marginTop: '-2px !important',
415
+ paddingTop: '5px !important'
416
+ },
417
+ '& .mq-supsub ': {
418
+ fontSize: '70.7%'
419
+ },
420
+ '& .mq-math-mode .mq-supsub.mq-sup-only': {
421
+ verticalAlign: '-0.1em !important',
422
+ '& .mq-sup': {
423
+ marginBottom: '0px !important'
424
+ }
425
+ },
426
+ '-webkit-font-smoothing': 'antialiased !important'
372
427
  }
373
428
  },
429
+ hide: {
430
+ display: 'none'
431
+ },
374
432
  selectContainer: {
375
433
  flex: 'initial',
376
434
  width: '25%',
@@ -378,7 +436,13 @@ var styles = function styles(theme) {
378
436
  marginLeft: '15px',
379
437
  marginTop: '5px',
380
438
  marginBottom: '5px',
381
- marginRight: '5px'
439
+ marginRight: '5px',
440
+ '& label': {
441
+ fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
442
+ },
443
+ '& div': {
444
+ fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
445
+ }
382
446
  },
383
447
  mathEditor: {
384
448
  maxWidth: '400px',
@@ -447,6 +511,36 @@ var styles = function styles(theme) {
447
511
  },
448
512
  error: {
449
513
  border: '2px solid red'
514
+ },
515
+ keyboard: {
516
+ '& *': {
517
+ fontFamily: 'MJXZERO, MJXTEX-I !important',
518
+ '& .mq-math-mode .mq-empty': {
519
+ padding: '9px 1px !important'
520
+ },
521
+ '& .mq-longdiv-inner': {
522
+ marginTop: '-1px',
523
+ marginLeft: '5px !important;',
524
+ '& > .mq-empty': {
525
+ padding: '0 !important',
526
+ marginLeft: '0px !important',
527
+ marginTop: '2px'
528
+ }
529
+ },
530
+ '& .mq-math-mode .mq-longdiv': {
531
+ display: 'flex !important'
532
+ },
533
+ '& .mq-math-mode .mq-supsub': {
534
+ fontSize: '70.7% !important'
535
+ },
536
+ '& .mq-math-mode .mq-sqrt-stem': {
537
+ marginTop: '-5px',
538
+ paddingTop: '4px'
539
+ },
540
+ '& .mq-math-mode .mq-paren': {
541
+ verticalAlign: 'middle !important'
542
+ }
543
+ }
450
544
  }
451
545
  };
452
546
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/editor-and-pad.jsx"],"names":["log","decimalRegex","toNodeData","data","type","value","EditorAndPad","props","noDecimal","c","input","clear","command","keystroke","write","isEdit","maxResponseAreas","shouldDisable","checkResponseAreasNumber","setState","addDisabled","onAnswerBlockAdd","onClick","updateDisable","latex","onChange","indexOf","replace","evt","equationEditor","target","count","match","length","state","autoFocus","focus","nextProps","nextState","inputIsDifferent","mathField","keypadMode","controlledKeypad","showKeypad","classNames","allowAnswerBlock","additionalKeys","controlledKeypadMode","onFocus","onBlur","classes","error","shouldShowKeypad","mathToolbar","inputAndTypeContainer","selectContainer","select","onEditorTypeChange","inputContainer","event","mathEditor","editor","longMathEditor","r","onEditorChange","addAnswerBlockButton","bottom","onAnswerBlockClick","hr","React","Component","PropTypes","object","oneOfType","string","number","bool","array","isRequired","func","styles","theme","display","alignItems","fontFamily","minWidth","lineHeight","top","left","right","flex","width","marginLeft","marginTop","marginBottom","marginRight","maxWidth","color","text","backgroundColor","background","padding","spacing","unit","position","border","margin","height","borderBottom","palette","primary","main","zIndex","textAlign","outline","boxShadow","borderRadius","paddingTop","borderTop","minHeight"],"mappings":"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","sourcesContent":["import { HorizontalKeypad, mq } from '@pie-lib/math-input';\nimport React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nconst log = debug('@pie-lib:math-toolbar:editor-and-pad');\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport { updateSpans } from '@pie-lib/math-input';\n\nconst decimalRegex = /\\.|,/g;\n\nconst toNodeData = data => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n};\n\nexport class EditorAndPad extends React.Component {\n static propTypes = {\n classNames: PropTypes.object,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n autoFocus: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n showKeypad: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n noDecimal: PropTypes.bool,\n additionalKeys: PropTypes.array,\n latex: PropTypes.string.isRequired,\n onAnswerBlockAdd: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.state = { equationEditor: 'item-authoring', addDisabled: false };\n }\n\n componentDidMount() {\n if (this.input && this.props.autoFocus) {\n this.input.focus();\n }\n }\n\n onClick = data => {\n const { noDecimal } = this.props;\n const c = toNodeData(data);\n log('mathChange: ', c);\n\n // if decimals are not allowed for this response, we discard the input\n if (noDecimal && (c.value === '.' || c.value === ',')) {\n return;\n }\n\n if (c.type === 'clear') {\n log('call clear...');\n this.input.clear();\n } else if (c.type === 'command') {\n this.input.command(c.value);\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else if (c.type === 'answer') {\n this.input.write('%response%');\n } else {\n this.input.write(c.value);\n }\n };\n\n updateDisable = isEdit => {\n const { maxResponseAreas } = this.props;\n\n if (maxResponseAreas) {\n const shouldDisable = this.checkResponseAreasNumber(maxResponseAreas, isEdit);\n\n this.setState({ addDisabled: shouldDisable });\n }\n };\n\n onAnswerBlockClick = () => {\n this.props.onAnswerBlockAdd();\n this.onClick({\n type: 'answer'\n });\n\n this.updateDisable(true);\n };\n\n onEditorChange = latex => {\n const { onChange, noDecimal } = this.props;\n\n updateSpans();\n\n this.updateDisable(true);\n\n // if no decimals are allowed and the last change is a decimal dot, discard the change\n if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && this.input) {\n this.input.clear();\n this.input.write(latex.replace(decimalRegex, ''));\n return;\n }\n\n onChange(latex);\n };\n\n /** Only render if the mathquill instance's latex is different\n * or the keypad state changed from one state to the other (shown / hidden) */\n shouldComponentUpdate(nextProps, nextState) {\n const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;\n log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);\n\n if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {\n return true;\n }\n\n if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.controlledKeypad) {\n return this.props.showKeypad !== nextProps.showKeypad;\n }\n\n return inputIsDifferent;\n }\n\n onEditorTypeChange = evt => {\n this.setState({ equationEditor: evt.target.value });\n };\n\n checkResponseAreasNumber = (maxResponseAreas, isEdit) => {\n const { latex } = (this.input && this.input.props) || {};\n\n if (latex) {\n const count = (latex.match(/answerBlock/g) || []).length;\n\n return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;\n }\n\n return false;\n };\n\n render() {\n const {\n classNames,\n keypadMode,\n allowAnswerBlock,\n additionalKeys,\n controlledKeypad,\n controlledKeypadMode,\n showKeypad,\n noDecimal,\n latex,\n onFocus,\n onBlur,\n classes,\n error\n } = this.props;\n const shouldShowKeypad = !controlledKeypad || (controlledKeypad && showKeypad);\n const { addDisabled } = this.state;\n\n log('[render]', latex);\n\n return (\n <div className={cx(classes.mathToolbar, classNames.mathToolbar)}>\n <div className={classes.inputAndTypeContainer}>\n {controlledKeypadMode && (\n <InputContainer label=\"Equation Editor\" className={classes.selectContainer}>\n <Select\n className={classes.select}\n onChange={this.onEditorTypeChange}\n value={this.state.equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n )}\n <div className={cx(classes.inputContainer, error ? classes.error : '')}>\n <mq.Input\n onFocus={() => {\n onFocus && onFocus();\n this.updateDisable(false);\n }}\n onBlur={event => {\n this.updateDisable(false);\n onBlur && onBlur(event);\n }}\n className={cx(\n classes.mathEditor,\n classNames.editor,\n !controlledKeypadMode ? classes.longMathEditor : ''\n )}\n innerRef={r => (this.input = r)}\n latex={latex}\n onChange={this.onEditorChange}\n />\n </div>\n </div>\n {allowAnswerBlock && (\n <Button\n className={classes.addAnswerBlockButton}\n type=\"primary\"\n style={{ bottom: shouldShowKeypad ? '320px' : '20px' }}\n onClick={this.onAnswerBlockClick}\n disabled={addDisabled}\n >\n + Response Area\n </Button>\n )}\n <hr className={classes.hr} />\n {shouldShowKeypad && (\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}\n onClick={this.onClick}\n noDecimal={noDecimal}\n />\n )}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n inputAndTypeContainer: {\n display: 'flex',\n alignItems: 'center',\n '& *': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.36em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n }\n },\n selectContainer: {\n flex: 'initial',\n width: '25%',\n minWidth: '100px',\n marginLeft: '15px',\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px'\n },\n mathEditor: {\n maxWidth: '400px',\n color: color.text(),\n backgroundColor: color.background(),\n padding: theme.spacing.unit\n },\n longMathEditor: {\n maxWidth: '500px'\n },\n addAnswerBlockButton: {\n position: 'absolute',\n right: '12px',\n border: '1px solid lightgrey'\n },\n hr: {\n padding: 0,\n margin: 0,\n height: '1px',\n border: 'none',\n borderBottom: `solid 1px ${theme.palette.primary.main}`\n },\n mathToolbar: {\n zIndex: 9,\n position: 'relative',\n textAlign: 'center',\n width: 'auto',\n '& > .mq-math-mode': {\n border: 'solid 1px lightgrey'\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: `dotted 1px ${theme.palette.primary.main}`,\n borderRadius: '0px'\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n paddingTop: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n inputContainer: {\n minWidth: '500px',\n maxWidth: '900px',\n minHeight: '40px',\n width: '100%',\n display: 'flex',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit\n },\n error: {\n border: '2px solid red'\n }\n});\n\nexport default withStyles(styles)(EditorAndPad);\n"],"file":"editor-and-pad.js"}
1
+ {"version":3,"sources":["../src/editor-and-pad.jsx"],"names":["log","decimalRegex","toNodeData","data","type","value","EditorAndPad","props","noDecimal","noLatexHandling","onChange","c","input","clear","command","keystroke","write","isEdit","maxResponseAreas","shouldDisable","checkResponseAreasNumber","setState","addDisabled","onAnswerBlockAdd","onClick","updateDisable","latex","indexOf","replace","evt","equationEditor","target","count","match","length","state","autoFocus","focus","nextProps","nextState","inputIsDifferent","mathField","error","keypadMode","controlledKeypad","showKeypad","classNames","allowAnswerBlock","additionalKeys","controlledKeypadMode","hideInput","layoutForKeyPad","onFocus","onBlur","classes","shouldShowKeypad","mathToolbar","inputAndTypeContainer","hide","selectContainer","select","onEditorTypeChange","inputContainer","event","mathEditor","editor","longMathEditor","r","onEditorChange","addAnswerBlockButton","bottom","onAnswerBlockClick","hr","keyboard","React","Component","PropTypes","object","oneOfType","string","number","bool","array","isRequired","func","styles","theme","display","alignItems","marginTop","fontFamily","minWidth","lineHeight","top","left","right","padding","marginLeft","fontSize","verticalAlign","borderTop","paddingTop","marginBottom","flex","width","marginRight","maxWidth","color","text","backgroundColor","background","spacing","unit","position","border","margin","height","borderBottom","palette","primary","main","zIndex","textAlign","outline","boxShadow","borderRadius","minHeight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA;;;;;;;;;;AALA,IAAMA,GAAG,GAAG,uBAAM,sCAAN,CAAZ;AAOA,IAAMC,YAAY,GAAG,OAArB;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAC,IAAI,EAAI;AACzB,MAAI,CAACA,IAAL,EAAW;AACT;AACD;;AAED,MAAQC,IAAR,GAAwBD,IAAxB,CAAQC,IAAR;AAAA,MAAcC,KAAd,GAAwBF,IAAxB,CAAcE,KAAd;;AAEA,MAAID,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,QAAnC,EAA6C;AAC3C,WAAOD,IAAP;AACD,GAFD,MAEO,IAAIC,IAAI,KAAK,QAAb,EAAuB;AAC5B;AAASA,MAAAA,IAAI,EAAE;AAAf,OAA4BD,IAA5B;AACD,GAFM,MAEA,IAAIE,KAAK,KAAK,OAAd,EAAuB;AAC5B,WAAO;AAAED,MAAAA,IAAI,EAAE;AAAR,KAAP;AACD,GAFM,MAEA;AACL,WAAO;AAAEA,MAAAA,IAAI,EAAE,OAAR;AAAiBC,MAAAA,KAAK,EAALA;AAAjB,KAAP;AACD;AACF,CAhBD;;IAkBaC,Y;;;;;AAsBX,wBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,gGAYT,UAAAJ,IAAI,EAAI;AAChB,wBAAiD,MAAKI,KAAtD;AAAA,UAAQC,SAAR,eAAQA,SAAR;AAAA,UAAmBC,eAAnB,eAAmBA,eAAnB;AAAA,UAAoCC,QAApC,eAAoCA,QAApC;AACA,UAAMC,CAAC,GAAGT,UAAU,CAACC,IAAD,CAApB;AACAH,MAAAA,GAAG,CAAC,cAAD,EAAiBW,CAAjB,CAAH;;AAEA,UAAIF,eAAJ,EAAqB;AACnBC,QAAAA,QAAQ,CAACC,CAAC,CAACN,KAAH,CAAR;AACA;AACD,OARe,CAUhB;;;AACA,UAAIG,SAAS,KAAKG,CAAC,CAACN,KAAF,KAAY,GAAZ,IAAmBM,CAAC,CAACN,KAAF,KAAY,GAApC,CAAb,EAAuD;AACrD;AACD;;AAED,UAAI,CAACM,CAAL,EAAQ;AACN;AACD;;AAED,UAAIA,CAAC,CAACP,IAAF,KAAW,OAAf,EAAwB;AACtBJ,QAAAA,GAAG,CAAC,eAAD,CAAH;;AACA,cAAKY,KAAL,CAAWC,KAAX;AACD,OAHD,MAGO,IAAIF,CAAC,CAACP,IAAF,KAAW,SAAf,EAA0B;AAC/B,cAAKQ,KAAL,CAAWE,OAAX,CAAmBH,CAAC,CAACN,KAArB;AACD,OAFM,MAEA,IAAIM,CAAC,CAACP,IAAF,KAAW,QAAf,EAAyB;AAC9B,cAAKQ,KAAL,CAAWG,SAAX,CAAqBJ,CAAC,CAACN,KAAvB;AACD,OAFM,MAEA,IAAIM,CAAC,CAACP,IAAF,KAAW,QAAf,EAAyB;AAC9B,cAAKQ,KAAL,CAAWI,KAAX,CAAiB,YAAjB;AACD,OAFM,MAEA;AACL,cAAKJ,KAAL,CAAWI,KAAX,CAAiBL,CAAC,CAACN,KAAnB;AACD;AACF,KA3CkB;AAAA,sGA6CH,UAAAY,MAAM,EAAI;AACxB,UAAQC,gBAAR,GAA6B,MAAKX,KAAlC,CAAQW,gBAAR;;AAEA,UAAIA,gBAAJ,EAAsB;AACpB,YAAMC,aAAa,GAAG,MAAKC,wBAAL,CAA8BF,gBAA9B,EAAgDD,MAAhD,CAAtB;;AAEA,cAAKI,QAAL,CAAc;AAAEC,UAAAA,WAAW,EAAEH;AAAf,SAAd;AACD;AACF,KArDkB;AAAA,2GAuDE,YAAM;AACzB,YAAKZ,KAAL,CAAWgB,gBAAX;;AACA,YAAKC,OAAL,CAAa;AACXpB,QAAAA,IAAI,EAAE;AADK,OAAb;;AAIA,YAAKqB,aAAL,CAAmB,IAAnB;AACD,KA9DkB;AAAA,uGAgEF,UAAAC,KAAK,EAAI;AACxB,yBAAgC,MAAKnB,KAArC;AAAA,UAAQG,QAAR,gBAAQA,QAAR;AAAA,UAAkBF,SAAlB,gBAAkBA,SAAlB;AAEA;;AAEA,YAAKiB,aAAL,CAAmB,IAAnB,EALwB,CAOxB;;;AACA,UAAIjB,SAAS,KAAKkB,KAAK,CAACC,OAAN,CAAc,GAAd,MAAuB,CAAC,CAAxB,IAA6BD,KAAK,CAACC,OAAN,CAAc,GAAd,MAAuB,CAAC,CAA1D,CAAT,IAAyE,MAAKf,KAAlF,EAAyF;AACvF,cAAKA,KAAL,CAAWC,KAAX;;AACA,cAAKD,KAAL,CAAWI,KAAX,CAAiBU,KAAK,CAACE,OAAN,CAAc3B,YAAd,EAA4B,EAA5B,CAAjB;;AACA;AACD;;AAEDS,MAAAA,QAAQ,CAACgB,KAAD,CAAR;AACD,KA/EkB;AAAA,2GA8GE,UAAAG,GAAG,EAAI;AAC1B,YAAKR,QAAL,CAAc;AAAES,QAAAA,cAAc,EAAED,GAAG,CAACE,MAAJ,CAAW1B;AAA7B,OAAd;AACD,KAhHkB;AAAA,iHAkHQ,UAACa,gBAAD,EAAmBD,MAAnB,EAA8B;AACvD,iBAAmB,MAAKL,KAAL,IAAc,MAAKA,KAAL,CAAWL,KAA1B,IAAoC,EAAtD;AAAA,UAAQmB,KAAR,QAAQA,KAAR;;AAEA,UAAIA,KAAJ,EAAW;AACT,YAAMM,KAAK,GAAG,CAACN,KAAK,CAACO,KAAN,CAAY,cAAZ,KAA+B,EAAhC,EAAoCC,MAAlD;AAEA,eAAOjB,MAAM,GAAGe,KAAK,KAAKd,gBAAgB,GAAG,CAAhC,GAAoCc,KAAK,KAAKd,gBAA3D;AACD;;AAED,aAAO,KAAP;AACD,KA5HkB;AAGjB,UAAKiB,KAAL,GAAa;AAAEL,MAAAA,cAAc,EAAE,gBAAlB;AAAoCR,MAAAA,WAAW,EAAE;AAAjD,KAAb;AAHiB;AAIlB;;;;WAED,6BAAoB;AAClB,UAAI,KAAKV,KAAL,IAAc,KAAKL,KAAL,CAAW6B,SAA7B,EAAwC;AACtC,aAAKxB,KAAL,CAAWyB,KAAX;AACD;AACF;;;;AAuED;AACF;AACE,mCAAsBC,SAAtB,EAAiCC,SAAjC,EAA4C;AAC1C,UAAMC,gBAAgB,GAAG,KAAK5B,KAAL,CAAW6B,SAAX,CAAqBf,KAArB,OAAiCY,SAAS,CAACZ,KAApE;AACA1B,MAAAA,GAAG,CAAC,0BAAD,EAA6B,oBAA7B,EAAmDwC,gBAAnD,CAAH;;AAEA,UAAI,CAAC,yBAAQ,KAAKjC,KAAL,CAAWmC,KAAnB,EAA0BJ,SAAS,CAACI,KAApC,CAAL,EAAiD;AAC/C,eAAO,IAAP;AACD;;AAED,UAAI,CAACF,gBAAD,IAAqB,KAAKjC,KAAL,CAAWoC,UAAX,KAA0BL,SAAS,CAACK,UAA7D,EAAyE;AACvE,eAAO,IAAP;AACD;;AAED,UAAI,CAACH,gBAAD,IAAqB,KAAKjC,KAAL,CAAWC,SAAX,KAAyB8B,SAAS,CAAC9B,SAA5D,EAAuE;AACrE,eAAO,IAAP;AACD;;AAED,UAAI,CAACgC,gBAAD,IAAqB,KAAKL,KAAL,CAAWL,cAAX,KAA8BS,SAAS,CAACT,cAAjE,EAAiF;AAC/E,eAAO,IAAP;AACD;;AAED,UAAI,CAACU,gBAAD,IAAqB,KAAKjC,KAAL,CAAWqC,gBAApC,EAAsD;AACpD,eAAO,KAAKrC,KAAL,CAAWsC,UAAX,KAA0BP,SAAS,CAACO,UAA3C;AACD;;AAED,aAAOL,gBAAP;AACD;;;WAkBD,kBAAS;AAAA;;AACP,yBAgBI,KAAKjC,KAhBT;AAAA,UACEuC,UADF,gBACEA,UADF;AAAA,UAEEH,UAFF,gBAEEA,UAFF;AAAA,UAGEI,gBAHF,gBAGEA,gBAHF;AAAA,UAIEC,cAJF,gBAIEA,cAJF;AAAA,UAKEJ,gBALF,gBAKEA,gBALF;AAAA,UAMEK,oBANF,gBAMEA,oBANF;AAAA,UAOEJ,UAPF,gBAOEA,UAPF;AAAA,UAQErC,SARF,gBAQEA,SARF;AAAA,UASE0C,SATF,gBASEA,SATF;AAAA,UAUEC,eAVF,gBAUEA,eAVF;AAAA,UAWEzB,KAXF,gBAWEA,KAXF;AAAA,UAYE0B,QAZF,gBAYEA,OAZF;AAAA,UAaEC,OAbF,gBAaEA,MAbF;AAAA,UAcEC,OAdF,gBAcEA,OAdF;AAAA,UAeEZ,KAfF,gBAeEA,KAfF;AAiBA,UAAMa,gBAAgB,GAAG,CAACX,gBAAD,IAAsBA,gBAAgB,IAAIC,UAAnE;AACA,UAAQvB,WAAR,GAAwB,KAAKa,KAA7B,CAAQb,WAAR;AAEAtB,MAAAA,GAAG,CAAC,UAAD,EAAa0B,KAAb,CAAH;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAG4B,OAAO,CAACE,WAAX,EAAwBV,UAAU,CAACU,WAAnC;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAE,4BAAGF,OAAO,CAACG,qBAAX,uCAAqCH,OAAO,CAACI,IAA7C,EAAoDR,SAApD;AAAhB,SACGD,oBAAoB,iBACnB,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAC,iBAAtB;AAAwC,QAAA,SAAS,EAAEK,OAAO,CAACK;AAA3D,sBACE,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEL,OAAO,CAACM,MADrB;AAEE,QAAA,QAAQ,EAAE,KAAKC,kBAFjB;AAGE,QAAA,KAAK,EAAE,KAAK1B,KAAL,CAAWL;AAHpB,sBAKE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,2CALF,eAME,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,8BANF,eAOE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,8BAPF,eAQE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,+BARF,eASE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBATF,eAUE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBAVF,eAWE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBAXF,eAYE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,wBAZF,eAaE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,oBAbF,eAcE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,4BAdF,eAeE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,sBAfF,eAgBE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,0BAhBF,eAiBE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,oBAjBF,CADF,CAFJ,eAwBE;AAAK,QAAA,SAAS,EAAE,4BAAGwB,OAAO,CAACQ,cAAX,EAA2BpB,KAAK,GAAGY,OAAO,CAACZ,KAAX,GAAmB,EAAnD;AAAhB,sBACE,gCAAC,aAAD,CAAI,KAAJ;AACE,QAAA,OAAO,EAAE,mBAAM;AACbU,UAAAA,QAAO,IAAIA,QAAO,EAAlB;;AACA,UAAA,MAAI,CAAC3B,aAAL,CAAmB,KAAnB;AACD,SAJH;AAKE,QAAA,MAAM,EAAE,gBAAAsC,KAAK,EAAI;AACf,UAAA,MAAI,CAACtC,aAAL,CAAmB,KAAnB;;AACA4B,UAAAA,OAAM,IAAIA,OAAM,CAACU,KAAD,CAAhB;AACD,SARH;AASE,QAAA,SAAS,EAAE,4BACTT,OAAO,CAACU,UADC,EAETlB,UAAU,CAACmB,MAFF,EAGT,CAAChB,oBAAD,GAAwBK,OAAO,CAACY,cAAhC,GAAiD,EAHxC,CATb;AAcE,QAAA,QAAQ,EAAE,kBAAAC,CAAC;AAAA,iBAAK,MAAI,CAACvD,KAAL,GAAauD,CAAlB;AAAA,SAdb;AAeE,QAAA,KAAK,EAAEzC,KAfT;AAgBE,QAAA,QAAQ,EAAE,KAAK0C;AAhBjB,QADF,CAxBF,CADF,EA8CGrB,gBAAgB,iBACf,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEO,OAAO,CAACe,oBADrB;AAEE,QAAA,IAAI,EAAC,SAFP;AAGE,QAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAEf,gBAAgB,GAAG,OAAH,GAAa;AAAvC,SAHT;AAIE,QAAA,OAAO,EAAE,KAAKgB,kBAJhB;AAKE,QAAA,QAAQ,EAAEjD;AALZ,2BA/CJ,eAyDE;AAAI,QAAA,SAAS,EAAEgC,OAAO,CAACkB;AAAvB,QAzDF,EA0DGjB,gBAAgB,iBACf,gCAAC,2BAAD;AACE,QAAA,SAAS,EAAED,OAAO,CAACmB,QADrB;AAEE,QAAA,eAAe,EAAEtB,eAFnB;AAGE,QAAA,cAAc,EAAEH,cAHlB;AAIE,QAAA,IAAI,EAAEC,oBAAoB,GAAG,KAAKd,KAAL,CAAWL,cAAd,GAA+Ba,UAJ3D;AAKE,QAAA,OAAO,EAAE,KAAKnB,OALhB;AAME,QAAA,SAAS,EAAEhB;AANb,QA3DJ,CADF;AAuED;;;EAlP+BkE,kBAAMC,S;;;iCAA3BrE,Y,eACQ;AACjBwC,EAAAA,UAAU,EAAE8B,sBAAUC,MADL;AAEjBlC,EAAAA,UAAU,EAAEiC,sBAAUE,SAAV,CAAoB,CAACF,sBAAUG,MAAX,EAAmBH,sBAAUI,MAA7B,CAApB,CAFK;AAGjB5C,EAAAA,SAAS,EAAEwC,sBAAUK,IAHJ;AAIjBlC,EAAAA,gBAAgB,EAAE6B,sBAAUK,IAJX;AAKjBpC,EAAAA,UAAU,EAAE+B,sBAAUK,IALL;AAMjBrC,EAAAA,gBAAgB,EAAEgC,sBAAUK,IANX;AAOjBhC,EAAAA,oBAAoB,EAAE2B,sBAAUK,IAPf;AAQjBzE,EAAAA,SAAS,EAAEoE,sBAAUK,IARJ;AASjB/B,EAAAA,SAAS,EAAE0B,sBAAUK,IATJ;AAUjBxE,EAAAA,eAAe,EAAEmE,sBAAUK,IAVV;AAWjB9B,EAAAA,eAAe,EAAEyB,sBAAUC,MAXV;AAYjB7B,EAAAA,cAAc,EAAE4B,sBAAUM,KAZT;AAajBxD,EAAAA,KAAK,EAAEkD,sBAAUG,MAAV,CAAiBI,UAbP;AAcjB5D,EAAAA,gBAAgB,EAAEqD,sBAAUQ,IAdX;AAejBhC,EAAAA,OAAO,EAAEwB,sBAAUQ,IAfF;AAgBjB/B,EAAAA,MAAM,EAAEuB,sBAAUQ,IAhBD;AAiBjB1E,EAAAA,QAAQ,EAAEkE,sBAAUQ,IAAV,CAAeD,UAjBR;AAkBjB7B,EAAAA,OAAO,EAAEsB,sBAAUC;AAlBF,C;;AAoPrB,IAAMQ,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvB7B,IAAAA,qBAAqB,EAAE;AACrB8B,MAAAA,OAAO,EAAE,MADY;AAErBC,MAAAA,UAAU,EAAE,QAFS;AAGrB,0BAAoB;AAClBC,QAAAA,SAAS,EAAE;AADO,OAHC;AAMrB,uCAAiC;AAC/BC,QAAAA,UAAU,EAAE;AADmB,OANZ;AASrB,uCAAiC;AAC/BC,QAAAA,QAAQ,EAAE,QADqB;AAE/B,eAAO;AACLC,UAAAA,UAAU,EAAE;AADP,SAFwB;AAK/B,oBAAY;AACVC,UAAAA,GAAG,EAAE,QADK;AAEVC,UAAAA,IAAI,EAAE;AAFI,SALmB;AAS/B,mBAAW;AACTD,UAAAA,GAAG,EAAE,SADI;AAETE,UAAAA,KAAK,EAAE;AAFE,SAToB;AAa/B,4BAAoB;AAClBF,UAAAA,GAAG,EAAE;AADa;AAbW,OATZ;AA0BrB,wCAAkC;AAChC,oBAAY;AACVA,UAAAA,GAAG,EAAE,QADK;AAEVE,UAAAA,KAAK,EAAE;AAFG;AADoB,OA1Bb;AAgCrB,aAAO;AACLL,QAAAA,UAAU,EAAE,8BADP;AAGL,qCAA6B;AAC3BM,UAAAA,OAAO,EAAE;AADkB,SAHxB;AAOL,+BAAuB;AACrBP,UAAAA,SAAS,EAAE,MADU;AAErBQ,UAAAA,UAAU,EAAE,iBAFS;AAIrB,2BAAiB;AACfD,YAAAA,OAAO,EAAE,cADM;AAEfC,YAAAA,UAAU,EAAE,gBAFG;AAGfR,YAAAA,SAAS,EAAE;AAHI;AAJI,SAPlB;AAkBL,uCAA+B;AAC7BF,UAAAA,OAAO,EAAE;AADoB,SAlB1B;AAsBL,sCAA8B;AAC5BW,UAAAA,QAAQ,EAAE;AADkB,SAtBzB;AA0BL,qCAA6B;AAC3BC,UAAAA,aAAa,EAAE;AADY,SA1BxB;AA8BL,yCAAiC;AAC/BC,UAAAA,SAAS,EAAE,cADoB;AAE/BH,UAAAA,UAAU,EAAE,QAFmB;AAG/BR,UAAAA,SAAS,EAAE,iBAHoB;AAI/BY,UAAAA,UAAU,EAAE;AAJmB,SA9B5B;AAqCL,yBAAiB;AACfH,UAAAA,QAAQ,EAAE;AADK,SArCZ;AAyCL,kDAA0C;AACxCC,UAAAA,aAAa,EAAE,mBADyB;AAGxC,uBAAa;AACXG,YAAAA,YAAY,EAAE;AADH;AAH2B,SAzCrC;AAiDL,kCAA0B;AAjDrB;AAhCc,KADA;AAqFvB5C,IAAAA,IAAI,EAAE;AACJ6B,MAAAA,OAAO,EAAE;AADL,KArFiB;AAwFvB5B,IAAAA,eAAe,EAAE;AACf4C,MAAAA,IAAI,EAAE,SADS;AAEfC,MAAAA,KAAK,EAAE,KAFQ;AAGfb,MAAAA,QAAQ,EAAE,OAHK;AAIfM,MAAAA,UAAU,EAAE,MAJG;AAKfR,MAAAA,SAAS,EAAE,KALI;AAMfa,MAAAA,YAAY,EAAE,KANC;AAOfG,MAAAA,WAAW,EAAE,KAPE;AASf,iBAAW;AACTf,QAAAA,UAAU,EAAE;AADH,OATI;AAaf,eAAS;AACPA,QAAAA,UAAU,EAAE;AADL;AAbM,KAxFM;AAyGvB1B,IAAAA,UAAU,EAAE;AACV0C,MAAAA,QAAQ,EAAE,OADA;AAEVC,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EAFG;AAGVC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN,EAHP;AAIVd,MAAAA,OAAO,EAAEV,KAAK,CAACyB,OAAN,CAAcC;AAJb,KAzGW;AA+GvB9C,IAAAA,cAAc,EAAE;AACdwC,MAAAA,QAAQ,EAAE;AADI,KA/GO;AAkHvBrC,IAAAA,oBAAoB,EAAE;AACpB4C,MAAAA,QAAQ,EAAE,UADU;AAEpBlB,MAAAA,KAAK,EAAE,MAFa;AAGpBmB,MAAAA,MAAM,EAAE;AAHY,KAlHC;AAuHvB1C,IAAAA,EAAE,EAAE;AACFwB,MAAAA,OAAO,EAAE,CADP;AAEFmB,MAAAA,MAAM,EAAE,CAFN;AAGFC,MAAAA,MAAM,EAAE,KAHN;AAIFF,MAAAA,MAAM,EAAE,MAJN;AAKFG,MAAAA,YAAY,sBAAe/B,KAAK,CAACgC,OAAN,CAAcC,OAAd,CAAsBC,IAArC;AALV,KAvHmB;AA8HvBhE,IAAAA,WAAW,EAAE;AACXiE,MAAAA,MAAM,EAAE,CADG;AAEXR,MAAAA,QAAQ,EAAE,UAFC;AAGXS,MAAAA,SAAS,EAAE,QAHA;AAIXlB,MAAAA,KAAK,EAAE,MAJI;AAKX,2BAAqB;AACnBU,QAAAA,MAAM,EAAE;AADW,OALV;AAQX,yBAAmB;AACjBS,QAAAA,OAAO,EAAE,MADQ;AAEjBC,QAAAA,SAAS,EAAE,MAFM;AAGjBV,QAAAA,MAAM,uBAAgB5B,KAAK,CAACgC,OAAN,CAAcC,OAAd,CAAsBC,IAAtC,CAHW;AAIjBK,QAAAA,YAAY,EAAE;AAJG,OARR;AAcX,+BAAyB;AACvBX,QAAAA,MAAM,EAAE,iBADe;AAEvBb,QAAAA,UAAU,EAAE;AAFW,OAdd;AAkBX,qCAA+B;AAC7Bd,QAAAA,OAAO,EAAE;AADoB,OAlBpB;AAqBX,oCAA8B;AAC5BA,QAAAA,OAAO,EAAE;AADmB,OArBnB;AAwBX,6BAAuB;AACrBa,QAAAA,SAAS,EAAE,sBADU;AAErBC,QAAAA,UAAU,EAAE;AAFS,OAxBZ;AA4BX,uCAAiC;AAC/BV,QAAAA,QAAQ,EAAE;AADqB,OA5BtB;AA+BX,6BAAuB;AACrBC,QAAAA,UAAU,EAAE;AADS;AA/BZ,KA9HU;AAiKvB9B,IAAAA,cAAc,EAAE;AACd6B,MAAAA,QAAQ,EAAE,OADI;AAEde,MAAAA,QAAQ,EAAE,OAFI;AAGdoB,MAAAA,SAAS,EAAE,MAHG;AAIdtB,MAAAA,KAAK,EAAE,MAJO;AAKdjB,MAAAA,OAAO,EAAE,MALK;AAMdE,MAAAA,SAAS,EAAEH,KAAK,CAACyB,OAAN,CAAcC,IANX;AAOdV,MAAAA,YAAY,EAAEhB,KAAK,CAACyB,OAAN,CAAcC;AAPd,KAjKO;AA0KvBtE,IAAAA,KAAK,EAAE;AACLwE,MAAAA,MAAM,EAAE;AADH,KA1KgB;AA6KvBzC,IAAAA,QAAQ,EAAE;AACR,aAAO;AACLiB,QAAAA,UAAU,EAAE,8BADP;AAGL,qCAA6B;AAC3BM,UAAAA,OAAO,EAAE;AADkB,SAHxB;AAOL,+BAAuB;AACrBP,UAAAA,SAAS,EAAE,MADU;AAErBQ,UAAAA,UAAU,EAAE,iBAFS;AAIrB,2BAAiB;AACfD,YAAAA,OAAO,EAAE,cADM;AAEfC,YAAAA,UAAU,EAAE,gBAFG;AAGfR,YAAAA,SAAS,EAAE;AAHI;AAJI,SAPlB;AAkBL,uCAA+B;AAC7BF,UAAAA,OAAO,EAAE;AADoB,SAlB1B;AAsBL,sCAA8B;AAC5BW,UAAAA,QAAQ,EAAE;AADkB,SAtBzB;AA0BL,yCAAiC;AAC/BT,UAAAA,SAAS,EAAE,MADoB;AAE/BY,UAAAA,UAAU,EAAE;AAFmB,SA1B5B;AA+BL,qCAA6B;AAC3BF,UAAAA,aAAa,EAAE;AADY;AA/BxB;AADC;AA7Ka,GAAL;AAAA,CAApB;;eAoNe,wBAAWd,MAAX,EAAmB/E,YAAnB,C","sourcesContent":["import { HorizontalKeypad, mq } from '@pie-lib/math-input';\nimport React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nconst log = debug('@pie-lib:math-toolbar:editor-and-pad');\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport { updateSpans } from '@pie-lib/math-input';\nimport isEqual from 'lodash/isEqual';\n\nconst decimalRegex = /\\.|,/g;\n\nconst toNodeData = data => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n};\n\nexport class EditorAndPad extends React.Component {\n static propTypes = {\n classNames: PropTypes.object,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n autoFocus: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n showKeypad: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n noDecimal: PropTypes.bool,\n hideInput: PropTypes.bool,\n noLatexHandling: PropTypes.bool,\n layoutForKeyPad: PropTypes.object,\n additionalKeys: PropTypes.array,\n latex: PropTypes.string.isRequired,\n onAnswerBlockAdd: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.state = { equationEditor: 'item-authoring', addDisabled: false };\n }\n\n componentDidMount() {\n if (this.input && this.props.autoFocus) {\n this.input.focus();\n }\n }\n\n onClick = data => {\n const { noDecimal, noLatexHandling, onChange } = this.props;\n const c = toNodeData(data);\n log('mathChange: ', c);\n\n if (noLatexHandling) {\n onChange(c.value);\n return;\n }\n\n // if decimals are not allowed for this response, we discard the input\n if (noDecimal && (c.value === '.' || c.value === ',')) {\n return;\n }\n\n if (!c) {\n return;\n }\n\n if (c.type === 'clear') {\n log('call clear...');\n this.input.clear();\n } else if (c.type === 'command') {\n this.input.command(c.value);\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else if (c.type === 'answer') {\n this.input.write('%response%');\n } else {\n this.input.write(c.value);\n }\n };\n\n updateDisable = isEdit => {\n const { maxResponseAreas } = this.props;\n\n if (maxResponseAreas) {\n const shouldDisable = this.checkResponseAreasNumber(maxResponseAreas, isEdit);\n\n this.setState({ addDisabled: shouldDisable });\n }\n };\n\n onAnswerBlockClick = () => {\n this.props.onAnswerBlockAdd();\n this.onClick({\n type: 'answer'\n });\n\n this.updateDisable(true);\n };\n\n onEditorChange = latex => {\n const { onChange, noDecimal } = this.props;\n\n updateSpans();\n\n this.updateDisable(true);\n\n // if no decimals are allowed and the last change is a decimal dot, discard the change\n if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && this.input) {\n this.input.clear();\n this.input.write(latex.replace(decimalRegex, ''));\n return;\n }\n\n onChange(latex);\n };\n\n /** Only render if the mathquill instance's latex is different\n * or the keypad state changed from one state to the other (shown / hidden) */\n shouldComponentUpdate(nextProps, nextState) {\n const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;\n log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);\n\n if (!isEqual(this.props.error, nextProps.error)) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {\n return true;\n }\n\n if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.controlledKeypad) {\n return this.props.showKeypad !== nextProps.showKeypad;\n }\n\n return inputIsDifferent;\n }\n\n onEditorTypeChange = evt => {\n this.setState({ equationEditor: evt.target.value });\n };\n\n checkResponseAreasNumber = (maxResponseAreas, isEdit) => {\n const { latex } = (this.input && this.input.props) || {};\n\n if (latex) {\n const count = (latex.match(/answerBlock/g) || []).length;\n\n return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;\n }\n\n return false;\n };\n\n render() {\n const {\n classNames,\n keypadMode,\n allowAnswerBlock,\n additionalKeys,\n controlledKeypad,\n controlledKeypadMode,\n showKeypad,\n noDecimal,\n hideInput,\n layoutForKeyPad,\n latex,\n onFocus,\n onBlur,\n classes,\n error\n } = this.props;\n const shouldShowKeypad = !controlledKeypad || (controlledKeypad && showKeypad);\n const { addDisabled } = this.state;\n\n log('[render]', latex);\n\n return (\n <div className={cx(classes.mathToolbar, classNames.mathToolbar)}>\n <div className={cx(classes.inputAndTypeContainer, { [classes.hide]: hideInput })}>\n {controlledKeypadMode && (\n <InputContainer label=\"Equation Editor\" className={classes.selectContainer}>\n <Select\n className={classes.select}\n onChange={this.onEditorTypeChange}\n value={this.state.equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n <MenuItem value={'language'}>Language</MenuItem>\n </Select>\n </InputContainer>\n )}\n <div className={cx(classes.inputContainer, error ? classes.error : '')}>\n <mq.Input\n onFocus={() => {\n onFocus && onFocus();\n this.updateDisable(false);\n }}\n onBlur={event => {\n this.updateDisable(false);\n onBlur && onBlur(event);\n }}\n className={cx(\n classes.mathEditor,\n classNames.editor,\n !controlledKeypadMode ? classes.longMathEditor : ''\n )}\n innerRef={r => (this.input = r)}\n latex={latex}\n onChange={this.onEditorChange}\n />\n </div>\n </div>\n {allowAnswerBlock && (\n <Button\n className={classes.addAnswerBlockButton}\n type=\"primary\"\n style={{ bottom: shouldShowKeypad ? '320px' : '20px' }}\n onClick={this.onAnswerBlockClick}\n disabled={addDisabled}\n >\n + Response Area\n </Button>\n )}\n <hr className={classes.hr} />\n {shouldShowKeypad && (\n <HorizontalKeypad\n className={classes.keyboard}\n layoutForKeyPad={layoutForKeyPad}\n additionalKeys={additionalKeys}\n mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}\n onClick={this.onClick}\n noDecimal={noDecimal}\n />\n )}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n inputAndTypeContainer: {\n display: 'flex',\n alignItems: 'center',\n '& .mq-root-block': {\n marginTop: '8px',\n },\n '& .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.36em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& *': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important'\n },\n\n '& .mq-longdiv-inner': {\n marginTop: '-1px',\n marginLeft: '5px !important;',\n\n '& > .mq-empty': {\n padding: '0 !important',\n marginLeft: '0px !important',\n marginTop: '2px'\n }\n },\n\n '& .mq-math-mode .mq-longdiv': {\n display: 'flex !important'\n },\n\n '& .mq-math-mode .mq-supsub': {\n fontSize: '70.7% !important'\n },\n\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'middle !important'\n },\n\n '& .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important'\n },\n\n '& .mq-supsub ': {\n fontSize: '70.7%'\n },\n\n '& .mq-math-mode .mq-supsub.mq-sup-only': {\n verticalAlign: '-0.1em !important',\n\n '& .mq-sup': {\n marginBottom: '0px !important'\n }\n },\n\n '-webkit-font-smoothing': 'antialiased !important'\n }\n },\n hide: {\n display: 'none'\n },\n selectContainer: {\n flex: 'initial',\n width: '25%',\n minWidth: '100px',\n marginLeft: '15px',\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px',\n\n '& label': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n\n '& div': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n }\n },\n mathEditor: {\n maxWidth: '400px',\n color: color.text(),\n backgroundColor: color.background(),\n padding: theme.spacing.unit\n },\n longMathEditor: {\n maxWidth: '500px'\n },\n addAnswerBlockButton: {\n position: 'absolute',\n right: '12px',\n border: '1px solid lightgrey'\n },\n hr: {\n padding: 0,\n margin: 0,\n height: '1px',\n border: 'none',\n borderBottom: `solid 1px ${theme.palette.primary.main}`\n },\n mathToolbar: {\n zIndex: 9,\n position: 'relative',\n textAlign: 'center',\n width: 'auto',\n '& > .mq-math-mode': {\n border: 'solid 1px lightgrey'\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: `dotted 1px ${theme.palette.primary.main}`,\n borderRadius: '0px'\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n paddingTop: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n inputContainer: {\n minWidth: '500px',\n maxWidth: '900px',\n minHeight: '40px',\n width: '100%',\n display: 'flex',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit\n },\n error: {\n border: '2px solid red'\n },\n keyboard: {\n '& *': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important'\n },\n\n '& .mq-longdiv-inner': {\n marginTop: '-1px',\n marginLeft: '5px !important;',\n\n '& > .mq-empty': {\n padding: '0 !important',\n marginLeft: '0px !important',\n marginTop: '2px'\n }\n },\n\n '& .mq-math-mode .mq-longdiv': {\n display: 'flex !important'\n },\n\n '& .mq-math-mode .mq-supsub': {\n fontSize: '70.7% !important'\n },\n\n '& .mq-math-mode .mq-sqrt-stem': {\n marginTop: '-5px',\n paddingTop: '4px'\n },\n\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'middle !important'\n }\n }\n }\n});\n\nexport default withStyles(styles)(EditorAndPad);\n"],"file":"editor-and-pad.js"}
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -13,75 +13,65 @@ Object.defineProperty(exports, "MathPreview", {
13
13
  });
14
14
  exports.RawPureToolbar = exports.PureToolbar = exports.MathToolbar = void 0;
15
15
 
16
- var _react = _interopRequireDefault(require("react"));
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
17
 
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
19
 
20
- var _classnames = _interopRequireDefault(require("classnames"));
20
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
21
 
22
- var _editorAndPad = _interopRequireDefault(require("./editor-and-pad"));
22
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
23
 
24
- var _doneButton = require("./done-button");
25
-
26
- var _styles = require("@material-ui/core/styles");
24
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
25
 
28
- var _mathPreview = _interopRequireDefault(require("./math-preview"));
26
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
27
 
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
29
 
32
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
+ var _react = _interopRequireDefault(require("react"));
33
31
 
34
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
32
+ var _propTypes = _interopRequireDefault(require("prop-types"));
35
33
 
36
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
34
+ var _classnames = _interopRequireDefault(require("classnames"));
37
35
 
38
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
36
+ var _editorAndPad = _interopRequireDefault(require("./editor-and-pad"));
39
37
 
40
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
38
+ var _doneButton = require("./done-button");
41
39
 
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
40
+ var _styles = require("@material-ui/core/styles");
43
41
 
44
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
42
+ var _mathPreview = _interopRequireDefault(require("./math-preview"));
45
43
 
46
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
44
+ 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); }; }
47
45
 
48
46
  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; } }
49
47
 
50
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
51
-
52
- 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; }
53
-
54
48
  var MathToolbar = /*#__PURE__*/function (_React$Component) {
55
- _inherits(MathToolbar, _React$Component);
49
+ (0, _inherits2["default"])(MathToolbar, _React$Component);
56
50
 
57
51
  var _super = _createSuper(MathToolbar);
58
52
 
59
53
  function MathToolbar(props) {
60
54
  var _this;
61
55
 
62
- _classCallCheck(this, MathToolbar);
63
-
56
+ (0, _classCallCheck2["default"])(this, MathToolbar);
64
57
  _this = _super.call(this, props);
65
-
66
- _defineProperty(_assertThisInitialized(_this), "done", function () {
58
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "done", function () {
67
59
  _this.props.onDone(_this.state.latex);
68
60
  });
69
-
70
- _defineProperty(_assertThisInitialized(_this), "onChange", function (latex) {
61
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (latex) {
71
62
  _this.setState({
72
63
  latex: latex
73
64
  });
74
65
 
75
66
  _this.props.onChange(latex);
76
67
  });
77
-
78
68
  _this.state = {
79
69
  latex: props.latex
80
70
  };
81
71
  return _this;
82
72
  }
83
73
 
84
- _createClass(MathToolbar, [{
74
+ (0, _createClass2["default"])(MathToolbar, [{
85
75
  key: "UNSAFE_componentWillReceiveProps",
86
76
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
87
77
  this.setState({
@@ -130,13 +120,11 @@ var MathToolbar = /*#__PURE__*/function (_React$Component) {
130
120
  });
131
121
  }
132
122
  }]);
133
-
134
123
  return MathToolbar;
135
124
  }(_react["default"].Component);
136
125
 
137
126
  exports.MathToolbar = MathToolbar;
138
-
139
- _defineProperty(MathToolbar, "propTypes", {
127
+ (0, _defineProperty2["default"])(MathToolbar, "propTypes", {
140
128
  autoFocus: _propTypes["default"].bool,
141
129
  allowAnswerBlock: _propTypes["default"].bool,
142
130
  controlledKeypad: _propTypes["default"].bool,
@@ -154,8 +142,7 @@ _defineProperty(MathToolbar, "propTypes", {
154
142
  onBlur: _propTypes["default"].func,
155
143
  hideDoneButton: _propTypes["default"].bool
156
144
  });
157
-
158
- _defineProperty(MathToolbar, "defaultProps", {
145
+ (0, _defineProperty2["default"])(MathToolbar, "defaultProps", {
159
146
  classNames: {},
160
147
  keypadMode: 'item-authoring',
161
148
  autoFocus: false,
@@ -172,17 +159,16 @@ _defineProperty(MathToolbar, "defaultProps", {
172
159
  });
173
160
 
174
161
  var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
175
- _inherits(RawPureToolbar, _React$Component2);
162
+ (0, _inherits2["default"])(RawPureToolbar, _React$Component2);
176
163
 
177
164
  var _super2 = _createSuper(RawPureToolbar);
178
165
 
179
166
  function RawPureToolbar() {
180
- _classCallCheck(this, RawPureToolbar);
181
-
167
+ (0, _classCallCheck2["default"])(this, RawPureToolbar);
182
168
  return _super2.apply(this, arguments);
183
169
  }
184
170
 
185
- _createClass(RawPureToolbar, [{
171
+ (0, _createClass2["default"])(RawPureToolbar, [{
186
172
  key: "render",
187
173
  value: function render() {
188
174
  var _this$props2 = this.props,
@@ -196,6 +182,9 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
196
182
  showKeypad = _this$props2.showKeypad,
197
183
  keypadMode = _this$props2.keypadMode,
198
184
  noDecimal = _this$props2.noDecimal,
185
+ hideInput = _this$props2.hideInput,
186
+ noLatexHandling = _this$props2.noLatexHandling,
187
+ layoutForKeyPad = _this$props2.layoutForKeyPad,
199
188
  latex = _this$props2.latex,
200
189
  onChange = _this$props2.onChange,
201
190
  onDone = _this$props2.onDone,
@@ -214,6 +203,9 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
214
203
  controlledKeypad: controlledKeypad,
215
204
  controlledKeypadMode: controlledKeypadMode,
216
205
  noDecimal: noDecimal,
206
+ hideInput: hideInput,
207
+ noLatexHandling: noLatexHandling,
208
+ layoutForKeyPad: layoutForKeyPad,
217
209
  showKeypad: showKeypad,
218
210
  additionalKeys: additionalKeys,
219
211
  allowAnswerBlock: allowAnswerBlock,
@@ -229,16 +221,17 @@ var RawPureToolbar = /*#__PURE__*/function (_React$Component2) {
229
221
  }));
230
222
  }
231
223
  }]);
232
-
233
224
  return RawPureToolbar;
234
225
  }(_react["default"].Component);
235
226
 
236
227
  exports.RawPureToolbar = RawPureToolbar;
237
-
238
- _defineProperty(RawPureToolbar, "propTypes", {
228
+ (0, _defineProperty2["default"])(RawPureToolbar, "propTypes", {
239
229
  classNames: _propTypes["default"].object,
240
230
  latex: _propTypes["default"].string.isRequired,
241
231
  keypadMode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
232
+ hideInput: _propTypes["default"].bool,
233
+ noLatexHandling: _propTypes["default"].bool,
234
+ layoutForKeyPad: _propTypes["default"].object,
242
235
  onChange: _propTypes["default"].func.isRequired,
243
236
  onDone: _propTypes["default"].func.isRequired,
244
237
  onBlur: _propTypes["default"].func,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.jsx"],"names":["MathToolbar","props","onDone","state","latex","setState","onChange","nextProps","classNames","autoFocus","allowAnswerBlock","onAnswerBlockAdd","controlledKeypad","controlledKeypadMode","keypadMode","noDecimal","additionalKeys","showKeypad","onFocus","onBlur","hideDoneButton","error","maxResponseAreas","done","React","Component","PropTypes","bool","oneOfType","string","number","object","array","isRequired","func","RawPureToolbar","classes","pureToolbar","toolbar","styles","display","width","zIndex","alignItems","PureToolbar"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditorAndPad from './editor-and-pad';\nimport { DoneButton } from './done-button';\nimport { withStyles } from '@material-ui/core/styles';\nimport MathPreview from './math-preview';\n\nexport { MathPreview };\n\nexport class MathToolbar extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n classNames: PropTypes.object,\n showKeypad: PropTypes.bool,\n noDecimal: PropTypes.bool,\n additionalKeys: PropTypes.array,\n latex: PropTypes.string.isRequired,\n onAnswerBlockAdd: PropTypes.func,\n onChange: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n hideDoneButton: PropTypes.bool\n };\n\n static defaultProps = {\n classNames: {},\n keypadMode: 'item-authoring',\n autoFocus: false,\n allowAnswerBlock: false,\n controlledKeypad: false,\n controlledKeypadMode: false,\n noDecimal: false,\n showKeypad: true,\n additionalKeys: [],\n onChange: () => {},\n onAnswerBlockAdd: () => {},\n onFocus: () => {},\n hideDoneButton: false\n };\n\n constructor(props) {\n super(props);\n this.state = {\n latex: props.latex\n };\n }\n\n done = () => {\n this.props.onDone(this.state.latex);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({ latex: nextProps.latex });\n }\n\n onChange = latex => {\n this.setState({ latex });\n this.props.onChange(latex);\n };\n\n render() {\n const { latex } = this.state;\n const {\n classNames,\n autoFocus,\n allowAnswerBlock,\n onAnswerBlockAdd,\n controlledKeypad,\n controlledKeypadMode,\n keypadMode,\n noDecimal,\n additionalKeys,\n showKeypad,\n onFocus,\n onBlur,\n hideDoneButton,\n error,\n maxResponseAreas\n } = this.props;\n\n return (\n <PureToolbar\n autoFocus={autoFocus}\n classNames={classNames}\n onAnswerBlockAdd={onAnswerBlockAdd}\n allowAnswerBlock={allowAnswerBlock}\n latex={latex}\n additionalKeys={additionalKeys}\n noDecimal={noDecimal}\n keypadMode={keypadMode}\n onChange={this.onChange}\n onDone={this.done}\n onFocus={onFocus}\n onBlur={onBlur}\n showKeypad={showKeypad}\n controlledKeypad={controlledKeypad}\n controlledKeypadMode={controlledKeypadMode}\n hideDoneButton={hideDoneButton}\n error={error}\n maxResponseAreas={maxResponseAreas}\n />\n );\n }\n}\n\nexport class RawPureToolbar extends React.Component {\n static propTypes = {\n classNames: PropTypes.object,\n latex: PropTypes.string.isRequired,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n onBlur: PropTypes.func,\n onAnswerBlockAdd: PropTypes.func,\n additionalKeys: PropTypes.array,\n onFocus: PropTypes.func,\n classes: PropTypes.object.isRequired,\n autoFocus: PropTypes.bool,\n noDecimal: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n showKeypad: PropTypes.bool,\n hideDoneButton: PropTypes.bool\n };\n\n render() {\n const {\n classNames,\n autoFocus,\n allowAnswerBlock,\n onAnswerBlockAdd,\n controlledKeypad,\n controlledKeypadMode,\n additionalKeys,\n showKeypad,\n keypadMode,\n noDecimal,\n latex,\n onChange,\n onDone,\n onFocus,\n onBlur,\n hideDoneButton,\n classes,\n error,\n maxResponseAreas\n } = this.props;\n\n return (\n <div className={cx(classes.pureToolbar, (classNames || {}).toolbar)}>\n <div />\n <EditorAndPad\n autoFocus={autoFocus}\n keypadMode={keypadMode}\n classNames={classNames || {}}\n controlledKeypad={controlledKeypad}\n controlledKeypadMode={controlledKeypadMode}\n noDecimal={noDecimal}\n showKeypad={showKeypad}\n additionalKeys={additionalKeys}\n allowAnswerBlock={allowAnswerBlock}\n onAnswerBlockAdd={onAnswerBlockAdd}\n latex={latex}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n error={error}\n maxResponseAreas={maxResponseAreas}\n />\n {(!controlledKeypad || (controlledKeypad && showKeypad)) && !hideDoneButton && (\n <DoneButton onClick={onDone} />\n )}\n </div>\n );\n }\n}\nconst styles = () => ({\n pureToolbar: {\n display: 'flex',\n width: '100%',\n zIndex: 8,\n alignItems: 'center'\n }\n});\n\nexport const PureToolbar = withStyles(styles)(RawPureToolbar);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.jsx"],"names":["MathToolbar","props","onDone","state","latex","setState","onChange","nextProps","classNames","autoFocus","allowAnswerBlock","onAnswerBlockAdd","controlledKeypad","controlledKeypadMode","keypadMode","noDecimal","additionalKeys","showKeypad","onFocus","onBlur","hideDoneButton","error","maxResponseAreas","done","React","Component","PropTypes","bool","oneOfType","string","number","object","array","isRequired","func","RawPureToolbar","hideInput","noLatexHandling","layoutForKeyPad","classes","pureToolbar","toolbar","styles","display","width","zIndex","alignItems","PureToolbar"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditorAndPad from './editor-and-pad';\nimport { DoneButton } from './done-button';\nimport { withStyles } from '@material-ui/core/styles';\nimport MathPreview from './math-preview';\n\nexport { MathPreview };\n\nexport class MathToolbar extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n classNames: PropTypes.object,\n showKeypad: PropTypes.bool,\n noDecimal: PropTypes.bool,\n additionalKeys: PropTypes.array,\n latex: PropTypes.string.isRequired,\n onAnswerBlockAdd: PropTypes.func,\n onChange: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n hideDoneButton: PropTypes.bool\n };\n\n static defaultProps = {\n classNames: {},\n keypadMode: 'item-authoring',\n autoFocus: false,\n allowAnswerBlock: false,\n controlledKeypad: false,\n controlledKeypadMode: false,\n noDecimal: false,\n showKeypad: true,\n additionalKeys: [],\n onChange: () => {},\n onAnswerBlockAdd: () => {},\n onFocus: () => {},\n hideDoneButton: false\n };\n\n constructor(props) {\n super(props);\n this.state = {\n latex: props.latex\n };\n }\n\n done = () => {\n this.props.onDone(this.state.latex);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({ latex: nextProps.latex });\n }\n\n onChange = latex => {\n this.setState({ latex });\n this.props.onChange(latex);\n };\n\n render() {\n const { latex } = this.state;\n const {\n classNames,\n autoFocus,\n allowAnswerBlock,\n onAnswerBlockAdd,\n controlledKeypad,\n controlledKeypadMode,\n keypadMode,\n noDecimal,\n additionalKeys,\n showKeypad,\n onFocus,\n onBlur,\n hideDoneButton,\n error,\n maxResponseAreas\n } = this.props;\n\n return (\n <PureToolbar\n autoFocus={autoFocus}\n classNames={classNames}\n onAnswerBlockAdd={onAnswerBlockAdd}\n allowAnswerBlock={allowAnswerBlock}\n latex={latex}\n additionalKeys={additionalKeys}\n noDecimal={noDecimal}\n keypadMode={keypadMode}\n onChange={this.onChange}\n onDone={this.done}\n onFocus={onFocus}\n onBlur={onBlur}\n showKeypad={showKeypad}\n controlledKeypad={controlledKeypad}\n controlledKeypadMode={controlledKeypadMode}\n hideDoneButton={hideDoneButton}\n error={error}\n maxResponseAreas={maxResponseAreas}\n />\n );\n }\n}\n\nexport class RawPureToolbar extends React.Component {\n static propTypes = {\n classNames: PropTypes.object,\n latex: PropTypes.string.isRequired,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n hideInput: PropTypes.bool,\n noLatexHandling: PropTypes.bool,\n layoutForKeyPad: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n onBlur: PropTypes.func,\n onAnswerBlockAdd: PropTypes.func,\n additionalKeys: PropTypes.array,\n onFocus: PropTypes.func,\n classes: PropTypes.object.isRequired,\n autoFocus: PropTypes.bool,\n noDecimal: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n showKeypad: PropTypes.bool,\n hideDoneButton: PropTypes.bool\n };\n\n render() {\n const {\n classNames,\n autoFocus,\n allowAnswerBlock,\n onAnswerBlockAdd,\n controlledKeypad,\n controlledKeypadMode,\n additionalKeys,\n showKeypad,\n keypadMode,\n noDecimal,\n hideInput,\n noLatexHandling,\n layoutForKeyPad,\n latex,\n onChange,\n onDone,\n onFocus,\n onBlur,\n hideDoneButton,\n classes,\n error,\n maxResponseAreas\n } = this.props;\n\n return (\n <div className={cx(classes.pureToolbar, (classNames || {}).toolbar)}>\n <div />\n <EditorAndPad\n autoFocus={autoFocus}\n keypadMode={keypadMode}\n classNames={classNames || {}}\n controlledKeypad={controlledKeypad}\n controlledKeypadMode={controlledKeypadMode}\n noDecimal={noDecimal}\n hideInput={hideInput}\n noLatexHandling={noLatexHandling}\n layoutForKeyPad={layoutForKeyPad}\n showKeypad={showKeypad}\n additionalKeys={additionalKeys}\n allowAnswerBlock={allowAnswerBlock}\n onAnswerBlockAdd={onAnswerBlockAdd}\n latex={latex}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n error={error}\n maxResponseAreas={maxResponseAreas}\n />\n {(!controlledKeypad || (controlledKeypad && showKeypad)) && !hideDoneButton && (\n <DoneButton onClick={onDone} />\n )}\n </div>\n );\n }\n}\nconst styles = () => ({\n pureToolbar: {\n display: 'flex',\n width: '100%',\n zIndex: 8,\n alignItems: 'center'\n }\n});\n\nexport const PureToolbar = withStyles(styles)(RawPureToolbar);\n"],"file":"index.js"}
@@ -1,62 +1,53 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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.RawMathPreview = void 0;
9
9
 
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
- var _debug = _interopRequireDefault(require("debug"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
11
 
16
- var _styles = require("@material-ui/core/styles");
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
13
 
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
15
 
20
- var _mathInput = require("@pie-lib/math-input");
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
17
 
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
19
 
24
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
21
 
26
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
22
+ var _react = _interopRequireDefault(require("react"));
27
23
 
28
- 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 _classnames = _interopRequireDefault(require("classnames"));
29
25
 
30
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
26
+ var _debug = _interopRequireDefault(require("debug"));
31
27
 
32
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
+ var _styles = require("@material-ui/core/styles");
33
29
 
34
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
35
31
 
36
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
32
+ var _mathInput = require("@pie-lib/math-input");
37
33
 
38
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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); }; }
39
35
 
40
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; } }
41
37
 
42
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
43
-
44
- 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; }
45
-
46
38
  var log = (0, _debug["default"])('@pie-lib:math-toolbar:math-preview');
47
39
 
48
40
  var RawMathPreview = /*#__PURE__*/function (_React$Component) {
49
- _inherits(RawMathPreview, _React$Component);
41
+ (0, _inherits2["default"])(RawMathPreview, _React$Component);
50
42
 
51
43
  var _super = _createSuper(RawMathPreview);
52
44
 
53
45
  function RawMathPreview() {
54
- _classCallCheck(this, RawMathPreview);
55
-
46
+ (0, _classCallCheck2["default"])(this, RawMathPreview);
56
47
  return _super.apply(this, arguments);
57
48
  }
58
49
 
59
- _createClass(RawMathPreview, [{
50
+ (0, _createClass2["default"])(RawMathPreview, [{
60
51
  key: "render",
61
52
  value: function render() {
62
53
  log('[render] data: ', this.props.node.data);
@@ -77,13 +68,11 @@ var RawMathPreview = /*#__PURE__*/function (_React$Component) {
77
68
  }));
78
69
  }
79
70
  }]);
80
-
81
71
  return RawMathPreview;
82
72
  }(_react["default"].Component);
83
73
 
84
74
  exports.RawMathPreview = RawMathPreview;
85
-
86
- _defineProperty(RawMathPreview, "propTypes", {
75
+ (0, _defineProperty2["default"])(RawMathPreview, "propTypes", {
87
76
  latex: _propTypes["default"].string,
88
77
  node: _propTypes["default"].object,
89
78
  classes: _propTypes["default"].object,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/math-preview.jsx"],"names":["log","RawMathPreview","props","node","data","latex","get","classes","isSelected","onFocus","onBlur","root","selected","insideOverlay","React","Component","PropTypes","string","object","bool","func","mp","theme","display","alignItems","position","border","outline","boxShadow","borderRadius","fontFamily","paddingTop","minWidth","lineHeight","top","left","right","borderTop","palette","primary","main","bottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport { mq } from '@pie-lib/math-input';\n\nconst log = debug('@pie-lib:math-toolbar:math-preview');\n\nexport class RawMathPreview extends React.Component {\n static propTypes = {\n latex: PropTypes.string,\n node: PropTypes.object,\n classes: PropTypes.object,\n isSelected: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n };\n\n render() {\n log('[render] data: ', this.props.node.data);\n const latex = this.props.node.data.get('latex');\n const { classes, isSelected, onFocus, onBlur } = this.props;\n return (\n <div className={classNames(classes.root, isSelected && classes.selected)}>\n {' '}\n <span className={classes.insideOverlay} />\n <mq.Static latex={latex} onFocus={onFocus} onBlur={onBlur} />\n </div>\n );\n }\n}\n\nconst mp = theme => ({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n position: 'relative',\n '& > .mq-math-mode': {\n border: 'solid 1px lightgrey'\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: 'solid 1px black',\n borderRadius: '0px'\n },\n '& *': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.36em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n selected: {\n border: `solid 1px ${theme.palette.primary.main}`,\n '& > .mq-math-mode': {\n border: 'solid 0px lightgrey'\n }\n },\n insideOverlay: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n});\n\nexport default withStyles(mp)(RawMathPreview);\n"],"file":"math-preview.js"}
1
+ {"version":3,"sources":["../src/math-preview.jsx"],"names":["log","RawMathPreview","props","node","data","latex","get","classes","isSelected","onFocus","onBlur","root","selected","insideOverlay","React","Component","PropTypes","string","object","bool","func","mp","theme","display","alignItems","position","border","outline","boxShadow","borderRadius","fontFamily","paddingTop","minWidth","lineHeight","top","left","right","borderTop","palette","primary","main","bottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport { mq } from '@pie-lib/math-input';\n\nconst log = debug('@pie-lib:math-toolbar:math-preview');\n\nexport class RawMathPreview extends React.Component {\n static propTypes = {\n latex: PropTypes.string,\n node: PropTypes.object,\n classes: PropTypes.object,\n isSelected: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n };\n\n render() {\n log('[render] data: ', this.props.node.data);\n const latex = this.props.node.data.get('latex');\n const { classes, isSelected, onFocus, onBlur } = this.props;\n return (\n <div className={classNames(classes.root, isSelected && classes.selected)}>\n {' '}\n <span className={classes.insideOverlay} />\n <mq.Static latex={latex} onFocus={onFocus} onBlur={onBlur} />\n </div>\n );\n }\n}\n\nconst mp = theme => ({\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n position: 'relative',\n '& > .mq-math-mode': {\n border: 'solid 1px lightgrey'\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: 'solid 1px black',\n borderRadius: '0px'\n },\n '& *': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.36em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n selected: {\n border: `solid 1px ${theme.palette.primary.main}`,\n '& > .mq-math-mode': {\n border: 'solid 0px lightgrey'\n }\n },\n insideOverlay: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n});\n\nexport default withStyles(mp)(RawMathPreview);\n"],"file":"math-preview.js"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.9.2",
6
+ "version": "1.10.0",
7
7
  "description": "Math toolbar for editing math equations",
8
8
  "keywords": [
9
9
  "math",
@@ -19,10 +19,11 @@
19
19
  "dependencies": {
20
20
  "@material-ui/core": "^3.8.3",
21
21
  "@material-ui/icons": "^3.0.2",
22
- "@pie-lib/math-input": "^6.6.9",
22
+ "@pie-lib/math-input": "^6.7.0",
23
23
  "classnames": "^2.2.6",
24
24
  "debug": "^4.1.1",
25
- "keycode": "^2.2.0"
25
+ "keycode": "^2.2.0",
26
+ "lodash": "^4.17.11"
26
27
  },
27
28
  "peerDependencies": {
28
29
  "react": "^16.8.1",
@@ -32,5 +33,5 @@
32
33
  "@pie-lib/test-utils": "^0.2.19"
33
34
  },
34
35
  "scripts": {},
35
- "gitHead": "ea44ab953756475319bd8401eb229e2c9864845b"
36
+ "gitHead": "f766e0fdb9e51a9449324db51ccaa93904211710"
36
37
  }
@@ -10,6 +10,7 @@ import { color, InputContainer } from '@pie-lib/render-ui';
10
10
  import MenuItem from '@material-ui/core/MenuItem';
11
11
  import Select from '@material-ui/core/Select';
12
12
  import { updateSpans } from '@pie-lib/math-input';
13
+ import isEqual from 'lodash/isEqual';
13
14
 
14
15
  const decimalRegex = /\.|,/g;
15
16
 
@@ -41,6 +42,9 @@ export class EditorAndPad extends React.Component {
41
42
  controlledKeypad: PropTypes.bool,
42
43
  controlledKeypadMode: PropTypes.bool,
43
44
  noDecimal: PropTypes.bool,
45
+ hideInput: PropTypes.bool,
46
+ noLatexHandling: PropTypes.bool,
47
+ layoutForKeyPad: PropTypes.object,
44
48
  additionalKeys: PropTypes.array,
45
49
  latex: PropTypes.string.isRequired,
46
50
  onAnswerBlockAdd: PropTypes.func,
@@ -63,15 +67,24 @@ export class EditorAndPad extends React.Component {
63
67
  }
64
68
 
65
69
  onClick = data => {
66
- const { noDecimal } = this.props;
70
+ const { noDecimal, noLatexHandling, onChange } = this.props;
67
71
  const c = toNodeData(data);
68
72
  log('mathChange: ', c);
69
73
 
74
+ if (noLatexHandling) {
75
+ onChange(c.value);
76
+ return;
77
+ }
78
+
70
79
  // if decimals are not allowed for this response, we discard the input
71
80
  if (noDecimal && (c.value === '.' || c.value === ',')) {
72
81
  return;
73
82
  }
74
83
 
84
+ if (!c) {
85
+ return;
86
+ }
87
+
75
88
  if (c.type === 'clear') {
76
89
  log('call clear...');
77
90
  this.input.clear();
@@ -128,6 +141,10 @@ export class EditorAndPad extends React.Component {
128
141
  const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
129
142
  log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
130
143
 
144
+ if (!isEqual(this.props.error, nextProps.error)) {
145
+ return true;
146
+ }
147
+
131
148
  if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {
132
149
  return true;
133
150
  }
@@ -173,6 +190,8 @@ export class EditorAndPad extends React.Component {
173
190
  controlledKeypadMode,
174
191
  showKeypad,
175
192
  noDecimal,
193
+ hideInput,
194
+ layoutForKeyPad,
176
195
  latex,
177
196
  onFocus,
178
197
  onBlur,
@@ -186,7 +205,7 @@ export class EditorAndPad extends React.Component {
186
205
 
187
206
  return (
188
207
  <div className={cx(classes.mathToolbar, classNames.mathToolbar)}>
189
- <div className={classes.inputAndTypeContainer}>
208
+ <div className={cx(classes.inputAndTypeContainer, { [classes.hide]: hideInput })}>
190
209
  {controlledKeypadMode && (
191
210
  <InputContainer label="Equation Editor" className={classes.selectContainer}>
192
211
  <Select
@@ -206,6 +225,7 @@ export class EditorAndPad extends React.Component {
206
225
  <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>
207
226
  <MenuItem value={'statistics'}>Statistics</MenuItem>
208
227
  <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>
228
+ <MenuItem value={'language'}>Language</MenuItem>
209
229
  </Select>
210
230
  </InputContainer>
211
231
  )}
@@ -244,6 +264,8 @@ export class EditorAndPad extends React.Component {
244
264
  <hr className={classes.hr} />
245
265
  {shouldShowKeypad && (
246
266
  <HorizontalKeypad
267
+ className={classes.keyboard}
268
+ layoutForKeyPad={layoutForKeyPad}
247
269
  additionalKeys={additionalKeys}
248
270
  mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}
249
271
  onClick={this.onClick}
@@ -259,7 +281,10 @@ const styles = theme => ({
259
281
  inputAndTypeContainer: {
260
282
  display: 'flex',
261
283
  alignItems: 'center',
262
- '& *': {
284
+ '& .mq-root-block': {
285
+ marginTop: '8px',
286
+ },
287
+ '& .mq-math-mode .mq-overarrow': {
263
288
  fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
264
289
  },
265
290
  '& .mq-overarrow.mq-arrow-both': {
@@ -284,8 +309,62 @@ const styles = theme => ({
284
309
  top: '-0.4em',
285
310
  right: '-1px'
286
311
  }
312
+ },
313
+ '& *': {
314
+ fontFamily: 'MJXZERO, MJXTEX-I !important',
315
+
316
+ '& .mq-math-mode .mq-empty': {
317
+ padding: '9px 1px !important'
318
+ },
319
+
320
+ '& .mq-longdiv-inner': {
321
+ marginTop: '-1px',
322
+ marginLeft: '5px !important;',
323
+
324
+ '& > .mq-empty': {
325
+ padding: '0 !important',
326
+ marginLeft: '0px !important',
327
+ marginTop: '2px'
328
+ }
329
+ },
330
+
331
+ '& .mq-math-mode .mq-longdiv': {
332
+ display: 'flex !important'
333
+ },
334
+
335
+ '& .mq-math-mode .mq-supsub': {
336
+ fontSize: '70.7% !important'
337
+ },
338
+
339
+ '& .mq-math-mode .mq-paren': {
340
+ verticalAlign: 'middle !important'
341
+ },
342
+
343
+ '& .mq-math-mode .mq-sqrt-stem': {
344
+ borderTop: '0.07em solid',
345
+ marginLeft: '-1.5px',
346
+ marginTop: '-2px !important',
347
+ paddingTop: '5px !important'
348
+ },
349
+
350
+ '& .mq-supsub ': {
351
+ fontSize: '70.7%'
352
+ },
353
+
354
+ '& .mq-math-mode .mq-supsub.mq-sup-only': {
355
+ verticalAlign: '-0.1em !important',
356
+
357
+ '& .mq-sup': {
358
+ marginBottom: '0px !important'
359
+ }
360
+ },
361
+
362
+ '-webkit-font-smoothing': 'antialiased !important'
287
363
  }
288
364
  },
365
+ hide: {
366
+ display: 'none'
367
+ },
289
368
  selectContainer: {
290
369
  flex: 'initial',
291
370
  width: '25%',
@@ -293,7 +372,15 @@ const styles = theme => ({
293
372
  marginLeft: '15px',
294
373
  marginTop: '5px',
295
374
  marginBottom: '5px',
296
- marginRight: '5px'
375
+ marginRight: '5px',
376
+
377
+ '& label': {
378
+ fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
379
+ },
380
+
381
+ '& div': {
382
+ fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
383
+ }
297
384
  },
298
385
  mathEditor: {
299
386
  maxWidth: '400px',
@@ -362,6 +449,43 @@ const styles = theme => ({
362
449
  },
363
450
  error: {
364
451
  border: '2px solid red'
452
+ },
453
+ keyboard: {
454
+ '& *': {
455
+ fontFamily: 'MJXZERO, MJXTEX-I !important',
456
+
457
+ '& .mq-math-mode .mq-empty': {
458
+ padding: '9px 1px !important'
459
+ },
460
+
461
+ '& .mq-longdiv-inner': {
462
+ marginTop: '-1px',
463
+ marginLeft: '5px !important;',
464
+
465
+ '& > .mq-empty': {
466
+ padding: '0 !important',
467
+ marginLeft: '0px !important',
468
+ marginTop: '2px'
469
+ }
470
+ },
471
+
472
+ '& .mq-math-mode .mq-longdiv': {
473
+ display: 'flex !important'
474
+ },
475
+
476
+ '& .mq-math-mode .mq-supsub': {
477
+ fontSize: '70.7% !important'
478
+ },
479
+
480
+ '& .mq-math-mode .mq-sqrt-stem': {
481
+ marginTop: '-5px',
482
+ paddingTop: '4px'
483
+ },
484
+
485
+ '& .mq-math-mode .mq-paren': {
486
+ verticalAlign: 'middle !important'
487
+ }
488
+ }
365
489
  }
366
490
  });
367
491
 
package/src/index.jsx CHANGED
@@ -114,6 +114,9 @@ export class RawPureToolbar extends React.Component {
114
114
  classNames: PropTypes.object,
115
115
  latex: PropTypes.string.isRequired,
116
116
  keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
117
+ hideInput: PropTypes.bool,
118
+ noLatexHandling: PropTypes.bool,
119
+ layoutForKeyPad: PropTypes.object,
117
120
  onChange: PropTypes.func.isRequired,
118
121
  onDone: PropTypes.func.isRequired,
119
122
  onBlur: PropTypes.func,
@@ -142,6 +145,9 @@ export class RawPureToolbar extends React.Component {
142
145
  showKeypad,
143
146
  keypadMode,
144
147
  noDecimal,
148
+ hideInput,
149
+ noLatexHandling,
150
+ layoutForKeyPad,
145
151
  latex,
146
152
  onChange,
147
153
  onDone,
@@ -163,6 +169,9 @@ export class RawPureToolbar extends React.Component {
163
169
  controlledKeypad={controlledKeypad}
164
170
  controlledKeypadMode={controlledKeypadMode}
165
171
  noDecimal={noDecimal}
172
+ hideInput={hideInput}
173
+ noLatexHandling={noLatexHandling}
174
+ layoutForKeyPad={layoutForKeyPad}
166
175
  showKeypad={showKeypad}
167
176
  additionalKeys={additionalKeys}
168
177
  allowAnswerBlock={allowAnswerBlock}