@pie-lib/math-toolbar 3.0.9 → 3.0.11-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,40 +3,6 @@
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
- ## [3.0.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.8...@pie-lib/math-toolbar@3.0.9) (2026-09-02)
7
-
8
- **Note:** Version bump only for package @pie-lib/math-toolbar
9
-
10
- ## [3.0.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.7...@pie-lib/math-toolbar@3.0.8) (2026-08-26)
11
-
12
- **Note:** Version bump only for package @pie-lib/math-toolbar
13
-
14
- ## [3.0.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.6...@pie-lib/math-toolbar@3.0.7) (2026-08-21)
15
-
16
- ### Bug Fixes
17
-
18
- - **theming:** move the grey palette reads onto --pie-\* tokens PIE-856 ([9bbaf10](https://github.com/pie-framework/pie-lib/commit/9bbaf10ab25a050e4d1b727f84c7ad9fdc952f6a)), closes [#C0C3](https://github.com/pie-framework/pie-lib/issues/C0C3)
19
-
20
- ## [3.0.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.5...@pie-lib/math-toolbar@3.0.6) (2026-07-01)
21
-
22
- **Note:** Version bump only for package @pie-lib/math-toolbar
23
-
24
- ## [3.0.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.4...@pie-lib/math-toolbar@3.0.5) (2026-06-25)
25
-
26
- ### Bug Fixes
27
-
28
- - math editor saves on close and focuses when switching node [PIE-695][PIE-697] ([54beb75](https://github.com/pie-framework/pie-lib/commit/54beb75afe197d157623bb7feec92796a196091a))
29
-
30
- ## [3.0.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.3...@pie-lib/math-toolbar@3.0.4) (2026-06-12)
31
-
32
- ### Bug Fixes
33
-
34
- - correct @emotion/style typo to @emotion/styled in package deps PIE-678 ([d529ac7](https://github.com/pie-framework/pie-lib/commit/d529ac7bc3dfa94d8037688452d4c70c66f2590b))
35
-
36
- ## [3.0.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.2...@pie-lib/math-toolbar@3.0.3) (2026-06-01)
37
-
38
- **Note:** Version bump only for package @pie-lib/math-toolbar
39
-
40
6
  ## [3.0.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-toolbar@3.0.2-next.2...@pie-lib/math-toolbar@3.0.2) (2026-05-07)
41
7
 
42
8
  **Note:** Version bump only for package @pie-lib/math-toolbar
@@ -11,23 +11,20 @@ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
11
11
  var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
12
12
  var _styles = require("@mui/material/styles");
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _renderUi = require("@pie-lib/render-ui");
15
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
16
  var StyledIconButton = (0, _styles.styled)(_IconButton["default"])(function (_ref) {
18
- var hideBackground = _ref.hideBackground;
17
+ var theme = _ref.theme,
18
+ hideBackground = _ref.hideBackground;
19
19
  return _objectSpread(_objectSpread({
20
20
  verticalAlign: 'top',
21
21
  width: '28px',
22
22
  height: '28px',
23
23
  color: '#00bb00'
24
24
  }, hideBackground && {
25
- // `--pie-white` inverts with the scheme where `common.white` did not, so the
26
- // button keeps reading as raised against the toolbar instead of staying a
27
- // white chip on a dark surface.
28
- backgroundColor: _renderUi.color.white(),
25
+ backgroundColor: theme.palette.common.white,
29
26
  '&:hover': {
30
- backgroundColor: _renderUi.color.backgroundDark()
27
+ backgroundColor: theme.palette.grey[200]
31
28
  }
32
29
  }), {}, {
33
30
  '& .MuiIconButton-label': {
@@ -1 +1 @@
1
- {"version":3,"file":"done-button.js","names":["_react","_interopRequireDefault","require","_IconButton","_Check","_styles","_propTypes","_renderUi","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledIconButton","styled","IconButton","_ref","hideBackground","verticalAlign","width","height","color","backgroundColor","white","backgroundDark","position","top","RawDoneButton","exports","_ref2","onClick","createElement","size","propTypes","PropTypes","func","bool","DoneButton"],"sources":["../src/done-button.jsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport Check from '@mui/icons-material/Check';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledIconButton = styled(IconButton)(({ hideBackground }) => ({\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: '#00bb00',\n ...(hideBackground && {\n // `--pie-white` inverts with the scheme where `common.white` did not, so the\n // button keeps reading as raised against the toolbar instead of staying a\n // white chip on a dark surface.\n backgroundColor: color.white(),\n '&:hover': {\n backgroundColor: color.backgroundDark(),\n },\n }),\n '& .MuiIconButton-label': {\n position: 'absolute',\n top: '2px',\n },\n}));\n\nexport const RawDoneButton = ({ onClick, hideBackground }) => (\n <StyledIconButton aria-label=\"Done\" onClick={onClick} hideBackground={hideBackground} size=\"large\">\n <Check />\n </StyledIconButton>\n);\n\nRawDoneButton.propTypes = {\n onClick: PropTypes.func,\n hideBackground: PropTypes.bool,\n};\n\nexport const DoneButton = RawDoneButton;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAA2C,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAE3C,IAAMoB,gBAAgB,GAAG,IAAAC,cAAM,EAACC,sBAAU,CAAC,CAAC,UAAAC,IAAA;EAAA,IAAGC,cAAc,GAAAD,IAAA,CAAdC,cAAc;EAAA,OAAAZ,aAAA,CAAAA,aAAA;IAC3Da,aAAa,EAAE,KAAK;IACpBC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdC,KAAK,EAAE;EAAS,GACZJ,cAAc,IAAI;IACpB;IACA;IACA;IACAK,eAAe,EAAED,eAAK,CAACE,KAAK,CAAC,CAAC;IAC9B,SAAS,EAAE;MACTD,eAAe,EAAED,eAAK,CAACG,cAAc,CAAC;IACxC;EACF,CAAC;IACD,wBAAwB,EAAE;MACxBC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE;IACP;EAAC;AAAA,CACD,CAAC;AAEI,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,KAAA;EAAA,IAAMC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEb,cAAc,GAAAY,KAAA,CAAdZ,cAAc;EAAA,oBACrDjC,MAAA,YAAA+C,aAAA,CAAClB,gBAAgB;IAAC,cAAW,MAAM;IAACiB,OAAO,EAAEA,OAAQ;IAACb,cAAc,EAAEA,cAAe;IAACe,IAAI,EAAC;EAAO,gBAChGhD,MAAA,YAAA+C,aAAA,CAAC3C,MAAA,WAAK,MAAE,CACQ,CAAC;AAAA,CACpB;AAEDuC,aAAa,CAACM,SAAS,GAAG;EACxBH,OAAO,EAAEI,qBAAS,CAACC,IAAI;EACvBlB,cAAc,EAAEiB,qBAAS,CAACE;AAC5B,CAAC;AAEM,IAAMC,UAAU,GAAAT,OAAA,CAAAS,UAAA,GAAGV,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"done-button.js","names":["_react","_interopRequireDefault","require","_IconButton","_Check","_styles","_propTypes","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledIconButton","styled","IconButton","_ref","theme","hideBackground","verticalAlign","width","height","color","backgroundColor","palette","common","white","grey","position","top","RawDoneButton","exports","_ref2","onClick","createElement","size","propTypes","PropTypes","func","bool","DoneButton"],"sources":["../src/done-button.jsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport Check from '@mui/icons-material/Check';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\n\nconst StyledIconButton = styled(IconButton)(({ theme, hideBackground }) => ({\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: '#00bb00',\n ...(hideBackground && {\n backgroundColor: theme.palette.common.white,\n '&:hover': {\n backgroundColor: theme.palette.grey[200],\n },\n }),\n '& .MuiIconButton-label': {\n position: 'absolute',\n top: '2px',\n },\n}));\n\nexport const RawDoneButton = ({ onClick, hideBackground }) => (\n <StyledIconButton aria-label=\"Done\" onClick={onClick} hideBackground={hideBackground} size=\"large\">\n <Check />\n </StyledIconButton>\n);\n\nRawDoneButton.propTypes = {\n onClick: PropTypes.func,\n hideBackground: PropTypes.bool,\n};\n\nexport const DoneButton = RawDoneButton;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAmC,SAAAK,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEnC,IAAMoB,gBAAgB,GAAG,IAAAC,cAAM,EAACC,sBAAU,CAAC,CAAC,UAAAC,IAAA;EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;EAAA,OAAAb,aAAA,CAAAA,aAAA;IAClEc,aAAa,EAAE,KAAK;IACpBC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdC,KAAK,EAAE;EAAS,GACZJ,cAAc,IAAI;IACpBK,eAAe,EAAEN,KAAK,CAACO,OAAO,CAACC,MAAM,CAACC,KAAK;IAC3C,SAAS,EAAE;MACTH,eAAe,EAAEN,KAAK,CAACO,OAAO,CAACG,IAAI,CAAC,GAAG;IACzC;EACF,CAAC;IACD,wBAAwB,EAAE;MACxBC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE;IACP;EAAC;AAAA,CACD,CAAC;AAEI,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,KAAA;EAAA,IAAMC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEf,cAAc,GAAAc,KAAA,CAAdd,cAAc;EAAA,oBACrDjC,MAAA,YAAAiD,aAAA,CAACrB,gBAAgB;IAAC,cAAW,MAAM;IAACoB,OAAO,EAAEA,OAAQ;IAACf,cAAc,EAAEA,cAAe;IAACiB,IAAI,EAAC;EAAO,gBAChGlD,MAAA,YAAAiD,aAAA,CAAC7C,MAAA,WAAK,MAAE,CACQ,CAAC;AAAA,CACpB;AAEDyC,aAAa,CAACM,SAAS,GAAG;EACxBH,OAAO,EAAEI,qBAAS,CAACC,IAAI;EACvBpB,cAAc,EAAEmB,qBAAS,CAACE;AAC5B,CAAC;AAEM,IAAMC,UAAU,GAAAT,OAAA,CAAAS,UAAA,GAAGV,aAAa","ignoreList":[]}
@@ -21,14 +21,14 @@ var _Select = _interopRequireDefault(require("@mui/material/Select"));
21
21
  var _lodashEs = require("lodash-es");
22
22
  var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
23
23
  var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
24
- var _mathInput = require("@pie-lib/math-input");
24
+ var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
25
25
  var _renderUi = require("@pie-lib/render-ui");
26
26
  var _utils = require("./utils");
27
27
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
28
28
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
29
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
30
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31
- var _mq$CommonMqStyles = _mathInput.mq.CommonMqStyles,
31
+ var _mq$CommonMqStyles = _mathInputMathlive.mq.CommonMqStyles,
32
32
  commonMqFontStyles = _mq$CommonMqStyles.commonMqFontStyles,
33
33
  commonMqKeyboardStyles = _mq$CommonMqStyles.commonMqKeyboardStyles,
34
34
  longdivStyles = _mq$CommonMqStyles.longdivStyles,
@@ -204,7 +204,7 @@ var InputContainerDiv = (0, _styles.styled)('div')(function (_ref3) {
204
204
  }
205
205
  });
206
206
  });
207
- var MathEditor = (0, _styles.styled)(_mathInput.mq.Input)(function (_ref4) {
207
+ var MathEditor = (0, _styles.styled)(_mathInputMathlive.mq.Input)(function (_ref4) {
208
208
  var controlledKeypadMode = _ref4.controlledKeypadMode;
209
209
  return {
210
210
  maxWidth: controlledKeypadMode ? '400px' : '500px',
@@ -229,7 +229,7 @@ var StyledHr = (0, _styles.styled)('hr')(function (_ref5) {
229
229
  borderBottom: "solid 1px ".concat(theme.palette.primary.main)
230
230
  };
231
231
  });
232
- var KeyboardContainer = (0, _styles.styled)(_mathInput.HorizontalKeypad)(function (_ref6) {
232
+ var KeyboardContainer = (0, _styles.styled)(_mathInputMathlive.HorizontalKeypad)(function (_ref6) {
233
233
  var mode = _ref6.mode;
234
234
  return _objectSpread(_objectSpread({}, commonMqKeyboardStyles), mode === 'language' && {
235
235
  '& *': {
@@ -317,7 +317,7 @@ var EditorAndPad = exports.EditorAndPad = /*#__PURE__*/function (_React$Componen
317
317
  var _this$props2 = _this.props,
318
318
  onChange = _this$props2.onChange,
319
319
  noDecimal = _this$props2.noDecimal;
320
- (0, _mathInput.updateSpans)();
320
+ (0, _mathInputMathlive.updateSpans)();
321
321
  (0, _utils.markFractionBaseSuperscripts)();
322
322
  _this.updateDisable(true);
323
323
 
@@ -332,10 +332,11 @@ var EditorAndPad = exports.EditorAndPad = /*#__PURE__*/function (_React$Componen
332
332
  var regexMatch = latex.match(/[0-9]\\ \\frac\{[^\{]*\}\{ \}/);
333
333
  if (_this.input && regexMatch && regexMatch !== null && regexMatch !== void 0 && regexMatch.length) {
334
334
  try {
335
- _this.input.mathField.__controller.cursor.insLeftOf(_this.input.mathField.__controller.cursor.parent[-1].parent);
336
- _this.input.mathField.el().dispatchEvent(new KeyboardEvent('keydown', {
337
- keyCode: 8
338
- }));
335
+ // Undo the empty fraction the editor just created after a digit.
336
+ // MathQuill needed cursor surgery via `__controller`; MathLive has no
337
+ // such internals, so use the public delete command. `keystroke` accepts
338
+ // the MathQuill name and maps it to the engine's selector.
339
+ _this.input.keystroke('Backspace');
339
340
  } catch (e) {
340
341
  // eslint-disable-next-line no-console
341
342
  console.error(e.toString());
@@ -379,10 +380,13 @@ var EditorAndPad = exports.EditorAndPad = /*#__PURE__*/function (_React$Componen
379
380
  }, {
380
381
  key: "shouldComponentUpdate",
381
382
  value:
382
- /** Only render if the mathquill instance's latex is different
383
+ /** Only render if the editor's latex is different
383
384
  * or the keypad state changed from one state to the other (shown / hidden) */
384
385
  function shouldComponentUpdate(nextProps, nextState) {
385
- var inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
386
+ // `this.input` is set via a ref, and the underlying math engine loads
387
+ // asynchronously, so neither is guaranteed to exist on early renders.
388
+ // Treat "not ready" as different, so the first real render is not skipped.
389
+ var inputIsDifferent = !this.input || this.input.latex() !== nextProps.latex;
386
390
  log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
387
391
  if (!(0, _lodashEs.isEqual)(this.props.error, nextProps.error)) {
388
392
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-and-pad.js","names":["_react","_interopRequireDefault","require","_debug","_propTypes","_Button","_styles","_MenuItem","_Select","_lodashEs","_FormControl","_InputLabel","_mathInput","_renderUi","_utils","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_mq$CommonMqStyles","mq","CommonMqStyles","commonMqFontStyles","commonMqKeyboardStyles","longdivStyles","supsubStyles","log","debug","decimalRegex","MathToolbarContainer","styled","_ref","theme","zIndex","position","textAlign","width","border","outline","boxShadow","concat","palette","primary","main","borderRadius","paddingTop","display","borderTop","top","marginTop","minWidth","lineHeight","InputAndTypeContainer","_ref2","hide","alignItems","fontFamily","left","right","verticalAlign","padding","marginLeft","paddingLeft","paddingBottom","marginBottom","StyledFormControl","FormControl","flex","marginRight","StyledInputLabel","InputLabel","backgroundColor","InputContainerDiv","_ref3","error","maxWidth","minHeight","spacing","MathEditor","Input","_ref4","controlledKeypadMode","color","text","background","AddAnswerBlockButton","Button","StyledHr","_ref5","margin","height","borderBottom","KeyboardContainer","HorizontalKeypad","_ref6","mode","toNodeData","data","type","value","EditorAndPad","exports","_React$Component","props","_this","_classCallCheck2","_this$props","noDecimal","noLatexHandling","onChange","c","input","clear","command","keystroke","write","isEdit","maxResponseAreas","shouldDisable","checkResponseAreasNumber","setState","addDisabled","onAnswerBlockAdd","onClick","updateDisable","latex","_this$props2","updateSpans","markFractionBaseSuperscripts","indexOf","replace","regexMatch","match","mathField","__controller","cursor","insLeftOf","parent","el","dispatchEvent","KeyboardEvent","keyCode","console","toString","evt","equationEditor","target","_ref7","count","state","_inherits2","_createClass2","key","componentDidMount","_this2","autoFocus","setTimeout","focus","shouldComponentUpdate","nextProps","nextState","inputIsDifferent","isEqual","keypadMode","controlledKeypad","showKeypad","render","_this3","_this$props3","classNames","allowAnswerBlock","additionalKeys","setKeypadInteraction","hideInput","layoutForKeyPad","onFocus","onBlur","shouldShowKeypad","createElement","className","mathToolbar","variant","id","labelId","name","label","onEditorTypeChange","MenuProps","transitionDuration","enter","exit","event","editor","ref","onEditorChange","style","bottom","onAnswerBlockClick","disabled","React","Component","PropTypes","object","oneOfType","string","number","bool","array","isRequired","func","_default"],"sources":["../src/editor-and-pad.jsx"],"sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport { isEqual } from 'lodash-es';\nimport FormControl from '@mui/material/FormControl';\nimport InputLabel from '@mui/material/InputLabel';\n\nimport { HorizontalKeypad, mq, updateSpans } from '@pie-lib/math-input';\nimport { color } from '@pie-lib/render-ui';\nimport { markFractionBaseSuperscripts } from './utils';\n\nconst { commonMqFontStyles, commonMqKeyboardStyles, longdivStyles, supsubStyles } = mq.CommonMqStyles;\nconst log = debug('@pie-lib:math-toolbar:editor-and-pad');\n\nconst decimalRegex = /\\.|,/g;\n\nconst MathToolbarContainer = styled('div')(({ theme }) => ({\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 top: '7.8px',\n marginTop: '0px',\n minWidth: '1.23em',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n}));\n\nconst InputAndTypeContainer = styled('div')(({ theme, hide }) => ({\n display: hide ? 'none' : 'flex',\n alignItems: 'center',\n '& .mq-editable-field .mq-cursor': {\n top: '-4px',\n },\n '& .mq-math-mode .mq-selection, .mq-editable-field .mq-selection': {\n paddingTop: '18px',\n },\n '& .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& .mq-math-mode .mq-overline .mq-overline-inner': {\n paddingTop: '0.4em !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.45em',\n left: '-1px',\n },\n '&:after': {\n position: 'absolute !important',\n top: '0px !important',\n right: '-2px',\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 ...commonMqFontStyles,\n ...supsubStyles,\n ...longdivStyles,\n '& .mq-math-mode .mq-sqrt-prefix': {\n verticalAlign: 'baseline !important',\n top: '1px !important',\n left: '-0.1em !important',\n },\n '& .mq-math-mode .mq-overarc ': {\n paddingTop: '0.45em !important',\n },\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important',\n },\n '& .mq-math-mode .mq-root-block': {\n paddingTop: '10px',\n },\n '& .mq-scaled .mq-sqrt-prefix': {\n top: '0 !important',\n },\n '& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {\n marginLeft: '4px !important',\n paddingTop: '6px !important',\n paddingLeft: '6px !important',\n },\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'top !important',\n padding: '1px 0.1em !important',\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 '& .mq-math-mode .mq-denominator': {\n marginTop: '-5px !important',\n padding: '0.5em 0.1em 0.1em !important',\n },\n '& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {\n padding: '0 0.1em !important',\n paddingBottom: '0 !important',\n marginBottom: '-2px',\n },\n },\n '& span[data-prime=\"true\"]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n}));\n\nconst StyledFormControl = styled(FormControl)({\n flex: 'initial',\n width: '25%',\n minWidth: '100px',\n marginLeft: '15px',\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px',\n '& label': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& div': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n});\n\nconst StyledInputLabel = styled(InputLabel)(() => ({\n backgroundColor: 'transparent',\n}));\n\nconst InputContainerDiv = styled('div')(({ theme, error }) => ({\n minWidth: '500px',\n maxWidth: '900px',\n minHeight: '30px',\n width: '100%',\n display: 'flex',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n ...(error && {\n border: '2px solid red',\n }),\n '& .mq-sqrt-prefix .mq-scaled': {\n verticalAlign: 'middle !important',\n },\n}));\n\nconst MathEditor = styled(mq.Input)(({ controlledKeypadMode }) => ({\n maxWidth: controlledKeypadMode ? '400px' : '500px',\n color: color.text(),\n backgroundColor: color.background(),\n padding: '2px',\n}));\n\nconst AddAnswerBlockButton = styled(Button)({\n position: 'absolute',\n right: '12px',\n border: '1px solid lightgrey',\n color: color.text(),\n});\n\nconst StyledHr = styled('hr')(({ theme }) => ({\n padding: 0,\n margin: 0,\n height: '1px',\n border: 'none',\n borderBottom: `solid 1px ${theme.palette.primary.main}`,\n}));\n\nconst KeyboardContainer = styled(HorizontalKeypad)(({ mode }) => ({\n ...commonMqKeyboardStyles,\n ...(mode === 'language' && {\n '& *': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n }),\n}));\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 error: PropTypes.string,\n noDecimal: PropTypes.bool,\n hideInput: PropTypes.bool,\n noLatexHandling: PropTypes.bool,\n layoutForKeyPad: PropTypes.object,\n maxResponseAreas: PropTypes.number,\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 setKeypadInteraction: PropTypes.func,\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 // adding a timeout to wait for other stuff related to focus to be finished\n setTimeout(() => this.input.focus(), 0);\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 markFractionBaseSuperscripts();\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 // eslint-disable-next-line no-useless-escape\n const regexMatch = latex.match(/[0-9]\\\\ \\\\frac\\{[^\\{]*\\}\\{ \\}/);\n\n if (this.input && regexMatch && regexMatch?.length) {\n try {\n this.input.mathField.__controller.cursor.insLeftOf(this.input.mathField.__controller.cursor.parent[-1].parent);\n this.input.mathField.el().dispatchEvent(new KeyboardEvent('keydown', { keyCode: 8 }));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n\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 setKeypadInteraction,\n noDecimal,\n hideInput,\n layoutForKeyPad,\n latex,\n onFocus,\n onBlur,\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 <MathToolbarContainer className={classNames.mathToolbar}>\n <InputAndTypeContainer hide={hideInput}>\n {controlledKeypadMode && (\n <StyledFormControl variant={'standard'}>\n <StyledInputLabel id=\"equation-editor-label\">{'Equation Editor'}</StyledInputLabel>\n <Select\n labelId=\"equation-editor-label\"\n id=\"equation-editor-select\"\n name=\"equationEditor\"\n label={'Equation Editor'}\n onChange={this.onEditorTypeChange}\n value={this.state.equationEditor}\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\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 </StyledFormControl>\n )}\n <InputContainerDiv error={error}>\n <MathEditor\n onFocus={() => {\n onFocus && onFocus();\n this.updateDisable(false);\n }}\n onBlur={(event) => {\n this.updateDisable(false);\n onBlur && onBlur(event);\n }}\n className={(classNames && classNames.editor) || ''}\n controlledKeypadMode={controlledKeypadMode}\n ref={(r) => (this.input = r)}\n latex={latex}\n onChange={this.onEditorChange}\n />\n </InputContainerDiv>\n </InputAndTypeContainer>\n {allowAnswerBlock && (\n <AddAnswerBlockButton\n type=\"primary\"\n style={{ bottom: shouldShowKeypad ? '320px' : '20px' }}\n onClick={this.onAnswerBlockClick}\n disabled={addDisabled}\n >\n + Response Area\n </AddAnswerBlockButton>\n )}\n <StyledHr />\n {shouldShowKeypad && (\n <KeyboardContainer\n mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n layoutForKeyPad={layoutForKeyPad}\n additionalKeys={additionalKeys}\n onClick={this.onClick}\n noDecimal={noDecimal}\n setKeypadInteraction={setKeypadInteraction}\n />\n )}\n </MathToolbarContainer>\n );\n }\n}\n\nexport default EditorAndPad;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"editor-and-pad.js","names":["_react","_interopRequireDefault","require","_debug","_propTypes","_Button","_styles","_MenuItem","_Select","_lodashEs","_FormControl","_InputLabel","_mathInputMathlive","_renderUi","_utils","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_mq$CommonMqStyles","mq","CommonMqStyles","commonMqFontStyles","commonMqKeyboardStyles","longdivStyles","supsubStyles","log","debug","decimalRegex","MathToolbarContainer","styled","_ref","theme","zIndex","position","textAlign","width","border","outline","boxShadow","concat","palette","primary","main","borderRadius","paddingTop","display","borderTop","top","marginTop","minWidth","lineHeight","InputAndTypeContainer","_ref2","hide","alignItems","fontFamily","left","right","verticalAlign","padding","marginLeft","paddingLeft","paddingBottom","marginBottom","StyledFormControl","FormControl","flex","marginRight","StyledInputLabel","InputLabel","backgroundColor","InputContainerDiv","_ref3","error","maxWidth","minHeight","spacing","MathEditor","Input","_ref4","controlledKeypadMode","color","text","background","AddAnswerBlockButton","Button","StyledHr","_ref5","margin","height","borderBottom","KeyboardContainer","HorizontalKeypad","_ref6","mode","toNodeData","data","type","value","EditorAndPad","exports","_React$Component","props","_this","_classCallCheck2","_this$props","noDecimal","noLatexHandling","onChange","c","input","clear","command","keystroke","write","isEdit","maxResponseAreas","shouldDisable","checkResponseAreasNumber","setState","addDisabled","onAnswerBlockAdd","onClick","updateDisable","latex","_this$props2","updateSpans","markFractionBaseSuperscripts","indexOf","replace","regexMatch","match","console","toString","evt","equationEditor","target","_ref7","count","state","_inherits2","_createClass2","key","componentDidMount","_this2","autoFocus","setTimeout","focus","shouldComponentUpdate","nextProps","nextState","inputIsDifferent","isEqual","keypadMode","controlledKeypad","showKeypad","render","_this3","_this$props3","classNames","allowAnswerBlock","additionalKeys","setKeypadInteraction","hideInput","layoutForKeyPad","onFocus","onBlur","shouldShowKeypad","createElement","className","mathToolbar","variant","id","labelId","name","label","onEditorTypeChange","MenuProps","transitionDuration","enter","exit","event","editor","ref","onEditorChange","style","bottom","onAnswerBlockClick","disabled","React","Component","PropTypes","object","oneOfType","string","number","bool","array","isRequired","func","_default"],"sources":["../src/editor-and-pad.jsx"],"sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport { isEqual } from 'lodash-es';\nimport FormControl from '@mui/material/FormControl';\nimport InputLabel from '@mui/material/InputLabel';\n\nimport { HorizontalKeypad, mq, updateSpans } from '@pie-lib/math-input-mathlive';\nimport { color } from '@pie-lib/render-ui';\nimport { markFractionBaseSuperscripts } from './utils';\n\nconst { commonMqFontStyles, commonMqKeyboardStyles, longdivStyles, supsubStyles } = mq.CommonMqStyles;\nconst log = debug('@pie-lib:math-toolbar:editor-and-pad');\n\nconst decimalRegex = /\\.|,/g;\n\nconst MathToolbarContainer = styled('div')(({ theme }) => ({\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 top: '7.8px',\n marginTop: '0px',\n minWidth: '1.23em',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n}));\n\nconst InputAndTypeContainer = styled('div')(({ theme, hide }) => ({\n display: hide ? 'none' : 'flex',\n alignItems: 'center',\n '& .mq-editable-field .mq-cursor': {\n top: '-4px',\n },\n '& .mq-math-mode .mq-selection, .mq-editable-field .mq-selection': {\n paddingTop: '18px',\n },\n '& .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& .mq-math-mode .mq-overline .mq-overline-inner': {\n paddingTop: '0.4em !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.45em',\n left: '-1px',\n },\n '&:after': {\n position: 'absolute !important',\n top: '0px !important',\n right: '-2px',\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 ...commonMqFontStyles,\n ...supsubStyles,\n ...longdivStyles,\n '& .mq-math-mode .mq-sqrt-prefix': {\n verticalAlign: 'baseline !important',\n top: '1px !important',\n left: '-0.1em !important',\n },\n '& .mq-math-mode .mq-overarc ': {\n paddingTop: '0.45em !important',\n },\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important',\n },\n '& .mq-math-mode .mq-root-block': {\n paddingTop: '10px',\n },\n '& .mq-scaled .mq-sqrt-prefix': {\n top: '0 !important',\n },\n '& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {\n marginLeft: '4px !important',\n paddingTop: '6px !important',\n paddingLeft: '6px !important',\n },\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'top !important',\n padding: '1px 0.1em !important',\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 '& .mq-math-mode .mq-denominator': {\n marginTop: '-5px !important',\n padding: '0.5em 0.1em 0.1em !important',\n },\n '& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {\n padding: '0 0.1em !important',\n paddingBottom: '0 !important',\n marginBottom: '-2px',\n },\n },\n '& span[data-prime=\"true\"]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n}));\n\nconst StyledFormControl = styled(FormControl)({\n flex: 'initial',\n width: '25%',\n minWidth: '100px',\n marginLeft: '15px',\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px',\n '& label': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& div': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n});\n\nconst StyledInputLabel = styled(InputLabel)(() => ({\n backgroundColor: 'transparent',\n}));\n\nconst InputContainerDiv = styled('div')(({ theme, error }) => ({\n minWidth: '500px',\n maxWidth: '900px',\n minHeight: '30px',\n width: '100%',\n display: 'flex',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n ...(error && {\n border: '2px solid red',\n }),\n '& .mq-sqrt-prefix .mq-scaled': {\n verticalAlign: 'middle !important',\n },\n}));\n\nconst MathEditor = styled(mq.Input)(({ controlledKeypadMode }) => ({\n maxWidth: controlledKeypadMode ? '400px' : '500px',\n color: color.text(),\n backgroundColor: color.background(),\n padding: '2px',\n}));\n\nconst AddAnswerBlockButton = styled(Button)({\n position: 'absolute',\n right: '12px',\n border: '1px solid lightgrey',\n color: color.text(),\n});\n\nconst StyledHr = styled('hr')(({ theme }) => ({\n padding: 0,\n margin: 0,\n height: '1px',\n border: 'none',\n borderBottom: `solid 1px ${theme.palette.primary.main}`,\n}));\n\nconst KeyboardContainer = styled(HorizontalKeypad)(({ mode }) => ({\n ...commonMqKeyboardStyles,\n ...(mode === 'language' && {\n '& *': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n }),\n}));\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 error: PropTypes.string,\n noDecimal: PropTypes.bool,\n hideInput: PropTypes.bool,\n noLatexHandling: PropTypes.bool,\n layoutForKeyPad: PropTypes.object,\n maxResponseAreas: PropTypes.number,\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 setKeypadInteraction: PropTypes.func,\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 // adding a timeout to wait for other stuff related to focus to be finished\n setTimeout(() => this.input.focus(), 0);\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 markFractionBaseSuperscripts();\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 // eslint-disable-next-line no-useless-escape\n const regexMatch = latex.match(/[0-9]\\\\ \\\\frac\\{[^\\{]*\\}\\{ \\}/);\n\n if (this.input && regexMatch && regexMatch?.length) {\n try {\n // Undo the empty fraction the editor just created after a digit.\n // MathQuill needed cursor surgery via `__controller`; MathLive has no\n // such internals, so use the public delete command. `keystroke` accepts\n // the MathQuill name and maps it to the engine's selector.\n this.input.keystroke('Backspace');\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n\n return;\n }\n\n onChange(latex);\n };\n\n /** Only render if the editor's latex is different\n * or the keypad state changed from one state to the other (shown / hidden) */\n shouldComponentUpdate(nextProps, nextState) {\n // `this.input` is set via a ref, and the underlying math engine loads\n // asynchronously, so neither is guaranteed to exist on early renders.\n // Treat \"not ready\" as different, so the first real render is not skipped.\n const inputIsDifferent = !this.input || this.input.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 setKeypadInteraction,\n noDecimal,\n hideInput,\n layoutForKeyPad,\n latex,\n onFocus,\n onBlur,\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 <MathToolbarContainer className={classNames.mathToolbar}>\n <InputAndTypeContainer hide={hideInput}>\n {controlledKeypadMode && (\n <StyledFormControl variant={'standard'}>\n <StyledInputLabel id=\"equation-editor-label\">{'Equation Editor'}</StyledInputLabel>\n <Select\n labelId=\"equation-editor-label\"\n id=\"equation-editor-select\"\n name=\"equationEditor\"\n label={'Equation Editor'}\n onChange={this.onEditorTypeChange}\n value={this.state.equationEditor}\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\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 </StyledFormControl>\n )}\n <InputContainerDiv error={error}>\n <MathEditor\n onFocus={() => {\n onFocus && onFocus();\n this.updateDisable(false);\n }}\n onBlur={(event) => {\n this.updateDisable(false);\n onBlur && onBlur(event);\n }}\n className={(classNames && classNames.editor) || ''}\n controlledKeypadMode={controlledKeypadMode}\n ref={(r) => (this.input = r)}\n latex={latex}\n onChange={this.onEditorChange}\n />\n </InputContainerDiv>\n </InputAndTypeContainer>\n {allowAnswerBlock && (\n <AddAnswerBlockButton\n type=\"primary\"\n style={{ bottom: shouldShowKeypad ? '320px' : '20px' }}\n onClick={this.onAnswerBlockClick}\n disabled={addDisabled}\n >\n + Response Area\n </AddAnswerBlockButton>\n )}\n <StyledHr />\n {shouldShowKeypad && (\n <KeyboardContainer\n mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n layoutForKeyPad={layoutForKeyPad}\n additionalKeys={additionalKeys}\n onClick={this.onClick}\n noDecimal={noDecimal}\n setKeypadInteraction={setKeypadInteraction}\n />\n )}\n </MathToolbarContainer>\n );\n }\n}\n\nexport default EditorAndPad;\n"],"mappings":"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","ignoreList":[]}
@@ -15,21 +15,22 @@ var _react = _interopRequireDefault(require("react"));
15
15
  var _debug = _interopRequireDefault(require("debug"));
16
16
  var _styles = require("@mui/material/styles");
17
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
18
- var _mathInput = require("@pie-lib/math-input");
18
+ var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
19
19
  var _utils = require("./utils");
20
20
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
22
22
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
23
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
- var _mq$CommonMqStyles = _mathInput.mq.CommonMqStyles,
24
+ var _mq$CommonMqStyles = _mathInputMathlive.mq.CommonMqStyles,
25
25
  commonMqFontStyles = _mq$CommonMqStyles.commonMqFontStyles,
26
26
  longdivStyles = _mq$CommonMqStyles.longdivStyles,
27
27
  supsubStyles = _mq$CommonMqStyles.supsubStyles;
28
28
  var log = (0, _debug["default"])('@pie-lib:math-toolbar:math-preview');
29
29
  var MathPreviewContainer = (0, _styles.styled)('div')(function (_ref) {
30
30
  var theme = _ref.theme,
31
- isSelected = _ref.isSelected;
32
- return _objectSpread(_objectSpread(_objectSpread({
31
+ isSelected = _ref.isSelected,
32
+ outlineOnWrapper = _ref.outlineOnWrapper;
33
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread({
33
34
  display: 'inline-flex',
34
35
  alignItems: 'center',
35
36
  position: 'relative',
@@ -38,6 +39,16 @@ var MathPreviewContainer = (0, _styles.styled)('div')(function (_ref) {
38
39
  '& > .mq-math-mode': {
39
40
  border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey'
40
41
  },
42
+ '& .ML__latex': {
43
+ border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',
44
+ padding: isSelected ? '0px' : '5px'
45
+ }
46
+ }, !outlineOnWrapper && {
47
+ '&:not(:has(.ML__latex))': {
48
+ border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',
49
+ padding: isSelected ? '0px' : '5px'
50
+ }
51
+ }), {}, {
41
52
  '& > .mq-focused': {
42
53
  outline: 'none',
43
54
  boxShadow: 'none',
@@ -133,7 +144,7 @@ var MathPreviewContainer = (0, _styles.styled)('div')(function (_ref) {
133
144
  '& span[data-prime="true"]': {
134
145
  fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
135
146
  }
136
- }, isSelected && {
147
+ }, isSelected && !outlineOnWrapper && {
137
148
  border: "solid 1px ".concat(theme.palette.primary.main)
138
149
  });
139
150
  });
@@ -168,13 +179,15 @@ var RawMathPreview = exports.RawMathPreview = /*#__PURE__*/function (_React$Comp
168
179
  value: function render() {
169
180
  var _this$props = this.props,
170
181
  isSelected = _this$props.isSelected,
182
+ outlineOnWrapper = _this$props.outlineOnWrapper,
171
183
  onFocus = _this$props.onFocus,
172
184
  onBlur = _this$props.onBlur,
173
185
  latex = _this$props.latex;
174
186
  log('[render] latex: ', latex);
175
187
  return /*#__PURE__*/_react["default"].createElement(MathPreviewContainer, {
176
- isSelected: isSelected
177
- }, ' ', /*#__PURE__*/_react["default"].createElement(InsideOverlay, null), /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
188
+ isSelected: isSelected,
189
+ outlineOnWrapper: outlineOnWrapper
190
+ }, ' ', /*#__PURE__*/_react["default"].createElement(InsideOverlay, null), /*#__PURE__*/_react["default"].createElement(_mathInputMathlive.mq.Static, {
178
191
  latex: latex,
179
192
  onFocus: onFocus,
180
193
  onBlur: onBlur
@@ -185,6 +198,7 @@ var RawMathPreview = exports.RawMathPreview = /*#__PURE__*/function (_React$Comp
185
198
  (0, _defineProperty2["default"])(RawMathPreview, "propTypes", {
186
199
  latex: _propTypes["default"].string,
187
200
  isSelected: _propTypes["default"].bool,
201
+ outlineOnWrapper: _propTypes["default"].bool,
188
202
  onFocus: _propTypes["default"].func,
189
203
  onBlur: _propTypes["default"].func
190
204
  });
@@ -1 +1 @@
1
- {"version":3,"file":"math-preview.js","names":["_react","_interopRequireDefault","require","_debug","_styles","_propTypes","_mathInput","_utils","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_mq$CommonMqStyles","mq","CommonMqStyles","commonMqFontStyles","longdivStyles","supsubStyles","log","debug","MathPreviewContainer","styled","_ref","theme","isSelected","display","alignItems","position","border","outline","boxShadow","borderRadius","paddingTop","verticalAlign","top","left","marginTop","padding","paddingBottom","marginBottom","paddingLeft","marginLeft","fontFamily","borderTop","minWidth","lineHeight","right","concat","palette","primary","main","InsideOverlay","bottom","RawMathPreview","exports","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","componentDidMount","markFractionBaseSuperscripts","componentDidUpdate","prevProps","props","latex","render","_this$props","onFocus","onBlur","createElement","Static","React","Component","PropTypes","string","bool","func","_default"],"sources":["../src/math-preview.jsx"],"sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport { mq } from '@pie-lib/math-input';\nimport { markFractionBaseSuperscripts } from './utils';\n\nconst { commonMqFontStyles, longdivStyles, supsubStyles } = mq.CommonMqStyles;\n\nconst log = debug('@pie-lib:math-toolbar:math-preview');\n\nconst MathPreviewContainer = styled('div')(({ theme, isSelected }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n position: 'relative',\n '& *': commonMqFontStyles,\n ...supsubStyles,\n ...longdivStyles,\n '& > .mq-math-mode': {\n border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: 'solid 1px black',\n borderRadius: '0px',\n },\n '& > .mq-math-mode .mq-root-block': {\n paddingTop: '7px !important',\n },\n '& > .mq-math-mode .mq-overarc ': {\n paddingTop: '0.45em !important',\n },\n '& > .mq-math-mode .mq-sqrt-prefix': {\n verticalAlign: 'baseline !important',\n top: '1px !important',\n left: '-0.1em !important',\n },\n '& > .mq-math-mode .mq-denominator': {\n marginTop: '-5px !important',\n padding: '0.5em 0.1em 0.1em !important',\n },\n '& > .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {\n padding: '0 0.1em !important',\n paddingBottom: '0 !important',\n marginBottom: '-2px',\n },\n '& > .mq-math-mode .mq-longdiv .mq-longdiv-inner .mq-empty': {\n paddingTop: '6px !important',\n paddingLeft: '4px !important',\n },\n '& > .mq-math-mode .mq-longdiv .mq-longdiv-inner': {\n marginLeft: '0 !important',\n },\n '& > .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& > .mq-math-mode .mq-paren': {\n verticalAlign: 'top !important',\n padding: '1px 0.1em !important',\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 '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important',\n },\n '& .mq-editable-field .mq-cursor': {\n marginTop: '-15px !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n top: '7.5px',\n marginTop: '0px',\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '0px !important',\n position: 'absolute !important',\n right: '-2px',\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 '& span[data-prime=\"true\"]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n ...(isSelected && {\n border: `solid 1px ${theme.palette.primary.main}`,\n }),\n}));\n\nconst InsideOverlay = styled('span')({\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n});\n\nexport class RawMathPreview extends React.Component {\n static propTypes = {\n latex: PropTypes.string,\n isSelected: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n };\n\n componentDidMount() {\n markFractionBaseSuperscripts();\n }\n\n componentDidUpdate(prevProps) {\n // Re-run only if LaTeX changed\n if (this.props.latex !== prevProps.latex) {\n markFractionBaseSuperscripts();\n }\n }\n\n render() {\n const { isSelected, onFocus, onBlur, latex } = this.props;\n log('[render] latex: ', latex);\n return (\n <MathPreviewContainer isSelected={isSelected}>\n {' '}\n <InsideOverlay />\n <mq.Static latex={latex} onFocus={onFocus} onBlur={onBlur} />\n </MathPreviewContainer>\n );\n }\n}\n\nexport default RawMathPreview;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"math-preview.js","names":["_react","_interopRequireDefault","require","_debug","_styles","_propTypes","_mathInputMathlive","_utils","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_mq$CommonMqStyles","mq","CommonMqStyles","commonMqFontStyles","longdivStyles","supsubStyles","log","debug","MathPreviewContainer","styled","_ref","theme","isSelected","outlineOnWrapper","display","alignItems","position","border","padding","outline","boxShadow","borderRadius","paddingTop","verticalAlign","top","left","marginTop","paddingBottom","marginBottom","paddingLeft","marginLeft","fontFamily","borderTop","minWidth","lineHeight","right","concat","palette","primary","main","InsideOverlay","bottom","RawMathPreview","exports","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","componentDidMount","markFractionBaseSuperscripts","componentDidUpdate","prevProps","props","latex","render","_this$props","onFocus","onBlur","createElement","Static","React","Component","PropTypes","string","bool","func","_default"],"sources":["../src/math-preview.jsx"],"sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport { mq } from '@pie-lib/math-input-mathlive';\nimport { markFractionBaseSuperscripts } from './utils';\n\nconst { commonMqFontStyles, longdivStyles, supsubStyles } = mq.CommonMqStyles;\n\nconst log = debug('@pie-lib:math-toolbar:math-preview');\n\nconst MathPreviewContainer = styled('div')(({ theme, isSelected, outlineOnWrapper }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n position: 'relative',\n '& *': commonMqFontStyles,\n ...supsubStyles,\n ...longdivStyles,\n '& > .mq-math-mode': {\n border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',\n },\n '& .ML__latex': {\n border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',\n padding: isSelected ? '0px' : '5px',\n },\n ...(!outlineOnWrapper && {\n '&:not(:has(.ML__latex))': {\n border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',\n padding: isSelected ? '0px' : '5px',\n },\n }),\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: 'solid 1px black',\n borderRadius: '0px',\n },\n '& > .mq-math-mode .mq-root-block': {\n paddingTop: '7px !important',\n },\n '& > .mq-math-mode .mq-overarc ': {\n paddingTop: '0.45em !important',\n },\n '& > .mq-math-mode .mq-sqrt-prefix': {\n verticalAlign: 'baseline !important',\n top: '1px !important',\n left: '-0.1em !important',\n },\n '& > .mq-math-mode .mq-denominator': {\n marginTop: '-5px !important',\n padding: '0.5em 0.1em 0.1em !important',\n },\n '& > .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {\n padding: '0 0.1em !important',\n paddingBottom: '0 !important',\n marginBottom: '-2px',\n },\n '& > .mq-math-mode .mq-longdiv .mq-longdiv-inner .mq-empty': {\n paddingTop: '6px !important',\n paddingLeft: '4px !important',\n },\n '& > .mq-math-mode .mq-longdiv .mq-longdiv-inner': {\n marginLeft: '0 !important',\n },\n '& > .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& > .mq-math-mode .mq-paren': {\n verticalAlign: 'top !important',\n padding: '1px 0.1em !important',\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 '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important',\n },\n '& .mq-editable-field .mq-cursor': {\n marginTop: '-15px !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n top: '7.5px',\n marginTop: '0px',\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '0px !important',\n position: 'absolute !important',\n right: '-2px',\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 '& span[data-prime=\"true\"]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n ...(isSelected &&\n !outlineOnWrapper && {\n border: `solid 1px ${theme.palette.primary.main}`,\n }),\n}));\n\nconst InsideOverlay = styled('span')({\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n});\n\nexport class RawMathPreview extends React.Component {\n static propTypes = {\n latex: PropTypes.string,\n isSelected: PropTypes.bool,\n outlineOnWrapper: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n };\n\n componentDidMount() {\n markFractionBaseSuperscripts();\n }\n\n componentDidUpdate(prevProps) {\n // Re-run only if LaTeX changed\n if (this.props.latex !== prevProps.latex) {\n markFractionBaseSuperscripts();\n }\n }\n\n render() {\n const { isSelected, outlineOnWrapper, onFocus, onBlur, latex } = this.props;\n log('[render] latex: ', latex);\n return (\n <MathPreviewContainer isSelected={isSelected} outlineOnWrapper={outlineOnWrapper}>\n {' '}\n <InsideOverlay />\n <mq.Static latex={latex} onFocus={onFocus} onBlur={onBlur} />\n </MathPreviewContainer>\n );\n }\n}\n\nexport default RawMathPreview;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.0.9",
6
+ "version": "3.0.11-beta.1",
7
7
  "description": "Math toolbar for editing math equations",
8
8
  "keywords": [
9
9
  "math",
@@ -21,8 +21,8 @@
21
21
  "@emotion/styled": "^11.14.1",
22
22
  "@mui/icons-material": "^7.3.4",
23
23
  "@mui/material": "^7.3.4",
24
- "@pie-lib/math-input": "^8.1.1",
25
- "@pie-lib/render-ui": "^7.0.2",
24
+ "@pie-lib/math-input-mathlive": "^1.1.5-beta.1",
25
+ "@pie-lib/render-ui": "^6.1.0",
26
26
  "debug": "^4.1.1",
27
27
  "lodash-es": "^4.17.23",
28
28
  "prop-types": "^15.7.2"
@@ -32,8 +32,8 @@
32
32
  "react-dom": "^18.2.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@pie-lib/test-utils": "^2.0.3"
35
+ "@pie-lib/test-utils": "^2.0.2"
36
36
  },
37
37
  "scripts": {},
38
- "gitHead": "b422e915ca538d0fdc66e6583140c53a7df8ebfa"
38
+ "gitHead": "433bcb776c2975739e7417f133d31cd996164116"
39
39
  }
@@ -4,20 +4,16 @@ import IconButton from '@mui/material/IconButton';
4
4
  import Check from '@mui/icons-material/Check';
5
5
  import { styled } from '@mui/material/styles';
6
6
  import PropTypes from 'prop-types';
7
- import { color } from '@pie-lib/render-ui';
8
7
 
9
- const StyledIconButton = styled(IconButton)(({ hideBackground }) => ({
8
+ const StyledIconButton = styled(IconButton)(({ theme, hideBackground }) => ({
10
9
  verticalAlign: 'top',
11
10
  width: '28px',
12
11
  height: '28px',
13
12
  color: '#00bb00',
14
13
  ...(hideBackground && {
15
- // `--pie-white` inverts with the scheme where `common.white` did not, so the
16
- // button keeps reading as raised against the toolbar instead of staying a
17
- // white chip on a dark surface.
18
- backgroundColor: color.white(),
14
+ backgroundColor: theme.palette.common.white,
19
15
  '&:hover': {
20
- backgroundColor: color.backgroundDark(),
16
+ backgroundColor: theme.palette.grey[200],
21
17
  },
22
18
  }),
23
19
  '& .MuiIconButton-label': {
@@ -9,7 +9,7 @@ import { isEqual } from 'lodash-es';
9
9
  import FormControl from '@mui/material/FormControl';
10
10
  import InputLabel from '@mui/material/InputLabel';
11
11
 
12
- import { HorizontalKeypad, mq, updateSpans } from '@pie-lib/math-input';
12
+ import { HorizontalKeypad, mq, updateSpans } from '@pie-lib/math-input-mathlive';
13
13
  import { color } from '@pie-lib/render-ui';
14
14
  import { markFractionBaseSuperscripts } from './utils';
15
15
 
@@ -340,8 +340,11 @@ export class EditorAndPad extends React.Component {
340
340
 
341
341
  if (this.input && regexMatch && regexMatch?.length) {
342
342
  try {
343
- this.input.mathField.__controller.cursor.insLeftOf(this.input.mathField.__controller.cursor.parent[-1].parent);
344
- this.input.mathField.el().dispatchEvent(new KeyboardEvent('keydown', { keyCode: 8 }));
343
+ // Undo the empty fraction the editor just created after a digit.
344
+ // MathQuill needed cursor surgery via `__controller`; MathLive has no
345
+ // such internals, so use the public delete command. `keystroke` accepts
346
+ // the MathQuill name and maps it to the engine's selector.
347
+ this.input.keystroke('Backspace');
345
348
  } catch (e) {
346
349
  // eslint-disable-next-line no-console
347
350
  console.error(e.toString());
@@ -353,10 +356,13 @@ export class EditorAndPad extends React.Component {
353
356
  onChange(latex);
354
357
  };
355
358
 
356
- /** Only render if the mathquill instance's latex is different
359
+ /** Only render if the editor's latex is different
357
360
  * or the keypad state changed from one state to the other (shown / hidden) */
358
361
  shouldComponentUpdate(nextProps, nextState) {
359
- const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
362
+ // `this.input` is set via a ref, and the underlying math engine loads
363
+ // asynchronously, so neither is guaranteed to exist on early renders.
364
+ // Treat "not ready" as different, so the first real render is not skipped.
365
+ const inputIsDifferent = !this.input || this.input.latex() !== nextProps.latex;
360
366
  log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
361
367
 
362
368
  if (!isEqual(this.props.error, nextProps.error)) {
@@ -2,14 +2,14 @@ import React from 'react';
2
2
  import debug from 'debug';
3
3
  import { styled } from '@mui/material/styles';
4
4
  import PropTypes from 'prop-types';
5
- import { mq } from '@pie-lib/math-input';
5
+ import { mq } from '@pie-lib/math-input-mathlive';
6
6
  import { markFractionBaseSuperscripts } from './utils';
7
7
 
8
8
  const { commonMqFontStyles, longdivStyles, supsubStyles } = mq.CommonMqStyles;
9
9
 
10
10
  const log = debug('@pie-lib:math-toolbar:math-preview');
11
11
 
12
- const MathPreviewContainer = styled('div')(({ theme, isSelected }) => ({
12
+ const MathPreviewContainer = styled('div')(({ theme, isSelected, outlineOnWrapper }) => ({
13
13
  display: 'inline-flex',
14
14
  alignItems: 'center',
15
15
  position: 'relative',
@@ -19,6 +19,16 @@ const MathPreviewContainer = styled('div')(({ theme, isSelected }) => ({
19
19
  '& > .mq-math-mode': {
20
20
  border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',
21
21
  },
22
+ '& .ML__latex': {
23
+ border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',
24
+ padding: isSelected ? '0px' : '5px',
25
+ },
26
+ ...(!outlineOnWrapper && {
27
+ '&:not(:has(.ML__latex))': {
28
+ border: isSelected ? 'solid 0px lightgrey' : 'solid 1px lightgrey',
29
+ padding: isSelected ? '0px' : '5px',
30
+ },
31
+ }),
22
32
  '& > .mq-focused': {
23
33
  outline: 'none',
24
34
  boxShadow: 'none',
@@ -114,9 +124,10 @@ const MathPreviewContainer = styled('div')(({ theme, isSelected }) => ({
114
124
  '& span[data-prime="true"]': {
115
125
  fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',
116
126
  },
117
- ...(isSelected && {
118
- border: `solid 1px ${theme.palette.primary.main}`,
119
- }),
127
+ ...(isSelected &&
128
+ !outlineOnWrapper && {
129
+ border: `solid 1px ${theme.palette.primary.main}`,
130
+ }),
120
131
  }));
121
132
 
122
133
  const InsideOverlay = styled('span')({
@@ -131,6 +142,7 @@ export class RawMathPreview extends React.Component {
131
142
  static propTypes = {
132
143
  latex: PropTypes.string,
133
144
  isSelected: PropTypes.bool,
145
+ outlineOnWrapper: PropTypes.bool,
134
146
  onFocus: PropTypes.func,
135
147
  onBlur: PropTypes.func,
136
148
  };
@@ -147,10 +159,10 @@ export class RawMathPreview extends React.Component {
147
159
  }
148
160
 
149
161
  render() {
150
- const { isSelected, onFocus, onBlur, latex } = this.props;
162
+ const { isSelected, outlineOnWrapper, onFocus, onBlur, latex } = this.props;
151
163
  log('[render] latex: ', latex);
152
164
  return (
153
- <MathPreviewContainer isSelected={isSelected}>
165
+ <MathPreviewContainer isSelected={isSelected} outlineOnWrapper={outlineOnWrapper}>
154
166
  {' '}
155
167
  <InsideOverlay />
156
168
  <mq.Static latex={latex} onFocus={onFocus} onBlur={onBlur} />
package/LICENSE.md DELETED
@@ -1,5 +0,0 @@
1
- Copyright 2019 CoreSpring Inc
2
-
3
- Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4
-
5
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -1,74 +0,0 @@
1
- import { EditorAndPad } from '../editor-and-pad';
2
- import { render } from '@testing-library/react';
3
- import React from 'react';
4
-
5
- describe('EditorAndPad', () => {
6
- const defaultProps = {
7
- classes: {},
8
- classNames: {},
9
- onBlur: jest.fn(),
10
- };
11
-
12
- beforeEach(() => {
13
- jest.useFakeTimers();
14
- });
15
-
16
- afterEach(() => {
17
- jest.useRealTimers();
18
- });
19
-
20
- it('renders with default props', () => {
21
- const { container } = render(<EditorAndPad {...defaultProps} />);
22
- expect(container.firstChild).toBeInTheDocument();
23
- });
24
-
25
- describe('autoFocus', () => {
26
- it('focuses input immediately via setTimeout when autoFocus is true', () => {
27
- const mockFocus = jest.fn();
28
- const component = new EditorAndPad({ ...defaultProps, autoFocus: true });
29
- component.input = { focus: mockFocus };
30
-
31
- component.componentDidMount();
32
-
33
- expect(mockFocus).not.toHaveBeenCalled();
34
-
35
- jest.runAllTimers();
36
-
37
- expect(mockFocus).toHaveBeenCalledTimes(1);
38
- });
39
-
40
- it('does not focus input when autoFocus is false', () => {
41
- const mockFocus = jest.fn();
42
- const component = new EditorAndPad({ ...defaultProps, autoFocus: false });
43
- component.input = { focus: mockFocus };
44
-
45
- component.componentDidMount();
46
- jest.runAllTimers();
47
-
48
- expect(mockFocus).not.toHaveBeenCalled();
49
- });
50
-
51
- it('does not focus when input ref is not set', () => {
52
- const component = new EditorAndPad({ ...defaultProps, autoFocus: true });
53
- component.input = null;
54
-
55
- expect(() => {
56
- component.componentDidMount();
57
- jest.runAllTimers();
58
- }).not.toThrow();
59
- });
60
-
61
- it('uses setTimeout with 0ms delay to defer focus', () => {
62
- const setTimeoutSpy = jest.spyOn(global, 'setTimeout');
63
- const mockFocus = jest.fn();
64
- const component = new EditorAndPad({ ...defaultProps, autoFocus: true });
65
- component.input = { focus: mockFocus };
66
-
67
- component.componentDidMount();
68
-
69
- expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), 0);
70
-
71
- setTimeoutSpy.mockRestore();
72
- });
73
- });
74
- });
@@ -1,21 +0,0 @@
1
- import { RawPureToolbar } from '../index';
2
- import { render } from '@testing-library/react';
3
- import React from 'react';
4
-
5
- describe('RawPureToolbar', () => {
6
- const defaultProps = {
7
- classes: {},
8
- controlledKeypad: true,
9
- showKeypad: true,
10
- };
11
-
12
- it('renders with DONE button if hideDoneButton is not defined', () => {
13
- const { container } = render(<RawPureToolbar {...defaultProps} />);
14
- expect(container.firstChild).toBeInTheDocument();
15
- });
16
-
17
- it('renders without DONE button if hideDoneButton value is true', () => {
18
- const { container } = render(<RawPureToolbar {...defaultProps} hideDoneButton={true} />);
19
- expect(container.firstChild).toBeInTheDocument();
20
- });
21
- });
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import MathPreview from '../math-preview';
4
-
5
- describe('MathPreview', () => {
6
- const defaultProps = {
7
- latex: 'sqrt(5)',
8
- classes: {},
9
- isSelected: false,
10
- onFocus: jest.fn(),
11
- onBlur: jest.fn(),
12
- };
13
-
14
- it('renders with default props', () => {
15
- const { container } = render(<MathPreview {...defaultProps} />);
16
- expect(container.firstChild).toBeInTheDocument();
17
- });
18
- });