Skip to content

Commit 75b45ee

Browse files
committed
Add definitions for DOM pointer events
1 parent 6ee9da9 commit 75b45ee

File tree

5 files changed

+324
-276
lines changed

5 files changed

+324
-276
lines changed

lib/dom.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ type ProgressEventHandler = (event: ProgressEvent) => mixed
134134
type ProgressEventListener = {handleEvent: ProgressEventHandler} | ProgressEventHandler
135135
type DragEventHandler = (event: DragEvent) => mixed
136136
type DragEventListener = {handleEvent: DragEventHandler} | DragEventHandler
137+
type PointerEventHandler = (event: PointerEvent) => mixed
138+
type PointerEventListener = {handleEvent: PointerEventHandler} | PointerEventHandler
137139
type AnimationEventHandler = (event: AnimationEvent) => mixed
138140
type AnimationEventListener = {handleEvent: AnimationEventHandler} | AnimationEventHandler
139141
type ClipboardEventHandler = (event: ClipboardEvent) => mixed
@@ -146,6 +148,7 @@ type TouchEventTypes = 'touchstart' | 'touchmove' | 'touchend' | 'touchcancel';
146148
type WheelEventTypes = 'wheel';
147149
type ProgressEventTypes = 'abort' | 'error' | 'load' | 'loadend' | 'loadstart' | 'progress' | 'timeout';
148150
type DragEventTypes = 'drag' | 'dragend' | 'dragenter' | 'dragexit' | 'dragleave' | 'dragover' | 'dragstart' | 'drop';
151+
type PointerEventTypes = 'pointerover' | 'pointerenter' | 'pointerdown' | 'pointermove' | 'pointerup' | 'pointercancel' | 'pointerout' | 'pointerleave' | 'gotpointercapture' | 'lostpointercapture';
149152
type AnimationEventTypes = 'animationstart' | 'animationend' | 'animationiteration';
150153
type ClipboardEventTypes = 'clipboardchange' | 'cut' | 'copy' | 'paste';
151154

@@ -163,6 +166,7 @@ declare class EventTarget {
163166
addEventListener(type: WheelEventTypes, listener: WheelEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
164167
addEventListener(type: ProgressEventTypes, listener: ProgressEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
165168
addEventListener(type: DragEventTypes, listener: DragEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
169+
addEventListener(type: PointerEventTypes, listener: PointerEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
166170
addEventListener(type: AnimationEventTypes, listener: AnimationEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
167171
addEventListener(type: ClipboardEventTypes, listener: ClipboardEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
168172
addEventListener(type: string, listener: EventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
@@ -174,6 +178,7 @@ declare class EventTarget {
174178
removeEventListener(type: WheelEventTypes, listener: WheelEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
175179
removeEventListener(type: ProgressEventTypes, listener: ProgressEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
176180
removeEventListener(type: DragEventTypes, listener: DragEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
181+
removeEventListener(type: PointerEventTypes, listener: PointerEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
177182
removeEventListener(type: AnimationEventTypes, listener: AnimationEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
178183
removeEventListener(type: ClipboardEventTypes, listener: ClipboardEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
179184
removeEventListener(type: string, listener: EventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void;
@@ -185,6 +190,7 @@ declare class EventTarget {
185190
attachEvent?: (type: WheelEventTypes, listener: WheelEventListener) => void;
186191
attachEvent?: (type: ProgressEventTypes, listener: ProgressEventListener) => void;
187192
attachEvent?: (type: DragEventTypes, listener: DragEventListener) => void;
193+
attachEvent?: (type: PointerEventTypes, listener: PointerEventListener) => void;
188194
attachEvent?: (type: AnimationEventTypes, listener: AnimationEventListener) => void;
189195
attachEvent?: (type: ClipboardEventTypes, listener: ClipboardEventListener) => void;
190196
attachEvent?: (type: string, listener: EventListener) => void;
@@ -196,6 +202,7 @@ declare class EventTarget {
196202
detachEvent?: (type: WheelEventTypes, listener: WheelEventListener) => void;
197203
detachEvent?: (type: ProgressEventTypes, listener: ProgressEventListener) => void;
198204
detachEvent?: (type: DragEventTypes, listener: DragEventListener) => void;
205+
detachEvent?: (type: PointerEventTypes, listener: PointerEventListener) => void;
199206
detachEvent?: (type: AnimationEventTypes, listener: AnimationEventListener) => void;
200207
detachEvent?: (type: ClipboardEventTypes, listener: ClipboardEventListener) => void;
201208
detachEvent?: (type: string, listener: EventListener) => void;
@@ -322,6 +329,37 @@ declare class DragEvent extends MouseEvent {
322329
dataTransfer: ?DataTransfer; // readonly
323330
}
324331

332+
type PointerEvent$PointerEventInit = MouseEvent$MouseEventInit & {
333+
pointerId?: number;
334+
width?: number;
335+
height?: number;
336+
pressure?: number;
337+
tangentialPressure?: number;
338+
tiltX?: number;
339+
tiltY?: number;
340+
twist?: number;
341+
pointerType?: string;
342+
isPrimary?: boolean;
343+
};
344+
345+
declare class PointerEvent extends MouseEvent {
346+
constructor(
347+
typeArg: string,
348+
pointerEventInit?: PointerEvent$PointerEventInit,
349+
): void;
350+
351+
pointerId: number;
352+
width: number;
353+
height: number;
354+
pressure: number;
355+
tangentialPressure: number;
356+
tiltX: number;
357+
tiltY: number;
358+
twist: number;
359+
pointerType: string;
360+
isPrimary: boolean;
361+
}
362+
325363
declare class ProgressEvent extends Event {
326364
lengthComputable: boolean;
327365
loaded: number;
@@ -1523,6 +1561,7 @@ declare class HTMLElement extends Element {
15231561
onended: ?Function;
15241562
onerror: ?Function;
15251563
onfocus: ?Function;
1564+
ongotpointercapture: ?Function,
15261565
oninput: ?Function;
15271566
oninvalid: ?Function;
15281567
onkeydown: ?Function;
@@ -1532,6 +1571,7 @@ declare class HTMLElement extends Element {
15321571
onloadeddata: ?Function;
15331572
onloadedmetadata: ?Function;
15341573
onloadstart: ?Function;
1574+
onlostpointercapture: ?Function,
15351575
onmousedown: ?Function;
15361576
onmouseenter: ?Function;
15371577
onmouseleave: ?Function;
@@ -1543,6 +1583,14 @@ declare class HTMLElement extends Element {
15431583
onpause: ?Function;
15441584
onplay: ?Function;
15451585
onplaying: ?Function;
1586+
onpointercancel: ?Function,
1587+
onpointerdown: ?Function,
1588+
onpointerenter: ?Function,
1589+
onpointerleave: ?Function,
1590+
onpointermove: ?Function,
1591+
onpointerout: ?Function,
1592+
onpointerover: ?Function,
1593+
onpointerup: ?Function,
15461594
onprogress: ?Function;
15471595
onratechange: ?Function;
15481596
onreadystatechange: ?Function;

tests/bom/bom.exp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ with `HTMLFormElement` [2].
2222
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2323

2424
References:
25-
<BUILTINS>/dom.js:617:36
26-
617| createElement(tagName: 'input'): HTMLInputElement;
25+
<BUILTINS>/dom.js:655:36
26+
655| createElement(tagName: 'input'): HTMLInputElement;
2727
^^^^^^^^^^^^^^^^ [1]
2828
<BUILTINS>/bom.js:330:24
2929
330| constructor(form?: HTMLFormElement): void;

0 commit comments

Comments
 (0)