{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.MutationEvent (initMutationEvent, pattern MODIFICATION, pattern ADDITION, pattern REMOVAL, getRelatedNode, getPrevValue, getNewValue, getAttrName, getAttrChange, MutationEvent, castToMutationEvent, gTypeMutationEvent) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import Language.Javascript.JSaddle.DOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import Language.Javascript.JSaddle.DOM.EventTargetClosures (EventName, unsafeEventName) import Language.Javascript.JSaddle.DOM.Enums -- | initMutationEvent :: (MonadDOM m, ToJSString type', IsNode relatedNode, ToJSString prevValue, ToJSString newValue, ToJSString attrName) => MutationEvent -> type' -> Bool -> Bool -> Maybe relatedNode -> prevValue -> newValue -> attrName -> Word -> m () initMutationEvent self type' canBubble cancelable relatedNode prevValue newValue attrName attrChange = liftDOM (void (self ^. jsf "initMutationEvent" [toJSVal type', toJSVal canBubble, toJSVal cancelable, toJSVal relatedNode, toJSVal prevValue, toJSVal newValue, toJSVal attrName, toJSVal attrChange])) pattern MODIFICATION = 1 pattern ADDITION = 2 pattern REMOVAL = 3 -- | getRelatedNode :: (MonadDOM m) => MutationEvent -> m (Maybe Node) getRelatedNode self = liftDOM ((self ^. js "relatedNode") >>= fromJSVal) -- | getPrevValue :: (MonadDOM m, FromJSString result) => MutationEvent -> m result getPrevValue self = liftDOM ((self ^. js "prevValue") >>= fromJSValUnchecked) -- | getNewValue :: (MonadDOM m, FromJSString result) => MutationEvent -> m result getNewValue self = liftDOM ((self ^. js "newValue") >>= fromJSValUnchecked) -- | getAttrName :: (MonadDOM m, FromJSString result) => MutationEvent -> m result getAttrName self = liftDOM ((self ^. js "attrName") >>= fromJSValUnchecked) -- | getAttrChange :: (MonadDOM m) => MutationEvent -> m Word getAttrChange self = liftDOM (round <$> ((self ^. js "attrChange") >>= valToNumber))