@@ -22,54 +22,118 @@ module React.SyntheticEvent
22
22
, SyntheticAnimationEvent'
23
23
, SyntheticClipboardEvent'
24
24
, SyntheticCompositionEvent'
25
- , SyntheticKeyboardEvent'
26
25
, SyntheticFocusEvent'
26
+ , SyntheticKeyboardEvent'
27
27
, SyntheticMouseEvent'
28
28
, SyntheticTouchEvent'
29
29
, SyntheticTransitionEvent'
30
30
, SyntheticUIEvent'
31
31
, SyntheticWheelEvent'
32
32
33
+ , SyntheticEvent_
34
+
33
35
, NativeEventTarget
34
36
, NativeEvent
35
37
, NativeDataTransfer
36
38
, NativeAbstractView
37
39
, NativeTouchList
38
40
41
+ , bubbles
42
+ , cancelable
43
+ , currentTarget
44
+ , defaultPrevented
45
+ , eventPhase
46
+ , isTrusted
47
+ , nativeEvent
39
48
, preventDefault
40
49
, isDefaultPrevented
41
50
, stopPropagation
42
51
, isPropagationStopped
52
+ , target
53
+ , timeStamp
54
+ , type_
43
55
, persist
56
+ , animationName
57
+ , clipboardData
58
+ , data_
59
+ , relatedTarget
60
+ , charCode
61
+ , key
62
+ , keyCode
63
+ , locale
64
+ , location
65
+ , repeat
66
+ , which
67
+ , button
68
+ , buttons
69
+ , clientX
70
+ , clientY
71
+ , pageX
72
+ , pageY
73
+ , screenX
74
+ , screenY
75
+ , changedTouches
76
+ , targetTouches
77
+ , touches
78
+ , altKey
79
+ , ctrlKey
80
+ , getModifierState
81
+ , metaKey
82
+ , shiftKey
83
+ , propertyName
84
+ , pseudoElement
85
+ , elapsedTime
86
+ , detail
87
+ , view
88
+ , deltaMode
89
+ , deltaX
90
+ , deltaY
91
+ , deltaZ
44
92
) where
45
93
46
94
import Prelude
47
95
48
96
import Control.Monad.Eff (Eff )
49
97
50
- type SyntheticEvent = Record (SyntheticEvent' ())
98
+ import Data.Symbol (class IsSymbol , SProxy (..), reflectSymbol )
99
+
100
+ type SyntheticEvent
101
+ = SyntheticEvent_ (SyntheticEvent' ())
102
+
103
+ type SyntheticAnimationEvent
104
+ = SyntheticEvent_ (SyntheticAnimationEvent' (SyntheticEvent' ()))
51
105
52
- type SyntheticAnimationEvent = Record (SyntheticAnimationEvent' (SyntheticEvent' ()))
106
+ type SyntheticClipboardEvent
107
+ = SyntheticEvent_ (SyntheticClipboardEvent' (SyntheticEvent' ()))
53
108
54
- type SyntheticClipboardEvent = Record (SyntheticClipboardEvent' (SyntheticEvent' ()))
109
+ type SyntheticCompositionEvent
110
+ = SyntheticEvent_ (SyntheticCompositionEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
55
111
56
- type SyntheticCompositionEvent = Record (SyntheticCompositionEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
112
+ type SyntheticInputEvent
113
+ = SyntheticEvent_ (SyntheticUIEvent' (SyntheticEvent' ()))
57
114
58
- type SyntheticInputEvent = Record (SyntheticUIEvent' (SyntheticEvent' ()))
115
+ type SyntheticKeyboardEvent
116
+ = SyntheticEvent_ (SyntheticKeyboardEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
59
117
60
- type SyntheticKeyboardEvent = Record (SyntheticKeyboardEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
118
+ type SyntheticFocusEvent
119
+ = SyntheticEvent_ (SyntheticFocusEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
61
120
62
- type SyntheticFocusEvent = Record (SyntheticFocusEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
121
+ type SyntheticMouseEvent
122
+ = SyntheticEvent_ (SyntheticMouseEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
63
123
64
- type SyntheticMouseEvent = Record (SyntheticMouseEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
124
+ type SyntheticTouchEvent
125
+ = SyntheticEvent_ (SyntheticTouchEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
65
126
66
- type SyntheticTouchEvent = Record (SyntheticTouchEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
127
+ type SyntheticTransitionEvent
128
+ = SyntheticEvent_ (SyntheticTransitionEvent' (SyntheticEvent' ()))
67
129
68
- type SyntheticTransitionEvent = Record (SyntheticTransitionEvent' (SyntheticEvent' ()))
130
+ type SyntheticUIEvent
131
+ = SyntheticEvent_ (SyntheticUIEvent' (SyntheticEvent' ()))
69
132
70
- type SyntheticUIEvent = Record (SyntheticUIEvent' (SyntheticEvent' ()))
133
+ type SyntheticWheelEvent
134
+ = SyntheticEvent_ (SyntheticWheelEvent' (SyntheticMouseEvent' (SyntheticEvent' ())))
71
135
72
- type SyntheticWheelEvent = Record ( SyntheticWheelEvent' ( SyntheticMouseEvent' ( SyntheticEvent' ())))
136
+ foreign import data SyntheticEvent_ :: # Type -> Type
73
137
74
138
foreign import data NativeEventTarget :: Type
75
139
@@ -81,16 +145,6 @@ foreign import data NativeAbstractView :: Type
81
145
82
146
foreign import data NativeTouchList :: Type
83
147
84
- foreign import preventDefault :: forall eff r . Record (SyntheticEvent' r ) -> Eff eff Unit
85
-
86
- foreign import isDefaultPrevented :: forall eff r . Record (SyntheticEvent' r ) -> Eff eff Boolean
87
-
88
- foreign import stopPropagation :: forall eff r . Record (SyntheticEvent' r ) -> Eff eff Unit
89
-
90
- foreign import isPropagationStopped :: forall eff r . Record (SyntheticEvent' r ) -> Eff eff Boolean
91
-
92
- foreign import persist :: forall eff r . Record (SyntheticEvent' r ) -> Eff eff Unit
93
-
94
148
type SyntheticEvent' r
95
149
= ( bubbles :: Boolean
96
150
, cancelable :: Boolean
@@ -129,9 +183,9 @@ type SyntheticFocusEvent' r
129
183
130
184
type SyntheticKeyboardEvent' r
131
185
= ( altKey :: Boolean
132
- , charCode :: Int
133
186
, ctrlKey :: Boolean
134
187
, getModifierState :: String -> Boolean
188
+ , charCode :: Int
135
189
, key :: String
136
190
, keyCode :: Number
137
191
, locale :: String
@@ -167,8 +221,8 @@ type SyntheticTouchEvent' r
167
221
, ctrlKey :: Boolean
168
222
, getModifierState :: String -> Boolean
169
223
, metaKey :: Boolean
170
- , shiftKey :: Boolean
171
224
, targetTouches :: NativeTouchList
225
+ , shiftKey :: Boolean
172
226
, touches :: NativeTouchList
173
227
| r
174
228
)
@@ -193,3 +247,161 @@ type SyntheticWheelEvent' r
193
247
, deltaZ :: Number
194
248
| r
195
249
)
250
+
251
+ bubbles :: forall eff r . SyntheticEvent_ (bubbles :: Boolean | r ) -> Eff eff Boolean
252
+ bubbles = get (SProxy :: SProxy " bubbles" )
253
+
254
+ cancelable :: forall eff r . SyntheticEvent_ (cancelable :: Boolean | r ) -> Eff eff Boolean
255
+ cancelable = get (SProxy :: SProxy " cancelable" )
256
+
257
+ currentTarget :: forall eff r . SyntheticEvent_ (currentTarget :: NativeEventTarget | r ) -> Eff eff NativeEventTarget
258
+ currentTarget = get (SProxy :: SProxy " currentTarget" )
259
+
260
+ defaultPrevented :: forall eff r . SyntheticEvent_ (defaultPrevented :: Boolean | r ) -> Eff eff Boolean
261
+ defaultPrevented = get (SProxy :: SProxy " defaultPrevented" )
262
+
263
+ eventPhase :: forall eff r . SyntheticEvent_ (eventPhase :: Number | r ) -> Eff eff Number
264
+ eventPhase = get (SProxy :: SProxy " eventPhase" )
265
+
266
+ isTrusted :: forall eff r . SyntheticEvent_ (isTrusted :: Boolean | r ) -> Eff eff Boolean
267
+ isTrusted = get (SProxy :: SProxy " isTrusted" )
268
+
269
+ nativeEvent :: forall eff r . SyntheticEvent_ (nativeEvent :: NativeEvent | r ) -> Eff eff NativeEvent
270
+ nativeEvent = get (SProxy :: SProxy " nativeEvent" )
271
+
272
+ target :: forall eff r . SyntheticEvent_ (target :: NativeEventTarget | r ) -> Eff eff NativeEventTarget
273
+ target = get (SProxy :: SProxy " target" )
274
+
275
+ timeStamp :: forall eff r . SyntheticEvent_ (timeStamp :: Number | r ) -> Eff eff Number
276
+ timeStamp = get (SProxy :: SProxy " timeStamp" )
277
+
278
+ type_ :: forall eff r . SyntheticEvent_ (type :: String | r ) -> Eff eff String
279
+ type_ = get (SProxy :: SProxy " type" )
280
+
281
+ animationName :: forall eff r . SyntheticEvent_ (animationName :: String | r ) -> Eff eff String
282
+ animationName = get (SProxy :: SProxy " animationName" )
283
+
284
+ clipboardData :: forall eff r . SyntheticEvent_ (clipboardData :: NativeDataTransfer | r ) -> Eff eff NativeDataTransfer
285
+ clipboardData = get (SProxy :: SProxy " clipboardData" )
286
+
287
+ data_ :: forall eff r . SyntheticEvent_ (data :: String | r ) -> Eff eff String
288
+ data_ = get (SProxy :: SProxy " data" )
289
+
290
+ relatedTarget :: forall eff r . SyntheticEvent_ (relatedTarget :: NativeEventTarget | r ) -> Eff eff NativeEventTarget
291
+ relatedTarget = get (SProxy :: SProxy " relatedTarget" )
292
+
293
+ charCode :: forall eff r . SyntheticEvent_ (charCode :: Int | r ) -> Eff eff Int
294
+ charCode = get (SProxy :: SProxy " charCode" )
295
+
296
+ key :: forall eff r . SyntheticEvent_ (key :: String | r ) -> Eff eff String
297
+ key = get (SProxy :: SProxy " key" )
298
+
299
+ keyCode :: forall eff r . SyntheticEvent_ (keyCode :: Number | r ) -> Eff eff Number
300
+ keyCode = get (SProxy :: SProxy " keyCode" )
301
+
302
+ locale :: forall eff r . SyntheticEvent_ (locale :: String | r ) -> Eff eff String
303
+ locale = get (SProxy :: SProxy " locale" )
304
+
305
+ location :: forall eff r . SyntheticEvent_ (location :: Number | r ) -> Eff eff Number
306
+ location = get (SProxy :: SProxy " location" )
307
+
308
+ repeat :: forall eff r . SyntheticEvent_ (repeat :: Boolean | r ) -> Eff eff Boolean
309
+ repeat = get (SProxy :: SProxy " repeat" )
310
+
311
+ which :: forall eff r . SyntheticEvent_ (which :: Number | r ) -> Eff eff Number
312
+ which = get (SProxy :: SProxy " which" )
313
+
314
+ button :: forall eff r . SyntheticEvent_ (button :: Number | r ) -> Eff eff Number
315
+ button = get (SProxy :: SProxy " button" )
316
+
317
+ buttons :: forall eff r . SyntheticEvent_ (buttons :: Number | r ) -> Eff eff Number
318
+ buttons = get (SProxy :: SProxy " buttons" )
319
+
320
+ clientX :: forall eff r . SyntheticEvent_ (clientX :: Number | r ) -> Eff eff Number
321
+ clientX = get (SProxy :: SProxy " clientX" )
322
+
323
+ clientY :: forall eff r . SyntheticEvent_ (clientY :: Number | r ) -> Eff eff Number
324
+ clientY = get (SProxy :: SProxy " clientY" )
325
+
326
+ pageX :: forall eff r . SyntheticEvent_ (pageX :: Number | r ) -> Eff eff Number
327
+ pageX = get (SProxy :: SProxy " pageX" )
328
+
329
+ pageY :: forall eff r . SyntheticEvent_ (pageY :: Number | r ) -> Eff eff Number
330
+ pageY = get (SProxy :: SProxy " pageY" )
331
+
332
+ screenX :: forall eff r . SyntheticEvent_ (screenX :: Number | r ) -> Eff eff Number
333
+ screenX = get (SProxy :: SProxy " screenX" )
334
+
335
+ screenY :: forall eff r . SyntheticEvent_ (screenY :: Number | r ) -> Eff eff Number
336
+ screenY = get (SProxy :: SProxy " screenY" )
337
+
338
+ changedTouches :: forall eff r . SyntheticEvent_ (changedTouches :: NativeTouchList | r ) -> Eff eff NativeTouchList
339
+ changedTouches = get (SProxy :: SProxy " changedTouches" )
340
+
341
+ targetTouches :: forall eff r . SyntheticEvent_ (targetTouches :: NativeTouchList | r ) -> Eff eff NativeTouchList
342
+ targetTouches = get (SProxy :: SProxy " targetTouches" )
343
+
344
+ touches :: forall eff r . SyntheticEvent_ (touches :: NativeTouchList | r ) -> Eff eff NativeTouchList
345
+ touches = get (SProxy :: SProxy " touches" )
346
+
347
+ altKey :: forall eff r . SyntheticEvent_ (altKey :: Boolean | r ) -> Eff eff Boolean
348
+ altKey = get (SProxy :: SProxy " altKey" )
349
+
350
+ ctrlKey :: forall eff r . SyntheticEvent_ (ctrlKey :: Boolean | r ) -> Eff eff Boolean
351
+ ctrlKey = get (SProxy :: SProxy " ctrlKey" )
352
+
353
+ metaKey :: forall eff r . SyntheticEvent_ (metaKey :: Boolean | r ) -> Eff eff Boolean
354
+ metaKey = get (SProxy :: SProxy " metaKey" )
355
+
356
+ shiftKey :: forall eff r . SyntheticEvent_ (shiftKey :: Boolean | r ) -> Eff eff Boolean
357
+ shiftKey = get (SProxy :: SProxy " shiftKey" )
358
+
359
+ propertyName :: forall eff r . SyntheticEvent_ (propertyName :: String | r ) -> Eff eff String
360
+ propertyName = get (SProxy :: SProxy " propertyName" )
361
+
362
+ pseudoElement :: forall eff r . SyntheticEvent_ (pseudoElement :: String | r ) -> Eff eff String
363
+ pseudoElement = get (SProxy :: SProxy " pseudoElement" )
364
+
365
+ elapsedTime :: forall eff r . SyntheticEvent_ (elapsedTime :: Number | r ) -> Eff eff Number
366
+ elapsedTime = get (SProxy :: SProxy " elapsedTime" )
367
+
368
+ detail :: forall eff r . SyntheticEvent_ (detail :: Number | r ) -> Eff eff Number
369
+ detail = get (SProxy :: SProxy " detail" )
370
+
371
+ view :: forall eff r . SyntheticEvent_ (view :: NativeAbstractView | r ) -> Eff eff NativeAbstractView
372
+ view = get (SProxy :: SProxy " view" )
373
+
374
+ deltaMode :: forall eff r . SyntheticEvent_ (deltaMode :: Number | r ) -> Eff eff Number
375
+ deltaMode = get (SProxy :: SProxy " deltaMode" )
376
+
377
+ deltaX :: forall eff r . SyntheticEvent_ (deltaX :: Number | r ) -> Eff eff Number
378
+ deltaX = get (SProxy :: SProxy " deltaX" )
379
+
380
+ deltaY :: forall eff r . SyntheticEvent_ (deltaY :: Number | r ) -> Eff eff Number
381
+ deltaY = get (SProxy :: SProxy " deltaY" )
382
+
383
+ deltaZ :: forall eff r . SyntheticEvent_ (deltaZ :: Number | r ) -> Eff eff Number
384
+ deltaZ = get (SProxy :: SProxy " deltaZ" )
385
+
386
+ foreign import preventDefault :: forall eff r . SyntheticEvent_ r -> Eff eff Unit
387
+
388
+ foreign import isDefaultPrevented :: forall eff r . SyntheticEvent_ r -> Eff eff Boolean
389
+
390
+ foreign import stopPropagation :: forall eff r . SyntheticEvent_ r -> Eff eff Unit
391
+
392
+ foreign import isPropagationStopped :: forall eff r . SyntheticEvent_ r -> Eff eff Boolean
393
+
394
+ foreign import persist :: forall eff r . SyntheticEvent_ r -> Eff eff Unit
395
+
396
+ foreign import getModifierState :: forall eff r . String -> SyntheticEvent_ (getModifierState :: String -> Boolean | r ) -> Eff eff Boolean
397
+
398
+ get
399
+ :: forall eff l r s a
400
+ . RowCons l a r s
401
+ => IsSymbol l
402
+ => SProxy l
403
+ -> SyntheticEvent_ s
404
+ -> Eff eff a
405
+ get l r = unsafeGet (reflectSymbol l) r
406
+
407
+ foreign import unsafeGet :: forall eff r a . String -> SyntheticEvent_ r -> Eff eff a
0 commit comments