{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.PerformanceObserverEntryList
       (getEntries, getEntries_, getEntriesByType, getEntriesByType_,
        getEntriesByName, getEntriesByName_,
        PerformanceObserverEntryList(..),
        gTypePerformanceObserverEntryList)
       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/PerformanceObserverEntryList.getEntries Mozilla PerformanceObserverEntryList.getEntries documentation> 
getEntries ::
           (MonadDOM m) =>
             PerformanceObserverEntryList -> m PerformanceEntryList
getEntries :: PerformanceObserverEntryList -> m PerformanceEntryList
getEntries PerformanceObserverEntryList
self
  = DOM PerformanceEntryList -> m PerformanceEntryList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceObserverEntryList
self PerformanceObserverEntryList
-> Getting (JSM JSVal) PerformanceObserverEntryList (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getEntries" ()) JSM JSVal
-> (JSVal -> DOM PerformanceEntryList) -> DOM PerformanceEntryList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM PerformanceEntryList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntries Mozilla PerformanceObserverEntryList.getEntries documentation> 
getEntries_ :: (MonadDOM m) => PerformanceObserverEntryList -> m ()
getEntries_ :: PerformanceObserverEntryList -> m ()
getEntries_ PerformanceObserverEntryList
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 (PerformanceObserverEntryList
self PerformanceObserverEntryList
-> Getting (JSM JSVal) PerformanceObserverEntryList (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getEntries" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntriesByType Mozilla PerformanceObserverEntryList.getEntriesByType documentation> 
getEntriesByType ::
                 (MonadDOM m, ToJSString type') =>
                   PerformanceObserverEntryList -> type' -> m PerformanceEntryList
getEntriesByType :: PerformanceObserverEntryList -> type' -> m PerformanceEntryList
getEntriesByType PerformanceObserverEntryList
self type'
type'
  = DOM PerformanceEntryList -> m PerformanceEntryList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((PerformanceObserverEntryList
self PerformanceObserverEntryList
-> Getting (JSM JSVal) PerformanceObserverEntryList (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getEntriesByType" [type' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal type'
type']) JSM JSVal
-> (JSVal -> DOM PerformanceEntryList) -> DOM PerformanceEntryList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM PerformanceEntryList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntriesByName Mozilla PerformanceObserverEntryList.getEntriesByName documentation> 
getEntriesByName ::
                 (MonadDOM m, ToJSString name, ToJSString type') =>
                   PerformanceObserverEntryList ->
                     name -> Maybe type' -> m PerformanceEntryList
getEntriesByName :: PerformanceObserverEntryList
-> name -> Maybe type' -> m PerformanceEntryList
getEntriesByName PerformanceObserverEntryList
self name
name Maybe type'
type'
  = DOM PerformanceEntryList -> m PerformanceEntryList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((PerformanceObserverEntryList
self PerformanceObserverEntryList
-> Getting (JSM JSVal) PerformanceObserverEntryList (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getEntriesByName" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name, Maybe type' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe type'
type']) JSM JSVal
-> (JSVal -> DOM PerformanceEntryList) -> DOM PerformanceEntryList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM PerformanceEntryList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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