@gamelearn/arcade-components 1.26.1 → 1.26.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -110,6 +110,17 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
110
110
  var isCompleted = (0, _react.useCallback)(function () {
111
111
  return correctTextFragmentsPartial.current === list[currentSlide].correctTexts.length || list[currentSlide].hasClickOnce && correctTextFragmentsPartial.current >= 1;
112
112
  }, [currentSlide, list]);
113
+ var modifyFeedbackData = (0, _react.useCallback)(function (show, data) {
114
+ if (show) emitEvent({
115
+ type: 'hidePuzzleButtons',
116
+ payload: true
117
+ });
118
+ setFeedbackData(function (prevState) {
119
+ return _objectSpread(_objectSpread({}, prevState), {}, {
120
+ show: show
121
+ }, data);
122
+ });
123
+ }, [emitEvent]);
113
124
  var goForward = (0, _react.useCallback)(function () {
114
125
  if (isCompleted()) {
115
126
  setFeedbackData(function (prevState) {
@@ -177,23 +188,16 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
177
188
  });
178
189
  setCorrectTextFragmentsAccumulated(correctTextFragmentsAccumulated + 1);
179
190
  correctTextFragmentsPartial.current += 1;
180
- emitEvent({
181
- type: 'hidePuzzleButtons',
182
- payload: true
183
- });
184
191
  playSound('score'); // si tiene feedback general definido
185
192
 
186
193
  if ((_list$currentSlide$in = list[currentSlide].info.solution.right) !== null && _list$currentSlide$in !== void 0 && _list$currentSlide$in.desc) {
187
194
  // solo muestra la caja verde y suma puntos cuando resuelves todos los fragmentos correctos
188
195
  if (isCompleted()) {
189
196
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.right.rewards));
190
- setFeedbackData(function (prevState) {
191
- return _objectSpread(_objectSpread({}, prevState), {}, {
192
- show: true,
193
- result: true,
194
- text: list[currentSlide].info.solution.right.desc,
195
- timeout: false
196
- });
197
+ modifyFeedbackData(true, {
198
+ result: true,
199
+ text: list[currentSlide].info.solution.right.desc,
200
+ timeout: false
197
201
  });
198
202
  }
199
203
  } // si no tiene feedback general y tiene specificFeedbacks definido
@@ -201,13 +205,10 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
201
205
  var _specificFeedback$rew;
202
206
 
203
207
  accRewards.current = specificFeedback !== null && specificFeedback !== void 0 && (_specificFeedback$rew = specificFeedback.rewards) !== null && _specificFeedback$rew !== void 0 && _specificFeedback$rew.length ? [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards)) : _toConsumableArray(accRewards.current);
204
- setFeedbackData(function (prevState) {
205
- return _objectSpread(_objectSpread({}, prevState), {}, {
206
- show: true,
207
- result: true,
208
- text: specificFeedback.desc,
209
- timeout: false
210
- });
208
+ modifyFeedbackData(true, {
209
+ result: true,
210
+ text: specificFeedback.desc,
211
+ timeout: false
211
212
  });
212
213
  } // si no tiene feedback general ni specificFeedbacks,
213
214
  // solo muestra la caja verde y suma puntos cuando resuelves todos los fragmentos correctos
@@ -216,34 +217,24 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
216
217
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards));
217
218
 
218
219
  if (isCompleted()) {
219
- setFeedbackData(function (prevState) {
220
- return _objectSpread(_objectSpread({}, prevState), {}, {
221
- show: true,
222
- result: true,
223
- timeout: true
224
- });
220
+ modifyFeedbackData(true, {
221
+ result: true,
222
+ timeout: true
225
223
  });
226
224
  }
227
225
  } // si tiene puntos generales
228
226
  else if (isCompleted()) {
229
227
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.right.rewards));
230
- setFeedbackData(function (prevState) {
231
- return _objectSpread(_objectSpread({}, prevState), {}, {
232
- show: true,
233
- result: true,
234
- timeout: true
235
- });
228
+ modifyFeedbackData(true, {
229
+ result: true,
230
+ timeout: true
236
231
  });
237
232
  }
238
- }, [correctTextFragmentsAccumulated, emitEvent, playSound, list, currentSlide, isCompleted]);
233
+ }, [correctTextFragmentsAccumulated, playSound, list, currentSlide, isCompleted, modifyFeedbackData]);
239
234
  var handleIncorrectClick = (0, _react.useCallback)(function (allDataTextIds, specificFeedback) {
240
235
  allDataTextIds.forEach(function (el) {
241
236
  return el.classList.add('text-click__failed');
242
237
  });
243
- emitEvent({
244
- type: 'hidePuzzleButtons',
245
- payload: true
246
- });
247
238
  playSound('fail');
248
239
  emitEvent({
249
240
  type: 'failPuzzle'
@@ -251,50 +242,38 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
251
242
 
252
243
  if (list[currentSlide].info.solution.wrong.desc !== '') {
253
244
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.wrong.rewards));
254
- setFeedbackData(function (prevState) {
255
- return _objectSpread(_objectSpread({}, prevState), {}, {
256
- show: true,
257
- result: false,
258
- text: list[currentSlide].info.solution.wrong.desc,
259
- timeout: false
260
- });
245
+ modifyFeedbackData(true, {
246
+ result: false,
247
+ text: list[currentSlide].info.solution.wrong.desc,
248
+ timeout: false
261
249
  });
262
250
  } // si no tiene feedback general pero tiene specificFeedbacks definido
263
251
  else if (list[currentSlide].info.solution.wrong.desc === '' && specificFeedback !== null && specificFeedback !== void 0 && specificFeedback.desc) {
264
252
  var _specificFeedback$rew2;
265
253
 
266
254
  accRewards.current = specificFeedback !== null && specificFeedback !== void 0 && (_specificFeedback$rew2 = specificFeedback.rewards) !== null && _specificFeedback$rew2 !== void 0 && _specificFeedback$rew2.length ? [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards)) : _toConsumableArray(accRewards.current);
267
- setFeedbackData(function (prevState) {
268
- return _objectSpread(_objectSpread({}, prevState), {}, {
269
- show: true,
270
- result: false,
271
- text: specificFeedback.desc,
272
- timeout: false
273
- });
255
+ modifyFeedbackData(true, {
256
+ result: false,
257
+ text: specificFeedback.desc,
258
+ timeout: false
274
259
  });
275
260
  } // si no tiene feedback general ni specificFeedbacks definido
276
261
  else if (list[currentSlide].specificFeedbacks.specificWrongFeedbacks) {
277
262
  // si tiene puntos definidos por feedbacks negativos
278
263
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards));
279
- setFeedbackData(function (prevState) {
280
- return _objectSpread(_objectSpread({}, prevState), {}, {
281
- show: true,
282
- result: false,
283
- timeout: true
284
- });
264
+ modifyFeedbackData(true, {
265
+ result: false,
266
+ timeout: true
285
267
  });
286
268
  } // si tiene puntos generales definidos por feedbacks negativo
287
269
  else {
288
270
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.wrong.rewards));
289
- setFeedbackData(function (prevState) {
290
- return _objectSpread(_objectSpread({}, prevState), {}, {
291
- show: true,
292
- result: false,
293
- timeout: true
294
- });
271
+ modifyFeedbackData(true, {
272
+ result: false,
273
+ timeout: true
295
274
  });
296
275
  }
297
- }, [emitEvent, playSound, list, currentSlide]);
276
+ }, [playSound, emitEvent, list, currentSlide, modifyFeedbackData]);
298
277
  var onClickMark = (0, _react.useCallback)(function (e, id) {
299
278
  var _list$currentSlide, _list$currentSlide$sp, _list$currentSlide2, _list$currentSlide2$s;
300
279
 
@@ -331,17 +310,10 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
331
310
  setOrderCounter(0);
332
311
  setCorrectTextFragmentsAccumulated(0);
333
312
  correctTextFragmentsPartial.current = 0;
334
- emitEvent({
335
- type: 'hidePuzzleButtons',
336
- payload: true
337
- });
338
- setFeedbackData(function (prevState) {
339
- return _objectSpread(_objectSpread({}, prevState), {}, {
340
- show: true,
341
- result: false,
342
- text: list[currentSlide].info.orderFeedback.desc || translate('puzzles.incorrectOrder'),
343
- timeout: false
344
- });
313
+ modifyFeedbackData(true, {
314
+ result: false,
315
+ text: list[currentSlide].info.orderFeedback.desc || translate('puzzles.incorrectOrder'),
316
+ timeout: false
345
317
  });
346
318
  } else {
347
319
  // si has click en mala repuesta
@@ -355,7 +327,7 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
355
327
  // si la opción clickada es incorrecta
356
328
  handleIncorrectClick(currentTextDom, specificWrongFeedback);
357
329
  }
358
- }, [list, currentSlide, orderCounter, handleCorrectClick, emitEvent, translate, handleIncorrectClick, playSound]);
330
+ }, [list, currentSlide, playSound, orderCounter, handleCorrectClick, modifyFeedbackData, translate, handleIncorrectClick]);
359
331
  var recursiveStuff = (0, _react.useCallback)(function (jsx) {
360
332
  return (0, _utils.getRecursiveJSX)(jsx, 0, list[currentSlide], onClickMark);
361
333
  }, [currentSlide, list, onClickMark]);
