lido-player 0.0.2-beta-16-dev → 0.0.2-beta-17-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/cjs/{decode-C08Ujimj.js → decode-DUZYNXIv.js} +1 -1
  2. package/dist/cjs/{index-BkBqiwe8.js → index-BEjUmVtH.js} +189 -53
  3. package/dist/cjs/{index-Dy19zuTX.js → index-DnqQXD5x.js} +53 -12
  4. package/dist/cjs/index.cjs.js +2 -2
  5. package/dist/cjs/lido-avatar_22.cjs.entry.js +60 -54
  6. package/dist/cjs/lido-player.cjs.js +3 -3
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/collection/collection-manifest.json +1 -1
  9. package/dist/collection/components/calculator/lido-calculator.js +3 -3
  10. package/dist/collection/components/mathMatrix/lido-math-matrix.js +12 -2
  11. package/dist/collection/components/scale/assets/Shadow.svg +9 -0
  12. package/dist/collection/components/scale/lido-balance.css +1 -1
  13. package/dist/collection/components/scale/lido-balance.js +13 -11
  14. package/dist/collection/components/text/lido-text.js +28 -2
  15. package/dist/collection/components/trace/assets/Tracing-hand.svg +8 -0
  16. package/dist/collection/components/trace/lido-trace.js +25 -38
  17. package/dist/collection/css/index.css +7 -4
  18. package/dist/collection/stories/Templates/blender/blender.stories.js +9 -5
  19. package/dist/collection/utils/audioPlayer.js +31 -9
  20. package/dist/collection/utils/utils.js +20 -10
  21. package/dist/collection/utils/utilsHandlers/animationHandler.js +9 -2
  22. package/dist/collection/utils/utilsHandlers/clickHandler.js +8 -0
  23. package/dist/collection/utils/utilsHandlers/dragDropHandler.js +28 -8
  24. package/dist/collection/utils/utilsHandlers/lidoCalculatorHandler.js +12 -15
  25. package/dist/collection/utils/utilsHandlers/slideHandler.js +76 -17
  26. package/dist/components/index.js +1 -1
  27. package/dist/components/lido-balance.js +1 -1
  28. package/dist/components/lido-calculator.js +1 -1
  29. package/dist/components/lido-container.js +1 -1
  30. package/dist/components/lido-home.js +1 -1
  31. package/dist/components/lido-keyboard.js +1 -1
  32. package/dist/components/lido-math-matrix.js +1 -1
  33. package/dist/components/lido-root.js +1 -1
  34. package/dist/components/lido-text.js +1 -1
  35. package/dist/components/lido-trace.js +1 -1
  36. package/dist/components/p-BNNX1Pew.js +12 -0
  37. package/dist/components/p-CTlwn9r7.js +1 -0
  38. package/dist/components/{p-C2p0KZh4.js → p-Cj-6tqzU.js} +1 -1
  39. package/dist/components/p-CjdDpXfk.js +1 -0
  40. package/dist/components/{p-Uluc7jQ7.js → p-D54c-ybm.js} +1 -1
  41. package/dist/components/p-DdQ1eqJr.js +1 -0
  42. package/dist/components/{p-D-IYWSAa.js → p-SPZTb5fI.js} +1 -1
  43. package/dist/components/p-yT7udDfd.js +1 -0
  44. package/dist/esm/{decode-CGJIPA4t.js → decode-BgBfbPZu.js} +1 -1
  45. package/dist/esm/{index-Dq-Z8Dx0.js → index-BeHFCsWf.js} +54 -13
  46. package/dist/esm/{index-C854B63S.js → index-D-29PaRa.js} +189 -53
  47. package/dist/esm/index.js +2 -2
  48. package/dist/esm/lido-avatar_22.entry.js +60 -54
  49. package/dist/esm/lido-player.js +4 -4
  50. package/dist/esm/loader.js +3 -3
  51. package/dist/lido-player/assets/Shadow.svg +9 -0
  52. package/dist/lido-player/assets/Tracing-hand.svg +8 -0
  53. package/dist/lido-player/index.esm.js +1 -1
  54. package/dist/lido-player/lido-player.css +1 -1
  55. package/dist/lido-player/lido-player.esm.js +1 -1
  56. package/dist/lido-player/p-856e1956.entry.js +12 -0
  57. package/dist/lido-player/{p-Bg5mBsd9.js → p-BA2X6O7O.js} +1 -1
  58. package/dist/lido-player/p-BeHFCsWf.js +3 -0
  59. package/dist/lido-player/p-TuBmCgtK.js +1 -0
  60. package/dist/types/components/scale/lido-balance.d.ts +2 -2
  61. package/dist/types/components/text/lido-text.d.ts +6 -1
  62. package/dist/types/components/trace/lido-trace.d.ts +1 -1
  63. package/dist/types/components.d.ts +21 -10
  64. package/dist/types/stencil-public-runtime.d.ts +12 -0
  65. package/dist/types/utils/audioPlayer.d.ts +2 -0
  66. package/dist/types/utils/utilsHandlers/slideHandler.d.ts +5 -0
  67. package/loader/index.d.ts +1 -1
  68. package/package.json +1 -1
  69. package/dist/components/p-C7U1h9gI.js +0 -1
  70. package/dist/components/p-CS6iRQJh.js +0 -1
  71. package/dist/components/p-DGvzMlyn.js +0 -12
  72. package/dist/components/p-DPAlnts-.js +0 -1
  73. package/dist/components/p-DYs8s-uh.js +0 -1
  74. package/dist/lido-player/p-C4OTDhbr.js +0 -1
  75. package/dist/lido-player/p-Dq-Z8Dx0.js +0 -2
  76. package/dist/lido-player/p-f0e333c6.entry.js +0 -12
