Replace MudSlider seekbar with WaveformSeeker loudness-waveform control
DOM bar chart with clip-overlay progress split; pointer-capture drag; WaveformProfile fetched on load (fire-and-forget, cancellable); flat fallback when no profile; small lazily-loaded waveformSeeker.js for getBoundingClientRect and setPointerCapture.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
// Geometry helpers for WaveformSeeker. Deliberately tiny and standalone — this is NOT part of
|
||||
// the TypeScript audio bundle (DeepDrftPublic/Interop/audio → wwwroot/js/audio). Loaded lazily as
|
||||
// an ES module by the component via IJSObjectReference, so it adds no global script tag.
|
||||
|
||||
export function getWidth(element) {
|
||||
return element ? element.getBoundingClientRect().width : 0;
|
||||
}
|
||||
|
||||
export function capturePointer(element, pointerId) {
|
||||
// setPointerCapture keeps a drag tracking even when the pointer leaves the element bounds.
|
||||
element?.setPointerCapture?.(pointerId);
|
||||
}
|
||||
Reference in New Issue
Block a user