@yamada-ui/charts 1.0.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/LICENSE +21 -0
- package/README.md +28 -0
- 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 +36 -0
- package/dist/area-chart.d.ts +36 -0
- package/dist/area-chart.js +1249 -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 +33 -0
- package/dist/bar-chart.d.ts +33 -0
- package/dist/bar-chart.js +1053 -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 +87 -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 +120 -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 +65 -0
- package/dist/chart.types.d.ts +65 -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-32BO2QEP.mjs +83 -0
- package/dist/chunk-32BO2QEP.mjs.map +1 -0
- package/dist/chunk-3CY3IFRN.mjs +42 -0
- package/dist/chunk-3CY3IFRN.mjs.map +1 -0
- package/dist/chunk-3IBGJT6F.mjs +341 -0
- package/dist/chunk-3IBGJT6F.mjs.map +1 -0
- package/dist/chunk-5QCKM3B3.mjs +438 -0
- package/dist/chunk-5QCKM3B3.mjs.map +1 -0
- package/dist/chunk-AURFFNDQ.mjs +114 -0
- package/dist/chunk-AURFFNDQ.mjs.map +1 -0
- package/dist/chunk-FGDWJUA3.mjs +56 -0
- package/dist/chunk-FGDWJUA3.mjs.map +1 -0
- package/dist/chunk-GZLE5XDS.mjs +227 -0
- package/dist/chunk-GZLE5XDS.mjs.map +1 -0
- package/dist/chunk-HE6SM47L.mjs +234 -0
- package/dist/chunk-HE6SM47L.mjs.map +1 -0
- package/dist/chunk-LXZCGIND.mjs +33 -0
- package/dist/chunk-LXZCGIND.mjs.map +1 -0
- package/dist/chunk-MSIOYYWR.mjs +24 -0
- package/dist/chunk-MSIOYYWR.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-RG5JQJXE.mjs +249 -0
- package/dist/chunk-RG5JQJXE.mjs.map +1 -0
- package/dist/chunk-RTTZPOUT.mjs +50 -0
- package/dist/chunk-RTTZPOUT.mjs.map +1 -0
- package/dist/chunk-RXWD2EJ2.mjs +56 -0
- package/dist/chunk-RXWD2EJ2.mjs.map +1 -0
- package/dist/chunk-TKLHZBVY.mjs +206 -0
- package/dist/chunk-TKLHZBVY.mjs.map +1 -0
- package/dist/chunk-WDSR6B47.mjs +324 -0
- package/dist/chunk-WDSR6B47.mjs.map +1 -0
- package/dist/chunk-WF3BD34Y.mjs +74 -0
- package/dist/chunk-WF3BD34Y.mjs.map +1 -0
- package/dist/chunk-YBAGOHS5.mjs +204 -0
- package/dist/chunk-YBAGOHS5.mjs.map +1 -0
- package/dist/chunk-YRY7MUCR.mjs +258 -0
- package/dist/chunk-YRY7MUCR.mjs.map +1 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +2725 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +36 -0
- package/dist/index.mjs.map +1 -0
- package/dist/line-chart.d.mts +33 -0
- package/dist/line-chart.d.ts +33 -0
- package/dist/line-chart.js +1114 -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/radar-chart.d.mts +52 -0
- package/dist/radar-chart.d.ts +52 -0
- package/dist/radar-chart.js +940 -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 +24 -0
- package/dist/rechart-properties.d.ts +24 -0
- package/dist/rechart-properties.js +479 -0
- package/dist/rechart-properties.js.map +1 -0
- package/dist/rechart-properties.mjs +44 -0
- package/dist/rechart-properties.mjs.map +1 -0
- package/dist/use-area-chart.d.mts +118 -0
- package/dist/use-area-chart.d.ts +118 -0
- package/dist/use-area-chart.js +418 -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 +68 -0
- package/dist/use-bar-chart.d.ts +68 -0
- package/dist/use-bar-chart.js +288 -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 +35 -0
- package/dist/use-chart-tooltip.d.ts +35 -0
- package/dist/use-chart-tooltip.js +121 -0
- package/dist/use-chart-tooltip.js.map +1 -0
- package/dist/use-chart-tooltip.mjs +9 -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 +92 -0
- package/dist/use-line-chart.d.ts +92 -0
- package/dist/use-line-chart.js +342 -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-radar-chart.d.mts +93 -0
- package/dist/use-radar-chart.d.ts +93 -0
- package/dist/use-radar-chart.js +471 -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 +84 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
"use client"
|
2
|
+
|
3
|
+
// src/chart-utils.ts
|
4
|
+
import { getCSS } from "@yamada-ui/core";
|
5
|
+
import { cx, isString, splitObject } from "@yamada-ui/utils";
|
6
|
+
var getClassName = (...styles) => (theme) => cx(
|
7
|
+
...styles.map(
|
8
|
+
(style) => isString(style) ? style : getCSS(style)(theme)
|
9
|
+
)
|
10
|
+
);
|
11
|
+
var getComponentProps = ([obj, keys], ...props) => (theme, isContain) => {
|
12
|
+
const [pickedProps, omittedProps] = splitObject(obj, keys);
|
13
|
+
const className = getClassName(...props, omittedProps)(theme);
|
14
|
+
return !isContain ? [pickedProps, className] : { ...pickedProps, className };
|
15
|
+
};
|
16
|
+
|
17
|
+
export {
|
18
|
+
getClassName,
|
19
|
+
getComponentProps
|
20
|
+
};
|
21
|
+
//# sourceMappingURL=chunk-QL3DB7OJ.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/chart-utils.ts"],"sourcesContent":["import type { StyledTheme } from \"@yamada-ui/core\"\nimport { getCSS } from \"@yamada-ui/core\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport { cx, isString, splitObject } from \"@yamada-ui/utils\"\n\nexport const getClassName =\n (...styles: (Dict | string | undefined)[]) =>\n (theme: StyledTheme) =>\n cx(\n ...styles.map((style) =>\n isString(style) ? style : getCSS(style)(theme),\n ),\n )\n\nexport const getComponentProps =\n <T extends Dict, K extends keyof T>(\n [obj, keys]: [T, K[]],\n ...props: (Dict | string | undefined)[]\n ) =>\n <P extends boolean = false>(theme: StyledTheme, isContain?: P) => {\n const [pickedProps, omittedProps] = splitObject<T, K>(obj, keys)\n const className = getClassName(...props, omittedProps)(theme)\n\n return (\n !isContain ? [pickedProps, className] : { ...pickedProps, className }\n ) as P extends false\n ? [{ [P in K]: T[P] }, string]\n : { [P in K]: T[P] } & { className: string }\n }\n"],"mappings":";;;AACA,SAAS,cAAc;AAEvB,SAAS,IAAI,UAAU,mBAAmB;AAEnC,IAAM,eACX,IAAI,WACJ,CAAC,UACC;AAAA,EACE,GAAG,OAAO;AAAA,IAAI,CAAC,UACb,SAAS,KAAK,IAAI,QAAQ,OAAO,KAAK,EAAE,KAAK;AAAA,EAC/C;AACF;AAEG,IAAM,oBACX,CACE,CAAC,KAAK,IAAI,MACP,UAEL,CAA4B,OAAoB,cAAkB;AAChE,QAAM,CAAC,aAAa,YAAY,IAAI,YAAkB,KAAK,IAAI;AAC/D,QAAM,YAAY,aAAa,GAAG,OAAO,YAAY,EAAE,KAAK;AAE5D,SACE,CAAC,YAAY,CAAC,aAAa,SAAS,IAAI,EAAE,GAAG,aAAa,UAAU;AAIxE;","names":[]}
|
@@ -0,0 +1,249 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
dotProperties,
|
4
|
+
lineChartProperties,
|
5
|
+
lineProperties
|
6
|
+
} from "./chunk-5QCKM3B3.mjs";
|
7
|
+
import {
|
8
|
+
getComponentProps
|
9
|
+
} from "./chunk-QL3DB7OJ.mjs";
|
10
|
+
|
11
|
+
// src/use-line-chart.ts
|
12
|
+
import { useTheme } from "@yamada-ui/core";
|
13
|
+
import { cx } from "@yamada-ui/utils";
|
14
|
+
import { useCallback, useMemo, useState } from "react";
|
15
|
+
var useLineChart = ({
|
16
|
+
data,
|
17
|
+
series,
|
18
|
+
layoutType = "horizontal",
|
19
|
+
withDots = true,
|
20
|
+
withActiveDots = true,
|
21
|
+
curveType = "monotone",
|
22
|
+
strokeWidth = 2,
|
23
|
+
connectNulls = true,
|
24
|
+
referenceLineProps,
|
25
|
+
fillOpacity = 1,
|
26
|
+
styles,
|
27
|
+
...rest
|
28
|
+
}) => {
|
29
|
+
var _a;
|
30
|
+
const { theme } = useTheme();
|
31
|
+
const [highlightedArea, setHighlightedArea] = useState(null);
|
32
|
+
const shouldHighlight = highlightedArea !== null;
|
33
|
+
const {
|
34
|
+
dot = {},
|
35
|
+
activeDot = {},
|
36
|
+
dimDot,
|
37
|
+
dimLine,
|
38
|
+
...computedLineProps
|
39
|
+
} = (_a = rest.lineProps) != null ? _a : {};
|
40
|
+
const lineColors = useMemo(
|
41
|
+
() => series.map(({ color }, index) => ({
|
42
|
+
__prefix: "ui",
|
43
|
+
name: `line-${index}`,
|
44
|
+
token: "colors",
|
45
|
+
value: color != null ? color : "transparent"
|
46
|
+
})),
|
47
|
+
[series]
|
48
|
+
);
|
49
|
+
const referenceLineColors = useMemo(
|
50
|
+
() => referenceLineProps ? referenceLineProps.map(({ color }, index) => ({
|
51
|
+
__prefix: "ui",
|
52
|
+
name: `reference-line-${index}`,
|
53
|
+
token: "colors",
|
54
|
+
value: color != null ? color : "transparent"
|
55
|
+
})) : [],
|
56
|
+
[referenceLineProps]
|
57
|
+
);
|
58
|
+
const lineVars = useMemo(
|
59
|
+
() => [
|
60
|
+
...lineColors,
|
61
|
+
...referenceLineColors,
|
62
|
+
{ __prefix: "ui", name: "fill-opacity", value: fillOpacity }
|
63
|
+
],
|
64
|
+
[fillOpacity, lineColors, referenceLineColors]
|
65
|
+
);
|
66
|
+
const [lineChartProps, lineChartClassName] = useMemo(
|
67
|
+
() => {
|
68
|
+
var _a2;
|
69
|
+
return getComponentProps(
|
70
|
+
[(_a2 = rest.lineChartProps) != null ? _a2 : {}, lineChartProperties],
|
71
|
+
styles.chart
|
72
|
+
)(theme);
|
73
|
+
},
|
74
|
+
[rest.lineChartProps, styles.chart, theme]
|
75
|
+
);
|
76
|
+
const [lineProps, lineClassName] = useMemo(() => {
|
77
|
+
const resolvedLineProps = {
|
78
|
+
fillOpacity: "var(--ui-fill-opacity)",
|
79
|
+
strokeOpacity: "var(--ui-fill-opacity)",
|
80
|
+
...computedLineProps
|
81
|
+
};
|
82
|
+
return getComponentProps(
|
83
|
+
[resolvedLineProps, lineProperties],
|
84
|
+
styles.line
|
85
|
+
)(theme);
|
86
|
+
}, [computedLineProps, styles.line, theme]);
|
87
|
+
const [dimLineProps, dimLineClassName] = useMemo(() => {
|
88
|
+
const resolvedDimLine = { fillOpacity: 0, strokeOpacity: 0.3, ...dimLine };
|
89
|
+
return getComponentProps([resolvedDimLine, lineProperties])(
|
90
|
+
theme
|
91
|
+
);
|
92
|
+
}, [dimLine, theme]);
|
93
|
+
const [dotProps, dotClassName] = useMemo(() => {
|
94
|
+
const resolvedDot = { fillOpacity: 1, strokeOpacity: 1, ...dot };
|
95
|
+
return getComponentProps(
|
96
|
+
[resolvedDot, dotProperties],
|
97
|
+
styles.dot
|
98
|
+
)(theme);
|
99
|
+
}, [dot, styles.dot, theme]);
|
100
|
+
const [activeDotProps, activeDotClassName] = useMemo(
|
101
|
+
() => getComponentProps(
|
102
|
+
[activeDot, dotProperties],
|
103
|
+
styles.activeDot
|
104
|
+
)(theme),
|
105
|
+
[activeDot, styles.activeDot, theme]
|
106
|
+
);
|
107
|
+
const [dimDotProps, dimDotClassName] = useMemo(() => {
|
108
|
+
const resolvedDimDot = {
|
109
|
+
fillOpacity: 0,
|
110
|
+
strokeOpacity: 0,
|
111
|
+
...dimDot
|
112
|
+
};
|
113
|
+
return getComponentProps([resolvedDimDot, dotProperties])(
|
114
|
+
theme
|
115
|
+
);
|
116
|
+
}, [dimDot, theme]);
|
117
|
+
const linePropList = useMemo(
|
118
|
+
() => series.map((props, index) => {
|
119
|
+
const {
|
120
|
+
dataKey,
|
121
|
+
dot: dot2 = {},
|
122
|
+
activeDot: activeDot2 = {},
|
123
|
+
dimDot: dimDot2 = {},
|
124
|
+
dimLine: dimLine2 = {},
|
125
|
+
...computedProps
|
126
|
+
} = props;
|
127
|
+
const color = `var(--ui-line-${index})`;
|
128
|
+
const dimmed = shouldHighlight && highlightedArea !== dataKey;
|
129
|
+
const computedDimLine = { ...dimLineProps, ...dimLine2 };
|
130
|
+
const resolvedProps = {
|
131
|
+
...lineProps,
|
132
|
+
...computedProps,
|
133
|
+
...dimmed ? computedDimLine : {}
|
134
|
+
};
|
135
|
+
const rest2 = getComponentProps(
|
136
|
+
[resolvedProps, lineProperties],
|
137
|
+
lineClassName,
|
138
|
+
dimmed ? dimLineClassName : void 0
|
139
|
+
)(theme, true);
|
140
|
+
let resolvedActiveDot;
|
141
|
+
if (withActiveDots) {
|
142
|
+
const computedActiveDot = { ...activeDotProps, ...activeDot2 };
|
143
|
+
const [rest3, className] = getComponentProps(
|
144
|
+
[computedActiveDot, dotProperties],
|
145
|
+
activeDotClassName
|
146
|
+
)(theme);
|
147
|
+
resolvedActiveDot = {
|
148
|
+
className: cx("ui-line-chart__active-dot", className),
|
149
|
+
fill: color,
|
150
|
+
stroke: color,
|
151
|
+
r: 4,
|
152
|
+
...rest3
|
153
|
+
};
|
154
|
+
} else {
|
155
|
+
resolvedActiveDot = false;
|
156
|
+
}
|
157
|
+
let resolvedDot;
|
158
|
+
if (withDots) {
|
159
|
+
const computedDimDot = { ...dimDotProps, ...dimDot2 };
|
160
|
+
const computedDot = {
|
161
|
+
...dotProps,
|
162
|
+
...dot2,
|
163
|
+
...dimmed ? computedDimDot : {}
|
164
|
+
};
|
165
|
+
const [rest3, className] = getComponentProps(
|
166
|
+
[computedDot, dotProperties],
|
167
|
+
dotClassName,
|
168
|
+
dimmed ? dimDotClassName : void 0
|
169
|
+
)(theme);
|
170
|
+
resolvedDot = {
|
171
|
+
className: cx("ui-line-chart__dot", className),
|
172
|
+
fill: color,
|
173
|
+
...rest3
|
174
|
+
};
|
175
|
+
} else {
|
176
|
+
resolvedDot = false;
|
177
|
+
}
|
178
|
+
return {
|
179
|
+
...rest2,
|
180
|
+
color,
|
181
|
+
dataKey,
|
182
|
+
activeDot: resolvedActiveDot,
|
183
|
+
dot: resolvedDot
|
184
|
+
};
|
185
|
+
}),
|
186
|
+
[
|
187
|
+
series,
|
188
|
+
shouldHighlight,
|
189
|
+
highlightedArea,
|
190
|
+
dimLineProps,
|
191
|
+
lineProps,
|
192
|
+
lineClassName,
|
193
|
+
dimLineClassName,
|
194
|
+
theme,
|
195
|
+
withActiveDots,
|
196
|
+
withDots,
|
197
|
+
activeDotProps,
|
198
|
+
activeDotClassName,
|
199
|
+
dimDotProps,
|
200
|
+
dotProps,
|
201
|
+
dotClassName,
|
202
|
+
dimDotClassName
|
203
|
+
]
|
204
|
+
);
|
205
|
+
const getLineChartProps = useCallback(
|
206
|
+
({ className, ...props } = {}, ref = null) => ({
|
207
|
+
ref,
|
208
|
+
className: cx(className, lineChartClassName),
|
209
|
+
data,
|
210
|
+
layout: layoutType,
|
211
|
+
...props,
|
212
|
+
...lineChartProps
|
213
|
+
}),
|
214
|
+
[data, layoutType, lineChartClassName, lineChartProps]
|
215
|
+
);
|
216
|
+
const getLineProps = useCallback(
|
217
|
+
({ index, className: classNameProp, ...props }, ref = null) => {
|
218
|
+
const { color, className, dataKey, activeDot: activeDot2, dot: dot2, ...rest2 } = linePropList[index];
|
219
|
+
return {
|
220
|
+
ref,
|
221
|
+
className: cx(classNameProp, className),
|
222
|
+
activeDot: activeDot2,
|
223
|
+
dot: dot2,
|
224
|
+
name: dataKey,
|
225
|
+
type: curveType,
|
226
|
+
dataKey,
|
227
|
+
fill: color,
|
228
|
+
strokeWidth,
|
229
|
+
stroke: color,
|
230
|
+
isAnimationActive: false,
|
231
|
+
connectNulls,
|
232
|
+
...props,
|
233
|
+
...rest2
|
234
|
+
};
|
235
|
+
},
|
236
|
+
[connectNulls, curveType, linePropList, strokeWidth]
|
237
|
+
);
|
238
|
+
return {
|
239
|
+
getLineProps,
|
240
|
+
getLineChartProps,
|
241
|
+
lineVars,
|
242
|
+
setHighlightedArea
|
243
|
+
};
|
244
|
+
};
|
245
|
+
|
246
|
+
export {
|
247
|
+
useLineChart
|
248
|
+
};
|
249
|
+
//# sourceMappingURL=chunk-RG5JQJXE.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/use-line-chart.ts"],"sourcesContent":["import { useTheme } from \"@yamada-ui/core\"\nimport type { CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport type { ComponentPropsWithoutRef } from \"react\"\nimport { useCallback, useMemo, useState } from \"react\"\nimport type * as Recharts from \"recharts\"\nimport { getComponentProps } from \"./chart-utils\"\nimport type {\n ChartLayoutType,\n LineProps,\n LineChartProps,\n ReferenceLineProps,\n ChartPropGetter,\n ChartCurveType,\n RequiredChartPropGetter,\n} from \"./chart.types\"\nimport {\n dotProperties,\n lineChartProperties,\n lineProperties,\n} from \"./rechart-properties\"\n\nexport type UseLineChartOptions = {\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: LineProps[]\n /**\n * Props for the lines.\n */\n lineProps?: Partial<LineProps>\n /**\n * Props passed down to recharts `LineChart` component.\n */\n lineChartProps?: LineChartProps\n /**\n * Chart orientation.\n *\n * @default 'horizontal'\n */\n layoutType?: ChartLayoutType\n /**\n * Determines whether dots should be displayed.\n *\n * @default true\n */\n withDots?: boolean\n /**\n * Determines whether activeDots should be displayed.\n *\n * @default true\n */\n withActiveDots?: boolean\n /**\n * Type of the curve.\n *\n * @default `monotone`\n */\n curveType?: ChartCurveType\n /**\n * Stroke width for the chart lines.\n *\n * @default 2\n */\n strokeWidth?: number\n /**\n * Determines whether points with `null` values should be connected.\n *\n * @default true\n */\n connectNulls?: boolean\n /**\n * Reference lines that should be displayed on the chart.\n */\n referenceLineProps?: ReferenceLineProps[]\n /**\n * Controls fill opacity of all lines.\n *\n * @default 1\n */\n fillOpacity?: number | [number, number]\n}\n\ntype UseLineChartProps = UseLineChartOptions & {\n styles: Dict<CSSUIObject>\n}\n\nexport const useLineChart = ({\n data,\n series,\n layoutType = \"horizontal\",\n withDots = true,\n withActiveDots = true,\n curveType = \"monotone\",\n strokeWidth = 2,\n connectNulls = true,\n referenceLineProps,\n fillOpacity = 1,\n styles,\n ...rest\n}: UseLineChartProps) => {\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 dimLine,\n ...computedLineProps\n } = rest.lineProps ?? {}\n\n const lineColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n series.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `line-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n })),\n [series],\n )\n\n const referenceLineColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n referenceLineProps\n ? referenceLineProps.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `reference-line-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n }))\n : [],\n [referenceLineProps],\n )\n\n const lineVars: CSSUIProps[\"var\"] = useMemo(\n () => [\n ...lineColors,\n ...referenceLineColors,\n { __prefix: \"ui\", name: \"fill-opacity\", value: fillOpacity },\n ],\n [fillOpacity, lineColors, referenceLineColors],\n )\n\n const [lineChartProps, lineChartClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [rest.lineChartProps ?? {}, lineChartProperties],\n styles.chart,\n )(theme),\n [rest.lineChartProps, styles.chart, theme],\n )\n\n const [lineProps, lineClassName] = useMemo(() => {\n const resolvedLineProps = {\n fillOpacity: \"var(--ui-fill-opacity)\",\n strokeOpacity: \"var(--ui-fill-opacity)\",\n ...computedLineProps,\n }\n\n return getComponentProps<Dict, string>(\n [resolvedLineProps, lineProperties],\n styles.line,\n )(theme)\n }, [computedLineProps, styles.line, theme])\n\n const [dimLineProps, dimLineClassName] = useMemo(() => {\n const resolvedDimLine = { fillOpacity: 0, strokeOpacity: 0.3, ...dimLine }\n\n return getComponentProps<Dict, string>([resolvedDimLine, lineProperties])(\n theme,\n )\n }, [dimLine, theme])\n\n const [dotProps, dotClassName] = useMemo(() => {\n const resolvedDot = { fillOpacity: 1, strokeOpacity: 1, ...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 = {\n fillOpacity: 0,\n strokeOpacity: 0,\n ...dimDot,\n }\n\n return getComponentProps<Dict, string>([resolvedDimDot, dotProperties])(\n theme,\n )\n }, [dimDot, theme])\n\n const linePropList = useMemo(\n () =>\n series.map((props, index) => {\n const {\n dataKey,\n dot = {},\n activeDot = {},\n dimDot = {},\n dimLine = {},\n ...computedProps\n } = props\n const color = `var(--ui-line-${index})`\n const dimmed = shouldHighlight && highlightedArea !== dataKey\n const computedDimLine = { ...dimLineProps, ...dimLine }\n const resolvedProps = {\n ...lineProps,\n ...computedProps,\n ...(dimmed ? computedDimLine : {}),\n }\n\n const rest = getComponentProps<Dict, string>(\n [resolvedProps, lineProperties],\n lineClassName,\n dimmed ? dimLineClassName : undefined,\n )(theme, true)\n\n let resolvedActiveDot: Recharts.DotProps | boolean\n\n if (withActiveDots) {\n const computedActiveDot = { ...activeDotProps, ...activeDot }\n\n const [rest, className] = getComponentProps(\n [computedActiveDot, dotProperties],\n activeDotClassName,\n )(theme)\n\n resolvedActiveDot = {\n className: cx(\"ui-line-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-line-chart__dot\", className),\n fill: color,\n ...rest,\n } as Recharts.DotProps\n } else {\n resolvedDot = false\n }\n\n return {\n ...rest,\n color,\n dataKey,\n activeDot: resolvedActiveDot,\n dot: resolvedDot,\n }\n }),\n [\n series,\n shouldHighlight,\n highlightedArea,\n dimLineProps,\n lineProps,\n lineClassName,\n dimLineClassName,\n theme,\n withActiveDots,\n withDots,\n activeDotProps,\n activeDotClassName,\n dimDotProps,\n dotProps,\n dotClassName,\n dimDotClassName,\n ],\n )\n\n const getLineChartProps: ChartPropGetter<\n \"div\",\n ComponentPropsWithoutRef<typeof Recharts.LineChart>,\n ComponentPropsWithoutRef<typeof Recharts.LineChart>\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, lineChartClassName),\n data,\n layout: layoutType,\n ...props,\n ...lineChartProps,\n }),\n [data, layoutType, lineChartClassName, lineChartProps],\n )\n\n const getLineProps: RequiredChartPropGetter<\n \"div\",\n {\n index: number\n },\n Omit<Recharts.LineProps, \"ref\">\n > = useCallback(\n ({ index, className: classNameProp, ...props }, ref = null) => {\n const { color, className, dataKey, activeDot, dot, ...rest } =\n linePropList[index]\n\n return {\n ref,\n className: cx(classNameProp, className),\n activeDot,\n dot,\n name: dataKey as string,\n type: curveType,\n dataKey,\n fill: color,\n strokeWidth,\n stroke: color,\n isAnimationActive: false,\n connectNulls,\n ...(props as Omit<Recharts.LineProps, \"dataKey\">),\n ...rest,\n }\n },\n [connectNulls, curveType, linePropList, strokeWidth],\n )\n\n return {\n getLineProps,\n getLineChartProps,\n lineVars,\n setHighlightedArea,\n }\n}\n\nexport type UseLineChartReturn = ReturnType<typeof useLineChart>\n"],"mappings":"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","names":["_a","dot","activeDot","dimDot","dimLine","rest"]}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
useLegend
|
4
|
+
} from "./chunk-RXWD2EJ2.mjs";
|
5
|
+
|
6
|
+
// src/chart-legend.tsx
|
7
|
+
import { forwardRef, ui } from "@yamada-ui/core";
|
8
|
+
import { cx } from "@yamada-ui/utils";
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
10
|
+
var ChartLegend = forwardRef(
|
11
|
+
({ className, payload = [], onHighlight, ...rest }, ref) => {
|
12
|
+
const { styles } = useLegend();
|
13
|
+
const items = payload.map(({ dataKey, color }, index) => /* @__PURE__ */ jsxs(
|
14
|
+
ui.div,
|
15
|
+
{
|
16
|
+
className: "ui-chart__legend-item",
|
17
|
+
onMouseEnter: () => onHighlight(dataKey),
|
18
|
+
onMouseLeave: () => onHighlight(null),
|
19
|
+
__css: styles.legendItem,
|
20
|
+
children: [
|
21
|
+
/* @__PURE__ */ jsx(
|
22
|
+
ui.div,
|
23
|
+
{
|
24
|
+
className: "ui-chart__legend-swatch",
|
25
|
+
background: color,
|
26
|
+
__css: styles.legendSwatch
|
27
|
+
}
|
28
|
+
),
|
29
|
+
/* @__PURE__ */ jsx(ui.span, { className: "ui-chart__legend-label", children: dataKey })
|
30
|
+
]
|
31
|
+
},
|
32
|
+
`legend-${index}`
|
33
|
+
));
|
34
|
+
return /* @__PURE__ */ jsx(
|
35
|
+
ui.div,
|
36
|
+
{
|
37
|
+
ref,
|
38
|
+
className: cx("ui-chart__legend", className),
|
39
|
+
__css: styles.legend,
|
40
|
+
...rest,
|
41
|
+
children: items
|
42
|
+
}
|
43
|
+
);
|
44
|
+
}
|
45
|
+
);
|
46
|
+
|
47
|
+
export {
|
48
|
+
ChartLegend
|
49
|
+
};
|
50
|
+
//# sourceMappingURL=chunk-RTTZPOUT.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/chart-legend.tsx"],"sourcesContent":["import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx, type Dict } from \"@yamada-ui/utils\"\nimport { useLegend } from \"./use-chart\"\n\ntype ChartLegendOptions = {\n payload?: Dict[]\n onHighlight: (area: string | null) => void\n}\n\nexport type ChartLegendProps = HTMLUIProps<\"div\"> & ChartLegendOptions\n\nexport const ChartLegend = forwardRef<ChartLegendProps, \"div\">(\n ({ className, payload = [], onHighlight, ...rest }, ref) => {\n const { styles } = useLegend()\n\n const items = payload.map(({ dataKey, color }, index) => (\n <ui.div\n className=\"ui-chart__legend-item\"\n key={`legend-${index}`}\n onMouseEnter={() => onHighlight(dataKey)}\n onMouseLeave={() => onHighlight(null)}\n __css={styles.legendItem}\n >\n <ui.div\n className=\"ui-chart__legend-swatch\"\n background={color}\n __css={styles.legendSwatch}\n />\n\n <ui.span className=\"ui-chart__legend-label\">{dataKey}</ui.span>\n </ui.div>\n ))\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-chart__legend\", className)}\n __css={styles.legend}\n {...rest}\n >\n {items}\n </ui.div>\n )\n },\n)\n"],"mappings":";;;;;;AACA,SAAS,YAAY,UAAU;AAC/B,SAAS,UAAqB;AAexB,SAOE,KAPF;AALC,IAAM,cAAc;AAAA,EACzB,CAAC,EAAE,WAAW,UAAU,CAAC,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ;AAC1D,UAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,UAAM,QAAQ,QAAQ,IAAI,CAAC,EAAE,SAAS,MAAM,GAAG,UAC7C;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC,WAAU;AAAA,QAEV,cAAc,MAAM,YAAY,OAAO;AAAA,QACvC,cAAc,MAAM,YAAY,IAAI;AAAA,QACpC,OAAO,OAAO;AAAA,QAEd;AAAA;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,WAAU;AAAA,cACV,YAAY;AAAA,cACZ,OAAO,OAAO;AAAA;AAAA,UAChB;AAAA,UAEA,oBAAC,GAAG,MAAH,EAAQ,WAAU,0BAA0B,mBAAQ;AAAA;AAAA;AAAA,MAXhD,UAAU,KAAK;AAAA,IAYtB,CACD;AAED,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,oBAAoB,SAAS;AAAA,QAC3C,OAAO,OAAO;AAAA,QACb,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;","names":[]}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
containerProperties
|
4
|
+
} from "./chunk-5QCKM3B3.mjs";
|
5
|
+
import {
|
6
|
+
getComponentProps
|
7
|
+
} from "./chunk-QL3DB7OJ.mjs";
|
8
|
+
|
9
|
+
// src/use-chart.ts
|
10
|
+
import { useTheme } from "@yamada-ui/core";
|
11
|
+
import { createContext, cx } from "@yamada-ui/utils";
|
12
|
+
import { useCallback } from "react";
|
13
|
+
var [ChartProvider, useChartContext] = createContext({
|
14
|
+
name: "ChartContext",
|
15
|
+
errorMessage: `useChartContext returned is 'undefined'. Seems you forgot to wrap the components in "<LineChart />" or "<BarChart />" etc.`
|
16
|
+
});
|
17
|
+
var useChart = ({ containerProps = {} }) => {
|
18
|
+
const { theme } = useTheme();
|
19
|
+
const [reChartsProps, propClassName] = getComponentProps([
|
20
|
+
containerProps,
|
21
|
+
containerProperties
|
22
|
+
])(theme);
|
23
|
+
const getContainerProps = useCallback(
|
24
|
+
({ className, ...props } = {}, ref = null) => ({
|
25
|
+
ref,
|
26
|
+
className: cx("ui-chart__container", className, propClassName),
|
27
|
+
...props,
|
28
|
+
...reChartsProps
|
29
|
+
}),
|
30
|
+
[propClassName, reChartsProps]
|
31
|
+
);
|
32
|
+
return {
|
33
|
+
getContainerProps
|
34
|
+
};
|
35
|
+
};
|
36
|
+
var useLegend = ({} = {}) => {
|
37
|
+
const { styles } = useChartContext();
|
38
|
+
return {
|
39
|
+
styles
|
40
|
+
};
|
41
|
+
};
|
42
|
+
var useTooltip = ({} = {}) => {
|
43
|
+
const { styles } = useChartContext();
|
44
|
+
return {
|
45
|
+
styles
|
46
|
+
};
|
47
|
+
};
|
48
|
+
|
49
|
+
export {
|
50
|
+
ChartProvider,
|
51
|
+
useChartContext,
|
52
|
+
useChart,
|
53
|
+
useLegend,
|
54
|
+
useTooltip
|
55
|
+
};
|
56
|
+
//# sourceMappingURL=chunk-RXWD2EJ2.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/use-chart.ts"],"sourcesContent":["import { useTheme, type CSSUIObject } from \"@yamada-ui/core\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport { createContext, cx } from \"@yamada-ui/utils\"\nimport { useCallback } from \"react\"\nimport type * as Recharts from \"recharts\"\nimport { getComponentProps } from \"./chart-utils\"\nimport type { ChartPropGetter, ResponsiveContainerProps } from \"./chart.types\"\nimport { containerProperties } from \"./rechart-properties\"\n\ntype ChartContext = { styles: Record<string, CSSUIObject> }\n\nexport const [ChartProvider, useChartContext] = createContext<ChartContext>({\n name: \"ChartContext\",\n errorMessage: `useChartContext returned is 'undefined'. Seems you forgot to wrap the components in \"<LineChart />\" or \"<BarChart />\" etc.`,\n})\n\nexport type UseChartProps = {\n /**\n * Props passed down to recharts `ResponsiveContainer` component.\n */\n containerProps?: ResponsiveContainerProps\n}\n\nexport const useChart = ({ containerProps = {} }: UseChartProps) => {\n const { theme } = useTheme()\n const [reChartsProps, propClassName] = getComponentProps<Dict, string>([\n containerProps,\n containerProperties,\n ])(theme)\n\n const getContainerProps: ChartPropGetter<\n \"div\",\n Partial<Omit<Recharts.ResponsiveContainerProps, \"children\">>,\n Omit<Recharts.ResponsiveContainerProps, \"children\">\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(\"ui-chart__container\", className as string, propClassName),\n ...props,\n ...reChartsProps,\n }),\n [propClassName, reChartsProps],\n )\n\n return {\n getContainerProps,\n }\n}\n\nexport type UseChartReturn = ReturnType<typeof useChart>\n\nexport type UseLegendProps = {}\n\nexport const useLegend = ({}: UseLegendProps = {}) => {\n const { styles } = useChartContext()\n return {\n styles,\n }\n}\nexport type UseLegendReturn = ReturnType<typeof useLegend>\n\nexport type UseTooltipProps = {}\n\nexport const useTooltip = ({}: UseTooltipProps = {}) => {\n const { styles } = useChartContext()\n return {\n styles,\n }\n}\nexport type UseTooltipReturn = ReturnType<typeof useTooltip>\n"],"mappings":";;;;;;;;;AAAA,SAAS,gBAAkC;AAE3C,SAAS,eAAe,UAAU;AAClC,SAAS,mBAAmB;AAQrB,IAAM,CAAC,eAAe,eAAe,IAAI,cAA4B;AAAA,EAC1E,MAAM;AAAA,EACN,cAAc;AAChB,CAAC;AASM,IAAM,WAAW,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAqB;AAClE,QAAM,EAAE,MAAM,IAAI,SAAS;AAC3B,QAAM,CAAC,eAAe,aAAa,IAAI,kBAAgC;AAAA,IACrE;AAAA,IACA;AAAA,EACF,CAAC,EAAE,KAAK;AAER,QAAM,oBAIF;AAAA,IACF,CAAC,EAAE,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,UAAU;AAAA,MAC7C;AAAA,MACA,WAAW,GAAG,uBAAuB,WAAqB,aAAa;AAAA,MACvE,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,IACA,CAAC,eAAe,aAAa;AAAA,EAC/B;AAEA,SAAO;AAAA,IACL;AAAA,EACF;AACF;AAMO,IAAM,YAAY,CAAC,CAAC,IAAoB,CAAC,MAAM;AACpD,QAAM,EAAE,OAAO,IAAI,gBAAgB;AACnC,SAAO;AAAA,IACL;AAAA,EACF;AACF;AAKO,IAAM,aAAa,CAAC,CAAC,IAAqB,CAAC,MAAM;AACtD,QAAM,EAAE,OAAO,IAAI,gBAAgB;AACnC,SAAO;AAAA,IACL;AAAA,EACF;AACF;","names":[]}
|
@@ -0,0 +1,206 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
barChartProperties,
|
4
|
+
barProperties
|
5
|
+
} from "./chunk-5QCKM3B3.mjs";
|
6
|
+
import {
|
7
|
+
getComponentProps
|
8
|
+
} from "./chunk-QL3DB7OJ.mjs";
|
9
|
+
|
10
|
+
// src/use-bar-chart.ts
|
11
|
+
import { useTheme } from "@yamada-ui/core";
|
12
|
+
import { cx } from "@yamada-ui/utils";
|
13
|
+
import {
|
14
|
+
useCallback,
|
15
|
+
useState,
|
16
|
+
useId,
|
17
|
+
useMemo
|
18
|
+
} from "react";
|
19
|
+
var useBarChart = ({
|
20
|
+
data,
|
21
|
+
series,
|
22
|
+
type = "default",
|
23
|
+
layoutType = "horizontal",
|
24
|
+
referenceLineProps = [],
|
25
|
+
fillOpacity = 1,
|
26
|
+
styles,
|
27
|
+
...rest
|
28
|
+
}) => {
|
29
|
+
var _a;
|
30
|
+
const uuid = useId();
|
31
|
+
const { theme } = useTheme();
|
32
|
+
const [highlightedArea, setHighlightedArea] = useState(null);
|
33
|
+
const stacked = type === "stacked" || type === "percent";
|
34
|
+
const shouldHighlight = highlightedArea !== null;
|
35
|
+
const {
|
36
|
+
activeBar = {},
|
37
|
+
background = {},
|
38
|
+
dimBar,
|
39
|
+
...computedBarProps
|
40
|
+
} = (_a = rest.barProps) != null ? _a : {};
|
41
|
+
const barColors = useMemo(
|
42
|
+
() => series.map(({ color }, index) => ({
|
43
|
+
__prefix: "ui",
|
44
|
+
name: `bar-${index}`,
|
45
|
+
token: "colors",
|
46
|
+
value: color != null ? color : "transparent"
|
47
|
+
})),
|
48
|
+
[series]
|
49
|
+
);
|
50
|
+
const referenceLineColors = useMemo(
|
51
|
+
() => referenceLineProps.map(({ color }, index) => ({
|
52
|
+
__prefix: "ui",
|
53
|
+
name: `reference-line-${index}`,
|
54
|
+
token: "colors",
|
55
|
+
value: color != null ? color : "transparent"
|
56
|
+
})),
|
57
|
+
[referenceLineProps]
|
58
|
+
);
|
59
|
+
const barVars = useMemo(() => {
|
60
|
+
return [
|
61
|
+
...barColors,
|
62
|
+
...referenceLineColors,
|
63
|
+
{ __prefix: "ui", name: "fill-opacity", value: fillOpacity }
|
64
|
+
];
|
65
|
+
}, [barColors, fillOpacity, referenceLineColors]);
|
66
|
+
const [barChartProps, barChartClassName] = useMemo(() => {
|
67
|
+
const resolvedBarChartProps = { barGap: 8, ...rest.barChartProps };
|
68
|
+
return getComponentProps(
|
69
|
+
[resolvedBarChartProps, barChartProperties],
|
70
|
+
styles.chart
|
71
|
+
)(theme);
|
72
|
+
}, [rest.barChartProps, styles.chart, theme]);
|
73
|
+
const [barProps, barClassName] = useMemo(() => {
|
74
|
+
const resolvedBarProps = {
|
75
|
+
fillOpacity: "var(--ui-fill-opacity)",
|
76
|
+
strokeOpacity: 1,
|
77
|
+
...computedBarProps
|
78
|
+
};
|
79
|
+
return getComponentProps(
|
80
|
+
[resolvedBarProps, barProperties],
|
81
|
+
styles.bar
|
82
|
+
)(theme);
|
83
|
+
}, [computedBarProps, styles.bar, theme]);
|
84
|
+
const [dimBarProps, dimBarClassName] = useMemo(() => {
|
85
|
+
const resolvedDimBar = { fillOpacity: 0.3, strokeOpacity: 0, ...dimBar };
|
86
|
+
return getComponentProps([resolvedDimBar, barProperties])(
|
87
|
+
theme
|
88
|
+
);
|
89
|
+
}, [dimBar, theme]);
|
90
|
+
const [activeBarProps, activeBarClassName] = useMemo(
|
91
|
+
() => getComponentProps(
|
92
|
+
[activeBar, barProperties],
|
93
|
+
styles.activeBar
|
94
|
+
)(theme),
|
95
|
+
[activeBar, styles.activeBar, theme]
|
96
|
+
);
|
97
|
+
const [backgroundProps, backgroundClassName] = useMemo(
|
98
|
+
() => getComponentProps(
|
99
|
+
[background, barProperties],
|
100
|
+
styles.background
|
101
|
+
)(theme),
|
102
|
+
[background, styles.background, theme]
|
103
|
+
);
|
104
|
+
const barPropsList = useMemo(
|
105
|
+
() => series.map((props, index) => {
|
106
|
+
const {
|
107
|
+
dataKey,
|
108
|
+
activeBar: activeBar2 = {},
|
109
|
+
background: background2 = {},
|
110
|
+
dimBar: dimBar2 = {},
|
111
|
+
...computedProps
|
112
|
+
} = props;
|
113
|
+
const id = `${uuid}-${dataKey}`;
|
114
|
+
const color = `var(--ui-bar-${index})`;
|
115
|
+
const dimmed = shouldHighlight && highlightedArea !== dataKey;
|
116
|
+
const computedDimBar = { ...dimBarProps, ...dimBar2 };
|
117
|
+
const resolvedProps = {
|
118
|
+
...barProps,
|
119
|
+
...computedProps,
|
120
|
+
...dimmed ? computedDimBar : {}
|
121
|
+
};
|
122
|
+
const rest2 = getComponentProps(
|
123
|
+
[resolvedProps, barProperties],
|
124
|
+
barClassName,
|
125
|
+
dimmed ? dimBarClassName : void 0
|
126
|
+
)(theme, true);
|
127
|
+
const computedActiveBar = { ...activeBarProps, ...activeBar2 };
|
128
|
+
const resolvedActiveBar = getComponentProps(
|
129
|
+
[computedActiveBar, barProperties],
|
130
|
+
activeBarClassName
|
131
|
+
)(theme, true);
|
132
|
+
const computedBackground = { ...backgroundProps, ...background2 };
|
133
|
+
const resolvedBackground = getComponentProps(
|
134
|
+
[computedBackground, barProperties],
|
135
|
+
backgroundClassName
|
136
|
+
)(theme, true);
|
137
|
+
return {
|
138
|
+
...rest2,
|
139
|
+
id,
|
140
|
+
activeBar: resolvedActiveBar,
|
141
|
+
background: resolvedBackground,
|
142
|
+
color,
|
143
|
+
dataKey
|
144
|
+
};
|
145
|
+
}),
|
146
|
+
[
|
147
|
+
activeBarClassName,
|
148
|
+
activeBarProps,
|
149
|
+
backgroundClassName,
|
150
|
+
backgroundProps,
|
151
|
+
barClassName,
|
152
|
+
barProps,
|
153
|
+
dimBarClassName,
|
154
|
+
dimBarProps,
|
155
|
+
highlightedArea,
|
156
|
+
series,
|
157
|
+
shouldHighlight,
|
158
|
+
theme,
|
159
|
+
uuid
|
160
|
+
]
|
161
|
+
);
|
162
|
+
const getBarProps = useCallback(
|
163
|
+
({ index, className: classNameProp, ...props }, ref = null) => {
|
164
|
+
const { id, className, activeBar: activeBar2, background: background2, color, dataKey, ...rest2 } = barPropsList[index];
|
165
|
+
return {
|
166
|
+
ref,
|
167
|
+
className: cx(classNameProp, className),
|
168
|
+
activeBar: activeBar2,
|
169
|
+
background: background2,
|
170
|
+
id,
|
171
|
+
name: dataKey,
|
172
|
+
dataKey,
|
173
|
+
fill: color,
|
174
|
+
stroke: color,
|
175
|
+
isAnimationActive: false,
|
176
|
+
stackId: stacked ? "stack" : void 0,
|
177
|
+
...props,
|
178
|
+
...rest2
|
179
|
+
};
|
180
|
+
},
|
181
|
+
[barPropsList, stacked]
|
182
|
+
);
|
183
|
+
const getBarChartProps = useCallback(
|
184
|
+
({ className, ...props } = {}, ref = null) => ({
|
185
|
+
ref,
|
186
|
+
className: cx(className, barChartClassName),
|
187
|
+
data,
|
188
|
+
stackOffset: type === "percent" ? "expand" : void 0,
|
189
|
+
layout: layoutType,
|
190
|
+
...props,
|
191
|
+
...barChartProps
|
192
|
+
}),
|
193
|
+
[barChartClassName, barChartProps, data, layoutType, type]
|
194
|
+
);
|
195
|
+
return {
|
196
|
+
barVars,
|
197
|
+
getBarProps,
|
198
|
+
getBarChartProps,
|
199
|
+
setHighlightedArea
|
200
|
+
};
|
201
|
+
};
|
202
|
+
|
203
|
+
export {
|
204
|
+
useBarChart
|
205
|
+
};
|
206
|
+
//# sourceMappingURL=chunk-TKLHZBVY.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/use-bar-chart.ts"],"sourcesContent":["import { type CSSUIObject, useTheme, type CSSUIProps } from \"@yamada-ui/core\"\nimport { type Dict, cx } from \"@yamada-ui/utils\"\nimport {\n type ComponentPropsWithoutRef,\n useCallback,\n useState,\n useId,\n useMemo,\n} from \"react\"\nimport type * as Recharts from \"recharts\"\nimport { getComponentProps } from \"./chart-utils\"\nimport type {\n BarProps,\n BarChartType,\n BarChartProps,\n ChartPropGetter,\n ChartLayoutType,\n ReferenceLineProps,\n RequiredChartPropGetter,\n} from \"./chart.types\"\nimport { barProperties, barChartProperties } from \"./rechart-properties\"\n\nexport type UseBarChartOptions = {\n /**\n * Chart data.\n */\n data: Dict[]\n /**\n * An array of objects with `name` and `color` keys. Determines which data should be consumed from the `data` array.\n */\n series: BarProps[]\n /**\n * Props for the bars.\n */\n barProps?: Partial<BarProps>\n /**\n * Controls how chart bars are positioned relative to each other.\n *\n * @default `default`\n */\n type?: BarChartType\n /**\n * Chart orientation.\n *\n * @default 'horizontal'\n */\n layoutType?: ChartLayoutType\n /**\n * Props passed down to recharts `BarChart` component.\n */\n barChartProps?: BarChartProps\n /**\n * Reference lines that should be displayed on the chart.\n */\n referenceLineProps?: ReferenceLineProps[]\n /**\n * Controls fill opacity of all bars.\n *\n * @default 1\n */\n fillOpacity?: number | [number, number]\n}\n\nexport type UseBarChartProps = UseBarChartOptions & {\n styles: Dict<CSSUIObject>\n}\n\nexport const useBarChart = ({\n data,\n series,\n type = \"default\",\n layoutType = \"horizontal\",\n referenceLineProps = [],\n fillOpacity = 1,\n styles,\n ...rest\n}: UseBarChartProps) => {\n const uuid = useId()\n const { theme } = useTheme()\n const [highlightedArea, setHighlightedArea] = useState<string | null>(null)\n const stacked = type === \"stacked\" || type === \"percent\"\n const shouldHighlight = highlightedArea !== null\n const {\n activeBar = {},\n background = {},\n dimBar,\n ...computedBarProps\n } = rest.barProps ?? {}\n\n const barColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n series.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `bar-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n })),\n [series],\n )\n\n const referenceLineColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n referenceLineProps.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `reference-line-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n })),\n [referenceLineProps],\n )\n\n const barVars: CSSUIProps[\"var\"] = useMemo(() => {\n return [\n ...barColors,\n ...referenceLineColors,\n { __prefix: \"ui\", name: \"fill-opacity\", value: fillOpacity },\n ]\n }, [barColors, fillOpacity, referenceLineColors])\n\n const [barChartProps, barChartClassName] = useMemo(() => {\n const resolvedBarChartProps = { barGap: 8, ...rest.barChartProps }\n\n return getComponentProps<Dict, string>(\n [resolvedBarChartProps, barChartProperties],\n styles.chart,\n )(theme)\n }, [rest.barChartProps, styles.chart, theme])\n\n const [barProps, barClassName] = useMemo(() => {\n const resolvedBarProps = {\n fillOpacity: \"var(--ui-fill-opacity)\",\n strokeOpacity: 1,\n ...computedBarProps,\n }\n\n return getComponentProps<Dict, string>(\n [resolvedBarProps, barProperties],\n styles.bar,\n )(theme)\n }, [computedBarProps, styles.bar, theme])\n\n const [dimBarProps, dimBarClassName] = useMemo(() => {\n const resolvedDimBar = { fillOpacity: 0.3, strokeOpacity: 0, ...dimBar }\n\n return getComponentProps<Dict, string>([resolvedDimBar, barProperties])(\n theme,\n )\n }, [dimBar, theme])\n\n const [activeBarProps, activeBarClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [activeBar, barProperties],\n styles.activeBar,\n )(theme),\n [activeBar, styles.activeBar, theme],\n )\n\n const [backgroundProps, backgroundClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [background, barProperties],\n styles.background,\n )(theme),\n [background, styles.background, theme],\n )\n\n const barPropsList = useMemo(\n () =>\n series.map((props, index) => {\n const {\n dataKey,\n activeBar = {},\n background = {},\n dimBar = {},\n ...computedProps\n } = props\n const id = `${uuid}-${dataKey}`\n const color = `var(--ui-bar-${index})`\n const dimmed = shouldHighlight && highlightedArea !== dataKey\n const computedDimBar = { ...dimBarProps, ...dimBar }\n const resolvedProps = {\n ...barProps,\n ...computedProps,\n ...(dimmed ? computedDimBar : {}),\n }\n\n const rest = getComponentProps<Dict, string>(\n [resolvedProps, barProperties],\n barClassName,\n dimmed ? dimBarClassName : undefined,\n )(theme, true)\n\n const computedActiveBar = { ...activeBarProps, ...activeBar }\n\n const resolvedActiveBar = getComponentProps<Dict, string>(\n [computedActiveBar, barProperties],\n activeBarClassName,\n )(theme, true)\n\n const computedBackground = { ...backgroundProps, ...background }\n\n const resolvedBackground = getComponentProps<Dict, string>(\n [computedBackground, barProperties],\n backgroundClassName,\n )(theme, true)\n\n return {\n ...rest,\n id,\n activeBar: resolvedActiveBar,\n background: resolvedBackground,\n color,\n dataKey,\n }\n }),\n [\n activeBarClassName,\n activeBarProps,\n backgroundClassName,\n backgroundProps,\n barClassName,\n barProps,\n dimBarClassName,\n dimBarProps,\n highlightedArea,\n series,\n shouldHighlight,\n theme,\n uuid,\n ],\n )\n\n const getBarProps: RequiredChartPropGetter<\n \"div\",\n {\n index: number\n },\n Omit<Recharts.BarProps, \"ref\">\n > = useCallback(\n ({ index, className: classNameProp, ...props }, ref = null) => {\n const { id, className, activeBar, background, color, dataKey, ...rest } =\n barPropsList[index]\n\n return {\n ref,\n className: cx(classNameProp, className),\n activeBar,\n background,\n id,\n name: dataKey as string,\n dataKey,\n fill: color,\n stroke: color,\n isAnimationActive: false,\n stackId: stacked ? \"stack\" : undefined,\n ...(props as Omit<Recharts.BarProps, \"dataKey\">),\n ...rest,\n } as Recharts.BarProps\n },\n [barPropsList, stacked],\n )\n\n const getBarChartProps: ChartPropGetter<\n \"div\",\n ComponentPropsWithoutRef<typeof Recharts.BarChart>,\n ComponentPropsWithoutRef<typeof Recharts.BarChart>\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, barChartClassName),\n data,\n stackOffset: type === \"percent\" ? \"expand\" : undefined,\n layout: layoutType,\n ...props,\n ...barChartProps,\n }),\n [barChartClassName, barChartProps, data, layoutType, type],\n )\n\n return {\n barVars,\n getBarProps,\n getBarChartProps,\n setHighlightedArea,\n }\n}\n\nexport type UseBarChartReturn = ReturnType<typeof useBarChart>\n"],"mappings":"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","names":["activeBar","background","dimBar","rest"]}
|