@automattic/charts 0.34.1 → 0.36.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/CHANGELOG.md +17 -0
- package/dist/{chunk-LGCQRR2I.js → chunk-CKZHS3T4.js} +7 -6
- package/dist/chunk-CKZHS3T4.js.map +1 -0
- package/dist/{chunk-W33ZCFIV.cjs → chunk-HKI6ASFW.cjs} +22 -22
- package/dist/chunk-HKI6ASFW.cjs.map +1 -0
- package/dist/{chunk-KXOPD63R.cjs → chunk-JATWMDC6.cjs} +219 -50
- package/dist/chunk-JATWMDC6.cjs.map +1 -0
- package/dist/{chunk-WFSQYOGO.js → chunk-JFB6W5ZW.js} +7 -6
- package/dist/chunk-JFB6W5ZW.js.map +1 -0
- package/dist/{chunk-CZDSDFHD.js → chunk-JSIWLUAE.js} +9 -9
- package/dist/chunk-JSIWLUAE.js.map +1 -0
- package/dist/{chunk-KNTSYQPX.cjs → chunk-JTGCSLYT.cjs} +7 -7
- package/dist/chunk-JTGCSLYT.cjs.map +1 -0
- package/dist/{chunk-RXE5VSSC.cjs → chunk-KREFZCGV.cjs} +29 -28
- package/dist/chunk-KREFZCGV.cjs.map +1 -0
- package/dist/{chunk-3F4KXMJ5.js → chunk-MWRPUPV5.js} +7 -6
- package/dist/{chunk-RXE5VSSC.cjs.map → chunk-MWRPUPV5.js.map} +1 -1
- package/dist/{chunk-5JUW6JQO.js → chunk-N2XRMMQK.js} +2 -2
- package/dist/chunk-N2XRMMQK.js.map +1 -0
- package/dist/{chunk-CEOMF3BN.cjs → chunk-NDHAXBQG.cjs} +24 -23
- package/dist/chunk-NDHAXBQG.cjs.map +1 -0
- package/dist/{chunk-MNVVKT7E.js → chunk-NP66HU2X.js} +4 -3
- package/dist/chunk-NP66HU2X.js.map +1 -0
- package/dist/{chunk-JRDN5LQ7.cjs → chunk-OLKUYPVT.cjs} +21 -20
- package/dist/chunk-OLKUYPVT.cjs.map +1 -0
- package/dist/{chunk-BS3VZTWU.cjs → chunk-P6GF5KEQ.cjs} +99 -120
- package/dist/chunk-P6GF5KEQ.cjs.map +1 -0
- package/dist/{chunk-V3VAJ7ZP.cjs → chunk-Q5QMVYUV.cjs} +8 -7
- package/dist/chunk-Q5QMVYUV.cjs.map +1 -0
- package/dist/{chunk-AMY2POSB.js → chunk-S4GHZV44.js} +214 -45
- package/dist/chunk-S4GHZV44.js.map +1 -0
- package/dist/{chunk-MFROL3SY.cjs → chunk-SLF2F4AO.cjs} +9 -9
- package/dist/chunk-SLF2F4AO.cjs.map +1 -0
- package/dist/{chunk-NB3M3ZHU.js → chunk-XKKR4VOA.js} +107 -128
- package/dist/chunk-XKKR4VOA.js.map +1 -0
- package/dist/{chunk-JFRMYLPI.js → chunk-YS2WVVIY.js} +2 -2
- package/dist/chunk-YS2WVVIY.js.map +1 -0
- package/dist/components/bar-chart/index.cjs +7 -5
- package/dist/components/bar-chart/index.cjs.map +1 -1
- package/dist/components/bar-chart/index.d.cts +3 -1
- package/dist/components/bar-chart/index.d.ts +3 -1
- package/dist/components/bar-chart/index.js +7 -5
- package/dist/components/bar-list-chart/index.cjs +8 -6
- package/dist/components/bar-list-chart/index.cjs.map +1 -1
- package/dist/components/bar-list-chart/index.d.cts +3 -2
- package/dist/components/bar-list-chart/index.d.ts +3 -2
- package/dist/components/bar-list-chart/index.js +8 -6
- package/dist/components/conversion-funnel-chart/index.cjs +3 -3
- package/dist/components/conversion-funnel-chart/index.js +2 -2
- package/dist/components/leaderboard-chart/index.cjs +10 -3
- package/dist/components/leaderboard-chart/index.cjs.map +1 -1
- package/dist/components/leaderboard-chart/index.css +59 -0
- package/dist/components/leaderboard-chart/index.css.map +1 -1
- package/dist/components/leaderboard-chart/index.d.cts +32 -3
- package/dist/components/leaderboard-chart/index.d.ts +32 -3
- package/dist/components/leaderboard-chart/index.js +12 -5
- package/dist/components/legend/index.cjs +3 -3
- package/dist/components/legend/index.js +2 -2
- package/dist/components/line-chart/index.cjs +7 -5
- package/dist/components/line-chart/index.cjs.map +1 -1
- package/dist/components/line-chart/index.d.cts +3 -1
- package/dist/components/line-chart/index.d.ts +3 -1
- package/dist/components/line-chart/index.js +7 -5
- package/dist/components/pie-chart/index.cjs +6 -6
- package/dist/components/pie-chart/index.js +5 -5
- package/dist/components/pie-semi-circle-chart/index.cjs +7 -5
- package/dist/components/pie-semi-circle-chart/index.cjs.map +1 -1
- package/dist/components/pie-semi-circle-chart/index.d.cts +3 -1
- package/dist/components/pie-semi-circle-chart/index.d.ts +3 -1
- package/dist/components/pie-semi-circle-chart/index.js +7 -5
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +22 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +24 -15
- package/dist/leaderboard-chart-D3wGCW8s.d.cts +83 -0
- package/dist/leaderboard-chart-DAcZlZSF.d.ts +83 -0
- package/dist/providers/index.cjs +2 -6
- package/dist/providers/index.cjs.map +1 -1
- package/dist/providers/index.d.cts +2 -2
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.js +1 -5
- package/dist/{use-global-charts-theme-D8nlMH1c.d.ts → themes-Da5U_G9I.d.ts} +17 -37
- package/dist/{use-global-charts-theme-Cr2-_NOr.d.cts → themes-mV3n_Yuf.d.cts} +17 -37
- package/package.json +2 -2
- package/src/components/bar-chart/bar-chart.tsx +2 -2
- package/src/components/bar-chart/index.ts +1 -1
- package/src/components/bar-chart/test/bar-chart.test.tsx +7 -7
- package/src/components/bar-list-chart/bar-list-chart.tsx +1 -1
- package/src/components/bar-list-chart/index.ts +1 -1
- package/src/components/conversion-funnel-chart/conversion-funnel-chart.tsx +1 -1
- package/src/components/leaderboard-chart/hooks/index.ts +1 -0
- package/src/components/leaderboard-chart/hooks/use-leaderboard-legend-items.ts +89 -0
- package/src/components/leaderboard-chart/index.ts +2 -1
- package/src/components/leaderboard-chart/leaderboard-chart.tsx +185 -58
- package/src/components/leaderboard-chart/test/leaderboard-chart.test.tsx +171 -0
- package/src/components/leaderboard-chart/test/use-leaderboard-legend-items.test.tsx +630 -0
- package/src/components/leaderboard-chart/types.ts +44 -1
- package/src/components/legend/hooks/use-chart-legend-items.ts +1 -1
- package/src/components/legend/legend.tsx +1 -1
- package/src/components/legend/private/base-legend.tsx +1 -1
- package/src/components/line-chart/index.ts +1 -1
- package/src/components/line-chart/line-chart.tsx +1 -1
- package/src/components/line-chart/private/line-chart-annotation.tsx +1 -1
- package/src/components/line-chart/test/line-chart.test.tsx +7 -7
- package/src/components/pie-chart/pie-chart.tsx +2 -2
- package/src/components/pie-chart/test/pie-chart.test.tsx +5 -5
- package/src/components/pie-semi-circle-chart/index.ts +4 -1
- package/src/components/pie-semi-circle-chart/pie-semi-circle-chart.tsx +1 -1
- package/src/components/pie-semi-circle-chart/test/pie-semi-circle-chart.test.tsx +5 -5
- package/src/hooks/use-xychart-theme.ts +1 -1
- package/src/index.ts +13 -8
- package/src/providers/chart-context/global-charts-provider.tsx +1 -1
- package/src/providers/chart-context/hooks/use-global-charts-theme.ts +5 -18
- package/src/providers/chart-context/index.ts +1 -0
- package/src/providers/chart-context/test/use-global-charts-theme.test.tsx +39 -143
- package/src/providers/index.ts +0 -1
- package/dist/chunk-3F4KXMJ5.js.map +0 -1
- package/dist/chunk-5JUW6JQO.js.map +0 -1
- package/dist/chunk-AMY2POSB.js.map +0 -1
- package/dist/chunk-BS3VZTWU.cjs.map +0 -1
- package/dist/chunk-CEOMF3BN.cjs.map +0 -1
- package/dist/chunk-CZDSDFHD.js.map +0 -1
- package/dist/chunk-JFRMYLPI.js.map +0 -1
- package/dist/chunk-JRDN5LQ7.cjs.map +0 -1
- package/dist/chunk-KNTSYQPX.cjs.map +0 -1
- package/dist/chunk-KXOPD63R.cjs.map +0 -1
- package/dist/chunk-LGCQRR2I.js.map +0 -1
- package/dist/chunk-MFROL3SY.cjs.map +0 -1
- package/dist/chunk-MNVVKT7E.js.map +0 -1
- package/dist/chunk-NB3M3ZHU.js.map +0 -1
- package/dist/chunk-V3VAJ7ZP.cjs.map +0 -1
- package/dist/chunk-W33ZCFIV.cjs.map +0 -1
- package/dist/chunk-WFSQYOGO.js.map +0 -1
- package/dist/leaderboard-chart-BQwp7N9o.d.cts +0 -43
- package/dist/leaderboard-chart-Ki5_oTuo.d.ts +0 -43
- package/src/components/leaderboard-chart/README.md +0 -199
- package/src/providers/theme/index.ts +0 -2
- package/src/providers/theme/theme-provider.tsx +0 -35
- /package/src/providers/{theme → chart-context}/themes.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.36.0] - 2025-09-11
|
|
9
|
+
### Added
|
|
10
|
+
- Leaderboard chart: Add legend support [#45126]
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Leaderboard chart: Make docs consistent with other charts [#45125]
|
|
14
|
+
- Update package dependencies. [#45127]
|
|
15
|
+
|
|
16
|
+
## [0.35.0] - 2025-09-10
|
|
17
|
+
### Added
|
|
18
|
+
- Export all unresponsive charts. [#45129]
|
|
19
|
+
|
|
20
|
+
### Removed
|
|
21
|
+
- Charts: Deprecate ThemeProvider in favor of GlobalChartsProvider [#45081]
|
|
22
|
+
|
|
8
23
|
## [0.34.1] - 2025-09-08
|
|
9
24
|
### Fixed
|
|
10
25
|
- Charts: fix Type error with legendValueDisplay [#45099]
|
|
@@ -441,6 +456,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
441
456
|
- Fixed lints following ESLint rule changes for TS [#40584]
|
|
442
457
|
- Fixing a bug in Chart storybook data. [#40640]
|
|
443
458
|
|
|
459
|
+
[0.36.0]: https://github.com/Automattic/charts/compare/v0.35.0...v0.36.0
|
|
460
|
+
[0.35.0]: https://github.com/Automattic/charts/compare/v0.34.1...v0.35.0
|
|
444
461
|
[0.34.1]: https://github.com/Automattic/charts/compare/v0.34.0...v0.34.1
|
|
445
462
|
[0.34.0]: https://github.com/Automattic/charts/compare/v0.33.0...v0.34.0
|
|
446
463
|
[0.33.0]: https://github.com/Automattic/charts/compare/v0.32.0...v0.33.0
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseTooltip
|
|
3
|
+
} from "./chunk-6KOC7ZWU.js";
|
|
1
4
|
import {
|
|
2
5
|
ChartHTML,
|
|
3
6
|
ChartSVG,
|
|
@@ -6,14 +9,11 @@ import {
|
|
|
6
9
|
import {
|
|
7
10
|
withResponsive
|
|
8
11
|
} from "./chunk-TYYW4BG3.js";
|
|
9
|
-
import {
|
|
10
|
-
BaseTooltip
|
|
11
|
-
} from "./chunk-6KOC7ZWU.js";
|
|
12
12
|
import {
|
|
13
13
|
Legend,
|
|
14
14
|
SingleChartContext,
|
|
15
15
|
useChartLegendItems
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-YS2WVVIY.js";
|
|
17
17
|
import {
|
|
18
18
|
GlobalChartsContext,
|
|
19
19
|
GlobalChartsProvider,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
useChartRegistration,
|
|
23
23
|
useElementHeight,
|
|
24
24
|
useGlobalChartsContext
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-XKKR4VOA.js";
|
|
26
26
|
|
|
27
27
|
// src/components/pie-semi-circle-chart/pie-semi-circle-chart.tsx
|
|
28
28
|
import { localPoint } from "@visx/event";
|
|
@@ -283,6 +283,7 @@ var PieSemiCircleChartResponsive = attachSubComponents(
|
|
|
283
283
|
);
|
|
284
284
|
|
|
285
285
|
export {
|
|
286
|
+
PieSemiCircleChart,
|
|
286
287
|
PieSemiCircleChartResponsive
|
|
287
288
|
};
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
289
|
+
//# sourceMappingURL=chunk-CKZHS3T4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/pie-semi-circle-chart/pie-semi-circle-chart.tsx","../src/components/pie-semi-circle-chart/pie-semi-circle-chart.module.scss"],"sourcesContent":["import { localPoint } from '@visx/event';\nimport { Group } from '@visx/group';\nimport { Pie } from '@visx/shape';\nimport { Text } from '@visx/text';\nimport { useTooltip } from '@visx/tooltip';\nimport clsx from 'clsx';\nimport { useCallback, useContext, useMemo } from 'react';\nimport { useElementHeight } from '../../hooks';\nimport {\n\tGlobalChartsProvider,\n\tuseChartId,\n\tuseChartRegistration,\n\tuseGlobalChartsContext,\n\tGlobalChartsContext,\n} from '../../providers';\nimport { attachSubComponents } from '../../utils';\nimport { Legend, useChartLegendItems } from '../legend';\nimport { ChartSVG, ChartHTML, useChartChildren } from '../private/chart-composition';\nimport { SingleChartContext } from '../private/single-chart-context';\nimport { withResponsive } from '../private/with-responsive';\nimport { BaseTooltip } from '../tooltip';\nimport styles from './pie-semi-circle-chart.module.scss';\nimport type { BaseChartProps, DataPointPercentage, Optional } from '../../types';\nimport type { LegendValueDisplay } from '../legend';\nimport type { ChartComponentWithComposition } from '../private/chart-composition';\nimport type { ResponsiveConfig } from '../private/with-responsive';\nimport type { PieArcDatum } from '@visx/shape/lib/shapes/Pie';\nimport type { FC, MouseEvent, ReactNode } from 'react';\n\nconst PAD_ANGLE = 0.03; // Padding between segments\n\nexport interface PieSemiCircleChartProps extends BaseChartProps< DataPointPercentage[] > {\n\t/**\n\t * Width of the chart in pixels; height would be half of this value calculated automatically.\n\t */\n\twidth?: number;\n\n\t/**\n\t * Thickness of the pie chart. A value between 0 and 1\n\t */\n\tthickness?: number;\n\n\t/**\n\t * Direction of chart rendering\n\t * true for clockwise, false for counter-clockwise\n\t */\n\tclockwise?: boolean;\n\n\t/**\n\t * Label text to display above the chart\n\t */\n\tlabel?: string;\n\n\t/**\n\t * Note text to display below the label\n\t */\n\tnote?: string;\n\n\t/**\n\t * Use the children prop to render additional elements on the chart.\n\t */\n\tchildren?: ReactNode;\n\n\t/**\n\t * What type of value to display in the legend when showValues is true.\n\t * - 'percentage': Shows percentage values (e.g., \"23%\") [default]\n\t * - 'value': Shows raw numeric values (e.g., \"30000\")\n\t * - 'valueDisplay': Shows formatted values (e.g., \"30K\")\n\t * - 'none': Shows no values, only labels\n\t */\n\tlegendValueDisplay?: LegendValueDisplay;\n}\n\n// Base props type with optional responsive properties\ntype PieSemiCircleChartBaseProps = Optional< PieSemiCircleChartProps, 'width' >;\n\n// Composition API types\ntype PieSemiCircleChartComponent = ChartComponentWithComposition< PieSemiCircleChartBaseProps >;\ntype PieSemiCircleChartResponsiveComponent = ChartComponentWithComposition<\n\tPieSemiCircleChartBaseProps & ResponsiveConfig\n>;\n\nexport type ArcData = PieArcDatum< DataPointPercentage >;\n\n/**\n * Validates the semi-circle pie chart data\n * @param data - The data to validate\n * @return Object containing validation result and error message\n */\nconst validateData = ( data: DataPointPercentage[] ) => {\n\tif ( ! data.length ) {\n\t\treturn { isValid: false, message: 'No data available' };\n\t}\n\n\t// Check for negative values\n\tconst hasNegativeValues = data.some( item => item.percentage < 0 || item.value < 0 );\n\tif ( hasNegativeValues ) {\n\t\treturn { isValid: false, message: 'Invalid data: Negative values are not allowed' };\n\t}\n\n\t// Validate total percentage is greater than 0\n\tconst totalPercentage = data.reduce( ( sum, item ) => sum + item.percentage, 0 );\n\tif ( totalPercentage <= 0 ) {\n\t\treturn { isValid: false, message: 'Invalid percentage total: Must be greater than 0' };\n\t}\n\n\treturn { isValid: true, message: '' };\n};\n\nconst PieSemiCircleChartInternal: FC< PieSemiCircleChartProps > = ( {\n\tdata,\n\tchartId: providedChartId,\n\twidth = 400,\n\tthickness = 0.4,\n\tclockwise = true,\n\twithTooltips = false,\n\tshowLegend = false,\n\tlegendOrientation = 'horizontal',\n\tlegendPosition = 'bottom',\n\tlegendAlignment = 'center',\n\tlegendShape = 'circle',\n\tlegendValueDisplay = 'percentage',\n\tlabel,\n\tnote,\n\tclassName,\n\tchildren,\n} ) => {\n\tconst chartId = useChartId( providedChartId );\n\tconst [ legendRef, legendHeight ] = useElementHeight< HTMLDivElement >();\n\tconst { tooltipOpen, tooltipLeft, tooltipTop, tooltipData, hideTooltip, showTooltip } =\n\t\tuseTooltip< DataPointPercentage >();\n\n\tconst handleMouseMove = useCallback(\n\t\t( event: MouseEvent, arc: ArcData ) => {\n\t\t\tconst coords = localPoint( event );\n\t\t\tif ( ! coords ) return;\n\n\t\t\tshowTooltip( {\n\t\t\t\ttooltipData: arc.data,\n\t\t\t\ttooltipLeft: coords.x,\n\t\t\t\ttooltipTop: coords.y - 10,\n\t\t\t} );\n\t\t},\n\t\t[ showTooltip ]\n\t);\n\n\tconst handleMouseLeave = useCallback( () => {\n\t\thideTooltip();\n\t}, [ hideTooltip ] );\n\n\tconst handleArcMouseMove = useCallback(\n\t\t( arc: ArcData ) => ( event: MouseEvent ) => {\n\t\t\thandleMouseMove( event, arc );\n\t\t},\n\t\t[ handleMouseMove ]\n\t);\n\n\t// Validate data first to get validation result\n\tconst { isValid, message } = validateData( data );\n\n\tconst { resolveGroupColor } = useGlobalChartsContext();\n\n\t// Define accessors with useMemo to avoid changing dependencies\n\tconst accessors = useMemo(\n\t\t() => ( {\n\t\t\tvalue: ( d: DataPointPercentage ) => d.value,\n\t\t\tsort: (\n\t\t\t\ta: DataPointPercentage & { index: number },\n\t\t\t\tb: DataPointPercentage & { index: number }\n\t\t\t) => b.value - a.value,\n\t\t\tfill: ( { group, index, color: overrideColor }: DataPointPercentage & { index: number } ) =>\n\t\t\t\tresolveGroupColor( { group, index, overrideColor } ),\n\t\t} ),\n\t\t[ resolveGroupColor ]\n\t);\n\n\t// Memoize legend options to prevent unnecessary re-calculations\n\tconst legendOptions = useMemo(\n\t\t() => ( { showValues: true, legendValueDisplay } ),\n\t\t[ legendValueDisplay ]\n\t);\n\n\t// Create legend items using the reusable hook\n\tconst legendItems = useChartLegendItems( data, legendOptions );\n\n\t// Process children to extract compound components\n\tconst { svgChildren, htmlChildren, otherChildren } = useChartChildren(\n\t\tchildren,\n\t\t'PieSemiCircleChart'\n\t);\n\n\t// Memoize metadata to prevent unnecessary re-registration\n\tconst chartMetadata = useMemo(\n\t\t() => ( {\n\t\t\tthickness,\n\t\t\tclockwise,\n\t\t} ),\n\t\t[ thickness, clockwise ]\n\t);\n\n\t// Register chart with context only if data is valid\n\tuseChartRegistration( {\n\t\tchartId,\n\t\tlegendItems,\n\t\tchartType: 'pie-semi-circle',\n\t\tisDataValid: isValid,\n\t\tmetadata: chartMetadata,\n\t} );\n\n\tif ( ! isValid ) {\n\t\treturn (\n\t\t\t<div className={ styles[ 'pie-semi-circle-chart' ] }>\n\t\t\t\t<svg width={ width } height={ width / 2 } data-testid=\"pie-chart-svg\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" textAnchor=\"middle\" className={ styles.error }>\n\t\t\t\t\t\t{ message }\n\t\t\t\t\t</text>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Calculate chart dimensions\n\t// TODO: we might want to accept height as a prop in the future, because the height of container might not always be enough.\n\tconst height = width / 2;\n\t// The chart only takes the height minus the legend height.\n\tconst chartHeight = height - ( showLegend && legendPosition === 'top' ? legendHeight : 0 );\n\tconst radius = Math.min( width / 2, chartHeight );\n\tconst innerRadius = radius * ( 1 - thickness );\n\n\t// Map data with index for color assignment\n\tconst dataWithIndex = data.map( ( d, index ) => ( {\n\t\t...d,\n\t\tindex,\n\t} ) );\n\n\t// Configure pie angles based on clockwise direction\n\tconst startAngle = clockwise ? -Math.PI / 2 : Math.PI / 2;\n\tconst endAngle = clockwise ? Math.PI / 2 : -Math.PI / 2;\n\n\treturn (\n\t\t<SingleChartContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tchartId,\n\t\t\t\tchartWidth: width,\n\t\t\t\tchartHeight: radius,\n\t\t\t} }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'pie-semi-circle-chart', styles[ 'pie-semi-circle-chart' ], className ) }\n\t\t\t\tdata-testid=\"pie-chart-container\"\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: showLegend && legendPosition === 'top' ? 'column-reverse' : 'column',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ radius }\n\t\t\t\t\tviewBox={ `0 0 ${ width } ${ chartHeight }` }\n\t\t\t\t\tdata-testid=\"pie-chart-svg\"\n\t\t\t\t>\n\t\t\t\t\t{ /* Main chart group centered horizontally and positioned at bottom */ }\n\t\t\t\t\t<Group top={ chartHeight } left={ width / 2 }>\n\t\t\t\t\t\t{ /* Pie chart */ }\n\t\t\t\t\t\t<Pie< DataPointPercentage & { index: number } >\n\t\t\t\t\t\t\tdata={ dataWithIndex }\n\t\t\t\t\t\t\tpieValue={ accessors.value }\n\t\t\t\t\t\t\touterRadius={ radius }\n\t\t\t\t\t\t\tinnerRadius={ innerRadius }\n\t\t\t\t\t\t\tcornerRadius={ 3 }\n\t\t\t\t\t\t\tpadAngle={ PAD_ANGLE }\n\t\t\t\t\t\t\tstartAngle={ startAngle }\n\t\t\t\t\t\t\tendAngle={ endAngle }\n\t\t\t\t\t\t\tpieSort={ accessors.sort }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ pie => {\n\t\t\t\t\t\t\t\treturn pie.arcs.map( arc => (\n\t\t\t\t\t\t\t\t\t<g\n\t\t\t\t\t\t\t\t\t\tkey={ arc.data.label }\n\t\t\t\t\t\t\t\t\t\tonMouseMove={ handleArcMouseMove( arc ) }\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\td={ pie.path( arc ) || '' }\n\t\t\t\t\t\t\t\t\t\t\tfill={ accessors.fill( arc.data ) }\n\t\t\t\t\t\t\t\t\t\t\tdata-testid=\"pie-segment\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t</Pie>\n\n\t\t\t\t\t\t{ /* Label and note text */ }\n\t\t\t\t\t\t<Group>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttextAnchor=\"middle\"\n\t\t\t\t\t\t\t\tverticalAnchor=\"start\"\n\t\t\t\t\t\t\t\ty={ -40 } // Position above the chart with space for note\n\t\t\t\t\t\t\t\tclassName={ styles.label }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttextAnchor=\"middle\"\n\t\t\t\t\t\t\t\tverticalAnchor=\"start\"\n\t\t\t\t\t\t\t\ty={ -20 } // Position between label and chart\n\t\t\t\t\t\t\t\tclassName={ styles.note }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ note }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Group>\n\n\t\t\t\t\t\t{ /* Render SVG children from composition API */ }\n\t\t\t\t\t\t{ svgChildren }\n\t\t\t\t\t</Group>\n\t\t\t\t</svg>\n\n\t\t\t\t{ withTooltips && tooltipOpen && tooltipData && (\n\t\t\t\t\t<BaseTooltip\n\t\t\t\t\t\tdata={ {\n\t\t\t\t\t\t\tlabel: tooltipData.label,\n\t\t\t\t\t\t\tvalue: tooltipData.value,\n\t\t\t\t\t\t\tvalueDisplay: tooltipData.valueDisplay,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ttop={ tooltipTop || 0 }\n\t\t\t\t\t\tleft={ tooltipLeft || 0 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showLegend && (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\torientation={ legendOrientation }\n\t\t\t\t\t\tposition={ legendPosition }\n\t\t\t\t\t\talignment={ legendAlignment }\n\t\t\t\t\t\tshape={ legendShape }\n\t\t\t\t\t\tref={ legendRef }\n\t\t\t\t\t\tchartId={ chartId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Render HTML children from composition API */ }\n\t\t\t\t{ htmlChildren }\n\n\t\t\t\t{ /* Render any other children that aren't compound components */ }\n\t\t\t\t{ otherChildren }\n\t\t\t</div>\n\t\t</SingleChartContext.Provider>\n\t);\n};\n\nconst PieSemiCircleChartWithProvider: FC< PieSemiCircleChartProps > = props => {\n\tconst existingContext = useContext( GlobalChartsContext );\n\n\t// If we're already in a GlobalChartsProvider context, don't create a new one\n\tif ( existingContext ) {\n\t\treturn <PieSemiCircleChartInternal { ...props } />;\n\t}\n\n\t// Otherwise, create our own GlobalChartsProvider\n\treturn (\n\t\t<GlobalChartsProvider>\n\t\t\t<PieSemiCircleChartInternal { ...props } />\n\t\t</GlobalChartsProvider>\n\t);\n};\n\nPieSemiCircleChartWithProvider.displayName = 'PieSemiCircleChart';\n\n// Create PieSemiCircleChart with composition API\nconst PieSemiCircleChart = attachSubComponents( PieSemiCircleChartWithProvider, {\n\tLegend: Legend,\n\tSVG: ChartSVG,\n\tHTML: ChartHTML,\n} ) as PieSemiCircleChartComponent;\n\n// Create responsive PieSemiCircleChart with composition API\nconst PieSemiCircleChartResponsive = attachSubComponents(\n\twithResponsive< PieSemiCircleChartProps >( PieSemiCircleChartWithProvider ),\n\t{\n\t\tLegend: Legend,\n\t\tSVG: ChartSVG,\n\t\tHTML: ChartHTML,\n\t}\n) as PieSemiCircleChartResponsiveComponent;\n\nexport {\n\tPieSemiCircleChartResponsive as default,\n\tPieSemiCircleChart as PieSemiCircleChartUnresponsive,\n};\n","import 'css-chunk:src/components/pie-semi-circle-chart/pie-semi-circle-chart.module.scss';export default {\n \"pie-semi-circle-chart\": \"a8ccharts-r5jk9c\",\n \"label\": \"a8ccharts-nPqOgD\",\n \"note\": \"a8ccharts-LpBZQh\"\n};"],"mappings":"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","names":[]}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
+
var _chunk7OZEQ5HEcjs = require('./chunk-7OZEQ5HE.cjs');
|
|
3
4
|
|
|
4
5
|
|
|
5
|
-
var
|
|
6
|
+
var _chunkH43FBWWZcjs = require('./chunk-H43FBWWZ.cjs');
|
|
6
7
|
|
|
7
8
|
|
|
8
|
-
var _chunk7OZEQ5HEcjs = require('./chunk-7OZEQ5HE.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunk3Z526IL2cjs = require('./chunk-3Z526IL2.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkFX2PTUFCcjs = require('./chunk-FX2PTUFC.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkSLF2F4AOcjs = require('./chunk-SLF2F4AO.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -27,7 +27,7 @@ var _chunkMFROL3SYcjs = require('./chunk-MFROL3SY.cjs');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _chunkP6GF5KEQcjs = require('./chunk-P6GF5KEQ.cjs');
|
|
31
31
|
|
|
32
32
|
// src/components/pie-chart/pie-chart.tsx
|
|
33
33
|
var _group = require('@visx/group');
|
|
@@ -75,17 +75,17 @@ var PieChartInternal = ({
|
|
|
75
75
|
legendValueDisplay = "percentage",
|
|
76
76
|
children = null
|
|
77
77
|
}) => {
|
|
78
|
-
const providerTheme =
|
|
79
|
-
const chartId =
|
|
80
|
-
const [legendRef, legendHeight] =
|
|
81
|
-
const { onMouseMove, onMouseLeave, tooltipOpen, tooltipData, tooltipLeft, tooltipTop } =
|
|
78
|
+
const providerTheme = _chunkP6GF5KEQcjs.useGlobalChartsTheme.call(void 0, );
|
|
79
|
+
const chartId = _chunkP6GF5KEQcjs.useChartId.call(void 0, providedChartId);
|
|
80
|
+
const [legendRef, legendHeight] = _chunkP6GF5KEQcjs.useElementHeight.call(void 0, );
|
|
81
|
+
const { onMouseMove, onMouseLeave, tooltipOpen, tooltipData, tooltipLeft, tooltipTop } = _chunkP6GF5KEQcjs.useChartMouseHandler.call(void 0, {
|
|
82
82
|
withTooltips
|
|
83
83
|
});
|
|
84
84
|
const legendOptions = _react.useMemo.call(void 0,
|
|
85
85
|
() => ({ showValues: true, legendValueDisplay }),
|
|
86
86
|
[legendValueDisplay]
|
|
87
87
|
);
|
|
88
|
-
const legendItems =
|
|
88
|
+
const legendItems = _chunkSLF2F4AOcjs.useChartLegendItems.call(void 0, data, legendOptions);
|
|
89
89
|
const { isValid, message } = validateData(data);
|
|
90
90
|
const { svgChildren, htmlChildren, otherChildren } = _chunk3Z526IL2cjs.useChartChildren.call(void 0, children, "PieChart");
|
|
91
91
|
const chartMetadata = _react.useMemo.call(void 0,
|
|
@@ -96,14 +96,14 @@ var PieChartInternal = ({
|
|
|
96
96
|
}),
|
|
97
97
|
[thickness, gapScale, cornerScale]
|
|
98
98
|
);
|
|
99
|
-
|
|
99
|
+
_chunkP6GF5KEQcjs.useChartRegistration.call(void 0, {
|
|
100
100
|
chartId,
|
|
101
101
|
legendItems,
|
|
102
102
|
chartType: "pie",
|
|
103
103
|
isDataValid: isValid,
|
|
104
104
|
metadata: chartMetadata
|
|
105
105
|
});
|
|
106
|
-
const { resolveGroupColor } =
|
|
106
|
+
const { resolveGroupColor } = _chunkP6GF5KEQcjs.useGlobalChartsContext.call(void 0, );
|
|
107
107
|
if (!isValid) {
|
|
108
108
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _clsx2.default.call(void 0, "pie-chart", pie_chart_module_default["pie-chart"], className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: pie_chart_module_default["error-message"], children: message }) });
|
|
109
109
|
}
|
|
@@ -128,7 +128,7 @@ var PieChartInternal = ({
|
|
|
128
128
|
fill: ({ group, index, color: overrideColor }) => resolveGroupColor({ group, index, overrideColor })
|
|
129
129
|
};
|
|
130
130
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
131
|
-
|
|
131
|
+
_chunkSLF2F4AOcjs.SingleChartContext.Provider,
|
|
132
132
|
{
|
|
133
133
|
value: {
|
|
134
134
|
chartId,
|
|
@@ -219,7 +219,7 @@ var PieChartInternal = ({
|
|
|
219
219
|
}
|
|
220
220
|
),
|
|
221
221
|
showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
222
|
-
|
|
222
|
+
_chunkSLF2F4AOcjs.Legend,
|
|
223
223
|
{
|
|
224
224
|
orientation: legendOrientation,
|
|
225
225
|
position: legendPosition,
|
|
@@ -250,22 +250,22 @@ var PieChartInternal = ({
|
|
|
250
250
|
);
|
|
251
251
|
};
|
|
252
252
|
var PieChartWithProvider = (props) => {
|
|
253
|
-
const existingContext = _react.useContext.call(void 0,
|
|
253
|
+
const existingContext = _react.useContext.call(void 0, _chunkP6GF5KEQcjs.GlobalChartsContext);
|
|
254
254
|
if (existingContext) {
|
|
255
255
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PieChartInternal, { ...props });
|
|
256
256
|
}
|
|
257
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
257
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6GF5KEQcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PieChartInternal, { ...props }) });
|
|
258
258
|
};
|
|
259
259
|
PieChartWithProvider.displayName = "PieChart";
|
|
260
|
-
var PieChart =
|
|
261
|
-
Legend:
|
|
260
|
+
var PieChart = _chunkP6GF5KEQcjs.attachSubComponents.call(void 0, PieChartWithProvider, {
|
|
261
|
+
Legend: _chunkSLF2F4AOcjs.Legend,
|
|
262
262
|
SVG: _chunk3Z526IL2cjs.ChartSVG,
|
|
263
263
|
HTML: _chunk3Z526IL2cjs.ChartHTML
|
|
264
264
|
});
|
|
265
|
-
var PieChartResponsive =
|
|
265
|
+
var PieChartResponsive = _chunkP6GF5KEQcjs.attachSubComponents.call(void 0,
|
|
266
266
|
_chunkFX2PTUFCcjs.withResponsive.call(void 0, PieChartWithProvider),
|
|
267
267
|
{
|
|
268
|
-
Legend:
|
|
268
|
+
Legend: _chunkSLF2F4AOcjs.Legend,
|
|
269
269
|
SVG: _chunk3Z526IL2cjs.ChartSVG,
|
|
270
270
|
HTML: _chunk3Z526IL2cjs.ChartHTML
|
|
271
271
|
}
|
|
@@ -275,4 +275,4 @@ var PieChartResponsive = _chunkBS3VZTWUcjs.attachSubComponents.call(void 0,
|
|
|
275
275
|
|
|
276
276
|
|
|
277
277
|
exports.PieChart = PieChart; exports.PieChartResponsive = PieChartResponsive;
|
|
278
|
-
//# sourceMappingURL=chunk-
|
|
278
|
+
//# sourceMappingURL=chunk-HKI6ASFW.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-HKI6ASFW.cjs","../src/components/pie-chart/pie-chart.tsx","../src/components/pie-chart/pie-chart.module.scss"],"names":[],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-HKI6ASFW.cjs","sourcesContent":[null,"import { Group } from '@visx/group';\nimport { Pie } from '@visx/shape';\nimport clsx from 'clsx';\nimport { useContext, useMemo } from 'react';\nimport { useChartMouseHandler, useElementHeight } from '../../hooks';\nimport {\n\tGlobalChartsProvider,\n\tuseChartId,\n\tuseChartRegistration,\n\tuseGlobalChartsContext,\n\tuseGlobalChartsTheme,\n\tGlobalChartsContext,\n} from '../../providers';\nimport { attachSubComponents } from '../../utils';\nimport { getStringWidth } from '../../visx/text';\nimport { Legend, useChartLegendItems } from '../legend';\nimport { ChartSVG, ChartHTML, useChartChildren } from '../private/chart-composition';\nimport { SingleChartContext } from '../private/single-chart-context';\nimport { withResponsive, ResponsiveConfig } from '../private/with-responsive';\nimport { BaseTooltip } from '../tooltip';\nimport styles from './pie-chart.module.scss';\nimport type { BaseChartProps, DataPointPercentage, Optional } from '../../types';\nimport type { LegendValueDisplay } from '../legend';\nimport type { ChartComponentWithComposition } from '../private/chart-composition';\nimport type { SVGProps, MouseEvent, ReactNode, FC } from 'react';\n\nexport interface PieChartProps extends BaseChartProps< DataPointPercentage[] > {\n\t/**\n\t * Inner radius in pixels. If > 0, creates a donut chart. Defaults to 0.\n\t */\n\tinnerRadius?: number;\n\n\t/**\n\t * Add padding to the chart\n\t */\n\tpadding?: number;\n\n\t/**\n\t * Thickness of the pie chart.\n\t * A value between 0 and 1, where 0 means no thickness\n\t * and 1 means the maximum thickness.\n\t */\n\tthickness?: number;\n\n\t/**\n\t * Scale of the gap between groups in the pie chart\n\t * A value between 0 and 1, where 0 means no gap.\n\t */\n\tgapScale?: number;\n\n\t/**\n\t * Scale of the corner radius for the pie chart segments.\n\t * A value between 0 and 1, where 0 means no corner radius.\n\t */\n\tcornerScale?: number;\n\n\t/**\n\t * Whether to show labels on pie segments. Defaults to true.\n\t */\n\tshowLabels?: boolean;\n\n\t/**\n\t * What type of value to display in the legend when showValues is true.\n\t * - 'percentage': Shows percentage values (e.g., \"23%\") [default]\n\t * - 'value': Shows raw numeric values (e.g., \"30000\")\n\t * - 'valueDisplay': Shows formatted values (e.g., \"30K\")\n\t * - 'none': Shows no values, only labels\n\t */\n\tlegendValueDisplay?: LegendValueDisplay;\n\n\t/**\n\t * Use the children prop to render additional elements on the chart.\n\t */\n\tchildren?: ReactNode;\n}\n\n// Base props type with optional responsive properties\ntype PieChartBaseProps = Optional< PieChartProps, 'size' >;\n\n// Composition API types\ntype PieChartComponent = ChartComponentWithComposition< PieChartBaseProps >;\ntype PieChartResponsiveComponent = ChartComponentWithComposition<\n\tPieChartBaseProps & ResponsiveConfig\n>;\n\n/**\n * Validates the pie chart data\n * @param data - The data to validate\n * @return Object containing validation result and error message\n */\nconst validateData = ( data: DataPointPercentage[] ) => {\n\tif ( ! data.length ) {\n\t\treturn { isValid: false, message: 'No data available' };\n\t}\n\n\t// Check for negative values\n\tconst hasNegativeValues = data.some( item => item.percentage < 0 || item.value < 0 );\n\tif ( hasNegativeValues ) {\n\t\treturn { isValid: false, message: 'Invalid data: Negative values are not allowed' };\n\t}\n\n\t// Validate total percentage\n\tconst totalPercentage = data.reduce( ( sum, item ) => sum + item.percentage, 0 );\n\tif ( Math.abs( totalPercentage - 100 ) > 0.01 ) {\n\t\t// Using small epsilon for floating point comparison\n\t\treturn { isValid: false, message: 'Invalid percentage total: Must equal 100' };\n\t}\n\n\treturn { isValid: true, message: '' };\n};\n\n/**\n * Renders a pie or donut chart using the provided data.\n *\n * @param {PieChartProps} props - Component props\n * @return {JSX.Element} The rendered chart component\n */\nconst PieChartInternal = ( {\n\tdata,\n\tchartId: providedChartId,\n\twithTooltips = false,\n\tclassName,\n\tshowLegend = false,\n\tlegendOrientation = 'horizontal',\n\tlegendPosition = 'bottom',\n\tlegendAlignment = 'center',\n\tlegendShape = 'circle',\n\tsize,\n\tthickness = 1,\n\tpadding = 20,\n\tgapScale = 0,\n\tcornerScale = 0,\n\tshowLabels = true,\n\tlegendValueDisplay = 'percentage',\n\tchildren = null,\n}: PieChartProps ) => {\n\tconst providerTheme = useGlobalChartsTheme();\n\tconst chartId = useChartId( providedChartId );\n\tconst [ legendRef, legendHeight ] = useElementHeight< HTMLDivElement >();\n\tconst { onMouseMove, onMouseLeave, tooltipOpen, tooltipData, tooltipLeft, tooltipTop } =\n\t\tuseChartMouseHandler( {\n\t\t\twithTooltips,\n\t\t} );\n\n\t// Memoize legend options to prevent unnecessary re-calculations\n\tconst legendOptions = useMemo(\n\t\t() => ( { showValues: true, legendValueDisplay } ),\n\t\t[ legendValueDisplay ]\n\t);\n\n\t// Create legend items using the reusable hook\n\tconst legendItems = useChartLegendItems( data, legendOptions );\n\n\tconst { isValid, message } = validateData( data );\n\n\t// Process children to extract compound components\n\tconst { svgChildren, htmlChildren, otherChildren } = useChartChildren( children, 'PieChart' );\n\n\t// Memoize metadata to prevent unnecessary re-registration\n\tconst chartMetadata = useMemo(\n\t\t() => ( {\n\t\t\tthickness,\n\t\t\tgapScale,\n\t\t\tcornerScale,\n\t\t} ),\n\t\t[ thickness, gapScale, cornerScale ]\n\t);\n\n\t// Register chart with context only if data is valid\n\tuseChartRegistration( {\n\t\tchartId,\n\t\tlegendItems,\n\t\tchartType: 'pie',\n\t\tisDataValid: isValid,\n\t\tmetadata: chartMetadata,\n\t} );\n\n\tconst { resolveGroupColor } = useGlobalChartsContext();\n\n\tif ( ! isValid ) {\n\t\treturn (\n\t\t\t<div className={ clsx( 'pie-chart', styles[ 'pie-chart' ], className ) }>\n\t\t\t\t<div className={ styles[ 'error-message' ] }>{ message }</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst width = size;\n\tconst height = size;\n\tconst adjustedHeight = showLegend && legendPosition === 'top' ? height - legendHeight : height;\n\n\t// Calculate radius based on width/height\n\tconst radius = Math.min( width, adjustedHeight ) / 2;\n\n\t// Center the chart in the available space\n\tconst centerX = width / 2;\n\tconst centerY = adjustedHeight / 2;\n\n\t// Calculate the angle between each\n\tconst padAngle = gapScale * ( ( 2 * Math.PI ) / data.length );\n\n\tconst outerRadius = radius - padding;\n\tconst innerRadius = thickness === 0 ? 0 : outerRadius * ( 1 - thickness );\n\n\tconst maxCornerRadius = ( outerRadius - innerRadius ) / 2;\n\tconst cornerRadius = cornerScale ? Math.min( cornerScale * outerRadius, maxCornerRadius ) : 0;\n\n\t// Map the data to include index for color assignment\n\tconst dataWithIndex = data.map( ( d, index ) => ( {\n\t\t...d,\n\t\tindex,\n\t} ) );\n\n\tconst accessors = {\n\t\tvalue: ( d: DataPointPercentage ) => d.value,\n\t\t// Use the color property from the data object as a last resort. The theme provides colours by default.\n\t\tfill: ( { group, index, color: overrideColor }: DataPointPercentage & { index: number } ) =>\n\t\t\tresolveGroupColor( { group, index, overrideColor } ),\n\t};\n\n\treturn (\n\t\t<SingleChartContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tchartId,\n\t\t\t\tchartWidth: width,\n\t\t\t\tchartHeight: adjustedHeight,\n\t\t\t} }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'pie-chart', styles[ 'pie-chart' ], className ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: showLegend && legendPosition === 'top' ? 'column-reverse' : 'column',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\tviewBox={ `0 0 ${ width } ${ adjustedHeight }` }\n\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ adjustedHeight }\n\t\t\t\t>\n\t\t\t\t\t<Group top={ centerY } left={ centerX }>\n\t\t\t\t\t\t<Pie< DataPointPercentage & { index: number } >\n\t\t\t\t\t\t\tdata={ dataWithIndex }\n\t\t\t\t\t\t\tpieValue={ accessors.value }\n\t\t\t\t\t\t\touterRadius={ outerRadius }\n\t\t\t\t\t\t\tinnerRadius={ innerRadius }\n\t\t\t\t\t\t\tpadAngle={ padAngle }\n\t\t\t\t\t\t\tcornerRadius={ cornerRadius }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ pie => {\n\t\t\t\t\t\t\t\treturn pie.arcs.map( ( arc, index ) => {\n\t\t\t\t\t\t\t\t\tconst [ centroidX, centroidY ] = pie.path.centroid( arc );\n\t\t\t\t\t\t\t\t\tconst hasSpaceForLabel = arc.endAngle - arc.startAngle >= 0.25;\n\t\t\t\t\t\t\t\t\tconst handleMouseMove = ( event: MouseEvent< SVGElement > ) =>\n\t\t\t\t\t\t\t\t\t\tonMouseMove( event, arc.data );\n\n\t\t\t\t\t\t\t\t\tconst pathProps: SVGProps< SVGPathElement > = {\n\t\t\t\t\t\t\t\t\t\td: pie.path( arc ) || '',\n\t\t\t\t\t\t\t\t\t\tfill: accessors.fill( arc.data ),\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tif ( withTooltips ) {\n\t\t\t\t\t\t\t\t\t\tpathProps.onMouseMove = handleMouseMove;\n\t\t\t\t\t\t\t\t\t\tpathProps.onMouseLeave = onMouseLeave;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Estimate text width more accurately for background sizing\n\t\t\t\t\t\t\t\t\tconst fontSize = 12;\n\t\t\t\t\t\t\t\t\tconst estimatedTextWidth = getStringWidth( arc.data.label, { fontSize } );\n\t\t\t\t\t\t\t\t\tconst labelPadding = 6;\n\t\t\t\t\t\t\t\t\tconst backgroundWidth = estimatedTextWidth + labelPadding * 2;\n\t\t\t\t\t\t\t\t\tconst backgroundHeight = fontSize + labelPadding * 2;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<g key={ `arc-${ index }` }>\n\t\t\t\t\t\t\t\t\t\t\t<path { ...pathProps } />\n\t\t\t\t\t\t\t\t\t\t\t{ showLabels && hasSpaceForLabel && (\n\t\t\t\t\t\t\t\t\t\t\t\t<g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ providerTheme.labelBackgroundColor && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx={ centroidX - backgroundWidth / 2 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ty={ centroidY - backgroundHeight / 2 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth={ backgroundWidth }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight={ backgroundHeight }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill={ providerTheme.labelBackgroundColor }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trx={ 4 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\try={ 4 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpointerEvents=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t<text\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx={ centroidX }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ty={ centroidY }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdy=\".33em\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill={ providerTheme.labelTextColor || '#333' }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize={ fontSize }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextAnchor=\"middle\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpointerEvents=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ arc.data.label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</text>\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t</Pie>\n\n\t\t\t\t\t\t{ /* Render SVG children (like Group, Text) inside the SVG */ }\n\t\t\t\t\t\t{ svgChildren }\n\t\t\t\t\t</Group>\n\t\t\t\t</svg>\n\n\t\t\t\t{ showLegend && (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\torientation={ legendOrientation }\n\t\t\t\t\t\tposition={ legendPosition }\n\t\t\t\t\t\talignment={ legendAlignment }\n\t\t\t\t\t\tclassName={ styles[ 'pie-chart-legend' ] }\n\t\t\t\t\t\tshape={ legendShape }\n\t\t\t\t\t\tref={ legendRef }\n\t\t\t\t\t\tchartId={ chartId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ withTooltips && tooltipOpen && tooltipData && (\n\t\t\t\t\t<BaseTooltip\n\t\t\t\t\t\tdata={ tooltipData }\n\t\t\t\t\t\ttop={ tooltipTop || 0 }\n\t\t\t\t\t\tleft={ tooltipLeft || 0 }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\ttransform: 'translate(-50%, -100%)',\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Render HTML component children from PieChart.HTML */ }\n\t\t\t\t{ htmlChildren }\n\n\t\t\t\t{ /* Render other React children for backward compatibility */ }\n\t\t\t\t{ otherChildren }\n\t\t\t</div>\n\t\t</SingleChartContext.Provider>\n\t);\n};\n\nconst PieChartWithProvider: FC< PieChartProps > = props => {\n\tconst existingContext = useContext( GlobalChartsContext );\n\n\t// If we're already in a GlobalChartsProvider context, don't create a new one\n\tif ( existingContext ) {\n\t\treturn <PieChartInternal { ...props } />;\n\t}\n\n\t// Otherwise, create our own GlobalChartsProvider\n\treturn (\n\t\t<GlobalChartsProvider>\n\t\t\t<PieChartInternal { ...props } />\n\t\t</GlobalChartsProvider>\n\t);\n};\n\nPieChartWithProvider.displayName = 'PieChart';\n\n// Create PieChart with composition API\nconst PieChart = attachSubComponents( PieChartWithProvider, {\n\tLegend: Legend,\n\tSVG: ChartSVG,\n\tHTML: ChartHTML,\n} ) as PieChartComponent;\n\n// Create responsive PieChart with composition API\nconst PieChartResponsive = attachSubComponents(\n\twithResponsive< PieChartProps >( PieChartWithProvider ),\n\t{\n\t\tLegend: Legend,\n\t\tSVG: ChartSVG,\n\t\tHTML: ChartHTML,\n\t}\n) as PieChartResponsiveComponent;\n\nexport { PieChartResponsive as default, PieChart as PieChartUnresponsive };\n","import 'css-chunk:src/components/pie-chart/pie-chart.module.scss';export default {\n \"pie-chart\": \"a8ccharts-R12VhH\"\n};"]}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
+
var _chunk3Z526IL2cjs = require('./chunk-3Z526IL2.cjs');
|
|
3
4
|
|
|
4
5
|
|
|
6
|
+
var _chunkFX2PTUFCcjs = require('./chunk-FX2PTUFC.cjs');
|
|
5
7
|
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
|
|
10
|
+
var _chunkSLF2F4AOcjs = require('./chunk-SLF2F4AO.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
var _chunkP6GF5KEQcjs = require('./chunk-P6GF5KEQ.cjs');
|
|
8
21
|
|
|
9
22
|
|
|
10
23
|
|
|
@@ -4132,9 +4145,65 @@ var Grid = contextConnect(UnconnectedGrid, "Grid");
|
|
|
4132
4145
|
var component_default6 = Grid;
|
|
4133
4146
|
|
|
4134
4147
|
// src/components/leaderboard-chart/leaderboard-chart.tsx
|
|
4148
|
+
var _i18n = require('@wordpress/i18n');
|
|
4135
4149
|
var _clsx = require('clsx'); var _clsx2 = _interopRequireDefault(_clsx);
|
|
4136
4150
|
|
|
4137
4151
|
|
|
4152
|
+
// src/components/leaderboard-chart/hooks/use-leaderboard-legend-items.ts
|
|
4153
|
+
|
|
4154
|
+
|
|
4155
|
+
function useLeaderboardLegendItems({
|
|
4156
|
+
data,
|
|
4157
|
+
primaryColor,
|
|
4158
|
+
secondaryColor,
|
|
4159
|
+
withComparison = false,
|
|
4160
|
+
withOverlayLabel = false,
|
|
4161
|
+
legendLabels
|
|
4162
|
+
}) {
|
|
4163
|
+
const { leaderboardChart: leaderboardChartSettings } = _chunkP6GF5KEQcjs.useGlobalChartsTheme.call(void 0, );
|
|
4164
|
+
const { resolveGroupColor } = _chunkP6GF5KEQcjs.useGlobalChartsContext.call(void 0, );
|
|
4165
|
+
return _react.useMemo.call(void 0, () => {
|
|
4166
|
+
if (!data || data.length === 0) {
|
|
4167
|
+
return [];
|
|
4168
|
+
}
|
|
4169
|
+
const items = [];
|
|
4170
|
+
const resolvedPrimaryColor = resolveGroupColor({
|
|
4171
|
+
index: 0,
|
|
4172
|
+
overrideColor: primaryColor || leaderboardChartSettings.primaryColor
|
|
4173
|
+
});
|
|
4174
|
+
items.push({
|
|
4175
|
+
label: _optionalChain([legendLabels, 'optionalAccess', _12 => _12.primary]) || _i18n.__.call(void 0, "Current period", "jetpack-charts"),
|
|
4176
|
+
value: "",
|
|
4177
|
+
color: resolvedPrimaryColor,
|
|
4178
|
+
index: 0,
|
|
4179
|
+
overrideColor: primaryColor
|
|
4180
|
+
});
|
|
4181
|
+
if (withComparison && !withOverlayLabel) {
|
|
4182
|
+
const resolvedSecondaryColor = resolveGroupColor({
|
|
4183
|
+
index: 1,
|
|
4184
|
+
overrideColor: secondaryColor || leaderboardChartSettings.secondaryColor
|
|
4185
|
+
});
|
|
4186
|
+
items.push({
|
|
4187
|
+
label: _optionalChain([legendLabels, 'optionalAccess', _13 => _13.comparison]) || _i18n.__.call(void 0, "Previous period", "jetpack-charts"),
|
|
4188
|
+
value: "",
|
|
4189
|
+
color: resolvedSecondaryColor,
|
|
4190
|
+
index: 1,
|
|
4191
|
+
overrideColor: secondaryColor
|
|
4192
|
+
});
|
|
4193
|
+
}
|
|
4194
|
+
return items;
|
|
4195
|
+
}, [
|
|
4196
|
+
data,
|
|
4197
|
+
primaryColor,
|
|
4198
|
+
secondaryColor,
|
|
4199
|
+
withComparison,
|
|
4200
|
+
legendLabels,
|
|
4201
|
+
leaderboardChartSettings,
|
|
4202
|
+
resolveGroupColor,
|
|
4203
|
+
withOverlayLabel
|
|
4204
|
+
]);
|
|
4205
|
+
}
|
|
4206
|
+
|
|
4138
4207
|
// src/components/leaderboard-chart/leaderboard-chart.module.scss
|
|
4139
4208
|
var leaderboard_chart_module_default = {
|
|
4140
4209
|
"leaderboardChart": "a8ccharts-zxakPT",
|
|
@@ -4151,13 +4220,13 @@ var leaderboard_chart_module_default = {
|
|
|
4151
4220
|
// src/components/leaderboard-chart/leaderboard-chart.tsx
|
|
4152
4221
|
|
|
4153
4222
|
var defaultValueFormatter = (value) => {
|
|
4154
|
-
return
|
|
4223
|
+
return _chunkP6GF5KEQcjs.formatMetricValue.call(void 0, value, "number", {
|
|
4155
4224
|
useMultipliers: true,
|
|
4156
4225
|
decimals: 1
|
|
4157
4226
|
});
|
|
4158
4227
|
};
|
|
4159
4228
|
var defaultDeltaFormatter = (value) => {
|
|
4160
|
-
return
|
|
4229
|
+
return _chunkP6GF5KEQcjs.formatMetricValue.call(void 0, value / 100, "average", {
|
|
4161
4230
|
decimals: 0,
|
|
4162
4231
|
signDisplay: "exceptZero"
|
|
4163
4232
|
});
|
|
@@ -4202,6 +4271,7 @@ var BarWithLabel = ({
|
|
|
4202
4271
|
);
|
|
4203
4272
|
var LeaderboardChartInternal = ({
|
|
4204
4273
|
data,
|
|
4274
|
+
chartId: providedChartId,
|
|
4205
4275
|
withComparison = false,
|
|
4206
4276
|
withOverlayLabel = false,
|
|
4207
4277
|
primaryColor,
|
|
@@ -4209,10 +4279,21 @@ var LeaderboardChartInternal = ({
|
|
|
4209
4279
|
valueFormatter = defaultValueFormatter,
|
|
4210
4280
|
deltaFormatter = defaultDeltaFormatter,
|
|
4211
4281
|
loading = false,
|
|
4282
|
+
showLegend = false,
|
|
4283
|
+
legendOrientation = "horizontal",
|
|
4284
|
+
legendPosition = "bottom",
|
|
4285
|
+
legendAlignment = "center",
|
|
4286
|
+
legendShape = "circle",
|
|
4287
|
+
legendShapeWidth = 8,
|
|
4288
|
+
legendShapeHeight = 8,
|
|
4289
|
+
legendLabels,
|
|
4212
4290
|
className,
|
|
4213
|
-
style
|
|
4291
|
+
style,
|
|
4292
|
+
children
|
|
4214
4293
|
}) => {
|
|
4215
|
-
const
|
|
4294
|
+
const chartId = _chunkP6GF5KEQcjs.useChartId.call(void 0, providedChartId);
|
|
4295
|
+
const { leaderboardChart: leaderboardChartSettings } = _chunkP6GF5KEQcjs.useGlobalChartsTheme.call(void 0, );
|
|
4296
|
+
const { otherChildren } = _chunk3Z526IL2cjs.useChartChildren.call(void 0, children, "LeaderboardChart");
|
|
4216
4297
|
const {
|
|
4217
4298
|
labelSpacing,
|
|
4218
4299
|
rowGap,
|
|
@@ -4221,7 +4302,7 @@ var LeaderboardChartInternal = ({
|
|
|
4221
4302
|
secondaryColor: settingsSecondaryColor,
|
|
4222
4303
|
deltaColors
|
|
4223
4304
|
} = leaderboardChartSettings;
|
|
4224
|
-
const { resolveGroupColor } =
|
|
4305
|
+
const { resolveGroupColor } = _chunkP6GF5KEQcjs.useGlobalChartsContext.call(void 0, );
|
|
4225
4306
|
const resolvedPrimaryColor = resolveGroupColor({
|
|
4226
4307
|
index: 0,
|
|
4227
4308
|
overrideColor: primaryColor || settingsPrimaryColor
|
|
@@ -4230,67 +4311,155 @@ var LeaderboardChartInternal = ({
|
|
|
4230
4311
|
index: 1,
|
|
4231
4312
|
overrideColor: secondaryColor || settingsSecondaryColor
|
|
4232
4313
|
});
|
|
4314
|
+
const legendItems = useLeaderboardLegendItems({
|
|
4315
|
+
data: data || [],
|
|
4316
|
+
primaryColor,
|
|
4317
|
+
secondaryColor,
|
|
4318
|
+
withComparison,
|
|
4319
|
+
withOverlayLabel,
|
|
4320
|
+
legendLabels
|
|
4321
|
+
});
|
|
4322
|
+
const isDataValid = Boolean(data && data.length > 0);
|
|
4323
|
+
const chartMetadata = _react.useMemo.call(void 0,
|
|
4324
|
+
() => ({
|
|
4325
|
+
withComparison,
|
|
4326
|
+
withOverlayLabel
|
|
4327
|
+
}),
|
|
4328
|
+
[withComparison, withOverlayLabel]
|
|
4329
|
+
);
|
|
4330
|
+
_chunkP6GF5KEQcjs.useChartRegistration.call(void 0, {
|
|
4331
|
+
chartId,
|
|
4332
|
+
legendItems,
|
|
4333
|
+
chartType: "leaderboard",
|
|
4334
|
+
isDataValid,
|
|
4335
|
+
metadata: chartMetadata
|
|
4336
|
+
});
|
|
4233
4337
|
if (!data || data.length === 0) {
|
|
4234
4338
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4235
|
-
|
|
4339
|
+
_chunkSLF2F4AOcjs.SingleChartContext.Provider,
|
|
4236
4340
|
{
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4341
|
+
value: {
|
|
4342
|
+
chartId,
|
|
4343
|
+
chartWidth: 0,
|
|
4344
|
+
// LeaderboardChart doesn't need specific dimensions
|
|
4345
|
+
chartHeight: 0
|
|
4346
|
+
},
|
|
4347
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4348
|
+
"div",
|
|
4349
|
+
{
|
|
4350
|
+
className: _clsx2.default.call(void 0, leaderboard_chart_module_default.leaderboardChart, loading && leaderboard_chart_module_default.loading, className),
|
|
4351
|
+
style,
|
|
4352
|
+
children: [
|
|
4353
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: leaderboard_chart_module_default.emptyState, children: loading ? _i18n.__.call(void 0, "Loading\u2026", "jetpack-charts") : _i18n.__.call(void 0, "No data available", "jetpack-charts") }),
|
|
4354
|
+
otherChildren
|
|
4355
|
+
]
|
|
4356
|
+
}
|
|
4357
|
+
)
|
|
4240
4358
|
}
|
|
4241
4359
|
);
|
|
4242
4360
|
}
|
|
4243
4361
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4244
|
-
|
|
4362
|
+
_chunkSLF2F4AOcjs.SingleChartContext.Provider,
|
|
4245
4363
|
{
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4364
|
+
value: {
|
|
4365
|
+
chartId,
|
|
4366
|
+
chartWidth: 0,
|
|
4367
|
+
// LeaderboardChart doesn't need specific dimensions
|
|
4368
|
+
chartHeight: 0
|
|
4369
|
+
},
|
|
4370
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4371
|
+
"div",
|
|
4372
|
+
{
|
|
4373
|
+
className: _clsx2.default.call(void 0, leaderboard_chart_module_default.leaderboardChart, loading && leaderboard_chart_module_default.loading, className),
|
|
4374
|
+
style: {
|
|
4375
|
+
...style,
|
|
4376
|
+
display: "flex",
|
|
4377
|
+
flexDirection: showLegend && legendPosition === "top" ? "column-reverse" : "column",
|
|
4378
|
+
gap: showLegend ? "16px" : "0"
|
|
4379
|
+
},
|
|
4380
|
+
children: [
|
|
4381
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4382
|
+
component_default6,
|
|
4383
|
+
{
|
|
4384
|
+
className: leaderboard_chart_module_default.leaderboardGrid,
|
|
4385
|
+
templateColumns: "minmax(0, 1fr) auto",
|
|
4386
|
+
rowGap,
|
|
4387
|
+
columnGap,
|
|
4388
|
+
style: {
|
|
4389
|
+
flex: 1
|
|
4390
|
+
},
|
|
4391
|
+
children: data.map((entry) => {
|
|
4392
|
+
const colorIndex = Math.sign(entry.delta) + 1;
|
|
4393
|
+
const deltaColor = deltaColors[colorIndex];
|
|
4394
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
|
|
4395
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, component_default5, { spacing: labelSpacing, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4396
|
+
BarWithLabel,
|
|
4397
|
+
{
|
|
4398
|
+
entry,
|
|
4399
|
+
withComparison,
|
|
4400
|
+
withOverlayLabel,
|
|
4401
|
+
primaryColor: resolvedPrimaryColor,
|
|
4402
|
+
secondaryColor: resolvedSecondaryColor
|
|
4403
|
+
}
|
|
4404
|
+
) }),
|
|
4405
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4406
|
+
"div",
|
|
4407
|
+
{
|
|
4408
|
+
className: _clsx2.default.call(void 0, leaderboard_chart_module_default.valueContainer, {
|
|
4409
|
+
[leaderboard_chart_module_default.overlayLabel]: withOverlayLabel
|
|
4410
|
+
}),
|
|
4411
|
+
children: [
|
|
4412
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, component_default4, { children: valueFormatter(entry.currentValue) }),
|
|
4413
|
+
withComparison && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, component_default4, { style: { color: deltaColor }, children: deltaFormatter(entry.delta) })
|
|
4414
|
+
]
|
|
4415
|
+
}
|
|
4416
|
+
)
|
|
4417
|
+
] }, entry.id);
|
|
4418
|
+
})
|
|
4419
|
+
}
|
|
4420
|
+
),
|
|
4421
|
+
showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4422
|
+
_chunkSLF2F4AOcjs.Legend,
|
|
4423
|
+
{
|
|
4424
|
+
orientation: legendOrientation,
|
|
4425
|
+
position: legendPosition,
|
|
4426
|
+
alignment: legendAlignment,
|
|
4427
|
+
shape: legendShape,
|
|
4428
|
+
shapeWidth: legendShapeWidth,
|
|
4429
|
+
shapeHeight: legendShapeHeight,
|
|
4430
|
+
chartId
|
|
4431
|
+
}
|
|
4432
|
+
),
|
|
4433
|
+
otherChildren
|
|
4434
|
+
]
|
|
4435
|
+
}
|
|
4436
|
+
)
|
|
4279
4437
|
}
|
|
4280
4438
|
);
|
|
4281
4439
|
};
|
|
4282
|
-
var
|
|
4283
|
-
const existingContext = _react.useContext.call(void 0,
|
|
4440
|
+
var LeaderboardChartWithProvider = (props) => {
|
|
4441
|
+
const existingContext = _react.useContext.call(void 0, _chunkP6GF5KEQcjs.GlobalChartsContext);
|
|
4284
4442
|
if (existingContext) {
|
|
4285
4443
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LeaderboardChartInternal, { ...props });
|
|
4286
4444
|
}
|
|
4287
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4445
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6GF5KEQcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LeaderboardChartInternal, { ...props }) });
|
|
4288
4446
|
};
|
|
4289
|
-
|
|
4447
|
+
LeaderboardChartWithProvider.displayName = "LeaderboardChart";
|
|
4448
|
+
var LeaderboardChart = _chunkP6GF5KEQcjs.attachSubComponents.call(void 0, LeaderboardChartWithProvider, {
|
|
4449
|
+
Legend: _chunkSLF2F4AOcjs.Legend
|
|
4450
|
+
});
|
|
4451
|
+
var LeaderboardChartResponsive = _chunkP6GF5KEQcjs.attachSubComponents.call(void 0,
|
|
4452
|
+
_chunkFX2PTUFCcjs.withResponsive.call(void 0, LeaderboardChartWithProvider),
|
|
4453
|
+
{
|
|
4454
|
+
Legend: _chunkSLF2F4AOcjs.Legend
|
|
4455
|
+
}
|
|
4456
|
+
);
|
|
4457
|
+
|
|
4458
|
+
|
|
4290
4459
|
|
|
4291
4460
|
|
|
4292
4461
|
|
|
4293
|
-
exports.
|
|
4462
|
+
exports.useLeaderboardLegendItems = useLeaderboardLegendItems; exports.LeaderboardChart = LeaderboardChart; exports.LeaderboardChartResponsive = LeaderboardChartResponsive;
|
|
4294
4463
|
/*! Bundled license information:
|
|
4295
4464
|
|
|
4296
4465
|
react-is/cjs/react-is.production.min.js:
|
|
@@ -4321,4 +4490,4 @@ is-plain-object/dist/is-plain-object.mjs:
|
|
|
4321
4490
|
* Released under the MIT License.
|
|
4322
4491
|
*)
|
|
4323
4492
|
*/
|
|
4324
|
-
//# sourceMappingURL=chunk-
|
|
4493
|
+
//# sourceMappingURL=chunk-JATWMDC6.cjs.map
|