360 lines
11 KiB
JavaScript
360 lines
11 KiB
JavaScript
import {
|
|
exponent,
|
|
format,
|
|
formatPrefix,
|
|
formatSpecifier
|
|
} from "./chunk-MGHIGXL7.js";
|
|
import {
|
|
initRange
|
|
} from "./chunk-EKBXQN5S.js";
|
|
import {
|
|
color,
|
|
constant$1,
|
|
interpolateNumber,
|
|
interpolateRgb,
|
|
interpolateString
|
|
} from "./chunk-SJ5HZDIS.js";
|
|
|
|
// ../node_modules/.pnpm/vue-element-plus-x@1.3.7_ro_47c535807434a0797b7704af258a7bca/node_modules/vue-element-plus-x/dist/linear-DqgVh5FN.js
|
|
function ascending(a, b) {
|
|
return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
|
}
|
|
function descending(a, b) {
|
|
return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
|
|
}
|
|
function bisector(f) {
|
|
let compare1, compare2, delta;
|
|
if (f.length !== 2) {
|
|
compare1 = ascending;
|
|
compare2 = (d, x) => ascending(f(d), x);
|
|
delta = (d, x) => f(d) - x;
|
|
} else {
|
|
compare1 = f === ascending || f === descending ? 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;
|
|
}
|
|
function number$1(x) {
|
|
return x === null ? NaN : +x;
|
|
}
|
|
var ascendingBisect = bisector(ascending);
|
|
var bisectRight = ascendingBisect.right;
|
|
bisector(number$1).center;
|
|
var e10 = Math.sqrt(50);
|
|
var e5 = Math.sqrt(10);
|
|
var e2 = Math.sqrt(2);
|
|
function tickSpec(start, stop, count) {
|
|
const step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log10(step)), error = step / Math.pow(10, power), factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
|
|
let i1, i2, inc;
|
|
if (power < 0) {
|
|
inc = Math.pow(10, -power) / factor;
|
|
i1 = Math.round(start * inc);
|
|
i2 = Math.round(stop * inc);
|
|
if (i1 / inc < start) ++i1;
|
|
if (i2 / inc > stop) --i2;
|
|
inc = -inc;
|
|
} else {
|
|
inc = Math.pow(10, power) * factor;
|
|
i1 = Math.round(start / inc);
|
|
i2 = Math.round(stop / inc);
|
|
if (i1 * inc < start) ++i1;
|
|
if (i2 * inc > stop) --i2;
|
|
}
|
|
if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
|
|
return [i1, i2, inc];
|
|
}
|
|
function ticks(start, stop, count) {
|
|
stop = +stop, start = +start, count = +count;
|
|
if (!(count > 0)) return [];
|
|
if (start === stop) return [start];
|
|
const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
|
|
if (!(i2 >= i1)) return [];
|
|
const n = i2 - i1 + 1, ticks2 = new Array(n);
|
|
if (reverse) {
|
|
if (inc < 0) for (let i = 0; i < n; ++i) ticks2[i] = (i2 - i) / -inc;
|
|
else for (let i = 0; i < n; ++i) ticks2[i] = (i2 - i) * inc;
|
|
} else {
|
|
if (inc < 0) for (let i = 0; i < n; ++i) ticks2[i] = (i1 + i) / -inc;
|
|
else for (let i = 0; i < n; ++i) ticks2[i] = (i1 + i) * inc;
|
|
}
|
|
return ticks2;
|
|
}
|
|
function tickIncrement(start, stop, count) {
|
|
stop = +stop, start = +start, count = +count;
|
|
return tickSpec(start, stop, count)[2];
|
|
}
|
|
function tickStep(start, stop, count) {
|
|
stop = +stop, start = +start, count = +count;
|
|
const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
|
|
return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
|
|
}
|
|
function numberArray(a, b) {
|
|
if (!b) b = [];
|
|
var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i;
|
|
return function(t) {
|
|
for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
|
|
return c;
|
|
};
|
|
}
|
|
function isNumberArray(x) {
|
|
return ArrayBuffer.isView(x) && !(x instanceof DataView);
|
|
}
|
|
function genericArray(a, b) {
|
|
var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i;
|
|
for (i = 0; i < na; ++i) x[i] = interpolate(a[i], b[i]);
|
|
for (; i < nb; ++i) c[i] = b[i];
|
|
return function(t) {
|
|
for (i = 0; i < na; ++i) c[i] = x[i](t);
|
|
return c;
|
|
};
|
|
}
|
|
function date(a, b) {
|
|
var d = /* @__PURE__ */ new Date();
|
|
return a = +a, b = +b, function(t) {
|
|
return d.setTime(a * (1 - t) + b * t), d;
|
|
};
|
|
}
|
|
function object(a, b) {
|
|
var i = {}, c = {}, k;
|
|
if (a === null || typeof a !== "object") a = {};
|
|
if (b === null || typeof b !== "object") b = {};
|
|
for (k in b) {
|
|
if (k in a) {
|
|
i[k] = interpolate(a[k], b[k]);
|
|
} else {
|
|
c[k] = b[k];
|
|
}
|
|
}
|
|
return function(t) {
|
|
for (k in i) c[k] = i[k](t);
|
|
return c;
|
|
};
|
|
}
|
|
function interpolate(a, b) {
|
|
var t = typeof b, c;
|
|
return b == null || t === "boolean" ? constant$1(b) : (t === "number" ? interpolateNumber : t === "string" ? (c = color(b)) ? (b = c, interpolateRgb) : interpolateString : b instanceof color ? interpolateRgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : interpolateNumber)(a, b);
|
|
}
|
|
function interpolateRound(a, b) {
|
|
return a = +a, b = +b, function(t) {
|
|
return Math.round(a * (1 - t) + b * t);
|
|
};
|
|
}
|
|
function precisionFixed(step) {
|
|
return Math.max(0, -exponent(Math.abs(step)));
|
|
}
|
|
function precisionPrefix(step, value) {
|
|
return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
|
|
}
|
|
function precisionRound(step, max) {
|
|
step = Math.abs(step), max = Math.abs(max) - step;
|
|
return Math.max(0, exponent(max) - exponent(step)) + 1;
|
|
}
|
|
function constants(x) {
|
|
return function() {
|
|
return x;
|
|
};
|
|
}
|
|
function number(x) {
|
|
return +x;
|
|
}
|
|
var unit = [0, 1];
|
|
function identity(x) {
|
|
return x;
|
|
}
|
|
function normalize(a, b) {
|
|
return (b -= a = +a) ? function(x) {
|
|
return (x - a) / b;
|
|
} : constants(isNaN(b) ? NaN : 0.5);
|
|
}
|
|
function clamper(a, b) {
|
|
var t;
|
|
if (a > b) t = a, a = b, b = t;
|
|
return function(x) {
|
|
return Math.max(a, Math.min(b, x));
|
|
};
|
|
}
|
|
function bimap(domain, range, interpolate2) {
|
|
var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
|
|
if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate2(r1, r0);
|
|
else d0 = normalize(d0, d1), r0 = interpolate2(r0, r1);
|
|
return function(x) {
|
|
return r0(d0(x));
|
|
};
|
|
}
|
|
function polymap(domain, range, interpolate2) {
|
|
var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i = -1;
|
|
if (domain[j] < domain[0]) {
|
|
domain = domain.slice().reverse();
|
|
range = range.slice().reverse();
|
|
}
|
|
while (++i < j) {
|
|
d[i] = normalize(domain[i], domain[i + 1]);
|
|
r[i] = interpolate2(range[i], range[i + 1]);
|
|
}
|
|
return function(x) {
|
|
var i2 = bisectRight(domain, x, 1, j) - 1;
|
|
return r[i2](d[i2](x));
|
|
};
|
|
}
|
|
function copy(source, target) {
|
|
return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
|
|
}
|
|
function transformer() {
|
|
var domain = unit, range = unit, interpolate$1 = interpolate, transform, untransform, unknown, clamp = identity, piecewise, output, input;
|
|
function rescale() {
|
|
var n = Math.min(domain.length, range.length);
|
|
if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);
|
|
piecewise = n > 2 ? polymap : bimap;
|
|
output = input = null;
|
|
return scale;
|
|
}
|
|
function scale(x) {
|
|
return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate$1)))(transform(clamp(x)));
|
|
}
|
|
scale.invert = function(y) {
|
|
return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));
|
|
};
|
|
scale.domain = function(_) {
|
|
return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();
|
|
};
|
|
scale.range = function(_) {
|
|
return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
|
|
};
|
|
scale.rangeRound = function(_) {
|
|
return range = Array.from(_), interpolate$1 = interpolateRound, rescale();
|
|
};
|
|
scale.clamp = function(_) {
|
|
return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
|
|
};
|
|
scale.interpolate = function(_) {
|
|
return arguments.length ? (interpolate$1 = _, rescale()) : interpolate$1;
|
|
};
|
|
scale.unknown = function(_) {
|
|
return arguments.length ? (unknown = _, scale) : unknown;
|
|
};
|
|
return function(t, u) {
|
|
transform = t, untransform = u;
|
|
return rescale();
|
|
};
|
|
}
|
|
function continuous() {
|
|
return transformer()(identity, identity);
|
|
}
|
|
function tickFormat(start, stop, count, specifier) {
|
|
var step = tickStep(start, stop, count), precision;
|
|
specifier = formatSpecifier(specifier == null ? ",f" : specifier);
|
|
switch (specifier.type) {
|
|
case "s": {
|
|
var value = Math.max(Math.abs(start), Math.abs(stop));
|
|
if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;
|
|
return formatPrefix(specifier, value);
|
|
}
|
|
case "":
|
|
case "e":
|
|
case "g":
|
|
case "p":
|
|
case "r": {
|
|
if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
|
|
break;
|
|
}
|
|
case "f":
|
|
case "%": {
|
|
if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2;
|
|
break;
|
|
}
|
|
}
|
|
return format(specifier);
|
|
}
|
|
function linearish(scale) {
|
|
var domain = scale.domain;
|
|
scale.ticks = function(count) {
|
|
var d = domain();
|
|
return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
|
|
};
|
|
scale.tickFormat = function(count, specifier) {
|
|
var d = domain();
|
|
return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
|
|
};
|
|
scale.nice = function(count) {
|
|
if (count == null) count = 10;
|
|
var d = domain();
|
|
var i0 = 0;
|
|
var i1 = d.length - 1;
|
|
var start = d[i0];
|
|
var stop = d[i1];
|
|
var prestep;
|
|
var step;
|
|
var maxIter = 10;
|
|
if (stop < start) {
|
|
step = start, start = stop, stop = step;
|
|
step = i0, i0 = i1, i1 = step;
|
|
}
|
|
while (maxIter-- > 0) {
|
|
step = tickIncrement(start, stop, count);
|
|
if (step === prestep) {
|
|
d[i0] = start;
|
|
d[i1] = stop;
|
|
return domain(d);
|
|
} 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;
|
|
} else {
|
|
break;
|
|
}
|
|
prestep = step;
|
|
}
|
|
return scale;
|
|
};
|
|
return scale;
|
|
}
|
|
function linear() {
|
|
var scale = continuous();
|
|
scale.copy = function() {
|
|
return copy(scale, linear());
|
|
};
|
|
initRange.apply(scale, arguments);
|
|
return linearish(scale);
|
|
}
|
|
|
|
export {
|
|
bisector,
|
|
tickStep,
|
|
copy,
|
|
continuous,
|
|
linear
|
|
};
|
|
//# sourceMappingURL=chunk-6TFX74OF.js.map
|