@pie-element/explicit-constructed-response 3.10.1 → 3.10.5
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 +37 -0
- package/configure/CHANGELOG.md +29 -0
- package/configure/lib/alternateResponses.js +38 -5
- package/configure/lib/alternateResponses.js.map +1 -1
- package/configure/lib/alternateSection.js +76 -7
- 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 +5 -2
- package/configure/lib/ecr-toolbar.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/lib/main.js +80 -29
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +8 -0
- package/controller/lib/index.js +14 -3
- 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 +2 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +48 -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
|
@@ -39,9 +39,11 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
39
39
|
|
|
40
40
|
var _styles = require("@material-ui/core/styles");
|
|
41
41
|
|
|
42
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
43
|
+
|
|
42
44
|
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
45
|
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
46
|
+
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
47
|
|
|
46
48
|
var Main = /*#__PURE__*/function (_React$Component) {
|
|
47
49
|
(0, _inherits2["default"])(Main, _React$Component);
|
|
@@ -59,7 +61,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
59
61
|
|
|
60
62
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
61
63
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
62
|
-
showCorrectAnswer: false,
|
|
64
|
+
showCorrectAnswer: _this.props.alwaysShowCorrect || false,
|
|
63
65
|
value: _this.props.value
|
|
64
66
|
});
|
|
65
67
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleShowCorrect", function () {
|
|
@@ -86,6 +88,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
86
88
|
showCorrectAnswer: false
|
|
87
89
|
});
|
|
88
90
|
}
|
|
91
|
+
|
|
92
|
+
if (nextProps.alwaysShowCorrect) {
|
|
93
|
+
this.setState({
|
|
94
|
+
showCorrectAnswer: true
|
|
95
|
+
});
|
|
96
|
+
}
|
|
89
97
|
}
|
|
90
98
|
}, {
|
|
91
99
|
key: "render",
|
|
@@ -101,54 +109,67 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
101
109
|
teacherInstructions = _this$props.teacherInstructions,
|
|
102
110
|
note = _this$props.note,
|
|
103
111
|
showNote = _this$props.showNote,
|
|
104
|
-
env = _this$props.env
|
|
112
|
+
env = _this$props.env,
|
|
113
|
+
animationsDisabled = _this$props.animationsDisabled,
|
|
114
|
+
alwaysShowCorrect = _this$props.alwaysShowCorrect,
|
|
115
|
+
maxLengthPerChoice = _this$props.maxLengthPerChoice;
|
|
105
116
|
|
|
106
117
|
var _ref = env || {},
|
|
107
118
|
role = _ref.role;
|
|
108
119
|
|
|
109
120
|
var displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;
|
|
121
|
+
var mainClasses = (0, _classnames["default"])([classes.mainContainer, alwaysShowCorrect ? classes.noBorderColor : {}]);
|
|
122
|
+
|
|
123
|
+
var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement("div", {
|
|
124
|
+
className: "teacher-instructions",
|
|
125
|
+
dangerouslySetInnerHTML: {
|
|
126
|
+
__html: teacherInstructions
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
var rationaleDiv = /*#__PURE__*/_react["default"].createElement("div", {
|
|
131
|
+
className: "rationale",
|
|
132
|
+
dangerouslySetInnerHTML: {
|
|
133
|
+
__html: rationale
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
|
|
110
137
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
|
-
className:
|
|
138
|
+
className: mainClasses
|
|
112
139
|
}, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
113
140
|
className: classes.collapsible
|
|
114
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
141
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
115
142
|
labels: {
|
|
116
143
|
hidden: 'Show Teacher Instructions',
|
|
117
144
|
visible: 'Hide Teacher Instructions'
|
|
118
145
|
}
|
|
119
|
-
}, /*#__PURE__*/_react["default"].createElement("
|
|
120
|
-
dangerouslySetInnerHTML: {
|
|
121
|
-
__html: teacherInstructions
|
|
122
|
-
}
|
|
123
|
-
}))), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
146
|
+
}, teacherInstructionsDiv) : teacherInstructionsDiv), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
124
147
|
show: mode === 'evaluate',
|
|
125
148
|
toggled: showCorrectAnswer,
|
|
126
149
|
onToggle: this.toggleShowCorrect
|
|
127
150
|
}), prompt && /*#__PURE__*/_react["default"].createElement("div", {
|
|
151
|
+
className: "prompt",
|
|
128
152
|
dangerouslySetInnerHTML: {
|
|
129
153
|
__html: prompt
|
|
130
154
|
}
|
|
131
155
|
}), /*#__PURE__*/_react["default"].createElement(_maskMarkup.ConstructedResponse, (0, _extends2["default"])({}, this.props, {
|
|
132
156
|
onChange: this.onChange,
|
|
133
157
|
showCorrectAnswer: showCorrectAnswer,
|
|
134
|
-
value: value
|
|
158
|
+
value: value,
|
|
159
|
+
maxLength: maxLengthPerChoice
|
|
135
160
|
})), displayNote && /*#__PURE__*/_react["default"].createElement("div", {
|
|
136
|
-
className: classes.note,
|
|
161
|
+
className: (0, _classnames["default"])(classes.note, 'note'),
|
|
137
162
|
dangerouslySetInnerHTML: {
|
|
138
163
|
__html: "<strong>Note:</strong> ".concat(note)
|
|
139
164
|
}
|
|
140
165
|
}), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
141
166
|
className: classes.collapsible
|
|
142
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
167
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
143
168
|
labels: {
|
|
144
169
|
hidden: 'Show Rationale',
|
|
145
170
|
visible: 'Hide Rationale'
|
|
146
171
|
}
|
|
147
|
-
},
|
|
148
|
-
dangerouslySetInnerHTML: {
|
|
149
|
-
__html: rationale
|
|
150
|
-
}
|
|
151
|
-
}))));
|
|
172
|
+
}, rationaleDiv) : rationaleDiv));
|
|
152
173
|
}
|
|
153
174
|
}]);
|
|
154
175
|
return Main;
|
|
@@ -168,7 +189,10 @@ exports.Main = Main;
|
|
|
168
189
|
teacherInstructions: _propTypes["default"].string,
|
|
169
190
|
value: _propTypes["default"].object,
|
|
170
191
|
feedback: _propTypes["default"].object,
|
|
171
|
-
onChange: _propTypes["default"].func
|
|
192
|
+
onChange: _propTypes["default"].func,
|
|
193
|
+
alwaysShowCorrect: _propTypes["default"].bool,
|
|
194
|
+
animationsDisabled: _propTypes["default"].bool,
|
|
195
|
+
maxLengthPerChoice: _propTypes["default"].array
|
|
172
196
|
});
|
|
173
197
|
(0, _defineProperty2["default"])(Main, "defaultProps", {
|
|
174
198
|
value: {}
|
|
@@ -186,6 +210,11 @@ var styles = function styles(theme) {
|
|
|
186
210
|
},
|
|
187
211
|
collapsible: {
|
|
188
212
|
margin: "".concat(theme.spacing.unit * 2, "px 0")
|
|
213
|
+
},
|
|
214
|
+
noBorderColor: {
|
|
215
|
+
'& *': {
|
|
216
|
+
borderColor: "".concat(_renderUi.color.text(), " !important")
|
|
217
|
+
}
|
|
189
218
|
}
|
|
190
219
|
};
|
|
191
220
|
};
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.js"],"names":["Main","showCorrectAnswer","
|
|
1
|
+
{"version":3,"sources":["../src/main.js"],"names":["Main","showCorrectAnswer","props","alwaysShowCorrect","value","setState","state","onChange","changeSession","nextProps","feedback","classes","mode","prompt","rationale","teacherInstructions","note","showNote","env","animationsDisabled","maxLengthPerChoice","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 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 UNSAFE_componentWillReceiveProps(nextProps) {\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\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 {\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.10.
|
|
7
|
+
"version": "3.10.5",
|
|
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.1",
|
|
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": "39691eb79f1f5ece91c831add33b05871b20828b",
|
|
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
|
}
|