Commit 0ee1f55e authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[example] xml works

parent 411bbf77
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
<div id="time-axis"></div> <div id="time-axis"></div>
<div id="links"></div> <div id="links"></div>
<div id="reset-zoom">Reset zoom</div> <div id="reset-zoom">Reset zoom</div>
<div id="xml"></div>
<!-- NOTE: it's important that this is at the end so that the DOM is ready --> <!-- NOTE: it's important that this is at the end so that the DOM is ready -->
<script type="text/javascript" src="/index.fd532818.js"></script> <script type="text/javascript" src="/index.fd532818.js"></script>
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
<div id="time-axis"></div> <div id="time-axis"></div>
<div id="links"></div> <div id="links"></div>
<div id="reset-zoom">Reset zoom</div> <div id="reset-zoom">Reset zoom</div>
<div id="xml"></div>
<!-- NOTE: it's important that this is at the end so that the DOM is ready --> <!-- NOTE: it's important that this is at the end so that the DOM is ready -->
<script type="text/javascript" src="index.js"></script> <script type="text/javascript" src="index.js"></script>
......
This diff is collapsed.
...@@ -99,7 +99,7 @@ in upstream ...@@ -99,7 +99,7 @@ in upstream
------------------------------- -------------------------------
-} -}
let upstream = let upstream =
https://github.com/purescript/package-sets/releases/download/psc-0.14.2/packages.dhall sha256:5f10380b3ca7d3a32ea5c2b7535e4814a5e3f3590c70692f76e596d6ab0687b3 https://github.com/purescript/package-sets/releases/download/psc-0.14.2/packages.dhall sha256:64d7b5a1921e8458589add8a1499a1c82168e726a87fc4f958b3f8760cca2efe
let reactix-d3-additions = ../packages-additions.dhall let reactix-d3-additions = ../packages-additions.dhall
......
...@@ -29,6 +29,7 @@ to generate this file without the comments in this block. ...@@ -29,6 +29,7 @@ to generate this file without the comments in this block.
, "reactix-d3" , "reactix-d3"
, "transformers" , "transformers"
, "tuples" , "tuples"
, "web-dom"
] ]
, packages = ./packages.dhall , packages = ./packages.dhall
, sources = [ "src/**/*.purs", "test/**/*.purs" ] , sources = [ "src/**/*.purs", "test/**/*.purs" ]
......
...@@ -16,6 +16,8 @@ import Effect.Class (liftEffect) ...@@ -16,6 +16,8 @@ import Effect.Class (liftEffect)
import Effect.Unsafe (unsafePerformEffect) import Effect.Unsafe (unsafePerformEffect)
import Foreign import Foreign
import Math import Math
import Web.DOM.Document as WDD
import Web.DOM.HTMLCollection as WDH
import Graphics.D3.Base import Graphics.D3.Base
import Graphics.D3.Contour as Contour import Graphics.D3.Contour as Contour
...@@ -62,7 +64,7 @@ main = do ...@@ -62,7 +64,7 @@ main = do
let margin = {top: 20, right: 30, bottom: 30, left: 40} let margin = {top: 20, right: 30, bottom: 30, left: 40}
width = 460 - margin.left - margin.right width = 460 - margin.left - margin.right
height = 400 - margin.top - margin.bottom height = 400 - margin.top - margin.bottom
svg <- Selection.rootSelect "#contour" contour <- Selection.rootSelect "#contour"
>=>++ "svg" >=>++ "svg"
>=> Tuple "width" (width + margin.left + margin.right) >=> Tuple "width" (width + margin.left + margin.right)
>=> Tuple "height" (height + margin.top + margin.bottom) >=> Tuple "height" (height + margin.top + margin.bottom)
...@@ -84,14 +86,14 @@ main = do ...@@ -84,14 +86,14 @@ main = do
x <- Scale.linearScale x <- Scale.linearScale
>>= Scale.domain [5.0, 20.0] >>= Scale.domain [5.0, 20.0]
>>= Scale.range [0.0, toNumber width] >>= Scale.range [0.0, toNumber width]
_ <- Selection.append "g" svg _ <- Selection.append "g" contour
>=> Tuple "transform" ("translate(0, " <> show height <> ")") >=> Tuple "transform" ("translate(0, " <> show height <> ")")
-- TODO call (d3.axisBottom(x)) -- TODO call (d3.axisBottom(x))
y <- Scale.linearScale y <- Scale.linearScale
>>= Scale.domain [5.0, 22.0] >>= Scale.domain [5.0, 22.0]
>>= Scale.range [toNumber height, 0.0] >>= Scale.range [toNumber height, 0.0]
_ <- pure svg >>= Selection.append "g" _ <- pure contour >>= Selection.append "g"
-- TODO call (d3.axisLeft(y)) -- TODO call (d3.axisLeft(y))
densityData <- Contour.contourDensity densityData <- Contour.contourDensity
...@@ -103,7 +105,7 @@ main = do ...@@ -103,7 +105,7 @@ main = do
log2 "densityData(data')" $ densityData data' log2 "densityData(data')" $ densityData data'
_ <- pure svg _ <- pure contour
>>= Selection.selectAll "path" >>= Selection.selectAll "path"
>>= Selection.bindData (densityData data') >>= Selection.bindData (densityData data')
>>= Selection.enter >>= Selection.enter
...@@ -113,7 +115,7 @@ main = do ...@@ -113,7 +115,7 @@ main = do
>=> Tuple "stroke" "#69b3a2" >=> Tuple "stroke" "#69b3a2"
>=> Tuple "stroke-linejoin" "round" >=> Tuple "stroke-linejoin" "round"
pure unit pure unit
log2 "svg" svg log2 "contour" contour
-- visualize axis -- visualize axis
axisScale <- Scale.linearScale axisScale <- Scale.linearScale
...@@ -199,13 +201,25 @@ main = do ...@@ -199,13 +201,25 @@ main = do
>=> Tuple "fill" "none" >=> Tuple "fill" "none"
>=> Tuple "stroke" "black" >=> Tuple "stroke" "black"
linkZoom <- Zoom.zoom linkZoom <- Zoom.zoom
>>= Zoom.on "zoom" (\ze -> unsafePerformEffect $ do >>= Zoom.on "zoom" (\ze -> do
_ <- log2 "zoom" ze _ <- log2 "zoom" ze
_ <- Selection.attr "transform" (Zoom.transform ze) linkG _ <- Selection.attr "transform" (Zoom.transform ze) linkG
pure unit) pure unit)
_ <- Zoom.renderZoom linkZoom linkElSvg _ <- Zoom.renderZoom linkZoom linkElSvg
-- resetZoomEl <- Selection.selectAll "#reset-zoom"
-- >>= Selection.onClick (\_ -> do
-- _ <- Selection.call (Zoom.transform linkZoom) Zoom.zoomIdentity linkG
-- pure unit)
log2 "linkEl" linkElSvg log2 "linkEl" linkElSvg
resetZoomEl <- Selection.rootSelect "#reset-zoom"
>>= Selection.onClick (\_ -> do
_ <- Selection.call (Zoom.transform linkZoom) Zoom.zoomIdentity linkG
log "zoom reset")
log2 "resetZoomEl" resetZoomEl
launchAff_ $ do
xmlData <- xml "http://localhost:8888/data/employees.xml"
liftEffect $ log2 "xml" xmlData
liftEffect $ do
selXml <- Selection.rootSelect "#xml"
log2 "selXml" selXml
rows <- WDD.getElementsByTagName "row" xmlData >>= WDH.toArray
log2 "rows" rows
log "xml done"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<row>
<Name>John</Name>
<Age>30</Age>
</row>
<row>
<Name>Jane</Name>
<Age>32</Age>
</row>
</root>
var fs = require('fs'),
http = require('http');
var dir = __dirname + '/static';
console.log('Serving at port 8888, dir', dir);
http.createServer(function (req, res) {
fs.readFile(dir + req.url, function (err,data) {
if (err) {
res.writeHead(404);
res.end(JSON.stringify(err));
return;
}
res.setHeader('Access-Control-Allow-Origin', '*');
res.writeHead(200);
res.end(data);
});
}).listen(8888);
...@@ -5997,6 +5997,14 @@ parallel-transform@^1.1.0: ...@@ -5997,6 +5997,14 @@ parallel-transform@^1.1.0:
inherits "^2.0.3" inherits "^2.0.3"
readable-stream "^2.1.5" readable-stream "^2.1.5"
parcel-plugin-static-files-copy@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/parcel-plugin-static-files-copy/-/parcel-plugin-static-files-copy-2.6.0.tgz#06d7d9b6d7e2071b2e261315e94209b522108beb"
integrity sha512-k3YxdnEQWo1aMfCeBfxgUNJWuUE0O730EGiGBcmWEUOto7f1jM/8oxBKXkVZsXDCO1o00dw5X7CsT+yF0JY4qA==
dependencies:
minimatch "3.0.4"
path "0.12.7"
parcel@^2.0.0-beta.2: parcel@^2.0.0-beta.2:
version "2.0.0-beta.2" version "2.0.0-beta.2"
resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-beta.2.tgz#0a58f0b810fe2199b35d7bf7a949906568222d75" resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.0.0-beta.2.tgz#0a58f0b810fe2199b35d7bf7a949906568222d75"
...@@ -6122,6 +6130,14 @@ path-to-regexp@2.2.1: ...@@ -6122,6 +6130,14 @@ path-to-regexp@2.2.1:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45"
integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==
path@0.12.7:
version "0.12.7"
resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=
dependencies:
process "^0.11.1"
util "^0.10.3"
pbkdf2@^3.0.3: pbkdf2@^3.0.3:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
...@@ -6606,7 +6622,7 @@ process-nextick-args@~2.0.0: ...@@ -6606,7 +6622,7 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
process@^0.11.10, process@~0.11.0: process@^0.11.1, process@^0.11.10, process@~0.11.0:
version "0.11.10" version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
...@@ -8142,6 +8158,13 @@ util@0.10.3: ...@@ -8142,6 +8158,13 @@ util@0.10.3:
dependencies: dependencies:
inherits "2.0.1" inherits "2.0.1"
util@^0.10.3, util@~0.10.1:
version "0.10.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
dependencies:
inherits "2.0.3"
util@^0.12.0, util@^0.12.3: util@^0.12.0, util@^0.12.3:
version "0.12.4" version "0.12.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253"
...@@ -8154,13 +8177,6 @@ util@^0.12.0, util@^0.12.3: ...@@ -8154,13 +8177,6 @@ util@^0.12.0, util@^0.12.3:
safe-buffer "^5.1.2" safe-buffer "^5.1.2"
which-typed-array "^1.1.2" which-typed-array "^1.1.2"
util@~0.10.1:
version "0.10.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
dependencies:
inherits "2.0.3"
utils-merge@1.0.1: utils-merge@1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
......
{ -- d3 = ../purescript-d3/spago.dhall as Location { d3 = ../purescript-d3/spago.dhall as Location
d3 = {- d3 =
{ dependencies = (https://raw.githubusercontent.com/cgenie/purescript-d3/master/spago.dhall sha256:8b7ccc57d93feec9c8eece52c67318fcd88b9fc3bee0eec3dd1224b5d55a5452).dependencies { dependencies = (https://raw.githubusercontent.com/cgenie/purescript-d3/master/spago.dhall sha256:8b7ccc57d93feec9c8eece52c67318fcd88b9fc3bee0eec3dd1224b5d55a5452).dependencies
, repo = "https://github.com/cgenie/purescript-d3" , repo = "https://github.com/cgenie/purescript-d3"
, version = "master" , version = "master"
} }
-}
, dom-simple = , dom-simple =
{ dependencies = { dependencies =
[ "console" [ "console"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment