{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.HTMLFormControlsCollection
       (get, get_, getUnsafe, getUnchecked, namedItem, namedItem_,
        namedItemUnsafe, namedItemUnchecked,
        HTMLFormControlsCollection(..), gTypeHTMLFormControlsCollection)
       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/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
get ::
    (MonadDOM m) =>
      HTMLFormControlsCollection -> Word -> m (Maybe HTMLElement)
get :: forall (m :: * -> *).
MonadDOM m =>
HTMLFormControlsCollection -> Word -> m (Maybe HTMLElement)
get HTMLFormControlsCollection
self Word
index
  = DOM (Maybe HTMLElement) -> m (Maybe HTMLElement)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((HTMLFormControlsCollection
self HTMLFormControlsCollection
-> Getting (JSM JSVal) HTMLFormControlsCollection (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
"get" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal
-> (JSVal -> DOM (Maybe HTMLElement)) -> DOM (Maybe HTMLElement)
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 HTMLElement)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
get_ :: (MonadDOM m) => HTMLFormControlsCollection -> Word -> m ()
get_ :: forall (m :: * -> *).
MonadDOM m =>
HTMLFormControlsCollection -> Word -> m ()
get_ HTMLFormControlsCollection
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 (HTMLFormControlsCollection
self HTMLFormControlsCollection
-> Getting (JSM JSVal) HTMLFormControlsCollection (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
"get" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
getUnsafe ::
          (MonadDOM m, HasCallStack) =>
            HTMLFormControlsCollection -> Word -> m HTMLElement
getUnsafe :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
HTMLFormControlsCollection -> Word -> m HTMLElement
getUnsafe HTMLFormControlsCollection
self Word
index
  = DOM HTMLElement -> m HTMLElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((HTMLFormControlsCollection
self HTMLFormControlsCollection
-> Getting (JSM JSVal) HTMLFormControlsCollection (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
"get" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal
-> (JSVal -> DOM (Maybe HTMLElement)) -> DOM (Maybe HTMLElement)
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 HTMLElement)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe HTMLElement)
-> (Maybe HTMLElement -> DOM HTMLElement) -> DOM HTMLElement
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM HTMLElement
-> (HTMLElement -> DOM HTMLElement)
-> Maybe HTMLElement
-> DOM HTMLElement
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM HTMLElement
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") HTMLElement -> DOM HTMLElement
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
getUnchecked ::
             (MonadDOM m) => HTMLFormControlsCollection -> Word -> m HTMLElement
getUnchecked :: forall (m :: * -> *).
MonadDOM m =>
HTMLFormControlsCollection -> Word -> m HTMLElement
getUnchecked HTMLFormControlsCollection
self Word
index
  = DOM HTMLElement -> m HTMLElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((HTMLFormControlsCollection
self HTMLFormControlsCollection
-> Getting (JSM JSVal) HTMLFormControlsCollection (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
"get" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM HTMLElement) -> DOM HTMLElement
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 HTMLElement
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

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

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