laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
126 lines (125 loc) • 4.38 kB
JavaScript
"use client";
import * as s from "react";
import { useRef as j, useState as k, useEffect as T } from "react";
import { clsx as U } from "../../../clsx/dist/clsx.js";
import { filterProps as P } from "../util/ReactUtils.js";
import { resolveDefaultProps as W } from "../util/resolveDefaultProps.js";
import { Animate as B } from "../animation/Animate.js";
function L() {
return L = Object.assign ? Object.assign.bind() : function(o) {
for (var c = 1; c < arguments.length; c++) {
var t = arguments[c];
for (var a in t) ({}).hasOwnProperty.call(t, a) && (o[a] = t[a]);
}
return o;
}, L.apply(null, arguments);
}
var D = (o, c, t, a, p) => {
var v = Math.min(Math.abs(t) / 2, Math.abs(a) / 2), f = a >= 0 ? 1 : -1, e = t >= 0 ? 1 : -1, m = a >= 0 && t >= 0 || a < 0 && t < 0 ? 1 : 0, l;
if (v > 0 && p instanceof Array) {
for (var n = [0, 0, 0, 0], i = 0, A = 4; i < A; i++)
n[i] = p[i] > v ? v : p[i];
l = "M".concat(o, ",").concat(c + f * n[0]), n[0] > 0 && (l += "A ".concat(n[0], ",").concat(n[0], ",0,0,").concat(m, ",").concat(o + e * n[0], ",").concat(c)), l += "L ".concat(o + t - e * n[1], ",").concat(c), n[1] > 0 && (l += "A ".concat(n[1], ",").concat(n[1], ",0,0,").concat(m, `,
`).concat(o + t, ",").concat(c + f * n[1])), l += "L ".concat(o + t, ",").concat(c + a - f * n[2]), n[2] > 0 && (l += "A ".concat(n[2], ",").concat(n[2], ",0,0,").concat(m, `,
`).concat(o + t - e * n[2], ",").concat(c + a)), l += "L ".concat(o + e * n[3], ",").concat(c + a), n[3] > 0 && (l += "A ".concat(n[3], ",").concat(n[3], ",0,0,").concat(m, `,
`).concat(o, ",").concat(c + a - f * n[3])), l += "Z";
} else if (v > 0 && p === +p && p > 0) {
var r = Math.min(v, p);
l = "M ".concat(o, ",").concat(c + f * r, `
A `).concat(r, ",").concat(r, ",0,0,").concat(m, ",").concat(o + e * r, ",").concat(c, `
L `).concat(o + t - e * r, ",").concat(c, `
A `).concat(r, ",").concat(r, ",0,0,").concat(m, ",").concat(o + t, ",").concat(c + f * r, `
L `).concat(o + t, ",").concat(c + a - f * r, `
A `).concat(r, ",").concat(r, ",0,0,").concat(m, ",").concat(o + t - e * r, ",").concat(c + a, `
L `).concat(o + e * r, ",").concat(c + a, `
A `).concat(r, ",").concat(r, ",0,0,").concat(m, ",").concat(o, ",").concat(c + a - f * r, " Z");
} else
l = "M ".concat(o, ",").concat(c, " h ").concat(t, " v ").concat(a, " h ").concat(-t, " Z");
return l;
}, C = {
x: 0,
y: 0,
width: 0,
height: 0,
// The radius of border
// The radius of four corners when radius is a number
// The radius of left-top, right-top, right-bottom, left-bottom when radius is an array
radius: 0,
isAnimationActive: !1,
isUpdateAnimationActive: !1,
animationBegin: 0,
animationDuration: 1500,
animationEasing: "ease"
}, F = (o) => {
var c = W(o, C), t = j(null), [a, p] = k(-1);
T(() => {
if (t.current && t.current.getTotalLength)
try {
var g = t.current.getTotalLength();
g && p(g);
} catch {
}
}, []);
var {
x: v,
y: f,
width: e,
height: m,
radius: l,
className: n
} = c, {
animationEasing: i,
animationDuration: A,
animationBegin: r,
isAnimationActive: N,
isUpdateAnimationActive: E
} = c;
if (v !== +v || f !== +f || e !== +e || m !== +m || e === 0 || m === 0)
return null;
var b = U("recharts-rectangle", n);
return E ? /* @__PURE__ */ s.createElement(B, {
canBegin: a > 0,
from: {
width: e,
height: m,
x: v,
y: f
},
to: {
width: e,
height: m,
x: v,
y: f
},
duration: A,
animationEasing: i,
isActive: E
}, (g) => {
var {
width: M,
height: O,
x: S,
y: Z
} = g;
return /* @__PURE__ */ s.createElement(B, {
canBegin: a > 0,
from: "0px ".concat(a === -1 ? 1 : a, "px"),
to: "".concat(a, "px 0px"),
attributeName: "strokeDasharray",
begin: r,
duration: A,
isActive: N,
easing: i
}, /* @__PURE__ */ s.createElement("path", L({}, P(c, !0), {
className: b,
d: D(S, Z, M, O, l),
ref: t
})));
}) : /* @__PURE__ */ s.createElement("path", L({}, P(c, !0), {
className: b,
d: D(v, f, e, m, l)
}));
};
export {
F as Rectangle
};