@pie-element/explicit-constructed-response 3.10.2 → 3.11.1-next.0
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 +8 -6
- package/configure/CHANGELOG.md +7 -1
- package/configure/lib/alternateResponses.js +36 -3
- package/configure/lib/alternateResponses.js.map +1 -1
- package/configure/lib/alternateSection.js +74 -5
- package/configure/lib/alternateSection.js.map +1 -1
- package/configure/lib/defaults.js +5 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/ecr-toolbar.js +3 -0
- package/configure/lib/ecr-toolbar.js.map +1 -1
- package/configure/lib/main.js +72 -25
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +12 -0
- package/controller/lib/index.js +13 -2
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +16 -0
- package/docs/config-schema.json.md +12 -0
- package/docs/demo/generate.js +1 -0
- package/docs/pie-schema.json +8 -0
- package/docs/pie-schema.json.md +6 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/main.js +63 -19
- package/lib/main.js.map +1 -1
- package/lib/print.js +114 -0
- package/lib/print.js.map +1 -0
- package/package.json +11 -7
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,6 +41,8 @@ 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
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; } }
|
|
@@ -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",
|
|
@@ -101,54 +124,67 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
101
124
|
teacherInstructions = _this$props.teacherInstructions,
|
|
102
125
|
note = _this$props.note,
|
|
103
126
|
showNote = _this$props.showNote,
|
|
104
|
-
env = _this$props.env
|
|
127
|
+
env = _this$props.env,
|
|
128
|
+
animationsDisabled = _this$props.animationsDisabled,
|
|
129
|
+
alwaysShowCorrect = _this$props.alwaysShowCorrect,
|
|
130
|
+
maxLengthPerChoice = _this$props.maxLengthPerChoice;
|
|
105
131
|
|
|
106
132
|
var _ref = env || {},
|
|
107
133
|
role = _ref.role;
|
|
108
134
|
|
|
109
135
|
var displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;
|
|
136
|
+
var mainClasses = (0, _classnames["default"])([classes.mainContainer, alwaysShowCorrect ? classes.noBorderColor : {}]);
|
|
137
|
+
|
|
138
|
+
var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement("div", {
|
|
139
|
+
className: "teacher-instructions",
|
|
140
|
+
dangerouslySetInnerHTML: {
|
|
141
|
+
__html: teacherInstructions
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
var rationaleDiv = /*#__PURE__*/_react["default"].createElement("div", {
|
|
146
|
+
className: "rationale",
|
|
147
|
+
dangerouslySetInnerHTML: {
|
|
148
|
+
__html: rationale
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
110
152
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
|
-
className:
|
|
153
|
+
className: mainClasses
|
|
112
154
|
}, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
113
155
|
className: classes.collapsible
|
|
114
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
156
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
115
157
|
labels: {
|
|
116
158
|
hidden: 'Show Teacher Instructions',
|
|
117
159
|
visible: 'Hide Teacher Instructions'
|
|
118
160
|
}
|
|
119
|
-
}, /*#__PURE__*/_react["default"].createElement("
|
|
120
|
-
dangerouslySetInnerHTML: {
|
|
121
|
-
__html: teacherInstructions
|
|
122
|
-
}
|
|
123
|
-
}))), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
161
|
+
}, teacherInstructionsDiv) : teacherInstructionsDiv), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
124
162
|
show: mode === 'evaluate',
|
|
125
163
|
toggled: showCorrectAnswer,
|
|
126
164
|
onToggle: this.toggleShowCorrect
|
|
127
165
|
}), prompt && /*#__PURE__*/_react["default"].createElement("div", {
|
|
166
|
+
className: "prompt",
|
|
128
167
|
dangerouslySetInnerHTML: {
|
|
129
168
|
__html: prompt
|
|
130
169
|
}
|
|
131
170
|
}), /*#__PURE__*/_react["default"].createElement(_maskMarkup.ConstructedResponse, (0, _extends2["default"])({}, this.props, {
|
|
132
171
|
onChange: this.onChange,
|
|
133
172
|
showCorrectAnswer: showCorrectAnswer,
|
|
134
|
-
value: value
|
|
173
|
+
value: value,
|
|
174
|
+
maxLength: maxLengthPerChoice
|
|
135
175
|
})), displayNote && /*#__PURE__*/_react["default"].createElement("div", {
|
|
136
|
-
className: classes.note,
|
|
176
|
+
className: (0, _classnames["default"])(classes.note, 'note'),
|
|
137
177
|
dangerouslySetInnerHTML: {
|
|
138
178
|
__html: "<strong>Note:</strong> ".concat(note)
|
|
139
179
|
}
|
|
140
180
|
}), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
141
181
|
className: classes.collapsible
|
|
142
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
182
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
143
183
|
labels: {
|
|
144
184
|
hidden: 'Show Rationale',
|
|
145
185
|
visible: 'Hide Rationale'
|
|
146
186
|
}
|
|
147
|
-
},
|
|
148
|
-
dangerouslySetInnerHTML: {
|
|
149
|
-
__html: rationale
|
|
150
|
-
}
|
|
151
|
-
}))));
|
|
187
|
+
}, rationaleDiv) : rationaleDiv));
|
|
152
188
|
}
|
|
153
189
|
}]);
|
|
154
190
|
return Main;
|
|
@@ -168,7 +204,10 @@ exports.Main = Main;
|
|
|
168
204
|
teacherInstructions: _propTypes["default"].string,
|
|
169
205
|
value: _propTypes["default"].object,
|
|
170
206
|
feedback: _propTypes["default"].object,
|
|
171
|
-
onChange: _propTypes["default"].func
|
|
207
|
+
onChange: _propTypes["default"].func,
|
|
208
|
+
alwaysShowCorrect: _propTypes["default"].bool,
|
|
209
|
+
animationsDisabled: _propTypes["default"].bool,
|
|
210
|
+
maxLengthPerChoice: _propTypes["default"].array
|
|
172
211
|
});
|
|
173
212
|
(0, _defineProperty2["default"])(Main, "defaultProps", {
|
|
174
213
|
value: {}
|
|
@@ -186,6 +225,11 @@ var styles = function styles(theme) {
|
|
|
186
225
|
},
|
|
187
226
|
collapsible: {
|
|
188
227
|
margin: "".concat(theme.spacing.unit * 2, "px 0")
|
|
228
|
+
},
|
|
229
|
+
noBorderColor: {
|
|
230
|
+
'& *': {
|
|
231
|
+
borderColor: "".concat(_renderUi.color.text(), " !important")
|
|
232
|
+
}
|
|
189
233
|
}
|
|
190
234
|
};
|
|
191
235
|
};
|
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","note","showNote","env","role","displayNote","mainContainer","collapsible","hidden","visible","__html","toggleShowCorrect","React","Component","PropTypes","object","isRequired","string","bool","disabled","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 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 };\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, note, showNote, env } = this.props;\n const { role } = env || {};\n const displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;\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 <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n />\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\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 </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 note: {\n padding: '5px 0',\n },\n collapsible: {\n margin: `${theme.spacing.unit * 2}px 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","role","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","__html","rationaleDiv","collapsible","hidden","visible","toggleShowCorrect","React","Component","PropTypes","object","isRequired","string","bool","disabled","markup","func","array","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","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 } 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 };\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) ? 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 } = this.props;\n const { role } = env || {};\n const displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;\n const mainClasses = classNames([classes.mainContainer, alwaysShowCorrect ? classes.noBorderColor : {}]);\n\n const teacherInstructionsDiv = <div\n className=\"teacher-instructions\"\n dangerouslySetInnerHTML={{ __html: teacherInstructions }}\n />;\n\n const rationaleDiv = <div className=\"rationale\" dangerouslySetInnerHTML={{ __html: rationale }}/>;\n\n return (\n <div className={mainClasses}>\n {\n teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n : teacherInstructionsDiv}\n </div>\n )\n }\n {!alwaysShowCorrect && <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />}\n {prompt && <div className=\"prompt\" dangerouslySetInnerHTML={{ __html: prompt }}/>}\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\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 ? <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n {rationaleDiv}\n </Collapsible>\n : rationaleDiv}\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 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,114 @@
|
|
|
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); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { 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.teacherInstructions = instr ? model.teacherInstructions : undefined;
|
|
51
|
+
model.rationale = instr ? model.rationale : undefined;
|
|
52
|
+
model.alwaysShowCorrect = instr;
|
|
53
|
+
model.mode = instr ? 'evaluate' : model.mode;
|
|
54
|
+
model.disabled = true;
|
|
55
|
+
model.animationsDisabled = true;
|
|
56
|
+
return model;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
var ExplicitConstructedResponsePrint = /*#__PURE__*/function (_HTMLElement) {
|
|
60
|
+
(0, _inherits2["default"])(ExplicitConstructedResponsePrint, _HTMLElement);
|
|
61
|
+
|
|
62
|
+
var _super = _createSuper(ExplicitConstructedResponsePrint);
|
|
63
|
+
|
|
64
|
+
function ExplicitConstructedResponsePrint() {
|
|
65
|
+
var _this;
|
|
66
|
+
|
|
67
|
+
(0, _classCallCheck2["default"])(this, ExplicitConstructedResponsePrint);
|
|
68
|
+
_this = _super.call(this);
|
|
69
|
+
_this._options = null;
|
|
70
|
+
_this._model = null;
|
|
71
|
+
_this._session = [];
|
|
72
|
+
_this._rerender = (0, _debounce["default"])(function () {
|
|
73
|
+
if (_this._model && _this._session) {
|
|
74
|
+
var printModel = preparePrintModel(_this._model, _this._options);
|
|
75
|
+
|
|
76
|
+
var element = _this._options && /*#__PURE__*/_react["default"].createElement(_main["default"], _objectSpread(_objectSpread({}, printModel), {}, {
|
|
77
|
+
onChange: function onChange() {}
|
|
78
|
+
}));
|
|
79
|
+
|
|
80
|
+
_reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this), function () {
|
|
81
|
+
log('render complete - render math');
|
|
82
|
+
(0, _mathRendering.renderMath)((0, _assertThisInitialized2["default"])(_this));
|
|
83
|
+
});
|
|
84
|
+
} else {
|
|
85
|
+
log('skip');
|
|
86
|
+
}
|
|
87
|
+
}, 50, {
|
|
88
|
+
leading: false,
|
|
89
|
+
trailing: true
|
|
90
|
+
});
|
|
91
|
+
return _this;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
(0, _createClass2["default"])(ExplicitConstructedResponsePrint, [{
|
|
95
|
+
key: "options",
|
|
96
|
+
set: function set(o) {
|
|
97
|
+
this._options = o;
|
|
98
|
+
}
|
|
99
|
+
}, {
|
|
100
|
+
key: "model",
|
|
101
|
+
set: function set(s) {
|
|
102
|
+
this._model = s;
|
|
103
|
+
|
|
104
|
+
this._rerender();
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
key: "connectedCallback",
|
|
108
|
+
value: function connectedCallback() {}
|
|
109
|
+
}]);
|
|
110
|
+
return ExplicitConstructedResponsePrint;
|
|
111
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
112
|
+
|
|
113
|
+
exports["default"] = ExplicitConstructedResponsePrint;
|
|
114
|
+
//# 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","teacherInstructions","undefined","rationale","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,mBAAN,GAA4BF,KAAK,GAAGF,KAAK,CAACI,mBAAT,GAA+BC,SAAhE;AACAL,EAAAA,KAAK,CAACM,SAAN,GAAkBJ,KAAK,GAAGF,KAAK,CAACM,SAAT,GAAqBD,SAA5C;AAEAL,EAAAA,KAAK,CAACO,iBAAN,GAA0BL,KAA1B;AACAF,EAAAA,KAAK,CAACQ,IAAN,GAAaN,KAAK,GAAG,UAAH,GAAgBF,KAAK,CAACQ,IAAxC;AAEAR,EAAAA,KAAK,CAACS,QAAN,GAAiB,IAAjB;AACAT,EAAAA,KAAK,CAACU,kBAAN,GAA2B,IAA3B;AAEA,SAAOV,KAAP;AACD,CAbD;;IAeqBW,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,GAAGjB,iBAAiB,CAAC,MAAKc,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;AACnCnB,UAAAA,GAAG,CAAC,+BAAD,CAAH;AACA;AACD,SAHD;AAID,OAdD,MAcO;AACLA,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAnBc,EAoBf,EApBe,EAqBf;AAAE0B,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.teacherInstructions = instr ? model.teacherInstructions : undefined;\n model.rationale = instr ? 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.11.1-next.0+d2dc19035",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -13,10 +13,10 @@
|
|
|
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": "^1.
|
|
18
|
-
"@pie-lib/math-rendering": "^2.3.
|
|
19
|
-
"@pie-lib/render-ui": "^4.12.
|
|
16
|
+
"@pie-lib/correct-answer-toggle": "^2.3.31",
|
|
17
|
+
"@pie-lib/mask-markup": "^1.11.2",
|
|
18
|
+
"@pie-lib/math-rendering": "^2.3.11",
|
|
19
|
+
"@pie-lib/render-ui": "^4.12.2",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
21
|
"lodash": "^4.17.10",
|
|
22
22
|
"prop-types": "^15.6.1",
|
|
@@ -25,7 +25,11 @@
|
|
|
25
25
|
},
|
|
26
26
|
"author": "",
|
|
27
27
|
"license": "ISC",
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "d2dc19035d4961c1c47b2b41dca50c756915da76",
|
|
29
29
|
"main": "lib/index.js",
|
|
30
|
-
"module": "src/index.js"
|
|
30
|
+
"module": "src/index.js",
|
|
31
|
+
"exports": {
|
|
32
|
+
".": "./src/index.js",
|
|
33
|
+
"./print": "./src/print.js"
|
|
34
|
+
}
|
|
31
35
|
}
|