@@ -22,54 +22,118 @@ module React.SyntheticEvent
2222 , SyntheticAnimationEvent'
2323 , SyntheticClipboardEvent'
2424 , SyntheticCompositionEvent'
25- , SyntheticKeyboardEvent'
2625 , SyntheticFocusEvent'
26+ , SyntheticKeyboardEvent'
2727 , SyntheticMouseEvent'
2828 , SyntheticTouchEvent'
2929 , SyntheticTransitionEvent'
3030 , SyntheticUIEvent'
3131 , SyntheticWheelEvent'
3232
33+ , SyntheticEvent_
34+
3335 , NativeEventTarget
3436 , NativeEvent
3537 , NativeDataTransfer
3638 , NativeAbstractView
3739 , NativeTouchList
3840
41+ , bubbles
42+ , cancelable
43+ , currentTarget
44+ , defaultPrevented
45+ , eventPhase
46+ , isTrusted
47+ , nativeEvent
3948 , preventDefault
4049 , isDefaultPrevented
4150 , stopPropagation
4251 , isPropagationStopped
52+ , target
53+ , timeStamp
54+ , type_
4355 , 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
4492 ) where
4593
4694import Prelude
4795
4896import Control.Monad.Eff (Eff )
4997
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' ()))
51105
52- type SyntheticAnimationEvent = Record (SyntheticAnimationEvent' (SyntheticEvent' ()))
106+ type SyntheticClipboardEvent
107+ = SyntheticEvent_ (SyntheticClipboardEvent' (SyntheticEvent' ()))
53108
54- type SyntheticClipboardEvent = Record (SyntheticClipboardEvent' (SyntheticEvent' ()))
109+ type SyntheticCompositionEvent
110+ = SyntheticEvent_ (SyntheticCompositionEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
55111
56- type SyntheticCompositionEvent = Record (SyntheticCompositionEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
112+ type SyntheticInputEvent
113+ = SyntheticEvent_ (SyntheticUIEvent' (SyntheticEvent' ()))
57114
58- type SyntheticInputEvent = Record (SyntheticUIEvent' (SyntheticEvent' ()))
115+ type SyntheticKeyboardEvent
116+ = SyntheticEvent_ (SyntheticKeyboardEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
59117
60- type SyntheticKeyboardEvent = Record (SyntheticKeyboardEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
118+ type SyntheticFocusEvent
119+ = SyntheticEvent_ (SyntheticFocusEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
61120
62- type SyntheticFocusEvent = Record (SyntheticFocusEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
121+ type SyntheticMouseEvent
122+ = SyntheticEvent_ (SyntheticMouseEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
63123
64- type SyntheticMouseEvent = Record (SyntheticMouseEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
124+ type SyntheticTouchEvent
125+ = SyntheticEvent_ (SyntheticTouchEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
65126
66- type SyntheticTouchEvent = Record (SyntheticTouchEvent' (SyntheticUIEvent' (SyntheticEvent' ())))
127+ type SyntheticTransitionEvent
128+ = SyntheticEvent_ (SyntheticTransitionEvent' (SyntheticEvent' ()))
67129
68- type SyntheticTransitionEvent = Record (SyntheticTransitionEvent' (SyntheticEvent' ()))
130+ type SyntheticUIEvent
131+ = SyntheticEvent_ (SyntheticUIEvent' (SyntheticEvent' ()))
69132
70- type SyntheticUIEvent = Record (SyntheticUIEvent' (SyntheticEvent' ()))
133+ type SyntheticWheelEvent
134+ = SyntheticEvent_ (SyntheticWheelEvent' (SyntheticMouseEvent' (SyntheticEvent' ())))
71135
72- type SyntheticWheelEvent = Record ( SyntheticWheelEvent' ( SyntheticMouseEvent' ( SyntheticEvent' ())))
136+ foreign import data SyntheticEvent_ :: # Type -> Type
73137
74138foreign import data NativeEventTarget :: Type
75139
@@ -81,16 +145,6 @@ foreign import data NativeAbstractView :: Type
81145
82146foreign import data NativeTouchList :: Type
83147
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-
94148type SyntheticEvent' r
95149 = ( bubbles :: Boolean
96150 , cancelable :: Boolean
@@ -129,9 +183,9 @@ type SyntheticFocusEvent' r
129183
130184type SyntheticKeyboardEvent' r
131185 = ( altKey :: Boolean
132- , charCode :: Int
133186 , ctrlKey :: Boolean
134187 , getModifierState :: String -> Boolean
188+ , charCode :: Int
135189 , key :: String
136190 , keyCode :: Number
137191 , locale :: String
@@ -167,8 +221,8 @@ type SyntheticTouchEvent' r
167221 , ctrlKey :: Boolean
168222 , getModifierState :: String -> Boolean
169223 , metaKey :: Boolean
170- , shiftKey :: Boolean
171224 , targetTouches :: NativeTouchList
225+ , shiftKey :: Boolean
172226 , touches :: NativeTouchList
173227 | r
174228 )
@@ -193,3 +247,161 @@ type SyntheticWheelEvent' r
193247 , deltaZ :: Number
194248 | r
195249 )
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