@@ -185,7 +185,7 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
185
185
  });
186
186
  };
187
187
 
188
- var fixedDelay = 2;
188
+ var fixedDelay = 12;
189
189
 
190
190
  var checkAllDecisionsRightWrong = function checkAllDecisionsRightWrong() {
191
191
  if (decisionsList) {
@@ -382,7 +382,13 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
382
382
  };
383
383
 
384
384
  var onIsWriting = function onIsWriting() {
385
- automaticScroll.current.scrollTop += automaticScroll.current.scrollTop + 1;
385
+ if (automaticScroll.current.querySelector('.Typist').offsetHeight > automaticScroll.current.offsetHeight) {
386
+ var scrollToAdd = automaticScroll.current.querySelector('.Typist').offsetHeight - automaticScroll.current.offsetHeight;
387
+ automaticScroll.current.scrollTo({
388
+ top: scrollToAdd,
389
+ behavior: 'smooth'
390
+ });
391
+ }
386
392
  };
387
393
 
388
394
  var handleFixed = function handleFixed(text, length, index) {
@@ -480,6 +486,10 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
480
486
  dir: (0, _LangIsRtl.default)() ? 'rtl' : 'auto'
481
487
  }, /*#__PURE__*/_react.default.createElement("div", {
482
488
  className: "writer-puzzle__scroll",
489
+ style: {
490
+ overflowX: 'hidden',
491
+ padding: '0 0 20px 0'
492
+ },
483
493
  ref: automaticScroll
484
494
  }, isActive && !reviewDone && Object.values(textHolder).map(function (text, i) {
485
495
  return handleText(text, Object.values(textHolder).length - 1, i);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.mock8 = exports.mock7 = exports.mock6 = exports.mock5 = exports.mock4 = exports.mock3 = exports.mock2 = exports.mock = exports.messages = void 0;
6
+ exports.mock9 = exports.mock8 = exports.mock7 = exports.mock6 = exports.mock5 = exports.mock4 = exports.mock3 = exports.mock2 = exports.mock = exports.messages = void 0;
7
7
 
8
8
  var _mocker = require("helpers/mocker");
9
9
 
@@ -32,6 +32,8 @@ var messages = {
32
32
  fullText11: '<p>sdfsdfsdf</p>',
33
33
  fullText12: ' <p>Mucho Texto aqui a desglosar bla bla bla bla</p>',
34
34
  fullText13: ' <p>Mucho Texto aqui a desglosar bla bla bla bla</p>',
35
+ fullTextXXL: // eslint-disable-next-line max-len
36
+ '<p>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda. En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda. En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda. En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.<br><br>En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lantejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda.</p>',
35
37
  previewText1: 'Preview Text 1',
36
38
  previewText2: 'este pinta bien ;)',
37
39
  previewText3: 'correcto este',
@@ -1029,4 +1031,57 @@ var mock8 = {
1029
1031
  skip: false,
1030
1032
  documentTitle: messages.documentTitle5
1031
1033
  };
1032
- exports.mock8 = mock8;
1034
+ exports.mock8 = mock8;
1035
+ var mock9 = {
1036
+ emitEvent: _mocker.emitEvent,
1037
+ soundActions: _mocker.soundActions,
1038
+ texts: [{
1039
+ type: 'fixed',
1040
+ fullText: messages.fullTextXXL
1041
+ }],
1042
+ info: {
1043
+ solution: {
1044
+ right: {
1045
+ desc: 'Great!!',
1046
+ rewards: [],
1047
+ desc_labelId: 'desc_bEo7Tp88'
1048
+ },
1049
+ wrong: {
1050
+ desc: 'Boooo',
1051
+ rewards: [],
1052
+ desc_labelId: 'desc_bEo7TrDd'
1053
+ }
1054
+ },
1055
+ hint: {
1056
+ active: true,
1057
+ desc: 'Just choose',
1058
+ rewards: [{
1059
+ id: 'k7d3gq9i',
1060
+ name: 'asdasd',
1061
+ rewards: -10,
1062
+ type: 'score'
1063
+ }],
1064
+ desc_labelId: 'desc_bEo7TTUl'
1065
+ },
1066
+ resolve: {
1067
+ rewards: [{
1068
+ id: 'k7d3gq9i',
1069
+ name: 'asdasd',
1070
+ rewards: 100,
1071
+ type: 'score'
1072
+ }]
1073
+ },
1074
+ title: 'Writter Title',
1075
+ instructions: 'Instructions for doing this Puzzle',
1076
+ description: 'This is a puzzle about writting',
1077
+ title_labelId: 'title_bEo7SRDk',
1078
+ instructions_labelId: 'instructions_bEo7TDEq'
1079
+ },
1080
+ styles: 'whatsapp-dark',
1081
+ type: 'view',
1082
+ visible: true,
1083
+ retry: false,
1084
+ skip: false,
1085
+ documentTitle: messages.documentTitle5
1086
+ };
1087
+ exports.mock9 = mock9;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "author": "Gamelearn",
4
4
  "license": "unlicense",
5
- "version": "1.26.1",
5
+ "version": "1.26.3",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",