{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGNumberList
       (clear, initialize, initialize_, getItem, getItem_,
        insertItemBefore, insertItemBefore_, replaceItem, replaceItem_,
        removeItem, removeItem_, appendItem, appendItem_, getNumberOfItems,
        SVGNumberList(..), gTypeSVGNumberList)
       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/SVGNumberList.clear Mozilla SVGNumberList.clear documentation> 
clear :: (MonadDOM m) => SVGNumberList -> m ()
clear :: forall (m :: * -> *). MonadDOM m => SVGNumberList -> m ()
clear SVGNumberList
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 (SVGNumberList
self SVGNumberList
-> Getting (JSM JSVal) SVGNumberList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"clear" ()))

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

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

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

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

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

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

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

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

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

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

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.numberOfItems Mozilla SVGNumberList.numberOfItems documentation> 
getNumberOfItems :: (MonadDOM m) => SVGNumberList -> m Word
getNumberOfItems :: forall (m :: * -> *). MonadDOM m => SVGNumberList -> m Word
getNumberOfItems SVGNumberList
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
<$> ((SVGNumberList
self SVGNumberList
-> Getting (JSM JSVal) SVGNumberList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter SVGNumberList (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"numberOfItems") 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))