{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.DOMTokenList
       (item, item_, itemUnsafe, itemUnchecked, contains, contains_, add,
        remove, toggle, toggle_, replace, supports, supports_, getLength,
        setValue, getValue, DOMTokenList(..), gTypeDOMTokenList)
       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/DOMTokenList.item Mozilla DOMTokenList.item documentation> 
item ::
     (MonadDOM m, FromJSString result) =>
       DOMTokenList -> Word -> m (Maybe result)
item :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
DOMTokenList -> Word -> m (Maybe result)
item DOMTokenList
self Word
index
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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 result)) -> DOM (Maybe result)
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 result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.contains Mozilla DOMTokenList.contains documentation> 
contains ::
         (MonadDOM m, ToJSString token) => DOMTokenList -> token -> m Bool
contains :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> m Bool
contains DOMTokenList
self token
token
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"contains" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
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 Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.contains Mozilla DOMTokenList.contains documentation> 
contains_ ::
          (MonadDOM m, ToJSString token) => DOMTokenList -> token -> m ()
contains_ :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> m ()
contains_ DOMTokenList
self token
token
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"contains" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.add Mozilla DOMTokenList.add documentation> 
add ::
    (MonadDOM m, ToJSString tokens) => DOMTokenList -> [tokens] -> m ()
add :: forall (m :: * -> *) tokens.
(MonadDOM m, ToJSString tokens) =>
DOMTokenList -> [tokens] -> m ()
add DOMTokenList
self [tokens]
tokens
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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" [JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([tokens] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [tokens]
tokens)]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.remove Mozilla DOMTokenList.remove documentation> 
remove ::
       (MonadDOM m, ToJSString tokens) => DOMTokenList -> [tokens] -> m ()
remove :: forall (m :: * -> *) tokens.
(MonadDOM m, ToJSString tokens) =>
DOMTokenList -> [tokens] -> m ()
remove DOMTokenList
self [tokens]
tokens
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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" [JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ([tokens] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array [tokens]
tokens)]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.toggle Mozilla DOMTokenList.toggle documentation> 
toggle ::
       (MonadDOM m, ToJSString token) =>
         DOMTokenList -> token -> Bool -> m Bool
toggle :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> Bool -> m Bool
toggle DOMTokenList
self token
token Bool
force
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"toggle" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
force]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
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 Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.toggle Mozilla DOMTokenList.toggle documentation> 
toggle_ ::
        (MonadDOM m, ToJSString token) =>
          DOMTokenList -> token -> Bool -> m ()
toggle_ :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> Bool -> m ()
toggle_ DOMTokenList
self token
token Bool
force
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"toggle" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
force]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.replace Mozilla DOMTokenList.replace documentation> 
replace ::
        (MonadDOM m, ToJSString token, ToJSString newToken) =>
          DOMTokenList -> token -> newToken -> m ()
replace :: forall (m :: * -> *) token newToken.
(MonadDOM m, ToJSString token, ToJSString newToken) =>
DOMTokenList -> token -> newToken -> m ()
replace DOMTokenList
self token
token newToken
newToken
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"replace" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token, newToken -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal newToken
newToken]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.supports Mozilla DOMTokenList.supports documentation> 
supports ::
         (MonadDOM m, ToJSString token) => DOMTokenList -> token -> m Bool
supports :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> m Bool
supports DOMTokenList
self token
token
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"supports" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
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 Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.supports Mozilla DOMTokenList.supports documentation> 
supports_ ::
          (MonadDOM m, ToJSString token) => DOMTokenList -> token -> m ()
supports_ :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> m ()
supports_ DOMTokenList
self token
token
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (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
"supports" [token -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal token
token]))

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.value Mozilla DOMTokenList.value documentation> 
setValue ::
         (MonadDOM m, ToJSString val) => DOMTokenList -> val -> m ()
setValue :: forall (m :: * -> *) token.
(MonadDOM m, ToJSString token) =>
DOMTokenList -> token -> m ()
setValue DOMTokenList
self val
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (DOMTokenList
self DOMTokenList -> Getting (DOM ()) DOMTokenList (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
"value" (val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.value Mozilla DOMTokenList.value documentation> 
getValue ::
         (MonadDOM m, FromJSString result) => DOMTokenList -> m result
getValue :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
DOMTokenList -> m result
getValue DOMTokenList
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMTokenList
self DOMTokenList
-> Getting (JSM JSVal) DOMTokenList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter DOMTokenList (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"value") JSM JSVal -> (JSVal -> DOM result) -> DOM result
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 result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)