diff --git a/.Rbuildignore b/.Rbuildignore index 91114bf..3912071 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,2 +1,3 @@ ^.*\.Rproj$ ^\.Rproj\.user$ +^\.github$ diff --git a/DESCRIPTION b/DESCRIPTION index 3b45a23..1085138 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,12 +1,11 @@ Package: rhtmlDendrogram Type: Package -Title: What the Package Does (Title Case) -Version: 1.0.0 -Author: Who wrote it -Maintainer: The package maintainer -Description: More about what it does (maybe more than one line) - Use four spaces when indenting paragraphs within the Description. -License: What license is it under? +Title: R htmlwidget package for creating interactive dendrograms +Version: 1.0.1 +Author: Displayr +Maintainer: Displayr +Description: R htmlwidget package for creating interactive dendrograms. +License: GPL-3 Imports: htmlwidgets Encoding: UTF-8 LazyData: true diff --git a/README.md b/README.md index 23aafbd..62ae3c6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Coverage Status](https://coveralls.io/repos/github/Displayr/rhtmlDendrogram/badge.svg?branch=master)](https://coveralls.io/github/Displayr/rhtmlDendrogram?branch=master) # rhtmlDendrogram -What the Package Does (Title Case) +R htmlwidget package for creating interactive dendrograms ## Installation diff --git a/inst/htmlwidgets/lib/dendroNetwork/dendroNetwork.js b/inst/htmlwidgets/lib/dendroNetwork/dendroNetwork.js index d1e99fa..f1482ce 100644 --- a/inst/htmlwidgets/lib/dendroNetwork/dendroNetwork.js +++ b/inst/htmlwidgets/lib/dendroNetwork/dendroNetwork.js @@ -523,17 +523,25 @@ function DendroNetwork() { var maxBarLength = 50; var tipBarScale = d3.scaleLinear().domain([tipMin/2, tipMax]).range([0, maxBarLength]) + var escapeTipHtml = function (value) { + return String(value) + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + }; node.each(function(d) { if (d.data.tips) { var ft_s = options.tooltipsFontSize; var ft_f = options.tooltipsFontFamily; var t = ""; var nval = d.data.tips.length; - t = t + "
"; - t = t + "Name: " + d.data.name + "
" + ""; + t = t + "
"; + t = t + "Name: " + escapeTipHtml(d.data.name) + "
" + "
"; for (var i = 0; i < nval; i++) { t = t + ""; - t = t + ""; + t = t + ""; t = t + ""; t = t + ""; diff --git a/package.json b/package.json index 6bcc72c..b6e593d 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "engines": { "node": ">=6.9.5" }, + "overrides": { + "graceful-fs": "^4.2.11" + }, "devDependencies": { "babel-plugin-array-includes": "^2.0.3", "babel-plugin-transform-object-assign": "^6.22.0", diff --git a/theSrc/scripts/lib/dendroNetwork/dendroNetwork.js b/theSrc/scripts/lib/dendroNetwork/dendroNetwork.js index d1e99fa..f1482ce 100644 --- a/theSrc/scripts/lib/dendroNetwork/dendroNetwork.js +++ b/theSrc/scripts/lib/dendroNetwork/dendroNetwork.js @@ -523,17 +523,25 @@ function DendroNetwork() { var maxBarLength = 50; var tipBarScale = d3.scaleLinear().domain([tipMin/2, tipMax]).range([0, maxBarLength]) + var escapeTipHtml = function (value) { + return String(value) + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + }; node.each(function(d) { if (d.data.tips) { var ft_s = options.tooltipsFontSize; var ft_f = options.tooltipsFontFamily; var t = ""; var nval = d.data.tips.length; - t = t + "
"; - t = t + "Name: " + d.data.name + "
" + "
" + options.colnames[i] + "" + escapeTipHtml(options.colnames[i]) + ""; t = t + "
" + "
"; + t = t + "
"; + t = t + "Name: " + escapeTipHtml(d.data.name) + "
" + "
"; for (var i = 0; i < nval; i++) { t = t + ""; - t = t + ""; + t = t + ""; t = t + ""; t = t + "";
" + options.colnames[i] + "" + escapeTipHtml(options.colnames[i]) + ""; t = t + "
" + "