laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
165 lines (164 loc) • 5.52 kB
JavaScript
"use client";
import y from "../../../../_virtual/sortBy.js";
import b from "../../../../_virtual/get.js";
import { isNullish as h, isNumOrStr as d, isNumber as p, isNan as g } from "./DataUtils.js";
import P from "../../../d3-shape/src/stack.js";
import w from "../../../d3-shape/src/order/none.js";
import M from "../../../d3-shape/src/offset/wiggle.js";
import S from "../../../d3-shape/src/offset/silhouette.js";
import E from "../../../d3-shape/src/offset/none.js";
import D from "../../../d3-shape/src/offset/expand.js";
function l(r, t) {
var n = Object.keys(r);
if (Object.getOwnPropertySymbols) {
var a = Object.getOwnPropertySymbols(r);
t && (a = a.filter(function(f) {
return Object.getOwnPropertyDescriptor(r, f).enumerable;
})), n.push.apply(n, a);
}
return n;
}
function u(r) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t] != null ? arguments[t] : {};
t % 2 ? l(Object(n), !0).forEach(function(a) {
_(r, a, n[a]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(n)) : l(Object(n)).forEach(function(a) {
Object.defineProperty(r, a, Object.getOwnPropertyDescriptor(n, a));
});
}
return r;
}
function _(r, t, n) {
return (t = k(t)) in r ? Object.defineProperty(r, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : r[t] = n, r;
}
function k(r) {
var t = x(r, "string");
return typeof t == "symbol" ? t : t + "";
}
function x(r, t) {
if (typeof r != "object" || !r) return r;
var n = r[Symbol.toPrimitive];
if (n !== void 0) {
var a = n.call(r, t);
if (typeof a != "object") return a;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (t === "string" ? String : Number)(r);
}
function I(r, t, n) {
return h(r) || h(t) ? n : d(t) ? b(r, t, n) : typeof t == "function" ? t(r) : n;
}
var X = (r, t, n) => {
if (t && n) {
var {
width: a,
height: f
} = n, {
align: e,
verticalAlign: o,
layout: i
} = t;
if ((i === "vertical" || i === "horizontal" && o === "middle") && e !== "center" && p(r[e]))
return u(u({}, r), {}, {
[e]: r[e] + (a || 0)
});
if ((i === "horizontal" || i === "vertical" && e === "center") && o !== "middle" && p(r[o]))
return u(u({}, r), {}, {
[o]: r[o] + (f || 0)
});
}
return r;
}, q = (r, t) => r === "horizontal" && t === "xAxis" || r === "vertical" && t === "yAxis" || r === "centric" && t === "angleAxis" || r === "radial" && t === "radiusAxis", O = 1e-4, z = (r) => {
var t = r.domain();
if (!(!t || t.length <= 2)) {
var n = t.length, a = r.range(), f = Math.min(a[0], a[1]) - O, e = Math.max(a[0], a[1]) + O, o = r(t[0]), i = r(t[n - 1]);
(o < f || o > e || i < f || i > e) && r.domain([t[0], t[n - 1]]);
}
}, A = (r) => {
var t = r.length;
if (!(t <= 0))
for (var n = 0, a = r[0].length; n < a; ++n)
for (var f = 0, e = 0, o = 0; o < t; ++o) {
var i = g(r[o][n][1]) ? r[o][n][0] : r[o][n][1];
i >= 0 ? (r[o][n][0] = f, r[o][n][1] = f + i, f = r[o][n][1]) : (r[o][n][0] = e, r[o][n][1] = e + i, e = r[o][n][1]);
}
}, N = (r) => {
var t = r.length;
if (!(t <= 0))
for (var n = 0, a = r[0].length; n < a; ++n)
for (var f = 0, e = 0; e < t; ++e) {
var o = g(r[e][n][1]) ? r[e][n][0] : r[e][n][1];
o >= 0 ? (r[e][n][0] = f, r[e][n][1] = f + o, f = r[e][n][1]) : (r[e][n][0] = 0, r[e][n][1] = 0);
}
}, s = {
sign: A,
// @ts-expect-error definitelytyped types are incorrect
expand: D,
// @ts-expect-error definitelytyped types are incorrect
none: E,
// @ts-expect-error definitelytyped types are incorrect
silhouette: S,
// @ts-expect-error definitelytyped types are incorrect
wiggle: M,
positive: N
}, H = (r, t, n) => {
var a = s[n], f = P().keys(t).value((e, o) => +I(e, o, 0)).order(w).offset(a);
return f(r);
}, B = (r) => {
var t = r.flat(2).filter(p);
return [Math.min(...t), Math.max(...t)];
}, F = (r) => [r[0] === 1 / 0 ? 0 : r[0], r[1] === -1 / 0 ? 0 : r[1]], J = (r, t, n) => {
if (r != null)
return F(Object.keys(r).reduce((a, f) => {
var e = r[f], {
stackedData: o
} = e, i = o.reduce((v, c) => {
var m = B(c.slice(t, n + 1));
return [Math.min(v[0], m[0]), Math.max(v[1], m[1])];
}, [1 / 0, -1 / 0]);
return [Math.min(i[0], a[0]), Math.max(i[1], a[1])];
}, [1 / 0, -1 / 0]));
}, Q = /^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/, Y = /^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/, Z = (r, t, n) => {
if (r && r.scale && r.scale.bandwidth) {
var a = r.scale.bandwidth();
return a;
}
if (r && t && t.length >= 2) {
for (var f = y(t, (m) => m.coordinate), e = 1 / 0, o = 1, i = f.length; o < i; o++) {
var v = f[o], c = f[o - 1];
e = Math.min((v.coordinate || 0) - (c.coordinate || 0), e);
}
return e === 1 / 0 ? 0 : e;
}
return 0;
};
function T(r) {
var {
tooltipEntrySettings: t,
dataKey: n,
payload: a,
value: f,
name: e
} = r;
return u(u({}, t), {}, {
dataKey: n,
payload: a,
value: f,
name: e
});
}
export {
Y as MAX_VALUE_REG,
Q as MIN_VALUE_REG,
X as appendOffsetOfLegend,
z as checkDomainOfScale,
Z as getBandSizeOfAxis,
J as getDomainOfStackGroups,
H as getStackedData,
T as getTooltipEntry,
I as getValueByDataKey,
q as isCategoricalAxis,
N as offsetPositive,
A as offsetSign
};