@fluentui/react-charts 9.3.17 → 9.3.18

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 (259) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/dist/index.d.ts +11 -11
  3. package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +3 -1
  4. package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -1
  5. package/lib/components/AreaChart/AreaChart.js +3 -5
  6. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  7. package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
  8. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
  9. package/lib/components/ChartTable/ChartTable.js.map +1 -1
  10. package/lib/components/ChartTable/ChartTable.types.js +4 -1
  11. package/lib/components/ChartTable/ChartTable.types.js.map +1 -1
  12. package/lib/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
  13. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  14. package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -1
  15. package/lib/components/CommonComponents/CartesianChart.js +6 -6
  16. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  17. package/lib/components/CommonComponents/CartesianChart.types.js +2 -1
  18. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  19. package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
  20. package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
  21. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
  22. package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
  23. package/lib/components/DeclarativeChart/DeclarativeChart.js +0 -1
  24. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  25. package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +0 -1
  26. package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  27. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +0 -1
  28. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  29. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  30. package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
  31. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
  32. package/lib/components/DonutChart/DonutChart.js +1 -2
  33. package/lib/components/DonutChart/DonutChart.js.map +1 -1
  34. package/lib/components/DonutChart/DonutChart.types.js +4 -1
  35. package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
  36. package/lib/components/DonutChart/Pie/Pie.js +2 -5
  37. package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
  38. package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -1
  39. package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -1
  40. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -1
  41. package/lib/components/FunnelChart/FunnelChart.js.map +1 -1
  42. package/lib/components/FunnelChart/FunnelChart.types.js +4 -1
  43. package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
  44. package/lib/components/FunnelChart/funnelGeometry.js +0 -1
  45. package/lib/components/FunnelChart/funnelGeometry.js.map +1 -1
  46. package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -1
  47. package/lib/components/GanttChart/GanttChart.js.map +1 -1
  48. package/lib/components/GanttChart/GanttChart.types.js.map +1 -1
  49. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
  50. package/lib/components/GaugeChart/GaugeChart.js +1 -4
  51. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  52. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  53. package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -1
  54. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +2 -3
  55. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  56. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  57. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
  58. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  59. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +1 -1
  60. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  61. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +0 -1
  62. package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  63. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
  64. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +1 -2
  65. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  66. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  67. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
  68. package/lib/components/Legends/Legends.js +1 -1
  69. package/lib/components/Legends/Legends.js.map +1 -1
  70. package/lib/components/Legends/Legends.types.js +3 -1
  71. package/lib/components/Legends/Legends.types.js.map +1 -1
  72. package/lib/components/Legends/shape.js.map +1 -1
  73. package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
  74. package/lib/components/LineChart/LineChart.js +16 -16
  75. package/lib/components/LineChart/LineChart.js.map +1 -1
  76. package/lib/components/LineChart/LineChart.types.js.map +1 -1
  77. package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  78. package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  79. package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
  80. package/lib/components/PolarChart/PolarChart.js.map +1 -1
  81. package/lib/components/PolarChart/PolarChart.types.js +4 -1
  82. package/lib/components/PolarChart/PolarChart.types.js.map +1 -1
  83. package/lib/components/PolarChart/PolarChart.utils.js.map +1 -1
  84. package/lib/components/PolarChart/usePolarChartStyles.styles.raw.js.map +1 -1
  85. package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  86. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js +4 -1
  87. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  88. package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -1
  89. package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  90. package/lib/components/SankeyChart/SankeyChart.js +2 -2
  91. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  92. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  93. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -1
  94. package/lib/components/ScatterChart/ScatterChart.js +3 -4
  95. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  96. package/lib/components/ScatterChart/ScatterChart.types.js +1 -1
  97. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  98. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
  99. package/lib/components/Sparkline/Sparkline.js +3 -4
  100. package/lib/components/Sparkline/Sparkline.js.map +1 -1
  101. package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
  102. package/lib/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -1
  103. package/lib/components/VegaDeclarativeChart/VegaDeclarativeChartHooks.js.map +1 -1
  104. package/lib/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js +1 -1
  105. package/lib/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js.map +1 -1
  106. package/lib/components/VerticalBarChart/VerticalBarChart.js +5 -8
  107. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  108. package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  109. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
  110. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +5 -5
  111. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  112. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +4 -1
  113. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  114. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
  115. package/lib/types/ChartAnnotation.js +1 -1
  116. package/lib/types/ChartAnnotation.js.map +1 -1
  117. package/lib/types/DataPoint.js.map +1 -1
  118. package/lib/types/EventAnnotation.js +1 -1
  119. package/lib/types/EventAnnotation.js.map +1 -1
  120. package/lib/utilities/ChartTitle.js.map +1 -1
  121. package/lib/utilities/FocusableTooltipText.js.map +1 -1
  122. package/lib/utilities/async-utils.js +20 -20
  123. package/lib/utilities/async-utils.js.map +1 -1
  124. package/lib/utilities/hooks.js.map +1 -1
  125. package/lib/utilities/image-export-utils.js.map +1 -1
  126. package/lib/utilities/scatterpolar-utils.js.map +1 -1
  127. package/lib/utilities/test-data.js.map +1 -1
  128. package/lib/utilities/utilities.js +4 -7
  129. package/lib/utilities/utilities.js.map +1 -1
  130. package/lib/utilities/vbc-utils.js.map +1 -1
  131. package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +3 -3
  132. package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -1
  133. package/lib-commonjs/components/AreaChart/AreaChart.js +3 -5
  134. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  135. package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
  136. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
  137. package/lib-commonjs/components/ChartTable/ChartTable.js.map +1 -1
  138. package/lib-commonjs/components/ChartTable/ChartTable.types.js +4 -3
  139. package/lib-commonjs/components/ChartTable/ChartTable.types.js.map +1 -1
  140. package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
  141. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  142. package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -1
  143. package/lib-commonjs/components/CommonComponents/CartesianChart.js +6 -6
  144. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  145. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js +1 -2
  146. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  147. package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
  148. package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
  149. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
  150. package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
  151. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +0 -1
  152. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  153. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js +0 -2
  154. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  155. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +0 -2
  156. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  157. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  158. package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
  159. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
  160. package/lib-commonjs/components/DonutChart/DonutChart.js +1 -2
  161. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
  162. package/lib-commonjs/components/DonutChart/DonutChart.types.js +4 -3
  163. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  164. package/lib-commonjs/components/DonutChart/Pie/Pie.js +2 -5
  165. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
  166. package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -1
  167. package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -1
  168. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -1
  169. package/lib-commonjs/components/FunnelChart/FunnelChart.js.map +1 -1
  170. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js +4 -3
  171. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
  172. package/lib-commonjs/components/FunnelChart/funnelGeometry.js +0 -2
  173. package/lib-commonjs/components/FunnelChart/funnelGeometry.js.map +1 -1
  174. package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -1
  175. package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -1
  176. package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -1
  177. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
  178. package/lib-commonjs/components/GaugeChart/GaugeChart.js +1 -4
  179. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  180. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  181. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -1
  182. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +2 -3
  183. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  184. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  185. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
  186. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  187. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +1 -1
  188. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  189. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +3 -3
  190. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
  191. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
  192. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +1 -2
  193. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  194. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  195. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
  196. package/lib-commonjs/components/Legends/Legends.js +1 -1
  197. package/lib-commonjs/components/Legends/Legends.js.map +1 -1
  198. package/lib-commonjs/components/Legends/Legends.types.js +3 -3
  199. package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
  200. package/lib-commonjs/components/Legends/shape.js.map +1 -1
  201. package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
  202. package/lib-commonjs/components/LineChart/LineChart.js +16 -16
  203. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  204. package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
  205. package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  206. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  207. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
  208. package/lib-commonjs/components/PolarChart/PolarChart.js.map +1 -1
  209. package/lib-commonjs/components/PolarChart/PolarChart.types.js +4 -3
  210. package/lib-commonjs/components/PolarChart/PolarChart.types.js.map +1 -1
  211. package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -1
  212. package/lib-commonjs/components/PolarChart/usePolarChartStyles.styles.raw.js.map +1 -1
  213. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  214. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js +4 -3
  215. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  216. package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -1
  217. package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  218. package/lib-commonjs/components/SankeyChart/SankeyChart.js +2 -2
  219. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
  220. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  221. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -1
  222. package/lib-commonjs/components/ScatterChart/ScatterChart.js +3 -4
  223. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  224. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js +1 -1
  225. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  226. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
  227. package/lib-commonjs/components/Sparkline/Sparkline.js +3 -4
  228. package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
  229. package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
  230. package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -1
  231. package/lib-commonjs/components/VegaDeclarativeChart/VegaDeclarativeChartHooks.js.map +1 -1
  232. package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js +1 -1
  233. package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js.map +1 -1
  234. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +5 -8
  235. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  236. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
  237. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
  238. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +5 -5
  239. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  240. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +4 -3
  241. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  242. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
  243. package/lib-commonjs/types/ChartAnnotation.js +0 -2
  244. package/lib-commonjs/types/ChartAnnotation.js.map +1 -1
  245. package/lib-commonjs/types/DataPoint.js.map +1 -1
  246. package/lib-commonjs/types/EventAnnotation.js +0 -2
  247. package/lib-commonjs/types/EventAnnotation.js.map +1 -1
  248. package/lib-commonjs/utilities/ChartTitle.js.map +1 -1
  249. package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -1
  250. package/lib-commonjs/utilities/async-utils.js +20 -20
  251. package/lib-commonjs/utilities/async-utils.js.map +1 -1
  252. package/lib-commonjs/utilities/hooks.js.map +1 -1
  253. package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
  254. package/lib-commonjs/utilities/scatterpolar-utils.js.map +1 -1
  255. package/lib-commonjs/utilities/test-data.js.map +1 -1
  256. package/lib-commonjs/utilities/utilities.js +2 -2
  257. package/lib-commonjs/utilities/utilities.js.map +1 -1
  258. package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
  259. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ScatterChart/ScatterChart.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ScatterChartProps } from './ScatterChart.types';\nimport { useScatterChartStyles } from './useScatterChartStyles.styles';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { Legend, Legends } from '../Legends/index';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { useId } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport {\n areArraysEqual,\n createNumericYAxis,\n createStringYAxis,\n getDomainPaddingForMarkers,\n domainRangeOfXStringAxis,\n findNumericMinMaxOfY,\n IDomainNRange,\n YAxisType,\n isTextMode,\n isScatterPolarSeries,\n isPlottable,\n getRangeForScatterMarkerSize,\n calculateMarkerRadius,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n domainRangeOfNumericForAreaLineScatterCharts,\n sortAxisCategories,\n findCalloutPoints,\n} from '../../utilities/index';\nimport {\n AccessibilityProps,\n CartesianChart,\n ChildProps,\n CustomizedCalloutData,\n Margins,\n RefArrayData,\n ScatterChartDataPoint,\n ScatterChartPoints,\n YValueHover,\n} from '../../index';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n calloutData,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n} from '../../utilities/index';\nimport { LineChartPoints } from '../../types/DataPoint';\nimport { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { useImageExport } from '../../utilities/hooks';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\ntype ScatterChartDataWithIndex = ScatterChartPoints & { index: number };\n\n// Create a ScatterChart variant which uses these default styles and this styled subcomponent.\n/**\n * ScatterChart component\n * {@docCategory ScatterChart}\n */\nexport const ScatterChart: React.FunctionComponent<ScatterChartProps> = React.forwardRef<\n HTMLDivElement,\n ScatterChartProps\n>((props, forwardedRef) => {\n const _circleId: string = useId('circle');\n const _seriesId: string = useId('seriesID');\n const _verticalLine: string = useId('verticalLine');\n const _firstRenderOptimization = true;\n const _emptyChartId: string = useId('_ScatterChart_empty');\n let _points: ScatterChartDataWithIndex[] = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let _xAxisScale: any = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let _yAxisScale: any = '';\n let _uniqueCallOutID: string | null = '';\n let _refArray: RefArrayData[] = [];\n let margins: Margins;\n let renderSeries: JSXElement[];\n let _xAxisLabels: string[] = [];\n let xAxisCalloutAccessibilityData: AccessibilityProps = {};\n let _xBandwidth = 0;\n const { cartesianChartRef, legendsRef: _legendsRef } = useImageExport(props.componentRef, props.hideLegend);\n const classes = useScatterChartStyles(props);\n\n const [hoverXValue, setHoverXValue] = React.useState<string | number>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [yValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [selectedLegendPoints, setSelectedLegendPoints] = React.useState<any[]>([]);\n const [isSelectedLegend, setIsSelectedLegend] = React.useState<boolean>(false);\n const [activePoint, setActivePoint] = React.useState<string>('');\n const [stackCalloutProps, setStackCalloutProps] = React.useState<CustomizedCalloutData>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<CustomizedCalloutData>();\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const prevSelectedLegendsRef = React.useRef<string[] | undefined>(undefined);\n const _isTextMode = React.useRef(false);\n const _isScatterPolarRef = React.useRef(false);\n\n React.useEffect(() => {\n if (\n prevSelectedLegendsRef.current &&\n !areArraysEqual(prevSelectedLegendsRef.current, props.legendProps?.selectedLegends)\n ) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n prevSelectedLegendsRef.current = props.legendProps?.selectedLegends;\n }, [props.legendProps?.selectedLegends]);\n\n const _xAxisType: XAxisTypes =\n props.data.scatterChartData! &&\n props.data.scatterChartData!.length > 0 &&\n props.data.scatterChartData![0].data &&\n props.data.scatterChartData![0].data.length > 0\n ? (getTypeOfAxis(props.data.scatterChartData![0].data[0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n\n // Detect y axis type (numeric or string)\n const _yAxisType: YAxisType =\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData[0].data &&\n props.data.scatterChartData[0].data.length > 0\n ? typeof props.data.scatterChartData[0].data[0].y === 'string'\n ? YAxisType.StringAxis\n : YAxisType.NumericAxis\n : YAxisType.NumericAxis;\n\n const pointsRef = React.useRef<ScatterChartDataWithIndex[] | []>([]);\n const calloutPointsRef = React.useRef<Record<string, YValueHover[]>>({});\n React.useEffect(() => {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n\n if (_points !== _injectIndexPropertyInScatterChartData(props.data.scatterChartData) || props.data !== _points) {\n pointsRef.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n calloutPointsRef.current = calloutData(pointsRef.current);\n }\n }, [props.height, props.width, props.data, _points]);\n\n function _injectIndexPropertyInScatterChartData(\n scatterChartData?: ScatterChartPoints[],\n ): ScatterChartDataWithIndex[] | [] {\n return scatterChartData\n ? scatterChartData.map((item: ScatterChartPoints, index: number) => {\n let color: string;\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0);\n } else {\n color = getColorFromToken(item.color);\n }\n return {\n ...item,\n index: -1,\n color,\n };\n })\n : [];\n }\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n function _getNumericMinMaxOfY(\n points: ScatterChartPoints[],\n yAxisType?: YAxisType,\n ): { startValue: number; endValue: number } {\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType);\n const yPadding = getDomainPaddingForMarkers(startValue, endValue, props.yScaleType);\n\n return {\n startValue: startValue - yPadding.start,\n endValue: endValue + yPadding.end,\n };\n }\n\n function _getDomainNRangeValues(\n points: any,\n margins: Margins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaLineScatterCharts(\n points,\n margins,\n width,\n isRTL,\n props.xScaleType,\n true,\n props.xMinValue,\n props.xMaxValue,\n );\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n function _getMargins(_margins: Margins) {\n margins = _margins;\n }\n\n function _initializeScatterChartData(\n xScale: NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) {\n _xAxisScale = xScale;\n _yAxisScale = yScale;\n _isTextMode.current = isTextMode(_points);\n _isScatterPolarRef.current = isScatterPolarSeries(_points);\n renderSeries = _createPlot(xElement!, containerHeight!);\n }\n\n function _onHoverCardHide() {\n setSelectedLegendPoints([]);\n setIsSelectedLegend(false);\n }\n\n function _createLegends(data: ScatterChartDataWithIndex[]): JSXElement {\n const { legendProps } = props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, ScatterChartDataWithIndex[]> = {};\n data.forEach((point: ScatterChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: Legend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: Legend = {\n title: legendTitle,\n color: representativePoint.color!,\n onMouseOutAction: () => {\n setActiveLegend('');\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n setActiveLegend(legendTitle);\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n };\n return legend;\n });\n\n return (\n <Legends\n legends={[...legendDataItems]}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: _onHoverCardHide })}\n {...props.legendProps}\n selectedLegends={selectedLegends}\n onChange={_onLegendSelectionChange}\n legendRef={_legendsRef}\n />\n );\n }\n\n function _getOrderedYAxisLabels() {\n const shouldOrderYAxisLabelsByCategoryOrder =\n _yAxisType === YAxisType.StringAxis && props.yAxisCategoryOrder !== 'default';\n if (!shouldOrderYAxisLabelsByCategoryOrder) {\n // Collect all unique string y values from all data points in all series, in reverse order\n const yLabelsSet = new Set<string>();\n for (let i = _points.length - 1; i >= 0; i--) {\n const point = _points[i];\n if (point.data && Array.isArray(point.data)) {\n for (const d of point.data) {\n if (typeof d.y === 'string') {\n yLabelsSet.add(d.y);\n }\n }\n }\n }\n return Array.from(yLabelsSet);\n }\n\n return sortAxisCategories(_mapCategoryToValues(), props.yAxisCategoryOrder);\n }\n\n function _mapCategoryToValues() {\n const categoryToValues: Record<string, number[]> = {};\n _points.forEach(point => {\n if (point.data && Array.isArray(point.data)) {\n point.data.forEach(d => {\n if (typeof d.y === 'string') {\n if (!categoryToValues[d.y]) {\n categoryToValues[d.y] = [];\n }\n if (typeof d.x === 'number') {\n categoryToValues[d.y].push(d.x);\n }\n }\n });\n }\n });\n return categoryToValues;\n }\n\n function _onLegendSelectionChange(\n legendsSelected: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(legendsSelected);\n } else {\n setSelectedLegends(legendsSelected.slice(-1));\n }\n\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(legendsSelected, event, currentLegend);\n }\n }\n\n function _getPointFill(seriesColor: string, pointId: string, pointIndex: number, isLastPoint: boolean) {\n if (activePoint === pointId) {\n return tokens.colorNeutralBackground1;\n } else {\n return seriesColor;\n }\n }\n\n function _createPlot(xElement: SVGElement, containerHeight: number): JSXElement[] {\n const series: JSXElement[] = [];\n if (isSelectedLegend) {\n _points = selectedLegendPoints;\n } else {\n _points = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n }\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n _xBandwidth = _xAxisScale.bandwidth() / 2;\n }\n\n const minMarkerSize =\n d3Min(_points, (point: ScatterChartPoints) => {\n return d3Min(point.data as ScatterChartDataPoint[], (item: ScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const maxMarkerSize =\n d3Max(_points, (point: ScatterChartPoints) => {\n return d3Max(point.data as ScatterChartDataPoint[], (item: ScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const isContinuousXY = _xAxisType !== XAxisTypes.StringAxis && _yAxisType !== YAxisType.StringAxis;\n const extraMaxPixels = isContinuousXY\n ? getRangeForScatterMarkerSize({\n data: _points,\n xScale: _xAxisScale,\n yScalePrimary: _yAxisScale,\n xScaleType: props.xScaleType,\n yScaleType: props.yScaleType,\n })\n : 0;\n\n for (let i = _points.length - 1; i >= 0; i--) {\n const pointsForSeries: JSXElement[] = [];\n\n const legendVal: string = _points[i].legend;\n const seriesColor: string = _points[i].color!;\n const verticaLineHeight = containerHeight - margins.bottom! + 6;\n\n for (let j = 0; j < _points[i].data.length; j++) {\n const { x, y, xAxisCalloutData, xAxisCalloutAccessibilityData } = _points?.[i]?.data[j];\n const xPoint = _xAxisScale?.(x);\n // Use string y axis scale if needed\n const yPoint =\n _yAxisType === YAxisType.StringAxis\n ? _yAxisScale?.(y) + (_yAxisScale?.bandwidth ? _yAxisScale.bandwidth() / 2 : 0)\n : _yAxisScale?.(y);\n if (!isPlottable(xPoint, yPoint)) {\n continue;\n }\n const seriesId = `${_seriesId}_${i}_${j}`;\n const circleId = `${_circleId}_${i}_${j}`;\n const pointMarkerSize = (_points[i].data[j] as ScatterChartDataPoint).markerSize;\n const circleRadius = calculateMarkerRadius({\n pointMarkerSize,\n minMarkerSize,\n maxMarkerSize,\n extraMaxPixels,\n isContinuousXY,\n isActive: activePoint === circleId,\n defaultRadius: 4,\n activeRadius: 6,\n });\n\n const isLegendSelected: boolean = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;\n\n const currentPointHidden = _points[i].hideNonActiveDots && activePoint !== circleId;\n const text = _points?.[i].data[j]?.text;\n if (!_isTextMode.current) {\n pointsForSeries.push(\n <>\n <circle\n id={circleId}\n key={circleId}\n r={circleRadius}\n cx={xPoint + _xBandwidth}\n cy={yPoint}\n data-is-focusable={isLegendSelected}\n onMouseOver={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseMove={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseOut={_handleMouseOut}\n onFocus={event =>\n _handleFocus(event, seriesId, x, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)\n }\n onBlur={_handleMouseOut}\n {..._getClickHandler(_points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.1}\n fill={_getPointFill(seriesColor, circleId, j, false)}\n stroke={seriesColor}\n role=\"img\"\n aria-label={_getAriaLabel(i, j)}\n tabIndex={isLegendSelected ? 0 : undefined}\n />\n ,\n {text && (\n <text\n key={`${circleId}-label`}\n x={xPoint + _xBandwidth}\n y={yPoint + Math.max(circleRadius + 12, 16)}\n className={classes.markerLabel}\n >\n {text}\n </text>\n )}\n </>,\n );\n }\n }\n\n if (_isScatterPolarRef.current) {\n pointsForSeries.push(\n ...renderScatterPolarCategoryLabels({\n xAxisScale: _xAxisScale,\n yAxisScale: _yAxisScale,\n className: classes.markerLabel || '',\n lineOptions: (_points?.[i] as Partial<LineChartPoints>)?.lineOptions,\n }),\n );\n }\n\n series.push(\n <g\n key={`series_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, series ${i + 1} of ${_points.length} with ${_points[i].data.length} data points.`}\n >\n {pointsForSeries}\n </g>,\n );\n }\n return series;\n }\n\n function _handleFocus(\n event: React.FocusEvent<SVGCircleElement, Element>,\n seriesId: string,\n x: number | Date | string,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: AccessibilityProps,\n ) {\n let cx = 0;\n let cy = 0;\n\n const targetRect = (event.target as SVGCircleElement).getBoundingClientRect();\n cx = targetRect.left + targetRect.width / 2;\n cy = targetRect.top + targetRect.height / 2;\n updatePosition(cx, cy);\n _uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC as boolean) : x;\n const found = findCalloutPoints(calloutPointsRef.current, x) as CustomizedCalloutData | undefined;\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr('transform', () => `translate(${_xAxisScale(x) + _xBandwidth}, 0)`)\n .attr('visibility', 'visibility');\n _refArray.forEach((obj: RefArrayData) => {\n if (obj.index === seriesId) {\n setPopoverOpen(true);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setYValueHover(found.values);\n setStackCalloutProps(found!);\n setDataPointCalloutProps(found!);\n setActivePoint(circleId);\n }\n });\n } else {\n setActivePoint(circleId);\n }\n }\n\n function _handleHover(\n x: number | Date | string,\n y: number,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: AccessibilityProps | undefined,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) {\n mouseEvent?.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC as boolean) : x;\n const found = findCalloutPoints(calloutPointsRef.current, x) as CustomizedCalloutData | undefined;\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr('transform', () => `translate(${_xAxisScale(x) + _xBandwidth}, ${_yAxisScale(y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - _yAxisScale(y)}`);\n\n if (_uniqueCallOutID !== circleId) {\n _uniqueCallOutID = circleId;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setYValueHover(found.values);\n setStackCalloutProps(found!);\n setDataPointCalloutProps(found!);\n setActivePoint(circleId);\n }\n } else {\n setActivePoint(circleId);\n }\n }\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.*/\n\n function _getClickHandler(func?: () => void): { onClick?: () => void } {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n }\n\n function _handleMouseOut() {\n d3Select(`#${_verticalLine}`).attr('visibility', 'hidden');\n }\n\n function _handleChartMouseLeave() {\n _uniqueCallOutID = null;\n setActivePoint('');\n if (isPopoverOpen) {\n setPopoverOpen(false);\n }\n }\n\n function _getCustomizedCallout() {\n return props.onRenderCalloutPerStack\n ? props.onRenderCalloutPerStack(stackCalloutProps)\n : props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps)\n : null;\n }\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it*/\n\n function _legendHighlighted(legend: string): boolean {\n return _getHighlightedLegend().includes(legend);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.*/\n\n function _noLegendHighlighted(): boolean {\n return _getHighlightedLegend().length === 0;\n }\n\n function _getHighlightedLegend(): string[] {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }\n\n function _getAriaLabel(seriesIndex: number, pointIndex: number): string {\n const series = _points[seriesIndex];\n const point = series.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, props.culture, props.useUTC as boolean) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = series.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n function _isChartEmpty(): boolean {\n return !(\n props.data &&\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData.filter((item: ScatterChartPoints) => item.data.length).length > 0\n );\n }\n\n const { legendProps, tickValues, tickFormat } = props;\n _points = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n\n let points = _points as ScatterChartPoints[];\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = selectedLegendPoints.length >= 1 ? selectedLegendPoints : _points;\n calloutPointsRef.current = calloutData(points);\n }\n\n let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!props.hideLegend && !_isTextMode.current) {\n legendBars = _createLegends(_points!); // ToDo: Memoize legends to improve performance.\n }\n const calloutProps = {\n YValueHover: yValueHover,\n hoverXValue,\n descriptionMessage:\n props.getCalloutDescriptionMessage && stackCalloutProps\n ? props.getCalloutDescriptionMessage(stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData,\n ...props.calloutProps,\n clickPosition,\n isPopoverOpen,\n isCalloutForStack: true,\n culture: props.culture,\n isCartesian: true,\n customCallout: {\n customizedCallout: _getCustomizedCallout() !== null ? _getCustomizedCallout()! : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(dataPointCalloutProps!)\n : undefined,\n },\n };\n const tickParams = {\n tickValues,\n tickFormat,\n };\n\n const xAxisLabels: string[] = _points\n .map((point: ScatterChartDataWithIndex) => point.data.map((dp: ScatterChartDataPoint) => dp.x as string))\n .flat();\n\n _xAxisLabels = [...new Set(xAxisLabels)];\n\n // Compute unique y axis labels for string y axis\n const _yAxisLabels: string[] = _getOrderedYAxisLabels();\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={props.data.chartTitle}\n points={points}\n chartType={ChartTypes.ScatterChart}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n getmargins={_getMargins}\n getGraphData={_initializeScatterChartData}\n xAxisType={_xAxisType}\n yAxisType={_yAxisType}\n // Pass stringDatasetForYAxisDomain only if y axis is string\n {...(_yAxisType === YAxisType.StringAxis ? { stringDatasetForYAxisDomain: _yAxisLabels } : {})}\n getMinMaxOfYAxis={_getNumericMinMaxOfY}\n getDomainNRangeValues={_getDomainNRangeValues}\n createYAxis={createNumericYAxis}\n createStringYAxis={createStringYAxis}\n onChartMouseLeave={_handleChartMouseLeave}\n enableFirstRenderOptimization={_firstRenderOptimization}\n datasetForXAxisDomain={_xAxisLabels}\n componentRef={cartesianChartRef}\n {...(_isScatterPolarRef.current ? { yMaxValue: 1, yMinValue: -1 } : {})}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: ChildProps) => {\n _xAxisScale = props.xScale!;\n _yAxisScale = props.yScalePrimary!;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'#323130'}\n id={_verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n <g>{renderSeries}</g>\n </g>\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nScatterChart.displayName = 'ScatterChart';\n"],"names":["React","useScatterChartStyles","select","d3Select","Legends","max","d3Max","min","d3Min","useId","areArraysEqual","createNumericYAxis","createStringYAxis","getDomainPaddingForMarkers","domainRangeOfXStringAxis","findNumericMinMaxOfY","YAxisType","isTextMode","isScatterPolarSeries","isPlottable","getRangeForScatterMarkerSize","calculateMarkerRadius","domainRangeOfDateForAreaLineScatterVerticalBarCharts","domainRangeOfNumericForAreaLineScatterCharts","sortAxisCategories","findCalloutPoints","CartesianChart","tokens","calloutData","ChartTypes","XAxisTypes","getTypeOfAxis","getNextColor","getColorFromToken","renderScatterPolarCategoryLabels","formatDateToLocaleString","useImageExport","ScatterChart","forwardRef","props","forwardedRef","_circleId","_seriesId","_verticalLine","_firstRenderOptimization","_emptyChartId","_points","_injectIndexPropertyInScatterChartData","data","scatterChartData","_xAxisScale","_yAxisScale","_uniqueCallOutID","_refArray","margins","renderSeries","_xAxisLabels","xAxisCalloutAccessibilityData","_xBandwidth","cartesianChartRef","legendsRef","_legendsRef","componentRef","hideLegend","classes","hoverXValue","setHoverXValue","useState","activeLegend","setActiveLegend","yValueHover","setYValueHover","selectedLegendPoints","setSelectedLegendPoints","isSelectedLegend","setIsSelectedLegend","activePoint","setActivePoint","stackCalloutProps","setStackCalloutProps","dataPointCalloutProps","setDataPointCalloutProps","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","selectedLegends","setSelectedLegends","legendProps","prevSelectedLegendsRef","useRef","undefined","_isTextMode","_isScatterPolarRef","useEffect","current","_xAxisType","length","StringAxis","_yAxisType","NumericAxis","pointsRef","calloutPointsRef","height","width","map","item","index","color","updatePosition","newX","newY","threshold","distance","Math","sqrt","pow","_getNumericMinMaxOfY","points","yAxisType","startValue","endValue","yPadding","yScaleType","start","end","_getDomainNRangeValues","chartType","isRTL","xAxisType","barWidth","tickValues","domainNRangeValue","xScaleType","xMinValue","xMaxValue","DateAxis","_getMargins","_margins","_initializeScatterChartData","xScale","yScale","containerHeight","containerWidth","xElement","_createPlot","_onHoverCardHide","_createLegends","isLegendMultiSelectEnabled","canSelectMultipleLegends","mapLegendToPoints","forEach","point","legend","push","legendDataItems","Object","entries","legendTitle","representativePoint","title","onMouseOutAction","hoverAction","_handleChartMouseLeave","legendShape","shape","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","onLegendHoverCardLeave","onChange","_onLegendSelectionChange","legendRef","_getOrderedYAxisLabels","shouldOrderYAxisLabelsByCategoryOrder","yAxisCategoryOrder","yLabelsSet","Set","i","Array","isArray","d","add","from","_mapCategoryToValues","categoryToValues","legendsSelected","event","currentLegend","slice","_getPointFill","seriesColor","pointId","pointIndex","isLastPoint","colorNeutralBackground1","series","bandwidth","minMarkerSize","markerSize","maxMarkerSize","isContinuousXY","extraMaxPixels","yScalePrimary","pointsForSeries","legendVal","verticaLineHeight","bottom","j","xAxisCalloutData","xPoint","yPoint","seriesId","circleId","pointMarkerSize","circleRadius","isActive","defaultRadius","activeRadius","isLegendSelected","_legendHighlighted","_noLegendHighlighted","currentPointHidden","hideNonActiveDots","text","circle","id","key","r","cx","cy","data-is-focusable","onMouseOver","_handleHover","onMouseMove","onMouseOut","_handleMouseOut","onFocus","_handleFocus","onBlur","_getClickHandler","onDataPointClick","opacity","fill","stroke","role","aria-label","_getAriaLabel","tabIndex","className","markerLabel","xAxisScale","yAxisScale","lineOptions","g","targetRect","target","getBoundingClientRect","left","top","formattedData","Date","culture","useUTC","found","attr","obj","values","lineHeight","mouseEvent","persist","clientX","clientY","func","onClick","_getCustomizedCallout","onRenderCalloutPerStack","onRenderCalloutPerDataPoint","_getHighlightedLegend","includes","seriesIndex","formattedDate","xValue","yValue","yAxisCalloutData","callOutAccessibilityData","ariaLabel","_isChartEmpty","filter","tickFormat","legendBars","calloutProps","YValueHover","descriptionMessage","getCalloutDescriptionMessage","isCalloutForStack","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","xAxisLabels","dp","flat","_yAxisLabels","chartTitle","getmargins","getGraphData","stringDatasetForYAxisDomain","getMinMaxOfYAxis","getDomainNRangeValues","createYAxis","onChartMouseLeave","enableFirstRenderOptimization","datasetForXAxisDomain","yMaxValue","yMinValue","children","line","x1","y1","x2","y2","visibility","strokeDasharray","div","style","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/ScatterChart/ScatterChart.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ScatterChartProps } from './ScatterChart.types';\nimport { useScatterChartStyles } from './useScatterChartStyles.styles';\nimport type { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport type { Legend } from '../Legends/index';\nimport { Legends } from '../Legends/index';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { useId } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport type { IDomainNRange } from '../../utilities/index';\nimport {\n areArraysEqual,\n createNumericYAxis,\n createStringYAxis,\n getDomainPaddingForMarkers,\n domainRangeOfXStringAxis,\n findNumericMinMaxOfY,\n YAxisType,\n isTextMode,\n isScatterPolarSeries,\n isPlottable,\n getRangeForScatterMarkerSize,\n calculateMarkerRadius,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n domainRangeOfNumericForAreaLineScatterCharts,\n sortAxisCategories,\n findCalloutPoints,\n} from '../../utilities/index';\nimport type {\n AccessibilityProps,\n ChildProps,\n CustomizedCalloutData,\n Margins,\n RefArrayData,\n ScatterChartDataPoint,\n ScatterChartPoints,\n YValueHover,\n} from '../../index';\nimport { CartesianChart } from '../../index';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n calloutData,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n} from '../../utilities/index';\nimport type { LineChartPoints } from '../../types/DataPoint';\nimport { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { useImageExport } from '../../utilities/hooks';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\ntype ScatterChartDataWithIndex = ScatterChartPoints & { index: number };\n\n// Create a ScatterChart variant which uses these default styles and this styled subcomponent.\n/**\n * ScatterChart component\n * {@docCategory ScatterChart}\n */\nexport const ScatterChart: React.FunctionComponent<ScatterChartProps> = React.forwardRef<\n HTMLDivElement,\n ScatterChartProps\n>((props, forwardedRef) => {\n const _circleId: string = useId('circle');\n const _seriesId: string = useId('seriesID');\n const _verticalLine: string = useId('verticalLine');\n const _firstRenderOptimization = true;\n const _emptyChartId: string = useId('_ScatterChart_empty');\n let _points: ScatterChartDataWithIndex[] = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let _xAxisScale: any = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let _yAxisScale: any = '';\n let _uniqueCallOutID: string | null = '';\n const _refArray: RefArrayData[] = [];\n let margins: Margins;\n let renderSeries: JSXElement[];\n let _xAxisLabels: string[] = [];\n const xAxisCalloutAccessibilityData: AccessibilityProps = {};\n let _xBandwidth = 0;\n const { cartesianChartRef, legendsRef: _legendsRef } = useImageExport(props.componentRef, props.hideLegend);\n const classes = useScatterChartStyles(props);\n\n const [hoverXValue, setHoverXValue] = React.useState<string | number>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [yValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [selectedLegendPoints, setSelectedLegendPoints] = React.useState<any[]>([]);\n const [isSelectedLegend, setIsSelectedLegend] = React.useState<boolean>(false);\n const [activePoint, setActivePoint] = React.useState<string>('');\n const [stackCalloutProps, setStackCalloutProps] = React.useState<CustomizedCalloutData>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<CustomizedCalloutData>();\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const prevSelectedLegendsRef = React.useRef<string[] | undefined>(undefined);\n const _isTextMode = React.useRef(false);\n const _isScatterPolarRef = React.useRef(false);\n\n React.useEffect(() => {\n if (\n prevSelectedLegendsRef.current &&\n !areArraysEqual(prevSelectedLegendsRef.current, props.legendProps?.selectedLegends)\n ) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n prevSelectedLegendsRef.current = props.legendProps?.selectedLegends;\n }, [props.legendProps?.selectedLegends]);\n\n const _xAxisType: XAxisTypes =\n props.data.scatterChartData! &&\n props.data.scatterChartData!.length > 0 &&\n props.data.scatterChartData![0].data &&\n props.data.scatterChartData![0].data.length > 0\n ? (getTypeOfAxis(props.data.scatterChartData![0].data[0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n\n // Detect y axis type (numeric or string)\n const _yAxisType: YAxisType =\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData[0].data &&\n props.data.scatterChartData[0].data.length > 0\n ? typeof props.data.scatterChartData[0].data[0].y === 'string'\n ? YAxisType.StringAxis\n : YAxisType.NumericAxis\n : YAxisType.NumericAxis;\n\n const pointsRef = React.useRef<ScatterChartDataWithIndex[] | []>([]);\n const calloutPointsRef = React.useRef<Record<string, YValueHover[]>>({});\n React.useEffect(() => {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n\n if (_points !== _injectIndexPropertyInScatterChartData(props.data.scatterChartData) || props.data !== _points) {\n pointsRef.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n calloutPointsRef.current = calloutData(pointsRef.current);\n }\n }, [props.height, props.width, props.data, _points]);\n\n function _injectIndexPropertyInScatterChartData(\n scatterChartData?: ScatterChartPoints[],\n ): ScatterChartDataWithIndex[] | [] {\n return scatterChartData\n ? scatterChartData.map((item: ScatterChartPoints, index: number) => {\n let color: string;\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0);\n } else {\n color = getColorFromToken(item.color);\n }\n return {\n ...item,\n index: -1,\n color,\n };\n })\n : [];\n }\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n function _getNumericMinMaxOfY(\n points: ScatterChartPoints[],\n yAxisType?: YAxisType,\n ): { startValue: number; endValue: number } {\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType);\n const yPadding = getDomainPaddingForMarkers(startValue, endValue, props.yScaleType);\n\n return {\n startValue: startValue - yPadding.start,\n endValue: endValue + yPadding.end,\n };\n }\n\n function _getDomainNRangeValues(\n points: any,\n margins: Margins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaLineScatterCharts(\n points,\n margins,\n width,\n isRTL,\n props.xScaleType,\n true,\n props.xMinValue,\n props.xMaxValue,\n );\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n function _getMargins(_margins: Margins) {\n margins = _margins;\n }\n\n function _initializeScatterChartData(\n xScale: NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) {\n _xAxisScale = xScale;\n _yAxisScale = yScale;\n _isTextMode.current = isTextMode(_points);\n _isScatterPolarRef.current = isScatterPolarSeries(_points);\n renderSeries = _createPlot(xElement!, containerHeight!);\n }\n\n function _onHoverCardHide() {\n setSelectedLegendPoints([]);\n setIsSelectedLegend(false);\n }\n\n function _createLegends(data: ScatterChartDataWithIndex[]): JSXElement {\n const { legendProps } = props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, ScatterChartDataWithIndex[]> = {};\n data.forEach((point: ScatterChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: Legend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: Legend = {\n title: legendTitle,\n color: representativePoint.color!,\n onMouseOutAction: () => {\n setActiveLegend('');\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n setActiveLegend(legendTitle);\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n };\n return legend;\n });\n\n return (\n <Legends\n legends={[...legendDataItems]}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: _onHoverCardHide })}\n {...props.legendProps}\n selectedLegends={selectedLegends}\n onChange={_onLegendSelectionChange}\n legendRef={_legendsRef}\n />\n );\n }\n\n function _getOrderedYAxisLabels() {\n const shouldOrderYAxisLabelsByCategoryOrder =\n _yAxisType === YAxisType.StringAxis && props.yAxisCategoryOrder !== 'default';\n if (!shouldOrderYAxisLabelsByCategoryOrder) {\n // Collect all unique string y values from all data points in all series, in reverse order\n const yLabelsSet = new Set<string>();\n for (let i = _points.length - 1; i >= 0; i--) {\n const point = _points[i];\n if (point.data && Array.isArray(point.data)) {\n for (const d of point.data) {\n if (typeof d.y === 'string') {\n yLabelsSet.add(d.y);\n }\n }\n }\n }\n return Array.from(yLabelsSet);\n }\n\n return sortAxisCategories(_mapCategoryToValues(), props.yAxisCategoryOrder);\n }\n\n function _mapCategoryToValues() {\n const categoryToValues: Record<string, number[]> = {};\n _points.forEach(point => {\n if (point.data && Array.isArray(point.data)) {\n point.data.forEach(d => {\n if (typeof d.y === 'string') {\n if (!categoryToValues[d.y]) {\n categoryToValues[d.y] = [];\n }\n if (typeof d.x === 'number') {\n categoryToValues[d.y].push(d.x);\n }\n }\n });\n }\n });\n return categoryToValues;\n }\n\n function _onLegendSelectionChange(\n legendsSelected: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(legendsSelected);\n } else {\n setSelectedLegends(legendsSelected.slice(-1));\n }\n\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(legendsSelected, event, currentLegend);\n }\n }\n\n function _getPointFill(seriesColor: string, pointId: string, pointIndex: number, isLastPoint: boolean) {\n if (activePoint === pointId) {\n return tokens.colorNeutralBackground1;\n } else {\n return seriesColor;\n }\n }\n\n function _createPlot(xElement: SVGElement, containerHeight: number): JSXElement[] {\n const series: JSXElement[] = [];\n if (isSelectedLegend) {\n _points = selectedLegendPoints;\n } else {\n _points = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n }\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n _xBandwidth = _xAxisScale.bandwidth() / 2;\n }\n\n const minMarkerSize =\n d3Min(_points, (point: ScatterChartPoints) => {\n return d3Min(point.data as ScatterChartDataPoint[], (item: ScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const maxMarkerSize =\n d3Max(_points, (point: ScatterChartPoints) => {\n return d3Max(point.data as ScatterChartDataPoint[], (item: ScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const isContinuousXY = _xAxisType !== XAxisTypes.StringAxis && _yAxisType !== YAxisType.StringAxis;\n const extraMaxPixels = isContinuousXY\n ? getRangeForScatterMarkerSize({\n data: _points,\n xScale: _xAxisScale,\n yScalePrimary: _yAxisScale,\n xScaleType: props.xScaleType,\n yScaleType: props.yScaleType,\n })\n : 0;\n\n for (let i = _points.length - 1; i >= 0; i--) {\n const pointsForSeries: JSXElement[] = [];\n\n const legendVal: string = _points[i].legend;\n const seriesColor: string = _points[i].color!;\n const verticaLineHeight = containerHeight - margins.bottom! + 6;\n\n for (let j = 0; j < _points[i].data.length; j++) {\n const { x, y, xAxisCalloutData, xAxisCalloutAccessibilityData } = _points?.[i]?.data[j];\n const xPoint = _xAxisScale?.(x);\n // Use string y axis scale if needed\n const yPoint =\n _yAxisType === YAxisType.StringAxis\n ? _yAxisScale?.(y) + (_yAxisScale?.bandwidth ? _yAxisScale.bandwidth() / 2 : 0)\n : _yAxisScale?.(y);\n if (!isPlottable(xPoint, yPoint)) {\n continue;\n }\n const seriesId = `${_seriesId}_${i}_${j}`;\n const circleId = `${_circleId}_${i}_${j}`;\n const pointMarkerSize = (_points[i].data[j] as ScatterChartDataPoint).markerSize;\n const circleRadius = calculateMarkerRadius({\n pointMarkerSize,\n minMarkerSize,\n maxMarkerSize,\n extraMaxPixels,\n isContinuousXY,\n isActive: activePoint === circleId,\n defaultRadius: 4,\n activeRadius: 6,\n });\n\n const isLegendSelected: boolean = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;\n\n const currentPointHidden = _points[i].hideNonActiveDots && activePoint !== circleId;\n const text = _points?.[i].data[j]?.text;\n if (!_isTextMode.current) {\n pointsForSeries.push(\n <>\n <circle\n id={circleId}\n key={circleId}\n r={circleRadius}\n cx={xPoint + _xBandwidth}\n cy={yPoint}\n data-is-focusable={isLegendSelected}\n onMouseOver={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseMove={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseOut={_handleMouseOut}\n onFocus={event =>\n _handleFocus(event, seriesId, x, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)\n }\n onBlur={_handleMouseOut}\n {..._getClickHandler(_points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.1}\n fill={_getPointFill(seriesColor, circleId, j, false)}\n stroke={seriesColor}\n role=\"img\"\n aria-label={_getAriaLabel(i, j)}\n tabIndex={isLegendSelected ? 0 : undefined}\n />\n ,\n {text && (\n <text\n key={`${circleId}-label`}\n x={xPoint + _xBandwidth}\n y={yPoint + Math.max(circleRadius + 12, 16)}\n className={classes.markerLabel}\n >\n {text}\n </text>\n )}\n </>,\n );\n }\n }\n\n if (_isScatterPolarRef.current) {\n pointsForSeries.push(\n ...renderScatterPolarCategoryLabels({\n xAxisScale: _xAxisScale,\n yAxisScale: _yAxisScale,\n className: classes.markerLabel || '',\n lineOptions: (_points?.[i] as Partial<LineChartPoints>)?.lineOptions,\n }),\n );\n }\n\n series.push(\n <g\n key={`series_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, series ${i + 1} of ${_points.length} with ${_points[i].data.length} data points.`}\n >\n {pointsForSeries}\n </g>,\n );\n }\n return series;\n }\n\n function _handleFocus(\n event: React.FocusEvent<SVGCircleElement, Element>,\n seriesId: string,\n x: number | Date | string,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: AccessibilityProps,\n ) {\n let cx = 0;\n let cy = 0;\n\n const targetRect = (event.target as SVGCircleElement).getBoundingClientRect();\n cx = targetRect.left + targetRect.width / 2;\n cy = targetRect.top + targetRect.height / 2;\n updatePosition(cx, cy);\n _uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC as boolean) : x;\n const found = findCalloutPoints(calloutPointsRef.current, x) as CustomizedCalloutData | undefined;\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr('transform', () => `translate(${_xAxisScale(x) + _xBandwidth}, 0)`)\n .attr('visibility', 'visibility');\n _refArray.forEach((obj: RefArrayData) => {\n if (obj.index === seriesId) {\n setPopoverOpen(true);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setYValueHover(found.values);\n setStackCalloutProps(found!);\n setDataPointCalloutProps(found!);\n setActivePoint(circleId);\n }\n });\n } else {\n setActivePoint(circleId);\n }\n }\n\n function _handleHover(\n x: number | Date | string,\n y: number,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: AccessibilityProps | undefined,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) {\n mouseEvent?.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC as boolean) : x;\n const found = findCalloutPoints(calloutPointsRef.current, x) as CustomizedCalloutData | undefined;\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr('transform', () => `translate(${_xAxisScale(x) + _xBandwidth}, ${_yAxisScale(y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - _yAxisScale(y)}`);\n\n if (_uniqueCallOutID !== circleId) {\n _uniqueCallOutID = circleId;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setYValueHover(found.values);\n setStackCalloutProps(found!);\n setDataPointCalloutProps(found!);\n setActivePoint(circleId);\n }\n } else {\n setActivePoint(circleId);\n }\n }\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.*/\n\n function _getClickHandler(func?: () => void): { onClick?: () => void } {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n }\n\n function _handleMouseOut() {\n d3Select(`#${_verticalLine}`).attr('visibility', 'hidden');\n }\n\n function _handleChartMouseLeave() {\n _uniqueCallOutID = null;\n setActivePoint('');\n if (isPopoverOpen) {\n setPopoverOpen(false);\n }\n }\n\n function _getCustomizedCallout() {\n return props.onRenderCalloutPerStack\n ? props.onRenderCalloutPerStack(stackCalloutProps)\n : props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps)\n : null;\n }\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it*/\n\n function _legendHighlighted(legend: string): boolean {\n return _getHighlightedLegend().includes(legend);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.*/\n\n function _noLegendHighlighted(): boolean {\n return _getHighlightedLegend().length === 0;\n }\n\n function _getHighlightedLegend(): string[] {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }\n\n function _getAriaLabel(seriesIndex: number, pointIndex: number): string {\n const series = _points[seriesIndex];\n const point = series.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, props.culture, props.useUTC as boolean) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = series.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n function _isChartEmpty(): boolean {\n return !(\n props.data &&\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData.filter((item: ScatterChartPoints) => item.data.length).length > 0\n );\n }\n\n const { legendProps, tickValues, tickFormat } = props;\n _points = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n\n let points = _points as ScatterChartPoints[];\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = selectedLegendPoints.length >= 1 ? selectedLegendPoints : _points;\n calloutPointsRef.current = calloutData(points);\n }\n\n let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!props.hideLegend && !_isTextMode.current) {\n legendBars = _createLegends(_points!); // ToDo: Memoize legends to improve performance.\n }\n const calloutProps = {\n YValueHover: yValueHover,\n hoverXValue,\n descriptionMessage:\n props.getCalloutDescriptionMessage && stackCalloutProps\n ? props.getCalloutDescriptionMessage(stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData,\n ...props.calloutProps,\n clickPosition,\n isPopoverOpen,\n isCalloutForStack: true,\n culture: props.culture,\n isCartesian: true,\n customCallout: {\n customizedCallout: _getCustomizedCallout() !== null ? _getCustomizedCallout()! : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(dataPointCalloutProps!)\n : undefined,\n },\n };\n const tickParams = {\n tickValues,\n tickFormat,\n };\n\n const xAxisLabels: string[] = _points\n .map((point: ScatterChartDataWithIndex) => point.data.map((dp: ScatterChartDataPoint) => dp.x as string))\n .flat();\n\n _xAxisLabels = [...new Set(xAxisLabels)];\n\n // Compute unique y axis labels for string y axis\n const _yAxisLabels: string[] = _getOrderedYAxisLabels();\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={props.data.chartTitle}\n points={points}\n chartType={ChartTypes.ScatterChart}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n getmargins={_getMargins}\n getGraphData={_initializeScatterChartData}\n xAxisType={_xAxisType}\n yAxisType={_yAxisType}\n // Pass stringDatasetForYAxisDomain only if y axis is string\n {...(_yAxisType === YAxisType.StringAxis ? { stringDatasetForYAxisDomain: _yAxisLabels } : {})}\n getMinMaxOfYAxis={_getNumericMinMaxOfY}\n getDomainNRangeValues={_getDomainNRangeValues}\n createYAxis={createNumericYAxis}\n createStringYAxis={createStringYAxis}\n onChartMouseLeave={_handleChartMouseLeave}\n enableFirstRenderOptimization={_firstRenderOptimization}\n datasetForXAxisDomain={_xAxisLabels}\n componentRef={cartesianChartRef}\n {...(_isScatterPolarRef.current ? { yMaxValue: 1, yMinValue: -1 } : {})}\n /* eslint-disable react/jsx-no-bind */\n\n children={(props: ChildProps) => {\n _xAxisScale = props.xScale!;\n _yAxisScale = props.yScalePrimary!;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'#323130'}\n id={_verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n <g>{renderSeries}</g>\n </g>\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nScatterChart.displayName = 'ScatterChart';\n"],"names":["React","useScatterChartStyles","select","d3Select","Legends","max","d3Max","min","d3Min","useId","areArraysEqual","createNumericYAxis","createStringYAxis","getDomainPaddingForMarkers","domainRangeOfXStringAxis","findNumericMinMaxOfY","YAxisType","isTextMode","isScatterPolarSeries","isPlottable","getRangeForScatterMarkerSize","calculateMarkerRadius","domainRangeOfDateForAreaLineScatterVerticalBarCharts","domainRangeOfNumericForAreaLineScatterCharts","sortAxisCategories","findCalloutPoints","CartesianChart","tokens","calloutData","ChartTypes","XAxisTypes","getTypeOfAxis","getNextColor","getColorFromToken","renderScatterPolarCategoryLabels","formatDateToLocaleString","useImageExport","ScatterChart","forwardRef","props","forwardedRef","_circleId","_seriesId","_verticalLine","_firstRenderOptimization","_emptyChartId","_points","_injectIndexPropertyInScatterChartData","data","scatterChartData","_xAxisScale","_yAxisScale","_uniqueCallOutID","_refArray","margins","renderSeries","_xAxisLabels","xAxisCalloutAccessibilityData","_xBandwidth","cartesianChartRef","legendsRef","_legendsRef","componentRef","hideLegend","classes","hoverXValue","setHoverXValue","useState","activeLegend","setActiveLegend","yValueHover","setYValueHover","selectedLegendPoints","setSelectedLegendPoints","isSelectedLegend","setIsSelectedLegend","activePoint","setActivePoint","stackCalloutProps","setStackCalloutProps","dataPointCalloutProps","setDataPointCalloutProps","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","selectedLegends","setSelectedLegends","legendProps","prevSelectedLegendsRef","useRef","undefined","_isTextMode","_isScatterPolarRef","useEffect","current","_xAxisType","length","StringAxis","_yAxisType","NumericAxis","pointsRef","calloutPointsRef","height","width","map","item","index","color","updatePosition","newX","newY","threshold","distance","Math","sqrt","pow","_getNumericMinMaxOfY","points","yAxisType","startValue","endValue","yPadding","yScaleType","start","end","_getDomainNRangeValues","chartType","isRTL","xAxisType","barWidth","tickValues","domainNRangeValue","xScaleType","xMinValue","xMaxValue","DateAxis","_getMargins","_margins","_initializeScatterChartData","xScale","yScale","containerHeight","containerWidth","xElement","_createPlot","_onHoverCardHide","_createLegends","isLegendMultiSelectEnabled","canSelectMultipleLegends","mapLegendToPoints","forEach","point","legend","push","legendDataItems","Object","entries","legendTitle","representativePoint","title","onMouseOutAction","hoverAction","_handleChartMouseLeave","legendShape","shape","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","onLegendHoverCardLeave","onChange","_onLegendSelectionChange","legendRef","_getOrderedYAxisLabels","shouldOrderYAxisLabelsByCategoryOrder","yAxisCategoryOrder","yLabelsSet","Set","i","Array","isArray","d","add","from","_mapCategoryToValues","categoryToValues","legendsSelected","event","currentLegend","slice","_getPointFill","seriesColor","pointId","pointIndex","isLastPoint","colorNeutralBackground1","series","bandwidth","minMarkerSize","markerSize","maxMarkerSize","isContinuousXY","extraMaxPixels","yScalePrimary","pointsForSeries","legendVal","verticaLineHeight","bottom","j","xAxisCalloutData","xPoint","yPoint","seriesId","circleId","pointMarkerSize","circleRadius","isActive","defaultRadius","activeRadius","isLegendSelected","_legendHighlighted","_noLegendHighlighted","currentPointHidden","hideNonActiveDots","text","circle","id","key","r","cx","cy","data-is-focusable","onMouseOver","_handleHover","onMouseMove","onMouseOut","_handleMouseOut","onFocus","_handleFocus","onBlur","_getClickHandler","onDataPointClick","opacity","fill","stroke","role","aria-label","_getAriaLabel","tabIndex","className","markerLabel","xAxisScale","yAxisScale","lineOptions","g","targetRect","target","getBoundingClientRect","left","top","formattedData","Date","culture","useUTC","found","attr","obj","values","lineHeight","mouseEvent","persist","clientX","clientY","func","onClick","_getCustomizedCallout","onRenderCalloutPerStack","onRenderCalloutPerDataPoint","_getHighlightedLegend","includes","seriesIndex","formattedDate","xValue","yValue","yAxisCalloutData","callOutAccessibilityData","ariaLabel","_isChartEmpty","filter","tickFormat","legendBars","calloutProps","YValueHover","descriptionMessage","getCalloutDescriptionMessage","isCalloutForStack","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","xAxisLabels","dp","flat","_yAxisLabels","chartTitle","getmargins","getGraphData","stringDatasetForYAxisDomain","getMinMaxOfYAxis","getDomainNRangeValues","createYAxis","onChartMouseLeave","enableFirstRenderOptimization","datasetForXAxisDomain","yMaxValue","yMinValue","children","line","x1","y1","x2","y2","visibility","strokeDasharray","div","style","displayName"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */ /**
1
+ /**
2
2
  * Scatter Chart style properties
3
3
  * {@docCategory ScatterChart}
4
4
  */ "use strict";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ScatterChart/ScatterChart.types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { RenderFunction } from '../../utilities/index';\nimport {\n ChartProps,\n LineChartPoints,\n Margins,\n Basestate,\n RefArrayData,\n CustomizedCalloutData,\n} from '../../types/index';\nimport {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n ChildProps,\n} from '../CommonComponents/index';\n\nexport type { ChildProps, LineChartPoints, Margins, Basestate, RefArrayData };\n\n/**\n * Line Chart properties\n * {@docCategory LineChart}\n */\nexport interface ScatterChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: ChartProps;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: ScatterChartStyles;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: RenderFunction<CustomizedCalloutData>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: RenderFunction<CustomizedCalloutData>;\n\n /**\n * Callback for getting callout description message\n */\n getCalloutDescriptionMessage?: (calloutDataProps: CustomizedCalloutData) => string | undefined;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n}\n\n/**\n * Scatter Chart styles\n * {@docCategory ScatterChart}\n */\nexport interface ScatterChartStyles extends CartesianChartStyles {\n /**\n * Style for the marker label\n */\n markerLabel?: string;\n}\n\n/**\n * Scatter Chart style properties\n * {@docCategory ScatterChart}\n */\nexport interface ScatterChartStyleProps extends CartesianChartStyleProps {}\n"],"names":[],"mappings":"AAAA,uDAAuD,GAkEvD;;;CAGC,GACD,WAA2E"}
