@yamada-ui/charts 1.4.1-next-20240820155044 → 1.5.0-dev-20240822153118
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/chart.types.d.mts +4 -2
- package/dist/chart.types.d.ts +4 -2
- package/dist/chart.types.js.map +1 -1
- package/dist/chunk-5XSML5U3.mjs +37 -0
- package/dist/chunk-5XSML5U3.mjs.map +1 -0
- package/dist/{chunk-U2HWHZYI.mjs → chunk-7HKRIEAT.mjs} +17 -3
- package/dist/chunk-7HKRIEAT.mjs.map +1 -0
- package/dist/donut-chart.d.mts +2 -1
- package/dist/donut-chart.d.ts +2 -1
- package/dist/donut-chart.js +96 -51
- package/dist/donut-chart.js.map +1 -1
- package/dist/donut-chart.mjs +2 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +83 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/use-chart-label.d.mts +21 -0
- package/dist/use-chart-label.d.ts +21 -0
- package/dist/use-chart-label.js +82 -0
- package/dist/use-chart-label.js.map +1 -0
- package/dist/use-chart-label.mjs +10 -0
- package/dist/use-chart-label.mjs.map +1 -0
- package/package.json +3 -3
- package/dist/chunk-U2HWHZYI.mjs.map +0 -1
package/dist/chart.types.d.mts
CHANGED
@@ -74,8 +74,10 @@ type GridProps = Merge<CSSUIProps, Recharts.CartesianGridProps>;
|
|
74
74
|
type PolarGridProps = Merge<CSSUIProps, Recharts.PolarGridProps>;
|
75
75
|
type PolarAngleAxisProps = Merge<Recharts.PolarAngleAxisProps, CSSUIProps>;
|
76
76
|
type PolarRadiusAxisProps = Merge<CSSUIProps, Recharts.PolarRadiusAxisProps>;
|
77
|
-
type LabelProps = Merge<CSSUIProps, Recharts.LabelProps
|
77
|
+
type LabelProps = Merge<CSSUIProps, Omit<Recharts.LabelProps, "fill">>;
|
78
78
|
type ChartTooltipProps = Recharts.TooltipProps<number | string | Array<number | string>, number | string>;
|
79
79
|
type ChartTooltip = ReactElement | ((props: ChartTooltipProps) => ReactNode);
|
80
|
+
type ChartLabelProps = Omit<React.SVGProps<SVGTextElement>, "viewBox"> & LabelProps;
|
81
|
+
type ChartLabel = ReactElement | ((props: ChartLabelProps) => ReactNode);
|
80
82
|
|
81
|
-
export type { AreaChartProps, AreaChartType, AreaProps, BarChartProps, BarChartType, BarProps, CellProps, ChartAxisType, ChartCurveType, ChartLayoutType, ChartPropGetter, ChartTooltip, ChartTooltipProps, DotProps, GridProps, LabelProps, LegendProps, LineChartProps, LineProps, PieChartProps, PieProps, PolarAngleAxisProps, PolarGridProps, PolarRadiusAxisProps, RadarChartProps, RadarProps, ReferenceLineProps, RequiredChartPropGetter, ResponsiveContainerProps, TooltipDataSourceType, TooltipProps, XAxisProps, YAxisProps };
|
83
|
+
export type { AreaChartProps, AreaChartType, AreaProps, BarChartProps, BarChartType, BarProps, CellProps, ChartAxisType, ChartCurveType, ChartLabel, ChartLabelProps, ChartLayoutType, ChartPropGetter, ChartTooltip, ChartTooltipProps, DotProps, GridProps, LabelProps, LegendProps, LineChartProps, LineProps, PieChartProps, PieProps, PolarAngleAxisProps, PolarGridProps, PolarRadiusAxisProps, RadarChartProps, RadarProps, ReferenceLineProps, RequiredChartPropGetter, ResponsiveContainerProps, TooltipDataSourceType, TooltipProps, XAxisProps, YAxisProps };
|
package/dist/chart.types.d.ts
CHANGED
@@ -74,8 +74,10 @@ type GridProps = Merge<CSSUIProps, Recharts.CartesianGridProps>;
|
|
74
74
|
type PolarGridProps = Merge<CSSUIProps, Recharts.PolarGridProps>;
|
75
75
|
type PolarAngleAxisProps = Merge<Recharts.PolarAngleAxisProps, CSSUIProps>;
|
76
76
|
type PolarRadiusAxisProps = Merge<CSSUIProps, Recharts.PolarRadiusAxisProps>;
|
77
|
-
type LabelProps = Merge<CSSUIProps, Recharts.LabelProps
|
77
|
+
type LabelProps = Merge<CSSUIProps, Omit<Recharts.LabelProps, "fill">>;
|
78
78
|
type ChartTooltipProps = Recharts.TooltipProps<number | string | Array<number | string>, number | string>;
|
79
79
|
type ChartTooltip = ReactElement | ((props: ChartTooltipProps) => ReactNode);
|
80
|
+
type ChartLabelProps = Omit<React.SVGProps<SVGTextElement>, "viewBox"> & LabelProps;
|
81
|
+
type ChartLabel = ReactElement | ((props: ChartLabelProps) => ReactNode);
|
80
82
|
|
81
|
-
export type { AreaChartProps, AreaChartType, AreaProps, BarChartProps, BarChartType, BarProps, CellProps, ChartAxisType, ChartCurveType, ChartLayoutType, ChartPropGetter, ChartTooltip, ChartTooltipProps, DotProps, GridProps, LabelProps, LegendProps, LineChartProps, LineProps, PieChartProps, PieProps, PolarAngleAxisProps, PolarGridProps, PolarRadiusAxisProps, RadarChartProps, RadarProps, ReferenceLineProps, RequiredChartPropGetter, ResponsiveContainerProps, TooltipDataSourceType, TooltipProps, XAxisProps, YAxisProps };
|
83
|
+
export type { AreaChartProps, AreaChartType, AreaProps, BarChartProps, BarChartType, BarProps, CellProps, ChartAxisType, ChartCurveType, ChartLabel, ChartLabelProps, ChartLayoutType, ChartPropGetter, ChartTooltip, ChartTooltipProps, DotProps, GridProps, LabelProps, LegendProps, LineChartProps, LineProps, PieChartProps, PieProps, PolarAngleAxisProps, PolarGridProps, PolarRadiusAxisProps, RadarChartProps, RadarProps, ReferenceLineProps, RequiredChartPropGetter, ResponsiveContainerProps, TooltipDataSourceType, TooltipProps, XAxisProps, YAxisProps };
|
package/dist/chart.types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/chart.types.ts"],"sourcesContent":["import type { As, CSSUIProps, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { Merge } from \"@yamada-ui/utils\"\nimport type {\n ComponentPropsWithoutRef,\n ReactElement,\n ReactNode,\n SVGProps,\n} from \"react\"\nimport type * as Recharts from \"recharts\"\nimport type { pieProperties } from \"./rechart-properties\"\n\nexport type ChartPropGetter<\n Y extends As = \"div\",\n M = undefined,\n D = undefined,\n> = (props?: Merge<HTMLUIProps<Y>, M>, ref?: React.Ref<any>) => D\n\nexport type RequiredChartPropGetter<\n Y extends As = \"div\",\n M = undefined,\n D = undefined,\n> = (props: Merge<HTMLUIProps<Y>, M>, ref?: React.Ref<any>) => D\nexport type ChartLayoutType = \"horizontal\" | \"vertical\"\nexport type AreaChartType = \"default\" | \"stacked\" | \"percent\" | \"split\"\nexport type BarChartType = Exclude<AreaChartType, \"split\">\nexport type ChartAxisType = \"x\" | \"y\" | \"xy\" | \"none\"\nexport type ChartCurveType =\n | \"bump\"\n | \"linear\"\n | \"natural\"\n | \"monotone\"\n | \"step\"\n | \"stepBefore\"\n | \"stepAfter\"\nexport type TooltipDataSourceType = \"segment\" | \"all\"\n\nexport type AreaChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.AreaChart>\n>\nexport type BarChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.BarChart>\n>\nexport type LineChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.LineChart>\n>\nexport type RadarChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.RadarChart>\n>\nexport type PieChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.PieChart>\n>\nexport type ReferenceLineProps = Merge<CSSUIProps, Recharts.ReferenceLineProps>\nexport type ResponsiveContainerProps = Merge<\n CSSUIProps,\n Omit<Recharts.ResponsiveContainerProps, \"children\">\n>\nexport type AreaProps = Merge<\n Merge<CSSUIProps, Recharts.AreaProps>,\n {\n color: CSSUIProps[\"color\"]\n dot?: DotProps\n activeDot?: DotProps\n dimDot?: DotProps\n dimArea?: Partial<AreaProps>\n }\n>\nexport type LineProps = Merge<\n Merge<CSSUIProps, Recharts.LineProps>,\n {\n color: CSSUIProps[\"color\"]\n activeDot?: DotProps\n dot?: DotProps\n dimDot?: DotProps\n dimLine?: Partial<LineProps>\n }\n>\nexport type BarProps = Merge<\n Merge<CSSUIProps, Recharts.BarProps>,\n {\n color: CSSUIProps[\"color\"]\n activeBar?: Merge<SVGProps<SVGPathElement>, CSSUIProps>\n background?: Merge<SVGProps<SVGPathElement>, CSSUIProps>\n dimBar?: Partial<BarProps>\n }\n>\nexport type RadarProps = Merge<\n Merge<CSSUIProps, Recharts.RadarProps>,\n {\n color: CSSUIProps[\"color\"]\n dot?: DotProps\n activeDot?: DotProps\n dimDot?: DotProps\n dimRadar?: Partial<RadarProps>\n }\n>\nexport type PieProps = Merge<\n Merge<Pick<Recharts.PieProps, (typeof pieProperties)[number]>, CSSUIProps>,\n {\n activeShape?: Partial<PieProps>\n inactiveShape?: Partial<PieProps>\n label?: HTMLUIProps<\"text\">\n labelLine?: HTMLUIProps<\"path\">\n }\n>\nexport type CellProps = Merge<\n CSSUIProps,\n {\n name: string\n value: number\n dimCell?: Partial<CellProps>\n }\n>\nexport type DotProps = Merge<Omit<Recharts.DotProps, \"ref\">, CSSUIProps>\nexport type XAxisProps = Merge<\n Merge<CSSUIProps, Recharts.XAxisProps>,\n {\n color?: CSSUIProps[\"color\"]\n stroke?: CSSUIProps[\"color\"]\n fill?: CSSUIProps[\"color\"]\n }\n>\nexport type YAxisProps = Merge<\n Merge<CSSUIProps, Recharts.YAxisProps>,\n { color?: CSSUIProps[\"color\"] }\n>\nexport type LegendProps = Merge<CSSUIProps, Omit<Recharts.LegendProps, \"ref\">>\nexport type TooltipProps = Merge<\n Merge<CSSUIProps, Omit<Recharts.TooltipProps<any, any>, \"ref\">>,\n { cursor?: CSSUIProps }\n>\nexport type GridProps = Merge<CSSUIProps, Recharts.CartesianGridProps>\nexport type PolarGridProps = Merge<CSSUIProps, Recharts.PolarGridProps>\nexport type PolarAngleAxisProps = Merge<\n Recharts.PolarAngleAxisProps,\n CSSUIProps\n>\nexport type PolarRadiusAxisProps = Merge<\n CSSUIProps,\n Recharts.PolarRadiusAxisProps\n>\nexport type LabelProps = Merge<CSSUIProps, Recharts.LabelProps
|
1
|
+
{"version":3,"sources":["../src/chart.types.ts"],"sourcesContent":["import type { As, CSSUIProps, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { Merge } from \"@yamada-ui/utils\"\nimport type {\n ComponentPropsWithoutRef,\n ReactElement,\n ReactNode,\n SVGProps,\n} from \"react\"\nimport type * as Recharts from \"recharts\"\nimport type { pieProperties } from \"./rechart-properties\"\n\nexport type ChartPropGetter<\n Y extends As = \"div\",\n M = undefined,\n D = undefined,\n> = (props?: Merge<HTMLUIProps<Y>, M>, ref?: React.Ref<any>) => D\n\nexport type RequiredChartPropGetter<\n Y extends As = \"div\",\n M = undefined,\n D = undefined,\n> = (props: Merge<HTMLUIProps<Y>, M>, ref?: React.Ref<any>) => D\nexport type ChartLayoutType = \"horizontal\" | \"vertical\"\nexport type AreaChartType = \"default\" | \"stacked\" | \"percent\" | \"split\"\nexport type BarChartType = Exclude<AreaChartType, \"split\">\nexport type ChartAxisType = \"x\" | \"y\" | \"xy\" | \"none\"\nexport type ChartCurveType =\n | \"bump\"\n | \"linear\"\n | \"natural\"\n | \"monotone\"\n | \"step\"\n | \"stepBefore\"\n | \"stepAfter\"\nexport type TooltipDataSourceType = \"segment\" | \"all\"\n\nexport type AreaChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.AreaChart>\n>\nexport type BarChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.BarChart>\n>\nexport type LineChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.LineChart>\n>\nexport type RadarChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.RadarChart>\n>\nexport type PieChartProps = Merge<\n CSSUIProps,\n ComponentPropsWithoutRef<typeof Recharts.PieChart>\n>\nexport type ReferenceLineProps = Merge<CSSUIProps, Recharts.ReferenceLineProps>\nexport type ResponsiveContainerProps = Merge<\n CSSUIProps,\n Omit<Recharts.ResponsiveContainerProps, \"children\">\n>\nexport type AreaProps = Merge<\n Merge<CSSUIProps, Recharts.AreaProps>,\n {\n color: CSSUIProps[\"color\"]\n dot?: DotProps\n activeDot?: DotProps\n dimDot?: DotProps\n dimArea?: Partial<AreaProps>\n }\n>\nexport type LineProps = Merge<\n Merge<CSSUIProps, Recharts.LineProps>,\n {\n color: CSSUIProps[\"color\"]\n activeDot?: DotProps\n dot?: DotProps\n dimDot?: DotProps\n dimLine?: Partial<LineProps>\n }\n>\nexport type BarProps = Merge<\n Merge<CSSUIProps, Recharts.BarProps>,\n {\n color: CSSUIProps[\"color\"]\n activeBar?: Merge<SVGProps<SVGPathElement>, CSSUIProps>\n background?: Merge<SVGProps<SVGPathElement>, CSSUIProps>\n dimBar?: Partial<BarProps>\n }\n>\nexport type RadarProps = Merge<\n Merge<CSSUIProps, Recharts.RadarProps>,\n {\n color: CSSUIProps[\"color\"]\n dot?: DotProps\n activeDot?: DotProps\n dimDot?: DotProps\n dimRadar?: Partial<RadarProps>\n }\n>\nexport type PieProps = Merge<\n Merge<Pick<Recharts.PieProps, (typeof pieProperties)[number]>, CSSUIProps>,\n {\n activeShape?: Partial<PieProps>\n inactiveShape?: Partial<PieProps>\n label?: HTMLUIProps<\"text\">\n labelLine?: HTMLUIProps<\"path\">\n }\n>\nexport type CellProps = Merge<\n CSSUIProps,\n {\n name: string\n value: number\n dimCell?: Partial<CellProps>\n }\n>\nexport type DotProps = Merge<Omit<Recharts.DotProps, \"ref\">, CSSUIProps>\nexport type XAxisProps = Merge<\n Merge<CSSUIProps, Recharts.XAxisProps>,\n {\n color?: CSSUIProps[\"color\"]\n stroke?: CSSUIProps[\"color\"]\n fill?: CSSUIProps[\"color\"]\n }\n>\nexport type YAxisProps = Merge<\n Merge<CSSUIProps, Recharts.YAxisProps>,\n { color?: CSSUIProps[\"color\"] }\n>\nexport type LegendProps = Merge<CSSUIProps, Omit<Recharts.LegendProps, \"ref\">>\nexport type TooltipProps = Merge<\n Merge<CSSUIProps, Omit<Recharts.TooltipProps<any, any>, \"ref\">>,\n { cursor?: CSSUIProps }\n>\nexport type GridProps = Merge<CSSUIProps, Recharts.CartesianGridProps>\nexport type PolarGridProps = Merge<CSSUIProps, Recharts.PolarGridProps>\nexport type PolarAngleAxisProps = Merge<\n Recharts.PolarAngleAxisProps,\n CSSUIProps\n>\nexport type PolarRadiusAxisProps = Merge<\n CSSUIProps,\n Recharts.PolarRadiusAxisProps\n>\nexport type LabelProps = Merge<CSSUIProps, Omit<Recharts.LabelProps, \"fill\">>\nexport type ChartTooltipProps = Recharts.TooltipProps<\n number | string | Array<number | string>,\n number | string\n>\nexport type ChartTooltip =\n | ReactElement\n | ((props: ChartTooltipProps) => ReactNode)\n\nexport type ChartLabelProps = Omit<React.SVGProps<SVGTextElement>, \"viewBox\"> &\n LabelProps\nexport type ChartLabel = ReactElement | ((props: ChartLabelProps) => ReactNode)\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use client"
|
2
|
+
import {
|
3
|
+
labelProperties
|
4
|
+
} from "./chunk-F34FV5DY.mjs";
|
5
|
+
import {
|
6
|
+
getComponentProps
|
7
|
+
} from "./chunk-QL3DB7OJ.mjs";
|
8
|
+
|
9
|
+
// src/use-chart-label.ts
|
10
|
+
import { useTheme } from "@yamada-ui/core";
|
11
|
+
import { cx } from "@yamada-ui/utils";
|
12
|
+
import { useCallback } from "react";
|
13
|
+
var useChartLabel = ({ styles, ...rest }) => {
|
14
|
+
var _a;
|
15
|
+
const { theme } = useTheme();
|
16
|
+
const [labelProps, labelClassName] = getComponentProps(
|
17
|
+
[(_a = rest.labelProps) != null ? _a : {}, labelProperties],
|
18
|
+
styles.label
|
19
|
+
)(theme);
|
20
|
+
const getLabelProps = useCallback(
|
21
|
+
({ className, ...props } = {}, ref = null) => {
|
22
|
+
return {
|
23
|
+
ref,
|
24
|
+
className: cx(className, labelClassName),
|
25
|
+
...props,
|
26
|
+
...labelProps
|
27
|
+
};
|
28
|
+
},
|
29
|
+
[labelClassName, labelProps]
|
30
|
+
);
|
31
|
+
return { getLabelProps };
|
32
|
+
};
|
33
|
+
|
34
|
+
export {
|
35
|
+
useChartLabel
|
36
|
+
};
|
37
|
+
//# sourceMappingURL=chunk-5XSML5U3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/use-chart-label.ts"],"sourcesContent":["import { useTheme, type CSSUIObject } from \"@yamada-ui/core\"\nimport { cx, type Dict } from \"@yamada-ui/utils\"\nimport { useCallback } from \"react\"\nimport type * as Recharts from \"recharts\"\nimport { getComponentProps } from \"./chart-utils\"\nimport type { ChartPropGetter, LabelProps } from \"./chart.types\"\nimport { labelProperties } from \"./rechart-properties\"\n\nexport type UseChartLabelOptions = {\n /**\n * Props passed down to recharts 'Label' component.\n */\n labelProps?: LabelProps\n}\n\nexport type UseChartLabelProps = UseChartLabelOptions & {\n styles: Dict<CSSUIObject>\n}\n\nexport const useChartLabel = ({ styles, ...rest }: UseChartLabelProps) => {\n const { theme } = useTheme()\n\n const [labelProps, labelClassName] = getComponentProps<Dict, string>(\n [rest.labelProps ?? {}, labelProperties],\n styles.label,\n )(theme)\n\n const getLabelProps: ChartPropGetter<\n \"div\",\n Omit<Recharts.LabelProps, \"ref\">,\n Omit<Recharts.LabelProps, \"ref\">\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => {\n return {\n ref,\n className: cx(className, labelClassName),\n ...props,\n ...labelProps,\n }\n },\n [labelClassName, labelProps],\n )\n\n return { getLabelProps }\n}\n"],"mappings":";;;;;;;;;AAAA,SAAS,gBAAkC;AAC3C,SAAS,UAAqB;AAC9B,SAAS,mBAAmB;AAiBrB,IAAM,gBAAgB,CAAC,EAAE,QAAQ,GAAG,KAAK,MAA0B;AAnB1E;AAoBE,QAAM,EAAE,MAAM,IAAI,SAAS;AAE3B,QAAM,CAAC,YAAY,cAAc,IAAI;AAAA,IACnC,EAAC,UAAK,eAAL,YAAmB,CAAC,GAAG,eAAe;AAAA,IACvC,OAAO;AAAA,EACT,EAAE,KAAK;AAEP,QAAM,gBAIF;AAAA,IACF,CAAC,EAAE,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,SAAS;AAC5C,aAAO;AAAA,QACL;AAAA,QACA,WAAW,GAAG,WAAW,cAAc;AAAA,QACvC,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,IACF;AAAA,IACA,CAAC,gBAAgB,UAAU;AAAA,EAC7B;AAEA,SAAO,EAAE,cAAc;AACzB;","names":[]}
|
@@ -1,4 +1,7 @@
|
|
1
1
|
"use client"
|
2
|
+
import {
|
3
|
+
useChartLabel
|
4
|
+
} from "./chunk-5XSML5U3.mjs";
|
2
5
|
import {
|
3
6
|
usePieChart
|
4
7
|
} from "./chunk-IF4O4CBA.mjs";
|
@@ -30,6 +33,7 @@ import { cx } from "@yamada-ui/utils";
|
|
30
33
|
import { useMemo } from "react";
|
31
34
|
import {
|
32
35
|
Cell,
|
36
|
+
Label,
|
33
37
|
Legend,
|
34
38
|
Pie,
|
35
39
|
PieChart as RechartsPieChart,
|
@@ -65,6 +69,7 @@ var DonutChart = forwardRef((props, ref) => {
|
|
65
69
|
outerRadius,
|
66
70
|
strokeWidth,
|
67
71
|
legendProps,
|
72
|
+
labelProps,
|
68
73
|
...rest
|
69
74
|
} = omitThemeProps(mergedProps);
|
70
75
|
const {
|
@@ -100,6 +105,7 @@ var DonutChart = forwardRef((props, ref) => {
|
|
100
105
|
const { legendProps: computedLegendProps, getLegendProps } = useChartLegend({
|
101
106
|
legendProps
|
102
107
|
});
|
108
|
+
const { getLabelProps } = useChartLabel({ labelProps, styles });
|
103
109
|
const cells = useMemo(
|
104
110
|
() => data.map(({ name }, index) => /* @__PURE__ */ jsx(
|
105
111
|
Cell,
|
@@ -127,13 +133,21 @@ var DonutChart = forwardRef((props, ref) => {
|
|
127
133
|
{
|
128
134
|
...getPieChartProps({ className: "ui-donut-chart__chart" }),
|
129
135
|
children: [
|
130
|
-
/* @__PURE__ */
|
136
|
+
/* @__PURE__ */ jsxs(
|
131
137
|
Pie,
|
132
138
|
{
|
133
139
|
...getPieProps({
|
134
140
|
className: "ui-donut-chart__donut"
|
135
141
|
}),
|
136
|
-
children:
|
142
|
+
children: [
|
143
|
+
cells,
|
144
|
+
/* @__PURE__ */ jsx(
|
145
|
+
Label,
|
146
|
+
{
|
147
|
+
...getLabelProps({ className: "ui-donut-chart__label" })
|
148
|
+
}
|
149
|
+
)
|
150
|
+
]
|
137
151
|
}
|
138
152
|
),
|
139
153
|
withLegend ? /* @__PURE__ */ jsx(
|
@@ -180,4 +194,4 @@ var DonutChart = forwardRef((props, ref) => {
|
|
180
194
|
export {
|
181
195
|
DonutChart
|
182
196
|
};
|
183
|
-
//# sourceMappingURL=chunk-
|
197
|
+
//# sourceMappingURL=chunk-7HKRIEAT.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/donut-chart.tsx"],"sourcesContent":["import {\n forwardRef,\n omitThemeProps,\n ui,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMemo } from \"react\"\nimport {\n Cell,\n Label,\n Legend,\n Pie,\n PieChart as RechartsPieChart,\n ResponsiveContainer,\n Tooltip,\n} from \"recharts\"\nimport { ChartLegend } from \"./chart-legend\"\nimport { ChartTooltip } from \"./chart-tooltip\"\nimport type { PieChartProps } from \"./pie-chart\"\nimport { ChartProvider, useChart } from \"./use-chart\"\nimport { useChartLabel, type UseChartLabelOptions } from \"./use-chart-label\"\nimport { useChartLegend } from \"./use-chart-legend\"\nimport { useChartTooltip } from \"./use-chart-tooltip\"\nimport { usePieChart } from \"./use-pie-chart\"\n\ntype DonutChartOptions = {\n /**\n * Controls innerRadius of the chart segments.\n * If it is a number, it is the width of the radius.\n * For example, `60` means the radius is `60px` and the diameter is `120px`.\n *\n * @default '60%'\n */\n innerRadius?: number | string\n}\n\nexport type DonutChartProps = PieChartProps &\n DonutChartOptions &\n UseChartLabelOptions\n\n/**\n * `DonutChart` is a component for drawing donut charts to compare multiple sets of data.\n *\n * @see Docs https://yamada-ui.com/components/feedback/donut-chart\n */\nexport const DonutChart = forwardRef<DonutChartProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"DonutChart\", props)\n const {\n className,\n data,\n pieProps,\n chartProps,\n cellProps,\n containerProps,\n withTooltip = true,\n withLegend = false,\n tooltipProps,\n tooltipAnimationDuration,\n tooltipDataSource = \"all\",\n valueFormatter,\n labelFormatter,\n unit,\n paddingAngle,\n startAngle,\n endAngle,\n withLabels,\n withLabelLines,\n labelOffset,\n isPercent,\n innerRadius = withLabels ? \"60%\" : \"80%\",\n outerRadius,\n strokeWidth,\n legendProps,\n labelProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const {\n pieVars,\n getPieProps,\n getPieChartProps,\n getCellProps,\n setHighlightedArea,\n } = usePieChart({\n data,\n pieProps,\n chartProps,\n cellProps,\n innerRadius,\n outerRadius,\n paddingAngle,\n startAngle,\n endAngle,\n strokeWidth,\n withLabels,\n withLabelLines,\n labelOffset,\n isPercent,\n labelFormatter,\n styles,\n })\n const { getContainerProps } = useChart({ containerProps })\n const { tooltipProps: computedTooltipProps, getTooltipProps } =\n useChartTooltip({\n tooltipProps,\n tooltipAnimationDuration,\n styles,\n })\n const { legendProps: computedLegendProps, getLegendProps } = useChartLegend({\n legendProps,\n })\n const { getLabelProps } = useChartLabel({ labelProps, styles })\n\n const cells = useMemo(\n () =>\n data.map(({ name }, index) => (\n <Cell\n key={`donut-cell-${name}`}\n {...getCellProps({ index, className: \"ui-donut-chart__cell\" })}\n />\n )),\n [data, getCellProps],\n )\n\n return (\n <ChartProvider value={{ styles }}>\n <ui.div\n ref={ref}\n className={cx(\"ui-donut-chart\", className)}\n var={pieVars}\n __css={{ maxW: \"full\", ...styles.container }}\n {...rest}\n >\n <ResponsiveContainer\n {...getContainerProps({ className: \"ui-donut-chart__container\" })}\n >\n <RechartsPieChart\n {...getPieChartProps({ className: \"ui-donut-chart__chart\" })}\n >\n <Pie\n {...getPieProps({\n className: \"ui-donut-chart__donut\",\n })}\n >\n {cells}\n <Label\n {...getLabelProps({ className: \"ui-donut-chart__label\" })}\n />\n </Pie>\n\n {withLegend ? (\n <Legend\n content={({ payload }) => (\n <ChartLegend\n className=\"ui-donut-chart__legend\"\n payload={payload}\n onHighlight={setHighlightedArea}\n {...computedLegendProps}\n />\n )}\n {...getLegendProps()}\n />\n ) : null}\n\n {withTooltip ? (\n <Tooltip\n content={({ label, payload }) => (\n <ChartTooltip\n className=\"ui-donut-chart__tooltip\"\n label={label}\n payload={tooltipDataSource === \"segment\" ? payload : data}\n valueFormatter={valueFormatter}\n unit={unit}\n {...computedTooltipProps}\n />\n )}\n {...getTooltipProps()}\n />\n ) : null}\n </RechartsPieChart>\n </ResponsiveContainer>\n </ui.div>\n </ChartProvider>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,UAAU;AACnB,SAAS,eAAe;AACxB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,OACK;AAqGC,cAuBI,YAvBJ;AAvED,IAAM,aAAa,WAAmC,CAAC,OAAO,QAAQ;AAC3E,QAAM,CAAC,QAAQ,WAAW,IAAI,uBAAuB,cAAc,KAAK;AACxE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,aAAa,QAAQ;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,eAAe,WAAW;AAE9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,EAAE,kBAAkB,IAAI,SAAS,EAAE,eAAe,CAAC;AACzD,QAAM,EAAE,cAAc,sBAAsB,gBAAgB,IAC1D,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,QAAM,EAAE,aAAa,qBAAqB,eAAe,IAAI,eAAe;AAAA,IAC1E;AAAA,EACF,CAAC;AACD,QAAM,EAAE,cAAc,IAAI,cAAc,EAAE,YAAY,OAAO,CAAC;AAE9D,QAAM,QAAQ;AAAA,IACZ,MACE,KAAK,IAAI,CAAC,EAAE,KAAK,GAAG,UAClB;AAAA,MAAC;AAAA;AAAA,QAEE,GAAG,aAAa,EAAE,OAAO,WAAW,uBAAuB,CAAC;AAAA;AAAA,MADxD,cAAc,IAAI;AAAA,IAEzB,CACD;AAAA,IACH,CAAC,MAAM,YAAY;AAAA,EACrB;AAEA,SACE,oBAAC,iBAAc,OAAO,EAAE,OAAO,GAC7B;AAAA,IAAC,GAAG;AAAA,IAAH;AAAA,MACC;AAAA,MACA,WAAW,GAAG,kBAAkB,SAAS;AAAA,MACzC,KAAK;AAAA,MACL,OAAO,EAAE,MAAM,QAAQ,GAAG,OAAO,UAAU;AAAA,MAC1C,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACE,GAAG,kBAAkB,EAAE,WAAW,4BAA4B,CAAC;AAAA,UAEhE;AAAA,YAAC;AAAA;AAAA,cACE,GAAG,iBAAiB,EAAE,WAAW,wBAAwB,CAAC;AAAA,cAE3D;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACE,GAAG,YAAY;AAAA,sBACd,WAAW;AAAA,oBACb,CAAC;AAAA,oBAEA;AAAA;AAAA,sBACD;AAAA,wBAAC;AAAA;AAAA,0BACE,GAAG,cAAc,EAAE,WAAW,wBAAwB,CAAC;AAAA;AAAA,sBAC1D;AAAA;AAAA;AAAA,gBACF;AAAA,gBAEC,aACC;AAAA,kBAAC;AAAA;AAAA,oBACC,SAAS,CAAC,EAAE,QAAQ,MAClB;AAAA,sBAAC;AAAA;AAAA,wBACC,WAAU;AAAA,wBACV;AAAA,wBACA,aAAa;AAAA,wBACZ,GAAG;AAAA;AAAA,oBACN;AAAA,oBAED,GAAG,eAAe;AAAA;AAAA,gBACrB,IACE;AAAA,gBAEH,cACC;AAAA,kBAAC;AAAA;AAAA,oBACC,SAAS,CAAC,EAAE,OAAO,QAAQ,MACzB;AAAA,sBAAC;AAAA;AAAA,wBACC,WAAU;AAAA,wBACV;AAAA,wBACA,SAAS,sBAAsB,YAAY,UAAU;AAAA,wBACrD;AAAA,wBACA;AAAA,wBACC,GAAG;AAAA;AAAA,oBACN;AAAA,oBAED,GAAG,gBAAgB;AAAA;AAAA,gBACtB,IACE;AAAA;AAAA;AAAA,UACN;AAAA;AAAA,MACF;AAAA;AAAA,EACF,GACF;AAEJ,CAAC;","names":[]}
|
package/dist/donut-chart.d.mts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import * as _yamada_ui_core from '@yamada-ui/core';
|
2
2
|
import { PieChartProps } from './pie-chart.mjs';
|
3
|
+
import { UseChartLabelOptions } from './use-chart-label.mjs';
|
3
4
|
import './chart.types.mjs';
|
4
5
|
import '@yamada-ui/utils';
|
5
6
|
import 'react';
|
@@ -21,7 +22,7 @@ type DonutChartOptions = {
|
|
21
22
|
*/
|
22
23
|
innerRadius?: number | string;
|
23
24
|
};
|
24
|
-
type DonutChartProps = PieChartProps & DonutChartOptions;
|
25
|
+
type DonutChartProps = PieChartProps & DonutChartOptions & UseChartLabelOptions;
|
25
26
|
/**
|
26
27
|
* `DonutChart` is a component for drawing donut charts to compare multiple sets of data.
|
27
28
|
*
|
package/dist/donut-chart.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import * as _yamada_ui_core from '@yamada-ui/core';
|
2
2
|
import { PieChartProps } from './pie-chart.js';
|
3
|
+
import { UseChartLabelOptions } from './use-chart-label.js';
|
3
4
|
import './chart.types.js';
|
4
5
|
import '@yamada-ui/utils';
|
5
6
|
import 'react';
|
@@ -21,7 +22,7 @@ type DonutChartOptions = {
|
|
21
22
|
*/
|
22
23
|
innerRadius?: number | string;
|
23
24
|
};
|
24
|
-
type DonutChartProps = PieChartProps & DonutChartOptions;
|
25
|
+
type DonutChartProps = PieChartProps & DonutChartOptions & UseChartLabelOptions;
|
25
26
|
/**
|
26
27
|
* `DonutChart` is a component for drawing donut charts to compare multiple sets of data.
|
27
28
|
*
|
package/dist/donut-chart.js
CHANGED
@@ -24,9 +24,9 @@ __export(donut_chart_exports, {
|
|
24
24
|
DonutChart: () => DonutChart
|
25
25
|
});
|
26
26
|
module.exports = __toCommonJS(donut_chart_exports);
|
27
|
-
var
|
28
|
-
var
|
29
|
-
var
|
27
|
+
var import_core9 = require("@yamada-ui/core");
|
28
|
+
var import_utils10 = require("@yamada-ui/utils");
|
29
|
+
var import_react6 = require("react");
|
30
30
|
var import_recharts = require("recharts");
|
31
31
|
|
32
32
|
// src/chart-legend.tsx
|
@@ -143,6 +143,16 @@ var pieProperties = [
|
|
143
143
|
"onMouseEnter",
|
144
144
|
"onMouseLeave"
|
145
145
|
];
|
146
|
+
var labelProperties = [
|
147
|
+
"viewBox",
|
148
|
+
"formatter",
|
149
|
+
"value",
|
150
|
+
"position",
|
151
|
+
"offset",
|
152
|
+
"children",
|
153
|
+
"content",
|
154
|
+
"id"
|
155
|
+
];
|
146
156
|
|
147
157
|
// src/use-chart.ts
|
148
158
|
var [ChartProvider, useChartContext] = (0, import_utils2.createContext)({
|
@@ -307,17 +317,42 @@ var ChartTooltip = (0, import_core4.forwardRef)(
|
|
307
317
|
}
|
308
318
|
);
|
309
319
|
|
310
|
-
// src/use-chart-
|
320
|
+
// src/use-chart-label.ts
|
321
|
+
var import_core5 = require("@yamada-ui/core");
|
311
322
|
var import_utils5 = require("@yamada-ui/utils");
|
312
323
|
var import_react2 = require("react");
|
324
|
+
var useChartLabel = ({ styles, ...rest }) => {
|
325
|
+
var _a;
|
326
|
+
const { theme } = (0, import_core5.useTheme)();
|
327
|
+
const [labelProps, labelClassName] = getComponentProps(
|
328
|
+
[(_a = rest.labelProps) != null ? _a : {}, labelProperties],
|
329
|
+
styles.label
|
330
|
+
)(theme);
|
331
|
+
const getLabelProps = (0, import_react2.useCallback)(
|
332
|
+
({ className, ...props } = {}, ref = null) => {
|
333
|
+
return {
|
334
|
+
ref,
|
335
|
+
className: (0, import_utils5.cx)(className, labelClassName),
|
336
|
+
...props,
|
337
|
+
...labelProps
|
338
|
+
};
|
339
|
+
},
|
340
|
+
[labelClassName, labelProps]
|
341
|
+
);
|
342
|
+
return { getLabelProps };
|
343
|
+
};
|
344
|
+
|
345
|
+
// src/use-chart-legend.ts
|
346
|
+
var import_utils6 = require("@yamada-ui/utils");
|
347
|
+
var import_react3 = require("react");
|
313
348
|
var useChartLegend = ({
|
314
349
|
legendProps: _legendProps = {}
|
315
350
|
}) => {
|
316
|
-
const [rest, legendProps] = (0,
|
351
|
+
const [rest, legendProps] = (0, import_utils6.splitObject)(
|
317
352
|
_legendProps,
|
318
353
|
legendProperties
|
319
354
|
);
|
320
|
-
const getLegendProps = (0,
|
355
|
+
const getLegendProps = (0, import_react3.useCallback)(
|
321
356
|
(props, ref = null) => {
|
322
357
|
return {
|
323
358
|
ref,
|
@@ -332,31 +367,31 @@ var useChartLegend = ({
|
|
332
367
|
};
|
333
368
|
|
334
369
|
// src/use-chart-tooltip.ts
|
335
|
-
var
|
336
|
-
var
|
337
|
-
var
|
370
|
+
var import_core6 = require("@yamada-ui/core");
|
371
|
+
var import_utils7 = require("@yamada-ui/utils");
|
372
|
+
var import_react4 = require("react");
|
338
373
|
var useChartTooltip = ({
|
339
374
|
tooltipProps: _tooltipProps = {},
|
340
375
|
tooltipAnimationDuration = 0,
|
341
376
|
styles
|
342
377
|
}) => {
|
343
|
-
const { theme } = (0,
|
378
|
+
const { theme } = (0, import_core6.useTheme)();
|
344
379
|
const { cursor, ...rest } = _tooltipProps;
|
345
|
-
const cursorClassName = (0,
|
380
|
+
const cursorClassName = (0, import_react4.useMemo)(
|
346
381
|
() => getClassName({ ...styles.cursor, ...cursor })(theme),
|
347
382
|
[cursor, styles.cursor, theme]
|
348
383
|
);
|
349
|
-
const [tooltipProps, tooltipUIProps] = (0,
|
384
|
+
const [tooltipProps, tooltipUIProps] = (0, import_utils7.splitObject)(
|
350
385
|
rest,
|
351
386
|
tooltipProperties
|
352
387
|
);
|
353
|
-
const getTooltipProps = (0,
|
388
|
+
const getTooltipProps = (0, import_react4.useCallback)(
|
354
389
|
(props, ref = null) => ({
|
355
390
|
ref,
|
356
391
|
animationDuration: tooltipAnimationDuration,
|
357
392
|
isAnimationActive: (tooltipAnimationDuration || 0) > 0,
|
358
393
|
cursor: {
|
359
|
-
className: (0,
|
394
|
+
className: (0, import_utils7.cx)("ui-chart__cursor", cursorClassName)
|
360
395
|
},
|
361
396
|
...props,
|
362
397
|
...tooltipProps
|
@@ -367,13 +402,13 @@ var useChartTooltip = ({
|
|
367
402
|
};
|
368
403
|
|
369
404
|
// src/use-pie-chart.ts
|
370
|
-
var
|
371
|
-
var
|
372
|
-
var
|
405
|
+
var import_core8 = require("@yamada-ui/core");
|
406
|
+
var import_utils9 = require("@yamada-ui/utils");
|
407
|
+
var import_react5 = require("react");
|
373
408
|
|
374
409
|
// src/pie-chart-label.tsx
|
375
|
-
var
|
376
|
-
var
|
410
|
+
var import_core7 = require("@yamada-ui/core");
|
411
|
+
var import_utils8 = require("@yamada-ui/utils");
|
377
412
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
378
413
|
var RADIAN = Math.PI / 180;
|
379
414
|
var DEFAULT_LABEL_OFFSET = 22;
|
@@ -400,16 +435,16 @@ var pieChartLabel = ({
|
|
400
435
|
const displayLabel = () => {
|
401
436
|
if (isPercent) {
|
402
437
|
return parseFloat((percent * 100).toFixed(0)) > 0 && `${(percent * 100).toFixed(0)}%`;
|
403
|
-
} else if (!(0,
|
438
|
+
} else if (!(0, import_utils8.isUndefined)(labelFormatter)) {
|
404
439
|
return labelFormatter(value);
|
405
440
|
} else {
|
406
441
|
return value;
|
407
442
|
}
|
408
443
|
};
|
409
444
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
410
|
-
|
445
|
+
import_core7.ui.text,
|
411
446
|
{
|
412
|
-
className: (0,
|
447
|
+
className: (0, import_utils8.cx)(cellClassName, "ui-chart__label"),
|
413
448
|
x,
|
414
449
|
y,
|
415
450
|
textAnchor,
|
@@ -438,9 +473,9 @@ var pieChartLabelLine = ({
|
|
438
473
|
const y = cyProp + (middleRadius + labelOffset) * Math.sin(-midAngle * RADIAN);
|
439
474
|
const d = `M ${points[0].x} ${points[0].y} L ${x} ${y}`;
|
440
475
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
441
|
-
|
476
|
+
import_core7.ui.path,
|
442
477
|
{
|
443
|
-
className: (0,
|
478
|
+
className: (0, import_utils8.cx)(cellClassName, "ui-chart__label-line"),
|
444
479
|
d,
|
445
480
|
__css: styles,
|
446
481
|
...labelLineProps
|
@@ -467,8 +502,8 @@ var usePieChart = ({
|
|
467
502
|
...rest
|
468
503
|
}) => {
|
469
504
|
var _a, _b;
|
470
|
-
const { theme } = (0,
|
471
|
-
const [highlightedArea, setHighlightedArea] = (0,
|
505
|
+
const { theme } = (0, import_core8.useTheme)();
|
506
|
+
const [highlightedArea, setHighlightedArea] = (0, import_react5.useState)(null);
|
472
507
|
const shouldHighlight = highlightedArea !== null;
|
473
508
|
const { dimCell, ...computedCellProps } = (_a = rest.cellProps) != null ? _a : {};
|
474
509
|
const {
|
@@ -478,7 +513,7 @@ var usePieChart = ({
|
|
478
513
|
labelLine: labelLineProps,
|
479
514
|
...computedPieProps
|
480
515
|
} = (_b = rest.pieProps) != null ? _b : {};
|
481
|
-
const cellColors = (0,
|
516
|
+
const cellColors = (0, import_react5.useMemo)(
|
482
517
|
() => data.map(({ color }, index) => ({
|
483
518
|
__prefix: "ui",
|
484
519
|
name: `cell-${index}`,
|
@@ -487,14 +522,14 @@ var usePieChart = ({
|
|
487
522
|
})),
|
488
523
|
[data]
|
489
524
|
);
|
490
|
-
const pieVars = (0,
|
525
|
+
const pieVars = (0, import_react5.useMemo)(
|
491
526
|
() => [
|
492
527
|
...cellColors,
|
493
528
|
{ __prefix: "ui", name: "fill-opacity", value: fillOpacity }
|
494
529
|
],
|
495
530
|
[fillOpacity, cellColors]
|
496
531
|
);
|
497
|
-
const [chartProps, chartClassName] = (0,
|
532
|
+
const [chartProps, chartClassName] = (0, import_react5.useMemo)(
|
498
533
|
() => {
|
499
534
|
var _a2;
|
500
535
|
return getComponentProps(
|
@@ -504,14 +539,14 @@ var usePieChart = ({
|
|
504
539
|
},
|
505
540
|
[rest.chartProps, styles.chart, theme]
|
506
541
|
);
|
507
|
-
const [pieProps, pieClassName] = (0,
|
542
|
+
const [pieProps, pieClassName] = (0, import_react5.useMemo)(
|
508
543
|
() => getComponentProps(
|
509
544
|
[computedPieProps, pieProperties],
|
510
545
|
styles.pie
|
511
546
|
)(theme),
|
512
547
|
[computedPieProps, styles.pie, theme]
|
513
548
|
);
|
514
|
-
const cellClassName = (0,
|
549
|
+
const cellClassName = (0, import_react5.useMemo)(() => {
|
515
550
|
const resolvedCellProps = {
|
516
551
|
fillOpacity: "var(--ui-fill-opacity)",
|
517
552
|
...styles.cell,
|
@@ -519,25 +554,25 @@ var usePieChart = ({
|
|
519
554
|
};
|
520
555
|
return getClassName(resolvedCellProps)(theme);
|
521
556
|
}, [computedCellProps, styles.cell, theme]);
|
522
|
-
const dimCellClassName = (0,
|
557
|
+
const dimCellClassName = (0, import_react5.useMemo)(() => {
|
523
558
|
const resolvedDimCell = { fillOpacity: 0.3, strokeOpacity: 0, ...dimCell };
|
524
559
|
return getClassName(resolvedDimCell)(theme);
|
525
560
|
}, [dimCell, theme]);
|
526
|
-
const activeShapeProps = (0,
|
561
|
+
const activeShapeProps = (0, import_react5.useMemo)(
|
527
562
|
() => getComponentProps(
|
528
563
|
[{ _focus: { outline: "none" }, ...activeShape }, pieProperties],
|
529
564
|
styles.activeShape
|
530
565
|
)(theme, true),
|
531
566
|
[activeShape, styles.activeShape, theme]
|
532
567
|
);
|
533
|
-
const inactiveShapeProps = (0,
|
568
|
+
const inactiveShapeProps = (0, import_react5.useMemo)(
|
534
569
|
() => getComponentProps(
|
535
570
|
[inactiveShape, pieProperties],
|
536
571
|
styles.inactiveShape
|
537
572
|
)(theme, true),
|
538
573
|
[inactiveShape, styles.inactiveShape, theme]
|
539
574
|
);
|
540
|
-
const label = (0,
|
575
|
+
const label = (0, import_react5.useCallback)(
|
541
576
|
(props) => pieChartLabel({
|
542
577
|
labelOffset,
|
543
578
|
isPercent,
|
@@ -548,7 +583,7 @@ var usePieChart = ({
|
|
548
583
|
}),
|
549
584
|
[isPercent, labelOffset, labelProps, styles.label, labelFormatter]
|
550
585
|
);
|
551
|
-
const labelLine = (0,
|
586
|
+
const labelLine = (0, import_react5.useCallback)(
|
552
587
|
(props) => {
|
553
588
|
return pieChartLabelLine({
|
554
589
|
labelOffset,
|
@@ -559,7 +594,7 @@ var usePieChart = ({
|
|
559
594
|
},
|
560
595
|
[labelLineProps, labelOffset, styles.labelLine]
|
561
596
|
);
|
562
|
-
const cellPropList = (0,
|
597
|
+
const cellPropList = (0, import_react5.useMemo)(
|
563
598
|
() => data.map((props, index) => {
|
564
599
|
const { name, dimCell: dimCell2 = {}, ...computedProps } = props;
|
565
600
|
const color = `var(--ui-cell-${index})`;
|
@@ -589,19 +624,19 @@ var usePieChart = ({
|
|
589
624
|
theme
|
590
625
|
]
|
591
626
|
);
|
592
|
-
const getPieChartProps = (0,
|
627
|
+
const getPieChartProps = (0, import_react5.useCallback)(
|
593
628
|
({ className, ...props } = {}, ref = null) => ({
|
594
629
|
ref,
|
595
|
-
className: (0,
|
630
|
+
className: (0, import_utils9.cx)(className, chartClassName),
|
596
631
|
...props,
|
597
632
|
...chartProps
|
598
633
|
}),
|
599
634
|
[chartProps, chartClassName]
|
600
635
|
);
|
601
|
-
const getPieProps = (0,
|
636
|
+
const getPieProps = (0, import_react5.useCallback)(
|
602
637
|
({ className, ...props }, ref = null) => ({
|
603
638
|
ref,
|
604
|
-
className: (0,
|
639
|
+
className: (0, import_utils9.cx)(className, pieClassName),
|
605
640
|
dataKey: "value",
|
606
641
|
data,
|
607
642
|
rootTabIndex: -1,
|
@@ -635,12 +670,12 @@ var usePieChart = ({
|
|
635
670
|
pieProps
|
636
671
|
]
|
637
672
|
);
|
638
|
-
const getCellProps = (0,
|
673
|
+
const getCellProps = (0, import_react5.useCallback)(
|
639
674
|
({ index, className: classNameProp, ...props }, ref = null) => {
|
640
675
|
const { className, color } = cellPropList[index];
|
641
676
|
return {
|
642
677
|
ref,
|
643
|
-
className: (0,
|
678
|
+
className: (0, import_utils9.cx)(classNameProp, className),
|
644
679
|
fill: color,
|
645
680
|
stroke: color,
|
646
681
|
strokeWidth,
|
@@ -660,8 +695,8 @@ var usePieChart = ({
|
|
660
695
|
|
661
696
|
// src/donut-chart.tsx
|
662
697
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
663
|
-
var DonutChart = (0,
|
664
|
-
const [styles, mergedProps] = (0,
|
698
|
+
var DonutChart = (0, import_core9.forwardRef)((props, ref) => {
|
699
|
+
const [styles, mergedProps] = (0, import_core9.useMultiComponentStyle)("DonutChart", props);
|
665
700
|
const {
|
666
701
|
className,
|
667
702
|
data,
|
@@ -688,8 +723,9 @@ var DonutChart = (0, import_core8.forwardRef)((props, ref) => {
|
|
688
723
|
outerRadius,
|
689
724
|
strokeWidth,
|
690
725
|
legendProps,
|
726
|
+
labelProps,
|
691
727
|
...rest
|
692
|
-
} = (0,
|
728
|
+
} = (0, import_core9.omitThemeProps)(mergedProps);
|
693
729
|
const {
|
694
730
|
pieVars,
|
695
731
|
getPieProps,
|
@@ -723,7 +759,8 @@ var DonutChart = (0, import_core8.forwardRef)((props, ref) => {
|
|
723
759
|
const { legendProps: computedLegendProps, getLegendProps } = useChartLegend({
|
724
760
|
legendProps
|
725
761
|
});
|
726
|
-
const
|
762
|
+
const { getLabelProps } = useChartLabel({ labelProps, styles });
|
763
|
+
const cells = (0, import_react6.useMemo)(
|
727
764
|
() => data.map(({ name }, index) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
728
765
|
import_recharts.Cell,
|
729
766
|
{
|
@@ -734,10 +771,10 @@ var DonutChart = (0, import_core8.forwardRef)((props, ref) => {
|
|
734
771
|
[data, getCellProps]
|
735
772
|
);
|
736
773
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ChartProvider, { value: { styles }, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
737
|
-
|
774
|
+
import_core9.ui.div,
|
738
775
|
{
|
739
776
|
ref,
|
740
|
-
className: (0,
|
777
|
+
className: (0, import_utils10.cx)("ui-donut-chart", className),
|
741
778
|
var: pieVars,
|
742
779
|
__css: { maxW: "full", ...styles.container },
|
743
780
|
...rest,
|
@@ -750,13 +787,21 @@ var DonutChart = (0, import_core8.forwardRef)((props, ref) => {
|
|
750
787
|
{
|
751
788
|
...getPieChartProps({ className: "ui-donut-chart__chart" }),
|
752
789
|
children: [
|
753
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.
|
790
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
754
791
|
import_recharts.Pie,
|
755
792
|
{
|
756
793
|
...getPieProps({
|
757
794
|
className: "ui-donut-chart__donut"
|
758
795
|
}),
|
759
|
-
children:
|
796
|
+
children: [
|
797
|
+
cells,
|
798
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
799
|
+
import_recharts.Label,
|
800
|
+
{
|
801
|
+
...getLabelProps({ className: "ui-donut-chart__label" })
|
802
|
+
}
|
803
|
+
)
|
804
|
+
]
|
760
805
|
}
|
761
806
|
),
|
762
807
|
withLegend ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|