lido-player 0.0.2-alpha-50-dev → 0.0.2-alpha-52-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/LICENSE +21 -21
- package/dist/cjs/{index-6a69c33a.js → index-baff5c15.js} +48 -14
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/{lido-avatar_21.cjs.entry.js → lido-avatar_22.cjs.entry.js} +3043 -162
- package/dist/cjs/lido-player.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{utils-079a5e7d.js → utils-ce99b0d0.js} +294 -108
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/avatar/lido-avatar.css +4 -4
- package/dist/collection/components/avatar/lido-avatar.js +1 -1
- package/dist/collection/components/calculator/lido-calculator.css +87 -87
- package/dist/collection/components/calculator/lido-calculator.js +14 -8
- package/dist/collection/components/canvas/lido-canvas.css +35 -0
- package/dist/collection/components/canvas/lido-canvas.js +220 -0
- package/dist/collection/components/cell/lido-cell.css +100 -100
- package/dist/collection/components/cell/lido-cell.js +12 -12
- package/dist/collection/components/column/lido-col.css +19 -19
- package/dist/collection/components/column/lido-col.js +6 -6
- package/dist/collection/components/container/lido-container.css +10 -10
- package/dist/collection/components/container/lido-container.js +70 -8
- package/dist/collection/components/flashCard/lido-flash-card.css +28 -28
- package/dist/collection/components/flashCard/lido-flash-card.js +4 -4
- package/dist/collection/components/float/lido-float.css +30 -30
- package/dist/collection/components/float/lido-float.js +2 -2
- package/dist/collection/components/home/lido-home.css +278 -278
- package/dist/collection/components/home/lido-home.js +92 -12
- package/dist/collection/components/image/lido-image.css +17 -17
- package/dist/collection/components/image/lido-image.js +6 -6
- package/dist/collection/components/keyboard/lido-keyboard.css +38 -38
- package/dist/collection/components/keyboard/lido-keyboard.js +3 -3
- package/dist/collection/components/mathMatrix/lido-math-matrix.css +56 -56
- package/dist/collection/components/mathMatrix/lido-math-matrix.js +69 -15
- package/dist/collection/components/position/lido-pos.css +16 -16
- package/dist/collection/components/position/lido-pos.js +2 -2
- package/dist/collection/components/random/lido-random.css +8 -8
- package/dist/collection/components/random/lido-random.js +2 -2
- package/dist/collection/components/root/lido-root.js +42 -6
- package/dist/collection/components/row/lido-row.css +10 -10
- package/dist/collection/components/row/lido-row.js +6 -6
- package/dist/collection/components/scale/lido-balance.css +145 -114
- package/dist/collection/components/scale/lido-balance.js +17 -17
- package/dist/collection/components/shape/lido-shape.css +96 -96
- package/dist/collection/components/shape/lido-shape.js +5 -5
- package/dist/collection/components/slideFill/lido-slide-fill.css +3 -3
- package/dist/collection/components/slideFill/lido-slide-fill.js +13 -13
- package/dist/collection/components/text/lido-text.css +53 -53
- package/dist/collection/components/text/lido-text.js +6 -5
- package/dist/collection/components/trace/lido-trace.css +97 -97
- package/dist/collection/components/trace/lido-trace.js +2 -2
- package/dist/collection/components/wrap/lido-wrap.css +18 -18
- package/dist/collection/components/wrap/lido-wrap.js +6 -6
- package/dist/collection/css/animation.css +194 -194
- package/dist/collection/css/index.css +277 -277
- package/dist/collection/stories/Templates/Fill-Up/fill-up.stories.js +60 -60
- package/dist/collection/stories/Templates/LetterPairing/LetterPairing.stories.js +123 -123
- package/dist/collection/stories/Templates/RocketGame/rocketGame.stories.js +55 -48
- package/dist/collection/stories/Templates/Tag/tagGame.stories.js +29 -29
- package/dist/collection/stories/Templates/arrangeLetters/arrangeLetters.stories.js +42 -42
- package/dist/collection/stories/Templates/balancing/balancing.stories.js +37 -31
- package/dist/collection/stories/Templates/balloonPop/balloonPop.stories.js +38 -38
- package/dist/collection/stories/Templates/blender/blender.stories.js +100 -0
- package/dist/collection/stories/Templates/bubbleType/bubbleType.stories.js +42 -42
- package/dist/collection/stories/Templates/calculator/calculator.stories.js +52 -0
- package/dist/collection/stories/Templates/categorize/categorize.stories.js +37 -37
- package/dist/collection/stories/Templates/categorize2/categorize2.stories.js +67 -67
- package/dist/collection/stories/Templates/checker-block/checkerBlock.stories.js +28 -22
- package/dist/collection/stories/Templates/checkerBlock/checkerBlock.stories.js +13 -13
- package/dist/collection/stories/Templates/create-sentence/createSentence.stories.js +74 -74
- package/dist/collection/stories/Templates/dragAndDrop/drag-drop.stories.js +69 -69
- package/dist/collection/stories/Templates/fillAnswer/fill-answer.stories.js +39 -38
- package/dist/collection/stories/Templates/fillBlank/fill-blank.stories.js +282 -282
- package/dist/collection/stories/Templates/foodJar/food-jar.stories.js +37 -35
- package/dist/collection/stories/Templates/grid/grid.stories.js +118 -118
- package/dist/collection/stories/Templates/gridGame/grid-game.stories.js +57 -57
- package/dist/collection/stories/Templates/jumpSentence/jumpSentence.stories.js +41 -41
- package/dist/collection/stories/Templates/letterboard/letterboard.stories.js +183 -183
- package/dist/collection/stories/Templates/makeSentence/make-sentence.stories.js +36 -36
- package/dist/collection/stories/Templates/matchBox/matchBox.stories.js +69 -69
- package/dist/collection/stories/Templates/matchBox/matchBox2.stories.js +54 -54
- package/dist/collection/stories/Templates/matchingCard/matching-card.stories.js +25 -23
- package/dist/collection/stories/Templates/multipleOption/mcqWithQuestionImage.stories.js +112 -112
- package/dist/collection/stories/Templates/multipleOption/multiple-option.stories.js +47 -47
- package/dist/collection/stories/Templates/multiplyBeeds/multiplyBeeds.stories.js +32 -28
- package/dist/collection/stories/Templates/nimbleTable/nimbleTable.stories.js +56 -54
- package/dist/collection/stories/Templates/numberBoard/numberBoard.stories.js +56 -45
- package/dist/collection/stories/Templates/numberBoardTwo/numberBoardTwo.stories.js +41 -39
- package/dist/collection/stories/Templates/numberPair/numberPair.stories.js +131 -127
- package/dist/collection/stories/Templates/openwindow/openwindow.stories.js +53 -49
- package/dist/collection/stories/Templates/openwindow/openwindow2.stories.js +44 -40
- package/dist/collection/stories/Templates/order-tractor/order-tractor-ascending-order.stories.js +98 -97
- package/dist/collection/stories/Templates/order-tractor/order-tractor.stories.js +92 -91
- package/dist/collection/stories/Templates/phonic-tractor/phonic-tractor.stories.js +47 -45
- package/dist/collection/stories/Templates/picturemeaning/pictureMeaningCocos.stories.js +20 -20
- package/dist/collection/stories/Templates/puzzleGame/puzzleGame.stories.js +17 -17
- package/dist/collection/stories/Templates/questionBoard/questionBoard.stories.js +62 -58
- package/dist/collection/stories/Templates/quizLiteracy/quizLiteracy.stories.js +50 -50
- package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWithText.stories.js +36 -36
- package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWord.stories.js +43 -43
- package/dist/collection/stories/Templates/reorder/reorder.stories.js +63 -63
- package/dist/collection/stories/Templates/rowBlocks/rowBlocks.stories.js +52 -48
- package/dist/collection/stories/Templates/sequenceBox/sequenceBox1.stories.js +65 -61
- package/dist/collection/stories/Templates/sequenceBox/sequenceBox2.stories.js +62 -58
- package/dist/collection/stories/Templates/shapePair/shape-pair.stories.js +111 -107
- package/dist/collection/stories/Templates/shapeTractor/shape-tractor.stories.js +46 -46
- package/dist/collection/stories/Templates/spellDoor/spellDoor.stories.js +41 -41
- package/dist/collection/stories/Templates/storyTale/storyTale.stories.js +39 -39
- package/dist/collection/stories/Templates/sumTogether/sumTogether.stories.js +51 -47
- package/dist/collection/stories/Templates/total/total.stories.js +27 -27
- package/dist/collection/stories/Templates/writeCard/writeCard.stories.js +35 -31
- package/dist/collection/stories/Templates/writeLetter/writeLetter.stories.js +62 -58
- package/dist/collection/stories/Templates/writeNumber/writeNumber.stories.js +44 -40
- package/dist/collection/stories/Templates/writeSet/writeSet.stories.js +36 -32
- package/dist/collection/stories/Templates/writeWord/writeWord.stories.js +37 -33
- package/dist/collection/stories/components/flash-card.stories.js +48 -48
- package/dist/collection/stories/components/keyboard.stories.js +10 -10
- package/dist/collection/stories/components/slider.stories.js +4 -4
- package/dist/collection/stories/components/trace.stories.js +5 -5
- package/dist/collection/utils/audioPlayer.js +43 -6
- package/dist/collection/utils/constants.js +1 -0
- package/dist/collection/utils/i18n.js +36 -0
- package/dist/collection/utils/utils.js +170 -36
- package/dist/collection/utils/utilsHandlers/clickHandler.js +5 -1
- package/dist/collection/utils/utilsHandlers/dragDropHandler.js +27 -15
- package/dist/collection/utils/utilsHandlers/highlightHandler.js +54 -54
- package/dist/collection/utils/utilsHandlers/lidoBalanceHandler.js +2 -2
- package/dist/collection/utils/utilsHandlers/lidoCalculatorHandler.js +9 -9
- package/dist/collection/utils/utilsHandlers/sortHandler.js +10 -10
- package/dist/components/index.js +1 -1
- package/dist/components/lido-avatar.js +1 -1
- package/dist/components/lido-balance.js +1 -1
- package/dist/components/lido-calculator.js +1 -1
- package/dist/components/lido-canvas.d.ts +11 -0
- package/dist/components/lido-canvas.js +6 -0
- package/dist/components/lido-cell.js +1 -1
- package/dist/components/lido-col.js +1 -1
- package/dist/components/lido-container.js +1 -1
- package/dist/components/lido-flash-card.js +1 -1
- package/dist/components/lido-float.js +1 -1
- package/dist/components/lido-home.js +1 -1
- package/dist/components/lido-image.js +1 -1
- package/dist/components/lido-keyboard.js +1 -1
- package/dist/components/lido-math-matrix.js +1 -1
- package/dist/components/lido-pos.js +1 -1
- package/dist/components/lido-random.js +1 -1
- package/dist/components/lido-root.js +49 -25
- package/dist/components/lido-row.js +1 -1
- package/dist/components/lido-shape.js +1 -1
- package/dist/components/lido-slide-fill.js +1 -1
- package/dist/components/lido-text.js +1 -1
- package/dist/components/lido-trace.js +1 -1
- package/dist/components/lido-wrap.js +1 -1
- package/dist/components/{p-9be56729.js → p-00777872.js} +46 -2
- package/dist/components/{p-3f406017.js → p-06171259.js} +2 -2
- package/dist/components/{p-08d0deab.js → p-09f1e2d2.js} +15 -9
- package/dist/components/{p-e4e42677.js → p-0c2aebfb.js} +2 -2
- package/dist/components/p-0fbeb3a1.js +2700 -0
- package/dist/components/{p-cbac3cbc.js → p-11bf64aa.js} +2 -2
- package/dist/components/{p-44808985.js → p-26df0769.js} +7 -7
- package/dist/components/{p-1fbdb431.js → p-2d53e1a5.js} +2 -2
- package/dist/components/{p-afbc196f.js → p-39a2e638.js} +3 -2
- package/dist/components/{p-e36ddcc1.js → p-3ce3744c.js} +14 -11
- package/dist/components/{p-7f7e5672.js → p-3f4d4c0a.js} +2 -2
- package/dist/components/{p-d37ab4dc.js → p-52e77394.js} +2 -2
- package/dist/components/{p-bed94c37.js → p-58c67252.js} +331 -118
- package/dist/components/p-5b5f59a8.js +129 -0
- package/dist/components/{p-52844fa4.js → p-68112f8c.js} +2 -2
- package/dist/components/{p-15971ede.js → p-8a34b98b.js} +1 -1
- package/dist/components/{p-904711c8.js → p-8f2ed62f.js} +2 -2
- package/dist/components/{p-74849cdd.js → p-9d34d59d.js} +4 -4
- package/dist/components/{p-73e31a86.js → p-a2f96840.js} +8 -8
- package/dist/components/{p-90465904.js → p-a516a324.js} +2 -2
- package/dist/components/{p-322acda6.js → p-b2125fc9.js} +67 -31
- package/dist/components/{p-835b973d.js → p-c4abfd0f.js} +2 -2
- package/dist/components/{p-29bdd953.js → p-cb56a853.js} +2 -2
- package/dist/esm/{index-170e58c7.js → index-37c2ad2d.js} +48 -14
- package/dist/esm/index.js +2 -2
- package/dist/esm/{lido-avatar_21.entry.js → lido-avatar_22.entry.js} +3043 -163
- package/dist/esm/lido-player.js +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{utils-5df09162.js → utils-107b15a7.js} +294 -108
- package/dist/lido-player/index.esm.js +1 -1
- package/dist/lido-player/lido-player.esm.js +1 -1
- package/dist/lido-player/p-606ea279.entry.js +1 -0
- package/dist/lido-player/p-9a9d5339.js +2 -0
- package/dist/lido-player/{p-7556e652.js → p-d1251482.js} +2 -2
- package/dist/types/components/canvas/lido-canvas.d.ts +27 -0
- package/dist/types/components/container/lido-container.d.ts +6 -0
- package/dist/types/components/home/lido-home.d.ts +8 -0
- package/dist/types/components/mathMatrix/lido-math-matrix.d.ts +3 -1
- package/dist/types/components/root/lido-root.d.ts +5 -0
- package/dist/types/components.d.ts +71 -6
- package/dist/types/stories/Templates/RocketGame/rocketGame.stories.d.ts +1 -0
- package/dist/types/stories/Templates/blender/blender.stories.d.ts +4 -0
- package/dist/types/stories/Templates/calculator/calculator.stories.d.ts +4 -0
- package/dist/types/stories/Templates/multiplyBeeds/multiplyBeeds.stories.d.ts +1 -0
- package/dist/types/stories/Templates/openwindow/openwindow.stories.d.ts +1 -0
- package/dist/types/stories/Templates/openwindow/openwindow2.stories.d.ts +1 -0
- package/dist/types/stories/Templates/questionBoard/questionBoard.stories.d.ts +1 -0
- package/dist/types/stories/Templates/sequenceBox/sequenceBox1.stories.d.ts +1 -0
- package/dist/types/stories/Templates/sequenceBox/sequenceBox2.stories.d.ts +1 -0
- package/dist/types/stories/Templates/shapePair/shape-pair.stories.d.ts +1 -1
- package/dist/types/stories/Templates/sumTogether/sumTogether.stories.d.ts +1 -0
- package/dist/types/stories/Templates/writeCard/writeCard.stories.d.ts +1 -0
- package/dist/types/stories/Templates/writeLetter/writeLetter.stories.d.ts +1 -0
- package/dist/types/stories/Templates/writeNumber/writeNumber.stories.d.ts +1 -0
- package/dist/types/stories/Templates/writeWord/writeWord.stories.d.ts +1 -0
- package/dist/types/types/json.d.ts +4 -0
- package/dist/types/utils/audioPlayer.d.ts +2 -0
- package/dist/types/utils/constants.d.ts +1 -0
- package/dist/types/utils/i18n.d.ts +5 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/package.json +71 -69
- package/readme.md +113 -113
- package/dist/lido-player/p-137c99ce.js +0 -2
- package/dist/lido-player/p-eb956325.entry.js +0 -1
|
@@ -169,7 +169,15 @@ export const executeActions = async (actionsString, thisElement, element) => {
|
|
|
169
169
|
break;
|
|
170
170
|
}
|
|
171
171
|
case 'speak': {
|
|
172
|
-
|
|
172
|
+
const val = (action.value || '').toString().trim().toLowerCase();
|
|
173
|
+
if (val === 'true' || val === '1' || val === 'yes') {
|
|
174
|
+
try {
|
|
175
|
+
await AudioPlayer.getI().play(targetElement);
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
console.error('Error playing audio for speak action:', err);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
173
181
|
break;
|
|
174
182
|
}
|
|
175
183
|
case 'fill-slide': {
|
|
@@ -291,6 +299,53 @@ export const executeActions = async (actionsString, thisElement, element) => {
|
|
|
291
299
|
}
|
|
292
300
|
break;
|
|
293
301
|
}
|
|
302
|
+
case 'disableType': {
|
|
303
|
+
const dragEle = document.querySelector('[type="drag"]');
|
|
304
|
+
dragEle.removeAttribute('type');
|
|
305
|
+
dragEle.style.pointerEvents = 'none';
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
case 'updateCountBlender': {
|
|
309
|
+
const allDrags = document.querySelectorAll('[type="drag"]');
|
|
310
|
+
let units = 0;
|
|
311
|
+
let tens = 0;
|
|
312
|
+
let hundreds = 0;
|
|
313
|
+
allDrags.forEach(el => {
|
|
314
|
+
const dropTo = el.getAttribute("drop-to");
|
|
315
|
+
if (dropTo === "unitsDrop")
|
|
316
|
+
units++;
|
|
317
|
+
if (dropTo === "tensDrop")
|
|
318
|
+
tens++;
|
|
319
|
+
if (dropTo === "hundredsDrop")
|
|
320
|
+
hundreds++;
|
|
321
|
+
});
|
|
322
|
+
const unitsValue = units * 1;
|
|
323
|
+
const tensValue = tens * 10;
|
|
324
|
+
const hundredsValue = hundreds * 100;
|
|
325
|
+
const totalValue = unitsValue + tensValue + hundredsValue;
|
|
326
|
+
// ✅ Update Lido Text Boxes
|
|
327
|
+
const unitsBox = document.getElementById("units");
|
|
328
|
+
const tensBox = document.getElementById("tens");
|
|
329
|
+
const hundredsBox = document.getElementById("hundreds");
|
|
330
|
+
if (unitsBox) {
|
|
331
|
+
unitsBox.setAttribute("string", unitsValue.toString());
|
|
332
|
+
}
|
|
333
|
+
if (tensBox) {
|
|
334
|
+
tensBox.setAttribute("string", tensValue.toString());
|
|
335
|
+
}
|
|
336
|
+
if (hundredsBox) {
|
|
337
|
+
hundredsBox.setAttribute("string", hundredsValue.toString());
|
|
338
|
+
}
|
|
339
|
+
console.log(`Units = ${units} → ${unitsValue}`);
|
|
340
|
+
console.log(`Tens = ${tens} → ${tensValue}`);
|
|
341
|
+
console.log(`Hundreds = ${hundreds} → ${hundredsValue}`);
|
|
342
|
+
console.log(`✅ Total Value = ${totalValue}`);
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
case 'updateCalculatorAnswer': {
|
|
346
|
+
updateCalculatorAnswer();
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
294
349
|
default: {
|
|
295
350
|
targetElement.style[action.action] = action.value;
|
|
296
351
|
break;
|
|
@@ -307,6 +362,7 @@ const afterDropDragHandling = (dragElement, dropElement) => {
|
|
|
307
362
|
const isInfinite = container.getAttribute('drop-action') === DropAction.InfiniteDrop;
|
|
308
363
|
if (isAppend || isInfinite) {
|
|
309
364
|
setTimeout(() => {
|
|
365
|
+
var _a, _b;
|
|
310
366
|
dragElement.style.transform = 'translate(0,0)';
|
|
311
367
|
dragElement.style.transition = '';
|
|
312
368
|
let dummyElement = document.createElement('div');
|
|
@@ -321,11 +377,11 @@ const afterDropDragHandling = (dragElement, dropElement) => {
|
|
|
321
377
|
}
|
|
322
378
|
dummyElement.setAttribute('id', dragElement.getAttribute('id'));
|
|
323
379
|
dragElement.replaceWith(dummyElement);
|
|
324
|
-
const keyframes = `
|
|
325
|
-
@keyframes widthDecrease {
|
|
326
|
-
0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
|
|
327
|
-
100% { width: 0px; height: 0px; margin: 0px;}
|
|
328
|
-
}
|
|
380
|
+
const keyframes = `
|
|
381
|
+
@keyframes widthDecrease {
|
|
382
|
+
0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
|
|
383
|
+
100% { width: 0px; height: 0px; margin: 0px;}
|
|
384
|
+
}
|
|
329
385
|
`;
|
|
330
386
|
if (!isInfinite) {
|
|
331
387
|
dummyElement.style.width = element.style.width;
|
|
@@ -340,6 +396,14 @@ const afterDropDragHandling = (dragElement, dropElement) => {
|
|
|
340
396
|
dummyElement.style.margin = '0px';
|
|
341
397
|
});
|
|
342
398
|
}
|
|
399
|
+
const orientation = window.innerHeight > window.innerWidth ? 'portrait' : 'landscape';
|
|
400
|
+
const rowAttr = dropElement.getAttribute('dropAttr');
|
|
401
|
+
const dropAttr = parseProp(rowAttr, orientation); // will return stackcascade or verticalstack
|
|
402
|
+
if (((_a = (dropAttr)) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "stackcascade" || ((_b = (dropAttr)) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === "verticalstack") {
|
|
403
|
+
dropElement.append(dragElement);
|
|
404
|
+
placeElementInDropZone(dropElement, dragElement, orientation, dropAttr);
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
343
407
|
dropElement.parentElement.append(element);
|
|
344
408
|
dragElement.style.position = 'absolute';
|
|
345
409
|
dragElement.style.zIndex = '1';
|
|
@@ -352,16 +416,41 @@ const afterDropDragHandling = (dragElement, dropElement) => {
|
|
|
352
416
|
const scaledLeft = (dropCenterX - dragCenterX) / containerScale;
|
|
353
417
|
const scaledTop = (dropCenterY - dragCenterY) / containerScale;
|
|
354
418
|
dragElement.style.transform = `translate(${scaledLeft}px, ${scaledTop}px)`;
|
|
355
|
-
},
|
|
419
|
+
}, 100);
|
|
356
420
|
}
|
|
357
421
|
};
|
|
422
|
+
// function cloneElementWithComputedStyles(originalEl: HTMLElement): HTMLElement {
|
|
423
|
+
// let clone = document.createElement('div') as HTMLElement;
|
|
424
|
+
// clone.innerHTML = originalEl.outerHTML;
|
|
425
|
+
// clone = clone.firstChild as HTMLElement;
|
|
426
|
+
// clone.setAttribute('height', originalEl.style.height);
|
|
427
|
+
// clone.setAttribute('width', originalEl.style.width);
|
|
428
|
+
// clone.setAttribute('visible', 'true');
|
|
429
|
+
// return clone;
|
|
430
|
+
// }
|
|
358
431
|
function cloneElementWithComputedStyles(originalEl) {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
432
|
+
const tag = originalEl.tagName.toLowerCase();
|
|
433
|
+
if (tag === "lido-text") {
|
|
434
|
+
let clone = document.createElement('div');
|
|
435
|
+
clone.innerHTML = originalEl.outerHTML;
|
|
436
|
+
clone = clone.firstChild;
|
|
437
|
+
clone.setAttribute('height', originalEl.style.height);
|
|
438
|
+
clone.setAttribute('width', originalEl.style.width);
|
|
439
|
+
clone.setAttribute('visible', 'true');
|
|
440
|
+
return clone;
|
|
441
|
+
}
|
|
442
|
+
// ✅ For ALL other types (INCLUDING lido-image & matrix) use your simple logic
|
|
443
|
+
const clone = originalEl.cloneNode(false);
|
|
444
|
+
clone.style.width = originalEl.style.width;
|
|
445
|
+
clone.style.height = originalEl.style.height;
|
|
446
|
+
clone.style.margin = originalEl.style.margin;
|
|
447
|
+
clone.style.opacity = originalEl.style.opacity;
|
|
448
|
+
clone.style.transform = originalEl.style.transform;
|
|
449
|
+
clone.setAttribute("visible", "true");
|
|
450
|
+
clone.setAttribute("data-dummy", "true");
|
|
451
|
+
if (tag === "lido-math-matrix") {
|
|
452
|
+
clone.setAttribute('clickable', "false");
|
|
453
|
+
}
|
|
365
454
|
return clone;
|
|
366
455
|
}
|
|
367
456
|
// Function to parse actions string
|
|
@@ -488,10 +577,6 @@ export async function onActivityComplete(dragElement, dropElement) {
|
|
|
488
577
|
await executeActions(onCorrect, dropElement, dragElement);
|
|
489
578
|
}
|
|
490
579
|
}
|
|
491
|
-
else {
|
|
492
|
-
const onInCorrect = dropElement.getAttribute('onInCorrect');
|
|
493
|
-
await executeActions(onInCorrect, dropElement, dragElement);
|
|
494
|
-
}
|
|
495
580
|
}
|
|
496
581
|
let dragScore = buildDragSelectedMapFromDOM();
|
|
497
582
|
const sortedValues = getSortedValuesArrayFromMap(dragScore);
|
|
@@ -503,21 +588,6 @@ export async function onActivityComplete(dragElement, dropElement) {
|
|
|
503
588
|
drag[index] = [];
|
|
504
589
|
}
|
|
505
590
|
drag[index].push(dragElement.id);
|
|
506
|
-
// localStorage.setItem(DragMapKey, JSON.stringify(drag));
|
|
507
|
-
const sortedKeys = Object.keys(dragScore).sort((a, b) => parseInt(a) - parseInt(b));
|
|
508
|
-
if (dragElement && dropElement) {
|
|
509
|
-
const isCorrect = dropElement['value'].toLowerCase().includes(dragElement['value'].toLowerCase());
|
|
510
|
-
if (isCorrect) {
|
|
511
|
-
const onCorrect = dropElement.getAttribute('onCorrect');
|
|
512
|
-
if (onCorrect) {
|
|
513
|
-
await executeActions(onCorrect, dropElement, dragElement);
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
else {
|
|
517
|
-
const onInCorrect = dropElement.getAttribute('onInCorrect');
|
|
518
|
-
await executeActions(onInCorrect, dropElement, dragElement);
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
591
|
const allElements = document.querySelectorAll("[type='drop']");
|
|
522
592
|
allElements.forEach(otherElement => {
|
|
523
593
|
var _a;
|
|
@@ -607,6 +677,7 @@ export const validateObjectiveStatus = async () => {
|
|
|
607
677
|
return;
|
|
608
678
|
const objectiveString = container['objective'];
|
|
609
679
|
const additionalCheck = container.getAttribute('equationCheck');
|
|
680
|
+
const isAllowOnlyCorrect = container.getAttribute('isAllowOnlyCorrect') === 'true' || '';
|
|
610
681
|
console.log('🚀 ~ validateObjectiveStatus ~ additionalCheck:', additionalCheck);
|
|
611
682
|
let equationGiven = false;
|
|
612
683
|
if (objectiveString == null || objectiveString.length === 0) {
|
|
@@ -658,13 +729,15 @@ export const validateObjectiveStatus = async () => {
|
|
|
658
729
|
await calculateScore();
|
|
659
730
|
}
|
|
660
731
|
else {
|
|
661
|
-
const onInCorrect = container.getAttribute('onInCorrect');
|
|
662
|
-
await executeActions(onInCorrect, container);
|
|
663
732
|
const isContinueOnCorrect = container.getAttribute('is-continue-on-correct') === 'true';
|
|
664
733
|
if (!isContinueOnCorrect) {
|
|
665
734
|
triggerNextContainer();
|
|
666
735
|
await calculateScore();
|
|
667
736
|
}
|
|
737
|
+
else {
|
|
738
|
+
const onInCorrect = container.getAttribute('onInCorrect');
|
|
739
|
+
await executeActions(onInCorrect, container);
|
|
740
|
+
}
|
|
668
741
|
}
|
|
669
742
|
};
|
|
670
743
|
export const triggerNextContainer = () => {
|
|
@@ -1229,14 +1302,14 @@ export const SumTogetherAnimation = async (element, value) => {
|
|
|
1229
1302
|
const sign = ((signElement && ((signElement.getAttribute('string') || signElement.textContent) || '')).toString().trim() === '+') ? '+' : '-';
|
|
1230
1303
|
if (sign === '-') {
|
|
1231
1304
|
// '-' flow: reveal one by one then change bgColor of last B to red
|
|
1232
|
-
for (let i = 0; i < topRowChildren.length; i++) {
|
|
1305
|
+
for (let i = 0; i < Math.min(number1, topRowChildren.length); i++) {
|
|
1233
1306
|
await new Promise(resolve => setTimeout(resolve, 75));
|
|
1234
1307
|
showElement(topRowChildren[i]);
|
|
1235
1308
|
}
|
|
1236
1309
|
elementAppearance(true);
|
|
1237
1310
|
await new Promise(r => setTimeout(r, 500));
|
|
1238
1311
|
for (let k = 0; k < Math.min(number2, topRowChildren.length); k++) {
|
|
1239
|
-
const idx = topRowChildren.length - 1 - k;
|
|
1312
|
+
const idx = Math.min(number1, topRowChildren.length) - 1 - k;
|
|
1240
1313
|
setImageBackground(topRowChildren[idx], 'red');
|
|
1241
1314
|
await new Promise(r => setTimeout(r, 200));
|
|
1242
1315
|
}
|
|
@@ -1261,3 +1334,64 @@ export const SumTogetherAnimation = async (element, value) => {
|
|
|
1261
1334
|
elementAppearance(false);
|
|
1262
1335
|
}
|
|
1263
1336
|
};
|
|
1337
|
+
function placeElementInDropZone(dropElement, dragElement, orientation, dropAttr) {
|
|
1338
|
+
const dropRect = dropElement.getBoundingClientRect();
|
|
1339
|
+
const dragRect = dragElement.getBoundingClientRect();
|
|
1340
|
+
const scale = typeof calculateScale === "function" ? calculateScale() : 1;
|
|
1341
|
+
if (!dropElement.dataset.dropCount)
|
|
1342
|
+
dropElement.dataset.dropCount = "0";
|
|
1343
|
+
let dropCount = parseInt(dropElement.dataset.dropCount, 10);
|
|
1344
|
+
// === READ DROP ZONE SIZE ===
|
|
1345
|
+
const dropWidth = dropRect.width;
|
|
1346
|
+
const dropHeight = dropRect.height;
|
|
1347
|
+
let targetX, targetY;
|
|
1348
|
+
// ---------------- LANDSCAPE WATERFALL ----------------
|
|
1349
|
+
if (orientation === "landscape" && dropAttr.toLowerCase() === "stackcascade") {
|
|
1350
|
+
console.log("🌄 Landscape waterfall");
|
|
1351
|
+
const shiftX = dropWidth * 0.02; // proportional (5% of width)
|
|
1352
|
+
const shiftY = dropHeight * 0.02; // proportional (5% of height)
|
|
1353
|
+
const startX = dropRect.left + dropWidth * 0.36; // 10% inside
|
|
1354
|
+
const startY = dropRect.top + dropHeight * -0.09; // slightly above
|
|
1355
|
+
targetX = startX + (dropCount * shiftX);
|
|
1356
|
+
targetY = startY + (dropCount * shiftY);
|
|
1357
|
+
}
|
|
1358
|
+
// ---------------- PORTRAIT VERTICAL ----------------
|
|
1359
|
+
else {
|
|
1360
|
+
console.log("📱 Portrait vertical stack");
|
|
1361
|
+
let startX;
|
|
1362
|
+
const stepY = dropHeight * 0.05; // 8% vertical step
|
|
1363
|
+
if (dropElement.id === "unitsDrop") {
|
|
1364
|
+
startX = dropRect.left + dropWidth * 0.4; // special spacing
|
|
1365
|
+
}
|
|
1366
|
+
else if (dropElement.id === "tensDrop") {
|
|
1367
|
+
startX = dropRect.left + dropWidth * 0.25;
|
|
1368
|
+
}
|
|
1369
|
+
else {
|
|
1370
|
+
startX = dropRect.left + dropWidth * 0.16; // normal spacing
|
|
1371
|
+
}
|
|
1372
|
+
const startY = dropRect.top - dropHeight * 0.25; // above start
|
|
1373
|
+
targetX = startX;
|
|
1374
|
+
targetY = startY + (dropCount * stepY);
|
|
1375
|
+
}
|
|
1376
|
+
// ------------ APPLY TRANSFORM SMOOTHLY --------------
|
|
1377
|
+
const dx = (targetX - dragRect.left) / scale;
|
|
1378
|
+
const dy = (targetY - dragRect.top) / scale;
|
|
1379
|
+
dragElement.style.transition = "transform .2s ease-out";
|
|
1380
|
+
dragElement.style.transform = `translate(${dx}px, ${dy}px)`;
|
|
1381
|
+
dropElement.dataset.dropCount = String(dropCount + 1);
|
|
1382
|
+
// reset size
|
|
1383
|
+
dragElement.style.width = "auto";
|
|
1384
|
+
dragElement.style.height = "auto";
|
|
1385
|
+
}
|
|
1386
|
+
export const updateCalculatorAnswer = () => {
|
|
1387
|
+
const container = document.getElementById(LidoContainer);
|
|
1388
|
+
if (!container)
|
|
1389
|
+
return;
|
|
1390
|
+
const calci = document.querySelector('#lidoCalculator');
|
|
1391
|
+
if (!calci)
|
|
1392
|
+
return;
|
|
1393
|
+
const answerText = container.querySelector('#answer');
|
|
1394
|
+
const value = calci.getAttribute('value');
|
|
1395
|
+
console.log("😀😀😀😀😀😀😀", value);
|
|
1396
|
+
answerText.setAttribute('string', value);
|
|
1397
|
+
};
|
|
@@ -64,7 +64,11 @@ export function addClickListenerForClickType(element) {
|
|
|
64
64
|
if (lido_buttons === 'lido-arrow-left' || lido_buttons === 'lido-arrow-right') {
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
const audioAttr = element.getAttribute('audio');
|
|
68
|
+
const hasValidAudio = audioAttr && audioAttr.trim().length > 0;
|
|
69
|
+
if (hasValidAudio) {
|
|
70
|
+
AudioPlayer.getI().stop();
|
|
71
|
+
}
|
|
68
72
|
const container = document.getElementById(LidoContainer);
|
|
69
73
|
const objective = container['objective'].split(',');
|
|
70
74
|
const checkButton = document.querySelector('#lido-checkButton');
|
|
@@ -44,6 +44,7 @@ export function enableOptionArea(element) {
|
|
|
44
44
|
}
|
|
45
45
|
let isDraggingDisabled = false;
|
|
46
46
|
export const setDraggingDisabled = (disabled) => {
|
|
47
|
+
console.log("Setting dragging disabled to:", disabled);
|
|
47
48
|
isDraggingDisabled = disabled;
|
|
48
49
|
};
|
|
49
50
|
export const getDraggingDisabled = () => isDraggingDisabled;
|
|
@@ -240,7 +241,9 @@ export function enableDraggingWithScaling(element) {
|
|
|
240
241
|
mostOverlappedElement.style.backgroundColor = 'rgba(255, 0, 0, 0.1)'; // Light red background
|
|
241
242
|
}
|
|
242
243
|
else {
|
|
243
|
-
|
|
244
|
+
if (!document.getElementById('unitsDrop') || !document.getElementById('tensDrop') || !document.getElementById('hundredsDrop')) {
|
|
245
|
+
mostOverlappedElement.style.opacity = '0.3';
|
|
246
|
+
}
|
|
244
247
|
}
|
|
245
248
|
}
|
|
246
249
|
};
|
|
@@ -295,6 +298,7 @@ export function enableDraggingWithScaling(element) {
|
|
|
295
298
|
// Check for overlaps and log the most overlapping element
|
|
296
299
|
let mostOverlappedElement = findMostoverlappedElement(element, 'drop');
|
|
297
300
|
onElementDropComplete(element, mostOverlappedElement);
|
|
301
|
+
executeActions("this.updateCountBlender='true'", container);
|
|
298
302
|
if (((_a = element.getAttribute('dropAttr')) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === DropMode.Diagonal) {
|
|
299
303
|
if (mostOverlappedElement) {
|
|
300
304
|
if (element) {
|
|
@@ -496,10 +500,10 @@ export async function onElementDropComplete(dragElement, dropElement) {
|
|
|
496
500
|
let dropHasDrag = buildDropHasDragFromDOM();
|
|
497
501
|
if (!dropElement) {
|
|
498
502
|
handleResetDragElement(dragElement, dropElement, dropHasDrag, selectedValueData, dragSelectedData, dropSelectedData);
|
|
499
|
-
return;
|
|
500
503
|
}
|
|
501
504
|
const dropTabIndex = dropElement.getAttribute('tab-index');
|
|
502
|
-
|
|
505
|
+
const isAllowOnlyOneDrop = dropElement.getAttribute('is-allow-only-one-drop') === 'false';
|
|
506
|
+
if (((_b = dropHasDrag[dropTabIndex]) === null || _b === void 0 ? void 0 : _b.isFull) && !isAllowOnlyOneDrop) {
|
|
503
507
|
handleResetDragElement(dragElement, dropElement, dropHasDrag, selectedValueData, dragSelectedData, dropSelectedData);
|
|
504
508
|
return;
|
|
505
509
|
}
|
|
@@ -534,6 +538,9 @@ export async function onElementDropComplete(dragElement, dropElement) {
|
|
|
534
538
|
const localStorageKey = `${LidoContainer}_dropData`;
|
|
535
539
|
dragElement.style.transition = 'transform 0.5s ease';
|
|
536
540
|
animateDragToTarget(dragElement, dropElement, container);
|
|
541
|
+
const onInCorrect = dropElement.getAttribute('onInCorrect');
|
|
542
|
+
console.log("onincorrectttt", onInCorrect);
|
|
543
|
+
await executeActions(onInCorrect, dropElement, dragElement);
|
|
537
544
|
setTimeout(() => {
|
|
538
545
|
dragElement.style.transform = 'translate(0, 0)';
|
|
539
546
|
// const oldDropIndex = dragToDropMap[dragElement.getAttribute('data-id')];
|
|
@@ -633,7 +640,8 @@ export async function onElementDropComplete(dragElement, dropElement) {
|
|
|
633
640
|
}
|
|
634
641
|
if (!(((_f = dropElement.getAttribute('dropAttr')) === null || _f === void 0 ? void 0 : _f.toLowerCase()) === DropMode.Diagonal) && (dropElement.getAttribute('minDrops') === '1' || !dropElement.getAttribute('minDrops'))) {
|
|
635
642
|
const isisFull = Object.values(dropHasDrag).find(item => document.getElementById(item.drop) === dropElement);
|
|
636
|
-
|
|
643
|
+
const isAllowOnlyOneDrop = dropElement.getAttribute('is-allow-only-one-drop') === 'true';
|
|
644
|
+
if (isAllowOnlyOneDrop && isisFull) {
|
|
637
645
|
isisFull.isFull = true;
|
|
638
646
|
dropElement.setAttribute('is-full', 'true');
|
|
639
647
|
}
|
|
@@ -668,8 +676,8 @@ export async function onElementDropComplete(dragElement, dropElement) {
|
|
|
668
676
|
// Check for overlaps and highlight only the most overlapping element
|
|
669
677
|
if (dropElement && !((_g = dropHasDrag[dropTabIndex]) === null || _g === void 0 ? void 0 : _g.isFull)) {
|
|
670
678
|
let mostOverlappedElement = findMostoverlappedElement(dragElement, 'drag');
|
|
671
|
-
const isAllowOnlyOneDrop = dropElement.getAttribute('is-allow-only-one-drop') === 'true'
|
|
672
|
-
if (
|
|
679
|
+
const isAllowOnlyOneDrop = dropElement.getAttribute('is-allow-only-one-drop') === 'true';
|
|
680
|
+
if (isAllowOnlyOneDrop && mostOverlappedElement) {
|
|
673
681
|
dragElement.style.transform = 'translate(0,0)';
|
|
674
682
|
dragElement.style.transition = 'transform 0.5s ease';
|
|
675
683
|
const allElements = document.querySelectorAll("[type='drop']");
|
|
@@ -805,14 +813,14 @@ export async function onClickDropOrDragElement(element, type) {
|
|
|
805
813
|
if (!document.querySelector('#dynamic-highlight-style')) {
|
|
806
814
|
const style = document.createElement('style');
|
|
807
815
|
style.id = 'dynamic-highlight-style';
|
|
808
|
-
style.innerHTML = `
|
|
809
|
-
.highlight {
|
|
810
|
-
// border: 4px solid #e74c3c; /* Thicker red border for more visibility */
|
|
811
|
-
// border-radius: 12px; /* Larger rounded corners */
|
|
812
|
-
// background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
|
|
813
|
-
// box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
|
|
814
|
-
// outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
|
|
815
|
-
}
|
|
816
|
+
style.innerHTML = `
|
|
817
|
+
.highlight {
|
|
818
|
+
// border: 4px solid #e74c3c; /* Thicker red border for more visibility */
|
|
819
|
+
// border-radius: 12px; /* Larger rounded corners */
|
|
820
|
+
// background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
|
|
821
|
+
// box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
|
|
822
|
+
// outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
|
|
823
|
+
}
|
|
816
824
|
`;
|
|
817
825
|
document.head.appendChild(style);
|
|
818
826
|
}
|
|
@@ -854,7 +862,11 @@ export async function onClickDropOrDragElement(element, type) {
|
|
|
854
862
|
}
|
|
855
863
|
export const dragToDropMap = new Map();
|
|
856
864
|
async function onClickDragElement(element) {
|
|
857
|
-
|
|
865
|
+
const audioAttr = element.getAttribute('audio');
|
|
866
|
+
const hasValidAudio = audioAttr && audioAttr.trim().length > 0;
|
|
867
|
+
if (hasValidAudio) {
|
|
868
|
+
AudioPlayer.getI().stop();
|
|
869
|
+
}
|
|
858
870
|
const dropElements = buildDropHasDragFromDOM();
|
|
859
871
|
const dragEl = element;
|
|
860
872
|
if (!dragEl) {
|
|
@@ -6,32 +6,32 @@ export function showWrongAnswerAnimation(elements) {
|
|
|
6
6
|
if (!document.querySelector(styleId)) {
|
|
7
7
|
const style = document.createElement('style');
|
|
8
8
|
style.id = styleId;
|
|
9
|
-
style.innerHTML = `
|
|
10
|
-
@keyframes enhanced-shake {
|
|
11
|
-
0% { left: 0; }
|
|
12
|
-
10% { left: -8px; }
|
|
13
|
-
20% { left: 8px; }
|
|
14
|
-
30% { left: -8px; }
|
|
15
|
-
40% { left: 8px; }
|
|
16
|
-
50% { left: -6px; }
|
|
17
|
-
60% { left: 6px; }
|
|
18
|
-
70% { left: -4px; }
|
|
19
|
-
80% { left: 4px; }
|
|
20
|
-
90% { left: -2px; }
|
|
21
|
-
100% { left: 0; }
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
.wrong-answer {
|
|
26
|
-
position: relative; /* Enable relative positioning to move the element */
|
|
27
|
-
animation: enhanced-shake 0.6s cubic-bezier(0.36, 0.07, 0.19, 0.97);
|
|
28
|
-
background-color: #ffdddd; /* Flash red background to indicate wrong answer */
|
|
29
|
-
box-shadow: 0 0 10px rgba(255, 0, 0, 0.5); /* Subtle red shadow */
|
|
30
|
-
|
|
31
|
-
border: 4px solid red;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
9
|
+
style.innerHTML = `
|
|
10
|
+
@keyframes enhanced-shake {
|
|
11
|
+
0% { left: 0; }
|
|
12
|
+
10% { left: -8px; }
|
|
13
|
+
20% { left: 8px; }
|
|
14
|
+
30% { left: -8px; }
|
|
15
|
+
40% { left: 8px; }
|
|
16
|
+
50% { left: -6px; }
|
|
17
|
+
60% { left: 6px; }
|
|
18
|
+
70% { left: -4px; }
|
|
19
|
+
80% { left: 4px; }
|
|
20
|
+
90% { left: -2px; }
|
|
21
|
+
100% { left: 0; }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
.wrong-answer {
|
|
26
|
+
position: relative; /* Enable relative positioning to move the element */
|
|
27
|
+
animation: enhanced-shake 0.6s cubic-bezier(0.36, 0.07, 0.19, 0.97);
|
|
28
|
+
background-color: #ffdddd; /* Flash red background to indicate wrong answer */
|
|
29
|
+
box-shadow: 0 0 10px rgba(255, 0, 0, 0.5); /* Subtle red shadow */
|
|
30
|
+
|
|
31
|
+
border: 4px solid red;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
35
|
`;
|
|
36
36
|
document.head.appendChild(style);
|
|
37
37
|
}
|
|
@@ -59,34 +59,34 @@ export function highlightSpeakingElement(element) {
|
|
|
59
59
|
if (!document.querySelector(styleId)) {
|
|
60
60
|
const style = document.createElement('style');
|
|
61
61
|
style.id = styleId;
|
|
62
|
-
style.innerHTML = `
|
|
63
|
-
.speaking-highlight {
|
|
64
|
-
--base-transform: ${element.style.transform};
|
|
65
|
-
box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9) !important; /* Stronger orange glow effect */
|
|
66
|
-
// border: 3px solid green !important;
|
|
67
|
-
// transition: box-shadow 0.5s ease-in-out, transform 0.5s ease-in-out;
|
|
68
|
-
// transform: scale(1.05); /* Subtle scale effect to pop the element */
|
|
69
|
-
// animation: pulseEffect 1.5s infinite; /* Pulsing animation */
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
@keyframes pulseEffect {
|
|
74
|
-
0% {
|
|
75
|
-
box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
|
|
76
|
-
// transform: var(--base-transform) scale(1.05);
|
|
77
|
-
// background-color: #FFFF0B;
|
|
78
|
-
}
|
|
79
|
-
50% {
|
|
80
|
-
box-shadow: 0 0 30px 15px rgba(255, 165, 0, 1);
|
|
81
|
-
// transform: var(--base-transform) scale(1.1);
|
|
82
|
-
// background-color: #FFFF0B;
|
|
83
|
-
}
|
|
84
|
-
100% {
|
|
85
|
-
box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
|
|
86
|
-
// transform: var(--base-transform) scale(1.05);
|
|
87
|
-
// background-color: #FFFF0B;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
62
|
+
style.innerHTML = `
|
|
63
|
+
.speaking-highlight {
|
|
64
|
+
--base-transform: ${element.style.transform};
|
|
65
|
+
box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9) !important; /* Stronger orange glow effect */
|
|
66
|
+
// border: 3px solid green !important;
|
|
67
|
+
// transition: box-shadow 0.5s ease-in-out, transform 0.5s ease-in-out;
|
|
68
|
+
// transform: scale(1.05); /* Subtle scale effect to pop the element */
|
|
69
|
+
// animation: pulseEffect 1.5s infinite; /* Pulsing animation */
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@keyframes pulseEffect {
|
|
74
|
+
0% {
|
|
75
|
+
box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
|
|
76
|
+
// transform: var(--base-transform) scale(1.05);
|
|
77
|
+
// background-color: #FFFF0B;
|
|
78
|
+
}
|
|
79
|
+
50% {
|
|
80
|
+
box-shadow: 0 0 30px 15px rgba(255, 165, 0, 1);
|
|
81
|
+
// transform: var(--base-transform) scale(1.1);
|
|
82
|
+
// background-color: #FFFF0B;
|
|
83
|
+
}
|
|
84
|
+
100% {
|
|
85
|
+
box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
|
|
86
|
+
// transform: var(--base-transform) scale(1.05);
|
|
87
|
+
// background-color: #FFFF0B;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
90
|
`;
|
|
91
91
|
document.head.appendChild(style);
|
|
92
92
|
}
|
|
@@ -55,8 +55,8 @@ export function balanceResult(container, objectiveString) {
|
|
|
55
55
|
return false;
|
|
56
56
|
const leftVal = Number((_c = (_a = balanceEl.leftVal) !== null && _a !== void 0 ? _a : (_b = balanceEl.dataset) === null || _b === void 0 ? void 0 : _b.leftVal) !== null && _c !== void 0 ? _c : 0);
|
|
57
57
|
const rightVal = Number((_f = (_d = balanceEl.rightVal) !== null && _d !== void 0 ? _d : (_e = balanceEl.dataset) === null || _e === void 0 ? void 0 : _e.rightVal) !== null && _f !== void 0 ? _f : 0);
|
|
58
|
-
const hasLeft = !isNaN(leftVal)
|
|
59
|
-
const hasRight = !isNaN(rightVal)
|
|
58
|
+
const hasLeft = !isNaN(leftVal);
|
|
59
|
+
const hasRight = !isNaN(rightVal);
|
|
60
60
|
if (!hasLeft || !hasRight) {
|
|
61
61
|
return false;
|
|
62
62
|
}
|
|
@@ -2,15 +2,15 @@ import { triggerNextContainer } from "../utils";
|
|
|
2
2
|
// Helper to animate and remove the active equation cell
|
|
3
3
|
const animationToRemoveEquationSolvedCellForNimbleTable = (activeCell, allCalculateTypes) => {
|
|
4
4
|
return new Promise((resolve) => {
|
|
5
|
-
const keyframes = `
|
|
6
|
-
@keyframes widthDecrease {
|
|
7
|
-
0% {
|
|
8
|
-
background-color: ${activeCell.style.backgroundColor};
|
|
9
|
-
height: ${activeCell.style.height};
|
|
10
|
-
margin: ${activeCell.style.margin};
|
|
11
|
-
${activeCell.innerHTML = ""}
|
|
12
|
-
}
|
|
13
|
-
100% { background-color: transparent; height: 0px; margin: 0px; }
|
|
5
|
+
const keyframes = `
|
|
6
|
+
@keyframes widthDecrease {
|
|
7
|
+
0% {
|
|
8
|
+
background-color: ${activeCell.style.backgroundColor};
|
|
9
|
+
height: ${activeCell.style.height};
|
|
10
|
+
margin: ${activeCell.style.margin};
|
|
11
|
+
${activeCell.innerHTML = ""}
|
|
12
|
+
}
|
|
13
|
+
100% { background-color: transparent; height: 0px; margin: 0px; }
|
|
14
14
|
}`;
|
|
15
15
|
const styleSheet = document.styleSheets[0];
|
|
16
16
|
styleSheet.insertRule(keyframes, styleSheet.cssRules.length);
|
|
@@ -156,11 +156,11 @@ export function enableReorderDrag(element) {
|
|
|
156
156
|
onDropToCategory(element, category);
|
|
157
157
|
}
|
|
158
158
|
if (divEl) {
|
|
159
|
-
const keyframes = `
|
|
160
|
-
@keyframes widthDecrease {
|
|
161
|
-
0% { width: ${divEl.offsetWidth}px; height: ${divEl.offsetHeight}px; }
|
|
162
|
-
100% { width: 0px; height: 0px;}
|
|
163
|
-
}
|
|
159
|
+
const keyframes = `
|
|
160
|
+
@keyframes widthDecrease {
|
|
161
|
+
0% { width: ${divEl.offsetWidth}px; height: ${divEl.offsetHeight}px; }
|
|
162
|
+
100% { width: 0px; height: 0px;}
|
|
163
|
+
}
|
|
164
164
|
`;
|
|
165
165
|
const styleSheet = document.styleSheets[0];
|
|
166
166
|
styleSheet.insertRule(keyframes, styleSheet.cssRules.length);
|
|
@@ -370,11 +370,11 @@ function moveWithAnimation(target, overlapped) {
|
|
|
370
370
|
const dummy = createDummyElement(target);
|
|
371
371
|
dummy.style.visibility = 'hidden';
|
|
372
372
|
dummy.setAttribute('type', 'dummy');
|
|
373
|
-
const keyframes = `
|
|
374
|
-
@keyframes widthIncrease {
|
|
375
|
-
0% { width: 0px; height: 0px; }
|
|
376
|
-
100% { width: ${target.offsetWidth}px; height: ${target.offsetHeight}px;}
|
|
377
|
-
}
|
|
373
|
+
const keyframes = `
|
|
374
|
+
@keyframes widthIncrease {
|
|
375
|
+
0% { width: 0px; height: 0px; }
|
|
376
|
+
100% { width: ${target.offsetWidth}px; height: ${target.offsetHeight}px;}
|
|
377
|
+
}
|
|
378
378
|
`;
|
|
379
379
|
if (!overlapped) {
|
|
380
380
|
const overlapCategory = findMostoverlappedElement(target, 'category');
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { f as format, g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-
|
|
1
|
+
export { f as format, g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-58c67252.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface LidoCanvas extends Components.LidoCanvas, HTMLElement {}
|
|
4
|
+
export const LidoCanvas: {
|
|
5
|
+
prototype: LidoCanvas;
|
|
6
|
+
new (): LidoCanvas;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|