@yamada-ui/charts 1.1.2 → 1.1.3
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/area-chart-gradient.d.mts +11 -0
- package/dist/area-chart-gradient.d.ts +11 -0
- package/dist/area-chart-gradient.js +47 -0
- package/dist/area-chart-gradient.js.map +1 -0
- package/dist/area-chart-gradient.mjs +8 -0
- package/dist/area-chart-gradient.mjs.map +1 -0
- package/dist/area-chart-split.d.mts +10 -0
- package/dist/area-chart-split.d.ts +10 -0
- package/dist/area-chart-split.js +52 -0
- package/dist/area-chart-split.js.map +1 -0
- package/dist/area-chart-split.mjs +8 -0
- package/dist/area-chart-split.mjs.map +1 -0
- package/dist/area-chart.d.mts +41 -0
- package/dist/area-chart.d.ts +41 -0
- package/dist/area-chart.js +1223 -0
- package/dist/area-chart.js.map +1 -0
- package/dist/area-chart.mjs +21 -0
- package/dist/area-chart.mjs.map +1 -0
- package/dist/bar-chart.d.mts +38 -0
- package/dist/bar-chart.d.ts +38 -0
- package/dist/bar-chart.js +1027 -0
- package/dist/bar-chart.js.map +1 -0
- package/dist/bar-chart.mjs +19 -0
- package/dist/bar-chart.mjs.map +1 -0
- package/dist/chart-legend.d.mts +12 -0
- package/dist/chart-legend.d.ts +12 -0
- package/dist/chart-legend.js +90 -0
- package/dist/chart-legend.js.map +1 -0
- package/dist/chart-legend.mjs +11 -0
- package/dist/chart-legend.mjs.map +1 -0
- package/dist/chart-tooltip.d.mts +12 -0
- package/dist/chart-tooltip.d.ts +12 -0
- package/dist/chart-tooltip.js +121 -0
- package/dist/chart-tooltip.js.map +1 -0
- package/dist/chart-tooltip.mjs +11 -0
- package/dist/chart-tooltip.mjs.map +1 -0
- package/dist/chart-utils.d.mts +9 -0
- package/dist/chart-utils.d.ts +9 -0
- package/dist/chart-utils.js +45 -0
- package/dist/chart-utils.js.map +1 -0
- package/dist/chart-utils.mjs +10 -0
- package/dist/chart-utils.mjs.map +1 -0
- package/dist/chart.types.d.mts +78 -0
- package/dist/chart.types.d.ts +78 -0
- package/dist/chart.types.js +20 -0
- package/dist/chart.types.js.map +1 -0
- package/dist/chart.types.mjs +2 -0
- package/dist/chart.types.mjs.map +1 -0
- package/dist/chunk-4WX5YS7M.mjs +179 -0
- package/dist/chunk-4WX5YS7M.mjs.map +1 -0
- package/dist/chunk-5TVYPA64.mjs +256 -0
- package/dist/chunk-5TVYPA64.mjs.map +1 -0
- package/dist/chunk-BPR7YL3O.mjs +179 -0
- package/dist/chunk-BPR7YL3O.mjs.map +1 -0
- package/dist/chunk-E2I2XAZ6.mjs +232 -0
- package/dist/chunk-E2I2XAZ6.mjs.map +1 -0
- package/dist/chunk-HDOYOHLA.mjs +326 -0
- package/dist/chunk-HDOYOHLA.mjs.map +1 -0
- package/dist/chunk-KNAADLWO.mjs +225 -0
- package/dist/chunk-KNAADLWO.mjs.map +1 -0
- package/dist/chunk-KT4YOMM4.mjs +344 -0
- package/dist/chunk-KT4YOMM4.mjs.map +1 -0
- package/dist/chunk-LBC2B6UX.mjs +84 -0
- package/dist/chunk-LBC2B6UX.mjs.map +1 -0
- package/dist/chunk-LGMALZCN.mjs +42 -0
- package/dist/chunk-LGMALZCN.mjs.map +1 -0
- package/dist/chunk-LHI57S6P.mjs +215 -0
- package/dist/chunk-LHI57S6P.mjs.map +1 -0
- package/dist/chunk-LM2DQK2P.mjs +33 -0
- package/dist/chunk-LM2DQK2P.mjs.map +1 -0
- package/dist/chunk-MSIOYYWR.mjs +24 -0
- package/dist/chunk-MSIOYYWR.mjs.map +1 -0
- package/dist/chunk-MWPICUEW.mjs +56 -0
- package/dist/chunk-MWPICUEW.mjs.map +1 -0
- package/dist/chunk-NEGDEVRX.mjs +53 -0
- package/dist/chunk-NEGDEVRX.mjs.map +1 -0
- package/dist/chunk-OSNFBRHL.mjs +474 -0
- package/dist/chunk-OSNFBRHL.mjs.map +1 -0
- package/dist/chunk-OW7SOTEF.mjs +206 -0
- package/dist/chunk-OW7SOTEF.mjs.map +1 -0
- package/dist/chunk-P7AFSM5W.mjs +114 -0
- package/dist/chunk-P7AFSM5W.mjs.map +1 -0
- package/dist/chunk-PNE3JG54.mjs +29 -0
- package/dist/chunk-PNE3JG54.mjs.map +1 -0
- package/dist/chunk-QL3DB7OJ.mjs +21 -0
- package/dist/chunk-QL3DB7OJ.mjs.map +1 -0
- package/dist/chunk-QZ5OXZ6Z.mjs +251 -0
- package/dist/chunk-QZ5OXZ6Z.mjs.map +1 -0
- package/dist/chunk-RN6PXJAD.mjs +47 -0
- package/dist/chunk-RN6PXJAD.mjs.map +1 -0
- package/dist/chunk-STBYRLC5.mjs +208 -0
- package/dist/chunk-STBYRLC5.mjs.map +1 -0
- package/dist/chunk-XIFDRM7J.mjs +56 -0
- package/dist/chunk-XIFDRM7J.mjs.map +1 -0
- package/dist/donut-chart.d.mts +31 -0
- package/dist/donut-chart.d.ts +31 -0
- package/dist/donut-chart.js +702 -0
- package/dist/donut-chart.js.map +1 -0
- package/dist/donut-chart.mjs +16 -0
- package/dist/donut-chart.mjs.map +1 -0
- package/dist/index.d.mts +26 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +3228 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +45 -0
- package/dist/index.mjs.map +1 -0
- package/dist/line-chart.d.mts +38 -0
- package/dist/line-chart.d.ts +38 -0
- package/dist/line-chart.js +1088 -0
- package/dist/line-chart.js.map +1 -0
- package/dist/line-chart.mjs +19 -0
- package/dist/line-chart.mjs.map +1 -0
- package/dist/pie-chart.d.mts +49 -0
- package/dist/pie-chart.d.ts +49 -0
- package/dist/pie-chart.js +702 -0
- package/dist/pie-chart.js.map +1 -0
- package/dist/pie-chart.mjs +16 -0
- package/dist/pie-chart.mjs.map +1 -0
- package/dist/radar-chart.d.mts +57 -0
- package/dist/radar-chart.d.ts +57 -0
- package/dist/radar-chart.js +918 -0
- package/dist/radar-chart.js.map +1 -0
- package/dist/radar-chart.mjs +16 -0
- package/dist/radar-chart.mjs.map +1 -0
- package/dist/rechart-properties.d.mts +26 -0
- package/dist/rechart-properties.d.ts +26 -0
- package/dist/rechart-properties.js +517 -0
- package/dist/rechart-properties.js.map +1 -0
- package/dist/rechart-properties.mjs +48 -0
- package/dist/rechart-properties.mjs.map +1 -0
- package/dist/use-area-chart.d.mts +123 -0
- package/dist/use-area-chart.d.ts +123 -0
- package/dist/use-area-chart.js +420 -0
- package/dist/use-area-chart.js.map +1 -0
- package/dist/use-area-chart.mjs +10 -0
- package/dist/use-area-chart.mjs.map +1 -0
- package/dist/use-bar-chart.d.mts +73 -0
- package/dist/use-bar-chart.d.ts +73 -0
- package/dist/use-bar-chart.js +290 -0
- package/dist/use-bar-chart.js.map +1 -0
- package/dist/use-bar-chart.mjs +10 -0
- package/dist/use-bar-chart.mjs.map +1 -0
- package/dist/use-chart-axis.d.mts +73 -0
- package/dist/use-chart-axis.d.ts +73 -0
- package/dist/use-chart-axis.js +227 -0
- package/dist/use-chart-axis.js.map +1 -0
- package/dist/use-chart-axis.mjs +10 -0
- package/dist/use-chart-axis.mjs.map +1 -0
- package/dist/use-chart-grid.d.mts +32 -0
- package/dist/use-chart-grid.d.ts +32 -0
- package/dist/use-chart-grid.js +92 -0
- package/dist/use-chart-grid.js.map +1 -0
- package/dist/use-chart-grid.mjs +10 -0
- package/dist/use-chart-grid.mjs.map +1 -0
- package/dist/use-chart-legend.d.mts +18 -0
- package/dist/use-chart-legend.d.ts +18 -0
- package/dist/use-chart-legend.js +81 -0
- package/dist/use-chart-legend.js.map +1 -0
- package/dist/use-chart-legend.mjs +9 -0
- package/dist/use-chart-legend.mjs.map +1 -0
- package/dist/use-chart-reference-line.d.mts +22 -0
- package/dist/use-chart-reference-line.d.ts +22 -0
- package/dist/use-chart-reference-line.js +105 -0
- package/dist/use-chart-reference-line.js.map +1 -0
- package/dist/use-chart-reference-line.mjs +10 -0
- package/dist/use-chart-reference-line.mjs.map +1 -0
- package/dist/use-chart-tooltip.d.mts +27 -0
- package/dist/use-chart-tooltip.d.ts +27 -0
- package/dist/use-chart-tooltip.js +100 -0
- package/dist/use-chart-tooltip.js.map +1 -0
- package/dist/use-chart-tooltip.mjs +10 -0
- package/dist/use-chart-tooltip.mjs.map +1 -0
- package/dist/use-chart.d.mts +33 -0
- package/dist/use-chart.d.ts +33 -0
- package/dist/use-chart.js +104 -0
- package/dist/use-chart.js.map +1 -0
- package/dist/use-chart.mjs +18 -0
- package/dist/use-chart.mjs.map +1 -0
- package/dist/use-line-chart.d.mts +97 -0
- package/dist/use-line-chart.d.ts +97 -0
- package/dist/use-line-chart.js +344 -0
- package/dist/use-line-chart.js.map +1 -0
- package/dist/use-line-chart.mjs +10 -0
- package/dist/use-line-chart.mjs.map +1 -0
- package/dist/use-pie-chart.d.mts +112 -0
- package/dist/use-pie-chart.d.ts +112 -0
- package/dist/use-pie-chart.js +282 -0
- package/dist/use-pie-chart.js.map +1 -0
- package/dist/use-pie-chart.mjs +10 -0
- package/dist/use-pie-chart.mjs.map +1 -0
- package/dist/use-radar-chart.d.mts +105 -0
- package/dist/use-radar-chart.d.ts +105 -0
- package/dist/use-radar-chart.js +473 -0
- package/dist/use-radar-chart.js.map +1 -0
- package/dist/use-radar-chart.mjs +10 -0
- package/dist/use-radar-chart.mjs.map +1 -0
- package/package.json +1 -1
@@ -0,0 +1,344 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
dotProperties,
|
4
|
+
polarAngleAxisProperties,
|
5
|
+
polarGridProperties,
|
6
|
+
polarRadiusAxisProperties,
|
7
|
+
radarChartProperties,
|
8
|
+
radarProperties
|
9
|
+
} from "./chunk-OSNFBRHL.mjs";
|
10
|
+
import {
|
11
|
+
getClassName,
|
12
|
+
getComponentProps
|
13
|
+
} from "./chunk-QL3DB7OJ.mjs";
|
14
|
+
|
15
|
+
// src/use-radar-chart.ts
|
16
|
+
import { useTheme } from "@yamada-ui/core";
|
17
|
+
import { cx } from "@yamada-ui/utils";
|
18
|
+
import { useCallback, useMemo, useState } from "react";
|
19
|
+
var useRadarChart = ({
|
20
|
+
data,
|
21
|
+
series,
|
22
|
+
dataKey,
|
23
|
+
withDots = false,
|
24
|
+
withActiveDots = false,
|
25
|
+
strokeWidth = 2,
|
26
|
+
fillOpacity = 0.4,
|
27
|
+
valueFormatter,
|
28
|
+
strokeDasharray,
|
29
|
+
styles,
|
30
|
+
...rest
|
31
|
+
}) => {
|
32
|
+
var _a;
|
33
|
+
const { theme } = useTheme();
|
34
|
+
const [highlightedArea, setHighlightedArea] = useState(null);
|
35
|
+
const shouldHighlight = highlightedArea !== null;
|
36
|
+
const {
|
37
|
+
dot = {},
|
38
|
+
activeDot = {},
|
39
|
+
dimDot,
|
40
|
+
dimRadar,
|
41
|
+
...computedRadarProps
|
42
|
+
} = (_a = rest.radarProps) != null ? _a : {};
|
43
|
+
const radarColors = useMemo(
|
44
|
+
() => series.map(({ color }, index) => ({
|
45
|
+
__prefix: "ui",
|
46
|
+
name: `radar-${index}`,
|
47
|
+
token: "colors",
|
48
|
+
value: color != null ? color : "transparent"
|
49
|
+
})),
|
50
|
+
[series]
|
51
|
+
);
|
52
|
+
const radarVars = useMemo(
|
53
|
+
() => [
|
54
|
+
...radarColors,
|
55
|
+
{ __prefix: "ui", name: "fill-opacity", value: fillOpacity }
|
56
|
+
],
|
57
|
+
[fillOpacity, radarColors]
|
58
|
+
);
|
59
|
+
const [chartProps, radarChartClassName] = useMemo(
|
60
|
+
() => {
|
61
|
+
var _a2;
|
62
|
+
return getComponentProps(
|
63
|
+
[(_a2 = rest.chartProps) != null ? _a2 : {}, radarChartProperties],
|
64
|
+
styles.chart
|
65
|
+
)(theme);
|
66
|
+
},
|
67
|
+
[rest.chartProps, styles.chart, theme]
|
68
|
+
);
|
69
|
+
const [polarGridProps, polarGridClassName] = useMemo(
|
70
|
+
() => {
|
71
|
+
var _a2;
|
72
|
+
return getComponentProps(
|
73
|
+
[(_a2 = rest.polarGridProps) != null ? _a2 : {}, polarGridProperties],
|
74
|
+
styles.polarGrid
|
75
|
+
)(theme);
|
76
|
+
},
|
77
|
+
[rest.polarGridProps, styles.polarGrid, theme]
|
78
|
+
);
|
79
|
+
const [polarAngleAxisProps, polarAngleAxisClassName] = useMemo(
|
80
|
+
() => {
|
81
|
+
var _a2;
|
82
|
+
return getComponentProps(
|
83
|
+
[(_a2 = rest.polarAngleAxisProps) != null ? _a2 : {}, polarAngleAxisProperties],
|
84
|
+
styles.polarAngleAxis
|
85
|
+
)(theme);
|
86
|
+
},
|
87
|
+
[rest.polarAngleAxisProps, styles.polarAngleAxis, theme]
|
88
|
+
);
|
89
|
+
const polarAngleAxisTickClassName = useMemo(
|
90
|
+
() => getClassName({
|
91
|
+
...styles.polarAngleAxisTick,
|
92
|
+
...rest.polarAngleAxisTickProps
|
93
|
+
})(theme),
|
94
|
+
[rest.polarAngleAxisTickProps, styles.polarAngleAxisTick, theme]
|
95
|
+
);
|
96
|
+
const [polarRadiusAxisProps, polarRadiusAxisClassName] = useMemo(
|
97
|
+
() => {
|
98
|
+
var _a2;
|
99
|
+
return getComponentProps(
|
100
|
+
[(_a2 = rest.polarRadiusAxisProps) != null ? _a2 : {}, polarRadiusAxisProperties],
|
101
|
+
styles.polarRadiusAxis
|
102
|
+
)(theme);
|
103
|
+
},
|
104
|
+
[rest.polarRadiusAxisProps, styles.polarRadiusAxis, theme]
|
105
|
+
);
|
106
|
+
const polarRadiusAxisTickClassName = useMemo(
|
107
|
+
() => getClassName({
|
108
|
+
...styles.polarRadiusAxisTick,
|
109
|
+
...rest.polarRadiusAxisTickProps
|
110
|
+
})(theme),
|
111
|
+
[rest.polarRadiusAxisTickProps, styles.polarRadiusAxisTick, theme]
|
112
|
+
);
|
113
|
+
const [radarProps, radarClassName] = useMemo(() => {
|
114
|
+
const resolvedRadarProps = {
|
115
|
+
fillOpacity: "var(--ui-fill-opacity)",
|
116
|
+
...computedRadarProps
|
117
|
+
};
|
118
|
+
return getComponentProps(
|
119
|
+
[resolvedRadarProps, radarProperties],
|
120
|
+
styles.radar
|
121
|
+
)(theme);
|
122
|
+
}, [computedRadarProps, styles.radar, theme]);
|
123
|
+
const [dimRadarProps, dimRadarClassName] = useMemo(() => {
|
124
|
+
const resolvedDimRadar = {
|
125
|
+
fillOpacity: 0.3,
|
126
|
+
strokeOpacity: 0.3,
|
127
|
+
...dimRadar
|
128
|
+
};
|
129
|
+
return getComponentProps([resolvedDimRadar, radarProperties])(
|
130
|
+
theme
|
131
|
+
);
|
132
|
+
}, [dimRadar, theme]);
|
133
|
+
const [dotProps, dotClassName] = useMemo(() => {
|
134
|
+
const resolvedDot = { fillOpacity: 1, strokeWidth: 2, ...dot };
|
135
|
+
return getComponentProps(
|
136
|
+
[resolvedDot, dotProperties],
|
137
|
+
styles.dot
|
138
|
+
)(theme);
|
139
|
+
}, [dot, styles.dot, theme]);
|
140
|
+
const [activeDotProps, activeDotClassName] = useMemo(
|
141
|
+
() => getComponentProps(
|
142
|
+
[activeDot, dotProperties],
|
143
|
+
styles.activeDot
|
144
|
+
)(theme),
|
145
|
+
[activeDot, styles.activeDot, theme]
|
146
|
+
);
|
147
|
+
const [dimDotProps, dimDotClassName] = useMemo(() => {
|
148
|
+
const resolvedDimDot = { fillOpacity: 0, strokeOpacity: 0, ...dimDot };
|
149
|
+
return getComponentProps([resolvedDimDot, dotProperties])(
|
150
|
+
theme
|
151
|
+
);
|
152
|
+
}, [dimDot, theme]);
|
153
|
+
const radarPropList = useMemo(
|
154
|
+
() => series.map((props, index) => {
|
155
|
+
const {
|
156
|
+
dataKey: dataKey2,
|
157
|
+
dot: dot2 = {},
|
158
|
+
activeDot: activeDot2 = {},
|
159
|
+
dimDot: dimDot2 = {},
|
160
|
+
dimRadar: dimRadar2 = {},
|
161
|
+
...computedProps
|
162
|
+
} = props;
|
163
|
+
const color = `var(--ui-radar-${index})`;
|
164
|
+
const dimmed = shouldHighlight && highlightedArea !== dataKey2;
|
165
|
+
const computedDimRadar = { ...dimRadarProps, ...dimRadar2 };
|
166
|
+
const resolvedProps = {
|
167
|
+
...radarProps,
|
168
|
+
...computedProps,
|
169
|
+
...dimmed ? computedDimRadar : {}
|
170
|
+
};
|
171
|
+
const rest2 = getComponentProps(
|
172
|
+
[resolvedProps, radarProperties],
|
173
|
+
radarClassName,
|
174
|
+
dimmed ? dimRadarClassName : void 0
|
175
|
+
)(theme, true);
|
176
|
+
let resolvedActiveDot;
|
177
|
+
if (withActiveDots) {
|
178
|
+
const computedActiveDot = {
|
179
|
+
...activeDotProps,
|
180
|
+
...activeDot2
|
181
|
+
};
|
182
|
+
const [rest3, className] = getComponentProps(
|
183
|
+
[computedActiveDot, dotProperties],
|
184
|
+
activeDotClassName
|
185
|
+
)(theme);
|
186
|
+
resolvedActiveDot = {
|
187
|
+
className: cx("ui-radar-chart__active-dot", className),
|
188
|
+
fill: color,
|
189
|
+
stroke: color,
|
190
|
+
r: 4,
|
191
|
+
...rest3
|
192
|
+
};
|
193
|
+
} else {
|
194
|
+
resolvedActiveDot = false;
|
195
|
+
}
|
196
|
+
let resolvedDot;
|
197
|
+
if (withDots) {
|
198
|
+
const computedDimDot = { ...dimDotProps, ...dimDot2 };
|
199
|
+
const computedDot = {
|
200
|
+
...dotProps,
|
201
|
+
...dot2,
|
202
|
+
...dimmed ? computedDimDot : {}
|
203
|
+
};
|
204
|
+
const [rest3, className] = getComponentProps(
|
205
|
+
[computedDot, dotProperties],
|
206
|
+
dotClassName,
|
207
|
+
dimmed ? dimDotClassName : void 0
|
208
|
+
)(theme);
|
209
|
+
resolvedDot = {
|
210
|
+
className: cx("ui-radar-chart__dot", className),
|
211
|
+
fill: color,
|
212
|
+
r: 4,
|
213
|
+
...rest3
|
214
|
+
};
|
215
|
+
} else {
|
216
|
+
resolvedDot = false;
|
217
|
+
}
|
218
|
+
return {
|
219
|
+
...rest2,
|
220
|
+
color,
|
221
|
+
dataKey: dataKey2,
|
222
|
+
dot: resolvedDot,
|
223
|
+
activeDot: resolvedActiveDot
|
224
|
+
};
|
225
|
+
}),
|
226
|
+
[
|
227
|
+
activeDotClassName,
|
228
|
+
activeDotProps,
|
229
|
+
dimDotClassName,
|
230
|
+
dimDotProps,
|
231
|
+
dimRadarClassName,
|
232
|
+
dimRadarProps,
|
233
|
+
dotClassName,
|
234
|
+
dotProps,
|
235
|
+
highlightedArea,
|
236
|
+
radarClassName,
|
237
|
+
radarProps,
|
238
|
+
series,
|
239
|
+
shouldHighlight,
|
240
|
+
theme,
|
241
|
+
withActiveDots,
|
242
|
+
withDots
|
243
|
+
]
|
244
|
+
);
|
245
|
+
const getRadarChartProps = useCallback(
|
246
|
+
({ className, ...props } = {}, ref = null) => ({
|
247
|
+
ref,
|
248
|
+
className: cx(className, radarChartClassName),
|
249
|
+
data,
|
250
|
+
...props,
|
251
|
+
...chartProps
|
252
|
+
}),
|
253
|
+
[data, radarChartClassName, chartProps]
|
254
|
+
);
|
255
|
+
const getRadarProps = useCallback(
|
256
|
+
({ index, className: classNameProp, ...props }, ref = null) => {
|
257
|
+
const { color, className, dataKey: dataKey2, activeDot: activeDot2, dot: dot2, ...rest2 } = radarPropList[index];
|
258
|
+
return {
|
259
|
+
ref,
|
260
|
+
className: cx(classNameProp, className),
|
261
|
+
activeDot: activeDot2,
|
262
|
+
dot: dot2,
|
263
|
+
name: dataKey2,
|
264
|
+
dataKey: dataKey2,
|
265
|
+
fill: color,
|
266
|
+
strokeWidth,
|
267
|
+
stroke: color,
|
268
|
+
isAnimationActive: false,
|
269
|
+
...props,
|
270
|
+
...rest2
|
271
|
+
};
|
272
|
+
},
|
273
|
+
[radarPropList, strokeWidth]
|
274
|
+
);
|
275
|
+
const getPolarGridProps = useCallback(
|
276
|
+
({ className, ...props } = {}, ref = null) => ({
|
277
|
+
ref,
|
278
|
+
className: cx(className, polarGridClassName),
|
279
|
+
strokeDasharray,
|
280
|
+
...props,
|
281
|
+
...polarGridProps
|
282
|
+
}),
|
283
|
+
[polarGridClassName, polarGridProps, strokeDasharray]
|
284
|
+
);
|
285
|
+
const getPolarAngleAxisProps = useCallback(
|
286
|
+
({ className, ...props } = {}, ref = null) => ({
|
287
|
+
ref,
|
288
|
+
className: cx(className, polarAngleAxisClassName),
|
289
|
+
dataKey,
|
290
|
+
tick: {
|
291
|
+
className: cx(
|
292
|
+
"ui-radar-chart__polar-angle-axis-tick",
|
293
|
+
polarAngleAxisTickClassName
|
294
|
+
)
|
295
|
+
},
|
296
|
+
tickFormatter: valueFormatter,
|
297
|
+
tickSize: 16,
|
298
|
+
...props,
|
299
|
+
...polarAngleAxisProps
|
300
|
+
}),
|
301
|
+
[
|
302
|
+
dataKey,
|
303
|
+
polarAngleAxisClassName,
|
304
|
+
polarAngleAxisProps,
|
305
|
+
polarAngleAxisTickClassName,
|
306
|
+
valueFormatter
|
307
|
+
]
|
308
|
+
);
|
309
|
+
const getPolarRadiusAxisProps = useCallback(
|
310
|
+
({ className, ...props } = {}, ref = null) => ({
|
311
|
+
ref,
|
312
|
+
className: cx(className, polarRadiusAxisClassName),
|
313
|
+
tick: {
|
314
|
+
className: cx(
|
315
|
+
"ui-radar-chart__polar-radius-axis-tick",
|
316
|
+
polarRadiusAxisTickClassName
|
317
|
+
)
|
318
|
+
},
|
319
|
+
tickFormatter: valueFormatter,
|
320
|
+
...props,
|
321
|
+
...polarRadiusAxisProps
|
322
|
+
}),
|
323
|
+
[
|
324
|
+
polarRadiusAxisClassName,
|
325
|
+
polarRadiusAxisProps,
|
326
|
+
polarRadiusAxisTickClassName,
|
327
|
+
valueFormatter
|
328
|
+
]
|
329
|
+
);
|
330
|
+
return {
|
331
|
+
radarVars,
|
332
|
+
getRadarChartProps,
|
333
|
+
getRadarProps,
|
334
|
+
getPolarGridProps,
|
335
|
+
getPolarAngleAxisProps,
|
336
|
+
getPolarRadiusAxisProps,
|
337
|
+
setHighlightedArea
|
338
|
+
};
|
339
|
+
};
|
340
|
+
|
341
|
+
export {
|
342
|
+
useRadarChart
|
343
|
+
};
|
344
|
+
//# sourceMappingURL=chunk-KT4YOMM4.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/use-radar-chart.ts"],"sourcesContent":["import { useTheme } from \"@yamada-ui/core\"\nimport type { CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { cx, type Dict } from \"@yamada-ui/utils\"\nimport type { ComponentPropsWithoutRef } from \"react\"\nimport { useCallback, useMemo, useState } from \"react\"\nimport type * as Recharts from \"recharts\"\nimport { getClassName, getComponentProps } from \"./chart-utils\"\nimport type {\n ChartPropGetter,\n PolarAngleAxisProps,\n PolarGridProps,\n PolarRadiusAxisProps,\n RadarChartProps,\n RadarProps,\n RequiredChartPropGetter,\n} from \"./chart.types\"\nimport {\n dotProperties,\n polarAngleAxisProperties,\n polarGridProperties,\n polarRadiusAxisProperties,\n radarChartProperties,\n radarProperties,\n} from \"./rechart-properties\"\n\nexport type UseRadarChartOptions = {\n /**\n * Chart data.\n */\n data: Dict[]\n /**\n * An array of objects with `dataKey` and `color` keys. Determines which data should be consumed from the `data` array.\n */\n series: RadarProps[]\n /**\n * The key of a group of data which should be unique in an chart.\n */\n dataKey: string\n /**\n * Props for the radar.\n */\n radarProps?: Partial<RadarProps>\n /**\n * Props passed down to recharts `RadarChart` component.\n */\n chartProps?: RadarChartProps\n /**\n * Props passed down to recharts `PolarGrid` component.\n */\n polarGridProps?: PolarGridProps\n /**\n * Props passed down to recharts `PolarAngleAxis` component.\n */\n polarAngleAxisProps?: PolarAngleAxisProps\n /**\n * Props passed down to recharts `tick` of `PolarAngleAxis` component.\n */\n polarAngleAxisTickProps?: CSSUIProps\n /**\n * Props passed down to recharts `PolarRadiusAxis` component.\n */\n polarRadiusAxisProps?: PolarRadiusAxisProps\n /**\n * Props passed down to recharts `tick` of `PolarRadiusAxis` component.\n */\n polarRadiusAxisTickProps?: CSSUIProps\n /**\n * Determines whether dots should be displayed.\n *\n * @default false\n */\n withDots?: boolean\n /**\n * Determines whether activeDots should be displayed.\n *\n * @default true\n */\n withActiveDots?: boolean\n /**\n * Stroke width for the chart radars.\n *\n * @default 2\n */\n strokeWidth?: number\n /**\n * Controls fill opacity of all radars.\n *\n * @default 1\n */\n fillOpacity?: number | [number, number]\n /**\n * A function to format values on Y axis and inside the tooltip.\n */\n valueFormatter?: (value: number) => string\n /**\n * Dash array for the grid lines and cursor. The first number is the length of the solid line section and the second number is the length of the interval.\n */\n strokeDasharray?: string | number\n}\n\ntype UseRadarChartProps = UseRadarChartOptions & {\n styles: Dict<CSSUIObject>\n}\n\nexport const useRadarChart = ({\n data,\n series,\n dataKey,\n withDots = false,\n withActiveDots = false,\n strokeWidth = 2,\n fillOpacity = 0.4,\n valueFormatter,\n strokeDasharray,\n styles,\n ...rest\n}: UseRadarChartProps) => {\n const { theme } = useTheme()\n const [highlightedArea, setHighlightedArea] = useState<string | null>(null)\n const shouldHighlight = highlightedArea !== null\n const {\n dot = {},\n activeDot = {},\n dimDot,\n dimRadar,\n ...computedRadarProps\n } = rest.radarProps ?? {}\n\n const radarColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n series.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `radar-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n })),\n [series],\n )\n\n const radarVars: CSSUIProps[\"var\"] = useMemo(\n () =>\n [\n ...radarColors,\n { __prefix: \"ui\", name: \"fill-opacity\", value: fillOpacity },\n ] as Required<CSSUIProps>[\"var\"],\n [fillOpacity, radarColors],\n )\n\n const [chartProps, radarChartClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [rest.chartProps ?? {}, radarChartProperties],\n styles.chart,\n )(theme),\n [rest.chartProps, styles.chart, theme],\n )\n\n const [polarGridProps, polarGridClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [rest.polarGridProps ?? {}, polarGridProperties],\n styles.polarGrid,\n )(theme),\n [rest.polarGridProps, styles.polarGrid, theme],\n )\n\n const [polarAngleAxisProps, polarAngleAxisClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [rest.polarAngleAxisProps ?? {}, polarAngleAxisProperties],\n styles.polarAngleAxis,\n )(theme),\n [rest.polarAngleAxisProps, styles.polarAngleAxis, theme],\n )\n\n const polarAngleAxisTickClassName = useMemo(\n () =>\n getClassName({\n ...styles.polarAngleAxisTick,\n ...rest.polarAngleAxisTickProps,\n })(theme),\n [rest.polarAngleAxisTickProps, styles.polarAngleAxisTick, theme],\n )\n\n const [polarRadiusAxisProps, polarRadiusAxisClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [rest.polarRadiusAxisProps ?? {}, polarRadiusAxisProperties],\n styles.polarRadiusAxis,\n )(theme),\n [rest.polarRadiusAxisProps, styles.polarRadiusAxis, theme],\n )\n\n const polarRadiusAxisTickClassName = useMemo(\n () =>\n getClassName({\n ...styles.polarRadiusAxisTick,\n ...rest.polarRadiusAxisTickProps,\n })(theme),\n [rest.polarRadiusAxisTickProps, styles.polarRadiusAxisTick, theme],\n )\n\n const [radarProps, radarClassName] = useMemo(() => {\n const resolvedRadarProps = {\n fillOpacity: \"var(--ui-fill-opacity)\",\n ...computedRadarProps,\n }\n\n return getComponentProps<Dict, string>(\n [resolvedRadarProps, radarProperties],\n styles.radar,\n )(theme)\n }, [computedRadarProps, styles.radar, theme])\n\n const [dimRadarProps, dimRadarClassName] = useMemo(() => {\n const resolvedDimRadar = {\n fillOpacity: 0.3,\n strokeOpacity: 0.3,\n ...dimRadar,\n }\n\n return getComponentProps<Dict, string>([resolvedDimRadar, radarProperties])(\n theme,\n )\n }, [dimRadar, theme])\n\n const [dotProps, dotClassName] = useMemo(() => {\n const resolvedDot = { fillOpacity: 1, strokeWidth: 2, ...dot }\n\n return getComponentProps<Dict, string>(\n [resolvedDot, dotProperties],\n styles.dot,\n )(theme)\n }, [dot, styles.dot, theme])\n\n const [activeDotProps, activeDotClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [activeDot, dotProperties],\n styles.activeDot,\n )(theme),\n [activeDot, styles.activeDot, theme],\n )\n\n const [dimDotProps, dimDotClassName] = useMemo(() => {\n const resolvedDimDot = { fillOpacity: 0, strokeOpacity: 0, ...dimDot }\n return getComponentProps<Dict, string>([resolvedDimDot, dotProperties])(\n theme,\n )\n }, [dimDot, theme])\n\n const radarPropList = useMemo(\n () =>\n series.map((props, index) => {\n const {\n dataKey,\n dot = {},\n activeDot = {},\n dimDot = {},\n dimRadar = {},\n ...computedProps\n } = props\n const color = `var(--ui-radar-${index})`\n const dimmed = shouldHighlight && highlightedArea !== dataKey\n const computedDimRadar = { ...dimRadarProps, ...dimRadar }\n\n const resolvedProps = {\n ...radarProps,\n ...computedProps,\n ...(dimmed ? computedDimRadar : {}),\n }\n const rest = getComponentProps<Dict, string>(\n [resolvedProps, radarProperties],\n radarClassName,\n dimmed ? dimRadarClassName : undefined,\n )(theme, true)\n\n let resolvedActiveDot: Recharts.DotProps | boolean\n\n if (withActiveDots) {\n const computedActiveDot = {\n ...activeDotProps,\n ...activeDot,\n }\n\n const [rest, className] = getComponentProps<Dict, string>(\n [computedActiveDot, dotProperties],\n activeDotClassName,\n )(theme)\n\n resolvedActiveDot = {\n className: cx(\"ui-radar-chart__active-dot\", className),\n fill: color,\n stroke: color,\n r: 4,\n ...rest,\n } as Recharts.DotProps\n } else {\n resolvedActiveDot = false\n }\n\n let resolvedDot: Recharts.DotProps | boolean\n\n if (withDots) {\n const computedDimDot = { ...dimDotProps, ...dimDot }\n const computedDot = {\n ...dotProps,\n ...dot,\n ...(dimmed ? computedDimDot : {}),\n }\n\n const [rest, className] = getComponentProps(\n [computedDot, dotProperties],\n dotClassName,\n dimmed ? dimDotClassName : undefined,\n )(theme)\n\n resolvedDot = {\n className: cx(\"ui-radar-chart__dot\", className),\n fill: color,\n r: 4,\n ...rest,\n } as Recharts.DotProps\n } else {\n resolvedDot = false\n }\n\n return {\n ...rest,\n color,\n dataKey,\n dot: resolvedDot,\n activeDot: resolvedActiveDot,\n }\n }),\n [\n activeDotClassName,\n activeDotProps,\n dimDotClassName,\n dimDotProps,\n dimRadarClassName,\n dimRadarProps,\n dotClassName,\n dotProps,\n highlightedArea,\n radarClassName,\n radarProps,\n series,\n shouldHighlight,\n theme,\n withActiveDots,\n withDots,\n ],\n )\n\n const getRadarChartProps: ChartPropGetter<\n \"div\",\n ComponentPropsWithoutRef<typeof Recharts.RadarChart>,\n ComponentPropsWithoutRef<typeof Recharts.RadarChart>\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, radarChartClassName),\n data,\n ...props,\n ...chartProps,\n }),\n [data, radarChartClassName, chartProps],\n )\n\n const getRadarProps: RequiredChartPropGetter<\n \"div\",\n { index: number },\n Omit<Recharts.RadarProps, \"ref\">\n > = useCallback(\n ({ index, className: classNameProp, ...props }, ref = null) => {\n const { color, className, dataKey, activeDot, dot, ...rest } =\n radarPropList[index]\n\n return {\n ref,\n className: cx(classNameProp, className),\n activeDot,\n dot,\n name: dataKey as string,\n dataKey,\n fill: color,\n strokeWidth,\n stroke: color,\n isAnimationActive: false,\n ...(props as Omit<Recharts.RadarProps, \"dataKey\">),\n ...rest,\n }\n },\n [radarPropList, strokeWidth],\n )\n\n const getPolarGridProps: ChartPropGetter<\n \"div\",\n Recharts.PolarGridProps,\n Recharts.PolarGridProps\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, polarGridClassName),\n strokeDasharray,\n ...props,\n ...polarGridProps,\n }),\n [polarGridClassName, polarGridProps, strokeDasharray],\n )\n\n const getPolarAngleAxisProps: ChartPropGetter<\n \"div\",\n Recharts.PolarAngleAxisProps,\n Omit<Recharts.PolarAngleAxisProps, \"ref\">\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, polarAngleAxisClassName),\n dataKey,\n tick: {\n className: cx(\n \"ui-radar-chart__polar-angle-axis-tick\",\n polarAngleAxisTickClassName,\n ),\n },\n tickFormatter: valueFormatter,\n tickSize: 16,\n ...props,\n ...polarAngleAxisProps,\n }),\n [\n dataKey,\n polarAngleAxisClassName,\n polarAngleAxisProps,\n polarAngleAxisTickClassName,\n valueFormatter,\n ],\n )\n\n const getPolarRadiusAxisProps: ChartPropGetter<\n \"div\",\n Recharts.PolarRadiusAxisProps,\n Omit<Recharts.PolarRadiusAxisProps, \"ref\">\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, polarRadiusAxisClassName),\n tick: {\n className: cx(\n \"ui-radar-chart__polar-radius-axis-tick\",\n polarRadiusAxisTickClassName,\n ),\n },\n tickFormatter: valueFormatter,\n ...props,\n ...polarRadiusAxisProps,\n }),\n [\n polarRadiusAxisClassName,\n polarRadiusAxisProps,\n polarRadiusAxisTickClassName,\n valueFormatter,\n ],\n )\n\n return {\n radarVars,\n getRadarChartProps,\n getRadarProps,\n getPolarGridProps,\n getPolarAngleAxisProps,\n getPolarRadiusAxisProps,\n setHighlightedArea,\n }\n}\n\nexport type UseRadarChartReturn = ReturnType<typeof useRadarChart>\n"],"mappings":"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","names":["_a","dataKey","dot","activeDot","dimDot","dimRadar","rest"]}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
useTooltip
|
4
|
+
} from "./chunk-XIFDRM7J.mjs";
|
5
|
+
|
6
|
+
// src/chart-tooltip.tsx
|
7
|
+
import { forwardRef, ui } from "@yamada-ui/core";
|
8
|
+
import { cx, isArray } from "@yamada-ui/utils";
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
10
|
+
var ChartTooltip = forwardRef(
|
11
|
+
({ label, className, payload = [], valueFormatter, unit, ...rest }, ref) => {
|
12
|
+
const { styles } = useTooltip();
|
13
|
+
const items = payload.map(
|
14
|
+
({ color: colorProp, name, value: valueProp, payload: payload2 } = {}, index) => {
|
15
|
+
var _a;
|
16
|
+
const color = colorProp != null ? colorProp : payload2 == null ? void 0 : payload2.color;
|
17
|
+
let value;
|
18
|
+
if (isArray(valueProp)) {
|
19
|
+
value = valueProp.map((value2) => {
|
20
|
+
var _a2;
|
21
|
+
return `${(_a2 = valueFormatter == null ? void 0 : valueFormatter(value2)) != null ? _a2 : value2}`;
|
22
|
+
}).join(" - ");
|
23
|
+
} else {
|
24
|
+
value = (_a = valueFormatter == null ? void 0 : valueFormatter(valueProp)) != null ? _a : valueProp;
|
25
|
+
}
|
26
|
+
return /* @__PURE__ */ jsxs(
|
27
|
+
ui.div,
|
28
|
+
{
|
29
|
+
className: "ui-chart__tooltip-item",
|
30
|
+
__css: styles.tooltipItem,
|
31
|
+
children: [
|
32
|
+
/* @__PURE__ */ jsx(
|
33
|
+
ui.div,
|
34
|
+
{
|
35
|
+
className: "ui-chart__tooltip-swatch",
|
36
|
+
background: color,
|
37
|
+
__css: styles.tooltipSwatch
|
38
|
+
}
|
39
|
+
),
|
40
|
+
/* @__PURE__ */ jsx(
|
41
|
+
ui.span,
|
42
|
+
{
|
43
|
+
className: "ui-chart__tooltip-label",
|
44
|
+
__css: styles.tooltipLabel,
|
45
|
+
children: name
|
46
|
+
}
|
47
|
+
),
|
48
|
+
/* @__PURE__ */ jsxs(
|
49
|
+
ui.span,
|
50
|
+
{
|
51
|
+
className: "ui-chart__tooltip-value",
|
52
|
+
__css: styles.tooltipValue,
|
53
|
+
children: [
|
54
|
+
value,
|
55
|
+
unit ? unit : ""
|
56
|
+
]
|
57
|
+
}
|
58
|
+
)
|
59
|
+
]
|
60
|
+
},
|
61
|
+
`tooltip-payload-${index}`
|
62
|
+
);
|
63
|
+
}
|
64
|
+
);
|
65
|
+
return /* @__PURE__ */ jsxs(
|
66
|
+
ui.div,
|
67
|
+
{
|
68
|
+
ref,
|
69
|
+
className: cx("ui-chart__tooltip", className),
|
70
|
+
__css: styles.tooltip,
|
71
|
+
...rest,
|
72
|
+
children: [
|
73
|
+
label ? /* @__PURE__ */ jsx(ui.p, { className: "ui-chart__tooltip-title", __css: styles.tooltipTitle, children: label }) : null,
|
74
|
+
/* @__PURE__ */ jsx(ui.div, { className: "ui-chart__tooltip-list", __css: styles.tooltipList, children: items })
|
75
|
+
]
|
76
|
+
}
|
77
|
+
);
|
78
|
+
}
|
79
|
+
);
|
80
|
+
|
81
|
+
export {
|
82
|
+
ChartTooltip
|
83
|
+
};
|
84
|
+
//# sourceMappingURL=chunk-LBC2B6UX.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/chart-tooltip.tsx"],"sourcesContent":["import { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx, isArray, type Dict } from \"@yamada-ui/utils\"\nimport { useTooltip } from \"./use-chart\"\n\nexport type ChartTooltipProps = {\n label: string | undefined\n payload: Dict[] | undefined\n valueFormatter?: (value: number) => string\n unit?: string\n}\n\nexport const ChartTooltip = forwardRef<ChartTooltipProps, \"div\">(\n ({ label, className, payload = [], valueFormatter, unit, ...rest }, ref) => {\n const { styles } = useTooltip()\n\n const items = payload.map(\n ({ color: colorProp, name, value: valueProp, payload } = {}, index) => {\n const color = colorProp ?? payload?.color\n let value: string\n\n if (isArray(valueProp)) {\n value = valueProp\n .map((value) => {\n return `${valueFormatter?.(value) ?? value}`\n })\n .join(\" - \")\n } else {\n value = valueFormatter?.(valueProp) ?? valueProp\n }\n\n return (\n <ui.div\n className=\"ui-chart__tooltip-item\"\n key={`tooltip-payload-${index}`}\n __css={styles.tooltipItem}\n >\n <ui.div\n className=\"ui-chart__tooltip-swatch\"\n background={color}\n __css={styles.tooltipSwatch}\n />\n\n <ui.span\n className=\"ui-chart__tooltip-label\"\n __css={styles.tooltipLabel}\n >\n {name}\n </ui.span>\n\n <ui.span\n className=\"ui-chart__tooltip-value\"\n __css={styles.tooltipValue}\n >\n {value}\n {unit ? unit : \"\"}\n </ui.span>\n </ui.div>\n )\n },\n )\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-chart__tooltip\", className)}\n __css={styles.tooltip}\n {...rest}\n >\n {label ? (\n <ui.p className=\"ui-chart__tooltip-title\" __css={styles.tooltipTitle}>\n {label}\n </ui.p>\n ) : null}\n\n <ui.div className=\"ui-chart__tooltip-list\" __css={styles.tooltipList}>\n {items}\n </ui.div>\n </ui.div>\n )\n },\n)\n"],"mappings":";;;;;;AAAA,SAAS,YAAY,UAAU;AAC/B,SAAS,IAAI,eAA0B;AAmC3B,cAaA,YAbA;AAzBL,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,CAAC,GAAG,gBAAgB,MAAM,GAAG,KAAK,GAAG,QAAQ;AAC1E,UAAM,EAAE,OAAO,IAAI,WAAW;AAE9B,UAAM,QAAQ,QAAQ;AAAA,MACpB,CAAC,EAAE,OAAO,WAAW,MAAM,OAAO,WAAW,SAAAA,SAAQ,IAAI,CAAC,GAAG,UAAU;AAhB7E;AAiBQ,cAAM,QAAQ,gCAAaA,YAAA,gBAAAA,SAAS;AACpC,YAAI;AAEJ,YAAI,QAAQ,SAAS,GAAG;AACtB,kBAAQ,UACL,IAAI,CAACC,WAAU;AAtB5B,gBAAAC;AAuBc,mBAAO,IAAGA,MAAA,iDAAiBD,YAAjB,OAAAC,MAA2BD,MAAK;AAAA,UAC5C,CAAC,EACA,KAAK,KAAK;AAAA,QACf,OAAO;AACL,mBAAQ,sDAAiB,eAAjB,YAA+B;AAAA,QACzC;AAEA,eACE;AAAA,UAAC,GAAG;AAAA,UAAH;AAAA,YACC,WAAU;AAAA,YAEV,OAAO,OAAO;AAAA,YAEd;AAAA;AAAA,gBAAC,GAAG;AAAA,gBAAH;AAAA,kBACC,WAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,OAAO,OAAO;AAAA;AAAA,cAChB;AAAA,cAEA;AAAA,gBAAC,GAAG;AAAA,gBAAH;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO,OAAO;AAAA,kBAEb;AAAA;AAAA,cACH;AAAA,cAEA;AAAA,gBAAC,GAAG;AAAA,gBAAH;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO,OAAO;AAAA,kBAEb;AAAA;AAAA,oBACA,OAAO,OAAO;AAAA;AAAA;AAAA,cACjB;AAAA;AAAA;AAAA,UAtBK,mBAAmB,KAAK;AAAA,QAuB/B;AAAA,MAEJ;AAAA,IACF;AAEA,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,qBAAqB,SAAS;AAAA,QAC5C,OAAO,OAAO;AAAA,QACb,GAAG;AAAA,QAEH;AAAA,kBACC,oBAAC,GAAG,GAAH,EAAK,WAAU,2BAA0B,OAAO,OAAO,cACrD,iBACH,IACE;AAAA,UAEJ,oBAAC,GAAG,KAAH,EAAO,WAAU,0BAAyB,OAAO,OAAO,aACtD,iBACH;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;","names":["payload","value","_a"]}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
gridProperties
|
4
|
+
} from "./chunk-OSNFBRHL.mjs";
|
5
|
+
import {
|
6
|
+
getComponentProps
|
7
|
+
} from "./chunk-QL3DB7OJ.mjs";
|
8
|
+
|
9
|
+
// src/use-chart-grid.ts
|
10
|
+
import { useTheme } from "@yamada-ui/core";
|
11
|
+
import { cx } from "@yamada-ui/utils";
|
12
|
+
import { useCallback } from "react";
|
13
|
+
var useChartGrid = ({
|
14
|
+
gridProps = {},
|
15
|
+
gridAxis = "x",
|
16
|
+
strokeDasharray = "5 5",
|
17
|
+
styles
|
18
|
+
}) => {
|
19
|
+
const { theme } = useTheme();
|
20
|
+
const [reChartsProps, propClassName] = getComponentProps(
|
21
|
+
[gridProps, gridProperties],
|
22
|
+
styles.grid
|
23
|
+
)(theme);
|
24
|
+
const getGridProps = useCallback(
|
25
|
+
({ className, ...props } = {}, ref = null) => ({
|
26
|
+
ref,
|
27
|
+
className: cx("ui-chart__grid", className, propClassName),
|
28
|
+
strokeDasharray,
|
29
|
+
vertical: gridAxis === "y" || gridAxis === "xy",
|
30
|
+
horizontal: gridAxis === "x" || gridAxis === "xy",
|
31
|
+
...props,
|
32
|
+
...reChartsProps
|
33
|
+
}),
|
34
|
+
[propClassName, strokeDasharray, gridAxis, reChartsProps]
|
35
|
+
);
|
36
|
+
return { getGridProps };
|
37
|
+
};
|
38
|
+
|
39
|
+
export {
|
40
|
+
useChartGrid
|
41
|
+
};
|
42
|
+
//# sourceMappingURL=chunk-LGMALZCN.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/use-chart-grid.ts"],"sourcesContent":["import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { useTheme } from \"@yamada-ui/core\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useCallback } from \"react\"\nimport type { CartesianGridProps } from \"recharts\"\nimport { getComponentProps } from \"./chart-utils\"\nimport type { ChartAxisType, ChartPropGetter, GridProps } from \"./chart.types\"\nimport { gridProperties } from \"./rechart-properties\"\n\nexport type UseChartGridOptions = {\n /**\n * Props passed down to recharts 'CartesianGrid' component.\n */\n gridProps?: GridProps\n /**\n * Specifies which lines should be displayed in the grid.\n *\n * @default 'x'\n */\n gridAxis?: ChartAxisType\n /**\n * Dash array for the grid lines and cursor. The first number is the length of the solid line section and the second number is the length of the interval.\n *\n * @default '5 5'\n */\n strokeDasharray?: string | number\n}\n\ntype UseChartGridProps = UseChartGridOptions & {\n styles: Dict<CSSUIObject>\n}\n\nexport const useChartGrid = ({\n gridProps = {},\n gridAxis = \"x\",\n strokeDasharray = \"5 5\",\n styles,\n}: UseChartGridProps) => {\n const { theme } = useTheme()\n const [reChartsProps, propClassName] = getComponentProps(\n [gridProps, gridProperties],\n styles.grid,\n )(theme)\n\n const getGridProps: ChartPropGetter<\n \"div\",\n Partial<CartesianGridProps>,\n CartesianGridProps\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(\"ui-chart__grid\", className, propClassName),\n strokeDasharray: strokeDasharray,\n vertical: gridAxis === \"y\" || gridAxis === \"xy\",\n horizontal: gridAxis === \"x\" || gridAxis === \"xy\",\n ...props,\n ...reChartsProps,\n }),\n [propClassName, strokeDasharray, gridAxis, reChartsProps],\n )\n\n return { getGridProps }\n}\n"],"mappings":";;;;;;;;;AACA,SAAS,gBAAgB;AAEzB,SAAS,UAAU;AACnB,SAAS,mBAAmB;AA6BrB,IAAM,eAAe,CAAC;AAAA,EAC3B,YAAY,CAAC;AAAA,EACb,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB;AACF,MAAyB;AACvB,QAAM,EAAE,MAAM,IAAI,SAAS;AAC3B,QAAM,CAAC,eAAe,aAAa,IAAI;AAAA,IACrC,CAAC,WAAW,cAAc;AAAA,IAC1B,OAAO;AAAA,EACT,EAAE,KAAK;AAEP,QAAM,eAIF;AAAA,IACF,CAAC,EAAE,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,UAAU;AAAA,MAC7C;AAAA,MACA,WAAW,GAAG,kBAAkB,WAAW,aAAa;AAAA,MACxD;AAAA,MACA,UAAU,aAAa,OAAO,aAAa;AAAA,MAC3C,YAAY,aAAa,OAAO,aAAa;AAAA,MAC7C,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,IACA,CAAC,eAAe,iBAAiB,UAAU,aAAa;AAAA,EAC1D;AAEA,SAAO,EAAE,aAAa;AACxB;","names":[]}
|