{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.CSSStyleDeclaration
       (getPropertyValue, getPropertyValue_, getPropertyCSSValue,
        getPropertyCSSValue_, getPropertyCSSValueUnsafe,
        getPropertyCSSValueUnchecked, removeProperty, removeProperty_,
        getPropertyPriority, getPropertyPriority_,
        getPropertyPriorityUnsafe, getPropertyPriorityUnchecked,
        setProperty, item, item_, getPropertyShorthand,
        getPropertyShorthand_, getPropertyShorthandUnsafe,
        getPropertyShorthandUnchecked, isPropertyImplicit,
        isPropertyImplicit_, setCssText, getCssText, getLength,
        getParentRule, getParentRuleUnsafe, getParentRuleUnchecked,
        CSSStyleDeclaration(..), gTypeCSSStyleDeclaration)
       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/CSSStyleDeclaration.getPropertyValue Mozilla CSSStyleDeclaration.getPropertyValue documentation> 
getPropertyValue ::
                 (MonadDOM m, ToJSString propertyName, FromJSString result) =>
                   CSSStyleDeclaration -> propertyName -> m result
getPropertyValue :: CSSStyleDeclaration -> propertyName -> m result
getPropertyValue CSSStyleDeclaration
self propertyName
propertyName
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) 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/CSSStyleDeclaration.getPropertyValue Mozilla CSSStyleDeclaration.getPropertyValue documentation> 
getPropertyValue_ ::
                  (MonadDOM m, ToJSString propertyName) =>
                    CSSStyleDeclaration -> propertyName -> m ()
getPropertyValue_ :: CSSStyleDeclaration -> propertyName -> m ()
getPropertyValue_ CSSStyleDeclaration
self propertyName
propertyName
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyCSSValue Mozilla CSSStyleDeclaration.getPropertyCSSValue documentation> 
getPropertyCSSValue ::
                    (MonadDOM m, ToJSString propertyName) =>
                      CSSStyleDeclaration -> propertyName -> m (Maybe CSSValue)
getPropertyCSSValue :: CSSStyleDeclaration -> propertyName -> m (Maybe CSSValue)
getPropertyCSSValue CSSStyleDeclaration
self propertyName
propertyName
  = DOM (Maybe CSSValue) -> m (Maybe CSSValue)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyCSSValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal
-> (JSVal -> DOM (Maybe CSSValue)) -> DOM (Maybe CSSValue)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe CSSValue)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyCSSValue Mozilla CSSStyleDeclaration.getPropertyCSSValue documentation> 
getPropertyCSSValueUnsafe ::
                          (MonadDOM m, ToJSString propertyName, HasCallStack) =>
                            CSSStyleDeclaration -> propertyName -> m CSSValue
getPropertyCSSValueUnsafe :: CSSStyleDeclaration -> propertyName -> m CSSValue
getPropertyCSSValueUnsafe CSSStyleDeclaration
self propertyName
propertyName
  = DOM CSSValue -> m CSSValue
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyCSSValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal
-> (JSVal -> DOM (Maybe CSSValue)) -> DOM (Maybe CSSValue)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> DOM (Maybe CSSValue)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
         DOM (Maybe CSSValue)
-> (Maybe CSSValue -> DOM CSSValue) -> DOM CSSValue
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM CSSValue
-> (CSSValue -> DOM CSSValue) -> Maybe CSSValue -> DOM CSSValue
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM CSSValue
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") CSSValue -> DOM CSSValue
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyCSSValue Mozilla CSSStyleDeclaration.getPropertyCSSValue documentation> 
getPropertyCSSValueUnchecked ::
                             (MonadDOM m, ToJSString propertyName) =>
                               CSSStyleDeclaration -> propertyName -> m CSSValue
getPropertyCSSValueUnchecked :: CSSStyleDeclaration -> propertyName -> m CSSValue
getPropertyCSSValueUnchecked CSSStyleDeclaration
self propertyName
propertyName
  = DOM CSSValue -> m CSSValue
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyCSSValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM CSSValue) -> DOM CSSValue
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM CSSValue
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.removeProperty Mozilla CSSStyleDeclaration.removeProperty documentation> 
removeProperty ::
               (MonadDOM m, ToJSString propertyName, FromJSString result) =>
                 CSSStyleDeclaration -> propertyName -> m result
