{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGFEColorMatrixElement
       (pattern SVG_FECOLORMATRIX_TYPE_UNKNOWN,
        pattern SVG_FECOLORMATRIX_TYPE_MATRIX,
        pattern SVG_FECOLORMATRIX_TYPE_SATURATE,
        pattern SVG_FECOLORMATRIX_TYPE_HUEROTATE,
        pattern SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA, getIn1, getType,
        getValues, SVGFEColorMatrixElement(..),
        gTypeSVGFEColorMatrixElement)
       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_FECOLORMATRIX_TYPE_UNKNOWN :: a
$mSVG_FECOLORMATRIX_TYPE_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0
pattern $bSVG_FECOLORMATRIX_TYPE_MATRIX :: a
$mSVG_FECOLORMATRIX_TYPE_MATRIX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FECOLORMATRIX_TYPE_MATRIX = 1
pattern $bSVG_FECOLORMATRIX_TYPE_SATURATE :: a
$mSVG_FECOLORMATRIX_TYPE_SATURATE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FECOLORMATRIX_TYPE_SATURATE = 2
pattern $bSVG_FECOLORMATRIX_TYPE_HUEROTATE :: a
$mSVG_FECOLORMATRIX_TYPE_HUEROTATE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3
pattern $bSVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA :: a
$mSVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4

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