1
+ {"version":3,"sources":["../src/components/ScatterChart/ScatterChart.types.ts"],"sourcesContent":["import type { RenderFunction } from '../../utilities/index';\nimport type {\n ChartProps,\n LineChartPoints,\n Margins,\n Basestate,\n RefArrayData,\n CustomizedCalloutData,\n} from '../../types/index';\nimport type {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n ChildProps,\n} from '../CommonComponents/index';\n\nexport type { ChildProps, LineChartPoints, Margins, Basestate, RefArrayData };\n\n/**\n * Line Chart properties\n * {@docCategory LineChart}\n */\nexport interface ScatterChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: ChartProps;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: ScatterChartStyles;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: RenderFunction<CustomizedCalloutData>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: RenderFunction<CustomizedCalloutData>;\n\n /**\n * Callback for getting callout description message\n */\n getCalloutDescriptionMessage?: (calloutDataProps: CustomizedCalloutData) => string | undefined;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n}\n\n/**\n * Scatter Chart styles\n * {@docCategory ScatterChart}\n */\nexport interface ScatterChartStyles extends CartesianChartStyles {\n /**\n * Style for the marker label\n */\n markerLabel?: string;\n}\n\n/**\n * Scatter Chart style properties\n * {@docCategory ScatterChart}\n */\nexport interface ScatterChartStyleProps extends CartesianChartStyleProps {}\n"],"names":[],"mappings":"AAiEA;;;CAGC,GACD,WAA2E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ScatterChart/useScatterChartStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { GriffelStyle, makeStyles, mergeClasses } from '@griffel/react';\nimport { ScatterChartProps, ScatterChartStyles } from './ScatterChart.types';\nimport { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { getMarkerLabelStyle, getTooltipStyle } from '../../utilities/index';\n\n/**\n * @internal\n */\nexport const scatterChartClassNames: SlotClassNames<ScatterChartStyles> = {\n tooltip: 'fui-line__tooltip',\n markerLabel: 'fui-line__markerLabel',\n root: 'fui-line__root',\n xAxis: 'fui-line__xAxis',\n yAxis: 'fui-line__yAxis',\n legendContainer: 'fui-line__legendContainer',\n hover: 'fui-line__hover',\n descriptionMessage: 'fui-line__descriptionMessage',\n axisTitle: 'fui-line__axisTitle',\n chartTitle: 'fui-line__chartTitle',\n opacityChangeOnHover: 'fui-line__opacityChangeOnHover',\n shapeStyles: 'fui-line__shapeStyles',\n chartWrapper: 'fui-line__chartWrapper',\n svgTooltip: '',\n chart: '',\n axisAnnotation: '',\n plotContainer: '',\n annotationLayer: '',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n tooltip: getTooltipStyle() as GriffelStyle,\n markerLabel: getMarkerLabelStyle() as GriffelStyle,\n});\n\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const useScatterChartStyles = (props: ScatterChartProps): ScatterChartStyles => {\n const baseStyles = useStyles();\n return {\n tooltip: mergeClasses(scatterChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),\n markerLabel: mergeClasses(scatterChartClassNames.markerLabel, baseStyles.markerLabel, props.styles?.markerLabel),\n };\n};\n"],"names":["makeStyles","mergeClasses","getMarkerLabelStyle","getTooltipStyle","scatterChartClassNames","tooltip","markerLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","opacityChangeOnHover","shapeStyles","chartWrapper","svgTooltip","chart","axisAnnotation","plotContainer","annotationLayer","useStyles","useScatterChartStyles","props","baseStyles","styles"],"mappings":"AAAA;;;;;;;;;;;;IAUaI,sBAAAA;;;IAgCAoB,qBAAAA;;;;uBAxC0C,iBAAiB;uBAGnB,wBAAwB;AAKtE,+BAAmE;IACxEnB,SAAS;IACTC,aAAa;IACbC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,OAAO;IACPC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,sBAAsB;IACtBC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,gBAAgB;IAChBC,eAAe;IACfC,iBAAiB;AACnB,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYvB,iBAAAA,EAAW;IAC3BK,aAASF,sBAAAA;IACTG,iBAAaJ,0BAAAA;AACf;AAKO,8BAA8B,CAACuB;QAIoDA;IAHxF,MAAMC,aAAaH;IACnB,OAAO;QACLlB,aAASJ,mBAAAA,EAAaG,uBAAuBC,OAAO,EAAEqB,WAAWrB,OAAO,CAAC,uBAAuB;QAChGC,iBAAaL,mBAAAA,EAAaG,uBAAuBE,WAAW,EAAEoB,WAAWpB,WAAW,EAAA,CAAEmB,gBAAAA,MAAME,MAAAA,AAAM,MAAA,QAAZF,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAcnB,WAAW;IACjH;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/ScatterChart/useScatterChartStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { GriffelStyle } from '@griffel/react';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { ScatterChartProps, ScatterChartStyles } from './ScatterChart.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { getMarkerLabelStyle, getTooltipStyle } from '../../utilities/index';\n\n/**\n * @internal\n */\nexport const scatterChartClassNames: SlotClassNames<ScatterChartStyles> = {\n tooltip: 'fui-line__tooltip',\n markerLabel: 'fui-line__markerLabel',\n root: 'fui-line__root',\n xAxis: 'fui-line__xAxis',\n yAxis: 'fui-line__yAxis',\n legendContainer: 'fui-line__legendContainer',\n hover: 'fui-line__hover',\n descriptionMessage: 'fui-line__descriptionMessage',\n axisTitle: 'fui-line__axisTitle',\n chartTitle: 'fui-line__chartTitle',\n opacityChangeOnHover: 'fui-line__opacityChangeOnHover',\n shapeStyles: 'fui-line__shapeStyles',\n chartWrapper: 'fui-line__chartWrapper',\n svgTooltip: '',\n chart: '',\n axisAnnotation: '',\n plotContainer: '',\n annotationLayer: '',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n tooltip: getTooltipStyle() as GriffelStyle,\n markerLabel: getMarkerLabelStyle() as GriffelStyle,\n});\n\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const useScatterChartStyles = (props: ScatterChartProps): ScatterChartStyles => {\n const baseStyles = useStyles();\n return {\n tooltip: mergeClasses(scatterChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),\n markerLabel: mergeClasses(scatterChartClassNames.markerLabel, baseStyles.markerLabel, props.styles?.markerLabel),\n };\n};\n"],"names":["makeStyles","mergeClasses","getMarkerLabelStyle","getTooltipStyle","scatterChartClassNames","tooltip","markerLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","opacityChangeOnHover","shapeStyles","chartWrapper","svgTooltip","chart","axisAnnotation","plotContainer","annotationLayer","useStyles","useScatterChartStyles","props","baseStyles","styles"],"mappings":"AAAA;;;;;;;;;;;;IAWaI,sBAAAA;;;IAgCAoB,qBAAAA;;;;uBAxC4B,iBAAiB;uBAGL,wBAAwB;AAKtE,+BAAmE;IACxEnB,SAAS;IACTC,aAAa;IACbC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,OAAO;IACPC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,sBAAsB;IACtBC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,gBAAgB;IAChBC,eAAe;IACfC,iBAAiB;AACnB,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYvB,iBAAAA,EAAW;IAC3BK,aAASF,sBAAAA;IACTG,iBAAaJ,0BAAAA;AACf;AAKO,8BAA8B,CAACuB;QAIoDA;IAHxF,MAAMC,aAAaH;IACnB,OAAO;QACLlB,aAASJ,mBAAAA,EAAaG,uBAAuBC,OAAO,EAAEqB,WAAWrB,OAAO,CAAC,uBAAuB;QAChGC,iBAAaL,mBAAAA,EAAaG,uBAAuBE,WAAW,EAAEoB,WAAWpB,WAAW,EAAA,CAAEmB,gBAAAA,MAAME,MAAAA,AAAM,MAAA,QAAZF,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAcnB,WAAW;IACjH;AACF,EAAE"}
@@ -18,7 +18,7 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
18
18
  const _index = require("../../utilities/index");
