@@ -5,40 +5,43 @@ module MakeEventWithType = (
5
5
type t
6
6
},
7
7
) => {
8
+ open WebAPI
9
+
8
10
@get external bubbles : Type .t => bool = "bubbles"
9
11
@get external cancelable : Type .t => bool = "cancelable"
10
12
@get
11
- external currentTarget : Type .t => { .. } = "currentTarget" /* Should return Dom.eventTarget */
13
+ external currentTarget : Type .t => DOMAPI . node = "currentTarget"
12
14
@get external defaultPrevented : Type .t => bool = "defaultPrevented"
13
15
@get external eventPhase : Type .t => int = "eventPhase"
14
16
@get external isTrusted : Type .t => bool = "isTrusted"
15
- @get external nativeEvent : Type .t => { .. } = "nativeEvent" /* Should return Dom.event */
17
+ @get external nativeEvent : Type .t => EventAPI . event = "nativeEvent"
16
18
@send external preventDefault : Type .t => unit = "preventDefault"
17
19
@send
18
20
external isDefaultPrevented : Type .t => bool = "isDefaultPrevented"
19
21
@send external stopPropagation : Type .t => unit = "stopPropagation"
20
22
@send
21
23
external isPropagationStopped : Type .t => bool = "isPropagationStopped"
22
- @get external target : Type .t => { .. } = "target" /* Should return Dom.eventTarget */
24
+ @get external target : Type .t => DOMAPI . node = "target"
23
25
@get external timeStamp : Type .t => float = "timeStamp"
24
26
@get external type_ : Type .t => string = "type"
25
27
@send external persist : Type .t => unit = "persist"
26
28
}
27
29
30
+ open WebAPI
31
+
28
32
module Synthetic = {
29
33
type tag = JsxEvent .Synthetic .tag
30
34
type t = synthetic <tag >
31
35
@get external bubbles : synthetic <'a > => bool = "bubbles"
32
36
@get external cancelable : synthetic <'a > => bool = "cancelable"
33
37
@get
34
- external currentTarget : synthetic <'a > => {.. } =
35
- "currentTarget" /* Should return Dom.eventTarget */
38
+ external currentTarget : synthetic <'a > => DOMAPI .node = "currentTarget"
36
39
@get
37
40
external defaultPrevented : synthetic <'a > => bool = "defaultPrevented"
38
41
@get external eventPhase : synthetic <'a > => int = "eventPhase"
39
42
@get external isTrusted : synthetic <'a > => bool = "isTrusted"
40
43
@get
41
- external nativeEvent : synthetic <'a > => { .. } = "nativeEvent" /* Should return Dom.event */
44
+ external nativeEvent : synthetic <'a > => EventAPI . event = "nativeEvent"
42
45
@send
43
46
external preventDefault : synthetic <'a > => unit = "preventDefault"
44
47
@send
@@ -47,7 +50,7 @@ module Synthetic = {
47
50
external stopPropagation : synthetic <'a > => unit = "stopPropagation"
48
51
@send
49
52
external isPropagationStopped : synthetic <'a > => bool = "isPropagationStopped"
50
- @get external target : synthetic <'a > => { .. } = "target" /* Should return Dom.eventTarget */
53
+ @get external target : synthetic <'a > => DOMAPI . node = "target"
51
54
@get external timeStamp : synthetic <'a > => float = "timeStamp"
52
55
@get external type_ : synthetic <'a > => string = "type"
53
56
@send external persist : synthetic <'a > => unit = "persist"
@@ -62,7 +65,7 @@ module Clipboard = {
62
65
include MakeEventWithType ({
63
66
type t = t
64
67
})
65
- @get external clipboardData : t => { .. } = "clipboardData" /* Should return Dom.dataTransfer */
68
+ @get external clipboardData : t => WebAPI . UIEventsAPI . dataTransfer = "clipboardData"
66
69
}
67
70
68
71
module Composition = {
@@ -103,7 +106,7 @@ module Focus = {
103
106
type t = t
104
107
})
105
108
@get @return (nullable )
106
- external relatedTarget : t => option <{ .. } > = "relatedTarget" /* Should return Dom.eventTarget */
109
+ external relatedTarget : t => option <EventAPI . eventTarget > = "relatedTarget"
107
110
}
108
111
109
112
module Form = {
@@ -134,7 +137,7 @@ module Mouse = {
134
137
@get external pageX : t => int = "pageX"
135
138
@get external pageY : t => int = "pageY"
136
139
@get @return (nullable )
137
- external relatedTarget : t => option <{ .. } > = "relatedTarget" /* Should return Dom.eventTarget */
140
+ external relatedTarget : t => option <EventAPI . eventTarget > = "relatedTarget"
138
141
@get external screenX : t => int = "screenX"
139
142
@get external screenY : t => int = "screenY"
140
143
@get external shiftKey : t => bool = "shiftKey"
@@ -149,7 +152,7 @@ module Pointer = {
149
152
150
153
// UIEvent
151
154
@get external detail : t => int = "detail"
152
- @get external view : t => Dom .window = "view" /* Should return DOMAbstractView/WindowProxy */
155
+ @get external view : t => DOMAPI .window = "view"
153
156
154
157
// MouseEvent
155
158
@get external screenX : t => int = "screenX"
@@ -172,7 +175,7 @@ module Pointer = {
172
175
@get external buttons : t => int = "buttons"
173
176
174
177
@get @return (nullable )
175
- external relatedTarget : t => option <{ .. } > = "relatedTarget" /* Should return Dom.eventTarget */
178
+ external relatedTarget : t => option <EventAPI . eventTarget > = "relatedTarget"
176
179
177
180
// PointerEvent
178
181
@get external pointerId : t => Dom .eventPointerId = "pointerId"
@@ -202,14 +205,14 @@ module Touch = {
202
205
type t = t
203
206
})
204
207
@get external altKey : t => bool = "altKey"
205
- @get external changedTouches : t => { .. } = "changedTouches" /* Should return Dom.touchList */
208
+ @get external changedTouches : t => UIEventsAPI . touchList = "changedTouches"
206
209
@get external ctrlKey : t => bool = "ctrlKey"
207
210
@send
208
211
external getModifierState : (t , string ) => bool = "getModifierState"
209
212
@get external metaKey : t => bool = "metaKey"
210
213
@get external shiftKey : t => bool = "shiftKey"
211
- @get external targetTouches : t => { .. } = "targetTouches" /* Should return Dom.touchList */
212
- @get external touches : t => { .. } = "touches" /* Should return Dom.touchList */
214
+ @get external targetTouches : t => UIEventsAPI . touchList = "targetTouches"
215
+ @get external touches : t => UIEventsAPI . touchList = "touches"
213
216
}
214
217
215
218
module UI = {
@@ -219,7 +222,7 @@ module UI = {
219
222
type t = t
220
223
})
221
224
@get external detail : t => int = "detail"
222
- @get external view : t => Dom .window = "view" /* Should return DOMAbstractView/WindowProxy */
225
+ @get external view : t => DOMAPI .window = "view"
223
226
}
224
227
225
228
module Wheel = {
0 commit comments