@pie-element/multiple-choice 7.6.1-beta.1 → 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.
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- describe('utils', function () {
4
- xit('todo', function () {
5
- expect(true).toEqual(false);
6
- });
7
- });
8
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInhpdCIsImV4cGVjdCIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7O0FBQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN0QkMsRUFBQUEsR0FBRyxDQUFDLE1BQUQsRUFBUyxZQUFNO0FBQ2hCQyxJQUFBQSxNQUFNLENBQUMsSUFBRCxDQUFOLENBQWFDLE9BQWIsQ0FBcUIsS0FBckI7QUFDRCxHQUZFLENBQUg7QUFHRCxDQUpPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJkZXNjcmliZSgndXRpbHMnLCAoKSA9PiB7XG4gIHhpdCgndG9kbycsICgpID0+IHtcbiAgICBleHBlY3QodHJ1ZSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- var _default = {
8
- promptEnabled: true,
9
- rationaleEnabled: true,
10
- accessibilityLabelsEnabled: false,
11
- teacherInstructionsEnabled: true,
12
- studentInstructionsEnabled: true,
13
- choicePrefix: 'letters',
14
- choicesLayout: 'vertical',
15
- gridColumns: '2'
16
- };
17
- exports["default"] = _default;
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJuYW1lcyI6WyJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsImFjY2Vzc2liaWxpdHlMYWJlbHNFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsImNob2ljZVByZWZpeCIsImNob2ljZXNMYXlvdXQiLCJncmlkQ29sdW1ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQWU7QUFDYkEsRUFBQUEsYUFBYSxFQUFFLElBREY7QUFFYkMsRUFBQUEsZ0JBQWdCLEVBQUUsSUFGTDtBQUdiQyxFQUFBQSwwQkFBMEIsRUFBRSxLQUhmO0FBSWJDLEVBQUFBLDBCQUEwQixFQUFFLElBSmY7QUFLYkMsRUFBQUEsMEJBQTBCLEVBQUUsSUFMZjtBQU1iQyxFQUFBQSxZQUFZLEVBQUUsU0FORDtBQU9iQyxFQUFBQSxhQUFhLEVBQUUsVUFQRjtBQVFiQyxFQUFBQSxXQUFXLEVBQUU7QUFSQSxDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICBhY2Nlc3NpYmlsaXR5TGFiZWxzRW5hYmxlZDogZmFsc2UsXG4gIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICBzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgY2hvaWNlUHJlZml4OiAnbGV0dGVycycsXG4gIGNob2ljZXNMYXlvdXQ6ICd2ZXJ0aWNhbCcsXG4gIGdyaWRDb2x1bW5zOiAnMicsXG59O1xuIl19
@@ -1,305 +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.createCorrectResponseSession = void 0;
9
- exports.createDefaultModel = createDefaultModel;
10
- exports.getScore = void 0;
11
- exports.model = model;
12
- exports.normalize = void 0;
13
- exports.outcome = outcome;
14
- exports.validate = void 0;
15
-
16
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
-
18
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
-
20
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
21
-
22
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
27
-
28
- var _utils = require("./utils");
29
-
30
- var _defaults = _interopRequireDefault(require("./defaults"));
31
-
32
- var _controllerUtils = require("@pie-lib/controller-utils");
33
-
34
- var _excluded = ["verticalMode", "choicesLayout"];
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
- var prepareChoice = function prepareChoice(model, env, defaultFeedback) {
41
- return function (choice) {
42
- var _ref = env || {},
43
- role = _ref.role,
44
- mode = _ref.mode;
45
-
46
- var out = {
47
- label: choice.label,
48
- value: choice.value
49
- };
50
-
51
- if (model.accessibilityLabelsEnabled) {
52
- out.accessibility = (0, _utils.parseHTML)(choice.accessibility).textContent || choice.value;
53
- }
54
-
55
- if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
56
- out.rationale = model.rationaleEnabled ? choice.rationale : null;
57
- } else {
58
- out.rationale = null;
59
- }
60
-
61
- if (mode === 'evaluate') {
62
- out.correct = !!choice.correct;
63
-
64
- if (model.feedbackEnabled) {
65
- var feedbackType = choice.feedback && choice.feedback.type || 'none';
66
-
67
- if (feedbackType === 'default') {
68
- out.feedback = defaultFeedback[choice.correct ? 'correct' : 'incorrect'];
69
- } else if (feedbackType === 'custom') {
70
- out.feedback = choice.feedback.value;
71
- }
72
- }
73
- }
74
-
75
- return out;
76
- };
77
- };
78
-
79
- function createDefaultModel() {
80
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
81
- return new Promise(function (resolve) {
82
- return resolve(_objectSpread(_objectSpread({}, _defaults["default"]), model));
83
- });
84
- }
85
-
86
- var normalize = function normalize(question) {
87
- var _ref2 = question || {},
88
- verticalMode = _ref2.verticalMode,
89
- choicesLayout = _ref2.choicesLayout,
90
- questionProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
91
-
92
- return _objectSpread(_objectSpread(_objectSpread({}, _defaults["default"]), questionProps), {}, {
93
- // This is used for offering support for old models which have the property verticalMode
94
- // Same thing is set in authoring : packages/multiple-choice/configure/src/index.jsx - createDefaultModel
95
- choicesLayout: choicesLayout || verticalMode === false && 'horizontal' || _defaults["default"].choicesLayout
96
- });
97
- };
98
- /**
99
- *
100
- * @param {*} question
101
- * @param {*} session
102
- * @param {*} env
103
- * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.
104
- */
105
-
106
-
107
- exports.normalize = normalize;
108
-
109
- function model(_x, _x2, _x3, _x4) {
110
- return _model.apply(this, arguments);
111
- }
112
-
113
- function _model() {
114
- _model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(question, session, env, updateSession) {
115
- var normalizedQuestion, defaultFeedback, choices, lockChoiceOrder, out, _ref4, role, mode;
116
-
117
- return _regenerator["default"].wrap(function _callee$(_context) {
118
- while (1) {
119
- switch (_context.prev = _context.next) {
120
- case 0:
121
- normalizedQuestion = normalize(question);
122
- defaultFeedback = Object.assign({
123
- correct: 'Correct',
124
- incorrect: 'Incorrect'
125
- }, normalizedQuestion.defaultFeedback);
126
- choices = normalizedQuestion.choices.map(prepareChoice(normalizedQuestion, env, defaultFeedback));
127
- lockChoiceOrder = (0, _controllerUtils.lockChoices)(normalizedQuestion, session, env);
128
-
129
- if (lockChoiceOrder) {
130
- _context.next = 8;
131
- break;
132
- }
133
-
134
- _context.next = 7;
135
- return (0, _controllerUtils.getShuffledChoices)(choices, session, updateSession, 'value');
136
-
137
- case 7:
138
- choices = _context.sent;
139
-
140
- case 8:
141
- out = {
142
- disabled: env.mode !== 'gather',
143
- mode: env.mode,
144
- prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
145
- choicesLayout: normalizedQuestion.choicesLayout,
146
- gridColumns: normalizedQuestion.gridColumns,
147
- choiceMode: normalizedQuestion.choiceMode,
148
- keyMode: normalizedQuestion.choicePrefix,
149
- choices: choices,
150
- responseCorrect: env.mode === 'evaluate' ? (0, _utils.isResponseCorrect)(normalizedQuestion, session) : undefined
151
- };
152
- _ref4 = env || {}, role = _ref4.role, mode = _ref4.mode;
153
-
154
- if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
155
- out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
156
- } else {
157
- out.teacherInstructions = null;
158
- }
159
-
160
- return _context.abrupt("return", out);
161
-
162
- case 12:
163
- case "end":
164
- return _context.stop();
165
- }
166
- }
167
- }, _callee);
168
- }));
169
- return _model.apply(this, arguments);
170
- }
171
-
172
- var getScore = function getScore(config, session) {
173
- if (!session || (0, _isEmpty["default"])(session)) {
174
- return 0;
175
- }
176
-
177
- var selectedChoices = session.value || [];
178
- var correctChoices = (config.choices || []).filter(function (ch) {
179
- return ch.correct;
180
- });
181
- var score = selectedChoices.reduce(function (acc, selectedChoice) {
182
- return acc + (correctChoices.find(function (ch) {
183
- return ch.value === selectedChoice;
184
- }) ? 1 : 0);
185
- }, 0);
186
-
187
- if (correctChoices.length < selectedChoices.length) {
188
- score -= selectedChoices.length - correctChoices.length;
189
-
190
- if (score < 0) {
191
- score = 0;
192
- }
193
- }
194
-
195
- var str = correctChoices.length ? score / correctChoices.length : 0;
196
- return parseFloat(str.toFixed(2));
197
- };
198
- /**
199
- *
200
- * The score is partial by default for checkbox mode, allOrNothing for radio mode.
201
- * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring = false. the value in `env` will
202
- * override the value in `model`.
203
- * @param {Object} model - the main model
204
- * @param {*} session
205
- * @param {Object} env
206
- */
207
-
208
-
209
- exports.getScore = getScore;
210
-
211
- function outcome(model, session, env) {
212
- return new Promise(function (resolve) {
213
- if (!session || (0, _isEmpty["default"])(session)) {
214
- resolve({
215
- score: 0,
216
- empty: true
217
- });
218
- } else {
219
- var partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env) && model.choiceMode !== 'radio';
220
- var score = getScore(model, session);
221
- resolve({
222
- score: partialScoringEnabled ? score : score === 1 ? 1 : 0,
223
- empty: false
224
- });
225
- }
226
- });
227
- }
228
-
229
- var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
230
- return new Promise(function (resolve) {
231
- if (env.mode !== 'evaluate' && env.role === 'instructor') {
232
- var _ref3 = question || {
233
- choices: []
234
- },
235
- choices = _ref3.choices;
236
-
237
- resolve({
238
- id: '1',
239
- value: choices.filter(function (c) {
240
- return c.correct;
241
- }).map(function (c) {
242
- return c.value;
243
- })
244
- });
245
- } else {
246
- resolve(null);
247
- }
248
- });
249
- };
250
-
251
- exports.createCorrectResponseSession = createCorrectResponseSession;
252
-
253
- var validate = function validate() {
254
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
255
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
256
- var choices = model.choices;
257
- var _config$minAnswerChoi = config.minAnswerChoices,
258
- minAnswerChoices = _config$minAnswerChoi === void 0 ? 2 : _config$minAnswerChoi,
259
- maxAnswerChoices = config.maxAnswerChoices;
260
- var reversedChoices = (0, _toConsumableArray2["default"])(choices || []).reverse();
261
- var choicesErrors = {};
262
- var hasCorrectResponse = false;
263
- reversedChoices.forEach(function (choice, index) {
264
- var correct = choice.correct,
265
- value = choice.value,
266
- label = choice.label;
267
-
268
- if (correct) {
269
- hasCorrectResponse = true;
270
- }
271
-
272
- if (label === '' || label === '<div></div>') {
273
- choicesErrors[value] = 'Content should not be empty.';
274
- } else {
275
- var identicalAnswer = reversedChoices.slice(index + 1).some(function (c) {
276
- return c.label === label;
277
- });
278
-
279
- if (identicalAnswer) {
280
- choicesErrors[value] = 'Content should be unique.';
281
- }
282
- }
283
- });
284
- var errors = {};
285
- var nbOfChoices = (choices || []).length;
286
-
287
- if (nbOfChoices < minAnswerChoices) {
288
- errors.answerChoicesError = "There should be at least ".concat(minAnswerChoices, " choices defined.");
289
- } else if (nbOfChoices > maxAnswerChoices) {
290
- errors.answerChoicesError = "No more than ".concat(maxAnswerChoices, " choices should be defined.");
291
- }
292
-
293
- if (!hasCorrectResponse) {
294
- errors.correctResponseError = 'No correct response defined.';
295
- }
296
-
297
- if (!(0, _isEmpty["default"])(choicesErrors)) {
298
- errors.choicesErrors = choicesErrors;
299
- }
300
-
301
- return errors;
302
- };
303
-
304
- exports.validate = validate;
305
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJwcmVwYXJlQ2hvaWNlIiwibW9kZWwiLCJlbnYiLCJkZWZhdWx0RmVlZGJhY2siLCJjaG9pY2UiLCJyb2xlIiwibW9kZSIsIm91dCIsImxhYmVsIiwidmFsdWUiLCJhY2Nlc3NpYmlsaXR5TGFiZWxzRW5hYmxlZCIsImFjY2Vzc2liaWxpdHkiLCJ0ZXh0Q29udGVudCIsInJhdGlvbmFsZSIsInJhdGlvbmFsZUVuYWJsZWQiLCJjb3JyZWN0IiwiZmVlZGJhY2tFbmFibGVkIiwiZmVlZGJhY2tUeXBlIiwiZmVlZGJhY2siLCJ0eXBlIiwiY3JlYXRlRGVmYXVsdE1vZGVsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkZWZhdWx0cyIsIm5vcm1hbGl6ZSIsInF1ZXN0aW9uIiwidmVydGljYWxNb2RlIiwiY2hvaWNlc0xheW91dCIsInF1ZXN0aW9uUHJvcHMiLCJzZXNzaW9uIiwidXBkYXRlU2Vzc2lvbiIsIm5vcm1hbGl6ZWRRdWVzdGlvbiIsIk9iamVjdCIsImFzc2lnbiIsImluY29ycmVjdCIsImNob2ljZXMiLCJtYXAiLCJsb2NrQ2hvaWNlT3JkZXIiLCJkaXNhYmxlZCIsInByb21wdCIsInByb21wdEVuYWJsZWQiLCJncmlkQ29sdW1ucyIsImNob2ljZU1vZGUiLCJrZXlNb2RlIiwiY2hvaWNlUHJlZml4IiwicmVzcG9uc2VDb3JyZWN0IiwidW5kZWZpbmVkIiwidGVhY2hlckluc3RydWN0aW9ucyIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwiZ2V0U2NvcmUiLCJjb25maWciLCJzZWxlY3RlZENob2ljZXMiLCJjb3JyZWN0Q2hvaWNlcyIsImZpbHRlciIsImNoIiwic2NvcmUiLCJyZWR1Y2UiLCJhY2MiLCJzZWxlY3RlZENob2ljZSIsImZpbmQiLCJsZW5ndGgiLCJzdHIiLCJwYXJzZUZsb2F0IiwidG9GaXhlZCIsIm91dGNvbWUiLCJlbXB0eSIsInBhcnRpYWxTY29yaW5nRW5hYmxlZCIsInBhcnRpYWxTY29yaW5nIiwiZW5hYmxlZCIsImNyZWF0ZUNvcnJlY3RSZXNwb25zZVNlc3Npb24iLCJpZCIsImMiLCJ2YWxpZGF0ZSIsIm1pbkFuc3dlckNob2ljZXMiLCJtYXhBbnN3ZXJDaG9pY2VzIiwicmV2ZXJzZWRDaG9pY2VzIiwicmV2ZXJzZSIsImNob2ljZXNFcnJvcnMiLCJoYXNDb3JyZWN0UmVzcG9uc2UiLCJmb3JFYWNoIiwiaW5kZXgiLCJpZGVudGljYWxBbnN3ZXIiLCJzbGljZSIsInNvbWUiLCJlcnJvcnMiLCJuYk9mQ2hvaWNlcyIsImFuc3dlckNob2ljZXNFcnJvciIsImNvcnJlY3RSZXNwb25zZUVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBTUEsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxLQUFELEVBQVFDLEdBQVIsRUFBYUMsZUFBYjtBQUFBLFNBQWlDLFVBQUNDLE1BQUQsRUFBWTtBQUNqRSxlQUF1QkYsR0FBRyxJQUFJLEVBQTlCO0FBQUEsUUFBUUcsSUFBUixRQUFRQSxJQUFSO0FBQUEsUUFBY0MsSUFBZCxRQUFjQSxJQUFkOztBQUNBLFFBQU1DLEdBQUcsR0FBRztBQUNWQyxNQUFBQSxLQUFLLEVBQUVKLE1BQU0sQ0FBQ0ksS0FESjtBQUVWQyxNQUFBQSxLQUFLLEVBQUVMLE1BQU0sQ0FBQ0s7QUFGSixLQUFaOztBQUtBLFFBQUlSLEtBQUssQ0FBQ1MsMEJBQVYsRUFBc0M7QUFDcENILE1BQUFBLEdBQUcsQ0FBQ0ksYUFBSixHQUFvQixzQkFBVVAsTUFBTSxDQUFDTyxhQUFqQixFQUFnQ0MsV0FBaEMsSUFBK0NSLE1BQU0sQ0FBQ0ssS0FBMUU7QUFDRDs7QUFFRCxRQUFJSixJQUFJLEtBQUssWUFBVCxLQUEwQkMsSUFBSSxLQUFLLE1BQVQsSUFBbUJBLElBQUksS0FBSyxVQUF0RCxDQUFKLEVBQXVFO0FBQ3JFQyxNQUFBQSxHQUFHLENBQUNNLFNBQUosR0FBZ0JaLEtB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SyxFQUFWLElBQWdCQSxLQUFLLEtBQUssYUFBOUIsRUFBNkM7QUFDM0NxRSxNQUFBQSxhQUFhLENBQUNwRSxLQUFELENBQWIsR0FBdUIsOEJBQXZCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBTXdFLGVBQWUsR0FBR04sZUFBZSxDQUFDTyxLQUFoQixDQUFzQkYsS0FBSyxHQUFHLENBQTlCLEVBQWlDRyxJQUFqQyxDQUFzQyxVQUFDWixDQUFEO0FBQUEsZUFBT0EsQ0FBQyxDQUFDL0QsS0FBRixLQUFZQSxLQUFuQjtBQUFBLE9BQXRDLENBQXhCOztBQUVBLFVBQUl5RSxlQUFKLEVBQXFCO0FBQ25CSixRQUFBQSxhQUFhLENBQUNwRSxLQUFELENBQWIsR0FBdUIsMkJBQXZCO0FBQ0Q7QUFDRjtBQUNGLEdBaEJEO0FBa0JBLE1BQU0yRSxNQUFNLEdBQUcsRUFBZjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxDQUFDbEQsT0FBTyxJQUFJLEVBQVosRUFBZ0J5QixNQUFwQzs7QUFFQSxNQUFJeUIsV0FBVyxHQUFHWixnQkFBbEIsRUFBb0M7QUFDbENXLElBQUFBLE1BQU0sQ0FBQ0Usa0JBQVAsc0NBQXdEYixnQkFBeEQ7QUFDRCxHQUZELE1BRU8sSUFBSVksV0FBVyxHQUFHWCxnQkFBbEIsRUFBb0M7QUFDekNVLElBQUFBLE1BQU0sQ0FBQ0Usa0JBQVAsMEJBQTRDWixnQkFBNUM7QUFDRDs7QUFFRCxNQUFJLENBQUNJLGtCQUFMLEVBQXlCO0FBQ3ZCTSxJQUFBQSxNQUFNLENBQUNHLG9CQUFQLEdBQThCLDhCQUE5QjtBQUNEOztBQUVELE1BQUksQ0FBQyx5QkFBUVYsYUFBUixDQUFMLEVBQTZCO0FBQzNCTyxJQUFBQSxNQUFNLENBQUNQLGFBQVAsR0FBdUJBLGFBQXZCO0FBQ0Q7O0FBRUQsU0FBT08sTUFBUDtBQUNELENBM0NNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IHsgaXNSZXNwb25zZUNvcnJlY3QsIHBhcnNlSFRNTCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuaW1wb3J0IHsgbG9ja0Nob2ljZXMsIHBhcnRpYWxTY29yaW5nLCBnZXRTaHVmZmxlZENob2ljZXMgfSBmcm9tICdAcGllLWxpYi9jb250cm9sbGVyLXV0aWxzJztcblxuY29uc3QgcHJlcGFyZUNob2ljZSA9IChtb2RlbCwgZW52LCBkZWZhdWx0RmVlZGJhY2spID0+IChjaG9pY2UpID0+IHtcbiAgY29uc3QgeyByb2xlLCBtb2RlIH0gPSBlbnYgfHwge307XG4gIGNvbnN0IG91dCA9IHtcbiAgICBsYWJlbDogY2hvaWNlLmxhYmVsLFxuICAgIHZhbHVlOiBjaG9pY2UudmFsdWUsXG4gIH07XG5cbiAgaWYgKG1vZGVsLmFjY2Vzc2liaWxpdHlMYWJlbHNFbmFibGVkKSB7XG4gICAgb3V0LmFjY2Vzc2liaWxpdHkgPSBwYXJzZUhUTUwoY2hvaWNlLmFjY2Vzc2liaWxpdHkpLnRleHRDb250ZW50IHx8IGNob2ljZS52YWx1ZTtcbiAgfVxuXG4gIGlmIChyb2xlID09PSAnaW5zdHJ1Y3RvcicgJiYgKG1vZGUgPT09ICd2aWV3JyB8fCBtb2RlID09PSAnZXZhbHVhdGUnKSkge1xuICAgIG91dC5yYXRpb25hbGUgPSBtb2RlbC5yYXRpb25hbGVFbmFibGVkID8gY2hvaWNlLnJhdGlvbmFsZSA6IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgb3V0LnJhdGlvbmFsZSA9IG51bGw7XG4gIH1cblxuICBpZiAobW9kZSA9PT0gJ2V2YWx1YXRlJykge1xuICAgIG91dC5jb3JyZWN0ID0gISFjaG9pY2UuY29ycmVjdDtcblxuICAgIGlmIChtb2RlbC5mZWVkYmFja0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZlZWRiYWNrVHlwZSA9IChjaG9pY2UuZmVlZGJhY2sgJiYgY2hvaWNlLmZlZWRiYWNrLnR5cGUpIHx8ICdub25lJztcblxuICAgICAgaWYgKGZlZWRiYWNrVHlwZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIG91dC5mZWVkYmFjayA9IGRlZmF1bHRGZWVkYmFja1tjaG9pY2UuY29ycmVjdCA/ICdjb3JyZWN0JyA6ICdpbmNvcnJlY3QnXTtcbiAgICAgIH0gZWxzZSBpZiAoZmVlZGJhY2tUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICBvdXQuZmVlZGJhY2sgPSBjaG9pY2UuZmVlZGJhY2sudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0TW9kZWwobW9kZWwgPSB7fSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHJlc29sdmUoeyAuLi5kZWZhdWx0cywgLi4ubW9kZWwgfSkpO1xufVxuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHF1ZXN0aW9uKSA9PiB7XG4gIGNvbnN0IHsgdmVydGljYWxNb2RlLCBjaG9pY2VzTGF5b3V0LCAuLi5xdWVzdGlvblByb3BzIH0gPSBxdWVzdGlvbiB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlZmF1bHRzLFxuICAgIC4uLnF1ZXN0aW9uUHJvcHMsXG4gICAgLy8gVGhpcyBpcyB1c2VkIGZvciBvZmZlcmluZyBzdXBwb3J0IGZvciBvbGQgbW9kZWxzIHdoaWNoIGhhdmUgdGhlIHByb3BlcnR5IHZlcnRpY2FsTW9kZVxuICAgIC8vIFNhbWUgdGhpbmcgaXMgc2V0IGluIGF1dGhvcmluZyA6IHBhY2thZ2VzL211bHRpcGxlLWNob2ljZS9jb25maWd1cmUvc3JjL2luZGV4LmpzeCAtIGNyZWF0ZURlZmF1bHRNb2RlbFxuICAgIGNob2ljZXNMYXlvdXQ6IGNob2ljZXNMYXlvdXQgfHwgKHZlcnRpY2FsTW9kZSA9PT0gZmFsc2UgJiYgJ2hvcml6b250YWwnKSB8fCBkZWZhdWx0cy5jaG9pY2VzTGF5b3V0LFxuICB9O1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBxdWVzdGlvblxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0geyp9IGVudlxuICogQHBhcmFtIHsqfSB1cGRhdGVTZXNzaW9uIC0gb3B0aW9uYWwgLSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBzZXQgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGludG8gaXQgb24gdGhlIHNlc3Npb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtb2RlbChxdWVzdGlvbiwgc2Vzc2lvbiwgZW52LCB1cGRhdGVTZXNzaW9uKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRRdWVzdGlvbiA9IG5vcm1hbGl6ZShxdWVzdGlvbik7XG5cbiAgY29uc3QgZGVmYXVsdEZlZWRiYWNrID0gT2JqZWN0LmFzc2lnbihcbiAgICB7IGNvcnJlY3Q6ICdDb3JyZWN0JywgaW5jb3JyZWN0OiAnSW5jb3JyZWN0JyB9LFxuICAgIG5vcm1hbGl6ZWRRdWVzdGlvbi5kZWZhdWx0RmVlZGJhY2ssXG4gICk7XG5cbiAgbGV0IGNob2ljZXMgPSBub3JtYWxpemVkUXVlc3Rpb24uY2hvaWNlcy5tYXAocHJlcGFyZUNob2ljZShub3JtYWxpemVkUXVlc3Rpb24sIGVudiwgZGVmYXVsdEZlZWRiYWNrKSk7XG5cbiAgY29uc3QgbG9ja0Nob2ljZU9yZGVyID0gbG9ja0Nob2ljZXMobm9ybWFsaXplZFF1ZXN0aW9uLCBzZXNzaW9uLCBlbnYpO1xuXG4gIGlmICghbG9ja0Nob2ljZU9yZGVyKSB7XG4gICAgY2hvaWNlcyA9IGF3YWl0IGdldFNodWZmbGVkQ2hvaWNlcyhjaG9pY2VzLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCAndmFsdWUnKTtcbiAgfVxuXG4gIGNvbnN0IG91dCA9IHtcbiAgICBkaXNhYmxlZDogZW52Lm1vZGUgIT09ICdnYXRoZXInLFxuICAgIG1vZGU6IGVudi5tb2RlLFxuICAgIHByb21wdDogbm9ybWFsaXplZFF1ZXN0aW9uLnByb21wdEVuYWJsZWQgPyBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0IDogbnVsbCxcbiAgICBjaG9pY2VzTGF5b3V0OiBub3JtYWxpemVkUXVlc3Rpb24uY2hvaWNlc0xheW91dCxcbiAgICBncmlkQ29sdW1uczogbm9ybWFsaXplZFF1ZXN0aW9uLmdyaWRDb2x1bW5zLFxuICAgIGNob2ljZU1vZGU6IG5vcm1hbGl6ZWRRdWVzdGlvbi5jaG9pY2VNb2RlLFxuICAgIGtleU1vZGU6IG5vcm1hbGl6ZWRRdWVzdGlvbi5jaG9pY2VQcmVmaXgsXG4gICAgY2hvaWNlcyxcbiAgICByZXNwb25zZUNvcnJlY3Q6IGVudi5tb2RlID09PSAnZXZhbHVhdGUnID8gaXNSZXNwb25zZUNvcnJlY3Qobm9ybWFsaXplZFF1ZXN0aW9uLCBzZXNzaW9uKSA6IHVuZGVmaW5lZCxcbiAgfTtcblxuICBjb25zdCB7IHJvbGUsIG1vZGUgfSA9IGVudiB8fCB7fTtcblxuICBpZiAocm9sZSA9PT0gJ2luc3RydWN0b3InICYmIChtb2RlID09PSAndmlldycgfHwgbW9kZSA9PT0gJ2V2YWx1YXRlJykpIHtcbiAgICBvdXQudGVhY2hlckluc3RydWN0aW9ucyA9IG5vcm1hbGl6ZWRRdWVzdGlvbi50ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZFxuICAgICAgPyBub3JtYWxpemVkUXVlc3Rpb24udGVhY2hlckluc3RydWN0aW9uc1xuICAgICAgOiBudWxsO1xuICB9IGVsc2Uge1xuICAgIG91dC50ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTY29yZSA9IChjb25maWcsIHNlc3Npb24pID0+IHtcbiAgaWYgKCFzZXNzaW9uIHx8IGlzRW1wdHkoc2Vzc2lvbikpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkQ2hvaWNlcyA9IHNlc3Npb24udmFsdWUgfHwgW107XG4gIGNvbnN0IGNvcnJlY3RDaG9pY2VzID0gKGNvbmZpZy5jaG9pY2VzIHx8IFtdKS5maWx0ZXIoKGNoKSA9PiBjaC5jb3JyZWN0KTtcblxuICBsZXQgc2NvcmUgPSBzZWxlY3RlZENob2ljZXMucmVkdWNlKFxuICAgIChhY2MsIHNlbGVjdGVkQ2hvaWNlKSA9PiBhY2MgKyAoY29ycmVjdENob2ljZXMuZmluZCgoY2gpID0+IGNoLnZhbHVlID09PSBzZWxlY3RlZENob2ljZSkgPyAxIDogMCksXG4gICAgMCxcbiAgKTtcblxuICBpZiAoY29ycmVjdENob2ljZXMubGVuZ3RoIDwgc2VsZWN0ZWRDaG9pY2VzLmxlbmd0aCkge1xuICAgIHNjb3JlIC09IHNlbGVjdGVkQ2hvaWNlcy5sZW5ndGggLSBjb3JyZWN0Q2hvaWNlcy5sZW5ndGg7XG5cbiAgICBpZiAoc2NvcmUgPCAwKSB7XG4gICAgICBzY29yZSA9IDA7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RyID0gY29ycmVjdENob2ljZXMubGVuZ3RoID8gc2NvcmUgLyBjb3JyZWN0Q2hvaWNlcy5sZW5ndGggOiAwO1xuXG4gIHJldHVybiBwYXJzZUZsb2F0KHN0ci50b0ZpeGVkKDIpKTtcbn07XG5cbi8qKlxuICpcbiAqIFRoZSBzY29yZSBpcyBwYXJ0aWFsIGJ5IGRlZmF1bHQgZm9yIGNoZWNrYm94IG1vZGUsIGFsbE9yTm90aGluZyBmb3IgcmFkaW8gbW9kZS5cbiAqIFRvIGRpc2FibGUgcGFydGlhbCBzY29yaW5nIGZvciBjaGVja2JveCBtb2RlIHlvdSBlaXRoZXIgc2V0IG1vZGVsLnBhcnRpYWxTY29yaW5nID0gZmFsc2Ugb3IgZW52LnBhcnRpYWxTY29yaW5nID0gZmFsc2UuIHRoZSB2YWx1ZSBpbiBgZW52YCB3aWxsXG4gKiBvdmVycmlkZSB0aGUgdmFsdWUgaW4gYG1vZGVsYC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBtb2RlbCAtIHRoZSBtYWluIG1vZGVsXG4gKiBAcGFyYW0geyp9IHNlc3Npb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBlbnZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG91dGNvbWUobW9kZWwsIHNlc3Npb24sIGVudikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBpZiAoIXNlc3Npb24gfHwgaXNFbXB0eShzZXNzaW9uKSkge1xuICAgICAgcmVzb2x2ZSh7IHNjb3JlOiAwLCBlbXB0eTogdHJ1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGFydGlhbFNjb3JpbmdFbmFibGVkID0gcGFydGlhbFNjb3JpbmcuZW5hYmxlZChtb2RlbCwgZW52KSAmJiBtb2RlbC5jaG9pY2VNb2RlICE9PSAncmFkaW8nO1xuICAgICAgY29uc3Qgc2NvcmUgPSBnZXRTY29yZShtb2RlbCwgc2Vzc2lvbik7XG5cbiAgICAgIHJlc29sdmUoeyBzY29yZTogcGFydGlhbFNjb3JpbmdFbmFibGVkID8gc2NvcmUgOiBzY29yZSA9PT0gMSA/IDEgOiAwLCBlbXB0eTogZmFsc2UgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvcnJlY3RSZXNwb25zZVNlc3Npb24gPSAocXVlc3Rpb24sIGVudikgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBpZiAoZW52Lm1vZGUgIT09ICdldmFsdWF0ZScgJiYgZW52LnJvbGUgPT09ICdpbnN0cnVjdG9yJykge1xuICAgICAgY29uc3QgeyBjaG9pY2VzIH0gPSBxdWVzdGlvbiB8fCB7IGNob2ljZXM6IFtdIH07XG5cbiAgICAgIHJlc29sdmUoe1xuICAgICAgICBpZDogJzEnLFxuICAgICAgICB2YWx1ZTogY2hvaWNlcy5maWx0ZXIoKGMpID0+IGMuY29ycmVjdCkubWFwKChjKSA9PiBjLnZhbHVlKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAobW9kZWwgPSB7fSwgY29uZmlnID0ge30pID0+IHtcbiAgY29uc3QgeyBjaG9pY2VzIH0gPSBtb2RlbDtcbiAgY29uc3QgeyBtaW5BbnN3ZXJDaG9pY2VzID0gMiwgbWF4QW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlnO1xuICBjb25zdCByZXZlcnNlZENob2ljZXMgPSBbLi4uKGNob2ljZXMgfHwgW10pXS5yZXZlcnNlKCk7XG4gIGNvbnN0IGNob2ljZXNFcnJvcnMgPSB7fTtcbiAgbGV0IGhhc0NvcnJlY3RSZXNwb25zZSA9IGZhbHNlO1xuXG4gIHJldmVyc2VkQ2hvaWNlcy5mb3JFYWNoKChjaG9pY2UsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBjb3JyZWN0LCB2YWx1ZSwgbGFiZWwgfSA9IGNob2ljZTtcblxuICAgIGlmIChjb3JyZWN0KSB7XG4gICAgICBoYXNDb3JyZWN0UmVzcG9uc2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsYWJlbCA9PT0gJycgfHwgbGFiZWwgPT09ICc8ZGl2PjwvZGl2PicpIHtcbiAgICAgIGNob2ljZXNFcnJvcnNbdmFsdWVdID0gJ0NvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eS4nO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpZGVudGljYWxBbnN3ZXIgPSByZXZlcnNlZENob2ljZXMuc2xpY2UoaW5kZXggKyAxKS5zb21lKChjKSA9PiBjLmxhYmVsID09PSBsYWJlbCk7XG5cbiAgICAgIGlmIChpZGVudGljYWxBbnN3ZXIpIHtcbiAgICAgICAgY2hvaWNlc0Vycm9yc1t2YWx1ZV0gPSAnQ29udGVudCBzaG91bGQgYmUgdW5pcXVlLic7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBlcnJvcnMgPSB7fTtcbiAgY29uc3QgbmJPZkNob2ljZXMgPSAoY2hvaWNlcyB8fCBbXSkubGVuZ3RoO1xuXG4gIGlmIChuYk9mQ2hvaWNlcyA8IG1pbkFuc3dlckNob2ljZXMpIHtcbiAgICBlcnJvcnMuYW5zd2VyQ2hvaWNlc0Vycm9yID0gYFRoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCAke21pbkFuc3dlckNob2ljZXN9IGNob2ljZXMgZGVmaW5lZC5gO1xuICB9IGVsc2UgaWYgKG5iT2ZDaG9pY2VzID4gbWF4QW5zd2VyQ2hvaWNlcykge1xuICAgIGVycm9ycy5hbnN3ZXJDaG9pY2VzRXJyb3IgPSBgTm8gbW9yZSB0aGFuICR7bWF4QW5zd2VyQ2hvaWNlc30gY2hvaWNlcyBzaG91bGQgYmUgZGVmaW5lZC5gO1xuICB9XG5cbiAgaWYgKCFoYXNDb3JyZWN0UmVzcG9uc2UpIHtcbiAgICBlcnJvcnMuY29ycmVjdFJlc3BvbnNlRXJyb3IgPSAnTm8gY29ycmVjdCByZXNwb25zZSBkZWZpbmVkLic7XG4gIH1cblxuICBpZiAoIWlzRW1wdHkoY2hvaWNlc0Vycm9ycykpIHtcbiAgICBlcnJvcnMuY2hvaWNlc0Vycm9ycyA9IGNob2ljZXNFcnJvcnM7XG4gIH1cblxuICByZXR1cm4gZXJyb3JzO1xufTtcbiJdfQ==
@@ -1,36 +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.parseHTML = exports.isResponseCorrect = exports.getCorrectResponse = void 0;
9
-
10
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
11
-
12
- var getCorrectResponse = function getCorrectResponse(choices) {
13
- return choices.filter(function (c) {
14
- return c.correct;
15
- }).map(function (c) {
16
- return c.value;
17
- }).sort();
18
- };
19
-
20
- exports.getCorrectResponse = getCorrectResponse;
21
-
22
- var isResponseCorrect = function isResponseCorrect(question, session) {
23
- var correctResponse = getCorrectResponse(question.choices);
24
- return session && (0, _isEqual["default"])((session.value || []).sort(), correctResponse);
25
- };
26
-
27
- exports.isResponseCorrect = isResponseCorrect;
28
-
29
- var parseHTML = function parseHTML(html) {
30
- var template = document.createElement('template');
31
- template.innerHTML = html;
32
- return template.content;
33
- };
34
-
35
- exports.parseHTML = parseHTML;
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJnZXRDb3JyZWN0UmVzcG9uc2UiLCJjaG9pY2VzIiwiZmlsdGVyIiwiYyIsImNvcnJlY3QiLCJtYXAiLCJ2YWx1ZSIsInNvcnQiLCJpc1Jlc3BvbnNlQ29ycmVjdCIsInF1ZXN0aW9uIiwic2Vzc2lvbiIsImNvcnJlY3RSZXNwb25zZSIsInBhcnNlSFRNTCIsImh0bWwiLCJ0ZW1wbGF0ZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsImNvbnRlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVPLElBQU1BLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQ0MsT0FBRDtBQUFBLFNBQ2hDQSxPQUFPLENBQ0pDLE1BREgsQ0FDVSxVQUFDQyxDQUFEO0FBQUEsV0FBT0EsQ0FBQyxDQUFDQyxPQUFUO0FBQUEsR0FEVixFQUVHQyxHQUZILENBRU8sVUFBQ0YsQ0FBRDtBQUFBLFdBQU9BLENBQUMsQ0FBQ0csS0FBVDtBQUFBLEdBRlAsRUFHR0MsSUFISCxFQURnQztBQUFBLENBQTNCOzs7O0FBTUEsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixDQUFDQyxRQUFELEVBQVdDLE9BQVgsRUFBdUI7QUFDdEQsTUFBSUMsZUFBZSxHQUFHWCxrQkFBa0IsQ0FBQ1MsUUFBUSxDQUFDUixPQUFWLENBQXhDO0FBQ0EsU0FBT1MsT0FBTyxJQUFJLHlCQUFRLENBQUNBLE9BQU8sQ0FBQ0osS0FBUixJQUFpQixFQUFsQixFQUFzQkMsSUFBdEIsRUFBUixFQUFzQ0ksZUFBdEMsQ0FBbEI7QUFDRCxDQUhNOzs7O0FBS0EsSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsSUFBRCxFQUFVO0FBQ2pDLE1BQU1DLFFBQVEsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLFVBQXZCLENBQWpCO0FBQ0FGLEVBQUFBLFFBQVEsQ0FBQ0csU0FBVCxHQUFxQkosSUFBckI7QUFDQSxTQUFPQyxRQUFRLENBQUNJLE9BQWhCO0FBQ0QsQ0FKTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RSZXNwb25zZSA9IChjaG9pY2VzKSA9PlxuICBjaG9pY2VzXG4gICAgLmZpbHRlcigoYykgPT4gYy5jb3JyZWN0KVxuICAgIC5tYXAoKGMpID0+IGMudmFsdWUpXG4gICAgLnNvcnQoKTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzcG9uc2VDb3JyZWN0ID0gKHF1ZXN0aW9uLCBzZXNzaW9uKSA9PiB7XG4gIGxldCBjb3JyZWN0UmVzcG9uc2UgPSBnZXRDb3JyZWN0UmVzcG9uc2UocXVlc3Rpb24uY2hvaWNlcyk7XG4gIHJldHVybiBzZXNzaW9uICYmIGlzRXF1YWwoKHNlc3Npb24udmFsdWUgfHwgW10pLnNvcnQoKSwgY29ycmVjdFJlc3BvbnNlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUhUTUwgPSAoaHRtbCkgPT4ge1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gIHRlbXBsYXRlLmlubmVySFRNTCA9IGh0bWw7XG4gIHJldHVybiB0ZW1wbGF0ZS5jb250ZW50O1xufTtcbiJdfQ==
@@ -1,11 +0,0 @@
1
- {
2
- "hash": "1801896442",
3
- "info": [
4
- {
5
- "pie": "@pie-element/multiple-choice",
6
- "version": {
7
- "requested": "latest"
8
- }
9
- }
10
- ]
11
- }
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _lodash = _interopRequireDefault(require("lodash"));
10
-
11
- var _enzyme = require("enzyme");
12
-
13
- var _choiceInput = require("../choice-input");
14
-
15
- var _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
16
-
17
- describe('ChoiceInput', function () {
18
- var onChange, wrapper;
19
-
20
- var mkWrapper = function mkWrapper() {
21
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
- opts = _lodash["default"].extend({
23
- checked: false,
24
- disabled: false,
25
- choiceMode: 'checkbox',
26
- label: 'label',
27
- displayKey: '1',
28
- correctness: 'correct',
29
- value: 'value',
30
- classes: {
31
- label: 'label'
32
- }
33
- }, opts);
34
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_choiceInput.ChoiceInput, (0, _extends2["default"])({}, opts, {
35
- onChange: onChange
36
- })));
37
- };
38
-
39
- beforeEach(function () {
40
- onChange = jest.fn();
41
- wrapper = mkWrapper();
42
- });
43
- describe('snapshots', function () {
44
- describe('radio', function () {
45
- it('renders', function () {
46
- var wrapper = mkWrapper({
47
- choiceMode: 'radio'
48
- });
49
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
50
- });
51
- });
52
- describe('checkbox', function () {
53
- it('renders', function () {
54
- var wrapper = mkWrapper({
55
- choiceMode: 'checkbox'
56
- });
57
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
58
- });
59
- });
60
- describe('radio with incorrect', function () {
61
- it('renders', function () {
62
- var wrapper = mkWrapper({
63
- choiceMode: 'radio',
64
- correctness: 'incorrect'
65
- });
66
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
67
- });
68
- });
69
- describe('rationale', function () {
70
- it('does not render', function () {
71
- var wrapper = mkWrapper();
72
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
73
- });
74
- it('renders', function () {
75
- var wrapper = mkWrapper({
76
- rationale: 'This is rationale'
77
- });
78
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
79
- });
80
- });
81
- });
82
- describe('onToggleChoice', function () {
83
- it('calls handler', function () {
84
- wrapper.instance().onToggleChoice({
85
- target: {
86
- checked: true
87
- }
88
- });
89
- expect(onChange).toBeCalledWith({
90
- value: 'value',
91
- selected: true
92
- });
93
- });
94
- });
95
- /** we're mocking preview prompt - so this won't pass */
96
-
97
- describe.skip('clicking on choice text triggers toggle choice', function () {
98
- it('calls handler', function () {
99
- var onChange = jest.fn();
100
- var props = {
101
- checked: false,
102
- disabled: false,
103
- choiceMode: 'checkbox',
104
- label: 'label',
105
- displayKey: '1',
106
- correctness: 'correct',
107
- value: 'value',
108
- classes: {
109
- label: 'label'
110
- },
111
- onChange: onChange
112
- };
113
- console.log(_choiceInput.ChoiceInput);
114
- var item = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_choiceInput.ChoiceInput, props));
115
- var label = item.find('.label');
116
- label.simulate('click');
117
- expect(onChange).toHaveBeenCalledWith({
118
- value: 'value',
119
- selected: true
120
- });
121
- });
122
- });
123
- });
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2hvaWNlLWlucHV0LXRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwib25DaGFuZ2UiLCJ3cmFwcGVyIiwibWtXcmFwcGVyIiwib3B0cyIsIl8iLCJleHRlbmQiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJjaG9pY2VNb2RlIiwibGFiZWwiLCJkaXNwbGF5S2V5IiwiY29ycmVjdG5lc3MiLCJ2YWx1ZSIsImNsYXNzZXMiLCJiZWZvcmVFYWNoIiwiamVzdCIsImZuIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJyYXRpb25hbGUiLCJpbnN0YW5jZSIsIm9uVG9nZ2xlQ2hvaWNlIiwidGFyZ2V0IiwidG9CZUNhbGxlZFdpdGgiLCJzZWxlY3RlZCIsInNraXAiLCJwcm9wcyIsImNvbnNvbGUiLCJsb2ciLCJDaG9pY2VJbnB1dCIsIml0ZW0iLCJmaW5kIiwic2ltdWxhdGUiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxhQUFELEVBQWdCLFlBQU07QUFDNUIsTUFBSUMsUUFBSixFQUFjQyxPQUFkOztBQUVBLE1BQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLEdBQWU7QUFBQSxRQUFkQyxJQUFjLHVFQUFQLEVBQU87QUFDL0JBLElBQUFBLElBQUksR0FBR0MsbUJBQUVDLE1BQUYsQ0FDTDtBQUNFQyxNQUFBQSxPQUFPLEVBQUUsS0FEWDtBQUVFQyxNQUFBQSxRQUFRLEVBQUUsS0FGWjtBQUdFQyxNQUFBQSxVQUFVLEVBQUUsVUFIZDtBQUlFQyxNQUFBQSxLQUFLLEVBQUUsT0FKVDtBQUtFQyxNQUFBQSxVQUFVLEVBQUUsR0FMZDtBQU1FQyxNQUFBQSxXQUFXLEVBQUUsU0FOZjtBQU9FQyxNQUFBQSxLQUFLLEVBQUUsT0FQVDtBQVFFQyxNQUFBQSxPQUFPLEVBQUU7QUFDUEosUUFBQUEsS0FBSyxF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QUFDMkIsSUFBVCxDQUFjLGdEQUFkLEVBQWdFLFlBQU07QUFDcEVULElBQUFBLEVBQUUsQ0FBQyxlQUFELEVBQWtCLFlBQU07QUFDeEIsVUFBTWpCLFFBQVEsR0FBR2UsSUFBSSxDQUFDQyxFQUFMLEVBQWpCO0FBQ0EsVUFBTVcsS0FBSyxHQUFHO0FBQ1pyQixRQUFBQSxPQUFPLEVBQUUsS0FERztBQUVaQyxRQUFBQSxRQUFRLEVBQUUsS0FGRTtBQUdaQyxRQUFBQSxVQUFVLEVBQUUsVUFIQTtBQUlaQyxRQUFBQSxLQUFLLEVBQUUsT0FKSztBQUtaQyxRQUFBQSxVQUFVLEVBQUUsR0FMQTtBQU1aQyxRQUFBQSxXQUFXLEVBQUUsU0FORDtBQU9aQyxRQUFBQSxLQUFLLEVBQUUsT0FQSztBQVFaQyxRQUFBQSxPQUFPLEVBQUU7QUFDUEosVUFBQUEsS0FBSyxFQUFFO0FBREEsU0FSRztBQVdaVCxRQUFBQSxRQUFRLEVBQVJBO0FBWFksT0FBZDtBQWNBNEIsTUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVlDLHdCQUFaO0FBQ0EsVUFBTUMsSUFBSSxHQUFHLGlDQUFNLGdDQUFDLHdCQUFELEVBQWlCSixLQUFqQixDQUFOLENBQWI7QUFDQSxVQUFNbEIsS0FBSyxHQUFHc0IsSUFBSSxDQUFDQyxJQUFMLENBQVUsUUFBVixDQUFkO0FBRUF2QixNQUFBQSxLQUFLLENBQUN3QixRQUFOLENBQWUsT0FBZjtBQUVBZixNQUFBQSxNQUFNLENBQUNsQixRQUFELENBQU4sQ0FBaUJrQyxvQkFBakIsQ0FBc0M7QUFBRXRCLFFBQUFBLEtBQUssRUFBRSxPQUFUO0FBQWtCYSxRQUFBQSxRQUFRLEVBQUU7QUFBNUIsT0FBdEM7QUFDRCxLQXZCQyxDQUFGO0FBd0JELEdBekJEO0FBMEJELENBdkdPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHNoYWxsb3csIG1vdW50IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IENob2ljZUlucHV0IH0gZnJvbSAnLi4vY2hvaWNlLWlucHV0JztcbmltcG9ydCB0b0pzb24gZnJvbSAnZW56eW1lLXRvLWpzb24nO1xuXG5kZXNjcmliZSgnQ2hvaWNlSW5wdXQnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSwgd3JhcHBlcjtcblxuICBjb25zdCBta1dyYXBwZXIgPSAob3B0cyA9IHt9KSA9PiB7XG4gICAgb3B0cyA9IF8uZXh0ZW5kKFxuICAgICAge1xuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBjaG9pY2VNb2RlOiAnY2hlY2tib3gnLFxuICAgICAgICBsYWJlbDogJ2xhYmVsJyxcbiAgICAgICAgZGlzcGxheUtleTogJzEnLFxuICAgICAgICBjb3JyZWN0bmVzczogJ2NvcnJlY3QnLFxuICAgICAgICB2YWx1ZTogJ3ZhbHVlJyxcbiAgICAgICAgY2xhc3Nlczoge1xuICAgICAgICAgIGxhYmVsOiAnbGFiZWwnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdHMsXG4gICAgKTtcblxuICAgIHJldHVybiBzaGFsbG93KDxDaG9pY2VJbnB1dCB7Li4ub3B0c30gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPik7XG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgd3JhcHBlciA9IG1rV3JhcHBlcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc25hcHNob3RzJywgKCkgPT4ge1xuICAgIGRlc2NyaWJlKCdyYWRpbycsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgY2hvaWNlTW9kZTogJ3JhZGlvJyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGVja2JveCcsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgY2hvaWNlTW9kZTogJ2NoZWNrYm94JyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdyYWRpbyB3aXRoIGluY29ycmVjdCcsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHtcbiAgICAgICAgICBjaG9pY2VNb2RlOiAncmFkaW8nLFxuICAgICAgICAgIGNvcnJlY3RuZXNzOiAnaW5jb3JyZWN0JyxcbiAgICAgICAgfSk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgncmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgaXQoJ2RvZXMgbm90IHJlbmRlcicsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcigpO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcih7IHJhdGlvbmFsZTogJ1RoaXMgaXMgcmF0aW9uYWxlJyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ29uVG9nZ2xlQ2hvaWNlJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBoYW5kbGVyJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5pbnN0YW5jZSgpLm9uVG9nZ2xlQ2hvaWNlKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IHRydWUgfSB9KTtcbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICB2YWx1ZTogJ3ZhbHVlJyxcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIHdlJ3JlIG1vY2tpbmcgcHJldmlldyBwcm9tcHQgLSBzbyB0aGlzIHdvbid0IHBhc3MgKi9cbiAgZGVzY3JpYmUuc2tpcCgnY2xpY2tpbmcgb24gY2hvaWNlIHRleHQgdHJpZ2dlcnMgdG9nZ2xlIGNob2ljZScsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgaGFuZGxlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNob2ljZU1vZGU6ICdjaGVja2JveCcsXG4gICAgICAgIGxhYmVsOiAnbGFiZWwnLFxuICAgICAgICBkaXNwbGF5S2V5OiAnMScsXG4gICAgICAgIGNvcnJlY3RuZXNzOiAnY29ycmVjdCcsXG4gICAgICAgIHZhbHVlOiAndmFsdWUnLFxuICAgICAgICBjbGFzc2VzOiB7XG4gICAgICAgICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgfTtcblxuICAgICAgY29uc29sZS5sb2coQ2hvaWNlSW5wdXQpO1xuICAgICAgY29uc3QgaXRlbSA9IG1vdW50KDxDaG9pY2VJbnB1dCB7Li4ucHJvcHN9IC8+KTtcbiAgICAgIGNvbnN0IGxhYmVsID0gaXRlbS5maW5kKCcubGFiZWwnKTtcblxuICAgICAgbGFiZWwuc2ltdWxhdGUoJ2NsaWNrJyk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyB2YWx1ZTogJ3ZhbHVlJywgc2VsZWN0ZWQ6IHRydWUgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
6
-
7
- var _index = require("../index");
8
-
9
- var _templateObject;
10
-
11
- describe('isComplete', function () {
12
- it.each(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n session | expected\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n "])), {
13
- value: [1, 2, 3]
14
- }, true, {
15
- value: []
16
- }, false, {}, false, null, false, undefined, false)('session = $session is complete => $expected', function (_ref) {
17
- var session = _ref.session,
18
- expected = _ref.expected;
19
- expect((0, _index.isComplete)(session)).toEqual(expected);
20
- });
21
- });
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgtdGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImVhY2giLCJ2YWx1ZSIsInVuZGVmaW5lZCIsInNlc3Npb24iLCJleHBlY3RlZCIsImV4cGVjdCIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBRUFBLFFBQVEsQ0FBQyxZQUFELEVBQWUsWUFBTTtBQUMzQkMsRUFBQUEsRUFBRSxDQUFDQyxJQUFILDRRQUVJO0FBQUVDLElBQUFBLEtBQUssRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUDtBQUFULEdBRkosRUFFOEIsSUFGOUIsRUFHSTtBQUFFQSxJQUFBQSxLQUFLLEVBQUU7QUFBVCxHQUhKLEVBRzhCLEtBSDlCLEVBSUksRUFKSixFQUk4QixLQUo5QixFQUtJLElBTEosRUFLOEIsS0FMOUIsRUFNSUMsU0FOSixFQU04QixLQU45QixFQU9FLDZDQVBGLEVBT2lELGdCQUEyQjtBQUFBLFFBQXhCQyxPQUF3QixRQUF4QkEsT0FBd0I7QUFBQSxRQUFmQyxRQUFlLFFBQWZBLFFBQWU7QUFDMUVDLElBQUFBLE1BQU0sQ0FBQyx1QkFBV0YsT0FBWCxDQUFELENBQU4sQ0FBNEJHLE9BQTVCLENBQW9DRixRQUFwQztBQUNELEdBVEQ7QUFVRCxDQVhPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NvbXBsZXRlIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5kZXNjcmliZSgnaXNDb21wbGV0ZScsICgpID0+IHtcbiAgaXQuZWFjaGBcbiAgICBzZXNzaW9uICAgICAgICAgICAgICAgICB8IGV4cGVjdGVkXG4gICAgJHt7IHZhbHVlOiBbMSwgMiwgM10gfX0gfCAke3RydWV9XG4gICAgJHt7IHZhbHVlOiBbXSB9fSAgICAgICAgfCAke2ZhbHNlfVxuICAgICR7e319ICAgICAgICAgICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke251bGx9ICAgICAgICAgICAgICAgICB8ICR7ZmFsc2V9XG4gICAgJHt1bmRlZmluZWR9ICAgICAgICAgICAgfCAke2ZhbHNlfVxuICBgKCdzZXNzaW9uID0gJHNlc3Npb24gaXMgY29tcGxldGUgPT4gJGV4cGVjdGVkJywgKHsgc2Vzc2lvbiwgZXhwZWN0ZWQgfSkgPT4ge1xuICAgIGV4cGVjdChpc0NvbXBsZXRlKHNlc3Npb24pKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcbiJdfQ==