@gamelearn/arcade-components 2.23.10 → 2.24.0

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.
@@ -183,9 +183,8 @@ var AutoEvaluation = function AutoEvaluation(_ref) {
183
183
  className: "survey--questions__container",
184
184
  "aria-label": "survey questions container"
185
185
  }, /*#__PURE__*/_react.default.createElement("div", {
186
- className: "survey--questions__count",
187
- "aria-label": "survey questions count"
188
- }, /*#__PURE__*/_react.default.createElement("span", null, translate('auto-evaluation.question'), "\xA0", currentQuestion + 1, " ", translate('storylines.misc.of'), " ", questions.length), /*#__PURE__*/_react.default.createElement("span", null, translate('auto-evaluation.allQuestionsMandatory'))), /*#__PURE__*/_react.default.createElement("div", {
186
+ className: "survey--questions__intertitle"
187
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", null, translate('auto-evaluation.question'), "\xA0", currentQuestion + 1, " ", translate('storylines.misc.of'), " ", questions.length)), /*#__PURE__*/_react.default.createElement("div", null, translate('auto-evaluation.allQuestionsMandatory'))), /*#__PURE__*/_react.default.createElement("div", {
189
188
  key: "".concat(questions[currentQuestion])
190
189
  }, /*#__PURE__*/_react.default.createElement("div", {
191
190
  className: "survey--questions__item",
@@ -71,11 +71,12 @@ var Options = function Options(_ref) {
71
71
  }).map(function (option) {
72
72
  return /*#__PURE__*/_react.default.createElement("div", {
73
73
  key: option.id,
74
- className: "".concat(inherited ? 'conversation--question' : 'radio', "\n ").concat(neutralDecisionVisualEffect === option.id ? 'radio-text-clicked' : '')
74
+ className: "".concat(inherited ? 'conversation--question custom-radio' : 'custom-radio', "\n ").concat(neutralDecisionVisualEffect === option.id ? 'radio-text-clicked' : '')
75
75
  }, /*#__PURE__*/_react.default.createElement("input", {
76
76
  onChange: function onChange() {
77
77
  whenSelectOption(option);
78
78
  },
79
+ className: "radio",
79
80
  type: "radio",
80
81
  id: option.text,
81
82
  name: option.id,
@@ -131,12 +131,6 @@ Object.defineProperty(exports, "LoginPuzzleComponent", {
131
131
  return _loginPuzzleComponent.default;
132
132
  }
133
133
  });
134
- Object.defineProperty(exports, "MediaVisor", {
135
- enumerable: true,
136
- get: function get() {
137
- return _mediaVisor.default;
138
- }
139
- });
140
134
  Object.defineProperty(exports, "NoticeComponent", {
141
135
  enumerable: true,
142
136
  get: function get() {
@@ -284,8 +278,6 @@ var _testComponent = _interopRequireDefault(require("./test-component"));
284
278
 
285
279
  var _surveyComponent = _interopRequireDefault(require("./survey-component"));
286
280
 
287
- var _mediaVisor = _interopRequireDefault(require("./media-visor"));
288
-
289
281
  var _autoEvaluationComponent = _interopRequireDefault(require("./auto-evaluation-component"));
290
282
 
291
283
  var _patternComponent = _interopRequireDefault(require("./pattern-component"));
@@ -33,18 +33,22 @@ var ApplicableBox = function ApplicableBox(_ref) {
33
33
  return /*#__PURE__*/_react.default.createElement("div", {
34
34
  className: "survey--page__item"
35
35
  }, OPTIONS.map(function (option, i) {
36
- return /*#__PURE__*/_react.default.createElement("button", {
37
- type: "button",
38
- key: option,
39
- onClick: function onClick() {
40
- return select(option);
41
- },
42
- className: "unset-button survey--response__item ".concat(survey[id] === option ? 'selected' : '')
43
- }, /*#__PURE__*/_react.default.createElement("div", {
44
- className: "survey--response__index"
45
- }, LETTERS[i]), /*#__PURE__*/_react.default.createElement("div", {
46
- className: "survey--response__text"
47
- }, translate("survey.".concat(option))));
36
+ return (
37
+ /*#__PURE__*/
38
+ // TODO: convert this buttons to radiobutton and not agilize this question in order to A11y
39
+ _react.default.createElement("button", {
40
+ type: "button",
41
+ key: option,
42
+ onClick: function onClick() {
43
+ return select(option);
44
+ },
45
+ className: "unset-button survey--response__item ".concat(survey[id] === option ? 'selected' : '')
46
+ }, /*#__PURE__*/_react.default.createElement("div", {
47
+ className: "survey--response__index"
48
+ }, LETTERS[i]), /*#__PURE__*/_react.default.createElement("div", {
49
+ className: "survey--response__text"
50
+ }, translate("survey.".concat(option))))
51
+ );
48
52
  }));
49
53
  };
50
54
 
@@ -112,11 +112,11 @@ var SurveyComponent = function SurveyComponent(_ref) {
112
112
  }, /*#__PURE__*/_react.default.createElement("div", {
113
113
  className: "survey--questions__container"
114
114
  }, /*#__PURE__*/_react.default.createElement("div", {
115
- className: "survey--questions__count"
116
- }, /*#__PURE__*/_react.default.createElement("span", null, translate('survey.numQuestion', {
115
+ className: "survey--questions__intertitle"
116
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", null, translate('survey.numQuestion', {
117
117
  init: page + 1,
118
118
  page: PAGES.length
119
- })), /*#__PURE__*/_react.default.createElement("span", null, translate('auto-evaluation.allQuestionsMandatory'))), /*#__PURE__*/_react.default.createElement("label", {
119
+ }))), /*#__PURE__*/_react.default.createElement("div", null, translate('auto-evaluation.allQuestionsMandatory'))), /*#__PURE__*/_react.default.createElement("label", {
120
120
  className: "survey--questions__item",
121
121
  htmlFor: translate("survey.question".concat(page + 1), {
122
122
  ordinal: page + 1
@@ -11,7 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _Questions = _interopRequireDefault(require("./Questions"));
13
13
 
14
- var _Feedback = _interopRequireDefault(require("./Feedback"));
14
+ var _Feedbacks = _interopRequireDefault(require("./Feedbacks"));
15
15
 
16
16
  var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
17
17
 
@@ -48,7 +48,10 @@ var Container = function Container(_ref) {
48
48
  disabled = _ref.disabled,
49
49
  translate = _ref.translate,
50
50
  soundActions = _ref.soundActions,
51
- paused = _ref.paused;
51
+ paused = _ref.paused,
52
+ view = _ref.view,
53
+ correctQuestions = _ref.correctQuestions;
54
+ var layerToBeScrolled = document.querySelector(".test--container");
52
55
 
53
56
  var _useState = (0, _react.useState)(0),
54
57
  _useState2 = _slicedToArray(_useState, 2),
@@ -84,10 +87,11 @@ var Container = function Container(_ref) {
84
87
  }, [disabled, feedback, paused, saveInterval, setTime, time]);
85
88
 
86
89
  var nextPage = function nextPage() {
90
+ layerToBeScrolled.scrollTo(0, 0);
87
91
  play('click-ui');
88
92
 
89
93
  if (answered) {
90
- if (result[qid].feedback && !disabled) {
94
+ if (result[qid][0].feedback && !disabled) {
91
95
  setFeedback(true);
92
96
  } else {
93
97
  answerPage(false);
@@ -96,7 +100,14 @@ var Container = function Container(_ref) {
96
100
  }
97
101
  };
98
102
 
103
+ var previousPage = function previousPage() {
104
+ play('click-ui');
105
+ setNextQuestion(currentQuestionId - 1);
106
+ };
107
+
99
108
  var nextPageFeedback = function nextPageFeedback() {
109
+ layerToBeScrolled.scrollTo(0, 0);
110
+
100
111
  if (questions[currentQuestionId + 1]) {
101
112
  setFeedback(false);
102
113
  answerPage(false);
@@ -107,9 +118,10 @@ var Container = function Container(_ref) {
107
118
  };
108
119
 
109
120
  var finishTest = function finishTest() {
121
+ layerToBeScrolled.scrollTo(0, 0);
110
122
  setTries(tries + 1);
111
123
 
112
- if (result[qid].feedback && !disabled) {
124
+ if (result[qid][0].feedback && !disabled) {
113
125
  setFeedback(true);
114
126
  } else {
115
127
  showResults();
@@ -118,22 +130,52 @@ var Container = function Container(_ref) {
118
130
 
119
131
  var minutes = Math.floor(time / 60);
120
132
  var seconds = time % 60;
121
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, feedback ? /*#__PURE__*/_react.default.createElement(_Feedback.default, {
122
- question: questions[currentQuestionId].text,
123
- nextPage: function nextPage() {
124
- return nextPageFeedback();
125
- },
126
- answer: result[qid],
127
- translate: translate
128
- }) : /*#__PURE__*/_react.default.createElement("div", {
133
+ (0, _react.useEffect)(function () {
134
+ // move scroll to checkbox in review mode
135
+ if (view === 'review') {
136
+ var idSelected = result["q".concat(currentQuestionId)][0].id;
137
+ var inputSelected = document.querySelector("#".concat(idSelected));
138
+ layerToBeScrolled.scrollTo(0, inputSelected.offsetTop);
139
+ }
140
+ }, [currentQuestionId, layerToBeScrolled, result, view]);
141
+
142
+ var questionAnsweredCorrectly = function questionAnsweredCorrectly() {
143
+ if (answered) {
144
+ var correctAnswers = correctQuestions[questions[currentQuestionId].id.substring(1)].answers;
145
+ var selectedAnswers = result[qid];
146
+ var thereAreWrongAnswersSelected = selectedAnswers.find(function (el) {
147
+ return el.isCorrect === false;
148
+ });
149
+ var fixedAnswers = 0;
150
+ selectedAnswers.forEach(function (el) {
151
+ if (correctAnswers.includes(el.id)) {
152
+ fixedAnswers += 1;
153
+ }
154
+ });
155
+ return !thereAreWrongAnswersSelected && fixedAnswers === correctAnswers.length;
156
+ }
157
+
158
+ return false;
159
+ };
160
+
161
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, view === 'review' || feedback ? /*#__PURE__*/_react.default.createElement("div", {
162
+ className: "test-feedback-header ".concat(questionAnsweredCorrectly() ? 'success' : 'failed')
163
+ }, /*#__PURE__*/_react.default.createElement("h2", null, /*#__PURE__*/_react.default.createElement("span", {
164
+ className: "".concat(questionAnsweredCorrectly() ? 'icon-correct-thumb' : 'icon-incorrect-thumb')
165
+ }), /*#__PURE__*/_react.default.createElement("span", {
166
+ className: "test-feedback-header__title"
167
+ }, questionAnsweredCorrectly() ? translate('tests.resolvedQuestion') : translate('tests.notResolvedQuestion')))) : null, /*#__PURE__*/_react.default.createElement("div", {
129
168
  className: "test--questions"
130
169
  }, /*#__PURE__*/_react.default.createElement("div", {
131
170
  className: "test--questions__container"
132
- }, /*#__PURE__*/_react.default.createElement("div", {
133
- className: "flex justify-space-between align-center"
134
- }, /*#__PURE__*/_react.default.createElement("div", {
135
- className: "test--questions__count"
136
- }, (0, _LangIsRtl.default)() ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, currentQuestionId + 1, "/", questions.length, " ", /*#__PURE__*/_react.default.createElement("span", null, translate('tests.question'))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.question')), " ", currentQuestionId + 1, "/", questions.length)), time >= 0 ? /*#__PURE__*/_react.default.createElement("div", {
171
+ }, feedback ? /*#__PURE__*/_react.default.createElement(_Feedbacks.default, {
172
+ selectedAnswers: result[qid],
173
+ correctQuestions: correctQuestions[questions[currentQuestionId].id.substring(1)].answers,
174
+ question: questions[currentQuestionId].text,
175
+ translate: translate
176
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
177
+ className: "test--questions__intertitle"
178
+ }, /*#__PURE__*/_react.default.createElement("div", null, (0, _LangIsRtl.default)() ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, currentQuestionId + 1, "/", questions.length, " ", /*#__PURE__*/_react.default.createElement("span", null, translate('tests.question'))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, translate('tests.question')), " ", currentQuestionId + 1, "/", questions.length)), view !== 'review' && time >= 0 ? /*#__PURE__*/_react.default.createElement("div", {
137
179
  dir: "ltr",
138
180
  className: "count-down ".concat(time < 10 ? 'count-down--finalseconds' : '')
139
181
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -145,10 +187,23 @@ var Container = function Container(_ref) {
145
187
  answered: answered,
146
188
  updateForm: updateForm,
147
189
  question: questions[currentQuestionId],
190
+ correctQuestions: disabled ? correctQuestions[questions[currentQuestionId].id.substring(1)].answers : [],
148
191
  translate: translate
149
- })), /*#__PURE__*/_react.default.createElement("div", {
150
- className: "test--buttons next"
151
- }, questions[currentQuestionId + 1] ? /*#__PURE__*/_react.default.createElement("button", {
192
+ }))), /*#__PURE__*/_react.default.createElement("div", {
193
+ className: "test--buttons ".concat(view === 'review' ? 'reviewmode' : 'next')
194
+ }, view === 'review' ? /*#__PURE__*/_react.default.createElement("button", {
195
+ disabled: currentQuestionId === 0,
196
+ id: "back-button",
197
+ onClick: function onClick() {
198
+ return previousPage();
199
+ },
200
+ type: "button",
201
+ className: "gat--btn__navigation ".concat(currentQuestionId === 0 ? 'disabled' : ''),
202
+ "aria-label": (0, _LangIsRtl.default)() ? translate('survey.next') : translate('survey.previous')
203
+ }, /*#__PURE__*/_react.default.createElement("span", {
204
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
205
+ })) : null, !feedback && questions[currentQuestionId + 1] ? /*#__PURE__*/_react.default.createElement("button", {
206
+ disabled: !answered,
152
207
  id: "next-button",
153
208
  onClick: function onClick() {
154
209
  return nextPage();
@@ -158,7 +213,17 @@ var Container = function Container(_ref) {
158
213
  "aria-label": (0, _LangIsRtl.default)() ? translate('survey.previous') : translate('survey.next')
159
214
  }, /*#__PURE__*/_react.default.createElement("span", {
160
215
  className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
161
- })) : /*#__PURE__*/_react.default.createElement("button", {
216
+ })) : null, feedback ? /*#__PURE__*/_react.default.createElement("button", {
217
+ id: "next-button",
218
+ onClick: function onClick() {
219
+ return nextPageFeedback();
220
+ },
221
+ type: "button",
222
+ className: "gat--btn__navigation"
223
+ }, /*#__PURE__*/_react.default.createElement("span", {
224
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
225
+ })) : null, !feedback && questions[currentQuestionId].id.substring(1) === (questions.length - 1).toString() ? /*#__PURE__*/_react.default.createElement("button", {
226
+ disabled: !answered,
162
227
  id: "finish-button",
163
228
  onClick: function onClick() {
164
229
  play('click-ui');
@@ -172,7 +237,7 @@ var Container = function Container(_ref) {
172
237
  "aria-label": (0, _LangIsRtl.default)() ? translate('survey.previous') : translate('survey.next')
173
238
  }, /*#__PURE__*/_react.default.createElement("span", {
174
239
  className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
175
- })))));
240
+ })) : null)));
176
241
  };
177
242
 
178
243
  var _default = Container;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var LABELS_INDEX = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
13
+
14
+ var FeedbackItem = function FeedbackItem(_ref) {
15
+ var selectedAnswers = _ref.selectedAnswers,
16
+ correctQuestions = _ref.correctQuestions,
17
+ question = _ref.question,
18
+ translate = _ref.translate;
19
+
20
+ var questionAnsweredCorrectly = function questionAnsweredCorrectly(optionSelected) {
21
+ return correctQuestions.includes(optionSelected);
22
+ };
23
+
24
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
25
+ className: "test--questions__item"
26
+ }, /*#__PURE__*/_react.default.createElement("span", null, question)), selectedAnswers.map(function (answer) {
27
+ return /*#__PURE__*/_react.default.createElement("div", {
28
+ key: answer.text
29
+ }, /*#__PURE__*/_react.default.createElement("div", {
30
+ className: "test--response__item ".concat(questionAnsweredCorrectly(answer.id) ? 'success' : 'failed')
31
+ }, /*#__PURE__*/_react.default.createElement("div", {
32
+ className: "test--response__index"
33
+ }, LABELS_INDEX[answer.index]), /*#__PURE__*/_react.default.createElement("div", {
34
+ className: "test--response__text"
35
+ }, /*#__PURE__*/_react.default.createElement("span", null, answer.text)), /*#__PURE__*/_react.default.createElement("div", {
36
+ className: "test--response__icon ".concat(questionAnsweredCorrectly(answer.id) ? 'icon-check-circle-black color--success' : 'icon-error-circle-black color--error')
37
+ })), /*#__PURE__*/_react.default.createElement("div", {
38
+ className: "test--feedback"
39
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("b", null, /*#__PURE__*/_react.default.createElement("span", null, translate('test.feedback'), " ", selectedAnswers.length > 1 ? LABELS_INDEX[answer.index] : ''))), /*#__PURE__*/_react.default.createElement("span", null, answer.feedback)));
40
+ }));
41
+ };
42
+
43
+ var _default = FeedbackItem;
44
+ exports.default = _default;
@@ -1,13 +1,29 @@
1
1
  "use strict";
2
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
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = void 0;
7
9
 
8
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ 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); }
13
+
14
+ 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; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ 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."); }
19
+
20
+ 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); }
9
21
 
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
27
 
12
28
  var LABELS_INDEX = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
13
29
 
@@ -17,31 +33,78 @@ var Questions = function Questions(_ref) {
17
33
  question = _ref.question,
18
34
  updateForm = _ref.updateForm,
19
35
  result = _ref.result,
36
+ correctQuestions = _ref.correctQuestions,
20
37
  translate = _ref.translate;
38
+
39
+ var _useState = (0, _react.useState)(false),
40
+ _useState2 = _slicedToArray(_useState, 2),
41
+ isMultiAnswers = _useState2[0],
42
+ setIsMultiAnswers = _useState2[1];
43
+
21
44
  var filteredAnswers = question.answers.filter(function (answer) {
22
45
  return answer.text;
23
46
  });
24
47
 
25
- var getClass = function getClass(answer) {
26
- var answerClass = '';
48
+ var checkIfCheckboxIsChecked = function checkIfCheckboxIsChecked(id) {
49
+ var isChecked = false;
27
50
 
28
- if (answered && answer.id === result[question.id].id) {
29
- answerClass = 'selected';
51
+ if (result[question.id].find(function (element) {
52
+ return element.id === id;
53
+ })) {
54
+ isChecked = true;
30
55
  }
31
56
 
32
- if (disabled && answer.id === result[question.id].id) {
33
- answerClass = result[question.id].isCorrect ? 'success' : 'failed';
57
+ return isChecked;
58
+ };
59
+
60
+ var getInputStatus = function getInputStatus(answer) {
61
+ var status = '';
62
+
63
+ if (isMultiAnswers) {
64
+ if (answered && checkIfCheckboxIsChecked(answer.id)) {
65
+ status = 'selected';
66
+ }
67
+
68
+ if (disabled && checkIfCheckboxIsChecked(answer.id) && correctQuestions.includes(answer.id)) {
69
+ status = 'success';
70
+ }
71
+
72
+ if (disabled && checkIfCheckboxIsChecked(answer.id) && !correctQuestions.includes(answer.id)) {
73
+ status = 'failed';
74
+ }
75
+ } else {
76
+ if (answered && answer.id === result[question.id][0].id) {
77
+ status = 'selected';
78
+ }
79
+
80
+ if (disabled && answer.id === result[question.id][0].id) {
81
+ status = result[question.id][0].isCorrect ? 'success' : 'failed';
82
+ }
34
83
  }
35
84
 
36
- return answerClass;
85
+ return status;
37
86
  };
38
87
 
39
- var show = function show(answer) {
40
- if (disabled && answer.feedback && answer.id === result[question.id].id) {
41
- return true;
88
+ var getIconStatus = function getIconStatus(answer) {
89
+ var status = getInputStatus(answer);
90
+
91
+ if (status === 'selected') {
92
+ return 'icon-check-circle-black color--selected';
93
+ }
94
+
95
+ if (status === 'success') {
96
+ return 'icon-check-circle-black color--success';
97
+ }
98
+
99
+ if (status === 'failed') {
100
+ return 'icon-error-circle-black color--error';
42
101
  }
43
102
 
44
- return false;
103
+ return '';
104
+ };
105
+
106
+ var showTooltip = function showTooltip(answer) {
107
+ return disabled && answer.feedback && (isMultiAnswers && checkIfCheckboxIsChecked(answer.id) || answer.id === result[question.id][0].id);
45
108
  };
46
109
 
47
110
  var tooltipPosition = function tooltipPosition(answers, answerIndex) {
@@ -56,26 +119,57 @@ var Questions = function Questions(_ref) {
56
119
  return 'tooltip--center__right';
57
120
  };
58
121
 
122
+ var checkIfIsMultiAnswer = question.answers.filter(function (a) {
123
+ return a.isCorrect;
124
+ });
125
+ (0, _react.useEffect)(function () {
126
+ if (checkIfIsMultiAnswer.length === 1) {
127
+ setIsMultiAnswers(false);
128
+ } else {
129
+ setIsMultiAnswers(true);
130
+ }
131
+ }, [checkIfIsMultiAnswer.length, isMultiAnswers, question.answers]);
59
132
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
60
133
  className: "test--questions__item"
61
- }, /*#__PURE__*/_react.default.createElement("span", null, question.text)), filteredAnswers.map(function (answer, index) {
62
- return /*#__PURE__*/_react.default.createElement("button", {
63
- type: "button",
64
- onClick: function onClick() {
65
- return !disabled ? updateForm(answer, question.id, index) : null;
66
- },
67
- key: answer.text,
68
- className: "unset-button test--response__item ".concat(disabled ? 'review' : '', " ").concat(getClass(answer)),
69
- disabled: disabled && !getClass(answer)
134
+ }, /*#__PURE__*/_react.default.createElement("span", null, question.text)), isMultiAnswers && !disabled ? /*#__PURE__*/_react.default.createElement("div", {
135
+ className: "test--questions__intertitle test--questions__intertitle--multiresponse"
136
+ }, translate('tests.chooseMoreOneAnswer')) : null, filteredAnswers.map(function (answer, index) {
137
+ return /*#__PURE__*/_react.default.createElement("div", {
138
+ className: "test--response__fakeinput",
139
+ key: answer.text
140
+ }, isMultiAnswers ? /*#__PURE__*/_react.default.createElement("input", {
141
+ checked: answered && checkIfCheckboxIsChecked(answer.id),
142
+ disabled: disabled && !checkIfCheckboxIsChecked(answer.id),
143
+ readOnly: disabled,
144
+ type: "checkbox",
145
+ id: answer.id,
146
+ onChange: function onChange() {
147
+ return !disabled ? updateForm(answer, question.id, index, 'isCheckbox', answer.id) : null;
148
+ }
149
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", {
150
+ checked: answered && answer.id === result[question.id][0].id,
151
+ disabled: disabled && !getInputStatus(answer),
152
+ type: "radio",
153
+ name: "name",
154
+ id: answer.id,
155
+ onChange: function onChange() {
156
+ return !disabled ? updateForm(answer, question.id, index, 'isRadio') : null;
157
+ }
158
+ })), /*#__PURE__*/_react.default.createElement("label", {
159
+ htmlFor: answer.id,
160
+ className: "test--response__item ".concat(getInputStatus(answer))
70
161
  }, /*#__PURE__*/_react.default.createElement("div", {
71
162
  className: "test--response__index"
72
163
  }, LABELS_INDEX[index]), /*#__PURE__*/_react.default.createElement("div", {
73
164
  className: "test--response__text"
74
- }, /*#__PURE__*/_react.default.createElement("span", null, answer.text)), show(answer) ? /*#__PURE__*/_react.default.createElement("div", {
75
- className: "test--feedback__info"
165
+ }, /*#__PURE__*/_react.default.createElement("span", null, answer.text)), /*#__PURE__*/_react.default.createElement("div", {
166
+ className: "test--response__icon ".concat(getIconStatus(answer))
167
+ })), disabled ? /*#__PURE__*/_react.default.createElement("div", {
168
+ className: "test--feedback__info ".concat(!showTooltip(answer) ? 'test--feedback__info--hidden' : '')
76
169
  }, /*#__PURE__*/_react.default.createElement("span", {
77
- className: "icon-info2"
170
+ className: "icon-info2 ".concat(getInputStatus(answer) === 'success' ? 'color--success' : 'color--error')
78
171
  }), /*#__PURE__*/_react.default.createElement("div", {
172
+ id: "tooltipFeedback-".concat(index),
79
173
  className: "tooltip ".concat(tooltipPosition(filteredAnswers, index))
80
174
  }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("b", null, /*#__PURE__*/_react.default.createElement("span", null, translate('test.feedback')))), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("span", null, answer.feedback)))) : null);
81
175
  }));