{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.RGBColor
       (getRed, getGreen, getBlue, getAlpha, RGBColor(..), gTypeRGBColor)
       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/RGBColor.red Mozilla RGBColor.red documentation> 
getRed :: (MonadDOM m) => RGBColor -> m CSSPrimitiveValue
getRed :: RGBColor -> m CSSPrimitiveValue
getRed RGBColor
self = DOM CSSPrimitiveValue -> m CSSPrimitiveValue
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((RGBColor
self RGBColor -> Getting (JSM JSVal) RGBColor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter RGBColor (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"red") JSM JSVal
-> (JSVal -> DOM CSSPrimitiveValue) -> DOM CSSPrimitiveValue
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CSSPrimitiveValue
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

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

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