@pie-element/explicit-constructed-response 6.12.6 → 6.12.8
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 +22 -0
- package/configure/CHANGELOG.md +22 -0
- package/configure/lib/defaults.js +9 -43
- package/configure/lib/defaults.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +22 -0
- package/controller/lib/defaults.js +2 -2
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +44 -70
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/lib/index.js +13 -13
- package/lib/index.js.map +1 -1
- package/lib/main.js +27 -35
- package/lib/main.js.map +1 -1
- package/lib/print.js +5 -5
- package/lib/print.js.map +1 -1
- package/module/configure.js +10 -44
- package/module/controller.js +16389 -18257
- package/module/element.js +115 -81
- package/module/index.html +1 -1
- package/module/manifest.json +2 -2
- package/module/print.html +1 -1
- package/module/print.js +107 -73
- package/package.json +3 -3
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["InlineDropdown","_model","_session","elem","React","createElement","Main","
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["InlineDropdown","_model","_session","elem","React","createElement","Main","choices","disabled","displayType","feedback","language","markup","maxLengthPerChoice","maxLengthPerChoiceEnabled","mode","note","onChange","changeSession","playerSpellCheckEnabled","prompt","rationale","role","showNote","teacherInstructions","value","ReactDOM","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","setAttribute","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEqBA,c;;;;;AACnB,4BAAc;AAAA;;AAAA;AACZ;AADY,gGAwBJ,YAAM;AACd,UAAI,MAAKC,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,OAAO,EAAE,MAAKN,MAAL,CAAYM,OADc;AAEnCC,UAAAA,QAAQ,EAAE,MAAKP,MAAL,CAAYO,QAFa;AAGnCC,UAAAA,WAAW,EAAE,MAAKR,MAAL,CAAYQ,WAHU;AAInCC,UAAAA,QAAQ,EAAE,MAAKT,MAAL,CAAYS,QAJa;AAKnCC,UAAAA,QAAQ,EAAE,MAAKV,MAAL,CAAYU,QALa;AAMnCC,UAAAA,MAAM,EAAE,MAAKX,MAAL,CAAYW,MANe;AAOnCC,UAAAA,kBAAkB,EAAE,MAAKZ,MAAL,CAAYY,kBAPG;AAQnCC,UAAAA,yBAAyB,EAAE,MAAKb,MAAL,CAAYa,yBARJ;AASnCC,UAAAA,IAAI,EAAE,MAAKd,MAAL,CAAYc,IATiB;AAUnCC,UAAAA,IAAI,EAAE,MAAKf,MAAL,CAAYe,IAViB;AAWnCC,UAAAA,QAAQ,EAAE,MAAKC,aAXoB;AAYnCC,UAAAA,uBAAuB,EAAE,MAAKlB,MAAL,CAAYkB,uBAZF;AAanCC,UAAAA,MAAM,EAAE,MAAKnB,MAAL,CAAYmB,MAbe;AAcnCC,UAAAA,SAAS,EAAE,MAAKpB,MAAL,CAAYoB,SAdY;AAenCC,UAAAA,IAAI,EAAE,MAAKrB,MAAL,CAAYqB,IAfiB;AAgBnCC,UAAAA,QAAQ,EAAE,MAAKtB,MAAL,CAAYsB,QAhBa;AAiBnCC,UAAAA,mBAAmB,EAAE,MAAKvB,MAAL,CAAYuB,mBAjBE;AAkBnCC,UAAAA,KAAK,EAAE,MAAKvB,QAAL,CAAcuB;AAlBc,SAA1B,CAAX;;AAqBAC,6BAASC,MAAT,CAAgBxB,IAAhB,kDAA4B,YAAM;AAChC;AACD,SAFD;AAGD;AACF,KAnDa;AAAA,6GAqDS,YAAM;AAC3B,YAAKyB,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,MAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,MAAKC,OAAL,IAAgB,CAAC,CAAC,MAAKA,OAAL,CAAaP,KAAnF,CAAnB;AACD,KAvDa;AAAA,sGAyDE,UAACA,KAAD,EAAW;AACzB,YAAKO,OAAL,CAAaP,KAAb,GAAqBA,KAArB;;AACA,YAAKQ,oBAAL;;AACA,YAAKC,OAAL;AACD,KA7Da;AAEZ,UAAKjC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AAHY;AAIb;;;;SAED,aAAUiC,CAAV,EAAa;AACX,WAAKlC,MAAL,GAAckC,CAAd;AACA,WAAKP,aAAL,CACE,IAAIQ,8BAAJ,CAAkB,KAAKN,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAAKC,OAAL,IAAgB,CAAC,CAAC,KAAKA,OAAL,CAAaP,KAA7E,EAAoF,CAAC,CAAC,KAAKxB,MAA3F,CADF;;AAIA,WAAKiC,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKhC,QAAZ;AACD,K;SAPD,aAAYmC,CAAZ,EAAe;AACb,WAAKnC,QAAL,GAAgBmC,CAAhB;;AACA,WAAKH,OAAL;AACD;;;WA6CD,6BAAoB;AAClB,WAAKI,YAAL,CAAkB,YAAlB,EAAgC,4BAAhC;AACA,WAAKA,YAAL,CAAkB,MAAlB,EAA0B,QAA1B;;AAEA,WAAKJ,OAAL;AACD;;;kDArEyCK,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\n\nimport Main from './main';\n\nexport default class InlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model),\n );\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n choices: this._model.choices,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n feedback: this._model.feedback,\n language: this._model.language,\n markup: this._model.markup,\n maxLengthPerChoice: this._model.maxLengthPerChoice,\n maxLengthPerChoiceEnabled: this._model.maxLengthPerChoiceEnabled,\n mode: this._model.mode,\n note: this._model.note,\n onChange: this.changeSession,\n playerSpellCheckEnabled: this._model.playerSpellCheckEnabled,\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n role: this._model.role,\n showNote: this._model.showNote,\n teacherInstructions: this._model.teacherInstructions,\n value: this._session.value,\n });\n\n ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.session && !!this.session.value));\n };\n\n changeSession = (value) => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Fill in the Blank Question');\n this.setAttribute('role', 'region');\n\n this._render();\n }\n}\n"],"file":"index.js"}
|
package/lib/main.js
CHANGED
|
@@ -27,11 +27,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
27
27
|
|
|
28
28
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
29
|
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
33
|
-
|
|
34
|
-
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
30
|
+
var _lodash = require("lodash");
|
|
35
31
|
|
|
36
32
|
var _correctAnswerToggle = require("@pie-lib/pie-toolbox/correct-answer-toggle");
|
|
37
33
|
|
|
@@ -73,7 +69,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
73
69
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getChangeSession", function (maxLengthPerChoice) {
|
|
74
70
|
return maxLengthPerChoice && maxLengthPerChoice.every(function (val, i, arr) {
|
|
75
71
|
return val === arr[0] && val === 1;
|
|
76
|
-
}) ? _this.props.onChange : (0,
|
|
72
|
+
}) ? _this.props.onChange : (0, _lodash.debounce)(_this.props.onChange, 1500, {
|
|
77
73
|
maxWait: 1500
|
|
78
74
|
});
|
|
79
75
|
});
|
|
@@ -101,7 +97,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
101
97
|
language = _this$props.language;
|
|
102
98
|
var note = this.props.note;
|
|
103
99
|
|
|
104
|
-
if ((0,
|
|
100
|
+
if ((0, _lodash.isEmpty)(nextProps.feedback)) {
|
|
105
101
|
this.setState({
|
|
106
102
|
showCorrectAnswer: false
|
|
107
103
|
});
|
|
@@ -113,7 +109,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
113
109
|
});
|
|
114
110
|
}
|
|
115
111
|
|
|
116
|
-
if (maxLengthPerChoice && !(0,
|
|
112
|
+
if (maxLengthPerChoice && !(0, _lodash.isEqual)(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {
|
|
117
113
|
this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);
|
|
118
114
|
} // check if the note is the default one for prev language and change to the default one for new language
|
|
119
115
|
// this check is necessary in order to diferanciate between default and authour defined note
|
|
@@ -135,25 +131,21 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
135
131
|
showCorrectAnswer = _this$state.showCorrectAnswer,
|
|
136
132
|
value = _this$state.value;
|
|
137
133
|
var _this$props2 = this.props,
|
|
134
|
+
alwaysShowCorrect = _this$props2.alwaysShowCorrect,
|
|
135
|
+
animationsDisabled = _this$props2.animationsDisabled,
|
|
138
136
|
classes = _this$props2.classes,
|
|
139
137
|
mode = _this$props2.mode,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
note = _this$props2.note,
|
|
144
|
-
showNote = _this$props2.showNote,
|
|
145
|
-
env = _this$props2.env,
|
|
146
|
-
animationsDisabled = _this$props2.animationsDisabled,
|
|
147
|
-
alwaysShowCorrect = _this$props2.alwaysShowCorrect,
|
|
138
|
+
displayType = _this$props2.displayType,
|
|
139
|
+
role = _this$props2.role,
|
|
140
|
+
language = _this$props2.language,
|
|
148
141
|
maxLengthPerChoice = _this$props2.maxLengthPerChoice,
|
|
149
142
|
maxLengthPerChoiceEnabled = _this$props2.maxLengthPerChoiceEnabled,
|
|
150
|
-
|
|
143
|
+
note = _this$props2.note,
|
|
151
144
|
playerSpellCheckEnabled = _this$props2.playerSpellCheckEnabled,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
145
|
+
prompt = _this$props2.prompt,
|
|
146
|
+
rationale = _this$props2.rationale,
|
|
147
|
+
showNote = _this$props2.showNote,
|
|
148
|
+
teacherInstructions = _this$props2.teacherInstructions;
|
|
157
149
|
var displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;
|
|
158
150
|
var mainClasses = (0, _classnames["default"])([classes.mainContainer, (0, _defineProperty2["default"])({}, classes.noBorderColor, alwaysShowCorrect)]);
|
|
159
151
|
|
|
@@ -214,26 +206,26 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
214
206
|
|
|
215
207
|
exports.Main = Main;
|
|
216
208
|
(0, _defineProperty2["default"])(Main, "propTypes", {
|
|
209
|
+
alwaysShowCorrect: _propTypes["default"].bool,
|
|
210
|
+
animationsDisabled: _propTypes["default"].bool,
|
|
217
211
|
classes: _propTypes["default"].object.isRequired,
|
|
218
|
-
prompt: _propTypes["default"].string,
|
|
219
|
-
note: _propTypes["default"].string,
|
|
220
|
-
showNote: _propTypes["default"].bool,
|
|
221
|
-
env: _propTypes["default"].object,
|
|
222
|
-
rationale: _propTypes["default"].string,
|
|
223
212
|
disabled: _propTypes["default"].bool,
|
|
224
213
|
displayType: _propTypes["default"].string,
|
|
225
|
-
markup: _propTypes["default"].string,
|
|
226
|
-
mode: _propTypes["default"].string,
|
|
227
|
-
teacherInstructions: _propTypes["default"].string,
|
|
228
|
-
value: _propTypes["default"].object,
|
|
229
214
|
feedback: _propTypes["default"].object,
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
animationsDisabled: _propTypes["default"].bool,
|
|
215
|
+
language: _propTypes["default"].string,
|
|
216
|
+
markup: _propTypes["default"].string,
|
|
233
217
|
maxLengthPerChoice: _propTypes["default"].array,
|
|
234
218
|
maxLengthPerChoiceEnabled: _propTypes["default"].bool,
|
|
219
|
+
mode: _propTypes["default"].string,
|
|
220
|
+
note: _propTypes["default"].string,
|
|
221
|
+
onChange: _propTypes["default"].func,
|
|
235
222
|
playerSpellCheckEnabled: _propTypes["default"].bool,
|
|
236
|
-
|
|
223
|
+
prompt: _propTypes["default"].string,
|
|
224
|
+
rationale: _propTypes["default"].string,
|
|
225
|
+
role: _propTypes["default"].string,
|
|
226
|
+
showNote: _propTypes["default"].bool,
|
|
227
|
+
teacherInstructions: _propTypes["default"].string,
|
|
228
|
+
value: _propTypes["default"].object
|
|
237
229
|
});
|
|
238
230
|
(0, _defineProperty2["default"])(Main, "defaultProps", {
|
|
239
231
|
value: {}
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.js"],"names":["translator","Translator","Main","showCorrectAnswer","props","alwaysShowCorrect","value","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","changeSession","nextProps","language","note","feedback","t","lng","classes","mode","prompt","rationale","teacherInstructions","showNote","env","animationsDisabled","maxLengthPerChoiceEnabled","displayType","playerSpellCheckEnabled","role","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","srOnly","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","object","isRequired","string","bool","disabled","markup","func","array","styles","theme","color","text","backgroundColor","background","inlineDisplay","blockDisplay","marginBottom","spacing","unit","borderColor","position","left","top","width","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport {CorrectAnswerToggle} from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/pie-toolbox/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n note: PropTypes.string,\n showNote: PropTypes.bool,\n env: PropTypes.object,\n rationale: PropTypes.string,\n disabled: PropTypes.bool,\n displayType: PropTypes.string,\n markup: PropTypes.string,\n mode: PropTypes.string,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxLengthPerChoice: PropTypes.array,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n playerSpellCheckEnabled: PropTypes.bool,\n language: PropTypes.string,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n value: this.props.value,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 1500, { maxWait: 1500 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice, language } = this.props;\n let { note } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (note && language && language !== nextProps.language &&\n note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: language })) {\n note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextProps.language });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.setState({ value });\n\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer, value } = this.state;\n const {\n classes,\n mode,\n prompt,\n rationale,\n teacherInstructions,\n note,\n showNote,\n env,\n animationsDisabled,\n alwaysShowCorrect,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n displayType,\n playerSpellCheckEnabled,\n language\n } = this.props;\n\n const { role } = env || {};\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <div className={mainClasses} style={{ display: `${displayType}` }}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Fill in the Blank Question</h2>}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n )}\n\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n />\n\n {displayNote && (\n <div\n className={classNames(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.js"],"names":["translator","Translator","Main","showCorrectAnswer","props","alwaysShowCorrect","value","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","changeSession","nextProps","language","note","feedback","t","lng","animationsDisabled","classes","mode","displayType","role","maxLengthPerChoiceEnabled","playerSpellCheckEnabled","prompt","rationale","showNote","teacherInstructions","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","srOnly","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","bool","object","isRequired","disabled","string","markup","array","func","styles","theme","color","text","backgroundColor","background","inlineDisplay","blockDisplay","marginBottom","spacing","unit","borderColor","position","left","top","width","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce, isEmpty, isEqual } from 'lodash';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/pie-toolbox/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport class Main extends React.Component {\n static propTypes = {\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n displayType: PropTypes.string,\n feedback: PropTypes.object,\n language: PropTypes.string,\n markup: PropTypes.string,\n maxLengthPerChoice: PropTypes.array,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n mode: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n playerSpellCheckEnabled: PropTypes.bool,\n prompt: PropTypes.string,\n rationale: PropTypes.string,\n role: PropTypes.string,\n showNote: PropTypes.bool,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n value: this.props.value,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 1500, { maxWait: 1500 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice, language } = this.props;\n let { note } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n note &&\n language &&\n language !== nextProps.language &&\n note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: language })\n ) {\n note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextProps.language });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.setState({ value });\n\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer, value } = this.state;\n const {\n alwaysShowCorrect,\n animationsDisabled,\n classes,\n mode,\n displayType,\n role,\n language,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n note,\n playerSpellCheckEnabled,\n prompt,\n rationale,\n showNote,\n teacherInstructions,\n } = this.props;\n\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <div className={mainClasses} style={{ display: `${displayType}` }}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Fill in the Blank Question</h2>}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n )}\n\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n />\n\n {displayNote && <div className={classNames(classes.note, 'note')} dangerouslySetInnerHTML={{ __html: note }} />}\n\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/lib/print.js
CHANGED
|
@@ -46,12 +46,12 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
46
46
|
var log = (0, _debug["default"])('pie-element:explicit-constructed-response:print');
|
|
47
47
|
|
|
48
48
|
var preparePrintModel = function preparePrintModel(model, opts) {
|
|
49
|
-
var
|
|
49
|
+
var isInstructor = opts.role === 'instructor';
|
|
50
50
|
model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
|
|
51
|
-
model.teacherInstructions =
|
|
52
|
-
model.rationale =
|
|
53
|
-
model.alwaysShowCorrect =
|
|
54
|
-
model.mode =
|
|
51
|
+
model.teacherInstructions = isInstructor && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
|
|
52
|
+
model.rationale = isInstructor && model.rationaleEnabled !== false ? model.rationale : undefined;
|
|
53
|
+
model.alwaysShowCorrect = isInstructor;
|
|
54
|
+
model.mode = isInstructor ? 'evaluate' : model.mode;
|
|
55
55
|
model.disabled = true;
|
|
56
56
|
model.animationsDisabled = true;
|
|
57
57
|
return model;
|
package/lib/print.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","
|
|
1
|
+
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","isInstructor","role","prompt","promptEnabled","undefined","teacherInstructions","teacherInstructionsEnabled","rationale","rationaleEnabled","alwaysShowCorrect","mode","disabled","animationsDisabled","ExplicitConstructedResponsePrint","_options","_model","_session","_rerender","printModel","element","React","createElement","Main","onChange","ReactDOM","render","leading","trailing","o","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,iDAAN,CAAZ;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,IAAR,EAAiB;AACzC,MAAMC,YAAY,GAAGD,IAAI,CAACE,IAAL,KAAc,YAAnC;AAEAH,EAAAA,KAAK,CAACI,MAAN,GAAeJ,KAAK,CAACK,aAAN,KAAwB,KAAxB,GAAgCL,KAAK,CAACI,MAAtC,GAA+CE,SAA9D;AACAN,EAAAA,KAAK,CAACO,mBAAN,GACEL,YAAY,IAAIF,KAAK,CAACQ,0BAAN,KAAqC,KAArD,GAA6DR,KAAK,CAACO,mBAAnE,GAAyFD,SAD3F;AAEAN,EAAAA,KAAK,CAACS,SAAN,GAAkBP,YAAY,IAAIF,KAAK,CAACU,gBAAN,KAA2B,KAA3C,GAAmDV,KAAK,CAACS,SAAzD,GAAqEH,SAAvF;AACAN,EAAAA,KAAK,CAACW,iBAAN,GAA0BT,YAA1B;AACAF,EAAAA,KAAK,CAACY,IAAN,GAAaV,YAAY,GAAG,UAAH,GAAgBF,KAAK,CAACY,IAA/C;AACAZ,EAAAA,KAAK,CAACa,QAAN,GAAiB,IAAjB;AACAb,EAAAA,KAAK,CAACc,kBAAN,GAA2B,IAA3B;AAEA,SAAOd,KAAP;AACD,CAbD;;IAeqBe,gC;;;;;AACnB,8CAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AAEA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKF,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAME,UAAU,GAAGrB,iBAAiB,CAAC,MAAKkB,MAAN,EAAc,MAAKD,QAAnB,CAApC;;AAEA,YAAMK,OAAO,GACX,MAAKL,QAAL,iBACAM,kBAAMC,aAAN,CAAoBC,gBAApB,kCACKJ,UADL;AAEEK,UAAAA,QAAQ,EAAE,oBAAM,CAAE;AAFpB,WAFF;;AAOAC,6BAASC,MAAT,CAAgBN,OAAhB,kDAA+B,YAAM;AACnCvB,UAAAA,GAAG,CAAC,+BAAD,CAAH;AACA;AACD,SAHD;AAID,OAdD,MAcO;AACLA,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAnBc,EAoBf,EApBe,EAqBf;AAAE8B,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KArBe,CAAjB;AANY;AA6Bb;;;;SAED,aAAYC,CAAZ,EAAe;AACb,WAAKd,QAAL,GAAgBc,CAAhB;AACD;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKd,MAAL,GAAcc,CAAd;;AACA,WAAKZ,SAAL;AACD;;;WAED,6BAAoB,CAAE;;;kDAzCsCa,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport debug from 'debug';\n\nconst log = debug('pie-element:explicit-constructed-response:print');\n\nconst preparePrintModel = (model, opts) => {\n const isInstructor = opts.role === 'instructor';\n\n model.prompt = model.promptEnabled !== false ? model.prompt : undefined;\n model.teacherInstructions =\n isInstructor && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;\n model.rationale = isInstructor && model.rationaleEnabled !== false ? model.rationale : undefined;\n model.alwaysShowCorrect = isInstructor;\n model.mode = isInstructor ? 'evaluate' : model.mode;\n model.disabled = true;\n model.animationsDisabled = true;\n\n return model;\n};\n\nexport default class ExplicitConstructedResponsePrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = [];\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n ...printModel,\n onChange: () => {},\n });\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n}\n"],"file":"print.js"}
|
package/module/configure.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.12.0/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_editable_html, _dll_pie_lib__pie_toolbox_config_ui} from "../../../@pie-lib/pie-toolbox-module@4.12.0/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
@@ -16739,53 +16739,19 @@ var defaults = {};
|
|
|
16739
16739
|
exports["default"] = void 0;
|
|
16740
16740
|
var _default = {
|
|
16741
16741
|
model: {
|
|
16742
|
-
|
|
16743
|
-
mode: 'gather',
|
|
16744
|
-
prompt: 'Use the inputs to complete the sentence',
|
|
16745
|
-
shuffle: true,
|
|
16746
|
-
markup: '<p>The {{0}} jumped {{1}} the {{2}}</p>',
|
|
16747
|
-
toolbarEditorPosition: 'bottom',
|
|
16742
|
+
choices: {},
|
|
16748
16743
|
displayType: 'block',
|
|
16749
|
-
|
|
16750
|
-
playerSpellCheckEnabled: true,
|
|
16751
|
-
choices: {
|
|
16752
|
-
0: [{
|
|
16753
|
-
label: 'cow',
|
|
16754
|
-
value: '0'
|
|
16755
|
-
}, {
|
|
16756
|
-
label: 'cattle',
|
|
16757
|
-
value: '1'
|
|
16758
|
-
}, {
|
|
16759
|
-
label: 'calf',
|
|
16760
|
-
value: '2',
|
|
16761
|
-
correct: false
|
|
16762
|
-
}],
|
|
16763
|
-
1: [{
|
|
16764
|
-
label: 'over',
|
|
16765
|
-
value: '0'
|
|
16766
|
-
}, {
|
|
16767
|
-
label: 'past',
|
|
16768
|
-
value: '1'
|
|
16769
|
-
}, {
|
|
16770
|
-
label: 'beyond',
|
|
16771
|
-
value: '2'
|
|
16772
|
-
}],
|
|
16773
|
-
2: [{
|
|
16774
|
-
label: 'moon',
|
|
16775
|
-
value: '0'
|
|
16776
|
-
}, {
|
|
16777
|
-
label: 'satellite',
|
|
16778
|
-
value: '2'
|
|
16779
|
-
}, {
|
|
16780
|
-
label: 'house ',
|
|
16781
|
-
value: '3'
|
|
16782
|
-
}]
|
|
16783
|
-
},
|
|
16744
|
+
markup: '',
|
|
16784
16745
|
maxLengthPerChoiceEnabled: true,
|
|
16785
|
-
|
|
16746
|
+
playerSpellCheckEnabled: true,
|
|
16747
|
+
prompt: '',
|
|
16786
16748
|
promptEnabled: true,
|
|
16749
|
+
rationale: '',
|
|
16750
|
+
rationaleEnabled: true,
|
|
16751
|
+
spellCheckEnabled: true,
|
|
16752
|
+
studentInstructionsEnabled: true,
|
|
16787
16753
|
teacherInstructionsEnabled: true,
|
|
16788
|
-
|
|
16754
|
+
toolbarEditorPosition: 'bottom'
|
|
16789
16755
|
},
|
|
16790
16756
|
configuration: {
|
|
16791
16757
|
baseInputConfiguration: {
|