@fluentui/react-charting 5.25.10 → 5.25.12

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 (111) hide show
  1. package/CHANGELOG.json +95 -1
  2. package/CHANGELOG.md +28 -2
  3. package/dist/react-charting.d.ts +2 -0
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/lib/components/AreaChart/AreaChart.base.js +3 -3
  7. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  8. package/lib/components/DeclarativeChart/DeclarativeChart.js +1 -1
  9. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  10. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +5 -1
  11. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +8 -8
  12. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  13. package/lib/components/FunnelChart/FunnelChart.base.js +1 -1
  14. package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
  15. package/lib/components/GanttChart/GanttChart.base.js +4 -4
  16. package/lib/components/GanttChart/GanttChart.base.js.map +1 -1
  17. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -7
  18. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  19. package/lib/components/HeatMapChart/HeatMapChart.base.js +5 -5
  20. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  21. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  22. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  23. package/lib/components/LineChart/LineChart.base.js +1 -1
  24. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  25. package/lib/components/PolarChart/PolarChart.base.js +3 -3
  26. package/lib/components/PolarChart/PolarChart.base.js.map +1 -1
  27. package/lib/components/PolarChart/PolarChart.utils.js +1 -1
  28. package/lib/components/PolarChart/PolarChart.utils.js.map +1 -1
  29. package/lib/components/SankeyChart/SankeyChart.base.js +7 -7
  30. package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
  31. package/lib/components/ScatterChart/ScatterChart.base.js +2 -2
  32. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  33. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +3 -3
  34. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  35. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  36. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  37. package/lib/types/IDataPoint.d.ts +2 -0
  38. package/lib/types/IDataPoint.js.map +1 -1
  39. package/lib/utilities/utilities.js +2 -2
  40. package/lib/utilities/utilities.js.map +1 -1
  41. package/lib-amd/components/AreaChart/AreaChart.base.js +3 -3
  42. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  43. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +1 -1
  44. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  45. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +5 -1
  46. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +14 -13
  47. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  48. package/lib-amd/components/FunnelChart/FunnelChart.base.js +1 -1
  49. package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
  50. package/lib-amd/components/GanttChart/GanttChart.base.js +4 -4
  51. package/lib-amd/components/GanttChart/GanttChart.base.js.map +1 -1
  52. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -7
  53. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  54. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +5 -5
  55. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  56. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  57. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  58. package/lib-amd/components/LineChart/LineChart.base.js +1 -1
  59. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  60. package/lib-amd/components/PolarChart/PolarChart.base.js +3 -3
  61. package/lib-amd/components/PolarChart/PolarChart.base.js.map +1 -1
  62. package/lib-amd/components/PolarChart/PolarChart.utils.js +1 -1
  63. package/lib-amd/components/PolarChart/PolarChart.utils.js.map +1 -1
  64. package/lib-amd/components/SankeyChart/SankeyChart.base.js +7 -7
  65. package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
  66. package/lib-amd/components/ScatterChart/ScatterChart.base.js +2 -2
  67. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  68. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +3 -3
  69. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  70. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  71. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  72. package/lib-amd/types/IDataPoint.d.ts +2 -0
  73. package/lib-amd/types/IDataPoint.js.map +1 -1
  74. package/lib-amd/utilities/utilities.js +2 -2
  75. package/lib-amd/utilities/utilities.js.map +1 -1
  76. package/lib-commonjs/components/AreaChart/AreaChart.base.js +3 -3
  77. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  78. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +1 -1
  79. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  80. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +5 -1
  81. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +14 -13
  82. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  83. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +1 -1
  84. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
  85. package/lib-commonjs/components/GanttChart/GanttChart.base.js +4 -4
  86. package/lib-commonjs/components/GanttChart/GanttChart.base.js.map +1 -1
  87. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -7
  88. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  89. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +5 -5
  90. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  91. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  92. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  93. package/lib-commonjs/components/LineChart/LineChart.base.js +1 -1
  94. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  95. package/lib-commonjs/components/PolarChart/PolarChart.base.js +3 -3
  96. package/lib-commonjs/components/PolarChart/PolarChart.base.js.map +1 -1
  97. package/lib-commonjs/components/PolarChart/PolarChart.utils.js +1 -1
  98. package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -1
  99. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +7 -7
  100. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
  101. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +2 -2
  102. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  103. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +3 -3
  104. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  105. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  106. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  107. package/lib-commonjs/types/IDataPoint.d.ts +2 -0
  108. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  109. package/lib-commonjs/utilities/utilities.js +2 -2
  110. package/lib-commonjs/utilities/utilities.js.map +1 -1
  111. package/package.json +17 -17
