@orca-fe/x-map
Version:
68 lines (67 loc) • 3.31 kB
TypeScript
declare module 'mjolnir.js' {
type BaseEvent = {
key: number;
leftButton: boolean;
middleButton: boolean;
rightButton: boolean;
pointerType: 'mouse' | 'touch' | 'pointer';
pointers: unknown[];
deltaX: number;
deltaY: number;
delta: number;
rotation: number;
scale: number;
};
type BasicInputEvents = 'keydown' | 'keyup';
type BasicPointerEvents = 'mousedown' | 'pointerdown' | 'mousemove' | 'pointermove' | 'mouseup' | 'pointerup' | 'mouseover' | 'pointerover' | 'mouseout' | 'pointerout' | 'mouseleave' | 'pointerleave' | 'wheel' | 'contextmenu';
type GestureRotateEvents = 'rotate' | 'rotatestart' | 'rotatemove' | 'rotateend' | 'rotatecancel';
type GesturePinchEvents = 'pinch' | 'pinchin' | 'pinchout' | 'pinchstart' | 'pinchmove' | 'pinchend' | 'pinchcancel';
type GestureSwipeEvents = 'swipe' | 'swipeleft' | 'swiperight' | 'swipeup' | 'swipedown';
type GestureTriEvents = 'tripan' | 'tripanstart' | 'tripanmove' | 'tripanup' | 'tripandown' | 'tripanleft' | 'tripanright' | 'tripanend' | 'tripancancel';
type GesturePanEvents = 'pan' | 'panstart' | 'panmove' | 'panup' | 'pandown' | 'panleft' | 'panright' | 'panend' | 'pancancel';
type OtherEvents = 'press' | 'doubletap' | 'dblclick' | 'tap' | 'click' | 'anytap' | 'anyclick';
type AllEvents = BasicInputEvents | BasicPointerEvents | GestureRotateEvents | GesturePinchEvents | GestureSwipeEvents | GestureTriEvents | GesturePanEvents | OtherEvents;
type MjolnirEvent = BaseEvent & {
type: AllEvents;
center: {
x: number;
y: number;
};
offsetCenter: {
x: number;
y: number;
};
target: Object;
srcEvent: Object;
preventDefault: Function;
stopPropagation: Function;
stopImmediatePropagation: Function;
};
type MjolnirEventHandler = (ev: MjolnirEvent) => void;
type MjolnirEventHandlerOptions = {
srcElement?: HTMLElement;
priority?: number;
};
type EventMap = Partial<Record<AllEvents, MjolnirEventHandler>>;
type EventManagerInitOptions = {
events?: EventMap;
recognizers?: Object;
recognizerOptions?: Object;
rightButton?: boolean;
touchAction?: string;
tabIndex?: number;
};
class EventManager {
constructor(element: HTMLElement | null | undefined, options?: EventManagerInitOptions);
destroy(): any;
setElement(element: HTMLElement | null): any;
on(event: AllEvents, handler: MjolnirEventHandler, options?: MjolnirEventHandlerOptions): any;
on(eventMap: EventMap, options?: MjolnirEventHandlerOptions): any;
once(event: AllEvents, handler: MjolnirEventHandler, options?: MjolnirEventHandlerOptions): any;
once(eventMap: EventMap, options?: MjolnirEventHandlerOptions): any;
watch(event: AllEvents, handler: MjolnirEventHandler, options?: MjolnirEventHandlerOptions): any;
watch(eventMap: EventMap, options?: MjolnirEventHandlerOptions): any;
off(event: AllEvents, handler: MjolnirEventHandler): any;
off(eventMap: EventMap): any;
}
}