{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.CSSPrimitiveValue
       (setFloatValue, getFloatValue, getFloatValue_, setStringValue,
        getStringValue, getStringValue_, getCounterValue, getCounterValue_,
        getRectValue, getRectValue_, getRGBColorValue, getRGBColorValue_,
        pattern CSS_UNKNOWN, pattern CSS_NUMBER, pattern CSS_PERCENTAGE,
        pattern CSS_EMS, pattern CSS_EXS, pattern CSS_PX, pattern CSS_CM,
        pattern CSS_MM, pattern CSS_IN, pattern CSS_PT, pattern CSS_PC,
        pattern CSS_DEG, pattern CSS_RAD, pattern CSS_GRAD, pattern CSS_MS,
        pattern CSS_S, pattern CSS_HZ, pattern CSS_KHZ,
        pattern CSS_DIMENSION, pattern CSS_STRING, pattern CSS_URI,
        pattern CSS_IDENT, pattern CSS_ATTR, pattern CSS_COUNTER,
        pattern CSS_RECT, pattern CSS_RGBCOLOR, pattern CSS_VW,
        pattern CSS_VH, pattern CSS_VMIN, pattern CSS_VMAX,
        getPrimitiveType, CSSPrimitiveValue(..), gTypeCSSPrimitiveValue)
       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/CSSPrimitiveValue.setFloatValue Mozilla CSSPrimitiveValue.setFloatValue documentation> 
setFloatValue ::
              (MonadDOM m) =>
                CSSPrimitiveValue -> Maybe Word -> Maybe Float -> m ()
setFloatValue :: CSSPrimitiveValue -> Maybe Word -> Maybe Float -> m ()
setFloatValue CSSPrimitiveValue
self Maybe Word
unitType Maybe Float
floatValue
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"setFloatValue"
            [Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
unitType, Maybe Float -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Float
floatValue]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getFloatValue Mozilla CSSPrimitiveValue.getFloatValue documentation> 
getFloatValue ::
              (MonadDOM m) => CSSPrimitiveValue -> Maybe Word -> m Float
getFloatValue :: CSSPrimitiveValue -> Maybe Word -> m Float
getFloatValue CSSPrimitiveValue
self Maybe Word
unitType
  = DOM Float -> m Float
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (Double -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac (Double -> Float) -> JSM Double -> DOM Float
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
         ((CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getFloatValue" [Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
unitType]) JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getFloatValue Mozilla CSSPrimitiveValue.getFloatValue documentation> 
getFloatValue_ ::
               (MonadDOM m) => CSSPrimitiveValue -> Maybe Word -> m ()
getFloatValue_ :: CSSPrimitiveValue -> Maybe Word -> m ()
getFloatValue_ CSSPrimitiveValue
self Maybe Word
unitType
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getFloatValue" [Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
unitType]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.setStringValue Mozilla CSSPrimitiveValue.setStringValue documentation> 
setStringValue ::
               (MonadDOM m, ToJSString stringValue) =>
                 CSSPrimitiveValue -> Maybe Word -> Maybe stringValue -> m ()
setStringValue :: CSSPrimitiveValue -> Maybe Word -> Maybe stringValue -> m ()
setStringValue CSSPrimitiveValue
self Maybe Word
stringType Maybe stringValue
stringValue
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"setStringValue"
            [Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
stringType, Maybe stringValue -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe stringValue
stringValue]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getStringValue Mozilla CSSPrimitiveValue.getStringValue documentation> 
getStringValue ::
               (MonadDOM m, FromJSString result) => CSSPrimitiveValue -> m result
getStringValue :: CSSPrimitiveValue -> m result
getStringValue CSSPrimitiveValue
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getStringValue" ()) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getStringValue Mozilla CSSPrimitiveValue.getStringValue documentation> 
getStringValue_ :: (MonadDOM m) => CSSPrimitiveValue -> m ()
getStringValue_ :: CSSPrimitiveValue -> m ()
getStringValue_ CSSPrimitiveValue
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 (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getStringValue" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getCounterValue Mozilla CSSPrimitiveValue.getCounterValue documentation> 
getCounterValue :: (MonadDOM m) => CSSPrimitiveValue -> m Counter
getCounterValue :: CSSPrimitiveValue -> m Counter
getCounterValue CSSPrimitiveValue
self
  = DOM Counter -> m Counter
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getCounterValue" ()) JSM JSVal -> (JSVal -> DOM Counter) -> DOM Counter
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Counter
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getCounterValue Mozilla CSSPrimitiveValue.getCounterValue documentation> 
getCounterValue_ :: (MonadDOM m) => CSSPrimitiveValue -> m ()
getCounterValue_ :: CSSPrimitiveValue -> m ()
getCounterValue_ CSSPrimitiveValue
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 (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getCounterValue" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRectValue Mozilla CSSPrimitiveValue.getRectValue documentation> 
getRectValue :: (MonadDOM m) => CSSPrimitiveValue -> m Rect
getRectValue :: CSSPrimitiveValue -> m Rect
getRectValue CSSPrimitiveValue
self
  = DOM Rect -> m Rect
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getRectValue" ()) JSM JSVal -> (JSVal -> DOM Rect) -> DOM Rect
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Rect
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRectValue Mozilla CSSPrimitiveValue.getRectValue documentation> 
getRectValue_ :: (MonadDOM m) => CSSPrimitiveValue -> m ()
getRectValue_ :: CSSPrimitiveValue -> m ()
getRectValue_ CSSPrimitiveValue
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 (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getRectValue" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRGBColorValue Mozilla CSSPrimitiveValue.getRGBColorValue documentation> 
getRGBColorValue :: (MonadDOM m) => CSSPrimitiveValue -> m RGBColor
getRGBColorValue :: CSSPrimitiveValue -> m RGBColor
getRGBColorValue CSSPrimitiveValue
self
  = DOM RGBColor -> m RGBColor
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getRGBColorValue" ()) JSM JSVal -> (JSVal -> DOM RGBColor) -> DOM RGBColor
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM RGBColor
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRGBColorValue Mozilla CSSPrimitiveValue.getRGBColorValue documentation> 
getRGBColorValue_ :: (MonadDOM m) => CSSPrimitiveValue -> m ()
getRGBColorValue_ :: CSSPrimitiveValue -> m ()
getRGBColorValue_ CSSPrimitiveValue
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 (CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (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]
"getRGBColorValue" ()))
pattern $bCSS_UNKNOWN :: a
$mCSS_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_UNKNOWN = 0
pattern $bCSS_NUMBER :: a
$mCSS_NUMBER :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_NUMBER = 1
pattern $bCSS_PERCENTAGE :: a
$mCSS_PERCENTAGE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_PERCENTAGE = 2
pattern $bCSS_EMS :: a
$mCSS_EMS :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_EMS = 3
pattern $bCSS_EXS :: a
$mCSS_EXS :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_EXS = 4
pattern $bCSS_PX :: a
$mCSS_PX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_PX = 5
pattern $bCSS_CM :: a
$mCSS_CM :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_CM = 6
pattern $bCSS_MM :: a
$mCSS_MM :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_MM = 7
pattern $bCSS_IN :: a
$mCSS_IN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_IN = 8
pattern $bCSS_PT :: a
$mCSS_PT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_PT = 9
pattern $bCSS_PC :: a
$mCSS_PC :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_PC = 10
pattern $bCSS_DEG :: a
$mCSS_DEG :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_DEG = 11
pattern $bCSS_RAD :: a
$mCSS_RAD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_RAD = 12
pattern $bCSS_GRAD :: a
$mCSS_GRAD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_GRAD = 13
pattern $bCSS_MS :: a
$mCSS_MS :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_MS = 14
pattern $bCSS_S :: a
$mCSS_S :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_S = 15
pattern $bCSS_HZ :: a
$mCSS_HZ :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_HZ = 16
pattern $bCSS_KHZ :: a
$mCSS_KHZ :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_KHZ = 17
pattern $bCSS_DIMENSION :: a
$mCSS_DIMENSION :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_DIMENSION = 18
pattern $bCSS_STRING :: a
$mCSS_STRING :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_STRING = 19
pattern $bCSS_URI :: a
$mCSS_URI :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_URI = 20
pattern $bCSS_IDENT :: a
$mCSS_IDENT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_IDENT = 21
pattern $bCSS_ATTR :: a
$mCSS_ATTR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_ATTR = 22
pattern $bCSS_COUNTER :: a
$mCSS_COUNTER :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_COUNTER = 23
pattern $bCSS_RECT :: a
$mCSS_RECT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_RECT = 24
pattern $bCSS_RGBCOLOR :: a
$mCSS_RGBCOLOR :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_RGBCOLOR = 25
pattern $bCSS_VW :: a
$mCSS_VW :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_VW = 26
pattern $bCSS_VH :: a
$mCSS_VH :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_VH = 27
pattern $bCSS_VMIN :: a
$mCSS_VMIN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_VMIN = 28
pattern $bCSS_VMAX :: a
$mCSS_VMAX :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CSS_VMAX = 29

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.primitiveType Mozilla CSSPrimitiveValue.primitiveType documentation> 
getPrimitiveType :: (MonadDOM m) => CSSPrimitiveValue -> m Word
getPrimitiveType :: CSSPrimitiveValue -> m Word
getPrimitiveType CSSPrimitiveValue
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (Double -> Word
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((CSSPrimitiveValue
self CSSPrimitiveValue
-> Getting (JSM JSVal) CSSPrimitiveValue (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSPrimitiveValue (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"primitiveType") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))