Initial commit
This commit is contained in:
15
node_modules/d3-array/.eslintrc.json
generated
vendored
Normal file
15
node_modules/d3-array/.eslintrc.json
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "eslint:recommended",
|
||||
"parserOptions": {
|
||||
"sourceType": "module",
|
||||
"ecmaVersion": 8
|
||||
},
|
||||
"env": {
|
||||
"es6": true,
|
||||
"node": true,
|
||||
"browser": true
|
||||
},
|
||||
"rules": {
|
||||
"no-cond-assign": 0
|
||||
}
|
||||
}
|
||||
27
node_modules/d3-array/LICENSE
generated
vendored
Normal file
27
node_modules/d3-array/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
Copyright 2010-2016 Mike Bostock
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the author nor the names of contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
590
node_modules/d3-array/dist/d3-array.js
generated
vendored
Normal file
590
node_modules/d3-array/dist/d3-array.js
generated
vendored
Normal file
@@ -0,0 +1,590 @@
|
||||
// https://d3js.org/d3-array/ v1.2.4 Copyright 2018 Mike Bostock
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(factory((global.d3 = global.d3 || {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
function ascending(a, b) {
|
||||
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
||||
}
|
||||
|
||||
function bisector(compare) {
|
||||
if (compare.length === 1) compare = ascendingComparator(compare);
|
||||
return {
|
||||
left: function(a, x, lo, hi) {
|
||||
if (lo == null) lo = 0;
|
||||
if (hi == null) hi = a.length;
|
||||
while (lo < hi) {
|
||||
var mid = lo + hi >>> 1;
|
||||
if (compare(a[mid], x) < 0) lo = mid + 1;
|
||||
else hi = mid;
|
||||
}
|
||||
return lo;
|
||||
},
|
||||
right: function(a, x, lo, hi) {
|
||||
if (lo == null) lo = 0;
|
||||
if (hi == null) hi = a.length;
|
||||
while (lo < hi) {
|
||||
var mid = lo + hi >>> 1;
|
||||
if (compare(a[mid], x) > 0) hi = mid;
|
||||
else lo = mid + 1;
|
||||
}
|
||||
return lo;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function ascendingComparator(f) {
|
||||
return function(d, x) {
|
||||
return ascending(f(d), x);
|
||||
};
|
||||
}
|
||||
|
||||
var ascendingBisect = bisector(ascending);
|
||||
var bisectRight = ascendingBisect.right;
|
||||
var bisectLeft = ascendingBisect.left;
|
||||
|
||||
function pairs(array, f) {
|
||||
if (f == null) f = pair;
|
||||
var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
|
||||
while (i < n) pairs[i] = f(p, p = array[++i]);
|
||||
return pairs;
|
||||
}
|
||||
|
||||
function pair(a, b) {
|
||||
return [a, b];
|
||||
}
|
||||
|
||||
function cross(values0, values1, reduce) {
|
||||
var n0 = values0.length,
|
||||
n1 = values1.length,
|
||||
values = new Array(n0 * n1),
|
||||
i0,
|
||||
i1,
|
||||
i,
|
||||
value0;
|
||||
|
||||
if (reduce == null) reduce = pair;
|
||||
|
||||
for (i0 = i = 0; i0 < n0; ++i0) {
|
||||
for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
|
||||
values[i] = reduce(value0, values1[i1]);
|
||||
}
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
function descending(a, b) {
|
||||
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
|
||||
}
|
||||
|
||||
function number(x) {
|
||||
return x === null ? NaN : +x;
|
||||
}
|
||||
|
||||
function variance(values, valueof) {
|
||||
var n = values.length,
|
||||
m = 0,
|
||||
i = -1,
|
||||
mean = 0,
|
||||
value,
|
||||
delta,
|
||||
sum = 0;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(values[i]))) {
|
||||
delta = value - mean;
|
||||
mean += delta / ++m;
|
||||
sum += delta * (value - mean);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(valueof(values[i], i, values)))) {
|
||||
delta = value - mean;
|
||||
mean += delta / ++m;
|
||||
sum += delta * (value - mean);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m > 1) return sum / (m - 1);
|
||||
}
|
||||
|
||||
function deviation(array, f) {
|
||||
var v = variance(array, f);
|
||||
return v ? Math.sqrt(v) : v;
|
||||
}
|
||||
|
||||
function extent(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
min,
|
||||
max;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = values[i]) != null && value >= value) {
|
||||
min = max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = values[i]) != null) {
|
||||
if (min > value) min = value;
|
||||
if (max < value) max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
||||
min = max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = valueof(values[i], i, values)) != null) {
|
||||
if (min > value) min = value;
|
||||
if (max < value) max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [min, max];
|
||||
}
|
||||
|
||||
var array = Array.prototype;
|
||||
|
||||
var slice = array.slice;
|
||||
var map = array.map;
|
||||
|
||||
function constant(x) {
|
||||
return function() {
|
||||
return x;
|
||||
};
|
||||
}
|
||||
|
||||
function identity(x) {
|
||||
return x;
|
||||
}
|
||||
|
||||
function range(start, stop, step) {
|
||||
start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
|
||||
|
||||
var i = -1,
|
||||
n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
|
||||
range = new Array(n);
|
||||
|
||||
while (++i < n) {
|
||||
range[i] = start + i * step;
|
||||
}
|
||||
|
||||
return range;
|
||||
}
|
||||
|
||||
var e10 = Math.sqrt(50),
|
||||
e5 = Math.sqrt(10),
|
||||
e2 = Math.sqrt(2);
|
||||
|
||||
function ticks(start, stop, count) {
|
||||
var reverse,
|
||||
i = -1,
|
||||
n,
|
||||
ticks,
|
||||
step;
|
||||
|
||||
stop = +stop, start = +start, count = +count;
|
||||
if (start === stop && count > 0) return [start];
|
||||
if (reverse = stop < start) n = start, start = stop, stop = n;
|
||||
if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
|
||||
|
||||
if (step > 0) {
|
||||
start = Math.ceil(start / step);
|
||||
stop = Math.floor(stop / step);
|
||||
ticks = new Array(n = Math.ceil(stop - start + 1));
|
||||
while (++i < n) ticks[i] = (start + i) * step;
|
||||
} else {
|
||||
start = Math.floor(start * step);
|
||||
stop = Math.ceil(stop * step);
|
||||
ticks = new Array(n = Math.ceil(start - stop + 1));
|
||||
while (++i < n) ticks[i] = (start - i) / step;
|
||||
}
|
||||
|
||||
if (reverse) ticks.reverse();
|
||||
|
||||
return ticks;
|
||||
}
|
||||
|
||||
function tickIncrement(start, stop, count) {
|
||||
var step = (stop - start) / Math.max(0, count),
|
||||
power = Math.floor(Math.log(step) / Math.LN10),
|
||||
error = step / Math.pow(10, power);
|
||||
return power >= 0
|
||||
? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
|
||||
: -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
|
||||
}
|
||||
|
||||
function tickStep(start, stop, count) {
|
||||
var step0 = Math.abs(stop - start) / Math.max(0, count),
|
||||
step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
|
||||
error = step0 / step1;
|
||||
if (error >= e10) step1 *= 10;
|
||||
else if (error >= e5) step1 *= 5;
|
||||
else if (error >= e2) step1 *= 2;
|
||||
return stop < start ? -step1 : step1;
|
||||
}
|
||||
|
||||
function sturges(values) {
|
||||
return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
|
||||
}
|
||||
|
||||
function histogram() {
|
||||
var value = identity,
|
||||
domain = extent,
|
||||
threshold = sturges;
|
||||
|
||||
function histogram(data) {
|
||||
var i,
|
||||
n = data.length,
|
||||
x,
|
||||
values = new Array(n);
|
||||
|
||||
for (i = 0; i < n; ++i) {
|
||||
values[i] = value(data[i], i, data);
|
||||
}
|
||||
|
||||
var xz = domain(values),
|
||||
x0 = xz[0],
|
||||
x1 = xz[1],
|
||||
tz = threshold(values, x0, x1);
|
||||
|
||||
// Convert number of thresholds into uniform thresholds.
|
||||
if (!Array.isArray(tz)) {
|
||||
tz = tickStep(x0, x1, tz);
|
||||
tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive
|
||||
}
|
||||
|
||||
// Remove any thresholds outside the domain.
|
||||
var m = tz.length;
|
||||
while (tz[0] <= x0) tz.shift(), --m;
|
||||
while (tz[m - 1] > x1) tz.pop(), --m;
|
||||
|
||||
var bins = new Array(m + 1),
|
||||
bin;
|
||||
|
||||
// Initialize bins.
|
||||
for (i = 0; i <= m; ++i) {
|
||||
bin = bins[i] = [];
|
||||
bin.x0 = i > 0 ? tz[i - 1] : x0;
|
||||
bin.x1 = i < m ? tz[i] : x1;
|
||||
}
|
||||
|
||||
// Assign data to bins by value, ignoring any outside the domain.
|
||||
for (i = 0; i < n; ++i) {
|
||||
x = values[i];
|
||||
if (x0 <= x && x <= x1) {
|
||||
bins[bisectRight(tz, x, 0, m)].push(data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return bins;
|
||||
}
|
||||
|
||||
histogram.value = function(_) {
|
||||
return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
|
||||
};
|
||||
|
||||
histogram.domain = function(_) {
|
||||
return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
|
||||
};
|
||||
|
||||
histogram.thresholds = function(_) {
|
||||
return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
|
||||
};
|
||||
|
||||
return histogram;
|
||||
}
|
||||
|
||||
function quantile(values, p, valueof) {
|
||||
if (valueof == null) valueof = number;
|
||||
if (!(n = values.length)) return;
|
||||
if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
|
||||
if (p >= 1) return +valueof(values[n - 1], n - 1, values);
|
||||
var n,
|
||||
i = (n - 1) * p,
|
||||
i0 = Math.floor(i),
|
||||
value0 = +valueof(values[i0], i0, values),
|
||||
value1 = +valueof(values[i0 + 1], i0 + 1, values);
|
||||
return value0 + (value1 - value0) * (i - i0);
|
||||
}
|
||||
|
||||
function freedmanDiaconis(values, min, max) {
|
||||
values = map.call(values, number).sort(ascending);
|
||||
return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));
|
||||
}
|
||||
|
||||
function scott(values, min, max) {
|
||||
return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));
|
||||
}
|
||||
|
||||
function max(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
max;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = values[i]) != null && value >= value) {
|
||||
max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = values[i]) != null && value > max) {
|
||||
max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
||||
max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = valueof(values[i], i, values)) != null && value > max) {
|
||||
max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return max;
|
||||
}
|
||||
|
||||
function mean(values, valueof) {
|
||||
var n = values.length,
|
||||
m = n,
|
||||
i = -1,
|
||||
value,
|
||||
sum = 0;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(values[i]))) sum += value;
|
||||
else --m;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;
|
||||
else --m;
|
||||
}
|
||||
}
|
||||
|
||||
if (m) return sum / m;
|
||||
}
|
||||
|
||||
function median(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
numbers = [];
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(values[i]))) {
|
||||
numbers.push(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(valueof(values[i], i, values)))) {
|
||||
numbers.push(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return quantile(numbers.sort(ascending), 0.5);
|
||||
}
|
||||
|
||||
function merge(arrays) {
|
||||
var n = arrays.length,
|
||||
m,
|
||||
i = -1,
|
||||
j = 0,
|
||||
merged,
|
||||
array;
|
||||
|
||||
while (++i < n) j += arrays[i].length;
|
||||
merged = new Array(j);
|
||||
|
||||
while (--n >= 0) {
|
||||
array = arrays[n];
|
||||
m = array.length;
|
||||
while (--m >= 0) {
|
||||
merged[--j] = array[m];
|
||||
}
|
||||
}
|
||||
|
||||
return merged;
|
||||
}
|
||||
|
||||
function min(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
min;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = values[i]) != null && value >= value) {
|
||||
min = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = values[i]) != null && min > value) {
|
||||
min = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
||||
min = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = valueof(values[i], i, values)) != null && min > value) {
|
||||
min = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return min;
|
||||
}
|
||||
|
||||
function permute(array, indexes) {
|
||||
var i = indexes.length, permutes = new Array(i);
|
||||
while (i--) permutes[i] = array[indexes[i]];
|
||||
return permutes;
|
||||
}
|
||||
|
||||
function scan(values, compare) {
|
||||
if (!(n = values.length)) return;
|
||||
var n,
|
||||
i = 0,
|
||||
j = 0,
|
||||
xi,
|
||||
xj = values[j];
|
||||
|
||||
if (compare == null) compare = ascending;
|
||||
|
||||
while (++i < n) {
|
||||
if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
|
||||
xj = xi, j = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (compare(xj, xj) === 0) return j;
|
||||
}
|
||||
|
||||
function shuffle(array, i0, i1) {
|
||||
var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
|
||||
t,
|
||||
i;
|
||||
|
||||
while (m) {
|
||||
i = Math.random() * m-- | 0;
|
||||
t = array[m + i0];
|
||||
array[m + i0] = array[i + i0];
|
||||
array[i + i0] = t;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
function sum(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
sum = 0;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (value = +valueof(values[i], i, values)) sum += value;
|
||||
}
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
function transpose(matrix) {
|
||||
if (!(n = matrix.length)) return [];
|
||||
for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
|
||||
for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
|
||||
row[j] = matrix[j][i];
|
||||
}
|
||||
}
|
||||
return transpose;
|
||||
}
|
||||
|
||||
function length(d) {
|
||||
return d.length;
|
||||
}
|
||||
|
||||
function zip() {
|
||||
return transpose(arguments);
|
||||
}
|
||||
|
||||
exports.bisect = bisectRight;
|
||||
exports.bisectRight = bisectRight;
|
||||
exports.bisectLeft = bisectLeft;
|
||||
exports.ascending = ascending;
|
||||
exports.bisector = bisector;
|
||||
exports.cross = cross;
|
||||
exports.descending = descending;
|
||||
exports.deviation = deviation;
|
||||
exports.extent = extent;
|
||||
exports.histogram = histogram;
|
||||
exports.thresholdFreedmanDiaconis = freedmanDiaconis;
|
||||
exports.thresholdScott = scott;
|
||||
exports.thresholdSturges = sturges;
|
||||
exports.max = max;
|
||||
exports.mean = mean;
|
||||
exports.median = median;
|
||||
exports.merge = merge;
|
||||
exports.min = min;
|
||||
exports.pairs = pairs;
|
||||
exports.permute = permute;
|
||||
exports.quantile = quantile;
|
||||
exports.range = range;
|
||||
exports.scan = scan;
|
||||
exports.shuffle = shuffle;
|
||||
exports.sum = sum;
|
||||
exports.ticks = ticks;
|
||||
exports.tickIncrement = tickIncrement;
|
||||
exports.tickStep = tickStep;
|
||||
exports.transpose = transpose;
|
||||
exports.variance = variance;
|
||||
exports.zip = zip;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
2
node_modules/d3-array/dist/d3-array.min.js
generated
vendored
Normal file
2
node_modules/d3-array/dist/d3-array.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
25
node_modules/d3-array/package.json
generated
vendored
Normal file
25
node_modules/d3-array/package.json
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "d3-array",
|
||||
"version": "1.2.4",
|
||||
"description": "Array manipulation, ordering, searching, summarizing, etc.",
|
||||
"homepage": "https://d3js.org/d3-array/",
|
||||
"license": "BSD-3-Clause",
|
||||
"author": {
|
||||
"name": "Mike Bostock",
|
||||
"url": "http://bost.ocks.org/mike"
|
||||
},
|
||||
"main": "dist/d3-array.js",
|
||||
"unpkg": "dist/d3-array.min.js",
|
||||
"module": "src/index.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/d3/d3-array.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "5",
|
||||
"rollup": "0.64",
|
||||
"rollup-plugin-terser": "1",
|
||||
"seedrandom": "2",
|
||||
"tape": "4"
|
||||
}
|
||||
}
|
||||
36
node_modules/d3-array/rollup.config.js
generated
vendored
Normal file
36
node_modules/d3-array/rollup.config.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import {terser} from "rollup-plugin-terser";
|
||||
import * as meta from "./package.json";
|
||||
|
||||
const config = {
|
||||
input: "src/index.js",
|
||||
external: Object.keys(meta.dependencies || {}).filter(key => /^d3-/.test(key)),
|
||||
output: {
|
||||
file: `dist/${meta.name}.js`,
|
||||
name: "d3",
|
||||
format: "umd",
|
||||
indent: false,
|
||||
extend: true,
|
||||
banner: `// ${meta.homepage} v${meta.version} Copyright ${(new Date).getFullYear()} ${meta.author.name}`,
|
||||
globals: Object.assign({}, ...Object.keys(meta.dependencies || {}).filter(key => /^d3-/.test(key)).map(key => ({[key]: "d3"})))
|
||||
},
|
||||
plugins: []
|
||||
};
|
||||
|
||||
export default [
|
||||
config,
|
||||
{
|
||||
...config,
|
||||
output: {
|
||||
...config.output,
|
||||
file: `dist/${meta.name}.min.js`
|
||||
},
|
||||
plugins: [
|
||||
...config.plugins,
|
||||
terser({
|
||||
output: {
|
||||
preamble: config.output.banner
|
||||
}
|
||||
})
|
||||
]
|
||||
}
|
||||
];
|
||||
4
node_modules/d3-array/src/array.js
generated
vendored
Normal file
4
node_modules/d3-array/src/array.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
var array = Array.prototype;
|
||||
|
||||
export var slice = array.slice;
|
||||
export var map = array.map;
|
||||
3
node_modules/d3-array/src/ascending.js
generated
vendored
Normal file
3
node_modules/d3-array/src/ascending.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export default function(a, b) {
|
||||
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
||||
}
|
||||
7
node_modules/d3-array/src/bisect.js
generated
vendored
Normal file
7
node_modules/d3-array/src/bisect.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import ascending from "./ascending";
|
||||
import bisector from "./bisector";
|
||||
|
||||
var ascendingBisect = bisector(ascending);
|
||||
export var bisectRight = ascendingBisect.right;
|
||||
export var bisectLeft = ascendingBisect.left;
|
||||
export default bisectRight;
|
||||
33
node_modules/d3-array/src/bisector.js
generated
vendored
Normal file
33
node_modules/d3-array/src/bisector.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
import ascending from "./ascending";
|
||||
|
||||
export default function(compare) {
|
||||
if (compare.length === 1) compare = ascendingComparator(compare);
|
||||
return {
|
||||
left: function(a, x, lo, hi) {
|
||||
if (lo == null) lo = 0;
|
||||
if (hi == null) hi = a.length;
|
||||
while (lo < hi) {
|
||||
var mid = lo + hi >>> 1;
|
||||
if (compare(a[mid], x) < 0) lo = mid + 1;
|
||||
else hi = mid;
|
||||
}
|
||||
return lo;
|
||||
},
|
||||
right: function(a, x, lo, hi) {
|
||||
if (lo == null) lo = 0;
|
||||
if (hi == null) hi = a.length;
|
||||
while (lo < hi) {
|
||||
var mid = lo + hi >>> 1;
|
||||
if (compare(a[mid], x) > 0) hi = mid;
|
||||
else lo = mid + 1;
|
||||
}
|
||||
return lo;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function ascendingComparator(f) {
|
||||
return function(d, x) {
|
||||
return ascending(f(d), x);
|
||||
};
|
||||
}
|
||||
5
node_modules/d3-array/src/constant.js
generated
vendored
Normal file
5
node_modules/d3-array/src/constant.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export default function(x) {
|
||||
return function() {
|
||||
return x;
|
||||
};
|
||||
}
|
||||
21
node_modules/d3-array/src/cross.js
generated
vendored
Normal file
21
node_modules/d3-array/src/cross.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
import {pair} from "./pairs";
|
||||
|
||||
export default function(values0, values1, reduce) {
|
||||
var n0 = values0.length,
|
||||
n1 = values1.length,
|
||||
values = new Array(n0 * n1),
|
||||
i0,
|
||||
i1,
|
||||
i,
|
||||
value0;
|
||||
|
||||
if (reduce == null) reduce = pair;
|
||||
|
||||
for (i0 = i = 0; i0 < n0; ++i0) {
|
||||
for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
|
||||
values[i] = reduce(value0, values1[i1]);
|
||||
}
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
3
node_modules/d3-array/src/descending.js
generated
vendored
Normal file
3
node_modules/d3-array/src/descending.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export default function(a, b) {
|
||||
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
|
||||
}
|
||||
6
node_modules/d3-array/src/deviation.js
generated
vendored
Normal file
6
node_modules/d3-array/src/deviation.js
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import variance from "./variance";
|
||||
|
||||
export default function(array, f) {
|
||||
var v = variance(array, f);
|
||||
return v ? Math.sqrt(v) : v;
|
||||
}
|
||||
37
node_modules/d3-array/src/extent.js
generated
vendored
Normal file
37
node_modules/d3-array/src/extent.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
min,
|
||||
max;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = values[i]) != null && value >= value) {
|
||||
min = max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = values[i]) != null) {
|
||||
if (min > value) min = value;
|
||||
if (max < value) max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
||||
min = max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = valueof(values[i], i, values)) != null) {
|
||||
if (min > value) min = value;
|
||||
if (max < value) max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [min, max];
|
||||
}
|
||||
75
node_modules/d3-array/src/histogram.js
generated
vendored
Normal file
75
node_modules/d3-array/src/histogram.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
import {slice} from "./array";
|
||||
import bisect from "./bisect";
|
||||
import constant from "./constant";
|
||||
import extent from "./extent";
|
||||
import identity from "./identity";
|
||||
import range from "./range";
|
||||
import {tickStep} from "./ticks";
|
||||
import sturges from "./threshold/sturges";
|
||||
|
||||
export default function() {
|
||||
var value = identity,
|
||||
domain = extent,
|
||||
threshold = sturges;
|
||||
|
||||
function histogram(data) {
|
||||
var i,
|
||||
n = data.length,
|
||||
x,
|
||||
values = new Array(n);
|
||||
|
||||
for (i = 0; i < n; ++i) {
|
||||
values[i] = value(data[i], i, data);
|
||||
}
|
||||
|
||||
var xz = domain(values),
|
||||
x0 = xz[0],
|
||||
x1 = xz[1],
|
||||
tz = threshold(values, x0, x1);
|
||||
|
||||
// Convert number of thresholds into uniform thresholds.
|
||||
if (!Array.isArray(tz)) {
|
||||
tz = tickStep(x0, x1, tz);
|
||||
tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive
|
||||
}
|
||||
|
||||
// Remove any thresholds outside the domain.
|
||||
var m = tz.length;
|
||||
while (tz[0] <= x0) tz.shift(), --m;
|
||||
while (tz[m - 1] > x1) tz.pop(), --m;
|
||||
|
||||
var bins = new Array(m + 1),
|
||||
bin;
|
||||
|
||||
// Initialize bins.
|
||||
for (i = 0; i <= m; ++i) {
|
||||
bin = bins[i] = [];
|
||||
bin.x0 = i > 0 ? tz[i - 1] : x0;
|
||||
bin.x1 = i < m ? tz[i] : x1;
|
||||
}
|
||||
|
||||
// Assign data to bins by value, ignoring any outside the domain.
|
||||
for (i = 0; i < n; ++i) {
|
||||
x = values[i];
|
||||
if (x0 <= x && x <= x1) {
|
||||
bins[bisect(tz, x, 0, m)].push(data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return bins;
|
||||
}
|
||||
|
||||
histogram.value = function(_) {
|
||||
return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
|
||||
};
|
||||
|
||||
histogram.domain = function(_) {
|
||||
return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
|
||||
};
|
||||
|
||||
histogram.thresholds = function(_) {
|
||||
return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
|
||||
};
|
||||
|
||||
return histogram;
|
||||
}
|
||||
3
node_modules/d3-array/src/identity.js
generated
vendored
Normal file
3
node_modules/d3-array/src/identity.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export default function(x) {
|
||||
return x;
|
||||
}
|
||||
27
node_modules/d3-array/src/index.js
generated
vendored
Normal file
27
node_modules/d3-array/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
export {default as bisect, bisectRight, bisectLeft} from "./bisect";
|
||||
export {default as ascending} from "./ascending";
|
||||
export {default as bisector} from "./bisector";
|
||||
export {default as cross} from "./cross";
|
||||
export {default as descending} from "./descending";
|
||||
export {default as deviation} from "./deviation";
|
||||
export {default as extent} from "./extent";
|
||||
export {default as histogram} from "./histogram";
|
||||
export {default as thresholdFreedmanDiaconis} from "./threshold/freedmanDiaconis";
|
||||
export {default as thresholdScott} from "./threshold/scott";
|
||||
export {default as thresholdSturges} from "./threshold/sturges";
|
||||
export {default as max} from "./max";
|
||||
export {default as mean} from "./mean";
|
||||
export {default as median} from "./median";
|
||||
export {default as merge} from "./merge";
|
||||
export {default as min} from "./min";
|
||||
export {default as pairs} from "./pairs";
|
||||
export {default as permute} from "./permute";
|
||||
export {default as quantile} from "./quantile";
|
||||
export {default as range} from "./range";
|
||||
export {default as scan} from "./scan";
|
||||
export {default as shuffle} from "./shuffle";
|
||||
export {default as sum} from "./sum";
|
||||
export {default as ticks, tickIncrement, tickStep} from "./ticks";
|
||||
export {default as transpose} from "./transpose";
|
||||
export {default as variance} from "./variance";
|
||||
export {default as zip} from "./zip";
|
||||
34
node_modules/d3-array/src/max.js
generated
vendored
Normal file
34
node_modules/d3-array/src/max.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
max;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = values[i]) != null && value >= value) {
|
||||
max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = values[i]) != null && value > max) {
|
||||
max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
||||
max = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = valueof(values[i], i, values)) != null && value > max) {
|
||||
max = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return max;
|
||||
}
|
||||
25
node_modules/d3-array/src/mean.js
generated
vendored
Normal file
25
node_modules/d3-array/src/mean.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
import number from "./number";
|
||||
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
m = n,
|
||||
i = -1,
|
||||
value,
|
||||
sum = 0;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(values[i]))) sum += value;
|
||||
else --m;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;
|
||||
else --m;
|
||||
}
|
||||
}
|
||||
|
||||
if (m) return sum / m;
|
||||
}
|
||||
28
node_modules/d3-array/src/median.js
generated
vendored
Normal file
28
node_modules/d3-array/src/median.js
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
import ascending from "./ascending";
|
||||
import number from "./number";
|
||||
import quantile from "./quantile";
|
||||
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
numbers = [];
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(values[i]))) {
|
||||
numbers.push(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(valueof(values[i], i, values)))) {
|
||||
numbers.push(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return quantile(numbers.sort(ascending), 0.5);
|
||||
}
|
||||
21
node_modules/d3-array/src/merge.js
generated
vendored
Normal file
21
node_modules/d3-array/src/merge.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
export default function(arrays) {
|
||||
var n = arrays.length,
|
||||
m,
|
||||
i = -1,
|
||||
j = 0,
|
||||
merged,
|
||||
array;
|
||||
|
||||
while (++i < n) j += arrays[i].length;
|
||||
merged = new Array(j);
|
||||
|
||||
while (--n >= 0) {
|
||||
array = arrays[n];
|
||||
m = array.length;
|
||||
while (--m >= 0) {
|
||||
merged[--j] = array[m];
|
||||
}
|
||||
}
|
||||
|
||||
return merged;
|
||||
}
|
||||
34
node_modules/d3-array/src/min.js
generated
vendored
Normal file
34
node_modules/d3-array/src/min.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
min;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = values[i]) != null && value >= value) {
|
||||
min = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = values[i]) != null && min > value) {
|
||||
min = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) { // Find the first comparable value.
|
||||
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
||||
min = value;
|
||||
while (++i < n) { // Compare the remaining values.
|
||||
if ((value = valueof(values[i], i, values)) != null && min > value) {
|
||||
min = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return min;
|
||||
}
|
||||
3
node_modules/d3-array/src/number.js
generated
vendored
Normal file
3
node_modules/d3-array/src/number.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export default function(x) {
|
||||
return x === null ? NaN : +x;
|
||||
}
|
||||
10
node_modules/d3-array/src/pairs.js
generated
vendored
Normal file
10
node_modules/d3-array/src/pairs.js
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
export default function(array, f) {
|
||||
if (f == null) f = pair;
|
||||
var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
|
||||
while (i < n) pairs[i] = f(p, p = array[++i]);
|
||||
return pairs;
|
||||
}
|
||||
|
||||
export function pair(a, b) {
|
||||
return [a, b];
|
||||
}
|
||||
5
node_modules/d3-array/src/permute.js
generated
vendored
Normal file
5
node_modules/d3-array/src/permute.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export default function(array, indexes) {
|
||||
var i = indexes.length, permutes = new Array(i);
|
||||
while (i--) permutes[i] = array[indexes[i]];
|
||||
return permutes;
|
||||
}
|
||||
14
node_modules/d3-array/src/quantile.js
generated
vendored
Normal file
14
node_modules/d3-array/src/quantile.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
import number from "./number";
|
||||
|
||||
export default function(values, p, valueof) {
|
||||
if (valueof == null) valueof = number;
|
||||
if (!(n = values.length)) return;
|
||||
if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
|
||||
if (p >= 1) return +valueof(values[n - 1], n - 1, values);
|
||||
var n,
|
||||
i = (n - 1) * p,
|
||||
i0 = Math.floor(i),
|
||||
value0 = +valueof(values[i0], i0, values),
|
||||
value1 = +valueof(values[i0 + 1], i0 + 1, values);
|
||||
return value0 + (value1 - value0) * (i - i0);
|
||||
}
|
||||
13
node_modules/d3-array/src/range.js
generated
vendored
Normal file
13
node_modules/d3-array/src/range.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
export default function(start, stop, step) {
|
||||
start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
|
||||
|
||||
var i = -1,
|
||||
n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
|
||||
range = new Array(n);
|
||||
|
||||
while (++i < n) {
|
||||
range[i] = start + i * step;
|
||||
}
|
||||
|
||||
return range;
|
||||
}
|
||||
20
node_modules/d3-array/src/scan.js
generated
vendored
Normal file
20
node_modules/d3-array/src/scan.js
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import ascending from "./ascending";
|
||||
|
||||
export default function(values, compare) {
|
||||
if (!(n = values.length)) return;
|
||||
var n,
|
||||
i = 0,
|
||||
j = 0,
|
||||
xi,
|
||||
xj = values[j];
|
||||
|
||||
if (compare == null) compare = ascending;
|
||||
|
||||
while (++i < n) {
|
||||
if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
|
||||
xj = xi, j = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (compare(xj, xj) === 0) return j;
|
||||
}
|
||||
14
node_modules/d3-array/src/shuffle.js
generated
vendored
Normal file
14
node_modules/d3-array/src/shuffle.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
export default function(array, i0, i1) {
|
||||
var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
|
||||
t,
|
||||
i;
|
||||
|
||||
while (m) {
|
||||
i = Math.random() * m-- | 0;
|
||||
t = array[m + i0];
|
||||
array[m + i0] = array[i + i0];
|
||||
array[i + i0] = t;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
20
node_modules/d3-array/src/sum.js
generated
vendored
Normal file
20
node_modules/d3-array/src/sum.js
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
i = -1,
|
||||
value,
|
||||
sum = 0;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (value = +valueof(values[i], i, values)) sum += value;
|
||||
}
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
9
node_modules/d3-array/src/threshold/freedmanDiaconis.js
generated
vendored
Normal file
9
node_modules/d3-array/src/threshold/freedmanDiaconis.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import {map} from "../array";
|
||||
import ascending from "../ascending";
|
||||
import number from "../number";
|
||||
import quantile from "../quantile";
|
||||
|
||||
export default function(values, min, max) {
|
||||
values = map.call(values, number).sort(ascending);
|
||||
return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));
|
||||
}
|
||||
5
node_modules/d3-array/src/threshold/scott.js
generated
vendored
Normal file
5
node_modules/d3-array/src/threshold/scott.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import deviation from "../deviation";
|
||||
|
||||
export default function(values, min, max) {
|
||||
return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));
|
||||
}
|
||||
3
node_modules/d3-array/src/threshold/sturges.js
generated
vendored
Normal file
3
node_modules/d3-array/src/threshold/sturges.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export default function(values) {
|
||||
return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
|
||||
}
|
||||
51
node_modules/d3-array/src/ticks.js
generated
vendored
Normal file
51
node_modules/d3-array/src/ticks.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
var e10 = Math.sqrt(50),
|
||||
e5 = Math.sqrt(10),
|
||||
e2 = Math.sqrt(2);
|
||||
|
||||
export default function(start, stop, count) {
|
||||
var reverse,
|
||||
i = -1,
|
||||
n,
|
||||
ticks,
|
||||
step;
|
||||
|
||||
stop = +stop, start = +start, count = +count;
|
||||
if (start === stop && count > 0) return [start];
|
||||
if (reverse = stop < start) n = start, start = stop, stop = n;
|
||||
if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
|
||||
|
||||
if (step > 0) {
|
||||
start = Math.ceil(start / step);
|
||||
stop = Math.floor(stop / step);
|
||||
ticks = new Array(n = Math.ceil(stop - start + 1));
|
||||
while (++i < n) ticks[i] = (start + i) * step;
|
||||
} else {
|
||||
start = Math.floor(start * step);
|
||||
stop = Math.ceil(stop * step);
|
||||
ticks = new Array(n = Math.ceil(start - stop + 1));
|
||||
while (++i < n) ticks[i] = (start - i) / step;
|
||||
}
|
||||
|
||||
if (reverse) ticks.reverse();
|
||||
|
||||
return ticks;
|
||||
}
|
||||
|
||||
export function tickIncrement(start, stop, count) {
|
||||
var step = (stop - start) / Math.max(0, count),
|
||||
power = Math.floor(Math.log(step) / Math.LN10),
|
||||
error = step / Math.pow(10, power);
|
||||
return power >= 0
|
||||
? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
|
||||
: -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
|
||||
}
|
||||
|
||||
export function tickStep(start, stop, count) {
|
||||
var step0 = Math.abs(stop - start) / Math.max(0, count),
|
||||
step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
|
||||
error = step0 / step1;
|
||||
if (error >= e10) step1 *= 10;
|
||||
else if (error >= e5) step1 *= 5;
|
||||
else if (error >= e2) step1 *= 2;
|
||||
return stop < start ? -step1 : step1;
|
||||
}
|
||||
15
node_modules/d3-array/src/transpose.js
generated
vendored
Normal file
15
node_modules/d3-array/src/transpose.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
import min from "./min";
|
||||
|
||||
export default function(matrix) {
|
||||
if (!(n = matrix.length)) return [];
|
||||
for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
|
||||
for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
|
||||
row[j] = matrix[j][i];
|
||||
}
|
||||
}
|
||||
return transpose;
|
||||
}
|
||||
|
||||
function length(d) {
|
||||
return d.length;
|
||||
}
|
||||
33
node_modules/d3-array/src/variance.js
generated
vendored
Normal file
33
node_modules/d3-array/src/variance.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
import number from "./number";
|
||||
|
||||
export default function(values, valueof) {
|
||||
var n = values.length,
|
||||
m = 0,
|
||||
i = -1,
|
||||
mean = 0,
|
||||
value,
|
||||
delta,
|
||||
sum = 0;
|
||||
|
||||
if (valueof == null) {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(values[i]))) {
|
||||
delta = value - mean;
|
||||
mean += delta / ++m;
|
||||
sum += delta * (value - mean);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
while (++i < n) {
|
||||
if (!isNaN(value = number(valueof(values[i], i, values)))) {
|
||||
delta = value - mean;
|
||||
mean += delta / ++m;
|
||||
sum += delta * (value - mean);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m > 1) return sum / (m - 1);
|
||||
}
|
||||
5
node_modules/d3-array/src/zip.js
generated
vendored
Normal file
5
node_modules/d3-array/src/zip.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import transpose from "./transpose";
|
||||
|
||||
export default function() {
|
||||
return transpose(arguments);
|
||||
}
|
||||
Reference in New Issue
Block a user