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

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.
Files changed (40) hide show
  1. package/configure/package.json +3 -3
  2. package/package.json +3 -3
  3. package/configure/lib/__tests__/root.test.js +0 -271
  4. package/configure/lib/defaults.js +0 -120
  5. package/configure/lib/defaults.js.map +0 -1
  6. package/configure/lib/index.js +0 -212
  7. package/configure/lib/index.js.map +0 -1
  8. package/configure/lib/main.js +0 -604
  9. package/configure/lib/main.js.map +0 -1
  10. package/configure/lib/utils.js +0 -18
  11. package/configure/lib/utils.js.map +0 -1
  12. package/controller/lib/__tests__/index.test.js +0 -864
  13. package/controller/lib/__tests__/utils.test.js +0 -8
  14. package/controller/lib/defaults.js +0 -18
  15. package/controller/lib/defaults.js.map +0 -1
  16. package/controller/lib/index.js +0 -305
  17. package/controller/lib/index.js.map +0 -1
  18. package/controller/lib/utils.js +0 -36
  19. package/controller/lib/utils.js.map +0 -1
  20. package/docs/demo/pie.manifest.json +0 -11
  21. package/lib/__tests__/choice-input-test.js +0 -124
  22. package/lib/__tests__/index-test.js +0 -22
  23. package/lib/__tests__/multiple-choice-test.js +0 -237
  24. package/lib/__tests__/session-updater-test.js +0 -72
  25. package/lib/choice-input.js +0 -298
  26. package/lib/choice-input.js.map +0 -1
  27. package/lib/choice.js +0 -157
  28. package/lib/choice.js.map +0 -1
  29. package/lib/feedback-tick.js +0 -174
  30. package/lib/feedback-tick.js.map +0 -1
  31. package/lib/index.js +0 -151
  32. package/lib/index.js.map +0 -1
  33. package/lib/main.js +0 -100
  34. package/lib/main.js.map +0 -1
  35. package/lib/multiple-choice.js +0 -263
  36. package/lib/multiple-choice.js.map +0 -1
  37. package/lib/print.js +0 -129
  38. package/lib/print.js.map +0 -1
  39. package/lib/session-updater.js +0 -35
  40. package/lib/session-updater.js.map +0 -1
