{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.CSSKeyframesRule
       (insertRule, appendRule, deleteRule, findRule, findRule_,
        findRuleUnsafe, findRuleUnchecked, get, get_, setName, getName,
        getCssRules, CSSKeyframesRule(..), gTypeCSSKeyframesRule)
       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/CSSKeyframesRule.insertRule Mozilla CSSKeyframesRule.insertRule documentation> 
insertRule ::
           (MonadDOM m, ToJSString rule) => CSSKeyframesRule -> rule -> m ()
insertRule :: CSSKeyframesRule -> rule -> m ()
insertRule CSSKeyframesRule
self rule
rule
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (CSSKeyframesRule
self CSSKeyframesRule
-> Getting (JSM JSVal) CSSKeyframesRule (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]
"insertRule" [rule -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal rule
rule]))

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

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

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

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

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.get Mozilla CSSKeyframesRule.get documentation> 
get ::
    (MonadDOM m) => CSSKeyframesRule -> Word -> m CSSKeyframeRule
get :: CSSKeyframesRule -> Word -> m CSSKeyframeRule
get CSSKeyframesRule
self Word
index
  = DOM CSSKeyframeRule -> m CSSKeyframeRule
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((CSSKeyframesRule
self CSSKeyframesRule
-> Getting (JSM JSVal) CSSKeyframesRule (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]
"get" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]) JSM JSVal -> (JSVal -> DOM CSSKeyframeRule) -> DOM CSSKeyframeRule
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CSSKeyframeRule
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.get Mozilla CSSKeyframesRule.get documentation> 
get_ :: (MonadDOM m) => CSSKeyframesRule -> Word -> m ()
get_ :: CSSKeyframesRule -> Word -> m ()
get_ CSSKeyframesRule
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 (CSSKeyframesRule
self CSSKeyframesRule
-> Getting (JSM JSVal) CSSKeyframesRule (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]
"get" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.name Mozilla CSSKeyframesRule.name documentation> 
setName ::
        (MonadDOM m, ToJSString val) => CSSKeyframesRule -> val -> m ()
setName :: CSSKeyframesRule -> val -> m ()
setName CSSKeyframesRule
self val
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (CSSKeyframesRule
self CSSKeyframesRule
-> Getting (DOM ()) CSSKeyframesRule (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]
"name" (val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.name Mozilla CSSKeyframesRule.name documentation> 
getName ::
        (MonadDOM m, FromJSString result) => CSSKeyframesRule -> m result
getName :: CSSKeyframesRule -> m result
getName CSSKeyframesRule
self = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((CSSKeyframesRule
self CSSKeyframesRule
-> Getting (JSM JSVal) CSSKeyframesRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSKeyframesRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"name") 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/CSSKeyframesRule.cssRules Mozilla CSSKeyframesRule.cssRules documentation> 
getCssRules :: (MonadDOM m) => CSSKeyframesRule -> m CSSRuleList
getCssRules :: CSSKeyframesRule -> m CSSRuleList
getCssRules CSSKeyframesRule
self
  = DOM CSSRuleList -> m CSSRuleList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((CSSKeyframesRule
self CSSKeyframesRule
-> Getting (JSM JSVal) CSSKeyframesRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter CSSKeyframesRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"cssRules") JSM JSVal -> (JSVal -> DOM CSSRuleList) -> DOM CSSRuleList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM CSSRuleList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)