@fluentui/react-charts 9.3.24 → 9.3.26

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.
Files changed (78) hide show
  1. package/CHANGELOG.md +32 -2
  2. package/dist/index.d.cts +35 -0
  3. package/dist/index.d.ts +35 -0
  4. package/lib/components/AreaChart/AreaChart.js +3 -3
  5. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  6. package/lib/components/DeclarativeChart/DeclarativeChart.js +1 -1
  7. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  8. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +5 -4
  9. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  10. package/lib/components/FunnelChart/FunnelChart.js +1 -1
  11. package/lib/components/FunnelChart/FunnelChart.js.map +1 -1
  12. package/lib/components/GanttChart/GanttChart.js +2 -2
  13. package/lib/components/GanttChart/GanttChart.js.map +1 -1
  14. package/lib/components/GaugeChart/GaugeChart.js +22 -10
  15. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  16. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  17. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +3 -3
  18. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  19. package/lib/components/HeatMapChart/HeatMapChart.js +5 -5
  20. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  21. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +1 -1
  22. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  23. package/lib/components/LineChart/LineChart.js +1 -1
  24. package/lib/components/LineChart/LineChart.js.map +1 -1
  25. package/lib/components/PolarChart/PolarChart.js +1 -1
  26. package/lib/components/PolarChart/PolarChart.js.map +1 -1
  27. package/lib/components/SankeyChart/SankeyChart.js +7 -7
  28. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  29. package/lib/components/ScatterChart/ScatterChart.js +1 -1
  30. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  31. package/lib/components/VegaDeclarativeChart/VegaLiteExpressionEvaluator.js +2 -1
  32. package/lib/components/VegaDeclarativeChart/VegaLiteExpressionEvaluator.js.map +1 -1
  33. package/lib/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js +8 -5
  34. package/lib/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js.map +1 -1
  35. package/lib/components/VerticalBarChart/VerticalBarChart.js +1 -1
  36. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  37. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +2 -2
  38. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  39. package/lib/utilities/utilities.js +3 -2
  40. package/lib/utilities/utilities.js.map +1 -1
  41. package/lib-commonjs/components/AreaChart/AreaChart.cjs +3 -3
  42. package/lib-commonjs/components/AreaChart/AreaChart.cjs.map +1 -1
  43. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.cjs +1 -1
  44. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.cjs.map +1 -1
  45. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.cjs +5 -4
  46. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.cjs.map +1 -1
  47. package/lib-commonjs/components/FunnelChart/FunnelChart.cjs +1 -1
  48. package/lib-commonjs/components/FunnelChart/FunnelChart.cjs.map +1 -1
  49. package/lib-commonjs/components/GanttChart/GanttChart.cjs +2 -2
  50. package/lib-commonjs/components/GanttChart/GanttChart.cjs.map +1 -1
  51. package/lib-commonjs/components/GaugeChart/GaugeChart.cjs +22 -10
  52. package/lib-commonjs/components/GaugeChart/GaugeChart.cjs.map +1 -1
  53. package/lib-commonjs/components/GaugeChart/GaugeChart.types.cjs.map +1 -1
  54. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.cjs +3 -3
  55. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.cjs.map +1 -1
  56. package/lib-commonjs/components/HeatMapChart/HeatMapChart.cjs +5 -5
  57. package/lib-commonjs/components/HeatMapChart/HeatMapChart.cjs.map +1 -1
  58. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.cjs +1 -1
  59. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.cjs.map +1 -1
  60. package/lib-commonjs/components/LineChart/LineChart.cjs +1 -1
  61. package/lib-commonjs/components/LineChart/LineChart.cjs.map +1 -1
  62. package/lib-commonjs/components/PolarChart/PolarChart.cjs +1 -1
  63. package/lib-commonjs/components/PolarChart/PolarChart.cjs.map +1 -1
  64. package/lib-commonjs/components/SankeyChart/SankeyChart.cjs +7 -7
  65. package/lib-commonjs/components/SankeyChart/SankeyChart.cjs.map +1 -1
  66. package/lib-commonjs/components/ScatterChart/ScatterChart.cjs +1 -1
  67. package/lib-commonjs/components/ScatterChart/ScatterChart.cjs.map +1 -1
  68. package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteExpressionEvaluator.cjs +2 -1
  69. package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteExpressionEvaluator.cjs.map +1 -1
  70. package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.cjs +8 -5
  71. package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.cjs.map +1 -1
  72. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.cjs +1 -1
  73. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.cjs.map +1 -1
  74. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.cjs +2 -2
  75. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.cjs.map +1 -1
  76. package/lib-commonjs/utilities/utilities.cjs +3 -2
  77. package/lib-commonjs/utilities/utilities.cjs.map +1 -1
  78. package/package.json +9 -9
@@ -134,7 +134,7 @@ const PolarChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
134
134
  props.data
135
135
  ]);
