@pie-element/explicit-constructed-response 3.7.19-next.85 → 3.8.1-beta.587
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 +541 -0
- package/configure/CHANGELOG.md +482 -0
- package/configure/lib/alternateResponses.js +45 -12
- package/configure/lib/alternateResponses.js.map +1 -1
- package/configure/lib/alternateSection.js +116 -19
- package/configure/lib/alternateSection.js.map +1 -1
- package/configure/lib/defaults.js +35 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/ecr-toolbar.js +35 -19
- package/configure/lib/ecr-toolbar.js.map +1 -1
- package/configure/lib/index.js +17 -3
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +291 -58
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/markupUtils.js +29 -3
- package/configure/lib/markupUtils.js.map +1 -1
- package/configure/lib/utils.js +15 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +23 -5
- package/controller/CHANGELOG.md +107 -0
- package/controller/lib/defaults.js +1 -0
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +109 -6
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +137 -0
- package/docs/config-schema.json.md +105 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +6 -2
- package/docs/pie-schema.json +68 -0
- package/docs/pie-schema.json.md +53 -0
- package/lib/index.js +8 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +95 -25
- package/lib/main.js.map +1 -1
- package/lib/print.js +115 -0
- package/lib/print.js.map +1 -0
- package/package.json +14 -8
package/lib/main.js
CHANGED
|
@@ -31,6 +31,8 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
|
31
31
|
|
|
32
32
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
33
33
|
|
|
34
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
35
|
+
|
|
34
36
|
var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
|
|
35
37
|
|
|
36
38
|
var _maskMarkup = require("@pie-lib/mask-markup");
|
|
@@ -39,9 +41,11 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
39
41
|
|
|
40
42
|
var _styles = require("@material-ui/core/styles");
|
|
41
43
|
|
|
44
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
45
|
+
|
|
42
46
|
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); }; }
|
|
43
47
|
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
48
|
+
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; } }
|
|
45
49
|
|
|
46
50
|
var Main = /*#__PURE__*/function (_React$Component) {
|
|
47
51
|
(0, _inherits2["default"])(Main, _React$Component);
|
|
@@ -59,15 +63,22 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
59
63
|
|
|
60
64
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
61
65
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
62
|
-
showCorrectAnswer: false,
|
|
66
|
+
showCorrectAnswer: _this.props.alwaysShowCorrect || false,
|
|
63
67
|
value: _this.props.value
|
|
64
68
|
});
|
|
69
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getChangeSession", function (maxLengthPerChoice) {
|
|
70
|
+
return maxLengthPerChoice && maxLengthPerChoice.every(function (val, i, arr) {
|
|
71
|
+
return val === arr[0] && val === 1;
|
|
72
|
+
}) ? _this.props.onChange : (0, _debounce["default"])(_this.props.onChange, 1500, {
|
|
73
|
+
maxWait: 1500
|
|
74
|
+
});
|
|
75
|
+
});
|
|
65
76
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleShowCorrect", function () {
|
|
66
77
|
_this.setState({
|
|
67
78
|
showCorrectAnswer: !_this.state.showCorrectAnswer
|
|
68
79
|
});
|
|
69
80
|
});
|
|
70
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSession", (
|
|
81
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSession", _this.getChangeSession(_this.props.maxLengthPerChoice));
|
|
71
82
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (value) {
|
|
72
83
|
_this.setState({
|
|
73
84
|
value: value
|
|
@@ -81,11 +92,23 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
81
92
|
(0, _createClass2["default"])(Main, [{
|
|
82
93
|
key: "UNSAFE_componentWillReceiveProps",
|
|
83
94
|
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
95
|
+
var maxLengthPerChoice = this.props.maxLengthPerChoice;
|
|
96
|
+
|
|
84
97
|
if ((0, _isEmpty["default"])(nextProps.feedback)) {
|
|
85
98
|
this.setState({
|
|
86
99
|
showCorrectAnswer: false
|
|
87
100
|
});
|
|
88
101
|
}
|
|
102
|
+
|
|
103
|
+
if (nextProps.alwaysShowCorrect) {
|
|
104
|
+
this.setState({
|
|
105
|
+
showCorrectAnswer: true
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (maxLengthPerChoice && !(0, _isEqual["default"])(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {
|
|
110
|
+
this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);
|
|
111
|
+
}
|
|
89
112
|
}
|
|
90
113
|
}, {
|
|
91
114
|
key: "render",
|
|
@@ -98,44 +121,70 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
98
121
|
mode = _this$props.mode,
|
|
99
122
|
prompt = _this$props.prompt,
|
|
100
123
|
rationale = _this$props.rationale,
|
|
101
|
-
teacherInstructions = _this$props.teacherInstructions
|
|
124
|
+
teacherInstructions = _this$props.teacherInstructions,
|
|
125
|
+
note = _this$props.note,
|
|
126
|
+
showNote = _this$props.showNote,
|
|
127
|
+
env = _this$props.env,
|
|
128
|
+
animationsDisabled = _this$props.animationsDisabled,
|
|
129
|
+
alwaysShowCorrect = _this$props.alwaysShowCorrect,
|
|
130
|
+
maxLengthPerChoice = _this$props.maxLengthPerChoice,
|
|
131
|
+
maxLengthPerChoiceEnabled = _this$props.maxLengthPerChoiceEnabled,
|
|
132
|
+
displayType = _this$props.displayType,
|
|
133
|
+
playerSpellCheckEnabled = _this$props.playerSpellCheckEnabled;
|
|
134
|
+
|
|
135
|
+
var _ref = env || {},
|
|
136
|
+
role = _ref.role;
|
|
137
|
+
|
|
138
|
+
var displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;
|
|
139
|
+
var mainClasses = (0, _classnames["default"])([classes.mainContainer, (0, _defineProperty2["default"])({}, classes.noBorderColor, alwaysShowCorrect)]);
|
|
140
|
+
|
|
141
|
+
var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
142
|
+
defaultClassName: "teacher-instructions",
|
|
143
|
+
prompt: teacherInstructions
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
var rationaleDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
147
|
+
prompt: rationale
|
|
148
|
+
});
|
|
149
|
+
|
|
102
150
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
|
-
className:
|
|
151
|
+
className: mainClasses,
|
|
152
|
+
style: {
|
|
153
|
+
display: "".concat(displayType)
|
|
154
|
+
}
|
|
104
155
|
}, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
156
|
className: classes.collapsible
|
|
106
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
157
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
107
158
|
labels: {
|
|
108
159
|
hidden: 'Show Teacher Instructions',
|
|
109
160
|
visible: 'Hide Teacher Instructions'
|
|
110
161
|
}
|
|
111
|
-
}, /*#__PURE__*/_react["default"].createElement("
|
|
112
|
-
dangerouslySetInnerHTML: {
|
|
113
|
-
__html: teacherInstructions
|
|
114
|
-
}
|
|
115
|
-
}))), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
162
|
+
}, teacherInstructionsDiv) : teacherInstructionsDiv), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
116
163
|
show: mode === 'evaluate',
|
|
117
164
|
toggled: showCorrectAnswer,
|
|
118
165
|
onToggle: this.toggleShowCorrect
|
|
119
|
-
}), prompt && /*#__PURE__*/_react["default"].createElement(
|
|
166
|
+
}), prompt && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
167
|
+
prompt: prompt
|
|
168
|
+
}), /*#__PURE__*/_react["default"].createElement(_maskMarkup.ConstructedResponse, (0, _extends2["default"])({}, this.props, {
|
|
169
|
+
onChange: this.onChange,
|
|
170
|
+
showCorrectAnswer: showCorrectAnswer,
|
|
171
|
+
value: value,
|
|
172
|
+
maxLength: maxLengthPerChoice,
|
|
173
|
+
adjustedLimit: maxLengthPerChoiceEnabled,
|
|
174
|
+
spellCheck: playerSpellCheckEnabled
|
|
175
|
+
})), displayNote && /*#__PURE__*/_react["default"].createElement("div", {
|
|
176
|
+
className: (0, _classnames["default"])(classes.note, 'note'),
|
|
120
177
|
dangerouslySetInnerHTML: {
|
|
121
|
-
__html:
|
|
178
|
+
__html: "<strong>Note:</strong> ".concat(note)
|
|
122
179
|
}
|
|
123
180
|
}), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
124
181
|
className: classes.collapsible
|
|
125
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
182
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
126
183
|
labels: {
|
|
127
184
|
hidden: 'Show Rationale',
|
|
128
185
|
visible: 'Hide Rationale'
|
|
129
186
|
}
|
|
130
|
-
},
|
|
131
|
-
dangerouslySetInnerHTML: {
|
|
132
|
-
__html: rationale
|
|
133
|
-
}
|
|
134
|
-
}))), /*#__PURE__*/_react["default"].createElement(_maskMarkup.ConstructedResponse, (0, _extends2["default"])({}, this.props, {
|
|
135
|
-
onChange: this.onChange,
|
|
136
|
-
showCorrectAnswer: showCorrectAnswer,
|
|
137
|
-
value: value
|
|
138
|
-
})));
|
|
187
|
+
}, rationaleDiv) : rationaleDiv));
|
|
139
188
|
}
|
|
140
189
|
}]);
|
|
141
190
|
return Main;
|
|
@@ -145,6 +194,9 @@ exports.Main = Main;
|
|
|
145
194
|
(0, _defineProperty2["default"])(Main, "propTypes", {
|
|
146
195
|
classes: _propTypes["default"].object.isRequired,
|
|
147
196
|
prompt: _propTypes["default"].string,
|
|
197
|
+
note: _propTypes["default"].string,
|
|
198
|
+
showNote: _propTypes["default"].bool,
|
|
199
|
+
env: _propTypes["default"].object,
|
|
148
200
|
rationale: _propTypes["default"].string,
|
|
149
201
|
disabled: _propTypes["default"].bool,
|
|
150
202
|
markup: _propTypes["default"].string,
|
|
@@ -152,7 +204,11 @@ exports.Main = Main;
|
|
|
152
204
|
teacherInstructions: _propTypes["default"].string,
|
|
153
205
|
value: _propTypes["default"].object,
|
|
154
206
|
feedback: _propTypes["default"].object,
|
|
155
|
-
onChange: _propTypes["default"].func
|
|
207
|
+
onChange: _propTypes["default"].func,
|
|
208
|
+
alwaysShowCorrect: _propTypes["default"].bool,
|
|
209
|
+
animationsDisabled: _propTypes["default"].bool,
|
|
210
|
+
maxLengthPerChoice: _propTypes["default"].array,
|
|
211
|
+
playerSpellCheckEnabled: _propTypes["default"].bool
|
|
156
212
|
});
|
|
157
213
|
(0, _defineProperty2["default"])(Main, "defaultProps", {
|
|
158
214
|
value: {}
|
|
@@ -165,8 +221,22 @@ var styles = function styles(theme) {
|
|
|
165
221
|
color: _renderUi.color.text(),
|
|
166
222
|
backgroundColor: _renderUi.color.background()
|
|
167
223
|
},
|
|
224
|
+
inlineDisplay: {
|
|
225
|
+
display: 'inline-block'
|
|
226
|
+
},
|
|
227
|
+
blockDisplay: {
|
|
228
|
+
display: 'block'
|
|
229
|
+
},
|
|
230
|
+
note: {
|
|
231
|
+
padding: '5px 0'
|
|
232
|
+
},
|
|
168
233
|
collapsible: {
|
|
169
|
-
margin: "".concat(theme.spacing.unit * 2, " 0")
|
|
234
|
+
margin: "".concat(theme.spacing.unit * 2, "px 0")
|
|
235
|
+
},
|
|
236
|
+
noBorderColor: {
|
|
237
|
+
'& *': {
|
|
238
|
+
borderColor: "".concat(_renderUi.color.text(), " !important")
|
|
239
|
+
}
|
|
170
240
|
}
|
|
171
241
|
};
|
|
172
242
|
};
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.js"],"names":["Main","showCorrectAnswer","value","props","setState","state","onChange","changeSession","nextProps","feedback","classes","mode","prompt","rationale","teacherInstructions","mainContainer","collapsible","hidden","visible","__html","toggleShowCorrect","React","Component","PropTypes","object","isRequired","string","disabled","bool","markup","func","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","margin"],"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 CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/mask-markup';\nimport { color, Collapsible, hasText } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n rationale: PropTypes.string,\n disabled: PropTypes.bool,\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 };\n\n static defaultProps = {\n value: {}\n };\n\n state = {\n showCorrectAnswer: false,\n value: this.props.value\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = debounce(this.props.onChange, 1500);\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 { classes, mode, prompt, rationale, teacherInstructions } = this.props;\n\n return (\n <div className={classes.mainContainer}>\n {\n teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }}/>\n </Collapsible>\n </div>\n )\n }\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n {prompt && <div dangerouslySetInnerHTML={{ __html: prompt }}/>}\n {\n rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <div dangerouslySetInnerHTML={{ __html: rationale }}/>\n </Collapsible>\n </div>\n )\n }\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background()\n },\n collapsible: {\n margin: `${theme.spacing.unit * 2} 0`,\n }\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.js"],"names":["Main","showCorrectAnswer","props","alwaysShowCorrect","value","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","changeSession","nextProps","feedback","classes","mode","prompt","rationale","teacherInstructions","note","showNote","env","animationsDisabled","maxLengthPerChoiceEnabled","displayType","playerSpellCheckEnabled","role","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","object","isRequired","string","bool","disabled","markup","func","array","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","inlineDisplay","blockDisplay","margin","borderColor"],"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/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\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 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 playerSpellCheckEnabled: PropTypes.bool,\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 } = 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\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 } = 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 {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 {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n )}\n {prompt && <PreviewPrompt prompt={prompt} />}\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 {displayNote && (\n <div\n className={classNames(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\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 padding: theme.spacing.unit,\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 padding: '5px 0',\n },\n collapsible: {\n margin: `${theme.spacing.unit * 2}px 0`,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/lib/print.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
25
|
+
|
|
26
|
+
var _react = _interopRequireDefault(require("react"));
|
|
27
|
+
|
|
28
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
29
|
+
|
|
30
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
31
|
+
|
|
32
|
+
var _main = _interopRequireDefault(require("./main"));
|
|
33
|
+
|
|
34
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
35
|
+
|
|
36
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
42
|
+
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); }; }
|
|
43
|
+
|
|
44
|
+
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; } }
|
|
45
|
+
|
|
46
|
+
var log = (0, _debug["default"])('pie-element:explicit-constructed-response:print');
|
|
47
|
+
|
|
48
|
+
var preparePrintModel = function preparePrintModel(model, opts) {
|
|
49
|
+
var instr = opts.role === 'instructor';
|
|
50
|
+
model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
|
|
51
|
+
model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
|
|
52
|
+
model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;
|
|
53
|
+
model.alwaysShowCorrect = instr;
|
|
54
|
+
model.mode = instr ? 'evaluate' : model.mode;
|
|
55
|
+
model.disabled = true;
|
|
56
|
+
model.animationsDisabled = true;
|
|
57
|
+
return model;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var ExplicitConstructedResponsePrint = /*#__PURE__*/function (_HTMLElement) {
|
|
61
|
+
(0, _inherits2["default"])(ExplicitConstructedResponsePrint, _HTMLElement);
|
|
62
|
+
|
|
63
|
+
var _super = _createSuper(ExplicitConstructedResponsePrint);
|
|
64
|
+
|
|
65
|
+
function ExplicitConstructedResponsePrint() {
|
|
66
|
+
var _this;
|
|
67
|
+
|
|
68
|
+
(0, _classCallCheck2["default"])(this, ExplicitConstructedResponsePrint);
|
|
69
|
+
_this = _super.call(this);
|
|
70
|
+
_this._options = null;
|
|
71
|
+
_this._model = null;
|
|
72
|
+
_this._session = [];
|
|
73
|
+
_this._rerender = (0, _debounce["default"])(function () {
|
|
74
|
+
if (_this._model && _this._session) {
|
|
75
|
+
var printModel = preparePrintModel(_this._model, _this._options);
|
|
76
|
+
|
|
77
|
+
var element = _this._options && /*#__PURE__*/_react["default"].createElement(_main["default"], _objectSpread(_objectSpread({}, printModel), {}, {
|
|
78
|
+
onChange: function onChange() {}
|
|
79
|
+
}));
|
|
80
|
+
|
|
81
|
+
_reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this), function () {
|
|
82
|
+
log('render complete - render math');
|
|
83
|
+
(0, _mathRendering.renderMath)((0, _assertThisInitialized2["default"])(_this));
|
|
84
|
+
});
|
|
85
|
+
} else {
|
|
86
|
+
log('skip');
|
|
87
|
+
}
|
|
88
|
+
}, 50, {
|
|
89
|
+
leading: false,
|
|
90
|
+
trailing: true
|
|
91
|
+
});
|
|
92
|
+
return _this;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
(0, _createClass2["default"])(ExplicitConstructedResponsePrint, [{
|
|
96
|
+
key: "options",
|
|
97
|
+
set: function set(o) {
|
|
98
|
+
this._options = o;
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
key: "model",
|
|
102
|
+
set: function set(s) {
|
|
103
|
+
this._model = s;
|
|
104
|
+
|
|
105
|
+
this._rerender();
|
|
106
|
+
}
|
|
107
|
+
}, {
|
|
108
|
+
key: "connectedCallback",
|
|
109
|
+
value: function connectedCallback() {}
|
|
110
|
+
}]);
|
|
111
|
+
return ExplicitConstructedResponsePrint;
|
|
112
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
113
|
+
|
|
114
|
+
exports["default"] = ExplicitConstructedResponsePrint;
|
|
115
|
+
//# sourceMappingURL=print.js.map
|
package/lib/print.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","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,KAAK,GAAGD,IAAI,CAACE,IAAL,KAAc,YAA5B;AAEAH,EAAAA,KAAK,CAACI,MAAN,GAAeJ,KAAK,CAACK,aAAN,KAAwB,KAAxB,GAAgCL,KAAK,CAACI,MAAtC,GAA+CE,SAA9D;AACAN,EAAAA,KAAK,CAACO,mBAAN,GACEL,KAAK,IAAIF,KAAK,CAACQ,0BAAN,KAAqC,KAA9C,GAAsDR,KAAK,CAACO,mBAA5D,GAAkFD,SADpF;AAEAN,EAAAA,KAAK,CAACS,SAAN,GAAkBP,KAAK,IAAIF,KAAK,CAACU,gBAAN,KAA2B,KAApC,GAA4CV,KAAK,CAACS,SAAlD,GAA8DH,SAAhF;AAEAN,EAAAA,KAAK,CAACW,iBAAN,GAA0BT,KAA1B;AACAF,EAAAA,KAAK,CAACY,IAAN,GAAaV,KAAK,GAAG,UAAH,GAAgBF,KAAK,CAACY,IAAxC;AAEAZ,EAAAA,KAAK,CAACa,QAAN,GAAiB,IAAjB;AACAb,EAAAA,KAAK,CAACc,kBAAN,GAA2B,IAA3B;AAEA,SAAOd,KAAP;AACD,CAfD;;IAiBqBe,gC;;;;;AACnB,8CAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AACA,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;AALY;AA4Bb;;;;SACD,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;;;kDAvCsCa,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/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:explicit-constructed-response:print');\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n model.prompt = model.promptEnabled !== false ? model.prompt : undefined;\n model.teacherInstructions =\n instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;\n model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;\n\n model.alwaysShowCorrect = instr;\n model.mode = instr ? 'evaluate' : model.mode;\n\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 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 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/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "3.
|
|
7
|
+
"version": "3.8.1-beta.587+40df32c2f",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -13,19 +13,25 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@material-ui/core": "^3.9.2",
|
|
15
15
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
16
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
17
|
-
"@pie-lib/mask-markup": "
|
|
18
|
-
"@pie-lib/math-rendering": "^2.
|
|
19
|
-
"@pie-lib/render-ui": "^4.
|
|
16
|
+
"@pie-lib/correct-answer-toggle": "^2.3.62",
|
|
17
|
+
"@pie-lib/mask-markup": "2.0.0-beta.1",
|
|
18
|
+
"@pie-lib/math-rendering": "^2.5.12",
|
|
19
|
+
"@pie-lib/render-ui": "^4.14.12",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
|
+
"is-plain-object": "^5.0.0",
|
|
21
22
|
"lodash": "^4.17.10",
|
|
22
23
|
"prop-types": "^15.6.1",
|
|
23
24
|
"react": "^16.8.1",
|
|
24
|
-
"react-dom": "^16.8.1"
|
|
25
|
+
"react-dom": "^16.8.1",
|
|
26
|
+
"slate-react": "0.92.0"
|
|
25
27
|
},
|
|
26
28
|
"author": "",
|
|
27
29
|
"license": "ISC",
|
|
28
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "40df32c2f78966706cb168843567c9df174f1d88",
|
|
29
31
|
"main": "lib/index.js",
|
|
30
|
-
"module": "src/index.js"
|
|
32
|
+
"module": "src/index.js",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": "./src/index.js",
|
|
35
|
+
"./print": "./src/print.js"
|
|
36
|
+
}
|
|
31
37
|
}
|