{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGPointList
       (clear, initialize, initialize_, getItem, getItem_,
        insertItemBefore, insertItemBefore_, replaceItem, replaceItem_,
        removeItem, removeItem_, appendItem, appendItem_, getNumberOfItems,
        SVGPointList(..), gTypeSVGPointList)
       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/SVGPointList.clear Mozilla SVGPointList.clear documentation> 
clear :: (MonadDOM m) => SVGPointList -> m ()
clear :: SVGPointList -> m ()
clear SVGPointList
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 (SVGPointList
self SVGPointList
-> Getting (JSM JSVal) SVGPointList (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/SVGPointList.initialize Mozilla SVGPointList.initialize documentation> 
initialize ::
           (MonadDOM m) => SVGPointList -> SVGPoint -> m SVGPoint
initialize :: SVGPointList -> SVGPoint -> m SVGPoint
initialize SVGPointList
self SVGPoint
item
  = DOM SVGPoint -> m SVGPoint
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGPointList
self SVGPointList
-> Getting (JSM JSVal) SVGPointList (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" [SVGPoint -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGPoint
item]) JSM JSVal -> (JSVal -> DOM SVGPoint) -> DOM SVGPoint
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGPoint
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.getItem Mozilla SVGPointList.getItem documentation> 
getItem :: (MonadDOM m) => SVGPointList -> Word -> m SVGPoint
getItem :: SVGPointList -> Word -> m SVGPoint
getItem SVGPointList
self Word
index
  = DOM SVGPoint -> m SVGPoint
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGPointList
self SVGPointList
-> Getting (JSM JSVal) SVGPointList (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 SVGPoint) -> DOM SVGPoint
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGPoint
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

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

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.removeItem Mozilla SVGPointList.removeItem documentation> 
removeItem :: (MonadDOM m) => SVGPointList -> Word -> m SVGPoint
removeItem :: SVGPointList -> Word -> m SVGPoint
removeItem SVGPointList
self Word
index
  = DOM SVGPoint -> m SVGPoint
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((SVGPointList
self SVGPointList
-> Getting (JSM JSVal) SVGPointList (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 SVGPoint) -> DOM SVGPoint
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGPoint
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.numberOfItems Mozilla SVGPointList.numberOfItems documentation> 
getNumberOfItems :: (MonadDOM m) => SVGPointList -> m Word
getNumberOfItems :: SVGPointList -> m Word
getNumberOfItems SVGPointList
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
<$> ((SVGPointList
self SVGPointList
-> Getting (JSM JSVal) SVGPointList (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGPointList (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))