19
19
  const _useSparklineStylesstyles = require("./useSparklineStyles.styles");
20
20
  const Sparkline = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
21
- let margin = {
21
+ const margin = {
22
22
  top: 2,
23
23
  right: 0,
24
24
  bottom: 0,
@@ -26,8 +26,8 @@ const Sparkline = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
26
26
  };
27
27
  let x;
28
28
  let y;
29
- let _emptyChartId = '_SparklineChart_empty';
30
- let _isRTL = (0, _index.useRtl)();
29
+ const _emptyChartId = '_SparklineChart_empty';
30
+ const _isRTL = (0, _index.useRtl)();
31
31
  const [points, setPoints] = _react.useState([]);
32
32
  var _props_width;
33
33
  // Use props with default fallbacks instead of hardcoded values
@@ -51,7 +51,6 @@ const Sparkline = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
51
51
  ]);
52
52
  _react.useEffect(()=>{
53
53
  if (!_isChartEmpty()) {
54
- // eslint-disable-next-line @typescript-eslint/no-shadow
55
54
  const _points = props.data.lineChartData[0].data;
56
55
  /* eslint-disable @typescript-eslint/no-explicit-any */ const [xMin, xMax] = (0, _d3array.extent)(_points, (d)=>d.x);
57
56
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Sparkline/Sparkline.tsx"],"sourcesContent":["'use client';\n\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { extent as d3Extent, max as d3Max } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { area as d3Area, line as d3Line, curveLinear as d3curveLinear } from 'd3-shape';\nimport * as React from 'react';\nimport { SparklineProps } from '../../index';\nimport { LineChartDataPoint } from '../../types/DataPoint';\nimport { useRtl } from '../../utilities/index';\nimport { useSparklineStyles } from './useSparklineStyles.styles';\n\n/**\n * Sparkline is the context wrapper and container for all Sparkline content/controls,\n * It has no direct style or slot opinions.\n *\n * Sparkline also provides API interfaces for callbacks that will occur on navigation events.\n */\nexport const Sparkline: React.FunctionComponent<SparklineProps> = React.forwardRef<HTMLDivElement, SparklineProps>(\n (props, forwardedRef) => {\n let margin = {\n top: 2,\n right: 0,\n bottom: 0,\n left: 0,\n };\n let x: any;\n let y: any;\n let _emptyChartId: string = '_SparklineChart_empty';\n let _isRTL: boolean = useRtl();\n const [points, setPoints] = React.useState<LineChartDataPoint[]>([]);\n\n // Use props with default fallbacks instead of hardcoded values\n const width = props.width ?? 80;\n const height = props.height ?? 20;\n const valueTextWidth = props.valueTextWidth ?? 80;\n\n const line = React.useMemo(() => {\n return d3Line<LineChartDataPoint>()\n .x((d: LineChartDataPoint) => x(d.x))\n .y((d: LineChartDataPoint) => y(d.y))\n .curve(d3curveLinear);\n }, [x, y]);\n\n const area = React.useMemo(() => {\n return d3Area<LineChartDataPoint>()\n .x((d: LineChartDataPoint) => x(d.x))\n .y0(height)\n .y1((d: LineChartDataPoint) => y(d.y))\n .curve(d3curveLinear);\n }, [height, x, y]);\n\n React.useEffect(() => {\n if (!_isChartEmpty()) {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const _points = props.data!.lineChartData![0].data;\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const [xMin, xMax] = d3Extent(_points, (d: any) => d.x);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n x = d3ScaleLinear()\n .domain([xMin, xMax])\n .range([margin.left!, width - margin.right!]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n y = d3ScaleLinear()\n /* eslint-disable @typescript-eslint/no-explicit-any */\n .domain([0, d3Max(_points, (d: any) => d.y)])\n .range([height - margin.bottom!, margin.top!]);\n\n setPoints(_points as LineChartDataPoint[]);\n }\n }, []);\n\n const { data } = props;\n function _isChartEmpty(): boolean {\n return !(\n data &&\n data.lineChartData &&\n data.lineChartData.length > 0 &&\n data.lineChartData.filter(item => item.data.length === 0).length === 0\n );\n }\n function drawSparkline() {\n if (!line || !area) {\n return null;\n }\n return (\n <>\n <path\n className=\"line\"\n d={line(points)!}\n fill={'transparent'}\n opacity={1}\n strokeWidth={2}\n stroke={data!.lineChartData![0].color!}\n />\n <path\n className=\"area\"\n d={area(points)!}\n opacity={1}\n fillOpacity={0.2}\n fill={data!.lineChartData![0].color!}\n role=\"img\"\n aria-hidden\n />\n </>\n );\n }\n\n const classes = useSparklineStyles(props);\n const focusAttributes = useFocusableGroup();\n return !_isChartEmpty() ? (\n <div className={classes.inlineBlock} {...focusAttributes}>\n {width >= 50 && height >= 16 ? (\n <svg\n width={width}\n height={height}\n aria-label={`Sparkline with label ${data!.lineChartData![0].legend!}`}\n tabIndex={0}\n >\n {points ? drawSparkline() : null}\n </svg>\n ) : (\n <></>\n )}\n {props.showLegend && props.data!.lineChartData![0].legend ? (\n <svg width={valueTextWidth} height={height}>\n <text x=\"0%\" textAnchor={_isRTL ? 'end' : 'start'} dx={8} y=\"100%\" dy={-5} className={classes.valueText}>\n {props.data!.lineChartData![0].legend!}\n </text>\n </svg>\n ) : (\n <></>\n )}\n </div>\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n },\n);\nSparkline.displayName = 'Sparkline';\n"],"names":["useFocusableGroup","extent","d3Extent","max","d3Max","scaleLinear","d3ScaleLinear","area","d3Area","line","d3Line","curveLinear","d3curveLinear","React","useRtl","useSparklineStyles","Sparkline","forwardRef","props","forwardedRef","margin","top","right","bottom","left","x","y","_emptyChartId","_isRTL","points","setPoints","useState","width","height","valueTextWidth","useMemo","d","curve","y0","y1","useEffect","_isChartEmpty","_points","data","lineChartData","xMin","xMax","domain","range","length","filter","item","drawSparkline","path","className","fill","opacity","strokeWidth","stroke","color","fillOpacity","role","aria-hidden","classes","focusAttributes","div","inlineBlock","svg","aria-label","legend","tabIndex","showLegend","text","textAnchor","dx","dy","valueText","id","style","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/Sparkline/Sparkline.tsx"],"sourcesContent":["'use client';\n\nimport { useFocusableGroup } from '@fluentui/react-tabster';\nimport { extent as d3Extent, max as d3Max } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { area as d3Area, line as d3Line, curveLinear as d3curveLinear } from 'd3-shape';\nimport * as React from 'react';\nimport type { SparklineProps } from '../../index';\nimport type { LineChartDataPoint } from '../../types/DataPoint';\nimport { useRtl } from '../../utilities/index';\nimport { useSparklineStyles } from './useSparklineStyles.styles';\n\n/**\n * Sparkline is the context wrapper and container for all Sparkline content/controls,\n * It has no direct style or slot opinions.\n *\n * Sparkline also provides API interfaces for callbacks that will occur on navigation events.\n */\nexport const Sparkline: React.FunctionComponent<SparklineProps> = React.forwardRef<HTMLDivElement, SparklineProps>(\n (props, forwardedRef) => {\n const margin = {\n top: 2,\n right: 0,\n bottom: 0,\n left: 0,\n };\n let x: any;\n let y: any;\n const _emptyChartId: string = '_SparklineChart_empty';\n const _isRTL: boolean = useRtl();\n const [points, setPoints] = React.useState<LineChartDataPoint[]>([]);\n\n // Use props with default fallbacks instead of hardcoded values\n const width = props.width ?? 80;\n const height = props.height ?? 20;\n const valueTextWidth = props.valueTextWidth ?? 80;\n\n const line = React.useMemo(() => {\n return d3Line<LineChartDataPoint>()\n .x((d: LineChartDataPoint) => x(d.x))\n .y((d: LineChartDataPoint) => y(d.y))\n .curve(d3curveLinear);\n }, [x, y]);\n\n const area = React.useMemo(() => {\n return d3Area<LineChartDataPoint>()\n .x((d: LineChartDataPoint) => x(d.x))\n .y0(height)\n .y1((d: LineChartDataPoint) => y(d.y))\n .curve(d3curveLinear);\n }, [height, x, y]);\n\n React.useEffect(() => {\n if (!_isChartEmpty()) {\n const _points = props.data!.lineChartData![0].data;\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const [xMin, xMax] = d3Extent(_points, (d: any) => d.x);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n x = d3ScaleLinear()\n .domain([xMin, xMax])\n .range([margin.left!, width - margin.right!]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n y = d3ScaleLinear()\n /* eslint-disable @typescript-eslint/no-explicit-any */\n .domain([0, d3Max(_points, (d: any) => d.y)])\n .range([height - margin.bottom!, margin.top!]);\n\n setPoints(_points as LineChartDataPoint[]);\n }\n }, []);\n\n const { data } = props;\n function _isChartEmpty(): boolean {\n return !(\n data &&\n data.lineChartData &&\n data.lineChartData.length > 0 &&\n data.lineChartData.filter(item => item.data.length === 0).length === 0\n );\n }\n function drawSparkline() {\n if (!line || !area) {\n return null;\n }\n return (\n <>\n <path\n className=\"line\"\n d={line(points)!}\n fill={'transparent'}\n opacity={1}\n strokeWidth={2}\n stroke={data!.lineChartData![0].color!}\n />\n <path\n className=\"area\"\n d={area(points)!}\n opacity={1}\n fillOpacity={0.2}\n fill={data!.lineChartData![0].color!}\n role=\"img\"\n aria-hidden\n />\n </>\n );\n }\n\n const classes = useSparklineStyles(props);\n const focusAttributes = useFocusableGroup();\n return !_isChartEmpty() ? (\n <div className={classes.inlineBlock} {...focusAttributes}>\n {width >= 50 && height >= 16 ? (\n <svg\n width={width}\n height={height}\n aria-label={`Sparkline with label ${data!.lineChartData![0].legend!}`}\n tabIndex={0}\n >\n {points ? drawSparkline() : null}\n </svg>\n ) : (\n <></>\n )}\n {props.showLegend && props.data!.lineChartData![0].legend ? (\n <svg width={valueTextWidth} height={height}>\n <text x=\"0%\" textAnchor={_isRTL ? 'end' : 'start'} dx={8} y=\"100%\" dy={-5} className={classes.valueText}>\n {props.data!.lineChartData![0].legend!}\n </text>\n </svg>\n ) : (\n <></>\n )}\n </div>\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n },\n);\nSparkline.displayName = 'Sparkline';\n"],"names":["useFocusableGroup","extent","d3Extent","max","d3Max","scaleLinear","d3ScaleLinear","area","d3Area","line","d3Line","curveLinear","d3curveLinear","React","useRtl","useSparklineStyles","Sparkline","forwardRef","props","forwardedRef","margin","top","right","bottom","left","x","y","_emptyChartId","_isRTL","points","setPoints","useState","width","height","valueTextWidth","useMemo","d","curve","y0","y1","useEffect","_isChartEmpty","_points","data","lineChartData","xMin","xMax","domain","range","length","filter","item","drawSparkline","path","className","fill","opacity","strokeWidth","stroke","color","fillOpacity","role","aria-hidden","classes","focusAttributes","div","inlineBlock","svg","aria-label","legend","tabIndex","showLegend","text","textAnchor","dx","dy","valueText","id","style","displayName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Sparkline/Sparkline.types.ts"],"sourcesContent":["import { ChartProps } from './index';\nimport { CartesianChartStyleProps } from '../CommonComponents/index';\n\nexport interface SparklineStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Sparkline properties\n * {@docCategory SparklineChart}\n */\nexport interface SparklineProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * An array of chart data points for the Sparkline chart\n */\n data?: ChartProps;\n\n /**\n * Width of chart\n * * @default 80\n */\n width?: number;\n\n /**\n * Height of chart\n * @default 20\n */\n height?: number;\n\n /**\n * Width of value text\n * * @default 80\n */\n valueTextWidth?: number;\n\n /**\n * Additional CSS class(es) to apply to the SparklineChart.\n */\n className?: string;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * Prop used to determine whether to show the legend or not\n */\n showLegend?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: SparklineStyles;\n}\n\n/**\n * Sparkline styles\n * {@docCategory SparklineChart}\n */\nexport interface SparklineStyles {\n inlineBlock?: string;\n valueText?: string;\n}\n"],"names":[],"mappings":"AAsDA;;;CAGC,GACD,WAGC"}
1
+ {"version":3,"sources":["../src/components/Sparkline/Sparkline.types.ts"],"sourcesContent":["import type { ChartProps } from './index';\nimport type { CartesianChartStyleProps } from '../CommonComponents/index';\n\nexport interface SparklineStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Sparkline properties\n * {@docCategory SparklineChart}\n */\nexport interface SparklineProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * An array of chart data points for the Sparkline chart\n */\n data?: ChartProps;\n\n /**\n * Width of chart\n * * @default 80\n */\n width?: number;\n\n /**\n * Height of chart\n * @default 20\n */\n height?: number;\n\n /**\n * Width of value text\n * * @default 80\n */\n valueTextWidth?: number;\n\n /**\n * Additional CSS class(es) to apply to the SparklineChart.\n */\n className?: string;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * Prop used to determine whether to show the legend or not\n */\n showLegend?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: SparklineStyles;\n}\n\n/**\n * Sparkline styles\n * {@docCategory SparklineChart}\n */\nexport interface SparklineStyles {\n inlineBlock?: string;\n valueText?: string;\n}\n"],"names":[],"mappings":"AAsDA;;;CAGC,GACD,WAGC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Sparkline/useSparklineStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { SparklineProps, SparklineStyles } from './Sparkline.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n\n/**\n * @internal\n */\nexport const sparklineClassNames: SlotClassNames<SparklineStyles> = {\n inlineBlock: 'fui-sprk__inlineBlock',\n valueText: 'fui-sprk__valueText',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n inlineBlock: {\n display: 'inline',\n },\n valueText: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n});\n\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const useSparklineStyles = (props: SparklineProps): SparklineStyles => {\n const baseStyles = useStyles();\n\n return {\n inlineBlock: mergeClasses(sparklineClassNames.inlineBlock, baseStyles.inlineBlock, props.styles?.inlineBlock),\n valueText: mergeClasses(sparklineClassNames.valueText, baseStyles.valueText, props.styles?.valueText),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","sparklineClassNames","inlineBlock","valueText","useStyles","display","caption1","fill","colorNeutralForeground1","forcedColorAdjust","useSparklineStyles","props","baseStyles","styles"],"mappings":"AAAA;;;;;;;;;;;;IAUaI,mBAAAA;;;sBAsBAS;eAAAA;;;uBA9B4B,iBAAiB;4BAGjB,wBAAwB;AAK1D,4BAA6D;IAClER,aAAa;IACbC,WAAW;AACb,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYP,iBAAAA,EAAW;IAC3BK,aAAa;QACXG,SAAS;IACX;IACAF,WAAW;QACT,GAAGH,4BAAAA,CAAiBM,QAAQ;QAC5BC,MAAMR,kBAAAA,CAAOS,uBAAuB;QACpCC,mBAAmB;IACrB;AACF;AAKO,2BAA2B,CAACE;QAIoDA,eACNA;IAJ/E,MAAMC,aAAaR;IAEnB,OAAO;QACLF,aAAaJ,uBAAAA,EAAaG,oBAAoBC,WAAW,EAAEU,WAAWV,WAAW,EAAA,CAAES,gBAAAA,MAAME,MAAAA,AAAM,MAAA,QAAZF,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAcT,WAAW;QAC5GC,eAAWL,mBAAAA,EAAaG,oBAAoBE,SAAS,EAAES,WAAWT,SAAS,EAAA,CAAEQ,iBAAAA,MAAME,MAAAA,AAAM,MAAA,QAAZF,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcR,SAAS;IACtG;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/Sparkline/useSparklineStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SparklineProps, SparklineStyles } from './Sparkline.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n\n/**\n * @internal\n */\nexport const sparklineClassNames: SlotClassNames<SparklineStyles> = {\n inlineBlock: 'fui-sprk__inlineBlock',\n valueText: 'fui-sprk__valueText',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n inlineBlock: {\n display: 'inline',\n },\n valueText: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n});\n\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const useSparklineStyles = (props: SparklineProps): SparklineStyles => {\n const baseStyles = useStyles();\n\n return {\n inlineBlock: mergeClasses(sparklineClassNames.inlineBlock, baseStyles.inlineBlock, props.styles?.inlineBlock),\n valueText: mergeClasses(sparklineClassNames.valueText, baseStyles.valueText, props.styles?.valueText),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","sparklineClassNames","inlineBlock","valueText","useStyles","display","caption1","fill","colorNeutralForeground1","forcedColorAdjust","useSparklineStyles","props","baseStyles","styles"],"mappings":"AAAA;;;;;;;;;;;;IAUaI,mBAAAA;;;sBAsBAS;eAAAA;;;uBA9B4B,iBAAiB;4BAGjB,wBAAwB;AAK1D,4BAA6D;IAClER,aAAa;IACbC,WAAW;AACb,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYP,iBAAAA,EAAW;IAC3BK,aAAa;QACXG,SAAS;IACX;IACAF,WAAW;QACT,GAAGH,4BAAAA,CAAiBM,QAAQ;QAC5BC,MAAMR,kBAAAA,CAAOS,uBAAuB;QACpCC,mBAAmB;IACrB;AACF;AAKO,2BAA2B,CAACE;QAIoDA,eACNA;IAJ/E,MAAMC,aAAaR;IAEnB,OAAO;QACLF,aAAaJ,uBAAAA,EAAaG,oBAAoBC,WAAW,EAAEU,WAAWV,WAAW,EAAA,CAAES,gBAAAA,MAAME,MAAAA,AAAM,MAAA,QAAZF,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAcT,WAAW;QAC5GC,eAAWL,mBAAAA,EAAaG,oBAAoBE,SAAS,EAAES,WAAWT,SAAS,EAAA,CAAEQ,iBAAAA,MAAME,MAAAA,AAAM,MAAA,QAAZF,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAcR,SAAS;IACtG;AACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/VegaDeclarativeChart/VegaDeclarativeChartHooks.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ThemeContext_unstable as V9ThemeContext } from '@fluentui/react-shared-contexts';\nimport { Theme, webLightTheme } from '@fluentui/tokens';\nimport { hsl as d3Hsl } from 'd3-color';\n\n/**\n * Hook to determine if dark theme is active based on background/foreground luminance\n */\nexport function useIsDarkTheme(): boolean {\n const parentV9Theme = React.useContext(V9ThemeContext) as Theme;\n const v9Theme: Theme = parentV9Theme ? parentV9Theme : webLightTheme;\n\n const backgroundColor = d3Hsl(v9Theme.colorNeutralBackground1);\n const foregroundColor = d3Hsl(v9Theme.colorNeutralForeground1);\n\n const isDarkTheme = backgroundColor.l < foregroundColor.l;\n\n return isDarkTheme;\n}\n\n/**\n * Hook for color mapping across charts - maintains persistent color assignments\n */\nexport function useColorMapping(): React.RefObject<Map<string, string>> {\n return React.useRef<Map<string, string>>(new Map());\n}\n"],"names":["React","ThemeContext_unstable","V9ThemeContext","webLightTheme","hsl","d3Hsl","useIsDarkTheme","parentV9Theme","useContext","v9Theme","backgroundColor","colorNeutralBackground1","foregroundColor","colorNeutralForeground1","isDarkTheme","l","useColorMapping","useRef","Map"],"mappings":"AAAA;;;;;;;;;;;;IAyBgBgB,eAAAA;;;kBAfAV;;;;;iEARO,QAAQ;qCACyB,kCAAkC;wBACrD,mBAAmB;yBAC3B,WAAW;AAKjC,SAASA;IACd,MAAMC,gBAAgBP,OAAMQ,UAAU,CAACN,0CAAAA;IACvC,MAAMO,UAAiBF,gBAAgBA,gBAAgBJ,qBAAAA;IAEvD,MAAMO,sBAAkBL,YAAAA,EAAMI,QAAQE,uBAAuB;IAC7D,MAAMC,sBAAkBP,YAAAA,EAAMI,QAAQI,uBAAuB;IAE7D,MAAMC,cAAcJ,gBAAgBK,CAAC,GAAGH,gBAAgBG,CAAC;IAEzD,OAAOD;AACT;AAKO;IACL,OAAOd,OAAMiB,MAAM,CAAsB,IAAIC;AAC/C"}
1
+ {"version":3,"sources":["../src/components/VegaDeclarativeChart/VegaDeclarativeChartHooks.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ThemeContext_unstable as V9ThemeContext } from '@fluentui/react-shared-contexts';\nimport type { Theme } from '@fluentui/tokens';\nimport { webLightTheme } from '@fluentui/tokens';\nimport { hsl as d3Hsl } from 'd3-color';\n\n/**\n * Hook to determine if dark theme is active based on background/foreground luminance\n */\nexport function useIsDarkTheme(): boolean {\n const parentV9Theme = React.useContext(V9ThemeContext) as Theme;\n const v9Theme: Theme = parentV9Theme ? parentV9Theme : webLightTheme;\n\n const backgroundColor = d3Hsl(v9Theme.colorNeutralBackground1);\n const foregroundColor = d3Hsl(v9Theme.colorNeutralForeground1);\n\n const isDarkTheme = backgroundColor.l < foregroundColor.l;\n\n return isDarkTheme;\n}\n\n/**\n * Hook for color mapping across charts - maintains persistent color assignments\n */\nexport function useColorMapping(): React.RefObject<Map<string, string>> {\n return React.useRef<Map<string, string>>(new Map());\n}\n"],"names":["React","ThemeContext_unstable","V9ThemeContext","webLightTheme","hsl","d3Hsl","useIsDarkTheme","parentV9Theme","useContext","v9Theme","backgroundColor","colorNeutralBackground1","foregroundColor","colorNeutralForeground1","isDarkTheme","l","useColorMapping","useRef","Map"],"mappings":"AAAA;;;;;;;;;;;;IA0BgBgB,eAAAA;;;kBAfAV;;;;;iEATO,QAAQ;qCACyB,kCAAkC;wBAE5D,mBAAmB;yBACpB,WAAW;AAKjC,SAASA;IACd,MAAMC,gBAAgBP,OAAMQ,UAAU,CAACN,0CAAAA;IACvC,MAAMO,UAAiBF,gBAAgBA,gBAAgBJ,qBAAAA;IAEvD,MAAMO,sBAAkBL,YAAAA,EAAMI,QAAQE,uBAAuB;IAC7D,MAAMC,sBAAkBP,YAAAA,EAAMI,QAAQI,uBAAuB;IAE7D,MAAMC,cAAcJ,gBAAgBK,CAAC,GAAGH,gBAAgBG,CAAC;IAEzD,OAAOD;AACT;AAKO;IACL,OAAOd,OAAMiB,MAAM,CAAsB,IAAIC;AAC/C"}
@@ -2306,7 +2306,7 @@ function transformVegaLiteToVerticalStackedBarChartProps(spec, colorMap, isDarkT
2306
2306
  return (_point_lineData = point.lineData) === null || _point_lineData === void 0 ? void 0 : _point_lineData.some((line)=>line.useSecondaryYScale);
2307
2307
  });
2308
2308
  // Extract secondary Y-axis properties from line layers
2309
- let secondaryYAxisProps = {};
2309
+ const secondaryYAxisProps = {};
2310
2310
  if (hasSecondaryYAxis && lineSpecs.length > 0) {
2311
2311
  var _lineEncoding_y;
2312
2312
  const lineSpec = lineSpecs[0];