@@ -62,9 +62,9 @@ define(["require", "exports", "tslib", "react", "d3-shape", "../Legends/index",
62
62
  var svgHeight = React.useMemo(function () { return (props.height || containerHeight) - legendContainerHeight; }, [props.height, containerHeight, legendContainerHeight]);
63
63
  var outerRadius = React.useMemo(function () { return Math.min(svgWidth - (margins.left + margins.right), svgHeight - (margins.top + margins.bottom)) / 2; }, [svgWidth, svgHeight, margins]);
64
64
  var innerRadius = React.useMemo(function () { return Math.max(0, Math.min(Math.abs(props.hole || 0), 1)) * outerRadius; }, [props.hole, outerRadius]);
65
- var legendColorMap = React.useRef({});
65
+ var legendColorMap = React.useRef(Object.create(null));
66
66
  var chartData = React.useMemo(function () {
67
- legendColorMap.current = {};
67
+ legendColorMap.current = Object.create(null);
68
68
  var colorIndex = 0;
69
69
  var renderingOrder = ['areapolar', 'linepolar', 'scatterpolar'];
70
70
  return props.data
@@ -82,7 +82,7 @@ define(["require", "exports", "tslib", "react", "d3-shape", "../Legends/index",
82
82
  });
83
83
  }, [props.data]);
84
84
  var mapCategoryToValues = React.useCallback(function (isAngularAxis) {
85
- var categoryToValues = {};
85
+ var categoryToValues = Object.create(null);
86
86
  chartData.forEach(function (series) {
87
87
  series.data.forEach(function (point) {
88
88
  var category = (isAngularAxis ? point.theta : point.r);
@@ -1 +1 @@
1
- {"version":3,"file":"PolarChart.base.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IPolarChartProps, IPolarChartStyleProps, IPolarChartStyles } from './PolarChart.types';\nimport {\n pointRadial as d3PointRadial,\n areaRadial as d3AreaRadial,\n lineRadial as d3LineRadial,\n curveLinearClosed as d3CurveLinearClosed,\n} from 'd3-shape';\nimport {\n IAreaPolarSeries,\n IImageExportOptions,\n ILinePolarSeries,\n IPolarDataPoint,\n IScatterPolarSeries,\n} from '../../types/IDataPoint';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n createRadialScale,\n getContinuousScaleDomain,\n getScaleType,\n EPSILON,\n createAngularScale,\n formatAngle,\n} from './PolarChart.utils';\nimport {\n Callout,\n classNamesFunction,\n DirectionalHint,\n FocusZone,\n FocusZoneDirection,\n getRTL,\n getWindow,\n} from '@fluentui/react';\nimport {\n ChartHoverCard,\n getColorFromToken,\n getCurveFactory,\n getNextColor,\n isPlottable,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { extent as d3Extent } from 'd3-array';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\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\nconst getClassNames = classNamesFunction<IPolarChartStyleProps, IPolarChartStyles>();\n\nexport const PolarChartBase: React.FunctionComponent<IPolarChartProps> = React.forwardRef<\n HTMLDivElement,\n IPolarChartProps\n>((props, forwardedRef) => {\n const chartContainerRef = React.useRef<HTMLDivElement>(null);\n const legendsRef = React.useRef<ILegendContainer>(null);\n const legendContainerRef = React.useRef<HTMLDivElement>(null);\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 [isCalloutVisible, setCalloutVisible] = React.useState<boolean>(false);\n const [calloutTarget, setCalloutTarget] = React.useState<SVGElement | null>(null);\n const [calloutXValue, setCalloutXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [calloutColor, setCalloutColor] = React.useState<string>('');\n const [calloutYValue, setCalloutYValue] = 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.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: chartContainerRef.current,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: chartContainerRef.current }],\n props.hideLegend ? undefined : legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\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 _window = getWindow(legendContainerRef.current);\n const marginTop = _window?.getComputedStyle(legendContainerRef.current).marginTop || '0px';\n setLegendContainerHeight(Math.max(height, DEFAULT_LEGEND_HEIGHT) + parseFloat(marginTop));\n }\n }, [props.hideLegend]);\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(() => chartData.flatMap(series => series.data.map(point => point.theta)), [chartData]);\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 = React.useMemo(\n () =>\n getClassNames(props.styles, {\n theme: props.theme!,\n }),\n [props.styles, props.theme],\n );\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: IAreaPolarSeries) => {\n const radialArea = d3AreaRadial<IPolarDataPoint>()\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: IAreaPolarSeries | ILinePolarSeries) => {\n const radialLine = d3LineRadial<IPolarDataPoint>()\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 showCallout = React.useCallback(\n (\n event: React.MouseEvent<SVGElement> | React.FocusEvent<SVGElement>,\n point: IPolarDataPoint,\n pointId: string,\n legend: string,\n ) => {\n setCalloutTarget(event.currentTarget);\n setCalloutVisible(legendHighlighted(legend));\n setCalloutXValue(point.angularAxisCalloutData ?? formatAngle(point.theta, props.angularAxis?.unit));\n setCalloutLegend(legend);\n setCalloutColor(point.color!);\n setCalloutYValue(\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 hideCallout = React.useCallback(() => {\n setCalloutVisible(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: IAreaPolarSeries | ILinePolarSeries | IScatterPolarSeries, 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 ? props.theme!.semanticColors.bodyBackground : point.color}\n stroke={isActive ? point.color : 'none'}\n strokeWidth={isActive ? 2 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n data-is-focusable={shouldHighlight ? 0 : -1}\n onMouseOver={e => showCallout(e, point, id, series.legend)}\n onFocus={e => showCallout(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 showCallout,\n minMarkerSize,\n maxMarkerSize,\n markersOnlyMode,\n props.angularAxis?.unit,\n props.culture,\n props.useUTC,\n props.theme,\n ],\n );\n\n const onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: ILegend) => {\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: ILegend[] = 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 ref={legendsRef}\n {...props.legendProps}\n />\n </div>\n );\n }, [props.hideLegend, props.legendProps, legendsRef, onLegendSelectionChange, classes.legendContainer]);\n\n return (\n <div className={classes.root} ref={chartContainerRef} onMouseLeave={hideCallout} onBlur={hideCallout}>\n <FocusZone direction={FocusZoneDirection.horizontal} className={classes.chartWrapper}>\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 </FocusZone>\n {renderLegends()}\n {!props.hideTooltip && (\n <Callout\n hidden={!isCalloutVisible}\n target={calloutTarget}\n directionalHint={DirectionalHint.topAutoEdge}\n gapSpace={15}\n isBeakVisible={false}\n onDismiss={hideCallout}\n {...props.calloutProps}\n >\n <ChartHoverCard\n XValue={calloutXValue}\n Legend={calloutLegend}\n color={calloutColor}\n YValue={calloutYValue}\n culture={props.culture}\n />\n </Callout>\n )}\n </div>\n );\n});\n\nPolarChartBase.displayName = 'PolarChart';\n"]}
1
+ {"version":3,"file":"PolarChart.base.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IPolarChartProps, IPolarChartStyleProps, IPolarChartStyles } from './PolarChart.types';\nimport {\n pointRadial as d3PointRadial,\n areaRadial as d3AreaRadial,\n lineRadial as d3LineRadial,\n curveLinearClosed as d3CurveLinearClosed,\n} from 'd3-shape';\nimport {\n IAreaPolarSeries,\n IImageExportOptions,\n ILinePolarSeries,\n IPolarDataPoint,\n IScatterPolarSeries,\n} from '../../types/IDataPoint';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n createRadialScale,\n getContinuousScaleDomain,\n getScaleType,\n EPSILON,\n createAngularScale,\n formatAngle,\n} from './PolarChart.utils';\nimport {\n Callout,\n classNamesFunction,\n DirectionalHint,\n FocusZone,\n FocusZoneDirection,\n getRTL,\n getWindow,\n} from '@fluentui/react';\nimport {\n ChartHoverCard,\n getColorFromToken,\n getCurveFactory,\n getNextColor,\n isPlottable,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { extent as d3Extent } from 'd3-array';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\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\nconst getClassNames = classNamesFunction<IPolarChartStyleProps, IPolarChartStyles>();\n\nexport const PolarChartBase: React.FunctionComponent<IPolarChartProps> = React.forwardRef<\n HTMLDivElement,\n IPolarChartProps\n>((props, forwardedRef) => {\n const chartContainerRef = React.useRef<HTMLDivElement>(null);\n const legendsRef = React.useRef<ILegendContainer>(null);\n const legendContainerRef = React.useRef<HTMLDivElement>(null);\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 [isCalloutVisible, setCalloutVisible] = React.useState<boolean>(false);\n const [calloutTarget, setCalloutTarget] = React.useState<SVGElement | null>(null);\n const [calloutXValue, setCalloutXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [calloutColor, setCalloutColor] = React.useState<string>('');\n const [calloutYValue, setCalloutYValue] = 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.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: chartContainerRef.current,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: chartContainerRef.current }],\n props.hideLegend ? undefined : legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\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 _window = getWindow(legendContainerRef.current);\n const marginTop = _window?.getComputedStyle(legendContainerRef.current).marginTop || '0px';\n setLegendContainerHeight(Math.max(height, DEFAULT_LEGEND_HEIGHT) + parseFloat(marginTop));\n }\n }, [props.hideLegend]);\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>>(Object.create(null));\n const chartData = React.useMemo(() => {\n legendColorMap.current = Object.create(null);\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(() => chartData.flatMap(series => series.data.map(point => point.theta)), [chartData]);\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 = React.useMemo(\n () =>\n getClassNames(props.styles, {\n theme: props.theme!,\n }),\n [props.styles, props.theme],\n );\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: IAreaPolarSeries) => {\n const radialArea = d3AreaRadial<IPolarDataPoint>()\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: IAreaPolarSeries | ILinePolarSeries) => {\n const radialLine = d3LineRadial<IPolarDataPoint>()\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 showCallout = React.useCallback(\n (\n event: React.MouseEvent<SVGElement> | React.FocusEvent<SVGElement>,\n point: IPolarDataPoint,\n pointId: string,\n legend: string,\n ) => {\n setCalloutTarget(event.currentTarget);\n setCalloutVisible(legendHighlighted(legend));\n setCalloutXValue(point.angularAxisCalloutData ?? formatAngle(point.theta, props.angularAxis?.unit));\n setCalloutLegend(legend);\n setCalloutColor(point.color!);\n setCalloutYValue(\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 hideCallout = React.useCallback(() => {\n setCalloutVisible(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: IAreaPolarSeries | ILinePolarSeries | IScatterPolarSeries, 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 ? props.theme!.semanticColors.bodyBackground : point.color}\n stroke={isActive ? point.color : 'none'}\n strokeWidth={isActive ? 2 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n data-is-focusable={shouldHighlight ? 0 : -1}\n onMouseOver={e => showCallout(e, point, id, series.legend)}\n onFocus={e => showCallout(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 showCallout,\n minMarkerSize,\n maxMarkerSize,\n markersOnlyMode,\n props.angularAxis?.unit,\n props.culture,\n props.useUTC,\n props.theme,\n ],\n );\n\n const onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: ILegend) => {\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: ILegend[] = 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 ref={legendsRef}\n {...props.legendProps}\n />\n </div>\n );\n }, [props.hideLegend, props.legendProps, legendsRef, onLegendSelectionChange, classes.legendContainer]);\n\n return (\n <div className={classes.root} ref={chartContainerRef} onMouseLeave={hideCallout} onBlur={hideCallout}>\n <FocusZone direction={FocusZoneDirection.horizontal} className={classes.chartWrapper}>\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 </FocusZone>\n {renderLegends()}\n {!props.hideTooltip && (\n <Callout\n hidden={!isCalloutVisible}\n target={calloutTarget}\n directionalHint={DirectionalHint.topAutoEdge}\n gapSpace={15}\n isBeakVisible={false}\n onDismiss={hideCallout}\n {...props.calloutProps}\n >\n <ChartHoverCard\n XValue={calloutXValue}\n Legend={calloutLegend}\n color={calloutColor}\n YValue={calloutYValue}\n culture={props.culture}\n />\n </Callout>\n )}\n </div>\n );\n});\n\nPolarChartBase.displayName = 'PolarChart';\n"]}
@@ -129,7 +129,7 @@ define(["require", "exports", "d3-scale", "d3-array", "d3-format", "../../utilit
129
129
  var _a, _b;
130
130
  if (opts === void 0) { opts = {}; }
131
131
  if (scaleType === 'category') {
132
- var categoryIndexMap_1 = {};
132
+ var categoryIndexMap_1 = Object.create(null);
133
133
  domain.forEach(function (d, i) {
134
134
  categoryIndexMap_1[d] = i;
135
135
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PolarChart.utils.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n scaleBand as d3ScaleBand,\n scaleLinear as d3ScaleLinear,\n scaleLog as d3ScaleLog,\n scaleTime as d3ScaleTime,\n scaleUtc as d3ScaleUtc,\n NumberValue,\n ScaleBand,\n ScaleContinuousNumeric,\n ScaleTime,\n} from 'd3-scale';\nimport { extent as d3Extent, range as d3Range } from 'd3-array';\nimport { format as d3Format } from 'd3-format';\nimport { AxisScaleType } from '../../types/IDataPoint';\nimport {\n generateDateTicks,\n generateNumericTicks,\n getDateFormatLevel,\n isValidDomainValue,\n} from '../../utilities/utilities';\nimport {\n isInvalidValue,\n formatToLocaleString,\n getMultiLevelDateTimeFormatOptions,\n formatDateToLocaleString,\n} from '@fluentui/chart-utilities';\nimport { timeFormat as d3TimeFormat, utcFormat as d3UtcFormat } from 'd3-time-format';\nimport { IPolarChartProps } from './PolarChart.types';\nimport { precisionRound } from '@fluentui/react';\n\nexport const EPSILON = 1e-6;\n\nexport const createRadialScale = (\n scaleType: string,\n domain: (string | number | Date)[],\n range: number[],\n opts: {\n useUTC?: boolean;\n tickCount?: number;\n tickValues?: (string | number | Date)[];\n tickText?: string[];\n tickFormat?: string;\n culture?: string;\n tickStep?: number | string;\n tick0?: number | Date;\n dateLocalizeOptions?: Intl.DateTimeFormatOptions;\n } = {},\n): {\n scale: ScaleBand<string> | ScaleContinuousNumeric<number, number, undefined> | ScaleTime<number, number>;\n tickValues: (string | number | Date)[];\n tickLabels: string[];\n} => {\n if (scaleType === 'category') {\n const scale = d3ScaleBand()\n .domain(domain as string[])\n .range(range)\n .paddingInner(1);\n const tickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as string[]) : (domain as string[]);\n const tickFormat = (domainValue: string, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n return domainValue;\n };\n return { scale, tickValues, tickLabels: tickValues.map(tickFormat) };\n }\n\n let scale: ScaleContinuousNumeric<number, number, undefined> | ScaleTime<number, number>;\n if (scaleType === 'date') {\n scale = opts.useUTC ? d3ScaleUtc() : d3ScaleTime();\n } else {\n scale = scaleType === 'log' ? d3ScaleLog() : d3ScaleLinear();\n }\n\n scale.domain(domain as (number | Date)[]);\n scale.range(range);\n scale.nice();\n\n const tickCount = opts.tickCount ?? 4;\n let tickFormat;\n let customTickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as (number | Date)[]) : undefined;\n if (scaleType === 'date') {\n let lowestFormatLevel = 100;\n let highestFormatLevel = -1;\n\n (scale as ScaleTime<number, number>).ticks().forEach((domainValue: Date) => {\n const formatLevel = getDateFormatLevel(domainValue, opts.useUTC);\n if (formatLevel > highestFormatLevel) {\n highestFormatLevel = formatLevel;\n }\n if (formatLevel < lowestFormatLevel) {\n lowestFormatLevel = formatLevel;\n }\n });\n const formatOptions =\n opts.dateLocalizeOptions ?? getMultiLevelDateTimeFormatOptions(lowestFormatLevel, highestFormatLevel);\n tickFormat = (domainValue: Date, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n if (isInvalidValue(opts.culture) && typeof opts.tickFormat === 'string') {\n if (opts.useUTC) {\n return d3UtcFormat(opts.tickFormat)(domainValue);\n } else {\n return d3TimeFormat(opts.tickFormat)(domainValue);\n }\n }\n return formatDateToLocaleString(domainValue, opts.culture, opts.useUTC, false, formatOptions);\n };\n if (opts.tickStep) {\n customTickValues = generateDateTicks(opts.tickStep, opts.tick0, scale.domain() as Date[], opts.useUTC);\n }\n } else {\n const defaultTickFormat = (scale as ScaleContinuousNumeric<number, number>).tickFormat(tickCount);\n tickFormat = (domainValue: NumberValue, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n if (typeof opts.tickFormat === 'string') {\n return d3Format(opts.tickFormat)(domainValue);\n }\n const value = typeof domainValue === 'number' ? domainValue : domainValue.valueOf();\n return defaultTickFormat(value) === '' ? '' : (formatToLocaleString(value, opts.culture) as string);\n };\n if (opts.tickStep) {\n customTickValues = generateNumericTicks(\n scaleType as AxisScaleType,\n opts.tickStep,\n opts.tick0,\n scale.domain() as number[],\n );\n }\n }\n const tickValues = customTickValues ?? scale.ticks(tickCount);\n\n return { scale, tickValues, tickLabels: tickValues.map(tickFormat) };\n};\n\nexport const getScaleType = (\n values: (string | number | Date)[],\n opts: {\n scaleType?: AxisScaleType;\n supportsLog?: boolean;\n } = {},\n): string => {\n let scaleType = 'category';\n if (typeof values[0] === 'number') {\n if (opts.supportsLog && opts.scaleType === 'log') {\n scaleType = 'log';\n } else {\n scaleType = 'linear';\n }\n } else if (values[0] instanceof Date) {\n scaleType = 'date';\n }\n return scaleType;\n};\n\nexport const getContinuousScaleDomain = (\n scaleType: string,\n values: (number | Date)[],\n opts: {\n rangeStart?: number | Date;\n rangeEnd?: number | Date;\n } = {},\n): (number | Date)[] => {\n let [min, max] = d3Extent(values.filter(v => isValidDomainValue(v, scaleType as AxisScaleType)) as (number | Date)[]);\n if (scaleType === 'linear') {\n [min, max] = d3Extent([min, max, 0] as number[]);\n }\n if (!isInvalidValue(opts.rangeStart)) {\n min = opts.rangeStart;\n }\n if (!isInvalidValue(opts.rangeEnd)) {\n max = opts.rangeEnd;\n }\n\n if (isInvalidValue(min) || isInvalidValue(max)) {\n return [];\n }\n return [min!, max!];\n};\n\nconst degToRad = (deg: number) => (deg * Math.PI) / 180;\n\nconst radToDeg = (rad: number) => (rad * 180) / Math.PI;\n\nconst normalizeAngle = (deg: number, direction: IPolarChartProps['direction']) =>\n (((direction === 'clockwise' ? deg : 450 - deg) % 360) + 360) % 360;\n\nexport const createAngularScale = (\n scaleType: string,\n domain: (string | number | Date)[],\n opts: {\n tickCount?: number;\n tickValues?: (string | number | Date)[];\n tickText?: string[];\n tickFormat?: string;\n culture?: string;\n tickStep?: number | string;\n tick0?: number | Date;\n direction?: IPolarChartProps['direction'];\n unit?: NonNullable<IPolarChartProps['angularAxis']>['unit'];\n } = {},\n): { scale: (v: string | number) => number; tickValues: (string | number)[]; tickLabels: string[] } => {\n if (scaleType === 'category') {\n const categoryIndexMap: Record<string, number> = {};\n (domain as string[]).forEach((d, i) => {\n categoryIndexMap[d] = i;\n });\n const period = 360 / domain.length;\n const tickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as string[]) : (domain as string[]);\n const tickFormat = (domainValue: string, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n return domainValue;\n };\n return {\n scale: (v: string) => degToRad(normalizeAngle(categoryIndexMap[v] * period, opts.direction)),\n tickValues,\n tickLabels: tickValues.map(tickFormat),\n };\n }\n\n let customTickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as number[]) : undefined;\n const tickFormat = (domainValue: number, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n if (typeof opts.tickFormat === 'string') {\n return d3Format(opts.tickFormat)(domainValue);\n }\n return formatAngle(domainValue, opts.unit);\n };\n if (opts.tickStep) {\n customTickValues = generateNumericTicks(scaleType as AxisScaleType, opts.tickStep, opts.tick0, [\n 0,\n (opts.unit === 'radians' ? 2 * Math.PI : 360) - EPSILON,\n ])?.map(v => (opts.unit === 'radians' ? radToDeg(v) : v));\n }\n const tickValues = customTickValues ?? d3Range(0, 360, 360 / (opts.tickCount ?? 8));\n\n return {\n scale: (v: number) => degToRad(normalizeAngle(v, opts.direction)),\n tickValues,\n tickLabels: tickValues.map(tickFormat),\n };\n};\n\nexport const formatAngle = (\n value: string | number,\n unit: NonNullable<IPolarChartProps['angularAxis']>['unit'],\n): string =>\n typeof value === 'string'\n ? value\n : unit === 'radians'\n ? `${precisionRound(value / 180, 6)}π`\n : `${precisionRound(value, 6)}°`;\n"]}
1
+ {"version":3,"file":"PolarChart.utils.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n scaleBand as d3ScaleBand,\n scaleLinear as d3ScaleLinear,\n scaleLog as d3ScaleLog,\n scaleTime as d3ScaleTime,\n scaleUtc as d3ScaleUtc,\n NumberValue,\n ScaleBand,\n ScaleContinuousNumeric,\n ScaleTime,\n} from 'd3-scale';\nimport { extent as d3Extent, range as d3Range } from 'd3-array';\nimport { format as d3Format } from 'd3-format';\nimport { AxisScaleType } from '../../types/IDataPoint';\nimport {\n generateDateTicks,\n generateNumericTicks,\n getDateFormatLevel,\n isValidDomainValue,\n} from '../../utilities/utilities';\nimport {\n isInvalidValue,\n formatToLocaleString,\n getMultiLevelDateTimeFormatOptions,\n formatDateToLocaleString,\n} from '@fluentui/chart-utilities';\nimport { timeFormat as d3TimeFormat, utcFormat as d3UtcFormat } from 'd3-time-format';\nimport { IPolarChartProps } from './PolarChart.types';\nimport { precisionRound } from '@fluentui/react';\n\nexport const EPSILON = 1e-6;\n\nexport const createRadialScale = (\n scaleType: string,\n domain: (string | number | Date)[],\n range: number[],\n opts: {\n useUTC?: boolean;\n tickCount?: number;\n tickValues?: (string | number | Date)[];\n tickText?: string[];\n tickFormat?: string;\n culture?: string;\n tickStep?: number | string;\n tick0?: number | Date;\n dateLocalizeOptions?: Intl.DateTimeFormatOptions;\n } = {},\n): {\n scale: ScaleBand<string> | ScaleContinuousNumeric<number, number, undefined> | ScaleTime<number, number>;\n tickValues: (string | number | Date)[];\n tickLabels: string[];\n} => {\n if (scaleType === 'category') {\n const scale = d3ScaleBand()\n .domain(domain as string[])\n .range(range)\n .paddingInner(1);\n const tickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as string[]) : (domain as string[]);\n const tickFormat = (domainValue: string, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n return domainValue;\n };\n return { scale, tickValues, tickLabels: tickValues.map(tickFormat) };\n }\n\n let scale: ScaleContinuousNumeric<number, number, undefined> | ScaleTime<number, number>;\n if (scaleType === 'date') {\n scale = opts.useUTC ? d3ScaleUtc() : d3ScaleTime();\n } else {\n scale = scaleType === 'log' ? d3ScaleLog() : d3ScaleLinear();\n }\n\n scale.domain(domain as (number | Date)[]);\n scale.range(range);\n scale.nice();\n\n const tickCount = opts.tickCount ?? 4;\n let tickFormat;\n let customTickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as (number | Date)[]) : undefined;\n if (scaleType === 'date') {\n let lowestFormatLevel = 100;\n let highestFormatLevel = -1;\n\n (scale as ScaleTime<number, number>).ticks().forEach((domainValue: Date) => {\n const formatLevel = getDateFormatLevel(domainValue, opts.useUTC);\n if (formatLevel > highestFormatLevel) {\n highestFormatLevel = formatLevel;\n }\n if (formatLevel < lowestFormatLevel) {\n lowestFormatLevel = formatLevel;\n }\n });\n const formatOptions =\n opts.dateLocalizeOptions ?? getMultiLevelDateTimeFormatOptions(lowestFormatLevel, highestFormatLevel);\n tickFormat = (domainValue: Date, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n if (isInvalidValue(opts.culture) && typeof opts.tickFormat === 'string') {\n if (opts.useUTC) {\n return d3UtcFormat(opts.tickFormat)(domainValue);\n } else {\n return d3TimeFormat(opts.tickFormat)(domainValue);\n }\n }\n return formatDateToLocaleString(domainValue, opts.culture, opts.useUTC, false, formatOptions);\n };\n if (opts.tickStep) {\n customTickValues = generateDateTicks(opts.tickStep, opts.tick0, scale.domain() as Date[], opts.useUTC);\n }\n } else {\n const defaultTickFormat = (scale as ScaleContinuousNumeric<number, number>).tickFormat(tickCount);\n tickFormat = (domainValue: NumberValue, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n if (typeof opts.tickFormat === 'string') {\n return d3Format(opts.tickFormat)(domainValue);\n }\n const value = typeof domainValue === 'number' ? domainValue : domainValue.valueOf();\n return defaultTickFormat(value) === '' ? '' : (formatToLocaleString(value, opts.culture) as string);\n };\n if (opts.tickStep) {\n customTickValues = generateNumericTicks(\n scaleType as AxisScaleType,\n opts.tickStep,\n opts.tick0,\n scale.domain() as number[],\n );\n }\n }\n const tickValues = customTickValues ?? scale.ticks(tickCount);\n\n return { scale, tickValues, tickLabels: tickValues.map(tickFormat) };\n};\n\nexport const getScaleType = (\n values: (string | number | Date)[],\n opts: {\n scaleType?: AxisScaleType;\n supportsLog?: boolean;\n } = {},\n): string => {\n let scaleType = 'category';\n if (typeof values[0] === 'number') {\n if (opts.supportsLog && opts.scaleType === 'log') {\n scaleType = 'log';\n } else {\n scaleType = 'linear';\n }\n } else if (values[0] instanceof Date) {\n scaleType = 'date';\n }\n return scaleType;\n};\n\nexport const getContinuousScaleDomain = (\n scaleType: string,\n values: (number | Date)[],\n opts: {\n rangeStart?: number | Date;\n rangeEnd?: number | Date;\n } = {},\n): (number | Date)[] => {\n let [min, max] = d3Extent(values.filter(v => isValidDomainValue(v, scaleType as AxisScaleType)) as (number | Date)[]);\n if (scaleType === 'linear') {\n [min, max] = d3Extent([min, max, 0] as number[]);\n }\n if (!isInvalidValue(opts.rangeStart)) {\n min = opts.rangeStart;\n }\n if (!isInvalidValue(opts.rangeEnd)) {\n max = opts.rangeEnd;\n }\n\n if (isInvalidValue(min) || isInvalidValue(max)) {\n return [];\n }\n return [min!, max!];\n};\n\nconst degToRad = (deg: number) => (deg * Math.PI) / 180;\n\nconst radToDeg = (rad: number) => (rad * 180) / Math.PI;\n\nconst normalizeAngle = (deg: number, direction: IPolarChartProps['direction']) =>\n (((direction === 'clockwise' ? deg : 450 - deg) % 360) + 360) % 360;\n\nexport const createAngularScale = (\n scaleType: string,\n domain: (string | number | Date)[],\n opts: {\n tickCount?: number;\n tickValues?: (string | number | Date)[];\n tickText?: string[];\n tickFormat?: string;\n culture?: string;\n tickStep?: number | string;\n tick0?: number | Date;\n direction?: IPolarChartProps['direction'];\n unit?: NonNullable<IPolarChartProps['angularAxis']>['unit'];\n } = {},\n): { scale: (v: string | number) => number; tickValues: (string | number)[]; tickLabels: string[] } => {\n if (scaleType === 'category') {\n const categoryIndexMap: Record<string, number> = Object.create(null);\n (domain as string[]).forEach((d, i) => {\n categoryIndexMap[d] = i;\n });\n const period = 360 / domain.length;\n const tickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as string[]) : (domain as string[]);\n const tickFormat = (domainValue: string, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n return domainValue;\n };\n return {\n scale: (v: string) => degToRad(normalizeAngle(categoryIndexMap[v] * period, opts.direction)),\n tickValues,\n tickLabels: tickValues.map(tickFormat),\n };\n }\n\n let customTickValues = Array.isArray(opts.tickValues) ? (opts.tickValues as number[]) : undefined;\n const tickFormat = (domainValue: number, index: number) => {\n if (Array.isArray(opts.tickValues) && Array.isArray(opts.tickText) && !isInvalidValue(opts.tickText[index])) {\n return opts.tickText[index];\n }\n if (typeof opts.tickFormat === 'string') {\n return d3Format(opts.tickFormat)(domainValue);\n }\n return formatAngle(domainValue, opts.unit);\n };\n if (opts.tickStep) {\n customTickValues = generateNumericTicks(scaleType as AxisScaleType, opts.tickStep, opts.tick0, [\n 0,\n (opts.unit === 'radians' ? 2 * Math.PI : 360) - EPSILON,\n ])?.map(v => (opts.unit === 'radians' ? radToDeg(v) : v));\n }\n const tickValues = customTickValues ?? d3Range(0, 360, 360 / (opts.tickCount ?? 8));\n\n return {\n scale: (v: number) => degToRad(normalizeAngle(v, opts.direction)),\n tickValues,\n tickLabels: tickValues.map(tickFormat),\n };\n};\n\nexport const formatAngle = (\n value: string | number,\n unit: NonNullable<IPolarChartProps['angularAxis']>['unit'],\n): string =>\n typeof value === 'string'\n ? value\n : unit === 'radians'\n ? `${precisionRound(value / 180, 6)}π`\n : `${precisionRound(value, 6)}°`;\n"]}
@@ -114,7 +114,7 @@ define(["require", "exports", "tslib", "@fluentui/react-focus", "@fluentui/react
114
114
  */
115
115
  // This is exported for unit tests.
116
116
  function groupNodesByColumn(graph) {
117
- var nodesInColumn = {};
117
+ var nodesInColumn = Object.create(null);
118
118
  graph.nodes.forEach(function (node) {
119
119
  var columnId = node.layer;
120
120
  if (nodesInColumn[columnId]) {
@@ -229,19 +229,19 @@ define(["require", "exports", "tslib", "@fluentui/react-focus", "@fluentui/react
229
229
  };
230
230
  }
231
231
  function valuesOfNodes(nodes) {
232
- var result = {};
232
+ var result = Object.create(null);
233
233
  nodes.forEach(function (node) {
234
234
  result[node.nodeId] = node.value;
235
235
  });
236
236
  return result;
237
237
  }
238
238
  function valuesOfLinks(links) {
239
- var result = {};
239
+ var result = Object.create(null);
240
240
  links.forEach(function (link) {
241
241
  var sourceId = idFromNumberOrSNode(link.source);
242
242
  var sourceToTarget = result[sourceId];
243
243
  if (!sourceToTarget) {
244
- sourceToTarget = {};
244
+ sourceToTarget = Object.create(null);
245
245
  result[sourceId] = sourceToTarget;
246
246
  }
247
247
  sourceToTarget[idFromNumberOrSNode(link.target)] = link.value;
@@ -355,12 +355,12 @@ define(["require", "exports", "tslib", "@fluentui/react-focus", "@fluentui/react
355
355
  return measurement === undefined ? 0 : measurement;
356
356
  }
357
357
  function computeLinkAttributes(links, linkFrom, linkAriaLabel) {
358
- var result = {};
358
+ var result = Object.create(null);
359
359
  links.forEach(function (link) {
360
360
  var sourceId = idFromNumberOrSNode(link.source);
361
361
  var sourceToTarget = result[sourceId];
362
362
  if (!sourceToTarget) {
363
- sourceToTarget = {};
363
+ sourceToTarget = Object.create(null);
364
364
  result[sourceId] = sourceToTarget;
365
365
  }
366
366
  sourceToTarget[idFromNumberOrSNode(link.target)] = {
@@ -619,7 +619,7 @@ define(["require", "exports", "tslib", "@fluentui/react-focus", "@fluentui/react
619
619
  };
620
620
  SankeyChartBase.prototype._computeNodeAttributes = function (nodes, nodeAriaLabel) {
621
621
  var _this = this;
622
- var result = {};
622
+ var result = Object.create(null);
623
623
  var weightSpan = (0, d3_selection_1.select)('.nodeName').append('text').attr('class', 'tempText').append('tspan').text(null);
624
624
  var nameSpan = (0, d3_selection_1.select)('.nodeName')
625
625
  .append('text')