removeProperty :: CSSStyleDeclaration -> propertyName -> m result
removeProperty CSSStyleDeclaration
self propertyName
propertyName
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"removeProperty" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) 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/CSSStyleDeclaration.removeProperty Mozilla CSSStyleDeclaration.removeProperty documentation> 
removeProperty_ ::
                (MonadDOM m, ToJSString propertyName) =>
                  CSSStyleDeclaration -> propertyName -> m ()
removeProperty_ :: CSSStyleDeclaration -> propertyName -> m ()
removeProperty_ CSSStyleDeclaration
self propertyName
propertyName
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"removeProperty" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyPriority Mozilla CSSStyleDeclaration.getPropertyPriority documentation> 
getPropertyPriority ::
                    (MonadDOM m, ToJSString propertyName, FromJSString result) =>
                      CSSStyleDeclaration -> propertyName -> m (Maybe result)
getPropertyPriority :: CSSStyleDeclaration -> propertyName -> m (Maybe result)
getPropertyPriority CSSStyleDeclaration
self propertyName
propertyName
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyPriority" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyPriority Mozilla CSSStyleDeclaration.getPropertyPriority documentation> 
getPropertyPriorityUnsafe ::
                          (MonadDOM m, ToJSString propertyName, HasCallStack,
                           FromJSString result) =>
                            CSSStyleDeclaration -> propertyName -> m result
getPropertyPriorityUnsafe :: CSSStyleDeclaration -> propertyName -> m result
getPropertyPriorityUnsafe CSSStyleDeclaration
self propertyName
propertyName
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyPriority" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)
         JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyPriority Mozilla CSSStyleDeclaration.getPropertyPriority documentation> 
getPropertyPriorityUnchecked ::
                             (MonadDOM m, ToJSString propertyName, FromJSString result) =>
                               CSSStyleDeclaration -> propertyName -> m result
getPropertyPriorityUnchecked :: CSSStyleDeclaration -> propertyName -> m result
getPropertyPriorityUnchecked CSSStyleDeclaration
self propertyName
propertyName
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyPriority" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) 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/CSSStyleDeclaration.setProperty Mozilla CSSStyleDeclaration.setProperty documentation> 
setProperty ::
            (MonadDOM m, ToJSString propertyName, ToJSString value,
             ToJSString priority) =>
              CSSStyleDeclaration ->
                propertyName -> value -> Maybe priority -> m ()
setProperty :: CSSStyleDeclaration
-> propertyName -> value -> Maybe priority -> m ()
setProperty CSSStyleDeclaration
self propertyName
propertyName value
value Maybe priority
priority
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"setProperty"
            [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName, value -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal value
value, Maybe priority -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe priority
priority]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.item Mozilla CSSStyleDeclaration.item documentation> 
item ::
     (MonadDOM m, FromJSString result) =>
       CSSStyleDeclaration -> Word -> m result
item :: CSSStyleDeclaration -> Word -> m result
item CSSStyleDeclaration
self Word
index
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"item" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) 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/CSSStyleDeclaration.item Mozilla CSSStyleDeclaration.item documentation> 
item_ :: (MonadDOM m) => CSSStyleDeclaration -> Word -> m ()
item_ :: CSSStyleDeclaration -> Word -> m ()
item_ CSSStyleDeclaration
self Word
index
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"item" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
getPropertyShorthand ::
                     (MonadDOM m, ToJSString propertyName, FromJSString result) =>
                       CSSStyleDeclaration -> Maybe propertyName -> m (Maybe result)
getPropertyShorthand :: CSSStyleDeclaration -> Maybe propertyName -> m (Maybe result)
getPropertyShorthand CSSStyleDeclaration
self Maybe propertyName
propertyName
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyShorthand" [Maybe propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
getPropertyShorthandUnsafe ::
                           (MonadDOM m, ToJSString propertyName, HasCallStack,
                            FromJSString result) =>
                             CSSStyleDeclaration -> Maybe propertyName -> m result