@@ -1,6 +1,6 @@
1
1
  import { LIDO_INTERACTION_CLEANUP_EVENT, LidoContainer, SelectedValuesKey } from "../constants";
2
2
  import { findMostoverlappedElement, getElementScale } from "./dragDropHandler";
3
- import { calculateScale, executeActions, matchStringPattern, storingEachActivityScore } from "../utils";
3
+ import { applyBorderToClickableCell, calculateScale, matchStringPattern, storingEachActivityScore, validateObjectiveStatus } from "../utils";
4
4
  import { removeHighlight } from "./highlightHandler";
5
5
  let numberOfSlides = 0;
6
6
  const slideNumbers = (element) => {
@@ -84,6 +84,9 @@ export function slidingWithScaling(element) {
84
84
  let verticalDistance;
85
85
  let horizontalDistance;
86
86
  const onStart = (event) => {
87
+ const templateId = container.getAttribute('template-id');
88
+ if ((templateId === 'arrangeLetters' || templateId === 'reorder') && container.getAttribute('game-completed') === 'true')
89
+ return;
87
90
  removeHighlight(element);
88
91
  isDragging = true;
89
92
  elementRect = element.getBoundingClientRect();
@@ -235,7 +238,7 @@ export function slidingWithScaling(element) {
235
238
  element.style.transform = 'translate(0, 0)';
236
239
  setTimeout(() => {
237
240
  if (overlapElement) {
238
- slideCompleted(element);
241
+ void slideCompleted(element);
239
242
  overlapElement = false;
240
243
  }
241
244
  }, 300);
@@ -259,37 +262,93 @@ export function slidingWithScaling(element) {
259
262
  element.addEventListener('touchstart', onStart);
260
263
  element.addEventListener(LIDO_INTERACTION_CLEANUP_EVENT, cleanup);
261
264
  }
262
- const slideCompleted = (slideElement) => {
265
+ const isArrangeLettersContainer = (container) => container.getAttribute('template-id') === 'arrangeLetters';
266
+ const isReorderContainer = (container) => container.getAttribute('template-id') === 'reorder';
267
+ export const getSlideValuesForValidation = (container, slideElements) => {
268
+ if (isReorderContainer(container)) {
269
+ return slideElements.map(element => element.id);
270
+ }
271
+ return slideElements.map(element => element['value']);
272
+ };
273
+ export const updateArrangeLettersCorrectness = (container, slideValues, objectiveValues) => {
274
+ const slideElements = Array.from(container.querySelectorAll('[type="slide"]'));
275
+ slideElements.forEach((element, index) => {
276
+ const isCorrect = index < objectiveValues.length && slideValues[index] === objectiveValues[index].trim();
277
+ if (isCorrect) {
278
+ applyBorderToClickableCell(element, '#65BC46');
279
+ }
280
+ else {
281
+ element.style.removeProperty('box-shadow');
282
+ }
283
+ });
284
+ };
285
+ export const isArrangeLettersComplete = (slideValues, objectiveString) => {
286
+ if (!objectiveString)
287
+ return false;
288
+ const objectiveValues = objectiveString.split(',').map(value => value.trim());
289
+ return slideValues.length === objectiveValues.length
290
+ && slideValues.every((value, index) => value === objectiveValues[index]);
291
+ };
292
+ export const updateReorderCorrectness = (container, slideValues, objectiveValues) => {
293
+ const slideElements = Array.from(container.querySelectorAll('[type="slide"]'));
294
+ slideElements.forEach((element, index) => {
295
+ const isCorrect = index < objectiveValues.length && slideValues[index] === objectiveValues[index].trim();
296
+ if (isCorrect) {
297
+ applyBorderToClickableCell(element, '#65BC46');
298
+ }
299
+ else {
300
+ element.style.removeProperty('box-shadow');
301
+ }
302
+ });
303
+ };
304
+ export const isReorderComplete = (slideValues, objectiveString) => {
305
+ if (!objectiveString)
306
+ return false;
307
+ const objectiveValues = objectiveString.split(',').map(value => value.trim());
308
+ return slideValues.length === objectiveValues.length
309
+ && slideValues.every((value, index) => value === objectiveValues[index]);
310
+ };
311
+ const slideCompleted = async (slideElement) => {
263
312
  var _a;
264
313
  const container = document.getElementById(LidoContainer);
265
314
  const slideArr = JSON.parse((_a = container.getAttribute(SelectedValuesKey)) !== null && _a !== void 0 ? _a : '[]');
266
- const allSlideElements = document.querySelectorAll("[type='slide']");
267
- let index = 0;
268
- allSlideElements.forEach(item => {
269
- slideArr[index++] = item['value'];
315
+ const allSlideElements = Array.from(document.querySelectorAll("[type='slide']"));
316
+ const slideValues = getSlideValuesForValidation(container, allSlideElements);
317
+ slideValues.forEach((value, index) => {
318
+ slideArr[index] = value;
270
319
  });
271
320
  container.setAttribute(SelectedValuesKey, JSON.stringify(slideArr));
272
321
  const objectiveString = document.getElementById(LidoContainer)['objective'];
273
322
  const objectiveArray = objectiveString.split(',');
274
- const elementIndex = slideArr.indexOf(slideElement['value']);
275
- const isCorrect = matchStringPattern(slideElement['value'], [objectiveArray[elementIndex].trim()]);
323
+ const elementIndex = allSlideElements.indexOf(slideElement);
324
+ const isCorrect = elementIndex >= 0 && elementIndex < objectiveArray.length
325
+ ? matchStringPattern(slideValues[elementIndex], [objectiveArray[elementIndex].trim()])
326
+ : false;
327
+ if (isArrangeLettersContainer(container)) {
328
+ updateArrangeLettersCorrectness(container, slideValues, objectiveArray);
329
+ }
330
+ else if (isReorderContainer(container)) {
331
+ updateReorderCorrectness(container, slideValues, objectiveArray);
332
+ }
276
333
  if (container.getAttribute('is-continue-on-correct') === 'true') {
277
334
  storingEachActivityScore(true);
278
- // validationForSlideHandler();
279
335
  }
280
336
  else {
281
337
  storingEachActivityScore(isCorrect);
282
338
  }
339
+ if (isArrangeLettersContainer(container) || isReorderContainer(container)) {
340
+ await validationForSlideHandler(slideValues);
341
+ }
283
342
  };
284
- const validationForSlideHandler = async () => {
285
- var _a, _b;
343
+ const validationForSlideHandler = async (slideValues) => {
286
344
  const container = document.getElementById(LidoContainer);
287
- if (!container)
345
+ if (!container || (!isArrangeLettersContainer(container) && !isReorderContainer(container)) || container.getAttribute('game-completed') === 'true')
288
346
  return;
289
- const objectiveArray = (_b = JSON.parse((_a = container.getAttribute(SelectedValuesKey)) !== null && _a !== void 0 ? _a : '[]')) !== null && _b !== void 0 ? _b : [];
290
347
  const objectiveString = document.getElementById(LidoContainer)['objective'];
291
- const res = matchStringPattern(objectiveString, objectiveArray);
292
- if (res) {
293
- await executeActions(container.getAttribute('onCorrect'), container);
348
+ const isComplete = isArrangeLettersContainer(container)
349
+ ? isArrangeLettersComplete(slideValues, objectiveString)
350
+ : isReorderComplete(slideValues, objectiveString);
351
+ if (isComplete) {
352
+ await validateObjectiveStatus();
294
353
  }
295
354
  };