@pie-element/inline-dropdown 4.7.1-beta.1 → 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.
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = {
8
+ choices: {}
9
+ };
10
+ exports["default"] = _default;
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaG9pY2VzIiwiZXhwb3J0cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2RlZmF1bHRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgY2hvaWNlczoge30sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNiQSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFBQUMsT0FBQSxjQUFBQyxRQUFBIn0=
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getScore = exports.createCorrectResponseSession = void 0;
8
+ exports.model = model;
9
+ exports.normalize = void 0;
10
+ exports.outcome = outcome;
11
+ exports.validate = void 0;
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _map = _interopRequireDefault(require("lodash/map"));
16
+ var _reduce = _interopRequireDefault(require("lodash/reduce"));
17
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
18
+ var _controllerUtils = require("@pie-lib/controller-utils");
19
+ var _utils = require("./utils");
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; }
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; }
22
+ var getFeedback = function getFeedback(correct) {
23
+ if (correct) {
24
+ return 'correct';
25
+ }
26
+ return 'incorrect';
27
+ };
28
+ var normalize = function normalize(question) {
29
+ return _objectSpread({
30
+ promptEnabled: true,
31
+ rationaleEnabled: true,
32
+ teacherInstructionsEnabled: true,
33
+ studentInstructionsEnabled: true,
34
+ choiceRationaleEnabled: true
35
+ }, question);
36
+ };
37
+
38
+ /**
39
+ *
40
+ * @param {*} question
41
+ * @param {*} session
42
+ * @param {*} env
43
+ * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.
44
+ */
45
+ exports.normalize = normalize;
46
+ function model(question, session, env, updateSession) {
47
+ return new Promise( /*#__PURE__*/function () {
48
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve) {
49
+ var normalizedQuestion, _ref2, _ref2$value, value, choices, feedback, allCorrectResponses, respAreaLength, correctResponses, _loop, i, _ret, lockChoiceOrder, keys, _i, key, teacherInstructions, rationale, choicesWillNullRationales, out;
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();
99
+ }
100
+ }, _loop);
101
+ });
102
+ i = 0;
103
+ case 10:
104
+ if (!(i < respAreaLength)) {
105
+ _context2.next = 18;
106
+ break;
107
+ }
108
+ return _context2.delegateYield(_loop(i), "t0", 12);
109
+ case 12:
110
+ _ret = _context2.t0;
111
+ if (!(_ret === "break")) {
112
+ _context2.next = 15;
113
+ break;
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
149
+ });
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();
178
+ }
179
+ }, _callee);
180
+ }));
181
+ return function (_x) {
182
+ return _ref.apply(this, arguments);
183
+ };
184
+ }());
185
+ }
186
+ var getScore = function getScore(config, session) {
187
+ var _ref3 = session || {},
188
+ _ref3$value = _ref3.value,
189
+ value = _ref3$value === void 0 ? {} : _ref3$value;
190
+ var maxScore = config && config.choices ? Object.keys(config.choices).length : 0;
191
+ var allCorrectResponses = (0, _utils.getAllCorrectResponses)(config);
192
+ var correctCount = 0;
193
+ var _loop2 = function _loop2(i) {
194
+ var result = (0, _reduce["default"])(allCorrectResponses, function (total, choices, key) {
195
+ var answer = value && value[key] || '';
196
+ var correctChoice = choices[i] || '';
197
+ if (correctChoice && answer && correctChoice === answer) {
198
+ return total;
199
+ }
200
+ return total - 1;
201
+ }, maxScore);
202
+ if (result > correctCount) {
203
+ correctCount = result;
204
+ }
205
+ if (result === maxScore) {
206
+ return "break";
207
+ }
208
+ };
209
+ for (var i = 0; i < maxScore; i++) {
210
+ var _ret2 = _loop2(i);
211
+ if (_ret2 === "break") break;
212
+ }
213
+ var str = (correctCount / maxScore).toFixed(2);
214
+ return parseFloat(str);
215
+ };
216
+
217
+ /**
218
+ *
219
+ * The score is partial by default for checkbox mode, allOrNothing for radio mode.
220
+ * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =
221
+ * false. the value in `env` will override the value in `model`.
222
+ * @param {Object} model - the main model
223
+ * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)
224
+ * @param {*} session
225
+ * @param {Object} env
226
+ * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides
227
+ * `model.partialScoring`.
228
+ */
229
+ exports.getScore = getScore;
230
+ function outcome(model, session) {
231
+ var env = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
232
+ return new Promise(function (resolve) {
233
+ if (!session || (0, _isEmpty["default"])(session)) {
234
+ resolve({
235
+ score: 0,
236
+ empty: true
237
+ });
238
+ }
239
+ var partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env);
240
+ var score = getScore(model, session);
241
+ resolve({
242
+ score: partialScoringEnabled ? score : Math.floor(score),
243
+ empty: false
244
+ });
245
+ });
246
+ }
247
+ var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
248
+ return new Promise(function (resolve) {
249
+ if (env.mode !== 'evaluate' && env.role === 'instructor') {
250
+ var choices = question.choices;
251
+ var value = {};
252
+ if (choices) {
253
+ Object.keys(choices).forEach(function (key, i) {
254
+ var correctChoices = choices[key] && choices[key].filter(function (c) {
255
+ return c.correct;
256
+ });
257
+ value[i] = correctChoices && correctChoices[0].value;
258
+ });
259
+ }
260
+ resolve({
261
+ id: '1',
262
+ value: value
263
+ });
264
+ } else {
265
+ resolve(null);
266
+ }
267
+ });
268
+ };
269
+ exports.createCorrectResponseSession = createCorrectResponseSession;
270
+ var validate = function validate() {
271
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
272
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
273
+ var markup = model.markup,
274
+ choices = model.choices;
275
+ var maxResponseAreas = config.maxResponseAreas,
276
+ maxResponseAreaChoices = config.maxResponseAreaChoices;
277
+ var errors = {};
278
+ var nbOfResponseAreas = ((markup || '').match(/\{\{(\d+)\}\}/g) || []).length;
279
+ if (nbOfResponseAreas > maxResponseAreas) {
280
+ errors.responseAreasError = "No more than ".concat(maxResponseAreas, " response areas should be defined.");
281
+ } else if (nbOfResponseAreas < 1) {
282
+ errors.responseAreasError = 'There should be defined at least 1 response area.';
283
+ }
284
+ (Object.keys(choices) || []).forEach(function (choiceKey) {
285
+ if (choices[choiceKey] && choices[choiceKey].length > maxResponseAreaChoices) {
286
+ errors.responseAreaChoicesError = "No more than ".concat(maxResponseAreaChoices, " choices per response area should be defined.");
287
+ }
288
+ });
289
+ return errors;
290
+ };
291
+ exports.validate = validate;
292
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWFwIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVkdWNlIiwiX2lzRW1wdHkiLCJfY29udHJvbGxlclV0aWxzIiwiX3V0aWxzIiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJnZXRGZWVkYmFjayIsImNvcnJlY3QiLCJub3JtYWxpemUiLCJxdWVzdGlvbiIsInByb21wdEVuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsImNob2ljZVJhdGlvbmFsZUVuYWJsZWQiLCJleHBvcnRzIiwibW9kZWwiLCJzZXNzaW9uIiwiZW52IiwidXBkYXRlU2Vzc2lvbiIsIlByb21pc2UiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXNvbHZlIiwibm9ybWFsaXplZFF1ZXN0aW9uIiwiX3JlZjIiLCJfcmVmMiR2YWx1ZSIsInZhbHVlIiwiY2hvaWNlcyIsImZlZWRiYWNrIiwiYWxsQ29ycmVjdFJlc3BvbnNlcyIsInJlc3BBcmVhTGVuZ3RoIiwiY29ycmVjdFJlc3BvbnNlcyIsIl9sb29wIiwiX3JldCIsImxvY2tDaG9pY2VPcmRlciIsIl9pIiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsImNob2ljZXNXaWxsTnVsbFJhdGlvbmFsZXMiLCJvdXQiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dDIiLCJwcmV2IiwibmV4dCIsInJlZHVjZSIsIm9iaiIsImFyZWEiLCJtYXAiLCJjaG9pY2UiLCJtb2RlIiwiZ2V0QWxsQ29ycmVjdFJlc3BvbnNlcyIsInJlc3VsdCIsIl9sb29wJCIsIl9jb250ZXh0IiwiYW5zd2VyIiwiY29ycmVjdENob2ljZSIsImlzQ29ycmVjdCIsImFicnVwdCIsInN0b3AiLCJkZWxlZ2F0ZVlpZWxkIiwidDAiLCJsb2NrQ2hvaWNlcyIsImdldFNodWZmbGVkQ2hvaWNlcyIsInNlbnQiLCJhY2MiLCJjdXJyZW50VmFsdWUiLCJyb2xlIiwiZGlzYWJsZWQiLCJwcm9tcHQiLCJkaXNwbGF5VHlwZSIsIm1hcmt1cCIsInJlc3BvbnNlQ29ycmVjdCIsImdldFNjb3JlIiwidW5kZWZpbmVkIiwiX3giLCJjb25maWciLCJfcmVmMyIsIl9yZWYzJHZhbHVlIiwibWF4U2NvcmUiLCJjb3JyZWN0Q291bnQiLCJfbG9vcDIiLCJ0b3RhbCIsIl9yZXQyIiwic3RyIiwidG9GaXhlZCIsInBhcnNlRmxvYXQiLCJvdXRjb21lIiwiaXNFbXB0eSIsInNjb3JlIiwiZW1wdHkiLCJwYXJ0aWFsU2NvcmluZ0VuYWJsZWQiLCJwYXJ0aWFsU2NvcmluZyIsImVuYWJsZWQiLCJNYXRoIiwiZmxvb3IiLCJjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uIiwiY29ycmVjdENob2ljZXMiLCJjIiwiaWQiLCJ2YWxpZGF0ZSIsIm1heFJlc3BvbnNlQXJlYXMiLCJtYXhSZXNwb25zZUFyZWFDaG9pY2VzIiwiZXJyb3JzIiwibmJPZlJlc3BvbnNlQXJlYXMiLCJtYXRjaCIsInJlc3BvbnNlQXJlYXNFcnJvciIsImNvbmNhdCIsImNob2ljZUtleSIsInJlc3BvbnNlQXJlYUNob2ljZXNFcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnO1xuaW1wb3J0IHJlZHVjZSBmcm9tICdsb2Rhc2gvcmVkdWNlJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7IGxvY2tDaG9pY2VzLCBnZXRTaHVmZmxlZENob2ljZXMsIHBhcnRpYWxTY29yaW5nIH0gZnJvbSAnQHBpZS1saWIvY29udHJvbGxlci11dGlscyc7XG5cbmltcG9ydCB7IGdldEFsbENvcnJlY3RSZXNwb25zZXMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZ2V0RmVlZGJhY2sgPSAoY29ycmVjdCkgPT4ge1xuICBpZiAoY29ycmVjdCkge1xuICAgIHJldHVybiAnY29ycmVjdCc7XG4gIH1cblxuICByZXR1cm4gJ2luY29ycmVjdCc7XG59O1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHF1ZXN0aW9uKSA9PiAoe1xuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gIGNob2ljZVJhdGlvbmFsZUVuYWJsZWQ6IHRydWUsXG4gIC4uLnF1ZXN0aW9uLFxufSk7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7Kn0gcXVlc3Rpb25cbiAqIEBwYXJhbSB7Kn0gc2Vzc2lvblxuICogQHBhcmFtIHsqfSBlbnZcbiAqIEBwYXJhbSB7Kn0gdXBkYXRlU2Vzc2lvbiAtIG9wdGlvbmFsIC0gYSBmdW5jdGlvbiB0aGF0IHdpbGwgc2V0IHRoZSBwcm9wZXJ0aWVzIHBhc3NlZCBpbnRvIGl0IG9uIHRoZSBzZXNzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWwocXVlc3Rpb24sIHNlc3Npb24sIGVudiwgdXBkYXRlU2Vzc2lvbikge1xuICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkUXVlc3Rpb24gPSBub3JtYWxpemUocXVlc3Rpb24pO1xuICAgIGNvbnN0IHsgdmFsdWUgPSB7fSB9ID0gc2Vzc2lvbiB8fCB7fTtcbiAgICBsZXQgY2hvaWNlcyA9IHJlZHVjZShcbiAgICAgIG5vcm1hbGl6ZWRRdWVzdGlvbi5jaG9pY2VzLFxuICAgICAgKG9iaiwgYXJlYSwga2V5KSA9PiB7XG4gICAgICAgIG9ialtrZXldID0gbWFwKGFyZWEsIChjaG9pY2UpID0+IGNob2ljZSk7XG5cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgbGV0IGZlZWRiYWNrID0ge307XG5cbiAgICBpZiAoZW52Lm1vZGUgPT09ICdldmFsdWF0ZScpIHtcbiAgICAgIGNvbnN0IGFsbENvcnJlY3RSZXNwb25zZXMgPSBnZXRBbGxDb3JyZWN0UmVzcG9uc2VzKG5vcm1hbGl6ZWRRdWVzdGlvbik7XG4gICAgICBjb25zdCByZXNwQXJlYUxlbmd0aCA9IE9iamVjdC5rZXlzKGFsbENvcnJlY3RSZXNwb25zZXMpLmxlbmd0aDtcbiAgICAgIGxldCBjb3JyZWN0UmVzcG9uc2VzID0gMDtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwQXJlYUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlZHVjZShcbiAgICAgICAgICBhbGxDb3JyZWN0UmVzcG9uc2VzLFxuICAgICAgICAgIChvYmosIGNob2ljZXMsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW5zd2VyID0gKHZhbHVlICYmIHZhbHVlW2tleV0pIHx8ICcnO1xuICAgICAgICAgICAgY29uc3QgY29ycmVjdENob2ljZSA9IGNob2ljZXNbaV0gfHwgJyc7XG4gICAgICAgICAgICBjb25zdCBpc0NvcnJlY3QgPSBhbnN3ZXIgJiYgY29ycmVjdENob2ljZSAmJiBjb3JyZWN0Q2hvaWNlID09PSBhbnN3ZXI7XG5cbiAgICAgICAgICAgIG9iai5mZWVkYmFja1trZXldID0gZ2V0RmVlZGJhY2soaXNDb3JyZWN0KTtcblxuICAgICAgICAgICAgaWYgKGlzQ29ycmVjdCkge1xuICAgICAgICAgICAgICBvYmouY29ycmVjdFJlc3BvbnNlcyArPSAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBjb3JyZWN0UmVzcG9uc2VzOiAwLCBmZWVkYmFjazoge30gfSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocmVzdWx0LmNvcnJlY3RSZXNwb25zZXMgPj0gY29ycmVjdFJlc3BvbnNlcykge1xuICAgICAgICAgIGNvcnJlY3RSZXNwb25zZXMgPSByZXN1bHQuY29ycmVjdFJlc3BvbnNlcztcbiAgICAgICAgICBmZWVkYmFjayA9IHJlc3VsdC5mZWVkYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQuY29ycmVjdFJlc3BvbnNlcyA9PT0gcmVzcEFyZWFMZW5ndGgpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2tDaG9pY2VPcmRlciA9IGxvY2tDaG9pY2VzKG5vcm1hbGl6ZWRRdWVzdGlvbiwgc2Vzc2lvbiwgZW52KTtcblxuICAgIGlmICghbG9ja0Nob2ljZU9yZGVyKSB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY2hvaWNlcyk7XG4gICAgICBsZXQgaTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcblxuICAgICAgICBjaG9pY2VzW2tleV0gPSBhd2FpdCBnZXRTaHVmZmxlZENob2ljZXMoY2hvaWNlc1trZXldLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCAndmFsdWUnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGVhY2hlckluc3RydWN0aW9ucyA9IG51bGw7XG4gICAgbGV0IHJhdGlvbmFsZSA9IG51bGw7XG5cbiAgICBjb25zdCBjaG9pY2VzV2lsbE51bGxSYXRpb25hbGVzID0gKE9iamVjdC5rZXlzKGNob2ljZXMpIHx8IFtdKS5yZWR1Y2UoKGFjYywgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICBhY2NbY3VycmVudFZhbHVlXSA9IChjaG9pY2VzW2N1cnJlbnRWYWx1ZV0gfHwgW10pLm1hcCgoY2hvaWNlKSA9PiAoe1xuICAgICAgICAuLi5jaG9pY2UsXG4gICAgICAgIHJhdGlvbmFsZTogbnVsbCxcbiAgICAgIH0pKTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG5cbiAgICBpZiAoZW52LnJvbGUgPT09ICdpbnN0cnVjdG9yJyAmJiAoZW52Lm1vZGUgPT09ICd2aWV3JyB8fCBlbnYubW9kZSA9PT0gJ2V2YWx1YXRlJykpIHtcbiAgICAgIHJhdGlvbmFsZSA9IG5vcm1hbGl6ZWRRdWVzdGlvbi5yYXRpb25hbGVFbmFibGVkID8gbm9ybWFsaXplZFF1ZXN0aW9uLnJhdGlvbmFsZSA6IG51bGw7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkXG4gICAgICAgID8gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNcbiAgICAgICAgOiBudWxsO1xuXG4gICAgICBjaG9pY2VzID0gbm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZVJhdGlvbmFsZUVuYWJsZWQgPyBub3JtYWxpemVkUXVlc3Rpb24uY2hvaWNlcyA6IGNob2ljZXNXaWxsTnVsbFJhdGlvbmFsZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhdGlvbmFsZSA9IG51bGw7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbnVsbDtcbiAgICAgIGNob2ljZXMgPSBjaG9pY2VzV2lsbE51bGxSYXRpb25hbGVzO1xuICAgIH1cblxuICAgIGNvbnN0IG91dCA9IHtcbiAgICAgIGRpc2FibGVkOiBlbnYubW9kZSAhPT0gJ2dhdGhlcicsXG4gICAgICBtb2RlOiBlbnYubW9kZSxcbiAgICAgIHByb21wdDogbm9ybWFsaXplZFF1ZXN0aW9uLnByb21wdEVuYWJsZWQgPyBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0IDogbnVsbCxcbiAgICAgIGRpc3BsYXlUeXBlOiBub3JtYWxpemVkUXVlc3Rpb24uZGlzcGxheVR5cGUsXG4gICAgICBtYXJrdXA6IG5vcm1hbGl6ZWRRdWVzdGlvbi5tYXJrdXAsXG4gICAgICBjaG9pY2VzLFxuICAgICAgZmVlZGJhY2ssXG5cbiAgICAgIHJlc3BvbnNlQ29ycmVjdDogZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgPyBnZXRTY29yZShub3JtYWxpemVkUXVlc3Rpb24sIHNlc3Npb24pID09PSAxIDogdW5kZWZpbmVkLFxuICAgICAgcmF0aW9uYWxlLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyxcbiAgICB9O1xuXG4gICAgcmVzb2x2ZShvdXQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNjb3JlID0gKGNvbmZpZywgc2Vzc2lvbikgPT4ge1xuICBjb25zdCB7IHZhbHVlID0ge30gfSA9IHNlc3Npb24gfHwge307XG4gIGNvbnN0IG1heFNjb3JlID0gY29uZmlnICYmIGNvbmZpZy5jaG9pY2VzID8gT2JqZWN0LmtleXMoY29uZmlnLmNob2ljZXMpLmxlbmd0aCA6IDA7XG4gIGNvbnN0IGFsbENvcnJlY3RSZXNwb25zZXMgPSBnZXRBbGxDb3JyZWN0UmVzcG9uc2VzKGNvbmZpZyk7XG4gIGxldCBjb3JyZWN0Q291bnQgPSAwO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4U2NvcmU7IGkrKykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHJlZHVjZShcbiAgICAgIGFsbENvcnJlY3RSZXNwb25zZXMsXG4gICAgICAodG90YWwsIGNob2ljZXMsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBhbnN3ZXIgPSAodmFsdWUgJiYgdmFsdWVba2V5XSkgfHwgJyc7XG4gICAgICAgIGNvbnN0IGNvcnJlY3RDaG9pY2UgPSBjaG9pY2VzW2ldIHx8ICcnO1xuXG4gICAgICAgIGlmIChjb3JyZWN0Q2hvaWNlICYmIGFuc3dlciAmJiBjb3JyZWN0Q2hvaWNlID09PSBhbnN3ZXIpIHtcbiAgICAgICAgICByZXR1cm4gdG90YWw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG90YWwgLSAxO1xuICAgICAgfSxcbiAgICAgIG1heFNjb3JlLFxuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID4gY29ycmVjdENvdW50KSB7XG4gICAgICBjb3JyZWN0Q291bnQgPSByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdCA9PT0gbWF4U2NvcmUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0ciA9IChjb3JyZWN0Q291bnQgLyBtYXhTY29yZSkudG9GaXhlZCgyKTtcblxuICByZXR1cm4gcGFyc2VGbG9hdChzdHIpO1xufTtcblxuLyoqXG4gKlxuICogVGhlIHNjb3JlIGlzIHBhcnRpYWwgYnkgZGVmYXVsdCBmb3IgY2hlY2tib3ggbW9kZSwgYWxsT3JOb3RoaW5nIGZvciByYWRpbyBtb2RlLlxuICogVG8gZGlzYWJsZSBwYXJ0aWFsIHNjb3JpbmcgZm9yIGNoZWNrYm94IG1vZGUgeW91IGVpdGhlciBzZXQgbW9kZWwucGFydGlhbFNjb3JpbmcgPSBmYWxzZSBvciBlbnYucGFydGlhbFNjb3JpbmcgPVxuICogZmFsc2UuIHRoZSB2YWx1ZSBpbiBgZW52YCB3aWxsIG92ZXJyaWRlIHRoZSB2YWx1ZSBpbiBgbW9kZWxgLlxuICogQHBhcmFtIHtPYmplY3R9IG1vZGVsIC0gdGhlIG1haW4gbW9kZWxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbW9kZWwucGFydGlhbFNjb3JpbmcgLSBpcyBwYXJ0aWFsIHNjb3JpbmcgZW5hYmxlZCAoaWYgdW5kZWZpbmVkIHNldCB0byB0byB0cnVlKVxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZW52XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGVudi5wYXJ0aWFsU2NvcmluZyAtIGlzIHBhcnRpYWwgc2NvcmluZyBlbmFibGVkIChpZiB1bmRlZmluZWQgZGVmYXVsdCB0byB0cnVlKSBUaGlzIG92ZXJyaWRlc1xuICogICBgbW9kZWwucGFydGlhbFNjb3JpbmdgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3V0Y29tZShtb2RlbCwgc2Vzc2lvbiwgZW52ID0ge30pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uIHx8IGlzRW1wdHkoc2Vzc2lvbikpIHtcbiAgICAgIHJlc29sdmUoeyBzY29yZTogMCwgZW1wdHk6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFydGlhbFNjb3JpbmdFbmFibGVkID0gcGFydGlhbFNjb3JpbmcuZW5hYmxlZChtb2RlbCwgZW52KTtcbiAgICBjb25zdCBzY29yZSA9IGdldFNjb3JlKG1vZGVsLCBzZXNzaW9uKTtcblxuICAgIHJlc29sdmUoe1xuICAgICAgc2NvcmU6IHBhcnRpYWxTY29yaW5nRW5hYmxlZCA/IHNjb3JlIDogTWF0aC5mbG9vcihzY29yZSksXG4gICAgICBlbXB0eTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiA9IChxdWVzdGlvbiwgZW52KSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmIChlbnYubW9kZSAhPT0gJ2V2YWx1YXRlJyAmJiBlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InKSB7XG4gICAgICBjb25zdCB7IGNob2ljZXMgfSA9IHF1ZXN0aW9uO1xuICAgICAgY29uc3QgdmFsdWUgPSB7fTtcblxuICAgICAgaWYgKGNob2ljZXMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY2hvaWNlcykuZm9yRWFjaCgoa2V5LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29ycmVjdENob2ljZXMgPSBjaG9pY2VzW2tleV0gJiYgY2hvaWNlc1trZXldLmZpbHRlcigoYykgPT4gYy5jb3JyZWN0KTtcblxuICAgICAgICAgIHZhbHVlW2ldID0gY29ycmVjdENob2ljZXMgJiYgY29ycmVjdENob2ljZXNbMF0udmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgdmFsdWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICB9XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlID0gKG1vZGVsID0ge30sIGNvbmZpZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHsgbWFya3VwLCBjaG9pY2VzIH0gPSBtb2RlbDtcbiAgY29uc3QgeyBtYXhSZXNwb25zZUFyZWFzLCBtYXhSZXNwb25zZUFyZWFDaG9pY2VzIH0gPSBjb25maWc7XG4gIGNvbnN0IGVycm9ycyA9IHt9O1xuXG4gIGNvbnN0IG5iT2ZSZXNwb25zZUFyZWFzID0gKChtYXJrdXAgfHwgJycpLm1hdGNoKC9cXHtcXHsoXFxkKylcXH1cXH0vZykgfHwgW10pLmxlbmd0aDtcblxuICBpZiAobmJPZlJlc3BvbnNlQXJlYXMgPiBtYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgZXJyb3JzLnJlc3BvbnNlQXJlYXNFcnJvciA9IGBObyBtb3JlIHRoYW4gJHttYXhSZXNwb25zZUFyZWFzfSByZXNwb25zZSBhcmVhcyBzaG91bGQgYmUgZGVmaW5lZC5gO1xuICB9IGVsc2UgaWYgKG5iT2ZSZXNwb25zZUFyZWFzIDwgMSkge1xuICAgIGVycm9ycy5yZXNwb25zZUFyZWFzRXJyb3IgPSAnVGhlcmUgc2hvdWxkIGJlIGRlZmluZWQgYXQgbGVhc3QgMSByZXNwb25zZSBhcmVhLic7XG4gIH1cblxuICAoT2JqZWN0LmtleXMoY2hvaWNlcykgfHwgW10pLmZvckVhY2goKGNob2ljZUtleSkgPT4ge1xuICAgIGlmIChjaG9pY2VzW2Nob2ljZUtleV0gJiYgY2hvaWNlc1tjaG9pY2VLZXldLmxlbmd0aCA+IG1heFJlc3BvbnNlQXJlYUNob2ljZXMpIHtcbiAgICAgIGVycm9ycy5yZXNwb25zZUFyZWFDaG9pY2VzRXJyb3IgPSBgTm8gbW9yZSB0aGFuICR7bWF4UmVzcG9uc2VBcmVhQ2hvaWNlc30gY2hvaWNlcyBwZXIgcmVzcG9uc2UgYXJlYSBzaG91bGQgYmUgZGVmaW5lZC5gO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVycm9ycztcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFpRCxTQUFBSyxRQUFBQyxNQUFBLEVBQUFDLGNBQUEsUUFBQUMsSUFBQSxHQUFBQyxNQUFBLENBQUFELElBQUEsQ0FBQUYsTUFBQSxPQUFBRyxNQUFBLENBQUFDLHFCQUFBLFFBQUFDLE9BQUEsR0FBQUYsTUFBQSxDQUFBQyxxQkFBQSxDQUFBSixNQUFBLEdBQUFDLGNBQUEsS0FBQUksT0FBQSxHQUFBQSxPQUFBLENBQUFDLE1BQUEsV0FBQUMsR0FBQSxXQUFBSixNQUFBLENBQUFLLHdCQUFBLENBQUFSLE1BQUEsRUFBQU8sR0FBQSxFQUFBRSxVQUFBLE9BQUFQLElBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULElBQUEsRUFBQUcsT0FBQSxZQUFBSCxJQUFBO0FBQUEsU0FBQVUsY0FBQUMsTUFBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFGLENBQUEsVUFBQUcsTUFBQSxXQUFBRixTQUFBLENBQUFELENBQUEs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
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getAllCorrectResponses = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _forEach = _interopRequireDefault(require("lodash/forEach"));
10
+ var getAllCorrectResponses = function getAllCorrectResponses(_ref) {
11
+ var choices = _ref.choices,
12
+ alternateResponse = _ref.alternateResponse;
13
+ alternateResponse = alternateResponse || {};
14
+ var correctAnswers = {};
15
+ (0, _forEach["default"])(choices, function (respArea, key) {
16
+ if (!correctAnswers[key]) {
17
+ correctAnswers[key] = [];
18
+ }
19
+ if (respArea) {
20
+ respArea.forEach(function (choice) {
21
+ if (choice.correct) {
22
+ correctAnswers[key].push(choice.value);
23
+ if (alternateResponse[key]) {
24
+ correctAnswers[key] = [].concat((0, _toConsumableArray2["default"])(correctAnswers[key]), (0, _toConsumableArray2["default"])(alternateResponse[key]));
25
+ }
26
+ }
27
+ });
28
+ }
29
+ });
30
+ return correctAnswers;
31
+ };
32
+ exports.getAllCorrectResponses = getAllCorrectResponses;
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZm9yRWFjaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZ2V0QWxsQ29ycmVjdFJlc3BvbnNlcyIsIl9yZWYiLCJjaG9pY2VzIiwiYWx0ZXJuYXRlUmVzcG9uc2UiLCJjb3JyZWN0QW5zd2VycyIsImZvckVhY2giLCJyZXNwQXJlYSIsImtleSIsImNob2ljZSIsImNvcnJlY3QiLCJwdXNoIiwidmFsdWUiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZm9yRWFjaCBmcm9tICdsb2Rhc2gvZm9yRWFjaCc7XG5cbmV4cG9ydCBjb25zdCBnZXRBbGxDb3JyZWN0UmVzcG9uc2VzID0gKHsgY2hvaWNlcywgYWx0ZXJuYXRlUmVzcG9uc2UgfSkgPT4ge1xuICBhbHRlcm5hdGVSZXNwb25zZSA9IGFsdGVybmF0ZVJlc3BvbnNlIHx8IHt9O1xuICBjb25zdCBjb3JyZWN0QW5zd2VycyA9IHt9O1xuXG4gIGZvckVhY2goY2hvaWNlcywgKHJlc3BBcmVhLCBrZXkpID0+IHtcbiAgICBpZiAoIWNvcnJlY3RBbnN3ZXJzW2tleV0pIHtcbiAgICAgIGNvcnJlY3RBbnN3ZXJzW2tleV0gPSBbXTtcbiAgICB9XG5cbiAgICBpZiAocmVzcEFyZWEpIHtcbiAgICAgIHJlc3BBcmVhLmZvckVhY2goKGNob2ljZSkgPT4ge1xuICAgICAgICBpZiAoY2hvaWNlLmNvcnJlY3QpIHtcbiAgICAgICAgICBjb3JyZWN0QW5zd2Vyc1trZXldLnB1c2goY2hvaWNlLnZhbHVlKTtcblxuICAgICAgICAgIGlmIChhbHRlcm5hdGVSZXNwb25zZVtrZXldKSB7XG4gICAgICAgICAgICBjb3JyZWN0QW5zd2Vyc1trZXldID0gWy4uLmNvcnJlY3RBbnN3ZXJzW2tleV0sIC4uLmFsdGVybmF0ZVJlc3BvbnNlW2tleV1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY29ycmVjdEFuc3dlcnM7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVPLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUFDLElBQUEsRUFBdUM7RUFBQSxJQUFqQ0MsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFBRUMsaUJBQWlCLEdBQUFGLElBQUEsQ0FBakJFLGlCQUFpQjtFQUNqRUEsaUJBQWlCLEdBQUdBLGlCQUFpQixJQUFJLENBQUMsQ0FBQztFQUMzQyxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0VBRXpCLElBQUFDLG1CQUFPLEVBQUNILE9BQU8sRUFBRSxVQUFDSSxRQUFRLEVBQUVDLEdBQUcsRUFBSztJQUNsQyxJQUFJLENBQUNILGNBQWMsQ0FBQ0csR0FBRyxDQUFDLEVBQUU7TUFDeEJILGNBQWMsQ0FBQ0csR0FBRyxDQUFDLEdBQUcsRUFBRTtJQUMxQjtJQUVBLElBQUlELFFBQVEsRUFBRTtNQUNaQSxRQUFRLENBQUNELE9BQU8sQ0FBQyxVQUFDRyxNQUFNLEVBQUs7UUFDM0IsSUFBSUEsTUFBTSxDQUFDQyxPQUFPLEVBQUU7VUFDbEJMLGNBQWMsQ0FBQ0csR0FBRyxDQUFDLENBQUNHLElBQUksQ0FBQ0YsTUFBTSxDQUFDRyxLQUFLLENBQUM7VUFFdEMsSUFBSVIsaUJBQWlCLENBQUNJLEdBQUcsQ0FBQyxFQUFFO1lBQzFCSCxjQUFjLENBQUNHLEdBQUcsQ0FBQyxNQUFBSyxNQUFBLEtBQUFDLG1CQUFBLGFBQU9ULGNBQWMsQ0FBQ0csR0FBRyxDQUFDLE9BQUFNLG1CQUFBLGFBQUtWLGlCQUFpQixDQUFDSSxHQUFHLENBQUMsRUFBQztVQUMzRTtRQUNGO01BQ0YsQ0FBQyxDQUFDO0lBQ0o7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPSCxjQUFjO0FBQ3ZCLENBQUM7QUFBQ1UsT0FBQSxDQUFBZCxzQkFBQSxHQUFBQSxzQkFBQSJ9
@@ -0,0 +1,11 @@
1
+ {
2
+ "hash": "1884587521",
3
+ "info": [
4
+ {
5
+ "pie": "@pie-element/inline-dropdown",
6
+ "version": {
7
+ "requested": "latest"
8
+ }
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _enzyme = require("enzyme");
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _inlineDropdown = require("../inline-dropdown");
8
+ 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; }
9
+ 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; }
10
+ describe('InlineDropdown', function () {
11
+ var wrapper;
12
+ var onChange = jest.fn();
13
+ beforeAll(function () {
14
+ wrapper = function wrapper(extra) {
15
+ var props = _objectSpread({
16
+ classes: {},
17
+ prompt: 'Prompt',
18
+ rationale: 'Rationale',
19
+ teacherInstructions: 'Teacher Instructions',
20
+ disabled: false,
21
+ choices: {
22
+ 0: [{
23
+ label: 'cow ',
24
+ value: '0',
25
+ correct: true,
26
+ rationale: 'rationale cow'
27
+ }, {
28
+ label: 'dog ',
29
+ value: '1',
30
+ correct: false
31
+ }, {
32
+ label: 'cat ',
33
+ value: '2',
34
+ correct: false
35
+ }],
36
+ 1: [{
37
+ label: 'over ',
38
+ value: '0',
39
+ correct: true,
40
+ rationale: 'rationale over'
41
+ }, {
42
+ label: 'under ',
43
+ value: '1',
44
+ correct: false
45
+ }, {
46
+ label: 'across ',
47
+ value: '2',
48
+ correct: false
49
+ }],
50
+ 2: [{
51
+ label: 'moon ',
52
+ value: '0',
53
+ correct: true,
54
+ rationale: 'rationale moon'
55
+ }, {
56
+ label: 'sun',
57
+ value: '2',
58
+ correct: false
59
+ }, {
60
+ label: 'house ',
61
+ value: '3',
62
+ correct: false
63
+ }]
64
+ },
65
+ markup: '<div><p>The {{0}} jumped {{1}} the {{2}}</p></div>',
66
+ mode: 'gather',
67
+ feedback: {
68
+ 0: 'correct',
69
+ 1: 'correct',
70
+ 2: 'correct'
71
+ },
72
+ value: {
73
+ 0: '1',
74
+ 1: '0',
75
+ 2: '0'
76
+ },
77
+ onChange: onChange
78
+ }, extra);
79
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_inlineDropdown.InlineDropdown, props));
80
+ };
81
+ });
82
+ describe('render', function () {
83
+ it('should render in gather mode', function () {
84
+ expect(wrapper()).toMatchSnapshot();
85
+ });
86
+ it('should render in view mode', function () {
87
+ expect(wrapper({
88
+ mode: 'view'
89
+ })).toMatchSnapshot();
90
+ });
91
+ it('should render in evaluate mode', function () {
92
+ expect(wrapper({
93
+ mode: 'evaluate'
94
+ })).toMatchSnapshot();
95
+ });
96
+ it('should render without teacher instructions', function () {
97
+ expect(wrapper({
98
+ teacherInstructions: null
99
+ })).toMatchSnapshot();
100
+ });
101
+ it('should render without rationale', function () {
102
+ expect(wrapper({
103
+ rationale: null
104
+ })).toMatchSnapshot();
105
+ });
106
+ it('should render without prompt', function () {
107
+ expect(wrapper({
108
+ prompt: null
109
+ })).toMatchSnapshot();
110
+ });
111
+ });
112
+ });
113
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZW56eW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW5saW5lRHJvcGRvd24iLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImRlc2NyaWJlIiwid3JhcHBlciIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiYmVmb3JlQWxsIiwiZXh0cmEiLCJwcm9wcyIsImNsYXNzZXMiLCJwcm9tcHQiLCJyYXRpb25hbGUiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiZGlzYWJsZWQiLCJjaG9pY2VzIiwibGFiZWwiLCJ2YWx1ZSIsImNvcnJlY3QiLCJtYXJrdXAiLCJtb2RlIiwiZmVlZGJhY2siLCJzaGFsbG93IiwiY3JlYXRlRWxlbWVudCIsIklubGluZURyb3Bkb3duIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2lubGluZS1kcm9wZG93bi50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IElubGluZURyb3Bkb3duIH0gZnJvbSAnLi4vaW5saW5lLWRyb3Bkb3duJztcblxuZGVzY3JpYmUoJ0lubGluZURyb3Bkb3duJywgKCkgPT4ge1xuICBsZXQgd3JhcHBlcjtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IChleHRyYSkgPT4ge1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICBwcm9tcHQ6ICdQcm9tcHQnLFxuICAgICAgICByYXRpb25hbGU6ICdSYXRpb25hbGUnLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAnVGVhY2hlciBJbnN0cnVjdGlvbnMnLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNob2ljZXM6IHtcbiAgICAgICAgICAwOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnY293ICcsXG4gICAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICAgICAgICAgIHJhdGlvbmFsZTogJ3JhdGlvbmFsZSBjb3cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdkb2cgJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ2NhdCAnLFxuICAgICAgICAgICAgICB2YWx1ZTogJzInLFxuICAgICAgICAgICAgICBjb3JyZWN0OiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICAxOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnb3ZlciAnLFxuICAgICAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgICAgICAgICByYXRpb25hbGU6ICdyYXRpb25hbGUgb3ZlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ3VuZGVyICcsXG4gICAgICAgICAgICAgIHZhbHVlOiAnMScsXG4gICAgICAgICAgICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdhY3Jvc3MgJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcyJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgMjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ21vb24gJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmF0aW9uYWxlOiAncmF0aW9uYWxlIG1vb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdzdW4nLFxuICAgICAgICAgICAgICB2YWx1ZTogJzInLFxuICAgICAgICAgICAgICBjb3JyZWN0OiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnaG91c2UgJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICczJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIG1hcmt1cDogJzxkaXY+PHA+VGhlIHt7MH19IGp1bXBlZCB7ezF9fSB0aGUge3syfX08L3A+PC9kaXY+JyxcbiAgICAgICAgbW9kZTogJ2dhdGhlcicsXG4gICAgICAgIGZlZWRiYWNrOiB7IDA6ICdjb3JyZWN0JywgMTogJ2NvcnJlY3QnLCAyOiAnY29ycmVjdCcgfSxcbiAgICAgICAgdmFsdWU6IHsgMDogJzEnLCAxOiAnMCcsIDI6ICcwJyB9LFxuICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgLi4uZXh0cmEsXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc2hhbGxvdyg8SW5saW5lRHJvcGRvd24gey4uLnByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlbmRlciBpbiBnYXRoZXIgbW9kZScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgaW4gdmlldyBtb2RlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyBtb2RlOiAndmlldycgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgaW4gZXZhbHVhdGUgbW9kZScsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKHsgbW9kZTogJ2V2YWx1YXRlJyB9KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciB3aXRob3V0IHRlYWNoZXIgaW5zdHJ1Y3Rpb25zJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiBudWxsIH0pKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIHdpdGhvdXQgcmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyByYXRpb25hbGU6IG51bGwgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgd2l0aG91dCBwcm9tcHQnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcih7IHByb21wdDogbnVsbCB9KSkudG9NYXRjaFNuYXBz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
package/lib/index.js ADDED
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _reactDom = _interopRequireDefault(require("react-dom"));
18
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
19
+ var _mathRendering = require("@pie-lib/math-rendering");
20
+ var _inlineDropdown = _interopRequireDefault(require("./inline-dropdown"));
21
+ 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); }; }
22
+ 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; } }
23
+ var RootInlineDropdown = /*#__PURE__*/function (_HTMLElement) {
24
+ (0, _inherits2["default"])(RootInlineDropdown, _HTMLElement);
25
+ var _super = _createSuper(RootInlineDropdown);
26
+ function RootInlineDropdown() {
27
+ var _this;
28
+ (0, _classCallCheck2["default"])(this, RootInlineDropdown);
29
+ _this = _super.call(this);
30
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_render", function () {
31
+ if (_this._model && _this._session) {
32
+ var elem = /*#__PURE__*/_react["default"].createElement(_inlineDropdown["default"], {
33
+ prompt: _this._model.prompt,
34
+ rationale: _this._model.rationale,
35
+ teacherInstructions: _this._model.teacherInstructions,
36
+ disabled: _this._model.disabled,
37
+ displayType: _this._model.displayType,
38
+ markup: _this._model.markup,
39
+ mode: _this._model.mode,
40
+ choices: _this._model.choices,
41
+ value: _this._session.value,
42
+ feedback: _this._model.feedback,
43
+ onChange: _this.changeSession
44
+ });
45
+ _reactDom["default"].render(elem, (0, _assertThisInitialized2["default"])(_this), function () {
46
+ (0, _mathRendering.renderMath)((0, _assertThisInitialized2["default"])(_this));
47
+ });
48
+ }
49
+ });
50
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dispatchChangedEvent", function () {
51
+ _this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(_this.tagName.toLowerCase(), _this.session && !!_this.session.value));
52
+ });
53
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSession", function (value) {
54
+ _this.session.value = value;
55
+ _this.dispatchChangedEvent();
56
+ _this._render();
57
+ });
58
+ _this._model = null;
59
+ _this._session = null;
60
+ return _this;
61
+ }
62
+ (0, _createClass2["default"])(RootInlineDropdown, [{
63
+ key: "model",
64
+ set: function set(m) {
65
+ this._model = m;
66
+ this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model));
67
+ this._render();
68
+ }
69
+ }, {
70
+ key: "session",
71
+ get: function get() {
72
+ return this._session;
73
+ },
74
+ set: function set(s) {
75
+ this._session = s;
76
+ this._render();
77
+ }
78
+ }, {
79
+ key: "connectedCallback",
80
+ value: function connectedCallback() {
81
+ this._render();
82
+ }
83
+ }]);
84
+ return RootInlineDropdown;
85
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
86
+ exports["default"] = RootInlineDropdown;
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdERvbSIsIl9waWVQbGF5ZXJFdmVudHMiLCJfbWF0aFJlbmRlcmluZyIsIl9pbmxpbmVEcm9wZG93biIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIl9jcmVhdGVTdXBlckludGVybmFsIiwiU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwicmVzdWx0IiwiTmV3VGFyZ2V0IiwiY29uc3RydWN0b3IiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJlIiwiUm9vdElubGluZURyb3Bkb3duIiwiX0hUTUxFbGVtZW50IiwiX2luaGVyaXRzMiIsIl9zdXBlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiIsIl9tb2RlbCIsIl9zZXNzaW9uIiwiZWxlbSIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIklubGluZURyb3Bkb3duIiwicHJvbXB0IiwicmF0aW9uYWxlIiwidGVhY2hlckluc3RydWN0aW9ucyIsImRpc2FibGVkIiwiZGlzcGxheVR5cGUiLCJtYXJrdXAiLCJtb2RlIiwiY2hvaWNlcyIsInZhbHVlIiwiZmVlZGJhY2siLCJvbkNoYW5nZSIsImNoYW5nZVNlc3Npb24iLCJSZWFjdERPTSIsInJlbmRlciIsInJlbmRlck1hdGgiLCJkaXNwYXRjaEV2ZW50IiwiU2Vzc2lvbkNoYW5nZWRFdmVudCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsInNlc3Npb24iLCJkaXNwYXRjaENoYW5nZWRFdmVudCIsIl9yZW5kZXIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5Iiwic2V0IiwibSIsIk1vZGVsU2V0RXZlbnQiLCJnZXQiLCJzIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJfd3JhcE5hdGl2ZVN1cGVyMiIsIkhUTUxFbGVtZW50IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBNb2RlbFNldEV2ZW50LCBTZXNzaW9uQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLXBsYXllci1ldmVudHMnO1xuaW1wb3J0IHsgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcbmltcG9ydCBJbmxpbmVEcm9wZG93biBmcm9tICcuL2lubGluZS1kcm9wZG93bic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvb3RJbmxpbmVEcm9wZG93biBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9tb2RlbCA9IG51bGw7XG4gICAgdGhpcy5fc2Vzc2lvbiA9IG51bGw7XG4gIH1cblxuICBzZXQgbW9kZWwobSkge1xuICAgIHRoaXMuX21vZGVsID0gbTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgTW9kZWxTZXRFdmVudCh0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSwgdGhpcy5zZXNzaW9uICYmICEhdGhpcy5zZXNzaW9uLnZhbHVlLCAhIXRoaXMuX21vZGVsKSxcbiAgICApO1xuXG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBzZXQgc2Vzc2lvbihzKSB7XG4gICAgdGhpcy5fc2Vzc2lvbiA9IHM7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBnZXQgc2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbjtcbiAgfVxuXG4gIF9yZW5kZXIgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuX21vZGVsICYmIHRoaXMuX3Nlc3Npb24pIHtcbiAgICAgIGxldCBlbGVtID0gUmVhY3QuY3JlYXRlRWxlbWVudChJbmxpbmVEcm9wZG93biwge1xuICAgICAgICBwcm9tcHQ6IHRoaXMuX21vZGVsLnByb21wdCxcbiAgICAgICAgcmF0aW9uYWxlOiB0aGlzLl9tb2RlbC5yYXRpb25hbGUsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHRoaXMuX21vZGVsLnRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLl9tb2RlbC5kaXNhYmxlZCxcbiAgICAgICAgZGlzcGxheVR5cGU6IHRoaXMuX21vZGVsLmRpc3BsYXlUeXBlLFxuICAgICAgICBtYXJrdXA6IHRoaXMuX21vZGVsLm1hcmt1cCxcbiAgICAgICAgbW9kZTogdGhpcy5fbW9kZWwubW9kZSxcbiAgICAgICAgY2hvaWNlczogdGhpcy5fbW9kZWwuY2hvaWNlcyxcbiAgICAgICAgdmFsdWU6IHRoaXMuX3Nlc3Npb24udmFsdWUsXG4gICAgICAgIGZlZWRiYWNrOiB0aGlzLl9tb2RlbC5mZWVkYmFjayxcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuY2hhbmdlU2Vzc2lvbixcbiAgICAgIH0pO1xuXG4gICAgICBSZWFjdERPTS5yZW5kZXIoZWxlbSwgdGhpcywgKCkgPT4ge1xuICAgICAgICByZW5kZXJNYXRoKHRoaXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGRpc3BhdGNoQ2hhbmdlZEV2ZW50ID0gKCkgPT4ge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgU2Vzc2lvbkNoYW5nZWRFdmVudCh0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSwgdGhpcy5zZXNzaW9uICYmICEhdGhpcy5zZXNzaW9uLnZhbHVlKSk7XG4gIH07XG5cbiAgY2hhbmdlU2Vzc2lvbiA9ICh2YWx1ZSkgPT4ge1xuICAgIHRoaXMuc2Vzc2lvbi52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2VkRXZlbnQoKTtcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfTtcblxuICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQStDLFNBQUFLLGFBQUFDLE9BQUEsUUFBQUMseUJBQUEsR0FBQUMseUJBQUEsb0JBQUFDLHFCQUFBLFFBQUFDLEtBQUEsT0FBQUMsZ0JBQUEsYUFBQUwsT0FBQSxHQUFBTSxNQUFBLE1BQUFMLHlCQUFBLFFBQUFNLFNBQUEsT0FBQUYsZ0JBQUEsbUJBQUFHLFdBQUEsRUFBQUYsTUFBQSxHQUFBRyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sS0FBQSxFQUFBTyxTQUFBLEVBQUFKLFNBQUEsWUFBQUQsTUFBQSxHQUFBRixLQUFBLENBQUFRLEtBQUEsT0FBQUQsU0FBQSxnQkFBQUUsMkJBQUEsbUJBQUFQLE1BQUE7QUFBQSxTQUFBSiwwQkFBQSxlQUFBTyxPQUFBLHFCQUFBQSxPQUFBLENBQUFDLFNBQUEsb0JBQUFELE9BQUEsQ0FBQUMsU0FBQSxDQUFBSSxJQUFBLDJCQUFBQyxLQUFBLG9DQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FBQSxDQUFBQyxJQUFBLENBQUFWLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTSxPQUFBLDhDQUFBSSxDQUFBO0FBQUEsSUFFMUJDLGtCQUFrQiwwQkFBQUMsWUFBQTtFQUFBLElBQUFDLFVBQUEsYUFBQUYsa0JBQUEsRUFBQUMsWUFBQTtFQUFBLElB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