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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.initialize Mozilla SVGTransformList.initialize documentation> 
initialize ::
           (MonadDOM m) => SVGTransformList -> SVGTransform -> m SVGTransform
initialize :: SVGTransformList -> SVGTransform -> m SVGTransform
initialize SVGTransformList
self SVGTransform
item
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"initialize" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.initialize Mozilla SVGTransformList.initialize documentation> 
initialize_ ::
            (MonadDOM m) => SVGTransformList -> SVGTransform -> m ()
initialize_ :: SVGTransformList -> SVGTransform -> m ()
initialize_ SVGTransformList
self SVGTransform
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 (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"initialize" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.getItem Mozilla SVGTransformList.getItem documentation> 
getItem ::
        (MonadDOM m) => SVGTransformList -> Word -> m SVGTransform
getItem :: SVGTransformList -> Word -> m SVGTransform
getItem SVGTransformList
self Word
index
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getItem" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.getItem Mozilla SVGTransformList.getItem documentation> 
getItem_ :: (MonadDOM m) => SVGTransformList -> Word -> m ()
getItem_ :: SVGTransformList -> Word -> m ()
getItem_ SVGTransformList
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 (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getItem" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.insertItemBefore Mozilla SVGTransformList.insertItemBefore documentation> 
insertItemBefore ::
                 (MonadDOM m) =>
                   SVGTransformList -> SVGTransform -> Word -> m SVGTransform
insertItemBefore :: SVGTransformList -> SVGTransform -> Word -> m SVGTransform
insertItemBefore SVGTransformList
self SVGTransform
item Word
index
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"insertItemBefore" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.insertItemBefore Mozilla SVGTransformList.insertItemBefore documentation> 
insertItemBefore_ ::
                  (MonadDOM m) => SVGTransformList -> SVGTransform -> Word -> m ()
insertItemBefore_ :: SVGTransformList -> SVGTransform -> Word -> m ()
insertItemBefore_ SVGTransformList
self SVGTransform
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
         (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"insertItemBefore" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.replaceItem Mozilla SVGTransformList.replaceItem documentation> 
replaceItem ::
            (MonadDOM m) =>
              SVGTransformList -> SVGTransform -> Word -> m SVGTransform
replaceItem :: SVGTransformList -> SVGTransform -> Word -> m SVGTransform
replaceItem SVGTransformList
self SVGTransform
item Word
index
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"replaceItem" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.replaceItem Mozilla SVGTransformList.replaceItem documentation> 
replaceItem_ ::
             (MonadDOM m) => SVGTransformList -> SVGTransform -> Word -> m ()
replaceItem_ :: SVGTransformList -> SVGTransform -> Word -> m ()
replaceItem_ SVGTransformList
self SVGTransform
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 (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"replaceItem" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.removeItem Mozilla SVGTransformList.removeItem documentation> 
removeItem ::
           (MonadDOM m) => SVGTransformList -> Word -> m SVGTransform
removeItem :: SVGTransformList -> Word -> m SVGTransform
removeItem SVGTransformList
self Word
index
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"removeItem" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.removeItem Mozilla SVGTransformList.removeItem documentation> 
removeItem_ :: (MonadDOM m) => SVGTransformList -> Word -> m ()
removeItem_ :: SVGTransformList -> Word -> m ()
removeItem_ SVGTransformList
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 (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"removeItem" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.appendItem Mozilla SVGTransformList.appendItem documentation> 
appendItem ::
           (MonadDOM m) => SVGTransformList -> SVGTransform -> m SVGTransform
appendItem :: SVGTransformList -> SVGTransform -> m SVGTransform
appendItem SVGTransformList
self SVGTransform
item
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"appendItem" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.appendItem Mozilla SVGTransformList.appendItem documentation> 
appendItem_ ::
            (MonadDOM m) => SVGTransformList -> SVGTransform -> m ()
appendItem_ :: SVGTransformList -> SVGTransform -> m ()
appendItem_ SVGTransformList
self SVGTransform
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 (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"appendItem" [SVGTransform -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGTransform
item]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.createSVGTransformFromMatrix Mozilla SVGTransformList.createSVGTransformFromMatrix documentation> 
createSVGTransformFromMatrix ::
                             (MonadDOM m) => SVGTransformList -> SVGMatrix -> m SVGTransform
createSVGTransformFromMatrix :: SVGTransformList -> SVGMatrix -> m SVGTransform
createSVGTransformFromMatrix SVGTransformList
self SVGMatrix
matrix
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"createSVGTransformFromMatrix" [SVGMatrix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGMatrix
matrix]) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.createSVGTransformFromMatrix Mozilla SVGTransformList.createSVGTransformFromMatrix documentation> 
createSVGTransformFromMatrix_ ::
                              (MonadDOM m) => SVGTransformList -> SVGMatrix -> m ()
createSVGTransformFromMatrix_ :: SVGTransformList -> SVGMatrix -> m ()
createSVGTransformFromMatrix_ SVGTransformList
self SVGMatrix
matrix
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"createSVGTransformFromMatrix" [SVGMatrix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGMatrix
matrix]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.consolidate Mozilla SVGTransformList.consolidate documentation> 
consolidate :: (MonadDOM m) => SVGTransformList -> m SVGTransform
consolidate :: SVGTransformList -> m SVGTransform
consolidate SVGTransformList
self
  = DOM SVGTransform -> m SVGTransform
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"consolidate" ()) JSM JSVal -> (JSVal -> DOM SVGTransform) -> DOM SVGTransform
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGTransform
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.consolidate Mozilla SVGTransformList.consolidate documentation> 
consolidate_ :: (MonadDOM m) => SVGTransformList -> m ()
consolidate_ :: SVGTransformList -> m ()
consolidate_ SVGTransformList
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 (SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"consolidate" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.numberOfItems Mozilla SVGTransformList.numberOfItems documentation> 
getNumberOfItems :: (MonadDOM m) => SVGTransformList -> m Word
getNumberOfItems :: SVGTransformList -> m Word
getNumberOfItems SVGTransformList
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (Double -> Word
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
<$> ((SVGTransformList
self SVGTransformList
-> Getting (JSM JSVal) SVGTransformList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGTransformList (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"numberOfItems") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))