@pie-element/multiple-choice 7.6.1-beta.3 → 7.6.1-beta.4

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.
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.MultipleChoice = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+ var _styles = require("@material-ui/core/styles");
20
+ var _renderUi = require("@pie-lib/render-ui");
21
+ var _choice = _interopRequireDefault(require("./choice"));
22
+ 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); }; }
23
+ 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; } }
24
+ // MultipleChoice
25
+
26
+ var styles = {
27
+ corespringChoice: {
28
+ backgroundColor: _renderUi.color.background(),
29
+ padding: '5px',
30
+ '& *': {
31
+ '-webkit-font-smoothing': 'antialiased'
32
+ }
33
+ },
34
+ horizontalLayout: {
35
+ display: 'flex',
36
+ flexDirection: 'row',
37
+ flexWrap: 'wrap'
38
+ },
39
+ gridLayout: {
40
+ display: 'grid'
41
+ },
42
+ getColumns: function getColumns(columns) {
43
+ return columns > 1 ? {
44
+ gridTemplateColumns: "repeat(".concat(columns, ", 1fr)")
45
+ } : undefined;
46
+ },
47
+ fieldset: {
48
+ border: '0px',
49
+ padding: '0.01em 0 0 0',
50
+ margin: '0px',
51
+ minWidth: '0px'
52
+ }
53
+ };
54
+ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
55
+ (0, _inherits2["default"])(MultipleChoice, _React$Component);
56
+ var _super = _createSuper(MultipleChoice);
57
+ function MultipleChoice(props) {
58
+ var _this;
59
+ (0, _classCallCheck2["default"])(this, MultipleChoice);
60
+ _this = _super.call(this, props);
61
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getCorrectness", function () {
62
+ var choice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
63
+ var isCorrect = choice.correct;
64
+ var isChecked = _this.isSelected(choice.value);
65
+ if (_this.state.showCorrect) {
66
+ return isCorrect ? 'correct' : undefined;
67
+ }
68
+ if (isCorrect) {
69
+ if (isChecked) {
70
+ // A correct answer is selected: marked with a green checkmark
71
+ return 'correct';
72
+ } else {
73
+ // A correct answer is NOT selected: marked with an orange X
74
+ return 'incorrect';
75
+ }
76
+ } else {
77
+ if (isChecked) {
78
+ // An incorrect answer is selected: marked with an orange X
79
+ return 'incorrect';
80
+ } else {
81
+ // An incorrect answer is NOT selected: not marked
82
+ return undefined;
83
+ }
84
+ }
85
+ });
86
+ _this.state = {
87
+ showCorrect: _this.props.alwaysShowCorrect || false
88
+ };
89
+ _this.onToggle = _this.onToggle.bind((0, _assertThisInitialized2["default"])(_this));
90
+ return _this;
91
+ }
92
+ (0, _createClass2["default"])(MultipleChoice, [{
93
+ key: "onToggle",
94
+ value: function onToggle() {
95
+ if (this.props.mode === 'evaluate') {
96
+ this.setState({
97
+ showCorrect: !this.state.showCorrect
98
+ });
99
+ }
100
+ }
101
+ }, {
102
+ key: "UNSAFE_componentWillReceiveProps",
103
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
104
+ if (!nextProps.correctResponse) {
105
+ this.setState({
106
+ showCorrect: false
107
+ });
108
+ }
109
+ if (nextProps.alwaysShowCorrect) {
110
+ this.setState({
111
+ showCorrect: true
112
+ });
113
+ }
114
+ }
115
+ }, {
116
+ key: "isSelected",
117
+ value: function isSelected(value) {
118
+ var sessionValue = this.props.session && this.props.session.value;
119
+ return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;
120
+ }
121
+ }, {
122
+ key: "indexToSymbol",
123
+ value: function indexToSymbol(index) {
124
+ if (this.props.keyMode === 'numbers') {
125
+ return "".concat(index + 1);
126
+ }
127
+ if (this.props.keyMode === 'letters') {
128
+ return String.fromCharCode(97 + index).toUpperCase();
129
+ }
130
+ return '';
131
+ }
132
+ }, {
133
+ key: "render",
134
+ value: function render() {
135
+ var _this2 = this;
136
+ var _this$props = this.props,
137
+ mode = _this$props.mode,
138
+ disabled = _this$props.disabled,
139
+ _this$props$choices = _this$props.choices,
140
+ choices = _this$props$choices === void 0 ? [] : _this$props$choices,
141
+ choiceMode = _this$props.choiceMode,
142
+ prompt = _this$props.prompt,
143
+ onChoiceChanged = _this$props.onChoiceChanged,
144
+ responseCorrect = _this$props.responseCorrect,
145
+ teacherInstructions = _this$props.teacherInstructions,
146
+ classes = _this$props.classes,
147
+ alwaysShowCorrect = _this$props.alwaysShowCorrect,
148
+ animationsDisabled = _this$props.animationsDisabled;
149
+ var showCorrect = this.state.showCorrect;
150
+ var isEvaluateMode = mode === 'evaluate';
151
+ var showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;
152
+ return /*#__PURE__*/_react["default"].createElement("div", {
153
+ className: (0, _classnames["default"])(classes.corespringChoice, 'multiple-choice')
154
+ }, teacherInstructions && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
155
+ labels: {
156
+ hidden: 'Show Teacher Instructions',
157
+ visible: 'Hide Teacher Instructions'
158
+ }
159
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
160
+ tagName: "div",
161
+ className: "prompt",
162
+ prompt: teacherInstructions
163
+ })) : /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
164
+ tagName: "div",
165
+ className: "prompt",
166
+ defaultClassName: "teacher-instructions",
167
+ prompt: teacherInstructions
168
+ }), /*#__PURE__*/_react["default"].createElement("br", null)), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
169
+ show: showCorrectAnswerToggle,
170
+ toggled: showCorrect,
171
+ onToggle: this.onToggle.bind(this)
172
+ }), showCorrectAnswerToggle && /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("fieldset", {
173
+ className: classes.fieldset
174
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
175
+ className: "prompt",
176
+ defaultClassName: "prompt",
177
+ prompt: prompt,
178
+ tagName: "legend"
179
+ }), /*#__PURE__*/_react["default"].createElement("div", {
180
+ className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.gridLayout, this.props.choicesLayout === 'grid'), (0, _defineProperty2["default"])({}, classes.horizontalLayout, this.props.choicesLayout === 'horizontal')),
181
+ style: styles.getColumns(this.props.gridColumns)
182
+ }, choices.map(function (choice, index) {
183
+ return /*#__PURE__*/_react["default"].createElement(_choice["default"], {
184
+ choicesLayout: _this2.props.choicesLayout,
185
+ gridColumns: _this2.props.gridColumns,
186
+ key: "choice-".concat(index),
187
+ choice: choice,
188
+ index: index,
189
+ choicesLength: choices.length,
190
+ showCorrect: showCorrect,
191
+ isEvaluateMode: isEvaluateMode,
192
+ choiceMode: choiceMode,
193
+ disabled: disabled,
194
+ onChoiceChanged: onChoiceChanged,
195
+ hideTick: choice.hideTick,
196
+ checked: showCorrect ? choice.correct || false : _this2.isSelected(choice.value),
197
+ correctness: isEvaluateMode ? _this2.getCorrectness(choice) : undefined,
198
+ displayKey: _this2.indexToSymbol(index)
199
+ });
200
+ }))));
201
+ }
202
+ }]);
203
+ return MultipleChoice;
204
+ }(_react["default"].Component);
205
+ exports.MultipleChoice = MultipleChoice;
206
+ (0, _defineProperty2["default"])(MultipleChoice, "propTypes", {
207
+ mode: _propTypes["default"].oneOf(['gather', 'view', 'evaluate']),
208
+ choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
209
+ keyMode: _propTypes["default"].oneOf(['numbers', 'letters', 'none']),
210
+ choices: _propTypes["default"].array,
211
+ prompt: _propTypes["default"].string,
212
+ teacherInstructions: _propTypes["default"].string,
213
+ session: _propTypes["default"].object,
214
+ disabled: _propTypes["default"].bool,
215
+ onChoiceChanged: _propTypes["default"].func,
216
+ responseCorrect: _propTypes["default"].bool,
217
+ classes: _propTypes["default"].object.isRequired,
218
+ correctResponse: _propTypes["default"].array,
219
+ choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
220
+ gridColumns: _propTypes["default"].string,
221
+ alwaysShowCorrect: _propTypes["default"].bool,
222
+ animationsDisabled: _propTypes["default"].bool
223
+ });
224
+ MultipleChoice.defaultProps = {
225
+ session: {
226
+ value: []
227
+ }
228
+ };
229
+ var _default = (0, _styles.withStyles)(styles)(MultipleChoice);
230
+ exports["default"] = _default;
231
+ //# sourceMappingURL=multiple-choice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple-choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_correctAnswerToggle","_classnames","_styles","_renderUi","_choice","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","styles","corespringChoice","backgroundColor","color","background","padding","horizontalLayout","display","flexDirection","flexWrap","gridLayout","getColumns","columns","gridTemplateColumns","concat","undefined","fieldset","border","margin","minWidth","MultipleChoice","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","choice","length","isCorrect","correct","isChecked","isSelected","value","state","showCorrect","alwaysShowCorrect","onToggle","bind","_createClass2","key","mode","setState","UNSAFE_componentWillReceiveProps","nextProps","correctResponse","sessionValue","session","indexOf","indexToSymbol","index","keyMode","String","fromCharCode","toUpperCase","render","_this2","_this$props","disabled","_this$props$choices","choices","choiceMode","prompt","onChoiceChanged","responseCorrect","teacherInstructions","classes","animationsDisabled","isEvaluateMode","showCorrectAnswerToggle","createElement","className","classNames","Fragment","Collapsible","labels","hidden","visible","PreviewPrompt","tagName","defaultClassName","show","toggled","choicesLayout","style","gridColumns","map","choicesLength","hideTick","checked","correctness","getCorrectness","displayKey","React","Component","exports","PropTypes","oneOf","array","string","object","bool","func","isRequired","defaultProps","_default","withStyles"],"sources":["../src/multiple-choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst styles = {\n corespringChoice: {\n backgroundColor: color.background(),\n padding: '5px',\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n },\n horizontalLayout: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n gridLayout: {\n display: 'grid',\n },\n getColumns: function (columns) {\n return columns > 1 ? { gridTemplateColumns: `repeat(${columns}, 1fr)` } : undefined;\n },\n fieldset: {\n border: '0px',\n padding: '0.01em 0 0 0',\n margin: '0px',\n minWidth: '0px'\n },\n};\n\nexport class MultipleChoice extends React.Component {\n static propTypes = {\n mode: PropTypes.oneOf(['gather', 'view', 'evaluate']),\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n keyMode: PropTypes.oneOf(['numbers', 'letters', 'none']),\n choices: PropTypes.array,\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n disabled: PropTypes.bool,\n onChoiceChanged: PropTypes.func,\n responseCorrect: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n correctResponse: PropTypes.array,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: this.props.alwaysShowCorrect || false,\n };\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n onToggle() {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse) {\n this.setState({ showCorrect: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n }\n\n isSelected(value) {\n const sessionValue = this.props.session && this.props.session.value;\n\n return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;\n }\n\n indexToSymbol(index) {\n if (this.props.keyMode === 'numbers') {\n return `${index + 1}`;\n }\n\n if (this.props.keyMode === 'letters') {\n return String.fromCharCode(97 + index).toUpperCase();\n }\n\n return '';\n }\n\n getCorrectness = (choice = {}) => {\n const isCorrect = choice.correct;\n const isChecked = this.isSelected(choice.value);\n\n if (this.state.showCorrect) {\n return isCorrect ? 'correct' : undefined;\n }\n\n if (isCorrect) {\n if (isChecked) {\n // A correct answer is selected: marked with a green checkmark\n return 'correct';\n } else {\n // A correct answer is NOT selected: marked with an orange X\n return 'incorrect';\n }\n } else {\n if (isChecked) {\n // An incorrect answer is selected: marked with an orange X\n return 'incorrect';\n } else {\n // An incorrect answer is NOT selected: not marked\n return undefined;\n }\n }\n };\n\n render() {\n const {\n mode,\n disabled,\n choices = [],\n choiceMode,\n prompt,\n onChoiceChanged,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n } = this.props;\n const { showCorrect } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n\n return (\n <div className={classNames(classes.corespringChoice, 'multiple-choice')}>\n {teacherInstructions && (\n <React.Fragment>\n {!animationsDisabled ? (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt tagName=\"div\" className=\"prompt\" prompt={teacherInstructions} />\n </Collapsible>\n ) : (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n )}\n <br />\n </React.Fragment>\n )}\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n />\n )}\n {showCorrectAnswerToggle && <br />}\n <fieldset className={classes.fieldset}>\n <PreviewPrompt className=\"prompt\" defaultClassName=\"prompt\" prompt={prompt} tagName={\"legend\"} />\n <div\n className={classNames(\n { [classes.gridLayout]: this.props.choicesLayout === 'grid' },\n {\n [classes.horizontalLayout]: this.props.choicesLayout === 'horizontal',\n },\n )}\n style={styles.getColumns(this.props.gridColumns)}\n >\n {choices.map((choice, index) => (\n <StyledChoice\n choicesLayout={this.props.choicesLayout}\n gridColumns={this.props.gridColumns}\n key={`choice-${index}`}\n choice={choice}\n index={index}\n choicesLength={choices.length}\n showCorrect={showCorrect}\n isEvaluateMode={isEvaluateMode}\n choiceMode={choiceMode}\n disabled={disabled}\n onChoiceChanged={onChoiceChanged}\n hideTick={choice.hideTick}\n checked={showCorrect ? choice.correct || false : this.isSelected(choice.value)}\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n />\n ))}\n </div>\n </fieldset>\n </div>\n );\n }\n}\n\nMultipleChoice.defaultProps = {\n session: {\n value: [],\n },\n};\n\nexport default withStyles(styles)(MultipleChoice);\n"],"mappings":"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"}
package/lib/print.js ADDED
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _reactDom = _interopRequireDefault(require("react-dom"));
17
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
18
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
19
+ var _main = _interopRequireDefault(require("./main"));
20
+ var _mathRendering = require("@pie-lib/math-rendering");
21
+ var _debug = _interopRequireDefault(require("debug"));
22
+ 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); }; }
23
+ 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; } }
24
+ var log = (0, _debug["default"])('pie-element:multiple-choice:print');
25
+
26
+ /**
27
+ * Live in same package as main element - so we can access some of the shared comps!
28
+ *
29
+ * - update pslb to build print if src/print.js is there
30
+ * - update demo el
31
+ * - get configure/controller building
32
+ */
33
+
34
+ var preparePrintModel = function preparePrintModel(model, opts) {
35
+ var instr = opts.role === 'instructor';
36
+ model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
37
+ model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
38
+ model.showTeacherInstructions = instr;
39
+ model.alwaysShowCorrect = instr;
40
+ model.mode = instr ? 'evaluate' : model.mode;
41
+ model.disabled = true;
42
+ model.animationsDisabled = true;
43
+ model.lockChoiceOrder = true;
44
+ model.choicesLayout = model.choicesLayout || 'vertical';
45
+ var choices = (0, _cloneDeep["default"])(model.choices);
46
+ model.choices = choices.map(function (c) {
47
+ c.rationale = instr && model.rationaleEnabled !== false ? c.rationale : undefined;
48
+ c.hideTick = instr;
49
+ c.feedback = undefined;
50
+ return c;
51
+ });
52
+ model.keyMode = model.choicePrefix || 'letters';
53
+ return model;
54
+ };
55
+ var MultipleChoicePrint = /*#__PURE__*/function (_HTMLElement) {
56
+ (0, _inherits2["default"])(MultipleChoicePrint, _HTMLElement);
57
+ var _super = _createSuper(MultipleChoicePrint);
58
+ function MultipleChoicePrint() {
59
+ var _this;
60
+ (0, _classCallCheck2["default"])(this, MultipleChoicePrint);
61
+ _this = _super.call(this);
62
+ _this._options = null;
63
+ _this._model = null;
64
+ _this._session = [];
65
+ _this._rerender = (0, _debounce["default"])(function () {
66
+ if (_this._model && _this._session) {
67
+ var printModel = preparePrintModel(_this._model, _this._options);
68
+ var element = _this._options && /*#__PURE__*/_react["default"].createElement(_main["default"], {
69
+ model: printModel,
70
+ session: {}
71
+ });
72
+ _reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this), function () {
73
+ log('render complete - render math');
74
+ (0, _mathRendering.renderMath)((0, _assertThisInitialized2["default"])(_this));
75
+ });
76
+ } else {
77
+ log('skip');
78
+ }
79
+ }, 50, {
80
+ leading: false,
81
+ trailing: true
82
+ });
83
+ return _this;
84
+ }
85
+ (0, _createClass2["default"])(MultipleChoicePrint, [{
86
+ key: "options",
87
+ set: function set(o) {
88
+ this._options = o;
89
+ }
90
+ }, {
91
+ key: "model",
92
+ set: function set(s) {
93
+ this._model = s;
94
+ this._rerender();
95
+ }
96
+ }, {
97
+ key: "connectedCallback",
98
+ value: function connectedCallback() {}
99
+ }]);
100
+ return MultipleChoicePrint;
101
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
102
+ exports["default"] = MultipleChoicePrint;
103
+ //# sourceMappingURL=print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print.js","names":["_react","_interopRequireDefault","require","_reactDom","_debounce","_cloneDeep","_main","_mathRendering","_debug","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","preparePrintModel","model","opts","instr","role","prompt","promptEnabled","undefined","teacherInstructions","teacherInstructionsEnabled","showTeacherInstructions","alwaysShowCorrect","mode","disabled","animationsDisabled","lockChoiceOrder","choicesLayout","choices","cloneDeep","map","c","rationale","rationaleEnabled","hideTick","feedback","keyMode","choicePrefix","MultipleChoicePrint","_HTMLElement","_inherits2","_super","_this","_classCallCheck2","_options","_model","_session","_rerender","debounce","printModel","element","React","createElement","Main","session","ReactDOM","render","_assertThisInitialized2","renderMath","leading","trailing","_createClass2","key","set","o","s","value","connectedCallback","_wrapNativeSuper2","HTMLElement","exports"],"sources":["../src/print.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport cloneDeep from 'lodash/cloneDeep';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:multiple-choice:print');\n\n/**\n * Live in same package as main element - so we can access some of the shared comps!\n *\n * - update pslb to build print if src/print.js is there\n * - update demo el\n * - get configure/controller building\n */\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.showTeacherInstructions = instr;\n model.alwaysShowCorrect = instr;\n model.mode = instr ? 'evaluate' : model.mode;\n\n model.disabled = true;\n model.animationsDisabled = true;\n model.lockChoiceOrder = true;\n model.choicesLayout = model.choicesLayout || 'vertical';\n\n const choices = cloneDeep(model.choices);\n\n model.choices = choices.map((c) => {\n c.rationale = instr && model.rationaleEnabled !== false ? c.rationale : undefined;\n c.hideTick = instr;\n c.feedback = undefined;\n return c;\n });\n\n model.keyMode = model.choicePrefix || 'letters';\n\n return model;\n};\n\nexport default class MultipleChoicePrint 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 model: printModel,\n session: {},\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"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.updateSessionValue = updateSessionValue;
8
+ var _concat = _interopRequireDefault(require("lodash/concat"));
9
+ var _uniq = _interopRequireDefault(require("lodash/uniq"));
10
+ var _without = _interopRequireDefault(require("lodash/without"));
11
+ function updateSessionValue(session, choiceMode, data) {
12
+ session.value = session.value || [];
13
+ if (choiceMode === 'checkbox') {
14
+ if (data.selected) {
15
+ session.value = (0, _uniq["default"])((0, _concat["default"])(session.value, [data.value]));
16
+ } else {
17
+ session.value = (0, _without["default"])(session.value, data.value);
18
+ }
19
+ }
20
+ if (choiceMode === 'radio') {
21
+ if (data.selected) {
22
+ session.value = [data.value];
23
+ } else {
24
+ session.value = [];
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=session-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-updater.js","names":["_concat","_interopRequireDefault","require","_uniq","_without","updateSessionValue","session","choiceMode","data","value","selected","uniq","concat","without"],"sources":["../src/session-updater.js"],"sourcesContent":["import concat from 'lodash/concat';\nimport uniq from 'lodash/uniq';\nimport without from 'lodash/without';\n\nexport function updateSessionValue(session, choiceMode, data) {\n session.value = session.value || [];\n if (choiceMode === 'checkbox') {\n if (data.selected) {\n session.value = uniq(concat(session.value, [data.value]));\n } else {\n session.value = without(session.value, data.value);\n }\n }\n\n if (choiceMode === 'radio') {\n if (data.selected) {\n session.value = [data.value];\n } else {\n session.value = [];\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEO,SAASG,kBAAkBA,CAACC,OAAO,EAAEC,UAAU,EAAEC,IAAI,EAAE;EAC5DF,OAAO,CAACG,KAAK,GAAGH,OAAO,CAACG,KAAK,IAAI,EAAE;EACnC,IAAIF,UAAU,KAAK,UAAU,EAAE;IAC7B,IAAIC,IAAI,CAACE,QAAQ,EAAE;MACjBJ,OAAO,CAACG,KAAK,GAAG,IAAAE,gBAAI,EAAC,IAAAC,kBAAM,EAACN,OAAO,CAACG,KAAK,EAAE,CAACD,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC,MAAM;MACLH,OAAO,CAACG,KAAK,GAAG,IAAAI,mBAAO,EAACP,OAAO,CAACG,KAAK,EAAED,IAAI,CAACC,KAAK,CAAC;IACpD;EACF;EAEA,IAAIF,UAAU,KAAK,OAAO,EAAE;IAC1B,IAAIC,IAAI,CAACE,QAAQ,EAAE;MACjBJ,OAAO,CAACG,KAAK,GAAG,CAACD,IAAI,CAACC,KAAK,CAAC;IAC9B,CAAC,MAAM;MACLH,OAAO,CAACG,KAAK,GAAG,EAAE;IACpB;EACF;AACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "7.6.1-beta.3+e0e0490c5",
4
+ "version": "7.6.1-beta.4+4157b2b34",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -22,7 +22,7 @@
22
22
  "react-test-renderer": "^16.3.2",
23
23
  "react-transition-group": "^2.3.1"
24
24
  },
25
- "gitHead": "e0e0490c5b040c67f504c0bdfd00f6b834a28481",
25
+ "gitHead": "4157b2b34711d36e3fea05d833ab5ed9d4b05b48",
26
26
  "scripts": {
27
27
  "postpublish": "../../scripts/postpublish"
28
28
  },