{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.DOMNamedFlowCollection
       (item, item_, itemUnsafe, itemUnchecked, namedItem, namedItem_,
        namedItemUnsafe, namedItemUnchecked, getLength,
        DOMNamedFlowCollection(..), gTypeDOMNamedFlowCollection)
       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/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
item ::
     (MonadDOM m) =>
       DOMNamedFlowCollection -> Word -> m (Maybe WebKitNamedFlow)
item :: forall (m :: * -> *).
MonadDOM m =>
DOMNamedFlowCollection -> Word -> m (Maybe WebKitNamedFlow)
item DOMNamedFlowCollection
self Word
index
  = DOM (Maybe WebKitNamedFlow) -> m (Maybe WebKitNamedFlow)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMNamedFlowCollection
self DOMNamedFlowCollection
-> Getting (JSM JSVal) DOMNamedFlowCollection (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 (Maybe WebKitNamedFlow))
-> DOM (Maybe WebKitNamedFlow)
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 (Maybe WebKitNamedFlow)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
item_ :: (MonadDOM m) => DOMNamedFlowCollection -> Word -> m ()
item_ :: forall (m :: * -> *).
MonadDOM m =>
DOMNamedFlowCollection -> Word -> m ()
item_ DOMNamedFlowCollection
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 (DOMNamedFlowCollection
self DOMNamedFlowCollection
-> Getting (JSM JSVal) DOMNamedFlowCollection (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/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
itemUnsafe ::
           (MonadDOM m, HasCallStack) =>
             DOMNamedFlowCollection -> Word -> m WebKitNamedFlow
itemUnsafe :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
DOMNamedFlowCollection -> Word -> m WebKitNamedFlow
itemUnsafe DOMNamedFlowCollection
self Word
index
  = DOM WebKitNamedFlow -> m WebKitNamedFlow
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((DOMNamedFlowCollection
self DOMNamedFlowCollection
-> Getting (JSM JSVal) DOMNamedFlowCollection (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 (Maybe WebKitNamedFlow))
-> DOM (Maybe WebKitNamedFlow)
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 (Maybe WebKitNamedFlow)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe WebKitNamedFlow)
-> (Maybe WebKitNamedFlow -> DOM WebKitNamedFlow)
-> DOM WebKitNamedFlow
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM WebKitNamedFlow
-> (WebKitNamedFlow -> DOM WebKitNamedFlow)
-> Maybe WebKitNamedFlow
-> DOM WebKitNamedFlow
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM WebKitNamedFlow
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") WebKitNamedFlow -> DOM WebKitNamedFlow
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
itemUnchecked ::
              (MonadDOM m) => DOMNamedFlowCollection -> Word -> m WebKitNamedFlow
itemUnchecked :: forall (m :: * -> *).
MonadDOM m =>
DOMNamedFlowCollection -> Word -> m WebKitNamedFlow
itemUnchecked DOMNamedFlowCollection
self Word
index
  = DOM WebKitNamedFlow -> m WebKitNamedFlow
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((DOMNamedFlowCollection
self DOMNamedFlowCollection
-> Getting (JSM JSVal) DOMNamedFlowCollection (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 WebKitNamedFlow) -> DOM WebKitNamedFlow
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 WebKitNamedFlow
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
namedItem ::
          (MonadDOM m, ToJSString name) =>
            DOMNamedFlowCollection -> name -> m (Maybe WebKitNamedFlow)
namedItem :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name) =>
DOMNamedFlowCollection -> name -> m (Maybe WebKitNamedFlow)
namedItem DOMNamedFlowCollection
self name
name = DOM (Maybe WebKitNamedFlow) -> m (Maybe WebKitNamedFlow)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMNamedFlowCollection
self DOMNamedFlowCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name) JSM JSVal
-> (JSVal -> DOM (Maybe WebKitNamedFlow))
-> DOM (Maybe WebKitNamedFlow)
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 (Maybe WebKitNamedFlow)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
namedItem_ ::
           (MonadDOM m, ToJSString name) =>
             DOMNamedFlowCollection -> name -> m ()
namedItem_ :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name) =>
DOMNamedFlowCollection -> name -> m ()
namedItem_ DOMNamedFlowCollection
self name
name = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMNamedFlowCollection
self DOMNamedFlowCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
namedItemUnsafe ::
                (MonadDOM m, ToJSString name, HasCallStack) =>
                  DOMNamedFlowCollection -> name -> m WebKitNamedFlow
namedItemUnsafe :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name, HasCallStack) =>
DOMNamedFlowCollection -> name -> m WebKitNamedFlow
namedItemUnsafe DOMNamedFlowCollection
self name
name
  = DOM WebKitNamedFlow -> m WebKitNamedFlow
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((DOMNamedFlowCollection
self DOMNamedFlowCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name) JSM JSVal
-> (JSVal -> DOM (Maybe WebKitNamedFlow))
-> DOM (Maybe WebKitNamedFlow)
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 (Maybe WebKitNamedFlow)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe WebKitNamedFlow)
-> (Maybe WebKitNamedFlow -> DOM WebKitNamedFlow)
-> DOM WebKitNamedFlow
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM WebKitNamedFlow
-> (WebKitNamedFlow -> DOM WebKitNamedFlow)
-> Maybe WebKitNamedFlow
-> DOM WebKitNamedFlow
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM WebKitNamedFlow
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") WebKitNamedFlow -> DOM WebKitNamedFlow
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
namedItemUnchecked ::
                   (MonadDOM m, ToJSString name) =>
                     DOMNamedFlowCollection -> name -> m WebKitNamedFlow
namedItemUnchecked :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name) =>
DOMNamedFlowCollection -> name -> m WebKitNamedFlow
namedItemUnchecked DOMNamedFlowCollection
self name
name
  = DOM WebKitNamedFlow -> m WebKitNamedFlow
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMNamedFlowCollection
self DOMNamedFlowCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name) JSM JSVal -> (JSVal -> DOM WebKitNamedFlow) -> DOM WebKitNamedFlow
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 WebKitNamedFlow
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.length Mozilla WebKitNamedFlowCollection.length documentation> 
getLength :: (MonadDOM m) => DOMNamedFlowCollection -> m Word
getLength :: forall (m :: * -> *).
MonadDOM m =>
DOMNamedFlowCollection -> m Word
getLength DOMNamedFlowCollection
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
<$> ((DOMNamedFlowCollection
self DOMNamedFlowCollection
-> Getting (JSM JSVal) DOMNamedFlowCollection (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter DOMNamedFlowCollection (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))