{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGFEBlendElement
       (pattern SVG_FEBLEND_MODE_UNKNOWN, pattern SVG_FEBLEND_MODE_NORMAL,
        pattern SVG_FEBLEND_MODE_MULTIPLY, pattern SVG_FEBLEND_MODE_SCREEN,
        pattern SVG_FEBLEND_MODE_DARKEN, pattern SVG_FEBLEND_MODE_LIGHTEN,
        getIn1, getIn2, getMode, SVGFEBlendElement(..),
        gTypeSVGFEBlendElement)
       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
pattern $bSVG_FEBLEND_MODE_UNKNOWN :: a
$mSVG_FEBLEND_MODE_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FEBLEND_MODE_UNKNOWN = 0
pattern $bSVG_FEBLEND_MODE_NORMAL :: a
$mSVG_FEBLEND_MODE_NORMAL :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FEBLEND_MODE_NORMAL = 1
pattern $bSVG_FEBLEND_MODE_MULTIPLY :: a
$mSVG_FEBLEND_MODE_MULTIPLY :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FEBLEND_MODE_MULTIPLY = 2
pattern $bSVG_FEBLEND_MODE_SCREEN :: a
$mSVG_FEBLEND_MODE_SCREEN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FEBLEND_MODE_SCREEN = 3
pattern $bSVG_FEBLEND_MODE_DARKEN :: a
$mSVG_FEBLEND_MODE_DARKEN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FEBLEND_MODE_DARKEN = 4
pattern $bSVG_FEBLEND_MODE_LIGHTEN :: a
$mSVG_FEBLEND_MODE_LIGHTEN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FEBLEND_MODE_LIGHTEN = 5

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.mode Mozilla SVGFEBlendElement.mode documentation> 
getMode ::
        (MonadDOM m) => SVGFEBlendElement -> m SVGAnimatedEnumeration
getMode :: SVGFEBlendElement -> m SVGAnimatedEnumeration
getMode SVGFEBlendElement
self = DOM SVGAnimatedEnumeration -> m SVGAnimatedEnumeration
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((SVGFEBlendElement
self SVGFEBlendElement
-> Getting (JSM JSVal) SVGFEBlendElement (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter SVGFEBlendElement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"mode") 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)