@pie-element/math-inline 5.8.4 → 5.8.9
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 +24 -0
- package/configure/CHANGELOG.md +48 -0
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +1 -1
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +34 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/package.json +1 -1
- package/lib/main.js +38 -14
- package/lib/main.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
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
|
+
## [5.8.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@5.8.8...@pie-element/math-inline@5.8.9) (2021-12-13)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-inline
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [5.8.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@5.8.5...@pie-element/math-inline@5.8.6) (2021-11-29)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-inline
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [5.8.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@5.8.4...@pie-element/math-inline@5.8.5) (2021-11-11)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/math-inline
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [5.8.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@5.8.3...@pie-element/math-inline@5.8.4) (2021-11-01)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @pie-element/math-inline
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,54 @@
|
|
|
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
|
+
## [5.6.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@5.6.4...@pie-element/math-inline-configure@5.6.5) (2021-12-13)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-inline-configure
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [5.6.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@5.6.1...@pie-element/math-inline-configure@5.6.2) (2021-11-29)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-inline-configure
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [5.6.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@5.5.4...@pie-element/math-inline-configure@5.6.1) (2021-11-11)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/math-inline-configure
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# [5.6.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@5.4.3...@pie-element/math-inline-configure@5.6.0) (2021-11-11)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* **math-inline:** do not hide math editor when focus is still on response template ([ef07786](https://github.com/pie-framework/pie-elements/commit/ef07786306c1d287b648000b0a2a0223cec3760c))
|
|
36
|
+
* **math-inline:** make response area button to fit in response template area ([efaa45d](https://github.com/pie-framework/pie-elements/commit/efaa45d2dc936c8d3dec6158e1e2e22392025e31))
|
|
37
|
+
* pie-lib updates ([e521c2f](https://github.com/pie-framework/pie-elements/commit/e521c2f1a44aa7f3e14f82a1cee05ceb484ed0a6))
|
|
38
|
+
* Updated pie-lib versions ([2fe4c5d](https://github.com/pie-framework/pie-elements/commit/2fe4c5d0be2d40f5fdb34815855695a7f1087f56))
|
|
39
|
+
* Updated pie-lib versions ([1c23830](https://github.com/pie-framework/pie-elements/commit/1c23830fc75d1de5f7bb3bb16de3c665ae5fa350))
|
|
40
|
+
* **math-inline:** show add alternate button for both literal and symbolic validation PD-333 ([0cf44c8](https://github.com/pie-framework/pie-elements/commit/0cf44c8bae938eae9d4cf92b341f1cb3085cffd2))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Features
|
|
44
|
+
|
|
45
|
+
* **math-inline:** added option to set toolbar editor position ([01282e4](https://github.com/pie-framework/pie-elements/commit/01282e4a07d200f7b81c684a11b51aa1f226ddeb))
|
|
46
|
+
* **math-inline:** Displayed a message when the item has additional correct responses PD-198 - BREAKING CHANGE: Added note property to the model ([7fce264](https://github.com/pie-framework/pie-elements/commit/7fce2649a9c8ddae2eb6643e5d5e9d307233a23b))
|
|
47
|
+
* **math-inline:** toolbar editor position - change double quotes into single quotes ([9a1edfa](https://github.com/pie-framework/pie-elements/commit/9a1edfa965187230b70c915075ab23d33738ea15))
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
6
54
|
## [5.5.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@5.5.3...@pie-element/math-inline-configure@5.5.4) (2021-10-18)
|
|
7
55
|
|
|
8
56
|
**Note:** Version bump only for package @pie-element/math-inline-configure
|
|
@@ -30,7 +30,7 @@ var _default = {
|
|
|
30
30
|
type: 'none'
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
|
-
equationEditor: '
|
|
33
|
+
equationEditor: '8',
|
|
34
34
|
expression: '',
|
|
35
35
|
rationale: 'Rationale goes here.',
|
|
36
36
|
note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","partialScoring","responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","equationEditor","expression","rationale","note","prompt","responses","customKeys","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","validationDefault","ignoreOrderDefault","allowTrailingZerosDefault","configuration","settings","label","studentInstructions","teacherInstructions","ignoreOrder","enabled","allowTrailingZeros"],"mappings":";;;;;;;AAAA;;AAEA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,cAAc,EAAE,IADX;AAELC,IAAAA,YAAY,EAAEC,qBAAcC,QAFvB;AAGLC,IAAAA,OAAO,EAAE,aAHJ;AAILC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,OAAO,EAAE;AACP,mBAAS,SADF;AAEPC,QAAAA,IAAI,EAAE;AAFC,OADD;AAKRC,MAAAA,SAAS,EAAE;AACT,mBAAS,WADA;AAETD,QAAAA,IAAI,EAAE;AAFG,OALH;AASRE,MAAAA,OAAO,EAAE;AACP,mBAAS,QADF;AAEPF,QAAAA,IAAI,EAAE;AAFC;AATD,KAJL;AAkBLG,IAAAA,cAAc,EAAE,GAlBX;AAmBLC,IAAAA,UAAU,EAAE,EAnBP;AAoBLC,IAAAA,SAAS,EAAE,sBApBN;AAqBLC,IAAAA,IAAI,EACF,kJAtBG;AAuBLC,IAAAA,MAAM,EAAE,EAvBH;AAwBLC,IAAAA,SAAS,EAAE,EAxBN;AAyBLC,IAAAA,UAAU,EAAE,EAzBP;AA0BLC,IAAAA,WAAW,EAAE,MA1BR;AA2BLC,IAAAA,eAAe,EAAE,IA3BZ;AA4BLC,IAAAA,aAAa,EAAE,IA5BV;AA6BLC,IAAAA,gBAAgB,EAAE,IA7Bb;AA8BLC,IAAAA,0BAA0B,EAAE,IA9BvB;AA+BLC,IAAAA,0BAA0B,EAAE,IA/BvB;AAgCLC,IAAAA,qBAAqB,EAAE,QAhClB;AAiCLC,IAAAA,iBAAiB,EAAE,SAjCd;AAkCLC,IAAAA,kBAAkB,EAAE,KAlCf;AAmCLC,IAAAA,yBAAyB,EAAE;AAnCtB,GADM;AAsCbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbxB,IAAAA,QAAQ,EAAE;AACRuB,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KALG;AASb5B,IAAAA,YAAY,EAAE;AACZ2B,MAAAA,QAAQ,EAAE,IADE;AAEZC,MAAAA,KAAK,EAAE;AAFK,KATD;AAabjB,IAAAA,SAAS,EAAE;AACTgB,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAbE;AAiBbZ,IAAAA,WAAW,EAAE;AACXW,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KAjBA;AAqBbC,IAAAA,mBAAmB,EAAE;AACnBF,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KArBR;AAyBbE,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6Bb7B,IAAAA,cAAc,EAAE;AACd4B,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KA7BH;AAiCbG,IAAAA,WAAW,EAAE;AACXJ,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE,cAFI;AAGXI,MAAAA,OAAO,EAAE;AAHE,KAjCA;AAsCbC,IAAAA,kBAAkB,EAAE;AAClBN,MAAAA,QAAQ,EAAE,KADQ;AAElBC,MAAAA,KAAK,EAAE,sBAFW;AAGlBI,MAAAA,OAAO,EAAE;AAHS;AAtCP;AAtCF,C","sourcesContent":["import { ResponseTypes } from './utils';\n\n/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\n\nexport default {\n model: {\n partialScoring: true,\n responseType: ResponseTypes.advanced,\n element: 'math-inline',\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n equationEditor: '
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","partialScoring","responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","equationEditor","expression","rationale","note","prompt","responses","customKeys","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","validationDefault","ignoreOrderDefault","allowTrailingZerosDefault","configuration","settings","label","studentInstructions","teacherInstructions","ignoreOrder","enabled","allowTrailingZeros"],"mappings":";;;;;;;AAAA;;AAEA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,cAAc,EAAE,IADX;AAELC,IAAAA,YAAY,EAAEC,qBAAcC,QAFvB;AAGLC,IAAAA,OAAO,EAAE,aAHJ;AAILC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,OAAO,EAAE;AACP,mBAAS,SADF;AAEPC,QAAAA,IAAI,EAAE;AAFC,OADD;AAKRC,MAAAA,SAAS,EAAE;AACT,mBAAS,WADA;AAETD,QAAAA,IAAI,EAAE;AAFG,OALH;AASRE,MAAAA,OAAO,EAAE;AACP,mBAAS,QADF;AAEPF,QAAAA,IAAI,EAAE;AAFC;AATD,KAJL;AAkBLG,IAAAA,cAAc,EAAE,GAlBX;AAmBLC,IAAAA,UAAU,EAAE,EAnBP;AAoBLC,IAAAA,SAAS,EAAE,sBApBN;AAqBLC,IAAAA,IAAI,EACF,kJAtBG;AAuBLC,IAAAA,MAAM,EAAE,EAvBH;AAwBLC,IAAAA,SAAS,EAAE,EAxBN;AAyBLC,IAAAA,UAAU,EAAE,EAzBP;AA0BLC,IAAAA,WAAW,EAAE,MA1BR;AA2BLC,IAAAA,eAAe,EAAE,IA3BZ;AA4BLC,IAAAA,aAAa,EAAE,IA5BV;AA6BLC,IAAAA,gBAAgB,EAAE,IA7Bb;AA8BLC,IAAAA,0BAA0B,EAAE,IA9BvB;AA+BLC,IAAAA,0BAA0B,EAAE,IA/BvB;AAgCLC,IAAAA,qBAAqB,EAAE,QAhClB;AAiCLC,IAAAA,iBAAiB,EAAE,SAjCd;AAkCLC,IAAAA,kBAAkB,EAAE,KAlCf;AAmCLC,IAAAA,yBAAyB,EAAE;AAnCtB,GADM;AAsCbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbxB,IAAAA,QAAQ,EAAE;AACRuB,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KALG;AASb5B,IAAAA,YAAY,EAAE;AACZ2B,MAAAA,QAAQ,EAAE,IADE;AAEZC,MAAAA,KAAK,EAAE;AAFK,KATD;AAabjB,IAAAA,SAAS,EAAE;AACTgB,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAbE;AAiBbZ,IAAAA,WAAW,EAAE;AACXW,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KAjBA;AAqBbC,IAAAA,mBAAmB,EAAE;AACnBF,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KArBR;AAyBbE,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6Bb7B,IAAAA,cAAc,EAAE;AACd4B,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KA7BH;AAiCbG,IAAAA,WAAW,EAAE;AACXJ,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE,cAFI;AAGXI,MAAAA,OAAO,EAAE;AAHE,KAjCA;AAsCbC,IAAAA,kBAAkB,EAAE;AAClBN,MAAAA,QAAQ,EAAE,KADQ;AAElBC,MAAAA,KAAK,EAAE,sBAFW;AAGlBI,MAAAA,OAAO,EAAE;AAHS;AAtCP;AAtCF,C","sourcesContent":["import { ResponseTypes } from './utils';\n\n/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\n\nexport default {\n model: {\n partialScoring: true,\n responseType: ResponseTypes.advanced,\n element: 'math-inline',\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n equationEditor: '8',\n expression: '',\n rationale: 'Rationale goes here.',\n note:\n 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',\n prompt: '',\n responses: [],\n customKeys: [],\n scoringType: 'auto',\n feedbackEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n validationDefault: 'literal',\n ignoreOrderDefault: false,\n allowTrailingZerosDefault: false,\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n },\n responseType: {\n settings: true,\n label: 'Response type',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n ignoreOrder: {\n settings: false,\n label: 'Ignore Order',\n enabled: true,\n },\n allowTrailingZeros: {\n settings: false,\n label: 'Allow Trailing Zeros',\n enabled: true\n },\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -395,7 +395,7 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
395
395
|
expression = model.expression,
|
|
396
396
|
equationEditor = model.equationEditor,
|
|
397
397
|
_model$promptEquation = model.promptEquationEditor,
|
|
398
|
-
promptEquationEditor = _model$promptEquation === void 0 ? '
|
|
398
|
+
promptEquationEditor = _model$promptEquation === void 0 ? '8' : _model$promptEquation,
|
|
399
399
|
responses = model.responses,
|
|
400
400
|
responseType = model.responseType,
|
|
401
401
|
rationale = model.rationale;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/general-config-block.jsx"],"names":["registered","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flexDirection","templateTitle","fontSize","addResponseButton","border","width","flexContainer","alignItems","justifyContent","selectContainer","flex","inputContainer","responseEditor","minWidth","maxWidth","height","minHeight","textAlign","padding","promptHolder","paddingBottom","prompt","paddingTop","blockContainer","margin","blockContainerGeneric","blockResponse","color","background","borderRight","blockResponseGeneric","blockMath","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","props","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","state","root","Object","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","textContent","responseIdCounter","newCounter","responses","find","response","id","validation","answer","alternates","concat","index","classes","window","registerEmbed","data","genericAnswerBlock","htmlString","text","latex","handleAnswerBlockDomUpdate","imageSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","equationEditor","promptEquationEditor","responseType","rationale","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","r","label","onPromptFocus","math","controlledKeypadMode","select","onFocus","onDone","map","simple","onResponseChange","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport isEqual from 'lodash/isEqual';\nimport { ResponseTypes } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\n\nlet registered = false;\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n },\n templateTitle: {\n fontSize: '0.85rem',\n },\n addResponseButton: {\n border: '1px solid lightgrey',\n float: 'right',\n width: '150px',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n selectContainer: {\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 4,\n display: 'flex',\n flexDirection: 'column',\n width: '90%',\n },\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: 'inherit',\n height: 'auto',\n minHeight: '130px',\n textAlign: 'left',\n padding: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\n },\n blockContainerGeneric: {\n margin: theme.spacing.unit / 2,\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: 'lightgrey',\n fontSize: '0.8rem',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: '2px solid grey',\n },\n blockResponseGeneric: {\n borderRight: 0,\n },\n blockMath: {\n color: '#bdbdbd',\n padding: theme.spacing.unit / 2,\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});\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression.replace(\n REGEX,\n () => `\\\\embed{answerBlock}[r${answerBlocks++}]`\n ).replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n // not used until we implement individual answer tracking\n // const individualAnswerBlock = `<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\n const genericAnswerBlock = `<div class=\"${cx(\n classes.blockContainer,\n classes.blockContainerGeneric\n )}\">\n <div class=\"${cx(\n classes.blockResponse,\n classes.blockResponseGeneric\n )}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas, \n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n }\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = 'miscellaneous',\n responses,\n responseType,\n rationale,\n } = model;\n const { rationale: cRationale = {}, prompt: cPrompt = {}, ignoreOrder: cIgnoreOrder = {}, allowTrailingZeros: cAllowTrailingZeros = {} } = configuration || {};\n\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n\n const responsesToUse =\n responseType === ResponseTypes.advanced\n ? responses\n : responses.slice(0, 1);\n\n return (\n <div\n ref={(r) => (this.root = r || this.root)}\n className={classes.container}\n >\n {promptEnabled && (\n <InputContainer label={cPrompt.label} className={classes.promptHolder}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n className={classes.prompt}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {rationaleEnabled && (\n <InputContainer\n label={cRationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={rationale || ''}\n pluginProps={{\n math: {\n controlledKeypadMode: false\n }\n }}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {responseType === ResponseTypes.advanced && ([\n <InputContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n >\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'miscellaneous'}>Miscellaneous</MenuItem>\n </Select>\n </InputContainer>,\n <div className={classes.inputContainer} key=\"templateHolder\">\n <InputLabel className={classes.templateTitle}>\n RESPONSE TEMPLATE\n </InputLabel>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n ])}\n <h3>Define Correct Response</h3>\n <div className={classes.flexContainer}>\n <InputContainer\n label=\"Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('equationEditor')}\n value={equationEditor}\n >\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'miscellaneous'}>Miscellaneous</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n />\n ))}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
|
|
1
|
+
{"version":3,"sources":["../src/general-config-block.jsx"],"names":["registered","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flexDirection","templateTitle","fontSize","addResponseButton","border","width","flexContainer","alignItems","justifyContent","selectContainer","flex","inputContainer","responseEditor","minWidth","maxWidth","height","minHeight","textAlign","padding","promptHolder","paddingBottom","prompt","paddingTop","blockContainer","margin","blockContainerGeneric","blockResponse","color","background","borderRight","blockResponseGeneric","blockMath","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","props","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","state","root","Object","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","textContent","responseIdCounter","newCounter","responses","find","response","id","validation","answer","alternates","concat","index","classes","window","registerEmbed","data","genericAnswerBlock","htmlString","text","latex","handleAnswerBlockDomUpdate","imageSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","equationEditor","promptEquationEditor","responseType","rationale","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","r","label","onPromptFocus","math","controlledKeypadMode","select","onFocus","onDone","map","simple","onResponseChange","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport isEqual from 'lodash/isEqual';\nimport { ResponseTypes } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\n\nlet registered = false;\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n },\n templateTitle: {\n fontSize: '0.85rem',\n },\n addResponseButton: {\n border: '1px solid lightgrey',\n float: 'right',\n width: '150px',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n selectContainer: {\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 4,\n display: 'flex',\n flexDirection: 'column',\n width: '90%',\n },\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: 'inherit',\n height: 'auto',\n minHeight: '130px',\n textAlign: 'left',\n padding: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\n },\n blockContainerGeneric: {\n margin: theme.spacing.unit / 2,\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: 'lightgrey',\n fontSize: '0.8rem',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: '2px solid grey',\n },\n blockResponseGeneric: {\n borderRight: 0,\n },\n blockMath: {\n color: '#bdbdbd',\n padding: theme.spacing.unit / 2,\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});\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression.replace(\n REGEX,\n () => `\\\\embed{answerBlock}[r${answerBlocks++}]`\n ).replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n // not used until we implement individual answer tracking\n // const individualAnswerBlock = `<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\n const genericAnswerBlock = `<div class=\"${cx(\n classes.blockContainer,\n classes.blockContainerGeneric\n )}\">\n <div class=\"${cx(\n classes.blockResponse,\n classes.blockResponseGeneric\n )}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n }\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n } = model;\n const { rationale: cRationale = {}, prompt: cPrompt = {}, ignoreOrder: cIgnoreOrder = {}, allowTrailingZeros: cAllowTrailingZeros = {} } = configuration || {};\n\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n\n const responsesToUse =\n responseType === ResponseTypes.advanced\n ? responses\n : responses.slice(0, 1);\n\n return (\n <div\n ref={(r) => (this.root = r || this.root)}\n className={classes.container}\n >\n {promptEnabled && (\n <InputContainer label={cPrompt.label} className={classes.promptHolder}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n className={classes.prompt}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {rationaleEnabled && (\n <InputContainer\n label={cRationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={rationale || ''}\n pluginProps={{\n math: {\n controlledKeypadMode: false\n }\n }}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {responseType === ResponseTypes.advanced && ([\n <InputContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n >\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'miscellaneous'}>Miscellaneous</MenuItem>\n </Select>\n </InputContainer>,\n <div className={classes.inputContainer} key=\"templateHolder\">\n <InputLabel className={classes.templateTitle}>\n RESPONSE TEMPLATE\n </InputLabel>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n ])}\n <h3>Define Correct Response</h3>\n <div className={classes.flexContainer}>\n <InputContainer\n label=\"Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('equationEditor')}\n value={equationEditor}\n >\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'miscellaneous'}>Miscellaneous</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n />\n ))}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
|
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": "5.5
|
|
4
|
+
"version": "5.6.5",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@material-ui/icons": "^3.0.1",
|
|
12
12
|
"@pie-framework/mathquill": "^1.1.0",
|
|
13
13
|
"@pie-framework/pie-configure-events": "^1.2.0",
|
|
14
|
-
"@pie-lib/config-ui": "^10.10.
|
|
15
|
-
"@pie-lib/editable-html": "^7.17.
|
|
14
|
+
"@pie-lib/config-ui": "^10.10.13",
|
|
15
|
+
"@pie-lib/editable-html": "^7.17.13",
|
|
16
16
|
"@pie-lib/math-input": "^6.6.6",
|
|
17
17
|
"@pie-lib/math-toolbar": "^1.8.6",
|
|
18
18
|
"classnames": "^2.2.5",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,40 @@
|
|
|
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
|
+
## [5.6.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.1...@pie-element/math-inline-controller@5.6.2) (2021-11-29)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [5.6.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.4...@pie-element/math-inline-controller@5.6.1) (2021-11-11)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [5.6.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.3...@pie-element/math-inline-controller@5.6.0) (2021-11-11)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **math-inline:** Evaluate should not highlight answers when no correct response is defined + refactoring PD-994 ([58bfe7c](https://github.com/pie-framework/pie-elements/commit/58bfe7c209da39a31b20d2d905d14b5697aa5375))
|
|
28
|
+
* **math-inline:** Initialized correctResponse in evaluate mode ([27161c1](https://github.com/pie-framework/pie-elements/commit/27161c154c2dcc7bfd2a3cb3d7f8ec158f23beb8))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* **math-inline:** Displayed a message when the item has additional correct responses PD-198 - BREAKING CHANGE: Added note property to the model ([7fce264](https://github.com/pie-framework/pie-elements/commit/7fce2649a9c8ddae2eb6643e5d5e9d307233a23b))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
6
40
|
## [5.5.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.3...@pie-element/math-inline-controller@5.5.4) (2021-11-01)
|
|
7
41
|
|
|
8
42
|
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
@@ -25,7 +25,7 @@ var _default = {
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
|
|
28
|
-
equationEditor: '
|
|
28
|
+
equationEditor: '8',
|
|
29
29
|
expression: '',
|
|
30
30
|
question: '',
|
|
31
31
|
responses: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","note","equationEditor","expression","question","responses","customKeys"],"mappings":";;;;;;;AAAA;;eAEe;AACbA,EAAAA,YAAY,EAAEC,qBAAcC,QADf;AAEbC,EAAAA,OAAO,EAAE,aAFI;AAGbC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACP,iBAAS,SADF;AAEPC,MAAAA,IAAI,EAAE;AAFC,KADD;AAKRC,IAAAA,SAAS,EAAE;AACT,iBAAS,WADA;AAETD,MAAAA,IAAI,EAAE;AAFG,KALH;AASRE,IAAAA,OAAO,EAAE;AACP,iBAAS,QADF;AAEPF,MAAAA,IAAI,EAAE;AAFC;AATD,GAHG;AAiBbG,EAAAA,IAAI,EAAE,kJAjBO;AAkBbC,EAAAA,cAAc,EAAE,GAlBH;AAmBbC,EAAAA,UAAU,EAAE,EAnBC;AAoBbC,EAAAA,QAAQ,EAAE,EApBG;AAqBbC,EAAAA,SAAS,EAAE,EArBE;AAsBbC,EAAAA,UAAU,EAAE;AAtBC,C","sourcesContent":["import { ResponseTypes } from './utils';\n\nexport default {\n responseType: ResponseTypes.advanced,\n element: 'math-inline',\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none'\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none'\n },\n partial: {\n default: 'Nearly',\n type: 'none'\n }\n },\n note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',\n equationEditor: '
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","note","equationEditor","expression","question","responses","customKeys"],"mappings":";;;;;;;AAAA;;eAEe;AACbA,EAAAA,YAAY,EAAEC,qBAAcC,QADf;AAEbC,EAAAA,OAAO,EAAE,aAFI;AAGbC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACP,iBAAS,SADF;AAEPC,MAAAA,IAAI,EAAE;AAFC,KADD;AAKRC,IAAAA,SAAS,EAAE;AACT,iBAAS,WADA;AAETD,MAAAA,IAAI,EAAE;AAFG,KALH;AASRE,IAAAA,OAAO,EAAE;AACP,iBAAS,QADF;AAEPF,MAAAA,IAAI,EAAE;AAFC;AATD,GAHG;AAiBbG,EAAAA,IAAI,EAAE,kJAjBO;AAkBbC,EAAAA,cAAc,EAAE,GAlBH;AAmBbC,EAAAA,UAAU,EAAE,EAnBC;AAoBbC,EAAAA,QAAQ,EAAE,EApBG;AAqBbC,EAAAA,SAAS,EAAE,EArBE;AAsBbC,EAAAA,UAAU,EAAE;AAtBC,C","sourcesContent":["import { ResponseTypes } from './utils';\n\nexport default {\n responseType: ResponseTypes.advanced,\n element: 'math-inline',\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none'\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none'\n },\n partial: {\n default: 'Nearly',\n type: 'none'\n }\n },\n note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',\n equationEditor: '8',\n expression: '',\n question: '',\n responses: [],\n customKeys: []\n};\n"],"file":"defaults.js"}
|
package/controller/package.json
CHANGED
package/lib/main.js
CHANGED
|
@@ -345,6 +345,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
345
345
|
_ref4$config = _ref4.config,
|
|
346
346
|
nextConfig = _ref4$config === void 0 ? {} : _ref4$config;
|
|
347
347
|
|
|
348
|
+
if (config.env && config.env.mode !== 'evaluate' || nextConfig.env && nextConfig.env.mode !== 'evaluate') {
|
|
349
|
+
this.setState(_objectSpread(_objectSpread({}, this.state.session), {}, {
|
|
350
|
+
showCorrect: false
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
|
|
348
354
|
if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
|
|
349
355
|
var newAnswers = {};
|
|
350
356
|
var answers = this.state.session.answers;
|
|
@@ -446,15 +452,14 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
446
452
|
var additionalKeys = generateAdditionalKeys(customKeys);
|
|
447
453
|
var correct = correctness && correctness.correct;
|
|
448
454
|
var staticLatex = prepareForStatic(model, this.state) || '';
|
|
455
|
+
var viewMode = disabled && !correctness;
|
|
449
456
|
|
|
450
457
|
var midContent = /*#__PURE__*/_react["default"].createElement("div", {
|
|
451
458
|
className: classes.main
|
|
452
459
|
}, prompt && /*#__PURE__*/_react["default"].createElement("div", {
|
|
453
460
|
className: classes.content
|
|
454
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
455
|
-
|
|
456
|
-
__html: prompt
|
|
457
|
-
}
|
|
461
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
462
|
+
prompt: prompt
|
|
458
463
|
})), /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
|
|
459
464
|
"false": true
|
|
460
465
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -502,7 +507,25 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
502
507
|
setInput: this.setInput,
|
|
503
508
|
onSubFieldFocus: this.onSubFieldFocus,
|
|
504
509
|
onBlur: this.onBlur
|
|
505
|
-
}))))),
|
|
510
|
+
}))))), viewMode && teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
511
|
+
labels: {
|
|
512
|
+
hidden: 'Show Teacher Instructions',
|
|
513
|
+
visible: 'Hide Teacher Instructions'
|
|
514
|
+
}
|
|
515
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
516
|
+
dangerouslySetInnerHTML: {
|
|
517
|
+
__html: teacherInstructions
|
|
518
|
+
}
|
|
519
|
+
})), /*#__PURE__*/_react["default"].createElement("br", null)), viewMode && rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
520
|
+
labels: {
|
|
521
|
+
hidden: 'Show Rationale',
|
|
522
|
+
visible: 'Hide Rationale'
|
|
523
|
+
}
|
|
524
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
525
|
+
dangerouslySetInnerHTML: {
|
|
526
|
+
__html: rationale
|
|
527
|
+
}
|
|
528
|
+
})), displayNote && /*#__PURE__*/_react["default"].createElement("div", {
|
|
506
529
|
className: classes.note,
|
|
507
530
|
dangerouslySetInnerHTML: {
|
|
508
531
|
__html: "<strong>Note:</strong> ".concat(note)
|
|
@@ -530,10 +553,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
530
553
|
visible: 'Hide Teacher Instructions'
|
|
531
554
|
},
|
|
532
555
|
className: classes.collapsible
|
|
533
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
534
|
-
|
|
535
|
-
__html: teacherInstructions
|
|
536
|
-
}
|
|
556
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
557
|
+
prompt: teacherInstructions
|
|
537
558
|
})), /*#__PURE__*/_react["default"].createElement("br", {
|
|
538
559
|
key: "br"
|
|
539
560
|
})], rationale && (0, _renderUi.hasText)(rationale) && [/*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
@@ -542,10 +563,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
542
563
|
hidden: 'Show Rationale',
|
|
543
564
|
visible: 'Hide Rationale'
|
|
544
565
|
}
|
|
545
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
546
|
-
|
|
547
|
-
__html: rationale
|
|
548
|
-
}
|
|
566
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
567
|
+
prompt: rationale
|
|
549
568
|
})), /*#__PURE__*/_react["default"].createElement("br", {
|
|
550
569
|
key: "br"
|
|
551
570
|
})], feedback && /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
|
|
@@ -589,7 +608,12 @@ var styles = function styles(theme) {
|
|
|
589
608
|
color: _renderUi.color.text(),
|
|
590
609
|
padding: theme.spacing.unit * 2,
|
|
591
610
|
border: "1px solid ".concat(_renderUi.color.secondary()),
|
|
592
|
-
fontSize: '16px'
|
|
611
|
+
fontSize: '16px',
|
|
612
|
+
'& :not(.MathJax) > table tr': {
|
|
613
|
+
'&:nth-child(2n)': {
|
|
614
|
+
backgroundColor: 'unset !important'
|
|
615
|
+
}
|
|
616
|
+
}
|
|
593
617
|
},
|
|
594
618
|
tooltipPopper: {
|
|
595
619
|
opacity: 1
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["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","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","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","newAnswers","nextState","sameModel","sameState","setTimeout","ref","div","document","firstChild","setAttribute","correctness","teacherInstructions","rationale","feedback","showNote","note","prompt","responseType","customKeys","env","mode","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","ResponseTypes","simple","staticLatex","midContent","main","content","__html","inputAndKeypadContainer","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","tooltipPopper","toggle","toggleShowCorrect","hidden","visible","collapsible","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","display","background","color","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","backgroundColor","title","marginBottom","zIndex","minWidth","maxWidth","margin","top","lineHeight","left","right","borderTop","letterSpacing","borderColor","flex","alignItems","justifyContent","borderRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { Feedback, Collapsible, Readable, hasText } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/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/render-ui';\nimport isEmpty from 'lodash/isEmpty';\n\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 (\n Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500)\n );\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses } = 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 || '').replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\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: {\n ...props.session,\n answers,\n },\n activeAnswerBlock: '',\n showCorrect: 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 componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n if (\n (config &&\n config.responses &&\n 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:\n (answers &&\n answers[`r${answerBlocks}`] &&\n answers[`r${answerBlocks}`].value) ||\n '',\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 setTimeout(() => renderMath(this.root), 100);\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState(\n (state) => ({ session: { ...state.session, response } }),\n this.callOnSessionChange\n );\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 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 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 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 { config, correctness, disabled, view, teacherInstructions, rationale, feedback } = 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 && responseType !== ResponseTypes.simple;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n\n const midContent = (\n <div className={classes.main}>\n {prompt && (\n <div className={classes.content}>\n <div dangerouslySetInnerHTML={{ __html: prompt }} />\n </div>\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 {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 })}\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 &&\n !(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 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 {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n </div>\n );\n\n if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions || rationale || feedback)) {\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 className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n {teacherInstructions && hasText(teacherInstructions) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>,\n <br key=\"br\"/>,\n ]}\n {rationale && hasText(rationale) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>,\n <br key=\"br\"/>,\n ]}\n {feedback && (\n <Feedback\n correctness={correctness.correctness}\n feedback={feedback}\n />\n )}\n </div>\n }\n >\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n </Tooltip>\n );\n }\n return (\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\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 },\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 padding: theme.spacing.unit / 2,\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 content: {\n marginTop: theme.spacing.unit * 2,\n },\n note: {\n paddingTop: '15px',\n },\n collapsible: {\n marginTop: 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 inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n 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: 'lightgrey',\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 },\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});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["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","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","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","env","mode","newAnswers","nextState","sameModel","sameState","setTimeout","ref","div","document","firstChild","setAttribute","correctness","teacherInstructions","rationale","feedback","showNote","note","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","ResponseTypes","simple","staticLatex","viewMode","midContent","main","content","inputAndKeypadContainer","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","hidden","visible","__html","tooltipPopper","toggle","toggleShowCorrect","collapsible","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","display","background","color","primaryLight","padding","spacing","unit","border","secondary","fontSize","backgroundColor","opacity","marginTop","paddingTop","position","title","marginBottom","zIndex","minWidth","maxWidth","margin","top","lineHeight","left","right","borderTop","letterSpacing","borderColor","flex","alignItems","justifyContent","borderRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport {Feedback, Collapsible, Readable, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/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/render-ui';\nimport isEmpty from 'lodash/isEmpty';\n\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 (\n Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500)\n );\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses } = 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 || '').replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\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: {\n ...props.session,\n answers,\n },\n activeAnswerBlock: '',\n showCorrect: 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 componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\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 (\n (config &&\n config.responses &&\n 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:\n (answers &&\n answers[`r${answerBlocks}`] &&\n answers[`r${answerBlocks}`].value) ||\n '',\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 setTimeout(() => renderMath(this.root), 100);\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState(\n (state) => ({ session: { ...state.session, response } }),\n this.callOnSessionChange\n );\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 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 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 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 { config, correctness, disabled, view, teacherInstructions, rationale, feedback } = 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 && responseType !== ResponseTypes.simple;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n\n const midContent = (\n <div className={classes.main}>\n {prompt && (\n <div className={classes.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\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 {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 })}\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 &&\n !(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 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 viewMode && teacherInstructions && hasText(teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }}/>\n </Collapsible>\n <br />\n </React.Fragment>\n )\n }\n {\n viewMode && rationale && hasText(rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <div dangerouslySetInnerHTML={{ __html: rationale }}/>\n </Collapsible>\n )\n }\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n </div>\n );\n\n if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions || rationale || feedback)) {\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 className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n {teacherInstructions && hasText(teacherInstructions) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>,\n <br key=\"br\"/>,\n ]}\n {rationale && hasText(rationale) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>,\n <br key=\"br\"/>,\n ]}\n {feedback && (\n <Feedback\n correctness={correctness.correctness}\n feedback={feedback}\n />\n )}\n </div>\n }\n >\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n </Tooltip>\n );\n }\n return (\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\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 padding: theme.spacing.unit / 2,\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 content: {\n marginTop: theme.spacing.unit * 2,\n },\n note: {\n paddingTop: '15px',\n },\n collapsible: {\n marginTop: 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 inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n 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: 'lightgrey',\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 },\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});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "5.8.
|
|
7
|
+
"version": "5.8.9",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"description": "",
|
|
10
10
|
"scripts": {
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"@material-ui/core": "^3.9.2",
|
|
16
16
|
"@pie-framework/mathquill": "^1.1.0",
|
|
17
17
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
18
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
18
|
+
"@pie-lib/correct-answer-toggle": "^2.3.33",
|
|
19
19
|
"@pie-lib/math-input": "^6.6.6",
|
|
20
20
|
"@pie-lib/math-toolbar": "^1.8.6",
|
|
21
|
-
"@pie-lib/render-ui": "^4.12.
|
|
21
|
+
"@pie-lib/render-ui": "^4.12.4",
|
|
22
22
|
"classnames": "^2.2.5",
|
|
23
23
|
"debug": "^4.1.1",
|
|
24
24
|
"lodash": "^4.17.10",
|
|
@@ -28,6 +28,6 @@
|
|
|
28
28
|
},
|
|
29
29
|
"author": "",
|
|
30
30
|
"license": "ISC",
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "a1c13d49a8db2188145733261dd177cfb6b617fb",
|
|
32
32
|
"module": "src/index.js"
|
|
33
33
|
}
|