packages feed

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

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from web-animations-1 (webref). Do not edit.
module JSDOM.Generated.Animation
       (newAnimation, cancel, commitStyles, finish, pause, persist, play, reverse, updatePlaybackRate, setId, getId, setEffect, getEffect, getEffectUnsafe, getEffectUnchecked, setTimeline, getTimeline, getTimelineUnsafe, getTimelineUnchecked, setPlaybackRate, getPlaybackRate, getPlayState, getReplaceState, getPending, getReady, getFinished, setStartTime, getStartTime, getStartTimeUnsafe, getStartTimeUnchecked, setCurrentTime, getCurrentTime, getCurrentTimeUnsafe, getCurrentTimeUnchecked, getOverallProgress, getOverallProgressUnsafe, getOverallProgressUnchecked, finishEvent, cancelEvent, remove, Animation(..), gTypeAnimation, IsAnimation, toAnimation)
       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/Animation/Animation MDN Animation. documentation>
newAnimation :: (MonadDOM m, IsAnimationEffect effect, IsAnimationTimeline timeline) => Maybe effect -> Maybe timeline -> m Animation
newAnimation effect timeline = liftDOM (((new (jsg "Animation") [toJSVal effect, toJSVal timeline]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/cancel MDN Animation.cancel documentation>
cancel :: (MonadDOM m, IsAnimation self) => self -> m ()
cancel self = liftDOM (void ((Types.toAnimation self) ^. jsf "cancel" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/commitStyles MDN Animation.commitStyles documentation>
commitStyles :: (MonadDOM m, IsAnimation self) => self -> m ()
commitStyles self = liftDOM (void ((Types.toAnimation self) ^. jsf "commitStyles" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/finish MDN Animation.finish documentation>
finish :: (MonadDOM m, IsAnimation self) => self -> m ()
finish self = liftDOM (void ((Types.toAnimation self) ^. jsf "finish" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/pause MDN Animation.pause documentation>
pause :: (MonadDOM m, IsAnimation self) => self -> m ()
pause self = liftDOM (void ((Types.toAnimation self) ^. jsf "pause" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/persist MDN Animation.persist documentation>
persist :: (MonadDOM m, IsAnimation self) => self -> m ()
persist self = liftDOM (void ((Types.toAnimation self) ^. jsf "persist" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/play MDN Animation.play documentation>
play :: (MonadDOM m, IsAnimation self) => self -> m ()
play self = liftDOM (void ((Types.toAnimation self) ^. jsf "play" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/reverse MDN Animation.reverse documentation>
reverse :: (MonadDOM m, IsAnimation self) => self -> m ()
reverse self = liftDOM (void ((Types.toAnimation self) ^. jsf "reverse" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/updatePlaybackRate MDN Animation.updatePlaybackRate documentation>
updatePlaybackRate :: (MonadDOM m, IsAnimation self) => self -> Double -> m ()
updatePlaybackRate self playbackRate = liftDOM (void ((Types.toAnimation self) ^. jsf "updatePlaybackRate" [toJSVal playbackRate]))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/id MDN Animation.id documentation>
setId :: (MonadDOM m, IsAnimation self, ToJSString val) => self -> val -> m ()
setId self val = liftDOM (void ((Types.toAnimation self) ^. jss "id" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/id MDN Animation.id documentation>
getId :: (MonadDOM m, IsAnimation self, FromJSString result) => self -> m result
getId self = liftDOM ((((Types.toAnimation self) ^. js "id") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/effect MDN Animation.effect documentation>
setEffect :: (MonadDOM m, IsAnimation self, IsAnimationEffect val) => self -> Maybe val -> m ()
setEffect self val = liftDOM (void ((Types.toAnimation self) ^. jss "effect" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/effect MDN Animation.effect documentation>
getEffect :: (MonadDOM m, IsAnimation self) => self -> m (Maybe AnimationEffect)
getEffect self = liftDOM ((((Types.toAnimation self) ^. js "effect") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/effect MDN Animation.effect documentation>
getEffectUnsafe :: (MonadDOM m, IsAnimation self, HasCallStack) => self -> m AnimationEffect
getEffectUnsafe self = liftDOM (((((Types.toAnimation self) ^. js "effect") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/effect MDN Animation.effect documentation>
getEffectUnchecked :: (MonadDOM m, IsAnimation self) => self -> m AnimationEffect
getEffectUnchecked self = liftDOM ((((Types.toAnimation self) ^. js "effect") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/timeline MDN Animation.timeline documentation>
setTimeline :: (MonadDOM m, IsAnimation self, IsAnimationTimeline val) => self -> Maybe val -> m ()
setTimeline self val = liftDOM (void ((Types.toAnimation self) ^. jss "timeline" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/timeline MDN Animation.timeline documentation>
getTimeline :: (MonadDOM m, IsAnimation self) => self -> m (Maybe AnimationTimeline)
getTimeline self = liftDOM ((((Types.toAnimation self) ^. js "timeline") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/timeline MDN Animation.timeline documentation>
getTimelineUnsafe :: (MonadDOM m, IsAnimation self, HasCallStack) => self -> m AnimationTimeline
getTimelineUnsafe self = liftDOM (((((Types.toAnimation self) ^. js "timeline") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/timeline MDN Animation.timeline documentation>
getTimelineUnchecked :: (MonadDOM m, IsAnimation self) => self -> m AnimationTimeline
getTimelineUnchecked self = liftDOM ((((Types.toAnimation self) ^. js "timeline") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/playbackRate MDN Animation.playbackRate documentation>
setPlaybackRate :: (MonadDOM m, IsAnimation self) => self -> Double -> m ()
setPlaybackRate self val = liftDOM (void ((Types.toAnimation self) ^. jss "playbackRate" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/playbackRate MDN Animation.playbackRate documentation>
getPlaybackRate :: (MonadDOM m, IsAnimation self) => self -> m Double
getPlaybackRate self = liftDOM ((((Types.toAnimation self) ^. js "playbackRate") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/playState MDN Animation.playState documentation>
getPlayState :: (MonadDOM m, IsAnimation self) => self -> m AnimationPlayState
getPlayState self = liftDOM ((((Types.toAnimation self) ^. js "playState") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/replaceState MDN Animation.replaceState documentation>
getReplaceState :: (MonadDOM m, IsAnimation self) => self -> m AnimationReplaceState
getReplaceState self = liftDOM ((((Types.toAnimation self) ^. js "replaceState") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/pending MDN Animation.pending documentation>
getPending :: (MonadDOM m, IsAnimation self) => self -> m Bool
getPending self = liftDOM ((((Types.toAnimation self) ^. js "pending") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/ready MDN Animation.ready documentation>
getReady :: (MonadDOM m, IsAnimation self) => self -> m Animation
getReady self = liftDOM ((((((Types.toAnimation self) ^. js "ready") >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/finished MDN Animation.finished documentation>
getFinished :: (MonadDOM m, IsAnimation self) => self -> m Animation
getFinished self = liftDOM ((((((Types.toAnimation self) ^. js "finished") >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/startTime MDN Animation.startTime documentation>
setStartTime :: (MonadDOM m, IsAnimation self, IsCSSNumberish val) => self -> Maybe val -> m ()
setStartTime self val = liftDOM (void ((Types.toAnimation self) ^. jss "startTime" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/startTime MDN Animation.startTime documentation>
getStartTime :: (MonadDOM m, IsAnimation self) => self -> m (Maybe CSSNumberish)
getStartTime self = liftDOM ((((Types.toAnimation self) ^. js "startTime") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/startTime MDN Animation.startTime documentation>
getStartTimeUnsafe :: (MonadDOM m, IsAnimation self, HasCallStack) => self -> m CSSNumberish
getStartTimeUnsafe self = liftDOM (((((Types.toAnimation self) ^. js "startTime") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/startTime MDN Animation.startTime documentation>
getStartTimeUnchecked :: (MonadDOM m, IsAnimation self) => self -> m CSSNumberish
getStartTimeUnchecked self = liftDOM ((((Types.toAnimation self) ^. js "startTime") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/currentTime MDN Animation.currentTime documentation>
setCurrentTime :: (MonadDOM m, IsAnimation self, IsCSSNumberish val) => self -> Maybe val -> m ()
setCurrentTime self val = liftDOM (void ((Types.toAnimation self) ^. jss "currentTime" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/currentTime MDN Animation.currentTime documentation>
getCurrentTime :: (MonadDOM m, IsAnimation self) => self -> m (Maybe CSSNumberish)
getCurrentTime self = liftDOM ((((Types.toAnimation self) ^. js "currentTime") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/currentTime MDN Animation.currentTime documentation>
getCurrentTimeUnsafe :: (MonadDOM m, IsAnimation self, HasCallStack) => self -> m CSSNumberish
getCurrentTimeUnsafe self = liftDOM (((((Types.toAnimation self) ^. js "currentTime") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/currentTime MDN Animation.currentTime documentation>
getCurrentTimeUnchecked :: (MonadDOM m, IsAnimation self) => self -> m CSSNumberish
getCurrentTimeUnchecked self = liftDOM ((((Types.toAnimation self) ^. js "currentTime") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/overallProgress MDN Animation.overallProgress documentation>
getOverallProgress :: (MonadDOM m, IsAnimation self) => self -> m (Maybe Double)
getOverallProgress self = liftDOM ((((Types.toAnimation self) ^. js "overallProgress") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/overallProgress MDN Animation.overallProgress documentation>
getOverallProgressUnsafe :: (MonadDOM m, IsAnimation self, HasCallStack) => self -> m Double
getOverallProgressUnsafe self = liftDOM (((((Types.toAnimation self) ^. js "overallProgress") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Animation/overallProgress MDN Animation.overallProgress documentation>
getOverallProgressUnchecked :: (MonadDOM m, IsAnimation self) => self -> m Double
getOverallProgressUnchecked self = liftDOM ((((Types.toAnimation self) ^. js "overallProgress") >>= valToNumber))

-- | <https://drafts.csswg.org/web-animations-1/#dom-animation-onfinish finish event>
finishEvent :: (IsAnimation self, IsEventTarget self) => EventName self AnimationPlaybackEvent
finishEvent = unsafeEventName (toJSString "finish")

-- | <https://drafts.csswg.org/web-animations-1/#dom-animation-oncancel cancel event>
cancelEvent :: (IsAnimation self, IsEventTarget self) => EventName self AnimationPlaybackEvent
cancelEvent = unsafeEventName (toJSString "cancel")

-- | <https://drafts.csswg.org/web-animations-1/#dom-animation-onremove remove event>
remove :: (IsAnimation self, IsEventTarget self) => EventName self AnimationPlaybackEvent
remove = unsafeEventName (toJSString "remove")