0 | module Text.HTML.Event
2 | import Data.Contravariant
4 | import Web.Internal.FileTypes
13 | record WheelInfo where
14 | constructor MkWheelInfo
21 | record MouseInfo where
22 | constructor MkMouseInfo
44 | record InputInfo where
45 | constructor MkInputInfo
51 | record KeyInfo where
52 | constructor MkKeyInfo
65 | record ScrollInfo where
66 | constructor MkScrollInfo
68 | scrollHeight : Int32
69 | clientHeight : Int32
88 | data DOMEvent : Type -> Type where
90 | Click : (MouseInfo -> Maybe a) -> DOMEvent a
91 | DblClick : (MouseInfo -> Maybe a) -> DOMEvent a
92 | MouseDown : (MouseInfo -> Maybe a) -> DOMEvent a
93 | MouseUp : (MouseInfo -> Maybe a) -> DOMEvent a
96 | MouseEnter : (MouseInfo -> Maybe a) -> DOMEvent a
97 | MouseLeave : (MouseInfo -> Maybe a) -> DOMEvent a
98 | MouseOver : (MouseInfo -> Maybe a) -> DOMEvent a
99 | MouseOut : (MouseInfo -> Maybe a) -> DOMEvent a
100 | MouseMove : (MouseInfo -> Maybe a) -> DOMEvent a
103 | Blur : a -> DOMEvent a
104 | Focus : a -> DOMEvent a
107 | KeyDown : (KeyInfo -> Maybe a) -> DOMEvent a
108 | KeyUp : (KeyInfo -> Maybe a) -> DOMEvent a
111 | Change : (InputInfo -> Maybe a) -> DOMEvent a
112 | Input : (InputInfo -> Maybe a) -> DOMEvent a
115 | HashChange : a -> DOMEvent a
118 | Scroll : (ScrollInfo -> Maybe a) -> DOMEvent a
121 | Wheel : (WheelInfo -> Maybe a) -> DOMEvent a
124 | Resize : (Rect -> Maybe a) -> DOMEvent a
127 | Functor DOMEvent where
128 | map f (Click g) = Click (map f . g)
129 | map f (DblClick g) = DblClick (map f . g)
130 | map f (MouseDown g) = MouseDown (map f . g)
131 | map f (MouseUp g) = MouseUp (map f . g)
132 | map f (MouseEnter g) = MouseEnter (map f . g)
133 | map f (MouseLeave g) = MouseLeave (map f . g)
134 | map f (MouseOver g) = MouseOver (map f . g)
135 | map f (MouseOut g) = MouseOut (map f . g)
136 | map f (MouseMove g) = MouseMove (map f . g)
137 | map f (Blur x) = Blur (f x)
138 | map f (Focus x) = Focus (f x)
139 | map f (KeyDown g) = KeyDown (map f . g)
140 | map f (KeyUp g) = KeyUp (map f . g)
141 | map f (Change g) = Change (map f . g)
142 | map f (Input g) = Input (map f . g)
143 | map f (HashChange x) = HashChange (f x)
144 | map f (Scroll g) = Scroll (map f . g)
145 | map f (Wheel g) = Wheel (map f . g)
146 | map f (Resize g) = Resize (map f . g)