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.
- package/dist/cjs/{decode-C08Ujimj.js → decode-DUZYNXIv.js} +1 -1
- package/dist/cjs/{index-BkBqiwe8.js → index-BEjUmVtH.js} +189 -53
- package/dist/cjs/{index-Dy19zuTX.js → index-DnqQXD5x.js} +53 -12
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/lido-avatar_22.cjs.entry.js +60 -54
- package/dist/cjs/lido-player.cjs.js +3 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/calculator/lido-calculator.js +3 -3
- package/dist/collection/components/mathMatrix/lido-math-matrix.js +12 -2
- package/dist/collection/components/scale/assets/Shadow.svg +9 -0
- package/dist/collection/components/scale/lido-balance.css +1 -1
- package/dist/collection/components/scale/lido-balance.js +13 -11
- package/dist/collection/components/text/lido-text.js +28 -2
- package/dist/collection/components/trace/assets/Tracing-hand.svg +8 -0
- package/dist/collection/components/trace/lido-trace.js +25 -38
- package/dist/collection/css/index.css +7 -4
- package/dist/collection/stories/Templates/blender/blender.stories.js +9 -5
- package/dist/collection/utils/audioPlayer.js +31 -9
- package/dist/collection/utils/utils.js +20 -10
- package/dist/collection/utils/utilsHandlers/animationHandler.js +9 -2
- package/dist/collection/utils/utilsHandlers/clickHandler.js +8 -0
- package/dist/collection/utils/utilsHandlers/dragDropHandler.js +28 -8
- package/dist/collection/utils/utilsHandlers/lidoCalculatorHandler.js +12 -15
- package/dist/collection/utils/utilsHandlers/slideHandler.js +76 -17
- package/dist/components/index.js +1 -1
- package/dist/components/lido-balance.js +1 -1
- package/dist/components/lido-calculator.js +1 -1
- package/dist/components/lido-container.js +1 -1
- package/dist/components/lido-home.js +1 -1
- package/dist/components/lido-keyboard.js +1 -1
- package/dist/components/lido-math-matrix.js +1 -1
- package/dist/components/lido-root.js +1 -1
- package/dist/components/lido-text.js +1 -1
- package/dist/components/lido-trace.js +1 -1
- package/dist/components/p-BNNX1Pew.js +12 -0
- package/dist/components/p-CTlwn9r7.js +1 -0
- package/dist/components/{p-C2p0KZh4.js → p-Cj-6tqzU.js} +1 -1
- package/dist/components/p-CjdDpXfk.js +1 -0
- package/dist/components/{p-Uluc7jQ7.js → p-D54c-ybm.js} +1 -1
- package/dist/components/p-DdQ1eqJr.js +1 -0
- package/dist/components/{p-D-IYWSAa.js → p-SPZTb5fI.js} +1 -1
- package/dist/components/p-yT7udDfd.js +1 -0
- package/dist/esm/{decode-CGJIPA4t.js → decode-BgBfbPZu.js} +1 -1
- package/dist/esm/{index-Dq-Z8Dx0.js → index-BeHFCsWf.js} +54 -13
- package/dist/esm/{index-C854B63S.js → index-D-29PaRa.js} +189 -53
- package/dist/esm/index.js +2 -2
- package/dist/esm/lido-avatar_22.entry.js +60 -54
- package/dist/esm/lido-player.js +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/lido-player/assets/Shadow.svg +9 -0
- package/dist/lido-player/assets/Tracing-hand.svg +8 -0
- package/dist/lido-player/index.esm.js +1 -1
- package/dist/lido-player/lido-player.css +1 -1
- package/dist/lido-player/lido-player.esm.js +1 -1
- package/dist/lido-player/p-856e1956.entry.js +12 -0
- package/dist/lido-player/{p-Bg5mBsd9.js → p-BA2X6O7O.js} +1 -1
- package/dist/lido-player/p-BeHFCsWf.js +3 -0
- package/dist/lido-player/p-TuBmCgtK.js +1 -0
- package/dist/types/components/scale/lido-balance.d.ts +2 -2
- package/dist/types/components/text/lido-text.d.ts +6 -1
- package/dist/types/components/trace/lido-trace.d.ts +1 -1
- package/dist/types/components.d.ts +21 -10
- package/dist/types/stencil-public-runtime.d.ts +12 -0
- package/dist/types/utils/audioPlayer.d.ts +2 -0
- package/dist/types/utils/utilsHandlers/slideHandler.d.ts +5 -0
- package/loader/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/components/p-C7U1h9gI.js +0 -1
- package/dist/components/p-CS6iRQJh.js +0 -1
- package/dist/components/p-DGvzMlyn.js +0 -12
- package/dist/components/p-DPAlnts-.js +0 -1
- package/dist/components/p-DYs8s-uh.js +0 -1
- package/dist/lido-player/p-C4OTDhbr.js +0 -1
- package/dist/lido-player/p-Dq-Z8Dx0.js +0 -2
- 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 {
|
|
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
|
|
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
|
-
|
|
268
|
-
|
|
269
|
-
slideArr[index
|
|
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 =
|
|
275
|
-
const isCorrect =
|
|
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
|
|
292
|
-
|
|
293
|
-
|
|
348
|
+
const isComplete = isArrangeLettersContainer(container)
|
|
349
|
+
? isArrangeLettersComplete(slideValues, objectiveString)
|
|
350
|
+
: isReorderComplete(slideValues, objectiveString);
|
|
351
|
+
if (isComplete) {
|
|
352
|
+
await validateObjectiveStatus();
|
|
294
353
|
}
|
|
295
354
|
};
|