Commit 11ea7ac9 authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

Linear scale is working, example project added

parent c4199c8e
...@@ -8,3 +8,13 @@ ...@@ -8,3 +8,13 @@
/.purs* /.purs*
/.psa* /.psa*
/.spago /.spago
/example/.parcel-cache
/example/dist/*.js
/example/dist/*.js.map
/example/output
/example/node_modules
/example/.psc-package/
/example/.psc*
/example/.purs*
/example/.psa*
/example/.spago
...@@ -5,3 +5,10 @@ ...@@ -5,3 +5,10 @@
``` sh ``` sh
yarn spago build yarn spago build
``` ```
## Serving
``` sh
nvm use --lts
yarn parcel index.html
```
/bower_components/
/node_modules/
/.pulp-cache/
/output/
/generated-docs/
/.psc-package/
/.psc*
/.purs*
/.psa*
/.spago
# Example app for `purescript-reactix-d3`
## Building
``` sh
yarn
yarn spago build
yarn spago bundle-app
```
## Serving
``` sh
yarn parcel index.html
```
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Purescript Reactix D3 example</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="/index.fd532818.js"></script>
</head>
<body>
<!--[if lt IE 8]>
<p class="browserupgrade">
You are using an <strong>outdated</strong> browser. Please
<a href="http://browsehappy.com/">upgrade your browser</a> to improve
your experience.
</p>
<![endif]-->
</body>
</html>
...@@ -7,9 +7,6 @@ ...@@ -7,9 +7,6 @@
<meta name="description" content=""> <meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- Place favicon.ico in the root directory -->
<script type="text/javascript" src="index.js"></script> <script type="text/javascript" src="index.js"></script>
</head> </head>
......
// Generated by purs bundle 0.14.1 // Generated by purs bundle 0.14.1
var PS = {}; var PS = {};
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Control.Apply"] = $PS["Control.Apply"] || {};
var exports = $PS["Control.Apply"];
var Apply = function (Functor0, apply) {
this.Functor0 = Functor0;
this.apply = apply;
};
var apply = function (dict) {
return dict.apply;
};
exports["Apply"] = Apply;
exports["apply"] = apply;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Control.Applicative"] = $PS["Control.Applicative"] || {};
var exports = $PS["Control.Applicative"];
var Control_Apply = $PS["Control.Apply"];
var Applicative = function (Apply0, pure) {
this.Apply0 = Apply0;
this.pure = pure;
};
var pure = function (dict) {
return dict.pure;
};
var liftA1 = function (dictApplicative) {
return function (f) {
return function (a) {
return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);
};
};
};
exports["Applicative"] = Applicative;
exports["pure"] = pure;
exports["liftA1"] = liftA1;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Control.Bind"] = $PS["Control.Bind"] || {};
var exports = $PS["Control.Bind"];
var Bind = function (Apply0, bind) {
this.Apply0 = Apply0;
this.bind = bind;
};
var bind = function (dict) {
return dict.bind;
};
exports["Bind"] = Bind;
exports["bind"] = bind;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Control.Monad"] = $PS["Control.Monad"] || {};
var exports = $PS["Control.Monad"];
var Control_Applicative = $PS["Control.Applicative"];
var Control_Bind = $PS["Control.Bind"];
var Monad = function (Applicative0, Bind1) {
this.Applicative0 = Applicative0;
this.Bind1 = Bind1;
};
var ap = function (dictMonad) {
return function (f) {
return function (a) {
return Control_Bind.bind(dictMonad.Bind1())(f)(function (f$prime) {
return Control_Bind.bind(dictMonad.Bind1())(a)(function (a$prime) {
return Control_Applicative.pure(dictMonad.Applicative0())(f$prime(a$prime));
});
});
};
};
};
exports["Monad"] = Monad;
exports["ap"] = ap;
})(PS);
(function(exports) {
"use strict";
exports.unit = {};
})(PS["Data.Unit"] = PS["Data.Unit"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Data.Unit"] = $PS["Data.Unit"] || {};
var exports = $PS["Data.Unit"];
var $foreign = $PS["Data.Unit"];
exports["unit"] = $foreign.unit;
})(PS);
(function(exports) { (function(exports) {
"use strict"; "use strict";
exports.log = function (s) { exports.pureE = function (a) {
return function () { return function () {
console.log(s); return a;
};
};
exports.bindE = function (a) {
return function (f) {
return function () {
return f(a())();
};
};
};
})(PS["Effect"] = PS["Effect"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Data.Functor"] = $PS["Data.Functor"] || {};
var exports = $PS["Data.Functor"];
var Functor = function (map) {
this.map = map;
};
exports["Functor"] = Functor;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Effect"] = $PS["Effect"] || {};
var exports = $PS["Effect"];
var $foreign = $PS["Effect"];
var Control_Applicative = $PS["Control.Applicative"];
var Control_Apply = $PS["Control.Apply"];
var Control_Bind = $PS["Control.Bind"];
var Control_Monad = $PS["Control.Monad"];
var Data_Functor = $PS["Data.Functor"];
var monadEffect = new Control_Monad.Monad(function () {
return applicativeEffect;
}, function () {
return bindEffect;
});
var bindEffect = new Control_Bind.Bind(function () {
return applyEffect;
}, $foreign.bindE);
var applyEffect = new Control_Apply.Apply(function () {
return functorEffect;
}, Control_Monad.ap(monadEffect));
var applicativeEffect = new Control_Applicative.Applicative(function () {
return applyEffect;
}, $foreign.pureE);
var functorEffect = new Data_Functor.Functor(Control_Applicative.liftA1(applicativeEffect));
exports["applicativeEffect"] = applicativeEffect;
exports["bindEffect"] = bindEffect;
exports["monadEffect"] = monadEffect;
})(PS);
(function(exports) {
'use strict';
function args() { return arguments; }
exports._args2 = args;
exports._apply = function apply(f, that, args) { return f.apply(that, args); };
})(PS["FFI.Simple.Functions"] = PS["FFI.Simple.Functions"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Data.Function"] = $PS["Data.Function"] || {};
var exports = $PS["Data.Function"];
var flip = function (f) {
return function (b) {
return function (a) {
return f(a)(b);
};
};
};
exports["flip"] = flip;
})(PS);
(function(exports) {
"use strict";
exports.runFn2 = function (fn) {
return function (a) {
return function (b) {
return fn(a, b);
};
};
};
exports.runFn3 = function (fn) {
return function (a) {
return function (b) {
return function (c) {
return fn(a, b, c);
};
};
}; };
}; };
})(PS["Effect.Console"] = PS["Effect.Console"] || {}); })(PS["Data.Function.Uncurried"] = PS["Data.Function.Uncurried"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Data.Function.Uncurried"] = $PS["Data.Function.Uncurried"] || {};
var exports = $PS["Data.Function.Uncurried"];
var $foreign = $PS["Data.Function.Uncurried"];
exports["runFn2"] = $foreign.runFn2;
exports["runFn3"] = $foreign.runFn3;
})(PS);
(function(exports) {
'use strict';
function typeOf(v) { return typeof v; }
function instanceOf(obj, thing) { return obj instanceof thing; }
function isIn(prop,obj) { return prop in obj; }
function keys(obj) { return Object.keys(obj); };
function hasOwnProperty(prop, obj) { return obj.hasOwnProperty(prop); }
function getProperty(prop, obj) { return obj[prop]; }
function setProperty(prop, obj, value) {
obj[prop] = value;
return obj;
}
function defineProperty(prop, obj, value) {
Object.defineProperty(obj, prop, {value: value, writable: false});
return obj;
}
function removeProperty(prop, obj) { delete obj[prop]; return obj; }
exports._getProperty = getProperty;
})(PS["FFI.Simple.Objects"] = PS["FFI.Simple.Objects"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["FFI.Simple.Objects"] = $PS["FFI.Simple.Objects"] || {};
var exports = $PS["FFI.Simple.Objects"];
var $foreign = $PS["FFI.Simple.Objects"];
var Data_Function_Uncurried = $PS["Data.Function.Uncurried"];
var getProperty = Data_Function_Uncurried.runFn2($foreign["_getProperty"]);
exports["getProperty"] = getProperty;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["FFI.Simple.Functions"] = $PS["FFI.Simple.Functions"] || {};
var exports = $PS["FFI.Simple.Functions"];
var $foreign = $PS["FFI.Simple.Functions"];
var Control_Applicative = $PS["Control.Applicative"];
var Control_Bind = $PS["Control.Bind"];
var Data_Function = $PS["Data.Function"];
var Data_Function_Uncurried = $PS["Data.Function.Uncurried"];
var FFI_Simple_Objects = $PS["FFI.Simple.Objects"];
var Delay = function (Monad0, delay) {
this.Monad0 = Monad0;
this.delay = delay;
};
var delayMonad = function (dictMonad) {
return new Delay(function () {
return dictMonad;
}, (function () {
var $1 = Control_Bind.bind(dictMonad.Bind1());
var $2 = Control_Applicative.pure(dictMonad.Applicative0());
return function ($3) {
return $1($2($3));
};
})());
};
var delay = function (dict) {
return dict.delay;
};
var args2 = Data_Function_Uncurried.runFn2($foreign["_args2"]);
var applyTo = Data_Function_Uncurried.runFn3($foreign["_apply"]);
var applyMethod = function (n) {
return function (o) {
return applyTo(FFI_Simple_Objects.getProperty(n)(o))(o);
};
};
var applyMethod$prime = Data_Function.flip(applyMethod);
exports["delay"] = delay;
exports["applyMethod'"] = applyMethod$prime;
exports["args2"] = args2;
exports["delayMonad"] = delayMonad;
})(PS);
(function(exports) {
'use strict';
const glob
= (typeof globalThis !== 'undefined' && globalThis)
|| (typeof window !== 'undefined' && window)
|| (typeof global !== 'undefined' && global)
|| false;
exports._global
= glob
? (function(name) { return glob[name]; })
: (function() {
console.warn("FFI.Simple.Globals.global: none of globalThis, window, global are defined, falling back to silently returning undef");
return function() {};
})();
})(PS["FFI.Simple.Globals"] = PS["FFI.Simple.Globals"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["FFI.Simple.Globals"] = $PS["FFI.Simple.Globals"] || {};
var exports = $PS["FFI.Simple.Globals"];
var $foreign = $PS["FFI.Simple.Globals"];
var unsafeGlobal = $foreign["_global"];
exports["unsafeGlobal"] = unsafeGlobal;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["DOM.Simple.Console"] = $PS["DOM.Simple.Console"] || {};
var exports = $PS["DOM.Simple.Console"];
var Control_Applicative = $PS["Control.Applicative"];
var Data_Unit = $PS["Data.Unit"];
var Effect = $PS["Effect"];
var FFI_Simple_Functions = $PS["FFI.Simple.Functions"];
var FFI_Simple_Globals = $PS["FFI.Simple.Globals"];
var console = FFI_Simple_Globals.unsafeGlobal("console");
var log2 = function (a) {
return function (b) {
return FFI_Simple_Functions.delay(FFI_Simple_Functions.delayMonad(Effect.monadEffect))(Data_Unit.unit)(function (v) {
return Control_Applicative.pure(Effect.applicativeEffect)(FFI_Simple_Functions["applyMethod'"](console)("log")(FFI_Simple_Functions.args2(a)(b)));
});
};
};
exports["log2"] = log2;
})(PS);
(function(exports) {
/* global exports */
"use strict";
exports.unsafeForeignProcedure = function(args) {
return function (stmt) {
return Function(wrap(args.slice()))();
function wrap() {
return !args.length ? stmt : 'return function (' + args.shift() + ') { ' + wrap() + ' };';
}
};
};
})(PS["Data.Foreign.EasyFFI"] = PS["Data.Foreign.EasyFFI"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Data.Foreign.EasyFFI"] = $PS["Data.Foreign.EasyFFI"] || {};
var exports = $PS["Data.Foreign.EasyFFI"];
var $foreign = $PS["Data.Foreign.EasyFFI"];
var unsafeForeignFunction = function (args) {
return function (expr) {
return $foreign.unsafeForeignProcedure(args)("return " + (expr + ";"));
};
};
exports["unsafeForeignFunction"] = unsafeForeignFunction;
})(PS);
(function(exports) {
'use strict';
var d3 =require("d3/dist/d3.js");
if (window !== undefined) {
window.d3 = d3;
}
exports.d3 = d3;
})(PS["Graphics.D3.Base"] = PS["Graphics.D3.Base"] || {});
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Graphics.D3.Base"] = $PS["Graphics.D3.Base"] || {};
var exports = $PS["Graphics.D3.Base"];
var $foreign = $PS["Graphics.D3.Base"];
exports["d3"] = $foreign.d3;
})(PS);
(function(exports) {
/* global exports */
"use strict";
// module Graphics.D3.Scale
exports.linearScaleImpl = function(d3) { return d3.scaleLinear; };
})(PS["Graphics.D3.Scale"] = PS["Graphics.D3.Scale"] || {});
(function($PS) { (function($PS) {
// Generated by purs version 0.14.1 // Generated by purs version 0.14.1
"use strict"; "use strict";
$PS["Effect.Console"] = $PS["Effect.Console"] || {}; $PS["Graphics.D3.Unsafe"] = $PS["Graphics.D3.Unsafe"] || {};
var exports = $PS["Effect.Console"]; var exports = $PS["Graphics.D3.Unsafe"];
var $foreign = $PS["Effect.Console"]; var Data_Foreign_EasyFFI = $PS["Data.Foreign.EasyFFI"];
exports["log"] = $foreign.log; var ffi = Data_Foreign_EasyFFI.unsafeForeignFunction;
var unsafeCopy = ffi([ "scale", "" ])("scale.copy()");
var unsafeDomain = ffi([ "domain", "scale", "" ])("scale.domain(domain)");
var unsafeRange = ffi([ "values", "scale", "" ])("scale.range(values)");
var unsafeToFunction = ffi([ "scale", "" ])("scale.copy()");
exports["unsafeDomain"] = unsafeDomain;
exports["unsafeRange"] = unsafeRange;
exports["unsafeCopy"] = unsafeCopy;
exports["unsafeToFunction"] = unsafeToFunction;
})(PS);
(function($PS) {
// Generated by purs version 0.14.1
"use strict";
$PS["Graphics.D3.Scale"] = $PS["Graphics.D3.Scale"] || {};
var exports = $PS["Graphics.D3.Scale"];
var $foreign = $PS["Graphics.D3.Scale"];
var Graphics_D3_Base = $PS["Graphics.D3.Base"];
var Graphics_D3_Unsafe = $PS["Graphics.D3.Unsafe"];
var Scale = function (copy, domain, range, toFunction) {
this.copy = copy;
this.domain = domain;
this.range = range;
this.toFunction = toFunction;
};
var toFunction = function (dict) {
return dict.toFunction;
};
var scaleLinear = new Scale(Graphics_D3_Unsafe.unsafeCopy, Graphics_D3_Unsafe.unsafeDomain, Graphics_D3_Unsafe.unsafeRange, Graphics_D3_Unsafe.unsafeToFunction);
var range = function (dict) {
return dict.range;
};
var linearScale = $foreign.linearScaleImpl(Graphics_D3_Base.d3);
var domain = function (dict) {
return dict.domain;
};
exports["linearScale"] = linearScale;
exports["domain"] = domain;
exports["range"] = range;
exports["toFunction"] = toFunction;
exports["scaleLinear"] = scaleLinear;
})(PS); })(PS);
(function($PS) { (function($PS) {
// Generated by purs version 0.14.1 // Generated by purs version 0.14.1
"use strict"; "use strict";
$PS["Main"] = $PS["Main"] || {}; $PS["Main"] = $PS["Main"] || {};
var exports = $PS["Main"]; var exports = $PS["Main"];
var Effect_Console = $PS["Effect.Console"]; var Control_Bind = $PS["Control.Bind"];
var main = Effect_Console.log("\ud83c\udf5d"); var DOM_Simple_Console = $PS["DOM.Simple.Console"];
var Effect = $PS["Effect"];
var Graphics_D3_Base = $PS["Graphics.D3.Base"];
var Graphics_D3_Scale = $PS["Graphics.D3.Scale"];
var main = function __do() {
DOM_Simple_Console.log2("d3")(Graphics_D3_Base.d3)();
var scale = Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Graphics_D3_Scale.linearScale)(Graphics_D3_Scale.domain(Graphics_D3_Scale.scaleLinear)([ -10.0, 10.0 ])))(Graphics_D3_Scale.range(Graphics_D3_Scale.scaleLinear)([ 0.0, 1.0 ])))(Graphics_D3_Scale.toFunction(Graphics_D3_Scale.scaleLinear))();
DOM_Simple_Console.log2("after scaleLinear")(scale)();
return DOM_Simple_Console.log2("scale @ 5")(scale(5.0))();
};
exports["main"] = main; exports["main"] = main;
})(PS); })(PS);
PS["Main"].main(); PS["Main"].main();
\ No newline at end of file
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
"karma-cli": "^2.0.0", "karma-cli": "^2.0.0",
"karma-mocha": "^1.3.0", "karma-mocha": "^1.3.0",
"mocha": "^7.0.0", "mocha": "^7.0.0",
"parcel": "^2.0.0-beta.2",
"psc-package": "^4.0.1", "psc-package": "^4.0.1",
"pulp": "^15.0.0", "pulp": "^15.0.0",
"purescript": "^0.14.1", "purescript": "^0.14.1",
......
...@@ -101,5 +101,7 @@ in upstream ...@@ -101,5 +101,7 @@ in upstream
let upstream = let upstream =
https://github.com/purescript/package-sets/releases/download/psc-0.14.1-20210516/packages.dhall sha256:f5e978371d4cdc4b916add9011021509c8d869f4c3f6d0d2694c0e03a85046c8 https://github.com/purescript/package-sets/releases/download/psc-0.14.1-20210516/packages.dhall sha256:f5e978371d4cdc4b916add9011021509c8d869f4c3f6d0d2694c0e03a85046c8
in upstream let reactix-d3-additions = ../packages-additions.dhall
in (upstream // reactix-d3-additions)
with reactix-d3 = ../spago.dhall as Location with reactix-d3 = ../spago.dhall as Location
...@@ -11,7 +11,13 @@ When creating a new Spago project, you can use ...@@ -11,7 +11,13 @@ When creating a new Spago project, you can use
to generate this file without the comments in this block. to generate this file without the comments in this block.
-} -}
{ name = "example" { name = "example"
, dependencies = [ "console", "effect", "prelude", "psci-support" ] , dependencies = [ "console"
, "d3"
, "dom-simple"
, "effect"
, "prelude"
, "psci-support"
, "reactix-d3" ]
, packages = ./packages.dhall , packages = ./packages.dhall
, sources = [ "src/**/*.purs", "test/**/*.purs" ] , sources = [ "src/**/*.purs", "test/**/*.purs" ]
} }
...@@ -2,9 +2,18 @@ module Main where ...@@ -2,9 +2,18 @@ module Main where
import Prelude import Prelude
import DOM.Simple.Console (log2)
import Effect (Effect) import Effect (Effect)
import Effect.Console (log)
import Graphics.D3.Base
import Graphics.D3.Scale
main :: Effect Unit main :: Effect Unit
main = do main = do
log "🍝" log2 "d3" d3
scale <- linearScale
>>= domain [-10.0, 10.0]
>>= range [0.0, 1.0]
>>= toFunction
log2 "after scaleLinear" scale
log2 "scale @ 5" $ scale 5.0
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -15,8 +15,5 @@ ...@@ -15,8 +15,5 @@
"pulp": "^15.0.0", "pulp": "^15.0.0",
"purescript": "^0.14.1", "purescript": "^0.14.1",
"spago": "^0.20.3" "spago": "^0.20.3"
},
"dependencies": {
"d3": "^6.7.0"
} }
} }
{ -- d3 = ../purescript-d3/spago.dhall as Location
d3 = {
dependencies =
[ "easy-ffi"
, "effect"
, "either"
, "exceptions"
, "foreign"
, "js-date"
, "maybe"
, "prelude"
, "psci-support"
, "tuples" ]
, repo = "https://github.com/cgenie/purescript-d3"
, version = "master"
}
,
dom-simple =
{ dependencies =
[ "console"
, "effect"
, "functions"
, "nullable"
, "prelude"
, "spec"
, "spec-mocha"
, "unsafe-coerce"
]
, repo = "https://github.com/poorscript/purescript-dom-simple"
, version = "v0.2.7"
}
, ffi-simple =
{ dependencies =
[ "prelude"
, "effect"
, "maybe"
, "functions"
, "nullable"
, "unsafe-coerce"
]
, repo = "https://github.com/poorscript/purescript-ffi-simple"
, version = "v0.2.10"
}
, inflection =
{ dependencies = [ "functions" ]
, repo = "https://github.com/athanclark/purescript-inflection"
, version = "v1.0.0"
}
, spec-mocha =
{ dependencies =
[ "console", "foldable-traversable", "exceptions", "spec" ]
, repo = "https://github.com/purescript-spec/purescript-spec-mocha"
, version = "v4.0.0"
}
, reactix =
{ dependencies =
[ "aff"
, "dom-simple"
, "effect"
, "ffi-simple"
, "functions"
, "newtype"
, "nullable"
, "prelude"
, "psci-support"
, "refs"
, "spec"
, "spec-mocha"
, "unsafe-coerce"
]
, repo = "https://github.com/poorscript/purescript-reactix/"
, version = "v0.4.11"
}
}
...@@ -101,63 +101,6 @@ in upstream ...@@ -101,63 +101,6 @@ in upstream
let upstream = let upstream =
https://github.com/purescript/package-sets/releases/download/psc-0.14.1-20210516/packages.dhall sha256:f5e978371d4cdc4b916add9011021509c8d869f4c3f6d0d2694c0e03a85046c8 https://github.com/purescript/package-sets/releases/download/psc-0.14.1-20210516/packages.dhall sha256:f5e978371d4cdc4b916add9011021509c8d869f4c3f6d0d2694c0e03a85046c8
let additions = let additions = ./packages-additions.dhall
{ dom-simple =
{ dependencies =
[ "console"
, "effect"
, "functions"
, "nullable"
, "prelude"
, "spec"
, "spec-mocha"
, "unsafe-coerce"
]
, repo = "https://github.com/poorscript/purescript-dom-simple"
, version = "v0.2.7"
}
, ffi-simple =
{ dependencies =
[ "prelude"
, "effect"
, "maybe"
, "functions"
, "nullable"
, "unsafe-coerce"
]
, repo = "https://github.com/poorscript/purescript-ffi-simple"
, version = "v0.2.10"
}
, inflection =
{ dependencies = [ "functions" ]
, repo = "https://github.com/athanclark/purescript-inflection"
, version = "v1.0.0"
}
, spec-mocha =
{ dependencies =
[ "console", "foldable-traversable", "exceptions", "spec" ]
, repo = "https://github.com/purescript-spec/purescript-spec-mocha"
, version = "v4.0.0"
}
, reactix =
{ dependencies =
[ "aff"
, "dom-simple"
, "effect"
, "ffi-simple"
, "functions"
, "newtype"
, "nullable"
, "prelude"
, "psci-support"
, "refs"
, "spec"
, "spec-mocha"
, "unsafe-coerce"
]
, repo = "https://github.com/poorscript/purescript-reactix/"
, version = "v0.4.11"
}
}
in upstream // additions in (upstream // additions)
...@@ -14,5 +14,6 @@ pkgs.mkShell { ...@@ -14,5 +14,6 @@ pkgs.mkShell {
easy-ps.purs-0_14_1 easy-ps.purs-0_14_1
easy-ps.psc-package easy-ps.psc-package
build build
pkgs.dhall-json
]; ];
} }
...@@ -10,9 +10,15 @@ When creating a new Spago project, you can use ...@@ -10,9 +10,15 @@ When creating a new Spago project, you can use
`spago init --no-comments` or `spago init -C` `spago init --no-comments` or `spago init -C`
to generate this file without the comments in this block. to generate this file without the comments in this block.
-} -}
{ name = "purescript-reactix-d3" { name = "purescript-reactix-d3"
, dependencies = [ "console", "effect", "prelude", "psci-support", "reactix" ] , dependencies = [ "console"
, "d3"
, "effect"
, "ffi-simple"
, "functions"
, "prelude"
, "psci-support"
, "reactix" ]
, packages = ./packages.dhall , packages = ./packages.dhall
, sources = [ "src/**/*.purs", "test/**/*.purs" ] , sources = [ "src/**/*.purs", "test/**/*.purs" ]
} }
module Graphics.D3.Reactix.Base
( D3()
) where
import Effect (Effect)
import Reactix as R
foreign import data D3 :: Effect
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