This commit is contained in:
freedakgmail
2025-11-22 19:52:55 +08:00
commit 43c8389705
28950 changed files with 3640981 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-array@3.2.2/node_modules/@types/d3-array
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-ease@3.0.2/node_modules/@types/d3-ease
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-interpolate@3.0.4/node_modules/@types/d3-interpolate
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-scale@4.0.9/node_modules/@types/d3-scale
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-shape@3.1.7/node_modules/@types/d3-shape
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-time@3.0.4/node_modules/@types/d3-time
+1
View File
@@ -0,0 +1 @@
../../../@types+d3-timer@3.0.2/node_modules/@types/d3-timer
+1
View File
@@ -0,0 +1 @@
../../d3-array@3.2.4/node_modules/d3-array
+1
View File
@@ -0,0 +1 @@
../../d3-ease@3.0.1/node_modules/d3-ease
+1
View File
@@ -0,0 +1 @@
../../d3-interpolate@3.0.1/node_modules/d3-interpolate
+1
View File
@@ -0,0 +1 @@
../../d3-scale@4.0.2/node_modules/d3-scale
+1
View File
@@ -0,0 +1 @@
../../d3-shape@3.2.0/node_modules/d3-shape
+1
View File
@@ -0,0 +1 @@
../../d3-time@3.1.0/node_modules/d3-time
+1
View File
@@ -0,0 +1 @@
../../d3-timer@3.0.1/node_modules/d3-timer
@@ -0,0 +1,81 @@
# victory-vendor
## 36.9.2
## 36.9.1
## 36.9.0
## 36.8.6
## 36.8.5
### Patch Changes
- Replace instances of lodash.assign with Object.assign ([#2757](https://github.com/FormidableLabs/victory/pull/2757))
## 36.8.4
## 36.8.3
## 36.8.2
## 36.8.1
## 36.8.0
## 36.7.0
## 36.6.12
## 36.6.11
## 36.6.10
### Patch Changes
- Setup NPM Provenance ([#2590](https://github.com/FormidableLabs/victory/pull/2590))
## 36.6.9
### Patch Changes
- Setup NPM Provenance ([#2587](https://github.com/FormidableLabs/victory/pull/2587))
## 36.6.8
## 36.6.7
## 36.6.6
## 36.6.5
### Patch Changes
- Export types directly from d3-\* (fixes [#2439](https://github.com/FormidableLabs/victory/issues/2439)) ([#2440](https://github.com/FormidableLabs/victory/pull/2440))
## 36.6.4
### Patch Changes
- Allow data accessors to accept any data types (fixes [#2360](https://github.com/FormidableLabs/victory/issues/2360)) ([#2436](https://github.com/FormidableLabs/victory/pull/2436))
## 36.6.3
### Patch Changes
- Do not generate \*.js.map sourcemaps (fixes [#2346](https://github.com/FormidableLabs/victory/issues/2346)) ([#2432](https://github.com/FormidableLabs/victory/pull/2432))
## 36.6.2
## 36.6.1
## 36.6.0
### Patch Changes
- Update source code with minor lint-based improvements (see [#2236](https://github.com/FormidableLabs/victory/issues/2236)). ([#2403](https://github.com/FormidableLabs/victory/pull/2403))
## 36.5.3 and earlier
Change history for version 36.5.3 and earlier can be found in our root [CHANGELOG.md](https://github.com/FormidableLabs/victory/blob/main/CHANGELOG.md).
@@ -0,0 +1,70 @@
# VictoryVendor
Vendored dependencies for Victory.
## Background
D3 has released most of its libraries as ESM-only. This means that consumers in Node.js applications can no longer just `require()` anything with a d3 transitive dependency, including much of Victory.
To help provide an easy path to folks still using CommonJS in their Node.js applications that consume Victory, we now provide this package to vendor in various d3-related packages.
## Packages
We presently provide the following top-level libraries:
<!-- cat packages/victory-vendor/package.json | egrep '"d3-' | egrep -o 'd3-[^"]*'| sor t-->
- d3-ease
- d3-interpolate
- d3-scale
- d3-shape
- d3-timer
This is the total list of top and transitive libraries we vendor:
<!-- ls packages/victory-vendor/lib-vendor | sort -->
- d3-array
- d3-color
- d3-ease
- d3-format
- d3-interpolate
- d3-path
- d3-scale
- d3-shape
- d3-time
- d3-time-format
- d3-timer
- internmap
Note that this does _not_ include the following D3 libraries that still support CommonJS:
- d3-voronoi
## How it works
We provide two alternate paths and behaviors -- for ESM and CommonJS
### ESM
If you do a Node.js import like:
```js
import { interpolate } from "victory-vendor/d3-interpolate";
```
under the hood it's going to just re-export and pass you through to `node_modules/d3-interpolate`, the **real** ESM library from D3.
### CommonJS
If you do a Node.js import like:
```js
const { interpolate } = require("victory-vendor/d3-interpolate");
```
under the hood it's going to will go to an alternate path that contains the transpiled version of the underlying d3 library to be found at `victory-vendor/lib-vendor/d3-interpolate/**/*.js`. This futher has internally consistent import references to other `victory-vendor/lib-vendor/<pkg-name>` paths.
Note that for some tooling (like Jest) that doesn't play well with `package.json:exports` routing to this CommonJS path, we **also** output a root file in the form of `victory-vendor/d3-interpolate.js`.
## Licenses
This project is released under the MIT license, but the vendor'ed in libraries include other licenses (e.g. ISC) that we enumerate in our `package.json:license` field.
@@ -0,0 +1,5 @@
// `victory-vendor/d3-array` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-array";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-array` (CommonJS)
// See upstream license: https://github.com/d3/d3-array/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-array");
@@ -0,0 +1,5 @@
// `victory-vendor/d3-ease` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-ease";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-ease` (CommonJS)
// See upstream license: https://github.com/d3/d3-ease/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-ease");
@@ -0,0 +1,5 @@
// `victory-vendor/d3-interpolate` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-interpolate";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-interpolate` (CommonJS)
// See upstream license: https://github.com/d3/d3-interpolate/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-interpolate");
@@ -0,0 +1,5 @@
// `victory-vendor/d3-scale` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-scale";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-scale` (CommonJS)
// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-scale");
@@ -0,0 +1,5 @@
// `victory-vendor/d3-shape` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-shape";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-shape` (CommonJS)
// See upstream license: https://github.com/d3/d3-shape/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-shape");
@@ -0,0 +1,5 @@
// `victory-vendor/d3-time` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-time";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-time` (CommonJS)
// See upstream license: https://github.com/d3/d3-time/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-time");
@@ -0,0 +1,5 @@
// `victory-vendor/d3-timer` (TypeScript)
//
// Export the type definitions for this package:
export * from "d3-timer";
@@ -0,0 +1,7 @@
// `victory-vendor/d3-timer` (CommonJS)
// See upstream license: https://github.com/d3/d3-timer/blob/main/LICENSE
//
// This file only exists for tooling that doesn't work yet with package.json:exports
// by proxying through the CommonJS version.
module.exports = require("./lib/d3-timer");
@@ -0,0 +1,6 @@
// `victory-vendor/d3-array` (ESM)
// See upstream license: https://github.com/d3/d3-array/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-array`
export * from "d3-array";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-color` (ESM)
// See upstream license: https://github.com/d3/d3-color/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-color`
export * from "d3-color";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-ease` (ESM)
// See upstream license: https://github.com/d3/d3-ease/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-ease`
export * from "d3-ease";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-format` (ESM)
// See upstream license: https://github.com/d3/d3-format/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-format`
export * from "d3-format";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-interpolate` (ESM)
// See upstream license: https://github.com/d3/d3-interpolate/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-interpolate`
export * from "d3-interpolate";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-path` (ESM)
// See upstream license: https://github.com/d3/d3-path/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-path`
export * from "d3-path";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-scale` (ESM)
// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-scale`
export * from "d3-scale";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-shape` (ESM)
// See upstream license: https://github.com/d3/d3-shape/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-shape`
export * from "d3-shape";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-time-format` (ESM)
// See upstream license: https://github.com/d3/d3-time-format/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-time-format`
export * from "d3-time-format";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-time` (ESM)
// See upstream license: https://github.com/d3/d3-time/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-time`
export * from "d3-time";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-timer` (ESM)
// See upstream license: https://github.com/d3/d3-timer/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-timer`
export * from "d3-timer";
@@ -0,0 +1,6 @@
// `victory-vendor/d3-voronoi` (ESM)
// See upstream license: https://github.com/d3/d3-voronoi/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/d3-voronoi`
export * from "d3-voronoi";
@@ -0,0 +1,6 @@
// `victory-vendor/internmap` (ESM)
// See upstream license: https://github.com/mbostock/internmap/blob/main/LICENSE
//
// Our ESM package uses the underlying installed dependencies of `node_modules/internmap`
export * from "internmap";
@@ -0,0 +1,13 @@
Copyright 2010-2022 Mike Bostock
Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright notice
and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.
@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.slice = exports.map = void 0;
var array = Array.prototype;
var slice = array.slice;
exports.slice = slice;
var map = array.map;
exports.map = map;
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ascending;
function ascending(a, b) {
return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}
@@ -0,0 +1,142 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = bin;
var _array = require("./array.js");
var _bisect = _interopRequireDefault(require("./bisect.js"));
var _constant = _interopRequireDefault(require("./constant.js"));
var _extent = _interopRequireDefault(require("./extent.js"));
var _identity = _interopRequireDefault(require("./identity.js"));
var _nice = _interopRequireDefault(require("./nice.js"));
var _ticks = _interopRequireWildcard(require("./ticks.js"));
var _sturges = _interopRequireDefault(require("./threshold/sturges.js"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function bin() {
var value = _identity.default,
domain = _extent.default,
threshold = _sturges.default;
function histogram(data) {
if (!Array.isArray(data)) data = Array.from(data);
var i,
n = data.length,
x,
step,
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, and nice the
// default domain accordingly.
if (!Array.isArray(tz)) {
const max = x1,
tn = +tz;
if (domain === _extent.default) [x0, x1] = (0, _nice.default)(x0, x1, tn);
tz = (0, _ticks.default)(x0, x1, tn); // If the domain is aligned with the first tick (which it will by
// default), then we can use quantization rather than bisection to bin
// values, which is substantially faster.
if (tz[0] <= x0) step = (0, _ticks.tickIncrement)(x0, x1, tn); // If the last threshold is coincident with the domains upper bound, the
// last bin will be zero-width. If the default domain is used, and this
// last threshold is coincident with the maximum input value, we can
// extend the niced upper bound by one tick to ensure uniform bin widths;
// otherwise, we simply remove the last threshold. Note that we dont
// coerce values or the domain to numbers, and thus must be careful to
// compare order (>=) rather than strict equality (===)!
if (tz[tz.length - 1] >= x1) {
if (max >= x1 && domain === _extent.default) {
const step = (0, _ticks.tickIncrement)(x0, x1, tn);
if (isFinite(step)) {
if (step > 0) {
x1 = (Math.floor(x1 / step) + 1) * step;
} else if (step < 0) {
x1 = (Math.ceil(x1 * -step) + 1) / -step;
}
}
} else {
tz.pop();
}
}
} // 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.
if (isFinite(step)) {
if (step > 0) {
for (i = 0; i < n; ++i) {
if ((x = values[i]) != null && x0 <= x && x <= x1) {
bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
}
}
} else if (step < 0) {
for (i = 0; i < n; ++i) {
if ((x = values[i]) != null && x0 <= x && x <= x1) {
const j = Math.floor((x0 - x) * step);
bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
}
}
}
} else {
for (i = 0; i < n; ++i) {
if ((x = values[i]) != null && x0 <= x && x <= x1) {
bins[(0, _bisect.default)(tz, x, 0, m)].push(data[i]);
}
}
}
return bins;
}
histogram.value = function (_) {
return arguments.length ? (value = typeof _ === "function" ? _ : (0, _constant.default)(_), histogram) : value;
};
histogram.domain = function (_) {
return arguments.length ? (domain = typeof _ === "function" ? _ : (0, _constant.default)([_[0], _[1]]), histogram) : domain;
};
histogram.thresholds = function (_) {
return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? (0, _constant.default)(_array.slice.call(_)) : (0, _constant.default)(_), histogram) : threshold;
};
return histogram;
}
@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.bisectRight = exports.bisectLeft = exports.bisectCenter = void 0;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _bisector = _interopRequireDefault(require("./bisector.js"));
var _number = _interopRequireDefault(require("./number.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const ascendingBisect = (0, _bisector.default)(_ascending.default);
const bisectRight = ascendingBisect.right;
exports.bisectRight = bisectRight;
const bisectLeft = ascendingBisect.left;
exports.bisectLeft = bisectLeft;
const bisectCenter = (0, _bisector.default)(_number.default).center;
exports.bisectCenter = bisectCenter;
var _default = bisectRight;
exports.default = _default;
@@ -0,0 +1,73 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = bisector;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _descending = _interopRequireDefault(require("./descending.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function bisector(f) {
let compare1, compare2, delta; // If an accessor is specified, promote it to a comparator. In this case we
// can test whether the search value is (self-) comparable. We cant do this
// for a comparator (except for specific, known comparators) because we cant
// tell if the comparator is symmetric, and an asymmetric comparator cant be
// used to test whether a single value is comparable.
if (f.length !== 2) {
compare1 = _ascending.default;
compare2 = (d, x) => (0, _ascending.default)(f(d), x);
delta = (d, x) => f(d) - x;
} else {
compare1 = f === _ascending.default || f === _descending.default ? f : zero;
compare2 = f;
delta = f;
}
function left(a, x, lo = 0, hi = a.length) {
if (lo < hi) {
if (compare1(x, x) !== 0) return hi;
do {
const mid = lo + hi >>> 1;
if (compare2(a[mid], x) < 0) lo = mid + 1;else hi = mid;
} while (lo < hi);
}
return lo;
}
function right(a, x, lo = 0, hi = a.length) {
if (lo < hi) {
if (compare1(x, x) !== 0) return hi;
do {
const mid = lo + hi >>> 1;
if (compare2(a[mid], x) <= 0) lo = mid + 1;else hi = mid;
} while (lo < hi);
}
return lo;
}
function center(a, x, lo = 0, hi = a.length) {
const i = left(a, x, lo, hi - 1);
return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
}
return {
left,
center,
right
};
}
function zero() {
return 0;
}
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = constant;
function constant(x) {
return () => x;
}
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = count;
function count(values, valueof) {
let count = 0;
if (valueof === undefined) {
for (let value of values) {
if (value != null && (value = +value) >= value) {
++count;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
++count;
}
}
}
return count;
}
@@ -0,0 +1,42 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cross;
function length(array) {
return array.length | 0;
}
function empty(length) {
return !(length > 0);
}
function arrayify(values) {
return typeof values !== "object" || "length" in values ? values : Array.from(values);
}
function reducer(reduce) {
return values => reduce(...values);
}
function cross(...values) {
const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
values = values.map(arrayify);
const lengths = values.map(length);
const j = values.length - 1;
const index = new Array(j + 1).fill(0);
const product = [];
if (j < 0 || lengths.some(empty)) return product;
while (true) {
product.push(index.map((j, i) => values[i][j]));
let i = j;
while (++index[i] === lengths[i]) {
if (i === 0) return reduce ? product.map(reduce) : product;
index[i--] = 0;
}
}
}
@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cumsum;
function cumsum(values, valueof) {
var sum = 0,
index = 0;
return Float64Array.from(values, valueof === undefined ? v => sum += +v || 0 : v => sum += +valueof(v, index++, values) || 0);
}
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = descending;
function descending(a, b) {
return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
}
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = deviation;
var _variance = _interopRequireDefault(require("./variance.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function deviation(values, valueof) {
const v = (0, _variance.default)(values, valueof);
return v ? Math.sqrt(v) : v;
}
@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = difference;
var _index = require("../../../lib-vendor/internmap/src/index.js");
function difference(values, ...others) {
values = new _index.InternSet(values);
for (const other of others) {
for (const value of other) {
values.delete(value);
}
}
return values;
}
@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = disjoint;
var _index = require("../../../lib-vendor/internmap/src/index.js");
function disjoint(values, other) {
const iterator = other[Symbol.iterator](),
set = new _index.InternSet();
for (const v of values) {
if (set.has(v)) return false;
let value, done;
while (({
value,
done
} = iterator.next())) {
if (done) break;
if (Object.is(v, value)) return false;
set.add(value);
}
}
return true;
}
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = every;
function every(values, test) {
if (typeof test !== "function") throw new TypeError("test is not a function");
let index = -1;
for (const value of values) {
if (!test(value, ++index, values)) {
return false;
}
}
return true;
}
@@ -0,0 +1,39 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = extent;
function extent(values, valueof) {
let min;
let max;
if (valueof === undefined) {
for (const value of values) {
if (value != null) {
if (min === undefined) {
if (value >= value) min = max = value;
} else {
if (min > value) min = value;
if (max < value) max = value;
}
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null) {
if (min === undefined) {
if (value >= value) min = max = value;
} else {
if (min > value) min = value;
if (max < value) max = value;
}
}
}
}
return [min, max];
}
@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = filter;
function filter(values, test) {
if (typeof test !== "function") throw new TypeError("test is not a function");
const array = [];
let index = -1;
for (const value of values) {
if (test(value, ++index, values)) {
array.push(value);
}
}
return array;
}
@@ -0,0 +1,93 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Adder = void 0;
exports.fcumsum = fcumsum;
exports.fsum = fsum;
// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
class Adder {
constructor() {
this._partials = new Float64Array(32);
this._n = 0;
}
add(x) {
const p = this._partials;
let i = 0;
for (let j = 0; j < this._n && j < 32; j++) {
const y = p[j],
hi = x + y,
lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
if (lo) p[i++] = lo;
x = hi;
}
p[i] = x;
this._n = i + 1;
return this;
}
valueOf() {
const p = this._partials;
let n = this._n,
x,
y,
lo,
hi = 0;
if (n > 0) {
hi = p[--n];
while (n > 0) {
x = hi;
y = p[--n];
hi = x + y;
lo = y - (hi - x);
if (lo) break;
}
if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
y = lo * 2;
x = hi + y;
if (y == x - hi) hi = x;
}
}
return hi;
}
}
exports.Adder = Adder;
function fsum(values, valueof) {
const adder = new Adder();
if (valueof === undefined) {
for (let value of values) {
if (value = +value) {
adder.add(value);
}
}
} else {
let index = -1;
for (let value of values) {
if (value = +valueof(value, ++index, values)) {
adder.add(value);
}
}
}
return +adder;
}
function fcumsum(values, valueof) {
const adder = new Adder();
let index = -1;
return Float64Array.from(values, valueof === undefined ? v => adder.add(+v || 0) : v => adder.add(+valueof(v, ++index, values) || 0));
}
@@ -0,0 +1,38 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = greatest;
var _ascending = _interopRequireDefault(require("./ascending.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function greatest(values, compare = _ascending.default) {
let max;
let defined = false;
if (compare.length === 1) {
let maxValue;
for (const element of values) {
const value = compare(element);
if (defined ? (0, _ascending.default)(value, maxValue) > 0 : (0, _ascending.default)(value, value) === 0) {
max = element;
maxValue = value;
defined = true;
}
}
} else {
for (const value of values) {
if (defined ? compare(value, max) > 0 : compare(value, value) === 0) {
max = value;
defined = true;
}
}
}
return max;
}
@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = greatestIndex;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _maxIndex = _interopRequireDefault(require("./maxIndex.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function greatestIndex(values, compare = _ascending.default) {
if (compare.length === 1) return (0, _maxIndex.default)(values, compare);
let maxValue;
let max = -1;
let index = -1;
for (const value of values) {
++index;
if (max < 0 ? compare(value, value) === 0 : compare(value, maxValue) > 0) {
maxValue = value;
max = index;
}
}
return max;
}
@@ -0,0 +1,85 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = group;
exports.flatGroup = flatGroup;
exports.flatRollup = flatRollup;
exports.groups = groups;
exports.index = index;
exports.indexes = indexes;
exports.rollup = rollup;
exports.rollups = rollups;
var _index = require("../../../lib-vendor/internmap/src/index.js");
var _identity = _interopRequireDefault(require("./identity.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function group(values, ...keys) {
return nest(values, _identity.default, _identity.default, keys);
}
function groups(values, ...keys) {
return nest(values, Array.from, _identity.default, keys);
}
function flatten(groups, keys) {
for (let i = 1, n = keys.length; i < n; ++i) {
groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));
}
return groups;
}
function flatGroup(values, ...keys) {
return flatten(groups(values, ...keys), keys);
}
function flatRollup(values, reduce, ...keys) {
return flatten(rollups(values, reduce, ...keys), keys);
}
function rollup(values, reduce, ...keys) {
return nest(values, _identity.default, reduce, keys);
}
function rollups(values, reduce, ...keys) {
return nest(values, Array.from, reduce, keys);
}
function index(values, ...keys) {
return nest(values, _identity.default, unique, keys);
}
function indexes(values, ...keys) {
return nest(values, Array.from, unique, keys);
}
function unique(values) {
if (values.length !== 1) throw new Error("duplicate key");
return values[0];
}
function nest(values, map, reduce, keys) {
return function regroup(values, i) {
if (i >= keys.length) return reduce(values);
const groups = new _index.InternMap();
const keyof = keys[i++];
let index = -1;
for (const value of values) {
const key = keyof(value, ++index, values);
const group = groups.get(key);
if (group) group.push(value);else groups.set(key, [value]);
}
for (const [key, values] of groups) {
groups.set(key, regroup(values, i));
}
return map(groups);
}(values, 0);
}
@@ -0,0 +1,22 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = groupSort;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _group = _interopRequireWildcard(require("./group.js"));
var _sort = _interopRequireDefault(require("./sort.js"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function groupSort(values, reduce, key) {
return (reduce.length !== 2 ? (0, _sort.default)((0, _group.rollup)(values, reduce, key), ([ak, av], [bk, bv]) => (0, _ascending.default)(av, bv) || (0, _ascending.default)(ak, bk)) : (0, _sort.default)((0, _group.default)(values, key), ([ak, av], [bk, bv]) => reduce(av, bv) || (0, _ascending.default)(ak, bk))).map(([key]) => key);
}
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = identity;
function identity(x) {
return x;
}
@@ -0,0 +1,567 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Adder", {
enumerable: true,
get: function () {
return _fsum.Adder;
}
});
Object.defineProperty(exports, "InternMap", {
enumerable: true,
get: function () {
return _index.InternMap;
}
});
Object.defineProperty(exports, "InternSet", {
enumerable: true,
get: function () {
return _index.InternSet;
}
});
Object.defineProperty(exports, "ascending", {
enumerable: true,
get: function () {
return _ascending.default;
}
});
Object.defineProperty(exports, "bin", {
enumerable: true,
get: function () {
return _bin.default;
}
});
Object.defineProperty(exports, "bisect", {
enumerable: true,
get: function () {
return _bisect.default;
}
});
Object.defineProperty(exports, "bisectCenter", {
enumerable: true,
get: function () {
return _bisect.bisectCenter;
}
});
Object.defineProperty(exports, "bisectLeft", {
enumerable: true,
get: function () {
return _bisect.bisectLeft;
}
});
Object.defineProperty(exports, "bisectRight", {
enumerable: true,
get: function () {
return _bisect.bisectRight;
}
});
Object.defineProperty(exports, "bisector", {
enumerable: true,
get: function () {
return _bisector.default;
}
});
Object.defineProperty(exports, "count", {
enumerable: true,
get: function () {
return _count.default;
}
});
Object.defineProperty(exports, "cross", {
enumerable: true,
get: function () {
return _cross.default;
}
});
Object.defineProperty(exports, "cumsum", {
enumerable: true,
get: function () {
return _cumsum.default;
}
});
Object.defineProperty(exports, "descending", {
enumerable: true,
get: function () {
return _descending.default;
}
});
Object.defineProperty(exports, "deviation", {
enumerable: true,
get: function () {
return _deviation.default;
}
});
Object.defineProperty(exports, "difference", {
enumerable: true,
get: function () {
return _difference.default;
}
});
Object.defineProperty(exports, "disjoint", {
enumerable: true,
get: function () {
return _disjoint.default;
}
});
Object.defineProperty(exports, "every", {
enumerable: true,
get: function () {
return _every.default;
}
});
Object.defineProperty(exports, "extent", {
enumerable: true,
get: function () {
return _extent.default;
}
});
Object.defineProperty(exports, "fcumsum", {
enumerable: true,
get: function () {
return _fsum.fcumsum;
}
});
Object.defineProperty(exports, "filter", {
enumerable: true,
get: function () {
return _filter.default;
}
});
Object.defineProperty(exports, "flatGroup", {
enumerable: true,
get: function () {
return _group.flatGroup;
}
});
Object.defineProperty(exports, "flatRollup", {
enumerable: true,
get: function () {
return _group.flatRollup;
}
});
Object.defineProperty(exports, "fsum", {
enumerable: true,
get: function () {
return _fsum.fsum;
}
});
Object.defineProperty(exports, "greatest", {
enumerable: true,
get: function () {
return _greatest.default;
}
});
Object.defineProperty(exports, "greatestIndex", {
enumerable: true,
get: function () {
return _greatestIndex.default;
}
});
Object.defineProperty(exports, "group", {
enumerable: true,
get: function () {
return _group.default;
}
});
Object.defineProperty(exports, "groupSort", {
enumerable: true,
get: function () {
return _groupSort.default;
}
});
Object.defineProperty(exports, "groups", {
enumerable: true,
get: function () {
return _group.groups;
}
});
Object.defineProperty(exports, "histogram", {
enumerable: true,
get: function () {
return _bin.default;
}
});
Object.defineProperty(exports, "index", {
enumerable: true,
get: function () {
return _group.index;
}
});
Object.defineProperty(exports, "indexes", {
enumerable: true,
get: function () {
return _group.indexes;
}
});
Object.defineProperty(exports, "intersection", {
enumerable: true,
get: function () {
return _intersection.default;
}
});
Object.defineProperty(exports, "least", {
enumerable: true,
get: function () {
return _least.default;
}
});
Object.defineProperty(exports, "leastIndex", {
enumerable: true,
get: function () {
return _leastIndex.default;
}
});
Object.defineProperty(exports, "map", {
enumerable: true,
get: function () {
return _map.default;
}
});
Object.defineProperty(exports, "max", {
enumerable: true,
get: function () {
return _max.default;
}
});
Object.defineProperty(exports, "maxIndex", {
enumerable: true,
get: function () {
return _maxIndex.default;
}
});
Object.defineProperty(exports, "mean", {
enumerable: true,
get: function () {
return _mean.default;
}
});
Object.defineProperty(exports, "median", {
enumerable: true,
get: function () {
return _median.default;
}
});
Object.defineProperty(exports, "merge", {
enumerable: true,
get: function () {
return _merge.default;
}
});
Object.defineProperty(exports, "min", {
enumerable: true,
get: function () {
return _min.default;
}
});
Object.defineProperty(exports, "minIndex", {
enumerable: true,
get: function () {
return _minIndex.default;
}
});
Object.defineProperty(exports, "mode", {
enumerable: true,
get: function () {
return _mode.default;
}
});
Object.defineProperty(exports, "nice", {
enumerable: true,
get: function () {
return _nice.default;
}
});
Object.defineProperty(exports, "pairs", {
enumerable: true,
get: function () {
return _pairs.default;
}
});
Object.defineProperty(exports, "permute", {
enumerable: true,
get: function () {
return _permute.default;
}
});
Object.defineProperty(exports, "quantile", {
enumerable: true,
get: function () {
return _quantile.default;
}
});
Object.defineProperty(exports, "quantileSorted", {
enumerable: true,
get: function () {
return _quantile.quantileSorted;
}
});
Object.defineProperty(exports, "quickselect", {
enumerable: true,
get: function () {
return _quickselect.default;
}
});
Object.defineProperty(exports, "range", {
enumerable: true,
get: function () {
return _range.default;
}
});
Object.defineProperty(exports, "rank", {
enumerable: true,
get: function () {
return _rank.default;
}
});
Object.defineProperty(exports, "reduce", {
enumerable: true,
get: function () {
return _reduce.default;
}
});
Object.defineProperty(exports, "reverse", {
enumerable: true,
get: function () {
return _reverse.default;
}
});
Object.defineProperty(exports, "rollup", {
enumerable: true,
get: function () {
return _group.rollup;
}
});
Object.defineProperty(exports, "rollups", {
enumerable: true,
get: function () {
return _group.rollups;
}
});
Object.defineProperty(exports, "scan", {
enumerable: true,
get: function () {
return _scan.default;
}
});
Object.defineProperty(exports, "shuffle", {
enumerable: true,
get: function () {
return _shuffle.default;
}
});
Object.defineProperty(exports, "shuffler", {
enumerable: true,
get: function () {
return _shuffle.shuffler;
}
});
Object.defineProperty(exports, "some", {
enumerable: true,
get: function () {
return _some.default;
}
});
Object.defineProperty(exports, "sort", {
enumerable: true,
get: function () {
return _sort.default;
}
});
Object.defineProperty(exports, "subset", {
enumerable: true,
get: function () {
return _subset.default;
}
});
Object.defineProperty(exports, "sum", {
enumerable: true,
get: function () {
return _sum.default;
}
});
Object.defineProperty(exports, "superset", {
enumerable: true,
get: function () {
return _superset.default;
}
});
Object.defineProperty(exports, "thresholdFreedmanDiaconis", {
enumerable: true,
get: function () {
return _freedmanDiaconis.default;
}
});
Object.defineProperty(exports, "thresholdScott", {
enumerable: true,
get: function () {
return _scott.default;
}
});
Object.defineProperty(exports, "thresholdSturges", {
enumerable: true,
get: function () {
return _sturges.default;
}
});
Object.defineProperty(exports, "tickIncrement", {
enumerable: true,
get: function () {
return _ticks.tickIncrement;
}
});
Object.defineProperty(exports, "tickStep", {
enumerable: true,
get: function () {
return _ticks.tickStep;
}
});
Object.defineProperty(exports, "ticks", {
enumerable: true,
get: function () {
return _ticks.default;
}
});
Object.defineProperty(exports, "transpose", {
enumerable: true,
get: function () {
return _transpose.default;
}
});
Object.defineProperty(exports, "union", {
enumerable: true,
get: function () {
return _union.default;
}
});
Object.defineProperty(exports, "variance", {
enumerable: true,
get: function () {
return _variance.default;
}
});
Object.defineProperty(exports, "zip", {
enumerable: true,
get: function () {
return _zip.default;
}
});
var _bisect = _interopRequireWildcard(require("./bisect.js"));
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _bisector = _interopRequireDefault(require("./bisector.js"));
var _count = _interopRequireDefault(require("./count.js"));
var _cross = _interopRequireDefault(require("./cross.js"));
var _cumsum = _interopRequireDefault(require("./cumsum.js"));
var _descending = _interopRequireDefault(require("./descending.js"));
var _deviation = _interopRequireDefault(require("./deviation.js"));
var _extent = _interopRequireDefault(require("./extent.js"));
var _fsum = require("./fsum.js");
var _group = _interopRequireWildcard(require("./group.js"));
var _groupSort = _interopRequireDefault(require("./groupSort.js"));
var _bin = _interopRequireDefault(require("./bin.js"));
var _freedmanDiaconis = _interopRequireDefault(require("./threshold/freedmanDiaconis.js"));
var _scott = _interopRequireDefault(require("./threshold/scott.js"));
var _sturges = _interopRequireDefault(require("./threshold/sturges.js"));
var _max = _interopRequireDefault(require("./max.js"));
var _maxIndex = _interopRequireDefault(require("./maxIndex.js"));
var _mean = _interopRequireDefault(require("./mean.js"));
var _median = _interopRequireDefault(require("./median.js"));
var _merge = _interopRequireDefault(require("./merge.js"));
var _min = _interopRequireDefault(require("./min.js"));
var _minIndex = _interopRequireDefault(require("./minIndex.js"));
var _mode = _interopRequireDefault(require("./mode.js"));
var _nice = _interopRequireDefault(require("./nice.js"));
var _pairs = _interopRequireDefault(require("./pairs.js"));
var _permute = _interopRequireDefault(require("./permute.js"));
var _quantile = _interopRequireWildcard(require("./quantile.js"));
var _quickselect = _interopRequireDefault(require("./quickselect.js"));
var _range = _interopRequireDefault(require("./range.js"));
var _rank = _interopRequireDefault(require("./rank.js"));
var _least = _interopRequireDefault(require("./least.js"));
var _leastIndex = _interopRequireDefault(require("./leastIndex.js"));
var _greatest = _interopRequireDefault(require("./greatest.js"));
var _greatestIndex = _interopRequireDefault(require("./greatestIndex.js"));
var _scan = _interopRequireDefault(require("./scan.js"));
var _shuffle = _interopRequireWildcard(require("./shuffle.js"));
var _sum = _interopRequireDefault(require("./sum.js"));
var _ticks = _interopRequireWildcard(require("./ticks.js"));
var _transpose = _interopRequireDefault(require("./transpose.js"));
var _variance = _interopRequireDefault(require("./variance.js"));
var _zip = _interopRequireDefault(require("./zip.js"));
var _every = _interopRequireDefault(require("./every.js"));
var _some = _interopRequireDefault(require("./some.js"));
var _filter = _interopRequireDefault(require("./filter.js"));
var _map = _interopRequireDefault(require("./map.js"));
var _reduce = _interopRequireDefault(require("./reduce.js"));
var _reverse = _interopRequireDefault(require("./reverse.js"));
var _sort = _interopRequireDefault(require("./sort.js"));
var _difference = _interopRequireDefault(require("./difference.js"));
var _disjoint = _interopRequireDefault(require("./disjoint.js"));
var _intersection = _interopRequireDefault(require("./intersection.js"));
var _subset = _interopRequireDefault(require("./subset.js"));
var _superset = _interopRequireDefault(require("./superset.js"));
var _union = _interopRequireDefault(require("./union.js"));
var _index = require("../../../lib-vendor/internmap/src/index.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = intersection;
var _index = require("../../../lib-vendor/internmap/src/index.js");
function intersection(values, ...others) {
values = new _index.InternSet(values);
others = others.map(set);
out: for (const value of values) {
for (const other of others) {
if (!other.has(value)) {
values.delete(value);
continue out;
}
}
}
return values;
}
function set(values) {
return values instanceof _index.InternSet ? values : new _index.InternSet(values);
}
@@ -0,0 +1,38 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = least;
var _ascending = _interopRequireDefault(require("./ascending.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function least(values, compare = _ascending.default) {
let min;
let defined = false;
if (compare.length === 1) {
let minValue;
for (const element of values) {
const value = compare(element);
if (defined ? (0, _ascending.default)(value, minValue) < 0 : (0, _ascending.default)(value, value) === 0) {
min = element;
minValue = value;
defined = true;
}
}
} else {
for (const value of values) {
if (defined ? compare(value, min) < 0 : compare(value, value) === 0) {
min = value;
defined = true;
}
}
}
return min;
}
@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = leastIndex;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _minIndex = _interopRequireDefault(require("./minIndex.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function leastIndex(values, compare = _ascending.default) {
if (compare.length === 1) return (0, _minIndex.default)(values, compare);
let minValue;
let min = -1;
let index = -1;
for (const value of values) {
++index;
if (min < 0 ? compare(value, value) === 0 : compare(value, minValue) < 0) {
minValue = value;
min = index;
}
}
return min;
}
@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = map;
function map(values, mapper) {
if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
return Array.from(values, (value, index) => mapper(value, index, values));
}
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = max;
function max(values, valueof) {
let max;
if (valueof === undefined) {
for (const value of values) {
if (value != null && (max < value || max === undefined && value >= value)) {
max = value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (max < value || max === undefined && value >= value)) {
max = value;
}
}
}
return max;
}
@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = maxIndex;
function maxIndex(values, valueof) {
let max;
let maxIndex = -1;
let index = -1;
if (valueof === undefined) {
for (const value of values) {
++index;
if (value != null && (max < value || max === undefined && value >= value)) {
max = value, maxIndex = index;
}
}
} else {
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (max < value || max === undefined && value >= value)) {
max = value, maxIndex = index;
}
}
}
return maxIndex;
}
@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = mean;
function mean(values, valueof) {
let count = 0;
let sum = 0;
if (valueof === undefined) {
for (let value of values) {
if (value != null && (value = +value) >= value) {
++count, sum += value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
++count, sum += value;
}
}
}
if (count) return sum / count;
}
@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = median;
var _quantile = _interopRequireDefault(require("./quantile.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function median(values, valueof) {
return (0, _quantile.default)(values, 0.5, valueof);
}
@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = merge;
function* flatten(arrays) {
for (const array of arrays) {
yield* array;
}
}
function merge(arrays) {
return Array.from(flatten(arrays));
}
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = min;
function min(values, valueof) {
let min;
if (valueof === undefined) {
for (const value of values) {
if (value != null && (min > value || min === undefined && value >= value)) {
min = value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (min > value || min === undefined && value >= value)) {
min = value;
}
}
}
return min;
}
@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = minIndex;
function minIndex(values, valueof) {
let min;
let minIndex = -1;
let index = -1;
if (valueof === undefined) {
for (const value of values) {
++index;
if (value != null && (min > value || min === undefined && value >= value)) {
min = value, minIndex = index;
}
}
} else {
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (min > value || min === undefined && value >= value)) {
min = value, minIndex = index;
}
}
}
return minIndex;
}
@@ -0,0 +1,40 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = mode;
var _index = require("../../../lib-vendor/internmap/src/index.js");
function mode(values, valueof) {
const counts = new _index.InternMap();
if (valueof === undefined) {
for (let value of values) {
if (value != null && value >= value) {
counts.set(value, (counts.get(value) || 0) + 1);
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && value >= value) {
counts.set(value, (counts.get(value) || 0) + 1);
}
}
}
let modeValue;
let modeCount = 0;
for (const [value, count] of counts) {
if (count > modeCount) {
modeCount = count;
modeValue = value;
}
}
return modeValue;
}
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = nice;
var _ticks = require("./ticks.js");
function nice(start, stop, count) {
let prestep;
while (true) {
const step = (0, _ticks.tickIncrement)(start, stop, count);
if (step === prestep || step === 0 || !isFinite(step)) {
return [start, stop];
} else if (step > 0) {
start = Math.floor(start / step) * step;
stop = Math.ceil(stop / step) * step;
} else if (step < 0) {
start = Math.ceil(start * step) / step;
stop = Math.floor(stop * step) / step;
}
prestep = step;
}
}
@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = number;
exports.numbers = numbers;
function number(x) {
return x === null ? NaN : +x;
}
function* numbers(values, valueof) {
if (valueof === undefined) {
for (let value of values) {
if (value != null && (value = +value) >= value) {
yield value;
}
}
} else {
let index = -1;
for (let value of values) {
if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
yield value;
}
}
}
}
@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = pairs;
exports.pair = pair;
function pairs(values, pairof = pair) {
const pairs = [];
let previous;
let first = false;
for (const value of values) {
if (first) pairs.push(pairof(previous, value));
previous = value;
first = true;
}
return pairs;
}
function pair(a, b) {
return [a, b];
}
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = permute;
function permute(source, keys) {
return Array.from(keys, key => source[key]);
}
@@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = quantile;
exports.quantileSorted = quantileSorted;
var _max = _interopRequireDefault(require("./max.js"));
var _min = _interopRequireDefault(require("./min.js"));
var _quickselect = _interopRequireDefault(require("./quickselect.js"));
var _number = _interopRequireWildcard(require("./number.js"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function quantile(values, p, valueof) {
values = Float64Array.from((0, _number.numbers)(values, valueof));
if (!(n = values.length)) return;
if ((p = +p) <= 0 || n < 2) return (0, _min.default)(values);
if (p >= 1) return (0, _max.default)(values);
var n,
i = (n - 1) * p,
i0 = Math.floor(i),
value0 = (0, _max.default)((0, _quickselect.default)(values, i0).subarray(0, i0 + 1)),
value1 = (0, _min.default)(values.subarray(i0 + 1));
return value0 + (value1 - value0) * (i - i0);
}
function quantileSorted(values, p, valueof = _number.default) {
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);
}
@@ -0,0 +1,53 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = quickselect;
var _sort = require("./sort.js");
// Based on https://github.com/mourner/quickselect
// ISC license, Copyright 2018 Vladimir Agafonkin.
function quickselect(array, k, left = 0, right = array.length - 1, compare) {
compare = compare === undefined ? _sort.ascendingDefined : (0, _sort.compareDefined)(compare);
while (right > left) {
if (right - left > 600) {
const n = right - left + 1;
const m = k - left + 1;
const z = Math.log(n);
const s = 0.5 * Math.exp(2 * z / 3);
const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
quickselect(array, k, newLeft, newRight, compare);
}
const t = array[k];
let i = left;
let j = right;
swap(array, left, k);
if (compare(array[right], t) > 0) swap(array, left, right);
while (i < j) {
swap(array, i, j), ++i, --j;
while (compare(array[i], t) < 0) ++i;
while (compare(array[j], t) > 0) --j;
}
if (compare(array[left], t) === 0) swap(array, left, j);else ++j, swap(array, j, right);
if (j <= k) left = j + 1;
if (k <= j) right = j - 1;
}
return array;
}
function swap(array, i, j) {
const t = array[i];
array[i] = array[j];
array[j] = t;
}
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = range;
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;
}
@@ -0,0 +1,34 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = rank;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _sort = require("./sort.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function rank(values, valueof = _ascending.default) {
if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
let V = Array.from(values);
const R = new Float64Array(V.length);
if (valueof.length !== 2) V = V.map(valueof), valueof = _ascending.default;
const compareIndex = (i, j) => valueof(V[i], V[j]);
let k, r;
Uint32Array.from(V, (_, i) => i).sort(valueof === _ascending.default ? (i, j) => (0, _sort.ascendingDefined)(V[i], V[j]) : (0, _sort.compareDefined)(compareIndex)).forEach((j, i) => {
const c = compareIndex(j, k === undefined ? j : k);
if (c >= 0) {
if (k === undefined || c > 0) k = j, r = i;
R[j] = r;
} else {
R[j] = NaN;
}
});
return R;
}
@@ -0,0 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = reduce;
function reduce(values, reducer, value) {
if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
const iterator = values[Symbol.iterator]();
let done,
next,
index = -1;
if (arguments.length < 3) {
({
done,
value
} = iterator.next());
if (done) return;
++index;
}
while (({
done,
value: next
} = iterator.next()), !done) {
value = reducer(value, next, ++index, values);
}
return value;
}
@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = reverse;
function reverse(values) {
if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
return Array.from(values).reverse();
}
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = scan;
var _leastIndex = _interopRequireDefault(require("./leastIndex.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function scan(values, compare) {
const index = (0, _leastIndex.default)(values, compare);
return index < 0 ? undefined : index;
}
@@ -0,0 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports.shuffler = shuffler;
var _default = shuffler(Math.random);
exports.default = _default;
function shuffler(random) {
return function shuffle(array, i0 = 0, i1 = array.length) {
let m = i1 - (i0 = +i0);
while (m) {
const i = random() * m-- | 0,
t = array[m + i0];
array[m + i0] = array[i + i0];
array[i + i0] = t;
}
return array;
};
}
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = some;
function some(values, test) {
if (typeof test !== "function") throw new TypeError("test is not a function");
let index = -1;
for (const value of values) {
if (test(value, ++index, values)) {
return true;
}
}
return false;
}
@@ -0,0 +1,55 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ascendingDefined = ascendingDefined;
exports.compareDefined = compareDefined;
exports.default = sort;
var _ascending = _interopRequireDefault(require("./ascending.js"));
var _permute = _interopRequireDefault(require("./permute.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function sort(values, ...F) {
if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
values = Array.from(values);
let [f] = F;
if (f && f.length !== 2 || F.length > 1) {
const index = Uint32Array.from(values, (d, i) => i);
if (F.length > 1) {
F = F.map(f => values.map(f));
index.sort((i, j) => {
for (const f of F) {
const c = ascendingDefined(f[i], f[j]);
if (c) return c;
}
});
} else {
f = values.map(f);
index.sort((i, j) => ascendingDefined(f[i], f[j]));
}
return (0, _permute.default)(values, index);
}
return values.sort(compareDefined(f));
}
function compareDefined(compare = _ascending.default) {
if (compare === _ascending.default) return ascendingDefined;
if (typeof compare !== "function") throw new TypeError("compare is not a function");
return (a, b) => {
const x = compare(a, b);
if (x || x === 0) return x;
return (compare(b, b) === 0) - (compare(a, a) === 0);
};
}
function ascendingDefined(a, b) {
return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);
}
@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = subset;
var _superset = _interopRequireDefault(require("./superset.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function subset(values, other) {
return (0, _superset.default)(other, values);
}
@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = sum;
function sum(values, valueof) {
let sum = 0;
if (valueof === undefined) {
for (let value of values) {
if (value = +value) {
sum += value;
}
}
} else {
let index = -1;
for (let value of values) {
if (value = +valueof(value, ++index, values)) {
sum += value;
}
}
}
return sum;
}
@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = superset;
function superset(values, other) {
const iterator = values[Symbol.iterator](),
set = new Set();
for (const o of other) {
const io = intern(o);
if (set.has(io)) continue;
let value, done;
while (({
value,
done
} = iterator.next())) {
if (done) return false;
const ivalue = intern(value);
set.add(ivalue);
if (Object.is(io, ivalue)) break;
}
}
return true;
}
function intern(value) {
return value !== null && typeof value === "object" ? value.valueOf() : value;
}
@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = thresholdFreedmanDiaconis;
var _count = _interopRequireDefault(require("../count.js"));
var _quantile = _interopRequireDefault(require("../quantile.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function thresholdFreedmanDiaconis(values, min, max) {
return Math.ceil((max - min) / (2 * ((0, _quantile.default)(values, 0.75) - (0, _quantile.default)(values, 0.25)) * Math.pow((0, _count.default)(values), -1 / 3)));
}
@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = thresholdScott;
var _count = _interopRequireDefault(require("../count.js"));
var _deviation = _interopRequireDefault(require("../deviation.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function thresholdScott(values, min, max) {
return Math.ceil((max - min) * Math.cbrt((0, _count.default)(values)) / (3.49 * (0, _deviation.default)(values)));
}
@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = thresholdSturges;
var _count = _interopRequireDefault(require("../count.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function thresholdSturges(values) {
return Math.ceil(Math.log((0, _count.default)(values)) / Math.LN2) + 1;
}
@@ -0,0 +1,60 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ticks;
exports.tickIncrement = tickIncrement;
exports.tickStep = tickStep;
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) {
let r0 = Math.round(start / step),
r1 = Math.round(stop / step);
if (r0 * step < start) ++r0;
if (r1 * step > stop) --r1;
ticks = new Array(n = r1 - r0 + 1);
while (++i < n) ticks[i] = (r0 + i) * step;
} else {
step = -step;
let r0 = Math.round(start * step),
r1 = Math.round(stop * step);
if (r0 / step < start) ++r0;
if (r1 / step > stop) --r1;
ticks = new Array(n = r1 - r0 + 1);
while (++i < n) ticks[i] = (r0 + 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;
}

Some files were not shown because too many files have changed in this diff Show More