packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/Event.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from dom (webref). Do not edit.
module JSDOM.Generated.Event
       (newEvent, composedPath, composedPath_, initEvent, preventDefault, stopImmediatePropagation, stopPropagation, getType, getTarget, getTargetUnsafe, getTargetUnchecked, getSrcElement, getSrcElementUnsafe, getSrcElementUnchecked, getCurrentTarget, getCurrentTargetUnsafe, getCurrentTargetUnchecked, getEventPhase, setCancelBubble, getCancelBubble, getBubbles, getCancelable, setReturnValue, getReturnValue, getDefaultPrevented, getComposed, getIsTrusted, getTimeStamp, pattern NONE, pattern CAPTURING_PHASE, pattern AT_TARGET, pattern BUBBLING_PHASE, Event(..), gTypeEvent, IsEvent, toEvent)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/Event/Event MDN Event. documentation>
newEvent :: (MonadDOM m, ToJSString type', IsEventInit eventInitDict) => type' -> Maybe eventInitDict -> m Event
newEvent type' eventInitDict = liftDOM (((new (jsg "Event") [toJSVal type', P.maybe (P.return jsUndefined) toJSVal eventInitDict]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/composedPath MDN Event.composedPath documentation>
composedPath :: (MonadDOM m, IsEvent self) => self -> m [EventTarget]
composedPath self = liftDOM ((((Types.toEvent self) ^. jsf "composedPath" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/composedPath MDN Event.composedPath documentation>
composedPath_ :: (MonadDOM m, IsEvent self) => self -> m ()
composedPath_ self = liftDOM (void ((Types.toEvent self) ^. jsf "composedPath" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Event/initEvent MDN Event.initEvent documentation>
initEvent :: (MonadDOM m, IsEvent self, ToJSString type') => self -> type' -> Maybe Bool -> Maybe Bool -> m ()
initEvent self type' bubbles cancelable = liftDOM (void ((Types.toEvent self) ^. jsf "initEvent" [toJSVal type', P.maybe (P.return jsUndefined) toJSVal bubbles, P.maybe (P.return jsUndefined) toJSVal cancelable]))

-- | <https://developer.mozilla.org/docs/Web/API/Event/preventDefault MDN Event.preventDefault documentation>
preventDefault :: (MonadDOM m, IsEvent self) => self -> m ()
preventDefault self = liftDOM (void ((Types.toEvent self) ^. jsf "preventDefault" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation MDN Event.stopImmediatePropagation documentation>
stopImmediatePropagation :: (MonadDOM m, IsEvent self) => self -> m ()
stopImmediatePropagation self = liftDOM (void ((Types.toEvent self) ^. jsf "stopImmediatePropagation" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Event/stopPropagation MDN Event.stopPropagation documentation>
stopPropagation :: (MonadDOM m, IsEvent self) => self -> m ()
stopPropagation self = liftDOM (void ((Types.toEvent self) ^. jsf "stopPropagation" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Event/type MDN Event.type documentation>
getType :: (MonadDOM m, IsEvent self, FromJSString result) => self -> m result
getType self = liftDOM ((((Types.toEvent self) ^. js "type") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/target MDN Event.target documentation>
getTarget :: (MonadDOM m, IsEvent self) => self -> m (Maybe EventTarget)
getTarget self = liftDOM ((((Types.toEvent self) ^. js "target") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/target MDN Event.target documentation>
getTargetUnsafe :: (MonadDOM m, IsEvent self, HasCallStack) => self -> m EventTarget
getTargetUnsafe self = liftDOM (((((Types.toEvent self) ^. js "target") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Event/target MDN Event.target documentation>
getTargetUnchecked :: (MonadDOM m, IsEvent self) => self -> m EventTarget
getTargetUnchecked self = liftDOM ((((Types.toEvent self) ^. js "target") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/srcElement MDN Event.srcElement documentation>
getSrcElement :: (MonadDOM m, IsEvent self) => self -> m (Maybe EventTarget)
getSrcElement self = liftDOM ((((Types.toEvent self) ^. js "srcElement") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/srcElement MDN Event.srcElement documentation>
getSrcElementUnsafe :: (MonadDOM m, IsEvent self, HasCallStack) => self -> m EventTarget
getSrcElementUnsafe self = liftDOM (((((Types.toEvent self) ^. js "srcElement") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Event/srcElement MDN Event.srcElement documentation>
getSrcElementUnchecked :: (MonadDOM m, IsEvent self) => self -> m EventTarget
getSrcElementUnchecked self = liftDOM ((((Types.toEvent self) ^. js "srcElement") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/currentTarget MDN Event.currentTarget documentation>
getCurrentTarget :: (MonadDOM m, IsEvent self) => self -> m (Maybe EventTarget)
getCurrentTarget self = liftDOM ((((Types.toEvent self) ^. js "currentTarget") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/currentTarget MDN Event.currentTarget documentation>
getCurrentTargetUnsafe :: (MonadDOM m, IsEvent self, HasCallStack) => self -> m EventTarget
getCurrentTargetUnsafe self = liftDOM (((((Types.toEvent self) ^. js "currentTarget") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Event/currentTarget MDN Event.currentTarget documentation>
getCurrentTargetUnchecked :: (MonadDOM m, IsEvent self) => self -> m EventTarget
getCurrentTargetUnchecked self = liftDOM ((((Types.toEvent self) ^. js "currentTarget") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Event/eventPhase MDN Event.eventPhase documentation>
getEventPhase :: (MonadDOM m, IsEvent self) => self -> m Word
getEventPhase self = liftDOM ((P.round <$> (((Types.toEvent self) ^. js "eventPhase") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/Event/cancelBubble MDN Event.cancelBubble documentation>
setCancelBubble :: (MonadDOM m, IsEvent self) => self -> Bool -> m ()
setCancelBubble self val = liftDOM (void ((Types.toEvent self) ^. jss "cancelBubble" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Event/cancelBubble MDN Event.cancelBubble documentation>
getCancelBubble :: (MonadDOM m, IsEvent self) => self -> m Bool
getCancelBubble self = liftDOM ((((Types.toEvent self) ^. js "cancelBubble") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/bubbles MDN Event.bubbles documentation>
getBubbles :: (MonadDOM m, IsEvent self) => self -> m Bool
getBubbles self = liftDOM ((((Types.toEvent self) ^. js "bubbles") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/cancelable MDN Event.cancelable documentation>
getCancelable :: (MonadDOM m, IsEvent self) => self -> m Bool
getCancelable self = liftDOM ((((Types.toEvent self) ^. js "cancelable") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/returnValue MDN Event.returnValue documentation>
setReturnValue :: (MonadDOM m, IsEvent self) => self -> Bool -> m ()
setReturnValue self val = liftDOM (void ((Types.toEvent self) ^. jss "returnValue" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Event/returnValue MDN Event.returnValue documentation>
getReturnValue :: (MonadDOM m, IsEvent self) => self -> m Bool
getReturnValue self = liftDOM ((((Types.toEvent self) ^. js "returnValue") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented MDN Event.defaultPrevented documentation>
getDefaultPrevented :: (MonadDOM m, IsEvent self) => self -> m Bool
getDefaultPrevented self = liftDOM ((((Types.toEvent self) ^. js "defaultPrevented") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/composed MDN Event.composed documentation>
getComposed :: (MonadDOM m, IsEvent self) => self -> m Bool
getComposed self = liftDOM ((((Types.toEvent self) ^. js "composed") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/isTrusted MDN Event.isTrusted documentation>
getIsTrusted :: (MonadDOM m, IsEvent self) => self -> m Bool
getIsTrusted self = liftDOM ((((Types.toEvent self) ^. js "isTrusted") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Event/timeStamp MDN Event.timeStamp documentation>
getTimeStamp :: (MonadDOM m, IsEvent self) => self -> m Double
getTimeStamp self = liftDOM ((((Types.toEvent self) ^. js "timeStamp") >>= valToNumber))

pattern NONE = 0

pattern CAPTURING_PHASE = 1

pattern AT_TARGET = 2

pattern BUBBLING_PHASE = 3