{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.HTMLOptionsCollection
(addBefore, remove, item, item_, itemUnsafe, itemUnchecked,
namedItem, namedItem_, namedItemUnsafe, namedItemUnchecked,
setLength, getLength, setSelectedIndex, getSelectedIndex,
HTMLOptionsCollection(..), gTypeHTMLOptionsCollection)
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
addBefore ::
(MonadDOM m, IsHTMLOptionElementOrGroup element,
IsHTMLElementOrLong before) =>
HTMLOptionsCollection -> element -> Maybe before -> m ()
addBefore :: forall (m :: * -> *) element before.
(MonadDOM m, IsHTMLOptionElementOrGroup element,
IsHTMLElementOrLong before) =>
HTMLOptionsCollection -> element -> Maybe before -> m ()
addBefore HTMLOptionsCollection
self element
element Maybe before
before
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (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
"add" [element -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal element
element, Maybe before -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe before
before]))
remove :: (MonadDOM m) => HTMLOptionsCollection -> Int -> m ()
remove :: forall (m :: * -> *).
MonadDOM m =>
HTMLOptionsCollection -> Int -> m ()
remove HTMLOptionsCollection
self Int
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 (HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (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
"remove" [Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
index]))
item ::
(MonadDOM m) =>
HTMLOptionsCollection -> Word -> m (Maybe HTMLOptionElement)
item :: forall (m :: * -> *).
MonadDOM m =>
HTMLOptionsCollection -> Word -> m (Maybe HTMLOptionElement)
item HTMLOptionsCollection
self Word
index
= DOM (Maybe HTMLOptionElement) -> m (Maybe HTMLOptionElement)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (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 HTMLOptionElement))
-> DOM (Maybe HTMLOptionElement)
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 HTMLOptionElement)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
item_ :: (MonadDOM m) => HTMLOptionsCollection -> Word -> m ()
item_ :: forall (m :: * -> *).
MonadDOM m =>
HTMLOptionsCollection -> Word -> m ()
item_ HTMLOptionsCollection
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 (HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (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]))
itemUnsafe ::
(MonadDOM m, HasCallStack) =>
HTMLOptionsCollection -> Word -> m HTMLOptionElement
itemUnsafe :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
HTMLOptionsCollection -> Word -> m HTMLOptionElement
itemUnsafe HTMLOptionsCollection
self Word
index
= DOM HTMLOptionElement -> m HTMLOptionElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (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 HTMLOptionElement))
-> DOM (Maybe HTMLOptionElement)
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 HTMLOptionElement)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe HTMLOptionElement)
-> (Maybe HTMLOptionElement -> DOM HTMLOptionElement)
-> DOM HTMLOptionElement
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM HTMLOptionElement
-> (HTMLOptionElement -> DOM HTMLOptionElement)
-> Maybe HTMLOptionElement
-> DOM HTMLOptionElement
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM HTMLOptionElement
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") HTMLOptionElement -> DOM HTMLOptionElement
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)
itemUnchecked ::
(MonadDOM m) =>
HTMLOptionsCollection -> Word -> m HTMLOptionElement
itemUnchecked :: forall (m :: * -> *).
MonadDOM m =>
HTMLOptionsCollection -> Word -> m HTMLOptionElement
itemUnchecked HTMLOptionsCollection
self Word
index
= DOM HTMLOptionElement -> m HTMLOptionElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (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 HTMLOptionElement) -> DOM HTMLOptionElement
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 HTMLOptionElement
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
namedItem ::
(MonadDOM m, ToJSString name) =>
HTMLOptionsCollection -> name -> m (Maybe HTMLOptionElement)
namedItem :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name) =>
HTMLOptionsCollection -> name -> m (Maybe HTMLOptionElement)
namedItem HTMLOptionsCollection
self name
name = DOM (Maybe HTMLOptionElement) -> m (Maybe HTMLOptionElement)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((HTMLOptionsCollection
self HTMLOptionsCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name) JSM JSVal
-> (JSVal -> DOM (Maybe HTMLOptionElement))
-> DOM (Maybe HTMLOptionElement)
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 HTMLOptionElement)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
namedItem_ ::
(MonadDOM m, ToJSString name) =>
HTMLOptionsCollection -> name -> m ()
namedItem_ :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name) =>
HTMLOptionsCollection -> name -> m ()
namedItem_ HTMLOptionsCollection
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 (HTMLOptionsCollection
self HTMLOptionsCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name))
namedItemUnsafe ::
(MonadDOM m, ToJSString name, HasCallStack) =>
HTMLOptionsCollection -> name -> m HTMLOptionElement
namedItemUnsafe :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name, HasCallStack) =>
HTMLOptionsCollection -> name -> m HTMLOptionElement
namedItemUnsafe HTMLOptionsCollection
self name
name
= DOM HTMLOptionElement -> m HTMLOptionElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((HTMLOptionsCollection
self HTMLOptionsCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name) JSM JSVal
-> (JSVal -> DOM (Maybe HTMLOptionElement))
-> DOM (Maybe HTMLOptionElement)
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 HTMLOptionElement)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe HTMLOptionElement)
-> (Maybe HTMLOptionElement -> DOM HTMLOptionElement)
-> DOM HTMLOptionElement
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM HTMLOptionElement
-> (HTMLOptionElement -> DOM HTMLOptionElement)
-> Maybe HTMLOptionElement
-> DOM HTMLOptionElement
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM HTMLOptionElement
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") HTMLOptionElement -> DOM HTMLOptionElement
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)
namedItemUnchecked ::
(MonadDOM m, ToJSString name) =>
HTMLOptionsCollection -> name -> m HTMLOptionElement
namedItemUnchecked :: forall (m :: * -> *) name.
(MonadDOM m, ToJSString name) =>
HTMLOptionsCollection -> name -> m HTMLOptionElement
namedItemUnchecked HTMLOptionsCollection
self name
name
= DOM HTMLOptionElement -> m HTMLOptionElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((HTMLOptionsCollection
self HTMLOptionsCollection -> name -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! name
name) JSM JSVal
-> (JSVal -> DOM HTMLOptionElement) -> DOM HTMLOptionElement
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 HTMLOptionElement
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
setLength :: (MonadDOM m) => HTMLOptionsCollection -> Word -> m ()
setLength :: forall (m :: * -> *).
MonadDOM m =>
HTMLOptionsCollection -> Word -> m ()
setLength HTMLOptionsCollection
self Word
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (DOM ()) HTMLOptionsCollection (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. String
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss String
"length" (Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
val))
getLength :: (MonadDOM m) => HTMLOptionsCollection -> m Word
getLength :: forall (m :: * -> *). MonadDOM m => HTMLOptionsCollection -> m Word
getLength HTMLOptionsCollection
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
<$> ((HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter HTMLOptionsCollection (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))
setSelectedIndex ::
(MonadDOM m) => HTMLOptionsCollection -> Int -> m ()
setSelectedIndex :: forall (m :: * -> *).
MonadDOM m =>
HTMLOptionsCollection -> Int -> m ()
setSelectedIndex HTMLOptionsCollection
self Int
val
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (DOM ()) HTMLOptionsCollection (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. String
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss String
"selectedIndex" (Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
val))
getSelectedIndex :: (MonadDOM m) => HTMLOptionsCollection -> m Int
getSelectedIndex :: forall (m :: * -> *). MonadDOM m => HTMLOptionsCollection -> m Int
getSelectedIndex HTMLOptionsCollection
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((HTMLOptionsCollection
self HTMLOptionsCollection
-> Getting (JSM JSVal) HTMLOptionsCollection (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter HTMLOptionsCollection (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"selectedIndex") 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))