@pie-element/inline-dropdown 4.7.1-beta.0 → 4.7.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.
- package/configure/lib/__tests__/inline-dropdown-toolbar.test.js +112 -0
- package/configure/lib/__tests__/main.test.js +492 -0
- package/configure/lib/__tests__/markupUtils.test.js +107 -0
- package/configure/lib/defaults.js +1 -1
- package/configure/lib/index.js +2 -41
- package/configure/lib/inline-dropdown-toolbar.js +33 -95
- package/configure/lib/main.js +40 -112
- package/configure/lib/markupUtils.js +5 -20
- package/configure/lib/utils.js +2 -4
- package/configure/package.json +3 -3
- package/controller/lib/__tests__/index.test.js +858 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +134 -187
- package/controller/lib/utils.js +2 -9
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/inline-dropdown.test.js +113 -0
- package/lib/index.js +1 -28
- package/lib/inline-dropdown.js +8 -42
- package/package.json +4 -4
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/inline-dropdown-toolbar.js.map +0 -1
- package/configure/lib/main.js.map +0 -1
- package/configure/lib/markupUtils.js.map +0 -1
- package/configure/lib/utils.js.map +0 -1
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/inline-dropdown.js.map +0 -1
|
@@ -8,4 +8,4 @@ var _default = {
|
|
|
8
8
|
choices: {}
|
|
9
9
|
};
|
|
10
10
|
exports["default"] = _default;
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaG9pY2VzIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2RlZmF1bHRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgY2hvaWNlczoge30sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNiQSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFBQUMsT0FBQSxjQUFBQyxRQUFBIn0=
|
package/controller/lib/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -10,35 +9,22 @@ exports.model = model;
|
|
|
10
9
|
exports.normalize = void 0;
|
|
11
10
|
exports.outcome = outcome;
|
|
12
11
|
exports.validate = void 0;
|
|
13
|
-
|
|
14
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
-
|
|
16
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
-
|
|
18
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
|
|
20
15
|
var _map = _interopRequireDefault(require("lodash/map"));
|
|
21
|
-
|
|
22
16
|
var _reduce = _interopRequireDefault(require("lodash/reduce"));
|
|
23
|
-
|
|
24
17
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
25
|
-
|
|
26
18
|
var _controllerUtils = require("@pie-lib/controller-utils");
|
|
27
|
-
|
|
28
19
|
var _utils = require("./utils");
|
|
29
|
-
|
|
30
20
|
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; }
|
|
31
|
-
|
|
32
21
|
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; }
|
|
33
|
-
|
|
34
22
|
var getFeedback = function getFeedback(correct) {
|
|
35
23
|
if (correct) {
|
|
36
24
|
return 'correct';
|
|
37
25
|
}
|
|
38
|
-
|
|
39
26
|
return 'incorrect';
|
|
40
27
|
};
|
|
41
|
-
|
|
42
28
|
var normalize = function normalize(question) {
|
|
43
29
|
return _objectSpread({
|
|
44
30
|
promptEnabled: true,
|
|
@@ -48,6 +34,7 @@ var normalize = function normalize(question) {
|
|
|
48
34
|
choiceRationaleEnabled: true
|
|
49
35
|
}, question);
|
|
50
36
|
};
|
|
37
|
+
|
|
51
38
|
/**
|
|
52
39
|
*
|
|
53
40
|
* @param {*} question
|
|
@@ -55,205 +42,178 @@ var normalize = function normalize(question) {
|
|
|
55
42
|
* @param {*} env
|
|
56
43
|
* @param {*} updateSession - optional - a function that will set the properties passed into it on the session.
|
|
57
44
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
45
|
exports.normalize = normalize;
|
|
61
|
-
|
|
62
46
|
function model(question, session, env, updateSession) {
|
|
63
47
|
return new Promise( /*#__PURE__*/function () {
|
|
64
48
|
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve) {
|
|
65
49
|
var normalizedQuestion, _ref2, _ref2$value, value, choices, feedback, allCorrectResponses, respAreaLength, correctResponses, _loop, i, _ret, lockChoiceOrder, keys, _i, key, teacherInstructions, rationale, choicesWillNullRationales, out;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
50
|
+
return _regenerator["default"].wrap(function _callee$(_context2) {
|
|
51
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
52
|
+
case 0:
|
|
53
|
+
normalizedQuestion = normalize(question);
|
|
54
|
+
_ref2 = session || {}, _ref2$value = _ref2.value, value = _ref2$value === void 0 ? {} : _ref2$value;
|
|
55
|
+
choices = (0, _reduce["default"])(normalizedQuestion.choices, function (obj, area, key) {
|
|
56
|
+
obj[key] = (0, _map["default"])(area, function (choice) {
|
|
57
|
+
return choice;
|
|
58
|
+
});
|
|
59
|
+
return obj;
|
|
60
|
+
}, {});
|
|
61
|
+
feedback = {};
|
|
62
|
+
if (!(env.mode === 'evaluate')) {
|
|
63
|
+
_context2.next = 18;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
allCorrectResponses = (0, _utils.getAllCorrectResponses)(normalizedQuestion);
|
|
67
|
+
respAreaLength = Object.keys(allCorrectResponses).length;
|
|
68
|
+
correctResponses = 0;
|
|
69
|
+
_loop = /*#__PURE__*/_regenerator["default"].mark(function _loop(i) {
|
|
70
|
+
var result;
|
|
71
|
+
return _regenerator["default"].wrap(function _loop$(_context) {
|
|
72
|
+
while (1) switch (_context.prev = _context.next) {
|
|
73
|
+
case 0:
|
|
74
|
+
result = (0, _reduce["default"])(allCorrectResponses, function (obj, choices, key) {
|
|
75
|
+
var answer = value && value[key] || '';
|
|
76
|
+
var correctChoice = choices[i] || '';
|
|
77
|
+
var isCorrect = answer && correctChoice && correctChoice === answer;
|
|
78
|
+
obj.feedback[key] = getFeedback(isCorrect);
|
|
79
|
+
if (isCorrect) {
|
|
80
|
+
obj.correctResponses += 1;
|
|
81
|
+
}
|
|
82
|
+
return obj;
|
|
83
|
+
}, {
|
|
84
|
+
correctResponses: 0,
|
|
85
|
+
feedback: {}
|
|
86
|
+
});
|
|
87
|
+
if (result.correctResponses >= correctResponses) {
|
|
88
|
+
correctResponses = result.correctResponses;
|
|
89
|
+
feedback = result.feedback;
|
|
90
|
+
}
|
|
91
|
+
if (!(result.correctResponses === respAreaLength)) {
|
|
92
|
+
_context.next = 4;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
return _context.abrupt("return", "break");
|
|
96
|
+
case 4:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context.stop();
|
|
114
99
|
}
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
_context.next = 17;
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
_ret = _loop(i);
|
|
126
|
-
|
|
127
|
-
if (!(_ret === "break")) {
|
|
128
|
-
_context.next = 14;
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return _context.abrupt("break", 17);
|
|
133
|
-
|
|
134
|
-
case 14:
|
|
135
|
-
i++;
|
|
136
|
-
_context.next = 10;
|
|
100
|
+
}, _loop);
|
|
101
|
+
});
|
|
102
|
+
i = 0;
|
|
103
|
+
case 10:
|
|
104
|
+
if (!(i < respAreaLength)) {
|
|
105
|
+
_context2.next = 18;
|
|
137
106
|
break;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
break;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
keys = Object.keys(choices);
|
|
148
|
-
_i = 0;
|
|
149
|
-
|
|
150
|
-
case 21:
|
|
151
|
-
if (!(_i < keys.length)) {
|
|
152
|
-
_context.next = 29;
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
key = keys[_i];
|
|
157
|
-
_context.next = 25;
|
|
158
|
-
return (0, _controllerUtils.getShuffledChoices)(choices[key], session, updateSession, 'value');
|
|
159
|
-
|
|
160
|
-
case 25:
|
|
161
|
-
choices[key] = _context.sent;
|
|
162
|
-
|
|
163
|
-
case 26:
|
|
164
|
-
_i++;
|
|
165
|
-
_context.next = 21;
|
|
107
|
+
}
|
|
108
|
+
return _context2.delegateYield(_loop(i), "t0", 12);
|
|
109
|
+
case 12:
|
|
110
|
+
_ret = _context2.t0;
|
|
111
|
+
if (!(_ret === "break")) {
|
|
112
|
+
_context2.next = 15;
|
|
166
113
|
break;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
114
|
+
}
|
|
115
|
+
return _context2.abrupt("break", 18);
|
|
116
|
+
case 15:
|
|
117
|
+
i++;
|
|
118
|
+
_context2.next = 10;
|
|
119
|
+
break;
|
|
120
|
+
case 18:
|
|
121
|
+
lockChoiceOrder = (0, _controllerUtils.lockChoices)(normalizedQuestion, session, env);
|
|
122
|
+
if (lockChoiceOrder) {
|
|
123
|
+
_context2.next = 30;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
keys = Object.keys(choices);
|
|
127
|
+
_i = 0;
|
|
128
|
+
case 22:
|
|
129
|
+
if (!(_i < keys.length)) {
|
|
130
|
+
_context2.next = 30;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
key = keys[_i];
|
|
134
|
+
_context2.next = 26;
|
|
135
|
+
return (0, _controllerUtils.getShuffledChoices)(choices[key], session, updateSession, 'value');
|
|
136
|
+
case 26:
|
|
137
|
+
choices[key] = _context2.sent;
|
|
138
|
+
case 27:
|
|
139
|
+
_i++;
|
|
140
|
+
_context2.next = 22;
|
|
141
|
+
break;
|
|
142
|
+
case 30:
|
|
143
|
+
teacherInstructions = null;
|
|
144
|
+
rationale = null;
|
|
145
|
+
choicesWillNullRationales = (Object.keys(choices) || []).reduce(function (acc, currentValue) {
|
|
146
|
+
acc[currentValue] = (choices[currentValue] || []).map(function (choice) {
|
|
147
|
+
return _objectSpread(_objectSpread({}, choice), {}, {
|
|
148
|
+
rationale: null
|
|
176
149
|
});
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
case "end":
|
|
206
|
-
return _context.stop();
|
|
207
|
-
}
|
|
150
|
+
});
|
|
151
|
+
return acc;
|
|
152
|
+
}, {});
|
|
153
|
+
if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
|
|
154
|
+
rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;
|
|
155
|
+
teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
|
|
156
|
+
choices = normalizedQuestion.choiceRationaleEnabled ? normalizedQuestion.choices : choicesWillNullRationales;
|
|
157
|
+
} else {
|
|
158
|
+
rationale = null;
|
|
159
|
+
teacherInstructions = null;
|
|
160
|
+
choices = choicesWillNullRationales;
|
|
161
|
+
}
|
|
162
|
+
out = {
|
|
163
|
+
disabled: env.mode !== 'gather',
|
|
164
|
+
mode: env.mode,
|
|
165
|
+
prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
|
|
166
|
+
displayType: normalizedQuestion.displayType,
|
|
167
|
+
markup: normalizedQuestion.markup,
|
|
168
|
+
choices: choices,
|
|
169
|
+
feedback: feedback,
|
|
170
|
+
responseCorrect: env.mode === 'evaluate' ? getScore(normalizedQuestion, session) === 1 : undefined,
|
|
171
|
+
rationale: rationale,
|
|
172
|
+
teacherInstructions: teacherInstructions
|
|
173
|
+
};
|
|
174
|
+
resolve(out);
|
|
175
|
+
case 36:
|
|
176
|
+
case "end":
|
|
177
|
+
return _context2.stop();
|
|
208
178
|
}
|
|
209
179
|
}, _callee);
|
|
210
180
|
}));
|
|
211
|
-
|
|
212
181
|
return function (_x) {
|
|
213
182
|
return _ref.apply(this, arguments);
|
|
214
183
|
};
|
|
215
184
|
}());
|
|
216
185
|
}
|
|
217
|
-
|
|
218
186
|
var getScore = function getScore(config, session) {
|
|
219
187
|
var _ref3 = session || {},
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
188
|
+
_ref3$value = _ref3.value,
|
|
189
|
+
value = _ref3$value === void 0 ? {} : _ref3$value;
|
|
223
190
|
var maxScore = config && config.choices ? Object.keys(config.choices).length : 0;
|
|
224
191
|
var allCorrectResponses = (0, _utils.getAllCorrectResponses)(config);
|
|
225
192
|
var correctCount = 0;
|
|
226
|
-
|
|
227
193
|
var _loop2 = function _loop2(i) {
|
|
228
194
|
var result = (0, _reduce["default"])(allCorrectResponses, function (total, choices, key) {
|
|
229
195
|
var answer = value && value[key] || '';
|
|
230
196
|
var correctChoice = choices[i] || '';
|
|
231
|
-
|
|
232
197
|
if (correctChoice && answer && correctChoice === answer) {
|
|
233
198
|
return total;
|
|
234
199
|
}
|
|
235
|
-
|
|
236
200
|
return total - 1;
|
|
237
201
|
}, maxScore);
|
|
238
|
-
|
|
239
202
|
if (result > correctCount) {
|
|
240
203
|
correctCount = result;
|
|
241
204
|
}
|
|
242
|
-
|
|
243
205
|
if (result === maxScore) {
|
|
244
206
|
return "break";
|
|
245
207
|
}
|
|
246
208
|
};
|
|
247
|
-
|
|
248
209
|
for (var i = 0; i < maxScore; i++) {
|
|
249
210
|
var _ret2 = _loop2(i);
|
|
250
|
-
|
|
251
211
|
if (_ret2 === "break") break;
|
|
252
212
|
}
|
|
253
|
-
|
|
254
213
|
var str = (correctCount / maxScore).toFixed(2);
|
|
255
214
|
return parseFloat(str);
|
|
256
215
|
};
|
|
216
|
+
|
|
257
217
|
/**
|
|
258
218
|
*
|
|
259
219
|
* The score is partial by default for checkbox mode, allOrNothing for radio mode.
|
|
@@ -266,10 +226,7 @@ var getScore = function getScore(config, session) {
|
|
|
266
226
|
* @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides
|
|
267
227
|
* `model.partialScoring`.
|
|
268
228
|
*/
|
|
269
|
-
|
|
270
|
-
|
|
271
229
|
exports.getScore = getScore;
|
|
272
|
-
|
|
273
230
|
function outcome(model, session) {
|
|
274
231
|
var env = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
275
232
|
return new Promise(function (resolve) {
|
|
@@ -279,9 +236,7 @@ function outcome(model, session) {
|
|
|
279
236
|
empty: true
|
|
280
237
|
});
|
|
281
238
|
}
|
|
282
|
-
|
|
283
239
|
var partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env);
|
|
284
|
-
|
|
285
240
|
var score = getScore(model, session);
|
|
286
241
|
resolve({
|
|
287
242
|
score: partialScoringEnabled ? score : Math.floor(score),
|
|
@@ -289,50 +244,43 @@ function outcome(model, session) {
|
|
|
289
244
|
});
|
|
290
245
|
});
|
|
291
246
|
}
|
|
292
|
-
|
|
293
247
|
var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
|
|
294
248
|
return new Promise(function (resolve) {
|
|
295
249
|
if (env.mode !== 'evaluate' && env.role === 'instructor') {
|
|
296
250
|
var choices = question.choices;
|
|
297
|
-
var
|
|
298
|
-
|
|
251
|
+
var value = {};
|
|
299
252
|
if (choices) {
|
|
300
253
|
Object.keys(choices).forEach(function (key, i) {
|
|
301
254
|
var correctChoices = choices[key] && choices[key].filter(function (c) {
|
|
302
255
|
return c.correct;
|
|
303
256
|
});
|
|
304
|
-
|
|
257
|
+
value[i] = correctChoices && correctChoices[0].value;
|
|
305
258
|
});
|
|
306
259
|
}
|
|
307
|
-
|
|
308
260
|
resolve({
|
|
309
261
|
id: '1',
|
|
310
|
-
value:
|
|
262
|
+
value: value
|
|
311
263
|
});
|
|
312
264
|
} else {
|
|
313
265
|
resolve(null);
|
|
314
266
|
}
|
|
315
267
|
});
|
|
316
268
|
};
|
|
317
|
-
|
|
318
269
|
exports.createCorrectResponseSession = createCorrectResponseSession;
|
|
319
|
-
|
|
320
270
|
var validate = function validate() {
|
|
321
271
|
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
322
272
|
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
323
273
|
var markup = model.markup,
|
|
324
|
-
|
|
274
|
+
choices = model.choices;
|
|
325
275
|
var maxResponseAreas = config.maxResponseAreas,
|
|
326
|
-
|
|
276
|
+
maxResponseAreaChoices = config.maxResponseAreaChoices;
|
|
327
277
|
var errors = {};
|
|
328
278
|
var nbOfResponseAreas = ((markup || '').match(/\{\{(\d+)\}\}/g) || []).length;
|
|
329
|
-
|
|
330
279
|
if (nbOfResponseAreas > maxResponseAreas) {
|
|
331
280
|
errors.responseAreasError = "No more than ".concat(maxResponseAreas, " response areas should be defined.");
|
|
332
281
|
} else if (nbOfResponseAreas < 1) {
|
|
333
282
|
errors.responseAreasError = 'There should be defined at least 1 response area.';
|
|
334
283
|
}
|
|
335
|
-
|
|
336
284
|
(Object.keys(choices) || []).forEach(function (choiceKey) {
|
|
337
285
|
if (choices[choiceKey] && choices[choiceKey].length > maxResponseAreaChoices) {
|
|
338
286
|
errors.responseAreaChoicesError = "No more than ".concat(maxResponseAreaChoices, " choices per response area should be defined.");
|
|
@@ -340,6 +288,5 @@ var validate = function validate() {
|
|
|
340
288
|
});
|
|
341
289
|
return errors;
|
|
342
290
|
};
|
|
343
|
-
|
|
344
291
|
exports.validate = validate;
|
|
345
|
-
//# sourceMappingURL=index.js.map
|
|
292
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWFwIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVkdWNlIiwiX2lzRW1wdHkiLCJfY29udHJvbGxlclV0aWxzIiwiX3V0aWxzIiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJnZXRGZWVkYmFjayIsImNvcnJlY3QiLCJub3JtYWxpemUiLCJxdWVzdGlvbiIsInByb21wdEVuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsImNob2ljZVJhdGlvbmFsZUVuYWJsZWQiLCJleHBvcnRzIiwibW9kZWwiLCJzZXNzaW9uIiwiZW52IiwidXBkYXRlU2Vzc2lvbiIsIlByb21pc2UiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXNvbHZlIiwibm9ybWFsaXplZFF1ZXN0aW9uIiwiX3JlZjIiLCJfcmVmMiR2YWx1ZSIsInZhbHVlIiwiY2hvaWNlcyIsImZlZWRiYWNrIiwiYWxsQ29ycmVjdFJlc3BvbnNlcyIsInJlc3BBcmVhTGVuZ3RoIiwiY29ycmVjdFJlc3BvbnNlcyIsIl9sb29wIiwiX3JldCIsImxvY2tDaG9pY2VPcmRlciIsIl9pIiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsImNob2ljZXNXaWxsTnVsbFJhdGlvbmFsZXMiLCJvdXQiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dDIiLCJwcmV2IiwibmV4dCIsInJlZHVjZSIsIm9iaiIsImFyZWEiLCJtYXAiLCJjaG9pY2UiLCJtb2RlIiwiZ2V0QWxsQ29ycmVjdFJlc3BvbnNlcyIsInJlc3VsdCIsIl9sb29wJCIsIl9jb250ZXh0IiwiYW5zd2VyIiwiY29ycmVjdENob2ljZSIsImlzQ29ycmVjdCIsImFicnVwdCIsInN0b3AiLCJkZWxlZ2F0ZVlpZWxkIiwidDAiLCJsb2NrQ2hvaWNlcyIsImdldFNodWZmbGVkQ2hvaWNlcyIsInNlbnQiLCJhY2MiLCJjdXJyZW50VmFsdWUiLCJyb2xlIiwiZGlzYWJsZWQiLCJwcm9tcHQiLCJkaXNwbGF5VHlwZSIsIm1hcmt1cCIsInJlc3BvbnNlQ29ycmVjdCIsImdldFNjb3JlIiwidW5kZWZpbmVkIiwiX3giLCJjb25maWciLCJfcmVmMyIsIl9yZWYzJHZhbHVlIiwibWF4U2NvcmUiLCJjb3JyZWN0Q291bnQiLCJfbG9vcDIiLCJ0b3RhbCIsIl9yZXQyIiwic3RyIiwidG9GaXhlZCIsInBhcnNlRmxvYXQiLCJvdXRjb21lIiwiaXNFbXB0eSIsInNjb3JlIiwiZW1wdHkiLCJwYXJ0aWFsU2NvcmluZ0VuYWJsZWQiLCJwYXJ0aWFsU2NvcmluZyIsImVuYWJsZWQiLCJNYXRoIiwiZmxvb3IiLCJjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uIiwiY29ycmVjdENob2ljZXMiLCJjIiwiaWQiLCJ2YWxpZGF0ZSIsIm1heFJlc3BvbnNlQXJlYXMiLCJtYXhSZXNwb25zZUFyZWFDaG9pY2VzIiwiZXJyb3JzIiwibmJPZlJlc3BvbnNlQXJlYXMiLCJtYXRjaCIsInJlc3BvbnNlQXJlYXNFcnJvciIsImNvbmNhdCIsImNob2ljZUtleSIsInJlc3BvbnNlQXJlYUNob2ljZXNFcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnO1xuaW1wb3J0IHJlZHVjZSBmcm9tICdsb2Rhc2gvcmVkdWNlJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7IGxvY2tDaG9pY2VzLCBnZXRTaHVmZmxlZENob2ljZXMsIHBhcnRpYWxTY29yaW5nIH0gZnJvbSAnQHBpZS1saWIvY29udHJvbGxlci11dGlscyc7XG5cbmltcG9ydCB7IGdldEFsbENvcnJlY3RSZXNwb25zZXMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZ2V0RmVlZGJhY2sgPSAoY29ycmVjdCkgPT4ge1xuICBpZiAoY29ycmVjdCkge1xuICAgIHJldHVybiAnY29ycmVjdCc7XG4gIH1cblxuICByZXR1cm4gJ2luY29ycmVjdCc7XG59O1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHF1ZXN0aW9uKSA9PiAoe1xuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gIGNob2ljZVJhdGlvbmFsZUVuYWJsZWQ6IHRydWUsXG4gIC4uLnF1ZXN0aW9uLFxufSk7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7Kn0gcXVlc3Rpb25cbiAqIEBwYXJhbSB7Kn0gc2Vzc2lvblxuICogQHBhcmFtIHsqfSBlbnZcbiAqIEBwYXJhbSB7Kn0gdXBkYXRlU2Vzc2lvbiAtIG9wdGlvbmFsIC0gYSBmdW5jdGlvbiB0aGF0IHdpbGwgc2V0IHRoZSBwcm9wZXJ0aWVzIHBhc3NlZCBpbnRvIGl0IG9uIHRoZSBzZXNzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWwocXVlc3Rpb24sIHNlc3Npb24sIGVudiwgdXBkYXRlU2Vzc2lvbikge1xuICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkUXVlc3Rpb24gPSBub3JtYWxpemUocXVlc3Rpb24pO1xuICAgIGNvbnN0IHsgdmFsdWUgPSB7fSB9ID0gc2Vzc2lvbiB8fCB7fTtcbiAgICBsZXQgY2hvaWNlcyA9IHJlZHVjZShcbiAgICAgIG5vcm1hbGl6ZWRRdWVzdGlvbi5jaG9pY2VzLFxuICAgICAgKG9iaiwgYXJlYSwga2V5KSA9PiB7XG4gICAgICAgIG9ialtrZXldID0gbWFwKGFyZWEsIChjaG9pY2UpID0+IGNob2ljZSk7XG5cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgbGV0IGZlZWRiYWNrID0ge307XG5cbiAgICBpZiAoZW52Lm1vZGUgPT09ICdldmFsdWF0ZScpIHtcbiAgICAgIGNvbnN0IGFsbENvcnJlY3RSZXNwb25zZXMgPSBnZXRBbGxDb3JyZWN0UmVzcG9uc2VzKG5vcm1hbGl6ZWRRdWVzdGlvbik7XG4gICAgICBjb25zdCByZXNwQXJlYUxlbmd0aCA9IE9iamVjdC5rZXlzKGFsbENvcnJlY3RSZXNwb25zZXMpLmxlbmd0aDtcbiAgICAgIGxldCBjb3JyZWN0UmVzcG9uc2VzID0gMDtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwQXJlYUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlZHVjZShcbiAgICAgICAgICBhbGxDb3JyZWN0UmVzcG9uc2VzLFxuICAgICAgICAgIChvYmosIGNob2ljZXMsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW5zd2VyID0gKHZhbHVlICYmIHZhbHVlW2tleV0pIHx8ICcnO1xuICAgICAgICAgICAgY29uc3QgY29ycmVjdENob2ljZSA9IGNob2ljZXNbaV0gfHwgJyc7XG4gICAgICAgICAgICBjb25zdCBpc0NvcnJlY3QgPSBhbnN3ZXIgJiYgY29ycmVjdENob2ljZSAmJiBjb3JyZWN0Q2hvaWNlID09PSBhbnN3ZXI7XG5cbiAgICAgICAgICAgIG9iai5mZWVkYmFja1trZXldID0gZ2V0RmVlZGJhY2soaXNDb3JyZWN0KTtcblxuICAgICAgICAgICAgaWYgKGlzQ29ycmVjdCkge1xuICAgICAgICAgICAgICBvYmouY29ycmVjdFJlc3BvbnNlcyArPSAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBjb3JyZWN0UmVzcG9uc2VzOiAwLCBmZWVkYmFjazoge30gfSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocmVzdWx0LmNvcnJlY3RSZXNwb25zZXMgPj0gY29ycmVjdFJlc3BvbnNlcykge1xuICAgICAgICAgIGNvcnJlY3RSZXNwb25zZXMgPSByZXN1bHQuY29ycmVjdFJlc3BvbnNlcztcbiAgICAgICAgICBmZWVkYmFjayA9IHJlc3VsdC5mZWVkYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQuY29ycmVjdFJlc3BvbnNlcyA9PT0gcmVzcEFyZWFMZW5ndGgpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2tDaG9pY2VPcmRlciA9IGxvY2tDaG9pY2VzKG5vcm1hbGl6ZWRRdWVzdGlvbiwgc2Vzc2lvbiwgZW52KTtcblxuICAgIGlmICghbG9ja0Nob2ljZU9yZGVyKSB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY2hvaWNlcyk7XG4gICAgICBsZXQgaTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcblxuICAgICAgICBjaG9pY2VzW2tleV0gPSBhd2FpdCBnZXRTaHVmZmxlZENob2ljZXMoY2hvaWNlc1trZXldLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCAndmFsdWUnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGVhY2hlckluc3RydWN0aW9ucyA9IG51bGw7XG4gICAgbGV0IHJhdGlvbmFsZSA9IG51bGw7XG5cbiAgICBjb25zdCBjaG9pY2VzV2lsbE51bGxSYXRpb25hbGVzID0gKE9iamVjdC5rZXlzKGNob2ljZXMpIHx8IFtdKS5yZWR1Y2UoKGFjYywgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICBhY2NbY3VycmVudFZhbHVlXSA9IChjaG9pY2VzW2N1cnJlbnRWYWx1ZV0gfHwgW10pLm1hcCgoY2hvaWNlKSA9PiAoe1xuICAgICAgICAuLi5jaG9pY2UsXG4gICAgICAgIHJhdGlvbmFsZTogbnVsbCxcbiAgICAgIH0pKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG5cbiAgICBpZiAoZW52LnJvbGUgPT09ICdpbnN0cnVjdG9yJyAmJiAoZW52Lm1vZGUgPT09ICd2aWV3JyB8fCBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJykpIHtcbiAgICAgIHJhdGlvbmFsZSA9IG5vcm1hbGl6ZWRRdWVzdGlvbi5yYXRpb25hbGVFbmFibGVkID8gbm9ybWFsaXplZFF1ZXN0aW9uLnJhdGlvbmFsZSA6IG51bGw7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkXG4gICAgICAgID8gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNcbiAgICAgICAgOiBudWxsO1xuXG4gICAgICBjaG9pY2VzID0gbm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZVJhdGlvbmFsZUVuYWJsZWQgPyBub3JtYWxpemVkUXVlc3Rpb24uY2hvaWNlcyA6IGNob2ljZXNXaWxsTnVsbFJhdGlvbmFsZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhdGlvbmFsZSA9IG51bGw7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbnVsbDtcbiAgICAgIGNob2ljZXMgPSBjaG9pY2VzV2lsbE51bGxSYXRpb25hbGVzO1xuICAgIH1cblxuICAgIGNvbnN0IG91dCA9IHtcbiAgICAgIGRpc2FibGVkOiBlbnYubW9kZSAhPT0gJ2dhdGhlcicsXG4gICAgICBtb2RlOiBlbnYubW9kZSxcbiAgICAgIHByb21wdDogbm9ybWFsaXplZFF1ZXN0aW9uLnByb21wdEVuYWJsZWQgPyBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0IDogbnVsbCxcbiAgICAgIGRpc3BsYXlUeXBlOiBub3JtYWxpemVkUXVlc3Rpb24uZGlzcGxheVR5cGUsXG4gICAgICBtYXJrdXA6IG5vcm1hbGl6ZWRRdWVzdGlvbi5tYXJrdXAsXG4gICAgICBjaG9pY2VzLFxuICAgICAgZmVlZGJhY2ssXG5cbiAgICAgIHJlc3BvbnNlQ29ycmVjdDogZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgPyBnZXRTY29yZShub3JtYWxpemVkUXVlc3Rpb24sIHNlc3Npb24pID09PSAxIDogdW5kZWZpbmVkLFxuICAgICAgcmF0aW9uYWxlLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyxcbiAgICB9O1xuXG4gICAgcmVzb2x2ZShvdXQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNjb3JlID0gKGNvbmZpZywgc2Vzc2lvbikgPT4ge1xuICBjb25zdCB7IHZhbHVlID0ge30gfSA9IHNlc3Npb24gfHwge307XG4gIGNvbnN0IG1heFNjb3JlID0gY29uZmlnICYmIGNvbmZpZy5jaG9pY2VzID8gT2JqZWN0LmtleXMoY29uZmlnLmNob2ljZXMpLmxlbmd0aCA6IDA7XG4gIGNvbnN0IGFsbENvcnJlY3RSZXNwb25zZXMgPSBnZXRBbGxDb3JyZWN0UmVzcG9uc2VzKGNvbmZpZyk7XG4gIGxldCBjb3JyZWN0Q291bnQgPSAwO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4U2NvcmU7IGkrKykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHJlZHVjZShcbiAgICAgIGFsbENvcnJlY3RSZXNwb25zZXMsXG4gICAgICAodG90YWwsIGNob2ljZXMsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBhbnN3ZXIgPSAodmFsdWUgJiYgdmFsdWVba2V5XSkgfHwgJyc7XG4gICAgICAgIGNvbnN0IGNvcnJlY3RDaG9pY2UgPSBjaG9pY2VzW2ldIHx8ICcnO1xuXG4gICAgICAgIGlmIChjb3JyZWN0Q2hvaWNlICYmIGFuc3dlciAmJiBjb3JyZWN0Q2hvaWNlID09PSBhbnN3ZXIpIHtcbiAgICAgICAgICByZXR1cm4gdG90YWw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG90YWwgLSAxO1xuICAgICAgfSxcbiAgICAgIG1heFNjb3JlLFxuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID4gY29ycmVjdENvdW50KSB7XG4gICAgICBjb3JyZWN0Q291bnQgPSByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdCA9PT0gbWF4U2NvcmUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0ciA9IChjb3JyZWN0Q291bnQgLyBtYXhTY29yZSkudG9GaXhlZCgyKTtcblxuICByZXR1cm4gcGFyc2VGbG9hdChzdHIpO1xufTtcblxuLyoqXG4gKlxuICogVGhlIHNjb3JlIGlzIHBhcnRpYWwgYnkgZGVmYXVsdCBmb3IgY2hlY2tib3ggbW9kZSwgYWxsT3JOb3RoaW5nIGZvciByYWRpbyBtb2RlLlxuICogVG8gZGlzYWJsZSBwYXJ0aWFsIHNjb3JpbmcgZm9yIGNoZWNrYm94IG1vZGUgeW91IGVpdGhlciBzZXQgbW9kZWwucGFydGlhbFNjb3JpbmcgPSBmYWxzZSBvciBlbnYucGFydGlhbFNjb3JpbmcgPVxuICogZmFsc2UuIHRoZSB2YWx1ZSBpbiBgZW52YCB3aWxsIG92ZXJyaWRlIHRoZSB2YWx1ZSBpbiBgbW9kZWxgLlxuICogQHBhcmFtIHtPYmplY3R9IG1vZGVsIC0gdGhlIG1haW4gbW9kZWxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbW9kZWwucGFydGlhbFNjb3JpbmcgLSBpcyBwYXJ0aWFsIHNjb3JpbmcgZW5hYmxlZCAoaWYgdW5kZWZpbmVkIHNldCB0byB0byB0cnVlKVxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZW52XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGVudi5wYXJ0aWFsU2NvcmluZyAtIGlzIHBhcnRpYWwgc2NvcmluZyBlbmFibGVkIChpZiB1bmRlZmluZWQgZGVmYXVsdCB0byB0cnVlKSBUaGlzIG92ZXJyaWRlc1xuICogICBgbW9kZWwucGFydGlhbFNjb3JpbmdgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3V0Y29tZShtb2RlbCwgc2Vzc2lvbiwgZW52ID0ge30pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uIHx8IGlzRW1wdHkoc2Vzc2lvbikpIHtcbiAgICAgIHJlc29sdmUoeyBzY29yZTogMCwgZW1wdHk6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFydGlhbFNjb3JpbmdFbmFibGVkID0gcGFydGlhbFNjb3JpbmcuZW5hYmxlZChtb2RlbCwgZW52KTtcbiAgICBjb25zdCBzY29yZSA9IGdldFNjb3JlKG1vZGVsLCBzZXNzaW9uKTtcblxuICAgIHJlc29sdmUoe1xuICAgICAgc2NvcmU6IHBhcnRpYWxTY29yaW5nRW5hYmxlZCA/IHNjb3JlIDogTWF0aC5mbG9vcihzY29yZSksXG4gICAgICBlbXB0eTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiA9IChxdWVzdGlvbiwgZW52KSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmIChlbnYubW9kZSAhPT0gJ2V2YWx1YXRlJyAmJiBlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InKSB7XG4gICAgICBjb25zdCB7IGNob2ljZXMgfSA9IHF1ZXN0aW9uO1xuICAgICAgY29uc3QgdmFsdWUgPSB7fTtcblxuICAgICAgaWYgKGNob2ljZXMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY2hvaWNlcykuZm9yRWFjaCgoa2V5LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29ycmVjdENob2ljZXMgPSBjaG9pY2VzW2tleV0gJiYgY2hvaWNlc1trZXldLmZpbHRlcigoYykgPT4gYy5jb3JyZWN0KTtcblxuICAgICAgICAgIHZhbHVlW2ldID0gY29ycmVjdENob2ljZXMgJiYgY29ycmVjdENob2ljZXNbMF0udmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgdmFsdWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICB9XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlID0gKG1vZGVsID0ge30sIGNvbmZpZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgbWFya3VwLCBjaG9pY2VzIH0gPSBtb2RlbDtcbiAgY29uc3QgeyBtYXhSZXNwb25zZUFyZWFzLCBtYXhSZXNwb25zZUFyZWFDaG9pY2VzIH0gPSBjb25maWc7XG4gIGNvbnN0IGVycm9ycyA9IHt9O1xuXG4gIGNvbnN0IG5iT2ZSZXNwb25zZUFyZWFzID0gKChtYXJrdXAgfHwgJycpLm1hdGNoKC9cXHtcXHsoXFxkKylcXH1cXH0vZykgfHwgW10pLmxlbmd0aDtcblxuICBpZiAobmJPZlJlc3BvbnNlQXJlYXMgPiBtYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgZXJyb3JzLnJlc3BvbnNlQXJlYXNFcnJvciA9IGBObyBtb3JlIHRoYW4gJHttYXhSZXNwb25zZUFyZWFzfSByZXNwb25zZSBhcmVhcyBzaG91bGQgYmUgZGVmaW5lZC5gO1xuICB9IGVsc2UgaWYgKG5iT2ZSZXNwb25zZUFyZWFzIDwgMSkge1xuICAgIGVycm9ycy5yZXNwb25zZUFyZWFzRXJyb3IgPSAnVGhlcmUgc2hvdWxkIGJlIGRlZmluZWQgYXQgbGVhc3QgMSByZXNwb25zZSBhcmVhLic7XG4gIH1cblxuICAoT2JqZWN0LmtleXMoY2hvaWNlcykgfHwgW10pLmZvckVhY2goKGNob2ljZUtleSkgPT4ge1xuICAgIGlmIChjaG9pY2VzW2Nob2ljZUtleV0gJiYgY2hvaWNlc1tjaG9pY2VLZXldLmxlbmd0aCA+IG1heFJlc3BvbnNlQXJlYUNob2ljZXMpIHtcbiAgICAgIGVycm9ycy5yZXNwb25zZUFyZWFDaG9pY2VzRXJyb3IgPSBgTm8gbW9yZSB0aGFuICR7bWF4UmVzcG9uc2VBcmVhQ2hvaWNlc30gY2hvaWNlcyBwZXIgcmVzcG9uc2UgYXJlYSBzaG91bGQgYmUgZGVmaW5lZC5gO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVycm9ycztcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFpRCxTQUFBSyxRQUFBQyxNQUFBLEVBQUFDLGNBQUEsUUFBQUMsSUFBQSxHQUFBQyxNQUFBLENBQUFELElBQUEsQ0FBQUYsTUFBQSxPQUFBRyxNQUFBLENBQUFDLHFCQUFBLFFBQUFDLE9BQUEsR0FBQUYsTUFBQSxDQUFBQyxxQkFBQSxDQUFBSixNQUFBLEdBQUFDLGNBQUEsS0FBQUksT0FBQSxHQUFBQSxPQUFBLENBQUFDLE1BQUEsV0FBQUMsR0FBQSxXQUFBSixNQUFBLENBQUFLLHdCQUFBLENBQUFSLE1BQUEsRUFBQU8sR0FBQSxFQUFBRSxVQUFBLE9BQUFQLElBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULElBQUEsRUFBQUcsT0FBQSxZQUFBSCxJQUFBO0FBQUEsU0FBQVUsY0FBQUMsTUFBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFGLENBQUEsVUFBQUcsTUFBQSxXQUFBRixTQUFBLENBQUFELENBQUEs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
|
package/controller/lib/utils.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.getAllCorrectResponses = void 0;
|
|
9
|
-
|
|
10
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
9
|
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
13
|
-
|
|
14
10
|
var getAllCorrectResponses = function getAllCorrectResponses(_ref) {
|
|
15
11
|
var choices = _ref.choices,
|
|
16
|
-
|
|
12
|
+
alternateResponse = _ref.alternateResponse;
|
|
17
13
|
alternateResponse = alternateResponse || {};
|
|
18
14
|
var correctAnswers = {};
|
|
19
15
|
(0, _forEach["default"])(choices, function (respArea, key) {
|
|
20
16
|
if (!correctAnswers[key]) {
|
|
21
17
|
correctAnswers[key] = [];
|
|
22
18
|
}
|
|
23
|
-
|
|
24
19
|
if (respArea) {
|
|
25
20
|
respArea.forEach(function (choice) {
|
|
26
21
|
if (choice.correct) {
|
|
27
22
|
correctAnswers[key].push(choice.value);
|
|
28
|
-
|
|
29
23
|
if (alternateResponse[key]) {
|
|
30
24
|
correctAnswers[key] = [].concat((0, _toConsumableArray2["default"])(correctAnswers[key]), (0, _toConsumableArray2["default"])(alternateResponse[key]));
|
|
31
25
|
}
|
|
@@ -35,6 +29,5 @@ var getAllCorrectResponses = function getAllCorrectResponses(_ref) {
|
|
|
35
29
|
});
|
|
36
30
|
return correctAnswers;
|
|
37
31
|
};
|
|
38
|
-
|
|
39
32
|
exports.getAllCorrectResponses = getAllCorrectResponses;
|
|
40
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZm9yRWFjaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZ2V0QWxsQ29ycmVjdFJlc3BvbnNlcyIsIl9yZWYiLCJjaG9pY2VzIiwiYWx0ZXJuYXRlUmVzcG9uc2UiLCJjb3JyZWN0QW5zd2VycyIsImZvckVhY2giLCJyZXNwQXJlYSIsImtleSIsImNob2ljZSIsImNvcnJlY3QiLCJwdXNoIiwidmFsdWUiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZm9yRWFjaCBmcm9tICdsb2Rhc2gvZm9yRWFjaCc7XG5cbmV4cG9ydCBjb25zdCBnZXRBbGxDb3JyZWN0UmVzcG9uc2VzID0gKHsgY2hvaWNlcywgYWx0ZXJuYXRlUmVzcG9uc2UgfSkgPT4ge1xuICBhbHRlcm5hdGVSZXNwb25zZSA9IGFsdGVybmF0ZVJlc3BvbnNlIHx8IHt9O1xuICBjb25zdCBjb3JyZWN0QW5zd2VycyA9IHt9O1xuXG4gIGZvckVhY2goY2hvaWNlcywgKHJlc3BBcmVhLCBrZXkpID0+IHtcbiAgICBpZiAoIWNvcnJlY3RBbnN3ZXJzW2tleV0pIHtcbiAgICAgIGNvcnJlY3RBbnN3ZXJzW2tleV0gPSBbXTtcbiAgICB9XG5cbiAgICBpZiAocmVzcEFyZWEpIHtcbiAgICAgIHJlc3BBcmVhLmZvckVhY2goKGNob2ljZSkgPT4ge1xuICAgICAgICBpZiAoY2hvaWNlLmNvcnJlY3QpIHtcbiAgICAgICAgICBjb3JyZWN0QW5zd2Vyc1trZXldLnB1c2goY2hvaWNlLnZhbHVlKTtcblxuICAgICAgICAgIGlmIChhbHRlcm5hdGVSZXNwb25zZVtrZXldKSB7XG4gICAgICAgICAgICBjb3JyZWN0QW5zd2Vyc1trZXldID0gWy4uLmNvcnJlY3RBbnN3ZXJzW2tleV0sIC4uLmFsdGVybmF0ZVJlc3BvbnNlW2tleV1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY29ycmVjdEFuc3dlcnM7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVPLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUFDLElBQUEsRUFBdUM7RUFBQSxJQUFqQ0MsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFBRUMsaUJBQWlCLEdBQUFGLElBQUEsQ0FBakJFLGlCQUFpQjtFQUNqRUEsaUJBQWlCLEdBQUdBLGlCQUFpQixJQUFJLENBQUMsQ0FBQztFQUMzQyxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0VBRXpCLElBQUFDLG1CQUFPLEVBQUNILE9BQU8sRUFBRSxVQUFDSSxRQUFRLEVBQUVDLEdBQUcsRUFBSztJQUNsQyxJQUFJLENBQUNILGNBQWMsQ0FBQ0csR0FBRyxDQUFDLEVBQUU7TUFDeEJILGNBQWMsQ0FBQ0csR0FBRyxDQUFDLEdBQUcsRUFBRTtJQUMxQjtJQUVBLElBQUlELFFBQVEsRUFBRTtNQUNaQSxRQUFRLENBQUNELE9BQU8sQ0FBQyxVQUFDRyxNQUFNLEVBQUs7UUFDM0IsSUFBSUEsTUFBTSxDQUFDQyxPQUFPLEVBQUU7VUFDbEJMLGNBQWMsQ0FBQ0csR0FBRyxDQUFDLENBQUNHLElBQUksQ0FBQ0YsTUFBTSxDQUFDRyxLQUFLLENBQUM7VUFFdEMsSUFBSVIsaUJBQWlCLENBQUNJLEdBQUcsQ0FBQyxFQUFFO1lBQzFCSCxjQUFjLENBQUNHLEdBQUcsQ0FBQyxNQUFBSyxNQUFBLEtBQUFDLG1CQUFBLGFBQU9ULGNBQWMsQ0FBQ0csR0FBRyxDQUFDLE9BQUFNLG1CQUFBLGFBQUtWLGlCQUFpQixDQUFDSSxHQUFHLENBQUMsRUFBQztVQUMzRTtRQUNGO01BQ0YsQ0FBQyxDQUFDO0lBQ0o7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPSCxjQUFjO0FBQ3ZCLENBQUM7QUFBQ1UsT0FBQSxDQUFBZCxzQkFBQSxHQUFBQSxzQkFBQSJ9
|