@once-ui-system/core 1.6.4 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Avatar.d.ts +1 -0
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar.js +2 -2
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/BlobFx.d.ts +8 -0
- package/dist/components/BlobFx.d.ts.map +1 -0
- package/dist/components/BlobFx.js +82 -0
- package/dist/components/BlobFx.js.map +1 -0
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js +2 -2
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Button.module.scss +62 -32
- package/dist/components/ContextMenu.d.ts +1 -0
- package/dist/components/ContextMenu.d.ts.map +1 -1
- package/dist/components/ContextMenu.js +8 -4
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/Dialog.d.ts.map +1 -1
- package/dist/components/Dialog.js +99 -91
- package/dist/components/Dialog.js.map +1 -1
- package/dist/components/Dropdown.d.ts +1 -0
- package/dist/components/Dropdown.d.ts.map +1 -1
- package/dist/components/Dropdown.js +4 -2
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/FadingLettersFx.d.ts +15 -0
- package/dist/components/FadingLettersFx.d.ts.map +1 -0
- package/dist/components/FadingLettersFx.js +27 -0
- package/dist/components/FadingLettersFx.js.map +1 -0
- package/dist/components/FadingLettersFx.module.scss +71 -0
- package/dist/components/IconButton.d.ts +5 -2
- package/dist/components/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton.js +6 -4
- package/dist/components/IconButton.js.map +1 -1
- package/dist/components/IconButton.module.scss +14 -0
- package/dist/components/Input.d.ts +3 -1
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/Input.js +18 -5
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Input.module.scss +38 -3
- package/dist/components/Media.d.ts +5 -1
- package/dist/components/Media.d.ts.map +1 -1
- package/dist/components/Media.js +20 -7
- package/dist/components/Media.js.map +1 -1
- package/dist/components/Modal.d.ts +11 -0
- package/dist/components/Modal.d.ts.map +1 -0
- package/dist/components/Modal.js +72 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/NumberInput.d.ts.map +1 -1
- package/dist/components/NumberInput.js +1 -1
- package/dist/components/NumberInput.js.map +1 -1
- package/dist/components/ScrollContainer.d.ts +9 -0
- package/dist/components/ScrollContainer.d.ts.map +1 -0
- package/dist/components/ScrollContainer.js +67 -0
- package/dist/components/ScrollContainer.js.map +1 -0
- package/dist/components/ScrollLock.d.ts.map +1 -1
- package/dist/components/ScrollLock.js +4 -91
- package/dist/components/ScrollLock.js.map +1 -1
- package/dist/components/ServerFlex.d.ts.map +1 -1
- package/dist/components/ServerFlex.js +3 -3
- package/dist/components/ServerFlex.js.map +1 -1
- package/dist/components/ServerGrid.d.ts.map +1 -1
- package/dist/components/ServerGrid.js +2 -2
- package/dist/components/ServerGrid.js.map +1 -1
- package/dist/components/SplitView.d.ts +16 -0
- package/dist/components/SplitView.d.ts.map +1 -0
- package/dist/components/SplitView.js +80 -0
- package/dist/components/SplitView.js.map +1 -0
- package/dist/components/SplitView.module.scss +18 -0
- package/dist/components/StylePanel.d.ts.map +1 -1
- package/dist/components/StylePanel.js +10 -10
- package/dist/components/StylePanel.js.map +1 -1
- package/dist/components/Textarea.d.ts +2 -0
- package/dist/components/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea.js +22 -12
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/ThemeInit.d.ts.map +1 -1
- package/dist/components/ThemeInit.js +39 -40
- package/dist/components/ThemeInit.js.map +1 -1
- package/dist/components/Timeline.d.ts +1 -1
- package/dist/components/Timeline.d.ts.map +1 -1
- package/dist/components/Timeline.js +50 -6
- package/dist/components/Timeline.js.map +1 -1
- package/dist/components/ToggleButton.d.ts +2 -1
- package/dist/components/ToggleButton.d.ts.map +1 -1
- package/dist/components/ToggleButton.js +3 -3
- package/dist/components/ToggleButton.js.map +1 -1
- package/dist/components/ToggleButton.module.scss +27 -8
- package/dist/components/TypeFx.d.ts.map +1 -1
- package/dist/components/TypeFx.js +66 -87
- package/dist/components/TypeFx.js.map +1 -1
- package/dist/components/index.d.ts +9 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +9 -1
- package/dist/components/index.js.map +1 -1
- package/dist/css/styles.css +1 -1
- package/dist/css/styles.css.map +1 -1
- package/dist/css/tokens.css +1 -1
- package/dist/css/tokens.css.map +1 -1
- package/dist/data/emoji-data.json +0 -18
- package/dist/interfaces.d.ts +1 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/internal/dialogState.d.ts +17 -0
- package/dist/internal/dialogState.d.ts.map +1 -0
- package/dist/internal/dialogState.js +101 -0
- package/dist/internal/dialogState.js.map +1 -0
- package/dist/internal/scrollLockState.d.ts +15 -0
- package/dist/internal/scrollLockState.d.ts.map +1 -0
- package/dist/internal/scrollLockState.js +172 -0
- package/dist/internal/scrollLockState.js.map +1 -0
- package/dist/modules/code/CodeBlock.d.ts +3 -31
- package/dist/modules/code/CodeBlock.d.ts.map +1 -1
- package/dist/modules/code/CodeBlock.impl.d.ts +34 -0
- package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -0
- package/dist/modules/code/CodeBlock.impl.js +487 -0
- package/dist/modules/code/CodeBlock.impl.js.map +1 -0
- package/dist/modules/code/CodeBlock.js +10 -483
- package/dist/modules/code/CodeBlock.js.map +1 -1
- package/dist/modules/data/BarChart.d.ts +1 -8
- package/dist/modules/data/BarChart.d.ts.map +1 -1
- package/dist/modules/data/BarChart.impl.d.ts +12 -0
- package/dist/modules/data/BarChart.impl.d.ts.map +1 -0
- package/dist/modules/data/BarChart.impl.js +137 -0
- package/dist/modules/data/BarChart.impl.js.map +1 -0
- package/dist/modules/data/BarChart.js +9 -132
- package/dist/modules/data/BarChart.js.map +1 -1
- package/dist/modules/data/DataTooltip.d.ts +2 -2
- package/dist/modules/data/DataTooltip.d.ts.map +1 -1
- package/dist/modules/data/Legend.d.ts +1 -1
- package/dist/modules/data/Legend.d.ts.map +1 -1
- package/dist/modules/data/LineBarChart.d.ts +1 -8
- package/dist/modules/data/LineBarChart.d.ts.map +1 -1
- package/dist/modules/data/LineBarChart.impl.d.ts +12 -0
- package/dist/modules/data/LineBarChart.impl.d.ts.map +1 -0
- package/dist/modules/data/LineBarChart.impl.js +142 -0
- package/dist/modules/data/LineBarChart.impl.js.map +1 -0
- package/dist/modules/data/LineBarChart.js +9 -137
- package/dist/modules/data/LineBarChart.js.map +1 -1
- package/dist/modules/data/LineChart.d.ts +1 -13
- package/dist/modules/data/LineChart.d.ts.map +1 -1
- package/dist/modules/data/LineChart.impl.d.ts +17 -0
- package/dist/modules/data/LineChart.impl.d.ts.map +1 -0
- package/dist/modules/data/LineChart.impl.js +148 -0
- package/dist/modules/data/LineChart.impl.js.map +1 -0
- package/dist/modules/data/LineChart.js +9 -143
- package/dist/modules/data/LineChart.js.map +1 -1
- package/dist/modules/data/PieChart.d.ts +4 -16
- package/dist/modules/data/PieChart.d.ts.map +1 -1
- package/dist/modules/data/PieChart.impl.d.ts +18 -0
- package/dist/modules/data/PieChart.impl.d.ts.map +1 -0
- package/dist/modules/data/PieChart.impl.js +102 -0
- package/dist/modules/data/PieChart.impl.js.map +1 -0
- package/dist/modules/data/PieChart.js +11 -97
- package/dist/modules/data/PieChart.js.map +1 -1
- package/dist/modules/media/MediaUpload.d.ts +2 -20
- package/dist/modules/media/MediaUpload.d.ts.map +1 -1
- package/dist/modules/media/MediaUpload.impl.d.ts +24 -0
- package/dist/modules/media/MediaUpload.impl.d.ts.map +1 -0
- package/dist/modules/media/MediaUpload.impl.js +92 -0
- package/dist/modules/media/MediaUpload.impl.js.map +1 -0
- package/dist/modules/media/MediaUpload.js +10 -88
- package/dist/modules/media/MediaUpload.js.map +1 -1
- package/dist/modules/navigation/Kbar.d.ts.map +1 -1
- package/dist/modules/navigation/Kbar.js +1 -1
- package/dist/modules/navigation/Kbar.js.map +1 -1
- package/dist/package.json +17 -6
- package/dist/styles/size.scss +20 -0
- package/dist/test/dialogTestUtils.d.ts +2 -0
- package/dist/test/dialogTestUtils.d.ts.map +1 -0
- package/dist/test/dialogTestUtils.js +9 -0
- package/dist/test/dialogTestUtils.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +59 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/tokens/layout.scss +5 -0
- package/dist/utils/MissingDependency.d.ts +7 -0
- package/dist/utils/MissingDependency.d.ts.map +1 -0
- package/dist/utils/MissingDependency.js +6 -0
- package/dist/utils/MissingDependency.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +35 -13
- package/tsconfig.vitest.json +20 -0
- package/vitest.config.ts +19 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React, { useState, useEffect, useMemo, useCallback } from "react";
|
|
4
|
+
import { formatDate } from "./utils/formatDate";
|
|
5
|
+
import { BarChart as RechartsBarChart, Bar as RechartsBar, XAxis as RechartsXAxis, YAxis as RechartsYAxis, ResponsiveContainer as RechartsResponsiveContainer, CartesianGrid as RechartsCartesianGrid, Tooltip as RechartsTooltip, Legend as RechartsLegend, } from "recharts";
|
|
6
|
+
import { Column, Row } from "../../components";
|
|
7
|
+
import { getDistributedColor } from "./utils/colorDistribution";
|
|
8
|
+
import { LinearGradient, DataTooltip, Legend, ChartStatus, ChartHeader, } from ".";
|
|
9
|
+
import { useDataTheme } from "../../contexts/DataThemeProvider";
|
|
10
|
+
const BarChart = ({ title, description, data, series, date, emptyState, errorState, error = false, loading = false, tooltip = true, legend: legendProp = {}, axis = "both", grid = "y", border = "neutral-alpha-weak", variant: variantProp, barWidth = "l", hover = false, reverseY = false, reverseX = false, "data-viz-style": dataVizStyle, ...flex }) => {
|
|
11
|
+
const { variant: themeVariant, mode, height, tick: { fill: tickFill, fontSize: tickFontSize, line: tickLine }, axis: { stroke: axisLineStroke }, } = useDataTheme();
|
|
12
|
+
const variant = variantProp || themeVariant;
|
|
13
|
+
const legend = {
|
|
14
|
+
display: legendProp.display !== undefined ? legendProp.display : true,
|
|
15
|
+
position: legendProp.position || "top-left",
|
|
16
|
+
direction: legendProp.direction,
|
|
17
|
+
};
|
|
18
|
+
const [selectedDateRange, setSelectedDateRange] = useState(date?.start && date?.end
|
|
19
|
+
? {
|
|
20
|
+
startDate: date.start,
|
|
21
|
+
endDate: date.end,
|
|
22
|
+
}
|
|
23
|
+
: undefined);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (date?.start && date?.end) {
|
|
26
|
+
setSelectedDateRange({
|
|
27
|
+
startDate: date.start,
|
|
28
|
+
endDate: date.end,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}, [date?.start, date?.end]);
|
|
32
|
+
const handleDateRangeChange = useCallback((newRange) => {
|
|
33
|
+
setSelectedDateRange(newRange);
|
|
34
|
+
if (date?.onChange) {
|
|
35
|
+
date.onChange(newRange);
|
|
36
|
+
}
|
|
37
|
+
}, [date]);
|
|
38
|
+
const seriesArray = Array.isArray(series) ? series : series ? [series] : [];
|
|
39
|
+
const seriesKeys = seriesArray.map((s) => s.key);
|
|
40
|
+
const chartId = React.useMemo(() => Math.random().toString(36).substring(2, 9), []);
|
|
41
|
+
const coloredSeriesArray = useMemo(() => seriesArray.map((s, index) => ({
|
|
42
|
+
...s,
|
|
43
|
+
color: s.color || getDistributedColor(index, seriesArray.length),
|
|
44
|
+
})), [seriesArray]);
|
|
45
|
+
const xAxisKey = Object.keys(data[0] || {}).find((key) => !seriesKeys.includes(key)) || "name";
|
|
46
|
+
const autoKeys = Object.keys(data[0] || {}).filter((key) => key !== xAxisKey);
|
|
47
|
+
const autoSeries = seriesArray.length > 0
|
|
48
|
+
? coloredSeriesArray
|
|
49
|
+
: autoKeys.map((key, index) => ({
|
|
50
|
+
key,
|
|
51
|
+
color: getDistributedColor(index, autoKeys.length),
|
|
52
|
+
}));
|
|
53
|
+
const barColors = autoSeries.map((s) => `var(--data-${s.color})`);
|
|
54
|
+
const legendContent = useCallback((props) => {
|
|
55
|
+
const customPayload = autoSeries.map((series, index) => ({
|
|
56
|
+
value: series.key,
|
|
57
|
+
color: barColors[index],
|
|
58
|
+
}));
|
|
59
|
+
return (_jsx(Legend, { variant: variant, payload: customPayload, labels: axis, position: legend.position, direction: legend.direction }));
|
|
60
|
+
}, [autoSeries, barColors, variant, axis, legend.position, legend.direction]);
|
|
61
|
+
const legendWrapperStyle = useMemo(() => ({
|
|
62
|
+
position: "absolute",
|
|
63
|
+
top: legend.position === "top-center" ||
|
|
64
|
+
legend.position === "top-left" ||
|
|
65
|
+
legend.position === "top-right"
|
|
66
|
+
? reverseX ? 32 : 0
|
|
67
|
+
: undefined,
|
|
68
|
+
bottom: legend.position === "bottom-center" ||
|
|
69
|
+
legend.position === "bottom-left" ||
|
|
70
|
+
legend.position === "bottom-right"
|
|
71
|
+
? 0
|
|
72
|
+
: undefined,
|
|
73
|
+
paddingBottom: legend.position === "bottom-center" ||
|
|
74
|
+
legend.position === "bottom-left" ||
|
|
75
|
+
legend.position === "bottom-right"
|
|
76
|
+
? "var(--static-space-40)"
|
|
77
|
+
: undefined,
|
|
78
|
+
left: (axis === "y" || axis === "both") &&
|
|
79
|
+
(legend.position === "top-center" || legend.position === "bottom-center")
|
|
80
|
+
? "var(--static-space-64)"
|
|
81
|
+
: 0,
|
|
82
|
+
width: (axis === "y" || axis === "both") &&
|
|
83
|
+
(legend.position === "top-center" || legend.position === "bottom-center")
|
|
84
|
+
? "calc(100% - var(--static-space-64))"
|
|
85
|
+
: "100%",
|
|
86
|
+
right: 0,
|
|
87
|
+
margin: 0,
|
|
88
|
+
}), [legend.position, reverseX, axis]);
|
|
89
|
+
const filteredData = React.useMemo(() => {
|
|
90
|
+
if (!selectedDateRange || !data || data.length === 0) {
|
|
91
|
+
return data;
|
|
92
|
+
}
|
|
93
|
+
return data.filter((item) => {
|
|
94
|
+
try {
|
|
95
|
+
if (!item[xAxisKey] || !selectedDateRange.startDate || !selectedDateRange.endDate) {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
const itemDate = typeof item[xAxisKey] === "string"
|
|
99
|
+
? new Date(item[xAxisKey])
|
|
100
|
+
: item[xAxisKey];
|
|
101
|
+
return itemDate >= selectedDateRange.startDate && itemDate <= selectedDateRange.endDate;
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}, [data, selectedDateRange, xAxisKey]);
|
|
108
|
+
return (_jsxs(Column, { fillWidth: true, minHeight: height, border: border, radius: "l", "data-viz-style": dataVizStyle || mode, ...flex, children: [_jsx(ChartHeader, { title: title, description: description, dateRange: selectedDateRange, date: date, onDateRangeChange: handleDateRangeChange, presets: date?.presets }), _jsxs(Row, { fill: true, borderTop: (title || description || date?.selector) ? (border || "neutral-alpha-weak") : undefined, topRadius: flex.radius || "l", overflow: "hidden", children: [_jsx(ChartStatus, { loading: loading, empty: !filteredData || filteredData.length === 0, emptyState: emptyState, error: error, errorState: errorState }), !loading && !error && filteredData && filteredData.length > 0 && (_jsx(RechartsResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(RechartsBarChart, { data: filteredData, margin: { left: 0, bottom: 0, top: 0, right: 0 }, barGap: 4, children: [_jsx(RechartsCartesianGrid, { vertical: grid === "x" || grid === "both", horizontal: grid === "y" || grid === "both", stroke: "var(--neutral-alpha-weak)" }), legend.display && (_jsx(RechartsLegend, { content: legendContent, wrapperStyle: legendWrapperStyle })), _jsx(RechartsXAxis, { dataKey: xAxisKey, axisLine: false, tickLine: tickLine, orientation: reverseX ? "top" : "bottom", tick: axis === "x" || axis === "both"
|
|
109
|
+
? {
|
|
110
|
+
fill: tickFill,
|
|
111
|
+
fontSize: tickFontSize,
|
|
112
|
+
}
|
|
113
|
+
: false, tickFormatter: (value) => {
|
|
114
|
+
const dataPoint = data.find((item) => item[xAxisKey] === value);
|
|
115
|
+
return formatDate(value, date, dataPoint);
|
|
116
|
+
}, hide: !(axis === "x" || axis === "both") }), (axis === "y" || axis === "both") && (_jsx(RechartsYAxis, { allowDataOverflow: true, width: 64, padding: { top: 40 }, orientation: reverseY ? "right" : "left", tickLine: tickLine, tick: {
|
|
117
|
+
fill: tickFill,
|
|
118
|
+
fontSize: tickFontSize,
|
|
119
|
+
}, axisLine: {
|
|
120
|
+
stroke: axisLineStroke,
|
|
121
|
+
} })), tooltip && (_jsx(RechartsTooltip, { cursor: { fill: hover ? "var(--neutral-alpha-weak)" : "var(--static-transparent)" }, content: (props) => (_jsx(DataTooltip, { ...props, date: date, variant: variant })) })), _jsx("defs", { children: barColors.map((color, index) => (_jsx(LinearGradient, { id: `barGradient${chartId}${index}`, color: color, variant: variant }, `gradient-${chartId}-${index}`))) }), autoSeries.map((series, index) => (_jsx(RechartsBar, { dataKey: series.key, name: series.key, fill: `url(#barGradient${chartId}${index})`, stroke: barColors[index], strokeWidth: 1, transform: "translate(0, -1)", barSize: typeof barWidth === "string" && barWidth === "fill"
|
|
122
|
+
? "100%"
|
|
123
|
+
: typeof barWidth === "string" && barWidth === "xs"
|
|
124
|
+
? 12
|
|
125
|
+
: typeof barWidth === "string" && barWidth === "s"
|
|
126
|
+
? 16
|
|
127
|
+
: typeof barWidth === "string" && barWidth === "m"
|
|
128
|
+
? 24
|
|
129
|
+
: typeof barWidth === "string" && barWidth === "l"
|
|
130
|
+
? 40
|
|
131
|
+
: typeof barWidth === "string" && barWidth === "xl"
|
|
132
|
+
? 64
|
|
133
|
+
: barWidth, radius: barWidth === "fill" || barWidth === "xl" ? [10, 10, 10, 10] : [6, 6, 6, 6] }, series.key)))] }) }))] })] }));
|
|
134
|
+
};
|
|
135
|
+
BarChart.displayName = "BarChart";
|
|
136
|
+
export default BarChart;
|
|
137
|
+
//# sourceMappingURL=BarChart.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChart.impl.js","sourceRoot":"","sources":["../../../src/modules/data/BarChart.impl.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,GAAG,IAAI,WAAW,EAClB,KAAK,IAAI,aAAa,EACtB,KAAK,IAAI,aAAa,EACtB,mBAAmB,IAAI,2BAA2B,EAClD,aAAa,IAAI,qBAAqB,EACtC,OAAO,IAAI,eAAe,EAC1B,MAAM,IAAI,cAAc,GACzB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAEL,cAAc,EACd,WAAW,EACX,MAAM,EAEN,WAAW,EACX,WAAW,GAEZ,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAWhE,MAAM,QAAQ,GAA4B,CAAC,EACzC,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,UAAU,EACV,UAAU,EACV,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,IAAI,EACd,MAAM,EAAE,UAAU,GAAG,EAAE,EACvB,IAAI,GAAG,MAAM,EACb,IAAI,GAAG,GAAG,EACV,MAAM,GAAG,oBAAoB,EAC7B,OAAO,EAAE,WAAW,EACpB,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,gBAAgB,EAAE,YAAY,EAC9B,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,EACJ,OAAO,EAAE,YAAY,EACrB,IAAI,EACJ,MAAM,EACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EAChE,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,GACjC,GAAG,YAAY,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,WAAW,IAAI,YAAY,CAAC;IAC5C,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACrE,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,UAAU;QAC3C,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC;IACF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG;QACtB,CAAC,CAAC;YACE,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG;SAClB;QACH,CAAC,CAAC,SAAS,CACd,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YAC7B,oBAAoB,CAAC;gBACnB,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,IAAI,CAAC,GAAG;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7B,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,QAAmB,EAAE,EAAE;QACtB,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CACH,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,CAAC;QACJ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;KACjE,CAAC,CAAC,EACL,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC;IAE/F,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC9E,MAAM,UAAU,GACd,WAAW,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5B,GAAG;YACH,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;SACnD,CAAC,CAAC,CAAC;IAEV,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAU,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACvD,KAAK,EAAE,MAAM,CAAC,GAAG;YACjB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;SACxB,CAAC,CAAC,CAAC;QAEJ,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAE,OAAuB,EAChC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,SAAS,EAAE,MAAM,CAAC,SAAS,GAC3B,CACH,CAAC;IACJ,CAAC,EACD,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAC1E,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,UAAmB;QAC7B,GAAG,EACD,MAAM,CAAC,QAAQ,KAAK,YAAY;YAChC,MAAM,CAAC,QAAQ,KAAK,UAAU;YAC9B,MAAM,CAAC,QAAQ,KAAK,WAAW;YAC7B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,CAAC,SAAS;QACf,MAAM,EACJ,MAAM,CAAC,QAAQ,KAAK,eAAe;YACnC,MAAM,CAAC,QAAQ,KAAK,aAAa;YACjC,MAAM,CAAC,QAAQ,KAAK,cAAc;YAChC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,SAAS;QACf,aAAa,EACX,MAAM,CAAC,QAAQ,KAAK,eAAe;YACnC,MAAM,CAAC,QAAQ,KAAK,aAAa;YACjC,MAAM,CAAC,QAAQ,KAAK,cAAc;YAChC,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,SAAS;QACf,IAAI,EACF,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC;YACjC,CAAC,MAAM,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,KAAK,eAAe,CAAC;YACvE,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,CAAC;QACP,KAAK,EACH,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC;YACjC,CAAC,MAAM,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,KAAK,eAAe,CAAC;YACvE,CAAC,CAAC,qCAAqC;YACvC,CAAC,CAAC,MAAM;QACZ,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV,CAAC,EACF,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAClC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;oBAClF,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;oBAChC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAW,CAAC;oBACpC,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAU,CAAC;gBAE/B,OAAO,QAAQ,IAAI,iBAAiB,CAAC,SAAS,IAAI,QAAQ,IAAI,iBAAiB,CAAC,OAAO,CAAC;YAC1F,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExC,OAAO,CACL,MAAC,MAAM,IACL,SAAS,QACT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAC,GAAG,oBACM,YAAY,IAAI,IAAI,KAChC,IAAI,aAER,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,qBAAqB,EACxC,OAAO,EAAE,IAAI,EAAE,OAAO,GACtB,EACF,MAAC,GAAG,IAAC,IAAI,QAAC,SAAS,EAAE,CAAC,KAAK,IAAI,WAAW,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,MAAoB,IAAI,GAAG,EAAE,QAAQ,EAAC,QAAQ,aAC1K,KAAC,WAAW,IACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EACjD,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,GACtB,EACD,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAChE,KAAC,2BAA2B,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YACrD,MAAC,gBAAgB,IACf,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAChD,MAAM,EAAE,CAAC,aAET,KAAC,qBAAqB,IAAC,QAAQ,EAAE,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,EAAE,MAAM,EAAC,2BAA2B,GAAG,EACnJ,MAAM,CAAC,OAAO,IAAI,CACjB,KAAC,cAAc,IACb,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,kBAAkB,GAChC,CACH,EACD,KAAC,aAAa,IACZ,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EACxC,IAAI,EACF,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM;wCAC7B,CAAC,CAAC;4CACE,IAAI,EAAE,QAAQ;4CACd,QAAQ,EAAE,YAAY;yCACvB;wCACH,CAAC,CAAC,KAAK,EAEX,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;wCACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC;wCAChE,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oCAC5C,CAAC,EACD,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC,GACxC,EACD,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CACpC,KAAC,aAAa,IACZ,iBAAiB,QACjB,KAAK,EAAE,EAAE,EACT,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EACpB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACxC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE;wCACJ,IAAI,EAAE,QAAQ;wCACd,QAAQ,EAAE,YAAY;qCACvB,EACD,QAAQ,EAAE;wCACR,MAAM,EAAE,cAAc;qCACvB,GACD,CACH,EACA,OAAO,IAAI,CACV,KAAC,eAAe,IACd,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,EAAE,EACnF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAClB,KAAC,WAAW,OAAK,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAuB,GAAI,CACzE,GACD,CACH,EACD,yBACG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,KAAC,cAAc,IAEb,EAAE,EAAE,cAAc,OAAO,GAAG,KAAK,EAAE,EACnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAuB,IAH3B,YAAY,OAAO,IAAI,KAAK,EAAE,CAInC,CACH,CAAC,GACG,EACN,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,WAAW,IAEV,OAAO,EAAE,MAAM,CAAC,GAAG,EACnB,IAAI,EAAE,MAAM,CAAC,GAAG,EAChB,IAAI,EAAE,mBAAmB,OAAO,GAAG,KAAK,GAAG,EAC3C,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EACxB,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,kBAAkB,EAC5B,OAAO,EACL,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM;wCACjD,CAAC,CAAC,MAAM;wCACR,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;4CACjD,CAAC,CAAC,EAAE;4CACJ,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,GAAG;gDAChD,CAAC,CAAC,EAAE;gDACJ,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,GAAG;oDAChD,CAAC,CAAC,EAAE;oDACJ,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,GAAG;wDAChD,CAAC,CAAC,EAAE;wDACJ,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;4DACjD,CAAC,CAAC,EAAE;4DACJ,CAAC,CAAC,QAAQ,EAExB,MAAM,EACJ,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAvBvE,MAAM,CAAC,GAAG,CAyBf,CACH,CAAC,IACe,GACS,CAC/B,IACG,IACC,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,eAAe,QAAQ,CAAC"}
|
|
@@ -1,137 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx
|
|
3
|
-
import React, {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import { useDataTheme } from "../../contexts/DataThemeProvider";
|
|
10
|
-
const BarChart = ({ title, description, data, series, date, emptyState, errorState, error = false, loading = false, tooltip = true, legend: legendProp = {}, axis = "both", grid = "y", border = "neutral-alpha-weak", variant: variantProp, barWidth = "l", hover = false, reverseY = false, reverseX = false, "data-viz-style": dataVizStyle, ...flex }) => {
|
|
11
|
-
const { variant: themeVariant, mode, height, tick: { fill: tickFill, fontSize: tickFontSize, line: tickLine }, axis: { stroke: axisLineStroke }, } = useDataTheme();
|
|
12
|
-
const variant = variantProp || themeVariant;
|
|
13
|
-
const legend = {
|
|
14
|
-
display: legendProp.display !== undefined ? legendProp.display : true,
|
|
15
|
-
position: legendProp.position || "top-left",
|
|
16
|
-
direction: legendProp.direction,
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, { Suspense } from "react";
|
|
4
|
+
import { MissingDependency } from "../../utils/MissingDependency";
|
|
5
|
+
const BarChartImpl = React.lazy(() => import("./BarChart.impl").catch(() => {
|
|
6
|
+
console.warn('[@once-ui-system/core] <BarChart /> requires the "recharts" package. Install it with: npm install recharts');
|
|
7
|
+
return {
|
|
8
|
+
default: () => _jsx(MissingDependency, { component: "BarChart", packageName: "recharts" }),
|
|
17
9
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
startDate: date.start,
|
|
21
|
-
endDate: date.end,
|
|
22
|
-
}
|
|
23
|
-
: undefined);
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (date?.start && date?.end) {
|
|
26
|
-
setSelectedDateRange({
|
|
27
|
-
startDate: date.start,
|
|
28
|
-
endDate: date.end,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}, [date?.start, date?.end]);
|
|
32
|
-
const handleDateRangeChange = useCallback((newRange) => {
|
|
33
|
-
setSelectedDateRange(newRange);
|
|
34
|
-
if (date?.onChange) {
|
|
35
|
-
date.onChange(newRange);
|
|
36
|
-
}
|
|
37
|
-
}, [date]);
|
|
38
|
-
const seriesArray = Array.isArray(series) ? series : series ? [series] : [];
|
|
39
|
-
const seriesKeys = seriesArray.map((s) => s.key);
|
|
40
|
-
const chartId = React.useMemo(() => Math.random().toString(36).substring(2, 9), []);
|
|
41
|
-
const coloredSeriesArray = useMemo(() => seriesArray.map((s, index) => ({
|
|
42
|
-
...s,
|
|
43
|
-
color: s.color || getDistributedColor(index, seriesArray.length),
|
|
44
|
-
})), [seriesArray]);
|
|
45
|
-
const xAxisKey = Object.keys(data[0] || {}).find((key) => !seriesKeys.includes(key)) || "name";
|
|
46
|
-
const autoKeys = Object.keys(data[0] || {}).filter((key) => key !== xAxisKey);
|
|
47
|
-
const autoSeries = seriesArray.length > 0
|
|
48
|
-
? coloredSeriesArray
|
|
49
|
-
: autoKeys.map((key, index) => ({
|
|
50
|
-
key,
|
|
51
|
-
color: getDistributedColor(index, autoKeys.length),
|
|
52
|
-
}));
|
|
53
|
-
const barColors = autoSeries.map((s) => `var(--data-${s.color})`);
|
|
54
|
-
const legendContent = useCallback((props) => {
|
|
55
|
-
const customPayload = autoSeries.map((series, index) => ({
|
|
56
|
-
value: series.key,
|
|
57
|
-
color: barColors[index],
|
|
58
|
-
}));
|
|
59
|
-
return (_jsx(Legend, { variant: variant, payload: customPayload, labels: axis, position: legend.position, direction: legend.direction }));
|
|
60
|
-
}, [autoSeries, barColors, variant, axis, legend.position, legend.direction]);
|
|
61
|
-
const legendWrapperStyle = useMemo(() => ({
|
|
62
|
-
position: "absolute",
|
|
63
|
-
top: legend.position === "top-center" ||
|
|
64
|
-
legend.position === "top-left" ||
|
|
65
|
-
legend.position === "top-right"
|
|
66
|
-
? reverseX ? 32 : 0
|
|
67
|
-
: undefined,
|
|
68
|
-
bottom: legend.position === "bottom-center" ||
|
|
69
|
-
legend.position === "bottom-left" ||
|
|
70
|
-
legend.position === "bottom-right"
|
|
71
|
-
? 0
|
|
72
|
-
: undefined,
|
|
73
|
-
paddingBottom: legend.position === "bottom-center" ||
|
|
74
|
-
legend.position === "bottom-left" ||
|
|
75
|
-
legend.position === "bottom-right"
|
|
76
|
-
? "var(--static-space-40)"
|
|
77
|
-
: undefined,
|
|
78
|
-
left: (axis === "y" || axis === "both") &&
|
|
79
|
-
(legend.position === "top-center" || legend.position === "bottom-center")
|
|
80
|
-
? "var(--static-space-64)"
|
|
81
|
-
: 0,
|
|
82
|
-
width: (axis === "y" || axis === "both") &&
|
|
83
|
-
(legend.position === "top-center" || legend.position === "bottom-center")
|
|
84
|
-
? "calc(100% - var(--static-space-64))"
|
|
85
|
-
: "100%",
|
|
86
|
-
right: 0,
|
|
87
|
-
margin: 0,
|
|
88
|
-
}), [legend.position, reverseX, axis]);
|
|
89
|
-
const filteredData = React.useMemo(() => {
|
|
90
|
-
if (!selectedDateRange || !data || data.length === 0) {
|
|
91
|
-
return data;
|
|
92
|
-
}
|
|
93
|
-
return data.filter((item) => {
|
|
94
|
-
try {
|
|
95
|
-
if (!item[xAxisKey] || !selectedDateRange.startDate || !selectedDateRange.endDate) {
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
const itemDate = typeof item[xAxisKey] === "string"
|
|
99
|
-
? new Date(item[xAxisKey])
|
|
100
|
-
: item[xAxisKey];
|
|
101
|
-
return itemDate >= selectedDateRange.startDate && itemDate <= selectedDateRange.endDate;
|
|
102
|
-
}
|
|
103
|
-
catch (e) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}, [data, selectedDateRange, xAxisKey]);
|
|
108
|
-
return (_jsxs(Column, { fillWidth: true, minHeight: height, border: border, radius: "l", "data-viz-style": dataVizStyle || mode, ...flex, children: [_jsx(ChartHeader, { title: title, description: description, dateRange: selectedDateRange, date: date, onDateRangeChange: handleDateRangeChange, presets: date?.presets }), _jsxs(Row, { fill: true, borderTop: (title || description || date?.selector) ? (border || "neutral-alpha-weak") : undefined, topRadius: flex.radius || "l", overflow: "hidden", children: [_jsx(ChartStatus, { loading: loading, empty: !filteredData || filteredData.length === 0, emptyState: emptyState, error: error, errorState: errorState }), !loading && !error && filteredData && filteredData.length > 0 && (_jsx(RechartsResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(RechartsBarChart, { data: filteredData, margin: { left: 0, bottom: 0, top: 0, right: 0 }, barGap: 4, children: [_jsx(RechartsCartesianGrid, { vertical: grid === "x" || grid === "both", horizontal: grid === "y" || grid === "both", stroke: "var(--neutral-alpha-weak)" }), legend.display && (_jsx(RechartsLegend, { content: legendContent, wrapperStyle: legendWrapperStyle })), _jsx(RechartsXAxis, { dataKey: xAxisKey, axisLine: false, tickLine: tickLine, orientation: reverseX ? "top" : "bottom", tick: axis === "x" || axis === "both"
|
|
109
|
-
? {
|
|
110
|
-
fill: tickFill,
|
|
111
|
-
fontSize: tickFontSize,
|
|
112
|
-
}
|
|
113
|
-
: false, tickFormatter: (value) => {
|
|
114
|
-
const dataPoint = data.find((item) => item[xAxisKey] === value);
|
|
115
|
-
return formatDate(value, date, dataPoint);
|
|
116
|
-
}, hide: !(axis === "x" || axis === "both") }), (axis === "y" || axis === "both") && (_jsx(RechartsYAxis, { allowDataOverflow: true, width: 64, padding: { top: 40 }, orientation: reverseY ? "right" : "left", tickLine: tickLine, tick: {
|
|
117
|
-
fill: tickFill,
|
|
118
|
-
fontSize: tickFontSize,
|
|
119
|
-
}, axisLine: {
|
|
120
|
-
stroke: axisLineStroke,
|
|
121
|
-
} })), tooltip && (_jsx(RechartsTooltip, { cursor: { fill: hover ? "var(--neutral-alpha-weak)" : "var(--static-transparent)" }, content: (props) => (_jsx(DataTooltip, { ...props, date: date, variant: variant })) })), _jsx("defs", { children: barColors.map((color, index) => (_jsx(LinearGradient, { id: `barGradient${chartId}${index}`, color: color, variant: variant }, `gradient-${chartId}-${index}`))) }), autoSeries.map((series, index) => (_jsx(RechartsBar, { dataKey: series.key, name: series.key, fill: `url(#barGradient${chartId}${index})`, stroke: barColors[index], strokeWidth: 1, transform: "translate(0, -1)", barSize: typeof barWidth === "string" && barWidth === "fill"
|
|
122
|
-
? "100%"
|
|
123
|
-
: typeof barWidth === "string" && barWidth === "xs"
|
|
124
|
-
? 12
|
|
125
|
-
: typeof barWidth === "string" && barWidth === "s"
|
|
126
|
-
? 16
|
|
127
|
-
: typeof barWidth === "string" && barWidth === "m"
|
|
128
|
-
? 24
|
|
129
|
-
: typeof barWidth === "string" && barWidth === "l"
|
|
130
|
-
? 40
|
|
131
|
-
: typeof barWidth === "string" && barWidth === "xl"
|
|
132
|
-
? 64
|
|
133
|
-
: barWidth, radius: barWidth === "fill" || barWidth === "xl" ? [10, 10, 10, 10] : [6, 6, 6, 6] }, series.key)))] }) }))] })] }));
|
|
134
|
-
};
|
|
10
|
+
}));
|
|
11
|
+
const BarChart = (props) => (_jsx(Suspense, { fallback: null, children: _jsx(BarChartImpl, { ...props }) }));
|
|
135
12
|
BarChart.displayName = "BarChart";
|
|
136
13
|
export { BarChart };
|
|
137
14
|
//# sourceMappingURL=BarChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/modules/data/BarChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/modules/data/BarChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACnC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;IACnC,OAAO,CAAC,IAAI,CACV,4GAA4G,CAC7G,CAAC;IACF,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,KAAC,iBAAiB,IAAC,SAAS,EAAC,UAAU,EAAC,WAAW,EAAC,UAAU,GAAG;KACjF,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,QAAQ,GAA4B,CAAC,KAAK,EAAE,EAAE,CAAC,CACnD,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,YAAY,OAAK,KAAK,GAAI,GAClB,CACZ,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -2,8 +2,8 @@ import React from "react";
|
|
|
2
2
|
import { ChartVariant, DateConfig } from "./interfaces";
|
|
3
3
|
interface DataTooltipProps {
|
|
4
4
|
active?: boolean;
|
|
5
|
-
payload?: any[];
|
|
6
|
-
label?: string;
|
|
5
|
+
payload?: readonly any[];
|
|
6
|
+
label?: string | number;
|
|
7
7
|
dataKey?: string;
|
|
8
8
|
DataTooltip?: React.ReactNode;
|
|
9
9
|
date?: DateConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTooltip.d.ts","sourceRoot":"","sources":["../../../src/modules/data/DataTooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTooltip.d.ts","sourceRoot":"","sources":["../../../src/modules/data/DataTooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyD3C,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.d.ts","sourceRoot":"","sources":["../../../src/modules/data/Legend.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Legend.d.ts","sourceRoot":"","sources":["../../../src/modules/data/Legend.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EACL,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,CAAC;IACpB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAiGjC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
interface LineBarChartProps extends ChartProps {
|
|
4
|
-
barWidth?: barWidth;
|
|
5
|
-
curve?: curveType;
|
|
6
|
-
reverseY?: boolean;
|
|
7
|
-
reverseX?: boolean;
|
|
8
|
-
"data-viz-style"?: string;
|
|
9
|
-
}
|
|
2
|
+
import type { LineBarChartProps } from "./LineBarChart.impl";
|
|
10
3
|
declare const LineBarChart: React.FC<LineBarChartProps>;
|
|
11
4
|
export { LineBarChart };
|
|
12
5
|
export type { LineBarChartProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineBarChart.d.ts","sourceRoot":"","sources":["../../../src/modules/data/LineBarChart.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"LineBarChart.d.ts","sourceRoot":"","sources":["../../../src/modules/data/LineBarChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAa7D,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAI7C,CAAC;AAIF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ChartProps, barWidth, curveType } from ".";
|
|
3
|
+
export interface LineBarChartProps extends ChartProps {
|
|
4
|
+
barWidth?: barWidth;
|
|
5
|
+
curve?: curveType;
|
|
6
|
+
reverseY?: boolean;
|
|
7
|
+
reverseX?: boolean;
|
|
8
|
+
"data-viz-style"?: string;
|
|
9
|
+
}
|
|
10
|
+
declare const LineBarChart: React.FC<LineBarChartProps>;
|
|
11
|
+
export default LineBarChart;
|
|
12
|
+
//# sourceMappingURL=LineBarChart.impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineBarChart.impl.d.ts","sourceRoot":"","sources":["../../../src/modules/data/LineBarChart.impl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,OAAO,EAML,UAAU,EAGV,QAAQ,EACR,SAAS,EACV,MAAM,GAAG,CAAC;AAIX,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqT7C,CAAC;AAIF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React, { useState, useEffect, useMemo, useCallback } from "react";
|
|
4
|
+
import { isWithinInterval, parseISO } from "date-fns";
|
|
5
|
+
import { formatDate } from "./utils/formatDate";
|
|
6
|
+
import { ComposedChart as RechartsComposedChart, Bar as RechartsBar, XAxis as RechartsXAxis, YAxis as RechartsYAxis, CartesianGrid as RechartsCartesianGrid, Tooltip as RechartsTooltip, ResponsiveContainer as RechartsResponsiveContainer, Legend as RechartsLegend, Area as RechartsArea, } from "recharts";
|
|
7
|
+
import { Column, Row } from "../../components";
|
|
8
|
+
import { LinearGradient, ChartHeader, DataTooltip, Legend, ChartStatus, } from ".";
|
|
9
|
+
import { useDataTheme } from "../../contexts/DataThemeProvider";
|
|
10
|
+
const LineBarChart = ({ title, description, data, series, date, emptyState, errorState, error = false, loading = false, tooltip = true, legend: legendProp = {}, grid = "y", axis = "both", border = "neutral-alpha-weak", variant: variantProp, barWidth = "l", curve = "natural", reverseY = false, reverseX = false, "data-viz-style": dataVizStyle, ...flex }) => {
|
|
11
|
+
const { variant: themeVariant, mode, height, tick: { fill: tickFill, fontSize: tickFontSize, line: tickLine }, axis: { stroke: axisLineStroke }, } = useDataTheme();
|
|
12
|
+
const variant = variantProp || themeVariant;
|
|
13
|
+
const legend = {
|
|
14
|
+
display: legendProp.display !== undefined ? legendProp.display : true,
|
|
15
|
+
position: legendProp.position || "top-left",
|
|
16
|
+
direction: legendProp.direction,
|
|
17
|
+
};
|
|
18
|
+
const [selectedDateRange, setSelectedDateRange] = useState(date?.start && date?.end
|
|
19
|
+
? {
|
|
20
|
+
startDate: date.start,
|
|
21
|
+
endDate: date.end,
|
|
22
|
+
}
|
|
23
|
+
: undefined);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (date?.start && date?.end) {
|
|
26
|
+
setSelectedDateRange({
|
|
27
|
+
startDate: date.start,
|
|
28
|
+
endDate: date.end,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}, [date?.start, date?.end]);
|
|
32
|
+
const allSeriesArray = Array.isArray(series) ? series : series ? [series] : [];
|
|
33
|
+
const seriesKeys = allSeriesArray.map((s) => s.key);
|
|
34
|
+
const xAxisKey = Object.keys(data[0] || {}).find((key) => !seriesKeys.includes(key)) || "name";
|
|
35
|
+
const filteredData = React.useMemo(() => {
|
|
36
|
+
if (selectedDateRange?.startDate && selectedDateRange?.endDate && xAxisKey) {
|
|
37
|
+
const startDate = selectedDateRange.startDate;
|
|
38
|
+
const endDate = selectedDateRange.endDate;
|
|
39
|
+
if (startDate instanceof Date && endDate instanceof Date) {
|
|
40
|
+
return data.filter((item) => {
|
|
41
|
+
try {
|
|
42
|
+
const itemDateValue = item[xAxisKey];
|
|
43
|
+
if (!itemDateValue)
|
|
44
|
+
return false;
|
|
45
|
+
const itemDate = typeof itemDateValue === "string" ? parseISO(itemDateValue) : itemDateValue;
|
|
46
|
+
return isWithinInterval(itemDate, {
|
|
47
|
+
start: startDate,
|
|
48
|
+
end: endDate,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return data;
|
|
58
|
+
}, [data, selectedDateRange, xAxisKey]);
|
|
59
|
+
const handleDateRangeChange = useCallback((newRange) => {
|
|
60
|
+
setSelectedDateRange(newRange);
|
|
61
|
+
if (date?.onChange) {
|
|
62
|
+
date.onChange(newRange);
|
|
63
|
+
}
|
|
64
|
+
}, [date]);
|
|
65
|
+
const chartSeriesArray = Array.isArray(series) ? series : series ? [series] : [];
|
|
66
|
+
if (chartSeriesArray.length < 2) {
|
|
67
|
+
console.warn("LineBarChart requires at least 2 series (one for line, one for bar)");
|
|
68
|
+
}
|
|
69
|
+
const lineSeries = chartSeriesArray[0] || { key: "value1", color: "blue" };
|
|
70
|
+
const barSeries = chartSeriesArray[1] || { key: "value2", color: "green" };
|
|
71
|
+
const lineColor = lineSeries.color || "blue";
|
|
72
|
+
const barColor = barSeries.color || "green";
|
|
73
|
+
const finalLineColor = `var(--data-${lineColor})`;
|
|
74
|
+
const finalBarColor = `var(--data-${barColor})`;
|
|
75
|
+
const legendContent = useMemo(() => (_jsx(Legend, { variant: variant, colors: [finalLineColor, finalBarColor], labels: axis, position: legend.position, direction: legend.direction })), [variant, finalLineColor, finalBarColor, axis, legend.position, legend.direction]);
|
|
76
|
+
const legendWrapperStyle = useMemo(() => ({
|
|
77
|
+
position: "absolute",
|
|
78
|
+
top: legend.position === "top-center" ||
|
|
79
|
+
legend.position === "top-left" ||
|
|
80
|
+
legend.position === "top-right"
|
|
81
|
+
? reverseX ? 32 : 0
|
|
82
|
+
: undefined,
|
|
83
|
+
bottom: legend.position === "bottom-center" ||
|
|
84
|
+
legend.position === "bottom-left" ||
|
|
85
|
+
legend.position === "bottom-right"
|
|
86
|
+
? 0
|
|
87
|
+
: undefined,
|
|
88
|
+
paddingBottom: legend.position === "bottom-center" ||
|
|
89
|
+
legend.position === "bottom-left" ||
|
|
90
|
+
legend.position === "bottom-right"
|
|
91
|
+
? "var(--static-space-40)"
|
|
92
|
+
: undefined,
|
|
93
|
+
left: (axis === "y" || axis === "both") &&
|
|
94
|
+
(legend.position === "top-center" || legend.position === "bottom-center")
|
|
95
|
+
? "var(--static-space-64)"
|
|
96
|
+
: 0,
|
|
97
|
+
width: (axis === "y" || axis === "both") &&
|
|
98
|
+
(legend.position === "top-center" || legend.position === "bottom-center")
|
|
99
|
+
? "calc(100% - var(--static-space-64))"
|
|
100
|
+
: "100%",
|
|
101
|
+
right: 0,
|
|
102
|
+
margin: 0,
|
|
103
|
+
}), [legend.position, reverseX, axis]);
|
|
104
|
+
const chartId = React.useMemo(() => Math.random().toString(36).substring(2, 9), []);
|
|
105
|
+
return (_jsxs(Column, { fillWidth: true, height: height, border: border, radius: "l", "data-viz-style": dataVizStyle || mode, ...flex, children: [_jsx(ChartHeader, { title: title, description: description, dateRange: selectedDateRange, date: date, onDateRangeChange: handleDateRangeChange, presets: date?.presets }), _jsxs(Row, { fill: true, borderTop: (title || description || date?.selector) ? (border || "neutral-alpha-weak") : undefined, topRadius: flex.radius || "l", overflow: "hidden", children: [_jsx(ChartStatus, { loading: loading, empty: !filteredData || filteredData.length === 0, emptyState: emptyState, error: error, errorState: errorState }), !loading && !error && filteredData && filteredData.length > 0 && (_jsx(RechartsResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(RechartsComposedChart, { data: filteredData, margin: { left: 0, bottom: 0, top: 0, right: 0 }, barGap: 4, children: [_jsxs("defs", { children: [_jsx(LinearGradient, { id: `barGradient${chartId}`, color: finalBarColor, variant: variant }), _jsx(LinearGradient, { id: `lineGradient${chartId}`, color: finalLineColor, variant: variant })] }), _jsx(RechartsCartesianGrid, { vertical: grid === "x" || grid === "both", horizontal: grid === "y" || grid === "both", stroke: "var(--neutral-alpha-weak)" }), legend.display && (_jsx(RechartsLegend, { content: legendContent, wrapperStyle: legendWrapperStyle })), _jsx(RechartsXAxis, { height: 32, tickMargin: 6, dataKey: xAxisKey, hide: !(axis === "x" || axis === "both"), orientation: reverseX ? "top" : "bottom", axisLine: {
|
|
106
|
+
stroke: axisLineStroke,
|
|
107
|
+
}, tickLine: tickLine, tick: {
|
|
108
|
+
fill: tickFill,
|
|
109
|
+
fontSize: tickFontSize,
|
|
110
|
+
}, tickFormatter: (value) => {
|
|
111
|
+
const dataPoint = data.find((item) => item[xAxisKey] === value);
|
|
112
|
+
return formatDate(value, date, dataPoint);
|
|
113
|
+
} }), (axis === "y" || axis === "both") && (_jsx(RechartsYAxis, { width: 64, padding: { top: 40 }, allowDataOverflow: true, orientation: reverseY ? "right" : "left", tickLine: tickLine, tick: {
|
|
114
|
+
fill: tickFill,
|
|
115
|
+
fontSize: tickFontSize,
|
|
116
|
+
}, axisLine: {
|
|
117
|
+
stroke: axisLineStroke,
|
|
118
|
+
} })), tooltip && (_jsx(RechartsTooltip, { cursor: {
|
|
119
|
+
stroke: "var(--neutral-border-strong)",
|
|
120
|
+
strokeWidth: 1,
|
|
121
|
+
}, content: (props) => (_jsx(DataTooltip, { ...props, variant: variant, date: date, dataKey: xAxisKey })) })), _jsx(RechartsArea, { type: curve, dataKey: lineSeries.key, name: lineSeries.key, stroke: finalLineColor, transform: "translate(0, -1)", fill: `url(#lineGradient${chartId})`, activeDot: {
|
|
122
|
+
r: 4,
|
|
123
|
+
fill: finalLineColor,
|
|
124
|
+
stroke: "var(--background)",
|
|
125
|
+
strokeWidth: 0,
|
|
126
|
+
} }), _jsx(RechartsBar, { dataKey: barSeries.key, name: barSeries.key, fill: `url(#barGradient${chartId})`, stroke: finalBarColor, strokeWidth: 1, transform: "translate(0, -1)", radius: [4, 4, 4, 4], barSize: barWidth === "fill"
|
|
127
|
+
? "100%"
|
|
128
|
+
: barWidth === "xs"
|
|
129
|
+
? 6
|
|
130
|
+
: barWidth === "s"
|
|
131
|
+
? 12
|
|
132
|
+
: barWidth === "m"
|
|
133
|
+
? 20
|
|
134
|
+
: barWidth === "l"
|
|
135
|
+
? 40
|
|
136
|
+
: barWidth === "xl"
|
|
137
|
+
? 50
|
|
138
|
+
: barWidth })] }) }))] })] }));
|
|
139
|
+
};
|
|
140
|
+
LineBarChart.displayName = "LineBarChart";
|
|
141
|
+
export default LineBarChart;
|
|
142
|
+
//# sourceMappingURL=LineBarChart.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineBarChart.impl.js","sourceRoot":"","sources":["../../../src/modules/data/LineBarChart.impl.tsx"],"names":[],"mappings":"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"}
|