@biolytics.ai/diascope 0.1.0 → 0.1.2
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/diascope.bundle.js +101 -22
- package/dist/diascope.standalone.js +101 -22
- package/dist/viewer/viewer.d.ts +8 -0
- package/dist/viewer/viewer.d.ts.map +1 -1
- package/dist/viewer/viewer.js +120 -21
- package/dist/viewer/viewer.js.map +1 -1
- package/package.json +1 -1
package/dist/diascope.bundle.js
CHANGED
|
@@ -342,6 +342,9 @@ var DiaScopeViewer = class {
|
|
|
342
342
|
this.onCanvasClick = null;
|
|
343
343
|
this.onKeyDown = null;
|
|
344
344
|
this.narrowObserver = null;
|
|
345
|
+
this.canvasObserver = null;
|
|
346
|
+
this.viewportSyncRaf = null;
|
|
347
|
+
this.lastKnownViewport = null;
|
|
345
348
|
this.doc = options.document ?? document;
|
|
346
349
|
this.steps = options.steps ?? [];
|
|
347
350
|
this.nodeIds = options.nodeIds ?? [];
|
|
@@ -435,6 +438,64 @@ var DiaScopeViewer = class {
|
|
|
435
438
|
getStoryShell() {
|
|
436
439
|
return this.doc.querySelector("#story-shell");
|
|
437
440
|
}
|
|
441
|
+
captureViewportState() {
|
|
442
|
+
if (!this.pz) return null;
|
|
443
|
+
const zoom = this.pz.getZoom();
|
|
444
|
+
const pan = this.pz.getPan();
|
|
445
|
+
if (!Number.isFinite(zoom) || zoom <= 0) return null;
|
|
446
|
+
if (!Number.isFinite(pan.x) || !Number.isFinite(pan.y)) return null;
|
|
447
|
+
return { zoom, pan: { x: pan.x, y: pan.y } };
|
|
448
|
+
}
|
|
449
|
+
applyCanvasSize(targetSvg) {
|
|
450
|
+
if (!this.canvasWrap) return false;
|
|
451
|
+
const width = this.canvasWrap.clientWidth;
|
|
452
|
+
const height = this.canvasWrap.clientHeight;
|
|
453
|
+
if (!Number.isFinite(width) || !Number.isFinite(height) || width < 1 || height < 1) return false;
|
|
454
|
+
targetSvg.setAttribute("width", String(width));
|
|
455
|
+
targetSvg.setAttribute("height", String(height));
|
|
456
|
+
return true;
|
|
457
|
+
}
|
|
458
|
+
restoreViewport(state) {
|
|
459
|
+
if (!this.pz || !state) return false;
|
|
460
|
+
this.pz.zoom(state.zoom);
|
|
461
|
+
this.pz.pan(state.pan);
|
|
462
|
+
const restored = this.captureViewportState();
|
|
463
|
+
if (!restored) return false;
|
|
464
|
+
this.lastKnownViewport = restored;
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
recoverViewport() {
|
|
468
|
+
if (this.restoreViewport(this.lastKnownViewport)) return;
|
|
469
|
+
if (!this.pz) return;
|
|
470
|
+
this.pz.fit();
|
|
471
|
+
this.pz.center();
|
|
472
|
+
this.applyMinInitialZoom();
|
|
473
|
+
const recovered = this.captureViewportState();
|
|
474
|
+
if (recovered) {
|
|
475
|
+
this.lastKnownViewport = recovered;
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
const nodes = this.curStep >= 0 ? this.steps[this.curStep]?.nodes ?? [] : [];
|
|
479
|
+
if (nodes.length) autoZoom(this, nodes);
|
|
480
|
+
}
|
|
481
|
+
queueViewportSync() {
|
|
482
|
+
const targetSvg = this.getDiagramSvg();
|
|
483
|
+
if (!targetSvg) return;
|
|
484
|
+
if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") {
|
|
485
|
+
cancelAnimationFrame(this.viewportSyncRaf);
|
|
486
|
+
}
|
|
487
|
+
const schedule = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (cb) => {
|
|
488
|
+
cb(0);
|
|
489
|
+
return 0;
|
|
490
|
+
};
|
|
491
|
+
this.viewportSyncRaf = schedule(() => {
|
|
492
|
+
this.viewportSyncRaf = null;
|
|
493
|
+
const desiredState = this.captureViewportState() ?? this.lastKnownViewport;
|
|
494
|
+
if (!this.applyCanvasSize(targetSvg)) return;
|
|
495
|
+
this.pz?.resize();
|
|
496
|
+
if (!this.restoreViewport(desiredState)) this.recoverViewport();
|
|
497
|
+
});
|
|
498
|
+
}
|
|
438
499
|
syncPanelToggleButton() {
|
|
439
500
|
if (!this.panelToggleBtn) return;
|
|
440
501
|
const shell = this.getStoryShell();
|
|
@@ -450,9 +511,7 @@ var DiaScopeViewer = class {
|
|
|
450
511
|
if (!storyShell) return;
|
|
451
512
|
storyShell.classList.toggle("panel-collapsed");
|
|
452
513
|
this.syncPanelToggleButton();
|
|
453
|
-
this.
|
|
454
|
-
this.pz?.fit();
|
|
455
|
-
this.pz?.center();
|
|
514
|
+
this.onResize?.();
|
|
456
515
|
}
|
|
457
516
|
bindControls() {
|
|
458
517
|
this.doc.querySelectorAll(this.selectors.stepButtons).forEach((btn) => {
|
|
@@ -519,19 +578,10 @@ var DiaScopeViewer = class {
|
|
|
519
578
|
if (!this.canvasWrap || !this.svgHost || !this.svgPanZoomImpl) return;
|
|
520
579
|
const targetSvg = this.getDiagramSvg();
|
|
521
580
|
if (!targetSvg) return;
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
targetSvg.setAttribute("width", String(this.canvasWrap.clientWidth));
|
|
525
|
-
targetSvg.setAttribute("height", String(this.canvasWrap.clientHeight));
|
|
526
|
-
this.pz?.resize();
|
|
527
|
-
};
|
|
528
|
-
resize();
|
|
529
|
-
this.onResize = () => {
|
|
530
|
-
resize();
|
|
531
|
-
this.pz?.fit();
|
|
532
|
-
this.pz?.center();
|
|
533
|
-
};
|
|
581
|
+
this.applyCanvasSize(targetSvg);
|
|
582
|
+
this.onResize = () => this.queueViewportSync();
|
|
534
583
|
window.addEventListener("resize", this.onResize);
|
|
584
|
+
const { onUpdatedCTM: userOnUpdatedCTM, ...panZoomOptions } = this.panZoomOptions;
|
|
535
585
|
this.pz = this.svgPanZoomImpl(targetSvg, {
|
|
536
586
|
zoomEnabled: true,
|
|
537
587
|
controlIconsEnabled: false,
|
|
@@ -540,9 +590,20 @@ var DiaScopeViewer = class {
|
|
|
540
590
|
minZoom: this.panZoomMin,
|
|
541
591
|
maxZoom: this.panZoomMax,
|
|
542
592
|
zoomScaleSensitivity: 0.15,
|
|
543
|
-
...
|
|
593
|
+
...panZoomOptions,
|
|
594
|
+
onUpdatedCTM: (ctm) => {
|
|
595
|
+
if (Number.isFinite(ctm.a) && ctm.a > 0 && Number.isFinite(ctm.e) && Number.isFinite(ctm.f)) {
|
|
596
|
+
this.lastKnownViewport = { zoom: ctm.a, pan: { x: ctm.e, y: ctm.f } };
|
|
597
|
+
}
|
|
598
|
+
userOnUpdatedCTM?.(ctm);
|
|
599
|
+
}
|
|
544
600
|
});
|
|
545
601
|
this.applyMinInitialZoom();
|
|
602
|
+
this.lastKnownViewport = this.captureViewportState();
|
|
603
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
604
|
+
this.canvasObserver = new ResizeObserver(() => this.onResize?.());
|
|
605
|
+
this.canvasObserver.observe(this.canvasWrap);
|
|
606
|
+
}
|
|
546
607
|
tagNodes(this);
|
|
547
608
|
tagEdges(this);
|
|
548
609
|
setupEdgeTooltips(this);
|
|
@@ -575,7 +636,7 @@ var DiaScopeViewer = class {
|
|
|
575
636
|
shell.classList.toggle("narrow", e.contentRect.width < this.narrowBreakpoint);
|
|
576
637
|
const isNarrow = shell.classList.contains("narrow");
|
|
577
638
|
this.syncPanelToggleButton();
|
|
578
|
-
if (wasNarrow !== isNarrow) this.onResize?.();
|
|
639
|
+
if (wasNarrow !== isNarrow && !this.canvasObserver) this.onResize?.();
|
|
579
640
|
});
|
|
580
641
|
this.narrowObserver.observe(shell);
|
|
581
642
|
}
|
|
@@ -590,6 +651,7 @@ var DiaScopeViewer = class {
|
|
|
590
651
|
}
|
|
591
652
|
const expandIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="9,1 13,1 13,5"/><polyline points="5,13 1,13 1,9"/><line x1="13" y1="1" x2="8" y2="6"/><line x1="1" y1="13" x2="6" y2="8"/></svg>`;
|
|
592
653
|
const collapseIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="1,5 1,1 5,1"/><polyline points="9,13 13,13 13,9"/><line x1="1" y1="1" x2="6" y2="6"/><line x1="13" y1="13" x2="8" y2="8"/></svg>`;
|
|
654
|
+
const fullscreenTarget = this.getStoryShell() ?? this.canvasWrap ?? this.doc.documentElement;
|
|
593
655
|
const syncIcon = () => {
|
|
594
656
|
const isFs = !!this.doc.fullscreenElement;
|
|
595
657
|
btn.innerHTML = isFs ? collapseIcon : expandIcon;
|
|
@@ -600,14 +662,29 @@ var DiaScopeViewer = class {
|
|
|
600
662
|
btn.style.display = "flex";
|
|
601
663
|
btn.style.alignItems = "center";
|
|
602
664
|
btn.style.justifyContent = "center";
|
|
603
|
-
btn.addEventListener("click", () => {
|
|
665
|
+
btn.addEventListener("click", async () => {
|
|
604
666
|
if (this.doc.fullscreenElement) {
|
|
605
|
-
this.doc.exitFullscreen();
|
|
606
|
-
|
|
607
|
-
this.doc.documentElement.requestFullscreen();
|
|
667
|
+
void this.doc.exitFullscreen();
|
|
668
|
+
return;
|
|
608
669
|
}
|
|
670
|
+
try {
|
|
671
|
+
if (fullscreenTarget.requestFullscreen) {
|
|
672
|
+
await fullscreenTarget.requestFullscreen();
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
675
|
+
} catch {
|
|
676
|
+
}
|
|
677
|
+
const win = this.doc.defaultView;
|
|
678
|
+
if (win?.open) {
|
|
679
|
+
const url = new URL(win.location.href);
|
|
680
|
+
url.searchParams.delete("expandable");
|
|
681
|
+
win.open(url.toString(), "_blank", "noopener,noreferrer");
|
|
682
|
+
}
|
|
683
|
+
});
|
|
684
|
+
this.doc.addEventListener("fullscreenchange", () => {
|
|
685
|
+
syncIcon();
|
|
686
|
+
this.onResize?.();
|
|
609
687
|
});
|
|
610
|
-
this.doc.addEventListener("fullscreenchange", syncIcon);
|
|
611
688
|
}
|
|
612
689
|
destroy() {
|
|
613
690
|
if (this.onResize) window.removeEventListener("resize", this.onResize);
|
|
@@ -615,7 +692,9 @@ var DiaScopeViewer = class {
|
|
|
615
692
|
if (this.onCanvasClick && this.canvasWrap) this.canvasWrap.removeEventListener("click", this.onCanvasClick);
|
|
616
693
|
if (this.onKeyDown) this.doc.removeEventListener("keydown", this.onKeyDown);
|
|
617
694
|
if (this.zoomRaf) cancelAnimationFrame(this.zoomRaf);
|
|
695
|
+
if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") cancelAnimationFrame(this.viewportSyncRaf);
|
|
618
696
|
this.narrowObserver?.disconnect();
|
|
697
|
+
this.canvasObserver?.disconnect();
|
|
619
698
|
this.pz?.destroy?.();
|
|
620
699
|
}
|
|
621
700
|
};
|
|
@@ -368,6 +368,9 @@ var DiaScopeBundle = (() => {
|
|
|
368
368
|
this.onCanvasClick = null;
|
|
369
369
|
this.onKeyDown = null;
|
|
370
370
|
this.narrowObserver = null;
|
|
371
|
+
this.canvasObserver = null;
|
|
372
|
+
this.viewportSyncRaf = null;
|
|
373
|
+
this.lastKnownViewport = null;
|
|
371
374
|
this.doc = options.document ?? document;
|
|
372
375
|
this.steps = options.steps ?? [];
|
|
373
376
|
this.nodeIds = options.nodeIds ?? [];
|
|
@@ -461,6 +464,64 @@ var DiaScopeBundle = (() => {
|
|
|
461
464
|
getStoryShell() {
|
|
462
465
|
return this.doc.querySelector("#story-shell");
|
|
463
466
|
}
|
|
467
|
+
captureViewportState() {
|
|
468
|
+
if (!this.pz) return null;
|
|
469
|
+
const zoom = this.pz.getZoom();
|
|
470
|
+
const pan = this.pz.getPan();
|
|
471
|
+
if (!Number.isFinite(zoom) || zoom <= 0) return null;
|
|
472
|
+
if (!Number.isFinite(pan.x) || !Number.isFinite(pan.y)) return null;
|
|
473
|
+
return { zoom, pan: { x: pan.x, y: pan.y } };
|
|
474
|
+
}
|
|
475
|
+
applyCanvasSize(targetSvg) {
|
|
476
|
+
if (!this.canvasWrap) return false;
|
|
477
|
+
const width = this.canvasWrap.clientWidth;
|
|
478
|
+
const height = this.canvasWrap.clientHeight;
|
|
479
|
+
if (!Number.isFinite(width) || !Number.isFinite(height) || width < 1 || height < 1) return false;
|
|
480
|
+
targetSvg.setAttribute("width", String(width));
|
|
481
|
+
targetSvg.setAttribute("height", String(height));
|
|
482
|
+
return true;
|
|
483
|
+
}
|
|
484
|
+
restoreViewport(state) {
|
|
485
|
+
if (!this.pz || !state) return false;
|
|
486
|
+
this.pz.zoom(state.zoom);
|
|
487
|
+
this.pz.pan(state.pan);
|
|
488
|
+
const restored = this.captureViewportState();
|
|
489
|
+
if (!restored) return false;
|
|
490
|
+
this.lastKnownViewport = restored;
|
|
491
|
+
return true;
|
|
492
|
+
}
|
|
493
|
+
recoverViewport() {
|
|
494
|
+
if (this.restoreViewport(this.lastKnownViewport)) return;
|
|
495
|
+
if (!this.pz) return;
|
|
496
|
+
this.pz.fit();
|
|
497
|
+
this.pz.center();
|
|
498
|
+
this.applyMinInitialZoom();
|
|
499
|
+
const recovered = this.captureViewportState();
|
|
500
|
+
if (recovered) {
|
|
501
|
+
this.lastKnownViewport = recovered;
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
const nodes = this.curStep >= 0 ? this.steps[this.curStep]?.nodes ?? [] : [];
|
|
505
|
+
if (nodes.length) autoZoom(this, nodes);
|
|
506
|
+
}
|
|
507
|
+
queueViewportSync() {
|
|
508
|
+
const targetSvg = this.getDiagramSvg();
|
|
509
|
+
if (!targetSvg) return;
|
|
510
|
+
if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") {
|
|
511
|
+
cancelAnimationFrame(this.viewportSyncRaf);
|
|
512
|
+
}
|
|
513
|
+
const schedule = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (cb) => {
|
|
514
|
+
cb(0);
|
|
515
|
+
return 0;
|
|
516
|
+
};
|
|
517
|
+
this.viewportSyncRaf = schedule(() => {
|
|
518
|
+
this.viewportSyncRaf = null;
|
|
519
|
+
const desiredState = this.captureViewportState() ?? this.lastKnownViewport;
|
|
520
|
+
if (!this.applyCanvasSize(targetSvg)) return;
|
|
521
|
+
this.pz?.resize();
|
|
522
|
+
if (!this.restoreViewport(desiredState)) this.recoverViewport();
|
|
523
|
+
});
|
|
524
|
+
}
|
|
464
525
|
syncPanelToggleButton() {
|
|
465
526
|
if (!this.panelToggleBtn) return;
|
|
466
527
|
const shell = this.getStoryShell();
|
|
@@ -476,9 +537,7 @@ var DiaScopeBundle = (() => {
|
|
|
476
537
|
if (!storyShell) return;
|
|
477
538
|
storyShell.classList.toggle("panel-collapsed");
|
|
478
539
|
this.syncPanelToggleButton();
|
|
479
|
-
this.
|
|
480
|
-
this.pz?.fit();
|
|
481
|
-
this.pz?.center();
|
|
540
|
+
this.onResize?.();
|
|
482
541
|
}
|
|
483
542
|
bindControls() {
|
|
484
543
|
this.doc.querySelectorAll(this.selectors.stepButtons).forEach((btn) => {
|
|
@@ -545,19 +604,10 @@ var DiaScopeBundle = (() => {
|
|
|
545
604
|
if (!this.canvasWrap || !this.svgHost || !this.svgPanZoomImpl) return;
|
|
546
605
|
const targetSvg = this.getDiagramSvg();
|
|
547
606
|
if (!targetSvg) return;
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
targetSvg.setAttribute("width", String(this.canvasWrap.clientWidth));
|
|
551
|
-
targetSvg.setAttribute("height", String(this.canvasWrap.clientHeight));
|
|
552
|
-
this.pz?.resize();
|
|
553
|
-
};
|
|
554
|
-
resize();
|
|
555
|
-
this.onResize = () => {
|
|
556
|
-
resize();
|
|
557
|
-
this.pz?.fit();
|
|
558
|
-
this.pz?.center();
|
|
559
|
-
};
|
|
607
|
+
this.applyCanvasSize(targetSvg);
|
|
608
|
+
this.onResize = () => this.queueViewportSync();
|
|
560
609
|
window.addEventListener("resize", this.onResize);
|
|
610
|
+
const { onUpdatedCTM: userOnUpdatedCTM, ...panZoomOptions } = this.panZoomOptions;
|
|
561
611
|
this.pz = this.svgPanZoomImpl(targetSvg, {
|
|
562
612
|
zoomEnabled: true,
|
|
563
613
|
controlIconsEnabled: false,
|
|
@@ -566,9 +616,20 @@ var DiaScopeBundle = (() => {
|
|
|
566
616
|
minZoom: this.panZoomMin,
|
|
567
617
|
maxZoom: this.panZoomMax,
|
|
568
618
|
zoomScaleSensitivity: 0.15,
|
|
569
|
-
...
|
|
619
|
+
...panZoomOptions,
|
|
620
|
+
onUpdatedCTM: (ctm) => {
|
|
621
|
+
if (Number.isFinite(ctm.a) && ctm.a > 0 && Number.isFinite(ctm.e) && Number.isFinite(ctm.f)) {
|
|
622
|
+
this.lastKnownViewport = { zoom: ctm.a, pan: { x: ctm.e, y: ctm.f } };
|
|
623
|
+
}
|
|
624
|
+
userOnUpdatedCTM?.(ctm);
|
|
625
|
+
}
|
|
570
626
|
});
|
|
571
627
|
this.applyMinInitialZoom();
|
|
628
|
+
this.lastKnownViewport = this.captureViewportState();
|
|
629
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
630
|
+
this.canvasObserver = new ResizeObserver(() => this.onResize?.());
|
|
631
|
+
this.canvasObserver.observe(this.canvasWrap);
|
|
632
|
+
}
|
|
572
633
|
tagNodes(this);
|
|
573
634
|
tagEdges(this);
|
|
574
635
|
setupEdgeTooltips(this);
|
|
@@ -601,7 +662,7 @@ var DiaScopeBundle = (() => {
|
|
|
601
662
|
shell.classList.toggle("narrow", e.contentRect.width < this.narrowBreakpoint);
|
|
602
663
|
const isNarrow = shell.classList.contains("narrow");
|
|
603
664
|
this.syncPanelToggleButton();
|
|
604
|
-
if (wasNarrow !== isNarrow) this.onResize?.();
|
|
665
|
+
if (wasNarrow !== isNarrow && !this.canvasObserver) this.onResize?.();
|
|
605
666
|
});
|
|
606
667
|
this.narrowObserver.observe(shell);
|
|
607
668
|
}
|
|
@@ -616,6 +677,7 @@ var DiaScopeBundle = (() => {
|
|
|
616
677
|
}
|
|
617
678
|
const expandIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="9,1 13,1 13,5"/><polyline points="5,13 1,13 1,9"/><line x1="13" y1="1" x2="8" y2="6"/><line x1="1" y1="13" x2="6" y2="8"/></svg>`;
|
|
618
679
|
const collapseIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="1,5 1,1 5,1"/><polyline points="9,13 13,13 13,9"/><line x1="1" y1="1" x2="6" y2="6"/><line x1="13" y1="13" x2="8" y2="8"/></svg>`;
|
|
680
|
+
const fullscreenTarget = this.getStoryShell() ?? this.canvasWrap ?? this.doc.documentElement;
|
|
619
681
|
const syncIcon = () => {
|
|
620
682
|
const isFs = !!this.doc.fullscreenElement;
|
|
621
683
|
btn.innerHTML = isFs ? collapseIcon : expandIcon;
|
|
@@ -626,14 +688,29 @@ var DiaScopeBundle = (() => {
|
|
|
626
688
|
btn.style.display = "flex";
|
|
627
689
|
btn.style.alignItems = "center";
|
|
628
690
|
btn.style.justifyContent = "center";
|
|
629
|
-
btn.addEventListener("click", () => {
|
|
691
|
+
btn.addEventListener("click", async () => {
|
|
630
692
|
if (this.doc.fullscreenElement) {
|
|
631
|
-
this.doc.exitFullscreen();
|
|
632
|
-
|
|
633
|
-
|
|
693
|
+
void this.doc.exitFullscreen();
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
try {
|
|
697
|
+
if (fullscreenTarget.requestFullscreen) {
|
|
698
|
+
await fullscreenTarget.requestFullscreen();
|
|
699
|
+
return;
|
|
700
|
+
}
|
|
701
|
+
} catch {
|
|
634
702
|
}
|
|
703
|
+
const win = this.doc.defaultView;
|
|
704
|
+
if (win?.open) {
|
|
705
|
+
const url = new URL(win.location.href);
|
|
706
|
+
url.searchParams.delete("expandable");
|
|
707
|
+
win.open(url.toString(), "_blank", "noopener,noreferrer");
|
|
708
|
+
}
|
|
709
|
+
});
|
|
710
|
+
this.doc.addEventListener("fullscreenchange", () => {
|
|
711
|
+
syncIcon();
|
|
712
|
+
this.onResize?.();
|
|
635
713
|
});
|
|
636
|
-
this.doc.addEventListener("fullscreenchange", syncIcon);
|
|
637
714
|
}
|
|
638
715
|
destroy() {
|
|
639
716
|
if (this.onResize) window.removeEventListener("resize", this.onResize);
|
|
@@ -641,7 +718,9 @@ var DiaScopeBundle = (() => {
|
|
|
641
718
|
if (this.onCanvasClick && this.canvasWrap) this.canvasWrap.removeEventListener("click", this.onCanvasClick);
|
|
642
719
|
if (this.onKeyDown) this.doc.removeEventListener("keydown", this.onKeyDown);
|
|
643
720
|
if (this.zoomRaf) cancelAnimationFrame(this.zoomRaf);
|
|
721
|
+
if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") cancelAnimationFrame(this.viewportSyncRaf);
|
|
644
722
|
this.narrowObserver?.disconnect();
|
|
723
|
+
this.canvasObserver?.disconnect();
|
|
645
724
|
this.pz?.destroy?.();
|
|
646
725
|
}
|
|
647
726
|
};
|
package/dist/viewer/viewer.d.ts
CHANGED
|
@@ -48,6 +48,9 @@ export declare class DiaScopeViewer {
|
|
|
48
48
|
readonly narrowBreakpoint: number;
|
|
49
49
|
readonly overview: ViewerOptions['overview'];
|
|
50
50
|
private narrowObserver;
|
|
51
|
+
private canvasObserver;
|
|
52
|
+
private viewportSyncRaf;
|
|
53
|
+
private lastKnownViewport;
|
|
51
54
|
private readonly svgPanZoomImpl;
|
|
52
55
|
constructor(options: ViewerOptions);
|
|
53
56
|
getDiagramSvg(): SVGElement | null;
|
|
@@ -69,6 +72,11 @@ export declare class DiaScopeViewer {
|
|
|
69
72
|
zoomIn(): void;
|
|
70
73
|
zoomOut(): void;
|
|
71
74
|
getStoryShell(): HTMLElement | null;
|
|
75
|
+
private captureViewportState;
|
|
76
|
+
private applyCanvasSize;
|
|
77
|
+
private restoreViewport;
|
|
78
|
+
private recoverViewport;
|
|
79
|
+
private queueViewportSync;
|
|
72
80
|
syncPanelToggleButton(): void;
|
|
73
81
|
togglePanel(): void;
|
|
74
82
|
bindControls(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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"}
|
package/dist/viewer/viewer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { applyHighlight } from "./highlight.js";
|
|
1
|
+
import { applyHighlight, autoZoom } from "./highlight.js";
|
|
2
2
|
import { goStep, toggleFocus, resetOverview, bindKeyboard, renderBody } from "./navigation.js";
|
|
3
3
|
import { tagNodes, tagEdges, setupEdgeTooltips } from "./tagging.js";
|
|
4
4
|
const DEFAULT_SELECTORS = {
|
|
@@ -48,6 +48,9 @@ export class DiaScopeViewer {
|
|
|
48
48
|
this.onCanvasClick = null;
|
|
49
49
|
this.onKeyDown = null;
|
|
50
50
|
this.narrowObserver = null;
|
|
51
|
+
this.canvasObserver = null;
|
|
52
|
+
this.viewportSyncRaf = null;
|
|
53
|
+
this.lastKnownViewport = null;
|
|
51
54
|
this.doc = options.document ?? document;
|
|
52
55
|
this.steps = options.steps ?? [];
|
|
53
56
|
this.nodeIds = options.nodeIds ?? [];
|
|
@@ -155,6 +158,79 @@ export class DiaScopeViewer {
|
|
|
155
158
|
getStoryShell() {
|
|
156
159
|
return this.doc.querySelector("#story-shell");
|
|
157
160
|
}
|
|
161
|
+
captureViewportState() {
|
|
162
|
+
if (!this.pz)
|
|
163
|
+
return null;
|
|
164
|
+
const zoom = this.pz.getZoom();
|
|
165
|
+
const pan = this.pz.getPan();
|
|
166
|
+
if (!Number.isFinite(zoom) || zoom <= 0)
|
|
167
|
+
return null;
|
|
168
|
+
if (!Number.isFinite(pan.x) || !Number.isFinite(pan.y))
|
|
169
|
+
return null;
|
|
170
|
+
return { zoom, pan: { x: pan.x, y: pan.y } };
|
|
171
|
+
}
|
|
172
|
+
applyCanvasSize(targetSvg) {
|
|
173
|
+
if (!this.canvasWrap)
|
|
174
|
+
return false;
|
|
175
|
+
const width = this.canvasWrap.clientWidth;
|
|
176
|
+
const height = this.canvasWrap.clientHeight;
|
|
177
|
+
if (!Number.isFinite(width) || !Number.isFinite(height) || width < 1 || height < 1)
|
|
178
|
+
return false;
|
|
179
|
+
targetSvg.setAttribute("width", String(width));
|
|
180
|
+
targetSvg.setAttribute("height", String(height));
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
restoreViewport(state) {
|
|
184
|
+
if (!this.pz || !state)
|
|
185
|
+
return false;
|
|
186
|
+
this.pz.zoom(state.zoom);
|
|
187
|
+
this.pz.pan(state.pan);
|
|
188
|
+
const restored = this.captureViewportState();
|
|
189
|
+
if (!restored)
|
|
190
|
+
return false;
|
|
191
|
+
this.lastKnownViewport = restored;
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
recoverViewport() {
|
|
195
|
+
if (this.restoreViewport(this.lastKnownViewport))
|
|
196
|
+
return;
|
|
197
|
+
if (!this.pz)
|
|
198
|
+
return;
|
|
199
|
+
this.pz.fit();
|
|
200
|
+
this.pz.center();
|
|
201
|
+
this.applyMinInitialZoom();
|
|
202
|
+
const recovered = this.captureViewportState();
|
|
203
|
+
if (recovered) {
|
|
204
|
+
this.lastKnownViewport = recovered;
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const nodes = this.curStep >= 0 ? this.steps[this.curStep]?.nodes ?? [] : [];
|
|
208
|
+
if (nodes.length)
|
|
209
|
+
autoZoom(this, nodes);
|
|
210
|
+
}
|
|
211
|
+
queueViewportSync() {
|
|
212
|
+
const targetSvg = this.getDiagramSvg();
|
|
213
|
+
if (!targetSvg)
|
|
214
|
+
return;
|
|
215
|
+
if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") {
|
|
216
|
+
cancelAnimationFrame(this.viewportSyncRaf);
|
|
217
|
+
}
|
|
218
|
+
const schedule = typeof requestAnimationFrame === "function"
|
|
219
|
+
? requestAnimationFrame
|
|
220
|
+
: ((cb) => {
|
|
221
|
+
cb(0);
|
|
222
|
+
return 0;
|
|
223
|
+
});
|
|
224
|
+
this.viewportSyncRaf = schedule(() => {
|
|
225
|
+
this.viewportSyncRaf = null;
|
|
226
|
+
const desiredState = this.captureViewportState() ?? this.lastKnownViewport;
|
|
227
|
+
if (!this.applyCanvasSize(targetSvg))
|
|
228
|
+
return;
|
|
229
|
+
this.pz?.resize();
|
|
230
|
+
if (!this.restoreViewport(desiredState))
|
|
231
|
+
this.recoverViewport();
|
|
232
|
+
});
|
|
233
|
+
}
|
|
158
234
|
syncPanelToggleButton() {
|
|
159
235
|
if (!this.panelToggleBtn)
|
|
160
236
|
return;
|
|
@@ -174,9 +250,7 @@ export class DiaScopeViewer {
|
|
|
174
250
|
return;
|
|
175
251
|
storyShell.classList.toggle("panel-collapsed");
|
|
176
252
|
this.syncPanelToggleButton();
|
|
177
|
-
this.
|
|
178
|
-
this.pz?.fit();
|
|
179
|
-
this.pz?.center();
|
|
253
|
+
this.onResize?.();
|
|
180
254
|
}
|
|
181
255
|
bindControls() {
|
|
182
256
|
this.doc.querySelectorAll(this.selectors.stepButtons).forEach((btn) => {
|
|
@@ -249,16 +323,10 @@ export class DiaScopeViewer {
|
|
|
249
323
|
const targetSvg = this.getDiagramSvg();
|
|
250
324
|
if (!targetSvg)
|
|
251
325
|
return;
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
return;
|
|
255
|
-
targetSvg.setAttribute("width", String(this.canvasWrap.clientWidth));
|
|
256
|
-
targetSvg.setAttribute("height", String(this.canvasWrap.clientHeight));
|
|
257
|
-
this.pz?.resize();
|
|
258
|
-
};
|
|
259
|
-
resize();
|
|
260
|
-
this.onResize = () => { resize(); this.pz?.fit(); this.pz?.center(); };
|
|
326
|
+
this.applyCanvasSize(targetSvg);
|
|
327
|
+
this.onResize = () => this.queueViewportSync();
|
|
261
328
|
window.addEventListener("resize", this.onResize);
|
|
329
|
+
const { onUpdatedCTM: userOnUpdatedCTM, ...panZoomOptions } = this.panZoomOptions;
|
|
262
330
|
this.pz = this.svgPanZoomImpl(targetSvg, {
|
|
263
331
|
zoomEnabled: true,
|
|
264
332
|
controlIconsEnabled: false,
|
|
@@ -267,9 +335,20 @@ export class DiaScopeViewer {
|
|
|
267
335
|
minZoom: this.panZoomMin,
|
|
268
336
|
maxZoom: this.panZoomMax,
|
|
269
337
|
zoomScaleSensitivity: 0.15,
|
|
270
|
-
...
|
|
338
|
+
...panZoomOptions,
|
|
339
|
+
onUpdatedCTM: (ctm) => {
|
|
340
|
+
if (Number.isFinite(ctm.a) && ctm.a > 0 && Number.isFinite(ctm.e) && Number.isFinite(ctm.f)) {
|
|
341
|
+
this.lastKnownViewport = { zoom: ctm.a, pan: { x: ctm.e, y: ctm.f } };
|
|
342
|
+
}
|
|
343
|
+
userOnUpdatedCTM?.(ctm);
|
|
344
|
+
},
|
|
271
345
|
});
|
|
272
346
|
this.applyMinInitialZoom();
|
|
347
|
+
this.lastKnownViewport = this.captureViewportState();
|
|
348
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
349
|
+
this.canvasObserver = new ResizeObserver(() => this.onResize?.());
|
|
350
|
+
this.canvasObserver.observe(this.canvasWrap);
|
|
351
|
+
}
|
|
273
352
|
tagNodes(this);
|
|
274
353
|
tagEdges(this);
|
|
275
354
|
setupEdgeTooltips(this);
|
|
@@ -309,8 +388,8 @@ export class DiaScopeViewer {
|
|
|
309
388
|
shell.classList.toggle("narrow", (e.contentRect.width) < this.narrowBreakpoint);
|
|
310
389
|
const isNarrow = shell.classList.contains("narrow");
|
|
311
390
|
this.syncPanelToggleButton();
|
|
312
|
-
//
|
|
313
|
-
if (wasNarrow !== isNarrow)
|
|
391
|
+
// Layout mode changes alter the real canvas size; queue a re-sync if there is no canvas observer.
|
|
392
|
+
if (wasNarrow !== isNarrow && !this.canvasObserver)
|
|
314
393
|
this.onResize?.();
|
|
315
394
|
});
|
|
316
395
|
this.narrowObserver.observe(shell);
|
|
@@ -327,6 +406,7 @@ export class DiaScopeViewer {
|
|
|
327
406
|
}
|
|
328
407
|
const expandIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="9,1 13,1 13,5"/><polyline points="5,13 1,13 1,9"/><line x1="13" y1="1" x2="8" y2="6"/><line x1="1" y1="13" x2="6" y2="8"/></svg>`;
|
|
329
408
|
const collapseIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="1,5 1,1 5,1"/><polyline points="9,13 13,13 13,9"/><line x1="1" y1="1" x2="6" y2="6"/><line x1="13" y1="13" x2="8" y2="8"/></svg>`;
|
|
409
|
+
const fullscreenTarget = (this.getStoryShell() ?? this.canvasWrap ?? this.doc.documentElement);
|
|
330
410
|
const syncIcon = () => {
|
|
331
411
|
const isFs = !!this.doc.fullscreenElement;
|
|
332
412
|
btn.innerHTML = isFs ? collapseIcon : expandIcon;
|
|
@@ -337,15 +417,31 @@ export class DiaScopeViewer {
|
|
|
337
417
|
btn.style.display = "flex";
|
|
338
418
|
btn.style.alignItems = "center";
|
|
339
419
|
btn.style.justifyContent = "center";
|
|
340
|
-
btn.addEventListener("click", () => {
|
|
420
|
+
btn.addEventListener("click", async () => {
|
|
341
421
|
if (this.doc.fullscreenElement) {
|
|
342
|
-
this.doc.exitFullscreen();
|
|
422
|
+
void this.doc.exitFullscreen();
|
|
423
|
+
return;
|
|
343
424
|
}
|
|
344
|
-
|
|
345
|
-
|
|
425
|
+
try {
|
|
426
|
+
if (fullscreenTarget.requestFullscreen) {
|
|
427
|
+
await fullscreenTarget.requestFullscreen();
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
346
430
|
}
|
|
431
|
+
catch {
|
|
432
|
+
// Fallback handled below for embeds that block fullscreen.
|
|
433
|
+
}
|
|
434
|
+
const win = this.doc.defaultView;
|
|
435
|
+
if (win?.open) {
|
|
436
|
+
const url = new URL(win.location.href);
|
|
437
|
+
url.searchParams.delete("expandable");
|
|
438
|
+
win.open(url.toString(), "_blank", "noopener,noreferrer");
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
this.doc.addEventListener("fullscreenchange", () => {
|
|
442
|
+
syncIcon();
|
|
443
|
+
this.onResize?.();
|
|
347
444
|
});
|
|
348
|
-
this.doc.addEventListener("fullscreenchange", syncIcon);
|
|
349
445
|
}
|
|
350
446
|
destroy() {
|
|
351
447
|
if (this.onResize)
|
|
@@ -358,7 +454,10 @@ export class DiaScopeViewer {
|
|
|
358
454
|
this.doc.removeEventListener("keydown", this.onKeyDown);
|
|
359
455
|
if (this.zoomRaf)
|
|
360
456
|
cancelAnimationFrame(this.zoomRaf);
|
|
457
|
+
if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function")
|
|
458
|
+
cancelAnimationFrame(this.viewportSyncRaf);
|
|
361
459
|
this.narrowObserver?.disconnect();
|
|
460
|
+
this.canvasObserver?.disconnect();
|
|
362
461
|
this.pz?.destroy?.();
|
|
363
462
|
}
|
|
364
463
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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"}
|