ghcjs-perch 0.3.3.2 → 0.3.3.3
raw patch · 4 files changed
+33/−3 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- GHCJS.Perch: withPerch :: (Elem -> IO a) -> Elem -> IO Elem
- GHCJS.Perch: withPerchBuild :: PerchM a -> (Elem -> IO b) -> Elem -> IO Elem
+ GHCJS.Perch: mappendt :: () => PerchM a1 -> PerchM a2 -> PerchM a3
+ GHCJS.Perch: nelemNS :: JSString -> JSString -> Perch
+ GHCJS.Perch: newElemNS :: JSString -> JSString -> IO Elem
- GHCJS.Perch: addEvent :: (NamedEvent e) => Perch -> e -> Callback (JSVal -> IO ()) -> Perch
+ GHCJS.Perch: addEvent :: NamedEvent e => Perch -> e -> Callback (JSVal -> IO ()) -> Perch
- GHCJS.Perch: addEvent' :: (NamedEvent e) => Perch -> e -> (JSVal -> IO ()) -> Perch
+ GHCJS.Perch: addEvent' :: NamedEvent e => Perch -> e -> (JSVal -> IO ()) -> Perch
- GHCJS.Perch: ctag :: (ToElem b) => JSString -> b -> Perch
+ GHCJS.Perch: ctag :: ToElem b => JSString -> b -> Perch
- GHCJS.Perch: pack :: a
+ GHCJS.Perch: pack :: () => a
- GHCJS.Perch: remEvent :: (NamedEvent e) => Perch -> e -> Callback (JSVal -> IO ()) -> Perch
+ GHCJS.Perch: remEvent :: NamedEvent e => Perch -> e -> Callback (JSVal -> IO ()) -> Perch
Files
- ghcjs-perch.cabal +1/−1
- src/Internal/API.hs +7/−0
- src/Internal/FFI.hs +3/−0
- src/Internal/Perch.hs +22/−2
ghcjs-perch.cabal view
@@ -3,7 +3,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.3.3.2+version: 0.3.3.3 synopsis: GHCJS version of Perch library.
src/Internal/API.hs view
@@ -42,6 +42,13 @@ newElem = notImplemented #endif +newElemNS :: JSString -> JSString -> IO Elem+#ifdef ghcjs_HOST_OS+newElemNS ns e = Elem <$> js_documentCreateNodeNS ns e+#else+newElemNS = notImplemented+#endif+ newTextElem :: JSString -> IO Elem #ifdef ghcjs_HOST_OS newTextElem = (Elem <$>) . js_createTextNode
src/Internal/FFI.hs view
@@ -28,6 +28,9 @@ foreign import javascript unsafe "document.createElement($1)" js_documentCreateNode :: JSString -> IO JSVal +foreign import javascript unsafe "document.createElementNS($1,$2)"+ js_documentCreateNodeNS :: JSString -> JSString -> IO JSVal+ foreign import javascript unsafe "document.createTextNode($1)" js_createTextNode :: JSString -> IO JSVal
src/Internal/Perch.hs view
@@ -46,11 +46,23 @@ -------------------------------------------------------------------------------- instance Monoid (PerchM a) where- mappend mx my = Perch . withPerch $ \e ->+ mempty = Perch return+ +#if MIN_VERSION_base(4,11,0) + mappend = (<>) ++instance Semigroup (PerchM a) where+ (<>)= mappendt++#else+ mappend= mappendt+#endif++mappendt mx my = Perch . withPerch $ \e -> do build mx e build my e- mempty = Perch return + instance Functor PerchM instance Applicative PerchM@@ -98,9 +110,17 @@ attr :: forall a. PerchM a -> (PropId, JSString) -> PerchM a attr tag (n, v) = Perch $ withPerchBuild tag (\t -> setAttr t n v) +-- | Create a new elemet nelem :: JSString -> Perch nelem s = Perch $ \x -> do e <- newElem s+ addChild e x+ return e+ +-- | Create a new element with a namespace`+nelemNS :: JSString -> JSString -> Perch+nelemNS ns s= Perch $ \x ->+ do e <- newElemNS ns s addChild e x return e