packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/CaretPosition.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from cssom-view-1 (webref). Do not edit.
module JSDOM.Generated.CaretPosition
       (getClientRect, getClientRect_, getClientRectUnsafe, getClientRectUnchecked, getOffsetNode, getOffset, CaretPosition(..), gTypeCaretPosition)
       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/CaretPosition/getClientRect MDN CaretPosition.getClientRect documentation>
getClientRect :: (MonadDOM m) => CaretPosition -> m (Maybe DOMRect)
getClientRect self = liftDOM (((self ^. jsf "getClientRect" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/CaretPosition/getClientRect MDN CaretPosition.getClientRect documentation>
getClientRect_ :: (MonadDOM m) => CaretPosition -> m ()
getClientRect_ self = liftDOM (void (self ^. jsf "getClientRect" ()))

-- | <https://developer.mozilla.org/docs/Web/API/CaretPosition/getClientRect MDN CaretPosition.getClientRect documentation>
getClientRectUnsafe :: (MonadDOM m, HasCallStack) => CaretPosition -> m DOMRect
getClientRectUnsafe self = liftDOM ((((self ^. jsf "getClientRect" ()) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/CaretPosition/getClientRect MDN CaretPosition.getClientRect documentation>
getClientRectUnchecked :: (MonadDOM m) => CaretPosition -> m DOMRect
getClientRectUnchecked self = liftDOM (((self ^. jsf "getClientRect" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/CaretPosition/offsetNode MDN CaretPosition.offsetNode documentation>
getOffsetNode :: (MonadDOM m) => CaretPosition -> m Node
getOffsetNode self = liftDOM (((self ^. js "offsetNode") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/CaretPosition/offset MDN CaretPosition.offset documentation>
getOffset :: (MonadDOM m) => CaretPosition -> m Word
getOffset self = liftDOM ((P.round <$> ((self ^. js "offset") >>= valToNumber)))