73
bootstrap/ssr/assets/lazy-chart-9300132f.mjs
Executable file
73
bootstrap/ssr/assets/lazy-chart-9300132f.mjs
Executable file
@@ -0,0 +1,73 @@
|
||||
import { jsx } from "react/jsx-runtime";
|
||||
import { Chart, LineElement, PointElement, BarElement, ArcElement, LineController, BarController, PolarAreaController, RadialLinearScale, CategoryScale, LinearScale, Tooltip, Filler, Legend } from "chart.js";
|
||||
import { useRef, useEffect } from "react";
|
||||
import deepMerge from "deepmerge";
|
||||
Chart.register([
|
||||
LineElement,
|
||||
PointElement,
|
||||
BarElement,
|
||||
ArcElement,
|
||||
LineController,
|
||||
BarController,
|
||||
PolarAreaController,
|
||||
RadialLinearScale,
|
||||
CategoryScale,
|
||||
LinearScale,
|
||||
Tooltip,
|
||||
Filler,
|
||||
Legend
|
||||
]);
|
||||
function LazyChart({
|
||||
type,
|
||||
data,
|
||||
options,
|
||||
hideLegend
|
||||
}) {
|
||||
const ref = useRef(null);
|
||||
const chartRef = useRef();
|
||||
useEffect(() => {
|
||||
if (ref.current) {
|
||||
chartRef.current = new Chart(ref.current, {
|
||||
type,
|
||||
data,
|
||||
options: deepMerge(
|
||||
{
|
||||
maintainAspectRatio: false,
|
||||
animation: {
|
||||
duration: 250
|
||||
},
|
||||
plugins: {
|
||||
legend: {
|
||||
position: "bottom",
|
||||
display: !hideLegend
|
||||
},
|
||||
tooltip: {
|
||||
padding: 16,
|
||||
cornerRadius: 4,
|
||||
callbacks: {
|
||||
title: ([item]) => {
|
||||
const data2 = item.raw;
|
||||
return data2.tooltipTitle ?? item.label;
|
||||
},
|
||||
label: (item) => {
|
||||
return ` ${item.dataset.label}: ${item.formattedValue}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
options
|
||||
)
|
||||
});
|
||||
}
|
||||
return () => {
|
||||
var _a;
|
||||
(_a = chartRef.current) == null ? void 0 : _a.destroy();
|
||||
};
|
||||
}, [data, type, options, hideLegend]);
|
||||
return /* @__PURE__ */ jsx("canvas", { ref });
|
||||
}
|
||||
export {
|
||||
LazyChart as default
|
||||
};
|
||||
//# sourceMappingURL=lazy-chart-9300132f.mjs.map
|
||||
Reference in New Issue
Block a user