136
136
  const mapCategoryToValues = _react.useCallback((isAngularAxis)=>{
137
- const categoryToValues = {};
137
+ const categoryToValues = Object.create(null);
138
138
  chartData.forEach((series)=>{
139
139
  series.data.forEach((point)=>{
140
140
  const category = isAngularAxis ? point.theta : point.r;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/PolarChart/PolarChart.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { PolarChartProps } from './PolarChart.types';\nimport { usePolarChartStyles } from './usePolarChartStyles.styles';\nimport { useImageExport } from '../../utilities/hooks';\nimport {\n pointRadial as d3PointRadial,\n areaRadial as d3AreaRadial,\n lineRadial as d3LineRadial,\n curveLinearClosed as d3CurveLinearClosed,\n} from 'd3-shape';\nimport type { AreaPolarSeries, LinePolarSeries, PolarDataPoint, ScatterPolarSeries } from '../../types/DataPoint';\nimport { tokens } from '@fluentui/react-theme';\nimport type { Legend } from '../Legends/index';\nimport { Legends } from '../Legends/index';\nimport {\n createRadialScale,\n getContinuousScaleDomain,\n getScaleType,\n EPSILON,\n createAngularScale,\n formatAngle,\n} from './PolarChart.utils';\nimport { ChartPopover } from '../CommonComponents/ChartPopover';\nimport {\n getColorFromToken,\n getCurveFactory,\n getNextColor,\n isPlottable,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { extent as d3Extent } from 'd3-array';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\nconst DEFAULT_LEGEND_HEIGHT = 32;\nconst LABEL_WIDTH = 36;\nconst LABEL_HEIGHT = 16;\nconst LABEL_OFFSET = 10;\nconst TICK_SIZE = 6;\nconst MIN_MARKER_SIZE_PX = 2;\nconst MAX_MARKER_SIZE_PX = 16;\nconst MIN_MARKER_SIZE_PX_MARKERS_ONLY = 4;\n\nexport const PolarChart: React.FunctionComponent<PolarChartProps> = React.forwardRef<HTMLDivElement, PolarChartProps>(\n (props, forwardedRef) => {\n const { chartContainerRef, legendsRef } = useImageExport(props.componentRef, props.hideLegend, false);\n const legendContainerRef = React.useRef<HTMLDivElement>(null);\n const { targetDocument } = useFluent();\n const _window = targetDocument?.defaultView;\n\n const [containerWidth, setContainerWidth] = React.useState<number>(200);\n const [containerHeight, setContainerHeight] = React.useState<number>(200);\n const [legendContainerHeight, setLegendContainerHeight] = React.useState<number>(\n props.hideLegend ? 0 : DEFAULT_LEGEND_HEIGHT,\n );\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const [popoverTarget, setPopoverTarget] = React.useState<SVGElement | null>(null);\n const [popoverXValue, setPopoverXValue] = React.useState<string>('');\n const [popoverLegend, setPopoverLegend] = React.useState<string>('');\n const [popoverColor, setPopoverColor] = React.useState<string>('');\n const [popoverYValue, setPopoverYValue] = React.useState<string>('');\n const [hoveredLegend, setHoveredLegend] = React.useState<string>('');\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [activePoint, setActivePoint] = React.useState<string>('');\n\n React.useEffect(() => {\n if (chartContainerRef.current) {\n const { width, height } = chartContainerRef.current.getBoundingClientRect();\n setContainerWidth(width);\n setContainerHeight(height);\n }\n }, [chartContainerRef]);\n React.useEffect(() => {\n if (props.hideLegend) {\n setLegendContainerHeight(0);\n } else if (legendContainerRef.current) {\n const { height } = legendContainerRef.current.getBoundingClientRect();\n const marginTop = _window?.getComputedStyle(legendContainerRef.current).marginTop || '0px';\n setLegendContainerHeight(Math.max(height, DEFAULT_LEGEND_HEIGHT) + parseFloat(marginTop));\n }\n }, [props.hideLegend, _window]);\n\n React.useEffect(() => {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }, [props.legendProps?.selectedLegends]);\n\n const margins = React.useMemo(\n () => ({\n left: LABEL_OFFSET + LABEL_WIDTH,\n right: LABEL_OFFSET + LABEL_WIDTH,\n top: LABEL_OFFSET + LABEL_HEIGHT,\n bottom: LABEL_OFFSET + LABEL_HEIGHT,\n ...props.margins,\n }),\n [props.margins],\n );\n\n const svgWidth = React.useMemo(() => props.width || containerWidth, [props.width, containerWidth]);\n const svgHeight = React.useMemo(\n () => (props.height || containerHeight) - legendContainerHeight,\n [props.height, containerHeight, legendContainerHeight],\n );\n const outerRadius = React.useMemo(\n () => Math.min(svgWidth - (margins.left + margins.right), svgHeight - (margins.top + margins.bottom)) / 2,\n [svgWidth, svgHeight, margins],\n );\n const innerRadius = React.useMemo(\n () => Math.max(0, Math.min(Math.abs(props.hole || 0), 1)) * outerRadius,\n [props.hole, outerRadius],\n );\n\n const legendColorMap = React.useRef<Record<string, string>>({});\n const chartData = React.useMemo(() => {\n legendColorMap.current = {};\n let colorIndex = 0;\n const renderingOrder = ['areapolar', 'linepolar', 'scatterpolar'];\n\n return props.data\n .map(series => {\n const seriesColor = series.color ? getColorFromToken(series.color) : getNextColor(colorIndex++, 0);\n if (!(series.legend in legendColorMap.current)) {\n legendColorMap.current[series.legend] = seriesColor;\n }\n\n return {\n ...series,\n color: seriesColor,\n data: series.data.map(point => {\n return {\n ...point,\n color: point.color ? getColorFromToken(point.color) : seriesColor,\n };\n }),\n };\n })\n .sort((a, b) => {\n return renderingOrder.indexOf(a.type) - renderingOrder.indexOf(b.type);\n });\n }, [props.data]);\n\n const mapCategoryToValues = React.useCallback(\n (isAngularAxis?: boolean) => {\n const categoryToValues: Record<string, number[]> = {};\n chartData.forEach(series => {\n series.data.forEach(point => {\n const category = (isAngularAxis ? point.theta : point.r) as string;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n const value = isAngularAxis ? point.r : point.theta;\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n });\n return categoryToValues;\n },\n [chartData],\n );\n\n const getOrderedRCategories = React.useCallback(() => {\n return sortAxisCategories(mapCategoryToValues(), props.radialAxis?.categoryOrder);\n }, [mapCategoryToValues, props.radialAxis?.categoryOrder]);\n\n const getOrderedACategories = React.useCallback(() => {\n return sortAxisCategories(mapCategoryToValues(true), props.angularAxis?.categoryOrder);\n }, [mapCategoryToValues, props.angularAxis?.categoryOrder]);\n\n const rValues = React.useMemo(() => chartData.flatMap(series => series.data.map(point => point.r)), [chartData]);\n const rScaleType = React.useMemo(\n () =>\n getScaleType(rValues, {\n scaleType: props.radialAxis?.scaleType,\n supportsLog: true,\n }),\n [rValues, props.radialAxis?.scaleType],\n );\n const rScaleDomain = React.useMemo(\n () =>\n rScaleType === 'category'\n ? getOrderedRCategories()\n : getContinuousScaleDomain(rScaleType, rValues as (number | Date)[], {\n rangeStart: props.radialAxis?.rangeStart,\n rangeEnd: props.radialAxis?.rangeEnd,\n }),\n [getOrderedRCategories, rScaleType, rValues, props.radialAxis?.rangeStart, props.radialAxis?.rangeEnd],\n );\n const {\n scale: rScale,\n tickValues: rTickValues,\n tickLabels: rTickLabels,\n } = React.useMemo(\n () =>\n createRadialScale(rScaleType, rScaleDomain, [innerRadius, outerRadius], {\n useUTC: props.useUTC,\n tickCount: props.radialAxis?.tickCount,\n tickValues: props.radialAxis?.tickValues,\n tickText: props.radialAxis?.tickText,\n tickFormat: props.radialAxis?.tickFormat,\n culture: props.culture,\n tickStep: props.radialAxis?.tickStep,\n tick0: props.radialAxis?.tick0,\n dateLocalizeOptions: props.dateLocalizeOptions,\n }),\n [\n rScaleType,\n rScaleDomain,\n innerRadius,\n outerRadius,\n props.culture,\n props.dateLocalizeOptions,\n props.radialAxis?.tick0,\n props.radialAxis?.tickCount,\n props.radialAxis?.tickFormat,\n props.radialAxis?.tickStep,\n props.radialAxis?.tickText,\n props.radialAxis?.tickValues,\n props.useUTC,\n ],\n );\n\n const aValues = React.useMemo(\n () => chartData.flatMap(series => series.data.map(point => point.theta)),\n [chartData],\n );\n const aScaleType = React.useMemo(\n () =>\n getScaleType(aValues, {\n scaleType: props.angularAxis?.scaleType,\n }),\n [aValues, props.angularAxis?.scaleType],\n );\n const aDomain = React.useMemo(\n () =>\n aScaleType === 'category'\n ? getOrderedACategories()\n : (getContinuousScaleDomain(aScaleType, aValues as number[]) as number[]),\n [getOrderedACategories, aScaleType, aValues],\n );\n const {\n scale: aScale,\n tickValues: aTickValues,\n tickLabels: aTickLabels,\n } = React.useMemo(\n () =>\n createAngularScale(aScaleType, aDomain, {\n tickCount: props.angularAxis?.tickCount,\n tickValues: props.angularAxis?.tickValues,\n tickText: props.angularAxis?.tickText,\n tickFormat: props.angularAxis?.tickFormat,\n culture: props.culture,\n tickStep: props.angularAxis?.tickStep,\n tick0: props.angularAxis?.tick0,\n direction: props.direction,\n unit: props.angularAxis?.unit,\n }),\n [\n aScaleType,\n aDomain,\n props.angularAxis?.tick0,\n props.angularAxis?.tickCount,\n props.angularAxis?.tickFormat,\n props.angularAxis?.tickStep,\n props.angularAxis?.tickText,\n props.angularAxis?.tickValues,\n props.angularAxis?.unit,\n props.culture,\n props.direction,\n ],\n );\n\n const classes = usePolarChartStyles(props);\n\n const renderPolarGrid = React.useCallback(() => {\n const extRTickValues = [];\n const rDomain = rScale.domain();\n if (innerRadius > 0 && rDomain[0] !== rTickValues[0]) {\n extRTickValues.push(rDomain[0]);\n }\n extRTickValues.push(...rTickValues);\n if (rDomain[rDomain.length - 1] !== rTickValues[rTickValues.length - 1]) {\n extRTickValues.push(rDomain[rDomain.length - 1]);\n }\n\n return (\n <g>\n <g>\n {extRTickValues.map((r, rIndex) => {\n const className = rIndex === extRTickValues.length - 1 ? classes.gridLineOuter : classes.gridLineInner;\n\n if (props.shape === 'polygon') {\n let d = '';\n aTickValues.forEach((a, aIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const radialPoint = d3PointRadial(aScale(a), rScale(r as any)!);\n d += (aIndex === 0 ? 'M' : 'L') + radialPoint.join(',') + ' ';\n });\n d += 'Z';\n\n return <path key={rIndex} d={d} className={className} />;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return <circle key={rIndex} cx={0} cy={0} r={rScale(r as any)} className={className} />;\n })}\n </g>\n <g>\n {aTickValues.map((a, aIndex) => {\n const radialPoint1 = d3PointRadial(aScale(a), innerRadius);\n const radialPoint2 = d3PointRadial(aScale(a), outerRadius);\n\n return (\n <path\n key={aIndex}\n d={`M${radialPoint1.join(',')} L${radialPoint2.join(',')}`}\n className={classes.gridLineInner}\n />\n );\n })}\n </g>\n </g>\n );\n }, [\n innerRadius,\n outerRadius,\n rTickValues,\n aTickValues,\n rScale,\n aScale,\n props.shape,\n classes.gridLineInner,\n classes.gridLineOuter,\n ]);\n\n const renderPolarTicks = React.useCallback(() => {\n const radialAxisAngle = props.direction === 'clockwise' ? 0 : Math.PI / 2;\n const radialAxisStartPoint = d3PointRadial(radialAxisAngle, innerRadius);\n const radialAxisEndPoint = d3PointRadial(radialAxisAngle, outerRadius);\n // (0, pi]\n const sign = radialAxisAngle > EPSILON && radialAxisAngle - Math.PI < EPSILON ? 1 : -1;\n\n return (\n <g>\n <g>\n <path\n d={`M${radialAxisStartPoint.join(',')} L${radialAxisEndPoint.join(',')}`}\n className={classes.gridLineOuter}\n />\n {rTickValues.map((r, rIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [pointX, pointY] = d3PointRadial(radialAxisAngle, rScale(r as any)!);\n return (\n <g key={rIndex}>\n <path\n d={`M${pointX},${pointY} L${pointX + TICK_SIZE * Math.cos(radialAxisAngle) * sign},${\n pointY + TICK_SIZE * Math.sin(radialAxisAngle) * sign\n }`}\n className={classes.gridLineOuter}\n />\n <text\n x={pointX + (TICK_SIZE + LABEL_OFFSET) * Math.cos(radialAxisAngle) * sign}\n y={pointY + (TICK_SIZE + LABEL_OFFSET) * Math.sin(radialAxisAngle) * sign}\n textAnchor={\n // pi/2 or 3pi/2\n Math.abs(radialAxisAngle - Math.PI / 2) < EPSILON ||\n Math.abs(radialAxisAngle - (3 * Math.PI) / 2) < EPSILON\n ? 'middle'\n : // (0, pi/2) or (pi, 3pi/2)\n (radialAxisAngle > EPSILON && radialAxisAngle - Math.PI / 2 < -EPSILON) ||\n (radialAxisAngle - Math.PI > EPSILON && radialAxisAngle - (3 * Math.PI) / 2 < -EPSILON)\n ? 'start'\n : 'end'\n }\n dominantBaseline=\"middle\"\n aria-hidden={true}\n className={classes.tickLabel}\n >\n {rTickLabels[rIndex]}\n </text>\n </g>\n );\n })}\n </g>\n <g>\n {aTickValues.map((a, aIndex) => {\n const angle = aScale(a);\n const [pointX, pointY] = d3PointRadial(angle, outerRadius + LABEL_OFFSET);\n\n return (\n <text\n key={aIndex}\n x={pointX}\n y={pointY}\n textAnchor={\n Math.abs(angle) < EPSILON || Math.abs(angle - Math.PI) < EPSILON\n ? 'middle'\n : angle > Math.PI\n ? 'end'\n : 'start'\n }\n dominantBaseline=\"middle\"\n aria-hidden={true}\n className={classes.tickLabel}\n >\n {aTickLabels[aIndex]}\n </text>\n );\n })}\n </g>\n </g>\n );\n }, [\n rTickValues,\n aTickValues,\n rScale,\n aScale,\n outerRadius,\n classes.gridLineOuter,\n classes.tickLabel,\n aTickLabels,\n innerRadius,\n rTickLabels,\n props.direction,\n ]);\n\n const getActiveLegends = React.useCallback(() => {\n return selectedLegends.length > 0 ? selectedLegends : hoveredLegend ? [hoveredLegend] : [];\n }, [selectedLegends, hoveredLegend]);\n\n const legendHighlighted = React.useCallback(\n (legendTitle: string) => {\n const activeLegends = getActiveLegends();\n return activeLegends.includes(legendTitle) || activeLegends.length === 0;\n },\n [getActiveLegends],\n );\n\n const renderRadialArea = React.useCallback(\n (series: AreaPolarSeries) => {\n const radialArea = d3AreaRadial<PolarDataPoint>()\n .angle(d => aScale(d.theta))\n .innerRadius(innerRadius)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .outerRadius(d => rScale(d.r as any)!)\n .curve(getCurveFactory(series.lineOptions?.curve, d3CurveLinearClosed))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .defined(d => isPlottable(aScale(d.theta), rScale(d.r as any)));\n const shouldHighlight = legendHighlighted(series.legend);\n\n return (\n <path\n d={radialArea(series.data)!}\n fill={series.color}\n fillOpacity={shouldHighlight ? 0.7 : 0.1}\n pointerEvents=\"none\"\n />\n );\n },\n [innerRadius, rScale, aScale, legendHighlighted],\n );\n\n const renderRadialLine = React.useCallback(\n (series: AreaPolarSeries | LinePolarSeries) => {\n const radialLine = d3LineRadial<PolarDataPoint>()\n .angle(d => aScale(d.theta))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .radius(d => rScale(d.r as any)!)\n .curve(getCurveFactory(series.lineOptions?.curve))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .defined(d => isPlottable(aScale(d.theta), rScale(d.r as any)));\n\n return (\n <path\n d={radialLine(series.data)!}\n fill=\"none\"\n stroke={series.color}\n strokeOpacity={legendHighlighted(series.legend) ? 1 : 0.1}\n strokeWidth={series.lineOptions?.strokeWidth ?? 3}\n strokeDasharray={series.lineOptions?.strokeDasharray}\n strokeDashoffset={series.lineOptions?.strokeDashoffset}\n strokeLinecap={series.lineOptions?.strokeLinecap}\n pointerEvents=\"none\"\n />\n );\n },\n [rScale, aScale, legendHighlighted],\n );\n\n const [minMarkerSize, maxMarkerSize] = React.useMemo(\n () => d3Extent<number>(chartData.flatMap(series => series.data.map(point => point.markerSize as number))),\n [chartData],\n );\n\n const showPopover = React.useCallback(\n (\n event: React.MouseEvent<SVGElement> | React.FocusEvent<SVGElement>,\n point: PolarDataPoint,\n pointId: string,\n legend: string,\n ) => {\n setPopoverTarget(event.currentTarget);\n setPopoverOpen(legendHighlighted(legend));\n setPopoverXValue(point.angularAxisCalloutData ?? formatAngle(point.theta, props.angularAxis?.unit));\n setPopoverLegend(legend);\n setPopoverColor(point.color!);\n setPopoverYValue(\n point.radialAxisCalloutData ?? (formatToLocaleString(point.r, props.culture, props.useUTC) as string),\n );\n setActivePoint(pointId);\n },\n [legendHighlighted, props.angularAxis?.unit, props.culture, props.useUTC],\n );\n\n const hidePopover = React.useCallback(() => {\n setPopoverOpen(false);\n setActivePoint('');\n }, []);\n\n const markersOnlyMode = React.useMemo(\n () => chartData.filter(s => s.type === 'areapolar' || s.type === 'linepolar').length === 0,\n [chartData],\n );\n\n const renderRadialPoints = React.useCallback(\n (series: AreaPolarSeries | LinePolarSeries | ScatterPolarSeries, seriesIndex: number) => {\n const shouldHighlight = legendHighlighted(series.legend);\n return (\n <g>\n {series.data.map((point, pointIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!isPlottable(aScale(point.theta), rScale(point.r as any))) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [x, y] = d3PointRadial(aScale(point.theta), rScale(point.r as any)!);\n const id = `${seriesIndex}-${pointIndex}`;\n const isActive = activePoint === id;\n const minPx = markersOnlyMode ? MIN_MARKER_SIZE_PX_MARKERS_ONLY : MIN_MARKER_SIZE_PX;\n let radius = minPx;\n if (typeof point.markerSize !== 'undefined' && minMarkerSize !== maxMarkerSize) {\n radius =\n minPx +\n ((point.markerSize - minMarkerSize!) / (maxMarkerSize! - minMarkerSize!)) *\n (MAX_MARKER_SIZE_PX - minPx);\n }\n\n const xValue =\n point.radialAxisCalloutData || (formatToLocaleString(point.r, props.culture, props.useUTC) as string);\n const legend = series.legend;\n const yValue = point.angularAxisCalloutData || formatAngle(point.theta, props.angularAxis?.unit);\n const ariaLabel = point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n\n return (\n <circle\n key={pointIndex}\n cx={x}\n cy={y}\n r={radius}\n fill={isActive ? tokens.colorNeutralBackground1 : point.color}\n stroke={isActive ? point.color : 'none'}\n strokeWidth={isActive ? 2 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n tabIndex={shouldHighlight ? 0 : -1}\n onMouseOver={e => showPopover(e, point, id, series.legend)}\n onFocus={e => showPopover(e, point, id, series.legend)}\n role=\"img\"\n aria-label={ariaLabel}\n />\n );\n })}\n </g>\n );\n },\n [\n legendHighlighted,\n rScale,\n aScale,\n activePoint,\n showPopover,\n minMarkerSize,\n maxMarkerSize,\n markersOnlyMode,\n props.angularAxis?.unit,\n props.culture,\n props.useUTC,\n ],\n );\n\n const onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: Legend) => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(_selectedLegends);\n } else {\n setSelectedLegends(_selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(_selectedLegends, event, currentLegend);\n }\n },\n [props.legendProps],\n );\n\n const renderLegends = React.useCallback(() => {\n if (props.hideLegend) {\n return null;\n }\n\n const legends: Legend[] = Object.keys(legendColorMap.current).map(legendTitle => {\n return {\n title: legendTitle,\n color: legendColorMap.current[legendTitle],\n hoverAction: () => {\n setHoveredLegend(legendTitle);\n },\n onMouseOutAction: () => {\n setHoveredLegend('');\n },\n };\n });\n\n return (\n <div ref={legendContainerRef} className={classes.legendContainer}>\n <Legends\n legends={legends}\n centerLegends\n onChange={onLegendSelectionChange}\n legendRef={legendsRef}\n {...props.legendProps}\n />\n </div>\n );\n }, [props.hideLegend, props.legendProps, legendsRef, onLegendSelectionChange, classes.legendContainer]);\n\n const focusAttributes = useArrowNavigationGroup({ axis: 'horizontal' });\n\n return (\n <div className={classes.root} ref={chartContainerRef} onMouseLeave={hidePopover} onBlur={hidePopover}>\n <div className={classes.chartWrapper} {...focusAttributes}>\n <svg\n className={classes.chart}\n width={svgWidth}\n height={svgHeight}\n role=\"region\"\n aria-label={\n (props.chartTitle ? `${props.chartTitle}. ` : '') + `Polar chart with ${chartData.length} data series.`\n }\n >\n <g transform={`translate(${svgWidth / 2}, ${svgHeight / 2})`}>\n {renderPolarGrid()}\n <g>\n {chartData.map((series, seriesIndex) => {\n return (\n <g\n key={seriesIndex}\n role=\"region\"\n aria-label={`${series.legend}, series ${seriesIndex + 1} of ${chartData.length} with ${\n series.data.length\n } data points.`}\n >\n {series.type === 'areapolar' && renderRadialArea(series)}\n {(series.type === 'areapolar' || series.type === 'linepolar') && renderRadialLine(series)}\n {renderRadialPoints(series, seriesIndex)}\n </g>\n );\n })}\n </g>\n {renderPolarTicks()}\n </g>\n </svg>\n </div>\n {renderLegends()}\n {!props.hideTooltip && (\n <ChartPopover\n isPopoverOpen={isPopoverOpen}\n positioning={{\n target: popoverTarget,\n }}\n XValue={popoverXValue}\n legend={popoverLegend}\n color={popoverColor}\n YValue={popoverYValue}\n />\n )}\n </div>\n );\n },\n);\n\nPolarChart.displayName = 'PolarChart';\n"],"names":["React","usePolarChartStyles","useImageExport","pointRadial","d3PointRadial","areaRadial","d3AreaRadial","lineRadial","d3LineRadial","curveLinearClosed","d3CurveLinearClosed","tokens","Legends","createRadialScale","getContinuousScaleDomain","getScaleType","EPSILON","createAngularScale","formatAngle","ChartPopover","getColorFromToken","getCurveFactory","getNextColor","isPlottable","sortAxisCategories","extent","d3Extent","useArrowNavigationGroup","formatToLocaleString","useFluent_unstable","useFluent","DEFAULT_LEGEND_HEIGHT","LABEL_WIDTH","LABEL_HEIGHT","LABEL_OFFSET","TICK_SIZE","MIN_MARKER_SIZE_PX","MAX_MARKER_SIZE_PX","MIN_MARKER_SIZE_PX_MARKERS_ONLY","PolarChart","forwardRef","props","forwardedRef","chartContainerRef","legendsRef","componentRef","hideLegend","legendContainerRef","useRef","targetDocument","_window","defaultView","containerWidth","setContainerWidth","useState","containerHeight","setContainerHeight","legendContainerHeight","setLegendContainerHeight","isPopoverOpen","setPopoverOpen","popoverTarget","setPopoverTarget","popoverXValue","setPopoverXValue","popoverLegend","setPopoverLegend","popoverColor","setPopoverColor","popoverYValue","setPopoverYValue","hoveredLegend","setHoveredLegend","selectedLegends","setSelectedLegends","legendProps","activePoint","setActivePoint","useEffect","current","width","height","getBoundingClientRect","marginTop","getComputedStyle","Math","max","parseFloat","margins","useMemo","left","right","top","bottom","svgWidth","svgHeight","outerRadius","min","innerRadius","abs","hole","legendColorMap","chartData","colorIndex","renderingOrder","data","map","series","seriesColor","color","legend","point","sort","a","b","indexOf","type","mapCategoryToValues","useCallback","isAngularAxis","categoryToValues","forEach","category","theta","r","value","push","getOrderedRCategories","radialAxis","categoryOrder","getOrderedACategories","angularAxis","rValues","flatMap","rScaleType","scaleType","supportsLog","rScaleDomain","rangeStart","rangeEnd","scale","rScale","tickValues","rTickValues","tickLabels","rTickLabels","useUTC","tickCount","tickText","tickFormat","culture","tickStep","tick0","dateLocalizeOptions","aValues","aScaleType","aDomain","aScale","aTickValues","aTickLabels","direction","unit","classes","renderPolarGrid","extRTickValues","rDomain","domain","length","g","rIndex","className","gridLineOuter","gridLineInner","shape","d","aIndex","radialPoint","join","path","key","circle","cx","cy","radialPoint1","radialPoint2","renderPolarTicks","radialAxisAngle","PI","radialAxisStartPoint","radialAxisEndPoint","sign","pointX","pointY","cos","sin","text","x","y","textAnchor","dominantBaseline","aria-hidden","tickLabel","angle","getActiveLegends","legendHighlighted","legendTitle","activeLegends","includes","renderRadialArea","radialArea","curve","lineOptions","defined","shouldHighlight","fill","fillOpacity","pointerEvents","renderRadialLine","radialLine","radius","stroke","strokeOpacity","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","minMarkerSize","maxMarkerSize","markerSize","showPopover","event","pointId","currentTarget","angularAxisCalloutData","radialAxisCalloutData","hidePopover","markersOnlyMode","filter","s","renderRadialPoints","seriesIndex","pointIndex","id","isActive","minPx","xValue","yValue","ariaLabel","callOutAccessibilityData","colorNeutralBackground1","opacity","tabIndex","onMouseOver","e","onFocus","role","aria-label","onLegendSelectionChange","_selectedLegends","currentLegend","canSelectMultipleLegends","slice","onChange","renderLegends","legends","Object","keys","title","hoverAction","onMouseOutAction","div","ref","legendContainer","centerLegends","legendRef","focusAttributes","axis","root","onMouseLeave","onBlur","chartWrapper","svg","chart","chartTitle","transform","hideTooltip","positioning","target","XValue","YValue","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/PolarChart/PolarChart.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { PolarChartProps } from './PolarChart.types';\nimport { usePolarChartStyles } from './usePolarChartStyles.styles';\nimport { useImageExport } from '../../utilities/hooks';\nimport {\n pointRadial as d3PointRadial,\n areaRadial as d3AreaRadial,\n lineRadial as d3LineRadial,\n curveLinearClosed as d3CurveLinearClosed,\n} from 'd3-shape';\nimport type { AreaPolarSeries, LinePolarSeries, PolarDataPoint, ScatterPolarSeries } from '../../types/DataPoint';\nimport { tokens } from '@fluentui/react-theme';\nimport type { Legend } from '../Legends/index';\nimport { Legends } from '../Legends/index';\nimport {\n createRadialScale,\n getContinuousScaleDomain,\n getScaleType,\n EPSILON,\n createAngularScale,\n formatAngle,\n} from './PolarChart.utils';\nimport { ChartPopover } from '../CommonComponents/ChartPopover';\nimport {\n getColorFromToken,\n getCurveFactory,\n getNextColor,\n isPlottable,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { extent as d3Extent } from 'd3-array';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\nconst DEFAULT_LEGEND_HEIGHT = 32;\nconst LABEL_WIDTH = 36;\nconst LABEL_HEIGHT = 16;\nconst LABEL_OFFSET = 10;\nconst TICK_SIZE = 6;\nconst MIN_MARKER_SIZE_PX = 2;\nconst MAX_MARKER_SIZE_PX = 16;\nconst MIN_MARKER_SIZE_PX_MARKERS_ONLY = 4;\n\nexport const PolarChart: React.FunctionComponent<PolarChartProps> = React.forwardRef<HTMLDivElement, PolarChartProps>(\n (props, forwardedRef) => {\n const { chartContainerRef, legendsRef } = useImageExport(props.componentRef, props.hideLegend, false);\n const legendContainerRef = React.useRef<HTMLDivElement>(null);\n const { targetDocument } = useFluent();\n const _window = targetDocument?.defaultView;\n\n const [containerWidth, setContainerWidth] = React.useState<number>(200);\n const [containerHeight, setContainerHeight] = React.useState<number>(200);\n const [legendContainerHeight, setLegendContainerHeight] = React.useState<number>(\n props.hideLegend ? 0 : DEFAULT_LEGEND_HEIGHT,\n );\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const [popoverTarget, setPopoverTarget] = React.useState<SVGElement | null>(null);\n const [popoverXValue, setPopoverXValue] = React.useState<string>('');\n const [popoverLegend, setPopoverLegend] = React.useState<string>('');\n const [popoverColor, setPopoverColor] = React.useState<string>('');\n const [popoverYValue, setPopoverYValue] = React.useState<string>('');\n const [hoveredLegend, setHoveredLegend] = React.useState<string>('');\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [activePoint, setActivePoint] = React.useState<string>('');\n\n React.useEffect(() => {\n if (chartContainerRef.current) {\n const { width, height } = chartContainerRef.current.getBoundingClientRect();\n setContainerWidth(width);\n setContainerHeight(height);\n }\n }, [chartContainerRef]);\n React.useEffect(() => {\n if (props.hideLegend) {\n setLegendContainerHeight(0);\n } else if (legendContainerRef.current) {\n const { height } = legendContainerRef.current.getBoundingClientRect();\n const marginTop = _window?.getComputedStyle(legendContainerRef.current).marginTop || '0px';\n setLegendContainerHeight(Math.max(height, DEFAULT_LEGEND_HEIGHT) + parseFloat(marginTop));\n }\n }, [props.hideLegend, _window]);\n\n React.useEffect(() => {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }, [props.legendProps?.selectedLegends]);\n\n const margins = React.useMemo(\n () => ({\n left: LABEL_OFFSET + LABEL_WIDTH,\n right: LABEL_OFFSET + LABEL_WIDTH,\n top: LABEL_OFFSET + LABEL_HEIGHT,\n bottom: LABEL_OFFSET + LABEL_HEIGHT,\n ...props.margins,\n }),\n [props.margins],\n );\n\n const svgWidth = React.useMemo(() => props.width || containerWidth, [props.width, containerWidth]);\n const svgHeight = React.useMemo(\n () => (props.height || containerHeight) - legendContainerHeight,\n [props.height, containerHeight, legendContainerHeight],\n );\n const outerRadius = React.useMemo(\n () => Math.min(svgWidth - (margins.left + margins.right), svgHeight - (margins.top + margins.bottom)) / 2,\n [svgWidth, svgHeight, margins],\n );\n const innerRadius = React.useMemo(\n () => Math.max(0, Math.min(Math.abs(props.hole || 0), 1)) * outerRadius,\n [props.hole, outerRadius],\n );\n\n const legendColorMap = React.useRef<Record<string, string>>({});\n const chartData = React.useMemo(() => {\n legendColorMap.current = {};\n let colorIndex = 0;\n const renderingOrder = ['areapolar', 'linepolar', 'scatterpolar'];\n\n return props.data\n .map(series => {\n const seriesColor = series.color ? getColorFromToken(series.color) : getNextColor(colorIndex++, 0);\n if (!(series.legend in legendColorMap.current)) {\n legendColorMap.current[series.legend] = seriesColor;\n }\n\n return {\n ...series,\n color: seriesColor,\n data: series.data.map(point => {\n return {\n ...point,\n color: point.color ? getColorFromToken(point.color) : seriesColor,\n };\n }),\n };\n })\n .sort((a, b) => {\n return renderingOrder.indexOf(a.type) - renderingOrder.indexOf(b.type);\n });\n }, [props.data]);\n\n const mapCategoryToValues = React.useCallback(\n (isAngularAxis?: boolean) => {\n const categoryToValues: Record<string, number[]> = Object.create(null);\n chartData.forEach(series => {\n series.data.forEach(point => {\n const category = (isAngularAxis ? point.theta : point.r) as string;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n const value = isAngularAxis ? point.r : point.theta;\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n });\n return categoryToValues;\n },\n [chartData],\n );\n\n const getOrderedRCategories = React.useCallback(() => {\n return sortAxisCategories(mapCategoryToValues(), props.radialAxis?.categoryOrder);\n }, [mapCategoryToValues, props.radialAxis?.categoryOrder]);\n\n const getOrderedACategories = React.useCallback(() => {\n return sortAxisCategories(mapCategoryToValues(true), props.angularAxis?.categoryOrder);\n }, [mapCategoryToValues, props.angularAxis?.categoryOrder]);\n\n const rValues = React.useMemo(() => chartData.flatMap(series => series.data.map(point => point.r)), [chartData]);\n const rScaleType = React.useMemo(\n () =>\n getScaleType(rValues, {\n scaleType: props.radialAxis?.scaleType,\n supportsLog: true,\n }),\n [rValues, props.radialAxis?.scaleType],\n );\n const rScaleDomain = React.useMemo(\n () =>\n rScaleType === 'category'\n ? getOrderedRCategories()\n : getContinuousScaleDomain(rScaleType, rValues as (number | Date)[], {\n rangeStart: props.radialAxis?.rangeStart,\n rangeEnd: props.radialAxis?.rangeEnd,\n }),\n [getOrderedRCategories, rScaleType, rValues, props.radialAxis?.rangeStart, props.radialAxis?.rangeEnd],\n );\n const {\n scale: rScale,\n tickValues: rTickValues,\n tickLabels: rTickLabels,\n } = React.useMemo(\n () =>\n createRadialScale(rScaleType, rScaleDomain, [innerRadius, outerRadius], {\n useUTC: props.useUTC,\n tickCount: props.radialAxis?.tickCount,\n tickValues: props.radialAxis?.tickValues,\n tickText: props.radialAxis?.tickText,\n tickFormat: props.radialAxis?.tickFormat,\n culture: props.culture,\n tickStep: props.radialAxis?.tickStep,\n tick0: props.radialAxis?.tick0,\n dateLocalizeOptions: props.dateLocalizeOptions,\n }),\n [\n rScaleType,\n rScaleDomain,\n innerRadius,\n outerRadius,\n props.culture,\n props.dateLocalizeOptions,\n props.radialAxis?.tick0,\n props.radialAxis?.tickCount,\n props.radialAxis?.tickFormat,\n props.radialAxis?.tickStep,\n props.radialAxis?.tickText,\n props.radialAxis?.tickValues,\n props.useUTC,\n ],\n );\n\n const aValues = React.useMemo(\n () => chartData.flatMap(series => series.data.map(point => point.theta)),\n [chartData],\n );\n const aScaleType = React.useMemo(\n () =>\n getScaleType(aValues, {\n scaleType: props.angularAxis?.scaleType,\n }),\n [aValues, props.angularAxis?.scaleType],\n );\n const aDomain = React.useMemo(\n () =>\n aScaleType === 'category'\n ? getOrderedACategories()\n : (getContinuousScaleDomain(aScaleType, aValues as number[]) as number[]),\n [getOrderedACategories, aScaleType, aValues],\n );\n const {\n scale: aScale,\n tickValues: aTickValues,\n tickLabels: aTickLabels,\n } = React.useMemo(\n () =>\n createAngularScale(aScaleType, aDomain, {\n tickCount: props.angularAxis?.tickCount,\n tickValues: props.angularAxis?.tickValues,\n tickText: props.angularAxis?.tickText,\n tickFormat: props.angularAxis?.tickFormat,\n culture: props.culture,\n tickStep: props.angularAxis?.tickStep,\n tick0: props.angularAxis?.tick0,\n direction: props.direction,\n unit: props.angularAxis?.unit,\n }),\n [\n aScaleType,\n aDomain,\n props.angularAxis?.tick0,\n props.angularAxis?.tickCount,\n props.angularAxis?.tickFormat,\n props.angularAxis?.tickStep,\n props.angularAxis?.tickText,\n props.angularAxis?.tickValues,\n props.angularAxis?.unit,\n props.culture,\n props.direction,\n ],\n );\n\n const classes = usePolarChartStyles(props);\n\n const renderPolarGrid = React.useCallback(() => {\n const extRTickValues = [];\n const rDomain = rScale.domain();\n if (innerRadius > 0 && rDomain[0] !== rTickValues[0]) {\n extRTickValues.push(rDomain[0]);\n }\n extRTickValues.push(...rTickValues);\n if (rDomain[rDomain.length - 1] !== rTickValues[rTickValues.length - 1]) {\n extRTickValues.push(rDomain[rDomain.length - 1]);\n }\n\n return (\n <g>\n <g>\n {extRTickValues.map((r, rIndex) => {\n const className = rIndex === extRTickValues.length - 1 ? classes.gridLineOuter : classes.gridLineInner;\n\n if (props.shape === 'polygon') {\n let d = '';\n aTickValues.forEach((a, aIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const radialPoint = d3PointRadial(aScale(a), rScale(r as any)!);\n d += (aIndex === 0 ? 'M' : 'L') + radialPoint.join(',') + ' ';\n });\n d += 'Z';\n\n return <path key={rIndex} d={d} className={className} />;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return <circle key={rIndex} cx={0} cy={0} r={rScale(r as any)} className={className} />;\n })}\n </g>\n <g>\n {aTickValues.map((a, aIndex) => {\n const radialPoint1 = d3PointRadial(aScale(a), innerRadius);\n const radialPoint2 = d3PointRadial(aScale(a), outerRadius);\n\n return (\n <path\n key={aIndex}\n d={`M${radialPoint1.join(',')} L${radialPoint2.join(',')}`}\n className={classes.gridLineInner}\n />\n );\n })}\n </g>\n </g>\n );\n }, [\n innerRadius,\n outerRadius,\n rTickValues,\n aTickValues,\n rScale,\n aScale,\n props.shape,\n classes.gridLineInner,\n classes.gridLineOuter,\n ]);\n\n const renderPolarTicks = React.useCallback(() => {\n const radialAxisAngle = props.direction === 'clockwise' ? 0 : Math.PI / 2;\n const radialAxisStartPoint = d3PointRadial(radialAxisAngle, innerRadius);\n const radialAxisEndPoint = d3PointRadial(radialAxisAngle, outerRadius);\n // (0, pi]\n const sign = radialAxisAngle > EPSILON && radialAxisAngle - Math.PI < EPSILON ? 1 : -1;\n\n return (\n <g>\n <g>\n <path\n d={`M${radialAxisStartPoint.join(',')} L${radialAxisEndPoint.join(',')}`}\n className={classes.gridLineOuter}\n />\n {rTickValues.map((r, rIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [pointX, pointY] = d3PointRadial(radialAxisAngle, rScale(r as any)!);\n return (\n <g key={rIndex}>\n <path\n d={`M${pointX},${pointY} L${pointX + TICK_SIZE * Math.cos(radialAxisAngle) * sign},${\n pointY + TICK_SIZE * Math.sin(radialAxisAngle) * sign\n }`}\n className={classes.gridLineOuter}\n />\n <text\n x={pointX + (TICK_SIZE + LABEL_OFFSET) * Math.cos(radialAxisAngle) * sign}\n y={pointY + (TICK_SIZE + LABEL_OFFSET) * Math.sin(radialAxisAngle) * sign}\n textAnchor={\n // pi/2 or 3pi/2\n Math.abs(radialAxisAngle - Math.PI / 2) < EPSILON ||\n Math.abs(radialAxisAngle - (3 * Math.PI) / 2) < EPSILON\n ? 'middle'\n : // (0, pi/2) or (pi, 3pi/2)\n (radialAxisAngle > EPSILON && radialAxisAngle - Math.PI / 2 < -EPSILON) ||\n (radialAxisAngle - Math.PI > EPSILON && radialAxisAngle - (3 * Math.PI) / 2 < -EPSILON)\n ? 'start'\n : 'end'\n }\n dominantBaseline=\"middle\"\n aria-hidden={true}\n className={classes.tickLabel}\n >\n {rTickLabels[rIndex]}\n </text>\n </g>\n );\n })}\n </g>\n <g>\n {aTickValues.map((a, aIndex) => {\n const angle = aScale(a);\n const [pointX, pointY] = d3PointRadial(angle, outerRadius + LABEL_OFFSET);\n\n return (\n <text\n key={aIndex}\n x={pointX}\n y={pointY}\n textAnchor={\n Math.abs(angle) < EPSILON || Math.abs(angle - Math.PI) < EPSILON\n ? 'middle'\n : angle > Math.PI\n ? 'end'\n : 'start'\n }\n dominantBaseline=\"middle\"\n aria-hidden={true}\n className={classes.tickLabel}\n >\n {aTickLabels[aIndex]}\n </text>\n );\n })}\n </g>\n </g>\n );\n }, [\n rTickValues,\n aTickValues,\n rScale,\n aScale,\n outerRadius,\n classes.gridLineOuter,\n classes.tickLabel,\n aTickLabels,\n innerRadius,\n rTickLabels,\n props.direction,\n ]);\n\n const getActiveLegends = React.useCallback(() => {\n return selectedLegends.length > 0 ? selectedLegends : hoveredLegend ? [hoveredLegend] : [];\n }, [selectedLegends, hoveredLegend]);\n\n const legendHighlighted = React.useCallback(\n (legendTitle: string) => {\n const activeLegends = getActiveLegends();\n return activeLegends.includes(legendTitle) || activeLegends.length === 0;\n },\n [getActiveLegends],\n );\n\n const renderRadialArea = React.useCallback(\n (series: AreaPolarSeries) => {\n const radialArea = d3AreaRadial<PolarDataPoint>()\n .angle(d => aScale(d.theta))\n .innerRadius(innerRadius)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .outerRadius(d => rScale(d.r as any)!)\n .curve(getCurveFactory(series.lineOptions?.curve, d3CurveLinearClosed))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .defined(d => isPlottable(aScale(d.theta), rScale(d.r as any)));\n const shouldHighlight = legendHighlighted(series.legend);\n\n return (\n <path\n d={radialArea(series.data)!}\n fill={series.color}\n fillOpacity={shouldHighlight ? 0.7 : 0.1}\n pointerEvents=\"none\"\n />\n );\n },\n [innerRadius, rScale, aScale, legendHighlighted],\n );\n\n const renderRadialLine = React.useCallback(\n (series: AreaPolarSeries | LinePolarSeries) => {\n const radialLine = d3LineRadial<PolarDataPoint>()\n .angle(d => aScale(d.theta))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .radius(d => rScale(d.r as any)!)\n .curve(getCurveFactory(series.lineOptions?.curve))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .defined(d => isPlottable(aScale(d.theta), rScale(d.r as any)));\n\n return (\n <path\n d={radialLine(series.data)!}\n fill=\"none\"\n stroke={series.color}\n strokeOpacity={legendHighlighted(series.legend) ? 1 : 0.1}\n strokeWidth={series.lineOptions?.strokeWidth ?? 3}\n strokeDasharray={series.lineOptions?.strokeDasharray}\n strokeDashoffset={series.lineOptions?.strokeDashoffset}\n strokeLinecap={series.lineOptions?.strokeLinecap}\n pointerEvents=\"none\"\n />\n );\n },\n [rScale, aScale, legendHighlighted],\n );\n\n const [minMarkerSize, maxMarkerSize] = React.useMemo(\n () => d3Extent<number>(chartData.flatMap(series => series.data.map(point => point.markerSize as number))),\n [chartData],\n );\n\n const showPopover = React.useCallback(\n (\n event: React.MouseEvent<SVGElement> | React.FocusEvent<SVGElement>,\n point: PolarDataPoint,\n pointId: string,\n legend: string,\n ) => {\n setPopoverTarget(event.currentTarget);\n setPopoverOpen(legendHighlighted(legend));\n setPopoverXValue(point.angularAxisCalloutData ?? formatAngle(point.theta, props.angularAxis?.unit));\n setPopoverLegend(legend);\n setPopoverColor(point.color!);\n setPopoverYValue(\n point.radialAxisCalloutData ?? (formatToLocaleString(point.r, props.culture, props.useUTC) as string),\n );\n setActivePoint(pointId);\n },\n [legendHighlighted, props.angularAxis?.unit, props.culture, props.useUTC],\n );\n\n const hidePopover = React.useCallback(() => {\n setPopoverOpen(false);\n setActivePoint('');\n }, []);\n\n const markersOnlyMode = React.useMemo(\n () => chartData.filter(s => s.type === 'areapolar' || s.type === 'linepolar').length === 0,\n [chartData],\n );\n\n const renderRadialPoints = React.useCallback(\n (series: AreaPolarSeries | LinePolarSeries | ScatterPolarSeries, seriesIndex: number) => {\n const shouldHighlight = legendHighlighted(series.legend);\n return (\n <g>\n {series.data.map((point, pointIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!isPlottable(aScale(point.theta), rScale(point.r as any))) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [x, y] = d3PointRadial(aScale(point.theta), rScale(point.r as any)!);\n const id = `${seriesIndex}-${pointIndex}`;\n const isActive = activePoint === id;\n const minPx = markersOnlyMode ? MIN_MARKER_SIZE_PX_MARKERS_ONLY : MIN_MARKER_SIZE_PX;\n let radius = minPx;\n if (typeof point.markerSize !== 'undefined' && minMarkerSize !== maxMarkerSize) {\n radius =\n minPx +\n ((point.markerSize - minMarkerSize!) / (maxMarkerSize! - minMarkerSize!)) *\n (MAX_MARKER_SIZE_PX - minPx);\n }\n\n const xValue =\n point.radialAxisCalloutData || (formatToLocaleString(point.r, props.culture, props.useUTC) as string);\n const legend = series.legend;\n const yValue = point.angularAxisCalloutData || formatAngle(point.theta, props.angularAxis?.unit);\n const ariaLabel = point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n\n return (\n <circle\n key={pointIndex}\n cx={x}\n cy={y}\n r={radius}\n fill={isActive ? tokens.colorNeutralBackground1 : point.color}\n stroke={isActive ? point.color : 'none'}\n strokeWidth={isActive ? 2 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n tabIndex={shouldHighlight ? 0 : -1}\n onMouseOver={e => showPopover(e, point, id, series.legend)}\n onFocus={e => showPopover(e, point, id, series.legend)}\n role=\"img\"\n aria-label={ariaLabel}\n />\n );\n })}\n </g>\n );\n },\n [\n legendHighlighted,\n rScale,\n aScale,\n activePoint,\n showPopover,\n minMarkerSize,\n maxMarkerSize,\n markersOnlyMode,\n props.angularAxis?.unit,\n props.culture,\n props.useUTC,\n ],\n );\n\n const onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: Legend) => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(_selectedLegends);\n } else {\n setSelectedLegends(_selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(_selectedLegends, event, currentLegend);\n }\n },\n [props.legendProps],\n );\n\n const renderLegends = React.useCallback(() => {\n if (props.hideLegend) {\n return null;\n }\n\n const legends: Legend[] = Object.keys(legendColorMap.current).map(legendTitle => {\n return {\n title: legendTitle,\n color: legendColorMap.current[legendTitle],\n hoverAction: () => {\n setHoveredLegend(legendTitle);\n },\n onMouseOutAction: () => {\n setHoveredLegend('');\n },\n };\n });\n\n return (\n <div ref={legendContainerRef} className={classes.legendContainer}>\n <Legends\n legends={legends}\n centerLegends\n onChange={onLegendSelectionChange}\n legendRef={legendsRef}\n {...props.legendProps}\n />\n </div>\n );\n }, [props.hideLegend, props.legendProps, legendsRef, onLegendSelectionChange, classes.legendContainer]);\n\n const focusAttributes = useArrowNavigationGroup({ axis: 'horizontal' });\n\n return (\n <div className={classes.root} ref={chartContainerRef} onMouseLeave={hidePopover} onBlur={hidePopover}>\n <div className={classes.chartWrapper} {...focusAttributes}>\n <svg\n className={classes.chart}\n width={svgWidth}\n height={svgHeight}\n role=\"region\"\n aria-label={\n (props.chartTitle ? `${props.chartTitle}. ` : '') + `Polar chart with ${chartData.length} data series.`\n }\n >\n <g transform={`translate(${svgWidth / 2}, ${svgHeight / 2})`}>\n {renderPolarGrid()}\n <g>\n {chartData.map((series, seriesIndex) => {\n return (\n <g\n key={seriesIndex}\n role=\"region\"\n aria-label={`${series.legend}, series ${seriesIndex + 1} of ${chartData.length} with ${\n series.data.length\n } data points.`}\n >\n {series.type === 'areapolar' && renderRadialArea(series)}\n {(series.type === 'areapolar' || series.type === 'linepolar') && renderRadialLine(series)}\n {renderRadialPoints(series, seriesIndex)}\n </g>\n );\n })}\n </g>\n {renderPolarTicks()}\n </g>\n </svg>\n </div>\n {renderLegends()}\n {!props.hideTooltip && (\n <ChartPopover\n isPopoverOpen={isPopoverOpen}\n positioning={{\n target: popoverTarget,\n }}\n XValue={popoverXValue}\n legend={popoverLegend}\n color={popoverColor}\n YValue={popoverYValue}\n />\n )}\n </div>\n );\n },\n);\n\nPolarChart.displayName = 'PolarChart';\n"],"names":["React","usePolarChartStyles","useImageExport","pointRadial","d3PointRadial","areaRadial","d3AreaRadial","lineRadial","d3LineRadial","curveLinearClosed","d3CurveLinearClosed","tokens","Legends","createRadialScale","getContinuousScaleDomain","getScaleType","EPSILON","createAngularScale","formatAngle","ChartPopover","getColorFromToken","getCurveFactory","getNextColor","isPlottable","sortAxisCategories","extent","d3Extent","useArrowNavigationGroup","formatToLocaleString","useFluent_unstable","useFluent","DEFAULT_LEGEND_HEIGHT","LABEL_WIDTH","LABEL_HEIGHT","LABEL_OFFSET","TICK_SIZE","MIN_MARKER_SIZE_PX","MAX_MARKER_SIZE_PX","MIN_MARKER_SIZE_PX_MARKERS_ONLY","PolarChart","forwardRef","props","forwardedRef","chartContainerRef","legendsRef","componentRef","hideLegend","legendContainerRef","useRef","targetDocument","_window","defaultView","containerWidth","setContainerWidth","useState","containerHeight","setContainerHeight","legendContainerHeight","setLegendContainerHeight","isPopoverOpen","setPopoverOpen","popoverTarget","setPopoverTarget","popoverXValue","setPopoverXValue","popoverLegend","setPopoverLegend","popoverColor","setPopoverColor","popoverYValue","setPopoverYValue","hoveredLegend","setHoveredLegend","selectedLegends","setSelectedLegends","legendProps","activePoint","setActivePoint","useEffect","current","width","height","getBoundingClientRect","marginTop","getComputedStyle","Math","max","parseFloat","margins","useMemo","left","right","top","bottom","svgWidth","svgHeight","outerRadius","min","innerRadius","abs","hole","legendColorMap","chartData","colorIndex","renderingOrder","data","map","series","seriesColor","color","legend","point","sort","a","b","indexOf","type","mapCategoryToValues","useCallback","isAngularAxis","categoryToValues","Object","create","forEach","category","theta","r","value","push","getOrderedRCategories","radialAxis","categoryOrder","getOrderedACategories","angularAxis","rValues","flatMap","rScaleType","scaleType","supportsLog","rScaleDomain","rangeStart","rangeEnd","scale","rScale","tickValues","rTickValues","tickLabels","rTickLabels","useUTC","tickCount","tickText","tickFormat","culture","tickStep","tick0","dateLocalizeOptions","aValues","aScaleType","aDomain","aScale","aTickValues","aTickLabels","direction","unit","classes","renderPolarGrid","extRTickValues","rDomain","domain","length","g","rIndex","className","gridLineOuter","gridLineInner","shape","d","aIndex","radialPoint","join","path","key","circle","cx","cy","radialPoint1","radialPoint2","renderPolarTicks","radialAxisAngle","PI","radialAxisStartPoint","radialAxisEndPoint","sign","pointX","pointY","cos","sin","text","x","y","textAnchor","dominantBaseline","aria-hidden","tickLabel","angle","getActiveLegends","legendHighlighted","legendTitle","activeLegends","includes","renderRadialArea","radialArea","curve","lineOptions","defined","shouldHighlight","fill","fillOpacity","pointerEvents","renderRadialLine","radialLine","radius","stroke","strokeOpacity","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","minMarkerSize","maxMarkerSize","markerSize","showPopover","event","pointId","currentTarget","angularAxisCalloutData","radialAxisCalloutData","hidePopover","markersOnlyMode","filter","s","renderRadialPoints","seriesIndex","pointIndex","id","isActive","minPx","xValue","yValue","ariaLabel","callOutAccessibilityData","colorNeutralBackground1","opacity","tabIndex","onMouseOver","e","onFocus","role","aria-label","onLegendSelectionChange","_selectedLegends","currentLegend","canSelectMultipleLegends","slice","onChange","renderLegends","legends","keys","title","hoverAction","onMouseOutAction","div","ref","legendContainer","centerLegends","legendRef","focusAttributes","axis","root","onMouseLeave","onBlur","chartWrapper","svg","chart","chartTitle","transform","hideTooltip","positioning","target","XValue","YValue","displayName"],"mappings":"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"}
@@ -172,7 +172,7 @@ function getSelectedLinksforStreamHover(singleLink) {
172
172
  };
173
173
  }
174
174
  function groupNodesByColumn(graph) {
175
- const nodesInColumn = {};
175
+ const nodesInColumn = Object.create(null);
176
176
  graph.nodes.forEach((node)=>{
177
177
  const columnId = node.layer;
178
178
  if (nodesInColumn[columnId]) {
@@ -281,19 +281,19 @@ function idFromNumberOrSNode(node) {
281
281
  };
282
282
  }
283
283
  function valuesOfNodes(nodes) {
284
- const result = {};
284
+ const result = Object.create(null);
285
285
  nodes.forEach((node)=>{
286
286
  result[node.nodeId] = node.value;
287
287
  });
288
288
  return result;
289
289
  }
290
290
  function valuesOfLinks(links) {
291
- const result = {};
291
+ const result = Object.create(null);
292
292
  links.forEach((link)=>{
293
293
  const sourceId = idFromNumberOrSNode(link.source);
294
294
  let sourceToTarget = result[sourceId];
295
295
  if (!sourceToTarget) {
296
- sourceToTarget = {};
296
+ sourceToTarget = Object.create(null);
297
297
  result[sourceId] = sourceToTarget;
298
298
  }
299
299
  sourceToTarget[idFromNumberOrSNode(link.target)] = link.value;
@@ -407,12 +407,12 @@ function computeElipsisLength(tspan) {
407
407
  return measurement === undefined ? 0 : measurement;
408
408
  }
409
409
  function computeLinkAttributes(links, linkFrom, linkAriaLabel, linkId) {
410
- const result = {};
410
+ const result = Object.create(null);
411
411
  links.forEach((link, index)=>{
412
412
  const sourceId = idFromNumberOrSNode(link.source);
413
413
  let sourceToTarget = result[sourceId];
414
414
  if (!sourceToTarget) {
415
- sourceToTarget = {};
415
+ sourceToTarget = Object.create(null);
416
416
  result[sourceId] = sourceToTarget;
417
417
  }
418
418
  sourceToTarget[idFromNumberOrSNode(link.target)] = {
@@ -521,7 +521,7 @@ const SankeyChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
521
521
  props.culture
522
522
  ]);
523
523
  const _computeNodeAttributes = _react.useCallback((nodes, nodeAriaLabel)=>{
524
- const result = {};
524
+ const result = Object.create(null);
525
525
  const weightSpan = (0, _d3selection.select)('.nodeName').append('text').attr('class', 'tempText').append('tspan').text(null);
526
526
  const nameSpan = (0, _d3selection.select)('.nodeName').append('text').attr('class', 'tempText').attr('font-size', '10').append('tspan').text(null);
527
527
  nodes.forEach((singleNode, index)=>{