@gamelearn/arcade-components 0.4.0 → 0.4.2-beta-terminal

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/components/arcade-render/element/AnimateElement.js +6 -2
  2. package/dist/components/arcade-render/element/index.js +10 -18
  3. package/dist/components/arcade-render/loading/LoadingLogic.js +28 -1
  4. package/dist/components/arcade-render/mocks/index.js +3 -3
  5. package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +73 -0
  6. package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +155 -0
  7. package/dist/components/chained-image-click-puzzle-component/index.js +13 -0
  8. package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +163 -0
  9. package/dist/components/comic-component/mocks/mockForStory.js +4 -4
  10. package/dist/components/conversational-pro-component/components/scene/Panel.js +3 -0
  11. package/dist/components/conversational-pro-component/mocks/mockForStory.js +20 -20
  12. package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +329 -0
  13. package/dist/components/drag-item-puzzle-component/components/Messages.js +55 -0
  14. package/dist/components/drag-item-puzzle-component/index.js +13 -0
  15. package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +79 -0
  16. package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +1 -1
  17. package/dist/components/image-click-wrapper-component/components/Area/index.js +1 -1
  18. package/dist/components/image-click-wrapper-component/components/Feedback/index.js +4 -5
  19. package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +31 -17
  20. package/dist/components/image-component/mocks/mockForStory.js +3 -3
  21. package/dist/components/index.js +40 -0
  22. package/dist/components/inventory-item/components/InventoryItem.js +2 -1
  23. package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -1
  24. package/dist/components/login-puzzle-component/mocks/mockForStory.js +3 -3
  25. package/dist/components/pdf-component/components/PdfComponent.js +40 -7
  26. package/dist/components/pdf-component/components/PdfVisor.js +86 -33
  27. package/dist/components/pdf-component/mocks/mockForProps.js +21 -5
  28. package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +32 -0
  29. package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +74 -0
  30. package/dist/components/terminal-puzzle-component/components/Image/index.js +26 -0
  31. package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +163 -0
  32. package/dist/components/terminal-puzzle-component/components/Visor/index.js +133 -0
  33. package/dist/components/terminal-puzzle-component/components/utils/index.js +29 -0
  34. package/dist/components/terminal-puzzle-component/index.js +13 -0
  35. package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +190 -0
  36. package/dist/components/video-component/mocks/mockForStory.js +5 -5
  37. package/dist/components/video-visor/mocks/mockForStory.js +4 -4
  38. package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +99 -0
  39. package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +113 -0
  40. package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +122 -0
  41. package/dist/components/web-builder-puzzle-component/Popups/index.js +31 -0
  42. package/dist/components/web-builder-puzzle-component/Templates/Bank.js +98 -0
  43. package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +39 -0
  44. package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +9 -0
  45. package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +28 -0
  46. package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +38 -0
  47. package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +29 -0
  48. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +124 -0
  49. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +154 -0
  50. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +32 -0
  51. package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +98 -0
  52. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +92 -0
  53. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +50 -0
  54. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +47 -0
  55. package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +337 -0
  56. package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +36 -0
  57. package/dist/components/web-builder-puzzle-component/index.js +13 -0
  58. package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +29 -0
  59. package/dist/components/writer-puzzle-component/components/ElectionComponent.js +89 -0
  60. package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +138 -0
  61. package/dist/components/writer-puzzle-component/components/FeedbackElement.js +40 -0
  62. package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +36 -0
  63. package/dist/components/writer-puzzle-component/components/FixedComponent.js +166 -0
  64. package/dist/components/writer-puzzle-component/components/Rewards.js +203 -0
  65. package/dist/components/writer-puzzle-component/components/SingleElection.js +141 -0
  66. package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +552 -0
  67. package/dist/components/writer-puzzle-component/index.js +13 -0
  68. package/dist/components/writer-puzzle-component/mocks/mockForStory.js +861 -0
  69. package/dist/helpers/drawLOD.js +35 -47
  70. package/dist/helpers/useGLB.js +22 -8
  71. package/package.json +6 -14
