{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGGraphicsElement
       (getBBox, getBBox_, getCTM, getCTM_, getScreenCTM, getScreenCTM_,
        getTransformToElement, getTransformToElement_, getTransform,
        getNearestViewportElement, getFarthestViewportElement,
        SVGGraphicsElement(..), gTypeSVGGraphicsElement,
        IsSVGGraphicsElement, toSVGGraphicsElement)
       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/SVGGraphicsElement.getBBox Mozilla SVGGraphicsElement.getBBox documentation> 
getBBox ::
        (MonadDOM m, IsSVGGraphicsElement self) => self -> m SVGRect
getBBox :: forall (m :: * -> *) self.
(MonadDOM m, IsSVGGraphicsElement self) =>
self -> m SVGRect
getBBox self
self
  = DOM SVGRect -> m SVGRect
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getBBox" ()) JSM JSVal -> (JSVal -> DOM SVGRect) -> DOM SVGRect
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 SVGRect
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getBBox Mozilla SVGGraphicsElement.getBBox documentation> 
getBBox_ :: (MonadDOM m, IsSVGGraphicsElement self) => self -> m ()
getBBox_ :: forall (m :: * -> *) self.
(MonadDOM m, IsSVGGraphicsElement self) =>
self -> m ()
getBBox_ self
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 ((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getBBox" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getCTM Mozilla SVGGraphicsElement.getCTM documentation> 
getCTM ::
       (MonadDOM m, IsSVGGraphicsElement self) => self -> m SVGMatrix
getCTM :: forall (m :: * -> *) self.
(MonadDOM m, IsSVGGraphicsElement self) =>
self -> m SVGMatrix
getCTM self
self
  = DOM SVGMatrix -> m SVGMatrix
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getCTM" ()) JSM JSVal -> (JSVal -> DOM SVGMatrix) -> DOM SVGMatrix
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 SVGMatrix
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getCTM Mozilla SVGGraphicsElement.getCTM documentation> 
getCTM_ :: (MonadDOM m, IsSVGGraphicsElement self) => self -> m ()
getCTM_ :: forall (m :: * -> *) self.
(MonadDOM m, IsSVGGraphicsElement self) =>
self -> m ()
getCTM_ self
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 ((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getCTM" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getScreenCTM Mozilla SVGGraphicsElement.getScreenCTM documentation> 
getScreenCTM ::
             (MonadDOM m, IsSVGGraphicsElement self) => self -> m SVGMatrix
getScreenCTM :: forall (m :: * -> *) self.
(MonadDOM m, IsSVGGraphicsElement self) =>
self -> m SVGMatrix
getScreenCTM self
self
  = DOM SVGMatrix -> m SVGMatrix
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getScreenCTM" ()) JSM JSVal -> (JSVal -> DOM SVGMatrix) -> DOM SVGMatrix
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 SVGMatrix
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getScreenCTM Mozilla SVGGraphicsElement.getScreenCTM documentation> 
getScreenCTM_ ::
              (MonadDOM m, IsSVGGraphicsElement self) => self -> m ()
getScreenCTM_ :: forall (m :: * -> *) self.
(MonadDOM m, IsSVGGraphicsElement self) =>
self -> m ()
getScreenCTM_ self
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 ((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getScreenCTM" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getTransformToElement Mozilla SVGGraphicsElement.getTransformToElement documentation> 
getTransformToElement ::
                      (MonadDOM m, IsSVGGraphicsElement self, IsSVGElement element) =>
                        self -> Maybe element -> m SVGMatrix
getTransformToElement :: forall (m :: * -> *) self element.
(MonadDOM m, IsSVGGraphicsElement self, IsSVGElement element) =>
self -> Maybe element -> m SVGMatrix
getTransformToElement self
self Maybe element
element
  = DOM SVGMatrix -> m SVGMatrix
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getTransformToElement"
          [Maybe element -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe element
element])
         JSM JSVal -> (JSVal -> DOM SVGMatrix) -> DOM SVGMatrix
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 SVGMatrix
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getTransformToElement Mozilla SVGGraphicsElement.getTransformToElement documentation> 
getTransformToElement_ ::
                       (MonadDOM m, IsSVGGraphicsElement self, IsSVGElement element) =>
                         self -> Maybe element -> m ()
getTransformToElement_ :: forall (m :: * -> *) self element.
(MonadDOM m, IsSVGGraphicsElement self, IsSVGElement element) =>
self -> Maybe element -> m ()
getTransformToElement_ self
self Maybe element
element
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((self -> SVGGraphicsElement
forall o. IsSVGGraphicsElement o => o -> SVGGraphicsElement
toSVGGraphicsElement self
self) SVGGraphicsElement
-> Getting (JSM JSVal) SVGGraphicsElement (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
"getTransformToElement"
            [Maybe element -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe element
element]))

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

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

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