{-# 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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyCSSValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal
-> (JSVal -> DOM (Maybe CSSValue)) -> DOM (Maybe CSSValue)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName, HasCallStack) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyCSSValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal
-> (JSVal -> DOM (Maybe CSSValue)) -> DOM (Maybe CSSValue)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM CSSValue
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") CSSValue -> DOM CSSValue
forall a. a -> JSM a
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 :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyCSSValue" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM CSSValue) -> DOM CSSValue
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"removeProperty" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyPriority" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, HasCallStack,
 FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyPriority" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM result
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") result -> DOM result
forall a. a -> JSM a
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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyPriority" [propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) propertyName value priority.
(MonadDOM m, ToJSString propertyName, ToJSString value,
 ToJSString priority) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"item" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *).
MonadDOM m =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, HasCallStack,
 FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM result
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") result -> DOM result
forall a. a -> JSM a
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 :: forall (m :: * -> *) propertyName result.
(MonadDOM m, ToJSString propertyName, FromJSString result) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getPropertyShorthand" [Maybe propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"isPropertyImplicit" [Maybe propertyName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe propertyName
propertyName]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
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_ :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
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
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"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 :: forall (m :: * -> *) propertyName.
(MonadDOM m, ToJSString propertyName) =>
CSSStyleDeclaration -> propertyName -> 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
^. String
-> 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 String
"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 :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
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
^. String -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"cssText") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *). MonadDOM m => CSSStyleDeclaration -> m Word
getLength CSSStyleDeclaration
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall b. Integral b => Double -> b
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
^. String -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"length") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *).
MonadDOM m =>
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
^. String -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"parentRule") JSM JSVal -> (JSVal -> DOM (Maybe CSSRule)) -> DOM (Maybe CSSRule)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
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
^. String -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"parentRule") JSM JSVal -> (JSVal -> DOM (Maybe CSSRule)) -> DOM (Maybe CSSRule)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM CSSRule
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") CSSRule -> DOM CSSRule
forall a. a -> JSM a
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 :: forall (m :: * -> *).
MonadDOM m =>
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
^. String -> IndexPreservingGetter CSSStyleDeclaration (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"parentRule") JSM JSVal -> (JSVal -> DOM CSSRule) -> DOM CSSRule
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CSSRule
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)