{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.TextTrackCueList
       (item, item_, getCueById, getCueById_, getLength,
        TextTrackCueList(..), gTypeTextTrackCueList)
       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/TextTrackCueList.item Mozilla TextTrackCueList.item documentation> 
item :: (MonadDOM m) => TextTrackCueList -> Word -> m TextTrackCue
item :: forall (m :: * -> *).
MonadDOM m =>
TextTrackCueList -> Word -> m TextTrackCue
item TextTrackCueList
self Word
index
  = DOM TextTrackCue -> m TextTrackCue
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((TextTrackCueList
self TextTrackCueList
-> Getting (JSM JSVal) TextTrackCueList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"item" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM TextTrackCue) -> DOM TextTrackCue
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 TextTrackCue
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.item Mozilla TextTrackCueList.item documentation> 
item_ :: (MonadDOM m) => TextTrackCueList -> Word -> m ()
item_ :: forall (m :: * -> *).
MonadDOM m =>
TextTrackCueList -> Word -> m ()
item_ TextTrackCueList
self Word
index
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (TextTrackCueList
self TextTrackCueList
-> Getting (JSM JSVal) TextTrackCueList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"item" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.getCueById Mozilla TextTrackCueList.getCueById documentation> 
getCueById ::
           (MonadDOM m, ToJSString id) =>
             TextTrackCueList -> id -> m TextTrackCue
getCueById :: forall (m :: * -> *) id.
(MonadDOM m, ToJSString id) =>
TextTrackCueList -> id -> m TextTrackCue
getCueById TextTrackCueList
self id
id
  = DOM TextTrackCue -> m TextTrackCue
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((TextTrackCueList
self TextTrackCueList
-> Getting (JSM JSVal) TextTrackCueList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getCueById" [id -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal id
id]) JSM JSVal -> (JSVal -> DOM TextTrackCue) -> DOM TextTrackCue
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 TextTrackCue
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.getCueById Mozilla TextTrackCueList.getCueById documentation> 
getCueById_ ::
            (MonadDOM m, ToJSString id) => TextTrackCueList -> id -> m ()
getCueById_ :: forall (m :: * -> *) id.
(MonadDOM m, ToJSString id) =>
TextTrackCueList -> id -> m ()
getCueById_ TextTrackCueList
self id
id
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (TextTrackCueList
self TextTrackCueList
-> Getting (JSM JSVal) TextTrackCueList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getCueById" [id -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal id
id]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.length Mozilla TextTrackCueList.length documentation> 
getLength :: (MonadDOM m) => TextTrackCueList -> m Word
getLength :: forall (m :: * -> *). MonadDOM m => TextTrackCueList -> m Word
getLength TextTrackCueList
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((TextTrackCueList
self TextTrackCueList
-> Getting (JSM JSVal) TextTrackCueList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter TextTrackCueList (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"length") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))