@gamelearn/arcade-components 2.23.10 → 2.24.1
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/auto-evaluation-component/components/AutoEvaluation.js +2 -3
- package/dist/components/decision-component/components/Options.js +2 -1
- package/dist/components/index.js +0 -8
- package/dist/components/survey-component/components/ApplicableBox.js +16 -12
- package/dist/components/survey-component/components/SurveyComponent.js +3 -3
- package/dist/components/test-component/components/Container.js +87 -22
- package/dist/components/test-component/components/Feedbacks.js +44 -0
- package/dist/components/test-component/components/Questions.js +119 -25
- package/dist/components/test-component/components/Results.js +114 -22
- package/dist/components/test-component/components/TestComponent.js +94 -40
- package/package.json +2 -2
- package/dist/components/media-visor/components/MediaVisor.js +0 -143
- package/dist/components/media-visor/index.js +0 -13
- package/dist/components/media-visor/mocks/mockForStory.js +0 -31
- package/dist/components/rewards-component/components/RewardItem.js +0 -88
- package/dist/components/rewards-component/components/RewardsComponent.js +0 -196
- package/dist/components/rewards-component/index.js +0 -13
- package/dist/components/rewards-component/mocks/mockForStory.js +0 -204
- package/dist/components/test-component/components/Feedback.js +0 -53
|
@@ -29,14 +29,15 @@ var ResultsComponent = function ResultsComponent(_ref) {
|
|
|
29
29
|
var result = _ref.result,
|
|
30
30
|
time = _ref.time,
|
|
31
31
|
mandatory = _ref.mandatory,
|
|
32
|
-
|
|
32
|
+
correctQuestions = _ref.correctQuestions,
|
|
33
33
|
isFirst = _ref.isFirst,
|
|
34
34
|
reviewTest = _ref.reviewTest,
|
|
35
35
|
finishTest = _ref.finishTest,
|
|
36
36
|
restartTest = _ref.restartTest,
|
|
37
37
|
timeOver = _ref.timeOver,
|
|
38
38
|
timeOverText = _ref.timeOverText,
|
|
39
|
-
emitEvent = _ref.emitEvent
|
|
39
|
+
emitEvent = _ref.emitEvent,
|
|
40
|
+
minimumPercentage = _ref.minimumPercentage;
|
|
40
41
|
|
|
41
42
|
var _useState = (0, _react.useState)(0),
|
|
42
43
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -48,12 +49,88 @@ var ResultsComponent = function ResultsComponent(_ref) {
|
|
|
48
49
|
interval = _useState4[0],
|
|
49
50
|
saveInterval = _useState4[1];
|
|
50
51
|
|
|
51
|
-
var
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var
|
|
52
|
+
var _useState5 = (0, _react.useState)([]),
|
|
53
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
54
|
+
allCorrectAnswers = _useState6[0],
|
|
55
|
+
setAllCorrectAnswers = _useState6[1];
|
|
56
|
+
|
|
57
|
+
var _useState7 = (0, _react.useState)([]),
|
|
58
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
59
|
+
allSelectedCorrectAnswers = _useState8[0],
|
|
60
|
+
setAllSelectedCorrectAnswers = _useState8[1];
|
|
61
|
+
|
|
62
|
+
var _useState9 = (0, _react.useState)([]),
|
|
63
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
64
|
+
numberOfQuestionsCorrectlyAnswered = _useState10[0],
|
|
65
|
+
setNumberOfQuestionsCorrectlyAnswered = _useState10[1];
|
|
66
|
+
|
|
67
|
+
var getAllAnswersCorrectFromEditor = (0, _react.useCallback)(function () {
|
|
68
|
+
var valueToReturn = [];
|
|
69
|
+
correctQuestions.forEach(function (el) {
|
|
70
|
+
return valueToReturn.push(el.answers);
|
|
71
|
+
});
|
|
72
|
+
return valueToReturn;
|
|
73
|
+
}, [correctQuestions]);
|
|
74
|
+
var getAllSelectedCorrectAnswers = (0, _react.useCallback)(function () {
|
|
75
|
+
var valueToReturn = [];
|
|
76
|
+
Object.values(result).forEach(function (answers) {
|
|
77
|
+
if (answers.length > 1) {
|
|
78
|
+
var thereAreWrongAnswersSelected = answers.find(function (el) {
|
|
79
|
+
return el.isCorrect === false;
|
|
80
|
+
});
|
|
81
|
+
var multiAnswersPerQuestions = [];
|
|
82
|
+
|
|
83
|
+
if (thereAreWrongAnswersSelected) {
|
|
84
|
+
valueToReturn.push([]);
|
|
85
|
+
} else {
|
|
86
|
+
answers.forEach(function (answer) {
|
|
87
|
+
if (answer.isCorrect) {
|
|
88
|
+
multiAnswersPerQuestions.push(answer.id);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
valueToReturn.push(multiAnswersPerQuestions);
|
|
92
|
+
}
|
|
93
|
+
} else if (answers[0].isCorrect) {
|
|
94
|
+
valueToReturn.push([answers[0].id]);
|
|
95
|
+
} else if (answers[0].isCorrect === false) {
|
|
96
|
+
valueToReturn.push('');
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
return valueToReturn;
|
|
100
|
+
}, [result]);
|
|
101
|
+
var getNumberOfQuestionsCorrectlyAnswered = (0, _react.useCallback)(function () {
|
|
102
|
+
var valueToReturn = 0;
|
|
103
|
+
|
|
104
|
+
if (allSelectedCorrectAnswers.length > 0) {
|
|
105
|
+
allCorrectAnswers.forEach(function (question, index) {
|
|
106
|
+
if (question.length > 1) {
|
|
107
|
+
if (question.every(function (answer) {
|
|
108
|
+
return allSelectedCorrectAnswers[index].includes(answer);
|
|
109
|
+
})) {
|
|
110
|
+
valueToReturn += 1;
|
|
111
|
+
}
|
|
112
|
+
} else if (question.length === 1) {
|
|
113
|
+
if (!!allSelectedCorrectAnswers[index] && question[0] === allSelectedCorrectAnswers[index][0]) {
|
|
114
|
+
valueToReturn += 1;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return valueToReturn;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return valueToReturn;
|
|
122
|
+
}, [allCorrectAnswers, allSelectedCorrectAnswers]);
|
|
123
|
+
(0, _react.useEffect)(function () {
|
|
124
|
+
setAllCorrectAnswers(getAllAnswersCorrectFromEditor);
|
|
125
|
+
setAllSelectedCorrectAnswers(getAllSelectedCorrectAnswers);
|
|
126
|
+
setNumberOfQuestionsCorrectlyAnswered(getNumberOfQuestionsCorrectlyAnswered);
|
|
127
|
+
}, [getAllAnswersCorrectFromEditor, getAllSelectedCorrectAnswers, getNumberOfQuestionsCorrectlyAnswered]);
|
|
128
|
+
var totalCorrectAnswers = correctQuestions.length;
|
|
129
|
+
var allIsCorrect = getNumberOfQuestionsCorrectlyAnswered() === totalCorrectAnswers;
|
|
130
|
+
var minimumPercentageNotExceeded = numberOfQuestionsCorrectlyAnswered < minimumPercentage;
|
|
131
|
+
var minimumPercentageExceeded = numberOfQuestionsCorrectlyAnswered >= minimumPercentage;
|
|
132
|
+
console.info('adadf');
|
|
133
|
+
var showFinishButton = !mandatory || minimumPercentageExceeded;
|
|
57
134
|
var bar = Math.trunc(points / totalCorrectAnswers * 100);
|
|
58
135
|
|
|
59
136
|
var translate = function translate(id, values) {
|
|
@@ -64,8 +141,11 @@ var ResultsComponent = function ResultsComponent(_ref) {
|
|
|
64
141
|
});
|
|
65
142
|
};
|
|
66
143
|
|
|
144
|
+
var failedColor = {
|
|
145
|
+
'--chart-color': "var(--color-error)"
|
|
146
|
+
};
|
|
67
147
|
(0, _react.useEffect)(function () {
|
|
68
|
-
if (points <
|
|
148
|
+
if (points < numberOfQuestionsCorrectlyAnswered) {
|
|
69
149
|
var timeout = setInterval(function () {
|
|
70
150
|
setPoints(function (t) {
|
|
71
151
|
return t + 1;
|
|
@@ -78,41 +158,53 @@ var ResultsComponent = function ResultsComponent(_ref) {
|
|
|
78
158
|
}
|
|
79
159
|
|
|
80
160
|
return undefined;
|
|
81
|
-
}, [
|
|
161
|
+
}, [numberOfQuestionsCorrectlyAnswered, points]);
|
|
82
162
|
(0, _react.useEffect)(function () {
|
|
83
|
-
if (points >=
|
|
163
|
+
if (points >= numberOfQuestionsCorrectlyAnswered) {
|
|
84
164
|
clearInterval(interval);
|
|
85
165
|
}
|
|
86
|
-
}, [
|
|
166
|
+
}, [numberOfQuestionsCorrectlyAnswered, interval, points]);
|
|
87
167
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
88
|
-
className: "test--results"
|
|
89
|
-
}, isFirst &&
|
|
168
|
+
className: "test--results ".concat(minimumPercentageNotExceeded || timeOver || minimumPercentage === 0 && mandatory && !allIsCorrect ? 'test--results--failed' : '')
|
|
169
|
+
}, isFirst && allIsCorrect ? /*#__PURE__*/_react.default.createElement("div", {
|
|
90
170
|
className: "fireworks"
|
|
91
171
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
92
172
|
className: "before"
|
|
93
173
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
94
174
|
className: "after"
|
|
95
|
-
})) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
175
|
+
})) : null, !timeOver && minimumPercentageNotExceeded || !timeOver && minimumPercentage === 0 && mandatory && !allIsCorrect ? /*#__PURE__*/_react.default.createElement("div", {
|
|
176
|
+
className: "test--results__title"
|
|
177
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.NotFinishedSuccessfully'))) : null, !timeOver && minimumPercentage > 0 && minimumPercentageExceeded || allIsCorrect ? /*#__PURE__*/_react.default.createElement("div", {
|
|
178
|
+
className: "test--results__title"
|
|
179
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.finishedSuccessfully'))) : null, timeOver ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
96
180
|
className: "test--results__title"
|
|
97
|
-
}, /*#__PURE__*/_react.default.createElement("span", null,
|
|
181
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, timeOverText)), /*#__PURE__*/_react.default.createElement("div", {
|
|
98
182
|
className: "test--results__time",
|
|
99
183
|
id: "results-time"
|
|
100
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.time', time))) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
184
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.time', time)))) : null, minimumPercentage === 0 && !mandatory ? /*#__PURE__*/_react.default.createElement("div", {
|
|
185
|
+
className: "test--results__title"
|
|
186
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.finished'))) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
101
187
|
className: "chart center chart".concat(bar)
|
|
102
188
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
103
189
|
className: "chart-slice"
|
|
104
190
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
105
|
-
className: "chart-bar"
|
|
191
|
+
className: "chart-bar",
|
|
192
|
+
style: minimumPercentage === 0 && mandatory && !allIsCorrect || minimumPercentageNotExceeded || timeOver ? failedColor : {}
|
|
106
193
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
107
|
-
className: "chart-fill"
|
|
194
|
+
className: "chart-fill",
|
|
195
|
+
style: minimumPercentage === 0 && mandatory && !allIsCorrect || minimumPercentageNotExceeded || timeOver ? failedColor : {}
|
|
108
196
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
109
197
|
className: "chart-value"
|
|
110
198
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
111
199
|
className: "test--results__chart"
|
|
112
200
|
}, /*#__PURE__*/_react.default.createElement("span", null, points), /*#__PURE__*/_react.default.createElement("span", null, "/", totalCorrectAnswers)), /*#__PURE__*/_react.default.createElement("div", {
|
|
113
201
|
className: "test--results__chart--label"
|
|
114
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.success'))))), /*#__PURE__*/_react.default.createElement("div", {
|
|
115
|
-
className: "test--
|
|
202
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.success'))))), minimumPercentage > 0 ? /*#__PURE__*/_react.default.createElement("div", {
|
|
203
|
+
className: "test--results__minimum"
|
|
204
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
205
|
+
className: "icon-bell"
|
|
206
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, translate('tests.minimumQuestionsMessage'), "\xA0", /*#__PURE__*/_react.default.createElement("strong", null, minimumPercentage))) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
207
|
+
className: "test--results__buttons"
|
|
116
208
|
}, !timeOver ? /*#__PURE__*/_react.default.createElement("button", {
|
|
117
209
|
className: "gat--btn gat--btn__secondary",
|
|
118
210
|
id: "review-button",
|
|
@@ -120,7 +212,7 @@ var ResultsComponent = function ResultsComponent(_ref) {
|
|
|
120
212
|
return reviewTest();
|
|
121
213
|
},
|
|
122
214
|
type: "button"
|
|
123
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.review'))) : null,
|
|
215
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.review'))) : null, !showFinishButton ? /*#__PURE__*/_react.default.createElement("button", {
|
|
124
216
|
className: "gat--btn gat--btn__primary",
|
|
125
217
|
id: "restart-button",
|
|
126
218
|
onClick: function onClick() {
|
|
@@ -53,11 +53,9 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
53
53
|
soundActions = _ref.soundActions,
|
|
54
54
|
audio = _ref.audio,
|
|
55
55
|
required = _ref.required,
|
|
56
|
-
pause = _ref.pause
|
|
56
|
+
pause = _ref.pause,
|
|
57
|
+
minimumPercentage = _ref.minimumPercentage;
|
|
57
58
|
var questions = test.questions;
|
|
58
|
-
var indicators = emitEvent({
|
|
59
|
-
type: 'loadIndicators'
|
|
60
|
-
});
|
|
61
59
|
|
|
62
60
|
var _useState = (0, _react.useState)({}),
|
|
63
61
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -76,8 +74,8 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
76
74
|
|
|
77
75
|
var _useState7 = (0, _react.useState)([]),
|
|
78
76
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
correctQuestions = _useState8[0],
|
|
78
|
+
setCorrectQuestions = _useState8[1];
|
|
81
79
|
|
|
82
80
|
var _useState9 = (0, _react.useState)(countdown.time),
|
|
83
81
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
@@ -117,22 +115,61 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
117
115
|
var isRequired = required || test.required || false;
|
|
118
116
|
var rewardedCorrectAnswers = (0, _react.useRef)({});
|
|
119
117
|
|
|
118
|
+
var _useState23 = (0, _react.useState)(),
|
|
119
|
+
_useState24 = _slicedToArray(_useState23, 2),
|
|
120
|
+
calculatedMinimum = _useState24[0],
|
|
121
|
+
setCalculateMinimum = _useState24[1];
|
|
122
|
+
|
|
120
123
|
var _soundActions = _slicedToArray(soundActions, 2),
|
|
121
124
|
playSound = _soundActions[0],
|
|
122
125
|
stop = _soundActions[1];
|
|
123
126
|
|
|
124
|
-
var updateForm = function updateForm(optionSelected, question, index) {
|
|
125
|
-
var
|
|
127
|
+
var updateForm = function updateForm(optionSelected, question, index, inputType, answerId) {
|
|
128
|
+
var actualAnswer = _objectSpread(_objectSpread({}, optionSelected), {}, {
|
|
126
129
|
index: index
|
|
127
130
|
});
|
|
128
131
|
|
|
129
132
|
if (tries > 0) {
|
|
130
|
-
|
|
133
|
+
actualAnswer.rewards = actualAnswer.rewards.filter(function (reward) {
|
|
131
134
|
return !historicAnswers[optionSelected.id] || reward.points < 0;
|
|
132
135
|
});
|
|
133
136
|
}
|
|
134
137
|
|
|
135
|
-
|
|
138
|
+
if (result[question]) {
|
|
139
|
+
// Check if any answer is checked in order to be able to unchecked it
|
|
140
|
+
var checkIfOptionExisted = result[question].find(function (element) {
|
|
141
|
+
return element.id === answerId;
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
if (checkIfOptionExisted) {
|
|
145
|
+
if (checkIfOptionExisted.id === optionSelected.id) {
|
|
146
|
+
var answerToUnCheck = result[question].find(function (element) {
|
|
147
|
+
return element.id === answerId;
|
|
148
|
+
});
|
|
149
|
+
var indexOfAnswerToUnCheck = result[question].indexOf(answerToUnCheck);
|
|
150
|
+
result[question].splice(indexOfAnswerToUnCheck, 1); // no answers, no run
|
|
151
|
+
|
|
152
|
+
if (result[question].length === 0) {
|
|
153
|
+
answerPage(false);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
} // if there is already an option checked
|
|
158
|
+
else {
|
|
159
|
+
result[question].push(actualAnswer);
|
|
160
|
+
}
|
|
161
|
+
} // if no option is checked
|
|
162
|
+
else {
|
|
163
|
+
result[question] = [actualAnswer];
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
var actualResult;
|
|
167
|
+
|
|
168
|
+
if (inputType === 'isRadio') {
|
|
169
|
+
actualResult = _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, question, [actualAnswer]));
|
|
170
|
+
} else {
|
|
171
|
+
actualResult = _objectSpread({}, result);
|
|
172
|
+
}
|
|
136
173
|
|
|
137
174
|
setResult(actualResult);
|
|
138
175
|
setShowingResult(actualResult);
|
|
@@ -145,18 +182,28 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
145
182
|
playSound(audio.url, 'tts');
|
|
146
183
|
}
|
|
147
184
|
}, [playSound, audio]);
|
|
148
|
-
|
|
149
|
-
var
|
|
150
|
-
|
|
151
|
-
return a.isCorrect;
|
|
152
|
-
});
|
|
153
|
-
return {
|
|
154
|
-
question: q.id,
|
|
155
|
-
answer: answer.id
|
|
156
|
-
};
|
|
185
|
+
var getCorrectQuestions = questions.map(function (q) {
|
|
186
|
+
var allQuestionsWithHisCorrectAnswers = q.answers.filter(function (a) {
|
|
187
|
+
return a.isCorrect;
|
|
157
188
|
});
|
|
158
|
-
|
|
159
|
-
|
|
189
|
+
var correctAnswersPerQuestions = [];
|
|
190
|
+
allQuestionsWithHisCorrectAnswers.forEach(function (el) {
|
|
191
|
+
correctAnswersPerQuestions.push(el.id);
|
|
192
|
+
});
|
|
193
|
+
return {
|
|
194
|
+
question: q.id,
|
|
195
|
+
answers: correctAnswersPerQuestions
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
(0, _react.useEffect)(function () {
|
|
199
|
+
setCorrectQuestions(getCorrectQuestions);
|
|
200
|
+
}, [getCorrectQuestions]);
|
|
201
|
+
(0, _react.useEffect)(function () {
|
|
202
|
+
if (minimumPercentage) {
|
|
203
|
+
var calculateMinimum = Math.ceil(questions.length * minimumPercentage / 100);
|
|
204
|
+
setCalculateMinimum(calculateMinimum);
|
|
205
|
+
}
|
|
206
|
+
}, [questions.length, minimumPercentage]);
|
|
160
207
|
(0, _react.useEffect)(function () {
|
|
161
208
|
if (time === 0) {
|
|
162
209
|
clearInterval(interval);
|
|
@@ -180,15 +227,17 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
180
227
|
|
|
181
228
|
var finishTest = function finishTest() {
|
|
182
229
|
var actualResult = {
|
|
183
|
-
|
|
230
|
+
correctQuestions: correctQuestions.length,
|
|
184
231
|
result: result,
|
|
185
232
|
status: 'resolved'
|
|
186
233
|
};
|
|
187
234
|
var resultKeys = Object.keys(result);
|
|
188
235
|
resultKeys.forEach(function (k) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
236
|
+
result[k].forEach(function (option) {
|
|
237
|
+
if (rewardedCorrectAnswers.current[option.id]) {
|
|
238
|
+
option.rewards = [];
|
|
239
|
+
}
|
|
240
|
+
});
|
|
192
241
|
});
|
|
193
242
|
emitEvent({
|
|
194
243
|
type: 'saveTest',
|
|
@@ -211,17 +260,23 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
211
260
|
};
|
|
212
261
|
|
|
213
262
|
var resultAnswers = Object.values(result);
|
|
214
|
-
resultAnswers.forEach(function (
|
|
215
|
-
|
|
216
|
-
if (
|
|
217
|
-
rewardedCorrectAnswers.current[a.id]
|
|
218
|
-
|
|
219
|
-
|
|
263
|
+
resultAnswers.forEach(function (question) {
|
|
264
|
+
question.forEach(function (a) {
|
|
265
|
+
if (a.isCorrect) {
|
|
266
|
+
if (!rewardedCorrectAnswers.current[a.id]) {
|
|
267
|
+
rewardedCorrectAnswers.current[a.id] = true;
|
|
268
|
+
} else {
|
|
269
|
+
a.rewards = [];
|
|
270
|
+
}
|
|
220
271
|
}
|
|
221
|
-
}
|
|
272
|
+
});
|
|
222
273
|
});
|
|
223
274
|
var rewards = resultAnswers.reduce(function (acc, current) {
|
|
224
|
-
|
|
275
|
+
var valueToReturn = [];
|
|
276
|
+
current.forEach(function (answer) {
|
|
277
|
+
valueToReturn.push(answer.rewards);
|
|
278
|
+
});
|
|
279
|
+
return [].concat(_toConsumableArray(acc), _toConsumableArray(valueToReturn.flat()));
|
|
225
280
|
}, []);
|
|
226
281
|
|
|
227
282
|
if (timeOver && countdown.rewards) {
|
|
@@ -254,7 +309,6 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
254
309
|
className: "test--container",
|
|
255
310
|
dir: "auto"
|
|
256
311
|
}, view !== 'results' ? /*#__PURE__*/_react.default.createElement(_Container.default, {
|
|
257
|
-
type: test.type,
|
|
258
312
|
result: result,
|
|
259
313
|
time: time,
|
|
260
314
|
setTries: setTries,
|
|
@@ -269,7 +323,9 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
269
323
|
updateForm: updateForm,
|
|
270
324
|
showResults: showResults,
|
|
271
325
|
translate: translate,
|
|
272
|
-
soundActions: soundActions
|
|
326
|
+
soundActions: soundActions,
|
|
327
|
+
view: view,
|
|
328
|
+
correctQuestions: correctQuestions
|
|
273
329
|
}) : /*#__PURE__*/_react.default.createElement(_Results.default, {
|
|
274
330
|
reviewTest: function reviewTest() {
|
|
275
331
|
changeFirst(false);
|
|
@@ -279,16 +335,14 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
279
335
|
finishTest: finishTest,
|
|
280
336
|
time: time,
|
|
281
337
|
mandatory: isRequired,
|
|
282
|
-
type: test.type,
|
|
283
338
|
restartTest: restartTest,
|
|
284
339
|
result: result,
|
|
285
|
-
|
|
286
|
-
correctAnswers: correctAnswers,
|
|
287
|
-
indicators: indicators,
|
|
340
|
+
correctQuestions: correctQuestions,
|
|
288
341
|
timeOver: timeOver,
|
|
289
342
|
timeOverText: countdown.text,
|
|
290
343
|
emitEvent: emitEvent,
|
|
291
|
-
soundActions: soundActions
|
|
344
|
+
soundActions: soundActions,
|
|
345
|
+
minimumPercentage: calculatedMinimum || 0
|
|
292
346
|
})));
|
|
293
347
|
};
|
|
294
348
|
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@gamelearn/arcade-components",
|
|
3
3
|
"author": "Gamelearn",
|
|
4
4
|
"license": "unlicense",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.24.1",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@babel/runtime": "^7.18.6",
|
|
17
|
-
"@gamelearn/arcade-styles": "2.
|
|
17
|
+
"@gamelearn/arcade-styles": "2.17.1",
|
|
18
18
|
"@gamelearn/arcade-three-core": "1.24.3",
|
|
19
19
|
"@react-three/a11y": "^3.0.0",
|
|
20
20
|
"@react-three/drei": "9.4.3",
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _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 _hls = _interopRequireDefault(require("hls.js"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
|
|
19
|
-
|
|
20
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
|
-
|
|
22
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
|
-
|
|
24
|
-
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."); }
|
|
25
|
-
|
|
26
|
-
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); }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : 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; }
|
|
31
|
-
|
|
32
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
33
|
-
|
|
34
|
-
var defaultBgImageForAudio = 'https://min.gamelearn.io/css-resources/gamelearn/resources/bgAudioPiece.jpg';
|
|
35
|
-
|
|
36
|
-
var VideoVisor = function VideoVisor(_ref) {
|
|
37
|
-
var documentType = _ref.documentType,
|
|
38
|
-
url = _ref.url,
|
|
39
|
-
backgroundImage = _ref.backgroundImage,
|
|
40
|
-
endVideo = _ref.endVideo;
|
|
41
|
-
|
|
42
|
-
var _useState = (0, _react.useState)(),
|
|
43
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
44
|
-
videoPlayer = _useState2[0],
|
|
45
|
-
setVideo = _useState2[1];
|
|
46
|
-
|
|
47
|
-
var isHls = url && url.match(/\.m3u8(\?.+=.+)*$/i) && _hls.default.isSupported();
|
|
48
|
-
|
|
49
|
-
var isEmbeddedVideo = url && (url.match(/youtube/i) || url.match(/vimeo/i));
|
|
50
|
-
var isAudio = url && (url.match(/.mp3/i) || url.match(/.ogg/i) || url.match(/.wav/i));
|
|
51
|
-
var videoProps = {
|
|
52
|
-
ref: function ref(videoRef) {
|
|
53
|
-
setVideo(videoRef);
|
|
54
|
-
},
|
|
55
|
-
src: url,
|
|
56
|
-
style: {
|
|
57
|
-
height: '100%',
|
|
58
|
-
width: '100%'
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
var onEnded = function onEnded() {
|
|
63
|
-
videoPlayer.pause();
|
|
64
|
-
|
|
65
|
-
if (documentType !== 'document' && documentType !== 'lesson') {
|
|
66
|
-
endVideo();
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
var onError = function onError() {
|
|
71
|
-
endVideo();
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
(0, _react.useEffect)(function () {
|
|
75
|
-
var hls;
|
|
76
|
-
|
|
77
|
-
if (videoPlayer) {
|
|
78
|
-
if (isHls) {
|
|
79
|
-
hls = new _hls.default();
|
|
80
|
-
var URL_RAND = "".concat(url, "?v=").concat(Math.floor(Math.random() * 99999999));
|
|
81
|
-
hls.loadSource(URL_RAND);
|
|
82
|
-
hls.attachMedia(videoPlayer);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return function () {
|
|
86
|
-
if (hls) {
|
|
87
|
-
hls.destroy();
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
hls = null;
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return undefined;
|
|
95
|
-
}, [isHls, url, videoPlayer]);
|
|
96
|
-
var audioBackgroundImage = backgroundImage || defaultBgImageForAudio;
|
|
97
|
-
var CoverOrContain = audioBackgroundImage === defaultBgImageForAudio ? 'cover' : 'contain';
|
|
98
|
-
var configForAudio = {
|
|
99
|
-
backgroundImage: "url(\"".concat(audioBackgroundImage, "\")"),
|
|
100
|
-
backgroundSize: CoverOrContain,
|
|
101
|
-
backgroundRepeat: 'no-repeat',
|
|
102
|
-
backgroundPosition: 'center center'
|
|
103
|
-
};
|
|
104
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
105
|
-
className: "video media-visor",
|
|
106
|
-
style: isAudio ? configForAudio : null
|
|
107
|
-
}, !isEmbeddedVideo ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("video", _extends({
|
|
108
|
-
onEnded: onEnded,
|
|
109
|
-
onError: onError
|
|
110
|
-
}, videoProps, {
|
|
111
|
-
controls: true,
|
|
112
|
-
disablePictureInPicture: true,
|
|
113
|
-
controlsList: "nofullscreen nodownload noremoteplayback"
|
|
114
|
-
}), /*#__PURE__*/_react.default.createElement("track", {
|
|
115
|
-
kind: "captions"
|
|
116
|
-
}))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
117
|
-
className: "position--absolute right top z-index1"
|
|
118
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
119
|
-
className: "gat--btn__round gat--btn__close",
|
|
120
|
-
role: "button",
|
|
121
|
-
tabIndex: 0,
|
|
122
|
-
onKeyUp: function onKeyUp() {},
|
|
123
|
-
"aria-label": "close button",
|
|
124
|
-
onClick: endVideo
|
|
125
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
126
|
-
className: "icon-close"
|
|
127
|
-
}))), /*#__PURE__*/_react.default.createElement("iframe", _extends({
|
|
128
|
-
className: "embeddedVideo",
|
|
129
|
-
title: "title"
|
|
130
|
-
}, videoProps))));
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
VideoVisor.defaultProps = {
|
|
134
|
-
url: '',
|
|
135
|
-
name: '',
|
|
136
|
-
backgroundImage: null,
|
|
137
|
-
documentType: '',
|
|
138
|
-
required: false,
|
|
139
|
-
viewed: false,
|
|
140
|
-
endVideo: function endVideo() {}
|
|
141
|
-
};
|
|
142
|
-
var _default = VideoVisor;
|
|
143
|
-
exports.default = _default;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _MediaVisor = _interopRequireDefault(require("./components/MediaVisor"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
var _default = _MediaVisor.default;
|
|
13
|
-
exports.default = _default;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.mockProps = exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
/* eslint-disable max-len */
|
|
9
|
-
var path = 'https://min.gamelearn.io/statics.triskelion';
|
|
10
|
-
var cloudfront = 'https://dszv2c8p7i9xo.cloudfront.net/';
|
|
11
|
-
var mockProps = [{
|
|
12
|
-
name: 'video',
|
|
13
|
-
required: true,
|
|
14
|
-
documentType: 'document',
|
|
15
|
-
url: "".concat(cloudfront, "10fdf3ba-8bcb-49ef-b6fd-2cdd083b8e0d/hls/radio.m3u8"),
|
|
16
|
-
viewed: false
|
|
17
|
-
}, {
|
|
18
|
-
url: "".concat(path, "/triskelion-statics/videos/ada_hack.mp4")
|
|
19
|
-
}, {
|
|
20
|
-
url: "https://www.youtube.com/embed/5KcuphEhO8Q"
|
|
21
|
-
}, {
|
|
22
|
-
url: 'https://player.vimeo.com/video/144094036'
|
|
23
|
-
}, {
|
|
24
|
-
url: 'https://pokemoncries.com/cries-old/1.mp3'
|
|
25
|
-
}, {
|
|
26
|
-
imgId: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60224b7a901f3e0012350158/vista-vertical-torre-eiffel-paris-francia_1258-3169.jpg',
|
|
27
|
-
url: 'https://pokemoncries.com/cries-old/1.mp3'
|
|
28
|
-
}];
|
|
29
|
-
exports.mockProps = mockProps;
|
|
30
|
-
var _default = mockProps;
|
|
31
|
-
exports.default = _default;
|