{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.Range
(newRange, setStart, setEnd, setStartBefore, setStartAfter,
setEndBefore, setEndAfter, collapse, selectNode,
selectNodeContents, compareBoundaryPoints, compareBoundaryPoints_,
deleteContents, extractContents, extractContents_, cloneContents,
cloneContents_, insertNode, surroundContents, cloneRange,
cloneRange_, detach, isPointInRange, isPointInRange_, comparePoint,
comparePoint_, intersectsNode, intersectsNode_, toString,
toString_, getClientRects, getClientRects_, getBoundingClientRect,
getBoundingClientRect_, createContextualFragment,
createContextualFragment_, expand, compareNode, compareNode_,
pattern START_TO_START, pattern START_TO_END, pattern END_TO_END,
pattern END_TO_START, pattern NODE_BEFORE, pattern NODE_AFTER,
pattern NODE_BEFORE_AND_AFTER, pattern NODE_INSIDE,
getStartContainer, getStartOffset, getEndContainer, getEndOffset,
getCollapsed, getCommonAncestorContainer, Range(..), gTypeRange)
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
newRange :: (MonadDOM m) => m Range
newRange :: forall (m :: * -> *). MonadDOM m => m Range
newRange = DOM Range -> m Range
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSVal -> Range
Range (JSVal -> Range) -> JSM JSVal -> DOM Range
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> JSM JSVal -> () -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new (String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"Range") ())
setStart ::
(MonadDOM m, IsNode node) => Range -> node -> Word -> m ()
setStart :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> Word -> m ()
setStart Range
self node
node Word
offset
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"setStart" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset]))
setEnd ::
(MonadDOM m, IsNode node) => Range -> node -> Word -> m ()
setEnd :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> Word -> m ()
setEnd Range
self node
node Word
offset
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"setEnd" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset]))
setStartBefore ::
(MonadDOM m, IsNode node) => Range -> node -> m ()
setStartBefore :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
setStartBefore Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"setStartBefore" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
setStartAfter :: (MonadDOM m, IsNode node) => Range -> node -> m ()
setStartAfter :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
setStartAfter Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"setStartAfter" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
setEndBefore :: (MonadDOM m, IsNode node) => Range -> node -> m ()
setEndBefore :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
setEndBefore Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"setEndBefore" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
setEndAfter :: (MonadDOM m, IsNode node) => Range -> node -> m ()
setEndAfter :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
setEndAfter Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"setEndAfter" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
collapse :: (MonadDOM m) => Range -> Bool -> m ()
collapse :: forall (m :: * -> *). MonadDOM m => Range -> Bool -> m ()
collapse Range
self Bool
toStart
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"collapse" [Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
toStart]))
selectNode :: (MonadDOM m, IsNode node) => Range -> node -> m ()
selectNode :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
selectNode Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"selectNode" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
selectNodeContents ::
(MonadDOM m, IsNode node) => Range -> node -> m ()
selectNodeContents :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
selectNodeContents Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"selectNodeContents" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
compareBoundaryPoints ::
(MonadDOM m) => Range -> Word -> Range -> m Int
compareBoundaryPoints :: forall (m :: * -> *). MonadDOM m => Range -> Word -> Range -> m Int
compareBoundaryPoints Range
self Word
how Range
sourceRange
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"compareBoundaryPoints"
[Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
how, Range -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Range
sourceRange])
JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
compareBoundaryPoints_ ::
(MonadDOM m) => Range -> Word -> Range -> m ()
compareBoundaryPoints_ :: forall (m :: * -> *). MonadDOM m => Range -> Word -> Range -> m ()
compareBoundaryPoints_ Range
self Word
how Range
sourceRange
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"compareBoundaryPoints"
[Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
how, Range -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Range
sourceRange]))
deleteContents :: (MonadDOM m) => Range -> m ()
deleteContents :: forall (m :: * -> *). MonadDOM m => Range -> m ()
deleteContents Range
self
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"deleteContents" ()))
extractContents :: (MonadDOM m) => Range -> m DocumentFragment
Range
self
= DOM DocumentFragment -> m DocumentFragment
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"extractContents" ()) JSM JSVal
-> (JSVal -> DOM DocumentFragment) -> DOM DocumentFragment
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DocumentFragment
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
extractContents_ :: (MonadDOM m) => Range -> m ()
Range
self
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"extractContents" ()))
cloneContents :: (MonadDOM m) => Range -> m DocumentFragment
cloneContents :: forall (m :: * -> *). MonadDOM m => Range -> m DocumentFragment
cloneContents Range
self
= DOM DocumentFragment -> m DocumentFragment
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"cloneContents" ()) JSM JSVal
-> (JSVal -> DOM DocumentFragment) -> DOM DocumentFragment
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DocumentFragment
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
cloneContents_ :: (MonadDOM m) => Range -> m ()
cloneContents_ :: forall (m :: * -> *). MonadDOM m => Range -> m ()
cloneContents_ Range
self
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"cloneContents" ()))
insertNode :: (MonadDOM m, IsNode node) => Range -> node -> m ()
insertNode :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
insertNode Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"insertNode" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
surroundContents ::
(MonadDOM m, IsNode newParent) => Range -> newParent -> m ()
surroundContents :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
surroundContents Range
self newParent
newParent
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"surroundContents" [newParent -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal newParent
newParent]))
cloneRange :: (MonadDOM m) => Range -> m Range
cloneRange :: forall (m :: * -> *). MonadDOM m => Range -> m Range
cloneRange Range
self
= DOM Range -> m Range
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"cloneRange" ()) JSM JSVal -> (JSVal -> DOM Range) -> DOM Range
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Range
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
cloneRange_ :: (MonadDOM m) => Range -> m ()
cloneRange_ :: forall (m :: * -> *). MonadDOM m => Range -> m ()
cloneRange_ Range
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"cloneRange" ()))
detach :: (MonadDOM m) => Range -> m ()
detach :: forall (m :: * -> *). MonadDOM m => Range -> m ()
detach Range
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"detach" ()))
isPointInRange ::
(MonadDOM m, IsNode node) => Range -> node -> Word -> m Bool
isPointInRange :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> Word -> m Bool
isPointInRange Range
self node
node Word
offset
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"isPointInRange" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)
isPointInRange_ ::
(MonadDOM m, IsNode node) => Range -> node -> Word -> m ()
isPointInRange_ :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> Word -> m ()
isPointInRange_ Range
self node
node Word
offset
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
(Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"isPointInRange" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset]))
comparePoint ::
(MonadDOM m, IsNode node) => Range -> node -> Word -> m Int
comparePoint :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> Word -> m Int
comparePoint Range
self node
node Word
offset
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"comparePoint" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset]) JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
comparePoint_ ::
(MonadDOM m, IsNode node) => Range -> node -> Word -> m ()
comparePoint_ :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> Word -> m ()
comparePoint_ Range
self node
node Word
offset
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"comparePoint" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset]))
intersectsNode ::
(MonadDOM m, IsNode node) => Range -> node -> m Bool
intersectsNode :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m Bool
intersectsNode Range
self node
node
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"intersectsNode" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)
intersectsNode_ ::
(MonadDOM m, IsNode node) => Range -> node -> m ()
intersectsNode_ :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
intersectsNode_ Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"intersectsNode" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
toString :: (MonadDOM m, FromJSString result) => Range -> m result
toString :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
Range -> m result
toString Range
self
= DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"toString" ()) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
toString_ :: (MonadDOM m) => Range -> m ()
toString_ :: forall (m :: * -> *). MonadDOM m => Range -> m ()
toString_ Range
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"toString" ()))
getClientRects :: (MonadDOM m) => Range -> m [DOMRect]
getClientRects :: forall (m :: * -> *). MonadDOM m => Range -> m [DOMRect]
getClientRects Range
self
= DOM [DOMRect] -> m [DOMRect]
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getClientRects" ()) JSM JSVal -> (JSVal -> DOM [DOMRect]) -> DOM [DOMRect]
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM [DOMRect]
forall o. FromJSVal o => JSVal -> JSM [o]
fromJSArrayUnchecked)
getClientRects_ :: (MonadDOM m) => Range -> m ()
getClientRects_ :: forall (m :: * -> *). MonadDOM m => Range -> m ()
getClientRects_ Range
self
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getClientRects" ()))
getBoundingClientRect :: (MonadDOM m) => Range -> m DOMRect
getBoundingClientRect :: forall (m :: * -> *). MonadDOM m => Range -> m DOMRect
getBoundingClientRect Range
self
= DOM DOMRect -> m DOMRect
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getBoundingClientRect" ()) JSM JSVal -> (JSVal -> DOM DOMRect) -> DOM DOMRect
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMRect
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getBoundingClientRect_ :: (MonadDOM m) => Range -> m ()
getBoundingClientRect_ :: forall (m :: * -> *). MonadDOM m => Range -> m ()
getBoundingClientRect_ Range
self
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"getBoundingClientRect" ()))
createContextualFragment ::
(MonadDOM m, ToJSString fragment) =>
Range -> fragment -> m DocumentFragment
createContextualFragment :: forall (m :: * -> *) fragment.
(MonadDOM m, ToJSString fragment) =>
Range -> fragment -> m DocumentFragment
createContextualFragment Range
self fragment
fragment
= DOM DocumentFragment -> m DocumentFragment
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"createContextualFragment" [fragment -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal fragment
fragment]) JSM JSVal
-> (JSVal -> DOM DocumentFragment) -> DOM DocumentFragment
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
JSVal -> DOM DocumentFragment
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
createContextualFragment_ ::
(MonadDOM m, ToJSString fragment) => Range -> fragment -> m ()
createContextualFragment_ :: forall (m :: * -> *) fragment.
(MonadDOM m, ToJSString fragment) =>
Range -> fragment -> m ()
createContextualFragment_ Range
self fragment
fragment
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"createContextualFragment" [fragment -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal fragment
fragment]))
expand ::
(MonadDOM m, ToJSString unit) => Range -> Maybe unit -> m ()
expand :: forall (m :: * -> *) unit.
(MonadDOM m, ToJSString unit) =>
Range -> Maybe unit -> m ()
expand Range
self Maybe unit
unit
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"expand" [Maybe unit -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe unit
unit]))
compareNode :: (MonadDOM m, IsNode node) => Range -> node -> m Int
compareNode :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m Int
compareNode Range
self node
node
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"compareNode" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]) JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
compareNode_ :: (MonadDOM m, IsNode node) => Range -> node -> m ()
compareNode_ :: forall (m :: * -> *) node.
(MonadDOM m, IsNode node) =>
Range -> node -> m ()
compareNode_ Range
self node
node
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"compareNode" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))
pattern $mSTART_TO_START :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTART_TO_START :: forall {a}. (Eq a, Num a) => a
START_TO_START = 0
pattern $mSTART_TO_END :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bSTART_TO_END :: forall {a}. (Eq a, Num a) => a
START_TO_END = 1
pattern $mEND_TO_END :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEND_TO_END :: forall {a}. (Eq a, Num a) => a
END_TO_END = 2
pattern $mEND_TO_START :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEND_TO_START :: forall {a}. (Eq a, Num a) => a
END_TO_START = 3
pattern $mNODE_BEFORE :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNODE_BEFORE :: forall {a}. (Eq a, Num a) => a
NODE_BEFORE = 0
pattern $mNODE_AFTER :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNODE_AFTER :: forall {a}. (Eq a, Num a) => a
NODE_AFTER = 1
pattern $mNODE_BEFORE_AND_AFTER :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNODE_BEFORE_AND_AFTER :: forall {a}. (Eq a, Num a) => a
NODE_BEFORE_AND_AFTER = 2
pattern $mNODE_INSIDE :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNODE_INSIDE :: forall {a}. (Eq a, Num a) => a
NODE_INSIDE = 3
getStartContainer :: (MonadDOM m) => Range -> m Node
getStartContainer :: forall (m :: * -> *). MonadDOM m => Range -> m Node
getStartContainer Range
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Range (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"startContainer") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getStartOffset :: (MonadDOM m) => Range -> m Int
getStartOffset :: forall (m :: * -> *). MonadDOM m => Range -> m Int
getStartOffset Range
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Int
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Range (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"startOffset") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getEndContainer :: (MonadDOM m) => Range -> m Node
getEndContainer :: forall (m :: * -> *). MonadDOM m => Range -> m Node
getEndContainer Range
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Range (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"endContainer") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getEndOffset :: (MonadDOM m) => Range -> m Int
getEndOffset :: forall (m :: * -> *). MonadDOM m => Range -> m Int
getEndOffset Range
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Int
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Range (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"endOffset") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getCollapsed :: (MonadDOM m) => Range -> m Bool
getCollapsed :: forall (m :: * -> *). MonadDOM m => Range -> m Bool
getCollapsed Range
self
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Range (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"collapsed") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)
getCommonAncestorContainer :: (MonadDOM m) => Range -> m Node
getCommonAncestorContainer :: forall (m :: * -> *). MonadDOM m => Range -> m Node
getCommonAncestorContainer Range
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((Range
self Range -> Getting (JSM JSVal) Range (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Range (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"commonAncestorContainer") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)