{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.CSSRule
       (pattern UNKNOWN_RULE, pattern STYLE_RULE, pattern CHARSET_RULE,
        pattern IMPORT_RULE, pattern MEDIA_RULE, pattern FONT_FACE_RULE,
        pattern PAGE_RULE, pattern KEYFRAMES_RULE, pattern KEYFRAME_RULE,
        pattern NAMESPACE_RULE, pattern SUPPORTS_RULE,
        pattern WEBKIT_VIEWPORT_RULE, pattern WEBKIT_REGION_RULE,
        pattern WEBKIT_KEYFRAMES_RULE, pattern WEBKIT_KEYFRAME_RULE,
        getType, setCssText, getCssText, getCssTextUnsafe,
        getCssTextUnchecked, getParentStyleSheet,
        getParentStyleSheetUnsafe, getParentStyleSheetUnchecked,
        getParentRule, getParentRuleUnsafe, getParentRuleUnchecked,
        CSSRule(..), gTypeCSSRule, IsCSSRule, toCSSRule)
       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 $bUNKNOWN_RULE :: a
$mUNKNOWN_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
UNKNOWN_RULE = 0
pattern $bSTYLE_RULE :: a
$mSTYLE_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
STYLE_RULE = 1
pattern $bCHARSET_RULE :: a
$mCHARSET_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CHARSET_RULE = 2
pattern $bIMPORT_RULE :: a
$mIMPORT_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
IMPORT_RULE = 3
pattern $bMEDIA_RULE :: a
$mMEDIA_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
MEDIA_RULE = 4
pattern $bFONT_FACE_RULE :: a
$mFONT_FACE_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
FONT_FACE_RULE = 5
pattern $bPAGE_RULE :: a
$mPAGE_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
PAGE_RULE = 6
pattern $bKEYFRAMES_RULE :: a
$mKEYFRAMES_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
KEYFRAMES_RULE = 7
pattern $bKEYFRAME_RULE :: a
$mKEYFRAME_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
KEYFRAME_RULE = 8
pattern $bNAMESPACE_RULE :: a
$mNAMESPACE_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
NAMESPACE_RULE = 10
pattern $bSUPPORTS_RULE :: a
$mSUPPORTS_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SUPPORTS_RULE = 12
pattern $bWEBKIT_VIEWPORT_RULE :: a
$mWEBKIT_VIEWPORT_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
WEBKIT_VIEWPORT_RULE = 15
pattern $bWEBKIT_REGION_RULE :: a
$mWEBKIT_REGION_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
WEBKIT_REGION_RULE = 16
pattern $bWEBKIT_KEYFRAMES_RULE :: a
$mWEBKIT_KEYFRAMES_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
WEBKIT_KEYFRAMES_RULE = 7
pattern $bWEBKIT_KEYFRAME_RULE :: a
$mWEBKIT_KEYFRAME_RULE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
WEBKIT_KEYFRAME_RULE = 8

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule.type Mozilla CSSRule.type documentation> 
getType :: (MonadDOM m, IsCSSRule self) => self -> m Word
getType :: self -> m Word
getType self
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
<$> (((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"type") 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/CSSRule.cssText Mozilla CSSRule.cssText documentation> 
setCssText ::
           (MonadDOM m, IsCSSRule self, ToJSString val) =>
             self -> Maybe val -> m ()
setCssText :: self -> Maybe val -> m ()
setCssText self
self Maybe val
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (DOM ()) CSSRule (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" (Maybe val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule.cssText Mozilla CSSRule.cssText documentation> 
getCssText ::
           (MonadDOM m, IsCSSRule self, FromJSString result) =>
             self -> m (Maybe result)
getCssText :: self -> m (Maybe result)
getCssText self
self
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"cssText") 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/CSSRule.cssText Mozilla CSSRule.cssText documentation> 
getCssTextUnsafe ::
                 (MonadDOM m, IsCSSRule self, HasCallStack, FromJSString result) =>
                   self -> m result
getCssTextUnsafe :: self -> m result
getCssTextUnsafe self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"cssText") 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/CSSRule.cssText Mozilla CSSRule.cssText documentation> 
getCssTextUnchecked ::
                    (MonadDOM m, IsCSSRule self, FromJSString result) =>
                      self -> m result
getCssTextUnchecked :: self -> m result
getCssTextUnchecked self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (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/CSSRule.parentStyleSheet Mozilla CSSRule.parentStyleSheet documentation> 
getParentStyleSheet ::
                    (MonadDOM m, IsCSSRule self) => self -> m (Maybe CSSStyleSheet)
getParentStyleSheet :: self -> m (Maybe CSSStyleSheet)
getParentStyleSheet self
self
  = DOM (Maybe CSSStyleSheet) -> m (Maybe CSSStyleSheet)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentStyleSheet") JSM JSVal
-> (JSVal -> DOM (Maybe CSSStyleSheet))
-> DOM (Maybe CSSStyleSheet)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe CSSStyleSheet)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule.parentRule Mozilla CSSRule.parentRule documentation> 
getParentRule ::
              (MonadDOM m, IsCSSRule self) => self -> m (Maybe CSSRule)
getParentRule :: self -> m (Maybe CSSRule)
getParentRule self
self
  = DOM (Maybe CSSRule) -> m (Maybe CSSRule)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (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/CSSRule.parentRule Mozilla CSSRule.parentRule documentation> 
getParentRuleUnsafe ::
                    (MonadDOM m, IsCSSRule self, HasCallStack) => self -> m CSSRule
getParentRuleUnsafe :: self -> m CSSRule
getParentRuleUnsafe self
self
  = DOM CSSRule -> m CSSRule
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (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/CSSRule.parentRule Mozilla CSSRule.parentRule documentation> 
getParentRuleUnchecked ::
                       (MonadDOM m, IsCSSRule self) => self -> m CSSRule
getParentRuleUnchecked :: self -> m CSSRule
getParentRuleUnchecked self
self
  = DOM CSSRule -> m CSSRule
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> CSSRule
forall o. IsCSSRule o => o -> CSSRule
toCSSRule self
self) CSSRule -> Getting (JSM JSVal) CSSRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSRule (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)