@pie-element/math-inline 5.6.4-next.133 → 5.6.4-next.1332
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 +288 -0
- package/configure/CHANGELOG.md +259 -0
- package/configure/lib/configure.js +39 -10
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/defaults.js +30 -2
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +117 -21
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +31 -3
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/response.js +89 -36
- package/configure/lib/response.js.map +1 -1
- package/configure/lib/utils.js +18 -1
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +7 -8
- package/controller/CHANGELOG.md +109 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +137 -131
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +147 -0
- package/docs/config-schema.json.md +116 -1
- package/docs/demo/generate.js +1 -1
- package/docs/pie-schema.json +108 -4
- package/docs/pie-schema.json.md +89 -4
- package/lib/index.js +7 -4
- package/lib/index.js.map +1 -1
- package/lib/main.js +203 -66
- package/lib/main.js.map +1 -1
- package/lib/print.js +133 -0
- package/lib/print.js.map +1 -0
- package/lib/simple-question-block.js +50 -38
- package/lib/simple-question-block.js.map +1 -1
- package/package.json +12 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingTop","prompt","Configure","model","props","onModelChanged","teacherInstructions","feedback","classes","imageSupport","configuration","onConfigurationChanged","responseType","studentInstructions","rationale","scoringType","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","config","label","ResponseTypes","simple","advanced","studentInstructionsEnabled","changeTeacherInstructions","onChange","onFeedbackChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n FeedbackConfig,\n settings,\n layout,\n InputContainer,\n} from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GeneralConfigBlock from './general-config-block';\nimport { ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = theme => ({\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 promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object\n };\n\n onChange = model => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onFeedbackChange = feedback => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged } = this.props;\n const {\n feedback = {},\n responseType = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n prompt = {},\n scoringType = {}\n } = configuration || {};\n log('[render] model', model);\n const { rationaleEnabled, promptEnabled, teacherInstructionsEnabled, feedbackEnabled } = model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n return (\n <div>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={config => onConfigurationChanged(config)}\n groups={{\n 'Settings': {\n responseType: responseType.settings &&\n radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings &&\n toggle(feedback.label),\n 'promptEnabled': prompt.settings &&\n toggle(prompt.label)\n },\n 'Properties': {\n teacherInstructionsEnabled: teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n scoringType: scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n },\n }}\n />\n }\n >\n <div>\n <div className={classes.content}>\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n />\n {\n feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n toolbarOpts={toolbarOpts}\n />\n )\n }\n </div>\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
1
|
+
{"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingTop","prompt","Configure","model","props","onModelChanged","teacherInstructions","feedback","classes","imageSupport","configuration","onConfigurationChanged","uploadSoundSupport","responseType","studentInstructions","rationale","scoringType","ignoreOrder","allowTrailingZeros","spellCheck","maxImageWidth","maxImageHeight","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","feedbackEnabled","spellCheckEnabled","toolbarOpts","toolbarEditorPosition","position","defaultImageMaxWidth","defaultImageMaxHeight","config","label","ResponseTypes","simple","advanced","studentInstructionsEnabled","changeTeacherInstructions","language","onChange","onFeedbackChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n FeedbackConfig,\n settings,\n layout,\n InputContainer,\n} from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GeneralConfigBlock from './general-config-block';\nimport { ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = theme => ({\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 promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object\n };\n\n onChange = model => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onFeedbackChange = feedback => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n onModelChanged,\n configuration,\n onConfigurationChanged,\n uploadSoundSupport\n } = this.props;\n const {\n feedback = {},\n responseType = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n prompt = {},\n scoringType = {},\n ignoreOrder = {},\n allowTrailingZeros={},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {},\n } = configuration || {};\n log('[render] model', model);\n const { rationaleEnabled, promptEnabled, teacherInstructionsEnabled, feedbackEnabled, spellCheckEnabled } = model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <div>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={config => onConfigurationChanged(config)}\n groups={{\n 'Settings': {\n responseType: responseType.settings &&\n radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings &&\n toggle(feedback.label),\n 'promptEnabled': prompt.settings &&\n toggle(prompt.label)\n },\n 'Properties': {\n teacherInstructionsEnabled: teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n 'ignoreOrder.enabled':\n ignoreOrder.settings && toggle(ignoreOrder.label),\n 'allowTrailingZeros.enabled':\n allowTrailingZeros.settings && toggle(allowTrailingZeros.label),\n },\n }}\n />\n }\n >\n <div>\n <div className={classes.content}>\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n {\n feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n toolbarOpts={toolbarOpts}\n />\n )\n }\n </div>\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
@@ -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.',
|
|
@@ -43,7 +43,10 @@ var _default = {
|
|
|
43
43
|
rationaleEnabled: true,
|
|
44
44
|
teacherInstructionsEnabled: true,
|
|
45
45
|
studentInstructionsEnabled: true,
|
|
46
|
-
toolbarEditorPosition: 'bottom'
|
|
46
|
+
toolbarEditorPosition: 'bottom',
|
|
47
|
+
validationDefault: 'literal',
|
|
48
|
+
ignoreOrderDefault: false,
|
|
49
|
+
allowTrailingZerosDefault: false
|
|
47
50
|
},
|
|
48
51
|
configuration: {
|
|
49
52
|
prompt: {
|
|
@@ -62,6 +65,11 @@ var _default = {
|
|
|
62
65
|
settings: true,
|
|
63
66
|
label: 'Rationale'
|
|
64
67
|
},
|
|
68
|
+
spellCheck: {
|
|
69
|
+
label: 'Spellcheck',
|
|
70
|
+
settings: false,
|
|
71
|
+
enabled: true
|
|
72
|
+
},
|
|
65
73
|
scoringType: {
|
|
66
74
|
settings: false,
|
|
67
75
|
label: 'Scoring Type'
|
|
@@ -77,6 +85,26 @@ var _default = {
|
|
|
77
85
|
partialScoring: {
|
|
78
86
|
settings: false,
|
|
79
87
|
label: 'Allow Partial Scoring'
|
|
88
|
+
},
|
|
89
|
+
ignoreOrder: {
|
|
90
|
+
settings: false,
|
|
91
|
+
label: 'Ignore Order',
|
|
92
|
+
enabled: true
|
|
93
|
+
},
|
|
94
|
+
allowTrailingZeros: {
|
|
95
|
+
settings: false,
|
|
96
|
+
label: 'Allow Trailing Zeros',
|
|
97
|
+
enabled: true
|
|
98
|
+
},
|
|
99
|
+
maxImageWidth: {
|
|
100
|
+
teacherInstructions: 300,
|
|
101
|
+
prompt: 300,
|
|
102
|
+
rationale: 300
|
|
103
|
+
},
|
|
104
|
+
maxImageHeight: {
|
|
105
|
+
teacherInstructions: 300,
|
|
106
|
+
prompt: 300,
|
|
107
|
+
rationale: 300
|
|
80
108
|
}
|
|
81
109
|
}
|
|
82
110
|
};
|
|
@@ -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","configuration","settings","label","studentInstructions","teacherInstructions"],"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,
|
|
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","spellCheck","enabled","studentInstructions","teacherInstructions","ignoreOrder","allowTrailingZeros","maxImageWidth","maxImageHeight"],"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;AAiBbC,IAAAA,UAAU,EAAE;AACVD,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,KAFC;AAGVG,MAAAA,OAAO,EAAC;AAHE,KAjBC;AAsBbd,IAAAA,WAAW,EAAE;AACXW,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KAtBA;AA0BbG,IAAAA,mBAAmB,EAAE;AACnBJ,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA1BR;AA8BbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA9BR;AAkCb7B,IAAAA,cAAc,EAAE;AACd4B,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KAlCH;AAsCbK,IAAAA,WAAW,EAAE;AACXN,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE,cAFI;AAGXE,MAAAA,OAAO,EAAE;AAHE,KAtCA;AA2CbI,IAAAA,kBAAkB,EAAE;AAClBP,MAAAA,QAAQ,EAAE,KADQ;AAElBC,MAAAA,KAAK,EAAE,sBAFW;AAGlBE,MAAAA,OAAO,EAAE;AAHS,KA3CP;AAgDbK,IAAAA,aAAa,EAAE;AACbH,MAAAA,mBAAmB,EAAE,GADR;AAEbnB,MAAAA,MAAM,EAAE,GAFK;AAGbF,MAAAA,SAAS,EAAE;AAHE,KAhDF;AAqDbyB,IAAAA,cAAc,EAAE;AACdJ,MAAAA,mBAAmB,EAAE,GADP;AAEdnB,MAAAA,MAAM,EAAE,GAFM;AAGdF,MAAAA,SAAS,EAAE;AAHG;AArDH;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 spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\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 maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n }\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -53,13 +53,21 @@ var _utils = require("./utils");
|
|
|
53
53
|
|
|
54
54
|
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
|
|
57
|
+
|
|
58
|
+
var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
|
|
59
|
+
|
|
60
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
61
|
+
|
|
62
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
63
|
+
|
|
64
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
57
65
|
|
|
58
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
66
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
59
67
|
|
|
60
68
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
61
69
|
|
|
62
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
70
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
63
71
|
|
|
64
72
|
var registered = false;
|
|
65
73
|
|
|
@@ -101,7 +109,7 @@ var styles = function styles(theme) {
|
|
|
101
109
|
justifyContent: 'center',
|
|
102
110
|
width: '100%',
|
|
103
111
|
minWidth: '500px',
|
|
104
|
-
maxWidth: '
|
|
112
|
+
maxWidth: 'inherit',
|
|
105
113
|
height: 'auto',
|
|
106
114
|
minHeight: '130px',
|
|
107
115
|
textAlign: 'left',
|
|
@@ -126,6 +134,7 @@ var styles = function styles(theme) {
|
|
|
126
134
|
margin: theme.spacing.unit / 2
|
|
127
135
|
},
|
|
128
136
|
blockResponse: {
|
|
137
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',
|
|
129
138
|
flex: 2,
|
|
130
139
|
color: 'grey',
|
|
131
140
|
background: 'lightgrey',
|
|
@@ -153,6 +162,15 @@ var styles = function styles(theme) {
|
|
|
153
162
|
}
|
|
154
163
|
}
|
|
155
164
|
}
|
|
165
|
+
},
|
|
166
|
+
tooltip: {
|
|
167
|
+
fontSize: '12px',
|
|
168
|
+
whiteSpace: 'pre-wrap'
|
|
169
|
+
},
|
|
170
|
+
errorText: {
|
|
171
|
+
fontSize: '12px',
|
|
172
|
+
color: 'red',
|
|
173
|
+
padding: '5px 0'
|
|
156
174
|
}
|
|
157
175
|
};
|
|
158
176
|
};
|
|
@@ -248,7 +266,6 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
248
266
|
|
|
249
267
|
if (!(0, _isEqual["default"])(responseAreas, _this.state.responseAreas)) {
|
|
250
268
|
_this.setState({
|
|
251
|
-
showKeypad: false,
|
|
252
269
|
responseAreas: responseAreas
|
|
253
270
|
}, function () {
|
|
254
271
|
if (_this.root && Object.keys(responseAreas).length) {
|
|
@@ -383,6 +400,7 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
383
400
|
classes = _this$props4.classes,
|
|
384
401
|
model = _this$props4.model,
|
|
385
402
|
imageSupport = _this$props4.imageSupport,
|
|
403
|
+
uploadSoundSupport = _this$props4.uploadSoundSupport,
|
|
386
404
|
configuration = _this$props4.configuration,
|
|
387
405
|
promptEnabled = _this$props4.promptEnabled,
|
|
388
406
|
rationaleEnabled = _this$props4.rationaleEnabled,
|
|
@@ -392,17 +410,34 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
392
410
|
expression = model.expression,
|
|
393
411
|
equationEditor = model.equationEditor,
|
|
394
412
|
_model$promptEquation = model.promptEquationEditor,
|
|
395
|
-
promptEquationEditor = _model$promptEquation === void 0 ? '
|
|
413
|
+
promptEquationEditor = _model$promptEquation === void 0 ? '8' : _model$promptEquation,
|
|
396
414
|
responses = model.responses,
|
|
397
415
|
responseType = model.responseType,
|
|
398
|
-
rationale = model.rationale
|
|
416
|
+
rationale = model.rationale,
|
|
417
|
+
spellCheckEnabled = model.spellCheckEnabled,
|
|
418
|
+
_model$errors = model.errors,
|
|
419
|
+
errors = _model$errors === void 0 ? {} : _model$errors;
|
|
399
420
|
|
|
400
421
|
var _ref = configuration || {},
|
|
401
422
|
_ref$rationale = _ref.rationale,
|
|
402
423
|
cRationale = _ref$rationale === void 0 ? {} : _ref$rationale,
|
|
403
424
|
_ref$prompt = _ref.prompt,
|
|
404
|
-
cPrompt = _ref$prompt === void 0 ? {} : _ref$prompt
|
|
405
|
-
|
|
425
|
+
cPrompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
426
|
+
_ref$ignoreOrder = _ref.ignoreOrder,
|
|
427
|
+
cIgnoreOrder = _ref$ignoreOrder === void 0 ? {} : _ref$ignoreOrder,
|
|
428
|
+
_ref$allowTrailingZer = _ref.allowTrailingZeros,
|
|
429
|
+
cAllowTrailingZeros = _ref$allowTrailingZer === void 0 ? {} : _ref$allowTrailingZer,
|
|
430
|
+
maxResponseAreas = _ref.maxResponseAreas,
|
|
431
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
432
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
433
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
434
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight;
|
|
435
|
+
|
|
436
|
+
var validationMessage = (0, _utils.generateValidationMessage)(configuration, model);
|
|
437
|
+
var responsesErrors = errors.responsesErrors,
|
|
438
|
+
responseAreasError = errors.responseAreasError;
|
|
439
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
440
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
406
441
|
var classNames = {
|
|
407
442
|
editor: classes.responseEditor,
|
|
408
443
|
mathToolbar: classes.mathToolbar
|
|
@@ -423,7 +458,16 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
423
458
|
onChange: this.onChange('prompt'),
|
|
424
459
|
imageSupport: imageSupport,
|
|
425
460
|
nonEmpty: false,
|
|
426
|
-
toolbarOpts: toolbarOpts
|
|
461
|
+
toolbarOpts: toolbarOpts,
|
|
462
|
+
spellCheck: spellCheckEnabled,
|
|
463
|
+
maxImageWidth: defaultImageMaxWidth,
|
|
464
|
+
maxImageHeight: defaultImageMaxHeight,
|
|
465
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
466
|
+
languageCharactersProps: [{
|
|
467
|
+
language: 'spanish'
|
|
468
|
+
}, {
|
|
469
|
+
language: 'special'
|
|
470
|
+
}]
|
|
427
471
|
})), rationaleEnabled && /*#__PURE__*/React.createElement(_configUi.InputContainer, {
|
|
428
472
|
label: cRationale.label,
|
|
429
473
|
className: classes.promptHolder
|
|
@@ -438,8 +482,38 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
438
482
|
onChange: this.onChange('rationale'),
|
|
439
483
|
imageSupport: imageSupport,
|
|
440
484
|
nonEmpty: false,
|
|
441
|
-
toolbarOpts: toolbarOpts
|
|
442
|
-
|
|
485
|
+
toolbarOpts: toolbarOpts,
|
|
486
|
+
spellCheck: spellCheckEnabled,
|
|
487
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
488
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
489
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
490
|
+
languageCharactersProps: [{
|
|
491
|
+
language: 'spanish'
|
|
492
|
+
}, {
|
|
493
|
+
language: 'special'
|
|
494
|
+
}]
|
|
495
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
496
|
+
className: classes.flexContainer,
|
|
497
|
+
style: {
|
|
498
|
+
justifyContent: 'flex-start'
|
|
499
|
+
}
|
|
500
|
+
}, /*#__PURE__*/React.createElement("h3", null, "Define Response"), /*#__PURE__*/React.createElement(_Tooltip["default"], {
|
|
501
|
+
classes: {
|
|
502
|
+
tooltip: classes.tooltip
|
|
503
|
+
},
|
|
504
|
+
disableFocusListener: true,
|
|
505
|
+
disableTouchListener: true,
|
|
506
|
+
placement: 'right',
|
|
507
|
+
title: validationMessage
|
|
508
|
+
}, /*#__PURE__*/React.createElement(_Info["default"], {
|
|
509
|
+
fontSize: 'small',
|
|
510
|
+
color: 'primary',
|
|
511
|
+
style: {
|
|
512
|
+
marginLeft: '5px'
|
|
513
|
+
}
|
|
514
|
+
}))), responseAreasError && /*#__PURE__*/React.createElement("div", {
|
|
515
|
+
className: classes.errorText
|
|
516
|
+
}, responseAreasError), responseType === _utils.ResponseTypes.advanced && [/*#__PURE__*/React.createElement(_configUi.InputContainer, {
|
|
443
517
|
key: "templateEditorType",
|
|
444
518
|
label: "Response Template Equation Editor",
|
|
445
519
|
className: classes.selectContainer
|
|
@@ -448,6 +522,14 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
448
522
|
onChange: this.onChange('promptEquationEditor'),
|
|
449
523
|
value: promptEquationEditor
|
|
450
524
|
}, /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
525
|
+
value: "non-negative-integers"
|
|
526
|
+
}, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
527
|
+
value: "integers"
|
|
528
|
+
}, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
529
|
+
value: "decimals"
|
|
530
|
+
}, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
531
|
+
value: "fractions"
|
|
532
|
+
}, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
451
533
|
value: 1
|
|
452
534
|
}, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
453
535
|
value: 3
|
|
@@ -462,8 +544,8 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
462
544
|
}, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
463
545
|
value: 'statistics'
|
|
464
546
|
}, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
465
|
-
value: '
|
|
466
|
-
}, "
|
|
547
|
+
value: 'item-authoring'
|
|
548
|
+
}, "Item Authoring"))), /*#__PURE__*/React.createElement("div", {
|
|
467
549
|
className: classes.inputContainer,
|
|
468
550
|
key: "templateHolder"
|
|
469
551
|
}, /*#__PURE__*/React.createElement(_InputLabel["default"], {
|
|
@@ -477,8 +559,10 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
477
559
|
latex: prepareForStatic(expression) || '',
|
|
478
560
|
onChange: this.onChange('expression'),
|
|
479
561
|
onFocus: this.onFocus,
|
|
480
|
-
onDone: this.onDone
|
|
481
|
-
|
|
562
|
+
onDone: this.onDone,
|
|
563
|
+
maxResponseAreas: maxResponseAreas,
|
|
564
|
+
error: responseAreasError
|
|
565
|
+
}))], /*#__PURE__*/React.createElement("h4", null, "Define Correct Response"), /*#__PURE__*/React.createElement("div", {
|
|
482
566
|
className: classes.flexContainer
|
|
483
567
|
}, /*#__PURE__*/React.createElement(_configUi.InputContainer, {
|
|
484
568
|
label: "Equation Editor",
|
|
@@ -488,6 +572,14 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
488
572
|
onChange: this.onChange('equationEditor'),
|
|
489
573
|
value: equationEditor
|
|
490
574
|
}, /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
575
|
+
value: "non-negative-integers"
|
|
576
|
+
}, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
577
|
+
value: "integers"
|
|
578
|
+
}, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
579
|
+
value: "decimals"
|
|
580
|
+
}, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
581
|
+
value: "fractions"
|
|
582
|
+
}, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
491
583
|
value: 1
|
|
492
584
|
}, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
493
585
|
value: 3
|
|
@@ -502,15 +594,18 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
502
594
|
}, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
503
595
|
value: 'statistics'
|
|
504
596
|
}, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
505
|
-
value: '
|
|
506
|
-
}, "
|
|
597
|
+
value: 'item-authoring'
|
|
598
|
+
}, "Item Authoring")))), responsesToUse.map(function (response, idx) {
|
|
507
599
|
return /*#__PURE__*/React.createElement(_response["default"], {
|
|
508
600
|
key: response.id,
|
|
509
601
|
mode: equationEditor,
|
|
510
602
|
response: response,
|
|
511
603
|
defaultResponse: responseType === _utils.ResponseTypes.simple,
|
|
512
604
|
onResponseChange: _this2.onResponseChange,
|
|
513
|
-
index: idx
|
|
605
|
+
index: idx,
|
|
606
|
+
cIgnoreOrder: cIgnoreOrder,
|
|
607
|
+
cAllowTrailingZeros: cAllowTrailingZeros,
|
|
608
|
+
error: responsesErrors && responsesErrors[idx]
|
|
514
609
|
});
|
|
515
610
|
}));
|
|
516
611
|
}
|
|
@@ -522,6 +617,7 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
522
617
|
classes: _propTypes["default"].object.isRequired,
|
|
523
618
|
model: _propTypes["default"].object.isRequired,
|
|
524
619
|
imageSupport: _propTypes["default"].object,
|
|
620
|
+
uploadSoundSupport: _propTypes["default"].object,
|
|
525
621
|
configuration: _propTypes["default"].object,
|
|
526
622
|
onChange: _propTypes["default"].func.isRequired,
|
|
527
623
|
promptEnabled: _propTypes["default"].bool,
|
|
@@ -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","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: '900px',\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 showKeypad: false,\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 = {} } = 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 />\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","fontFamily","color","background","borderRight","blockResponseGeneric","blockMath","tooltip","whiteSpace","errorText","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","uploadSoundSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","equationEditor","promptEquationEditor","responseType","rationale","spellCheckEnabled","errors","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","maxResponseAreas","maxImageWidth","maxImageHeight","validationMessage","responsesErrors","responseAreasError","defaultImageMaxWidth","defaultImageMaxHeight","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","r","label","onPromptFocus","language","math","controlledKeypadMode","marginLeft","select","onFocus","onDone","map","simple","onResponseChange","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAIA,UAAU,GAAG,KAAjB;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAF1B;AAGTE,MAAAA,OAAO,EAAE,MAHA;AAITC,MAAAA,aAAa,EAAE;AAJN,KADc;AAOzBC,IAAAA,aAAa,EAAE;AACbC,MAAAA,QAAQ,EAAE;AADG,KAPU;AAUzBC,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,MAAM,EAAE,qBADS;AAEjB,eAAO,OAFU;AAGjBC,MAAAA,KAAK,EAAE;AAHU,KAVM;AAezBC,IAAAA,aAAa,EAAE;AACbP,MAAAA,OAAO,EAAE,MADI;AAEbQ,MAAAA,UAAU,EAAE,QAFC;AAGbC,MAAAA,cAAc,EAAE;AAHH,KAfU;AAoBzBC,IAAAA,eAAe,EAAE;AACfC,MAAAA,IAAI,EAAE,SADS;AAEfL,MAAAA,KAAK,EAAE,KAFQ;AAGfV,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAHjB;AAIfC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAJpB,KApBQ;AA0BzBc,IAAAA,cAAc,EAAE;AACdb,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADrB;AAEdE,MAAAA,OAAO,EAAE,MAFK;AAGdC,MAAAA,aAAa,EAAE,QAHD;AAIdK,MAAAA,KAAK,EAAE;AAJO,KA1BS;AAgCzBO,IAAAA,cAAc,EAAE;AACdb,MAAAA,OAAO,EAAE,MADK;AAEdS,MAAAA,cAAc,EAAE,QAFF;AAGdH,MAAAA,KAAK,EAAE,MAHO;AAIdQ,MAAAA,QAAQ,EAAE,OAJI;AAKdC,MAAAA,QAAQ,EAAE,SALI;AAMdC,MAAAA,MAAM,EAAE,MANM;AAOdC,MAAAA,SAAS,EAAE,OAPG;AAQdC,MAAAA,SAAS,EAAE,MARG;AASdC,MAAAA,OAAO,EAAEzB,KAAK,CAACG,OAAN,CAAcC;AATT,KAhCS;AA2CzBsB,IAAAA,YAAY,EAAE;AACZd,MAAAA,KAAK,EAAE,MADK;AAEZe,MAAAA,aAAa,EAAE3B,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAFxB;AAGZC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KA3CW;AAgDzBwB,IAAAA,MAAM,EAAE;AACNC,MAAAA,UAAU,EAAE7B,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAD3B;AAENQ,MAAAA,KAAK,EAAE,MAFD;AAGNS,MAAAA,QAAQ,EAAE;AAHJ,KAhDiB;AAqDzBS,IAAAA,cAAc,EAAE;AACdC,MAAAA,MAAM,EAAE/B,KAAK,CAACG,OAAN,CAAcC,IADR;AAEdE,MAAAA,OAAO,EAAE,aAFK;AAGdK,MAAAA,MAAM,EAAE;AAHM,KArDS;AA0DzBqB,IAAAA,qBAAqB,EAAE;AACrBD,MAAAA,MAAM,EAAE/B,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AADR,KA1DE;AA6DzB6B,IAAAA,aAAa,EAAE;AACbC,MAAAA,UAAU,EAAE,iDADC;AAEbjB,MAAAA,IAAI,EAAE,CAFO;AAGbkB,MAAAA,KAAK,EAAE,MAHM;AAIbC,MAAAA,UAAU,EAAE,WAJC;AAKb3B,MAAAA,QAAQ,EAAE,QALG;AAMbgB,MAAAA,OAAO,EAAEzB,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CANjB;AAObE,MAAAA,OAAO,EAAE,MAPI;AAQbQ,MAAAA,UAAU,EAAE,QARC;AASbC,MAAAA,cAAc,EAAE,QATH;AAUbsB,MAAAA,WAAW,EAAE;AAVA,KA7DU;AAyEzBC,IAAAA,oBAAoB,EAAE;AACpBD,MAAAA,WAAW,EAAE;AADO,KAzEG;AA4EzBE,IAAAA,SAAS,EAAE;AACTJ,MAAAA,KAAK,EAAE,SADE;AAETV,MAAAA,OAAO,EAAEzB,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAFrB;AAGTE,MAAAA,OAAO,EAAE,MAHA;AAITQ,MAAAA,UAAU,EAAE,QAJH;AAKTC,MAAAA,cAAc,EAAE,QALP;AAMTE,MAAAA,IAAI,EAAE,CANG;AAOT,2BAAqB;AACnB,6BAAqB;AACnB,4BAAkB;AAChBX,YAAAA,OAAO,EAAE;AADO;AADC;AADF;AAPZ,KA5Ec;AA2FzBkC,IAAAA,OAAO,EAAE;AACP/B,MAAAA,QAAQ,EAAE,MADH;AAEPgC,MAAAA,UAAU,EAAE;AAFL,KA3FgB;AA+FzBC,IAAAA,SAAS,EAAE;AACTjC,MAAAA,QAAQ,EAAE,MADD;AAET0B,MAAAA,KAAK,EAAE,KAFE;AAGTV,MAAAA,OAAO,EAAE;AAHA;AA/Fc,GAAZ;AAAA,CAAf;;AAsGA,IAAMkB,KAAK,GAAG,gBAAd;AACA,IAAMC,wBAAwB,GAAG,kBAAjC;AACA,IAAMC,kBAAkB,GAAG,iCAA3B;AACA,IAAMC,aAAa,GAAG,yBAAtB;AACA,IAAMC,aAAa,GAAG,YAAtB;;AAEA,SAASC,gBAAT,CAA0BC,UAA1B,EAAsC;AACpC,MAAIA,UAAJ,EAAgB;AACd,QAAIC,YAAY,GAAG,CAAnB,CADc,CACQ;;AAEtB,WAAOD,UAAU,CAACE,OAAX,CACLR,KADK,EAEL;AAAA,6CAA+BO,YAAY,EAA3C;AAAA,KAFK,EAGLC,OAHK,CAGGJ,aAHH,EAGkB,oBAHlB,CAAP;AAID;AACF;;AAED,SAASK,eAAT,CAAyBH,UAAzB,EAAqC;AACnC,MAAIA,UAAJ,EAAgB;AACd,WAAOA,UAAU,CACdE,OADI,CACIN,kBADJ,EACwB;AAAA,aAAM,cAAN;AAAA,KADxB,EAEJM,OAFI,CAEIP,wBAFJ,EAE8B;AAAA,aAAM,cAAN;AAAA,KAF9B,EAGJO,OAHI,CAGIL,aAHJ,EAGmB;AAAA,aAAM,WAAN;AAAA,KAHnB,CAAP;AAID;AACF;;IAEKO,kB;;;;;AAaJ,8BAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,iGAuBR,UAACC,IAAD;AAAA,aAAU,UAACC,UAAD,EAAgB;AACnC,0BAA4B,MAAKF,KAAjC;AAAA,YAAQG,KAAR,eAAQA,KAAR;AAAA,YAAeC,QAAf,eAAeA,QAAf;;AACA,YAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AAEA,YAAI,yBAAOD,UAAP,MAAsB,QAA1B,EAAoC;AAClCG,UAAAA,QAAQ,CAACJ,IAAD,CAAR,GAAiBC,UAAU,CAACI,MAAX,CAAkBC,KAAnC;AACD,SAFD,MAEO;AACLF,UAAAA,QAAQ,CAACJ,IAAD,CAAR,GAAiBC,UAAjB;AACD;;AAED,YAAID,IAAI,KAAK,YAAb,EAA2B;AACzBI,UAAAA,QAAQ,CAACJ,IAAD,CAAR,GAAiBH,eAAe,CAACI,UAAD,CAAhC;AACD;;AAEDE,QAAAA,QAAQ,CAACC,QAAD,CAAR;AACD,OAfU;AAAA,KAvBQ;AAAA,+FAwCV,YAAM;AACb,YAAKG,QAAL,CAAc;AAAEC,QAAAA,UAAU,EAAE;AAAd,OAAd;AACD,KA1CkB;AAAA,gGA4CT,YAAM;AACd,YAAKD,QAAL,CAAc;AAAEC,QAAAA,UAAU,EAAE;AAAd,OAAd;AACD,KA9CkB;AAAA,sGAgDH,YAAM;AACpB,YAAKD,QAAL,CAAc;AAAEC,QAAAA,UAAU,EAAE;AAAd,OAAd;AACD,KAlDkB;AAAA,mHAmGU,YAAM;AACjC,UAAQN,KAAR,GAAkB,MAAKH,KAAvB,CAAQG,KAAR;AAEA,UAAMO,aAAa,GAAG,EAAtB;;AAEA,UAAIP,KAAK,IAAIA,KAAK,CAACR,UAAnB,EAA+B;AAC7B,YAAIC,YAAY,GAAG,CAAnB,CAD6B,CACP;AACtB;;AAEAO,QAAAA,KAAK,CAACR,UAAN,CAAiBE,OAAjB,CAAyBR,KAAzB,EAAgC,YAAM;AACpCqB,UAAAA,aAAa,YAAKd,YAAY,EAAjB,EAAb,GAAsC;AACpCW,YAAAA,KAAK,EAAE;AAD6B,WAAtC;AAGD,SAJD;AAKD;;AAED,UAAI,CAAC,yBAAQG,aAAR,EAAuB,MAAKC,KAAL,CAAWD,aAAlC,CAAL,EAAuD;AACrD,cAAKF,QAAL,CACE;AACEE,UAAAA,aAAa,EAAbA;AADF,SADF,EAIE,YAAM;AACJ,cAAI,MAAKE,IAAL,IAAaC,MAAM,CAACC,IAAP,CAAYJ,aAAZ,EAA2BK,MAA5C,EAAoD;AAClDF,YAAAA,MAAM,CAACC,IAAP,CAAYJ,aAAZ,EAA2BM,OAA3B,CAAmC,UAACC,UAAD,EAAaC,GAAb,EAAqB;AACtD,kBAAMC,EAAE,GAAG,MAAKP,IAAL,CAAUQ,aAAV,YAA4BH,UAA5B,EAAX;;AACA,kBAAMI,OAAO,GAAG,MAAKT,IAAL,CAAUQ,aAAV,YAA4BH,UAA5B,WAAhB;;AAEA,kBAAIE,EAAJ,EAAQ;AACN;AACA,oBAAIG,EAAE,GAAGC,sBAAUC,YAAV,CAAuB,CAAvB,CAAT,CAFM,CAGN;AACA;;;AACAF,gBAAAA,EAAE,CAACG,UAAH,CAAcN,EAAd;AACAE,gBAAAA,OAAO,CAACK,WAAR,cAA0BR,GAAG,GAAG,CAAhC;AACD;AACF,aAZD;AAaD;AACF,SApBH;AAsBD;AACF,KA3IkB;AAAA,sGA6IH,YAAM;AACpB,yBAA4B,MAAKlB,KAAjC;AAAA,UAAQG,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AACA,UAAQuB,iBAAR,GAA8B,MAAKhB,KAAnC,CAAQgB,iBAAR;;AACA,UAAMtB,QAAQ,qBAAQF,KAAR,CAAd;;AAEA,UAAIyB,UAAU,GAAGD,iBAAjB;;AAEA,aAAOxB,KAAK,CAAC0B,SAAN,CAAgBC,IAAhB,CAAqB,UAACC,QAAD;AAAA,eAAcA,QAAQ,CAACC,EAAT,KAAgBJ,UAA9B;AAAA,OAArB,CAAP,EAAuE;AACrEA,QAAAA,UAAU;AACX;;AAED,UAAMG,QAAQ,GAAG;AACfC,QAAAA,EAAE,EAAEJ,UADW;AAEfK,QAAAA,UAAU,EAAE,SAFG;AAGfC,QAAAA,MAAM,EAAE,EAHO;AAIfC,QAAAA,UAAU,EAAE;AAJG,OAAjB;AAOA9B,MAAAA,QAAQ,CAACwB,SAAT,GAAqBxB,QAAQ,CAACwB,SAAT,CAAmBO,MAAnB,CAA0BL,QAA1B,CAArB;AACA3B,MAAAA,QAAQ,CAACC,QAAD,CAAR;;AAEA,YAAKG,QAAL,CAAc;AACZmB,QAAAA,iBAAiB,EAAEI,QAAQ,CAACC;AADhB,OAAd;AAGD,KArKkB;AAAA,yGAuKA,UAACD,QAAD,EAAWM,KAAX,EAAqB;AACtC,yBAA4B,MAAKrC,KAAjC;AAAA,UAAQG,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;;AACA,UAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AAEAE,MAAAA,QAAQ,CAACwB,SAAT,CAAmBQ,KAAnB,IAA4BN,QAA5B;AACA3B,MAAAA,QAAQ,CAACC,QAAD,CAAR;AACD,KA7KkB;AAGjB,QAAMK,cAAa,GAAG,EAAtB;;AAEA,QAAIV,KAAK,CAACG,KAAN,IAAeH,KAAK,CAACG,KAAN,CAAYR,UAA/B,EAA2C;AACzC,UAAIC,YAAY,GAAG,CAAnB,CADyC,CACnB;AACtB;;AAEAI,MAAAA,KAAK,CAACG,KAAN,CAAYR,UAAZ,CAAuBE,OAAvB,CAA+BR,KAA/B,EAAsC,YAAM;AAC1CqB,QAAAA,cAAa,YAAKd,YAAY,EAAjB,EAAb,GAAsC;AACpCW,UAAAA,KAAK,EAAE;AAD6B,SAAtC;AAGD,OAJD;AAKD;;AAED,UAAKI,KAAL,GAAa;AACXF,MAAAA,UAAU,EAAE,KADD;AAEXC,MAAAA,aAAa,EAAbA,cAFW;AAGXiB,MAAAA,iBAAiB,EAAEd,MAAM,CAACC,IAAP,CAAYJ,cAAZ,EAA2BK;AAHnC,KAAb;AAhBiB;AAqBlB;;;;WA+BD,qCAA4B;AAC1B,UAAQuB,OAAR,GAAoB,KAAKtC,KAAzB,CAAQsC,OAAR;;AAEA,UAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;AACjC;AACA,YAAIjB,EAAE,GAAGC,sBAAUC,YAAV,CAAuB,CAAvB,CAAT;;AAEA,YAAI,CAAChF,UAAL,EAAiB;AACf8E,UAAAA,EAAE,CAACkB,aAAH,CAAiB,aAAjB,EAAgC,UAACC,IAAD,EAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,gBAAMC,kBAAkB,0BAAkB,4BACxCJ,OAAO,CAAC9D,cADgC,EAExC8D,OAAO,CAAC5D,qBAFgC,CAAlB,+CAIJ,4BAClB4D,OAAO,CAAC3D,aADU,EAElB2D,OAAO,CAACtD,oBAFU,CAJI,qBAOdyD,IAPc,iDAAxB;AAUA,mBAAO;AACLE,cAAAA,UAAU,EAAED,kBADP;AAELE,cAAAA,IAAI,EAAE;AAAA,uBAAM,MAAN;AAAA,eAFD;AAGLC,cAAAA,KAAK,EAAE;AAAA,sDAA8BJ,IAA9B;AAAA;AAHF,aAAP;AAKD,WAxBD;AA0BAjG,UAAAA,UAAU,GAAG,IAAb;AACD;AACF;AACF;;;WAED,6BAAoB;AAClB,WAAKsG,0BAAL;AACD;;;WAED,8BAAqB;AACnB,WAAKA,0BAAL;AACD;;;WA8ED,kBAAS;AAAA;;AACP,yBASI,KAAK9C,KATT;AAAA,UACEsC,OADF,gBACEA,OADF;AAAA,UAEEnC,KAFF,gBAEEA,KAFF;AAAA,UAGE4C,YAHF,gBAGEA,YAHF;AAAA,UAIEC,kBAJF,gBAIEA,kBAJF;AAAA,UAKEC,aALF,gBAKEA,aALF;AAAA,UAMEC,aANF,gBAMEA,aANF;AAAA,UAOEC,gBAPF,gBAOEA,gBAPF;AAAA,UAQEC,WARF,gBAQEA,WARF;AAUA,UAAQ3C,UAAR,GAAuB,KAAKE,KAA5B,CAAQF,UAAR;AACA,UACEnC,MADF,GAUI6B,KAVJ,CACE7B,MADF;AAAA,UAEEqB,UAFF,GAUIQ,KAVJ,CAEER,UAFF;AAAA,UAGE0D,cAHF,GAUIlD,KAVJ,CAGEkD,cAHF;AAAA,kCAUIlD,KAVJ,CAIEmD,oBAJF;AAAA,UAIEA,oBAJF,sCAIyB,GAJzB;AAAA,UAKEzB,SALF,GAUI1B,KAVJ,CAKE0B,SALF;AAAA,UAME0B,YANF,GAUIpD,KAVJ,CAMEoD,YANF;AAAA,UAOEC,SAPF,GAUIrD,KAVJ,CAOEqD,SAPF;AAAA,UAQEC,iBARF,GAUItD,KAVJ,CAQEsD,iBARF;AAAA,0BAUItD,KAVJ,CASEuD,MATF;AAAA,UASEA,MATF,8BASW,EATX;;AAWA,iBAQIT,aAAa,IAAI,EARrB;AAAA,gCACEO,SADF;AAAA,UACaG,UADb,+BAC0B,EAD1B;AAAA,6BAEErF,MAFF;AAAA,UAEUsF,OAFV,4BAEoB,EAFpB;AAAA,kCAGEC,WAHF;AAAA,UAGeC,YAHf,iCAG8B,EAH9B;AAAA,uCAIEC,kBAJF;AAAA,UAIsBC,mBAJtB,sCAI4C,EAJ5C;AAAA,UAKEC,gBALF,QAKEA,gBALF;AAAA,oCAMEC,aANF;AAAA,UAMEA,aANF,mCAMkB,EANlB;AAAA,qCAOEC,cAPF;AAAA,UAOEA,cAPF,oCAOmB,EAPnB;;AASA,UAAMC,iBAAiB,GAAG,sCAA0BnB,aAA1B,EAAyC9C,KAAzC,CAA1B;AACA,UAAQkE,eAAR,GAAgDX,MAAhD,CAAQW,eAAR;AAAA,UAAyBC,kBAAzB,GAAgDZ,MAAhD,CAAyBY,kBAAzB;AAEA,UAAMC,oBAAoB,GAAGL,aAAa,IAAIA,aAAa,CAAC5F,MAA5D;AACA,UAAMkG,qBAAqB,GAAGL,cAAc,IAAIA,cAAc,CAAC7F,MAA/D;AAEA,UAAMmG,UAAU,GAAG;AACjBC,QAAAA,MAAM,EAAEpC,OAAO,CAACzE,cADC;AAEjB8G,QAAAA,WAAW,EAAErC,OAAO,CAACqC;AAFJ,OAAnB;AAKA,UAAMC,cAAc,GAClBrB,YAAY,KAAKsB,qBAAcC,QAA/B,GACIjD,SADJ,GAEIA,SAAS,CAACkD,KAAV,CAAgB,CAAhB,EAAmB,CAAnB,CAHN;AAKA,0BACE;AACE,QAAA,GAAG,EAAE,aAACC,CAAD;AAAA,iBAAQ,MAAI,CAACpE,IAAL,GAAYoE,CAAC,IAAI,MAAI,CAACpE,IAA9B;AAAA,SADP;AAEE,QAAA,SAAS,EAAE0B,OAAO,CAAC3F;AAFrB,SAIGuG,aAAa,iBACZ,oBAAC,wBAAD;AAAgB,QAAA,KAAK,EAAEU,OAAO,CAACqB,KAA/B;AAAsC,QAAA,SAAS,EAAE3C,OAAO,CAAClE;AAAzD,sBACE,oBAAC,wBAAD;AACE,QAAA,OAAO,EAAE,KAAK8G,aADhB;AAEE,QAAA,SAAS,EAAE5C,OAAO,CAAChE,MAFrB;AAGE,QAAA,MAAM,EAAEA,MAAM,IAAI,EAHpB;AAIE,QAAA,QAAQ,EAAE,KAAK8B,QAAL,CAAc,QAAd,CAJZ;AAKE,QAAA,YAAY,EAAE2C,YALhB;AAME,QAAA,QAAQ,EAAE,KANZ;AAOE,QAAA,WAAW,EAAEK,WAPf;AAQE,QAAA,UAAU,EAAEK,iBARd;AASE,QAAA,aAAa,EAAEc,oBATjB;AAUE,QAAA,cAAc,EAAEC,qBAVlB;AAWE,QAAA,kBAAkB,EAAExB,kBAXtB;AAYE,QAAA,uBAAuB,EAAE,CAAC;AAAEmC,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAZ3B,QADF,CALJ,EAsBGhC,gBAAgB,iBACf,oBAAC,wBAAD;AACE,QAAA,KAAK,EAAEQ,UAAU,CAACsB,KADpB;AAEE,QAAA,SAAS,EAAE3C,OAAO,CAAClE;AAFrB,sBAIE,oBAAC,wBAAD;AACE,QAAA,SAAS,EAAEkE,OAAO,CAAChE,MADrB;AAEE,QAAA,MAAM,EAAEkF,SAAS,IAAI,EAFvB;AAGE,QAAA,WAAW,EAAE;AACX4B,UAAAA,IAAI,EAAE;AACJC,YAAAA,oBAAoB,EAAE;AADlB;AADK,SAHf;AAQE,QAAA,QAAQ,EAAE,KAAKjF,QAAL,CAAc,WAAd,CARZ;AASE,QAAA,YAAY,EAAE2C,YAThB;AAUE,QAAA,QAAQ,EAAE,KAVZ;AAWE,QAAA,WAAW,EAAEK,WAXf;AAYE,QAAA,UAAU,EAAEK,iBAZd;AAaE,QAAA,aAAa,EAAES,aAAa,IAAIA,aAAa,CAACV,SAA/B,IAA4Ce,oBAb7D;AAcE,QAAA,cAAc,EAAEJ,cAAc,IAAIA,cAAc,CAACX,SAAjC,IAA8CgB,qBAdhE;AAeE,QAAA,kBAAkB,EAAExB,kBAftB;AAgBE,QAAA,uBAAuB,EAAE,CAAC;AAAEmC,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAhB3B,QAJF,CAvBJ,eA+CE;AAAK,QAAA,SAAS,EAAE7C,OAAO,CAAC/E,aAAxB;AAAuC,QAAA,KAAK,EAAE;AAAEE,UAAAA,cAAc,EAAE;AAAlB;AAA9C,sBACE,kDADF,eAEE,oBAAC,mBAAD;AACE,QAAA,OAAO,EAAE;AAACyB,UAAAA,OAAO,EAAEoD,OAAO,CAACpD;AAAlB,SADX;AAEE,QAAA,oBAAoB,MAFtB;AAGE,QAAA,oBAAoB,MAHtB;AAIE,QAAA,SAAS,EAAE,OAJb;AAKE,QAAA,KAAK,EAAEkF;AALT,sBAOA,oBAAC,gBAAD;AAAM,QAAA,QAAQ,EAAE,OAAhB;AAAyB,QAAA,KAAK,EAAE,SAAhC;AAA2C,QAAA,KAAK,EAAE;AAAEkB,UAAAA,UAAU,EAAE;AAAd;AAAlD,QAPA,CAFF,CA/CF,EA2DGhB,kBAAkB,iBAAI;AAAK,QAAA,SAAS,EAAEhC,OAAO,CAAClD;AAAxB,SAAoCkF,kBAApC,CA3DzB,EA6DGf,YAAY,KAAKsB,qBAAcC,QAA/B,IAA4C,cAC3C,oBAAC,wBAAD;AACE,QAAA,GAAG,EAAC,oBADN;AAEE,QAAA,KAAK,EAAC,mCAFR;AAGE,QAAA,SAAS,EAAExC,OAAO,CAAC5E;AAHrB,sBAKE,oBAAC,kBAAD;AACE,QAAA,SAAS,EAAE4E,OAAO,CAACiD,MADrB;AAEE,QAAA,QAAQ,EAAE,KAAKnF,QAAL,CAAc,sBAAd,CAFZ;AAGE,QAAA,KAAK,EAAEkD;AAHT,sBAKE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,2CALF,eAME,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,8BANF,eAOE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,8BAPF,eAQE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,+BARF,eASE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBATF,eAUE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBAVF,eAWE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBAXF,eAYE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,wBAZF,eAaE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,oBAbF,eAcE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,4BAdF,eAeE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,sBAfF,eAgBE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,0BAhBF,CALF,CAD2C,eAyB3C;AAAK,QAAA,SAAS,EAAEhB,OAAO,CAAC1E,cAAxB;AAAwC,QAAA,GAAG,EAAC;AAA5C,sBACE,oBAAC,sBAAD;AAAY,QAAA,SAAS,EAAE0E,OAAO,CAACpF;AAA/B,6BADF,eAIE,oBAAC,wBAAD;AACE,QAAA,UAAU,EAAEuH,UADd;AAEE,QAAA,gBAAgB,MAFlB;AAGE,QAAA,UAAU,EAAEnB,oBAHd;AAIE,QAAA,gBAAgB,MAJlB;AAKE,QAAA,UAAU,EAAE7C,UALd;AAME,QAAA,KAAK,EAAEf,gBAAgB,CAACC,UAAD,CAAhB,IAAgC,EANzC;AAOE,QAAA,QAAQ,EAAE,KAAKS,QAAL,CAAc,YAAd,CAPZ;AAQE,QAAA,OAAO,EAAE,KAAKoF,OARhB;AASE,QAAA,MAAM,EAAE,KAAKC,MATf;AAUE,QAAA,gBAAgB,EAAExB,gBAVpB;AAWE,QAAA,KAAK,EAAEK;AAXT,QAJF,CAzB2C,CA7D/C,eAyGE,0DAzGF,eA0GE;AAAK,QAAA,SAAS,EAAEhC,OAAO,CAAC/E;AAAxB,sBACE,oBAAC,wBAAD;AACE,QAAA,KAAK,EAAC,iBADR;AAEE,QAAA,SAAS,EAAE+E,OAAO,CAAC5E;AAFrB,sBAIE,oBAAC,kBAAD;AACE,QAAA,SAAS,EAAE4E,OAAO,CAACiD,MADrB;AAEE,QAAA,QAAQ,EAAE,KAAKnF,QAAL,CAAc,gBAAd,CAFZ;AAGE,QAAA,KAAK,EAAEiD;AAHT,sBAKE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,2CALF,eAME,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,8BANF,eAOE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,8BAPF,eAQE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAC;AAAhB,+BARF,eASE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBATF,eAUE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBAVF,eAWE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,uBAXF,eAYE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,wBAZF,eAaE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,oBAbF,eAcE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,4BAdF,eAeE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,sBAfF,eAgBE,oBAAC,oBAAD;AAAU,QAAA,KAAK,EAAE;AAAjB,0BAhBF,CAJF,CADF,CA1GF,EAmIGuB,cAAc,CAACc,GAAf,CAAmB,UAAC3D,QAAD,EAAWb,GAAX;AAAA,4BAClB,oBAAC,oBAAD;AACE,UAAA,GAAG,EAAEa,QAAQ,CAACC,EADhB;AAEE,UAAA,IAAI,EAAEqB,cAFR;AAGE,UAAA,QAAQ,EAAEtB,QAHZ;AAIE,UAAA,eAAe,EAAEwB,YAAY,KAAKsB,qBAAcc,MAJlD;AAKE,UAAA,gBAAgB,EAAE,MAAI,CAACC,gBALzB;AAME,UAAA,KAAK,EAAE1E,GANT;AAOE,UAAA,YAAY,EAAE4C,YAPhB;AAQE,UAAA,mBAAmB,EAAEE,mBARvB;AASE,UAAA,KAAK,EAAEK,eAAe,IAAIA,eAAe,CAACnD,GAAD;AAT3C,UADkB;AAAA,OAAnB,CAnIH,CADF;AAmJD;;;EA/X8B2E,KAAK,CAACC,S;;iCAAjC/F,kB,eACe;AACjBuC,EAAAA,OAAO,EAAEyD,sBAAUC,MAAV,CAAiBC,UADT;AAEjB9F,EAAAA,KAAK,EAAE4F,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBlD,EAAAA,YAAY,EAAEgD,sBAAUC,MAHP;AAIjBhD,EAAAA,kBAAkB,EAAE+C,sBAAUC,MAJb;AAKjB/C,EAAAA,aAAa,EAAE8C,sBAAUC,MALR;AAMjB5F,EAAAA,QAAQ,EAAE2F,sBAAUG,IAAV,CAAeD,UANR;AAOjB/C,EAAAA,aAAa,EAAE6C,sBAAUI,IAPR;AAQjBhD,EAAAA,gBAAgB,EAAE4C,sBAAUI,IARX;AASjB/C,EAAAA,WAAW,EAAE2C,sBAAUC;AATN,C;;eAiYN,wBAAWvJ,MAAX,EAAmBsD,kBAAnB,C","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, generateValidationMessage } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\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 fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\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 tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre-wrap',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\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 uploadSoundSupport: 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 uploadSoundSupport,\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 spellCheckEnabled,\n errors = {}\n } = model;\n const {\n rationale: cRationale = {},\n prompt: cPrompt = {},\n ignoreOrder: cIgnoreOrder = {},\n allowTrailingZeros: cAllowTrailingZeros = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n const validationMessage = generateValidationMessage(configuration, model);\n const { responsesErrors, responseAreasError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\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 spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\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 spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n <div className={classes.flexContainer} style={{ justifyContent: 'flex-start' }}>\n <h3>Define Response</h3>\n <Tooltip\n classes={{tooltip: classes.tooltip}}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }}/>\n </Tooltip>\n </div>\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\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=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>,\n <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 maxResponseAreas={maxResponseAreas}\n error={responseAreasError}\n />\n </div>\n ])}\n <h4>Define Correct Response</h4>\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=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n </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 error={responsesErrors && responsesErrors[idx]}\n />\n ))}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
|