diff --git a/build/webcodebook.js b/build/webcodebook.js index 61a1354..1707721 100644 --- a/build/webcodebook.js +++ b/build/webcodebook.js @@ -2324,6 +2324,8 @@ } function onInit$2() { + var _this = this; + var context = this; var config = this.initialSettings; var measure = config.measure; @@ -2352,7 +2354,12 @@ if (!this.group) { this.initialSettings.unfilteredData = this.raw_data; this.raw_data = this.initialSettings.unfilteredData.filter(function(d) { - return !isNaN(+d[measure]) && !/^\s*$/.test(d[measure]); + return ( + _this.config.codebookConfig.missingValues.indexOf(d[measure]) === + -1 && + !isNaN(d[measure]) && // [NaN].indexOf(NaN) always returns -1 + !/^\s*$/.test(d[measure]) + ); }); } @@ -2485,7 +2492,8 @@ margin: this_.margin, nBins: d.bins, chartType: d.chartType, - commonScale: d.commonScale == undefined ? true : d.commonScale + commonScale: d.commonScale == undefined ? true : d.commonScale, + codebookConfig: d.codebookConfig }; var chartData = []; @@ -3486,7 +3494,7 @@ tabs: ['codebook', 'listing', 'chartMaker', 'settings'], dataName: '', whiteSpaceAsMissing: true, - missingValues: [null, NaN, undefined] + missingValues: [null, undefined] }; function setDefaults(codebook) { @@ -4232,6 +4240,9 @@ else g.statistics = summarize.continuous(g.values, sub); }); } + + // Give charts access to codebook object. + varObj.codebookConfig = config; return varObj; }); diff --git a/package-lock.json b/package-lock.json index c993182..b55c1b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "optional": true, "requires": { "exit-on-epipe": "~1.0.1", "printj": "~1.1.0" @@ -1138,6 +1139,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "optional": true, "requires": { "exit-on-epipe": "~1.0.1", "printj": "~1.1.0" @@ -1457,7 +1459,8 @@ "exit-on-epipe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "optional": true }, "expand-brackets": { "version": "0.1.5", @@ -1690,9 +1693,9 @@ } }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-tags": { @@ -2316,9 +2319,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-type": { @@ -2591,7 +2594,8 @@ "printj": { "version": "1.1.2", "resolved": "http://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "optional": true }, "private": { "version": "0.1.8", @@ -3569,7 +3573,8 @@ "voc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/voc/-/voc-1.1.0.tgz", - "integrity": "sha512-fthgd8OJLqq8vPcLjElTk6Rcl2e3v5ekcXauImaqEnQqd5yUWKg1+ZOBgS2KTWuVKcuvZMQq4TDptiT1uYddUA==" + "integrity": "sha512-fthgd8OJLqq8vPcLjElTk6Rcl2e3v5ekcXauImaqEnQqd5yUWKg1+ZOBgS2KTWuVKcuvZMQq4TDptiT1uYddUA==", + "optional": true }, "webcharts": { "version": "1.11.1", diff --git a/src/charts/createHistogramBoxPlot.js b/src/charts/createHistogramBoxPlot.js index 3f514cc..dc4d7cc 100644 --- a/src/charts/createHistogramBoxPlot.js +++ b/src/charts/createHistogramBoxPlot.js @@ -10,7 +10,8 @@ export function createHistogramBoxPlot(this_, d) { margin: this_.margin, nBins: d.bins, chartType: d.chartType, - commonScale: d.commonScale == undefined ? true : d.commonScale + commonScale: d.commonScale == undefined ? true : d.commonScale, + codebookConfig: d.codebookConfig }; let chartData = []; diff --git a/src/charts/histogramBoxPlot/onInit.js b/src/charts/histogramBoxPlot/onInit.js index 6e34d79..70501ac 100644 --- a/src/charts/histogramBoxPlot/onInit.js +++ b/src/charts/histogramBoxPlot/onInit.js @@ -34,7 +34,10 @@ export default function onInit() { if (!this.group) { this.initialSettings.unfilteredData = this.raw_data; this.raw_data = this.initialSettings.unfilteredData.filter( - d => !isNaN(+d[measure]) && !/^\s*$/.test(d[measure]) + d => + this.config.codebookConfig.missingValues.indexOf(d[measure]) === -1 && + !isNaN(d[measure]) && // [NaN].indexOf(NaN) always returns -1 + !/^\s*$/.test(d[measure]) ); } diff --git a/src/codebook/data/makeSummary.js b/src/codebook/data/makeSummary.js index ec151b1..128a7b8 100644 --- a/src/codebook/data/makeSummary.js +++ b/src/codebook/data/makeSummary.js @@ -159,6 +159,9 @@ export function makeSummary(codebook) { else g.statistics = summarize.continuous(g.values, sub); }); } + + // Give charts access to codebook object. + varObj.codebookConfig = config; return varObj; }); diff --git a/src/codebook/defaultSettings.js b/src/codebook/defaultSettings.js index a2f43e4..60c843f 100644 --- a/src/codebook/defaultSettings.js +++ b/src/codebook/defaultSettings.js @@ -16,7 +16,7 @@ const defaultSettings = { tabs: ['codebook', 'listing', 'chartMaker', 'settings'], dataName: '', whiteSpaceAsMissing: true, - missingValues: [null, NaN, undefined] + missingValues: [null, undefined] }; export default defaultSettings; diff --git a/test-page/default/index.js b/test-page/default/index.js index b727008..689a67a 100644 --- a/test-page/default/index.js +++ b/test-page/default/index.js @@ -21,15 +21,11 @@ fetch( .join(' ') ).replace(/\.csv/i, ''); }); - console.log('Data file metadata:'); - console.log(json); //const fileObj = json[Math.floor(Math.random() * json.length)]; const fileObj = json[8]; - console.log('Select data file metadata:'); - console.log(fileObj); d3.csv( fileObj.github_url, - function(d) { + function(d, i) { return d; }, function(error, data) {