@gamelearn/arcade-components 0.4.0 → 0.4.1-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.
- package/dist/components/arcade-render/element/AnimateElement.js +6 -2
- package/dist/components/arcade-render/element/index.js +10 -18
- package/dist/components/arcade-render/loading/LoadingLogic.js +28 -1
- package/dist/components/arcade-render/mocks/index.js +3 -3
- package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +73 -0
- package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +155 -0
- package/dist/components/chained-image-click-puzzle-component/index.js +13 -0
- package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +163 -0
- package/dist/components/comic-component/mocks/mockForStory.js +4 -4
- package/dist/components/conversational-pro-component/components/scene/Panel.js +3 -0
- package/dist/components/conversational-pro-component/mocks/mockForStory.js +20 -20
- package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +329 -0
- package/dist/components/drag-item-puzzle-component/components/Messages.js +55 -0
- package/dist/components/drag-item-puzzle-component/index.js +13 -0
- package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +79 -0
- package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +1 -1
- package/dist/components/image-click-wrapper-component/components/Area/index.js +1 -1
- package/dist/components/image-click-wrapper-component/components/Feedback/index.js +4 -5
- package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +31 -17
- package/dist/components/image-component/mocks/mockForStory.js +3 -3
- package/dist/components/index.js +40 -0
- package/dist/components/inventory-item/components/InventoryItem.js +2 -1
- package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -1
- package/dist/components/login-puzzle-component/mocks/mockForStory.js +3 -3
- package/dist/components/pdf-component/components/PdfComponent.js +40 -7
- package/dist/components/pdf-component/components/PdfVisor.js +86 -33
- package/dist/components/pdf-component/mocks/mockForProps.js +21 -5
- package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +32 -0
- package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +74 -0
- package/dist/components/terminal-puzzle-component/components/Image/index.js +26 -0
- package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +163 -0
- package/dist/components/terminal-puzzle-component/components/Visor/index.js +133 -0
- package/dist/components/terminal-puzzle-component/components/utils/index.js +29 -0
- package/dist/components/terminal-puzzle-component/index.js +13 -0
- package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +190 -0
- package/dist/components/video-component/mocks/mockForStory.js +5 -5
- package/dist/components/video-visor/mocks/mockForStory.js +4 -4
- package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +99 -0
- package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +113 -0
- package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +122 -0
- package/dist/components/web-builder-puzzle-component/Popups/index.js +31 -0
- package/dist/components/web-builder-puzzle-component/Templates/Bank.js +98 -0
- package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +39 -0
- package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +9 -0
- package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +28 -0
- package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +38 -0
- package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +29 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +124 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +154 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +32 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +98 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +92 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +50 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +47 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +337 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +36 -0
- package/dist/components/web-builder-puzzle-component/index.js +13 -0
- package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +29 -0
- package/dist/components/writer-puzzle-component/components/ElectionComponent.js +89 -0
- package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +138 -0
- package/dist/components/writer-puzzle-component/components/FeedbackElement.js +40 -0
- package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +36 -0
- package/dist/components/writer-puzzle-component/components/FixedComponent.js +166 -0
- package/dist/components/writer-puzzle-component/components/Rewards.js +203 -0
- package/dist/components/writer-puzzle-component/components/SingleElection.js +141 -0
- package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +552 -0
- package/dist/components/writer-puzzle-component/index.js +13 -0
- package/dist/components/writer-puzzle-component/mocks/mockForStory.js +861 -0
- package/dist/helpers/drawLOD.js +35 -47
- package/dist/helpers/useGLB.js +22 -8
- 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;
|