getPropertyShorthandUnsafe :: CSSStyleDeclaration -> Maybe propertyName -> m result
getPropertyShorthandUnsafe CSSStyleDeclaration
self Maybe propertyName
propertyName
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyShorthand" [Maybe propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe propertyName
propertyName]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)
         JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
getPropertyShorthandUnchecked ::
                              (MonadDOM m, ToJSString propertyName, FromJSString result) =>
                                CSSStyleDeclaration -> Maybe propertyName -> m result
getPropertyShorthandUnchecked :: CSSStyleDeclaration -> Maybe propertyName -> m result
getPropertyShorthandUnchecked CSSStyleDeclaration
self Maybe propertyName
propertyName
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"getPropertyShorthand" [Maybe propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe propertyName
propertyName]) 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/CSSStyleDeclaration.isPropertyImplicit Mozilla CSSStyleDeclaration.isPropertyImplicit documentation> 
isPropertyImplicit ::
                   (MonadDOM m, ToJSString propertyName) =>
                     CSSStyleDeclaration -> Maybe propertyName -> m Bool
isPropertyImplicit :: CSSStyleDeclaration -> Maybe propertyName -> m Bool
isPropertyImplicit CSSStyleDeclaration
self Maybe propertyName
propertyName
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (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]
"isPropertyImplicit" [Maybe propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.cssText Mozilla CSSStyleDeclaration.cssText documentation> 
setCssText ::
           (MonadDOM m, ToJSString val) => CSSStyleDeclaration -> val -> m ()
setCssText :: CSSStyleDeclaration -> val -> m ()
setCssText CSSStyleDeclaration
self val
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (DOM ()) CSSStyleDeclaration (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"cssText" (val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.cssText Mozilla CSSStyleDeclaration.cssText documentation> 
getCssText ::
           (MonadDOM m, FromJSString result) =>
             CSSStyleDeclaration -> m result
getCssText :: CSSStyleDeclaration -> m result
getCssText CSSStyleDeclaration
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"cssText") 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/CSSStyleDeclaration.length Mozilla CSSStyleDeclaration.length documentation> 
getLength :: (MonadDOM m) => CSSStyleDeclaration -> m Word
getLength :: CSSStyleDeclaration -> m Word
getLength CSSStyleDeclaration
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
<$> ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"length") 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/CSSStyleDeclaration.parentRule Mozilla CSSStyleDeclaration.parentRule documentation> 
getParentRule ::
              (MonadDOM m) => CSSStyleDeclaration -> m (Maybe CSSRule)
getParentRule :: CSSStyleDeclaration -> m (Maybe CSSRule)
getParentRule CSSStyleDeclaration
self
  = DOM (Maybe CSSRule) -> m (Maybe CSSRule)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentRule") JSM JSVal -> (JSVal -> DOM (Maybe CSSRule)) -> DOM (Maybe CSSRule)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe CSSRule)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.parentRule Mozilla CSSStyleDeclaration.parentRule documentation> 
getParentRuleUnsafe ::
                    (MonadDOM m, HasCallStack) => CSSStyleDeclaration -> m CSSRule
getParentRuleUnsafe :: CSSStyleDeclaration -> m CSSRule
getParentRuleUnsafe CSSStyleDeclaration
self
  = DOM CSSRule -> m CSSRule
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((CSSStyleDeclaration
self CSSStyleDeclaration
-> Getting (JSM JSVal) CSSStyleDeclaration (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentRule") JSM JSVal -> (JSVal -> DOM (Maybe CSSRule)) -> DOM (Maybe CSSRule)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe CSSRule)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe CSSRule)
-> (Maybe CSSRule -> DOM CSSRule) -> DOM CSSRule
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM CSSRule
-> (CSSRule -> DOM CSSRule) -> Maybe CSSRule -> DOM CSSRule
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM CSSRule
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") CSSRule -> DOM CSSRule
forall (m :: * -> *) a. Monad m => a -> m a
return)

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