jsaddle-dom-0.10.0.0: src/JSDOM/Generated/Selection.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from selection-api (webref). Do not edit.
module JSDOM.Generated.Selection
(addRange, collapse, collapseToEnd, collapseToStart, containsNode, containsNode_, deleteFromDocument, empty, extend, getComposedRanges, getComposedRanges_, getRangeAt, getRangeAt_, modify, removeAllRanges, removeRange, selectAllChildren, setBaseAndExtent, setPosition, getAnchorNode, getAnchorNodeUnsafe, getAnchorNodeUnchecked, getAnchorOffset, getFocusNode, getFocusNodeUnsafe, getFocusNodeUnchecked, getFocusOffset, getIsCollapsed, getRangeCount, getType, getDirection, Selection(..), gTypeSelection)
where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums
-- | <https://developer.mozilla.org/docs/Web/API/Selection/addRange MDN Selection.addRange documentation>
addRange :: (MonadDOM m) => Selection -> Range -> m ()
addRange self range = liftDOM (void (self ^. jsf "addRange" [toJSVal range]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/collapse MDN Selection.collapse documentation>
collapse :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> Maybe Word -> m ()
collapse self node offset = liftDOM (void (self ^. jsf "collapse" [toJSVal node, P.maybe (P.return jsUndefined) toJSVal offset]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/collapseToEnd MDN Selection.collapseToEnd documentation>
collapseToEnd :: (MonadDOM m) => Selection -> m ()
collapseToEnd self = liftDOM (void (self ^. jsf "collapseToEnd" ()))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/collapseToStart MDN Selection.collapseToStart documentation>
collapseToStart :: (MonadDOM m) => Selection -> m ()
collapseToStart self = liftDOM (void (self ^. jsf "collapseToStart" ()))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/containsNode MDN Selection.containsNode documentation>
containsNode :: (MonadDOM m, IsNode node) => Selection -> node -> Maybe Bool -> m Bool
containsNode self node allowPartialContainment = liftDOM (((self ^. jsf "containsNode" [toJSVal node, P.maybe (P.return jsUndefined) toJSVal allowPartialContainment]) >>= valToBool))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/containsNode MDN Selection.containsNode documentation>
containsNode_ :: (MonadDOM m, IsNode node) => Selection -> node -> Maybe Bool -> m ()
containsNode_ self node allowPartialContainment = liftDOM (void (self ^. jsf "containsNode" [toJSVal node, P.maybe (P.return jsUndefined) toJSVal allowPartialContainment]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/deleteFromDocument MDN Selection.deleteFromDocument documentation>
deleteFromDocument :: (MonadDOM m) => Selection -> m ()
deleteFromDocument self = liftDOM (void (self ^. jsf "deleteFromDocument" ()))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/empty MDN Selection.empty documentation>
empty :: (MonadDOM m) => Selection -> m ()
empty self = liftDOM (void (self ^. jsf "empty" ()))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/extend MDN Selection.extend documentation>
extend :: (MonadDOM m, IsNode node) => Selection -> node -> Maybe Word -> m ()
extend self node offset = liftDOM (void (self ^. jsf "extend" [toJSVal node, P.maybe (P.return jsUndefined) toJSVal offset]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/getComposedRanges MDN Selection.getComposedRanges documentation>
getComposedRanges :: (MonadDOM m) => Selection -> Maybe GetComposedRangesOptions -> m [StaticRange]
getComposedRanges self options = liftDOM (((self ^. jsf "getComposedRanges" [P.maybe (P.return jsUndefined) toJSVal options]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/getComposedRanges MDN Selection.getComposedRanges documentation>
getComposedRanges_ :: (MonadDOM m) => Selection -> Maybe GetComposedRangesOptions -> m ()
getComposedRanges_ self options = liftDOM (void (self ^. jsf "getComposedRanges" [P.maybe (P.return jsUndefined) toJSVal options]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/getRangeAt MDN Selection.getRangeAt documentation>
getRangeAt :: (MonadDOM m) => Selection -> Word -> m Range
getRangeAt self index = liftDOM (((self ^. jsf "getRangeAt" [toJSVal index]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/getRangeAt MDN Selection.getRangeAt documentation>
getRangeAt_ :: (MonadDOM m) => Selection -> Word -> m ()
getRangeAt_ self index = liftDOM (void (self ^. jsf "getRangeAt" [toJSVal index]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/modify MDN Selection.modify documentation>
modify :: (MonadDOM m, ToJSString alter, ToJSString direction, ToJSString granularity) => Selection -> Maybe alter -> Maybe direction -> Maybe granularity -> m ()
modify self alter direction granularity = liftDOM (void (self ^. jsf "modify" [P.maybe (P.return jsUndefined) toJSVal alter, P.maybe (P.return jsUndefined) toJSVal direction, P.maybe (P.return jsUndefined) toJSVal granularity]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/removeAllRanges MDN Selection.removeAllRanges documentation>
removeAllRanges :: (MonadDOM m) => Selection -> m ()
removeAllRanges self = liftDOM (void (self ^. jsf "removeAllRanges" ()))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/removeRange MDN Selection.removeRange documentation>
removeRange :: (MonadDOM m) => Selection -> Range -> m ()
removeRange self range = liftDOM (void (self ^. jsf "removeRange" [toJSVal range]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/selectAllChildren MDN Selection.selectAllChildren documentation>
selectAllChildren :: (MonadDOM m, IsNode node) => Selection -> node -> m ()
selectAllChildren self node = liftDOM (void (self ^. jsf "selectAllChildren" [toJSVal node]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/setBaseAndExtent MDN Selection.setBaseAndExtent documentation>
setBaseAndExtent :: (MonadDOM m, IsNode anchorNode, IsNode focusNode) => Selection -> anchorNode -> Word -> focusNode -> Word -> m ()
setBaseAndExtent self anchorNode anchorOffset focusNode focusOffset = liftDOM (void (self ^. jsf "setBaseAndExtent" [toJSVal anchorNode, toJSVal anchorOffset, toJSVal focusNode, toJSVal focusOffset]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/setPosition MDN Selection.setPosition documentation>
setPosition :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> Maybe Word -> m ()
setPosition self node offset = liftDOM (void (self ^. jsf "setPosition" [toJSVal node, P.maybe (P.return jsUndefined) toJSVal offset]))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/anchorNode MDN Selection.anchorNode documentation>
getAnchorNode :: (MonadDOM m) => Selection -> m (Maybe Node)
getAnchorNode self = liftDOM (((self ^. js "anchorNode") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/anchorNode MDN Selection.anchorNode documentation>
getAnchorNodeUnsafe :: (MonadDOM m, HasCallStack) => Selection -> m Node
getAnchorNodeUnsafe self = liftDOM ((((self ^. js "anchorNode") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/anchorNode MDN Selection.anchorNode documentation>
getAnchorNodeUnchecked :: (MonadDOM m) => Selection -> m Node
getAnchorNodeUnchecked self = liftDOM (((self ^. js "anchorNode") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/anchorOffset MDN Selection.anchorOffset documentation>
getAnchorOffset :: (MonadDOM m) => Selection -> m Word
getAnchorOffset self = liftDOM ((P.round <$> ((self ^. js "anchorOffset") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/focusNode MDN Selection.focusNode documentation>
getFocusNode :: (MonadDOM m) => Selection -> m (Maybe Node)
getFocusNode self = liftDOM (((self ^. js "focusNode") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/focusNode MDN Selection.focusNode documentation>
getFocusNodeUnsafe :: (MonadDOM m, HasCallStack) => Selection -> m Node
getFocusNodeUnsafe self = liftDOM ((((self ^. js "focusNode") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/focusNode MDN Selection.focusNode documentation>
getFocusNodeUnchecked :: (MonadDOM m) => Selection -> m Node
getFocusNodeUnchecked self = liftDOM (((self ^. js "focusNode") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/focusOffset MDN Selection.focusOffset documentation>
getFocusOffset :: (MonadDOM m) => Selection -> m Word
getFocusOffset self = liftDOM ((P.round <$> ((self ^. js "focusOffset") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/isCollapsed MDN Selection.isCollapsed documentation>
getIsCollapsed :: (MonadDOM m) => Selection -> m Bool
getIsCollapsed self = liftDOM (((self ^. js "isCollapsed") >>= valToBool))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/rangeCount MDN Selection.rangeCount documentation>
getRangeCount :: (MonadDOM m) => Selection -> m Word
getRangeCount self = liftDOM ((P.round <$> ((self ^. js "rangeCount") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/type MDN Selection.type documentation>
getType :: (MonadDOM m, FromJSString result) => Selection -> m result
getType self = liftDOM (((self ^. js "type") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/Selection/direction MDN Selection.direction documentation>
getDirection :: (MonadDOM m, FromJSString result) => Selection -> m result
getDirection self = liftDOM (((self ^. js "direction") >>= fromJSValUnchecked))