@@ -0,0 +1,552 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _FixedComponent = _interopRequireDefault(require("./FixedComponent"));
15
+
16
+ var _ElectionComponent = _interopRequireDefault(require("./ElectionComponent"));
17
+
18
+ var _FeedbackComponent = _interopRequireDefault(require("./FeedbackComponent"));
19
+
20
+ var _FinishedTextComponent = _interopRequireDefault(require("./FinishedTextComponent"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
25
+
26
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
29
+
30
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
+
32
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
33
+
34
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
+
40
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
+
42
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
+
44
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
45
+
46
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
47
+
48
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
49
+
50
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
51
+
52
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
53
+
54
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
55
+
56
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
57
+
58
+ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
59
+ var emitEvent = _ref.emitEvent,
60
+ info = _ref.info,
61
+ styles = _ref.styles,
62
+ nodeId = _ref.nodeId,
63
+ retry = _ref.retry,
64
+ skip = _ref.skip,
65
+ type = _ref.type,
66
+ documentTitle = _ref.documentTitle,
67
+ texts = _ref.texts,
68
+ props = _objectWithoutProperties(_ref, ["emitEvent", "info", "styles", "nodeId", "retry", "skip", "type", "documentTitle", "texts"]);
69
+
70
+ var translate = function translate(id) {
71
+ return emitEvent({
72
+ type: 'translate',
73
+ payload: id
74
+ });
75
+ };
76
+
77
+ var automaticScroll = (0, _react.useRef)();
78
+
79
+ var _useState = (0, _react.useState)(false),
80
+ _useState2 = _slicedToArray(_useState, 2),
81
+ finished = _useState2[0],
82
+ setFinished = _useState2[1];
83
+
84
+ var _useState3 = (0, _react.useState)(false),
85
+ _useState4 = _slicedToArray(_useState3, 2),
86
+ failed = _useState4[0],
87
+ _setFailed = _useState4[1];
88
+
89
+ var _useState5 = (0, _react.useState)(0),
90
+ _useState6 = _slicedToArray(_useState5, 2),
91
+ currenTextParagraph = _useState6[0],
92
+ setCurrentTextParagraph = _useState6[1];
93
+
94
+ var _useState7 = (0, _react.useState)(_defineProperty({}, "text_".concat(currenTextParagraph), _objectSpread(_objectSpread({}, texts[currenTextParagraph]), {}, {
95
+ id: "text_".concat(currenTextParagraph),
96
+ correct: ''
97
+ }))),
98
+ _useState8 = _slicedToArray(_useState7, 2),
99
+ textHolder = _useState8[0],
100
+ setTextHolder = _useState8[1];
101
+
102
+ var _useState10 = (0, _react.useState)(false),
103
+ _useState11 = _slicedToArray(_useState10, 2),
104
+ doneTyping = _useState11[0],
105
+ setDoneTyping = _useState11[1];
106
+
107
+ var _useState12 = (0, _react.useState)([]),
108
+ _useState13 = _slicedToArray(_useState12, 2),
109
+ decisionsList = _useState13[0],
110
+ setDecisionsList = _useState13[1];
111
+
112
+ var _useState14 = (0, _react.useState)(false),
113
+ _useState15 = _slicedToArray(_useState14, 2),
114
+ reviewDone = _useState15[0],
115
+ setReviewDone = _useState15[1];
116
+
117
+ var _useState16 = (0, _react.useState)(false),
118
+ _useState17 = _slicedToArray(_useState16, 2),
119
+ showFeedback = _useState17[0],
120
+ setShowFeedback = _useState17[1];
121
+
122
+ var _useState18 = (0, _react.useState)(false),
123
+ _useState19 = _slicedToArray(_useState18, 2),
124
+ feedbackScreen = _useState19[0],
125
+ setFeedbackScreen = _useState19[1];
126
+
127
+ var _useState20 = (0, _react.useState)(false),
128
+ _useState21 = _slicedToArray(_useState20, 2),
129
+ feedbackScreenDone = _useState21[0],
130
+ setFeedbackScreenDone = _useState21[1];
131
+
132
+ var _useState22 = (0, _react.useState)(true),
133
+ _useState23 = _slicedToArray(_useState22, 2),
134
+ isActive = _useState23[0],
135
+ setIsActive = _useState23[1];
136
+
137
+ var _useState24 = (0, _react.useState)([]),
138
+ _useState25 = _slicedToArray(_useState24, 2),
139
+ rewardsStack = _useState25[0],
140
+ setRewardsStack = _useState25[1];
141
+
142
+ var _useState26 = (0, _react.useState)(true),
143
+ _useState27 = _slicedToArray(_useState26, 2),
144
+ disableExit = _useState27[0],
145
+ setDisableExit = _useState27[1];
146
+
147
+ (0, _react.useEffect)(function () {
148
+ if (finished) {
149
+ setDisableExit(false);
150
+ }
151
+ }, [finished]);
152
+
153
+ var getCorrectElection = function getCorrectElection(element) {
154
+ var electionIndex;
155
+ element.electionTexts.forEach(function (election, index) {
156
+ if (election.correct) {
157
+ electionIndex = index;
158
+ }
159
+ });
160
+ return electionIndex;
161
+ };
162
+
163
+ var getFullTextFormDecisionList = function getFullTextFormDecisionList(indexOfText) {
164
+ var currentDecision = decisionsList.filter(function (obj) {
165
+ return obj.currenTextParagraph === indexOfText;
166
+ });
167
+ return currentDecision[0].fullText;
168
+ };
169
+
170
+ var createLecture = function createLecture() {
171
+ return texts.map(function (element, indexOfText) {
172
+ if (element.type === 'fixed') {
173
+ if (element.fullText) {
174
+ return element.fullText;
175
+ }
176
+ } else if (element.type === 'election') {
177
+ var correctElection = getCorrectElection(element);
178
+
179
+ if (correctElection) {
180
+ return element.electionTexts[correctElection].fullText;
181
+ } // If there is no correct Election then it should pick the election of student
182
+
183
+
184
+ return getFullTextFormDecisionList(indexOfText);
185
+ }
186
+
187
+ return '';
188
+ });
189
+ };
190
+
191
+ var fixedDelay = 2;
192
+
193
+ var checkAllDecisionsRightWrong = function checkAllDecisionsRightWrong() {
194
+ if (decisionsList) {
195
+ var maxCounter = decisionsList.length;
196
+ var rightCounter = 0;
197
+
198
+ for (var i = 0; i < maxCounter; i += 1) {
199
+ if (decisionsList[i].isCorrect === 'none') {
200
+ rightCounter += 1;
201
+ }
202
+ }
203
+
204
+ return !!(rightCounter === maxCounter);
205
+ }
206
+
207
+ return true;
208
+ };
209
+
210
+ var checkAllDecisionsAreCorrect = function checkAllDecisionsAreCorrect() {
211
+ if (decisionsList) {
212
+ var maxCounter = decisionsList.length;
213
+ var rightCounter = 0;
214
+
215
+ for (var i = 0; i < maxCounter; i += 1) {
216
+ if (decisionsList[i].isCorrect === 'green') {
217
+ rightCounter += 1;
218
+ }
219
+ }
220
+
221
+ return !!(rightCounter === maxCounter);
222
+ }
223
+
224
+ return true;
225
+ };
226
+
227
+ var checkIfFeedbackNeeded = function checkIfFeedbackNeeded() {
228
+ return !!(decisionsList && decisionsList.length);
229
+ };
230
+
231
+ var checkFeedbackScreen = function checkFeedbackScreen() {
232
+ return decisionsList.find(function (decision) {
233
+ var feedback = texts[decision.currenTextParagraph].electionTexts[decision.index].feedback;
234
+ return feedback.body !== null || feedback.rewards && feedback.rewards.length > 0;
235
+ });
236
+ };
237
+
238
+ var handleLectures = function handleLectures() {
239
+ var text = createLecture();
240
+ emitEvent({
241
+ type: 'finishLecture??',
242
+ payload: {
243
+ name: documentTitle,
244
+ text: text,
245
+ documentType: type
246
+ }
247
+ });
248
+ };
249
+
250
+ var endPoints = function endPoints() {
251
+ var accumulatedRewards;
252
+
253
+ if (info.solution && info.solution.right) {
254
+ var rewards = info.solution.right.rewards;
255
+
256
+ if (rewards && Array.isArray(rewards) && rewards.length) {
257
+ accumulatedRewards = Array.from(rewards.concat(rewardsStack));
258
+ } else {
259
+ accumulatedRewards = Array.from(rewardsStack);
260
+ }
261
+ } else {
262
+ accumulatedRewards = Array.from(rewardsStack);
263
+ }
264
+
265
+ var wrongRewards = info.solution.wrong.rewards;
266
+ var rightRewards = info.solution.right.rewards;
267
+ var AllDecisionsCorrect = checkAllDecisionsAreCorrect(); // if any is wrong count as wrong if there are no individual points assigned
268
+
269
+ var pointsToEmit = [];
270
+
271
+ if (failed) {
272
+ pointsToEmit = accumulatedRewards;
273
+ } else {
274
+ pointsToEmit = AllDecisionsCorrect ? rightRewards : wrongRewards;
275
+ }
276
+
277
+ emitEvent({
278
+ type: 'addPoints',
279
+ payload: pointsToEmit
280
+ });
281
+ };
282
+
283
+ var endGame = function endGame() {
284
+ if (type !== 'view') {
285
+ handleLectures();
286
+ endPoints();
287
+ } else {
288
+ endPoints();
289
+ }
290
+ };
291
+
292
+ var handleFinish = function handleFinish() {
293
+ if (checkAllDecisionsRightWrong()) {
294
+ // if all Decisions are right or wrong we just skip to end
295
+ setReviewDone(true);
296
+ setFeedbackScreenDone(true);
297
+ endGame();
298
+ }
299
+
300
+ if (!checkIfFeedbackNeeded()) {
301
+ // THis case is for when we do not have any Decision
302
+ setReviewDone(true);
303
+ setFeedbackScreen(true);
304
+ endGame();
305
+ }
306
+
307
+ if (!reviewDone) {
308
+ // Shows the decision text red or green regarding the selecions
309
+ setReviewDone(true);
310
+
311
+ if (checkFeedbackScreen()) {
312
+ // CHECK IF THERE IS NEED OF FEEDBACK SCREEN
313
+ setFeedbackScreen(true);
314
+ } else {
315
+ setFeedbackScreenDone(true);
316
+ }
317
+ }
318
+
319
+ if (reviewDone && !feedbackScreenDone) {
320
+ setIsActive(false); // Second EXECUTION shows Feedback Screen
321
+
322
+ if (feedbackScreen) {
323
+ setShowFeedback(true);
324
+ }
325
+ } // Third EXECUTION Give Points
326
+
327
+
328
+ if (feedbackScreenDone) {
329
+ endGame();
330
+ }
331
+ };
332
+
333
+ var retryPuzzle = function retryPuzzle() {
334
+ setDecisionsList([]);
335
+ setCurrentTextParagraph(0);
336
+ setDoneTyping(false);
337
+ setFinished(false);
338
+ setShowFeedback(false);
339
+ setReviewDone(false);
340
+ setTextHolder({});
341
+ setTextHolder(_defineProperty({}, "text_".concat(0), _objectSpread(_objectSpread({}, texts[0]), {}, {
342
+ id: "text_".concat(0),
343
+ correct: ''
344
+ })));
345
+ setIsActive(true);
346
+ };
347
+
348
+ var noColor = function noColor() {
349
+ var correctTexts = texts[currenTextParagraph].electionTexts.filter(function (e) {
350
+ return e.correct;
351
+ }).length;
352
+ var electionTextsLength = texts[currenTextParagraph].electionTexts;
353
+ return correctTexts === 0 || correctTexts === electionTextsLength;
354
+ };
355
+
356
+ var handleSelectedOption = function handleSelectedOption(index) {
357
+ var currentRewards = texts[currenTextParagraph].electionTexts[index].feedback.rewards;
358
+
359
+ if (currentRewards && currentRewards[0] && currentRewards[0].points) {
360
+ setRewardsStack([].concat(_toConsumableArray(rewardsStack), _toConsumableArray(currentRewards)));
361
+ }
362
+
363
+ var checkColor = function checkColor() {
364
+ if (noColor()) {
365
+ return 'none';
366
+ }
367
+
368
+ return texts[currenTextParagraph].electionTexts[index].correct ? 'green' : 'red';
369
+ };
370
+
371
+ var decision = {
372
+ currenTextParagraph: currenTextParagraph,
373
+ fullText: texts[currenTextParagraph].electionTexts[index].fullText,
374
+ index: index,
375
+ isCorrect: checkColor()
376
+ };
377
+ setTextHolder(_objectSpread(_objectSpread({}, textHolder), {}, _defineProperty({}, "text_".concat(currenTextParagraph), {
378
+ type: 'fixed',
379
+ fullText: texts[currenTextParagraph].electionTexts[index].fullText,
380
+ correct: decision.isCorrect
381
+ })));
382
+ setDecisionsList([].concat(_toConsumableArray(decisionsList), [decision]));
383
+ };
384
+
385
+ var printedElection = function printedElection() {
386
+ automaticScroll.current.scrollTop = automaticScroll.current.scrollHeight + 100;
387
+ };
388
+
389
+ var onIsWriting = function onIsWriting() {
390
+ automaticScroll.current.scrollTop += automaticScroll.current.scrollTop + 1;
391
+ };
392
+
393
+ var handleFixed = function handleFixed(text, length, index) {
394
+ var textToPrint = text.fullText;
395
+ var nextParagraphType = texts[index + 1] ? texts[index + 1].type : '';
396
+ var nextType = // its magic
397
+ textHolder["text_".concat(index + 1)] && textHolder["text_".concat(index + 1)].type ? textHolder["text_".concat(index + 1)].type : nextParagraphType;
398
+ return /*#__PURE__*/_react.default.createElement(_FixedComponent.default, {
399
+ length: length,
400
+ doneTyping: doneTyping,
401
+ index: index,
402
+ key: index.toString(),
403
+ delay: fixedDelay,
404
+ setDoneTyping: setDoneTyping,
405
+ nextParagraphType: nextType,
406
+ isWriting: onIsWriting,
407
+ textToPrint: textToPrint
408
+ });
409
+ };
410
+
411
+ var handleShownText = function handleShownText(text) {
412
+ var textToPrint = text.fullText;
413
+ return /*#__PURE__*/_react.default.createElement(_FinishedTextComponent.default, {
414
+ textToPrint: textToPrint,
415
+ correct: text.correct,
416
+ key: textToPrint
417
+ });
418
+ };
419
+
420
+ var handleElection = function handleElection(text) {
421
+ return /*#__PURE__*/_react.default.createElement(_ElectionComponent.default, {
422
+ textWithOpts: text.electionTexts,
423
+ setCurrentDecisionSelected: handleSelectedOption,
424
+ printed: printedElection,
425
+ disableExit: disableExit,
426
+ key: text.electionTexts
427
+ });
428
+ };
429
+
430
+ var handleText = function handleText(text, length, index) {
431
+ var currentType = text.type;
432
+
433
+ if (currentType === 'fixed') {
434
+ return handleFixed(text, length, index);
435
+ }
436
+
437
+ return handleElection(text);
438
+ };
439
+
440
+ (0, _react.useEffect)(function () {
441
+ var nextParagraph = function nextParagraph() {
442
+ if (texts[currenTextParagraph + 1]) {
443
+ setTextHolder(_objectSpread(_objectSpread({}, textHolder), {}, _defineProperty({}, "text_".concat(currenTextParagraph + 1), _objectSpread(_objectSpread({}, texts[currenTextParagraph + 1]), {}, {
444
+ id: "text_".concat(currenTextParagraph + 1),
445
+ correct: ''
446
+ }))));
447
+ setCurrentTextParagraph(currenTextParagraph + 1);
448
+ setDoneTyping(false);
449
+ } else {
450
+ setFinished(true);
451
+ }
452
+ };
453
+
454
+ if (doneTyping === true) {
455
+ nextParagraph();
456
+ }
457
+ }, [doneTyping, currenTextParagraph, textHolder, texts]);
458
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
459
+ className: "writer-puzzle writer-puzzle--".concat(styles)
460
+ }, /*#__PURE__*/_react.default.createElement("div", {
461
+ className: "writer-puzzle__overlay"
462
+ }, showFeedback && /*#__PURE__*/_react.default.createElement(_FeedbackComponent.default, {
463
+ emitEvent: emitEvent,
464
+ texts: texts,
465
+ setFailed: function setFailed() {
466
+ return _setFailed(true);
467
+ },
468
+ decisionsList: decisionsList,
469
+ closingAction: function closingAction() {
470
+ return setShowFeedback(false);
471
+ },
472
+ feedbackIsDone: function feedbackIsDone() {
473
+ return setFeedbackScreenDone(true);
474
+ },
475
+ retry: retry,
476
+ skip: skip,
477
+ checkCorrect: checkAllDecisionsAreCorrect,
478
+ retryAction: function retryAction() {
479
+ return retryPuzzle();
480
+ },
481
+ rewardsStack: rewardsStack,
482
+ nodeId: nodeId
483
+ }), !showFeedback && /*#__PURE__*/_react.default.createElement("div", {
484
+ className: "writer-puzzle__container"
485
+ }, /*#__PURE__*/_react.default.createElement("div", {
486
+ className: "writer-puzzle__title"
487
+ }, documentTitle !== '' && documentTitle), /*#__PURE__*/_react.default.createElement("div", {
488
+ className: "writer-puzzle__body"
489
+ }, /*#__PURE__*/_react.default.createElement("div", {
490
+ className: "writer-puzzle__scroll",
491
+ ref: automaticScroll
492
+ }, isActive && !reviewDone && Object.values(textHolder).map(function (text, i) {
493
+ return handleText(text, Object.values(textHolder).length - 1, i);
494
+ }), reviewDone && Object.values(textHolder).map(function (text) {
495
+ return handleShownText(text);
496
+ }))), finished && /*#__PURE__*/_react.default.createElement("div", {
497
+ className: "writer-puzzle__footer"
498
+ }, /*#__PURE__*/_react.default.createElement("button", {
499
+ type: "button",
500
+ className: "gat--btn gat--btn__primary",
501
+ onClick: handleFinish
502
+ }, translate('screens.continue')))))));
503
+ };
504
+
505
+ WriterPuzzleComponent.defaultProps = {
506
+ emitEvent: function emitEvent() {},
507
+ info: {},
508
+ styles: '',
509
+ nodeId: '0',
510
+ retry: false,
511
+ skip: false,
512
+ type: '',
513
+ documentTitle: '',
514
+ texts: []
515
+ };
516
+ WriterPuzzleComponent.propTypes = {
517
+ emitEvent: _propTypes.default.func,
518
+ info: _propTypes.default.shape({
519
+ description: _propTypes.default.string,
520
+ instructions: _propTypes.default.string,
521
+ resolve: _propTypes.default.shape({}),
522
+ solution: _propTypes.default.shape({
523
+ right: _propTypes.default.shape({
524
+ rewards: _propTypes.default.arrayOf(_propTypes.default.shape({}))
525
+ }),
526
+ wrong: _propTypes.default.shape({
527
+ rewards: _propTypes.default.arrayOf(_propTypes.default.shape({}))
528
+ })
529
+ }),
530
+ hint: _propTypes.default.shape({})
531
+ }),
532
+ styles: _propTypes.default.string,
533
+ nodeId: _propTypes.default.string,
534
+ retry: _propTypes.default.bool,
535
+ skip: _propTypes.default.bool,
536
+ type: _propTypes.default.string,
537
+ documentTitle: _propTypes.default.string,
538
+ texts: _propTypes.default.arrayOf(_propTypes.default.shape({
539
+ type: _propTypes.default.string,
540
+ fullText: _propTypes.default.string,
541
+ electionTexts: _propTypes.default.arrayOf(_propTypes.default.shape({
542
+ previewText: _propTypes.default.string,
543
+ correct: _propTypes.default.bool,
544
+ fullText: _propTypes.default.string,
545
+ feedback: _propTypes.default.shape({
546
+ rewards: _propTypes.default.arrayOf(_propTypes.default.shape({}))
547
+ })
548
+ }))
549
+ }))
550
+ };
551
+ var _default = WriterPuzzleComponent;
552
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _WriterPuzzleComponent = _interopRequireDefault(require("./components/WriterPuzzleComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _WriterPuzzleComponent.default;
13
+ exports.default = _default;