您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
UMD build of @mantine/charts
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/518747/1490441/%40mantine%E1%9C%B5charts-umd.js
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('@mantine/core'), require('react'), require('recharts'), require('@mantine/hooks')) : typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', '@mantine/core', 'react', 'recharts', '@mantine/hooks'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MantineCharts = {}, global.ReactJSXRuntime, global.MantineCore, global.React, global.Recharts, global.MantineHooks)); })(this, (function (exports, jsxRuntime, core, react, recharts, hooks) { 'use strict'; function getSeriesLabels(series) { if (!series) { return {}; } return series.reduce((acc, item) => { const matchFound = item.name.search(/\./); if (matchFound >= 0) { const key = item.name.substring(matchFound + 1); acc[key] = item.label; return acc; } acc[item.name] = item.label; return acc; }, {}); } var classes = { "tooltip": "m_e4d36c9b", "tooltipLabel": "m_7f4bcb19", "tooltipBody": "m_3de554dd", "tooltipItemColor": "m_b30369b5", "tooltipItem": "m_3de8964e", "tooltipItemBody": "m_50186d10", "tooltipItemName": "m_501dadf9", "tooltipItemData": "m_50192318" }; function updateChartTooltipPayload(payload) { return payload.map((item) => { if (!item.payload || item.payload[item.name]) { return item; } const matchFound = item.name.search(/\./); if (matchFound >= 0) { const newDataKey = item.name.substring(0, matchFound); const nestedPayload = { ...item.payload[newDataKey] }; const shallowPayload = Object.entries(item.payload).reduce((acc, current) => { const [k, v] = current; return k === newDataKey ? acc : { ...acc, [k]: v }; }, {}); return { ...item, name: item.name.substring(matchFound + 1), payload: { ...shallowPayload, ...nestedPayload } }; } return item; }); } function getFilteredChartTooltipPayload(payload, segmentId) { const duplicatesFilter = updateChartTooltipPayload( payload.filter((item) => item.fill !== "none" || !item.color) ); if (!segmentId) { return duplicatesFilter; } return duplicatesFilter.filter((item) => item.name === segmentId); } function getData(item, type) { if (type === "radial" || type === "scatter") { if (Array.isArray(item.value)) { return item.value[1] - item.value[0]; } return item.value; } if (Array.isArray(item.payload[item.dataKey])) { return item.payload[item.dataKey][1] - item.payload[item.dataKey][0]; } return item.payload[item.name]; } var defaultProps = { type: "area", showColor: true }; var ChartTooltip = core.factory((_props, ref) => { const props = core.useProps("ChartTooltip", defaultProps, _props); const { classNames, className, style, styles, unstyled, vars, payload, label, unit, type, segmentId, mod, series, valueFormatter, showColor, ...others } = props; const theme = core.useMantineTheme(); const getStyles = core.useStyles({ name: "ChartTooltip", classes, props, className, style, classNames, styles, unstyled }); if (!payload) { return null; } const filteredPayload = getFilteredChartTooltipPayload(payload, segmentId); const scatterLabel = type === "scatter" ? payload[0]?.payload?.name : null; const labels = getSeriesLabels(series); const _label = label || scatterLabel; const items = filteredPayload.map((item) => jsxRuntime.jsxs("div", { "data-type": type, ...getStyles("tooltipItem"), children: [ jsxRuntime.jsxs("div", { ...getStyles("tooltipItemBody"), children: [ showColor && jsxRuntime.jsx("svg", { ...getStyles("tooltipItemColor"), children: jsxRuntime.jsx( "circle", { r: 6, fill: core.getThemeColor(item.color, theme), width: 12, height: 12, cx: 6, cy: 6 } ) }), jsxRuntime.jsx("div", { ...getStyles("tooltipItemName"), children: labels[item.name] || item.name }) ] }), jsxRuntime.jsxs("div", { ...getStyles("tooltipItemData"), children: [ typeof valueFormatter === "function" ? valueFormatter(getData(item, type)) : getData(item, type), unit || item.unit ] }) ] }, item?.key ?? item.name)); return jsxRuntime.jsxs(core.Box, { ...getStyles("tooltip"), mod: [{ type }, mod], ref, ...others, children: [ _label && jsxRuntime.jsx("div", { ...getStyles("tooltipLabel"), children: _label }), jsxRuntime.jsx("div", { ...getStyles("tooltipBody"), children: items }) ] }); }); ChartTooltip.displayName = "@mantine/charts/ChartTooltip"; var classes2 = { "legend": "m_847eaf", "legendItem": "m_17da7e62", "legendItemColor": "m_6e236e21", "legendItemName": "m_8ff56c0d" }; function updateChartLegendPayload(payload) { return payload.map((item) => { const newDataKey = item.dataKey?.split(".").pop(); return { ...item, dataKey: newDataKey, payload: { ...item.payload, name: newDataKey, dataKey: newDataKey } }; }); } function getFilteredChartLegendPayload(payload) { return updateChartLegendPayload(payload.filter((item) => item.color !== "none")); } var defaultProps2 = {}; var ChartLegend = core.factory((_props, ref) => { const props = core.useProps("ChartLegend", defaultProps2, _props); const { classNames, className, style, styles, unstyled, vars, payload, onHighlight, legendPosition, mod, series, showColor, centered, ...others } = props; const getStyles = core.useStyles({ name: "ChartLegend", classes: classes2, props, className, style, classNames, styles, unstyled }); if (!payload) { return null; } const filteredPayload = getFilteredChartLegendPayload(payload); const labels = getSeriesLabels(series); const items = filteredPayload.map((item, index) => jsxRuntime.jsxs( "div", { ...getStyles("legendItem"), onMouseEnter: () => onHighlight(item.dataKey), onMouseLeave: () => onHighlight(null), "data-without-color": showColor === false || void 0, children: [ jsxRuntime.jsx( core.ColorSwatch, { color: item.color, size: 12, ...getStyles("legendItemColor"), withShadow: false } ), jsxRuntime.jsx("p", { ...getStyles("legendItemName"), children: labels[item.dataKey] || item.dataKey }) ] }, index )); return jsxRuntime.jsx( core.Box, { ref, mod: [{ position: legendPosition, centered }, mod], ...getStyles("legend"), ...others, children: items } ); }); ChartLegend.displayName = "@mantine/charts/ChartLegend"; function PointLabel({ x, y, value }) { return jsxRuntime.jsx("g", { transform: `translate(${x},${y})`, children: jsxRuntime.jsx( "text", { x: 0, y: 0, dy: -8, dx: -10, textAnchor: "top", fill: "var(--chart-text-color, var(--mantine-color-dimmed))", fontSize: 8, children: value } ) }); } function AreaGradient({ color, id, withGradient, fillOpacity }) { return jsxRuntime.jsx(jsxRuntime.Fragment, { children: withGradient ? jsxRuntime.jsxs("linearGradient", { id, x1: "0", y1: "0", x2: "0", y2: "1", children: [ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: fillOpacity }), jsxRuntime.jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0.01 }) ] }) : jsxRuntime.jsx("linearGradient", { id, x1: "0", y1: "0", x2: "0", y2: "1", children: jsxRuntime.jsx("stop", { stopColor: color, stopOpacity: fillOpacity ?? 0.2 }) }) }); } AreaGradient.displayName = "@mantine/charts/AreaGradient"; function AreaSplit({ offset, id, colors, fillOpacity }) { const theme = core.useMantineTheme(); return jsxRuntime.jsxs("linearGradient", { id, x1: "0", y1: "0", x2: "0", y2: "1", children: [ jsxRuntime.jsx( "stop", { offset, stopColor: core.getThemeColor(colors[0], theme), stopOpacity: fillOpacity ?? 0.2 } ), jsxRuntime.jsx( "stop", { offset, stopColor: core.getThemeColor(colors[1], theme), stopOpacity: fillOpacity ?? 0.2 } ) ] }); } AreaSplit.displayName = "@mantine/charts/AreaSplit"; function getSplitOffset({ data, dataKey }) { const dataMax = Math.max(...data.map((item) => item[dataKey])); const dataMin = Math.min(...data.map((item) => item[dataKey])); if (dataMax <= 0) { return 0; } if (dataMin >= 0) { return 1; } return dataMax / (dataMax - dataMin); } function getDefaultSplitOffset({ data, series }) { if (series.length === 1) { const dataKey = series[0].name; return getSplitOffset({ data, dataKey }); } return 0.5; } var classes3 = { "root": "m_a50f3e58", "container": "m_af9188cb", "grid": "m_a50a48bc", "axis": "m_a507a517", "axisLabel": "m_2293801d", "tooltip": "m_92b296cd" }; function valueToPercent(value) { return `${(value * 100).toFixed(0)}%`; } var defaultProps3 = { withXAxis: true, withYAxis: true, withDots: true, withTooltip: true, connectNulls: true, strokeWidth: 2, tooltipAnimationDuration: 0, fillOpacity: 0.2, tickLine: "y", strokeDasharray: "5 5", curveType: "monotone", gridAxis: "x", type: "default", splitColors: ["green.7", "red.7"], orientation: "horizontal" }; var varsResolver = core.createVarsResolver((theme, { textColor, gridColor }) => ({ root: { "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0, "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0 } })); var AreaChart = core.factory((_props, ref) => { const props = core.useProps("AreaChart", defaultProps3, _props); const { classNames, className, style, styles, unstyled, vars, data, series, withGradient, dataKey, withXAxis, withYAxis, curveType, gridProps, withDots, tickLine, strokeDasharray, gridAxis, unit, yAxisProps, xAxisProps, dotProps, activeDotProps, strokeWidth, tooltipAnimationDuration, type, legendProps, tooltipProps, withLegend, withTooltip, areaChartProps, fillOpacity, splitColors, splitOffset, connectNulls, onMouseLeave, orientation, referenceLines, dir, valueFormatter, children, areaProps, xAxisLabel, yAxisLabel, withRightYAxis, rightYAxisLabel, rightYAxisProps, withPointLabels, ...others } = props; const theme = core.useMantineTheme(); const baseId = react.useId(); const splitId = `${baseId}-split`; const withXTickLine = gridAxis !== "none" && (tickLine === "x" || tickLine === "xy"); const withYTickLine = gridAxis !== "none" && (tickLine === "y" || tickLine === "xy"); const isAnimationActive = (tooltipAnimationDuration || 0) > 0; const _withGradient = typeof withGradient === "boolean" ? withGradient : type === "default"; const stacked = type === "stacked" || type === "percent"; const [highlightedArea, setHighlightedArea] = react.useState(null); const shouldHighlight = highlightedArea !== null; const handleMouseLeave = (event) => { setHighlightedArea(null); onMouseLeave?.(event); }; const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const getStyles = core.useStyles({ name: "AreaChart", classes: classes3, props, className, style, classNames, styles, unstyled, vars, varsResolver }); const dotsAreas = series.map((item) => { const color = core.getThemeColor(item.color, theme); const dimmed = shouldHighlight && highlightedArea !== item.name; return react.createElement( recharts.Area, { ...getStyles("area"), activeDot: { fill: theme.white, stroke: color, strokeWidth: 2, r: 4, ...activeDotProps }, dot: { fill: color, fillOpacity: dimmed ? 0 : 1, strokeWidth: 2, r: 4, ...dotProps }, key: item.name, name: item.name, type: curveType, dataKey: item.name, fill: "none", strokeWidth, stroke: "none", isAnimationActive: false, connectNulls, stackId: stacked ? "stack-dots" : void 0, yAxisId: item.yAxisId || "left", ...typeof areaProps === "function" ? areaProps(item) : areaProps } ); }); const areas = series.map((item) => { const id = `${baseId}-${item.color.replace(/[^a-zA-Z0-9]/g, "")}`; const color = core.getThemeColor(item.color, theme); const dimmed = shouldHighlight && highlightedArea !== item.name; return jsxRuntime.jsxs(react.Fragment, { children: [ jsxRuntime.jsx("defs", { children: jsxRuntime.jsx( AreaGradient, { color, withGradient: _withGradient, id, fillOpacity } ) }), jsxRuntime.jsx( recharts.Area, { ...getStyles("area"), activeDot: false, dot: false, name: item.name, type: curveType, dataKey: item.name, fill: type === "split" ? `url(#${splitId})` : `url(#${id})`, strokeWidth, stroke: color, isAnimationActive: false, connectNulls, stackId: stacked ? "stack" : void 0, fillOpacity: dimmed ? 0 : 1, strokeOpacity: dimmed ? 0.5 : 1, strokeDasharray: item.strokeDasharray, yAxisId: item.yAxisId || "left", label: withPointLabels ? jsxRuntime.jsx(PointLabel, {}) : void 0, ...typeof areaProps === "function" ? areaProps(item) : areaProps } ) ] }, item.name); }); const referenceLinesItems = referenceLines?.map((line, index) => { const color = core.getThemeColor(line.color, theme); return jsxRuntime.jsx( recharts.ReferenceLine, { stroke: line.color ? color : "var(--chart-grid-color)", strokeWidth: 1, yAxisId: line.yAxisId || "left", ...line, label: { value: line.label, fill: line.color ? color : "currentColor", fontSize: 12, position: line.labelPosition ?? "insideBottomLeft" }, ...getStyles("referenceLine") }, index ); }); const tickFormatter = type === "percent" ? valueToPercent : valueFormatter; const sharedYAxisProps = { axisLine: false, ...orientation === "vertical" ? { dataKey, type: "category" } : { type: "number" }, tickLine: withYTickLine ? { stroke: "currentColor" } : false, allowDecimals: true, unit, tickFormatter: orientation === "vertical" ? void 0 : tickFormatter, ...getStyles("axis") }; return jsxRuntime.jsx( core.Box, { ref, ...getStyles("root"), onMouseLeave: handleMouseLeave, dir: dir || "ltr", ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { ...getStyles("container"), children: jsxRuntime.jsxs( recharts.AreaChart, { data, stackOffset: type === "percent" ? "expand" : void 0, layout: orientation, margin: { bottom: xAxisLabel ? 30 : void 0, left: yAxisLabel ? 10 : void 0, right: yAxisLabel ? 5 : void 0 }, ...areaChartProps, children: [ referenceLinesItems, withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "top", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload, onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "top", classNames: resolvedClassNames, styles: resolvedStyles, series } ), ...legendProps } ), jsxRuntime.jsx( recharts.CartesianGrid, { strokeDasharray, vertical: gridAxis === "y" || gridAxis === "xy", horizontal: gridAxis === "x" || gridAxis === "xy", ...getStyles("grid"), ...gridProps } ), jsxRuntime.jsxs( recharts.XAxis, { hide: !withXAxis, ...orientation === "vertical" ? { type: "number" } : { dataKey }, tick: { transform: "translate(0, 10)", fontSize: 12, fill: "currentColor" }, stroke: "", interval: "preserveStartEnd", tickLine: withXTickLine ? { stroke: "currentColor" } : false, minTickGap: 5, tickFormatter: orientation === "vertical" ? tickFormatter : void 0, ...getStyles("axis"), ...xAxisProps, children: [ xAxisLabel && jsxRuntime.jsx(recharts.Label, { position: "insideBottom", offset: -20, fontSize: 12, ...getStyles("axisLabel"), children: xAxisLabel }), xAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "left", orientation: "left", tick: { transform: "translate(-10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withYAxis, ...sharedYAxisProps, ...yAxisProps, children: [ yAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideLeft", angle: -90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: yAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "right", orientation: "right", tick: { transform: "translate(10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withRightYAxis, ...sharedYAxisProps, ...rightYAxisProps, children: [ rightYAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideRight", angle: 90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: rightYAxisLabel } ), yAxisProps?.children ] } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive, position: orientation === "vertical" ? {} : { y: 0 }, cursor: { stroke: "var(--chart-grid-color)", strokeWidth: 1, strokeDasharray }, content: ({ label, payload }) => jsxRuntime.jsx( ChartTooltip, { label, payload, unit, classNames: resolvedClassNames, styles: resolvedStyles, series, valueFormatter } ), ...tooltipProps } ), type === "split" && jsxRuntime.jsx("defs", { children: jsxRuntime.jsx( AreaSplit, { colors: splitColors, id: splitId, offset: splitOffset ?? getDefaultSplitOffset({ data, series }), fillOpacity } ) }), areas, withDots && dotsAreas, children ] } ) }) } ); }); AreaChart.classes = classes3; AreaChart.displayName = "@mantine/charts/AreaChart"; function BarLabel({ value, valueFormatter, textBreakAll, parentViewBox, orientation, viewBox, width, height, ...others }) { return jsxRuntime.jsx( "text", { ...others, dy: orientation === "vertical" ? height / 2 + 4 : -10, dx: orientation === "vertical" ? width - 30 : 0, fontSize: 12, fill: "var(--chart-bar-label-color, var(--mantine-color-dimmed))", children: typeof valueFormatter === "function" ? valueFormatter(value) : value } ); } function valueToPercent2(value) { return `${(value * 100).toFixed(0)}%`; } var defaultProps4 = { withXAxis: true, withYAxis: true, withTooltip: true, tooltipAnimationDuration: 0, fillOpacity: 1, tickLine: "y", strokeDasharray: "5 5", gridAxis: "x", type: "default" }; var varsResolver2 = core.createVarsResolver( (theme, { textColor, gridColor, cursorFill, barLabelColor }) => ({ root: { "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0, "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0, "--chart-cursor-fill": cursorFill ? core.getThemeColor(cursorFill, theme) : void 0, "--chart-bar-label-color": barLabelColor ? core.getThemeColor(barLabelColor, theme) : void 0 } }) ); function calculateCumulativeTotal(waterfallData, dataKey) { let start = 0; let end = 0; return waterfallData.map((item) => { if (item.standalone) { for (const prop in item) { if (typeof item[prop] === "number" && prop !== dataKey) { item[prop] = [0, item[prop]]; } } } else { for (const prop in item) { if (typeof item[prop] === "number" && prop !== dataKey) { end += item[prop]; item[prop] = [start, end]; start = end; } } } return item; }); } function getBarFill(barProps, series) { if (typeof barProps === "function") { return barProps(series).fill; } return barProps?.fill; } var BarChart = core.factory((_props, ref) => { const props = core.useProps("BarChart", defaultProps4, _props); const { classNames, className, style, styles, unstyled, vars, data, withLegend, legendProps, series, onMouseLeave, dataKey, withTooltip, withXAxis, withYAxis, gridAxis, tickLine, xAxisProps, yAxisProps, unit, tooltipAnimationDuration, strokeDasharray, gridProps, tooltipProps, referenceLines, fillOpacity, barChartProps, type, orientation, dir, valueFormatter, children, barProps, xAxisLabel, yAxisLabel, withBarValueLabel, withRightYAxis, rightYAxisLabel, rightYAxisProps, minBarSize, maxBarWidth, mod, ...others } = props; const theme = core.useMantineTheme(); const withXTickLine = gridAxis !== "none" && (tickLine === "x" || tickLine === "xy"); const withYTickLine = gridAxis !== "none" && (tickLine === "y" || tickLine === "xy"); const [highlightedArea, setHighlightedArea] = react.useState(null); const shouldHighlight = highlightedArea !== null; const stacked = type === "stacked" || type === "percent"; const handleMouseLeave = (event) => { setHighlightedArea(null); onMouseLeave?.(event); }; const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const inputData = type === "waterfall" ? calculateCumulativeTotal(data, dataKey) : data; const getStyles = core.useStyles({ name: "BarChart", classes: classes3, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver2 }); const bars = series.map((item) => { const color = core.getThemeColor(item.color, theme); const dimmed = shouldHighlight && highlightedArea !== item.name; return react.createElement( recharts.Bar, { ...getStyles("bar"), key: item.name, name: item.name, dataKey: item.name, fill: color, stroke: color, isAnimationActive: false, fillOpacity: dimmed ? 0.1 : fillOpacity, strokeOpacity: dimmed ? 0.2 : 0, stackId: stacked ? "stack" : item.stackId || void 0, label: withBarValueLabel ? jsxRuntime.jsx(BarLabel, { valueFormatter, orientation }) : void 0, yAxisId: item.yAxisId || "left", minPointSize: minBarSize, ...typeof barProps === "function" ? barProps(item) : barProps }, inputData.map((entry, index) => jsxRuntime.jsx( recharts.Cell, { fill: entry.color ? core.getThemeColor(entry.color, theme) : getBarFill(barProps, item) || color }, `cell-${index}` )) ); }); const referenceLinesItems = referenceLines?.map((line, index) => { const color = core.getThemeColor(line.color, theme); return jsxRuntime.jsx( recharts.ReferenceLine, { stroke: line.color ? color : "var(--chart-grid-color)", strokeWidth: 1, yAxisId: line.yAxisId || "left", ...line, label: { value: line.label, fill: line.color ? color : "currentColor", fontSize: 12, position: line.labelPosition ?? "insideBottomLeft" }, ...getStyles("referenceLine") }, index ); }); const tickFormatter = type === "percent" ? valueToPercent2 : valueFormatter; const sharedYAxisProps = { axisLine: false, ...orientation === "vertical" ? { dataKey, type: "category" } : { type: "number" }, tickLine: withYTickLine ? { stroke: "currentColor" } : false, allowDecimals: true, unit, tickFormatter: orientation === "vertical" ? void 0 : tickFormatter, ...getStyles("axis") }; return jsxRuntime.jsx( core.Box, { ref, ...getStyles("root"), onMouseLeave: handleMouseLeave, dir: dir || "ltr", mod: [{ orientation }, mod], ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { ...getStyles("container"), children: jsxRuntime.jsxs( recharts.BarChart, { data: inputData, stackOffset: type === "percent" ? "expand" : void 0, layout: orientation, maxBarSize: maxBarWidth, margin: { bottom: xAxisLabel ? 30 : void 0, left: yAxisLabel ? 10 : void 0, right: yAxisLabel ? 5 : void 0 }, ...barChartProps, children: [ withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "top", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload, onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "top", classNames: resolvedClassNames, styles: resolvedStyles, series, showColor: type !== "waterfall" } ), ...legendProps } ), jsxRuntime.jsxs( recharts.XAxis, { hide: !withXAxis, ...orientation === "vertical" ? { type: "number" } : { dataKey }, tick: { transform: "translate(0, 10)", fontSize: 12, fill: "currentColor" }, stroke: "", interval: "preserveStartEnd", tickLine: withXTickLine ? { stroke: "currentColor" } : false, minTickGap: 5, tickFormatter: orientation === "vertical" ? tickFormatter : void 0, ...getStyles("axis"), ...xAxisProps, children: [ xAxisLabel && jsxRuntime.jsx(recharts.Label, { position: "insideBottom", offset: -20, fontSize: 12, ...getStyles("axisLabel"), children: xAxisLabel }), xAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "left", orientation: "left", tick: { transform: "translate(-10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withYAxis, ...sharedYAxisProps, ...yAxisProps, children: [ yAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideLeft", angle: -90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: yAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "right", orientation: "right", tick: { transform: "translate(10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withRightYAxis, ...sharedYAxisProps, ...rightYAxisProps, children: [ rightYAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideRight", angle: 90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: rightYAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsx( recharts.CartesianGrid, { strokeDasharray, vertical: gridAxis === "y" || gridAxis === "xy", horizontal: gridAxis === "x" || gridAxis === "xy", ...getStyles("grid"), ...gridProps } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: tooltipAnimationDuration !== 0, position: orientation === "vertical" ? {} : { y: 0 }, cursor: { stroke: "var(--chart-grid-color)", strokeWidth: 1, strokeDasharray, fill: "var(--chart-cursor-fill)" }, content: ({ label, payload }) => jsxRuntime.jsx( ChartTooltip, { label, payload, type: type === "waterfall" ? "scatter" : void 0, unit, classNames: resolvedClassNames, styles: resolvedStyles, series, valueFormatter } ), ...tooltipProps } ), bars, referenceLinesItems, children ] } ) }) } ); }); BarChart.displayName = "@mantine/charts/BarChart"; BarChart.classes = classes3; var defaultProps5 = { withXAxis: true, withYAxis: true, withTooltip: true, tooltipAnimationDuration: 0, fillOpacity: 1, tickLine: "y", strokeDasharray: "5 5", gridAxis: "x", withDots: true, connectNulls: true, strokeWidth: 2, curveType: "monotone", gradientStops: [ { offset: 0, color: "red" }, { offset: 100, color: "blue" } ] }; var varsResolver3 = core.createVarsResolver((theme, { textColor, gridColor }) => ({ root: { "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0, "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0 } })); var LineChart = core.factory((_props, ref) => { const props = core.useProps("LineChart", defaultProps5, _props); const { classNames, className, style, styles, unstyled, vars, data, withLegend, legendProps, series, onMouseLeave, dataKey, withTooltip, withXAxis, withYAxis, gridAxis, tickLine, xAxisProps, yAxisProps, unit, tooltipAnimationDuration, strokeDasharray, gridProps, tooltipProps, referenceLines, withDots, dotProps, activeDotProps, strokeWidth, lineChartProps, connectNulls, fillOpacity, curveType, orientation, dir, valueFormatter, children, lineProps, xAxisLabel, yAxisLabel, type, gradientStops, withRightYAxis, rightYAxisLabel, rightYAxisProps, withPointLabels, ...others } = props; const theme = core.useMantineTheme(); const withXTickLine = gridAxis !== "none" && (tickLine === "x" || tickLine === "xy"); const withYTickLine = gridAxis !== "none" && (tickLine === "y" || tickLine === "xy"); const [highlightedArea, setHighlightedArea] = react.useState(null); const shouldHighlight = highlightedArea !== null; const handleMouseLeave = (event) => { setHighlightedArea(null); onMouseLeave?.(event); }; const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const getStyles = core.useStyles({ name: "LineChart", classes: classes3, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver3 }); const id = hooks.useId(); const gradientId = `line-chart-gradient-${id}`; const stops = gradientStops?.map((stop) => jsxRuntime.jsx( "stop", { offset: `${stop.offset}%`, stopColor: core.getThemeColor(stop.color, theme) }, stop.color )); const lines = series.map((item) => { const color = core.getThemeColor(item.color, theme); const dimmed = shouldHighlight && highlightedArea !== item.name; return react.createElement( recharts.Line, { ...getStyles("line"), key: item.name, name: item.name, dataKey: item.name, dot: withDots ? { fillOpacity: dimmed ? 0 : 1, strokeOpacity: dimmed ? 0 : 1, strokeWidth: 1, fill: type === "gradient" ? "var(--mantine-color-gray-7)" : color, stroke: type === "gradient" ? "white" : color, ...dotProps } : false, activeDot: withDots ? { fill: type === "gradient" ? "var(--mantine-color-gray-7)" : color, stroke: type === "gradient" ? "white" : color, ...activeDotProps } : false, fill: color, stroke: type === "gradient" ? `url(#${gradientId})` : color, strokeWidth, isAnimationActive: false, fillOpacity: dimmed ? 0 : fillOpacity, strokeOpacity: dimmed ? 0.5 : fillOpacity, connectNulls, type: curveType, strokeDasharray: item.strokeDasharray, yAxisId: item.yAxisId || "left", label: withPointLabels ? jsxRuntime.jsx(PointLabel, {}) : void 0, ...typeof lineProps === "function" ? lineProps(item) : lineProps } ); }); const referenceLinesItems = referenceLines?.map((line, index) => { const color = core.getThemeColor(line.color, theme); return jsxRuntime.jsx( recharts.ReferenceLine, { stroke: line.color ? color : "var(--chart-grid-color)", strokeWidth: 1, yAxisId: line.yAxisId || "left", ...line, label: { value: line.label, fill: line.color ? color : "currentColor", fontSize: 12, position: line.labelPosition ?? "insideBottomLeft" }, ...getStyles("referenceLine") }, index ); }); const sharedYAxisProps = { axisLine: false, ...orientation === "vertical" ? { dataKey, type: "category" } : { type: "number" }, tickLine: withYTickLine ? { stroke: "currentColor" } : false, allowDecimals: true, unit, tickFormatter: orientation === "vertical" ? void 0 : valueFormatter, ...getStyles("axis") }; return jsxRuntime.jsx( core.Box, { ref, ...getStyles("root"), onMouseLeave: handleMouseLeave, dir: dir || "ltr", ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { ...getStyles("container"), children: jsxRuntime.jsxs( recharts.LineChart, { data, layout: orientation, margin: { bottom: xAxisLabel ? 30 : void 0, left: yAxisLabel ? 10 : void 0, right: yAxisLabel ? 5 : void 0 }, ...lineChartProps, children: [ type === "gradient" && jsxRuntime.jsx("defs", { children: jsxRuntime.jsx("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: stops }) }), withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "top", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload, onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "top", classNames: resolvedClassNames, styles: resolvedStyles, series, showColor: type !== "gradient" } ), ...legendProps } ), jsxRuntime.jsxs( recharts.XAxis, { hide: !withXAxis, ...orientation === "vertical" ? { type: "number" } : { dataKey }, tick: { transform: "translate(0, 10)", fontSize: 12, fill: "currentColor" }, stroke: "", interval: "preserveStartEnd", tickLine: withXTickLine ? { stroke: "currentColor" } : false, minTickGap: 5, tickFormatter: orientation === "vertical" ? valueFormatter : void 0, ...getStyles("axis"), ...xAxisProps, children: [ xAxisLabel && jsxRuntime.jsx(recharts.Label, { position: "insideBottom", offset: -20, fontSize: 12, ...getStyles("axisLabel"), children: xAxisLabel }), xAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "left", orientation: "left", tick: { transform: "translate(-10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withYAxis, ...sharedYAxisProps, ...yAxisProps, children: [ yAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideLeft", angle: -90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: yAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "right", orientation: "right", tick: { transform: "translate(10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withRightYAxis, ...sharedYAxisProps, ...rightYAxisProps, children: [ rightYAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideRight", angle: 90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: rightYAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsx( recharts.CartesianGrid, { strokeDasharray, vertical: gridAxis === "y" || gridAxis === "xy", horizontal: gridAxis === "x" || gridAxis === "xy", ...getStyles("grid"), ...gridProps } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: tooltipAnimationDuration !== 0, position: orientation === "vertical" ? {} : { y: 0 }, cursor: { stroke: "var(--chart-grid-color)", strokeWidth: 1, strokeDasharray }, content: ({ label, payload }) => jsxRuntime.jsx( ChartTooltip, { label, payload, unit, classNames: resolvedClassNames, styles: resolvedStyles, series, valueFormatter, showColor: type !== "gradient" } ), ...tooltipProps } ), lines, referenceLinesItems, children ] } ) }) } ); }); LineChart.displayName = "@mantine/charts/LineChart"; LineChart.classes = classes3; var classes4 = {}; var defaultProps6 = { withGradient: true, connectNulls: true, fillOpacity: 0.6, strokeWidth: 2, curveType: "linear" }; function getTrendColor(data, trendColors) { const first = data[0]; const last = data[data.length - 1]; if (first === null || last === null) { return trendColors.neutral || trendColors.positive; } if (first < last) { return trendColors.positive; } if (first > last) { return trendColors.negative; } return trendColors.neutral || trendColors.positive; } var varsResolver4 = core.createVarsResolver( (theme, { color, data, trendColors }) => ({ root: { "--chart-color": trendColors ? core.getThemeColor(getTrendColor(data, trendColors), theme) : color ? core.getThemeColor(color, theme) : void 0 } }) ); var Sparkline = core.factory((_props, ref) => { const props = core.useProps("Sparkline", defaultProps6, _props); const { classNames, className, style, styles, unstyled, vars, data, withGradient, fillOpacity, curveType, strokeWidth, trendColors, connectNulls, areaProps, ...others } = props; const getStyles = core.useStyles({ name: "Sparkline", classes: classes4, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver4 }); const id = react.useId(); const mappedData = react.useMemo(() => data.map((value, index) => ({ value, index })), [data]); return jsxRuntime.jsx(core.Box, { ref, ...getStyles("root"), ...others, dir: "ltr", children: jsxRuntime.jsx(recharts.ResponsiveContainer, { children: jsxRuntime.jsxs(recharts.AreaChart, { data: mappedData, children: [ jsxRuntime.jsx( recharts.Area, { dataKey: "value", type: curveType, fill: `url(#${id})`, stroke: "var(--chart-color, var(--mantine-color-blue-filled))", isAnimationActive: false, connectNulls, strokeWidth, fillOpacity: 1, ...areaProps } ), jsxRuntime.jsx("defs", { children: jsxRuntime.jsx( AreaGradient, { id, color: "var(--chart-color, var(--mantine-color-blue-filled))", fillOpacity, withGradient } ) }) ] }) }) }); }); Sparkline.displayName = "@mantine/charts/Sparkline"; Sparkline.classes = classes4; var classes5 = { "root": "m_a410e613", "label": "m_ddb0bfe3" }; var defaultProps7 = { withTooltip: true, withLabelsLine: true, paddingAngle: 0, thickness: 20, size: 160, strokeWidth: 1, startAngle: 0, endAngle: 360, tooltipDataSource: "all" }; var varsResolver5 = core.createVarsResolver( (theme, { strokeColor, labelColor, withLabels, size }) => ({ root: { "--chart-stroke-color": strokeColor ? core.getThemeColor(strokeColor, theme) : void 0, "--chart-labels-color": labelColor ? core.getThemeColor(labelColor, theme) : void 0, "--chart-size": withLabels ? core.rem(size + 80) : core.rem(size) } }) ); var DonutChart = core.factory((_props, ref) => { const props = core.useProps("DonutChart", defaultProps7, _props); const { classNames, className, style, styles, unstyled, vars, data, withTooltip, tooltipAnimationDuration, tooltipProps, pieProps, paddingAngle, withLabels, withLabelsLine, size, thickness, strokeWidth, startAngle, endAngle, tooltipDataSource, chartLabel, children, pieChartProps, valueFormatter, strokeColor, ...others } = props; const theme = core.useMantineTheme(); const getStyles = core.useStyles({ name: "DonutChart", classes: classes5, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver5 }); const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const cells = data.map((item, index) => jsxRuntime.jsx( recharts.Cell, { fill: core.getThemeColor(item.color, theme), stroke: "var(--chart-stroke-color, var(--mantine-color-body))", strokeWidth }, index )); return jsxRuntime.jsx(core.Box, { ref, size, ...getStyles("root"), ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { children: jsxRuntime.jsxs(recharts.PieChart, { ...pieChartProps, children: [ jsxRuntime.jsx( recharts.Pie, { data, innerRadius: size / 2 - thickness, outerRadius: size / 2, dataKey: "value", isAnimationActive: false, paddingAngle, startAngle, endAngle, label: withLabels ? { fill: "var(--chart-labels-color, var(--mantine-color-dimmed))", fontSize: 12, fontFamily: "var(--mantine-font-family)" } : false, labelLine: withLabelsLine ? { stroke: "var(--chart-label-color, var(--mantine-color-dimmed))", strokeWidth: 1 } : false, ...pieProps, children: cells } ), chartLabel && jsxRuntime.jsx( "text", { x: "50%", y: "50%", textAnchor: "middle", dominantBaseline: "middle", ...getStyles("label"), children: chartLabel } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: false, content: ({ payload }) => jsxRuntime.jsx( ChartTooltip, { payload: data, classNames: resolvedClassNames, styles: resolvedStyles, type: "radial", segmentId: tooltipDataSource === "segment" ? payload?.[0]?.name : void 0, valueFormatter } ), ...tooltipProps } ), children ] }) }) }); }); DonutChart.displayName = "@mantine/charts/DonutChart"; DonutChart.classes = classes5; var classes6 = { "root": "m_cd8943fd" }; var defaultProps8 = { withTooltip: false, withLabelsLine: true, paddingAngle: 0, size: 160, strokeWidth: 1, startAngle: 0, endAngle: 360, tooltipDataSource: "all", labelsPosition: "outside", labelsType: "value" }; var varsResolver6 = core.createVarsResolver( (theme, { strokeColor, labelColor, withLabels, size, labelsPosition }) => ({ root: { "--chart-stroke-color": strokeColor ? core.getThemeColor(strokeColor, theme) : void 0, "--chart-labels-color": labelColor ? core.getThemeColor(labelColor, theme) : void 0, "--chart-size": withLabels && labelsPosition === "outside" ? core.rem(size + 80) : core.rem(size) } }) ); var getLabelValue = (labelsType, value, percent, valueFormatter) => { if (labelsType === "percent") { return `${(percent * 100).toFixed(0)}%`; } if (typeof valueFormatter === "function") { return valueFormatter(value); } return value; }; var getInsideLabel = (labelsType, valueFormatter) => ({ cx, cy, midAngle, innerRadius, outerRadius, value, percent }) => { const RADIAN = Math.PI / 180; const radius = innerRadius + (outerRadius - innerRadius) * 0.5; const x = cx + radius * Math.cos(-midAngle * RADIAN); const y = cy + radius * Math.sin(-midAngle * RADIAN); return jsxRuntime.jsx( "text", { x, y, textAnchor: x > cx ? "start" : "end", dominantBaseline: "central", className: classes6.label, children: getLabelValue(labelsType, value, percent, valueFormatter) } ); }; var getOutsideLabel = (labelsType, valueFormatter) => ({ x, y, cx, cy, percent, value }) => jsxRuntime.jsx( "text", { x, y, cx, cy, textAnchor: x > cx ? "start" : "end", fill: "var(--chart-labels-color, var(--mantine-color-dimmed))", fontFamily: "var(--mantine-font-family)", fontSize: 12, children: jsxRuntime.jsx("tspan", { x, children: getLabelValue(labelsType, value, percent, valueFormatter) }) } ); var PieChart2 = core.factory((_props, ref) => { const props = core.useProps("PieChart", defaultProps8, _props); const { classNames, className, style, styles, unstyled, vars, data, withTooltip, tooltipAnimationDuration, tooltipProps, pieProps, paddingAngle, withLabels, withLabelsLine, size, strokeWidth, startAngle, endAngle, tooltipDataSource, children, pieChartProps, labelsPosition, valueFormatter, labelsType, strokeColor, ...others } = props; const theme = core.useMantineTheme(); const getStyles = core.useStyles({ name: "PieChart", classes: classes6, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver6 }); const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const cells = data.map((item, index) => jsxRuntime.jsx( recharts.Cell, { fill: core.getThemeColor(item.color, theme), stroke: "var(--chart-stroke-color, var(--mantine-color-body))", strokeWidth }, index )); return jsxRuntime.jsx(core.Box, { ref, size, ...getStyles("root"), ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { children: jsxRuntime.jsxs(recharts.PieChart, { ...pieChartProps, children: [ jsxRuntime.jsx( recharts.Pie, { data, innerRadius: 0, outerRadius: size / 2, dataKey: "value", isAnimationActive: false, paddingAngle, startAngle, endAngle, label: withLabels ? labelsPosition === "inside" ? getInsideLabel(labelsType || "value", valueFormatter) : getOutsideLabel(labelsType || "value", valueFormatter) : false, labelLine: withLabelsLine && labelsPosition === "outside" ? { stroke: "var(--chart-label-color, var(--mantine-color-dimmed))", strokeWidth: 1 } : false, ...pieProps, children: cells } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: false, content: ({ payload }) => jsxRuntime.jsx( ChartTooltip, { payload: data, classNames: resolvedClassNames, styles: resolvedStyles, type: "radial", segmentId: tooltipDataSource === "segment" ? payload?.[0]?.name : void 0, valueFormatter } ), ...tooltipProps } ), children ] }) }) }); }); PieChart2.displayName = "@mantine/charts/PieChart"; PieChart2.classes = classes6; var classes7 = { "root": "m_1f271cf7", "container": "m_cf06f58c" }; var defaultProps9 = { withPolarGrid: true, withPolarAngleAxis: true, withPolarRadiusAxis: false }; var varsResolver7 = core.createVarsResolver((theme, { gridColor, textColor }) => ({ root: { "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0, "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0 } })); var RadarChart = core.factory((_props, ref) => { const props = core.useProps("RadarChart", defaultProps9, _props); const { classNames, className, style, styles, unstyled, vars, data, series, dataKey, gridColor, textColor, radarProps, radarChartProps, polarGridProps, polarAngleAxisProps, polarRadiusAxisProps, withPolarGrid, withPolarAngleAxis, withPolarRadiusAxis, children, withLegend, legendProps, ...others } = props; const theme = core.useMantineTheme(); const getStyles = core.useStyles({ name: "RadarChart", classes: classes7, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver7 }); const [highlightedArea, setHighlightedArea] = react.useState(null); const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const radars = series.map((item, index) => jsxRuntime.jsx( recharts.Radar, { name: item.name, dataKey: item.name, stroke: core.getThemeColor(item.strokeColor || item.color, theme), fill: core.getThemeColor(item.color, theme), fillOpacity: highlightedArea ? highlightedArea === item.name ? item.opacity || 0.4 : 0.05 : item.opacity || 0.4, strokeOpacity: highlightedArea ? highlightedArea === item.name ? 1 : 0.1 : 1, isAnimationActive: false, ...typeof radarProps === "function" ? radarProps(item) : radarProps }, index )); return jsxRuntime.jsx(core.Box, { ref, ...getStyles("root"), ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { ...getStyles("container"), children: jsxRuntime.jsxs(recharts.RadarChart, { data, ...radarChartProps, children: [ withPolarGrid && jsxRuntime.jsx(recharts.PolarGrid, { stroke: "var(--chart-grid-color)", ...polarGridProps }), withPolarAngleAxis && jsxRuntime.jsx(recharts.PolarAngleAxis, { dataKey, ...polarAngleAxisProps }), withPolarRadiusAxis && jsxRuntime.jsx(recharts.PolarRadiusAxis, { stroke: "var(--chart-grid-color)", ...polarRadiusAxisProps }), radars, withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "bottom", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload, onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "bottom", classNames: resolvedClassNames, styles: resolvedStyles, series, centered: true } ), ...legendProps } ), children ] }) }) }); }); RadarChart.displayName = "@mantine/charts/RadarChart"; RadarChart.classes = classes7; function getAxis(key, dataKey) { return key === dataKey.x ? "x" : "y"; } var defaultProps10 = { withXAxis: true, withYAxis: true, withTooltip: true, tooltipAnimationDuration: 0, tickLine: "y", strokeDasharray: "5 5", gridAxis: "x" }; var varsResolver8 = core.createVarsResolver((theme, { textColor, gridColor }) => ({ root: { "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0, "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0 } })); var ScatterChart = core.factory((_props, ref) => { const props = core.useProps("ScatterChart", defaultProps10, _props); const { classNames, className, style, styles, unstyled, vars, referenceLines, dir, withLegend, withTooltip, withXAxis, withYAxis, xAxisProps, yAxisProps, orientation, scatterChartProps, legendProps, data, gridAxis, tickLine, strokeDasharray, gridProps, tooltipAnimationDuration, tooltipProps, children, onMouseLeave, dataKey, textColor, gridColor, xAxisLabel, yAxisLabel, unit, labels, valueFormatter, scatterProps, pointLabels, ...others } = props; const getFormatter = (axis) => typeof valueFormatter === "function" ? valueFormatter : valueFormatter?.[axis]; const xFormatter = getFormatter("x"); const yFormatter = getFormatter("y"); const theme = core.useMantineTheme(); const mappedData = data.map((item) => ({ ...item, data: item.data.map((point) => ({ ...point, name: item.name })) })); const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const getStyles = core.useStyles({ name: "ScatterChart", classes: classes3, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver8 }); const withXTickLine = gridAxis !== "none" && (tickLine === "x" || tickLine === "xy"); const withYTickLine = gridAxis !== "none" && (tickLine === "y" || tickLine === "xy"); const [highlightedArea, setHighlightedArea] = react.useState(null); const shouldHighlight = highlightedArea !== null; const handleMouseLeave = (event) => { setHighlightedArea(null); onMouseLeave?.(event); }; const referenceLinesItems = referenceLines?.map((line, index) => { const color = core.getThemeColor(line.color, theme); return jsxRuntime.jsx( recharts.ReferenceLine, { stroke: line.color ? color : "var(--chart-grid-color)", strokeWidth: 1, ...line, label: { value: line.label, fill: line.color ? color : "currentColor", fontSize: 12, position: line.labelPosition ?? "insideBottomLeft" }, ...getStyles("referenceLine") }, index ); }); const scatters = mappedData.map((item, index) => { const dimmed = shouldHighlight && highlightedArea !== item.name; return jsxRuntime.jsxs( recharts.Scatter, { data: item.data, fill: core.getThemeColor(item.color, theme), isAnimationActive: false, fillOpacity: dimmed ? 0.1 : 1, ...scatterProps, children: [ pointLabels && jsxRuntime.jsx(recharts.LabelList, { dataKey: dataKey[pointLabels], fontSize: 8, dy: 10 }), scatterProps?.children ] }, index ); }); return jsxRuntime.jsx( core.Box, { ref, ...getStyles("root"), onMouseLeave: handleMouseLeave, dir: dir || "ltr", ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { ...getStyles("container"), children: jsxRuntime.jsxs( recharts.ScatterChart, { margin: { bottom: xAxisLabel ? 30 : void 0, left: yAxisLabel ? 10 : void 0, right: yAxisLabel ? 5 : void 0 }, ...scatterChartProps, children: [ jsxRuntime.jsx( recharts.CartesianGrid, { strokeDasharray, vertical: gridAxis === "y" || gridAxis === "xy", horizontal: gridAxis === "x" || gridAxis === "xy", ...getStyles("grid"), ...gridProps } ), jsxRuntime.jsxs( recharts.XAxis, { type: "number", hide: !withXAxis, dataKey: dataKey.x, tick: { transform: "translate(0, 10)", fontSize: 12, fill: "currentColor" }, stroke: "", interval: "preserveStartEnd", tickLine: withXTickLine ? { stroke: "currentColor" } : false, minTickGap: 5, unit: unit?.x, tickFormatter: xFormatter, ...getStyles("axis"), ...xAxisProps, children: [ xAxisLabel && jsxRuntime.jsx(recharts.Label, { position: "insideBottom", offset: -20, fontSize: 12, ...getStyles("axisLabel"), children: xAxisLabel }), xAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { type: "number", hide: !withYAxis, axisLine: false, dataKey: dataKey.y, tickLine: withYTickLine ? { stroke: "currentColor" } : false, tick: { transform: "translate(-10, 0)", fontSize: 12, fill: "currentColor" }, allowDecimals: true, unit: unit?.y, tickFormatter: yFormatter, ...getStyles("axis"), ...yAxisProps, children: [ yAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideLeft", angle: -90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: yAxisLabel } ), yAxisProps?.children ] } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: tooltipAnimationDuration !== 0, position: { y: 0 }, cursor: { stroke: "var(--chart-grid-color)", strokeWidth: 1, strokeDasharray }, content: ({ label, payload }) => jsxRuntime.jsx( ChartTooltip, { type: "scatter", label, payload: labels ? payload?.map((item) => ({ ...item, name: labels[getAxis(item.name, dataKey)] || item.name, value: getFormatter(getAxis(item.name, dataKey))?.(item.value) ?? item.value })) : payload?.map((item) => ({ ...item, value: getFormatter(getAxis(item.name, dataKey))?.(item.value) ?? item.value })), classNames: resolvedClassNames, styles: resolvedStyles, series: data } ), ...tooltipProps } ), withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "top", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload?.map((item, index) => ({ ...item, dataKey: data[index].name })), onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "top", classNames: resolvedClassNames, styles: resolvedStyles, series: data } ), height: 44, ...legendProps } ), referenceLinesItems, scatters ] } ) }) } ); }); ScatterChart.displayName = "@mantine/charts/ScatterChart"; ScatterChart.classes = classes3; function getDomain(data, key) { const values = data.map((item) => item[key]); return [Math.min(...values), Math.max(...values)]; } function BubbleChartTooltip({ active, payload, getStyles, dataKey, valueFormatter }) { if (active && payload && payload.length) { const data = payload[0] && payload[0].payload; return jsxRuntime.jsx("div", { ...getStyles("tooltip"), children: jsxRuntime.jsxs(core.Group, { justify: "space-between", children: [ jsxRuntime.jsx(core.Text, { fz: "sm", children: data[dataKey.x] }), jsxRuntime.jsx(core.Text, { fz: "sm", children: valueFormatter ? valueFormatter(data[dataKey.z]) : data[dataKey.z] }) ] }) }); } return null; } var defaultProps11 = { color: "blue.6", withTooltip: true }; var varsResolver9 = core.createVarsResolver((theme, { textColor, gridColor }) => ({ root: { "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0, "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0 } })); var BubbleChart = core.factory((_props, ref) => { const props = core.useProps("BubbleChart", defaultProps11, _props); const { classNames, className, style, styles, unstyled, vars, data, xAxisProps, yAxisProps, zAxisProps, tooltipProps, scatterProps, color, label, withTooltip, dataKey, range, valueFormatter, ...others } = props; const theme = core.useMantineTheme(); const getStyles = core.useStyles({ name: "BubbleChart", classes: classes3, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver9 }); return jsxRuntime.jsx(core.Box, { ref, ...getStyles("root"), ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { children: jsxRuntime.jsxs(recharts.ScatterChart, { children: [ jsxRuntime.jsx( recharts.XAxis, { type: "category", dataKey: dataKey.x, interval: 0, tick: { fontSize: 12, fill: "currentColor" }, tickLine: { transform: "translate(0, -6)", stroke: "currentColor" }, stroke: "currentColor", ...getStyles("axis"), ...xAxisProps } ), jsxRuntime.jsx( recharts.YAxis, { type: "number", dataKey: dataKey.y, height: 10, width: label ? void 0 : 0, tick: false, tickLine: false, axisLine: false, label: { value: label, position: "insideRight", fontSize: 12, fill: "currentColor" }, ...getStyles("axis"), ...yAxisProps } ), jsxRuntime.jsx( recharts.ZAxis, { type: "number", dataKey: dataKey.z, domain: getDomain(data, dataKey.z), range, ...zAxisProps } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: 100, isAnimationActive: false, cursor: { stroke: "var(--chart-grid-color)", strokeWidth: 1, strokeDasharray: "3 3" }, content: (payload) => jsxRuntime.jsx( BubbleChartTooltip, { dataKey, active: payload.active, payload: payload.payload, getStyles, valueFormatter } ), ...tooltipProps } ), jsxRuntime.jsx( recharts.Scatter, { data, fill: core.getThemeColor(color, theme), isAnimationActive: false, ...scatterProps } ) ] }) }) }); }); BubbleChart.displayName = "@mantine/charts/BubbleChart"; BubbleChart.classes = classes3; var defaultProps12 = { withXAxis: true, withYAxis: true, withTooltip: true, tooltipAnimationDuration: 0, tickLine: "y", strokeDasharray: "5 5", gridAxis: "x", withDots: true, connectNulls: true, strokeWidth: 2, curveType: "monotone" }; var varsResolver10 = core.createVarsResolver( (theme, { textColor, gridColor }) => ({ root: { "--chart-text-color": textColor ? core.getThemeColor(textColor, theme) : void 0, "--chart-grid-color": gridColor ? core.getThemeColor(gridColor, theme) : void 0 } }) ); var CompositeChart = core.factory((_props, ref) => { const props = core.useProps("CompositeChart", defaultProps12, _props); const { classNames, className, style, styles, unstyled, vars, data, withLegend, legendProps, series, onMouseLeave, dataKey, withTooltip, withXAxis, withYAxis, gridAxis, tickLine, xAxisProps, yAxisProps, unit, tooltipAnimationDuration, strokeDasharray, gridProps, tooltipProps, referenceLines, withDots, dotProps, activeDotProps, strokeWidth, connectNulls, curveType, dir, valueFormatter, children, lineProps, xAxisLabel, yAxisLabel, withRightYAxis, rightYAxisLabel, rightYAxisProps, withPointLabels, areaProps, barProps, withBarValueLabel, minBarSize, maxBarWidth, composedChartProps, ...others } = props; const theme = core.useMantineTheme(); const withXTickLine = gridAxis !== "none" && (tickLine === "x" || tickLine === "xy"); const withYTickLine = gridAxis !== "none" && (tickLine === "y" || tickLine === "xy"); const [highlightedArea, setHighlightedArea] = react.useState(null); const shouldHighlight = highlightedArea !== null; const handleMouseLeave = (event) => { setHighlightedArea(null); onMouseLeave?.(event); }; const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); const getStyles = core.useStyles({ name: "CompositeChart", classes: classes3, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver10 }); const lines = series.map((item) => { const color = core.getThemeColor(item.color, theme); const dimmed = shouldHighlight && highlightedArea !== item.name; if (item.type === "line") { return react.createElement( recharts.Line, { ...getStyles("line"), key: item.name, name: item.name, dataKey: item.name, dot: withDots ? { fillOpacity: dimmed ? 0 : 1, strokeOpacity: dimmed ? 0 : 1, strokeWidth: 1, fill: color, stroke: color, ...dotProps } : false, activeDot: withDots ? { fill: "var(--mantine-color-white)", stroke: color, ...activeDotProps } : false, fill: color, stroke: color, strokeWidth, isAnimationActive: false, fillOpacity: dimmed ? 0 : 1, strokeOpacity: dimmed ? 0.5 : 1, connectNulls, type: curveType, strokeDasharray: item.strokeDasharray, yAxisId: item.yAxisId || "left", label: withPointLabels ? jsxRuntime.jsx(PointLabel, {}) : void 0, ...typeof lineProps === "function" ? lineProps(item) : lineProps } ); } if (item.type === "area") { return react.createElement( recharts.Area, { ...getStyles("area"), key: item.name, name: item.name, type: curveType, dataKey: item.name, fill: color, strokeWidth, stroke: color, isAnimationActive: false, connectNulls, dot: withDots ? { fillOpacity: dimmed ? 0 : 1, strokeOpacity: dimmed ? 0 : 1, strokeWidth: 1, fill: color, stroke: color, ...dotProps } : false, activeDot: withDots ? { fill: theme.white, stroke: color, strokeWidth: 2, r: 4, ...activeDotProps } : false, fillOpacity: dimmed ? 0 : 0.2, strokeOpacity: dimmed ? 0.5 : 1, strokeDasharray: item.strokeDasharray, yAxisId: item.yAxisId || "left", label: withPointLabels ? jsxRuntime.jsx(PointLabel, {}) : void 0, ...typeof areaProps === "function" ? areaProps(item) : areaProps } ); } if (item.type === "bar") { return react.createElement( recharts.Bar, { ...getStyles("bar"), key: item.name, name: item.name, dataKey: item.name, fill: color, stroke: color, isAnimationActive: false, fillOpacity: dimmed ? 0.1 : 1, strokeOpacity: dimmed ? 0.2 : 0, label: withBarValueLabel ? jsxRuntime.jsx(BarLabel, { valueFormatter }) : void 0, yAxisId: item.yAxisId || "left", minPointSize: minBarSize, ...typeof barProps === "function" ? barProps(item) : barProps } ); } return null; }); const referenceLinesItems = referenceLines?.map((line, index) => { const color = core.getThemeColor(line.color, theme); return jsxRuntime.jsx( recharts.ReferenceLine, { stroke: line.color ? color : "var(--chart-grid-color)", strokeWidth: 1, yAxisId: line.yAxisId || "left", ...line, label: { value: line.label, fill: line.color ? color : "currentColor", fontSize: 12, position: line.labelPosition ?? "insideBottomLeft" }, ...getStyles("referenceLine") }, index ); }); const sharedYAxisProps = { axisLine: false, type: "number", tickLine: withYTickLine ? { stroke: "currentColor" } : false, allowDecimals: true, unit, tickFormatter: valueFormatter, ...getStyles("axis") }; return jsxRuntime.jsx( core.Box, { ref, ...getStyles("root"), onMouseLeave: handleMouseLeave, dir: dir || "ltr", ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { ...getStyles("container"), children: jsxRuntime.jsxs( recharts.ComposedChart, { data, maxBarSize: maxBarWidth, margin: { bottom: xAxisLabel ? 30 : void 0, left: yAxisLabel ? 10 : void 0, right: yAxisLabel ? 5 : void 0 }, ...composedChartProps, children: [ withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "top", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload, onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "top", classNames: resolvedClassNames, styles: resolvedStyles, series } ), ...legendProps } ), jsxRuntime.jsxs( recharts.XAxis, { hide: !withXAxis, dataKey, tick: { transform: "translate(0, 10)", fontSize: 12, fill: "currentColor" }, stroke: "", interval: "preserveStartEnd", tickLine: withXTickLine ? { stroke: "currentColor" } : false, minTickGap: 5, ...getStyles("axis"), ...xAxisProps, children: [ xAxisLabel && jsxRuntime.jsx(recharts.Label, { position: "insideBottom", offset: -20, fontSize: 12, ...getStyles("axisLabel"), children: xAxisLabel }), xAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "left", orientation: "left", tick: { transform: "translate(-10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withYAxis, ...sharedYAxisProps, ...yAxisProps, children: [ yAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideLeft", angle: -90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: yAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsxs( recharts.YAxis, { yAxisId: "right", orientation: "right", tick: { transform: "translate(10, 0)", fontSize: 12, fill: "currentColor" }, hide: !withRightYAxis, ...sharedYAxisProps, ...rightYAxisProps, children: [ rightYAxisLabel && jsxRuntime.jsx( recharts.Label, { position: "insideRight", angle: 90, textAnchor: "middle", fontSize: 12, offset: -5, ...getStyles("axisLabel"), children: rightYAxisLabel } ), yAxisProps?.children ] } ), jsxRuntime.jsx( recharts.CartesianGrid, { strokeDasharray, vertical: gridAxis === "y" || gridAxis === "xy", horizontal: gridAxis === "x" || gridAxis === "xy", ...getStyles("grid"), ...gridProps } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: tooltipAnimationDuration !== 0, position: { y: 0 }, cursor: { stroke: "var(--chart-grid-color)", strokeWidth: 1, strokeDasharray }, content: ({ label, payload }) => jsxRuntime.jsx( ChartTooltip, { label, payload, unit, classNames: resolvedClassNames, styles: resolvedStyles, series, valueFormatter } ), ...tooltipProps } ), lines, referenceLinesItems, children ] } ) }) } ); }); CompositeChart.displayName = "@mantine/charts/CompositeChart"; CompositeChart.classes = classes3; var classes8 = { "root": "m_cd2bd9e5", "tooltip": "m_6bcc3420" }; var defaultProps13 = { barSize: 20, startAngle: 90, endAngle: -270, withBackground: true, withTooltip: true }; var varsResolver11 = core.createVarsResolver( (theme, { emptyBackgroundColor }) => ({ root: { "--chart-empty-background": emptyBackgroundColor ? core.getThemeColor(emptyBackgroundColor, theme) : void 0 } }) ); var RadialBarChart = core.factory((_props, ref) => { const props = core.useProps("RadialBarChart", defaultProps13, _props); const { classNames, className, style, styles, unstyled, vars, data, barSize, withBackground, dataKey, radialBarProps, radialBarChartProps, withLabels, withLegend, legendProps, withTooltip, tooltipProps, startAngle, endAngle, ...others } = props; const [highlightedArea, setHighlightedArea] = react.useState(null); const getStyles = core.useStyles({ name: "RadialBarChart", classes: classes8, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver11 }); const theme = core.useMantineTheme(); const dataWithResolvedColor = data.map(({ color, ...item }) => { const resolvedColor = core.getThemeColor(color, theme); return { ...item, fill: resolvedColor, fillOpacity: highlightedArea ? highlightedArea === item.name ? item.opacity || 1 : 0.05 : item.opacity || 1 }; }); const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); return jsxRuntime.jsx(core.Box, { ref, ...getStyles("root"), ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { children: jsxRuntime.jsxs( recharts.RadialBarChart, { margin: { top: 0, bottom: 0, left: 0, right: 0 }, innerRadius: "10%", outerRadius: "100%", cx: "50%", cy: "50%", barSize, startAngle, endAngle, data: dataWithResolvedColor, ...radialBarChartProps, children: [ jsxRuntime.jsx( recharts.RadialBar, { label: withLabels ? { position: "insideStart", fill: "var(--mantine-color-white)", fontSize: 12 } : void 0, background: withBackground ? { fill: "var(--chart-empty-background)" } : void 0, dataKey, isAnimationActive: false, ...radialBarProps } ), withLegend && jsxRuntime.jsx( recharts.Legend, { verticalAlign: "bottom", content: (payload) => jsxRuntime.jsx( ChartLegend, { payload: payload.payload?.map((item) => ({ ...item, dataKey: item.payload?.name })), onHighlight: setHighlightedArea, legendPosition: legendProps?.verticalAlign || "bottom", classNames: resolvedClassNames, styles: resolvedStyles, centered: true } ), ...legendProps } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: 0, isAnimationActive: false, cursor: { stroke: "var(--chart-cursor-color)" }, content: ({ payload }) => jsxRuntime.jsxs(core.Paper, { ...getStyles("tooltip"), children: [ jsxRuntime.jsxs(core.Group, { gap: "sm", children: [ jsxRuntime.jsx(core.ColorSwatch, { color: payload?.[0]?.payload.fill, size: 12, withShadow: false }), jsxRuntime.jsx("span", { children: payload?.[0]?.payload.name }) ] }), jsxRuntime.jsx("span", { children: payload?.[0]?.payload[dataKey] }) ] }), ...tooltipProps } ) ] } ) }) }); }); RadialBarChart.displayName = "@mantine/core/RadialBarChart"; RadialBarChart.classes = classes8; var classes9 = { "root": "m_80d531e7" }; var defaultProps14 = { withTooltip: true, size: 300, strokeWidth: 1, withLabels: false, labelsPosition: "right", tooltipDataSource: "all" }; var varsResolver12 = core.createVarsResolver( (theme, { strokeColor, labelColor, size }) => ({ root: { "--chart-stroke-color": strokeColor ? core.getThemeColor(strokeColor, theme) : void 0, "--chart-labels-color": labelColor ? core.getThemeColor(labelColor, theme) : void 0, "--chart-size": core.rem(size) } }) ); var FunnelChart = core.factory((_props, ref) => { const props = core.useProps("FunnelChart", defaultProps14, _props); const { classNames, className, style, styles, unstyled, vars, data, withTooltip, tooltipAnimationDuration, tooltipProps, strokeWidth, withLabels, size, valueFormatter, children, funnelChartProps, funnelProps, labelsPosition, tooltipDataSource, ...others } = props; const theme = core.useMantineTheme(); const getStyles = core.useStyles({ name: "FunnelChart", classes: classes9, props, className, style, classNames, styles, unstyled, vars, varsResolver: varsResolver12 }); const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({ classNames, styles, props }); return jsxRuntime.jsx(core.Box, { ref, size, ...getStyles("root"), ...others, children: jsxRuntime.jsx(recharts.ResponsiveContainer, { children: jsxRuntime.jsxs(recharts.FunnelChart, { ...funnelChartProps, children: [ jsxRuntime.jsxs( recharts.Funnel, { data, dataKey: "value", isAnimationActive: false, stroke: "var(--chart-stroke-color, var(--mantine-color-body))", strokeWidth, ...funnelProps, children: [ withLabels && jsxRuntime.jsx( recharts.LabelList, { position: labelsPosition, fill: labelsPosition === "inside" ? "var(--chart-labels-color, var(--mantine-color-white))" : "var(--chart-labels-color, var(--mantine-color-dimmed))", stroke: "none", fontFamily: "var(--mantine-font-family)", fontSize: 14, dataKey: (entry) => { return typeof valueFormatter === "function" ? valueFormatter(entry.value) : entry.value; } } ), data.map((entry, index) => jsxRuntime.jsx( recharts.Cell, { fill: core.getThemeColor(entry.color, theme), stroke: "var(--chart-stroke-color, var(--mantine-color-body))", strokeWidth }, index )) ] } ), withTooltip && jsxRuntime.jsx( recharts.Tooltip, { animationDuration: tooltipAnimationDuration, isAnimationActive: false, content: ({ payload }) => jsxRuntime.jsx( ChartTooltip, { payload: data, classNames: resolvedClassNames, styles: resolvedStyles, type: "radial", segmentId: tooltipDataSource === "segment" ? payload?.[0]?.name : void 0, valueFormatter } ), ...tooltipProps } ), children ] }) }) }); }); FunnelChart.displayName = "@mantine/charts/FunnelChart"; FunnelChart.classes = classes9; exports.AreaChart = AreaChart; exports.AreaGradient = AreaGradient; exports.BarChart = BarChart; exports.BubbleChart = BubbleChart; exports.ChartLegend = ChartLegend; exports.ChartTooltip = ChartTooltip; exports.CompositeChart = CompositeChart; exports.DonutChart = DonutChart; exports.FunnelChart = FunnelChart; exports.LineChart = LineChart; exports.PieChart = PieChart2; exports.RadarChart = RadarChart; exports.RadialBarChart = RadialBarChart; exports.ScatterChart = ScatterChart; exports.Sparkline = Sparkline; exports.getFilteredChartLegendPayload = getFilteredChartLegendPayload; exports.getFilteredChartTooltipPayload = getFilteredChartTooltipPayload; exports.getSplitOffset = getSplitOffset; }));
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址