summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-02-09 08:59:29 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-02-09 09:02:25 +0100
commitce57df72fd7ce52bdd33bc6c9477b1ebac86ac1e (patch)
tree99a5035c7f2cd88293c633a694c959667f48958b /gnu
parent61d1d4a3c5420acef48376871021709b00fc9d2f (diff)
downloadguix-ce57df72fd7ce52bdd33bc6c9477b1ebac86ac1e.tar.gz
gnu: Add r-billboarder.
* gnu/packages/cran.scm (r-billboarder): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/cran.scm60
1 files changed, 60 insertions, 0 deletions
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index af4d3c8f76..d468972aa1 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -8284,6 +8284,66 @@ Python to R they are converted back to R types.")
 file.")
     (license license:gpl2+)))
 
+(define-public r-billboarder
+  (package
+    (name "r-billboarder")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "billboarder" version))
+       (sha256
+        (base32 "189ngvg84rcwhrivxskmjv3srhadvzr4p1v8pf11axyv2qn01b0x"))
+       (snippet
+        '(delete-file "inst/htmlwidgets/lib/billboard/billboard.pkgd.min.js"))))
+    (properties `((upstream-name . "billboarder")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'process-javascript
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "inst/htmlwidgets/lib/billboard/"
+               (let ((source (assoc-ref inputs "js-billboard"))
+                     (target "billboard.pkgd.min.js"))
+                 (format #true "Processing ~a --> ~a~%"
+                         source target)
+                 (invoke "esbuild" source "--minify"
+                         (string-append "--outfile=" target)))))))))
+    (propagated-inputs
+     (list r-ggplot2
+           r-htmltools
+           r-htmlwidgets
+           r-jsonlite
+           r-magrittr
+           r-rlang
+           r-scales
+           r-shiny))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)
+       ("esbuild" ,esbuild)
+       ;; It is not ideal to use this concatenated (but not minified)
+       ;; JavaScript file, as the original source is written in TypeScript.
+       ;; However, this can still be considered source code as it is readable
+       ;; and can be modified.
+       ("js-billboard"
+        ,(origin
+           (method url-fetch)
+           (uri "https://unpkg.com/billboard.js@3.2.0/dist/billboard.js")
+           (sha256
+            (base32
+             "1kx5rqmn87pgal2cwmcij2rrnwa0fgcsw6y99m4i0l2sdm0qffv2"))))))
+    (home-page "https://github.com/dreamRs/billboarder")
+    (synopsis "Create interactive charts with the JavaScript Billboard library")
+    (description
+     "This package provides an @code{htmlwidgets} interface to billboard.js,
+a re-usable easy interface JavaScript chart library, based on D3 v4+.  Chart
+types include line charts, scatterplots, bar/lollipop charts,
+histogram/density plots, pie/donut charts and gauge charts.  All charts are
+interactive, and a proxy method is implemented to smoothly update a chart
+without rendering it again in shiny apps.")
+    (license license:expat)))
+
 (define-public r-ggseqlogo
   (package
     (name "r-ggseqlogo")