@pie-element/match 7.9.0 → 7.9.1-next.1
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/configure/package.json +1 -1
- package/controller/package.json +1 -1
- package/package.json +3 -3
- package/configure/lib/add-row.js +0 -86
- package/configure/lib/add-row.js.map +0 -1
- package/configure/lib/answer-config-block.js +0 -362
- package/configure/lib/answer-config-block.js.map +0 -1
- package/configure/lib/common.js +0 -46
- package/configure/lib/common.js.map +0 -1
- package/configure/lib/configure.js +0 -501
- package/configure/lib/configure.js.map +0 -1
- package/configure/lib/defaults.js +0 -198
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/general-config-block.js +0 -208
- package/configure/lib/general-config-block.js.map +0 -1
- package/configure/lib/index.js +0 -225
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/row.js +0 -397
- package/configure/lib/row.js.map +0 -1
- package/configure/lib/utils.js +0 -23
- package/configure/lib/utils.js.map +0 -1
- package/controller/lib/defaults.js +0 -21
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -472
- package/controller/lib/index.js.map +0 -1
- package/lib/answer-grid.js +0 -260
- package/lib/answer-grid.js.map +0 -1
- package/lib/index.js +0 -134
- package/lib/index.js.map +0 -1
- package/lib/main.js +0 -227
- package/lib/main.js.map +0 -1
package/lib/answer-grid.js
DELETED
|
@@ -1,260 +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.AnswerGrid = 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 _classnames = _interopRequireDefault(require("classnames"));
|
|
29
|
-
|
|
30
|
-
var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
|
|
31
|
-
|
|
32
|
-
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
33
|
-
|
|
34
|
-
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
35
|
-
|
|
36
|
-
var _styles = require("@material-ui/core/styles");
|
|
37
|
-
|
|
38
|
-
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
39
|
-
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
|
-
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
|
-
|
|
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); }; }
|
|
45
|
-
|
|
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; } }
|
|
47
|
-
|
|
48
|
-
var AnswerGrid = /*#__PURE__*/function (_React$Component) {
|
|
49
|
-
(0, _inherits2["default"])(AnswerGrid, _React$Component);
|
|
50
|
-
|
|
51
|
-
var _super = _createSuper(AnswerGrid);
|
|
52
|
-
|
|
53
|
-
function AnswerGrid() {
|
|
54
|
-
var _this;
|
|
55
|
-
|
|
56
|
-
(0, _classCallCheck2["default"])(this, AnswerGrid);
|
|
57
|
-
|
|
58
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
59
|
-
args[_key] = arguments[_key];
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
63
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRowValueChange", function (rowId, answerIndex) {
|
|
64
|
-
return function (event) {
|
|
65
|
-
var _this$props = _this.props,
|
|
66
|
-
onAnswerChange = _this$props.onAnswerChange,
|
|
67
|
-
choiceMode = _this$props.choiceMode,
|
|
68
|
-
answers = _this$props.answers;
|
|
69
|
-
|
|
70
|
-
var newAnswers = _objectSpread({}, answers);
|
|
71
|
-
|
|
72
|
-
if (choiceMode === 'radio') {
|
|
73
|
-
for (var i = 0; i < newAnswers[rowId].length; i++) {
|
|
74
|
-
newAnswers[rowId][i] = false;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
newAnswers[rowId][answerIndex] = event.target.checked;
|
|
79
|
-
onAnswerChange(newAnswers);
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "answerIsCorrect", function (rowId, rowValue, rowValueIndex) {
|
|
83
|
-
var correctAnswers = _this.props.correctAnswers;
|
|
84
|
-
return correctAnswers[rowId][rowValueIndex] === rowValue && rowValue === true;
|
|
85
|
-
});
|
|
86
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "answerIsIncorrect", function (rowId, rowValue, rowValueIndex) {
|
|
87
|
-
var correctAnswers = _this.props.correctAnswers;
|
|
88
|
-
return correctAnswers[rowId][rowValueIndex] === true && rowValue === false || correctAnswers[rowId][rowValueIndex] === false && rowValue === true;
|
|
89
|
-
});
|
|
90
|
-
return _this;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
(0, _createClass2["default"])(AnswerGrid, [{
|
|
94
|
-
key: "render",
|
|
95
|
-
value: function render() {
|
|
96
|
-
var _this2 = this;
|
|
97
|
-
|
|
98
|
-
var _this$props2 = this.props,
|
|
99
|
-
classes = _this$props2.classes,
|
|
100
|
-
showCorrect = _this$props2.showCorrect,
|
|
101
|
-
headers = _this$props2.headers,
|
|
102
|
-
rows = _this$props2.rows,
|
|
103
|
-
choiceMode = _this$props2.choiceMode,
|
|
104
|
-
answers = _this$props2.answers,
|
|
105
|
-
disabled = _this$props2.disabled,
|
|
106
|
-
view = _this$props2.view;
|
|
107
|
-
var Tag = choiceMode === 'radio' ? _Radio["default"] : _Checkbox["default"];
|
|
108
|
-
var evaluate = disabled && !view;
|
|
109
|
-
|
|
110
|
-
if (!rows || rows.length === 0) {
|
|
111
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
112
|
-
className: classes.controlsContainer
|
|
113
|
-
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
114
|
-
className: classes.empty,
|
|
115
|
-
component: "div"
|
|
116
|
-
}, "There are currently no questions to show."));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
120
|
-
className: classes.controlsContainer
|
|
121
|
-
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
122
|
-
className: classes.table
|
|
123
|
-
}, /*#__PURE__*/_react["default"].createElement("colgroup", null, (headers || []).map(function (header, idx) {
|
|
124
|
-
return /*#__PURE__*/_react["default"].createElement("col", {
|
|
125
|
-
key: "col-".concat(idx)
|
|
126
|
-
});
|
|
127
|
-
})), /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, (headers || []).map(function (header, idx) {
|
|
128
|
-
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
129
|
-
className: classes.rowHeader,
|
|
130
|
-
key: "th-".concat(idx),
|
|
131
|
-
"data-colno": "".concat(idx),
|
|
132
|
-
scope: "row"
|
|
133
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
134
|
-
className: (0, _classnames["default"])(classes.rowItem, (0, _defineProperty2["default"])({}, classes.questionText, idx === 0)),
|
|
135
|
-
dangerouslySetInnerHTML: {
|
|
136
|
-
__html: header
|
|
137
|
-
}
|
|
138
|
-
}));
|
|
139
|
-
}))), (rows || []).map(function (row, idx) {
|
|
140
|
-
return /*#__PURE__*/_react["default"].createElement("tbody", {
|
|
141
|
-
key: "row-".concat(idx),
|
|
142
|
-
role: "group"
|
|
143
|
-
}, /*#__PURE__*/_react["default"].createElement("tr", {
|
|
144
|
-
className: classes.separator
|
|
145
|
-
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
146
|
-
key: "td-title-".concat(idx),
|
|
147
|
-
"data-colno": '0'
|
|
148
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
149
|
-
className: (0, _classnames["default"])(classes.rowItem, classes.questionText),
|
|
150
|
-
dangerouslySetInnerHTML: {
|
|
151
|
-
__html: row.title
|
|
152
|
-
}
|
|
153
|
-
})), (answers[row.id] || []).map(function (rowItem, answerIndex) {
|
|
154
|
-
var _cx2;
|
|
155
|
-
|
|
156
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
157
|
-
key: "td-".concat(idx, "-").concat(answerIndex),
|
|
158
|
-
className: classes.column,
|
|
159
|
-
"data-colno": "".concat(answerIndex + 1)
|
|
160
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
161
|
-
className: classes.rowItem
|
|
162
|
-
}, /*#__PURE__*/_react["default"].createElement(Tag, {
|
|
163
|
-
className: (0, _classnames["default"])((_cx2 = {}, (0, _defineProperty2["default"])(_cx2, classes.correct, showCorrect && rowItem === true || evaluate && _this2.answerIsCorrect(row.id, rowItem, answerIndex)), (0, _defineProperty2["default"])(_cx2, classes.tag, true), (0, _defineProperty2["default"])(_cx2, classes.checked, rowItem === true && !evaluate), (0, _defineProperty2["default"])(_cx2, classes.tagDisabled, disabled), (0, _defineProperty2["default"])(_cx2, classes.incorrect, evaluate && _this2.answerIsIncorrect(row.id, rowItem, answerIndex)), _cx2)),
|
|
164
|
-
disabled: disabled,
|
|
165
|
-
onChange: _this2.onRowValueChange(row.id, answerIndex),
|
|
166
|
-
checked: rowItem === true
|
|
167
|
-
})));
|
|
168
|
-
})));
|
|
169
|
-
})));
|
|
170
|
-
}
|
|
171
|
-
}]);
|
|
172
|
-
return AnswerGrid;
|
|
173
|
-
}(_react["default"].Component);
|
|
174
|
-
|
|
175
|
-
exports.AnswerGrid = AnswerGrid;
|
|
176
|
-
(0, _defineProperty2["default"])(AnswerGrid, "propTypes", {
|
|
177
|
-
classes: _propTypes["default"].object.isRequired,
|
|
178
|
-
correctAnswers: _propTypes["default"].object,
|
|
179
|
-
view: _propTypes["default"].bool.isRequired,
|
|
180
|
-
showCorrect: _propTypes["default"].bool.isRequired,
|
|
181
|
-
disabled: _propTypes["default"].bool.isRequired,
|
|
182
|
-
onAnswerChange: _propTypes["default"].func.isRequired,
|
|
183
|
-
choiceMode: _propTypes["default"].string.isRequired,
|
|
184
|
-
rows: _propTypes["default"].array.isRequired,
|
|
185
|
-
headers: _propTypes["default"].array.isRequired,
|
|
186
|
-
answers: _propTypes["default"].object.isRequired
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
var styles = function styles(theme) {
|
|
190
|
-
return {
|
|
191
|
-
controlsContainer: {
|
|
192
|
-
marginLeft: 'auto',
|
|
193
|
-
marginRight: 'auto',
|
|
194
|
-
marginTop: theme.spacing.unit,
|
|
195
|
-
marginBottom: theme.spacing.unit
|
|
196
|
-
},
|
|
197
|
-
column: {
|
|
198
|
-
padding: '5px 0'
|
|
199
|
-
},
|
|
200
|
-
correct: {
|
|
201
|
-
color: "".concat(_renderUi.color.correct(), " !important")
|
|
202
|
-
},
|
|
203
|
-
incorrect: {
|
|
204
|
-
color: "".concat(_renderUi.color.incorrect(), " !important")
|
|
205
|
-
},
|
|
206
|
-
empty: {
|
|
207
|
-
margin: theme.spacing.unit * 2
|
|
208
|
-
},
|
|
209
|
-
rowContainer: {
|
|
210
|
-
display: 'flex',
|
|
211
|
-
alignItems: 'center'
|
|
212
|
-
},
|
|
213
|
-
rowHeader: {
|
|
214
|
-
padding: 0
|
|
215
|
-
},
|
|
216
|
-
rowItem: {
|
|
217
|
-
padding: theme.spacing.unit * 1.5,
|
|
218
|
-
textAlign: 'center'
|
|
219
|
-
},
|
|
220
|
-
separator: {
|
|
221
|
-
border: 0,
|
|
222
|
-
borderTop: "2.5px solid ".concat(_renderUi.color.primaryLight()),
|
|
223
|
-
width: '100%'
|
|
224
|
-
},
|
|
225
|
-
tag: {
|
|
226
|
-
padding: '6px',
|
|
227
|
-
color: _renderUi.color.text(),
|
|
228
|
-
'&:hover': {
|
|
229
|
-
color: _renderUi.color.primaryLight()
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
|
-
checked: {
|
|
233
|
-
color: "".concat(_renderUi.color.primary(), " !important")
|
|
234
|
-
},
|
|
235
|
-
tagDisabled: {
|
|
236
|
-
color: _renderUi.color.disabled(),
|
|
237
|
-
cursor: 'not-allowed !important',
|
|
238
|
-
pointerEvents: 'initial !important',
|
|
239
|
-
opacity: 0.7,
|
|
240
|
-
'&:hover': {
|
|
241
|
-
color: _renderUi.color.disabled()
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
table: {
|
|
245
|
-
color: _renderUi.color.text(),
|
|
246
|
-
backgroundColor: _renderUi.color.background(),
|
|
247
|
-
borderCollapse: 'collapse',
|
|
248
|
-
borderSpacing: 0,
|
|
249
|
-
marginBottom: 0
|
|
250
|
-
},
|
|
251
|
-
questionText: {
|
|
252
|
-
textAlign: 'left'
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
var _default = (0, _styles.withStyles)(styles)(AnswerGrid);
|
|
258
|
-
|
|
259
|
-
exports["default"] = _default;
|
|
260
|
-
//# sourceMappingURL=answer-grid.js.map
|
package/lib/answer-grid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/answer-grid.jsx"],"names":["AnswerGrid","rowId","answerIndex","event","props","onAnswerChange","choiceMode","answers","newAnswers","i","length","target","checked","rowValue","rowValueIndex","correctAnswers","classes","showCorrect","headers","rows","disabled","view","Tag","Radio","Checkbox","evaluate","controlsContainer","empty","table","map","header","idx","rowHeader","rowItem","questionText","__html","row","separator","title","id","column","correct","answerIsCorrect","tag","tagDisabled","incorrect","answerIsIncorrect","onRowValueChange","React","Component","PropTypes","object","isRequired","bool","func","string","array","styles","theme","marginLeft","marginRight","marginTop","spacing","unit","marginBottom","padding","color","margin","rowContainer","display","alignItems","textAlign","border","borderTop","primaryLight","width","text","primary","cursor","pointerEvents","opacity","backgroundColor","background","borderCollapse","borderSpacing"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport Radio from '@material-ui/core/Radio';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nexport class AnswerGrid extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n correctAnswers: PropTypes.object,\n view: PropTypes.bool.isRequired,\n showCorrect: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n onAnswerChange: PropTypes.func.isRequired,\n choiceMode: PropTypes.string.isRequired,\n rows: PropTypes.array.isRequired,\n headers: PropTypes.array.isRequired,\n answers: PropTypes.object.isRequired,\n };\n\n onRowValueChange = (rowId, answerIndex) => (event) => {\n const { onAnswerChange, choiceMode, answers } = this.props;\n const newAnswers = { ...answers };\n\n if (choiceMode === 'radio') {\n for (let i = 0; i < newAnswers[rowId].length; i++) {\n newAnswers[rowId][i] = false;\n }\n }\n\n newAnswers[rowId][answerIndex] = event.target.checked;\n\n onAnswerChange(newAnswers);\n };\n\n answerIsCorrect = (rowId, rowValue, rowValueIndex) => {\n const { correctAnswers } = this.props;\n\n return correctAnswers[rowId][rowValueIndex] === rowValue && rowValue === true;\n };\n\n // needs a separate method because what isn't correct isn't necessarily incorrect\n answerIsIncorrect = (rowId, rowValue, rowValueIndex) => {\n const { correctAnswers } = this.props;\n\n return (\n (correctAnswers[rowId][rowValueIndex] === true && rowValue === false) ||\n (correctAnswers[rowId][rowValueIndex] === false && rowValue === true)\n );\n };\n\n render() {\n const { classes, showCorrect, headers, rows, choiceMode, answers, disabled, view } = this.props;\n const Tag = choiceMode === 'radio' ? Radio : Checkbox;\n const evaluate = disabled && !view;\n\n if (!rows || rows.length === 0) {\n return (\n <div className={classes.controlsContainer}>\n <Typography className={classes.empty} component=\"div\">\n There are currently no questions to show.\n </Typography>\n </div>\n );\n }\n\n return (\n <div className={classes.controlsContainer}>\n <table className={classes.table}>\n <colgroup>\n {(headers || []).map((header, idx) => (\n <col key={`col-${idx}`} />\n ))}\n </colgroup>\n\n <thead>\n <tr>\n {(headers || []).map((header, idx) => (\n <th className={classes.rowHeader} key={`th-${idx}`} data-colno={`${idx}`} scope=\"row\">\n <div\n className={cx(classes.rowItem, { [classes.questionText]: idx === 0 })}\n dangerouslySetInnerHTML={{ __html: header }}\n />\n </th>\n ))}\n </tr>\n </thead>\n\n {(rows || []).map((row, idx) => (\n <tbody key={`row-${idx}`} role=\"group\">\n <tr className={classes.separator}>\n <td key={`td-title-${idx}`} data-colno={'0'}>\n <div\n className={cx(classes.rowItem, classes.questionText)}\n dangerouslySetInnerHTML={{ __html: row.title }}\n />\n </td>\n\n {(answers[row.id] || []).map((rowItem, answerIndex) => (\n <td key={`td-${idx}-${answerIndex}`} className={classes.column} data-colno={`${answerIndex + 1}`}>\n <div className={classes.rowItem}>\n <Tag\n className={cx({\n [classes.correct]:\n (showCorrect && rowItem === true) ||\n (evaluate && this.answerIsCorrect(row.id, rowItem, answerIndex)),\n [classes.tag]: true,\n [classes.checked]: rowItem === true && !evaluate,\n [classes.tagDisabled]: disabled,\n [classes.incorrect]: evaluate && this.answerIsIncorrect(row.id, rowItem, answerIndex),\n })}\n disabled={disabled}\n onChange={this.onRowValueChange(row.id, answerIndex)}\n checked={rowItem === true}\n />\n </div>\n </td>\n ))}\n </tr>\n </tbody>\n ))}\n </table>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n controlsContainer: {\n marginLeft: 'auto',\n marginRight: 'auto',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n column: {\n padding: '5px 0',\n },\n correct: {\n color: `${color.correct()} !important`,\n },\n incorrect: {\n color: `${color.incorrect()} !important`,\n },\n empty: {\n margin: theme.spacing.unit * 2,\n },\n rowContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n rowHeader: {\n padding: 0,\n },\n rowItem: {\n padding: theme.spacing.unit * 1.5,\n textAlign: 'center',\n },\n separator: {\n border: 0,\n borderTop: `2.5px solid ${color.primaryLight()}`,\n width: '100%',\n },\n tag: {\n padding: '6px',\n color: color.text(),\n '&:hover': {\n color: color.primaryLight(),\n },\n },\n checked: {\n color: `${color.primary()} !important`,\n },\n tagDisabled: {\n color: color.disabled(),\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n opacity: 0.7,\n '&:hover': {\n color: color.disabled(),\n },\n },\n table: {\n color: color.text(),\n backgroundColor: color.background(),\n borderCollapse: 'collapse',\n borderSpacing: 0,\n marginBottom: 0,\n },\n questionText: {\n textAlign: 'left',\n },\n});\n\nexport default withStyles(styles)(AnswerGrid);\n"],"file":"answer-grid.js"}
|
package/lib/index.js
DELETED
|
@@ -1,134 +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
|
-
Object.defineProperty(exports, "Component", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _main["default"];
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
exports.isComplete = exports["default"] = void 0;
|
|
15
|
-
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
|
|
18
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
-
|
|
20
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
-
|
|
22
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
-
|
|
24
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
-
|
|
26
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
27
|
-
|
|
28
|
-
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
29
|
-
|
|
30
|
-
var _react = _interopRequireDefault(require("react"));
|
|
31
|
-
|
|
32
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
33
|
-
|
|
34
|
-
var _main = _interopRequireDefault(require("./main"));
|
|
35
|
-
|
|
36
|
-
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
37
|
-
|
|
38
|
-
var _mathRenderingAccessible = require("@pie-lib/pie-toolbox/math-rendering-accessible");
|
|
39
|
-
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
|
-
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
|
-
|
|
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); }; }
|
|
45
|
-
|
|
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; } }
|
|
47
|
-
|
|
48
|
-
var isComplete = function isComplete(session, model) {
|
|
49
|
-
var _model$rows;
|
|
50
|
-
|
|
51
|
-
var ids = (model === null || model === void 0 ? void 0 : (_model$rows = model.rows) === null || _model$rows === void 0 ? void 0 : _model$rows.map(function (r) {
|
|
52
|
-
return r.id;
|
|
53
|
-
})) || [];
|
|
54
|
-
return ids.reduce(function (acc, id) {
|
|
55
|
-
if (!acc) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
var arr = session.answers && session.answers[id];
|
|
60
|
-
var hasChoice = Array.isArray(arr) && arr.includes(true);
|
|
61
|
-
return hasChoice && acc;
|
|
62
|
-
}, true);
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
exports.isComplete = isComplete;
|
|
66
|
-
|
|
67
|
-
var Match = /*#__PURE__*/function (_HTMLElement) {
|
|
68
|
-
(0, _inherits2["default"])(Match, _HTMLElement);
|
|
69
|
-
|
|
70
|
-
var _super = _createSuper(Match);
|
|
71
|
-
|
|
72
|
-
function Match() {
|
|
73
|
-
(0, _classCallCheck2["default"])(this, Match);
|
|
74
|
-
return _super.call(this);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
(0, _createClass2["default"])(Match, [{
|
|
78
|
-
key: "model",
|
|
79
|
-
set: function set(m) {
|
|
80
|
-
// config object props should be part of the model props
|
|
81
|
-
// model.config should be no longer used
|
|
82
|
-
this._model = _objectSpread(_objectSpread({}, m), (m === null || m === void 0 ? void 0 : m.config) || {});
|
|
83
|
-
|
|
84
|
-
this._render();
|
|
85
|
-
}
|
|
86
|
-
}, {
|
|
87
|
-
key: "session",
|
|
88
|
-
get: function get() {
|
|
89
|
-
return this._session;
|
|
90
|
-
},
|
|
91
|
-
set: function set(s) {
|
|
92
|
-
this._session = s;
|
|
93
|
-
|
|
94
|
-
this._render();
|
|
95
|
-
}
|
|
96
|
-
}, {
|
|
97
|
-
key: "sessionChanged",
|
|
98
|
-
value: function sessionChanged(s) {
|
|
99
|
-
this._session.answers = s.answers;
|
|
100
|
-
var complete = isComplete(this._session, this._model);
|
|
101
|
-
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), complete));
|
|
102
|
-
|
|
103
|
-
this._render();
|
|
104
|
-
}
|
|
105
|
-
}, {
|
|
106
|
-
key: "connectedCallback",
|
|
107
|
-
value: function connectedCallback() {
|
|
108
|
-
this._render();
|
|
109
|
-
}
|
|
110
|
-
}, {
|
|
111
|
-
key: "_render",
|
|
112
|
-
value: function _render() {
|
|
113
|
-
var _this = this;
|
|
114
|
-
|
|
115
|
-
if (!this._model || !this._session) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
var el = /*#__PURE__*/_react["default"].createElement(_main["default"], {
|
|
120
|
-
model: this._model,
|
|
121
|
-
session: this._session,
|
|
122
|
-
onSessionChange: this.sessionChanged.bind(this)
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
_reactDom["default"].render(el, this, function () {
|
|
126
|
-
(0, _mathRenderingAccessible.renderMath)(_this);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
}]);
|
|
130
|
-
return Match;
|
|
131
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
132
|
-
|
|
133
|
-
exports["default"] = Match;
|
|
134
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["isComplete","session","model","ids","rows","map","r","id","reduce","acc","arr","answers","hasChoice","Array","isArray","includes","Match","m","_model","config","_render","_session","s","complete","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","el","React","createElement","Main","onSessionChange","sessionChanged","bind","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAIO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD,EAAUC,KAAV,EAAoB;AAAA;;AAC5C,MAAMC,GAAG,GAAG,CAAAD,KAAK,SAAL,IAAAA,KAAK,WAAL,2BAAAA,KAAK,CAAEE,IAAP,4DAAaC,GAAb,CAAiB,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACC,EAAT;AAAA,GAAjB,MAAiC,EAA7C;AAEA,SAAOJ,GAAG,CAACK,MAAJ,CAAW,UAACC,GAAD,EAAMF,EAAN,EAAa;AAC7B,QAAI,CAACE,GAAL,EAAU;AACR,aAAO,KAAP;AACD;;AAED,QAAMC,GAAG,GAAGT,OAAO,CAACU,OAAR,IAAmBV,OAAO,CAACU,OAAR,CAAgBJ,EAAhB,CAA/B;AACA,QAAMK,SAAS,GAAGC,KAAK,CAACC,OAAN,CAAcJ,GAAd,KAAsBA,GAAG,CAACK,QAAJ,CAAa,IAAb,CAAxC;AAEA,WAAOH,SAAS,IAAIH,GAApB;AACD,GATM,EASJ,IATI,CAAP;AAUD,CAbM;;;;IAecO,K;;;;;AACnB,mBAAc;AAAA;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX;AACA;AACA,WAAKC,MAAL,mCAAmBD,CAAnB,GAA0B,CAAAA,CAAC,SAAD,IAAAA,CAAC,WAAD,YAAAA,CAAC,CAAEE,MAAH,KAAa,EAAvC;;AACA,WAAKC,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKC,QAAZ;AACD,K;SAPD,aAAYC,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;;AACA,WAAKF,OAAL;AACD;;;WAMD,wBAAeE,CAAf,EAAkB;AAChB,WAAKD,QAAL,CAAcV,OAAd,GAAwBW,CAAC,CAACX,OAA1B;AACA,UAAMY,QAAQ,GAAGvB,UAAU,CAAC,KAAKqB,QAAN,EAAgB,KAAKH,MAArB,CAA3B;AAEA,WAAKM,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,KAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoDJ,QAApD,CAAnB;;AAEA,WAAKH,OAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,CAAC,KAAKF,MAAN,IAAgB,CAAC,KAAKG,QAA1B,EAAoC;AAClC;AACD;;AAED,UAAMO,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnC7B,QAAAA,KAAK,EAAE,KAAKgB,MADuB;AAEnCjB,QAAAA,OAAO,EAAE,KAAKoB,QAFqB;AAGnCW,QAAAA,eAAe,EAAE,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB;AAHkB,OAA1B,CAAX;;AAMAC,2BAASC,MAAT,CAAgBR,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,iDAAW,KAAX;AACD,OAFD;AAGD;;;kDAhDgCS,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Main from './main';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\n\nexport { Main as Component };\n\nexport const isComplete = (session, model) => {\n const ids = model?.rows?.map((r) => r.id) || [];\n\n return ids.reduce((acc, id) => {\n if (!acc) {\n return false;\n }\n\n const arr = session.answers && session.answers[id];\n const hasChoice = Array.isArray(arr) && arr.includes(true);\n\n return hasChoice && acc;\n }, true);\n};\n\nexport default class Match extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n // config object props should be part of the model props\n // model.config should be no longer used\n this._model = { ...m, ...(m?.config || {}) };\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n sessionChanged(s) {\n this._session.answers = s.answers;\n const complete = isComplete(this._session, this._model);\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), complete));\n\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged.bind(this),\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n}\n"],"file":"index.js"}
|
package/lib/main.js
DELETED
|
@@ -1,227 +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.Main = 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 = require("@pie-lib/pie-toolbox/correct-answer-toggle");
|
|
29
|
-
|
|
30
|
-
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
31
|
-
|
|
32
|
-
var _answerGrid = _interopRequireDefault(require("./answer-grid"));
|
|
33
|
-
|
|
34
|
-
var _styles = require("@material-ui/core/styles");
|
|
35
|
-
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
|
-
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
|
-
|
|
40
|
-
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); }; }
|
|
41
|
-
|
|
42
|
-
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; } }
|
|
43
|
-
|
|
44
|
-
var Main = /*#__PURE__*/function (_React$Component) {
|
|
45
|
-
(0, _inherits2["default"])(Main, _React$Component);
|
|
46
|
-
|
|
47
|
-
var _super = _createSuper(Main);
|
|
48
|
-
|
|
49
|
-
function Main(props) {
|
|
50
|
-
var _this;
|
|
51
|
-
|
|
52
|
-
(0, _classCallCheck2["default"])(this, Main);
|
|
53
|
-
_this = _super.call(this, props);
|
|
54
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "generateAnswers", function (model) {
|
|
55
|
-
var _model$rows;
|
|
56
|
-
|
|
57
|
-
var answers = {};
|
|
58
|
-
(_model$rows = model.rows) === null || _model$rows === void 0 ? void 0 : _model$rows.forEach(function (row) {
|
|
59
|
-
answers[row.id] = new Array(model.layout - 1).fill(false);
|
|
60
|
-
});
|
|
61
|
-
return answers;
|
|
62
|
-
});
|
|
63
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isAnswerRegenerationRequired", function (nextProps) {
|
|
64
|
-
var _this$props$model = _this.props.model;
|
|
65
|
-
_this$props$model = _this$props$model === void 0 ? {} : _this$props$model;
|
|
66
|
-
var choiceMode = _this$props$model.choiceMode,
|
|
67
|
-
layout = _this$props$model.layout,
|
|
68
|
-
rows = _this$props$model.rows;
|
|
69
|
-
var _nextProps$session = nextProps.session;
|
|
70
|
-
_nextProps$session = _nextProps$session === void 0 ? {} : _nextProps$session;
|
|
71
|
-
var answers = _nextProps$session.answers;
|
|
72
|
-
var isRequired = false;
|
|
73
|
-
|
|
74
|
-
if (choiceMode !== nextProps.model.choiceMode) {
|
|
75
|
-
isRequired = true;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (layout !== nextProps.model.layout) {
|
|
79
|
-
isRequired = true;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (rows.length !== nextProps.model.rows.length || answers && nextProps.model.rows.length !== Object.keys(answers).length) {
|
|
83
|
-
isRequired = true;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return isRequired || !answers;
|
|
87
|
-
});
|
|
88
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "callOnSessionChange", function () {
|
|
89
|
-
var onSessionChange = _this.props.onSessionChange;
|
|
90
|
-
|
|
91
|
-
if (onSessionChange) {
|
|
92
|
-
onSessionChange(_this.state.session);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleShowCorrect", function (show) {
|
|
96
|
-
_this.setState({
|
|
97
|
-
showCorrect: show
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerChange", function (newAnswers) {
|
|
101
|
-
_this.setState(function (state) {
|
|
102
|
-
return {
|
|
103
|
-
session: _objectSpread(_objectSpread({}, state.session), {}, {
|
|
104
|
-
answers: newAnswers
|
|
105
|
-
})
|
|
106
|
-
};
|
|
107
|
-
}, _this.callOnSessionChange);
|
|
108
|
-
});
|
|
109
|
-
_this.state = {
|
|
110
|
-
session: _objectSpread(_objectSpread({}, props.session), {}, {
|
|
111
|
-
answers: props.session && props.session.answers || _this.generateAnswers(props.model)
|
|
112
|
-
}),
|
|
113
|
-
showCorrect: false
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
_this.callOnSessionChange();
|
|
117
|
-
|
|
118
|
-
return _this;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
(0, _createClass2["default"])(Main, [{
|
|
122
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
123
|
-
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
124
|
-
var _this2 = this;
|
|
125
|
-
|
|
126
|
-
var regenAnswers = this.isAnswerRegenerationRequired(nextProps);
|
|
127
|
-
this.setState(function (state) {
|
|
128
|
-
return {
|
|
129
|
-
session: _objectSpread(_objectSpread({}, nextProps.session), {}, {
|
|
130
|
-
// regenerate answers if layout or choiceMode change
|
|
131
|
-
answers: regenAnswers ? _this2.generateAnswers(nextProps.model) : nextProps.session.answers
|
|
132
|
-
}),
|
|
133
|
-
showCorrect: _this2.props.model.disabled && !nextProps.model.disabled && state.showCorrect ? false : state.showCorrect
|
|
134
|
-
};
|
|
135
|
-
}, function () {
|
|
136
|
-
if (regenAnswers) _this2.callOnSessionChange();
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}, {
|
|
140
|
-
key: "render",
|
|
141
|
-
value: function render() {
|
|
142
|
-
var _this$props = this.props,
|
|
143
|
-
model = _this$props.model,
|
|
144
|
-
classes = _this$props.classes;
|
|
145
|
-
var _this$state = this.state,
|
|
146
|
-
showCorrect = _this$state.showCorrect,
|
|
147
|
-
session = _this$state.session;
|
|
148
|
-
var _model$correctness = model.correctness,
|
|
149
|
-
correctness = _model$correctness === void 0 ? {} : _model$correctness,
|
|
150
|
-
language = model.language;
|
|
151
|
-
var showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';
|
|
152
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
153
|
-
className: classes.mainContainer
|
|
154
|
-
}, model.teacherInstructions && (0, _renderUi.hasText)(model.teacherInstructions) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
155
|
-
labels: {
|
|
156
|
-
hidden: 'Show Teacher Instructions',
|
|
157
|
-
visible: 'Hide Teacher Instructions'
|
|
158
|
-
},
|
|
159
|
-
className: classes.collapsible
|
|
160
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
161
|
-
prompt: model.teacherInstructions
|
|
162
|
-
})), model.prompt && /*#__PURE__*/_react["default"].createElement("div", {
|
|
163
|
-
className: classes.prompt
|
|
164
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
165
|
-
prompt: model.prompt
|
|
166
|
-
})), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle.CorrectAnswerToggle, {
|
|
167
|
-
language: language,
|
|
168
|
-
show: showCorrectAnswerToggle,
|
|
169
|
-
toggled: showCorrect,
|
|
170
|
-
onToggle: this.toggleShowCorrect
|
|
171
|
-
}), /*#__PURE__*/_react["default"].createElement(_answerGrid["default"], {
|
|
172
|
-
showCorrect: showCorrect,
|
|
173
|
-
correctAnswers: model.correctResponse,
|
|
174
|
-
disabled: model.disabled,
|
|
175
|
-
view: model.view,
|
|
176
|
-
onAnswerChange: this.onAnswerChange,
|
|
177
|
-
choiceMode: model.choiceMode,
|
|
178
|
-
answers: showCorrect ? model.correctResponse || {} : session.answers,
|
|
179
|
-
headers: model.headers,
|
|
180
|
-
rows: model.rows
|
|
181
|
-
}), model.rationale && (0, _renderUi.hasText)(model.rationale) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
182
|
-
labels: {
|
|
183
|
-
hidden: 'Show Rationale',
|
|
184
|
-
visible: 'Hide Rationale'
|
|
185
|
-
},
|
|
186
|
-
className: classes.collapsible
|
|
187
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
188
|
-
prompt: model.rationale
|
|
189
|
-
})), model.feedback && /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
|
|
190
|
-
correctness: correctness.correctness,
|
|
191
|
-
feedback: model.feedback
|
|
192
|
-
}));
|
|
193
|
-
}
|
|
194
|
-
}]);
|
|
195
|
-
return Main;
|
|
196
|
-
}(_react["default"].Component);
|
|
197
|
-
|
|
198
|
-
exports.Main = Main;
|
|
199
|
-
(0, _defineProperty2["default"])(Main, "propTypes", {
|
|
200
|
-
classes: _propTypes["default"].object,
|
|
201
|
-
session: _propTypes["default"].object.isRequired,
|
|
202
|
-
onSessionChange: _propTypes["default"].func,
|
|
203
|
-
model: _propTypes["default"].object.isRequired
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
var styles = function styles(theme) {
|
|
207
|
-
return {
|
|
208
|
-
mainContainer: {
|
|
209
|
-
color: _renderUi.color.text(),
|
|
210
|
-
backgroundColor: _renderUi.color.background()
|
|
211
|
-
},
|
|
212
|
-
main: {
|
|
213
|
-
width: '100%'
|
|
214
|
-
},
|
|
215
|
-
prompt: {
|
|
216
|
-
verticalAlign: 'middle'
|
|
217
|
-
},
|
|
218
|
-
collapsible: {
|
|
219
|
-
marginBottom: theme.spacing.unit * 2
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
var _default = (0, _styles.withStyles)(styles)(Main);
|
|
225
|
-
|
|
226
|
-
exports["default"] = _default;
|
|
227
|
-
//# sourceMappingURL=main.js.map
|