import type { KeybindEvent } from "./keyboard"; import type { PointerInputEvent, WheelInputEvent } from "./pointer"; export function keybindEventFromKeyboardEvent(event: KeyboardEvent): KeybindEvent { return { key: event.key, code: event.code, altKey: event.altKey, ctrlKey: event.ctrlKey, metaKey: event.metaKey, shiftKey: event.shiftKey, }; } function normalizePointerType(pointerType: string): PointerInputEvent["pointerType"] { if (pointerType === "pen" || pointerType === "touch") return pointerType; return "mouse"; } export function pointerInputEventFromPointerEvent(event: PointerEvent): PointerInputEvent { return { pointerId: event.pointerId, pointerType: normalizePointerType(event.pointerType), position: { x: event.offsetX, y: event.offsetY }, buttons: event.buttons, pressure: event.pointerType === "pen" ? event.pressure : 1, altKey: event.altKey, ctrlKey: event.ctrlKey, metaKey: event.metaKey, shiftKey: event.shiftKey, }; } export function wheelInputEventFromWheelEvent(event: WheelEvent): WheelInputEvent { return { position: { x: event.offsetX, y: event.offsetY }, delta: { x: event.deltaX, y: event.deltaY }, altKey: event.altKey, ctrlKey: event.ctrlKey, metaKey: event.metaKey, shiftKey: event.shiftKey, }; }