{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGMarkerElement
       (setOrientToAuto, setOrientToAngle,
        pattern SVG_MARKERUNITS_UNKNOWN,
        pattern SVG_MARKERUNITS_USERSPACEONUSE,
        pattern SVG_MARKERUNITS_STROKEWIDTH,
        pattern SVG_MARKER_ORIENT_UNKNOWN, pattern SVG_MARKER_ORIENT_AUTO,
        pattern SVG_MARKER_ORIENT_ANGLE, getRefX, getRefY, getMarkerUnits,
        getMarkerWidth, getMarkerHeight, getOrientType, getOrientAngle,
        SVGMarkerElement(..), gTypeSVGMarkerElement)
       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/SVGMarkerElement.setOrientToAuto Mozilla SVGMarkerElement.setOrientToAuto documentation> 
setOrientToAuto :: (MonadDOM m) => SVGMarkerElement -> m ()
setOrientToAuto :: SVGMarkerElement -> m ()
setOrientToAuto SVGMarkerElement
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 (SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (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]
"setOrientToAuto" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.setOrientToAngle Mozilla SVGMarkerElement.setOrientToAngle documentation> 
setOrientToAngle ::
                 (MonadDOM m) => SVGMarkerElement -> SVGAngle -> m ()
setOrientToAngle :: SVGMarkerElement -> SVGAngle -> m ()
setOrientToAngle SVGMarkerElement
self SVGAngle
angle
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (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]
"setOrientToAngle" [SVGAngle -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal SVGAngle
angle]))
pattern $bSVG_MARKERUNITS_UNKNOWN :: a
$mSVG_MARKERUNITS_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_MARKERUNITS_UNKNOWN = 0
pattern $bSVG_MARKERUNITS_USERSPACEONUSE :: a
$mSVG_MARKERUNITS_USERSPACEONUSE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_MARKERUNITS_USERSPACEONUSE = 1
pattern $bSVG_MARKERUNITS_STROKEWIDTH :: a
$mSVG_MARKERUNITS_STROKEWIDTH :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_MARKERUNITS_STROKEWIDTH = 2
pattern $bSVG_MARKER_ORIENT_UNKNOWN :: a
$mSVG_MARKER_ORIENT_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_MARKER_ORIENT_UNKNOWN = 0
pattern $bSVG_MARKER_ORIENT_AUTO :: a
$mSVG_MARKER_ORIENT_AUTO :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_MARKER_ORIENT_AUTO = 1
pattern $bSVG_MARKER_ORIENT_ANGLE :: a
$mSVG_MARKER_ORIENT_ANGLE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_MARKER_ORIENT_ANGLE = 2

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refX Mozilla SVGMarkerElement.refX documentation> 
getRefX :: (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedLength
getRefX :: SVGMarkerElement -> m SVGAnimatedLength
getRefX SVGMarkerElement
self = DOM SVGAnimatedLength -> m SVGAnimatedLength
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"refX") JSM JSVal
-> (JSVal -> DOM SVGAnimatedLength) -> DOM SVGAnimatedLength
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedLength
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refY Mozilla SVGMarkerElement.refY documentation> 
getRefY :: (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedLength
getRefY :: SVGMarkerElement -> m SVGAnimatedLength
getRefY SVGMarkerElement
self = DOM SVGAnimatedLength -> m SVGAnimatedLength
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"refY") JSM JSVal
-> (JSVal -> DOM SVGAnimatedLength) -> DOM SVGAnimatedLength
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedLength
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerUnits Mozilla SVGMarkerElement.markerUnits documentation> 
getMarkerUnits ::
               (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedEnumeration
getMarkerUnits :: SVGMarkerElement -> m SVGAnimatedEnumeration
getMarkerUnits SVGMarkerElement
self
  = DOM SVGAnimatedEnumeration -> m SVGAnimatedEnumeration
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"markerUnits") JSM JSVal
-> (JSVal -> DOM SVGAnimatedEnumeration)
-> DOM SVGAnimatedEnumeration
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedEnumeration
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerWidth Mozilla SVGMarkerElement.markerWidth documentation> 
getMarkerWidth ::
               (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedLength
getMarkerWidth :: SVGMarkerElement -> m SVGAnimatedLength
getMarkerWidth SVGMarkerElement
self
  = DOM SVGAnimatedLength -> m SVGAnimatedLength
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"markerWidth") JSM JSVal
-> (JSVal -> DOM SVGAnimatedLength) -> DOM SVGAnimatedLength
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedLength
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerHeight Mozilla SVGMarkerElement.markerHeight documentation> 
getMarkerHeight ::
                (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedLength
getMarkerHeight :: SVGMarkerElement -> m SVGAnimatedLength
getMarkerHeight SVGMarkerElement
self
  = DOM SVGAnimatedLength -> m SVGAnimatedLength
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"markerHeight") JSM JSVal
-> (JSVal -> DOM SVGAnimatedLength) -> DOM SVGAnimatedLength
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedLength
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientType Mozilla SVGMarkerElement.orientType documentation> 
getOrientType ::
              (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedEnumeration
getOrientType :: SVGMarkerElement -> m SVGAnimatedEnumeration
getOrientType SVGMarkerElement
self
  = DOM SVGAnimatedEnumeration -> m SVGAnimatedEnumeration
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"orientType") JSM JSVal
-> (JSVal -> DOM SVGAnimatedEnumeration)
-> DOM SVGAnimatedEnumeration
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedEnumeration
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientAngle Mozilla SVGMarkerElement.orientAngle documentation> 
getOrientAngle ::
               (MonadDOM m) => SVGMarkerElement -> m SVGAnimatedAngle
getOrientAngle :: SVGMarkerElement -> m SVGAnimatedAngle
getOrientAngle SVGMarkerElement
self
  = DOM SVGAnimatedAngle -> m SVGAnimatedAngle
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGMarkerElement
self SVGMarkerElement
-> Getting (JSM JSVal) SVGMarkerElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGMarkerElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"orientAngle") JSM JSVal
-> (JSVal -> DOM SVGAnimatedAngle) -> DOM SVGAnimatedAngle
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM SVGAnimatedAngle
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)