taleem-player 0.4.1 → 0.5.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.
- package/dist/taleem-player.esm.js +650 -9
- package/dist/taleem-player.umd.js +650 -9
- package/package.json +2 -1
|
@@ -14228,6 +14228,625 @@ var goldenDeckV1 = {
|
|
|
14228
14228
|
};
|
|
14229
14229
|
zodDeckV1.parse(goldenDeckV1);
|
|
14230
14230
|
|
|
14231
|
+
// node_modules/taleem-slides/src/slides/TitleSlide.js
|
|
14232
|
+
var TitleSlide = {
|
|
14233
|
+
type: "titleSlide",
|
|
14234
|
+
fromJSON(raw) {
|
|
14235
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14236
|
+
if (!title) throw new Error("titleSlide: title required");
|
|
14237
|
+
return Object.freeze({
|
|
14238
|
+
type: "titleSlide",
|
|
14239
|
+
title,
|
|
14240
|
+
render() {
|
|
14241
|
+
return `
|
|
14242
|
+
<section class="slide titleSlide">
|
|
14243
|
+
<h1>${title}</h1>
|
|
14244
|
+
</section>
|
|
14245
|
+
`;
|
|
14246
|
+
}
|
|
14247
|
+
});
|
|
14248
|
+
}
|
|
14249
|
+
};
|
|
14250
|
+
|
|
14251
|
+
// node_modules/taleem-slides/src/slides/TitleAndSubtitleSlide.js
|
|
14252
|
+
var TitleAndSubtitleSlide = {
|
|
14253
|
+
type: "titleAndSubtitle",
|
|
14254
|
+
fromJSON(raw) {
|
|
14255
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14256
|
+
const subtitle = raw.data?.find((d) => d.name === "subtitle")?.content;
|
|
14257
|
+
if (!title || !subtitle) {
|
|
14258
|
+
throw new Error("titleAndSubtitle: requires title and subtitle");
|
|
14259
|
+
}
|
|
14260
|
+
return Object.freeze({
|
|
14261
|
+
type: "titleAndSubtitle",
|
|
14262
|
+
title,
|
|
14263
|
+
subtitle,
|
|
14264
|
+
render() {
|
|
14265
|
+
return `
|
|
14266
|
+
<section class="slide titleAndSubtitle">
|
|
14267
|
+
<h1>${title}</h1>
|
|
14268
|
+
<h2>${subtitle}</h2>
|
|
14269
|
+
</section>
|
|
14270
|
+
`;
|
|
14271
|
+
}
|
|
14272
|
+
});
|
|
14273
|
+
}
|
|
14274
|
+
};
|
|
14275
|
+
|
|
14276
|
+
// node_modules/taleem-slides/src/slides/TitleAndParaSlide.js
|
|
14277
|
+
var TitleAndParaSlide = {
|
|
14278
|
+
type: "titleAndPara",
|
|
14279
|
+
fromJSON(raw) {
|
|
14280
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14281
|
+
const para = raw.data?.find((d) => d.name === "para")?.content;
|
|
14282
|
+
if (!title || !para) {
|
|
14283
|
+
throw new Error("titleAndPara: requires title and para");
|
|
14284
|
+
}
|
|
14285
|
+
return Object.freeze({
|
|
14286
|
+
type: "titleAndPara",
|
|
14287
|
+
title,
|
|
14288
|
+
para,
|
|
14289
|
+
render() {
|
|
14290
|
+
return `
|
|
14291
|
+
<section class="slide titleAndPara">
|
|
14292
|
+
<h1>${title}</h1>
|
|
14293
|
+
<p>${para}</p>
|
|
14294
|
+
</section>
|
|
14295
|
+
`;
|
|
14296
|
+
}
|
|
14297
|
+
});
|
|
14298
|
+
}
|
|
14299
|
+
};
|
|
14300
|
+
|
|
14301
|
+
// node_modules/taleem-slides/src/slides/BulletListSlide.js
|
|
14302
|
+
var BulletListSlide = {
|
|
14303
|
+
type: "bulletList",
|
|
14304
|
+
fromJSON(raw) {
|
|
14305
|
+
const bullets = raw.data?.filter((d) => d.name === "bullet").map((d) => ({ content: d.content }));
|
|
14306
|
+
if (!bullets?.length) {
|
|
14307
|
+
throw new Error("bulletList: requires at least one bullet");
|
|
14308
|
+
}
|
|
14309
|
+
return Object.freeze({
|
|
14310
|
+
type: "bulletList",
|
|
14311
|
+
bullets,
|
|
14312
|
+
render({ visibleCount = bullets.length, activeIndex = null } = {}) {
|
|
14313
|
+
return `
|
|
14314
|
+
<section class="slide bulletList">
|
|
14315
|
+
<ul>
|
|
14316
|
+
${bullets.map((b, i) => {
|
|
14317
|
+
if (i >= visibleCount) return "";
|
|
14318
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14319
|
+
return `<li class="${cls}">${b.content}</li>`;
|
|
14320
|
+
}).join("")}
|
|
14321
|
+
</ul>
|
|
14322
|
+
</section>
|
|
14323
|
+
`;
|
|
14324
|
+
}
|
|
14325
|
+
});
|
|
14326
|
+
}
|
|
14327
|
+
};
|
|
14328
|
+
|
|
14329
|
+
// node_modules/taleem-slides/src/slides/TwoColumnTextSlide.js
|
|
14330
|
+
var TwoColumnTextSlide = {
|
|
14331
|
+
type: "twoColumnText",
|
|
14332
|
+
fromJSON(raw) {
|
|
14333
|
+
const left = raw.data?.filter((d) => d.name === "left").map((d) => ({ content: d.content }));
|
|
14334
|
+
const right = raw.data?.filter((d) => d.name === "right").map((d) => ({ content: d.content }));
|
|
14335
|
+
if (!left?.length || !right?.length) {
|
|
14336
|
+
throw new Error("twoColumnText: requires left and right columns");
|
|
14337
|
+
}
|
|
14338
|
+
return Object.freeze({
|
|
14339
|
+
type: "twoColumnText",
|
|
14340
|
+
left,
|
|
14341
|
+
right,
|
|
14342
|
+
render({
|
|
14343
|
+
leftVisibleCount = left.length,
|
|
14344
|
+
rightVisibleCount = right.length,
|
|
14345
|
+
leftActiveIndex = null,
|
|
14346
|
+
rightActiveIndex = null
|
|
14347
|
+
} = {}) {
|
|
14348
|
+
return `
|
|
14349
|
+
<section class="slide twoColumnText">
|
|
14350
|
+
<div class="col left">
|
|
14351
|
+
${left.map((l, i) => {
|
|
14352
|
+
if (i >= leftVisibleCount) return "";
|
|
14353
|
+
const cls = i === leftActiveIndex ? "is-active" : i < leftActiveIndex ? "is-dim" : "";
|
|
14354
|
+
return `<div class="${cls}">${l.content}</div>`;
|
|
14355
|
+
}).join("")}
|
|
14356
|
+
</div>
|
|
14357
|
+
<div class="col right">
|
|
14358
|
+
${right.map((r, i) => {
|
|
14359
|
+
if (i >= rightVisibleCount) return "";
|
|
14360
|
+
const cls = i === rightActiveIndex ? "is-active" : i < rightActiveIndex ? "is-dim" : "";
|
|
14361
|
+
return `<div class="${cls}">${r.content}</div>`;
|
|
14362
|
+
}).join("")}
|
|
14363
|
+
</div>
|
|
14364
|
+
</section>
|
|
14365
|
+
`;
|
|
14366
|
+
}
|
|
14367
|
+
});
|
|
14368
|
+
}
|
|
14369
|
+
};
|
|
14370
|
+
|
|
14371
|
+
// node_modules/taleem-slides/src/slides/ImageSlide.js
|
|
14372
|
+
var ImageSlide = {
|
|
14373
|
+
type: "imageSlide",
|
|
14374
|
+
fromJSON(raw) {
|
|
14375
|
+
const src = raw.data?.find((d) => d.name === "image")?.content;
|
|
14376
|
+
if (!src) throw new Error("imageSlide: image required");
|
|
14377
|
+
return Object.freeze({
|
|
14378
|
+
type: "imageSlide",
|
|
14379
|
+
src,
|
|
14380
|
+
render() {
|
|
14381
|
+
return `
|
|
14382
|
+
<section class="slide imageSlide">
|
|
14383
|
+
<img src="${src}" alt="" />
|
|
14384
|
+
</section>
|
|
14385
|
+
`;
|
|
14386
|
+
}
|
|
14387
|
+
});
|
|
14388
|
+
}
|
|
14389
|
+
};
|
|
14390
|
+
|
|
14391
|
+
// node_modules/taleem-slides/src/slides/FillImageSlide.js
|
|
14392
|
+
var FillImageSlide = {
|
|
14393
|
+
type: "fillImage",
|
|
14394
|
+
fromJSON(raw) {
|
|
14395
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14396
|
+
if (!image) throw new Error("fillImage: image required");
|
|
14397
|
+
return Object.freeze({
|
|
14398
|
+
type: "fillImage",
|
|
14399
|
+
image,
|
|
14400
|
+
render() {
|
|
14401
|
+
return `
|
|
14402
|
+
<section class="slide fillImage">
|
|
14403
|
+
<img src="${image}" alt="" />
|
|
14404
|
+
</section>
|
|
14405
|
+
`;
|
|
14406
|
+
}
|
|
14407
|
+
});
|
|
14408
|
+
}
|
|
14409
|
+
};
|
|
14410
|
+
|
|
14411
|
+
// node_modules/taleem-slides/src/slides/ImageWithTitleSlide.js
|
|
14412
|
+
var ImageWithTitleSlide = {
|
|
14413
|
+
type: "imageWithTitle",
|
|
14414
|
+
fromJSON(raw) {
|
|
14415
|
+
const src = raw.data?.find((d) => d.name === "image")?.content;
|
|
14416
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14417
|
+
if (!src || !title) {
|
|
14418
|
+
throw new Error("imageWithTitle: image and title required");
|
|
14419
|
+
}
|
|
14420
|
+
return Object.freeze({
|
|
14421
|
+
type: "imageWithTitle",
|
|
14422
|
+
src,
|
|
14423
|
+
title,
|
|
14424
|
+
render() {
|
|
14425
|
+
return `
|
|
14426
|
+
<section class="slide imageWithTitle">
|
|
14427
|
+
<img src="${src}" alt="" />
|
|
14428
|
+
<h1>${title}</h1>
|
|
14429
|
+
</section>
|
|
14430
|
+
`;
|
|
14431
|
+
}
|
|
14432
|
+
});
|
|
14433
|
+
}
|
|
14434
|
+
};
|
|
14435
|
+
|
|
14436
|
+
// node_modules/taleem-slides/src/slides/ImageWithCaptionSlide.js
|
|
14437
|
+
var ImageWithCaptionSlide = {
|
|
14438
|
+
type: "imageWithCaption",
|
|
14439
|
+
fromJSON(raw) {
|
|
14440
|
+
const src = raw.data?.find((d) => d.name === "image")?.content;
|
|
14441
|
+
const caption = raw.data?.find((d) => d.name === "caption")?.content;
|
|
14442
|
+
if (!src || !caption) {
|
|
14443
|
+
throw new Error("imageWithCaption: image and caption required");
|
|
14444
|
+
}
|
|
14445
|
+
return Object.freeze({
|
|
14446
|
+
type: "imageWithCaption",
|
|
14447
|
+
src,
|
|
14448
|
+
caption,
|
|
14449
|
+
render() {
|
|
14450
|
+
return `
|
|
14451
|
+
<figure class="slide imageWithCaption">
|
|
14452
|
+
<img src="${src}" alt="" />
|
|
14453
|
+
<figcaption>${caption}</figcaption>
|
|
14454
|
+
</figure>
|
|
14455
|
+
`;
|
|
14456
|
+
}
|
|
14457
|
+
});
|
|
14458
|
+
}
|
|
14459
|
+
};
|
|
14460
|
+
|
|
14461
|
+
// node_modules/taleem-slides/src/slides/ImageLeftBulletsRightSlide.js
|
|
14462
|
+
var ImageLeftBulletsRightSlide = {
|
|
14463
|
+
type: "imageLeftBulletsRight",
|
|
14464
|
+
fromJSON(raw) {
|
|
14465
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14466
|
+
const bullets = raw.data?.filter((d) => d.name === "bullet").map((d) => ({ content: d.content }));
|
|
14467
|
+
if (!image || !bullets?.length) {
|
|
14468
|
+
throw new Error("imageLeftBulletsRight: image and bullets required");
|
|
14469
|
+
}
|
|
14470
|
+
return Object.freeze({
|
|
14471
|
+
type: "imageLeftBulletsRight",
|
|
14472
|
+
image,
|
|
14473
|
+
bullets,
|
|
14474
|
+
render({ visibleCount = bullets.length, activeIndex = null } = {}) {
|
|
14475
|
+
return `
|
|
14476
|
+
<section class="slide imageLeftBulletsRight">
|
|
14477
|
+
<img src="${image}" alt="" />
|
|
14478
|
+
<ul>
|
|
14479
|
+
${bullets.map((b, i) => {
|
|
14480
|
+
if (i >= visibleCount) return "";
|
|
14481
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14482
|
+
return `<li class="${cls}">${b.content}</li>`;
|
|
14483
|
+
}).join("")}
|
|
14484
|
+
</ul>
|
|
14485
|
+
</section>
|
|
14486
|
+
`;
|
|
14487
|
+
}
|
|
14488
|
+
});
|
|
14489
|
+
}
|
|
14490
|
+
};
|
|
14491
|
+
|
|
14492
|
+
// node_modules/taleem-slides/src/slides/ImageRightBulletsLeftSlide.js
|
|
14493
|
+
var ImageRightBulletsLeftSlide = {
|
|
14494
|
+
type: "imageRightBulletsLeft",
|
|
14495
|
+
fromJSON(raw) {
|
|
14496
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14497
|
+
const bullets = raw.data?.filter((d) => d.name === "bullet").map((d) => ({ content: d.content }));
|
|
14498
|
+
if (!image || !bullets?.length) {
|
|
14499
|
+
throw new Error("imageRightBulletsLeft: image and bullets required");
|
|
14500
|
+
}
|
|
14501
|
+
return Object.freeze({
|
|
14502
|
+
type: "imageRightBulletsLeft",
|
|
14503
|
+
image,
|
|
14504
|
+
bullets,
|
|
14505
|
+
render({ visibleCount = bullets.length, activeIndex = null } = {}) {
|
|
14506
|
+
return `
|
|
14507
|
+
<section class="slide imageRightBulletsLeft">
|
|
14508
|
+
<ul>
|
|
14509
|
+
${bullets.map((b, i) => {
|
|
14510
|
+
if (i >= visibleCount) return "";
|
|
14511
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14512
|
+
return `<li class="${cls}">${b.content}</li>`;
|
|
14513
|
+
}).join("")}
|
|
14514
|
+
</ul>
|
|
14515
|
+
<img src="${image}" alt="" />
|
|
14516
|
+
</section>
|
|
14517
|
+
`;
|
|
14518
|
+
}
|
|
14519
|
+
});
|
|
14520
|
+
}
|
|
14521
|
+
};
|
|
14522
|
+
|
|
14523
|
+
// node_modules/taleem-slides/src/slides/TableSlide.js
|
|
14524
|
+
var TableSlide = {
|
|
14525
|
+
type: "table",
|
|
14526
|
+
fromJSON(raw) {
|
|
14527
|
+
const rows = raw.data?.filter((d) => d.name === "row").map((d) => ({ cells: d.content }));
|
|
14528
|
+
if (!rows?.length) {
|
|
14529
|
+
throw new Error("table: requires at least one row");
|
|
14530
|
+
}
|
|
14531
|
+
return Object.freeze({
|
|
14532
|
+
type: "table",
|
|
14533
|
+
rows,
|
|
14534
|
+
render({ visibleCount = rows.length, activeIndex = null } = {}) {
|
|
14535
|
+
return `
|
|
14536
|
+
<table class="slide table">
|
|
14537
|
+
${rows.map((row, i) => {
|
|
14538
|
+
if (i >= visibleCount) return "";
|
|
14539
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14540
|
+
return `
|
|
14541
|
+
<tr class="${cls}">
|
|
14542
|
+
${row.cells.map((c) => `<td>${c}</td>`).join("")}
|
|
14543
|
+
</tr>
|
|
14544
|
+
`;
|
|
14545
|
+
}).join("")}
|
|
14546
|
+
</table>
|
|
14547
|
+
`;
|
|
14548
|
+
}
|
|
14549
|
+
});
|
|
14550
|
+
}
|
|
14551
|
+
};
|
|
14552
|
+
|
|
14553
|
+
// node_modules/taleem-slides/src/slides/StatisticSlide.js
|
|
14554
|
+
var StatisticSlide = {
|
|
14555
|
+
type: "statistic",
|
|
14556
|
+
fromJSON(raw) {
|
|
14557
|
+
const label = raw.data?.find((d) => d.name === "label")?.content;
|
|
14558
|
+
const value = raw.data?.find((d) => d.name === "value")?.content;
|
|
14559
|
+
if (!label || value === void 0) {
|
|
14560
|
+
throw new Error("statistic: requires label and value");
|
|
14561
|
+
}
|
|
14562
|
+
return Object.freeze({
|
|
14563
|
+
type: "statistic",
|
|
14564
|
+
label,
|
|
14565
|
+
value,
|
|
14566
|
+
render() {
|
|
14567
|
+
return `
|
|
14568
|
+
<section class="slide statistic">
|
|
14569
|
+
<div class="stat-value">${value}</div>
|
|
14570
|
+
<div class="stat-label">${label}</div>
|
|
14571
|
+
</section>
|
|
14572
|
+
`;
|
|
14573
|
+
}
|
|
14574
|
+
});
|
|
14575
|
+
}
|
|
14576
|
+
};
|
|
14577
|
+
|
|
14578
|
+
// node_modules/taleem-slides/src/slides/BigNumberSlide.js
|
|
14579
|
+
var BigNumberSlide = {
|
|
14580
|
+
type: "bigNumber",
|
|
14581
|
+
fromJSON(raw) {
|
|
14582
|
+
const value = raw.data?.find((d) => d.name === "number")?.content;
|
|
14583
|
+
const label = raw.data?.find((d) => d.name === "label")?.content;
|
|
14584
|
+
if (!value) throw new Error("bigNumber: number required");
|
|
14585
|
+
return Object.freeze({
|
|
14586
|
+
type: "bigNumber",
|
|
14587
|
+
value,
|
|
14588
|
+
label,
|
|
14589
|
+
render() {
|
|
14590
|
+
return `
|
|
14591
|
+
<section class="slide bigNumber">
|
|
14592
|
+
<div class="number">${value}</div>
|
|
14593
|
+
${label ? `<div class="label">${label}</div>` : ""}
|
|
14594
|
+
</section>
|
|
14595
|
+
`;
|
|
14596
|
+
}
|
|
14597
|
+
});
|
|
14598
|
+
}
|
|
14599
|
+
};
|
|
14600
|
+
|
|
14601
|
+
// node_modules/taleem-slides/src/slides/BarChartSlide.js
|
|
14602
|
+
var BarChartSlide = {
|
|
14603
|
+
type: "barChart",
|
|
14604
|
+
fromJSON(raw) {
|
|
14605
|
+
const bars = raw.data?.filter((d) => d.name === "bar").map((d) => ({
|
|
14606
|
+
label: d.content.label,
|
|
14607
|
+
value: d.content.value
|
|
14608
|
+
}));
|
|
14609
|
+
if (!bars?.length) {
|
|
14610
|
+
throw new Error("barChart: requires at least one bar");
|
|
14611
|
+
}
|
|
14612
|
+
return Object.freeze({
|
|
14613
|
+
type: "barChart",
|
|
14614
|
+
bars,
|
|
14615
|
+
render({ visibleCount = bars.length, activeIndex = null } = {}) {
|
|
14616
|
+
return `
|
|
14617
|
+
<section class="slide barChart">
|
|
14618
|
+
<ul class="bars">
|
|
14619
|
+
${bars.map((b, i) => {
|
|
14620
|
+
if (i >= visibleCount) return "";
|
|
14621
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14622
|
+
return `
|
|
14623
|
+
<li class="bar ${cls}">
|
|
14624
|
+
<span class="bar-label">${b.label}</span>
|
|
14625
|
+
<span class="bar-value">${b.value}</span>
|
|
14626
|
+
</li>
|
|
14627
|
+
`;
|
|
14628
|
+
}).join("")}
|
|
14629
|
+
</ul>
|
|
14630
|
+
</section>
|
|
14631
|
+
`;
|
|
14632
|
+
}
|
|
14633
|
+
});
|
|
14634
|
+
}
|
|
14635
|
+
};
|
|
14636
|
+
|
|
14637
|
+
// node_modules/taleem-slides/src/slides/DonutChartSlide.js
|
|
14638
|
+
var DonutChartSlide = {
|
|
14639
|
+
type: "donutChart",
|
|
14640
|
+
fromJSON(raw) {
|
|
14641
|
+
const segments = raw.data?.filter((d) => d.name === "segment").map((d) => ({
|
|
14642
|
+
label: d.content.label,
|
|
14643
|
+
value: d.content.value
|
|
14644
|
+
}));
|
|
14645
|
+
if (!segments?.length) {
|
|
14646
|
+
throw new Error("donutChart: requires at least one segment");
|
|
14647
|
+
}
|
|
14648
|
+
return Object.freeze({
|
|
14649
|
+
type: "donutChart",
|
|
14650
|
+
segments,
|
|
14651
|
+
render({ visibleCount = segments.length, activeIndex = null } = {}) {
|
|
14652
|
+
return `
|
|
14653
|
+
<section class="slide donutChart">
|
|
14654
|
+
<ul>
|
|
14655
|
+
${segments.map((s, i) => {
|
|
14656
|
+
if (i >= visibleCount) return "";
|
|
14657
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14658
|
+
return `<li class="${cls}">${s.label}: ${s.value}</li>`;
|
|
14659
|
+
}).join("")}
|
|
14660
|
+
</ul>
|
|
14661
|
+
</section>
|
|
14662
|
+
`;
|
|
14663
|
+
}
|
|
14664
|
+
});
|
|
14665
|
+
}
|
|
14666
|
+
};
|
|
14667
|
+
|
|
14668
|
+
// node_modules/taleem-slides/src/slides/QuoteSlide.js
|
|
14669
|
+
var QuoteSlide = {
|
|
14670
|
+
type: "quoteSlide",
|
|
14671
|
+
fromJSON(raw) {
|
|
14672
|
+
const text = raw.data?.find((d) => d.name === "quote")?.content;
|
|
14673
|
+
const author = raw.data?.find((d) => d.name === "author")?.content;
|
|
14674
|
+
if (!text) throw new Error("quoteSlide: quote required");
|
|
14675
|
+
return Object.freeze({
|
|
14676
|
+
type: "quoteSlide",
|
|
14677
|
+
text,
|
|
14678
|
+
author,
|
|
14679
|
+
render() {
|
|
14680
|
+
return `
|
|
14681
|
+
<blockquote class="slide quoteSlide">
|
|
14682
|
+
<p>${text}</p>
|
|
14683
|
+
${author ? `<footer>${author}</footer>` : ""}
|
|
14684
|
+
</blockquote>
|
|
14685
|
+
`;
|
|
14686
|
+
}
|
|
14687
|
+
});
|
|
14688
|
+
}
|
|
14689
|
+
};
|
|
14690
|
+
|
|
14691
|
+
// node_modules/taleem-slides/src/slides/QuoteWithImageSlide.js
|
|
14692
|
+
var QuoteWithImageSlide = {
|
|
14693
|
+
type: "quoteWithImage",
|
|
14694
|
+
fromJSON(raw) {
|
|
14695
|
+
const quote = raw.data?.find((d) => d.name === "quote")?.content;
|
|
14696
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14697
|
+
const author = raw.data?.find((d) => d.name === "author")?.content;
|
|
14698
|
+
if (!quote || !image) {
|
|
14699
|
+
throw new Error("quoteWithImage: quote and image required");
|
|
14700
|
+
}
|
|
14701
|
+
return Object.freeze({
|
|
14702
|
+
type: "quoteWithImage",
|
|
14703
|
+
quote,
|
|
14704
|
+
image,
|
|
14705
|
+
author,
|
|
14706
|
+
render() {
|
|
14707
|
+
return `
|
|
14708
|
+
<section class="slide quoteWithImage">
|
|
14709
|
+
<img src="${image}" alt="" />
|
|
14710
|
+
<blockquote>
|
|
14711
|
+
<p>${quote}</p>
|
|
14712
|
+
${author ? `<footer>${author}</footer>` : ""}
|
|
14713
|
+
</blockquote>
|
|
14714
|
+
</section>
|
|
14715
|
+
`;
|
|
14716
|
+
}
|
|
14717
|
+
});
|
|
14718
|
+
}
|
|
14719
|
+
};
|
|
14720
|
+
|
|
14721
|
+
// node_modules/taleem-slides/src/slides/CornerWordsSlide.js
|
|
14722
|
+
var CornerWordsSlide = {
|
|
14723
|
+
type: "cornerWordsSlide",
|
|
14724
|
+
fromJSON(raw) {
|
|
14725
|
+
const words = raw.data?.filter((d) => d.name === "word").map((d) => ({ content: d.content }));
|
|
14726
|
+
if (!words?.length) {
|
|
14727
|
+
throw new Error("cornerWordsSlide: requires at least one word");
|
|
14728
|
+
}
|
|
14729
|
+
return Object.freeze({
|
|
14730
|
+
type: "cornerWordsSlide",
|
|
14731
|
+
words,
|
|
14732
|
+
render({ visibleCount = words.length } = {}) {
|
|
14733
|
+
return `
|
|
14734
|
+
<section class="slide cornerWordsSlide">
|
|
14735
|
+
${words.map((w, i) => {
|
|
14736
|
+
if (i >= visibleCount) return "";
|
|
14737
|
+
return `<span class="corner-word corner-${i + 1}">${w.content}</span>`;
|
|
14738
|
+
}).join("")}
|
|
14739
|
+
</section>
|
|
14740
|
+
`;
|
|
14741
|
+
}
|
|
14742
|
+
});
|
|
14743
|
+
}
|
|
14744
|
+
};
|
|
14745
|
+
|
|
14746
|
+
// node_modules/taleem-slides/src/slides/ContactSlide.js
|
|
14747
|
+
var ContactSlide = {
|
|
14748
|
+
type: "contactSlide",
|
|
14749
|
+
fromJSON(raw) {
|
|
14750
|
+
const items = raw.data?.map((d) => ({ content: d.content }));
|
|
14751
|
+
if (!items?.length) {
|
|
14752
|
+
throw new Error("contactSlide: content required");
|
|
14753
|
+
}
|
|
14754
|
+
return Object.freeze({
|
|
14755
|
+
type: "contactSlide",
|
|
14756
|
+
items,
|
|
14757
|
+
render() {
|
|
14758
|
+
return `
|
|
14759
|
+
<section class="slide contactSlide">
|
|
14760
|
+
${items.map((i) => `<div>${i.content}</div>`).join("")}
|
|
14761
|
+
</section>
|
|
14762
|
+
`;
|
|
14763
|
+
}
|
|
14764
|
+
});
|
|
14765
|
+
}
|
|
14766
|
+
};
|
|
14767
|
+
|
|
14768
|
+
// node_modules/taleem-slides/src/slides/EqSlide.js
|
|
14769
|
+
var EqSlide = {
|
|
14770
|
+
type: "eq",
|
|
14771
|
+
fromJSON(raw) {
|
|
14772
|
+
if (!Array.isArray(raw.data)) {
|
|
14773
|
+
throw new Error("eq: data must be array");
|
|
14774
|
+
}
|
|
14775
|
+
const lines = raw.data.map((d) => ({
|
|
14776
|
+
content: d.content
|
|
14777
|
+
}));
|
|
14778
|
+
return Object.freeze({
|
|
14779
|
+
type: "eq",
|
|
14780
|
+
lines,
|
|
14781
|
+
render({ activeIndex = null } = {}) {
|
|
14782
|
+
return `
|
|
14783
|
+
<section class="slide eq">
|
|
14784
|
+
${lines.map((l, i) => {
|
|
14785
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14786
|
+
return `<div class="eq-line ${cls}">${l.content}</div>`;
|
|
14787
|
+
}).join("")}
|
|
14788
|
+
</section>
|
|
14789
|
+
`;
|
|
14790
|
+
}
|
|
14791
|
+
});
|
|
14792
|
+
}
|
|
14793
|
+
};
|
|
14794
|
+
|
|
14795
|
+
// node_modules/taleem-slides/src/slides/SvgPointerSlide.js
|
|
14796
|
+
var SvgPointerSlide = {
|
|
14797
|
+
type: "svgPointer",
|
|
14798
|
+
fromJSON(raw) {
|
|
14799
|
+
const svg = raw.data?.find((d) => d.name === "svg")?.content;
|
|
14800
|
+
if (!svg) throw new Error("svgPointer: svg required");
|
|
14801
|
+
return Object.freeze({
|
|
14802
|
+
type: "svgPointer",
|
|
14803
|
+
svg,
|
|
14804
|
+
render() {
|
|
14805
|
+
return `
|
|
14806
|
+
<section class="slide svgPointer">
|
|
14807
|
+
${svg}
|
|
14808
|
+
</section>
|
|
14809
|
+
`;
|
|
14810
|
+
}
|
|
14811
|
+
});
|
|
14812
|
+
}
|
|
14813
|
+
};
|
|
14814
|
+
|
|
14815
|
+
// node_modules/taleem-slides/src/SlideTemplates.js
|
|
14816
|
+
var SlideTemplates = {
|
|
14817
|
+
titleSlide: TitleSlide,
|
|
14818
|
+
titleAndSubtitle: TitleAndSubtitleSlide,
|
|
14819
|
+
titleAndPara: TitleAndParaSlide,
|
|
14820
|
+
bulletList: BulletListSlide,
|
|
14821
|
+
twoColumnText: TwoColumnTextSlide,
|
|
14822
|
+
imageSlide: ImageSlide,
|
|
14823
|
+
fillImage: FillImageSlide,
|
|
14824
|
+
imageWithTitle: ImageWithTitleSlide,
|
|
14825
|
+
imageWithCaption: ImageWithCaptionSlide,
|
|
14826
|
+
imageLeftBulletsRight: ImageLeftBulletsRightSlide,
|
|
14827
|
+
imageRightBulletsLeft: ImageRightBulletsLeftSlide,
|
|
14828
|
+
table: TableSlide,
|
|
14829
|
+
statistic: StatisticSlide,
|
|
14830
|
+
bigNumber: BigNumberSlide,
|
|
14831
|
+
barChart: BarChartSlide,
|
|
14832
|
+
donutChart: DonutChartSlide,
|
|
14833
|
+
quoteSlide: QuoteSlide,
|
|
14834
|
+
quoteWithImage: QuoteWithImageSlide,
|
|
14835
|
+
cornerWordsSlide: CornerWordsSlide,
|
|
14836
|
+
contactSlide: ContactSlide,
|
|
14837
|
+
eq: EqSlide,
|
|
14838
|
+
svgPointer: SvgPointerSlide
|
|
14839
|
+
};
|
|
14840
|
+
|
|
14841
|
+
// node_modules/taleem-slides/src/getSlideTemplate.js
|
|
14842
|
+
function getSlideTemplate(type) {
|
|
14843
|
+
const template = SlideTemplates[type];
|
|
14844
|
+
if (!template) {
|
|
14845
|
+
throw new Error(`Unknown slide template type "${type}"`);
|
|
14846
|
+
}
|
|
14847
|
+
return template;
|
|
14848
|
+
}
|
|
14849
|
+
|
|
14231
14850
|
// src/core/stage.js
|
|
14232
14851
|
function createStage(mount) {
|
|
14233
14852
|
if (!mount) throw new Error("taleem-player: mount is required");
|
|
@@ -14254,10 +14873,7 @@ function createStage(mount) {
|
|
|
14254
14873
|
}
|
|
14255
14874
|
|
|
14256
14875
|
// src/core/player.js
|
|
14257
|
-
function createTaleemPlayer({ mount, deck
|
|
14258
|
-
if (!renderer || typeof renderer.render !== "function") {
|
|
14259
|
-
throw new Error("taleem-player: renderer with render() required");
|
|
14260
|
-
}
|
|
14876
|
+
function createTaleemPlayer({ mount, deck }) {
|
|
14261
14877
|
const result = validateDeckV1(deck);
|
|
14262
14878
|
if (!result.ok) {
|
|
14263
14879
|
throw new Error(
|
|
@@ -14266,6 +14882,7 @@ function createTaleemPlayer({ mount, deck, renderer }) {
|
|
|
14266
14882
|
}
|
|
14267
14883
|
const stage = createStage(mount);
|
|
14268
14884
|
let lastSlide = null;
|
|
14885
|
+
let lastRenderedKey = null;
|
|
14269
14886
|
function getSlideAtTime(deck2, time3) {
|
|
14270
14887
|
const slides = deck2.deck;
|
|
14271
14888
|
for (let i = slides.length - 1; i >= 0; i--) {
|
|
@@ -14274,22 +14891,46 @@ function createTaleemPlayer({ mount, deck, renderer }) {
|
|
|
14274
14891
|
}
|
|
14275
14892
|
return null;
|
|
14276
14893
|
}
|
|
14894
|
+
function computeRenderState(slide, time3) {
|
|
14895
|
+
if (!Array.isArray(slide.data)) {
|
|
14896
|
+
return {};
|
|
14897
|
+
}
|
|
14898
|
+
let visibleCount = 0;
|
|
14899
|
+
let activeIndex = -1;
|
|
14900
|
+
slide.data.forEach((item, index) => {
|
|
14901
|
+
if (typeof item.showAt === "number" && time3 >= item.showAt) {
|
|
14902
|
+
visibleCount++;
|
|
14903
|
+
activeIndex = index;
|
|
14904
|
+
}
|
|
14905
|
+
});
|
|
14906
|
+
return {
|
|
14907
|
+
visibleCount,
|
|
14908
|
+
activeIndex
|
|
14909
|
+
};
|
|
14910
|
+
}
|
|
14277
14911
|
function renderAt(time3) {
|
|
14278
14912
|
const slide = getSlideAtTime(deck, time3);
|
|
14279
14913
|
if (!slide) {
|
|
14280
14914
|
stage.clear();
|
|
14281
14915
|
lastSlide = null;
|
|
14916
|
+
lastRenderedKey = null;
|
|
14282
14917
|
return;
|
|
14283
14918
|
}
|
|
14919
|
+
const renderState = computeRenderState(slide, time3);
|
|
14920
|
+
const renderKey = `${slide.start}-${renderState.visibleCount}-${renderState.activeIndex}`;
|
|
14284
14921
|
if (slide !== lastSlide) {
|
|
14285
14922
|
stage.clear();
|
|
14286
14923
|
lastSlide = slide;
|
|
14924
|
+
lastRenderedKey = null;
|
|
14287
14925
|
}
|
|
14288
|
-
|
|
14289
|
-
|
|
14290
|
-
|
|
14291
|
-
|
|
14292
|
-
|
|
14926
|
+
if (renderKey === lastRenderedKey) {
|
|
14927
|
+
return;
|
|
14928
|
+
}
|
|
14929
|
+
const Template = getSlideTemplate(slide.type);
|
|
14930
|
+
const slideInstance = Template.fromJSON(slide);
|
|
14931
|
+
const html = slideInstance.render(renderState);
|
|
14932
|
+
stage.el.innerHTML = html;
|
|
14933
|
+
lastRenderedKey = renderKey;
|
|
14293
14934
|
}
|
|
14294
14935
|
function destroy() {
|
|
14295
14936
|
stage.destroy();
|
|
@@ -14247,6 +14247,625 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14247
14247
|
};
|
|
14248
14248
|
zodDeckV1.parse(goldenDeckV1);
|
|
14249
14249
|
|
|
14250
|
+
// node_modules/taleem-slides/src/slides/TitleSlide.js
|
|
14251
|
+
var TitleSlide = {
|
|
14252
|
+
type: "titleSlide",
|
|
14253
|
+
fromJSON(raw) {
|
|
14254
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14255
|
+
if (!title) throw new Error("titleSlide: title required");
|
|
14256
|
+
return Object.freeze({
|
|
14257
|
+
type: "titleSlide",
|
|
14258
|
+
title,
|
|
14259
|
+
render() {
|
|
14260
|
+
return `
|
|
14261
|
+
<section class="slide titleSlide">
|
|
14262
|
+
<h1>${title}</h1>
|
|
14263
|
+
</section>
|
|
14264
|
+
`;
|
|
14265
|
+
}
|
|
14266
|
+
});
|
|
14267
|
+
}
|
|
14268
|
+
};
|
|
14269
|
+
|
|
14270
|
+
// node_modules/taleem-slides/src/slides/TitleAndSubtitleSlide.js
|
|
14271
|
+
var TitleAndSubtitleSlide = {
|
|
14272
|
+
type: "titleAndSubtitle",
|
|
14273
|
+
fromJSON(raw) {
|
|
14274
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14275
|
+
const subtitle = raw.data?.find((d) => d.name === "subtitle")?.content;
|
|
14276
|
+
if (!title || !subtitle) {
|
|
14277
|
+
throw new Error("titleAndSubtitle: requires title and subtitle");
|
|
14278
|
+
}
|
|
14279
|
+
return Object.freeze({
|
|
14280
|
+
type: "titleAndSubtitle",
|
|
14281
|
+
title,
|
|
14282
|
+
subtitle,
|
|
14283
|
+
render() {
|
|
14284
|
+
return `
|
|
14285
|
+
<section class="slide titleAndSubtitle">
|
|
14286
|
+
<h1>${title}</h1>
|
|
14287
|
+
<h2>${subtitle}</h2>
|
|
14288
|
+
</section>
|
|
14289
|
+
`;
|
|
14290
|
+
}
|
|
14291
|
+
});
|
|
14292
|
+
}
|
|
14293
|
+
};
|
|
14294
|
+
|
|
14295
|
+
// node_modules/taleem-slides/src/slides/TitleAndParaSlide.js
|
|
14296
|
+
var TitleAndParaSlide = {
|
|
14297
|
+
type: "titleAndPara",
|
|
14298
|
+
fromJSON(raw) {
|
|
14299
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14300
|
+
const para = raw.data?.find((d) => d.name === "para")?.content;
|
|
14301
|
+
if (!title || !para) {
|
|
14302
|
+
throw new Error("titleAndPara: requires title and para");
|
|
14303
|
+
}
|
|
14304
|
+
return Object.freeze({
|
|
14305
|
+
type: "titleAndPara",
|
|
14306
|
+
title,
|
|
14307
|
+
para,
|
|
14308
|
+
render() {
|
|
14309
|
+
return `
|
|
14310
|
+
<section class="slide titleAndPara">
|
|
14311
|
+
<h1>${title}</h1>
|
|
14312
|
+
<p>${para}</p>
|
|
14313
|
+
</section>
|
|
14314
|
+
`;
|
|
14315
|
+
}
|
|
14316
|
+
});
|
|
14317
|
+
}
|
|
14318
|
+
};
|
|
14319
|
+
|
|
14320
|
+
// node_modules/taleem-slides/src/slides/BulletListSlide.js
|
|
14321
|
+
var BulletListSlide = {
|
|
14322
|
+
type: "bulletList",
|
|
14323
|
+
fromJSON(raw) {
|
|
14324
|
+
const bullets = raw.data?.filter((d) => d.name === "bullet").map((d) => ({ content: d.content }));
|
|
14325
|
+
if (!bullets?.length) {
|
|
14326
|
+
throw new Error("bulletList: requires at least one bullet");
|
|
14327
|
+
}
|
|
14328
|
+
return Object.freeze({
|
|
14329
|
+
type: "bulletList",
|
|
14330
|
+
bullets,
|
|
14331
|
+
render({ visibleCount = bullets.length, activeIndex = null } = {}) {
|
|
14332
|
+
return `
|
|
14333
|
+
<section class="slide bulletList">
|
|
14334
|
+
<ul>
|
|
14335
|
+
${bullets.map((b, i) => {
|
|
14336
|
+
if (i >= visibleCount) return "";
|
|
14337
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14338
|
+
return `<li class="${cls}">${b.content}</li>`;
|
|
14339
|
+
}).join("")}
|
|
14340
|
+
</ul>
|
|
14341
|
+
</section>
|
|
14342
|
+
`;
|
|
14343
|
+
}
|
|
14344
|
+
});
|
|
14345
|
+
}
|
|
14346
|
+
};
|
|
14347
|
+
|
|
14348
|
+
// node_modules/taleem-slides/src/slides/TwoColumnTextSlide.js
|
|
14349
|
+
var TwoColumnTextSlide = {
|
|
14350
|
+
type: "twoColumnText",
|
|
14351
|
+
fromJSON(raw) {
|
|
14352
|
+
const left = raw.data?.filter((d) => d.name === "left").map((d) => ({ content: d.content }));
|
|
14353
|
+
const right = raw.data?.filter((d) => d.name === "right").map((d) => ({ content: d.content }));
|
|
14354
|
+
if (!left?.length || !right?.length) {
|
|
14355
|
+
throw new Error("twoColumnText: requires left and right columns");
|
|
14356
|
+
}
|
|
14357
|
+
return Object.freeze({
|
|
14358
|
+
type: "twoColumnText",
|
|
14359
|
+
left,
|
|
14360
|
+
right,
|
|
14361
|
+
render({
|
|
14362
|
+
leftVisibleCount = left.length,
|
|
14363
|
+
rightVisibleCount = right.length,
|
|
14364
|
+
leftActiveIndex = null,
|
|
14365
|
+
rightActiveIndex = null
|
|
14366
|
+
} = {}) {
|
|
14367
|
+
return `
|
|
14368
|
+
<section class="slide twoColumnText">
|
|
14369
|
+
<div class="col left">
|
|
14370
|
+
${left.map((l, i) => {
|
|
14371
|
+
if (i >= leftVisibleCount) return "";
|
|
14372
|
+
const cls = i === leftActiveIndex ? "is-active" : i < leftActiveIndex ? "is-dim" : "";
|
|
14373
|
+
return `<div class="${cls}">${l.content}</div>`;
|
|
14374
|
+
}).join("")}
|
|
14375
|
+
</div>
|
|
14376
|
+
<div class="col right">
|
|
14377
|
+
${right.map((r, i) => {
|
|
14378
|
+
if (i >= rightVisibleCount) return "";
|
|
14379
|
+
const cls = i === rightActiveIndex ? "is-active" : i < rightActiveIndex ? "is-dim" : "";
|
|
14380
|
+
return `<div class="${cls}">${r.content}</div>`;
|
|
14381
|
+
}).join("")}
|
|
14382
|
+
</div>
|
|
14383
|
+
</section>
|
|
14384
|
+
`;
|
|
14385
|
+
}
|
|
14386
|
+
});
|
|
14387
|
+
}
|
|
14388
|
+
};
|
|
14389
|
+
|
|
14390
|
+
// node_modules/taleem-slides/src/slides/ImageSlide.js
|
|
14391
|
+
var ImageSlide = {
|
|
14392
|
+
type: "imageSlide",
|
|
14393
|
+
fromJSON(raw) {
|
|
14394
|
+
const src = raw.data?.find((d) => d.name === "image")?.content;
|
|
14395
|
+
if (!src) throw new Error("imageSlide: image required");
|
|
14396
|
+
return Object.freeze({
|
|
14397
|
+
type: "imageSlide",
|
|
14398
|
+
src,
|
|
14399
|
+
render() {
|
|
14400
|
+
return `
|
|
14401
|
+
<section class="slide imageSlide">
|
|
14402
|
+
<img src="${src}" alt="" />
|
|
14403
|
+
</section>
|
|
14404
|
+
`;
|
|
14405
|
+
}
|
|
14406
|
+
});
|
|
14407
|
+
}
|
|
14408
|
+
};
|
|
14409
|
+
|
|
14410
|
+
// node_modules/taleem-slides/src/slides/FillImageSlide.js
|
|
14411
|
+
var FillImageSlide = {
|
|
14412
|
+
type: "fillImage",
|
|
14413
|
+
fromJSON(raw) {
|
|
14414
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14415
|
+
if (!image) throw new Error("fillImage: image required");
|
|
14416
|
+
return Object.freeze({
|
|
14417
|
+
type: "fillImage",
|
|
14418
|
+
image,
|
|
14419
|
+
render() {
|
|
14420
|
+
return `
|
|
14421
|
+
<section class="slide fillImage">
|
|
14422
|
+
<img src="${image}" alt="" />
|
|
14423
|
+
</section>
|
|
14424
|
+
`;
|
|
14425
|
+
}
|
|
14426
|
+
});
|
|
14427
|
+
}
|
|
14428
|
+
};
|
|
14429
|
+
|
|
14430
|
+
// node_modules/taleem-slides/src/slides/ImageWithTitleSlide.js
|
|
14431
|
+
var ImageWithTitleSlide = {
|
|
14432
|
+
type: "imageWithTitle",
|
|
14433
|
+
fromJSON(raw) {
|
|
14434
|
+
const src = raw.data?.find((d) => d.name === "image")?.content;
|
|
14435
|
+
const title = raw.data?.find((d) => d.name === "title")?.content;
|
|
14436
|
+
if (!src || !title) {
|
|
14437
|
+
throw new Error("imageWithTitle: image and title required");
|
|
14438
|
+
}
|
|
14439
|
+
return Object.freeze({
|
|
14440
|
+
type: "imageWithTitle",
|
|
14441
|
+
src,
|
|
14442
|
+
title,
|
|
14443
|
+
render() {
|
|
14444
|
+
return `
|
|
14445
|
+
<section class="slide imageWithTitle">
|
|
14446
|
+
<img src="${src}" alt="" />
|
|
14447
|
+
<h1>${title}</h1>
|
|
14448
|
+
</section>
|
|
14449
|
+
`;
|
|
14450
|
+
}
|
|
14451
|
+
});
|
|
14452
|
+
}
|
|
14453
|
+
};
|
|
14454
|
+
|
|
14455
|
+
// node_modules/taleem-slides/src/slides/ImageWithCaptionSlide.js
|
|
14456
|
+
var ImageWithCaptionSlide = {
|
|
14457
|
+
type: "imageWithCaption",
|
|
14458
|
+
fromJSON(raw) {
|
|
14459
|
+
const src = raw.data?.find((d) => d.name === "image")?.content;
|
|
14460
|
+
const caption = raw.data?.find((d) => d.name === "caption")?.content;
|
|
14461
|
+
if (!src || !caption) {
|
|
14462
|
+
throw new Error("imageWithCaption: image and caption required");
|
|
14463
|
+
}
|
|
14464
|
+
return Object.freeze({
|
|
14465
|
+
type: "imageWithCaption",
|
|
14466
|
+
src,
|
|
14467
|
+
caption,
|
|
14468
|
+
render() {
|
|
14469
|
+
return `
|
|
14470
|
+
<figure class="slide imageWithCaption">
|
|
14471
|
+
<img src="${src}" alt="" />
|
|
14472
|
+
<figcaption>${caption}</figcaption>
|
|
14473
|
+
</figure>
|
|
14474
|
+
`;
|
|
14475
|
+
}
|
|
14476
|
+
});
|
|
14477
|
+
}
|
|
14478
|
+
};
|
|
14479
|
+
|
|
14480
|
+
// node_modules/taleem-slides/src/slides/ImageLeftBulletsRightSlide.js
|
|
14481
|
+
var ImageLeftBulletsRightSlide = {
|
|
14482
|
+
type: "imageLeftBulletsRight",
|
|
14483
|
+
fromJSON(raw) {
|
|
14484
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14485
|
+
const bullets = raw.data?.filter((d) => d.name === "bullet").map((d) => ({ content: d.content }));
|
|
14486
|
+
if (!image || !bullets?.length) {
|
|
14487
|
+
throw new Error("imageLeftBulletsRight: image and bullets required");
|
|
14488
|
+
}
|
|
14489
|
+
return Object.freeze({
|
|
14490
|
+
type: "imageLeftBulletsRight",
|
|
14491
|
+
image,
|
|
14492
|
+
bullets,
|
|
14493
|
+
render({ visibleCount = bullets.length, activeIndex = null } = {}) {
|
|
14494
|
+
return `
|
|
14495
|
+
<section class="slide imageLeftBulletsRight">
|
|
14496
|
+
<img src="${image}" alt="" />
|
|
14497
|
+
<ul>
|
|
14498
|
+
${bullets.map((b, i) => {
|
|
14499
|
+
if (i >= visibleCount) return "";
|
|
14500
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14501
|
+
return `<li class="${cls}">${b.content}</li>`;
|
|
14502
|
+
}).join("")}
|
|
14503
|
+
</ul>
|
|
14504
|
+
</section>
|
|
14505
|
+
`;
|
|
14506
|
+
}
|
|
14507
|
+
});
|
|
14508
|
+
}
|
|
14509
|
+
};
|
|
14510
|
+
|
|
14511
|
+
// node_modules/taleem-slides/src/slides/ImageRightBulletsLeftSlide.js
|
|
14512
|
+
var ImageRightBulletsLeftSlide = {
|
|
14513
|
+
type: "imageRightBulletsLeft",
|
|
14514
|
+
fromJSON(raw) {
|
|
14515
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14516
|
+
const bullets = raw.data?.filter((d) => d.name === "bullet").map((d) => ({ content: d.content }));
|
|
14517
|
+
if (!image || !bullets?.length) {
|
|
14518
|
+
throw new Error("imageRightBulletsLeft: image and bullets required");
|
|
14519
|
+
}
|
|
14520
|
+
return Object.freeze({
|
|
14521
|
+
type: "imageRightBulletsLeft",
|
|
14522
|
+
image,
|
|
14523
|
+
bullets,
|
|
14524
|
+
render({ visibleCount = bullets.length, activeIndex = null } = {}) {
|
|
14525
|
+
return `
|
|
14526
|
+
<section class="slide imageRightBulletsLeft">
|
|
14527
|
+
<ul>
|
|
14528
|
+
${bullets.map((b, i) => {
|
|
14529
|
+
if (i >= visibleCount) return "";
|
|
14530
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14531
|
+
return `<li class="${cls}">${b.content}</li>`;
|
|
14532
|
+
}).join("")}
|
|
14533
|
+
</ul>
|
|
14534
|
+
<img src="${image}" alt="" />
|
|
14535
|
+
</section>
|
|
14536
|
+
`;
|
|
14537
|
+
}
|
|
14538
|
+
});
|
|
14539
|
+
}
|
|
14540
|
+
};
|
|
14541
|
+
|
|
14542
|
+
// node_modules/taleem-slides/src/slides/TableSlide.js
|
|
14543
|
+
var TableSlide = {
|
|
14544
|
+
type: "table",
|
|
14545
|
+
fromJSON(raw) {
|
|
14546
|
+
const rows = raw.data?.filter((d) => d.name === "row").map((d) => ({ cells: d.content }));
|
|
14547
|
+
if (!rows?.length) {
|
|
14548
|
+
throw new Error("table: requires at least one row");
|
|
14549
|
+
}
|
|
14550
|
+
return Object.freeze({
|
|
14551
|
+
type: "table",
|
|
14552
|
+
rows,
|
|
14553
|
+
render({ visibleCount = rows.length, activeIndex = null } = {}) {
|
|
14554
|
+
return `
|
|
14555
|
+
<table class="slide table">
|
|
14556
|
+
${rows.map((row, i) => {
|
|
14557
|
+
if (i >= visibleCount) return "";
|
|
14558
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14559
|
+
return `
|
|
14560
|
+
<tr class="${cls}">
|
|
14561
|
+
${row.cells.map((c) => `<td>${c}</td>`).join("")}
|
|
14562
|
+
</tr>
|
|
14563
|
+
`;
|
|
14564
|
+
}).join("")}
|
|
14565
|
+
</table>
|
|
14566
|
+
`;
|
|
14567
|
+
}
|
|
14568
|
+
});
|
|
14569
|
+
}
|
|
14570
|
+
};
|
|
14571
|
+
|
|
14572
|
+
// node_modules/taleem-slides/src/slides/StatisticSlide.js
|
|
14573
|
+
var StatisticSlide = {
|
|
14574
|
+
type: "statistic",
|
|
14575
|
+
fromJSON(raw) {
|
|
14576
|
+
const label = raw.data?.find((d) => d.name === "label")?.content;
|
|
14577
|
+
const value = raw.data?.find((d) => d.name === "value")?.content;
|
|
14578
|
+
if (!label || value === void 0) {
|
|
14579
|
+
throw new Error("statistic: requires label and value");
|
|
14580
|
+
}
|
|
14581
|
+
return Object.freeze({
|
|
14582
|
+
type: "statistic",
|
|
14583
|
+
label,
|
|
14584
|
+
value,
|
|
14585
|
+
render() {
|
|
14586
|
+
return `
|
|
14587
|
+
<section class="slide statistic">
|
|
14588
|
+
<div class="stat-value">${value}</div>
|
|
14589
|
+
<div class="stat-label">${label}</div>
|
|
14590
|
+
</section>
|
|
14591
|
+
`;
|
|
14592
|
+
}
|
|
14593
|
+
});
|
|
14594
|
+
}
|
|
14595
|
+
};
|
|
14596
|
+
|
|
14597
|
+
// node_modules/taleem-slides/src/slides/BigNumberSlide.js
|
|
14598
|
+
var BigNumberSlide = {
|
|
14599
|
+
type: "bigNumber",
|
|
14600
|
+
fromJSON(raw) {
|
|
14601
|
+
const value = raw.data?.find((d) => d.name === "number")?.content;
|
|
14602
|
+
const label = raw.data?.find((d) => d.name === "label")?.content;
|
|
14603
|
+
if (!value) throw new Error("bigNumber: number required");
|
|
14604
|
+
return Object.freeze({
|
|
14605
|
+
type: "bigNumber",
|
|
14606
|
+
value,
|
|
14607
|
+
label,
|
|
14608
|
+
render() {
|
|
14609
|
+
return `
|
|
14610
|
+
<section class="slide bigNumber">
|
|
14611
|
+
<div class="number">${value}</div>
|
|
14612
|
+
${label ? `<div class="label">${label}</div>` : ""}
|
|
14613
|
+
</section>
|
|
14614
|
+
`;
|
|
14615
|
+
}
|
|
14616
|
+
});
|
|
14617
|
+
}
|
|
14618
|
+
};
|
|
14619
|
+
|
|
14620
|
+
// node_modules/taleem-slides/src/slides/BarChartSlide.js
|
|
14621
|
+
var BarChartSlide = {
|
|
14622
|
+
type: "barChart",
|
|
14623
|
+
fromJSON(raw) {
|
|
14624
|
+
const bars = raw.data?.filter((d) => d.name === "bar").map((d) => ({
|
|
14625
|
+
label: d.content.label,
|
|
14626
|
+
value: d.content.value
|
|
14627
|
+
}));
|
|
14628
|
+
if (!bars?.length) {
|
|
14629
|
+
throw new Error("barChart: requires at least one bar");
|
|
14630
|
+
}
|
|
14631
|
+
return Object.freeze({
|
|
14632
|
+
type: "barChart",
|
|
14633
|
+
bars,
|
|
14634
|
+
render({ visibleCount = bars.length, activeIndex = null } = {}) {
|
|
14635
|
+
return `
|
|
14636
|
+
<section class="slide barChart">
|
|
14637
|
+
<ul class="bars">
|
|
14638
|
+
${bars.map((b, i) => {
|
|
14639
|
+
if (i >= visibleCount) return "";
|
|
14640
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14641
|
+
return `
|
|
14642
|
+
<li class="bar ${cls}">
|
|
14643
|
+
<span class="bar-label">${b.label}</span>
|
|
14644
|
+
<span class="bar-value">${b.value}</span>
|
|
14645
|
+
</li>
|
|
14646
|
+
`;
|
|
14647
|
+
}).join("")}
|
|
14648
|
+
</ul>
|
|
14649
|
+
</section>
|
|
14650
|
+
`;
|
|
14651
|
+
}
|
|
14652
|
+
});
|
|
14653
|
+
}
|
|
14654
|
+
};
|
|
14655
|
+
|
|
14656
|
+
// node_modules/taleem-slides/src/slides/DonutChartSlide.js
|
|
14657
|
+
var DonutChartSlide = {
|
|
14658
|
+
type: "donutChart",
|
|
14659
|
+
fromJSON(raw) {
|
|
14660
|
+
const segments = raw.data?.filter((d) => d.name === "segment").map((d) => ({
|
|
14661
|
+
label: d.content.label,
|
|
14662
|
+
value: d.content.value
|
|
14663
|
+
}));
|
|
14664
|
+
if (!segments?.length) {
|
|
14665
|
+
throw new Error("donutChart: requires at least one segment");
|
|
14666
|
+
}
|
|
14667
|
+
return Object.freeze({
|
|
14668
|
+
type: "donutChart",
|
|
14669
|
+
segments,
|
|
14670
|
+
render({ visibleCount = segments.length, activeIndex = null } = {}) {
|
|
14671
|
+
return `
|
|
14672
|
+
<section class="slide donutChart">
|
|
14673
|
+
<ul>
|
|
14674
|
+
${segments.map((s, i) => {
|
|
14675
|
+
if (i >= visibleCount) return "";
|
|
14676
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14677
|
+
return `<li class="${cls}">${s.label}: ${s.value}</li>`;
|
|
14678
|
+
}).join("")}
|
|
14679
|
+
</ul>
|
|
14680
|
+
</section>
|
|
14681
|
+
`;
|
|
14682
|
+
}
|
|
14683
|
+
});
|
|
14684
|
+
}
|
|
14685
|
+
};
|
|
14686
|
+
|
|
14687
|
+
// node_modules/taleem-slides/src/slides/QuoteSlide.js
|
|
14688
|
+
var QuoteSlide = {
|
|
14689
|
+
type: "quoteSlide",
|
|
14690
|
+
fromJSON(raw) {
|
|
14691
|
+
const text = raw.data?.find((d) => d.name === "quote")?.content;
|
|
14692
|
+
const author = raw.data?.find((d) => d.name === "author")?.content;
|
|
14693
|
+
if (!text) throw new Error("quoteSlide: quote required");
|
|
14694
|
+
return Object.freeze({
|
|
14695
|
+
type: "quoteSlide",
|
|
14696
|
+
text,
|
|
14697
|
+
author,
|
|
14698
|
+
render() {
|
|
14699
|
+
return `
|
|
14700
|
+
<blockquote class="slide quoteSlide">
|
|
14701
|
+
<p>${text}</p>
|
|
14702
|
+
${author ? `<footer>${author}</footer>` : ""}
|
|
14703
|
+
</blockquote>
|
|
14704
|
+
`;
|
|
14705
|
+
}
|
|
14706
|
+
});
|
|
14707
|
+
}
|
|
14708
|
+
};
|
|
14709
|
+
|
|
14710
|
+
// node_modules/taleem-slides/src/slides/QuoteWithImageSlide.js
|
|
14711
|
+
var QuoteWithImageSlide = {
|
|
14712
|
+
type: "quoteWithImage",
|
|
14713
|
+
fromJSON(raw) {
|
|
14714
|
+
const quote = raw.data?.find((d) => d.name === "quote")?.content;
|
|
14715
|
+
const image = raw.data?.find((d) => d.name === "image")?.content;
|
|
14716
|
+
const author = raw.data?.find((d) => d.name === "author")?.content;
|
|
14717
|
+
if (!quote || !image) {
|
|
14718
|
+
throw new Error("quoteWithImage: quote and image required");
|
|
14719
|
+
}
|
|
14720
|
+
return Object.freeze({
|
|
14721
|
+
type: "quoteWithImage",
|
|
14722
|
+
quote,
|
|
14723
|
+
image,
|
|
14724
|
+
author,
|
|
14725
|
+
render() {
|
|
14726
|
+
return `
|
|
14727
|
+
<section class="slide quoteWithImage">
|
|
14728
|
+
<img src="${image}" alt="" />
|
|
14729
|
+
<blockquote>
|
|
14730
|
+
<p>${quote}</p>
|
|
14731
|
+
${author ? `<footer>${author}</footer>` : ""}
|
|
14732
|
+
</blockquote>
|
|
14733
|
+
</section>
|
|
14734
|
+
`;
|
|
14735
|
+
}
|
|
14736
|
+
});
|
|
14737
|
+
}
|
|
14738
|
+
};
|
|
14739
|
+
|
|
14740
|
+
// node_modules/taleem-slides/src/slides/CornerWordsSlide.js
|
|
14741
|
+
var CornerWordsSlide = {
|
|
14742
|
+
type: "cornerWordsSlide",
|
|
14743
|
+
fromJSON(raw) {
|
|
14744
|
+
const words = raw.data?.filter((d) => d.name === "word").map((d) => ({ content: d.content }));
|
|
14745
|
+
if (!words?.length) {
|
|
14746
|
+
throw new Error("cornerWordsSlide: requires at least one word");
|
|
14747
|
+
}
|
|
14748
|
+
return Object.freeze({
|
|
14749
|
+
type: "cornerWordsSlide",
|
|
14750
|
+
words,
|
|
14751
|
+
render({ visibleCount = words.length } = {}) {
|
|
14752
|
+
return `
|
|
14753
|
+
<section class="slide cornerWordsSlide">
|
|
14754
|
+
${words.map((w, i) => {
|
|
14755
|
+
if (i >= visibleCount) return "";
|
|
14756
|
+
return `<span class="corner-word corner-${i + 1}">${w.content}</span>`;
|
|
14757
|
+
}).join("")}
|
|
14758
|
+
</section>
|
|
14759
|
+
`;
|
|
14760
|
+
}
|
|
14761
|
+
});
|
|
14762
|
+
}
|
|
14763
|
+
};
|
|
14764
|
+
|
|
14765
|
+
// node_modules/taleem-slides/src/slides/ContactSlide.js
|
|
14766
|
+
var ContactSlide = {
|
|
14767
|
+
type: "contactSlide",
|
|
14768
|
+
fromJSON(raw) {
|
|
14769
|
+
const items = raw.data?.map((d) => ({ content: d.content }));
|
|
14770
|
+
if (!items?.length) {
|
|
14771
|
+
throw new Error("contactSlide: content required");
|
|
14772
|
+
}
|
|
14773
|
+
return Object.freeze({
|
|
14774
|
+
type: "contactSlide",
|
|
14775
|
+
items,
|
|
14776
|
+
render() {
|
|
14777
|
+
return `
|
|
14778
|
+
<section class="slide contactSlide">
|
|
14779
|
+
${items.map((i) => `<div>${i.content}</div>`).join("")}
|
|
14780
|
+
</section>
|
|
14781
|
+
`;
|
|
14782
|
+
}
|
|
14783
|
+
});
|
|
14784
|
+
}
|
|
14785
|
+
};
|
|
14786
|
+
|
|
14787
|
+
// node_modules/taleem-slides/src/slides/EqSlide.js
|
|
14788
|
+
var EqSlide = {
|
|
14789
|
+
type: "eq",
|
|
14790
|
+
fromJSON(raw) {
|
|
14791
|
+
if (!Array.isArray(raw.data)) {
|
|
14792
|
+
throw new Error("eq: data must be array");
|
|
14793
|
+
}
|
|
14794
|
+
const lines = raw.data.map((d) => ({
|
|
14795
|
+
content: d.content
|
|
14796
|
+
}));
|
|
14797
|
+
return Object.freeze({
|
|
14798
|
+
type: "eq",
|
|
14799
|
+
lines,
|
|
14800
|
+
render({ activeIndex = null } = {}) {
|
|
14801
|
+
return `
|
|
14802
|
+
<section class="slide eq">
|
|
14803
|
+
${lines.map((l, i) => {
|
|
14804
|
+
const cls = i === activeIndex ? "is-active" : i < activeIndex ? "is-dim" : "";
|
|
14805
|
+
return `<div class="eq-line ${cls}">${l.content}</div>`;
|
|
14806
|
+
}).join("")}
|
|
14807
|
+
</section>
|
|
14808
|
+
`;
|
|
14809
|
+
}
|
|
14810
|
+
});
|
|
14811
|
+
}
|
|
14812
|
+
};
|
|
14813
|
+
|
|
14814
|
+
// node_modules/taleem-slides/src/slides/SvgPointerSlide.js
|
|
14815
|
+
var SvgPointerSlide = {
|
|
14816
|
+
type: "svgPointer",
|
|
14817
|
+
fromJSON(raw) {
|
|
14818
|
+
const svg = raw.data?.find((d) => d.name === "svg")?.content;
|
|
14819
|
+
if (!svg) throw new Error("svgPointer: svg required");
|
|
14820
|
+
return Object.freeze({
|
|
14821
|
+
type: "svgPointer",
|
|
14822
|
+
svg,
|
|
14823
|
+
render() {
|
|
14824
|
+
return `
|
|
14825
|
+
<section class="slide svgPointer">
|
|
14826
|
+
${svg}
|
|
14827
|
+
</section>
|
|
14828
|
+
`;
|
|
14829
|
+
}
|
|
14830
|
+
});
|
|
14831
|
+
}
|
|
14832
|
+
};
|
|
14833
|
+
|
|
14834
|
+
// node_modules/taleem-slides/src/SlideTemplates.js
|
|
14835
|
+
var SlideTemplates = {
|
|
14836
|
+
titleSlide: TitleSlide,
|
|
14837
|
+
titleAndSubtitle: TitleAndSubtitleSlide,
|
|
14838
|
+
titleAndPara: TitleAndParaSlide,
|
|
14839
|
+
bulletList: BulletListSlide,
|
|
14840
|
+
twoColumnText: TwoColumnTextSlide,
|
|
14841
|
+
imageSlide: ImageSlide,
|
|
14842
|
+
fillImage: FillImageSlide,
|
|
14843
|
+
imageWithTitle: ImageWithTitleSlide,
|
|
14844
|
+
imageWithCaption: ImageWithCaptionSlide,
|
|
14845
|
+
imageLeftBulletsRight: ImageLeftBulletsRightSlide,
|
|
14846
|
+
imageRightBulletsLeft: ImageRightBulletsLeftSlide,
|
|
14847
|
+
table: TableSlide,
|
|
14848
|
+
statistic: StatisticSlide,
|
|
14849
|
+
bigNumber: BigNumberSlide,
|
|
14850
|
+
barChart: BarChartSlide,
|
|
14851
|
+
donutChart: DonutChartSlide,
|
|
14852
|
+
quoteSlide: QuoteSlide,
|
|
14853
|
+
quoteWithImage: QuoteWithImageSlide,
|
|
14854
|
+
cornerWordsSlide: CornerWordsSlide,
|
|
14855
|
+
contactSlide: ContactSlide,
|
|
14856
|
+
eq: EqSlide,
|
|
14857
|
+
svgPointer: SvgPointerSlide
|
|
14858
|
+
};
|
|
14859
|
+
|
|
14860
|
+
// node_modules/taleem-slides/src/getSlideTemplate.js
|
|
14861
|
+
function getSlideTemplate(type) {
|
|
14862
|
+
const template = SlideTemplates[type];
|
|
14863
|
+
if (!template) {
|
|
14864
|
+
throw new Error(`Unknown slide template type "${type}"`);
|
|
14865
|
+
}
|
|
14866
|
+
return template;
|
|
14867
|
+
}
|
|
14868
|
+
|
|
14250
14869
|
// src/core/stage.js
|
|
14251
14870
|
function createStage(mount) {
|
|
14252
14871
|
if (!mount) throw new Error("taleem-player: mount is required");
|
|
@@ -14273,10 +14892,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14273
14892
|
}
|
|
14274
14893
|
|
|
14275
14894
|
// src/core/player.js
|
|
14276
|
-
function createTaleemPlayer({ mount, deck
|
|
14277
|
-
if (!renderer || typeof renderer.render !== "function") {
|
|
14278
|
-
throw new Error("taleem-player: renderer with render() required");
|
|
14279
|
-
}
|
|
14895
|
+
function createTaleemPlayer({ mount, deck }) {
|
|
14280
14896
|
const result = validateDeckV1(deck);
|
|
14281
14897
|
if (!result.ok) {
|
|
14282
14898
|
throw new Error(
|
|
@@ -14285,6 +14901,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14285
14901
|
}
|
|
14286
14902
|
const stage = createStage(mount);
|
|
14287
14903
|
let lastSlide = null;
|
|
14904
|
+
let lastRenderedKey = null;
|
|
14288
14905
|
function getSlideAtTime(deck2, time3) {
|
|
14289
14906
|
const slides = deck2.deck;
|
|
14290
14907
|
for (let i = slides.length - 1; i >= 0; i--) {
|
|
@@ -14293,22 +14910,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14293
14910
|
}
|
|
14294
14911
|
return null;
|
|
14295
14912
|
}
|
|
14913
|
+
function computeRenderState(slide, time3) {
|
|
14914
|
+
if (!Array.isArray(slide.data)) {
|
|
14915
|
+
return {};
|
|
14916
|
+
}
|
|
14917
|
+
let visibleCount = 0;
|
|
14918
|
+
let activeIndex = -1;
|
|
14919
|
+
slide.data.forEach((item, index) => {
|
|
14920
|
+
if (typeof item.showAt === "number" && time3 >= item.showAt) {
|
|
14921
|
+
visibleCount++;
|
|
14922
|
+
activeIndex = index;
|
|
14923
|
+
}
|
|
14924
|
+
});
|
|
14925
|
+
return {
|
|
14926
|
+
visibleCount,
|
|
14927
|
+
activeIndex
|
|
14928
|
+
};
|
|
14929
|
+
}
|
|
14296
14930
|
function renderAt(time3) {
|
|
14297
14931
|
const slide = getSlideAtTime(deck, time3);
|
|
14298
14932
|
if (!slide) {
|
|
14299
14933
|
stage.clear();
|
|
14300
14934
|
lastSlide = null;
|
|
14935
|
+
lastRenderedKey = null;
|
|
14301
14936
|
return;
|
|
14302
14937
|
}
|
|
14938
|
+
const renderState = computeRenderState(slide, time3);
|
|
14939
|
+
const renderKey = `${slide.start}-${renderState.visibleCount}-${renderState.activeIndex}`;
|
|
14303
14940
|
if (slide !== lastSlide) {
|
|
14304
14941
|
stage.clear();
|
|
14305
14942
|
lastSlide = slide;
|
|
14943
|
+
lastRenderedKey = null;
|
|
14306
14944
|
}
|
|
14307
|
-
|
|
14308
|
-
|
|
14309
|
-
|
|
14310
|
-
|
|
14311
|
-
|
|
14945
|
+
if (renderKey === lastRenderedKey) {
|
|
14946
|
+
return;
|
|
14947
|
+
}
|
|
14948
|
+
const Template = getSlideTemplate(slide.type);
|
|
14949
|
+
const slideInstance = Template.fromJSON(slide);
|
|
14950
|
+
const html = slideInstance.render(renderState);
|
|
14951
|
+
stage.el.innerHTML = html;
|
|
14952
|
+
lastRenderedKey = renderKey;
|
|
14312
14953
|
}
|
|
14313
14954
|
function destroy() {
|
|
14314
14955
|
stage.destroy();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taleem-player",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/taleem-player.umd.js",
|
|
6
6
|
"module": "./dist/taleem-player.esm.js",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"taleem-core": "^1.2.0",
|
|
22
|
+
"taleem-slides": "^0.5.0",
|
|
22
23
|
"zod": "^4.3.5"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|