"use client"; import { Area, AreaChart, CartesianGrid, ReferenceArea, XAxis, YAxis, } from "recharts"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, } from "@/components/ui/chart"; import { cn } from "@/lib/utils"; interface ChartCard27Props { title?: string; description?: string; className?: string; } const percentFormatter = new Intl.NumberFormat("fa-IR", { maximumFractionDigits: 0, }); const formatPercent = (value: number) => `${percentFormatter.format(value)}٪`; const timeLabel = (hour: number) => { const formattedHour = hour.toLocaleString("fa-IR", { minimumIntegerDigits: 2, useGrouping: false, }); const formattedMinute = (0).toLocaleString("fa-IR", { minimumIntegerDigits: 2, useGrouping: false, }); return `${formattedHour}:${formattedMinute}`; }; const chartData = [ { time: timeLabel(0), value: 45 }, { time: timeLabel(4), value: 52 }, { time: timeLabel(8), value: 78 }, { time: timeLabel(12), value: 95 }, { time: timeLabel(16), value: 88 }, { time: timeLabel(20), value: 72 }, { time: timeLabel(24), value: 58 }, ]; const chartConfig = { value: { label: "مصرف CPU", color: "var(--chart-1)", }, } satisfies ChartConfig; const ChartCard27 = ({ title = "بار سامانه", description = "مصرف CPU با محدوده‌های آستانه", className, }: ChartCard27Props) => { return ( {title} {description} formatPercent(Number(value))} /> formatPercent(Number(value))} /> } cursor={{ stroke: "var(--border)", strokeDasharray: "4 4" }} />
عادی ({formatPercent(0)}–{formatPercent(60)})
هشدار ({formatPercent(60)}–{formatPercent(80)})
بحرانی ({formatPercent(80)}–{formatPercent(100)})
); }; export { ChartCard27 };