modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
64 lines (63 loc) • 3.14 kB
TypeScript
import type { ObservableEvents } from 'modern-idoc';
import type { Cursor } from './Cursor';
import type { InputEvent } from './InputEvent';
import type { MouseInputEvent } from './MouseInputEvent';
import { Observable } from 'modern-idoc';
import { KeyboardInputEvent } from './KeyboardInputEvent';
import { PointerInputEvent } from './PointerInputEvent';
import { WheelInputEvent } from './WheelInputEvent';
export interface InputEvents extends ObservableEvents {
pointerdown: [ev: PointerInputEvent];
pointerover: [ev: PointerInputEvent];
pointermove: [ev: PointerInputEvent];
pointerup: [ev: PointerInputEvent];
wheel: [ev: WheelInputEvent];
keydown: [ev: KeyboardInputEvent];
keypress: [ev: KeyboardInputEvent];
keyup: [ev: KeyboardInputEvent];
}
export type InputEventKey = keyof InputEvents;
export interface Input {
on: <K extends keyof InputEvents & string>(event: K, listener: (...args: InputEvents[K]) => void) => this;
once: <K extends keyof InputEvents & string>(event: K, listener: (...args: InputEvents[K]) => void) => this;
off: <K extends keyof InputEvents & string>(event: K, listener: (...args: InputEvents[K]) => void) => this;
emit: <K extends keyof InputEvents & string>(event: K, ...args: InputEvents[K]) => this;
}
export declare class Input extends Observable {
/**
* Current event
*/
event?: PointerInputEvent | WheelInputEvent | KeyboardInputEvent;
target?: HTMLElement;
cursor: Cursor;
cursorStyles: Record<string, any>;
setuped: boolean;
enableMoveEvent: boolean;
enableWheelEvent: boolean;
enableClickEvent: boolean;
setTarget(target: HTMLElement): void;
removeEventListeners(): void;
addEventListeners(): void;
protected normalize(event: KeyboardEvent): KeyboardEvent[];
protected normalize(event: WheelEvent): WheelEvent[];
protected normalize(event: TouchEvent | PointerEvent | MouseEvent): PointerEvent[];
protected _clonePointerEvent(nativeEvent: PointerEvent): PointerInputEvent;
protected _copyInputEvent(event: InputEvent, nativeEvent: UIEvent): void;
protected _copyMouseEvent(event: MouseInputEvent, nativeEvent: MouseEvent): void;
protected _cloneWheelEvent(nativeEvent: WheelEvent): WheelInputEvent;
protected _cloneKeyboardEvent(nativeEvent: KeyboardEvent): KeyboardInputEvent;
setCursor(mode?: Cursor): void;
mapPositionToPoint(point: {
x: number;
y: number;
}, x: number, y: number): void;
protected _onKeyDown: (nativeEvent: KeyboardEvent) => void;
protected _onKeyPress: (nativeEvent: KeyboardEvent) => void;
protected _onKeyUp: (nativeEvent: KeyboardEvent) => void;
protected _onPointerDown: (nativeEvent: PointerEvent | TouchEvent | MouseEvent) => void;
protected _onPointerOver: (nativeEvent: PointerEvent | TouchEvent | MouseEvent) => void;
protected _onPointerMove: (nativeEvent: PointerEvent | TouchEvent | MouseEvent) => void;
protected _onPointerUp: (nativeEvent: PointerEvent | TouchEvent | MouseEvent) => void;
protected _onWheel: (nativeEvent: WheelEvent) => void;
destroy(): void;
}