@pie-element/math-inline 8.2.1-next.3 → 8.2.1-next.6

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.
@@ -11,7 +11,7 @@
11
11
  "@material-ui/icons": "^3.0.1",
12
12
  "@pie-framework/mathquill": "^1.1.3",
13
13
  "@pie-framework/pie-configure-events": "^1.3.0",
14
- "@pie-lib/pie-toolbox": "2.1.1",
14
+ "@pie-lib/pie-toolbox": "2.1.2",
15
15
  "classnames": "^2.2.5",
16
16
  "debug": "^3.1.0",
17
17
  "prop-types": "^15.6.2",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@pie-framework/math-validation": "^1.2.2",
13
- "@pie-lib/pie-toolbox": "2.1.1",
13
+ "@pie-lib/pie-toolbox": "2.1.2",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15"
16
16
  },
package/lib/main.js CHANGED
@@ -51,6 +51,8 @@ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
51
51
 
52
52
  var _translator = _interopRequireDefault(require("@pie-lib/pie-toolbox/translator"));
53
53
 
54
+ var _reactDom = _interopRequireDefault(require("react-dom"));
55
+
54
56
  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; }
55
57
 
56
58
  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; }
@@ -842,7 +844,10 @@ var Main = /*#__PURE__*/function (_React$Component) {
842
844
  extraCSSRules: extraCSSRules,
843
845
  className: classes.mainContainer,
844
846
  ref: function ref(r) {
845
- return _this4.root = r || _this4.root;
847
+ // eslint-disable-next-line react/no-find-dom-node
848
+ var domNode = _reactDom["default"].findDOMNode(r);
849
+
850
+ _this4.root = domNode || _this4.root;
846
851
  }
847
852
  }, midContent);
