module Halogen.HTML.Events where
import Data.Foreign
import Data.Row
import HPrelude
import Halogen.HTML.Core qualified as Core
import Halogen.HTML.Properties
import Halogen.Query.Input
import Web.Clipboard.ClipboardEvent
import Web.Clipboard.ClipboardEvent.EventTypes qualified as CET
import Web.Event.Event
import Web.Event.Event qualified as EE
import Web.HTML.Event.DragEvent
import Web.HTML.Event.DragEvent.EventTypes qualified as DET
import Web.HTML.Event.EventTypes qualified as ET
import Web.UIEvent.FocusEvent
import Web.UIEvent.FocusEvent.EventTypes qualified as FET
import Web.UIEvent.KeyboardEvent
import Web.UIEvent.KeyboardEvent.EventTypes qualified as KET
import Web.UIEvent.MouseEvent
import Web.UIEvent.MouseEvent.EventTypes qualified as MET
import Web.UIEvent.TouchEvent
import Web.UIEvent.WheelEvent
import Web.UIEvent.WheelEvent.EventTypes qualified as WET
handler :: forall r i. EventType -> (Event -> i) -> IProp r i
handler :: forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
et Event -> i
f = Prop (Input i) -> IProp r i
forall (r :: Row (*)) msg. Prop (Input msg) -> IProp r msg
IProp (Prop (Input i) -> IProp r i) -> Prop (Input i) -> IProp r i
forall a b. (a -> b) -> a -> b
$ EventType -> (Event -> Maybe (Input i)) -> Prop (Input i)
forall i. EventType -> (Event -> Maybe i) -> Prop i
Core.handler EventType
et (Input i -> Maybe (Input i)
forall a. a -> Maybe a
Just (Input i -> Maybe (Input i))
-> (Event -> Input i) -> Event -> Maybe (Input i)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. i -> Input i
forall msg. msg -> Input msg
Action (i -> Input i) -> (Event -> i) -> Event -> Input i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event -> i
f)
handler' :: forall r i. EventType -> (Event -> Maybe i) -> IProp r i
handler' :: forall (r :: Row (*)) i.
EventType -> (Event -> Maybe i) -> IProp r i
handler' EventType
et Event -> Maybe i
f = Prop (Input i) -> IProp r i
forall (r :: Row (*)) msg. Prop (Input msg) -> IProp r msg
IProp (Prop (Input i) -> IProp r i) -> Prop (Input i) -> IProp r i
forall a b. (a -> b) -> a -> b
$ EventType -> (Event -> Maybe (Input i)) -> Prop (Input i)
forall i. EventType -> (Event -> Maybe i) -> Prop i
Core.handler EventType
et ((i -> Input i) -> Maybe i -> Maybe (Input i)
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap i -> Input i
forall msg. msg -> Input msg
Action (Maybe i -> Maybe (Input i))
-> (Event -> Maybe i) -> Event -> Maybe (Input i)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event -> Maybe i
f)
onAbort :: forall r i. (HasType "onAbort" Event r) => (Event -> i) -> IProp r i
onAbort :: forall (r :: Row (*)) i.
HasType "onAbort" Event r =>
(Event -> i) -> IProp r i
onAbort = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"abort")
onError :: forall r i. (HasType "onError" Event r) => (Event -> i) -> IProp r i
onError :: forall (r :: Row (*)) i.
HasType "onError" Event r =>
(Event -> i) -> IProp r i
onError = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.error
onLoad :: forall r i. (HasType "onLoad" Event r) => (Event -> i) -> IProp r i
onLoad :: forall (r :: Row (*)) i.
HasType "onLoad" Event r =>
(Event -> i) -> IProp r i
onLoad = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.load
onScroll :: forall r i. (HasType "onScroll" Event r) => (Event -> i) -> IProp r i
onScroll :: forall (r :: Row (*)) i.
HasType "onScroll" Event r =>
(Event -> i) -> IProp r i
onScroll = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"scroll")
onChange :: forall r i. (HasType "onChange" Event r) => (Event -> i) -> IProp r i
onChange :: forall (r :: Row (*)) i.
HasType "onChange" Event r =>
(Event -> i) -> IProp r i
onChange = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.change
onInput :: forall r i. (HasType "onInput" Event r) => (Event -> i) -> IProp r i
onInput :: forall (r :: Row (*)) i.
HasType "onInput" Event r =>
(Event -> i) -> IProp r i
onInput = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.input
onInvalid :: forall r i. (HasType "onInvalid" Event r) => (Event -> i) -> IProp r i
onInvalid :: forall (r :: Row (*)) i.
HasType "onInvalid" Event r =>
(Event -> i) -> IProp r i
onInvalid = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.invalid
onReset :: forall r i. (HasType "onReset" Event r) => (Event -> i) -> IProp r i
onReset :: forall (r :: Row (*)) i.
HasType "onReset" Event r =>
(Event -> i) -> IProp r i
onReset = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"reset")
onSelect :: forall r i. (HasType "onSelect" Event r) => (Event -> i) -> IProp r i
onSelect :: forall (r :: Row (*)) i.
HasType "onSelect" Event r =>
(Event -> i) -> IProp r i
onSelect = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.select
onSubmit :: forall r i. (HasType "onSubmit" Event r) => (Event -> i) -> IProp r i
onSubmit :: forall (r :: Row (*)) i.
HasType "onSubmit" Event r =>
(Event -> i) -> IProp r i
onSubmit = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"submit")
onTransitionEnd :: forall r i. (HasType "onTransitionEnd" Event r) => (Event -> i) -> IProp r i
onTransitionEnd :: forall (r :: Row (*)) i.
HasType "onTransitionEnd" Event r =>
(Event -> i) -> IProp r i
onTransitionEnd = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"transitionend")
onCopy :: forall r i. (HasType "onCopy" ClipboardEvent r) => (ClipboardEvent -> i) -> IProp r i
onCopy :: forall (r :: Row (*)) i.
HasType "onCopy" ClipboardEvent r =>
(ClipboardEvent -> i) -> IProp r i
onCopy = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
CET.copy ((Event -> i) -> IProp r i)
-> ((ClipboardEvent -> i) -> Event -> i)
-> (ClipboardEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ClipboardEvent -> i) -> Event -> i
forall i. (ClipboardEvent -> i) -> Event -> i
clipboardHandler
onPaste :: forall r i. (HasType "onPaste" ClipboardEvent r) => (ClipboardEvent -> i) -> IProp r i
onPaste :: forall (r :: Row (*)) i.
HasType "onPaste" ClipboardEvent r =>
(ClipboardEvent -> i) -> IProp r i
onPaste = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
CET.paste ((Event -> i) -> IProp r i)
-> ((ClipboardEvent -> i) -> Event -> i)
-> (ClipboardEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ClipboardEvent -> i) -> Event -> i
forall i. (ClipboardEvent -> i) -> Event -> i
clipboardHandler
onCut :: forall r i. (HasType "onCut" ClipboardEvent r) => (ClipboardEvent -> i) -> IProp r i
onCut :: forall (r :: Row (*)) i.
HasType "onCut" ClipboardEvent r =>
(ClipboardEvent -> i) -> IProp r i
onCut = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
CET.cut ((Event -> i) -> IProp r i)
-> ((ClipboardEvent -> i) -> Event -> i)
-> (ClipboardEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ClipboardEvent -> i) -> Event -> i
forall i. (ClipboardEvent -> i) -> Event -> i
clipboardHandler
onAuxClick :: forall r i. (HasType "onAuxClick" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onAuxClick :: forall (r :: Row (*)) i.
HasType "onAuxClick" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onAuxClick = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.auxclick ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onClick :: forall r i. (HasType "onClick" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onClick :: forall (r :: Row (*)) i.
HasType "onClick" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onClick = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.click ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onDoubleClick :: forall r i. (HasType "onDoubleClick" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onDoubleClick :: forall (r :: Row (*)) i.
HasType "onDoubleClick" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onDoubleClick = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.dblclick ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseDown :: forall r i. (HasType "onMouseDown" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseDown :: forall (r :: Row (*)) i.
HasType "onMouseDown" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseDown = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mousedown ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseEnter :: forall r i. (HasType "onMouseEnter" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseEnter :: forall (r :: Row (*)) i.
HasType "onMouseEnter" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseEnter = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mouseenter ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseLeave :: forall r i. (HasType "onMouseLeave" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseLeave :: forall (r :: Row (*)) i.
HasType "onMouseLeave" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseLeave = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mouseleave ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseMove :: forall r i. (HasType "onMouseMove" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseMove :: forall (r :: Row (*)) i.
HasType "onMouseMove" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseMove = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mousemove ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseOver :: forall r i. (HasType "onMouseOver" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseOver :: forall (r :: Row (*)) i.
HasType "onMouseOver" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseOver = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mouseover ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseOut :: forall r i. (HasType "onMouseOut" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseOut :: forall (r :: Row (*)) i.
HasType "onMouseOut" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseOut = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mouseout ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onMouseUp :: forall r i. (HasType "onMouseUp" MouseEvent r) => (MouseEvent -> i) -> IProp r i
onMouseUp :: forall (r :: Row (*)) i.
HasType "onMouseUp" MouseEvent r =>
(MouseEvent -> i) -> IProp r i
onMouseUp = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
MET.mouseup ((Event -> i) -> IProp r i)
-> ((MouseEvent -> i) -> Event -> i)
-> (MouseEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MouseEvent -> i) -> Event -> i
forall i. (MouseEvent -> i) -> Event -> i
mouseHandler
onWheel :: forall r i. (HasType "onWheel" WheelEvent r) => (WheelEvent -> i) -> IProp r i
onWheel :: forall (r :: Row (*)) i.
HasType "onWheel" WheelEvent r =>
(WheelEvent -> i) -> IProp r i
onWheel = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
WET.wheel ((Event -> i) -> IProp r i)
-> ((WheelEvent -> i) -> Event -> i)
-> (WheelEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (WheelEvent -> i) -> Event -> i
forall i. (WheelEvent -> i) -> Event -> i
wheelHandler
onKeyDown :: forall r i. (HasType "onKeyDown" KeyboardEvent r) => (KeyboardEvent -> i) -> IProp r i
onKeyDown :: forall (r :: Row (*)) i.
HasType "onKeyDown" KeyboardEvent r =>
(KeyboardEvent -> i) -> IProp r i
onKeyDown = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
KET.keydown ((Event -> i) -> IProp r i)
-> ((KeyboardEvent -> i) -> Event -> i)
-> (KeyboardEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (KeyboardEvent -> i) -> Event -> i
forall i. (KeyboardEvent -> i) -> Event -> i
keyHandler
onKeyUp :: forall r i. (HasType "onKeyUp" KeyboardEvent r) => (KeyboardEvent -> i) -> IProp r i
onKeyUp :: forall (r :: Row (*)) i.
HasType "onKeyUp" KeyboardEvent r =>
(KeyboardEvent -> i) -> IProp r i
onKeyUp = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
KET.keyup ((Event -> i) -> IProp r i)
-> ((KeyboardEvent -> i) -> Event -> i)
-> (KeyboardEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (KeyboardEvent -> i) -> Event -> i
forall i. (KeyboardEvent -> i) -> Event -> i
keyHandler
onBlur :: forall r i. (HasType "onBlur" FocusEvent r) => (FocusEvent -> i) -> IProp r i
onBlur :: forall (r :: Row (*)) i.
HasType "onBlur" FocusEvent r =>
(FocusEvent -> i) -> IProp r i
onBlur = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
ET.blur ((Event -> i) -> IProp r i)
-> ((FocusEvent -> i) -> Event -> i)
-> (FocusEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (FocusEvent -> i) -> Event -> i
forall i. (FocusEvent -> i) -> Event -> i
focusHandler
onFocus :: forall r i. (HasType "onFocus" FocusEvent r) => (FocusEvent -> i) -> IProp r i
onFocus :: forall (r :: Row (*)) i.
HasType "onFocus" FocusEvent r =>
(FocusEvent -> i) -> IProp r i
onFocus = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
FET.focus ((Event -> i) -> IProp r i)
-> ((FocusEvent -> i) -> Event -> i)
-> (FocusEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (FocusEvent -> i) -> Event -> i
forall i. (FocusEvent -> i) -> Event -> i
focusHandler
onFocusIn :: forall r i. (HasType "onFocusIn" FocusEvent r) => (FocusEvent -> i) -> IProp r i
onFocusIn :: forall (r :: Row (*)) i.
HasType "onFocusIn" FocusEvent r =>
(FocusEvent -> i) -> IProp r i
onFocusIn = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
FET.focusin ((Event -> i) -> IProp r i)
-> ((FocusEvent -> i) -> Event -> i)
-> (FocusEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (FocusEvent -> i) -> Event -> i
forall i. (FocusEvent -> i) -> Event -> i
focusHandler
onFocusOut :: forall r i. (HasType "onFocusOut" FocusEvent r) => (FocusEvent -> i) -> IProp r i
onFocusOut :: forall (r :: Row (*)) i.
HasType "onFocusOut" FocusEvent r =>
(FocusEvent -> i) -> IProp r i
onFocusOut = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
FET.focusout ((Event -> i) -> IProp r i)
-> ((FocusEvent -> i) -> Event -> i)
-> (FocusEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (FocusEvent -> i) -> Event -> i
forall i. (FocusEvent -> i) -> Event -> i
focusHandler
onDrag :: forall r i. (HasType "onDrag" DragEvent r) => (DragEvent -> i) -> IProp r i
onDrag :: forall (r :: Row (*)) i.
HasType "onDrag" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDrag = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.drag ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDragEnd :: forall r i. (HasType "onDragEnd" DragEvent r) => (DragEvent -> i) -> IProp r i
onDragEnd :: forall (r :: Row (*)) i.
HasType "onDragEnd" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDragEnd = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.dragend ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDragExit :: forall r i. (HasType "onDragExit" DragEvent r) => (DragEvent -> i) -> IProp r i
onDragExit :: forall (r :: Row (*)) i.
HasType "onDragExit" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDragExit = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.dragexit ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDragEnter :: forall r i. (HasType "onDragEnter" DragEvent r) => (DragEvent -> i) -> IProp r i
onDragEnter :: forall (r :: Row (*)) i.
HasType "onDragEnter" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDragEnter = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.dragenter ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDragLeave :: forall r i. (HasType "onDragLeave" DragEvent r) => (DragEvent -> i) -> IProp r i
onDragLeave :: forall (r :: Row (*)) i.
HasType "onDragLeave" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDragLeave = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.dragleave ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDragOver :: forall r i. (HasType "onDragOver" DragEvent r) => (DragEvent -> i) -> IProp r i
onDragOver :: forall (r :: Row (*)) i.
HasType "onDragOver" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDragOver = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.dragover ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDragStart :: forall r i. (HasType "onDragStart" DragEvent r) => (DragEvent -> i) -> IProp r i
onDragStart :: forall (r :: Row (*)) i.
HasType "onDragStart" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDragStart = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.dragstart ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onDrop :: forall r i. (HasType "onDrop" DragEvent r) => (DragEvent -> i) -> IProp r i
onDrop :: forall (r :: Row (*)) i.
HasType "onDrop" DragEvent r =>
(DragEvent -> i) -> IProp r i
onDrop = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler EventType
DET.drop ((Event -> i) -> IProp r i)
-> ((DragEvent -> i) -> Event -> i)
-> (DragEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (DragEvent -> i) -> Event -> i
forall i. (DragEvent -> i) -> Event -> i
dragHandler
onTouchCancel :: forall r i. (HasType "onTouchCancel" TouchEvent r) => (TouchEvent -> i) -> IProp r i
onTouchCancel :: forall (r :: Row (*)) i.
HasType "onTouchCancel" TouchEvent r =>
(TouchEvent -> i) -> IProp r i
onTouchCancel = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"touchcancel") ((Event -> i) -> IProp r i)
-> ((TouchEvent -> i) -> Event -> i)
-> (TouchEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TouchEvent -> i) -> Event -> i
forall i. (TouchEvent -> i) -> Event -> i
touchHandler
onTouchEnd :: forall r i. (HasType "onTouchEnd" TouchEvent r) => (TouchEvent -> i) -> IProp r i
onTouchEnd :: forall (r :: Row (*)) i.
HasType "onTouchEnd" TouchEvent r =>
(TouchEvent -> i) -> IProp r i
onTouchEnd = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"touchend") ((Event -> i) -> IProp r i)
-> ((TouchEvent -> i) -> Event -> i)
-> (TouchEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TouchEvent -> i) -> Event -> i
forall i. (TouchEvent -> i) -> Event -> i
touchHandler
onTouchEnter :: forall r i. (HasType "onTouchEnter" TouchEvent r) => (TouchEvent -> i) -> IProp r i
onTouchEnter :: forall (r :: Row (*)) i.
HasType "onTouchEnter" TouchEvent r =>
(TouchEvent -> i) -> IProp r i
onTouchEnter = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"touchenter") ((Event -> i) -> IProp r i)
-> ((TouchEvent -> i) -> Event -> i)
-> (TouchEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TouchEvent -> i) -> Event -> i
forall i. (TouchEvent -> i) -> Event -> i
touchHandler
onTouchLeave :: forall r i. (HasType "onTouchLeave" TouchEvent r) => (TouchEvent -> i) -> IProp r i
onTouchLeave :: forall (r :: Row (*)) i.
HasType "onTouchLeave" TouchEvent r =>
(TouchEvent -> i) -> IProp r i
onTouchLeave = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"touchleave") ((Event -> i) -> IProp r i)
-> ((TouchEvent -> i) -> Event -> i)
-> (TouchEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TouchEvent -> i) -> Event -> i
forall i. (TouchEvent -> i) -> Event -> i
touchHandler
onTouchMove :: forall r i. (HasType "onTouchMove" TouchEvent r) => (TouchEvent -> i) -> IProp r i
onTouchMove :: forall (r :: Row (*)) i.
HasType "onTouchMove" TouchEvent r =>
(TouchEvent -> i) -> IProp r i
onTouchMove = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"touchmove") ((Event -> i) -> IProp r i)
-> ((TouchEvent -> i) -> Event -> i)
-> (TouchEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TouchEvent -> i) -> Event -> i
forall i. (TouchEvent -> i) -> Event -> i
touchHandler
onTouchStart :: forall r i. (HasType "onTouchStart" TouchEvent r) => (TouchEvent -> i) -> IProp r i
onTouchStart :: forall (r :: Row (*)) i.
HasType "onTouchStart" TouchEvent r =>
(TouchEvent -> i) -> IProp r i
onTouchStart = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"touchstart") ((Event -> i) -> IProp r i)
-> ((TouchEvent -> i) -> Event -> i)
-> (TouchEvent -> i)
-> IProp r i
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TouchEvent -> i) -> Event -> i
forall i. (TouchEvent -> i) -> Event -> i
touchHandler
onResize :: forall r i. (HasType "onResize" Event r) => (Event -> i) -> IProp r i
onResize :: forall (r :: Row (*)) i.
HasType "onResize" Event r =>
(Event -> i) -> IProp r i
onResize = EventType -> (Event -> i) -> IProp r i
forall (r :: Row (*)) i. EventType -> (Event -> i) -> IProp r i
handler (Text -> EventType
EventType Text
"resize")
keyHandler :: forall i. (KeyboardEvent -> i) -> Event -> i
keyHandler :: forall i. (KeyboardEvent -> i) -> Event -> i
keyHandler = (KeyboardEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
mouseHandler :: forall i. (MouseEvent -> i) -> Event -> i
mouseHandler :: forall i. (MouseEvent -> i) -> Event -> i
mouseHandler = (MouseEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
wheelHandler :: forall i. (WheelEvent -> i) -> Event -> i
wheelHandler :: forall i. (WheelEvent -> i) -> Event -> i
wheelHandler = (WheelEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
focusHandler :: forall i. (FocusEvent -> i) -> Event -> i
focusHandler :: forall i. (FocusEvent -> i) -> Event -> i
focusHandler = (FocusEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
dragHandler :: forall i. (DragEvent -> i) -> Event -> i
dragHandler :: forall i. (DragEvent -> i) -> Event -> i
dragHandler = (DragEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
clipboardHandler :: forall i. (ClipboardEvent -> i) -> Event -> i
clipboardHandler :: forall i. (ClipboardEvent -> i) -> Event -> i
clipboardHandler = (ClipboardEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
touchHandler :: forall i. (TouchEvent -> i) -> Event -> i
touchHandler :: forall i. (TouchEvent -> i) -> Event -> i
touchHandler = (TouchEvent -> i) -> Event -> i
forall a b. Coercible a b => a -> b
coerce
addForeignPropHandler :: forall value tag r i. EventType -> Text -> (Foreign tag -> Maybe value) -> (value -> i) -> IProp r i
addForeignPropHandler :: forall {k} value (tag :: k) (r :: Row (*)) i.
EventType
-> Text
-> (Foreign tag -> Maybe value)
-> (value -> i)
-> IProp r i
addForeignPropHandler EventType
key Text
prop_ Foreign tag -> Maybe value
reader_ value -> i
f =
EventType -> (Event -> Maybe i) -> IProp r i
forall (r :: Row (*)) i.
EventType -> (Event -> Maybe i) -> IProp r i
handler' EventType
key ((Event -> Maybe i) -> IProp r i)
-> (Event -> Maybe i) -> IProp r i
forall a b. (a -> b) -> a -> b
$ Event -> Maybe EventTarget
EE.currentTarget (Event -> Maybe EventTarget)
-> (EventTarget -> Maybe i) -> Event -> Maybe i
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> EventTarget -> Maybe i
go
where
go :: EventTarget -> Maybe i
go EventTarget
a = value -> i
f (value -> i) -> Maybe value -> Maybe i
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> (Foreign tag -> Maybe value)
-> Foreign (ZonkAny 1)
-> Maybe value
forall {k1} {k2} (tag :: k1) a (tag' :: k2).
Text -> (Foreign tag -> Maybe a) -> Foreign tag' -> Maybe a
readProp Text
prop_ Foreign tag -> Maybe value
reader_ (EventTarget -> Foreign (ZonkAny 1)
forall a b. Coercible a b => a -> b
coerce EventTarget
a)
onValueChange :: forall r i. (HasType "value" Text r, HasType "onChange" Event r) => (Text -> i) -> IProp r i
onValueChange :: forall (r :: Row (*)) i.
(HasType "value" Text r, HasType "onChange" Event r) =>
(Text -> i) -> IProp r i
onValueChange = EventType
-> Text
-> (Foreign (ZonkAny 3) -> Maybe Text)
-> (Text -> i)
-> IProp r i
forall {k} value (tag :: k) (r :: Row (*)) i.
EventType
-> Text
-> (Foreign tag -> Maybe value)
-> (value -> i)
-> IProp r i
addForeignPropHandler EventType
ET.change Text
"value" (Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text)
-> (Foreign (ZonkAny 3) -> Text)
-> Foreign (ZonkAny 3)
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Foreign (ZonkAny 3) -> Text
forall {k} (tag :: k). Foreign tag -> Text
foreignToString)
onInputValueChange :: forall r i. (HasType "value" Text r, HasType "onInput" Event r) => (Text -> Maybe i) -> IProp r i
onInputValueChange :: forall (r :: Row (*)) i.
(HasType "value" Text r, HasType "onInput" Event r) =>
(Text -> Maybe i) -> IProp r i
onInputValueChange Text -> Maybe i
f = EventType -> (Event -> Maybe i) -> IProp r i
forall (r :: Row (*)) i.
EventType -> (Event -> Maybe i) -> IProp r i
handler' EventType
ET.input ((Event -> Maybe i) -> IProp r i)
-> (Event -> Maybe i) -> IProp r i
forall a b. (a -> b) -> a -> b
$ \Event
ev -> do
trg <- EventTarget -> Foreign (ZonkAny 11)
forall a b. Coercible a b => a -> b
coerce (EventTarget -> Foreign (ZonkAny 11))
-> Maybe EventTarget -> Maybe (Foreign (ZonkAny 11))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Event -> Maybe EventTarget
currentTarget Event
ev
readProp "value" (f . foreignToString) trg
onSelectedIndexChange :: forall r i. (HasType "selectedIndex" Int r, HasType "onChange" Event r) => (Int -> i) -> IProp r i
onSelectedIndexChange :: forall (r :: Row (*)) i.
(HasType "selectedIndex" Int r, HasType "onChange" Event r) =>
(Int -> i) -> IProp r i
onSelectedIndexChange = EventType
-> Text
-> (Foreign (ZonkAny 5) -> Maybe Int)
-> (Int -> i)
-> IProp r i
forall {k} value (tag :: k) (r :: Row (*)) i.
EventType
-> Text
-> (Foreign tag -> Maybe value)
-> (value -> i)
-> IProp r i
addForeignPropHandler EventType
ET.change Text
"selectedIndex" (Int -> Maybe Int
forall a. a -> Maybe a
Just (Int -> Maybe Int)
-> (Foreign (ZonkAny 5) -> Int) -> Foreign (ZonkAny 5) -> Maybe Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Foreign (ZonkAny 5) -> Int
forall {k} (tag :: k). Foreign tag -> Int
foreignToInt)
onValueInput :: forall r i. (HasType "value" Text r, HasType "onInput" Event r) => (Text -> i) -> IProp r i
onValueInput :: forall (r :: Row (*)) i.
(HasType "value" Text r, HasType "onInput" Event r) =>
(Text -> i) -> IProp r i
onValueInput = EventType
-> Text
-> (Foreign (ZonkAny 7) -> Maybe Text)
-> (Text -> i)
-> IProp r i
forall {k} value (tag :: k) (r :: Row (*)) i.
EventType
-> Text
-> (Foreign tag -> Maybe value)
-> (value -> i)
-> IProp r i
addForeignPropHandler EventType
ET.input Text
"value" (Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text)
-> (Foreign (ZonkAny 7) -> Text)
-> Foreign (ZonkAny 7)
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Foreign (ZonkAny 7) -> Text
forall {k} (tag :: k). Foreign tag -> Text
foreignToString)
onChecked :: forall r i. (HasType "checked" Bool r, HasType "onChange" Event r) => (Bool -> i) -> IProp r i
onChecked :: forall (r :: Row (*)) i.
(HasType "checked" Bool r, HasType "onChange" Event r) =>
(Bool -> i) -> IProp r i
onChecked = EventType
-> Text
-> (Foreign (ZonkAny 9) -> Maybe Bool)
-> (Bool -> i)
-> IProp r i
forall {k} value (tag :: k) (r :: Row (*)) i.
EventType
-> Text
-> (Foreign tag -> Maybe value)
-> (value -> i)
-> IProp r i
addForeignPropHandler EventType
ET.change Text
"checked" (Bool -> Maybe Bool
forall a. a -> Maybe a
Just (Bool -> Maybe Bool)
-> (Foreign (ZonkAny 9) -> Bool)
-> Foreign (ZonkAny 9)
-> Maybe Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Foreign (ZonkAny 9) -> Bool
forall {k} (tag :: k). Foreign tag -> Bool
foreignToBool)