@automattic/charts 0.56.3 → 0.56.5
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/CHANGELOG.md +14 -0
- package/dist/charts/bar-chart/index.cjs +5 -5
- package/dist/charts/bar-chart/index.css +12 -0
- package/dist/charts/bar-chart/index.css.map +1 -1
- package/dist/charts/bar-chart/index.js +4 -4
- package/dist/charts/bar-list-chart/index.cjs +6 -6
- package/dist/charts/bar-list-chart/index.css +12 -0
- package/dist/charts/bar-list-chart/index.css.map +1 -1
- package/dist/charts/bar-list-chart/index.js +5 -5
- package/dist/charts/conversion-funnel-chart/index.cjs +5 -3
- package/dist/charts/conversion-funnel-chart/index.cjs.map +1 -1
- package/dist/charts/conversion-funnel-chart/index.css +14 -1
- package/dist/charts/conversion-funnel-chart/index.css.map +1 -1
- package/dist/charts/conversion-funnel-chart/index.d.cts +2 -0
- package/dist/charts/conversion-funnel-chart/index.d.ts +2 -0
- package/dist/charts/conversion-funnel-chart/index.js +4 -2
- package/dist/charts/geo-chart/index.cjs +4 -4
- package/dist/charts/geo-chart/index.css +12 -0
- package/dist/charts/geo-chart/index.css.map +1 -1
- package/dist/charts/geo-chart/index.js +3 -3
- package/dist/charts/leaderboard-chart/index.cjs +5 -5
- package/dist/charts/leaderboard-chart/index.css +12 -0
- package/dist/charts/leaderboard-chart/index.css.map +1 -1
- package/dist/charts/leaderboard-chart/index.js +4 -4
- package/dist/charts/line-chart/index.cjs +5 -5
- package/dist/charts/line-chart/index.css +12 -0
- package/dist/charts/line-chart/index.css.map +1 -1
- package/dist/charts/line-chart/index.js +4 -4
- package/dist/charts/pie-chart/index.cjs +7 -7
- package/dist/charts/pie-chart/index.css +12 -0
- package/dist/charts/pie-chart/index.css.map +1 -1
- package/dist/charts/pie-chart/index.js +6 -6
- package/dist/charts/pie-semi-circle-chart/index.cjs +7 -7
- package/dist/charts/pie-semi-circle-chart/index.css +12 -0
- package/dist/charts/pie-semi-circle-chart/index.css.map +1 -1
- package/dist/charts/pie-semi-circle-chart/index.js +6 -6
- package/dist/charts/sparkline/index.cjs +6 -6
- package/dist/charts/sparkline/index.css +12 -0
- package/dist/charts/sparkline/index.css.map +1 -1
- package/dist/charts/sparkline/index.js +5 -5
- package/dist/{chunk-OTZT3MC2.cjs → chunk-2A34OA5O.cjs} +19 -20
- package/dist/chunk-2A34OA5O.cjs.map +1 -0
- package/dist/{chunk-H34CJSR6.js → chunk-32ESS4MV.js} +406 -363
- package/dist/chunk-32ESS4MV.js.map +1 -0
- package/dist/{chunk-CEZGL6YP.js → chunk-6CCZL2JJ.js} +15 -7
- package/dist/chunk-6CCZL2JJ.js.map +1 -0
- package/dist/{chunk-NW3RUYK2.cjs → chunk-7QDEU3KN.cjs} +15 -22
- package/dist/chunk-7QDEU3KN.cjs.map +1 -0
- package/dist/chunk-7TQSPLIN.js +351 -0
- package/dist/chunk-7TQSPLIN.js.map +1 -0
- package/dist/{chunk-T4J6TI55.js → chunk-AFWQR3SM.js} +102 -79
- package/dist/chunk-AFWQR3SM.js.map +1 -0
- package/dist/{chunk-5XI443YP.js → chunk-BPYKWMI7.js} +72 -64
- package/dist/chunk-BPYKWMI7.js.map +1 -0
- package/dist/{chunk-TNRKEBTA.js → chunk-DBY6C4O2.js} +148 -164
- package/dist/{chunk-TNRKEBTA.js.map → chunk-DBY6C4O2.js.map} +1 -1
- package/dist/chunk-DLSUC7RN.js +1065 -0
- package/dist/chunk-DLSUC7RN.js.map +1 -0
- package/dist/{chunk-TVV7ZI7C.cjs → chunk-EJJO2QNB.cjs} +399 -356
- package/dist/chunk-EJJO2QNB.cjs.map +1 -0
- package/dist/{chunk-ODF5O5PV.cjs → chunk-FIFSYVN6.cjs} +154 -170
- package/dist/chunk-FIFSYVN6.cjs.map +1 -0
- package/dist/chunk-FY325WQ4.cjs +1065 -0
- package/dist/chunk-FY325WQ4.cjs.map +1 -0
- package/dist/{chunk-SRXJLAKG.cjs → chunk-I2276W3I.cjs} +28 -37
- package/dist/chunk-I2276W3I.cjs.map +1 -0
- package/dist/{chunk-7UJPVCMB.cjs → chunk-IHESL7H5.cjs} +265 -262
- package/dist/chunk-IHESL7H5.cjs.map +1 -0
- package/dist/chunk-JL4ZKKZU.cjs +375 -0
- package/dist/chunk-JL4ZKKZU.cjs.map +1 -0
- package/dist/chunk-KHRPRH4V.js +165 -0
- package/dist/chunk-KHRPRH4V.js.map +1 -0
- package/dist/{chunk-A3AEEGKR.js → chunk-KXRWNFQJ.js} +20 -21
- package/dist/chunk-KXRWNFQJ.js.map +1 -0
- package/dist/{chunk-2VPPTJS2.js → chunk-KXSLMOW5.js} +256 -253
- package/dist/chunk-KXSLMOW5.js.map +1 -0
- package/dist/chunk-LT4YOIMM.js +375 -0
- package/dist/chunk-LT4YOIMM.js.map +1 -0
- package/dist/chunk-LTPJPIDP.cjs +165 -0
- package/dist/chunk-LTPJPIDP.cjs.map +1 -0
- package/dist/chunk-NGHXTIUE.cjs +120 -0
- package/dist/chunk-NGHXTIUE.cjs.map +1 -0
- package/dist/chunk-PCOI2GT5.js +120 -0
- package/dist/chunk-PCOI2GT5.js.map +1 -0
- package/dist/{chunk-YYQ4IK5V.cjs → chunk-Q6G3BGCL.cjs} +103 -80
- package/dist/chunk-Q6G3BGCL.cjs.map +1 -0
- package/dist/{chunk-HIWNB5PK.cjs → chunk-RCY6XLGU.cjs} +13 -5
- package/dist/chunk-RCY6XLGU.cjs.map +1 -0
- package/dist/chunk-TKPK4RFS.cjs +351 -0
- package/dist/chunk-TKPK4RFS.cjs.map +1 -0
- package/dist/{chunk-C33AQZEC.js → chunk-TYIH5LMV.js} +16 -23
- package/dist/chunk-TYIH5LMV.js.map +1 -0
- package/dist/chunk-X6GX4QUJ.js +421 -0
- package/dist/chunk-X6GX4QUJ.js.map +1 -0
- package/dist/chunk-XCXAWMJQ.cjs +421 -0
- package/dist/chunk-XCXAWMJQ.cjs.map +1 -0
- package/dist/chunk-XWYZIFZW.js +66 -0
- package/dist/chunk-XWYZIFZW.js.map +1 -0
- package/dist/{chunk-7HROSZRS.cjs → chunk-Y3NNQMAX.cjs} +70 -62
- package/dist/chunk-Y3NNQMAX.cjs.map +1 -0
- package/dist/components/legend/index.cjs +2 -2
- package/dist/components/legend/index.css +12 -0
- package/dist/components/legend/index.css.map +1 -1
- package/dist/components/legend/index.js +1 -1
- package/dist/components/tooltip/index.cjs +2 -2
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/trend-indicator/index.cjs +2 -2
- package/dist/components/trend-indicator/index.js +1 -1
- package/dist/hooks/index.cjs +4 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.css +12 -0
- package/dist/hooks/index.css.map +1 -1
- package/dist/hooks/index.d.cts +28 -2
- package/dist/hooks/index.d.ts +28 -2
- package/dist/hooks/index.js +3 -1
- package/dist/index.cjs +18 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +14 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +17 -17
- package/dist/providers/index.cjs +2 -2
- package/dist/providers/index.css +12 -0
- package/dist/providers/index.css.map +1 -1
- package/dist/providers/index.d.cts +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/{themes-DQs9rbN5.d.cts → themes-BDVaIfBz.d.cts} +9 -0
- package/dist/{themes-CRV5fVzJ.d.ts → themes-mcS8QNkQ.d.ts} +9 -0
- package/package.json +6 -2
- package/src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss +2 -1
- package/src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx +16 -6
- package/src/charts/conversion-funnel-chart/test/conversion-funnel-chart.test.tsx +34 -0
- package/src/charts/conversion-funnel-chart/types.ts +2 -0
- package/src/charts/pie-chart/pie-chart.tsx +2 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/test/use-chart-margin.test.tsx +44 -0
- package/src/hooks/test/use-tooltip-portal-relocator.test.ts +216 -0
- package/src/hooks/use-chart-margin.tsx +92 -6
- package/src/hooks/use-tooltip-portal-relocator.module.scss +10 -0
- package/src/hooks/use-tooltip-portal-relocator.ts +177 -0
- package/src/providers/chart-context/global-charts-provider.tsx +18 -1
- package/tsup.config.ts +11 -0
- package/dist/chunk-2VPPTJS2.js.map +0 -1
- package/dist/chunk-5XI443YP.js.map +0 -1
- package/dist/chunk-7HROSZRS.cjs.map +0 -1
- package/dist/chunk-7UJPVCMB.cjs.map +0 -1
- package/dist/chunk-A3AEEGKR.js.map +0 -1
- package/dist/chunk-C33AQZEC.js.map +0 -1
- package/dist/chunk-CEZGL6YP.js.map +0 -1
- package/dist/chunk-COOC2TVQ.js +0 -167
- package/dist/chunk-COOC2TVQ.js.map +0 -1
- package/dist/chunk-EJHLLXBV.js +0 -362
- package/dist/chunk-EJHLLXBV.js.map +0 -1
- package/dist/chunk-FWMJ2FR2.js +0 -121
- package/dist/chunk-FWMJ2FR2.js.map +0 -1
- package/dist/chunk-GRYNIPWH.cjs +0 -385
- package/dist/chunk-GRYNIPWH.cjs.map +0 -1
- package/dist/chunk-H34CJSR6.js.map +0 -1
- package/dist/chunk-HIWNB5PK.cjs.map +0 -1
- package/dist/chunk-IZWC33YN.cjs +0 -357
- package/dist/chunk-IZWC33YN.cjs.map +0 -1
- package/dist/chunk-KOF32DBL.cjs +0 -1058
- package/dist/chunk-KOF32DBL.cjs.map +0 -1
- package/dist/chunk-LHWRZMF7.cjs +0 -362
- package/dist/chunk-LHWRZMF7.cjs.map +0 -1
- package/dist/chunk-MFRS2PEY.cjs +0 -121
- package/dist/chunk-MFRS2PEY.cjs.map +0 -1
- package/dist/chunk-MMDLXS6O.js +0 -75
- package/dist/chunk-MMDLXS6O.js.map +0 -1
- package/dist/chunk-NW3RUYK2.cjs.map +0 -1
- package/dist/chunk-ODF5O5PV.cjs.map +0 -1
- package/dist/chunk-OTZT3MC2.cjs.map +0 -1
- package/dist/chunk-SBRMWDWM.js +0 -357
- package/dist/chunk-SBRMWDWM.js.map +0 -1
- package/dist/chunk-SRXJLAKG.cjs.map +0 -1
- package/dist/chunk-T4J6TI55.js.map +0 -1
- package/dist/chunk-TVV7ZI7C.cjs.map +0 -1
- package/dist/chunk-XVMXWV3C.cjs +0 -167
- package/dist/chunk-XVMXWV3C.cjs.map +0 -1
- package/dist/chunk-YYQ4IK5V.cjs.map +0 -1
- package/dist/chunk-ZDNCF642.js +0 -1058
- package/dist/chunk-ZDNCF642.js.map +0 -1
- package/dist/chunk-ZWBUEHKF.js +0 -385
- package/dist/chunk-ZWBUEHKF.js.map +0 -1
|
@@ -7,12 +7,12 @@ var base_tooltip_module_default = {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
// src/components/tooltip/base-tooltip.tsx
|
|
10
|
-
import { Fragment
|
|
11
|
-
var DefaultTooltipContent = ({
|
|
12
|
-
data
|
|
13
|
-
|
|
14
|
-
data?.valueDisplay || formatNumber(data?.value)
|
|
15
|
-
|
|
10
|
+
import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
var DefaultTooltipContent = ({
|
|
12
|
+
data
|
|
13
|
+
}) => /* @__PURE__ */ _jsxs(_Fragment, {
|
|
14
|
+
children: [data?.label, ": ", data?.valueDisplay || formatNumber(data?.value)]
|
|
15
|
+
});
|
|
16
16
|
var BaseTooltip = ({
|
|
17
17
|
data,
|
|
18
18
|
top,
|
|
@@ -23,17 +23,29 @@ var BaseTooltip = ({
|
|
|
23
23
|
style,
|
|
24
24
|
renderContainer = true
|
|
25
25
|
}) => {
|
|
26
|
-
const content = children || data && /* @__PURE__ */
|
|
26
|
+
const content = children || data && /* @__PURE__ */ _jsx(Component, {
|
|
27
|
+
data,
|
|
28
|
+
className
|
|
29
|
+
});
|
|
27
30
|
if (!renderContainer) {
|
|
28
31
|
return content;
|
|
29
32
|
}
|
|
30
|
-
return /* @__PURE__ */
|
|
33
|
+
return /* @__PURE__ */ _jsx("div", {
|
|
34
|
+
className: base_tooltip_module_default.tooltip,
|
|
35
|
+
style: {
|
|
36
|
+
top,
|
|
37
|
+
left,
|
|
38
|
+
...style
|
|
39
|
+
},
|
|
40
|
+
role: "tooltip",
|
|
41
|
+
children: content
|
|
42
|
+
});
|
|
31
43
|
};
|
|
32
44
|
|
|
33
45
|
// src/components/tooltip/accessible-tooltip.tsx
|
|
34
46
|
import { Tooltip, TooltipContext } from "@visx/xychart";
|
|
35
47
|
import { useContext, useEffect, useCallback, useMemo } from "react";
|
|
36
|
-
import { jsx as
|
|
48
|
+
import { jsx as _jsx2 } from "react/jsx-runtime";
|
|
37
49
|
var AccessibleTooltip = ({
|
|
38
50
|
renderTooltip,
|
|
39
51
|
selectedIndex,
|
|
@@ -96,24 +108,26 @@ var AccessibleTooltip = ({
|
|
|
96
108
|
return (params) => {
|
|
97
109
|
const tooltipContent = renderTooltip(params);
|
|
98
110
|
if (selectedIndex !== void 0) {
|
|
99
|
-
return /* @__PURE__ */
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"data-testid": `chart-tooltip-${selectedIndex}`,
|
|
108
|
-
children: tooltipContent
|
|
109
|
-
},
|
|
110
|
-
`chart-tooltip-${selectedIndex}`
|
|
111
|
-
);
|
|
111
|
+
return /* @__PURE__ */ _jsx2("div", {
|
|
112
|
+
ref: tooltipRef,
|
|
113
|
+
tabIndex: -1,
|
|
114
|
+
role: "tooltip",
|
|
115
|
+
"aria-atomic": "true",
|
|
116
|
+
className: keyboardFocusedClassName,
|
|
117
|
+
children: tooltipContent
|
|
118
|
+
}, `chart-tooltip-${selectedIndex}`);
|
|
112
119
|
}
|
|
113
|
-
return /* @__PURE__ */
|
|
120
|
+
return /* @__PURE__ */ _jsx2("div", {
|
|
121
|
+
role: "tooltip",
|
|
122
|
+
"aria-live": "polite",
|
|
123
|
+
children: tooltipContent
|
|
124
|
+
});
|
|
114
125
|
};
|
|
115
126
|
}, [renderTooltip, selectedIndex, tooltipRef, keyboardFocusedClassName]);
|
|
116
|
-
return /* @__PURE__ */
|
|
127
|
+
return /* @__PURE__ */ _jsx2(Tooltip, {
|
|
128
|
+
...props,
|
|
129
|
+
renderTooltip: focusableRenderTooltip
|
|
130
|
+
});
|
|
117
131
|
};
|
|
118
132
|
var useKeyboardNavigation = ({
|
|
119
133
|
selectedIndex,
|
|
@@ -123,14 +137,11 @@ var useKeyboardNavigation = ({
|
|
|
123
137
|
chartRef,
|
|
124
138
|
totalPoints
|
|
125
139
|
}) => {
|
|
126
|
-
const tooltipRef = useCallback(
|
|
127
|
-
(element)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
},
|
|
132
|
-
[selectedIndex]
|
|
133
|
-
);
|
|
140
|
+
const tooltipRef = useCallback((element) => {
|
|
141
|
+
if (element && selectedIndex !== void 0) {
|
|
142
|
+
element.focus();
|
|
143
|
+
}
|
|
144
|
+
}, [selectedIndex]);
|
|
134
145
|
const onChartFocus = useCallback(() => {
|
|
135
146
|
if (!isNavigating && selectedIndex !== void 0) {
|
|
136
147
|
setSelectedIndex(0);
|
|
@@ -139,37 +150,34 @@ var useKeyboardNavigation = ({
|
|
|
139
150
|
const onChartBlur = useCallback(() => {
|
|
140
151
|
setIsNavigating(false);
|
|
141
152
|
}, [setIsNavigating]);
|
|
142
|
-
const onChartKeyDown = useCallback(
|
|
143
|
-
(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
},
|
|
171
|
-
[totalPoints, selectedIndex, setSelectedIndex, setIsNavigating, chartRef]
|
|
172
|
-
);
|
|
153
|
+
const onChartKeyDown = useCallback((event) => {
|
|
154
|
+
if (totalPoints === 0) return;
|
|
155
|
+
if (event.key === "Tab") {
|
|
156
|
+
chartRef.current?.focus();
|
|
157
|
+
setSelectedIndex(void 0);
|
|
158
|
+
setIsNavigating(false);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const currentSelectedIndex = selectedIndex === void 0 ? -1 : selectedIndex;
|
|
162
|
+
if (currentSelectedIndex + 1 >= totalPoints && ["ArrowRight"].includes(event.key)) {
|
|
163
|
+
chartRef.current?.focus();
|
|
164
|
+
setSelectedIndex(void 0);
|
|
165
|
+
setIsNavigating(false);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
event.preventDefault();
|
|
169
|
+
if (["ArrowRight"].includes(event.key)) {
|
|
170
|
+
setIsNavigating(true);
|
|
171
|
+
setSelectedIndex((currentSelectedIndex + 1) % totalPoints);
|
|
172
|
+
} else if (["ArrowLeft"].includes(event.key)) {
|
|
173
|
+
setIsNavigating(true);
|
|
174
|
+
setSelectedIndex((currentSelectedIndex - 1 + totalPoints) % totalPoints);
|
|
175
|
+
} else if (event.key === "Escape") {
|
|
176
|
+
setSelectedIndex(void 0);
|
|
177
|
+
setIsNavigating(false);
|
|
178
|
+
chartRef.current?.focus();
|
|
179
|
+
}
|
|
180
|
+
}, [totalPoints, selectedIndex, setSelectedIndex, setIsNavigating, chartRef]);
|
|
173
181
|
return {
|
|
174
182
|
tooltipRef,
|
|
175
183
|
onChartFocus,
|
|
@@ -183,4 +191,4 @@ export {
|
|
|
183
191
|
AccessibleTooltip,
|
|
184
192
|
useKeyboardNavigation
|
|
185
193
|
};
|
|
186
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-BPYKWMI7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tooltip/base-tooltip.tsx","../src/components/tooltip/base-tooltip.module.scss","../src/components/tooltip/accessible-tooltip.tsx"],"sourcesContent":["import { formatNumber } from '@automattic/number-formatters';\nimport styles from './base-tooltip.module.scss';\nimport { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nconst DefaultTooltipContent = ({\n data\n}) => /*#__PURE__*/_jsxs(_Fragment, {\n children: [data?.label, \": \", data?.valueDisplay || formatNumber(data?.value)]\n});\nexport const BaseTooltip = ({\n data,\n top,\n left,\n component: Component = DefaultTooltipContent,\n children,\n className,\n style,\n renderContainer = true\n}) => {\n const content = children || data && /*#__PURE__*/_jsx(Component, {\n data: data,\n className: className\n });\n if (!renderContainer) {\n return content;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: styles.tooltip,\n style: {\n top,\n left,\n ...style\n },\n role: \"tooltip\",\n children: content\n });\n};","import 'css-chunk:src/components/tooltip/base-tooltip.module.scss';export default {\n \"tooltip\": \"a8ccharts-OfX6nd\"\n};","import { Tooltip, TooltipContext } from '@visx/xychart';\nimport { useContext, useEffect, useCallback, useMemo } from 'react';\n\n// Type for flattened tooltip data used in individual mode\n\n// Enhanced tooltip with keyboard navigation and accessibility\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const AccessibleTooltip = ({\n renderTooltip,\n selectedIndex,\n tooltipRef,\n keyboardFocusedClassName,\n series = [],\n mode = 'group',\n ...props\n}) => {\n const tooltipContext = useContext(TooltipContext);\n const tooltipData = useMemo(() => {\n if (mode !== 'individual') return [];\n if (series.length === 0) return [];\n const maxDataPoints = Math.max(...series.map(s => s.data.length));\n const flattened = [];\n\n // Pattern: [series1[0], series2[0], series3[0], series1[1], series2[1], series3[1], ...]\n for (let dataPointIndex = 0; dataPointIndex < maxDataPoints; dataPointIndex++) {\n for (let seriesIndex = 0; seriesIndex < series.length; seriesIndex++) {\n const seriesData = series[seriesIndex];\n if (dataPointIndex < seriesData.data.length) {\n flattened.push({\n datum: seriesData.data[dataPointIndex],\n seriesLabel: seriesData.label,\n seriesIndex,\n dataPointIndex\n });\n }\n }\n }\n return flattened;\n }, [series, mode]);\n\n // Handle tooltip highlighting for keyboard navigation\n useEffect(() => {\n if (selectedIndex === undefined) {\n tooltipContext?.hideTooltip();\n return;\n }\n if (mode === 'group') {\n // Show all series at the selected data point index in single tooltip.\n series.forEach((s, index) => {\n if (selectedIndex < s.data.length) {\n const datum = s.data[selectedIndex];\n tooltipContext?.showTooltip({\n datum,\n key: s.label,\n index\n });\n }\n });\n } else if (mode === 'individual') {\n // Show individual tooltips for each datapoint from each series.\n if (selectedIndex < tooltipData.length) {\n const tooltipItem = tooltipData[selectedIndex];\n tooltipContext?.showTooltip({\n datum: tooltipItem.datum,\n key: tooltipItem.seriesLabel,\n index: tooltipItem.seriesIndex\n });\n }\n }\n\n // Don't include tooltipContext in the dependency array to avoid loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedIndex, tooltipData, series]);\n\n // Create a focusable renderTooltip that includes accessibility features\n const focusableRenderTooltip = useMemo(() => {\n if (!renderTooltip) return undefined;\n return params => {\n const tooltipContent = renderTooltip(params);\n if (selectedIndex !== undefined) {\n return /*#__PURE__*/_jsx(\"div\", {\n ref: tooltipRef,\n tabIndex: -1,\n role: \"tooltip\",\n \"aria-atomic\": \"true\",\n className: keyboardFocusedClassName,\n children: tooltipContent\n }, `chart-tooltip-${selectedIndex}`);\n }\n return /*#__PURE__*/_jsx(\"div\", {\n role: \"tooltip\",\n \"aria-live\": \"polite\",\n children: tooltipContent\n });\n };\n }, [renderTooltip, selectedIndex, tooltipRef, keyboardFocusedClassName]);\n return /*#__PURE__*/_jsx(Tooltip, {\n ...props,\n renderTooltip: focusableRenderTooltip\n });\n};\n\n// Keyboard navigation hook for charts\n\nexport const useKeyboardNavigation = ({\n selectedIndex,\n setSelectedIndex,\n isNavigating,\n setIsNavigating,\n chartRef,\n totalPoints\n}) => {\n // Focus the tooltip as soon as it is rendered\n const tooltipRef = useCallback(element => {\n if (element && selectedIndex !== undefined) {\n element.focus();\n }\n }, [selectedIndex]);\n\n // On each focus of chart, reset the selectedIndex to 0, if keyboard navigation is not already active\n const onChartFocus = useCallback(() => {\n if (!isNavigating && selectedIndex !== undefined) {\n setSelectedIndex(0);\n }\n }, [isNavigating, selectedIndex, setSelectedIndex]);\n\n // On each blur of chart, keyboard navigation should restart from first tooltip\n const onChartBlur = useCallback(() => {\n setIsNavigating(false);\n }, [setIsNavigating]);\n const onChartKeyDown = useCallback(event => {\n if (totalPoints === 0) return;\n\n // Keep focus on the chart if tab is pressed\n if (event.key === 'Tab') {\n chartRef.current?.focus();\n setSelectedIndex(undefined);\n setIsNavigating(false);\n return;\n }\n const currentSelectedIndex = selectedIndex === undefined ? -1 : selectedIndex;\n if (currentSelectedIndex + 1 >= totalPoints && ['ArrowRight'].includes(event.key)) {\n chartRef.current?.focus();\n setSelectedIndex(undefined);\n setIsNavigating(false);\n return;\n }\n event.preventDefault();\n if (['ArrowRight'].includes(event.key)) {\n setIsNavigating(true);\n setSelectedIndex((currentSelectedIndex + 1) % totalPoints);\n } else if (['ArrowLeft'].includes(event.key)) {\n setIsNavigating(true);\n setSelectedIndex((currentSelectedIndex - 1 + totalPoints) % totalPoints);\n } else if (event.key === 'Escape') {\n setSelectedIndex(undefined);\n setIsNavigating(false);\n chartRef.current?.focus();\n }\n }, [totalPoints, selectedIndex, setSelectedIndex, setIsNavigating, chartRef]);\n return {\n tooltipRef,\n onChartFocus,\n onChartBlur,\n onChartKeyDown\n };\n};\n\n// Re-export the base Tooltip for backwards compatibility\nexport { Tooltip };"],"mappings":";AAAA,SAAS,oBAAoB;;;ACAsC,IAAO,8BAAQ;AAAA,EAChF,WAAW;AACb;;;ADAA,SAAS,YAAY,WAAW,QAAQ,OAAO,OAAO,YAAY;AAClE,IAAM,wBAAwB,CAAC;AAAA,EAC7B;AACF,MAAmB,sBAAM,WAAW;AAAA,EAClC,UAAU,CAAC,MAAM,OAAO,MAAM,MAAM,gBAAgB,aAAa,MAAM,KAAK,CAAC;AAC/E,CAAC;AACM,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,MAAM;AACJ,QAAM,UAAU,YAAY,QAAqB,qBAAK,WAAW;AAAA,IAC/D;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,CAAC,iBAAiB;AACpB,WAAO;AAAA,EACT;AACA,SAAoB,qBAAK,OAAO;AAAA,IAC9B,WAAW,4BAAO;AAAA,IAClB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,UAAU;AAAA,EACZ,CAAC;AACH;;;AEnCA,SAAS,SAAS,sBAAsB;AACxC,SAAS,YAAY,WAAW,aAAa,eAAe;AAK5D,SAAS,OAAOA,aAAY;AACrB,IAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,CAAC;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACJ,QAAM,iBAAiB,WAAW,cAAc;AAChD,QAAM,cAAc,QAAQ,MAAM;AAChC,QAAI,SAAS,aAAc,QAAO,CAAC;AACnC,QAAI,OAAO,WAAW,EAAG,QAAO,CAAC;AACjC,UAAM,gBAAgB,KAAK,IAAI,GAAG,OAAO,IAAI,OAAK,EAAE,KAAK,MAAM,CAAC;AAChE,UAAM,YAAY,CAAC;AAGnB,aAAS,iBAAiB,GAAG,iBAAiB,eAAe,kBAAkB;AAC7E,eAAS,cAAc,GAAG,cAAc,OAAO,QAAQ,eAAe;AACpE,cAAM,aAAa,OAAO,WAAW;AACrC,YAAI,iBAAiB,WAAW,KAAK,QAAQ;AAC3C,oBAAU,KAAK;AAAA,YACb,OAAO,WAAW,KAAK,cAAc;AAAA,YACrC,aAAa,WAAW;AAAA,YACxB;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,IAAI,CAAC;AAGjB,YAAU,MAAM;AACd,QAAI,kBAAkB,QAAW;AAC/B,sBAAgB,YAAY;AAC5B;AAAA,IACF;AACA,QAAI,SAAS,SAAS;AAEpB,aAAO,QAAQ,CAAC,GAAG,UAAU;AAC3B,YAAI,gBAAgB,EAAE,KAAK,QAAQ;AACjC,gBAAM,QAAQ,EAAE,KAAK,aAAa;AAClC,0BAAgB,YAAY;AAAA,YAC1B;AAAA,YACA,KAAK,EAAE;AAAA,YACP;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH,WAAW,SAAS,cAAc;AAEhC,UAAI,gBAAgB,YAAY,QAAQ;AACtC,cAAM,cAAc,YAAY,aAAa;AAC7C,wBAAgB,YAAY;AAAA,UAC1B,OAAO,YAAY;AAAA,UACnB,KAAK,YAAY;AAAA,UACjB,OAAO,YAAY;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EAIF,GAAG,CAAC,eAAe,aAAa,MAAM,CAAC;AAGvC,QAAM,yBAAyB,QAAQ,MAAM;AAC3C,QAAI,CAAC,cAAe,QAAO;AAC3B,WAAO,YAAU;AACf,YAAM,iBAAiB,cAAc,MAAM;AAC3C,UAAI,kBAAkB,QAAW;AAC/B,eAAoB,gBAAAA,MAAK,OAAO;AAAA,UAC9B,KAAK;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,eAAe;AAAA,UACf,WAAW;AAAA,UACX,UAAU;AAAA,QACZ,GAAG,iBAAiB,aAAa,EAAE;AAAA,MACrC;AACA,aAAoB,gBAAAA,MAAK,OAAO;AAAA,QAC9B,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,eAAe,eAAe,YAAY,wBAAwB,CAAC;AACvE,SAAoB,gBAAAA,MAAK,SAAS;AAAA,IAChC,GAAG;AAAA,IACH,eAAe;AAAA,EACjB,CAAC;AACH;AAIO,IAAM,wBAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,aAAa,YAAY,aAAW;AACxC,QAAI,WAAW,kBAAkB,QAAW;AAC1C,cAAQ,MAAM;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,aAAa,CAAC;AAGlB,QAAM,eAAe,YAAY,MAAM;AACrC,QAAI,CAAC,gBAAgB,kBAAkB,QAAW;AAChD,uBAAiB,CAAC;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,cAAc,eAAe,gBAAgB,CAAC;AAGlD,QAAM,cAAc,YAAY,MAAM;AACpC,oBAAgB,KAAK;AAAA,EACvB,GAAG,CAAC,eAAe,CAAC;AACpB,QAAM,iBAAiB,YAAY,WAAS;AAC1C,QAAI,gBAAgB,EAAG;AAGvB,QAAI,MAAM,QAAQ,OAAO;AACvB,eAAS,SAAS,MAAM;AACxB,uBAAiB,MAAS;AAC1B,sBAAgB,KAAK;AACrB;AAAA,IACF;AACA,UAAM,uBAAuB,kBAAkB,SAAY,KAAK;AAChE,QAAI,uBAAuB,KAAK,eAAe,CAAC,YAAY,EAAE,SAAS,MAAM,GAAG,GAAG;AACjF,eAAS,SAAS,MAAM;AACxB,uBAAiB,MAAS;AAC1B,sBAAgB,KAAK;AACrB;AAAA,IACF;AACA,UAAM,eAAe;AACrB,QAAI,CAAC,YAAY,EAAE,SAAS,MAAM,GAAG,GAAG;AACtC,sBAAgB,IAAI;AACpB,wBAAkB,uBAAuB,KAAK,WAAW;AAAA,IAC3D,WAAW,CAAC,WAAW,EAAE,SAAS,MAAM,GAAG,GAAG;AAC5C,sBAAgB,IAAI;AACpB,wBAAkB,uBAAuB,IAAI,eAAe,WAAW;AAAA,IACzE,WAAW,MAAM,QAAQ,UAAU;AACjC,uBAAiB,MAAS;AAC1B,sBAAgB,KAAK;AACrB,eAAS,SAAS,MAAM;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,aAAa,eAAe,kBAAkB,iBAAiB,QAAQ,CAAC;AAC5E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":["_jsx"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useChartChildren
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6CCZL2JJ.js";
|
|
4
4
|
import {
|
|
5
5
|
Children,
|
|
6
6
|
Fragment,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from "./chunk-SEKPIG5K.js";
|
|
20
20
|
import {
|
|
21
21
|
withResponsive
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-TYIH5LMV.js";
|
|
23
23
|
import {
|
|
24
24
|
GlobalChartsContext,
|
|
25
25
|
GlobalChartsProvider,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
useGlobalChartsContext,
|
|
31
31
|
useGlobalChartsTheme,
|
|
32
32
|
usePrefersReducedMotion
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-32ESS4MV.js";
|
|
34
34
|
import {
|
|
35
35
|
attachSubComponents,
|
|
36
36
|
formatMetricValue
|
|
@@ -223,7 +223,7 @@ var require_react_is_development = __commonJS({
|
|
|
223
223
|
var ContextProvider = REACT_PROVIDER_TYPE;
|
|
224
224
|
var Element = REACT_ELEMENT_TYPE;
|
|
225
225
|
var ForwardRef = REACT_FORWARD_REF_TYPE;
|
|
226
|
-
var
|
|
226
|
+
var Fragment5 = REACT_FRAGMENT_TYPE;
|
|
227
227
|
var Lazy = REACT_LAZY_TYPE;
|
|
228
228
|
var Memo = REACT_MEMO_TYPE;
|
|
229
229
|
var Portal = REACT_PORTAL_TYPE;
|
|
@@ -282,7 +282,7 @@ var require_react_is_development = __commonJS({
|
|
|
282
282
|
exports.ContextProvider = ContextProvider;
|
|
283
283
|
exports.Element = Element;
|
|
284
284
|
exports.ForwardRef = ForwardRef;
|
|
285
|
-
exports.Fragment =
|
|
285
|
+
exports.Fragment = Fragment5;
|
|
286
286
|
exports.Lazy = Lazy;
|
|
287
287
|
exports.Memo = Memo;
|
|
288
288
|
exports.Portal = Portal;
|
|
@@ -2312,10 +2312,10 @@ var jsx = function jsx2(type, props) {
|
|
|
2312
2312
|
}
|
|
2313
2313
|
return React3.createElement.apply(null, createElementArgArray);
|
|
2314
2314
|
};
|
|
2315
|
-
(function(
|
|
2315
|
+
(function(_jsx9) {
|
|
2316
2316
|
var JSX;
|
|
2317
2317
|
/* @__PURE__ */ (function(_JSX) {
|
|
2318
|
-
})(JSX || (JSX =
|
|
2318
|
+
})(JSX || (JSX = _jsx9.JSX || (_jsx9.JSX = {})));
|
|
2319
2319
|
})(jsx || (jsx = {}));
|
|
2320
2320
|
function css() {
|
|
2321
2321
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -4254,7 +4254,7 @@ var leaderboard_chart_module_default = {
|
|
|
4254
4254
|
};
|
|
4255
4255
|
|
|
4256
4256
|
// src/charts/leaderboard-chart/leaderboard-chart.tsx
|
|
4257
|
-
import {
|
|
4257
|
+
import { jsx as _jsx8, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4258
4258
|
var defaultValueFormatter = (value) => {
|
|
4259
4259
|
return formatMetricValue(value, "number", {
|
|
4260
4260
|
useMultipliers: true,
|
|
@@ -4267,7 +4267,14 @@ var defaultDeltaFormatter = (value) => {
|
|
|
4267
4267
|
signDisplay: "exceptZero"
|
|
4268
4268
|
});
|
|
4269
4269
|
};
|
|
4270
|
-
var BarLabel = ({
|
|
4270
|
+
var BarLabel = ({
|
|
4271
|
+
label
|
|
4272
|
+
}) => /* @__PURE__ */ _jsx8(_Fragment, {
|
|
4273
|
+
children: typeof label === "string" ? /* @__PURE__ */ _jsx8(component_default4, {
|
|
4274
|
+
className: leaderboard_chart_module_default.label,
|
|
4275
|
+
children: label
|
|
4276
|
+
}) : label
|
|
4277
|
+
});
|
|
4271
4278
|
var BarWithLabel = ({
|
|
4272
4279
|
entry,
|
|
4273
4280
|
withComparison,
|
|
@@ -4277,41 +4284,30 @@ var BarWithLabel = ({
|
|
|
4277
4284
|
animation,
|
|
4278
4285
|
isPrimaryVisible = true,
|
|
4279
4286
|
isComparisonVisible = true
|
|
4280
|
-
}) => /* @__PURE__ */
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4287
|
+
}) => /* @__PURE__ */ _jsxs("div", {
|
|
4288
|
+
className: clsx(leaderboard_chart_module_default.barWithLabelContainer, {
|
|
4289
|
+
[leaderboard_chart_module_default["is-overlay"]]: withOverlayLabel
|
|
4290
|
+
}),
|
|
4291
|
+
children: [/* @__PURE__ */ _jsx8(BarLabel, {
|
|
4292
|
+
label: entry.label
|
|
4293
|
+
}), isPrimaryVisible && /* @__PURE__ */ _jsx8("div", {
|
|
4294
|
+
className: clsx(leaderboard_chart_module_default.bar, {
|
|
4295
|
+
[leaderboard_chart_module_default["bar--animated"]]: animation
|
|
4285
4296
|
}),
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
withComparison && !withOverlayLabel && isComparisonVisible && /* @__PURE__ */ jsx3(
|
|
4301
|
-
"div",
|
|
4302
|
-
{
|
|
4303
|
-
className: clsx(leaderboard_chart_module_default.bar, {
|
|
4304
|
-
[leaderboard_chart_module_default["bar--animated"]]: animation
|
|
4305
|
-
}),
|
|
4306
|
-
style: {
|
|
4307
|
-
width: entry.previousShare + "%",
|
|
4308
|
-
backgroundColor: secondaryColor
|
|
4309
|
-
}
|
|
4310
|
-
}
|
|
4311
|
-
)
|
|
4312
|
-
]
|
|
4313
|
-
}
|
|
4314
|
-
);
|
|
4297
|
+
style: {
|
|
4298
|
+
width: entry.currentShare + "%",
|
|
4299
|
+
backgroundColor: primaryColor
|
|
4300
|
+
}
|
|
4301
|
+
}), withComparison && !withOverlayLabel && isComparisonVisible && /* @__PURE__ */ _jsx8("div", {
|
|
4302
|
+
className: clsx(leaderboard_chart_module_default.bar, {
|
|
4303
|
+
[leaderboard_chart_module_default["bar--animated"]]: animation
|
|
4304
|
+
}),
|
|
4305
|
+
style: {
|
|
4306
|
+
width: entry.previousShare + "%",
|
|
4307
|
+
backgroundColor: secondaryColor
|
|
4308
|
+
}
|
|
4309
|
+
})]
|
|
4310
|
+
});
|
|
4315
4311
|
var LeaderboardChartInternal = ({
|
|
4316
4312
|
data,
|
|
4317
4313
|
chartId: providedChartId,
|
|
@@ -4337,8 +4333,12 @@ var LeaderboardChartInternal = ({
|
|
|
4337
4333
|
children
|
|
4338
4334
|
}) => {
|
|
4339
4335
|
const chartId = useChartId(providedChartId);
|
|
4340
|
-
const {
|
|
4341
|
-
|
|
4336
|
+
const {
|
|
4337
|
+
leaderboardChart: leaderboardChartSettings
|
|
4338
|
+
} = useGlobalChartsTheme();
|
|
4339
|
+
const {
|
|
4340
|
+
otherChildren
|
|
4341
|
+
} = useChartChildren(children, "LeaderboardChart");
|
|
4342
4342
|
const {
|
|
4343
4343
|
labelSpacing,
|
|
4344
4344
|
rowGap,
|
|
@@ -4347,12 +4347,19 @@ var LeaderboardChartInternal = ({
|
|
|
4347
4347
|
secondaryColor: settingsSecondaryColor,
|
|
4348
4348
|
deltaColors
|
|
4349
4349
|
} = leaderboardChartSettings;
|
|
4350
|
-
const {
|
|
4351
|
-
|
|
4350
|
+
const {
|
|
4351
|
+
getElementStyles,
|
|
4352
|
+
isSeriesVisible
|
|
4353
|
+
} = useGlobalChartsContext();
|
|
4354
|
+
const {
|
|
4355
|
+
color: resolvedPrimaryColor
|
|
4356
|
+
} = getElementStyles({
|
|
4352
4357
|
index: 0,
|
|
4353
4358
|
overrideColor: primaryColor || settingsPrimaryColor
|
|
4354
4359
|
});
|
|
4355
|
-
const {
|
|
4360
|
+
const {
|
|
4361
|
+
color: resolvedSecondaryColor
|
|
4362
|
+
} = getElementStyles({
|
|
4356
4363
|
index: 1,
|
|
4357
4364
|
overrideColor: secondaryColor || settingsSecondaryColor
|
|
4358
4365
|
});
|
|
@@ -4382,21 +4389,12 @@ var LeaderboardChartInternal = ({
|
|
|
4382
4389
|
return !isPrimaryVisible && !isComparisonVisible;
|
|
4383
4390
|
}
|
|
4384
4391
|
return !isPrimaryVisible;
|
|
4385
|
-
}, [
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
isComparisonVisible,
|
|
4392
|
+
}, [legendInteractive, isPrimaryVisible, isComparisonVisible, withComparison, withOverlayLabel]);
|
|
4393
|
+
const isDataValid = Boolean(data && data.length > 0);
|
|
4394
|
+
const chartMetadata = useMemo3(() => ({
|
|
4389
4395
|
withComparison,
|
|
4390
4396
|
withOverlayLabel
|
|
4391
|
-
]);
|
|
4392
|
-
const isDataValid = Boolean(data && data.length > 0);
|
|
4393
|
-
const chartMetadata = useMemo3(
|
|
4394
|
-
() => ({
|
|
4395
|
-
withComparison,
|
|
4396
|
-
withOverlayLabel
|
|
4397
|
-
}),
|
|
4398
|
-
[withComparison, withOverlayLabel]
|
|
4399
|
-
);
|
|
4397
|
+
}), [withComparison, withOverlayLabel]);
|
|
4400
4398
|
useChartRegistration({
|
|
4401
4399
|
chartId,
|
|
4402
4400
|
legendItems,
|
|
@@ -4406,124 +4404,110 @@ var LeaderboardChartInternal = ({
|
|
|
4406
4404
|
});
|
|
4407
4405
|
const prefersReducedMotion = usePrefersReducedMotion();
|
|
4408
4406
|
if (!data || data.length === 0) {
|
|
4409
|
-
return /* @__PURE__ */
|
|
4410
|
-
SingleChartContext.Provider,
|
|
4411
|
-
{
|
|
4412
|
-
value: {
|
|
4413
|
-
chartId,
|
|
4414
|
-
chartWidth: 0,
|
|
4415
|
-
// LeaderboardChart doesn't need specific dimensions
|
|
4416
|
-
chartHeight: 0
|
|
4417
|
-
},
|
|
4418
|
-
children: /* @__PURE__ */ jsxs(
|
|
4419
|
-
"div",
|
|
4420
|
-
{
|
|
4421
|
-
className: clsx(
|
|
4422
|
-
leaderboard_chart_module_default.leaderboardChart,
|
|
4423
|
-
{ [leaderboard_chart_module_default["leaderboardChart--loading"]]: loading },
|
|
4424
|
-
className
|
|
4425
|
-
),
|
|
4426
|
-
style,
|
|
4427
|
-
children: [
|
|
4428
|
-
/* @__PURE__ */ jsx3("div", { className: leaderboard_chart_module_default.emptyState, children: loading ? __2("Loading\u2026", "jetpack-charts") : __2("No data available", "jetpack-charts") }),
|
|
4429
|
-
otherChildren
|
|
4430
|
-
]
|
|
4431
|
-
}
|
|
4432
|
-
)
|
|
4433
|
-
}
|
|
4434
|
-
);
|
|
4435
|
-
}
|
|
4436
|
-
return /* @__PURE__ */ jsx3(
|
|
4437
|
-
SingleChartContext.Provider,
|
|
4438
|
-
{
|
|
4407
|
+
return /* @__PURE__ */ _jsx8(SingleChartContext.Provider, {
|
|
4439
4408
|
value: {
|
|
4440
4409
|
chartId,
|
|
4441
4410
|
chartWidth: 0,
|
|
4442
4411
|
// LeaderboardChart doesn't need specific dimensions
|
|
4443
4412
|
chartHeight: 0
|
|
4444
4413
|
},
|
|
4445
|
-
children: /* @__PURE__ */
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4414
|
+
children: /* @__PURE__ */ _jsxs("div", {
|
|
4415
|
+
className: clsx(leaderboard_chart_module_default.leaderboardChart, {
|
|
4416
|
+
[leaderboard_chart_module_default["leaderboardChart--loading"]]: loading
|
|
4417
|
+
}, className),
|
|
4418
|
+
style,
|
|
4419
|
+
children: [/* @__PURE__ */ _jsx8("div", {
|
|
4420
|
+
className: leaderboard_chart_module_default.emptyState,
|
|
4421
|
+
children: loading ? __2("Loading\u2026", "jetpack-charts") : __2("No data available", "jetpack-charts")
|
|
4422
|
+
}), otherChildren]
|
|
4423
|
+
})
|
|
4424
|
+
});
|
|
4425
|
+
}
|
|
4426
|
+
return /* @__PURE__ */ _jsx8(SingleChartContext.Provider, {
|
|
4427
|
+
value: {
|
|
4428
|
+
chartId,
|
|
4429
|
+
chartWidth: 0,
|
|
4430
|
+
// LeaderboardChart doesn't need specific dimensions
|
|
4431
|
+
chartHeight: 0
|
|
4432
|
+
},
|
|
4433
|
+
children: /* @__PURE__ */ _jsxs("div", {
|
|
4434
|
+
className: clsx(leaderboard_chart_module_default.leaderboardChart, {
|
|
4435
|
+
[leaderboard_chart_module_default["leaderboardChart--loading"]]: loading,
|
|
4436
|
+
[leaderboard_chart_module_default["leaderboardChart--with-legend"]]: showLegend,
|
|
4437
|
+
[leaderboard_chart_module_default["leaderboardChart--legend-top"]]: showLegend && legendPosition === "top"
|
|
4438
|
+
}, className),
|
|
4439
|
+
style,
|
|
4440
|
+
children: [allSeriesHidden ? /* @__PURE__ */ _jsx8("div", {
|
|
4441
|
+
className: leaderboard_chart_module_default.emptyState,
|
|
4442
|
+
children: __2("All series are hidden. Click legend items to show data.", "jetpack-charts")
|
|
4443
|
+
}) : /* @__PURE__ */ _jsx8(component_default6, {
|
|
4444
|
+
templateColumns: "minmax(0, 1fr) auto",
|
|
4445
|
+
rowGap,
|
|
4446
|
+
columnGap,
|
|
4447
|
+
children: data.map((entry) => {
|
|
4448
|
+
const colorIndex = Math.sign(entry.delta) + 1;
|
|
4449
|
+
const deltaColor = deltaColors[colorIndex];
|
|
4450
|
+
return /* @__PURE__ */ _jsxs(Fragment, {
|
|
4451
|
+
children: [/* @__PURE__ */ _jsx8(component_default5, {
|
|
4452
|
+
spacing: labelSpacing,
|
|
4453
|
+
children: /* @__PURE__ */ _jsx8(BarWithLabel, {
|
|
4454
|
+
entry,
|
|
4455
|
+
withComparison,
|
|
4456
|
+
withOverlayLabel,
|
|
4457
|
+
primaryColor: resolvedPrimaryColor,
|
|
4458
|
+
secondaryColor: resolvedSecondaryColor,
|
|
4459
|
+
isPrimaryVisible,
|
|
4460
|
+
isComparisonVisible,
|
|
4461
|
+
animation: animation && !loading && !prefersReducedMotion
|
|
4462
|
+
})
|
|
4463
|
+
}), /* @__PURE__ */ _jsxs("div", {
|
|
4464
|
+
className: clsx(leaderboard_chart_module_default.valueContainer, {
|
|
4465
|
+
[leaderboard_chart_module_default.overlayLabel]: withOverlayLabel
|
|
4466
|
+
}),
|
|
4467
|
+
children: [isPrimaryVisible && /* @__PURE__ */ _jsx8(component_default4, {
|
|
4468
|
+
children: valueFormatter(entry.currentValue)
|
|
4469
|
+
}), withComparison && isComparisonVisible && /* @__PURE__ */ _jsx8(component_default4, {
|
|
4470
|
+
style: {
|
|
4471
|
+
color: deltaColor
|
|
4472
|
+
},
|
|
4473
|
+
children: deltaFormatter(entry.delta)
|
|
4474
|
+
})]
|
|
4475
|
+
})]
|
|
4476
|
+
}, entry.id);
|
|
4477
|
+
})
|
|
4478
|
+
}), showLegend && /* @__PURE__ */ _jsx8(Legend, {
|
|
4479
|
+
orientation: legendOrientation,
|
|
4480
|
+
position: legendPosition,
|
|
4481
|
+
alignment: legendAlignment,
|
|
4482
|
+
shape: legendShape,
|
|
4483
|
+
shapeWidth: legendShapeWidth,
|
|
4484
|
+
shapeHeight: legendShapeHeight,
|
|
4485
|
+
chartId,
|
|
4486
|
+
interactive: legendInteractive
|
|
4487
|
+
}), otherChildren]
|
|
4488
|
+
})
|
|
4489
|
+
});
|
|
4509
4490
|
};
|
|
4510
4491
|
var LeaderboardChartWithProvider = (props) => {
|
|
4511
4492
|
const existingContext = useContext6(GlobalChartsContext);
|
|
4512
4493
|
if (existingContext) {
|
|
4513
|
-
return /* @__PURE__ */
|
|
4494
|
+
return /* @__PURE__ */ _jsx8(LeaderboardChartInternal, {
|
|
4495
|
+
...props
|
|
4496
|
+
});
|
|
4514
4497
|
}
|
|
4515
|
-
return /* @__PURE__ */
|
|
4498
|
+
return /* @__PURE__ */ _jsx8(GlobalChartsProvider, {
|
|
4499
|
+
children: /* @__PURE__ */ _jsx8(LeaderboardChartInternal, {
|
|
4500
|
+
...props
|
|
4501
|
+
})
|
|
4502
|
+
});
|
|
4516
4503
|
};
|
|
4517
4504
|
LeaderboardChartWithProvider.displayName = "LeaderboardChart";
|
|
4518
4505
|
var LeaderboardChart = attachSubComponents(LeaderboardChartWithProvider, {
|
|
4519
4506
|
Legend
|
|
4520
4507
|
});
|
|
4521
|
-
var LeaderboardChartResponsive = attachSubComponents(
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
Legend
|
|
4525
|
-
}
|
|
4526
|
-
);
|
|
4508
|
+
var LeaderboardChartResponsive = attachSubComponents(withResponsive(LeaderboardChartWithProvider), {
|
|
4509
|
+
Legend
|
|
4510
|
+
});
|
|
4527
4511
|
|
|
4528
4512
|
export {
|
|
4529
4513
|
useLeaderboardLegendItems,
|
|
@@ -4560,4 +4544,4 @@ is-plain-object/dist/is-plain-object.mjs:
|
|
|
4560
4544
|
* Released under the MIT License.
|
|
4561
4545
|
*)
|
|
4562
4546
|
*/
|
|
4563
|
-
//# sourceMappingURL=chunk-
|
|
4547
|
+
//# sourceMappingURL=chunk-DBY6C4O2.js.map
|