848
853
  }
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","selectableElements","querySelectorAll","elem","setAttribute","textareaElements","index","instructionsId","parent","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","setTimeout","keypadElement","firstButton","focus","event","isAnswerInputFocused","activeElement","getAttribute","isClickOrTouchEvent","type","activeAnswerBlock","cleanupKeyDownListener","setState","onSubFieldFocus","focusFirstKeypadElement","handleEvent","handleKeyDown","addEventListener","removeEventListener","response","callOnSessionChange","data","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","offsetParent","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","tooltipContainerRef","React","createRef","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","note","language","t","lng","env","mode","countResponseOccurrences","updateAria","newAnswers","nextState","sameModel","sameState","prevProps","prevState","prevResponseType","responseType","currentResponseType","ref","div","firstChild","correctness","extraCSSRules","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onBlur","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","container","current","undefined","placement","modifiers","preventOverflow","enabled","boundariesElement","flip","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","marginBottom","position","title","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","palette","grey","alignItems","justifyContent","borderRight","flexShrink","flexGrow","flexBasis","pointerEvents","height","overflow"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;AACA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;AACA,IAAIE,UAAU,GAAG,KAAjB;AAEA,IAAMC,aAAa,GAAG,YAAtB;AACA,IAAMC,KAAK,GAAG,gBAAd;AACA,IAAMC,sBAAsB,GAAG,CAA/B,C,CAEA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,SAAS,GAAG,iCAAiCC,IAAjC,CAAsCC,SAAS,CAACC,SAAhD,CAAlB;;AAEA,SAASC,sBAAT,GAA8C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AAC5C,SAAOA,OAAO,CAACC,GAAR,CAAY,UAACC,GAAD;AAAA,WAAU;AAC3BC,MAAAA,IAAI,EAAED,GADqB;AAE3BE,MAAAA,KAAK,EAAEF,GAFoB;AAG3BG,MAAAA,KAAK,EAAEH,GAHoB;AAI3BI,MAAAA,KAAK,EAAEJ;AAJoB,KAAV;AAAA,GAAZ,CAAP;AAMD;;AAED,SAASK,cAAT,GAA6D;AAAA,MAArCC,cAAqC,uEAApB,EAAoB;AAAA,MAAhBC,cAAgB;AAC3D,SAAOC,IAAI,CAACC,KAAL,CAAWH,cAAc,CAACI,MAAf,GAAwB,CAAnC,IAAwC,EAAxC,IAA8CH,cAAc,KAAK,eAAnB,GAAqC,GAArC,GAA2C,GAAzF,CAAP;AACD;;AAED,SAASI,gBAAT,CAA0BC,KAA1B,EAAiCC,KAAjC,EAAwC;AACtC,aAA6BD,KAAK,IAAI,EAAtC;AAAA,MAAQE,MAAR,QAAQA,MAAR;AAAA,MAAgBC,QAAhB,QAAgBA,QAAhB;;AACA,cAAgED,MAAM,IAAI,EAA1E;AAAA,MAAQE,UAAR,SAAQA,UAAR;AAAA,MAAoBC,SAApB,SAAoBA,SAApB;AAAA,MAA+BC,SAA/B,SAA+BA,SAA/B;AAAA,MAA0CC,iBAA1C,SAA0CA,iBAA1C;;AAEA,MAAIL,MAAM,IAAIE,UAAd,EAA0B;AACxB,QAAMI,eAAe,GAAGJ,UAAxB;;AAEA,QAAIH,KAAK,CAACQ,WAAV,EAAuB;AACrB,aAAOJ,SAAS,IAAIA,SAAS,CAACP,MAAvB,IAAiCO,SAAS,CAAC,CAAD,CAAT,CAAaK,MAArD;AACD;;AAED,QAAIC,YAAY,GAAG,CAAnB,CAPwB,CAOF;AACtB;;AAEA,WAAO,CAACH,eAAe,IAAI,EAApB,EACJI,OADI,CACIjC,KADJ,EACW,YAAY;AAC1B,UAAM+B,MAAM,GAAGT,KAAK,CAACY,OAAN,CAAcC,OAAd,YAA0BH,YAA1B,EAAf;;AAEA,UAAIL,SAAS,IAAI,CAACC,iBAAlB,EAAqC;AACnC,YAAMQ,UAAU,GAAG,SAASC,MAAT,CAAgB,EAAhB,IAAsB,YAAzC;AAEA,+CAAgCL,YAAY,EAA5C,eAAmDI,UAAU,CAACC,MAAX,CAAkB,CAAlB,CAAnD;AACD;;AAED,UAAIb,QAAJ,EAAc;AACZ,+CAAgCQ,YAAY,EAA5C;AACD;;AAED,6CAAgCA,YAAY,EAA5C,eAAoDD,MAAM,IAAIA,MAAM,CAACO,KAAlB,IAA4B,EAA/E;AACD,KAfI,EAgBJL,OAhBI,CAgBIlC,aAhBJ,EAgBmB,oBAhBnB,CAAP;AAiBD;AACF;;IAEYwC,I;;;;;AAQX,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,mHAwDU,YAAM;AACjC,wBAA2B,MAAKA,KAAhC;AAAA,UAAQnB,KAAR,eAAQA,KAAR;AAAA,UAAeoB,OAAf,eAAeA,OAAf;AACA,wBAAiC,MAAKnB,KAAtC;AAAA,UAAQY,OAAR,eAAQA,OAAR;AAAA,UAAiBJ,WAAjB,eAAiBA,WAAjB;AACA,UAAMK,OAAO,GAAGD,OAAO,CAACC,OAAxB;;AAEA,UAAI,MAAKO,IAAL,IAAarB,KAAK,CAACG,QAAnB,IAA+B,CAACM,WAApC,EAAiD;AAC/Ca,QAAAA,MAAM,CAACC,IAAP,CAAYT,OAAZ,EAAqBU,OAArB,CAA6B,UAACC,QAAD,EAAc;AACzC,cAAMC,EAAE,GAAG,MAAKL,IAAL,CAAUM,aAAV,YAA4BF,QAA5B,EAAX;;AACA,cAAMG,OAAO,GAAG,MAAKP,IAAL,CAAUM,aAAV,YAA4BF,QAA5B,WAAhB,CAFyC,CAGzC;;;AAEA,cAAIC,EAAJ,EAAQ;AACN,gBAAIG,EAAE,GAAGC,sBAAUC,YAAV,CAAuB,CAAvB,CAAT;;AACA,gBAAMrB,MAAM,GAAGI,OAAO,CAACW,QAAD,CAAtB;AAEAC,YAAAA,EAAE,CAACM,WAAH,GAAkBtB,MAAM,IAAIA,MAAM,CAACO,KAAlB,IAA4B,EAA7C;;AAEA,gBAAI,CAACjB,KAAK,CAACiC,IAAX,EAAiB,CACf;AACA;AACA;AACA;AACA;AACD,aAND,MAMO;AACLP,cAAAA,EAAE,CAACQ,aAAH,CAAiBA,aAAjB,CAA+BC,SAA/B,CAAyCC,MAAzC,CAAgDhB,OAAO,CAACiB,OAAxD;AACAX,cAAAA,EAAE,CAACQ,aAAH,CAAiBA,aAAjB,CAA+BC,SAA/B,CAAyCC,MAAzC,CAAgDhB,OAAO,CAACkB,SAAxD;AACD;;AAEDT,YAAAA,EAAE,CAACU,UAAH,CAAcb,EAAd,EAjBM,CAmBN;AACA;AACA;;AACAE,YAAAA,OAAO,CAACI,WAAR,GAAsB,GAAtB;AACD;AACF,SA7BD;AA8BD;;AAED,+CAAW,MAAKX,IAAhB;AACD,KA/FkB;AAAA,mGA0LN,YAAM;AACjB,UAAQD,OAAR,GAAoB,MAAKD,KAAzB,CAAQC,OAAR;;AAEA,UAAI,MAAKC,IAAT,EAAe;AACb;AACA,YAAMmB,kBAAkB,GAAG,MAAKnB,IAAL,CAAUoB,gBAAV,CAA2B,gBAA3B,CAA3B;;AACAD,QAAAA,kBAAkB,CAAChB,OAAnB,CAA2B,UAACkB,IAAD;AAAA,iBAAUA,IAAI,CAACC,YAAL,CAAkB,aAAlB,EAAiC,MAAjC,CAAV;AAAA,SAA3B,EAHa,CAKb;;AACA,YAAMC,gBAAgB,GAAG,MAAKvB,IAAL,CAAUoB,gBAAV,CAA2B,UAA3B,CAAzB;;AACAG,QAAAA,gBAAgB,CAACpB,OAAjB,CAAyB,UAACkB,IAAD,EAAOG,KAAP,EAAiB;AACxCH,UAAAA,IAAI,CAACC,YAAL,CAAkB,YAAlB,EAAgC,eAAhC,EADwC,CAGxC;;AACA,cAAMG,cAAc,0BAAmBD,KAAnB,CAApB,CAJwC,CAMxC;;AACA,cAAME,MAAM,GAAGL,IAAI,CAACM,OAAL,CAAa,cAAb,CAAf;;AAEA,cAAID,MAAJ,EAAY;AACV;AACA,gBAAIE,mBAAmB,GAAGF,MAAM,CAACpB,aAAP,YAAyBmB,cAAzB,EAA1B;;AAEA,gBAAI,CAACG,mBAAL,EAA0B;AACxBA,cAAAA,mBAAmB,GAAGC,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAtB;AACAF,cAAAA,mBAAmB,CAACG,EAApB,GAAyBN,cAAzB;AACAG,cAAAA,mBAAmB,CAACI,SAApB,GAAgCjC,OAAO,CAACkC,MAAxC;AACAL,cAAAA,mBAAmB,CAACjB,WAApB,GACE,mSADF;AAEAe,cAAAA,MAAM,CAACQ,YAAP,CAAoBN,mBAApB,EAAyCP,IAAzC;AACD;;AAEDA,YAAAA,IAAI,CAACC,YAAL,CAAkB,kBAAlB,EAAsCG,cAAtC;AACD;AACF,SAxBD;AAyBD;AACF,KA9NkB;AAAA,gHAgOO,YAAM;AAC9BU,MAAAA,UAAU,CAAC,YAAM;AACf,YAAMC,aAAa,GAAGP,QAAQ,CAACvB,aAAT,CAAuB,eAAvB,CAAtB;;AAEA,YAAI8B,aAAJ,EAAmB;AACjB,cAAMC,WAAW,GAAGD,aAAa,CAAC9B,aAAd,CAA4B,yBAA5B,CAApB;;AAEA,cAAI+B,WAAJ,EAAiB;AACfA,YAAAA,WAAW,CAACC,KAAZ;AACD;AACF;AACF,OAVS,EAUP,CAVO,CAAV;AAWD,KA5OkB;AAAA,sGA8OH,UAACC,KAAD,EAAQR,EAAR,EAAe;AAC7B,UAAMS,oBAAoB,GAAGX,QAAQ,CAACY,aAAT,CAAuBC,YAAvB,CAAoC,YAApC,MAAsD,eAAnF;AACA,UAAMC,mBAAmB,GAAGJ,KAAK,CAACK,IAAN,KAAe,OAAf,IAA0BL,KAAK,CAACK,IAAN,KAAe,YAArE;;AAEA,UAAIJ,oBAAoB,KAAKD,KAAK,CAACxE,GAAN,KAAc,WAAd,IAA6B4E,mBAAlC,CAAxB,EAAgF;AAC9E,YAAI,MAAK/D,KAAL,CAAWiE,iBAAX,KAAiCd,EAArC,EAAyC;AACvC,gBAAKe,sBAAL;;AACA,gBAAKC,QAAL,CAAc;AAAEF,YAAAA,iBAAiB,EAAEd;AAArB,WAAd;;AACA,gBAAKiB,eAAL,CAAqBjB,EAArB;AACD;;AAED,YAAIQ,KAAK,CAACxE,GAAN,KAAc,WAAlB,EAA+B;AAC7B,gBAAKkF,uBAAL;AACD;AACF,OAVD,MAUO,IAAKV,KAAK,CAACxE,GAAN,KAAc,QAAnB,EAA6B;AAC/B,cAAKgF,QAAL,CAAc;AAAEF,UAAAA,iBAAiB,EAAE;AAArB,SAAd;AACJ;AACF,KA/PkB;AAAA,wGAiQD,UAACd,EAAD,EAAQ;AACxB,UAAMmB,WAAW,GAAG,SAAdA,WAAc,CAACX,KAAD,EAAW;AAC7B,cAAKY,aAAL,CAAmBZ,KAAnB,EAA0BR,EAA1B;AACD,OAFD;;AAIA,YAAKmB,WAAL,GAAmBA,WAAnB;AAEArB,MAAAA,QAAQ,CAACuB,gBAAT,CAA0B,SAA1B,EAAqCF,WAArC;AACArB,MAAAA,QAAQ,CAACuB,gBAAT,CAA0B,OAA1B,EAAmCF,WAAnC;AACArB,MAAAA,QAAQ,CAACuB,gBAAT,CAA0B,YAA1B,EAAwCF,WAAxC;AACD,KA3QkB;AAAA,+GA6QM,YAAM;AAC7B,UAAI,MAAKA,WAAT,EAAsB;AACpBrB,QAAAA,QAAQ,CAACwB,mBAAT,CAA6B,SAA7B,EAAwC,MAAKH,WAA7C;AACArB,QAAAA,QAAQ,CAACwB,mBAAT,CAA6B,OAA7B,EAAsC,MAAKH,WAA3C;AACArB,QAAAA,QAAQ,CAACwB,mBAAT,CAA6B,YAA7B,EAA2C,MAAKH,WAAhD;AACA,cAAKA,WAAL,GAAmB,IAAnB;AACD;AACF,KApRkB;AAAA,+FA4RV,YAAM,CAAE,CA5RE;AAAA,+GA8RM,UAACI,QAAD,EAAc;AACrC,YAAKP,QAAL,CAAc,UAACnE,KAAD;AAAA,eAAY;AAAEY,UAAAA,OAAO,kCAAOZ,KAAK,CAACY,OAAb;AAAsB8D,YAAAA,QAAQ,EAARA;AAAtB;AAAT,SAAZ;AAAA,OAAd,EAAwE,MAAKC,mBAA7E;AACD,KAhSkB;AAAA,mGAkSN,UAACC,IAAD,EAAU;AACrB,UAAI,CAACA,IAAL,EAAW;AACT;AACD;;AAED,UAAQZ,IAAR,GAAwBY,IAAxB,CAAQZ,IAAR;AAAA,UAAchD,KAAd,GAAwB4D,IAAxB,CAAc5D,KAAd;;AAEA,UAAIgD,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,QAAnC,EAA6C;AAC3C,eAAOY,IAAP;AACD,OAFD,MAEO,IAAIZ,IAAI,KAAK,QAAb,EAAuB;AAC5B;AAASA,UAAAA,IAAI,EAAE;AAAf,WAA4BY,IAA5B;AACD,OAFM,MAEA,IAAI5D,KAAK,KAAK,OAAd,EAAuB;AAC5B,eAAO;AAAEgD,UAAAA,IAAI,EAAE;AAAR,SAAP;AACD,OAFM,MAEA;AACL,eAAO;AAAEA,UAAAA,IAAI,EAAE,OAAR;AAAiBhD,UAAAA,KAAK,EAALA;AAAjB,SAAP;AACD;AACF,KAlTkB;AAAA,iGAoTR,UAAC6D,KAAD,EAAW;AACpB,YAAKA,KAAL,GAAaA,KAAb;AACD,KAtTkB;AAAA,gGAwTT,UAACD,IAAD,EAAU;AAClB,UAAME,CAAC,GAAG,MAAKC,UAAL,CAAgBH,IAAhB,CAAV;;AAEA,UAAIE,CAAC,CAACd,IAAF,KAAW,OAAf,EAAwB;AACtB,cAAKa,KAAL,CAAWG,KAAX;AACD,OAFD,MAEO,IAAIF,CAAC,CAACd,IAAF,KAAW,SAAf,EAA0B;AAC/B,YAAIiB,KAAK,CAACC,OAAN,CAAcJ,CAAC,CAAC9D,KAAhB,CAAJ,EAA4B;AAC1B8D,UAAAA,CAAC,CAAC9D,KAAF,CAAQO,OAAR,CAAgB,UAAC4D,EAAD,EAAQ;AACtB,kBAAKN,KAAL,CAAWO,GAAX,CAAeD,EAAf;AACD,WAFD;AAGD,SAJD,MAIO;AACL,gBAAKN,KAAL,CAAWO,GAAX,CAAeN,CAAC,CAAC9D,KAAjB;AACD;AACF,OARM,MAQA,IAAI8D,CAAC,CAACd,IAAF,KAAW,QAAf,EAAyB;AAC9B,cAAKa,KAAL,CAAWQ,SAAX,CAAqBP,CAAC,CAAC9D,KAAvB;AACD,OAFM,MAEA;AACL,cAAK6D,KAAL,CAAWvF,KAAX,CAAiBwF,CAAC,CAAC9D,KAAnB;AACD;;AAED,YAAK6D,KAAL,CAAWnB,KAAX;AACD,KA5UkB;AAAA,4GA8UG,YAAM;AAC1B,UAAQ4B,eAAR,GAA4B,MAAKpE,KAAjC,CAAQoE,eAAR;;AAEA,UAAIA,eAAJ,EAAqB;AACnBA,QAAAA,eAAe,CAAC,MAAKtF,KAAL,CAAWY,OAAZ,CAAf;AACD;AACF,KApVkB;AAAA,0GAsVC,UAAC2E,IAAD,EAAU;AAC5B,YAAKpB,QAAL,CAAc;AAAE3D,QAAAA,WAAW,EAAE+E;AAAf,OAAd,EAAqC,MAAKC,0BAA1C;AACD,KAxVkB;AAAA,wGA0VD,UAACpG,IAAD,EAAOqG,aAAP,EAAyB;AACzC;;AAEA,UAAIrG,IAAJ,EAAU;AACR,cAAK+E,QAAL,CACE,UAACnE,KAAD;AAAA,iBAAY;AACVY,YAAAA,OAAO,kCACFZ,KAAK,CAACY,OADJ;AAEL8E,cAAAA,cAAc,EAAE,MAAKC,QAAL,IAAiB,MAAKA,QAAL,CAAcC,SAAd,CAAwBvG,KAAxB,EAF5B;AAGLwB,cAAAA,OAAO,kCACFb,KAAK,CAACY,OAAN,CAAcC,OADZ,4CAEJzB,IAFI,EAEG;AAAE4B,gBAAAA,KAAK,EAAEyE;AAAT,eAFH;AAHF;AADG,WAAZ;AAAA,SADF,EAWE,MAAKd,mBAXP;AAaD;AACF,KA5WkB;AAAA,qGA8WJ,UAACkB,WAAD,EAAcC,MAAd,EAAyB;AACtC,UAAQjF,OAAR,GAAoB,MAAKb,KAAL,CAAWY,OAA/B,CAAQC,OAAR;;AAEA,UAAIQ,MAAM,CAACC,IAAP,CAAYT,OAAO,IAAI,EAAvB,EAA2BhB,MAA/B,EAAuC;AACrC,YAAMyB,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYT,OAAZ,CAAb;AAEA,eAAOS,IAAI,CAACyE,IAAL,CAAU,UAACC,CAAD,EAAO;AACtB,cAAMC,EAAE,GAAGH,MAAM,CAACE,CAAD,CAAjB;AAEA,iBAAOC,EAAE,IAAIA,EAAE,CAAC9C,EAAH,IAAS0C,WAAW,CAAC1C,EAAlC;AACD,SAJM,CAAP;AAKD;AACF,KA1XkB;AAAA,+FA4XV,UAAC+C,CAAD,EAAO;AACd,kBAAyCA,CAAC,IAAI,EAA9C;AAAA,UAAQC,aAAR,SAAQA,aAAR;AAAA,UAAuBC,aAAvB,SAAuBA,aAAvB;;AAEA,eAASC,wBAAT,CAAkCC,OAAlC,EAAsD;AAAA,YAAXC,KAAW,uEAAH,CAAG;AACpD;AACA,YAAI,CAACD,OAAD,IAAYC,KAAK,IAAI,EAAzB,EAA6B,OAAO,IAAP;AAE7B,YAAMzD,MAAM,GAAGwD,OAAO,CAACE,YAAvB;AAEA,YAAI,CAAC1D,MAAL,EAAa,OAAO,IAAP;;AAEb,YAAIA,MAAM,CAACgB,YAAP,CAAoB,MAApB,MAAgC,SAApC,EAA+C;AAC7C,iBAAOhB,MAAP;AACD;;AAED,eAAOuD,wBAAwB,CAACvD,MAAD,EAASyD,KAAK,GAAG,CAAjB,CAA/B;AACD;;AAED,eAASE,sBAAT,CAAgCH,OAAhC,EAAoD;AAAA;;AAAA,YAAXC,KAAW,uEAAH,CAAG;AAClD;AACA,YAAI,CAACD,OAAD,IAAYC,KAAK,IAAI,CAAzB,EAA4B,OAAO,IAAP;AAE5B,YAAMG,KAAK,GAAGJ,OAAH,aAAGA,OAAH,4CAAGA,OAAO,CAAEK,QAAZ,sDAAG,kBAAoB,CAApB,CAAd;AAEA,YAAI,CAACD,KAAL,EAAY,OAAO,IAAP;;AAEZ,YAAIA,KAAK,CAACE,UAAN,IAAoBF,KAAK,CAACE,UAAN,CAAiB,aAAjB,CAAxB,EAAyD;AACvD,iBAAOF,KAAP;AACD;;AAED,eAAOD,sBAAsB,CAACC,KAAD,EAAQH,KAAK,GAAG,CAAhB,CAA7B;AACD;;AAED,UAAMM,qBAAqB,GAAGR,wBAAwB,CAACF,aAAD,CAAtD;AACA,UAAMW,mBAAmB,GAAGD,qBAAqB,GAAGJ,sBAAsB,CAACI,qBAAD,CAAzB,GAAmD,IAApG;;AAEA,UAAI,CAACV,aAAD,IAAkB,CAACC,aAAnB,IAAoC,EAACU,mBAAD,aAACA,mBAAD,eAACA,mBAAmB,CAAEF,UAArB,CAAgC,aAAhC,CAAD,CAAxC,EAAyF;AACvF,cAAKzC,QAAL,CAAc;AAAEF,UAAAA,iBAAiB,EAAE;AAArB,SAAd;AACD,OAtCa,CAuCd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD,KA/akB;AAGjB,QAAMpD,QAAO,GAAG,EAAhB;;AAEA,QAAIK,KAAK,CAACnB,KAAN,CAAYE,MAAZ,IAAsBiB,KAAK,CAACnB,KAAN,CAAYE,MAAZ,CAAmBE,UAA7C,EAAyD;AACvD,UAAIO,YAAY,GAAG,CAAnB,CADuD,CACjC;AACtB;;AAEA,OAACQ,KAAK,CAACnB,KAAN,CAAYE,MAAZ,CAAmBE,UAAnB,IAAiC,EAAlC,EAAsCQ,OAAtC,CAA8CjC,KAA9C,EAAqD,YAAM;AACzDmC,QAAAA,QAAO,YAAKH,YAAL,EAAP,GAA8B;AAC5BM,UAAAA,KAAK,EACFE,KAAK,CAACN,OAAN,IACCM,KAAK,CAACN,OAAN,CAAcC,OADf,IAECK,KAAK,CAACN,OAAN,CAAcC,OAAd,YAA0BH,YAA1B,EAFD,IAGCQ,KAAK,CAACN,OAAN,CAAcC,OAAd,YAA0BH,YAA1B,GAA0CM,KAH5C,IAIA;AAN0B,SAA9B;AASAN,QAAAA,YAAY,IAAI,CAAhB;AACD,OAXD;AAYD;;AAED,UAAKV,KAAL,GAAa;AACXY,MAAAA,OAAO,kCAAOM,KAAK,CAACN,OAAb;AAAsBC,QAAAA,OAAO,EAAPA;AAAtB,QADI;AAEXoD,MAAAA,iBAAiB,EAAE,EAFR;AAGXzD,MAAAA,WAAW,EAAE,MAAKU,KAAL,CAAWnB,KAAX,CAAiBE,MAAjB,CAAwBK,iBAAxB,IAA6C,KAH/C;AAIXyG,MAAAA,mBAAmB,eAAEC,kBAAMC,SAAN;AAJV,KAAb;AAvBiB;AA6BlB;;;;WAED,qCAA4B;AAC1B,UAAQ9F,OAAR,GAAoB,KAAKD,KAAzB,CAAQC,OAAR;;AAEA,UAAI,OAAO+F,MAAP,KAAkB,WAAtB,EAAmC;AACjC,YAAItF,EAAE,GAAGC,sBAAUC,YAAV,CAAuB,CAAvB,CAAT;;AAEA,YAAI,CAACtD,UAAL,EAAiB;AACfoD,UAAAA,EAAE,CAACuF,aAAH,CAAiB,aAAjB,EAAgC,UAACvC,IAAD,EAAU;AACxC,mBAAO;AACLwC,cAAAA,UAAU,yBAAiBjG,OAAO,CAACkG,cAAzB,+CACQlG,OAAO,CAACmG,aADhB,qBACsC1C,IADtC,2DAEQzD,OAAO,CAACoG,SAFhB,+CAGQ3C,IAHR,6DADL;AAOL4C,cAAAA,IAAI,EAAE;AAAA,uBAAM,MAAN;AAAA,eAPD;AAQLnI,cAAAA,KAAK,EAAE;AAAA,sDAA8BuF,IAA9B;AAAA;AARF,aAAP;AAUD,WAXD;AAaApG,UAAAA,UAAU,GAAG,IAAb;AACD;AACF;AACF;;;WA2CD,kCAAyB2B,UAAzB,EAAqC;AACnC,UAAMsH,OAAO,GAAG,mBAAhB;AACA,UAAMC,OAAO,GAAGvH,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEwH,KAAZ,CAAkBF,OAAlB,CAAhB;AAEA,aAAOC,OAAO,GAAGA,OAAO,CAAC7H,MAAX,GAAoB,CAAlC;AACD;;;WAED,0CAAiC+H,SAAjC,EAA4C;AAAA;;AAC1C,UAAQ3H,MAAR,GAAmB,KAAKiB,KAAL,CAAWnB,KAA9B,CAAQE,MAAR;;AACA,kBAAoC2H,SAAS,CAAC7H,KAAV,IAAmB,EAAvD;AAAA,+BAAQE,MAAR;AAAA,UAAgB4H,UAAhB,6BAA6B,EAA7B,gBAF0C,CAG1C;AACA;AACA;;;AACA,UACE5H,MAAM,CAAC6H,IAAP,IACA7H,MAAM,CAAC8H,QADP,IAEA9H,MAAM,CAAC8H,QAAP,KAAoBF,UAAU,CAACE,QAF/B,IAGA9H,MAAM,CAAC6H,IAAP,KAAgBxJ,UAAU,CAAC0J,CAAX,CAAa,yCAAb,EAAwD;AAAEC,QAAAA,GAAG,EAAEhI,MAAM,CAAC8H;AAAd,OAAxD,CAJlB,EAKE;AACA9H,QAAAA,MAAM,CAAC6H,IAAP,GAAcxJ,UAAU,CAAC0J,CAAX,CAAa,yCAAb,EAAwD;AAAEC,UAAAA,GAAG,EAAEJ,UAAU,CAACE;AAAlB,SAAxD,CAAd;AACD;;AAED,UAAK9H,MAAM,CAACiI,GAAP,IAAcjI,MAAM,CAACiI,GAAP,CAAWC,IAAX,KAAoB,UAAnC,IAAmDN,UAAU,CAACK,GAAX,IAAkBL,UAAU,CAACK,GAAX,CAAeC,IAAf,KAAwB,UAAjG,EAA8G;AAC5G,aAAKhE,QAAL,iCAAmB,KAAKnE,KAAL,CAAWY,OAA9B;AAAuCJ,UAAAA,WAAW,EAAE;AAApD;AACD;;AAED,UAAIqH,UAAU,CAACvH,iBAAf,EAAkC;AAChC,aAAK6D,QAAL,CAAc;AAAE3D,UAAAA,WAAW,EAAE;AAAf,SAAd;AACD;;AAED,UAAI,KAAK4H,wBAAL,CAA8BnI,MAAM,CAACE,UAArC,IAAmD,KAAKiI,wBAAL,CAA8BP,UAAU,CAAC1H,UAAzC,CAAvD,EAA6G;AAC3GoD,QAAAA,UAAU,CAAC;AAAA,iBAAM,MAAI,CAAC8E,UAAL,EAAN;AAAA,SAAD,EAA0B,GAA1B,CAAV;AACD;;AAED,UACGpI,MAAM,IAAIA,MAAM,CAACG,SAAjB,IAA8BH,MAAM,CAACG,SAAP,CAAiBP,MAAjB,KAA4BgI,UAAU,CAACzH,SAAX,CAAqBP,MAAhF,IACC,CAACI,MAAD,IAAW4H,UAAX,IAAyBA,UAAU,CAACzH,SADrC,IAECH,MAAM,IAAI4H,UAAV,IAAwB5H,MAAM,CAACE,UAAP,KAAsB0H,UAAU,CAAC1H,UAH5D,EAIE;AACA,YAAMmI,UAAU,GAAG,EAAnB;AACA,YAAMzH,OAAO,GAAG,KAAKb,KAAL,CAAWY,OAAX,CAAmBC,OAAnC;AAEA,YAAIH,YAAY,GAAG,CAAnB,CAJA,CAIsB;AAEtB;;AACA,SAACmH,UAAU,CAAC1H,UAAX,IAAyB,EAA1B,EAA8BQ,OAA9B,CAAsCjC,KAAtC,EAA6C,YAAM;AACjD4J,UAAAA,UAAU,YAAK5H,YAAL,EAAV,GAAiC;AAC/BM,YAAAA,KAAK,EAAGH,OAAO,IAAIA,OAAO,YAAKH,YAAL,EAAlB,IAA0CG,OAAO,YAAKH,YAAL,EAAP,CAA4BM,KAAvE,IAAiF;AADzD,WAAjC;AAGAN,UAAAA,YAAY;AACb,SALD;AAOA,aAAKyD,QAAL,CACE,UAACnE,KAAD;AAAA,iBAAY;AACVY,YAAAA,OAAO,kCACFZ,KAAK,CAACY,OADJ;AAEL8E,cAAAA,cAAc,EAAE,MAAI,CAACC,QAAL,IAAiB,MAAI,CAACA,QAAL,CAAcC,SAAd,CAAwBvG,KAAxB,EAF5B;AAGLwB,cAAAA,OAAO,EAAEyH;AAHJ;AADG,WAAZ;AAAA,SADF,EAQE,KAAK9C,0BARP;AAUD;AACF;;;WAED,+BAAsBoC,SAAtB,EAAiCW,SAAjC,EAA4C;AAC1C,UAAMC,SAAS,GAAG,yBAAQ,KAAKtH,KAAL,CAAWnB,KAAnB,EAA0B6H,SAAS,CAAC7H,KAApC,CAAlB;AACA,UAAM0I,SAAS,GAAG,yBAAQ,KAAKzI,KAAb,EAAoBuI,SAApB,CAAlB;AAEA,aAAO,CAACC,SAAD,IAAc,CAACC,SAAtB;AACD;;;WAED,6BAAoB;AAAA;;AAClB,WAAKjD,0BAAL;AACA,WAAK6C,UAAL;AACA9E,MAAAA,UAAU,CAAC;AAAA,eAAM,yCAAW,MAAI,CAACnC,IAAhB,CAAN;AAAA,OAAD,EAA8B,GAA9B,CAAV;AACD;;;WAED,4BAAmBsH,SAAnB,EAA8BC,SAA9B,EAAyC;AAAA;;AACvC,WAAKnD,0BAAL;AAEA,UAAMoD,gBAAgB,uBAAGF,SAAS,CAAC3I,KAAb,8EAAG,iBAAiBE,MAApB,0DAAG,sBAAyB4I,YAAlD;AACA,UAAMC,mBAAmB,wBAAG,KAAK5H,KAAL,CAAWnB,KAAd,+EAAG,kBAAkBE,MAArB,0DAAG,sBAA0B4I,YAAtD;;AAEA,UAAID,gBAAgB,KAAKE,mBAAzB,EAA8C;AAC5C,aAAKT,UAAL;AACD;AACF;;;WA8FD,gCAAuB;AACrB,UAAI,KAAKnE,sBAAT,EAAiC;AAC/B,aAAKA,sBAAL;AACD;AACF;;;WAuJD,uBAAc6E,GAAd,EAAmB;AACjB;AACAxF,MAAAA,UAAU,CAAC,YAAM;AACf,YAAIwF,GAAG,IAAInK,SAAX,EAAsB;AACpB,cAAMoK,GAAG,GAAG/F,QAAQ,CAACvB,aAAT,CAAuB,kBAAvB,CAAZ;;AAEA,cAAIsH,GAAJ,EAAS;AACP,gBAAMvH,EAAE,GAAGuH,GAAG,CAACC,UAAf;AACAxH,YAAAA,EAAE,CAACiB,YAAH,CAAgB,UAAhB,EAA4B,IAA5B;AACD;AACF;AACF,OATS,EASP,CATO,CAAV;AAUD;;;WAED,kBAAS;AAAA;AAAA;;AACP,yBAA2B,KAAKxB,KAAhC;AAAA,UAAQnB,KAAR,gBAAQA,KAAR;AAAA,UAAeoB,OAAf,gBAAeA,OAAf;AACA,yBAAyE,KAAKnB,KAA9E;AAAA,UAAQiE,iBAAR,gBAAQA,iBAAR;AAAA,UAA2BzD,WAA3B,gBAA2BA,WAA3B;AAAA,UAAwCI,OAAxC,gBAAwCA,OAAxC;AAAA,UAAiDmG,mBAAjD,gBAAiDA,mBAAjD;;AACA,kBAaIhH,KAAK,IAAI,EAbb;AAAA,UACEE,MADF,SACEA,MADF;AAAA,UAEEiJ,WAFF,SAEEA,WAFF;AAAA,UAGEhJ,QAHF,SAGEA,QAHF;AAAA,UAIEiJ,aAJF,SAIEA,aAJF;AAAA,UAKEnH,IALF,SAKEA,IALF;AAAA,UAMEoH,mBANF,SAMEA,mBANF;AAAA,UAOEC,SAPF,SAOEA,SAPF;AAAA,UAQEC,QARF,SAQEA,QARF;AAAA,UASEC,kBATF,SASEA,kBATF;AAAA,UAUElJ,SAVF,SAUEA,SAVF;AAAA,UAWEC,iBAXF,SAWEA,iBAXF;AAAA,UAYEyH,QAZF,SAYEA,QAZF;;AAeA,UAAI,CAAC9H,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED,kBASIA,MAAM,IAAI,EATd;AAAA,UACEuJ,QADF,SACEA,QADF;AAAA,UAEE1B,IAFF,SAEEA,IAFF;AAAA,UAGE2B,MAHF,SAGEA,MAHF;AAAA,UAIErJ,SAJF,SAIEA,SAJF;AAAA,UAKEyI,YALF,SAKEA,YALF;AAAA,UAMEnJ,cANF,SAMEA,cANF;AAAA,UAOEgK,UAPF,SAOEA,UAPF;AAAA,4BAQExB,GARF;;AAAA,yCAQwB,EARxB;AAAA,UAQSC,IART,aAQSA,IART;AAAA,UAQewB,IARf,aAQeA,IARf;AAUA,UAAMC,WAAW,GAAG,CAACpJ,WAAW,IAAK2H,IAAI,KAAK,MAAT,IAAmBwB,IAAI,KAAK,YAA7C,KAA+DH,QAA/D,IAA2E1B,IAA/F;AACA,UAAM+B,aAAa,GAAG,yBAAQzJ,SAAR,CAAtB;AACA,UAAM0J,uBAAuB,GAAG,CAACD,aAAD,IAAkBX,WAAlB,IAAiCA,WAAW,CAACA,WAAZ,KAA4B,SAA7F;AACA,UAAMa,kBAAkB,GAAG7J,QAAQ,IAAIgJ,WAAvC;AACA,UAAMzJ,cAAc,GAAGT,sBAAsB,CAAC0K,UAAD,CAA7C;AACA,UAAMtH,OAAO,GAAG8G,WAAW,IAAIA,WAAW,CAAC9G,OAA3C;AACA,UAAM4H,WAAW,GAAGlK,gBAAgB,CAACC,KAAD,EAAQ,KAAKC,KAAb,CAAhB,IAAuC,EAA3D;AACA,UAAMiK,QAAQ,GAAG/J,QAAQ,IAAI,CAACgJ,WAA9B;AACA,UAAMgB,gBAAgB,GAAG7J,SAAS,IAAI,CAACC,iBAAvC;;AAEA,UAAM6J,SAAS,gBACb;AAAK,QAAA,SAAS,EAAEhJ,OAAO,CAACiJ;AAAxB,sBACE,gCAAC,aAAD,CAAI,MAAJ;AACE,QAAA,SAAS,EAAEjJ,OAAO,UADpB;AAEE,QAAA,GAAG,EAAE,aAACwE,QAAD;AAAA,iBAAe,MAAI,CAACA,QAAL,GAAgBA,QAAQ,IAAI,MAAI,CAACA,QAAhD;AAAA,SAFP;AAGE,QAAA,KAAK,EAAEqE,WAHT;AAIE,QAAA,gBAAgB,EAAE,KAAKK,eAJzB;AAKE,QAAA,YAAY,EAAE,KAAKC,YALrB;AAME,QAAA,QAAQ,EAAE,KAAKC,QANjB;AAOE,QAAA,eAAe,EAAE,KAAKnG,eAPxB;AAQE,QAAA,MAAM,EAAE,KAAKoG;AARf,QADF,CADF;;AAeA,UAAMC,UAAU,gBACd;AAAK,QAAA,SAAS,EAAEtJ,OAAO,CAACuJ;AAAxB,SACGvC,IAAI,KAAK,QAAT,iBAAqB;AAAI,QAAA,SAAS,EAAEhH,OAAO,CAACkC;AAAvB,2CADxB,EAGG4G,QAAQ,IACPb,mBADD,IAEC,uBAAQA,mBAAR,CAFD,KAGE,CAACG,kBAAD,gBACC,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAEpI,OAAO,CAACwJ,WADrB;AAEE,QAAA,MAAM,EAAE;AAAEC,UAAAA,MAAM,EAAE,2BAAV;AAAuCC,UAAAA,OAAO,EAAE;AAAhD;AAFV,sBAIE;AAAK,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAE1B;AAAV;AAA9B,QAJF,CADD,gBAQC;AAAK,QAAA,uBAAuB,EAAE;AAAE0B,UAAAA,MAAM,EAAE1B;AAAV;AAA9B,QAXH,CAHH,EAiBGK,MAAM,iBACL;AAAK,QAAA,SAAS,EAAEtI,OAAO,CAAC4J;AAAxB,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEtB;AAAvB,QADF,CAlBJ,EAuBGS,gBAAgB,GACfC,SADe,gBAGf,gCAAC,kBAAD;AAAU;AAAV,sBACE;AAAK,QAAA,SAAS,EAAEhJ,OAAO,CAAC6J,uBAAxB;AAAiD,QAAA,QAAQ,EAAE;AAA3D,SACGnC,YAAY,KAAKoC,qBAAcC,MAA/B,iBACC,gCAAC,+BAAD;AACE,QAAA,sBAAsB,EAAE,KAAKC,sBAD/B;AAEE,QAAA,WAAW,EAAE3K,WAFf;AAGE,QAAA,aAAa,EAAEqJ,aAHjB;AAIE,QAAA,KAAK,EAAE9J,KAJT;AAKE,QAAA,OAAO,EAAEa,OALX;AAME,QAAA,eAAe,EAAE,KAAKwD,eANxB;AAOE,QAAA,UAAU,EAAE,CAAC,CAACH;AAPhB,QAFJ,EAaG4E,YAAY,KAAKoC,qBAAcG,QAA/B,iBACC;AACE,QAAA,GAAG,EAAErE,mBADP;AAEE,QAAA,SAAS,EAAE,4BAAG5F,OAAO,CAAChB,UAAX,mDACRgB,OAAO,CAACkB,SADA,EACY,CAACwH,aAAD,IAAkB,CAACzH,OAAnB,IAA8B,CAAC5B,WAD3C,yCAERW,OAAO,CAACiB,OAFA,EAEU,CAACyH,aAAD,KAAmBzH,OAAO,IAAI5B,WAA9B,CAFV,yCAGRW,OAAO,CAACkK,eAHA,EAGkB,CAACxB,aAAD,IAAkB3J,QAAlB,IAA8BgJ,WAA9B,IAA6C,CAAClH,IAHhE,yCAIRb,OAAO,CAACmK,kBAJA,EAIqB9K,WAJrB,yCAKRW,OAAO,CAACoK,YALA,EAKelL,SAAS,IAAIC,iBAL5B;AAFb,sBAUE,gCAAC,mBAAD;AACE,QAAA,GAAG,EAAE,aAACyI,KAAD;AAAA,iBAAS,MAAI,CAACyC,aAAL,CAAmBzC,KAAnB,CAAT;AAAA,SADP;AAEE,QAAA,eAAe,EAAE,CAFnB;AAGE,QAAA,WAAW,MAHb;AAIE,QAAA,IAAI,EAAE,CAAC,CAAC9E,iBAJV;AAKE,QAAA,OAAO,EAAE;AACPwH,UAAAA,OAAO,EAAEtK,OAAO,CAACuK,aADV;AAEPC,UAAAA,MAAM,EAAExK,OAAO,CAACyK;AAFT,SALX;AASE,QAAA,WAAW,EAAE;AACXC,UAAAA,SAAS,EAAE,CAAA9E,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAE+E,OAArB,KAAgCC,SADhC;AAEXC,UAAAA,SAAS,EAAE,cAFA;AAGXC,UAAAA,SAAS,EAAE;AACTC,YAAAA,eAAe,EAAE;AACfC,cAAAA,OAAO,EAAE,IADM;AAEfC,cAAAA,iBAAiB,EAAE;AAFJ,aADR;AAKTC,YAAAA,IAAI,EAAE;AACJF,cAAAA,OAAO,EAAE;AADL;AALG;AAHA,SATf;AAsBE,QAAA,KAAK,EAAE9K,MAAM,CAACC,IAAP,CAAYV,OAAO,CAACC,OAApB,EAA6B3B,GAA7B,CACL,UAACsC,QAAD;AAAA,iBACGA,QAAQ,KAAKyC,iBAAb,IAAkC,EAAEzD,WAAW,IAAIN,QAAjB,CAAlC,iBACC;AACE,2BAAa,IADf;AAEE,YAAA,GAAG,EAAEsB,QAFP;AAGE,YAAA,SAAS,EAAEL,OAAO,CAACmL,iBAHrB;AAIE,YAAA,KAAK,EAAE;AACL;AACAC,cAAAA,KAAK,EAAE/M,cAAc,CAACC,cAAD,EAAiBC,cAAjB;AAFhB;AAJT,0BASE,gCAAC,2BAAD;AACE,YAAA,cAAc,EAAED,cADlB;AAEE,YAAA,IAAI,EAAEC,cAAc,IAAIf,sBAF1B;AAGE,YAAA,OAAO,EAAE,MAAI,CAAC6N;AAHhB,YATF,CADF,IAiBA,IAlBF;AAAA,SADK;AAtBT,sBA4CE,gCAAC,aAAD,CAAI,MAAJ;AACE,QAAA,SAAS,EAAErL,OAAO,UADpB;AAEE,QAAA,GAAG,EAAE,aAACwE,QAAD;AAAA,iBAAe,MAAI,CAACA,QAAL,GAAgBA,QAAQ,IAAI,MAAI,CAACA,QAAhD;AAAA,SAFP;AAGE,QAAA,KAAK,EAAEqE,WAHT;AAIE,QAAA,gBAAgB,EAAE,KAAKK,eAJzB;AAKE,QAAA,YAAY,EAAE,KAAKC,YALrB;AAME,QAAA,QAAQ,EAAE,KAAKC,QANjB;AAOE,QAAA,eAAe,EAAE,KAAKnG,eAPxB;AAQE,QAAA,MAAM,EAAE,KAAKoG;AARf,QA5CF,CAVF,CAdJ,CADF,CA1BJ,EAgHGP,QAAQ,IAAIL,WAAZ,iBACC;AAAK,QAAA,SAAS,EAAEzI,OAAO,CAAC2G,IAAxB;AAA8B,QAAA,uBAAuB,EAAE;AAAEgD,UAAAA,MAAM,mCAA4BhD,IAA5B;AAAR;AAAvD,QAjHJ,EAoHGmC,QAAQ,IACPZ,SADD,IAEC,uBAAQA,SAAR,CAFD,KAGE,CAACE,kBAAD,gBACC,gCAAC,qBAAD;AAAa,QAAA,MAAM,EAAE;AAAEqB,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC;AAArB,sBACE;AAAK,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEzB;AAAV;AAA9B,QADF,CADD,gBAKC;AAAK,QAAA,uBAAuB,EAAE;AAAEyB,UAAAA,MAAM,EAAEzB;AAAV;AAA9B,QARH,CApHH,CADF;;AAkIA,UACEU,kBAAkB,KACjBD,uBAAuB,IACrBV,mBAAmB,IAAI,uBAAQA,mBAAR,CADzB,IAEEC,SAAS,IAAI,uBAAQA,SAAR,CAFf,IAGCC,QAJgB,CADpB,EAME;AACA,4BACE,gCAAC,kBAAD;AAAU,UAAA,aAAa,EAAEH;AAAzB,wBACE,gCAAC,mBAAD;AACE,UAAA,WAAW,MADb;AAEE,UAAA,eAAe,EAAE,CAFnB;AAGE,UAAA,OAAO,EAAE;AACPsC,YAAAA,OAAO,EAAEtK,OAAO,CAACsK,OADV;AAEPE,YAAAA,MAAM,EAAExK,OAAO,CAACsL;AAFT,WAHX;AAOE,UAAA,KAAK,eACH,0DACE;AAAK,YAAA,SAAS,EAAEtL,OAAO,CAACuJ;AAAxB,aACGZ,uBAAuB,iBACtB,gCAAC,wCAAD;AACE,YAAA,QAAQ,EAAE/B,QADZ;AAEE,YAAA,SAAS,EAAE5G,OAAO,CAACuL,MAFrB;AAGE,YAAA,IAAI,MAHN;AAIE,YAAA,OAAO,EAAElM,WAJX;AAKE,YAAA,QAAQ,EAAE,KAAKmM;AALjB,YAFJ,CADF,EAaGvD,mBAAmB,IAAI,uBAAQA,mBAAR,CAAvB,iBACC,gCAAC,qBAAD;AACE,YAAA,SAAS,EAAEjI,OAAO,CAACwJ,WADrB;AAEE,YAAA,GAAG,EAAC,kCAFN;AAGE,YAAA,MAAM,EAAE;AACNC,cAAAA,MAAM,EAAE,2BADF;AAENC,cAAAA,OAAO,EAAE;AAFH;AAHV,0BAQE,gCAAC,uBAAD;AAAe,YAAA,MAAM,EAAEzB;AAAvB,YARF,CAdJ,EAyBGQ,WAAW,IAAI,uBAAQ9B,IAAR,CAAf,iBACC,gCAAC,qBAAD;AACE,YAAA,SAAS,EAAE3G,OAAO,CAACwJ,WADrB;AAEE,YAAA,GAAG,EAAC,kBAFN;AAGE,YAAA,MAAM,EAAE;AACNC,cAAAA,MAAM,EAAEtM,UAAU,CAAC0J,CAAX,CAAa,iBAAb,EAAgC;AAAEC,gBAAAA,GAAG,EAAEF;AAAP,eAAhC,CADF;AAEN8C,cAAAA,OAAO,EAAEvM,UAAU,CAAC0J,CAAX,CAAa,iBAAb,EAAgC;AAAEC,gBAAAA,GAAG,EAAEF;AAAP,eAAhC;AAFH;AAHV,0BAQE,gCAAC,uBAAD;AAAe,YAAA,MAAM,EAAED;AAAvB,YARF,CA1BJ,EAsCGuB,SAAS,IAAI,uBAAQA,SAAR,CAAb,iBACC,gCAAC,qBAAD;AACE,YAAA,SAAS,EAAElI,OAAO,CAACwJ,WADrB;AAEE,YAAA,GAAG,EAAC,uBAFN;AAGE,YAAA,MAAM,EAAE;AACNC,cAAAA,MAAM,EAAE,gBADF;AAENC,cAAAA,OAAO,EAAE;AAFH;AAHV,0BAQE,gCAAC,uBAAD;AAAe,YAAA,MAAM,EAAExB;AAAvB,YARF,CAvCJ,EAmDGC,QAAQ,iBAAI,gCAAC,kBAAD;AAAU,YAAA,WAAW,EAAEJ,WAAW,CAACA,WAAnC;AAAgD,YAAA,QAAQ,EAAEI;AAA1D,YAnDf;AARJ,wBA+DE;AAAK,UAAA,SAAS,EAAEnI,OAAO,CAACyL,aAAxB;AAAuC,UAAA,GAAG,EAAE,aAACC,CAAD;AAAA,mBAAQ,MAAI,CAACzL,IAAL,GAAYyL,CAAC,IAAI,MAAI,CAACzL,IAA9B;AAAA;AAA5C,WACGqJ,UADH,CA/DF,CADF,CADF;AAuED;;AAED,0BACE,gCAAC,kBAAD;AAAU,QAAA,aAAa,EAAEtB,aAAzB;AAAwC,QAAA,SAAS,EAAEhI,OAAO,CAACyL,aAA3D;AAA0E,QAAA,GAAG,EAAE,aAACC,CAAD;AAAA,iBAAQ,MAAI,CAACzL,IAAL,GAAYyL,CAAC,IAAI,MAAI,CAACzL,IAA9B;AAAA;AAA/E,SACGqJ,UADH,CADF;AAKD;;;EAvtBuBzD,kBAAM8F,S;;;iCAAnB7L,I,eACQ;AACjBE,EAAAA,OAAO,EAAE4L,sBAAUC,MADF;AAEjBpM,EAAAA,OAAO,EAAEmM,sBAAUC,MAAV,CAAiBC,UAFT;AAGjB3H,EAAAA,eAAe,EAAEyH,sBAAUG,IAHV;AAIjBnN,EAAAA,KAAK,EAAEgN,sBAAUC,MAAV,CAAiBC;AAJP,C;;AAytBrB,IAAME,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBR,IAAAA,aAAa,EAAE;AACbS,MAAAA,KAAK,EAAEA,gBAAM7F,IAAN,EADM;AAEb8F,MAAAA,eAAe,EAAED,gBAAME,UAAN,EAFJ;AAGbC,MAAAA,OAAO,EAAE;AAHI,KADU;AAMzB/B,IAAAA,OAAO,EAAE;AACP8B,MAAAA,UAAU,YAAKF,gBAAMI,YAAN,EAAL,gBADH;AAEPJ,MAAAA,KAAK,EAAEA,gBAAM7F,IAAN,EAFA;AAGPkG,MAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAHvB;AAIPC,MAAAA,MAAM,sBAAeR,gBAAMS,SAAN,EAAf,CAJC;AAKPC,MAAAA,QAAQ,EAAE,MALH;AAMP,qCAA+B;AAC7B,2BAAmB;AACjBT,UAAAA,eAAe,EAAE;AADA;AADU;AANxB,KANgB;AAkBzBb,IAAAA,aAAa,EAAE;AACbuB,MAAAA,OAAO,EAAE;AADI,KAlBU;AAqBzBtC,IAAAA,aAAa,EAAE;AACbqC,MAAAA,QAAQ,EAAE,SADG;AAEbR,MAAAA,UAAU,EAAE,aAFC;AAGbhB,MAAAA,KAAK,EAAE,OAHM;AAIb0B,MAAAA,SAAS,EAAE,CAJE;AAKbC,MAAAA,UAAU,EAAE;AALC,KArBU;AA4BzBtC,IAAAA,mBAAmB,EAAE;AACnB2B,MAAAA,UAAU,EAAE,aADO;AAEnBhB,MAAAA,KAAK,EAAE,OAFY;AAGnByB,MAAAA,OAAO,EAAE;AAHU,KA5BI;AAiCzBjD,IAAAA,eAAe,EAAE;AACfoD,MAAAA,YAAY,EAAEf,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AADpB,KAjCQ;AAoCzBlD,IAAAA,IAAI,EAAE;AACJ6B,MAAAA,KAAK,EAAE,MADH;AAEJ6B,MAAAA,QAAQ,EAAE,UAFN;AAGJd,MAAAA,eAAe,EAAED,gBAAME,UAAN,EAHb;AAIJF,MAAAA,KAAK,EAAEA,gBAAM7F,IAAN;AAJH,KApCmB;AA0CzB6G,IAAAA,KAAK,EAAE;AACLN,MAAAA,QAAQ,EAAE,QADL;AAELP,MAAAA,OAAO,EAAE,OAFJ;AAGLS,MAAAA,SAAS,EAAEb,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAH3B;AAILO,MAAAA,YAAY,EAAEf,KAAK,CAACO,OAAN,CAAcC;AAJvB,KA1CkB;AAgDzB9F,IAAAA,IAAI,EAAE;AACJwG,MAAAA,aAAa,EAAElB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AADhC,KAhDmB;AAmDzBjD,IAAAA,WAAW,EAAE;AACXwD,MAAAA,YAAY,EAAEf,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AADxB,KAnDY;AAsDzBtB,IAAAA,iBAAiB,EAAE;AACjBiC,MAAAA,MAAM,EAAE,EADS;AAEjB;AACA;AACAC,MAAAA,QAAQ,EAAE,OAJO;AAKjBP,MAAAA,SAAS,EAAEb,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AALf,KAtDM;AA6DzBzN,IAAAA,UAAU,EAAE;AACVsO,MAAAA,QAAQ,EAAE,aADA;AAEV,2BAAqB;AACnB,8BAAsB;AACpB,oCAA0B;AACxBD,YAAAA,QAAQ,EAAE,MADc;AAExBE,YAAAA,MAAM,EAAGtB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAtB,GAA2B,CAFX;AAGxBF,YAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AAHN;AADN,SADH;AAQnB,iBAAS;AACPe,UAAAA,GAAG,EAAE;AADE;AARU;AAFX,KA7Da;AA4EzB,cAAQ;AACN,4BAAsB;AACpB,kCAA0B;AACxBC,UAAAA,WAAW,EAAEvB,gBAAM7F,IAAN;AADW;AADN;AADhB,KA5EiB;AAmFzBwD,IAAAA,uBAAuB,EAAE;AACvBoD,MAAAA,QAAQ,EAAE,UADa;AAEvB,+BAAyB;AACvBP,QAAAA,MAAM,EAAE,iBADe;AAEvBH,QAAAA,OAAO,EAAE;AAFc,OAFF;AAMvB,qCAA+B;AAC7BF,QAAAA,OAAO,EAAE;AADoB,OANR;AASvB,oCAA8B;AAC5BA,QAAAA,OAAO,EAAE;AADmB,OATP;AAYvB,uCAAiC;AAC/BgB,QAAAA,QAAQ,EAAE,QADqB;AAE/B,eAAO;AACLK,UAAAA,UAAU,EAAE;AADP,SAFwB;AAK/B,oBAAY;AACVF,UAAAA,GAAG,EAAE,QADK;AAEVG,UAAAA,IAAI,EAAE;AAFI,SALmB;AAS/B,mBAAW;AACTH,UAAAA,GAAG,EAAE,QADI;AAETI,UAAAA,KAAK,EAAE;AAFE,SAToB;AAa/B,4BAAoB;AAClBJ,UAAAA,GAAG,EAAE;AADa;AAbW,OAZV;AA6BvB,wCAAkC;AAChC,oBAAY;AACVA,UAAAA,GAAG,EAAE,QADK;AAEVI,UAAAA,KAAK,EAAE;AAFG;AADoB,OA7BX;AAmCvB,6BAAuB;AACrBC,QAAAA,SAAS,EAAE,sBADU;AAErBd,QAAAA,UAAU,EAAE;AAFS,OAnCA;AAuCvB,6BAAuB;AACrBW,QAAAA,UAAU,EAAE;AADS;AAvCA,KAnFA;AA8HzBxD,IAAAA,eAAe,EAAE;AACfwC,MAAAA,MAAM,EAAE;AADO,KA9HQ;AAiIzBvC,IAAAA,kBAAkB,EAAE;AAClBoC,MAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IADL;AAElBqB,MAAAA,aAAa,EAAE;AAFG,KAjIK;AAqIzB1D,IAAAA,YAAY,EAAE;AACZsC,MAAAA,MAAM,sBAAeR,gBAAMjL,OAAN,EAAf;AADM,KArIW;AAwIzBA,IAAAA,OAAO,EAAE;AACPwM,MAAAA,WAAW,YAAKvB,gBAAMjL,OAAN,EAAL;AADJ,KAxIgB;AA2IzBC,IAAAA,SAAS,EAAE;AACTuM,MAAAA,WAAW,YAAKvB,gBAAMhL,SAAN,EAAL;AADF,KA3Ic;AA8IzBgF,IAAAA,cAAc,EAAE;AACdqH,MAAAA,MAAM,YAAKtB,KAAK,CAACO,OAAN,CAAcC,IAAnB,kBADQ;AAEdJ,MAAAA,OAAO,EAAE,aAFK;AAGdK,MAAAA,MAAM,EAAE;AAHM,KA9IS;AAmJzBvG,IAAAA,aAAa,EAAE;AACb+F,MAAAA,KAAK,EAAE,MADM;AAEbE,MAAAA,UAAU,EAAEH,KAAK,CAAC8B,OAAN,CAAcC,IAAd,CAAmB,MAAnB,CAFC;AAGbpB,MAAAA,QAAQ,EAAE,mBAHG;AAIbL,MAAAA,OAAO,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAA1B,kBAJM;AAKbJ,MAAAA,OAAO,EAAE,MALI;AAMb4B,MAAAA,UAAU,EAAE,QANC;AAObC,MAAAA,cAAc,EAAE,QAPH;AAQbC,MAAAA,WAAW,sBAAejC,gBAAMnN,QAAN,EAAf,gBARE;AASbqP,MAAAA,UAAU,EAAE,CATC;AAUbC,MAAAA,QAAQ,EAAE,CAVG;AAWbC,MAAAA,SAAS,EAAE,MAXE,CAWM;;AAXN,KAnJU;AAgKzB/C,IAAAA,MAAM,EAAE;AACNW,MAAAA,KAAK,EAAEA,gBAAM7F,IAAN,EADD;AAEN2G,MAAAA,YAAY,EAAEf,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AAF7B,KAhKiB;AAoKzBrG,IAAAA,SAAS,EAAE;AACT8F,MAAAA,KAAK,EAAEA,gBAAM7F,IAAN,EADE;AAET8F,MAAAA,eAAe,EAAED,gBAAME,UAAN,EAFR;AAGTG,MAAAA,OAAO,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAA1B,kBAHE;AAITJ,MAAAA,OAAO,EAAE,MAJA;AAKT4B,MAAAA,UAAU,EAAE,QALH;AAMTC,MAAAA,cAAc,EAAE,QANP;AAOTG,MAAAA,QAAQ,EAAE,CAPD;AAOI;AACb,2BAAqB;AACnB,6BAAqB;AACnB,4BAAkB;AAChBhC,YAAAA,OAAO,EAAE;AADO;AADC;AADF;AARZ,KApKc;AAoLzBpD,IAAAA,cAAc,EAAE;AACd+D,MAAAA,YAAY,EAAEf,KAAK,CAACO,OAAN,CAAcC,IADd;AAEd8B,MAAAA,aAAa,EAAE;AAFD,KApLS;AAwLzBrM,IAAAA,MAAM,EAAE;AACN+K,MAAAA,QAAQ,EAAE,UADJ;AAENU,MAAAA,IAAI,EAAE,UAFA;AAGNH,MAAAA,GAAG,EAAE,MAHC;AAINpC,MAAAA,KAAK,EAAE,KAJD;AAKNoD,MAAAA,MAAM,EAAE,KALF;AAMNC,MAAAA,QAAQ,EAAE;AANJ;AAxLiB,GAAZ;AAAA,CAAf;;eAkMe,wBAAWzC,MAAX,EAAmBlM,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Feedback, Collapsible, Readable, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression?.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType) {\n this.updateAria();\n }\n }\n\n updateAria = () => {\n const { classes } = this.props;\n\n if (this.root) {\n // Update aria-hidden for .mq-selectable elements\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n selectableElements.forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n\n // Update aria-label for textarea elements and add aria-describedby\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach((elem, index) => {\n elem.setAttribute('aria-label', 'Enter answer.');\n\n // Create a unique id for each instructions element\n const instructionsId = `instructions-${index}`;\n\n // Find the parent element that contains the textarea\n const parent = elem.closest('.mq-textarea');\n\n if (parent) {\n // Create or find the instructions element within the parent\n let instructionsElement = parent.querySelector(`#${instructionsId}`);\n\n if (!instructionsElement) {\n instructionsElement = document.createElement('span');\n instructionsElement.id = instructionsId;\n instructionsElement.className = classes.srOnly;\n instructionsElement.textContent =\n 'This field supports both keypad and keyboard input. Use the keyboard to access and interact with the on-screen math keypad, which accepts LaTeX markup. Use the down arrow key to open the keypad and navigate its buttons. Use the escape key to close the keypad and return to the input field.';\n parent.insertBefore(instructionsElement, elem);\n }\n\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown = (event, id) => {\n const isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';\n const isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';\n\n if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id });\n this.onSubFieldFocus(id)\n }\n\n if (event.key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n } else if ( event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus = (id) => {\n const handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n this.handleEvent = handleEvent;\n\n document.addEventListener('keydown', handleEvent);\n document.addEventListener('click', handleEvent);\n document.addEventListener('touchstart', handleEvent);\n };\n\n cleanupKeyDownListener = () => {\n if (this.handleEvent) {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\n this.handleEvent = null;\n }\n };\n\n componentWillUnmount() {\n if (this.cleanupKeyDownListener) {\n this.cleanupKeyDownListener();\n }\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n 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\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\n // }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n extraCSSRules,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer} tabIndex={0}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n ref={tooltipContainerRef}\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n PopperProps={{\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'body',\n },\n flip: {\n enabled: true,\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n feedback)\n ) {\n return (\n <UiLayout extraCSSRules={extraCSSRules}>\n <Tooltip\n interactive\n enterTouchDelay={0}\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n </UiLayout>\n );\n }\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '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-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.4em',\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-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n flexShrink: 0,\n flexGrow: 0,\n flexBasis: 'auto', // take only the space needed for content + padding\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexGrow: 1, // take all the remaining space\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","selectableElements","querySelectorAll","elem","setAttribute","textareaElements","index","instructionsId","parent","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","setTimeout","keypadElement","firstButton","focus","event","isAnswerInputFocused","activeElement","getAttribute","isClickOrTouchEvent","type","activeAnswerBlock","cleanupKeyDownListener","setState","onSubFieldFocus","focusFirstKeypadElement","handleEvent","handleKeyDown","addEventListener","removeEventListener","response","callOnSessionChange","data","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","offsetParent","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","tooltipContainerRef","React","createRef","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","note","language","t","lng","env","mode","countResponseOccurrences","updateAria","newAnswers","nextState","sameModel","sameState","prevProps","prevState","prevResponseType","responseType","currentResponseType","ref","div","firstChild","correctness","extraCSSRules","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onBlur","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","container","current","undefined","placement","modifiers","preventOverflow","enabled","boundariesElement","flip","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","domNode","ReactDOM","findDOMNode","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","marginBottom","position","title","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","palette","grey","alignItems","justifyContent","borderRight","flexShrink","flexGrow","flexBasis","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Feedback, Collapsible, Readable, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport ReactDOM from 'react-dom';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression?.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType) {\n this.updateAria();\n }\n }\n\n updateAria = () => {\n const { classes } = this.props;\n\n if (this.root) {\n // Update aria-hidden for .mq-selectable elements\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n selectableElements.forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n\n // Update aria-label for textarea elements and add aria-describedby\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach((elem, index) => {\n elem.setAttribute('aria-label', 'Enter answer.');\n\n // Create a unique id for each instructions element\n const instructionsId = `instructions-${index}`;\n\n // Find the parent element that contains the textarea\n const parent = elem.closest('.mq-textarea');\n\n if (parent) {\n // Create or find the instructions element within the parent\n let instructionsElement = parent.querySelector(`#${instructionsId}`);\n\n if (!instructionsElement) {\n instructionsElement = document.createElement('span');\n instructionsElement.id = instructionsId;\n instructionsElement.className = classes.srOnly;\n instructionsElement.textContent =\n 'This field supports both keypad and keyboard input. Use the keyboard to access and interact with the on-screen math keypad, which accepts LaTeX markup. Use the down arrow key to open the keypad and navigate its buttons. Use the escape key to close the keypad and return to the input field.';\n parent.insertBefore(instructionsElement, elem);\n }\n\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown = (event, id) => {\n const isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';\n const isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';\n\n if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id });\n this.onSubFieldFocus(id)\n }\n\n if (event.key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n } else if ( event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus = (id) => {\n const handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n this.handleEvent = handleEvent;\n\n document.addEventListener('keydown', handleEvent);\n document.addEventListener('click', handleEvent);\n document.addEventListener('touchstart', handleEvent);\n };\n\n cleanupKeyDownListener = () => {\n if (this.handleEvent) {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\n this.handleEvent = null;\n }\n };\n\n componentWillUnmount() {\n if (this.cleanupKeyDownListener) {\n this.cleanupKeyDownListener();\n }\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n 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\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\n // }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n extraCSSRules,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer} tabIndex={0}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n ref={tooltipContainerRef}\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n PopperProps={{\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'body',\n },\n flip: {\n enabled: true,\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n feedback)\n ) {\n return (\n <UiLayout extraCSSRules={extraCSSRules}>\n <Tooltip\n interactive\n enterTouchDelay={0}\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n </UiLayout>\n );\n }\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.mainContainer} ref={(r) => {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(r);\n\n this.root = domNode || this.root;\n }}>\n {midContent}\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '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-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.4em',\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-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n flexShrink: 0,\n flexGrow: 0,\n flexBasis: 'auto', // take only the space needed for content + padding\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexGrow: 1, // take all the remaining space\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
@@ -1,5 +1,5 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@2.1.0/module/index.js";
2
- import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@5.1.0/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@2.1.1/module/index.js";
2
+ import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@5.1.1/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
5
5
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
package/module/element.js CHANGED
@@ -1,5 +1,5 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@2.1.0/module/index.js";
2
- import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@5.1.0/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@2.1.1/module/index.js";
2
+ import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@5.1.1/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
5
5
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -11774,6 +11774,7 @@ const {isEqual: isEqual} = _dll_lodash;
11774
11774
  const {isEmpty: isEmpty} = _dll_lodash;
