chart-preview 1.2.0 → 1.3.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/CHANGELOG.md +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +26 -0
- package/dist/index.mjs +26 -0
- package/package.json +1 -1
- package/src/ChartPreview.ts +23 -0
- package/src/ChartPreviewPlayer.ts +12 -0
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -180,6 +180,11 @@ declare class ChartPreview {
|
|
|
180
180
|
get chartCurrentTimeMs(): number;
|
|
181
181
|
/** Total duration in milliseconds */
|
|
182
182
|
get chartEndTimeMs(): number;
|
|
183
|
+
/**
|
|
184
|
+
* Manually triggers a resize of the camera and renderer.
|
|
185
|
+
* Call this when the container size changes (e.g., entering/exiting fullscreen).
|
|
186
|
+
*/
|
|
187
|
+
resize(): void;
|
|
183
188
|
/**
|
|
184
189
|
* Cleans up all resources. Call this when discarding the preview.
|
|
185
190
|
* The preview should not be used after calling dispose().
|
package/dist/index.js
CHANGED
|
@@ -409,6 +409,17 @@ var _ChartPreview = class {
|
|
|
409
409
|
get chartEndTimeMs() {
|
|
410
410
|
return this.audioManager.chartEndTimeMs;
|
|
411
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* Manually triggers a resize of the camera and renderer.
|
|
414
|
+
* Call this when the container size changes (e.g., entering/exiting fullscreen).
|
|
415
|
+
*/
|
|
416
|
+
resize() {
|
|
417
|
+
this.camera.triggerResize();
|
|
418
|
+
this.renderer.triggerResize();
|
|
419
|
+
if (this.paused) {
|
|
420
|
+
this.animateFrame(false);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
412
423
|
/**
|
|
413
424
|
* Cleans up all resources. Call this when discarding the preview.
|
|
414
425
|
* The preview should not be used after calling dispose().
|
|
@@ -496,6 +507,10 @@ var ChartCamera = class extends THREE.PerspectiveCamera {
|
|
|
496
507
|
this.aspect = width / height;
|
|
497
508
|
this.updateProjectionMatrix();
|
|
498
509
|
}
|
|
510
|
+
/** Manually trigger a resize update */
|
|
511
|
+
triggerResize() {
|
|
512
|
+
this.onResize();
|
|
513
|
+
}
|
|
499
514
|
dispose() {
|
|
500
515
|
window.removeEventListener("resize", this.resizeListener);
|
|
501
516
|
this.clear();
|
|
@@ -518,6 +533,10 @@ var ChartRenderer = class extends THREE.WebGLRenderer {
|
|
|
518
533
|
const height = this.divContainer.offsetHeight ?? window.innerHeight;
|
|
519
534
|
this.setSize(width, height);
|
|
520
535
|
}
|
|
536
|
+
/** Manually trigger a resize update */
|
|
537
|
+
triggerResize() {
|
|
538
|
+
this.onResize();
|
|
539
|
+
}
|
|
521
540
|
dispose() {
|
|
522
541
|
window.removeEventListener("resize", this.resizeListener);
|
|
523
542
|
super.dispose();
|
|
@@ -1760,6 +1779,13 @@ var ChartPreviewPlayer = class extends HTMLElement {
|
|
|
1760
1779
|
this.container.classList.toggle("fullscreen", this._isFullscreen);
|
|
1761
1780
|
this.fullscreenBtn.innerHTML = this._isFullscreen ? ICONS.fullscreenExit : ICONS.fullscreen;
|
|
1762
1781
|
this.fullscreenBtn.title = this._isFullscreen ? "Exit fullscreen" : "Enter fullscreen";
|
|
1782
|
+
if (this.chartPreview) {
|
|
1783
|
+
requestAnimationFrame(() => {
|
|
1784
|
+
requestAnimationFrame(() => {
|
|
1785
|
+
this.chartPreview?.resize();
|
|
1786
|
+
});
|
|
1787
|
+
});
|
|
1788
|
+
}
|
|
1763
1789
|
};
|
|
1764
1790
|
this.shadow = this.attachShadow({ mode: "open" });
|
|
1765
1791
|
this.render();
|
package/dist/index.mjs
CHANGED
|
@@ -369,6 +369,17 @@ var _ChartPreview = class {
|
|
|
369
369
|
get chartEndTimeMs() {
|
|
370
370
|
return this.audioManager.chartEndTimeMs;
|
|
371
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Manually triggers a resize of the camera and renderer.
|
|
374
|
+
* Call this when the container size changes (e.g., entering/exiting fullscreen).
|
|
375
|
+
*/
|
|
376
|
+
resize() {
|
|
377
|
+
this.camera.triggerResize();
|
|
378
|
+
this.renderer.triggerResize();
|
|
379
|
+
if (this.paused) {
|
|
380
|
+
this.animateFrame(false);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
372
383
|
/**
|
|
373
384
|
* Cleans up all resources. Call this when discarding the preview.
|
|
374
385
|
* The preview should not be used after calling dispose().
|
|
@@ -456,6 +467,10 @@ var ChartCamera = class extends THREE.PerspectiveCamera {
|
|
|
456
467
|
this.aspect = width / height;
|
|
457
468
|
this.updateProjectionMatrix();
|
|
458
469
|
}
|
|
470
|
+
/** Manually trigger a resize update */
|
|
471
|
+
triggerResize() {
|
|
472
|
+
this.onResize();
|
|
473
|
+
}
|
|
459
474
|
dispose() {
|
|
460
475
|
window.removeEventListener("resize", this.resizeListener);
|
|
461
476
|
this.clear();
|
|
@@ -478,6 +493,10 @@ var ChartRenderer = class extends THREE.WebGLRenderer {
|
|
|
478
493
|
const height = this.divContainer.offsetHeight ?? window.innerHeight;
|
|
479
494
|
this.setSize(width, height);
|
|
480
495
|
}
|
|
496
|
+
/** Manually trigger a resize update */
|
|
497
|
+
triggerResize() {
|
|
498
|
+
this.onResize();
|
|
499
|
+
}
|
|
481
500
|
dispose() {
|
|
482
501
|
window.removeEventListener("resize", this.resizeListener);
|
|
483
502
|
super.dispose();
|
|
@@ -1724,6 +1743,13 @@ var ChartPreviewPlayer = class extends HTMLElement {
|
|
|
1724
1743
|
this.container.classList.toggle("fullscreen", this._isFullscreen);
|
|
1725
1744
|
this.fullscreenBtn.innerHTML = this._isFullscreen ? ICONS.fullscreenExit : ICONS.fullscreen;
|
|
1726
1745
|
this.fullscreenBtn.title = this._isFullscreen ? "Exit fullscreen" : "Enter fullscreen";
|
|
1746
|
+
if (this.chartPreview) {
|
|
1747
|
+
requestAnimationFrame(() => {
|
|
1748
|
+
requestAnimationFrame(() => {
|
|
1749
|
+
this.chartPreview?.resize();
|
|
1750
|
+
});
|
|
1751
|
+
});
|
|
1752
|
+
}
|
|
1727
1753
|
};
|
|
1728
1754
|
this.shadow = this.attachShadow({ mode: "open" });
|
|
1729
1755
|
this.render();
|
package/package.json
CHANGED
package/src/ChartPreview.ts
CHANGED
|
@@ -509,6 +509,19 @@ export class ChartPreview {
|
|
|
509
509
|
return this.audioManager.chartEndTimeMs;
|
|
510
510
|
}
|
|
511
511
|
|
|
512
|
+
/**
|
|
513
|
+
* Manually triggers a resize of the camera and renderer.
|
|
514
|
+
* Call this when the container size changes (e.g., entering/exiting fullscreen).
|
|
515
|
+
*/
|
|
516
|
+
resize() {
|
|
517
|
+
this.camera.triggerResize();
|
|
518
|
+
this.renderer.triggerResize();
|
|
519
|
+
// Re-render a frame to immediately show the updated size
|
|
520
|
+
if (this.paused) {
|
|
521
|
+
this.animateFrame(false);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
|
|
512
525
|
/**
|
|
513
526
|
* Cleans up all resources. Call this when discarding the preview.
|
|
514
527
|
* The preview should not be used after calling dispose().
|
|
@@ -618,6 +631,11 @@ class ChartCamera extends THREE.PerspectiveCamera {
|
|
|
618
631
|
this.updateProjectionMatrix();
|
|
619
632
|
}
|
|
620
633
|
|
|
634
|
+
/** Manually trigger a resize update */
|
|
635
|
+
triggerResize() {
|
|
636
|
+
this.onResize();
|
|
637
|
+
}
|
|
638
|
+
|
|
621
639
|
dispose() {
|
|
622
640
|
window.removeEventListener("resize", this.resizeListener);
|
|
623
641
|
this.clear();
|
|
@@ -642,6 +660,11 @@ class ChartRenderer extends THREE.WebGLRenderer {
|
|
|
642
660
|
this.setSize(width, height);
|
|
643
661
|
}
|
|
644
662
|
|
|
663
|
+
/** Manually trigger a resize update */
|
|
664
|
+
triggerResize() {
|
|
665
|
+
this.onResize();
|
|
666
|
+
}
|
|
667
|
+
|
|
645
668
|
override dispose() {
|
|
646
669
|
window.removeEventListener("resize", this.resizeListener);
|
|
647
670
|
super.dispose();
|
|
@@ -549,6 +549,18 @@ export class ChartPreviewPlayer extends HTMLElement {
|
|
|
549
549
|
this.fullscreenBtn.title = this._isFullscreen
|
|
550
550
|
? "Exit fullscreen"
|
|
551
551
|
: "Enter fullscreen";
|
|
552
|
+
|
|
553
|
+
// Trigger resize on the chart preview after a short delay
|
|
554
|
+
// to ensure the container dimensions have updated
|
|
555
|
+
if (this.chartPreview) {
|
|
556
|
+
// Use requestAnimationFrame to ensure DOM has updated
|
|
557
|
+
requestAnimationFrame(() => {
|
|
558
|
+
// Double RAF to ensure layout has been recalculated
|
|
559
|
+
requestAnimationFrame(() => {
|
|
560
|
+
this.chartPreview?.resize();
|
|
561
|
+
});
|
|
562
|
+
});
|
|
563
|
+
}
|
|
552
564
|
};
|
|
553
565
|
|
|
554
566
|
private onSeekStart() {
|