package/lib/main.js DELETED
@@ -1,100 +0,0 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _react = _interopRequireDefault(require("react"));
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
- var _renderUi = require("@pie-lib/render-ui");
33
-
34
- var _multipleChoice = _interopRequireDefault(require("./multiple-choice"));
35
-
36
- 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); }; }
37
-
38
- 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; } }
39
-
40
- var Main = /*#__PURE__*/function (_React$Component) {
41
- (0, _inherits2["default"])(Main, _React$Component);
42
-
43
- var _super = _createSuper(Main);
44
-
45
- function Main(props) {
46
- (0, _classCallCheck2["default"])(this, Main);
47
- return _super.call(this, props);
48
- }
49
-
50
- (0, _createClass2["default"])(Main, [{
51
- key: "render",
52
- value: function render() {
53
- var _this$props = this.props,
54
- model = _this$props.model,
55
- onChoiceChanged = _this$props.onChoiceChanged,
56
- session = _this$props.session,
57
- classes = _this$props.classes; // model.partLabel is a property used for ebsr
58
-
59
- return /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewLayout, {
60
- ariaLabel: model.choiceMode == 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question',
61
- role: "region"
62
- }, model.partLabel && /*#__PURE__*/_react["default"].createElement("p", null, model.partLabel), /*#__PURE__*/_react["default"].createElement("div", {
63
- className: (0, _classnames["default"])(classes.root, classes[model.className])
64
- }, /*#__PURE__*/_react["default"].createElement(_multipleChoice["default"], (0, _extends2["default"])({}, model, {
65
- session: session,
66
- onChoiceChanged: onChoiceChanged
67
- }))));
68
- }
69
- }]);
70
- return Main;
71
- }(_react["default"].Component);
72
-
73
- (0, _defineProperty2["default"])(Main, "propTypes", {
74
- model: _propTypes["default"].object,
75
- session: _propTypes["default"].object,
76
- onChoiceChanged: _propTypes["default"].func,
77
- classes: _propTypes["default"].object.isRequired
78
- });
79
- (0, _defineProperty2["default"])(Main, "defaultProps", {
80
- model: {},
81
- session: {}
82
- });
83
- var Styled = (0, _styles.withStyles)({}, {
84
- name: 'Main'
85
- })(Main);
86
- var theme = (0, _styles.createMuiTheme)({
87
- typography: {
88
- useNextVariants: true
89
- }
90
- });
91
-
92
- var Root = function Root(props) {
93
- return /*#__PURE__*/_react["default"].createElement(_styles.MuiThemeProvider, {
94
- theme: theme
95
- }, /*#__PURE__*/_react["default"].createElement(Styled, props));
96
- };
97
-
98
- var _default = Root;
99
- exports["default"] = _default;
100
- //# sourceMappingURL=main.js.map
package/lib/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","model","onChoiceChanged","session","classes","choiceMode","partLabel","root","className","React","Component","PropTypes","object","func","isRequired","Styled","name","theme","typography","useNextVariants","Root"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;IAEMA,I;;;;;AAYJ,gBAAYC,KAAZ,EAAmB;AAAA;AAAA,6BACXA,KADW;AAElB;;;;WAED,kBAAS;AACP,wBAAqD,KAAKA,KAA1D;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,eAAf,eAAeA,eAAf;AAAA,UAAgCC,OAAhC,eAAgCA,OAAhC;AAAA,UAAyCC,OAAzC,eAAyCA,OAAzC,CADO,CAGP;;AACA,0BACE,gCAAC,uBAAD;AACE,QAAA,SAAS,EAAGH,KAAK,CAACI,UAAN,IAAoB,OAApB,GAA8B,0BAA9B,GAA2D,kCADzE;AAEE,QAAA,IAAI,EAAC;AAFP,SAIGJ,KAAK,CAACK,SAAN,iBAAmB,2CAAIL,KAAK,CAACK,SAAV,CAJtB,eAKE;AAAK,QAAA,SAAS,EAAE,4BAAWF,OAAO,CAACG,IAAnB,EAAyBH,OAAO,CAACH,KAAK,CAACO,SAAP,CAAhC;AAAhB,sBACE,gCAAC,0BAAD,gCAAoBP,KAApB;AAA2B,QAAA,OAAO,EAAEE,OAApC;AAA6C,QAAA,eAAe,EAAED;AAA9D,SADF,CALF,CADF;AAWD;;;EA/BgBO,kBAAMC,S;;iCAAnBX,I,eACe;AACjBE,EAAAA,KAAK,EAAEU,sBAAUC,MADA;AAEjBT,EAAAA,OAAO,EAAEQ,sBAAUC,MAFF;AAGjBV,EAAAA,eAAe,EAAES,sBAAUE,IAHV;AAIjBT,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBE;AAJT,C;iCADff,I,kBAQkB;AACpBE,EAAAA,KAAK,EAAE,EADa;AAEpBE,EAAAA,OAAO,EAAE;AAFW,C;AA0BxB,IAAMY,MAAM,GAAG,wBAAW,EAAX,EAAe;AAAEC,EAAAA,IAAI,EAAE;AAAR,CAAf,EAAiCjB,IAAjC,CAAf;AAEA,IAAMkB,KAAK,GAAG,4BAAe;AAC3BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,eAAe,EAAE;AADP;AADe,CAAf,CAAd;;AAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACpB,KAAD;AAAA,sBACX,gCAAC,wBAAD;AAAkB,IAAA,KAAK,EAAEiB;AAAzB,kBACE,gCAAC,MAAD,EAAYjB,KAAZ,CADF,CADW;AAAA,CAAb;;eAMeoB,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport MultipleChoice from './multiple-choice';\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n constructor(props) {\n super(props);\n }\n\n render() {\n const { model, onChoiceChanged, session, classes } = this.props;\n\n // model.partLabel is a property used for ebsr\n return (\n <PreviewLayout\n ariaLabel={(model.choiceMode == 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question')}\n role=\"region\"\n > \n {model.partLabel && <p>{model.partLabel}</p>}\n <div className={classNames(classes.root, classes[model.className])}>\n <MultipleChoice {...model} session={session} onChoiceChanged={onChoiceChanged} />\n </div>\n </PreviewLayout>\n );\n }\n}\n\nconst Styled = withStyles({}, { name: 'Main' })(Main);\n\nconst theme = createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n});\n\nconst Root = (props) => (\n <MuiThemeProvider theme={theme}>\n <Styled {...props} />\n </MuiThemeProvider>\n);\n\nexport default Root;\n"],"file":"main.js"}
@@ -1,263 +0,0 @@
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"] = exports.MultipleChoice = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _react = _interopRequireDefault(require("react"));
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
- var _styles = require("@material-ui/core/styles");
33
-
34
- var _renderUi = require("@pie-lib/render-ui");
35
-
36
- var _choice = _interopRequireDefault(require("./choice"));
37
-
38
- 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); }; }
39
-
40
- 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; } }
41
-
42
- // MultipleChoice
43
- var styles = {
44
- corespringChoice: {
45
- backgroundColor: _renderUi.color.background(),
46
- padding: '5px',
47
- '& *': {
48
- '-webkit-font-smoothing': 'antialiased'
49
- }
50
- },
51
- horizontalLayout: {
52
- display: 'flex',
53
- flexDirection: 'row',
54
- flexWrap: 'wrap'
55
- },
56
- gridLayout: {
57
- display: 'grid'
58
- },
59
- getColumns: function getColumns(columns) {
60
- return columns > 1 ? {
61
- gridTemplateColumns: "repeat(".concat(columns, ", 1fr)")
62
- } : undefined;
63
- },
64
- fieldset: {
65
- border: '0px',
66
- padding: '0.01em 0 0 0',
67
- margin: '0px',
68
- minWidth: '0px'
69
- }
70
- };
71
-
72
- var MultipleChoice = /*#__PURE__*/function (_React$Component) {
73
- (0, _inherits2["default"])(MultipleChoice, _React$Component);
74
-
75
- var _super = _createSuper(MultipleChoice);
76
-
77
- function MultipleChoice(props) {
78
- var _this;
79
-
80
- (0, _classCallCheck2["default"])(this, MultipleChoice);
81
- _this = _super.call(this, props);
82
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getCorrectness", function () {
83
- var choice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
84
- var isCorrect = choice.correct;
85
-
86
- var isChecked = _this.isSelected(choice.value);
87
-
88
- if (_this.state.showCorrect) {
89
- return isCorrect ? 'correct' : undefined;
90
- }
91
-
92
- if (isCorrect) {
93
- if (isChecked) {
94
- // A correct answer is selected: marked with a green checkmark
95
- return 'correct';
96
- } else {
97
- // A correct answer is NOT selected: marked with an orange X
98
- return 'incorrect';
99
- }
100
- } else {
101
- if (isChecked) {
102
- // An incorrect answer is selected: marked with an orange X
103
- return 'incorrect';
104
- } else {
105
- // An incorrect answer is NOT selected: not marked
106
- return undefined;
107
- }
108
- }
109
- });
110
- _this.state = {
111
- showCorrect: _this.props.alwaysShowCorrect || false
112
- };
113
- _this.onToggle = _this.onToggle.bind((0, _assertThisInitialized2["default"])(_this));
114
- return _this;
115
- }
116
-
117
- (0, _createClass2["default"])(MultipleChoice, [{
118
- key: "onToggle",
119
- value: function onToggle() {
120
- if (this.props.mode === 'evaluate') {
121
- this.setState({
122
- showCorrect: !this.state.showCorrect
123
- });
124
- }
125
- }
126
- }, {
127
- key: "UNSAFE_componentWillReceiveProps",
128
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
129
- if (!nextProps.correctResponse) {
130
- this.setState({
131
- showCorrect: false
132
- });
133
- }
134
-
135
- if (nextProps.alwaysShowCorrect) {
136
- this.setState({
137
- showCorrect: true
138
- });
139
- }
140
- }
141
- }, {
142
- key: "isSelected",
143
- value: function isSelected(value) {
144
- var sessionValue = this.props.session && this.props.session.value;
145
- return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;
146
- }
147
- }, {
148
- key: "indexToSymbol",
149
- value: function indexToSymbol(index) {
150
- if (this.props.keyMode === 'numbers') {
151
- return "".concat(index + 1);
152
- }
153
-
154
- if (this.props.keyMode === 'letters') {
155
- return String.fromCharCode(97 + index).toUpperCase();
156
- }
157
-
158
- return '';
159
- }
160
- }, {
161
- key: "render",
162
- value: function render() {
163
- var _this2 = this;
164
-
165
- var _this$props = this.props,
166
- mode = _this$props.mode,
167
- disabled = _this$props.disabled,
168
- _this$props$choices = _this$props.choices,
169
- choices = _this$props$choices === void 0 ? [] : _this$props$choices,
170
- choiceMode = _this$props.choiceMode,
171
- prompt = _this$props.prompt,
172
- onChoiceChanged = _this$props.onChoiceChanged,
173
- responseCorrect = _this$props.responseCorrect,
174
- teacherInstructions = _this$props.teacherInstructions,
175
- classes = _this$props.classes,
176
- alwaysShowCorrect = _this$props.alwaysShowCorrect,
177
- animationsDisabled = _this$props.animationsDisabled;
178
- var showCorrect = this.state.showCorrect;
179
- var isEvaluateMode = mode === 'evaluate';
180
- var showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;
181
- return /*#__PURE__*/_react["default"].createElement("div", {
182
- className: (0, _classnames["default"])(classes.corespringChoice, 'multiple-choice')
183
- }, teacherInstructions && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
184
- labels: {
185
- hidden: 'Show Teacher Instructions',
186
- visible: 'Hide Teacher Instructions'
187
- }
188
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
189
- tagName: "div",
190
- className: "prompt",
191
- prompt: teacherInstructions
192
- })) : /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
193
- tagName: "div",
194
- className: "prompt",
195
- defaultClassName: "teacher-instructions",
196
- prompt: teacherInstructions
197
- }), /*#__PURE__*/_react["default"].createElement("br", null)), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
198
- show: showCorrectAnswerToggle,
199
- toggled: showCorrect,
200
- onToggle: this.onToggle.bind(this)
201
- }), showCorrectAnswerToggle && /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("fieldset", {
202
- className: classes.fieldset
203
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
204
- className: "prompt",
205
- defaultClassName: "prompt",
206
- prompt: prompt,
207
- tagName: "legend"
208
- }), /*#__PURE__*/_react["default"].createElement("div", {
209
- className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.gridLayout, this.props.choicesLayout === 'grid'), (0, _defineProperty2["default"])({}, classes.horizontalLayout, this.props.choicesLayout === 'horizontal')),
210
- style: styles.getColumns(this.props.gridColumns)
211
- }, choices.map(function (choice, index) {
212
- return /*#__PURE__*/_react["default"].createElement(_choice["default"], {
213
- choicesLayout: _this2.props.choicesLayout,
214
- gridColumns: _this2.props.gridColumns,
215
- key: "choice-".concat(index),
216
- choice: choice,
217
- index: index,
218
- choicesLength: choices.length,
219
- showCorrect: showCorrect,
220
- isEvaluateMode: isEvaluateMode,
221
- choiceMode: choiceMode,
222
- disabled: disabled,
223
- onChoiceChanged: onChoiceChanged,
224
- hideTick: choice.hideTick,
225
- checked: showCorrect ? choice.correct || false : _this2.isSelected(choice.value),
226
- correctness: isEvaluateMode ? _this2.getCorrectness(choice) : undefined,
227
- displayKey: _this2.indexToSymbol(index)
228
- });
229
- }))));
230
- }
231
- }]);
232
- return MultipleChoice;
233
- }(_react["default"].Component);
234
-
235
- exports.MultipleChoice = MultipleChoice;
236
- (0, _defineProperty2["default"])(MultipleChoice, "propTypes", {
237
- mode: _propTypes["default"].oneOf(['gather', 'view', 'evaluate']),
238
- choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
239
- keyMode: _propTypes["default"].oneOf(['numbers', 'letters', 'none']),
240
- choices: _propTypes["default"].array,
241
- prompt: _propTypes["default"].string,
242
- teacherInstructions: _propTypes["default"].string,
243
- session: _propTypes["default"].object,
244
- disabled: _propTypes["default"].bool,
245
- onChoiceChanged: _propTypes["default"].func,
246
- responseCorrect: _propTypes["default"].bool,
247
- classes: _propTypes["default"].object.isRequired,
248
- correctResponse: _propTypes["default"].array,
249
- choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
250
- gridColumns: _propTypes["default"].string,
251
- alwaysShowCorrect: _propTypes["default"].bool,
252
- animationsDisabled: _propTypes["default"].bool
253
- });
254
- MultipleChoice.defaultProps = {
255
- session: {
256
- value: []
257
- }
258
- };
259
-
260
- var _default = (0, _styles.withStyles)(styles)(MultipleChoice);
261
-
262
- exports["default"] = _default;
263
- //# sourceMappingURL=multiple-choice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/multiple-choice.jsx"],"names":["styles","corespringChoice","backgroundColor","color","background","padding","horizontalLayout","display","flexDirection","flexWrap","gridLayout","getColumns","columns","gridTemplateColumns","undefined","fieldset","border","margin","minWidth","MultipleChoice","props","choice","isCorrect","correct","isChecked","isSelected","value","state","showCorrect","alwaysShowCorrect","onToggle","bind","mode","setState","nextProps","correctResponse","sessionValue","session","indexOf","index","keyMode","String","fromCharCode","toUpperCase","disabled","choices","choiceMode","prompt","onChoiceChanged","responseCorrect","teacherInstructions","classes","animationsDisabled","isEvaluateMode","showCorrectAnswerToggle","hidden","visible","choicesLayout","gridColumns","map","length","hideTick","getCorrectness","indexToSymbol","React","Component","PropTypes","oneOf","array","string","object","bool","func","isRequired","defaultProps"],"mappings":"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","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"],"file":"multiple-choice.js"}
package/lib/print.js DELETED
@@ -1,129 +0,0 @@
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
24
- var _react = _interopRequireDefault(require("react"));
25
-
26
- var _reactDom = _interopRequireDefault(require("react-dom"));
27
-
28
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
29
-
30
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
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 _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); }; }
39
-
40
- 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; } }
41
-
42
- var log = (0, _debug["default"])('pie-element:multiple-choice:print');
43
- /**
44
- * Live in same package as main element - so we can access some of the shared comps!
45
- *
46
- * - update pslb to build print if src/print.js is there
47
- * - update demo el
48
- * - get configure/controller building
49
- */
50
-
51
- var preparePrintModel = function preparePrintModel(model, opts) {
52
- var instr = opts.role === 'instructor';
53
- model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
54
- model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
55
- model.showTeacherInstructions = instr;
56
- model.alwaysShowCorrect = instr;
57
- model.mode = instr ? 'evaluate' : model.mode;
58
- model.disabled = true;
59
- model.animationsDisabled = true;
60
- model.lockChoiceOrder = true;
61
- model.choicesLayout = model.choicesLayout || 'vertical';
62
- var choices = (0, _cloneDeep["default"])(model.choices);
63
- model.choices = choices.map(function (c) {
64
- c.rationale = instr && model.rationaleEnabled !== false ? c.rationale : undefined;
65
- c.hideTick = instr;
66
- c.feedback = undefined;
67
- return c;
68
- });
69
- model.keyMode = model.choicePrefix || 'letters';
70
- return model;
71
- };
72
-
73
- var MultipleChoicePrint = /*#__PURE__*/function (_HTMLElement) {
74
- (0, _inherits2["default"])(MultipleChoicePrint, _HTMLElement);
75
-
76
- var _super = _createSuper(MultipleChoicePrint);
77
-
78
- function MultipleChoicePrint() {
79
- var _this;
80
-
81
- (0, _classCallCheck2["default"])(this, MultipleChoicePrint);
82
- _this = _super.call(this);
83
- _this._options = null;
84
- _this._model = null;
85
- _this._session = [];
86
- _this._rerender = (0, _debounce["default"])(function () {
87
- if (_this._model && _this._session) {
88
- var printModel = preparePrintModel(_this._model, _this._options);
89
-
90
- var element = _this._options && /*#__PURE__*/_react["default"].createElement(_main["default"], {
91
- model: printModel,
92
- session: {}
93
- });
94
-
95
- _reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this), function () {
96
- log('render complete - render math');
97
- (0, _mathRendering.renderMath)((0, _assertThisInitialized2["default"])(_this));
98
- });
99
- } else {
100
- log('skip');
101
- }
102
- }, 50, {
103
- leading: false,
104
- trailing: true
105
- });
106
- return _this;
107
- }
108
-
109
- (0, _createClass2["default"])(MultipleChoicePrint, [{
110
- key: "options",
111
- set: function set(o) {
112
- this._options = o;
113
- }
114
- }, {
115
- key: "model",
116
- set: function set(s) {
117
- this._model = s;
118
-
119
- this._rerender();
120
- }
121
- }, {
122
- key: "connectedCallback",
123
- value: function connectedCallback() {}
124
- }]);
125
- return MultipleChoicePrint;
126
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
127
-
128
- exports["default"] = MultipleChoicePrint;
129
- //# sourceMappingURL=print.js.map
package/lib/print.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","role","prompt","promptEnabled","undefined","teacherInstructions","teacherInstructionsEnabled","showTeacherInstructions","alwaysShowCorrect","mode","disabled","animationsDisabled","lockChoiceOrder","choicesLayout","choices","map","c","rationale","rationaleEnabled","hideTick","feedback","keyMode","choicePrefix","MultipleChoicePrint","_options","_model","_session","_rerender","printModel","element","React","createElement","Main","session","ReactDOM","render","leading","trailing","o","s","HTMLElement"],"mappings":"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","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"],"file":"print.js"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.updateSessionValue = updateSessionValue;
9
-
10
- var _concat = _interopRequireDefault(require("lodash/concat"));
11
-
12
- var _uniq = _interopRequireDefault(require("lodash/uniq"));
13
-
14
- var _without = _interopRequireDefault(require("lodash/without"));
15
-
16
- function updateSessionValue(session, choiceMode, data) {
17
- session.value = session.value || [];
18
-
19
- if (choiceMode === 'checkbox') {
20
- if (data.selected) {
21
- session.value = (0, _uniq["default"])((0, _concat["default"])(session.value, [data.value]));
22
- } else {
23
- session.value = (0, _without["default"])(session.value, data.value);
24
- }
25
- }
26
-
27
- if (choiceMode === 'radio') {
28
- if (data.selected) {
29
- session.value = [data.value];
30
- } else {
31
- session.value = [];
32
- }
33
- }
34
- }
35
- //# sourceMappingURL=session-updater.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/session-updater.js"],"names":["updateSessionValue","session","choiceMode","data","value","selected"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEO,SAASA,kBAAT,CAA4BC,OAA5B,EAAqCC,UAArC,EAAiDC,IAAjD,EAAuD;AAC5DF,EAAAA,OAAO,CAACG,KAAR,GAAgBH,OAAO,CAACG,KAAR,IAAiB,EAAjC;;AACA,MAAIF,UAAU,KAAK,UAAnB,EAA+B;AAC7B,QAAIC,IAAI,CAACE,QAAT,EAAmB;AACjBJ,MAAAA,OAAO,CAACG,KAAR,GAAgB,sBAAK,wBAAOH,OAAO,CAACG,KAAf,EAAsB,CAACD,IAAI,CAACC,KAAN,CAAtB,CAAL,CAAhB;AACD,KAFD,MAEO;AACLH,MAAAA,OAAO,CAACG,KAAR,GAAgB,yBAAQH,OAAO,CAACG,KAAhB,EAAuBD,IAAI,CAACC,KAA5B,CAAhB;AACD;AACF;;AAED,MAAIF,UAAU,KAAK,OAAnB,EAA4B;AAC1B,QAAIC,IAAI,CAACE,QAAT,EAAmB;AACjBJ,MAAAA,OAAO,CAACG,KAAR,GAAgB,CAACD,IAAI,CAACC,KAAN,CAAhB;AACD,KAFD,MAEO;AACLH,MAAAA,OAAO,CAACG,KAAR,GAAgB,EAAhB;AACD;AACF;AACF","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"],"file":"session-updater.js"}