@pie-element/math-inline 7.6.1-next.7 → 7.7.1-next.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/configure/CHANGELOG.md +11 -0
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +11 -0
- package/controller/package.json +2 -2
- package/lib/main.js +23 -4
- package/lib/main.js.map +1 -1
- package/module/configure.js +1 -1
- package/module/element.js +50 -39
- package/module/index.html +1 -1
- package/module/manifest.json +2 -2
- package/module/print.html +1 -1
- package/module/print.js +50 -39
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.7.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@7.6.0...@pie-element/math-inline@7.7.0) (2024-03-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **math-inline:** add aria-label for textarea PD-2457 ([43471af](https://github.com/pie-framework/pie-elements/commit/43471af3c6f157b3ee6e36acd60d82cdfd357242))
|
|
17
|
+
* **math-inline:** refactor aria hidden and aria label PD-2448 & PD-2457 ([20b0621](https://github.com/pie-framework/pie-elements/commit/20b0621009b528f6141a1305b0c150e0b255945d))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
6
23
|
# [7.6.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@7.5.0...@pie-element/math-inline@7.6.0) (2024-03-07)
|
|
7
24
|
|
|
8
25
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@7.5.0...@pie-element/math-inline-configure@7.5.1) (2024-03-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [7.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@7.4.0...@pie-element/math-inline-configure@7.5.0) (2024-03-07)
|
|
7
18
|
|
|
8
19
|
|
package/configure/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-inline-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "7.5.
|
|
4
|
+
"version": "7.5.1",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -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": "1.8.
|
|
14
|
+
"@pie-lib/pie-toolbox": "1.8.4",
|
|
15
15
|
"classnames": "^2.2.5",
|
|
16
16
|
"debug": "^3.1.0",
|
|
17
17
|
"prop-types": "^15.6.2",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@6.3.0...@pie-element/math-inline-controller@6.3.1) (2024-03-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [6.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@6.2.2...@pie-element/math-inline-controller@6.3.0) (2024-03-04)
|
|
7
18
|
|
|
8
19
|
|
package/controller/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-inline-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "6.3.
|
|
4
|
+
"version": "6.3.1",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@pie-framework/math-validation": "^1.2.2",
|
|
13
|
-
"@pie-lib/pie-toolbox": "1.8.
|
|
13
|
+
"@pie-lib/pie-toolbox": "1.8.4",
|
|
14
14
|
"debug": "^3.1.0",
|
|
15
15
|
"lodash": "^4.17.15"
|
|
16
16
|
},
|
package/lib/main.js
CHANGED
|
@@ -175,12 +175,19 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
175
175
|
|
|
176
176
|
(0, _mathRendering.renderMath)(_this.root);
|
|
177
177
|
});
|
|
178
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "
|
|
178
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateAria", function () {
|
|
179
179
|
if (_this.root) {
|
|
180
|
+
// Update aria-hidden for .mq-selectable elements
|
|
180
181
|
var selectableElements = _this.root.querySelectorAll('.mq-selectable');
|
|
181
182
|
|
|
182
|
-
|
|
183
|
+
selectableElements.forEach(function (elem) {
|
|
183
184
|
return elem.setAttribute('aria-hidden', 'true');
|
|
185
|
+
}); // Update aria-label for textarea elements
|
|
186
|
+
|
|
187
|
+
var textareaElements = _this.root.querySelectorAll('textarea');
|
|
188
|
+
|
|
189
|
+
textareaElements.forEach(function (elem) {
|
|
190
|
+
elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
|
|
184
191
|
});
|
|
185
192
|
}
|
|
186
193
|
});
|
|
@@ -348,6 +355,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
348
355
|
}
|
|
349
356
|
}
|
|
350
357
|
}
|
|
358
|
+
}, {
|
|
359
|
+
key: "countResponseOccurrences",
|
|
360
|
+
value: function countResponseOccurrences(expression) {
|
|
361
|
+
var pattern = /\{\{response\}\}/g;
|
|
362
|
+
var matches = expression.match(pattern);
|
|
363
|
+
return matches ? matches.length : 0;
|
|
364
|
+
}
|
|
351
365
|
}, {
|
|
352
366
|
key: "UNSAFE_componentWillReceiveProps",
|
|
353
367
|
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
@@ -382,6 +396,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
382
396
|
});
|
|
383
397
|
}
|
|
384
398
|
|
|
399
|
+
if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {
|
|
400
|
+
setTimeout(function () {
|
|
401
|
+
return _this2.updateAria();
|
|
402
|
+
}, 100);
|
|
403
|
+
}
|
|
404
|
+
|
|
385
405
|
if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
|
|
386
406
|
var newAnswers = {};
|
|
387
407
|
var answers = this.state.session.answers;
|
|
@@ -417,7 +437,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
417
437
|
var _this3 = this;
|
|
418
438
|
|
|
419
439
|
this.handleAnswerBlockDomUpdate();
|
|
420
|
-
this.
|
|
440
|
+
this.updateAria();
|
|
421
441
|
setTimeout(function () {
|
|
422
442
|
return (0, _mathRendering.renderMath)(_this3.root);
|
|
423
443
|
}, 100);
|
|
@@ -426,7 +446,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
426
446
|
key: "componentDidUpdate",
|
|
427
447
|
value: function componentDidUpdate() {
|
|
428
448
|
this.handleAnswerBlockDomUpdate();
|
|
429
|
-
this.updateAriaHidden();
|
|
430
449
|
}
|
|
431
450
|
}, {
|
|
432
451
|
key: "setTooltipRef",
|
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","response","setState","callOnSessionChange","id","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","offsetParent","children","attributes","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","nextProps","nextConfig","note","language","t","lng","env","mode","newAnswers","nextState","sameModel","sameState","updateAriaHidden","setTimeout","ref","div","document","firstChild","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","srOnly","collapsible","hidden","visible","__html","content","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","title","marginBottom","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","alignItems","justifyContent","borderRight","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;AAEA,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,mHAuDU,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,qCAAW,MAAKX,IAAhB;AACD,KA9FkB;AAAA,yGAyKA,YAAM;AACvB,UAAI,MAAKA,IAAT,EAAe;AACb,YAAMmB,kBAAkB,GAAG,MAAKnB,IAAL,CAAUoB,gBAAV,CAA2B,gBAA3B,CAA3B;;AACA,SAACD,kBAAkB,IAAI,EAAvB,EAA2BhB,OAA3B,CAAmC,UAACkB,IAAD;AAAA,iBAAUA,IAAI,CAACC,YAAL,CAAkB,aAAlB,EAAiC,MAAjC,CAAV;AAAA,SAAnC;AACD;AACF,KA9KkB;AAAA,+FAgLV,YAAM,CAAE,CAhLE;AAAA,+GAkLM,UAACC,QAAD,EAAc;AACrC,YAAKC,QAAL,CAAc,UAAC5C,KAAD;AAAA,eAAY;AAAEY,UAAAA,OAAO,kCAAOZ,KAAK,CAACY,OAAb;AAAsB+B,YAAAA,QAAQ,EAARA;AAAtB;AAAT,SAAZ;AAAA,OAAd,EAAwE,MAAKE,mBAA7E;AACD,KApLkB;AAAA,wGAsLD,UAACC,EAAD,EAAQ;AACxB,YAAKF,QAAL,CAAc;AAAEG,QAAAA,iBAAiB,EAAED;AAArB,OAAd;AACD,KAxLkB;AAAA,mGA0LN,UAACE,IAAD,EAAU;AACrB,UAAI,CAACA,IAAL,EAAW;AACT;AACD;;AAED,UAAQC,IAAR,GAAwBD,IAAxB,CAAQC,IAAR;AAAA,UAAcjC,KAAd,GAAwBgC,IAAxB,CAAchC,KAAd;;AAEA,UAAIiC,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,QAAnC,EAA6C;AAC3C,eAAOD,IAAP;AACD,OAFD,MAEO,IAAIC,IAAI,KAAK,QAAb,EAAuB;AAC5B;AAASA,UAAAA,IAAI,EAAE;AAAf,WAA4BD,IAA5B;AACD,OAFM,MAEA,IAAIhC,KAAK,KAAK,OAAd,EAAuB;AAC5B,eAAO;AAAEiC,UAAAA,IAAI,EAAE;AAAR,SAAP;AACD,OAFM,MAEA;AACL,eAAO;AAAEA,UAAAA,IAAI,EAAE,OAAR;AAAiBjC,UAAAA,KAAK,EAALA;AAAjB,SAAP;AACD;AACF,KA1MkB;AAAA,iGA4MR,UAACkC,KAAD,EAAW;AACpB,YAAKA,KAAL,GAAaA,KAAb;AACD,KA9MkB;AAAA,gGAgNT,UAACF,IAAD,EAAU;AAClB,UAAMG,CAAC,GAAG,MAAKC,UAAL,CAAgBJ,IAAhB,CAAV;;AAEA,UAAIG,CAAC,CAACF,IAAF,KAAW,OAAf,EAAwB;AACtB,cAAKC,KAAL,CAAWG,KAAX;AACD,OAFD,MAEO,IAAIF,CAAC,CAACF,IAAF,KAAW,SAAf,EAA0B;AAC/B,YAAIK,KAAK,CAACC,OAAN,CAAcJ,CAAC,CAACnC,KAAhB,CAAJ,EAA4B;AAC1BmC,UAAAA,CAAC,CAACnC,KAAF,CAAQO,OAAR,CAAgB,UAACiC,EAAD,EAAQ;AACtB,kBAAKN,KAAL,CAAWO,GAAX,CAAeD,EAAf;AACD,WAFD;AAGD,SAJD,MAIO;AACL,gBAAKN,KAAL,CAAWO,GAAX,CAAeN,CAAC,CAACnC,KAAjB;AACD;AACF,OARM,MAQA,IAAImC,CAAC,CAACF,IAAF,KAAW,QAAf,EAAyB;AAC9B,cAAKC,KAAL,CAAWQ,SAAX,CAAqBP,CAAC,CAACnC,KAAvB;AACD,OAFM,MAEA;AACL,cAAKkC,KAAL,CAAW5D,KAAX,CAAiB6D,CAAC,CAACnC,KAAnB;AACD;;AAED,YAAKkC,KAAL,CAAWS,KAAX;AACD,KApOkB;AAAA,4GAsOG,YAAM;AAC1B,UAAQC,eAAR,GAA4B,MAAK1C,KAAjC,CAAQ0C,eAAR;;AAEA,UAAIA,eAAJ,EAAqB;AACnBA,QAAAA,eAAe,CAAC,MAAK5D,KAAL,CAAWY,OAAZ,CAAf;AACD;AACF,KA5OkB;AAAA,0GA8OC,UAACiD,IAAD,EAAU;AAC5B,YAAKjB,QAAL,CAAc;AAAEpC,QAAAA,WAAW,EAAEqD;AAAf,OAAd,EAAqC,MAAKC,0BAA1C;AACD,KAhPkB;AAAA,wGAkPD,UAAC1E,IAAD,EAAO2E,aAAP,EAAyB;AACzC;;AAEA,UAAI3E,IAAJ,EAAU;AACR,cAAKwD,QAAL,CACE,UAAC5C,KAAD;AAAA,iBAAY;AACVY,YAAAA,OAAO,kCACFZ,KAAK,CAACY,OADJ;AAELoD,cAAAA,cAAc,EAAE,MAAKC,QAAL,IAAiB,MAAKA,QAAL,CAAcC,SAAd,CAAwB7E,KAAxB,EAF5B;AAGLwB,cAAAA,OAAO,kCACFb,KAAK,CAACY,OAAN,CAAcC,OADZ,4CAEJzB,IAFI,EAEG;AAAE4B,gBAAAA,KAAK,EAAE+C;AAAT,eAFH;AAHF;AADG,WAAZ;AAAA,SADF,EAWE,MAAKlB,mBAXP;AAaD;AACF,KApQkB;AAAA,qGAsQJ,UAACsB,WAAD,EAAcC,MAAd,EAAyB;AACtC,UAAQvD,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,CAAC+C,IAAL,CAAU,UAACC,CAAD,EAAO;AACtB,cAAMC,EAAE,GAAGH,MAAM,CAACE,CAAD,CAAjB;AAEA,iBAAOC,EAAE,IAAIA,EAAE,CAACzB,EAAH,IAASqB,WAAW,CAACrB,EAAlC;AACD,SAJM,CAAP;AAKD;AACF,KAlRkB;AAAA,+FAoRV,UAAC0B,CAAD,EAAO;AAAA;;AACd,kBAAyCA,CAAC,IAAI,EAA9C;AAAA,UAAQC,aAAR,SAAQA,aAAR;AAAA,UAAuBC,aAAvB,SAAuBA,aAAvB;;AAEA,UACE,CAACD,aAAD,IACA,CAACC,aADD,IAEC,CAAC9F,SAAD,IAAc,EAAC6F,aAAD,aAACA,aAAD,wCAACA,aAAa,CAAEE,YAAhB,4EAAC,sBAA6BC,QAA7B,CAAsC,CAAtC,CAAD,6EAAC,uBAA0CC,UAA3C,mDAAC,uBAAuD,aAAvD,CAAD,CAFf,IAGCjG,SAAS,IAAI,EAAC6F,aAAD,aAACA,aAAD,yCAACA,aAAa,CAAEE,YAAhB,6EAAC,uBAA6BC,QAA7B,CAAsC,CAAtC,CAAD,6EAAC,uBAA0CA,QAA1C,CAAmD,CAAnD,CAAD,6EAAC,uBAAuDC,UAAxD,mDAAC,uBAAoE,aAApE,CAAD,CAJhB,EAKE;AACA,cAAKjC,QAAL,CAAc;AAAEG,UAAAA,iBAAiB,EAAE;AAArB,SAAd;AACD;AACF,KA/RkB;AAGjB,QAAMlC,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;AAEXkC,MAAAA,iBAAiB,EAAE,EAFR;AAGXvC,MAAAA,WAAW,EAAE,MAAKU,KAAL,CAAWnB,KAAX,CAAiBE,MAAjB,CAAwBK,iBAAxB,IAA6C;AAH/C,KAAb;AAvBiB;AA4BlB;;;;WAED,qCAA4B;AAC1B,UAAQa,OAAR,GAAoB,KAAKD,KAAzB,CAAQC,OAAR;;AAEA,UAAI,OAAO2D,MAAP,KAAkB,WAAtB,EAAmC;AACjC,YAAIlD,EAAE,GAAGC,sBAAUC,YAAV,CAAuB,CAAvB,CAAT;;AAEA,YAAI,CAACtD,UAAL,EAAiB;AACfoD,UAAAA,EAAE,CAACmD,aAAH,CAAiB,aAAjB,EAAgC,UAAC/B,IAAD,EAAU;AACxC,mBAAO;AACLgC,cAAAA,UAAU,yBAAiB7D,OAAO,CAAC8D,cAAzB,+CACQ9D,OAAO,CAAC+D,aADhB,qBACsClC,IADtC,2DAEQ7B,OAAO,CAACgE,SAFhB,+CAGQnC,IAHR,6DADL;AAOLoC,cAAAA,IAAI,EAAE;AAAA,uBAAM,MAAN;AAAA,eAPD;AAQL/F,cAAAA,KAAK,EAAE;AAAA,sDAA8B2D,IAA9B;AAAA;AARF,aAAP;AAUD,WAXD;AAaAxE,UAAAA,UAAU,GAAG,IAAb;AACD;AACF;AACF;;;WA2CD,0CAAiC6G,SAAjC,EAA4C;AAAA;;AAC1C,UAAQpF,MAAR,GAAmB,KAAKiB,KAAL,CAAWnB,KAA9B,CAAQE,MAAR;;AACA,kBAAoCoF,SAAS,CAACtF,KAAV,IAAmB,EAAvD;AAAA,+BAAQE,MAAR;AAAA,UAAgBqF,UAAhB,6BAA6B,EAA7B,gBAF0C,CAI1C;AACA;AACA;;;AACA,UACErF,MAAM,CAACsF,IAAP,IACAtF,MAAM,CAACuF,QADP,IAEAvF,MAAM,CAACuF,QAAP,KAAoBF,UAAU,CAACE,QAF/B,IAGAvF,MAAM,CAACsF,IAAP,KAAgBjH,UAAU,CAACmH,CAAX,CAAa,yCAAb,EAAwD;AAAEC,QAAAA,GAAG,EAAEzF,MAAM,CAACuF;AAAd,OAAxD,CAJlB,EAKE;AACAvF,QAAAA,MAAM,CAACsF,IAAP,GAAcjH,UAAU,CAACmH,CAAX,CAAa,yCAAb,EAAwD;AAAEC,UAAAA,GAAG,EAAEJ,UAAU,CAACE;AAAlB,SAAxD,CAAd;AACD;;AAED,UAAKvF,MAAM,CAAC0F,GAAP,IAAc1F,MAAM,CAAC0F,GAAP,CAAWC,IAAX,KAAoB,UAAnC,IAAmDN,UAAU,CAACK,GAAX,IAAkBL,UAAU,CAACK,GAAX,CAAeC,IAAf,KAAwB,UAAjG,EAA8G;AAC5G,aAAKhD,QAAL,iCAAmB,KAAK5C,KAAL,CAAWY,OAA9B;AAAuCJ,UAAAA,WAAW,EAAE;AAApD;AACD;;AAED,UAAI8E,UAAU,CAAChF,iBAAf,EAAkC;AAChC,aAAKsC,QAAL,CAAc;AAAEpC,UAAAA,WAAW,EAAE;AAAf,SAAd;AACD;;AAED,UACGP,MAAM,IAAIA,MAAM,CAACG,SAAjB,IAA8BH,MAAM,CAACG,SAAP,CAAiBP,MAAjB,KAA4ByF,UAAU,CAAClF,SAAX,CAAqBP,MAAhF,IACC,CAACI,MAAD,IAAWqF,UAAX,IAAyBA,UAAU,CAAClF,SADrC,IAECH,MAAM,IAAIqF,UAAV,IAAwBrF,MAAM,CAACE,UAAP,KAAsBmF,UAAU,CAACnF,UAH5D,EAIE;AACA,YAAM0F,UAAU,GAAG,EAAnB;AACA,YAAMhF,OAAO,GAAG,KAAKb,KAAL,CAAWY,OAAX,CAAmBC,OAAnC;AAEA,YAAIH,YAAY,GAAG,CAAnB,CAJA,CAIsB;AAEtB;;AACA,SAAC4E,UAAU,CAACnF,UAAX,IAAyB,EAA1B,EAA8BQ,OAA9B,CAAsCjC,KAAtC,EAA6C,YAAM;AACjDmH,UAAAA,UAAU,YAAKnF,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,aAAKkC,QAAL,CACE,UAAC5C,KAAD;AAAA,iBAAY;AACVY,YAAAA,OAAO,kCACFZ,KAAK,CAACY,OADJ;AAELoD,cAAAA,cAAc,EAAE,MAAI,CAACC,QAAL,IAAiB,MAAI,CAACA,QAAL,CAAcC,SAAd,CAAwB7E,KAAxB,EAF5B;AAGLwB,cAAAA,OAAO,EAAEgF;AAHJ;AADG,WAAZ;AAAA,SADF,EAQE,KAAK/B,0BARP;AAUD;AACF;;;WAED,+BAAsBuB,SAAtB,EAAiCS,SAAjC,EAA4C;AAC1C,UAAMC,SAAS,GAAG,yBAAQ,KAAK7E,KAAL,CAAWnB,KAAnB,EAA0BsF,SAAS,CAACtF,KAApC,CAAlB;AACA,UAAMiG,SAAS,GAAG,yBAAQ,KAAKhG,KAAb,EAAoB8F,SAApB,CAAlB;AAEA,aAAO,CAACC,SAAD,IAAc,CAACC,SAAtB;AACD;;;WAED,6BAAoB;AAAA;;AAClB,WAAKlC,0BAAL;AACA,WAAKmC,gBAAL;AACAC,MAAAA,UAAU,CAAC;AAAA,eAAM,+BAAW,MAAI,CAAC9E,IAAhB,CAAN;AAAA,OAAD,EAA8B,GAA9B,CAAV;AACD;;;WAED,8BAAqB;AACnB,WAAK0C,0BAAL;AACA,WAAKmC,gBAAL;AACD;;;WA0HD,uBAAcE,GAAd,EAAmB;AACjB;AACAD,MAAAA,UAAU,CAAC,YAAM;AACf,YAAIC,GAAG,IAAIvH,SAAX,EAAsB;AACpB,cAAMwH,GAAG,GAAGC,QAAQ,CAAC3E,aAAT,CAAuB,kBAAvB,CAAZ;;AAEA,cAAI0E,GAAJ,EAAS;AACP,gBAAM3E,EAAE,GAAG2E,GAAG,CAACE,UAAf;AACA7E,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,yBAAoD,KAAKnB,KAAzD;AAAA,UAAQ+C,iBAAR,gBAAQA,iBAAR;AAAA,UAA2BvC,WAA3B,gBAA2BA,WAA3B;AAAA,UAAwCI,OAAxC,gBAAwCA,OAAxC;;AACA,kBAYIb,KAAK,IAAI,EAZb;AAAA,UACEE,MADF,SACEA,MADF;AAAA,UAEEsG,WAFF,SAEEA,WAFF;AAAA,UAGErG,QAHF,SAGEA,QAHF;AAAA,UAIE8B,IAJF,SAIEA,IAJF;AAAA,UAKEwE,mBALF,SAKEA,mBALF;AAAA,UAMEC,SANF,SAMEA,SANF;AAAA,UAOEC,QAPF,SAOEA,QAPF;AAAA,UAQEC,kBARF,SAQEA,kBARF;AAAA,UASEtG,SATF,SASEA,SATF;AAAA,UAUEC,iBAVF,SAUEA,iBAVF;AAAA,UAWEkF,QAXF,SAWEA,QAXF;;AAcA,UAAI,CAACvF,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED,kBASIA,MAAM,IAAI,EATd;AAAA,UACE2G,QADF,SACEA,QADF;AAAA,UAEErB,IAFF,SAEEA,IAFF;AAAA,UAGEsB,MAHF,SAGEA,MAHF;AAAA,UAIEzG,SAJF,SAIEA,SAJF;AAAA,UAKE0G,YALF,SAKEA,YALF;AAAA,UAMEpH,cANF,SAMEA,cANF;AAAA,UAOEqH,UAPF,SAOEA,UAPF;AAAA,4BAQEpB,GARF;;AAAA,yCAQwB,EARxB;AAAA,UAQSC,IART,aAQSA,IART;AAAA,UAQeoB,IARf,aAQeA,IARf;AAUA,UAAMC,WAAW,GAAG,CAACzG,WAAW,IAAKoF,IAAI,KAAK,MAAT,IAAmBoB,IAAI,KAAK,YAA7C,KAA+DJ,QAA/D,IAA2ErB,IAA/F;AACA,UAAM2B,aAAa,GAAG,yBAAQ9G,SAAR,CAAtB;AACA,UAAM+G,uBAAuB,GAAG,CAACD,aAAD,IAAkBX,WAAlB,IAAiCA,WAAW,CAACA,WAAZ,KAA4B,SAA7F;AACA,UAAMa,kBAAkB,GAAGlH,QAAQ,IAAIqG,WAAvC;AACA,UAAM9G,cAAc,GAAGT,sBAAsB,CAAC+H,UAAD,CAA7C;AACA,UAAM3E,OAAO,GAAGmE,WAAW,IAAIA,WAAW,CAACnE,OAA3C;AACA,UAAMiF,WAAW,GAAGvH,gBAAgB,CAACC,KAAD,EAAQ,KAAKC,KAAb,CAAhB,IAAuC,EAA3D;AACA,UAAMsH,QAAQ,GAAGpH,QAAQ,IAAI,CAACqG,WAA9B;AACA,UAAMgB,gBAAgB,GAAGlH,SAAS,IAAI,CAACC,iBAAvC;;AAEA,UAAMkH,SAAS,gBACb;AAAK,QAAA,SAAS,EAAErG,OAAO,CAACsG;AAAxB,sBACE,gCAAC,aAAD,CAAI,MAAJ;AACE,QAAA,SAAS,EAAEtG,OAAO,UADpB;AAEE,QAAA,GAAG,EAAE,aAAC8C,QAAD;AAAA,iBAAe,MAAI,CAACA,QAAL,GAAgBA,QAAQ,IAAI,MAAI,CAACA,QAAhD;AAAA,SAFP;AAGE,QAAA,KAAK,EAAEoD,WAHT;AAIE,QAAA,gBAAgB,EAAE,KAAKK,eAJzB;AAKE,QAAA,YAAY,EAAE,KAAKC,YALrB;AAME,QAAA,QAAQ,EAAE,KAAKC,QANjB;AAOE,QAAA,eAAe,EAAE,KAAKC,eAPxB;AAQE,QAAA,MAAM,EAAE,KAAKC;AARf,QADF,CADF;;AAeA,UAAMC,UAAU,gBACd;AAAK,QAAA,SAAS,EAAE5G,OAAO,CAAC6G;AAAxB,SACGpC,IAAI,KAAK,QAAT,iBAAqB;AAAI,QAAA,SAAS,EAAEzE,OAAO,CAAC8G;AAAvB,2CADxB,EAGGX,QAAQ,IACPd,mBADD,IAEC,uBAAQA,mBAAR,CAFD,KAGE,CAACG,kBAAD,gBACC,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAExF,OAAO,CAAC+G,WADrB;AAEE,QAAA,MAAM,EAAE;AAAEC,UAAAA,MAAM,EAAE,2BAAV;AAAuCC,UAAAA,OAAO,EAAE;AAAhD;AAFV,sBAIE;AAAK,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAE7B;AAAV;AAA9B,QAJF,CADD,gBAQC;AAAK,QAAA,uBAAuB,EAAE;AAAE6B,UAAAA,MAAM,EAAE7B;AAAV;AAA9B,QAXH,CAHH,EAiBGK,MAAM,iBACL;AAAK,QAAA,SAAS,EAAE1F,OAAO,CAACmH;AAAxB,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEzB;AAAvB,QADF,CAlBJ,EAuBGU,gBAAgB,GACfC,SADe,gBAGf,gCAAC,kBAAD;AAAU;AAAV,sBACE;AAAK,QAAA,SAAS,EAAErG,OAAO,CAACoH;AAAxB,SACGzB,YAAY,KAAK0B,qBAAcC,MAA/B,iBACC,gCAAC,+BAAD;AACE,QAAA,sBAAsB,EAAE,KAAKC,sBAD/B;AAEE,QAAA,WAAW,EAAElI,WAFf;AAGE,QAAA,aAAa,EAAE0G,aAHjB;AAIE,QAAA,KAAK,EAAEnH,KAJT;AAKE,QAAA,OAAO,EAAEa;AALX,QAFJ,EAWGkG,YAAY,KAAK0B,qBAAcG,QAA/B,iBACC;AACE,QAAA,SAAS,EAAE,4BAAGxH,OAAO,CAAChB,UAAX,mDACRgB,OAAO,CAACkB,SADA,EACY,CAAC6E,aAAD,IAAkB,CAAC9E,OAAnB,IAA8B,CAAC5B,WAD3C,yCAERW,OAAO,CAACiB,OAFA,EAEU,CAAC8E,aAAD,KAAmB9E,OAAO,IAAI5B,WAA9B,CAFV,yCAGRW,OAAO,CAACyH,eAHA,EAGkB,CAAC1B,aAAD,IAAkBhH,QAAlB,IAA8BqG,WAA9B,IAA6C,CAACvE,IAHhE,yCAIRb,OAAO,CAAC0H,kBAJA,EAIqBrI,WAJrB,yCAKRW,OAAO,CAAC2H,YALA,EAKezI,SAAS,IAAIC,iBAL5B;AADb,sBASE,gCAAC,mBAAD;AACE,QAAA,GAAG,EAAE,aAAC6F,KAAD;AAAA,iBAAS,MAAI,CAAC4C,aAAL,CAAmB5C,KAAnB,CAAT;AAAA,SADP;AAEE,QAAA,WAAW,MAFb;AAGE,QAAA,IAAI,EAAE,CAAC,CAACpD,iBAHV;AAIE,QAAA,OAAO,EAAE;AACPiG,UAAAA,OAAO,EAAE7H,OAAO,CAAC8H,aADV;AAEPC,UAAAA,MAAM,EAAE/H,OAAO,CAACgI;AAFT,SAJX;AAQE,QAAA,KAAK,EAAE9H,MAAM,CAACC,IAAP,CAAYV,OAAO,CAACC,OAApB,EAA6B3B,GAA7B,CACL,UAACsC,QAAD;AAAA,iBACGA,QAAQ,KAAKuB,iBAAb,IAAkC,EAAEvC,WAAW,IAAIN,QAAjB,CAAlC,iBACC;AACE,2BAAa,IADf;AAEE,YAAA,GAAG,EAAEsB,QAFP;AAGE,YAAA,SAAS,EAAEL,OAAO,CAACiI,iBAHrB;AAIE,YAAA,KAAK,EAAE;AACL;AACAC,cAAAA,KAAK,EAAE7J,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,CAAC2K;AAHhB,YATF,CADF,IAiBA,IAlBF;AAAA,SADK;AART,sBA8BE,gCAAC,aAAD,CAAI,MAAJ;AACE,QAAA,SAAS,EAAEnI,OAAO,UADpB;AAEE,QAAA,GAAG,EAAE,aAAC8C,QAAD;AAAA,iBAAe,MAAI,CAACA,QAAL,GAAgBA,QAAQ,IAAI,MAAI,CAACA,QAAhD;AAAA,SAFP;AAGE,QAAA,KAAK,EAAEoD,WAHT;AAIE,QAAA,gBAAgB,EAAE,KAAKK,eAJzB;AAKE,QAAA,YAAY,EAAE,KAAKC,YALrB;AAME,QAAA,QAAQ,EAAE,KAAKC,QANjB;AAOE,QAAA,eAAe,EAAE,KAAKC,eAPxB;AAQE,QAAA,MAAM,EAAE,KAAKC;AARf,QA9BF,CATF,CAZJ,CADF,CA1BJ,EA+FGR,QAAQ,IAAIL,WAAZ,iBACC;AAAK,QAAA,SAAS,EAAE9F,OAAO,CAACoE,IAAxB;AAA8B,QAAA,uBAAuB,EAAE;AAAE8C,UAAAA,MAAM,mCAA4B9C,IAA5B;AAAR;AAAvD,QAhGJ,EAmGG+B,QAAQ,IACPb,SADD,IAEC,uBAAQA,SAAR,CAFD,KAGE,CAACE,kBAAD,gBACC,gCAAC,qBAAD;AAAa,QAAA,MAAM,EAAE;AAAEwB,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC;AAArB,sBACE;AAAK,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAE5B;AAAV;AAA9B,QADF,CADD,gBAKC;AAAK,QAAA,uBAAuB,EAAE;AAAE4B,UAAAA,MAAM,EAAE5B;AAAV;AAA9B,QARH,CAnGH,CADF;;AAiHA,UACEW,kBAAkB,KACjBD,uBAAuB,IACrBX,mBAAmB,IAAI,uBAAQA,mBAAR,CADzB,IAEEC,SAAS,IAAI,uBAAQA,SAAR,CAFf,IAGCC,QAJgB,CADpB,EAME;AACA,4BACE,gCAAC,mBAAD;AACE,UAAA,WAAW,MADb;AAEE,UAAA,OAAO,EAAE;AACPsC,YAAAA,OAAO,EAAE7H,OAAO,CAAC6H,OADV;AAEPE,YAAAA,MAAM,EAAE/H,OAAO,CAACoI;AAFT,WAFX;AAME,UAAA,KAAK,eACH,0DACE;AAAK,YAAA,SAAS,EAAEpI,OAAO,CAAC6G;AAAxB,aACGb,uBAAuB,iBACtB,gCAAC,wCAAD;AACE,YAAA,QAAQ,EAAE3B,QADZ;AAEE,YAAA,SAAS,EAAErE,OAAO,CAACqI,MAFrB;AAGE,YAAA,IAAI,MAHN;AAIE,YAAA,OAAO,EAAEhJ,WAJX;AAKE,YAAA,QAAQ,EAAE,KAAKiJ;AALjB,YAFJ,CADF,EAaGjD,mBAAmB,IAAI,uBAAQA,mBAAR,CAAvB,iBACC,gCAAC,qBAAD;AACE,YAAA,SAAS,EAAErF,OAAO,CAAC+G,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,EAAE5B;AAAvB,YARF,CAdJ,EAyBGS,WAAW,IAAI,uBAAQ1B,IAAR,CAAf,iBACC,gCAAC,qBAAD;AACE,YAAA,SAAS,EAAEpE,OAAO,CAAC+G,WADrB;AAEE,YAAA,GAAG,EAAC,kBAFN;AAGE,YAAA,MAAM,EAAE;AACNC,cAAAA,MAAM,EAAE7J,UAAU,CAACmH,CAAX,CAAa,iBAAb,EAAgC;AAAEC,gBAAAA,GAAG,EAAEF;AAAP,eAAhC,CADF;AAEN4C,cAAAA,OAAO,EAAE9J,UAAU,CAACmH,CAAX,CAAa,iBAAb,EAAgC;AAAEC,gBAAAA,GAAG,EAAEF;AAAP,eAAhC;AAFH;AAHV,0BAQE,gCAAC,uBAAD;AAAe,YAAA,MAAM,EAAED;AAAvB,YARF,CA1BJ,EAsCGkB,SAAS,IAAI,uBAAQA,SAAR,CAAb,iBACC,gCAAC,qBAAD;AACE,YAAA,SAAS,EAAEtF,OAAO,CAAC+G,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,EAAE3B;AAAvB,YARF,CAvCJ,EAmDGC,QAAQ,iBAAI,gCAAC,kBAAD;AAAU,YAAA,WAAW,EAAEH,WAAW,CAACA,WAAnC;AAAgD,YAAA,QAAQ,EAAEG;AAA1D,YAnDf;AAPJ,wBA8DE;AAAK,UAAA,SAAS,EAAEvF,OAAO,CAACuI,aAAxB;AAAuC,UAAA,GAAG,EAAE,aAACC,CAAD;AAAA,mBAAQ,MAAI,CAACvI,IAAL,GAAYuI,CAAC,IAAI,MAAI,CAACvI,IAA9B;AAAA;AAA5C,WACG2G,UADH,CA9DF,CADF;AAoED;;AAED,0BACE;AAAK,QAAA,SAAS,EAAE5G,OAAO,CAACuI,aAAxB;AAAuC,QAAA,GAAG,EAAE,aAACC,CAAD;AAAA,iBAAQ,MAAI,CAACvI,IAAL,GAAYuI,CAAC,IAAI,MAAI,CAACvI,IAA9B;AAAA;AAA5C,SACG2G,UADH,CADF;AAKD;;;EAljBuB6B,kBAAMC,S;;;iCAAnB5I,I,eACQ;AACjBE,EAAAA,OAAO,EAAE2I,sBAAUC,MADF;AAEjBnJ,EAAAA,OAAO,EAAEkJ,sBAAUC,MAAV,CAAiBC,UAFT;AAGjBpG,EAAAA,eAAe,EAAEkG,sBAAUG,IAHV;AAIjBlK,EAAAA,KAAK,EAAE+J,sBAAUC,MAAV,CAAiBC;AAJP,C;;AAojBrB,IAAME,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBT,IAAAA,aAAa,EAAE;AACbU,MAAAA,KAAK,EAAEA,gBAAMhF,IAAN,EADM;AAEbiF,MAAAA,eAAe,EAAED,gBAAME,UAAN,EAFJ;AAGbC,MAAAA,OAAO,EAAE;AAHI,KADU;AAMzBvB,IAAAA,OAAO,EAAE;AACPsB,MAAAA,UAAU,YAAKF,gBAAMI,YAAN,EAAL,gBADH;AAEPJ,MAAAA,KAAK,EAAEA,gBAAMhF,IAAN,EAFA;AAGPqF,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;AAkBzBd,IAAAA,aAAa,EAAE;AACbwB,MAAAA,OAAO,EAAE;AADI,KAlBU;AAqBzB9B,IAAAA,aAAa,EAAE;AACb6B,MAAAA,QAAQ,EAAE,SADG;AAEbR,MAAAA,UAAU,EAAE,aAFC;AAGbjB,MAAAA,KAAK,EAAE,OAHM;AAIb2B,MAAAA,SAAS,EAAE,CAJE;AAKbC,MAAAA,UAAU,EAAE;AALC,KArBU;AA4BzB9B,IAAAA,mBAAmB,EAAE;AACnBmB,MAAAA,UAAU,EAAE,aADO;AAEnBjB,MAAAA,KAAK,EAAE,OAFY;AAGnB0B,MAAAA,OAAO,EAAE;AAHU,KA5BI;AAiCzB/C,IAAAA,IAAI,EAAE;AACJqB,MAAAA,KAAK,EAAE,MADH;AAEJ6B,MAAAA,QAAQ,EAAE,UAFN;AAGJb,MAAAA,eAAe,EAAED,gBAAME,UAAN,EAHb;AAIJF,MAAAA,KAAK,EAAEA,gBAAMhF,IAAN;AAJH,KAjCmB;AAuCzB+F,IAAAA,KAAK,EAAE;AACLL,MAAAA,QAAQ,EAAE,QADL;AAELP,MAAAA,OAAO,EAAE,OAFJ;AAGLS,MAAAA,SAAS,EAAEb,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAH3B;AAILS,MAAAA,YAAY,EAAEjB,KAAK,CAACO,OAAN,CAAcC;AAJvB,KAvCkB;AA6CzBpF,IAAAA,IAAI,EAAE;AACJ8F,MAAAA,aAAa,EAAElB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AADhC,KA7CmB;AAgDzBzC,IAAAA,WAAW,EAAE;AACXkD,MAAAA,YAAY,EAAEjB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AADxB,KAhDY;AAmDzBvB,IAAAA,iBAAiB,EAAE;AACjBkC,MAAAA,MAAM,EAAE,EADS;AAEjB;AACA;AACAC,MAAAA,QAAQ,EAAE,OAJO;AAKjBP,MAAAA,SAAS,EAAEb,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AALf,KAnDM;AA0DzBxK,IAAAA,UAAU,EAAE;AACVqL,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,KA1Da;AAyEzB,cAAQ;AACN,4BAAsB;AACpB,kCAA0B;AACxBC,UAAAA,WAAW,EAAEvB,gBAAMhF,IAAN;AADW;AADN;AADhB,KAzEiB;AAgFzBmD,IAAAA,uBAAuB,EAAE;AACvByC,MAAAA,SAAS,EAAEb,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CADT;AAEvBS,MAAAA,YAAY,EAAEjB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAFZ;AAGvBO,MAAAA,QAAQ,EAAE,UAHa;AAIvB,+BAAyB;AACvBN,QAAAA,MAAM,EAAE,iBADe;AAEvBH,QAAAA,OAAO,EAAE;AAFc,OAJF;AAQvB,qCAA+B;AAC7BF,QAAAA,OAAO,EAAE;AADoB,OARR;AAWvB,oCAA8B;AAC5BA,QAAAA,OAAO,EAAE;AADmB,OAXP;AAcvB,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,OAdV;AA+BvB,wCAAkC;AAChC,oBAAY;AACVA,UAAAA,GAAG,EAAE,QADK;AAEVI,UAAAA,KAAK,EAAE;AAFG;AADoB,OA/BX;AAqCvB,6BAAuB;AACrBC,QAAAA,SAAS,EAAE,sBADU;AAErBd,QAAAA,UAAU,EAAE;AAFS,OArCA;AAyCvB,6BAAuB;AACrBW,QAAAA,UAAU,EAAE;AADS;AAzCA,KAhFA;AA6HzBhD,IAAAA,eAAe,EAAE;AACfgC,MAAAA,MAAM,EAAE;AADO,KA7HQ;AAgIzB/B,IAAAA,kBAAkB,EAAE;AAClB4B,MAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IADL;AAElBqB,MAAAA,aAAa,EAAE;AAFG,KAhIK;AAoIzBlD,IAAAA,YAAY,EAAE;AACZ8B,MAAAA,MAAM,sBAAeR,gBAAMhI,OAAN,EAAf;AADM,KApIW;AAuIzBA,IAAAA,OAAO,EAAE;AACPuJ,MAAAA,WAAW,YAAKvB,gBAAMhI,OAAN,EAAL;AADJ,KAvIgB;AA0IzBC,IAAAA,SAAS,EAAE;AACTsJ,MAAAA,WAAW,YAAKvB,gBAAM/H,SAAN,EAAL;AADF,KA1Ic;AA6IzB4C,IAAAA,cAAc,EAAE;AACdwG,MAAAA,MAAM,YAAKtB,KAAK,CAACO,OAAN,CAAcC,IAAnB,kBADQ;AAEdJ,MAAAA,OAAO,EAAE,aAFK;AAGdK,MAAAA,MAAM,EAAE;AAHM,KA7IS;AAkJzB1F,IAAAA,aAAa,EAAE;AACb+G,MAAAA,IAAI,EAAE,CADO;AAEb7B,MAAAA,KAAK,EAAE,MAFM;AAGbE,MAAAA,UAAU,EAAEH,KAAK,CAAC+B,OAAN,CAAcC,IAAd,CAAmB,MAAnB,CAHC;AAIbrB,MAAAA,QAAQ,EAAE,mBAJG;AAKbL,MAAAA,OAAO,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAA1B,kBALM;AAMbJ,MAAAA,OAAO,EAAE,MANI;AAOb6B,MAAAA,UAAU,EAAE,QAPC;AAQbC,MAAAA,cAAc,EAAE,QARH;AASbC,MAAAA,WAAW,sBAAelC,gBAAMlK,QAAN,EAAf;AATE,KAlJU;AA6JzBsJ,IAAAA,MAAM,EAAE;AACNY,MAAAA,KAAK,EAAEA,gBAAMhF,IAAN,EADD;AAENgG,MAAAA,YAAY,EAAEjB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AAF7B,KA7JiB;AAiKzBxF,IAAAA,SAAS,EAAE;AACTiF,MAAAA,KAAK,EAAEA,gBAAMhF,IAAN,EADE;AAETiF,MAAAA,eAAe,EAAED,gBAAME,UAAN,EAFR;AAGTG,MAAAA,OAAO,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAA1B,kBAHE;AAITJ,MAAAA,OAAO,EAAE,MAJA;AAKT6B,MAAAA,UAAU,EAAE,QALH;AAMTC,MAAAA,cAAc,EAAE,QANP;AAOTJ,MAAAA,IAAI,EAAE,CAPG;AAQT,2BAAqB;AACnB,6BAAqB;AACnB,4BAAkB;AAChB1B,YAAAA,OAAO,EAAE;AADO;AADC;AADF;AARZ,KAjKc;AAiLzB9C,IAAAA,cAAc,EAAE;AACd2D,MAAAA,YAAY,EAAEjB,KAAK,CAACO,OAAN,CAAcC,IADd;AAEd4B,MAAAA,aAAa,EAAE;AAFD,KAjLS;AAqLzBtE,IAAAA,MAAM,EAAE;AACNiD,MAAAA,QAAQ,EAAE,UADJ;AAENW,MAAAA,IAAI,EAAE,UAFA;AAGNH,MAAAA,GAAG,EAAE,MAHC;AAINrC,MAAAA,KAAK,EAAE,KAJD;AAKNmD,MAAAA,MAAM,EAAE,KALF;AAMNC,MAAAA,QAAQ,EAAE;AANJ;AArLiB,GAAZ;AAAA,CAAf;;eA+Le,wBAAWvC,MAAX,EAAmBjJ,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 } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\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\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 };\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 UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\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 (\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.updateAriaHidden();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n this.updateAriaHidden();\n }\n\n updateAriaHidden = () => {\n if (this.root) {\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n (selectableElements || []).forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n }\n };\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\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 if (\n !relatedTarget ||\n !currentTarget ||\n (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n ) {\n this.setState({ activeAnswerBlock: '' });\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 } = this.state;\n const {\n config,\n correctness,\n disabled,\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.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\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 interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\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 <Tooltip\n interactive\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 );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\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 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 marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\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 flex: 2,\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 },\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 flex: 8,\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","response","setState","callOnSessionChange","id","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","offsetParent","children","attributes","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","note","language","t","lng","env","mode","countResponseOccurrences","setTimeout","updateAria","newAnswers","nextState","sameModel","sameState","ref","div","document","firstChild","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","srOnly","collapsible","hidden","visible","__html","content","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","title","marginBottom","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","alignItems","justifyContent","borderRight","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 } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\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\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 };\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\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() {\n this.handleAnswerBlockDomUpdate();\n }\n\n updateAria = () => {\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\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach(elem => {\n elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');\n });\n }\n };\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\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 if (\n !relatedTarget ||\n !currentTarget ||\n (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n ) {\n this.setState({ activeAnswerBlock: '' });\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 } = this.state;\n const {\n config,\n correctness,\n disabled,\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.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\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 interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\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 <Tooltip\n interactive\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 );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\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 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 marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\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 flex: 2,\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 },\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 flex: 8,\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"}
|
package/module/configure.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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@1.1.
|
|
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@1.1.3/module/index.js";
|
|
2
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@4.0.0/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) {
|
package/module/element.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.3/module/index.js";
|
|
2
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@4.0.0/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) {
|
|
@@ -11677,6 +11677,11 @@ class Main extends React$1.Component {
|
|
|
11677
11677
|
renderMath(this.root);
|
|
11678
11678
|
};
|
|
11679
11679
|
}
|
|
11680
|
+
countResponseOccurrences(expression) {
|
|
11681
|
+
const pattern = /\{\{response\}\}/g;
|
|
11682
|
+
const matches = expression.match(pattern);
|
|
11683
|
+
return matches ? matches.length : 0;
|
|
11684
|
+
}
|
|
11680
11685
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
11681
11686
|
const {config} = this.props.model;
|
|
11682
11687
|
const {config: nextConfig = {}} = nextProps.model || ({});
|
|
@@ -11698,6 +11703,9 @@ class Main extends React$1.Component {
|
|
|
11698
11703
|
showCorrect: true
|
|
11699
11704
|
});
|
|
11700
11705
|
}
|
|
11706
|
+
if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {
|
|
11707
|
+
setTimeout(() => this.updateAria(), 100);
|
|
11708
|
+
}
|
|
11701
11709
|
if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
|
|
11702
11710
|
const newAnswers = {};
|
|
11703
11711
|
const answers = this.state.session.answers;
|
|
@@ -11724,18 +11732,21 @@ class Main extends React$1.Component {
|
|
|
11724
11732
|
}
|
|
11725
11733
|
componentDidMount() {
|
|
11726
11734
|
this.handleAnswerBlockDomUpdate();
|
|
11727
|
-
this.
|
|
11735
|
+
this.updateAria();
|
|
11728
11736
|
setTimeout(() => renderMath(this.root), 100);
|
|
11729
11737
|
}
|
|
11730
11738
|
componentDidUpdate() {
|
|
11731
11739
|
this.handleAnswerBlockDomUpdate();
|
|
11732
|
-
this.updateAriaHidden();
|
|
11733
11740
|
}
|
|
11734
11741
|
__init2() {
|
|
11735
|
-
this.
|
|
11742
|
+
this.updateAria = () => {
|
|
11736
11743
|
if (this.root) {
|
|
11737
11744
|
const selectableElements = this.root.querySelectorAll('.mq-selectable');
|
|
11738
|
-
|
|
11745
|
+
selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));
|
|
11746
|
+
const textareaElements = this.root.querySelectorAll('textarea');
|
|
11747
|
+
textareaElements.forEach(elem => {
|
|
11748
|
+
elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
|
|
11749
|
+
});
|
|
11739
11750
|
}
|
|
11740
11751
|
};
|
|
11741
11752
|
}
|
|
@@ -11899,7 +11910,7 @@ class Main extends React$1.Component {
|
|
|
11899
11910
|
__self: this,
|
|
11900
11911
|
__source: {
|
|
11901
11912
|
fileName: _jsxFileName,
|
|
11902
|
-
lineNumber:
|
|
11913
|
+
lineNumber: 443
|
|
11903
11914
|
}
|
|
11904
11915
|
}, React$1.createElement(mq.Static, {
|
|
11905
11916
|
className: classes.static,
|
|
@@ -11913,7 +11924,7 @@ class Main extends React$1.Component {
|
|
|
11913
11924
|
__self: this,
|
|
11914
11925
|
__source: {
|
|
11915
11926
|
fileName: _jsxFileName,
|
|
11916
|
-
lineNumber:
|
|
11927
|
+
lineNumber: 444
|
|
11917
11928
|
}
|
|
11918
11929
|
}));
|
|
11919
11930
|
const midContent = React$1.createElement('div', {
|
|
@@ -11921,14 +11932,14 @@ class Main extends React$1.Component {
|
|
|
11921
11932
|
__self: this,
|
|
11922
11933
|
__source: {
|
|
11923
11934
|
fileName: _jsxFileName,
|
|
11924
|
-
lineNumber:
|
|
11935
|
+
lineNumber: 458
|
|
11925
11936
|
}
|
|
11926
11937
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
11927
11938
|
className: classes.srOnly,
|
|
11928
11939
|
__self: this,
|
|
11929
11940
|
__source: {
|
|
11930
11941
|
fileName: _jsxFileName,
|
|
11931
|
-
lineNumber:
|
|
11942
|
+
lineNumber: 459
|
|
11932
11943
|
}
|
|
11933
11944
|
}, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
11934
11945
|
className: classes.collapsible,
|
|
@@ -11939,7 +11950,7 @@ class Main extends React$1.Component {
|
|
|
11939
11950
|
__self: this,
|
|
11940
11951
|
__source: {
|
|
11941
11952
|
fileName: _jsxFileName,
|
|
11942
|
-
lineNumber:
|
|
11953
|
+
lineNumber: 465
|
|
11943
11954
|
}
|
|
11944
11955
|
}, React$1.createElement('div', {
|
|
11945
11956
|
dangerouslySetInnerHTML: {
|
|
@@ -11948,7 +11959,7 @@ class Main extends React$1.Component {
|
|
|
11948
11959
|
__self: this,
|
|
11949
11960
|
__source: {
|
|
11950
11961
|
fileName: _jsxFileName,
|
|
11951
|
-
lineNumber:
|
|
11962
|
+
lineNumber: 469
|
|
11952
11963
|
}
|
|
11953
11964
|
})) : React$1.createElement('div', {
|
|
11954
11965
|
dangerouslySetInnerHTML: {
|
|
@@ -11957,35 +11968,35 @@ class Main extends React$1.Component {
|
|
|
11957
11968
|
__self: this,
|
|
11958
11969
|
__source: {
|
|
11959
11970
|
fileName: _jsxFileName,
|
|
11960
|
-
lineNumber:
|
|
11971
|
+
lineNumber: 472
|
|
11961
11972
|
}
|
|
11962
11973
|
})), prompt && React$1.createElement('div', {
|
|
11963
11974
|
className: classes.content,
|
|
11964
11975
|
__self: this,
|
|
11965
11976
|
__source: {
|
|
11966
11977
|
fileName: _jsxFileName,
|
|
11967
|
-
lineNumber:
|
|
11978
|
+
lineNumber: 476
|
|
11968
11979
|
}
|
|
11969
11980
|
}, React$1.createElement(PreviewPrompt, {
|
|
11970
11981
|
prompt: prompt,
|
|
11971
11982
|
__self: this,
|
|
11972
11983
|
__source: {
|
|
11973
11984
|
fileName: _jsxFileName,
|
|
11974
|
-
lineNumber:
|
|
11985
|
+
lineNumber: 477
|
|
11975
11986
|
}
|
|
11976
11987
|
})), studentPrintMode ? printView : React$1.createElement(Readable, {
|
|
11977
11988
|
false: true,
|
|
11978
11989
|
__self: this,
|
|
11979
11990
|
__source: {
|
|
11980
11991
|
fileName: _jsxFileName,
|
|
11981
|
-
lineNumber:
|
|
11992
|
+
lineNumber: 484
|
|
11982
11993
|
}
|
|
11983
11994
|
}, React$1.createElement('div', {
|
|
11984
11995
|
className: classes.inputAndKeypadContainer,
|
|
11985
11996
|
__self: this,
|
|
11986
11997
|
__source: {
|
|
11987
11998
|
fileName: _jsxFileName,
|
|
11988
|
-
lineNumber:
|
|
11999
|
+
lineNumber: 485
|
|
11989
12000
|
}
|
|
11990
12001
|
}, responseType === ResponseTypes$1.simple && React$1.createElement(SimpleQuestionBlock, {
|
|
11991
12002
|
onSimpleResponseChange: this.onSimpleResponseChange,
|
|
@@ -11996,7 +12007,7 @@ class Main extends React$1.Component {
|
|
|
11996
12007
|
__self: this,
|
|
11997
12008
|
__source: {
|
|
11998
12009
|
fileName: _jsxFileName,
|
|
11999
|
-
lineNumber:
|
|
12010
|
+
lineNumber: 487
|
|
12000
12011
|
}
|
|
12001
12012
|
}), responseType === ResponseTypes$1.advanced && React$1.createElement('div', {
|
|
12002
12013
|
className: cx(classes.expression, {
|
|
@@ -12009,7 +12020,7 @@ class Main extends React$1.Component {
|
|
|
12009
12020
|
__self: this,
|
|
12010
12021
|
__source: {
|
|
12011
12022
|
fileName: _jsxFileName,
|
|
12012
|
-
lineNumber:
|
|
12023
|
+
lineNumber: 497
|
|
12013
12024
|
}
|
|
12014
12025
|
}, React$1.createElement(Tooltip, {
|
|
12015
12026
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -12029,7 +12040,7 @@ class Main extends React$1.Component {
|
|
|
12029
12040
|
__self: this,
|
|
12030
12041
|
__source: {
|
|
12031
12042
|
fileName: _jsxFileName,
|
|
12032
|
-
lineNumber:
|
|
12043
|
+
lineNumber: 517
|
|
12033
12044
|
}
|
|
12034
12045
|
}, React$1.createElement(HorizontalKeypad, {
|
|
12035
12046
|
additionalKeys: additionalKeys,
|
|
@@ -12038,13 +12049,13 @@ class Main extends React$1.Component {
|
|
|
12038
12049
|
__self: this,
|
|
12039
12050
|
__source: {
|
|
12040
12051
|
fileName: _jsxFileName,
|
|
12041
|
-
lineNumber:
|
|
12052
|
+
lineNumber: 526
|
|
12042
12053
|
}
|
|
12043
12054
|
})) || null),
|
|
12044
12055
|
__self: this,
|
|
12045
12056
|
__source: {
|
|
12046
12057
|
fileName: _jsxFileName,
|
|
12047
|
-
lineNumber:
|
|
12058
|
+
lineNumber: 506
|
|
12048
12059
|
}
|
|
12049
12060
|
}, React$1.createElement(mq.Static, {
|
|
12050
12061
|
className: classes.static,
|
|
@@ -12058,7 +12069,7 @@ class Main extends React$1.Component {
|
|
|
12058
12069
|
__self: this,
|
|
12059
12070
|
__source: {
|
|
12060
12071
|
fileName: _jsxFileName,
|
|
12061
|
-
lineNumber:
|
|
12072
|
+
lineNumber: 536
|
|
12062
12073
|
}
|
|
12063
12074
|
}))))), viewMode && displayNote && React$1.createElement('div', {
|
|
12064
12075
|
className: classes.note,
|
|
@@ -12068,7 +12079,7 @@ class Main extends React$1.Component {
|
|
|
12068
12079
|
__self: this,
|
|
12069
12080
|
__source: {
|
|
12070
12081
|
fileName: _jsxFileName,
|
|
12071
|
-
lineNumber:
|
|
12082
|
+
lineNumber: 554
|
|
12072
12083
|
}
|
|
12073
12084
|
}), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12074
12085
|
labels: {
|
|
@@ -12078,7 +12089,7 @@ class Main extends React$1.Component {
|
|
|
12078
12089
|
__self: this,
|
|
12079
12090
|
__source: {
|
|
12080
12091
|
fileName: _jsxFileName,
|
|
12081
|
-
lineNumber:
|
|
12092
|
+
lineNumber: 561
|
|
12082
12093
|
}
|
|
12083
12094
|
}, React$1.createElement('div', {
|
|
12084
12095
|
dangerouslySetInnerHTML: {
|
|
@@ -12087,7 +12098,7 @@ class Main extends React$1.Component {
|
|
|
12087
12098
|
__self: this,
|
|
12088
12099
|
__source: {
|
|
12089
12100
|
fileName: _jsxFileName,
|
|
12090
|
-
lineNumber:
|
|
12101
|
+
lineNumber: 562
|
|
12091
12102
|
}
|
|
12092
12103
|
})) : React$1.createElement('div', {
|
|
12093
12104
|
dangerouslySetInnerHTML: {
|
|
@@ -12096,7 +12107,7 @@ class Main extends React$1.Component {
|
|
|
12096
12107
|
__self: this,
|
|
12097
12108
|
__source: {
|
|
12098
12109
|
fileName: _jsxFileName,
|
|
12099
|
-
lineNumber:
|
|
12110
|
+
lineNumber: 565
|
|
12100
12111
|
}
|
|
12101
12112
|
})));
|
|
12102
12113
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
|
|
@@ -12110,14 +12121,14 @@ class Main extends React$1.Component {
|
|
|
12110
12121
|
__self: this,
|
|
12111
12122
|
__source: {
|
|
12112
12123
|
fileName: _jsxFileName,
|
|
12113
|
-
lineNumber:
|
|
12124
|
+
lineNumber: 585
|
|
12114
12125
|
}
|
|
12115
12126
|
}, React$1.createElement('div', {
|
|
12116
12127
|
className: classes.main,
|
|
12117
12128
|
__self: this,
|
|
12118
12129
|
__source: {
|
|
12119
12130
|
fileName: _jsxFileName,
|
|
12120
|
-
lineNumber:
|
|
12131
|
+
lineNumber: 586
|
|
12121
12132
|
}
|
|
12122
12133
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
12123
12134
|
language: language,
|
|
@@ -12128,7 +12139,7 @@ class Main extends React$1.Component {
|
|
|
12128
12139
|
__self: this,
|
|
12129
12140
|
__source: {
|
|
12130
12141
|
fileName: _jsxFileName,
|
|
12131
|
-
lineNumber:
|
|
12142
|
+
lineNumber: 588
|
|
12132
12143
|
}
|
|
12133
12144
|
})), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
|
|
12134
12145
|
className: classes.collapsible,
|
|
@@ -12140,14 +12151,14 @@ class Main extends React$1.Component {
|
|
|
12140
12151
|
__self: this,
|
|
12141
12152
|
__source: {
|
|
12142
12153
|
fileName: _jsxFileName,
|
|
12143
|
-
lineNumber:
|
|
12154
|
+
lineNumber: 599
|
|
12144
12155
|
}
|
|
12145
12156
|
}, React$1.createElement(PreviewPrompt, {
|
|
12146
12157
|
prompt: teacherInstructions,
|
|
12147
12158
|
__self: this,
|
|
12148
12159
|
__source: {
|
|
12149
12160
|
fileName: _jsxFileName,
|
|
12150
|
-
lineNumber:
|
|
12161
|
+
lineNumber: 607
|
|
12151
12162
|
}
|
|
12152
12163
|
})), displayNote && hasText(note) && React$1.createElement(Collapsible, {
|
|
12153
12164
|
className: classes.collapsible,
|
|
@@ -12163,14 +12174,14 @@ class Main extends React$1.Component {
|
|
|
12163
12174
|
__self: this,
|
|
12164
12175
|
__source: {
|
|
12165
12176
|
fileName: _jsxFileName,
|
|
12166
|
-
lineNumber:
|
|
12177
|
+
lineNumber: 611
|
|
12167
12178
|
}
|
|
12168
12179
|
}, React$1.createElement(PreviewPrompt, {
|
|
12169
12180
|
prompt: note,
|
|
12170
12181
|
__self: this,
|
|
12171
12182
|
__source: {
|
|
12172
12183
|
fileName: _jsxFileName,
|
|
12173
|
-
lineNumber:
|
|
12184
|
+
lineNumber: 619
|
|
12174
12185
|
}
|
|
12175
12186
|
})), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
|
|
12176
12187
|
className: classes.collapsible,
|
|
@@ -12182,14 +12193,14 @@ class Main extends React$1.Component {
|
|
|
12182
12193
|
__self: this,
|
|
12183
12194
|
__source: {
|
|
12184
12195
|
fileName: _jsxFileName,
|
|
12185
|
-
lineNumber:
|
|
12196
|
+
lineNumber: 624
|
|
12186
12197
|
}
|
|
12187
12198
|
}, React$1.createElement(PreviewPrompt, {
|
|
12188
12199
|
prompt: rationale,
|
|
12189
12200
|
__self: this,
|
|
12190
12201
|
__source: {
|
|
12191
12202
|
fileName: _jsxFileName,
|
|
12192
|
-
lineNumber:
|
|
12203
|
+
lineNumber: 632
|
|
12193
12204
|
}
|
|
12194
12205
|
})), feedback && React$1.createElement(Feedback, {
|
|
12195
12206
|
correctness: correctness.correctness,
|
|
@@ -12197,13 +12208,13 @@ class Main extends React$1.Component {
|
|
|
12197
12208
|
__self: this,
|
|
12198
12209
|
__source: {
|
|
12199
12210
|
fileName: _jsxFileName,
|
|
12200
|
-
lineNumber:
|
|
12211
|
+
lineNumber: 636
|
|
12201
12212
|
}
|
|
12202
12213
|
})),
|
|
12203
12214
|
__self: this,
|
|
12204
12215
|
__source: {
|
|
12205
12216
|
fileName: _jsxFileName,
|
|
12206
|
-
lineNumber:
|
|
12217
|
+
lineNumber: 578
|
|
12207
12218
|
}
|
|
12208
12219
|
}, React$1.createElement('div', {
|
|
12209
12220
|
className: classes.mainContainer,
|
|
@@ -12211,7 +12222,7 @@ class Main extends React$1.Component {
|
|
|
12211
12222
|
__self: this,
|
|
12212
12223
|
__source: {
|
|
12213
12224
|
fileName: _jsxFileName,
|
|
12214
|
-
lineNumber:
|
|
12225
|
+
lineNumber: 640
|
|
12215
12226
|
}
|
|
12216
12227
|
}, midContent));
|
|
12217
12228
|
}
|
|
@@ -12221,7 +12232,7 @@ class Main extends React$1.Component {
|
|
|
12221
12232
|
__self: this,
|
|
12222
12233
|
__source: {
|
|
12223
12234
|
fileName: _jsxFileName,
|
|
12224
|
-
lineNumber:
|
|
12235
|
+
lineNumber: 648
|
|
12225
12236
|
}
|
|
12226
12237
|
}, midContent);
|
|
12227
12238
|
}
|
package/module/index.html
CHANGED
package/module/manifest.json
CHANGED
package/module/print.html
CHANGED
package/module/print.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.3/module/index.js";
|
|
2
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@4.0.0/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) {
|
|
@@ -11677,6 +11677,11 @@ class Main extends React$1.Component {
|
|
|
11677
11677
|
renderMath$1(this.root);
|
|
11678
11678
|
};
|
|
11679
11679
|
}
|
|
11680
|
+
countResponseOccurrences(expression) {
|
|
11681
|
+
const pattern = /\{\{response\}\}/g;
|
|
11682
|
+
const matches = expression.match(pattern);
|
|
11683
|
+
return matches ? matches.length : 0;
|
|
11684
|
+
}
|
|
11680
11685
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
11681
11686
|
const {config} = this.props.model;
|
|
11682
11687
|
const {config: nextConfig = {}} = nextProps.model || ({});
|
|
@@ -11698,6 +11703,9 @@ class Main extends React$1.Component {
|
|
|
11698
11703
|
showCorrect: true
|
|
11699
11704
|
});
|
|
11700
11705
|
}
|
|
11706
|
+
if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {
|
|
11707
|
+
setTimeout(() => this.updateAria(), 100);
|
|
11708
|
+
}
|
|
11701
11709
|
if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
|
|
11702
11710
|
const newAnswers = {};
|
|
11703
11711
|
const answers = this.state.session.answers;
|
|
@@ -11724,18 +11732,21 @@ class Main extends React$1.Component {
|
|
|
11724
11732
|
}
|
|
11725
11733
|
componentDidMount() {
|
|
11726
11734
|
this.handleAnswerBlockDomUpdate();
|
|
11727
|
-
this.
|
|
11735
|
+
this.updateAria();
|
|
11728
11736
|
setTimeout(() => renderMath$1(this.root), 100);
|
|
11729
11737
|
}
|
|
11730
11738
|
componentDidUpdate() {
|
|
11731
11739
|
this.handleAnswerBlockDomUpdate();
|
|
11732
|
-
this.updateAriaHidden();
|
|
11733
11740
|
}
|
|
11734
11741
|
__init2() {
|
|
11735
|
-
this.
|
|
11742
|
+
this.updateAria = () => {
|
|
11736
11743
|
if (this.root) {
|
|
11737
11744
|
const selectableElements = this.root.querySelectorAll('.mq-selectable');
|
|
11738
|
-
|
|
11745
|
+
selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));
|
|
11746
|
+
const textareaElements = this.root.querySelectorAll('textarea');
|
|
11747
|
+
textareaElements.forEach(elem => {
|
|
11748
|
+
elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
|
|
11749
|
+
});
|
|
11739
11750
|
}
|
|
11740
11751
|
};
|
|
11741
11752
|
}
|
|
@@ -11899,7 +11910,7 @@ class Main extends React$1.Component {
|
|
|
11899
11910
|
__self: this,
|
|
11900
11911
|
__source: {
|
|
11901
11912
|
fileName: _jsxFileName,
|
|
11902
|
-
lineNumber:
|
|
11913
|
+
lineNumber: 443
|
|
11903
11914
|
}
|
|
11904
11915
|
}, React$1.createElement(mq.Static, {
|
|
11905
11916
|
className: classes.static,
|
|
@@ -11913,7 +11924,7 @@ class Main extends React$1.Component {
|
|
|
11913
11924
|
__self: this,
|
|
11914
11925
|
__source: {
|
|
11915
11926
|
fileName: _jsxFileName,
|
|
11916
|
-
lineNumber:
|
|
11927
|
+
lineNumber: 444
|
|
11917
11928
|
}
|
|
11918
11929
|
}));
|
|
11919
11930
|
const midContent = React$1.createElement('div', {
|
|
@@ -11921,14 +11932,14 @@ class Main extends React$1.Component {
|
|
|
11921
11932
|
__self: this,
|
|
11922
11933
|
__source: {
|
|
11923
11934
|
fileName: _jsxFileName,
|
|
11924
|
-
lineNumber:
|
|
11935
|
+
lineNumber: 458
|
|
11925
11936
|
}
|
|
11926
11937
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
11927
11938
|
className: classes.srOnly,
|
|
11928
11939
|
__self: this,
|
|
11929
11940
|
__source: {
|
|
11930
11941
|
fileName: _jsxFileName,
|
|
11931
|
-
lineNumber:
|
|
11942
|
+
lineNumber: 459
|
|
11932
11943
|
}
|
|
11933
11944
|
}, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
11934
11945
|
className: classes.collapsible,
|
|
@@ -11939,7 +11950,7 @@ class Main extends React$1.Component {
|
|
|
11939
11950
|
__self: this,
|
|
11940
11951
|
__source: {
|
|
11941
11952
|
fileName: _jsxFileName,
|
|
11942
|
-
lineNumber:
|
|
11953
|
+
lineNumber: 465
|
|
11943
11954
|
}
|
|
11944
11955
|
}, React$1.createElement('div', {
|
|
11945
11956
|
dangerouslySetInnerHTML: {
|
|
@@ -11948,7 +11959,7 @@ class Main extends React$1.Component {
|
|
|
11948
11959
|
__self: this,
|
|
11949
11960
|
__source: {
|
|
11950
11961
|
fileName: _jsxFileName,
|
|
11951
|
-
lineNumber:
|
|
11962
|
+
lineNumber: 469
|
|
11952
11963
|
}
|
|
11953
11964
|
})) : React$1.createElement('div', {
|
|
11954
11965
|
dangerouslySetInnerHTML: {
|
|
@@ -11957,35 +11968,35 @@ class Main extends React$1.Component {
|
|
|
11957
11968
|
__self: this,
|
|
11958
11969
|
__source: {
|
|
11959
11970
|
fileName: _jsxFileName,
|
|
11960
|
-
lineNumber:
|
|
11971
|
+
lineNumber: 472
|
|
11961
11972
|
}
|
|
11962
11973
|
})), prompt && React$1.createElement('div', {
|
|
11963
11974
|
className: classes.content,
|
|
11964
11975
|
__self: this,
|
|
11965
11976
|
__source: {
|
|
11966
11977
|
fileName: _jsxFileName,
|
|
11967
|
-
lineNumber:
|
|
11978
|
+
lineNumber: 476
|
|
11968
11979
|
}
|
|
11969
11980
|
}, React$1.createElement(PreviewPrompt, {
|
|
11970
11981
|
prompt: prompt,
|
|
11971
11982
|
__self: this,
|
|
11972
11983
|
__source: {
|
|
11973
11984
|
fileName: _jsxFileName,
|
|
11974
|
-
lineNumber:
|
|
11985
|
+
lineNumber: 477
|
|
11975
11986
|
}
|
|
11976
11987
|
})), studentPrintMode ? printView : React$1.createElement(Readable, {
|
|
11977
11988
|
false: true,
|
|
11978
11989
|
__self: this,
|
|
11979
11990
|
__source: {
|
|
11980
11991
|
fileName: _jsxFileName,
|
|
11981
|
-
lineNumber:
|
|
11992
|
+
lineNumber: 484
|
|
11982
11993
|
}
|
|
11983
11994
|
}, React$1.createElement('div', {
|
|
11984
11995
|
className: classes.inputAndKeypadContainer,
|
|
11985
11996
|
__self: this,
|
|
11986
11997
|
__source: {
|
|
11987
11998
|
fileName: _jsxFileName,
|
|
11988
|
-
lineNumber:
|
|
11999
|
+
lineNumber: 485
|
|
11989
12000
|
}
|
|
11990
12001
|
}, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
|
|
11991
12002
|
onSimpleResponseChange: this.onSimpleResponseChange,
|
|
@@ -11996,7 +12007,7 @@ class Main extends React$1.Component {
|
|
|
11996
12007
|
__self: this,
|
|
11997
12008
|
__source: {
|
|
11998
12009
|
fileName: _jsxFileName,
|
|
11999
|
-
lineNumber:
|
|
12010
|
+
lineNumber: 487
|
|
12000
12011
|
}
|
|
12001
12012
|
}), responseType === ResponseTypes.advanced && React$1.createElement('div', {
|
|
12002
12013
|
className: cx(classes.expression, {
|
|
@@ -12009,7 +12020,7 @@ class Main extends React$1.Component {
|
|
|
12009
12020
|
__self: this,
|
|
12010
12021
|
__source: {
|
|
12011
12022
|
fileName: _jsxFileName,
|
|
12012
|
-
lineNumber:
|
|
12023
|
+
lineNumber: 497
|
|
12013
12024
|
}
|
|
12014
12025
|
}, React$1.createElement(Tooltip, {
|
|
12015
12026
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -12029,7 +12040,7 @@ class Main extends React$1.Component {
|
|
|
12029
12040
|
__self: this,
|
|
12030
12041
|
__source: {
|
|
12031
12042
|
fileName: _jsxFileName,
|
|
12032
|
-
lineNumber:
|
|
12043
|
+
lineNumber: 517
|
|
12033
12044
|
}
|
|
12034
12045
|
}, React$1.createElement(HorizontalKeypad, {
|
|
12035
12046
|
additionalKeys: additionalKeys,
|
|
@@ -12038,13 +12049,13 @@ class Main extends React$1.Component {
|
|
|
12038
12049
|
__self: this,
|
|
12039
12050
|
__source: {
|
|
12040
12051
|
fileName: _jsxFileName,
|
|
12041
|
-
lineNumber:
|
|
12052
|
+
lineNumber: 526
|
|
12042
12053
|
}
|
|
12043
12054
|
})) || null),
|
|
12044
12055
|
__self: this,
|
|
12045
12056
|
__source: {
|
|
12046
12057
|
fileName: _jsxFileName,
|
|
12047
|
-
lineNumber:
|
|
12058
|
+
lineNumber: 506
|
|
12048
12059
|
}
|
|
12049
12060
|
}, React$1.createElement(mq.Static, {
|
|
12050
12061
|
className: classes.static,
|
|
@@ -12058,7 +12069,7 @@ class Main extends React$1.Component {
|
|
|
12058
12069
|
__self: this,
|
|
12059
12070
|
__source: {
|
|
12060
12071
|
fileName: _jsxFileName,
|
|
12061
|
-
lineNumber:
|
|
12072
|
+
lineNumber: 536
|
|
12062
12073
|
}
|
|
12063
12074
|
}))))), viewMode && displayNote && React$1.createElement('div', {
|
|
12064
12075
|
className: classes.note,
|
|
@@ -12068,7 +12079,7 @@ class Main extends React$1.Component {
|
|
|
12068
12079
|
__self: this,
|
|
12069
12080
|
__source: {
|
|
12070
12081
|
fileName: _jsxFileName,
|
|
12071
|
-
lineNumber:
|
|
12082
|
+
lineNumber: 554
|
|
12072
12083
|
}
|
|
12073
12084
|
}), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12074
12085
|
labels: {
|
|
@@ -12078,7 +12089,7 @@ class Main extends React$1.Component {
|
|
|
12078
12089
|
__self: this,
|
|
12079
12090
|
__source: {
|
|
12080
12091
|
fileName: _jsxFileName,
|
|
12081
|
-
lineNumber:
|
|
12092
|
+
lineNumber: 561
|
|
12082
12093
|
}
|
|
12083
12094
|
}, React$1.createElement('div', {
|
|
12084
12095
|
dangerouslySetInnerHTML: {
|
|
@@ -12087,7 +12098,7 @@ class Main extends React$1.Component {
|
|
|
12087
12098
|
__self: this,
|
|
12088
12099
|
__source: {
|
|
12089
12100
|
fileName: _jsxFileName,
|
|
12090
|
-
lineNumber:
|
|
12101
|
+
lineNumber: 562
|
|
12091
12102
|
}
|
|
12092
12103
|
})) : React$1.createElement('div', {
|
|
12093
12104
|
dangerouslySetInnerHTML: {
|
|
@@ -12096,7 +12107,7 @@ class Main extends React$1.Component {
|
|
|
12096
12107
|
__self: this,
|
|
12097
12108
|
__source: {
|
|
12098
12109
|
fileName: _jsxFileName,
|
|
12099
|
-
lineNumber:
|
|
12110
|
+
lineNumber: 565
|
|
12100
12111
|
}
|
|
12101
12112
|
})));
|
|
12102
12113
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
|
|
@@ -12110,14 +12121,14 @@ class Main extends React$1.Component {
|
|
|
12110
12121
|
__self: this,
|
|
12111
12122
|
__source: {
|
|
12112
12123
|
fileName: _jsxFileName,
|
|
12113
|
-
lineNumber:
|
|
12124
|
+
lineNumber: 585
|
|
12114
12125
|
}
|
|
12115
12126
|
}, React$1.createElement('div', {
|
|
12116
12127
|
className: classes.main,
|
|
12117
12128
|
__self: this,
|
|
12118
12129
|
__source: {
|
|
12119
12130
|
fileName: _jsxFileName,
|
|
12120
|
-
lineNumber:
|
|
12131
|
+
lineNumber: 586
|
|
12121
12132
|
}
|
|
12122
12133
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
12123
12134
|
language: language,
|
|
@@ -12128,7 +12139,7 @@ class Main extends React$1.Component {
|
|
|
12128
12139
|
__self: this,
|
|
12129
12140
|
__source: {
|
|
12130
12141
|
fileName: _jsxFileName,
|
|
12131
|
-
lineNumber:
|
|
12142
|
+
lineNumber: 588
|
|
12132
12143
|
}
|
|
12133
12144
|
})), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
|
|
12134
12145
|
className: classes.collapsible,
|
|
@@ -12140,14 +12151,14 @@ class Main extends React$1.Component {
|
|
|
12140
12151
|
__self: this,
|
|
12141
12152
|
__source: {
|
|
12142
12153
|
fileName: _jsxFileName,
|
|
12143
|
-
lineNumber:
|
|
12154
|
+
lineNumber: 599
|
|
12144
12155
|
}
|
|
12145
12156
|
}, React$1.createElement(PreviewPrompt, {
|
|
12146
12157
|
prompt: teacherInstructions,
|
|
12147
12158
|
__self: this,
|
|
12148
12159
|
__source: {
|
|
12149
12160
|
fileName: _jsxFileName,
|
|
12150
|
-
lineNumber:
|
|
12161
|
+
lineNumber: 607
|
|
12151
12162
|
}
|
|
12152
12163
|
})), displayNote && hasText(note) && React$1.createElement(Collapsible, {
|
|
12153
12164
|
className: classes.collapsible,
|
|
@@ -12163,14 +12174,14 @@ class Main extends React$1.Component {
|
|
|
12163
12174
|
__self: this,
|
|
12164
12175
|
__source: {
|
|
12165
12176
|
fileName: _jsxFileName,
|
|
12166
|
-
lineNumber:
|
|
12177
|
+
lineNumber: 611
|
|
12167
12178
|
}
|
|
12168
12179
|
}, React$1.createElement(PreviewPrompt, {
|
|
12169
12180
|
prompt: note,
|
|
12170
12181
|
__self: this,
|
|
12171
12182
|
__source: {
|
|
12172
12183
|
fileName: _jsxFileName,
|
|
12173
|
-
lineNumber:
|
|
12184
|
+
lineNumber: 619
|
|
12174
12185
|
}
|
|
12175
12186
|
})), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
|
|
12176
12187
|
className: classes.collapsible,
|
|
@@ -12182,14 +12193,14 @@ class Main extends React$1.Component {
|
|
|
12182
12193
|
__self: this,
|
|
12183
12194
|
__source: {
|
|
12184
12195
|
fileName: _jsxFileName,
|
|
12185
|
-
lineNumber:
|
|
12196
|
+
lineNumber: 624
|
|
12186
12197
|
}
|
|
12187
12198
|
}, React$1.createElement(PreviewPrompt, {
|
|
12188
12199
|
prompt: rationale,
|
|
12189
12200
|
__self: this,
|
|
12190
12201
|
__source: {
|
|
12191
12202
|
fileName: _jsxFileName,
|
|
12192
|
-
lineNumber:
|
|
12203
|
+
lineNumber: 632
|
|
12193
12204
|
}
|
|
12194
12205
|
})), feedback && React$1.createElement(Feedback, {
|
|
12195
12206
|
correctness: correctness.correctness,
|
|
@@ -12197,13 +12208,13 @@ class Main extends React$1.Component {
|
|
|
12197
12208
|
__self: this,
|
|
12198
12209
|
__source: {
|
|
12199
12210
|
fileName: _jsxFileName,
|
|
12200
|
-
lineNumber:
|
|
12211
|
+
lineNumber: 636
|
|
12201
12212
|
}
|
|
12202
12213
|
})),
|
|
12203
12214
|
__self: this,
|
|
12204
12215
|
__source: {
|
|
12205
12216
|
fileName: _jsxFileName,
|
|
12206
|
-
lineNumber:
|
|
12217
|
+
lineNumber: 578
|
|
12207
12218
|
}
|
|
12208
12219
|
}, React$1.createElement('div', {
|
|
12209
12220
|
className: classes.mainContainer,
|
|
@@ -12211,7 +12222,7 @@ class Main extends React$1.Component {
|
|
|
12211
12222
|
__self: this,
|
|
12212
12223
|
__source: {
|
|
12213
12224
|
fileName: _jsxFileName,
|
|
12214
|
-
lineNumber:
|
|
12225
|
+
lineNumber: 640
|
|
12215
12226
|
}
|
|
12216
12227
|
}, midContent));
|
|
12217
12228
|
}
|
|
@@ -12221,7 +12232,7 @@ class Main extends React$1.Component {
|
|
|
12221
12232
|
__self: this,
|
|
12222
12233
|
__source: {
|
|
12223
12234
|
fileName: _jsxFileName,
|
|
12224
|
-
lineNumber:
|
|
12235
|
+
lineNumber: 648
|
|
12225
12236
|
}
|
|
12226
12237
|
}, midContent);
|
|
12227
12238
|
}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "7.
|
|
7
|
+
"version": "7.7.1-next.12+9df520faa",
|
|
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": "1.8.
|
|
17
|
+
"@pie-lib/pie-toolbox": "1.8.4",
|
|
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": "
|
|
27
|
+
"gitHead": "9df520faa7b811c0f662aabd9622f1a8ca45e468",
|
|
28
28
|
"module": "src/index.js",
|
|
29
29
|
"exports": {
|
|
30
30
|
".": "./src/index.js",
|