11775
11775
  const cx = _dll_classnames;
11776
11776
  const MathQuill = _dll_pie_framework__mathquill;
11777
+ const ReactDOM$1 = _dll_react_dom;
11777
11778
  const {CorrectAnswerToggle: CorrectAnswerToggle} = _dll_pie_lib__pie_toolbox_correct_answer_toggle;
11778
11779
  const {mq: mq} = _dll_pie_lib__pie_toolbox_math_input;
11779
11780
  const {HorizontalKeypad: HorizontalKeypad} = _dll_pie_lib__pie_toolbox_math_input;
@@ -12265,7 +12266,7 @@ class Main extends React$1.Component {
12265
12266
  __self: this,
12266
12267
  __source: {
12267
12268
  fileName: _jsxFileName,
12268
- lineNumber: 577
12269
+ lineNumber: 578
12269
12270
  }
12270
12271
  }, React$1.createElement(mq.Static, {
12271
12272
  className: classes.static,
@@ -12279,7 +12280,7 @@ class Main extends React$1.Component {
12279
12280
  __self: this,
12280
12281
  __source: {
12281
12282
  fileName: _jsxFileName,
12282
- lineNumber: 578
12283
+ lineNumber: 579
12283
12284
  }
12284
12285
  }));
12285
12286
  const midContent = React$1.createElement('div', {
@@ -12287,14 +12288,14 @@ class Main extends React$1.Component {
12287
12288
  __self: this,
12288
12289
  __source: {
12289
12290
  fileName: _jsxFileName,
12290
- lineNumber: 592
12291
+ lineNumber: 593
12291
12292
  }
12292
12293
  }, mode === 'gather' && React$1.createElement('h2', {
12293
12294
  className: classes.srOnly,
12294
12295
  __self: this,
12295
12296
  __source: {
12296
12297
  fileName: _jsxFileName,
12297
- lineNumber: 593
12298
+ lineNumber: 594
12298
12299
  }
12299
12300
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12300
12301
  className: classes.collapsible,
@@ -12305,7 +12306,7 @@ class Main extends React$1.Component {
12305
12306
  __self: this,
12306
12307
  __source: {
12307
12308
  fileName: _jsxFileName,
12308
- lineNumber: 599
12309
+ lineNumber: 600
12309
12310
  }
12310
12311
  }, React$1.createElement('div', {
12311
12312
  dangerouslySetInnerHTML: {
@@ -12314,7 +12315,7 @@ class Main extends React$1.Component {
12314
12315
  __self: this,
12315
12316
  __source: {
12316
12317
  fileName: _jsxFileName,
12317
- lineNumber: 603
12318
+ lineNumber: 604
12318
12319
  }
12319
12320
  })) : React$1.createElement('div', {
12320
12321
  dangerouslySetInnerHTML: {
@@ -12323,28 +12324,28 @@ class Main extends React$1.Component {
12323
12324
  __self: this,
12324
12325
  __source: {
12325
12326
  fileName: _jsxFileName,
12326
- lineNumber: 606
12327
+ lineNumber: 607
12327
12328
  }
12328
12329
  })), prompt && React$1.createElement('div', {
12329
12330
  className: classes.promptContainer,
12330
12331
  __self: this,
12331
12332
  __source: {
12332
12333
  fileName: _jsxFileName,
12333
- lineNumber: 610
12334
+ lineNumber: 611
12334
12335
  }
12335
12336
  }, React$1.createElement(PreviewPrompt, {
12336
12337
  prompt: prompt,
12337
12338
  __self: this,
12338
12339
  __source: {
12339
12340
  fileName: _jsxFileName,
12340
- lineNumber: 611
12341
+ lineNumber: 612
12341
12342
  }
12342
12343
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
12343
12344
  false: true,
12344
12345
  __self: this,
12345
12346
  __source: {
12346
12347
  fileName: _jsxFileName,
12347
- lineNumber: 618
12348
+ lineNumber: 619
12348
12349
  }
12349
12350
  }, React$1.createElement('div', {
12350
12351
  className: classes.inputAndKeypadContainer,
@@ -12352,7 +12353,7 @@ class Main extends React$1.Component {
12352
12353
  __self: this,
12353
12354
  __source: {
12354
12355
  fileName: _jsxFileName,
12355
- lineNumber: 619
12356
+ lineNumber: 620
12356
12357
  }
12357
12358
  }, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
12358
12359
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -12365,7 +12366,7 @@ class Main extends React$1.Component {
12365
12366
  __self: this,
12366
12367
  __source: {
12367
12368
  fileName: _jsxFileName,
12368
- lineNumber: 621
12369
+ lineNumber: 622
12369
12370
  }
12370
12371
  }), responseType === ResponseTypes.advanced && React$1.createElement('div', {
12371
12372
  ref: tooltipContainerRef,
@@ -12379,7 +12380,7 @@ class Main extends React$1.Component {
12379
12380
  __self: this,
12380
12381
  __source: {
12381
12382
  fileName: _jsxFileName,
12382
- lineNumber: 633
12383
+ lineNumber: 634
12383
12384
  }
12384
12385
  }, React$1.createElement(Tooltip, {
12385
12386
  ref: ref => this.setTooltipRef(ref),
@@ -12413,7 +12414,7 @@ class Main extends React$1.Component {
12413
12414
  __self: this,
12414
12415
  __source: {
12415
12416
  fileName: _jsxFileName,
12416
- lineNumber: 668
12417
+ lineNumber: 669
12417
12418
  }
12418
12419
  }, React$1.createElement(HorizontalKeypad, {
12419
12420
  additionalKeys: additionalKeys,
@@ -12422,13 +12423,13 @@ class Main extends React$1.Component {
12422
12423
  __self: this,
12423
12424
  __source: {
12424
12425
  fileName: _jsxFileName,
12425
- lineNumber: 677
12426
+ lineNumber: 678
12426
12427
  }
12427
12428
  })) || null),
12428
12429
  __self: this,
12429
12430
  __source: {
12430
12431
  fileName: _jsxFileName,
12431
- lineNumber: 643
12432
+ lineNumber: 644
12432
12433
  }
12433
12434
  }, React$1.createElement(mq.Static, {
12434
12435
  className: classes.static,
@@ -12442,7 +12443,7 @@ class Main extends React$1.Component {
12442
12443
  __self: this,
12443
12444
  __source: {
12444
12445
  fileName: _jsxFileName,
12445
- lineNumber: 687
12446
+ lineNumber: 688
12446
12447
  }
12447
12448
  }))))), viewMode && displayNote && React$1.createElement('div', {
12448
12449
  className: classes.note,
@@ -12452,7 +12453,7 @@ class Main extends React$1.Component {
12452
12453
  __self: this,
12453
12454
  __source: {
12454
12455
  fileName: _jsxFileName,
12455
- lineNumber: 705
12456
+ lineNumber: 706
12456
12457
  }
12457
12458
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12458
12459
  labels: {
@@ -12462,7 +12463,7 @@ class Main extends React$1.Component {
12462
12463
  __self: this,
12463
12464
  __source: {
12464
12465
  fileName: _jsxFileName,
12465
- lineNumber: 712
12466
+ lineNumber: 713
12466
12467
  }
12467
12468
  }, React$1.createElement('div', {
12468
12469
  dangerouslySetInnerHTML: {
@@ -12471,7 +12472,7 @@ class Main extends React$1.Component {
12471
12472
  __self: this,
12472
12473
  __source: {
12473
12474
  fileName: _jsxFileName,
12474
- lineNumber: 713
12475
+ lineNumber: 714
12475
12476
  }
12476
12477
  })) : React$1.createElement('div', {
12477
12478
  dangerouslySetInnerHTML: {
@@ -12480,7 +12481,7 @@ class Main extends React$1.Component {
12480
12481
  __self: this,
12481
12482
  __source: {
12482
12483
  fileName: _jsxFileName,
12483
- lineNumber: 716
12484
+ lineNumber: 717
12484
12485
  }
12485
12486
  })));
12486
12487
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12489,7 +12490,7 @@ class Main extends React$1.Component {
12489
12490
  __self: this,
12490
12491
  __source: {
12491
12492
  fileName: _jsxFileName,
12492
- lineNumber: 729
12493
+ lineNumber: 730
12493
12494
  }
12494
12495
  }, React$1.createElement(Tooltip, {
12495
12496
  interactive: true,
@@ -12502,14 +12503,14 @@ class Main extends React$1.Component {
12502
12503
  __self: this,
12503
12504
  __source: {
12504
12505
  fileName: _jsxFileName,
12505
- lineNumber: 738
12506
+ lineNumber: 739
12506
12507
  }
12507
12508
  }, React$1.createElement('div', {
12508
12509
  className: classes.main,
12509
12510
  __self: this,
12510
12511
  __source: {
12511
12512
  fileName: _jsxFileName,
12512
- lineNumber: 739
12513
+ lineNumber: 740
12513
12514
  }
12514
12515
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12515
12516
  language: language,
@@ -12520,7 +12521,7 @@ class Main extends React$1.Component {
12520
12521
  __self: this,
12521
12522
  __source: {
12522
12523
  fileName: _jsxFileName,
12523
- lineNumber: 741
12524
+ lineNumber: 742
12524
12525
  }
12525
12526
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12526
12527
  className: classes.collapsible,
@@ -12532,14 +12533,14 @@ class Main extends React$1.Component {
12532
12533
  __self: this,
12533
12534
  __source: {
12534
12535
  fileName: _jsxFileName,
12535
- lineNumber: 752
12536
+ lineNumber: 753
12536
12537
  }
12537
12538
  }, React$1.createElement(PreviewPrompt, {
12538
12539
  prompt: teacherInstructions,
12539
12540
  __self: this,
12540
12541
  __source: {
12541
12542
  fileName: _jsxFileName,
12542
- lineNumber: 760
12543
+ lineNumber: 761
12543
12544
  }
12544
12545
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12545
12546
  className: classes.collapsible,
@@ -12555,14 +12556,14 @@ class Main extends React$1.Component {
12555
12556
  __self: this,
12556
12557
  __source: {
12557
12558
  fileName: _jsxFileName,
12558
- lineNumber: 764
12559
+ lineNumber: 765
12559
12560
  }
12560
12561
  }, React$1.createElement(PreviewPrompt, {
12561
12562
  prompt: note,
12562
12563
  __self: this,
12563
12564
  __source: {
12564
12565
  fileName: _jsxFileName,
12565
- lineNumber: 772
12566
+ lineNumber: 773
12566
12567
  }
12567
12568
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12568
12569
  className: classes.collapsible,
@@ -12574,14 +12575,14 @@ class Main extends React$1.Component {
12574
12575
  __self: this,
12575
12576
  __source: {
12576
12577
  fileName: _jsxFileName,
12577
- lineNumber: 777
12578
+ lineNumber: 778
12578
12579
  }
12579
12580
  }, React$1.createElement(PreviewPrompt, {
12580
12581
  prompt: rationale,
12581
12582
  __self: this,
12582
12583
  __source: {
12583
12584
  fileName: _jsxFileName,
12584
- lineNumber: 785
12585
+ lineNumber: 786
12585
12586
  }
12586
12587
  })), feedback && React$1.createElement(Feedback, {
12587
12588
  correctness: correctness.correctness,
@@ -12589,13 +12590,13 @@ class Main extends React$1.Component {
12589
12590
  __self: this,
12590
12591
  __source: {
12591
12592
  fileName: _jsxFileName,
12592
- lineNumber: 789
12593
+ lineNumber: 790
12593
12594
  }
12594
12595
  })),
12595
12596
  __self: this,
12596
12597
  __source: {
12597
12598
  fileName: _jsxFileName,
12598
- lineNumber: 730
12599
+ lineNumber: 731
12599
12600
  }
12600
12601
  }, React$1.createElement('div', {
12601
12602
  className: classes.mainContainer,
@@ -12603,18 +12604,21 @@ class Main extends React$1.Component {
12603
12604
  __self: this,
12604
12605
  __source: {
12605
12606
  fileName: _jsxFileName,
12606
- lineNumber: 793
12607
+ lineNumber: 794
12607
12608
  }
12608
12609
  }, midContent)));
12609
12610
  }
12610
12611
  return React$1.createElement(UiLayout, {
12611
12612
  extraCSSRules: extraCSSRules,
12612
12613
  className: classes.mainContainer,
12613
- ref: r => this.root = r || this.root,
12614
+ ref: r => {
12615
+ const domNode = ReactDOM$1.findDOMNode(r);
12616
+ this.root = domNode || this.root;
12617
+ },
12614
12618
  __self: this,
12615
12619
  __source: {
12616
12620
  fileName: _jsxFileName,
12617
- lineNumber: 802
12621
+ lineNumber: 803
12618
12622
  }
12619
12623
  }, midContent);
12620
12624
  }
@@ -4,11 +4,11 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "2.1.0"
7
+ "version": "2.1.1"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
11
- "version": "5.1.0"
11
+ "version": "5.1.1"
12
12
  }
13
13
  ]
14
14
  }
package/module/print.js CHANGED
@@ -1,5 +1,5 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@2.1.0/module/index.js";
2
- import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@5.1.0/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@2.1.1/module/index.js";
2
+ import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@5.1.1/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
5
5
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -11514,6 +11514,7 @@ const {isEqual: isEqual} = _dll_lodash;
11514
11514
  const {isEmpty: isEmpty} = _dll_lodash;
11515
11515
  const cx = _dll_classnames;
11516
11516
  const MathQuill = _dll_pie_framework__mathquill;
11517
+ const ReactDOM$1 = _dll_react_dom;
11517
11518
  const {CorrectAnswerToggle: CorrectAnswerToggle} = _dll_pie_lib__pie_toolbox_correct_answer_toggle;
11518
11519
  const {mq: mq} = _dll_pie_lib__pie_toolbox_math_input;
11519
11520
  const {HorizontalKeypad: HorizontalKeypad} = _dll_pie_lib__pie_toolbox_math_input;
@@ -12005,7 +12006,7 @@ class Main extends React$1.Component {
12005
12006
  __self: this,
12006
12007
  __source: {
12007
12008
  fileName: _jsxFileName,
12008
- lineNumber: 577
12009
+ lineNumber: 578
12009
12010
  }
12010
12011
  }, React$1.createElement(mq.Static, {
12011
12012
  className: classes.static,
@@ -12019,7 +12020,7 @@ class Main extends React$1.Component {
12019
12020
  __self: this,
12020
12021
  __source: {
12021
12022
  fileName: _jsxFileName,
12022
- lineNumber: 578
12023
+ lineNumber: 579
12023
12024
  }
12024
12025
  }));
12025
12026
  const midContent = React$1.createElement('div', {
@@ -12027,14 +12028,14 @@ class Main extends React$1.Component {
12027
12028
  __self: this,
12028
12029
  __source: {
12029
12030
  fileName: _jsxFileName,
12030
- lineNumber: 592
12031
+ lineNumber: 593
12031
12032
  }
12032
12033
  }, mode === 'gather' && React$1.createElement('h2', {
12033
12034
  className: classes.srOnly,
12034
12035
  __self: this,
12035
12036
  __source: {
12036
12037
  fileName: _jsxFileName,
12037
- lineNumber: 593
12038
+ lineNumber: 594
12038
12039
  }
12039
12040
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12040
12041
  className: classes.collapsible,
@@ -12045,7 +12046,7 @@ class Main extends React$1.Component {
12045
12046
  __self: this,
12046
12047
  __source: {
12047
12048
  fileName: _jsxFileName,
12048
- lineNumber: 599
12049
+ lineNumber: 600
12049
12050
  }
12050
12051
  }, React$1.createElement('div', {
12051
12052
  dangerouslySetInnerHTML: {
@@ -12054,7 +12055,7 @@ class Main extends React$1.Component {
12054
12055
  __self: this,
12055
12056
  __source: {
12056
12057
  fileName: _jsxFileName,
12057
- lineNumber: 603
12058
+ lineNumber: 604
12058
12059
  }
12059
12060
  })) : React$1.createElement('div', {
12060
12061
  dangerouslySetInnerHTML: {
@@ -12063,28 +12064,28 @@ class Main extends React$1.Component {
12063
12064
  __self: this,
12064
12065
  __source: {
12065
12066
  fileName: _jsxFileName,
12066
- lineNumber: 606
12067
+ lineNumber: 607
12067
12068
  }
12068
12069
  })), prompt && React$1.createElement('div', {
12069
12070
  className: classes.promptContainer,
12070
12071
  __self: this,
12071
12072
  __source: {
12072
12073
  fileName: _jsxFileName,
12073
- lineNumber: 610
12074
+ lineNumber: 611
12074
12075
  }
12075
12076
  }, React$1.createElement(PreviewPrompt, {
12076
12077
  prompt: prompt,
12077
12078
  __self: this,
12078
12079
  __source: {
12079
12080
  fileName: _jsxFileName,
12080
- lineNumber: 611
12081
+ lineNumber: 612
12081
12082
  }
12082
12083
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
12083
12084
  false: true,
12084
12085
  __self: this,
12085
12086
  __source: {
12086
12087
  fileName: _jsxFileName,
12087
- lineNumber: 618
12088
+ lineNumber: 619
12088
12089
  }
12089
12090
  }, React$1.createElement('div', {
12090
12091
  className: classes.inputAndKeypadContainer,
@@ -12092,7 +12093,7 @@ class Main extends React$1.Component {
12092
12093
  __self: this,
12093
12094
  __source: {
12094
12095
  fileName: _jsxFileName,
12095
- lineNumber: 619
12096
+ lineNumber: 620
12096
12097
  }
12097
12098
  }, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
12098
12099
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -12105,7 +12106,7 @@ class Main extends React$1.Component {
12105
12106
  __self: this,
12106
12107
  __source: {
12107
12108
  fileName: _jsxFileName,
12108
- lineNumber: 621
12109
+ lineNumber: 622
12109
12110
  }
12110
12111
  }), responseType === ResponseTypes.advanced && React$1.createElement('div', {
12111
12112
  ref: tooltipContainerRef,
@@ -12119,7 +12120,7 @@ class Main extends React$1.Component {
12119
12120
  __self: this,
12120
12121
  __source: {
12121
12122
  fileName: _jsxFileName,
12122
- lineNumber: 633
12123
+ lineNumber: 634
12123
12124
  }
12124
12125
  }, React$1.createElement(Tooltip, {
12125
12126
  ref: ref => this.setTooltipRef(ref),
@@ -12153,7 +12154,7 @@ class Main extends React$1.Component {
12153
12154
  __self: this,
12154
12155
  __source: {
12155
12156
  fileName: _jsxFileName,
12156
- lineNumber: 668
12157
+ lineNumber: 669
12157
12158
  }
12158
12159
  }, React$1.createElement(HorizontalKeypad, {
12159
12160
  additionalKeys: additionalKeys,
@@ -12162,13 +12163,13 @@ class Main extends React$1.Component {
12162
12163
  __self: this,
12163
12164
  __source: {
12164
12165
  fileName: _jsxFileName,
12165
- lineNumber: 677
12166
+ lineNumber: 678
12166
12167
  }
12167
12168
  })) || null),
12168
12169
  __self: this,
12169
12170
  __source: {
12170
12171
  fileName: _jsxFileName,
12171
- lineNumber: 643
12172
+ lineNumber: 644
12172
12173
  }
12173
12174
  }, React$1.createElement(mq.Static, {
12174
12175
  className: classes.static,
@@ -12182,7 +12183,7 @@ class Main extends React$1.Component {
12182
12183
  __self: this,
12183
12184
  __source: {
12184
12185
  fileName: _jsxFileName,
12185
- lineNumber: 687
12186
+ lineNumber: 688
12186
12187
  }
12187
12188
  }))))), viewMode && displayNote && React$1.createElement('div', {
12188
12189
  className: classes.note,
@@ -12192,7 +12193,7 @@ class Main extends React$1.Component {
12192
12193
  __self: this,
12193
12194
  __source: {
12194
12195
  fileName: _jsxFileName,
12195
- lineNumber: 705
12196
+ lineNumber: 706
12196
12197
  }
12197
12198
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12198
12199
  labels: {
@@ -12202,7 +12203,7 @@ class Main extends React$1.Component {
12202
12203
  __self: this,
12203
12204
  __source: {
12204
12205
  fileName: _jsxFileName,
12205
- lineNumber: 712
12206
+ lineNumber: 713
12206
12207
  }
12207
12208
  }, React$1.createElement('div', {
12208
12209
  dangerouslySetInnerHTML: {
@@ -12211,7 +12212,7 @@ class Main extends React$1.Component {
12211
12212
  __self: this,
12212
12213
  __source: {
12213
12214
  fileName: _jsxFileName,
12214
- lineNumber: 713
12215
+ lineNumber: 714
12215
12216
  }
12216
12217
  })) : React$1.createElement('div', {
12217
12218
  dangerouslySetInnerHTML: {
@@ -12220,7 +12221,7 @@ class Main extends React$1.Component {
12220
12221
  __self: this,
12221
12222
  __source: {
12222
12223
  fileName: _jsxFileName,
12223
- lineNumber: 716
12224
+ lineNumber: 717
12224
12225
  }
12225
12226
  })));
12226
12227
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12229,7 +12230,7 @@ class Main extends React$1.Component {
12229
12230
  __self: this,
12230
12231
  __source: {
12231
12232
  fileName: _jsxFileName,
12232
- lineNumber: 729
12233
+ lineNumber: 730
12233
12234
  }
12234
12235
  }, React$1.createElement(Tooltip, {
12235
12236
  interactive: true,
@@ -12242,14 +12243,14 @@ class Main extends React$1.Component {
12242
12243
  __self: this,
12243
12244
  __source: {
12244
12245
  fileName: _jsxFileName,
12245
- lineNumber: 738
12246
+ lineNumber: 739
12246
12247
  }
12247
12248
  }, React$1.createElement('div', {
12248
12249
  className: classes.main,
12249
12250
  __self: this,
12250
12251
  __source: {
12251
12252
  fileName: _jsxFileName,
12252
- lineNumber: 739
12253
+ lineNumber: 740
12253
12254
  }
12254
12255
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12255
12256
  language: language,
@@ -12260,7 +12261,7 @@ class Main extends React$1.Component {
12260
12261
  __self: this,
12261
12262
  __source: {
12262
12263
  fileName: _jsxFileName,
12263
- lineNumber: 741
12264
+ lineNumber: 742
12264
12265
  }
12265
12266
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12266
12267
  className: classes.collapsible,
@@ -12272,14 +12273,14 @@ class Main extends React$1.Component {
12272
12273
  __self: this,
12273
12274
  __source: {
12274
12275
  fileName: _jsxFileName,
12275
- lineNumber: 752
12276
+ lineNumber: 753
12276
12277
  }
12277
12278
  }, React$1.createElement(PreviewPrompt, {
12278
12279
  prompt: teacherInstructions,
12279
12280
  __self: this,
12280
12281
  __source: {
12281
12282
  fileName: _jsxFileName,
12282
- lineNumber: 760
12283
+ lineNumber: 761
12283
12284
  }
12284
12285
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12285
12286
  className: classes.collapsible,
@@ -12295,14 +12296,14 @@ class Main extends React$1.Component {
12295
12296
  __self: this,
12296
12297
  __source: {
12297
12298
  fileName: _jsxFileName,
12298
- lineNumber: 764
12299
+ lineNumber: 765
12299
12300
  }
12300
12301
  }, React$1.createElement(PreviewPrompt, {
12301
12302
  prompt: note,
12302
12303
  __self: this,
12303
12304
  __source: {
12304
12305
  fileName: _jsxFileName,
12305
- lineNumber: 772
12306
+ lineNumber: 773
12306
12307
  }
12307
12308
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12308
12309
  className: classes.collapsible,
@@ -12314,14 +12315,14 @@ class Main extends React$1.Component {
12314
12315
  __self: this,
12315
12316
  __source: {
12316
12317
  fileName: _jsxFileName,
12317
- lineNumber: 777
12318
+ lineNumber: 778
12318
12319
  }
12319
12320
  }, React$1.createElement(PreviewPrompt, {
12320
12321
  prompt: rationale,
12321
12322
  __self: this,
12322
12323
  __source: {
12323
12324
  fileName: _jsxFileName,
12324
- lineNumber: 785
12325
+ lineNumber: 786
12325
12326
  }
12326
12327
  })), feedback && React$1.createElement(Feedback, {
12327
12328
  correctness: correctness.correctness,
@@ -12329,13 +12330,13 @@ class Main extends React$1.Component {
12329
12330
  __self: this,
12330
12331
  __source: {
12331
12332
  fileName: _jsxFileName,
12332
- lineNumber: 789
12333
+ lineNumber: 790
12333
12334
  }
12334
12335
  })),
12335
12336
  __self: this,
12336
12337
  __source: {
12337
12338
  fileName: _jsxFileName,
12338
- lineNumber: 730
12339
+ lineNumber: 731
12339
12340
  }
12340
12341
  }, React$1.createElement('div', {
12341
12342
  className: classes.mainContainer,
@@ -12343,18 +12344,21 @@ class Main extends React$1.Component {
12343
12344
  __self: this,
12344
12345
  __source: {
12345
12346
  fileName: _jsxFileName,
12346
- lineNumber: 793
12347
+ lineNumber: 794
12347
12348
  }
12348
12349
  }, midContent)));
12349
12350
  }
12350
12351
  return React$1.createElement(UiLayout, {
12351
12352
  extraCSSRules: extraCSSRules,
12352
12353
  className: classes.mainContainer,
12353
- ref: r => this.root = r || this.root,
12354
+ ref: r => {
12355
+ const domNode = ReactDOM$1.findDOMNode(r);
12356
+ this.root = domNode || this.root;
12357
+ },
12354
12358
  __self: this,
12355
12359
  __source: {
12356
12360
  fileName: _jsxFileName,
12357
- lineNumber: 802
12361
+ lineNumber: 803
12358
12362
  }
12359
12363
  }, midContent);
12360
12364
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "8.2.1-next.3+db03ac747",
7
+ "version": "8.2.1-next.6+434e6f51d",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/mathquill": "^1.1.3",
16
16
  "@pie-framework/pie-player-events": "^0.1.0",
17
- "@pie-lib/pie-toolbox": "2.1.1",
17
+ "@pie-lib/pie-toolbox": "2.1.2",
18
18
  "classnames": "^2.2.5",
19
19
  "debug": "^4.1.1",
20
20
  "lodash": "^4.17.10",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "author": "",
26
26
  "license": "ISC",
27
- "gitHead": "db03ac7473960cedef2c83c79920e77db06f605d",
27
+ "gitHead": "434e6f51dd53d7ef82d4902be16af5618f68826b",
28
28
  "module": "src/index.js",
29
29
  "exports": {
30
30
  ".": "./src/index.js",