3835d9f9c4
Switch initiator to @onpointerdown; capture the pointer on the knob element through a new knob.ts helper so pointermove/up/cancel reach the knob even when the cursor leaves the window. Accurate comment; IAsyncDisposable cleanup.
21 lines
891 B
TypeScript
21 lines
891 B
TypeScript
/**
|
|
* knob - pointer capture helpers for RadialKnob.
|
|
*
|
|
* setPointerCapture / releasePointerCapture are not exposed via Blazor's
|
|
* ElementReference, so the component delegates here via JS interop.
|
|
* Both functions are no-ops when the element reference is stale (e.g. the
|
|
* component was disposed between the JS call and the microtask).
|
|
*/
|
|
|
|
/** Capture the pointer on the given element so pointermove/pointerup are
|
|
* delivered even when the cursor leaves the browser window. */
|
|
export function capturePointer(el: Element, pointerId: number): void {
|
|
(el as HTMLElement).setPointerCapture(pointerId);
|
|
}
|
|
|
|
/** Release a previously captured pointer. Called on pointercancel.
|
|
* pointerup releases capture implicitly, but we call this on cancel too. */
|
|
export function releasePointer(el: Element, pointerId: number): void {
|
|
(el as HTMLElement).releasePointerCapture(pointerId);
|
|
}
|