ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/Notification.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from notifications (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.Notification
(js_newNotification, js_close, js_requestPermission, js_getPermissionStatic, js_getMaxActionsStatic, js_getTitle, js_getDir, js_getLang, js_getBody, js_getNavigate, js_getTag, js_getIcon, js_getSilent, js_getRequireInteraction, js_getData, js_getActions, newNotification, close, requestPermission, requestPermission_, getPermissionStatic, getMaxActionsStatic, getTitle, getDir, getLang, getBody, getNavigate, getTag, getIcon, getSilent, getSilentUnsafe, getSilentUnchecked, getRequireInteraction, getData, getActions, click, showEvent, error, cLoseEvent, Notification(..), gTypeNotification)
where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import GHCJS.Types (JSVal, JSString)
import GHCJS.Foreign (jsUndefined, jsNull)
import GHCJS.DOM.Types
import qualified GHCJS.DOM.Types as Types
import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import GHCJS.DOM.JSFFI.Generated.Enums
foreign import javascript safe "(($1, $2) => { return new globalThis[\"Notification\"]($1, $2); })"
js_newNotification :: JSString -> JSVal -> IO Notification
-- | <https://developer.mozilla.org/docs/Web/API/Notification/Notification MDN Notification. documentation>
newNotification :: (MonadDOM m, ToJSString title) => title -> Maybe NotificationOptions -> m Notification
newNotification title options = liftDOM (((P.maybe (P.return jsUndefined) toJSVal options) >>= \a2' -> js_newNotification (toJSString title) a2'))
foreign import javascript safe "(($1) => { return $1[\"close\"](); })"
js_close :: Notification -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/Notification/close MDN Notification.close documentation>
close :: (MonadDOM m) => Notification -> m ()
close self = liftDOM (void ((js_close (self))))
foreign import javascript interruptible "(($1, $c) => { return globalThis[\"Notification\"][\"requestPermission\"]($1).then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_requestPermission :: JSVal -> IO (JSVal, JSVal)
-- | <https://developer.mozilla.org/docs/Web/API/Notification/requestPermission_static MDN Notification.requestPermission documentation>
requestPermission :: (MonadDOM m) => Maybe NotificationPermissionCallback -> m NotificationPermission
requestPermission deprecatedCallback = liftDOM (((((P.maybe (P.return jsUndefined) toJSVal deprecatedCallback) >>= \a1' -> js_requestPermission a1') >>= checkPromiseResult) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Notification/requestPermission_static MDN Notification.requestPermission documentation>
requestPermission_ :: (MonadDOM m) => Maybe NotificationPermissionCallback -> m ()
requestPermission_ deprecatedCallback = liftDOM (void ((((P.maybe (P.return jsUndefined) toJSVal deprecatedCallback) >>= \a1' -> js_requestPermission a1') >>= checkPromiseResult)))
foreign import javascript unsafe "(() => { return globalThis[\"Notification\"][\"permission\"]; })"
js_getPermissionStatic :: IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/Notification/permission_static MDN Notification.permission documentation>
getPermissionStatic :: (MonadDOM m) => m NotificationPermission
getPermissionStatic = liftDOM (((js_getPermissionStatic) >>= fromJSValUnchecked))
foreign import javascript unsafe "(() => { return globalThis[\"Notification\"][\"maxActions\"]; })"
js_getMaxActionsStatic :: IO Word
-- | <https://developer.mozilla.org/docs/Web/API/Notification/maxActions_static MDN Notification.maxActions documentation>
getMaxActionsStatic :: (MonadDOM m) => m Word
getMaxActionsStatic = liftDOM ((js_getMaxActionsStatic))
foreign import javascript unsafe "(($1) => { return $1[\"title\"]; })"
js_getTitle :: Notification -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Notification/title MDN Notification.title documentation>
getTitle :: (MonadDOM m, FromJSString result) => Notification -> m result
getTitle self = liftDOM ((fromJSString <$> (js_getTitle (self))))
foreign import javascript unsafe "(($1) => { return $1[\"dir\"]; })"
js_getDir :: Notification -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/Notification/dir MDN Notification.dir documentation>
getDir :: (MonadDOM m) => Notification -> m NotificationDirection
getDir self = liftDOM (((js_getDir (self)) >>= fromJSValUnchecked))
foreign import javascript unsafe "(($1) => { return $1[\"lang\"]; })"
js_getLang :: Notification -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Notification/lang MDN Notification.lang documentation>
getLang :: (MonadDOM m, FromJSString result) => Notification -> m result
getLang self = liftDOM ((fromJSString <$> (js_getLang (self))))
foreign import javascript unsafe "(($1) => { return $1[\"body\"]; })"
js_getBody :: Notification -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Notification/body MDN Notification.body documentation>
getBody :: (MonadDOM m, FromJSString result) => Notification -> m result
getBody self = liftDOM ((fromJSString <$> (js_getBody (self))))
foreign import javascript unsafe "(($1) => { return $1[\"navigate\"]; })"
js_getNavigate :: Notification -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Notification/navigate MDN Notification.navigate documentation>
getNavigate :: (MonadDOM m, FromJSString result) => Notification -> m result
getNavigate self = liftDOM ((fromJSString <$> (js_getNavigate (self))))
foreign import javascript unsafe "(($1) => { return $1[\"tag\"]; })"
js_getTag :: Notification -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Notification/tag MDN Notification.tag documentation>
getTag :: (MonadDOM m, FromJSString result) => Notification -> m result
getTag self = liftDOM ((fromJSString <$> (js_getTag (self))))
foreign import javascript unsafe "(($1) => { return $1[\"icon\"]; })"
js_getIcon :: Notification -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Notification/icon MDN Notification.icon documentation>
getIcon :: (MonadDOM m, FromJSString result) => Notification -> m result
getIcon self = liftDOM ((fromJSString <$> (js_getIcon (self))))
foreign import javascript unsafe "(($1) => { return $1[\"silent\"]; })"
js_getSilent :: Notification -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/Notification/silent MDN Notification.silent documentation>
getSilent :: (MonadDOM m) => Notification -> m (Maybe Bool)
getSilent self = liftDOM (((js_getSilent (self)) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Notification/silent MDN Notification.silent documentation>
getSilentUnsafe :: (MonadDOM m, HasCallStack) => Notification -> m Bool
getSilentUnsafe self = liftDOM ((((js_getSilent (self)) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/Notification/silent MDN Notification.silent documentation>
getSilentUnchecked :: (MonadDOM m) => Notification -> m Bool
getSilentUnchecked self = liftDOM ((pFromJSVal <$> (js_getSilent (self))))
foreign import javascript unsafe "(($1) => { return $1[\"requireInteraction\"]; })"
js_getRequireInteraction :: Notification -> IO Bool
-- | <https://developer.mozilla.org/docs/Web/API/Notification/requireInteraction MDN Notification.requireInteraction documentation>
getRequireInteraction :: (MonadDOM m) => Notification -> m Bool
getRequireInteraction self = liftDOM ((js_getRequireInteraction (self)))
foreign import javascript unsafe "(($1) => { return $1[\"data\"]; })"
js_getData :: Notification -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/Notification/data MDN Notification.data documentation>
getData :: (MonadDOM m) => Notification -> m JSVal
getData self = liftDOM ((js_getData (self)))
foreign import javascript unsafe "(($1) => { return $1[\"actions\"]; })"
js_getActions :: Notification -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/Notification/actions MDN Notification.actions documentation>
getActions :: (MonadDOM m) => Notification -> m [NotificationAction]
getActions self = liftDOM (((js_getActions (self)) >>= fromJSValUnchecked))
-- | <https://notifications.spec.whatwg.org/#dom-notification-onclick click event>
click :: EventName Notification Event
click = unsafeEventName (toJSString "click")
-- | <https://notifications.spec.whatwg.org/#dom-notification-onshow show event>
showEvent :: EventName Notification Event
showEvent = unsafeEventName (toJSString "show")
-- | <https://notifications.spec.whatwg.org/#dom-notification-onerror error event>
error :: EventName Notification Event
error = unsafeEventNameAsync (toJSString "error")
-- | <https://notifications.spec.whatwg.org/#dom-notification-onclose close event>
cLoseEvent :: EventName Notification Event
cLoseEvent = unsafeEventNameAsync (toJSString "close")