module Data.DOM.CharacterData
       (substringData, appendData, insertData, deleteData, replaceData,
        set'data, get'data, getm'data, get'length, getm'length)
       where
import Data.DOM.Dom
import Control.Monad
import WebBits.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Document (createElement)
 
substringData ::
              (Monad mn, CCharacterData this) =>
                Expression Double ->
                  Expression Double -> Expression this -> mn (Expression String)
substringData a b thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "substringData")
       return (CallExpr et r [a /\ et, b /\ et])
 
appendData ::
           (Monad mn, CCharacterData this) =>
             Expression String -> Expression this -> mn (Expression ())
appendData a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "appendData")
       return (CallExpr et r [a /\ et])
 
insertData ::
           (Monad mn, CCharacterData this) =>
             Expression Double ->
               Expression String -> Expression this -> mn (Expression ())
insertData a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "insertData")
       return (CallExpr et r [a /\ et, b /\ et])
 
deleteData ::
           (Monad mn, CCharacterData this) =>
             Expression Double ->
               Expression Double -> Expression this -> mn (Expression ())
deleteData a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "deleteData")
       return (CallExpr et r [a /\ et, b /\ et])
 
replaceData ::
            (Monad mn, CCharacterData this) =>
              Expression Double ->
                Expression Double ->
                  Expression String -> Expression this -> mn (Expression ())
replaceData a b c thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "replaceData")
       return (CallExpr et r [a /\ et, b /\ et, c /\ et])
 
set'data ::
         (Monad mn, CCharacterData zz) =>
           Expression String -> Expression zz -> mn (Expression zz)
set'data = setjsProperty "data"
 
get'data ::
         (Monad mn, CCharacterData this) =>
           Expression this -> mn (Expression String)
get'data thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "data")
       return r
 
getm'data ::
          (Monad mn, CCharacterData this) =>
            Expression this -> mn (Expression String)
getm'data = get'data
 
get'length ::
           (Monad mn, CCharacterData this) =>
             Expression this -> mn (Expression Double)
get'length thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "length")
       return r
 
getm'length ::
            (Monad mn, CCharacterData this) =>
              Expression this -> mn (Expression Double)
getm'length = get'length