{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.Animatable
       (getAnimations, getAnimations_, Animatable(..), gTypeAnimatable,
        IsAnimatable, toAnimatable)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animatable.getAnimations Mozilla Animatable.getAnimations documentation> 
getAnimations ::
              (MonadDOM m, IsAnimatable self) => self -> m [Animation]
getAnimations :: forall (m :: * -> *) self.
(MonadDOM m, IsAnimatable self) =>
self -> m [Animation]
getAnimations self
self
  = DOM [Animation] -> m [Animation]
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Animatable
forall o. IsAnimatable o => o -> Animatable
toAnimatable self
self) Animatable
-> Getting (JSM JSVal) Animatable (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getAnimations" ()) JSM JSVal -> (JSVal -> DOM [Animation]) -> DOM [Animation]
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM [Animation]
forall o. FromJSVal o => JSVal -> JSM [o]
fromJSArrayUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animatable.getAnimations Mozilla Animatable.getAnimations documentation> 
getAnimations_ :: (MonadDOM m, IsAnimatable self) => self -> m ()
getAnimations_ :: forall (m :: * -> *) self.
(MonadDOM m, IsAnimatable self) =>
self -> m ()
getAnimations_ self
self
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Animatable
forall o. IsAnimatable o => o -> Animatable
toAnimatable self
self) Animatable
-> Getting (JSM JSVal) Animatable (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getAnimations" ()))