@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/GroupedVerticalBarChart/GroupedVerticalBarChart.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { pointer as d3Pointer } from 'd3-selection';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleBand, ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport { useId, JSXElement } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n formatScientificLimitWidth,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n YAxisType,\n calcRequiredWidth,\n calcTotalWidth,\n calcBandwidth,\n calcTotalBandUnits,\n sortAxisCategories,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n ChartPopoverProps,\n LineSeries,\n getColorFromToken,\n BarSeries,\n ChildProps,\n} from '../../index';\nimport { tokens } from '@fluentui/react-theme';\nimport { useImageExport } from '../../utilities/hooks';\nimport { isInvalidValue } from '@fluentui/chart-utilities';\n\ntype NumericScale = ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\nconst VERTICAL_BAR_GAP = 1;\nconst MIN_BAR_HEIGHT = 1;\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\ntype GVBCLineSeries = LineSeries<string, number>;\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((_props, forwardedRef) => {\n const props: GroupedVerticalBarChartProps = {\n xAxisCategoryOrder: 'default',\n maxBarWidth: 24,\n ..._props,\n };\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSXElement[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n let _barLegends: string[] = [];\n let _lineLegends: string[] = [];\n let _legendColorMap: Record<string, [string, string]> = {};\n const { cartesianChartRef, legendsRef: _legendsRef } = useImageExport(props.componentRef, props.hideLegend);\n const Y_ORIGIN: number = 0;\n const _rectRef = React.useRef<SVGRectElement>(null);\n const _uniqDotId = useId('gvbc_dot_');\n\n const [color, setColor] = React.useState<string | undefined>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string | undefined>('');\n const [yValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [popoverTarget, setPopoverTarget] = React.useState<SVGElement | null>(null);\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const [activeLinePoint, setActiveLinePoint] = React.useState<string>('');\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = _barLegends.length * bar_width + (_barLegends.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + calcTotalBandUnits(_barLegends.length, X1_INNER_PADDING)),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n\n const linePointsByX: Record<string, YValueHover[]> = {};\n const visitedX = new Set<string>();\n lineData.forEach(series => {\n series.data.forEach(point => {\n if (!linePointsByX[point.x]) {\n linePointsByX[point.x] = [];\n }\n linePointsByX[point.x].push({\n ...point,\n legend: series.legend,\n color: series.color,\n data: point.y,\n useSecondaryYScale: series.useSecondaryYScale,\n } as YValueHover);\n });\n });\n\n barData.forEach((point: GroupedVerticalBarChartData, index: number) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const legendToBarPoint: Record<string, GVBarChartSeriesPoint> = {};\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint) => {\n if (!singleDatasetPointForBars[seriesPoint.legend]) {\n singleDatasetPointForBars[seriesPoint.legend] = [{ ...seriesPoint }];\n legendToBarPoint[seriesPoint.legend] = { ...seriesPoint };\n } else {\n singleDatasetPointForBars[seriesPoint.legend].push({ ...seriesPoint });\n legendToBarPoint[seriesPoint.legend].data += seriesPoint.data;\n }\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = [\n ...Object.values(legendToBarPoint),\n ...(linePointsByX[point.name] ?? []),\n ];\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n visitedX.add(point.name);\n });\n\n Object.keys(linePointsByX).forEach(xPoint => {\n if (!visitedX.has(xPoint)) {\n datasetForBars.push({\n xAxisPoint: xPoint,\n groupSeries: linePointsByX[xPoint],\n });\n }\n });\n\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n const barLegends = new Set<string>();\n barData.forEach((point: GroupedVerticalBarChartData) => {\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint) => {\n barLegends.add(seriesPoint.legend);\n });\n });\n const lineLegends = new Set<string>(lineData.map(series => series.legend));\n const xAxisLabels: string[] = _getOrderedXAxisLabels(barData, lineData);\n const datasetForBars = _createDataset(barData, lineData);\n return {\n barLegends: Array.from(barLegends),\n lineLegends: Array.from(lineLegends),\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (): JSXElement => {\n const actions: Legend[] = [];\n\n const addLegendButton = (legendTitle: string, isLineLegendInBarChart?: boolean) => {\n const legend: Legend = {\n title: legendTitle,\n color: _legendColorMap[legendTitle][0],\n isLineLegendInBarChart,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(legendTitle);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n };\n\n _lineLegends.forEach(legendTitle => addLegendButton(legendTitle, true));\n _barLegends.forEach(legendTitle => addLegendButton(legendTitle));\n\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n legendRef={_legendsRef}\n />\n );\n };\n\n const _processDataV2 = (dataV2: (BarSeries<string, number> | LineSeries<string, number>)[]) => {\n const barPointsByX: Record<string, GroupedVerticalBarChartData> = {};\n const lineData: GVBCLineSeries[] = [];\n\n dataV2.forEach(series => {\n if (series.type === 'bar') {\n series.data.forEach(point => {\n if (!barPointsByX[point.x]) {\n barPointsByX[point.x] = { name: point.x, series: [] };\n }\n\n barPointsByX[point.x].series.push({\n key: series.key ?? series.legend,\n data: point.y,\n color: point.color ?? series.color,\n // gradient: series.gradient,\n legend: series.legend,\n xAxisCalloutData: point.xAxisCalloutData,\n yAxisCalloutData: point.yAxisCalloutData,\n onClick: point.onClick,\n useSecondaryYScale: series.useSecondaryYScale,\n });\n });\n } else if (series.type === 'line') {\n lineData!.push(series);\n }\n });\n\n return { barData: Object.values(barPointsByX), lineData };\n };\n\n const _prepareChartData = () => {\n let barData = props.data;\n let lineData: GVBCLineSeries[] | undefined;\n\n if (Array.isArray(props.dataV2) && props.dataV2.length > 0) {\n ({ barData, lineData } = _processDataV2(props.dataV2));\n }\n\n _legendColorMap = {};\n let colorIndex = 0;\n\n return {\n barData:\n barData?.map(point => {\n return {\n ...point,\n series:\n point.series?.map(seriesPoint => {\n // TODO: Add support for gradient colors\n let startColor = seriesPoint.color ? seriesPoint.color : getNextColor(colorIndex, 0);\n let endColor = startColor;\n if (!_legendColorMap[seriesPoint.legend]) {\n _legendColorMap[seriesPoint.legend] = [startColor, endColor];\n }\n colorIndex += 1;\n\n return {\n ...seriesPoint,\n color: seriesPoint.color ?? _legendColorMap[seriesPoint.legend][0],\n };\n }) ?? [],\n };\n }) ?? [],\n\n lineData:\n lineData?.map(series => {\n let lineColor: string;\n if (typeof series.color === 'undefined') {\n lineColor = getNextColor(colorIndex, 0);\n } else {\n lineColor = getColorFromToken(series.color);\n }\n\n if (!_legendColorMap[series.legend]) {\n _legendColorMap[series.legend] = [lineColor, lineColor];\n }\n colorIndex += 1;\n\n return {\n ...series,\n color: _legendColorMap[series.legend][0],\n };\n }) ?? [],\n };\n };\n\n const _getOrderedXAxisLabels = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n if (_xAxisType !== XAxisTypes.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(_mapCategoryToValues(barData, lineData), props.xAxisCategoryOrder);\n };\n\n const _mapCategoryToValues = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n const categoryToValues: Record<string, number[]> = {};\n barData.forEach(point => {\n if (!categoryToValues[point.name]) {\n categoryToValues[point.name] = [];\n }\n point.series.forEach(seriesPoint => {\n categoryToValues[point.name].push(seriesPoint.data);\n });\n });\n lineData.forEach(series => {\n series.data.forEach(point => {\n if (!categoryToValues[point.x]) {\n categoryToValues[point.x] = [];\n }\n categoryToValues[point.x].push(point.y);\n });\n });\n return categoryToValues;\n };\n\n const { barData, lineData } = _prepareChartData();\n const firstXValue = barData[0]?.name ?? lineData[0]?.data[0]?.x;\n const _xAxisType: XAxisTypes = isInvalidValue(firstXValue)\n ? XAxisTypes.StringAxis\n : (getTypeOfAxis(firstXValue, true) as XAxisTypes);\n const { barLegends, lineLegends, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(barData, lineData);\n _barLegends = barLegends;\n _lineLegends = lineLegends;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const legendBars: JSXElement = _getLegendData();\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Add commentMore actions\n function _getMinMaxOfYAxis(datasetForBars: any, yAxisType?: YAxisType, useSecondaryYScale?: boolean) {\n const values: number[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n datasetForBars.forEach((data: any) => {\n data.groupSeries.forEach((point: GVBarChartSeriesPoint) => {\n if (!useSecondaryYScale === !point.useSecondaryYScale) {\n values.push(point.data);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n function _getDomainNRangeValues(\n points: GroupedVerticalBarChartData[],\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 || xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n // The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated\n // using only the data points associated with the primary y-axis.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = _getMinMaxOfYAxis(_datasetForBars).endValue;\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n positioning: { target: popoverTarget },\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover: yValueHover,\n hoverXValue,\n culture: props.culture,\n isCartesian: true,\n isCalloutForStack: props.isCalloutForStack,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringScale | NumericScale,\n yScalePrimary: ScaleLinear<number, number>,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n calcBandwidth(xScale0.bandwidth(), _barLegends.length, X1_INNER_PADDING),\n );\n _groupWidth = calcRequiredWidth(_barWidth, _barLegends.length, X1_INNER_PADDING);\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSXElement[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(\n _buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement!),\n );\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n _showCallout(mouseEvent.currentTarget, pointData, groupData);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n focusEvent: React.FocusEvent<SVGRectElement, Element>,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n ): void => {\n _showCallout(focusEvent.currentTarget, pointData, groupData);\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n containerHeight: number,\n xElement: SVGElement,\n ): JSXElement => {\n const singleGroup: JSXElement[] = [];\n const barLabelsForGroup: JSXElement[] = [];\n\n // Get the actual legends present at this x-axis point\n const presentLegends = _barLegends.filter(key => key in singleSet);\n const effectiveGroupWidth = calcRequiredWidth(_barWidth, presentLegends.length, X1_INNER_PADDING);\n\n // For stacked bars, center the single bar group in the available space\n // Instead of using the global legend position, use the local position within present legends\n const localScale = d3ScaleBand()\n .domain(presentLegends)\n .range(_useRtl ? [effectiveGroupWidth, 0] : [0, effectiveGroupWidth])\n .paddingInner(X1_INNER_PADDING);\n _barLegends.forEach((legendTitle: string, legendIndex: number) => {\n const barPoints = singleSet[legendTitle];\n if (barPoints) {\n const yBarScale = barPoints[0].useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n\n const xPoint = (localScale(legendTitle) ?? 0) + (localScale.bandwidth() - _barWidth) / 2;\n const isLegendActive = _legendHighlighted(legendTitle) || _noLegendHighlighted();\n const barOpacity = isLegendActive ? '' : '0.1';\n\n let barTotalValue = 0;\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n barPoints.forEach((pointData: GVBarChartSeriesPoint, pointIndex: number) => {\n if (!pointData.data) {\n // Not rendering data with 0.\n return;\n }\n const barGap = (VERTICAL_BAR_GAP / 2) * (pointIndex > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\n const pointColor = pointData.color; // Use the color of the current point\n\n if (pointData.data >= Y_ORIGIN) {\n yPositiveStart -= height + barGap;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + barGap;\n yNegativeStart = yPoint + height;\n }\n\n singleGroup.push(\n <rect\n key={`${singleSet.indexNum}-${legendIndex}-${pointIndex}`}\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n opacity={barOpacity}\n fill={pointColor}\n rx={props.roundCorners ? 3 : 0}\n onMouseOver={event => onBarHover(pointData, singleSet, event)}\n onMouseMove={event => onBarHover(pointData, singleSet, event)}\n onMouseOut={_onBarLeave}\n onFocus={event => onBarFocus(event, pointData, singleSet)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={_legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined}\n role=\"img\"\n />,\n );\n\n // Render individual bar label if provided\n if (pointData.barLabel && isLegendActive) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${legendIndex}-${pointIndex}-label`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPoint - 6 : yPoint + height + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n style={{ direction: 'ltr', unicodeBidi: 'isolate' }}\n >\n {pointData.barLabel}\n </text>,\n );\n }\n\n barTotalValue += pointData.data;\n });\n if (barTotalValue !== null && !props.hideLabels && Math.ceil(_barWidth) >= 16 && isLegendActive) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${legendIndex}`}\n x={xPoint + _barWidth / 2}\n y={barTotalValue >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n style={{ direction: 'ltr', unicodeBidi: 'isolate' }}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(barTotalValue)\n : formatScientificLimitWidth(barTotalValue)}\n </text>,\n );\n }\n }\n });\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - effectiveGroupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(_barLegends)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\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 const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = calcTotalWidth(containerWidth, _margins, MIN_DOMAIN_MARGIN);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = calcRequiredWidth(_barWidth, _barLegends.length, X1_INNER_PADDING);\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = calcRequiredWidth(groupWidth, _xAxisLabels.length, _xAxisInnerPadding);\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = calcBandwidth(totalWidth, _xAxisLabels.length, _xAxisInnerPadding);\n const barBandwidth = calcBandwidth(groupBandwidth, _barLegends.length, X1_INNER_PADDING);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = calcRequiredWidth(barWidth, _barLegends.length, X1_INNER_PADDING);\n let reqWidth = calcRequiredWidth(groupWidth, _xAxisLabels.length, _xAxisInnerPadding);\n const margin1 = (totalWidth - reqWidth) / 2;\n\n let margin2 = Number.POSITIVE_INFINITY;\n if (!props.hideTickOverlap) {\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(_xAxisLabels) + 20;\n reqWidth = (_xAxisLabels.length - _xAxisInnerPadding) * step;\n margin2 = (totalWidth - reqWidth) / 2;\n }\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (_barData: GroupedVerticalBarChartData[], _lineData: GVBCLineSeries[]): boolean => {\n return !(\n (_barData &&\n _barData.length > 0 &&\n _barData.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0) ||\n (_lineData && _lineData.length > 0 && _lineData.some(series => series.data.length > 0))\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_barLegends.length} grouped bar series` +\n (_lineLegends.length > 0 ? ` and ${_lineLegends.length} line series. ` : '. ')\n );\n };\n\n const _createLines = (\n _lineData: GVBCLineSeries[],\n xScale: StringScale,\n yScalePrimary: NumericScale,\n yScaleSecondary?: NumericScale,\n ): React.ReactNode => {\n const lineBorders: React.ReactNode[] = [];\n const lines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n\n const scaleLineX = (x: string) => xScale(x)! + xScale.bandwidth() / 2;\n\n _lineData.forEach((series, seriesIdx) => {\n const lineBorderGroup: React.ReactNode[] = [];\n const lineGroup: React.ReactNode[] = [];\n const dotGroup: React.ReactNode[] = [];\n const lineBorderWidth = series.lineOptions?.lineBorderWidth\n ? Number.parseFloat(series.lineOptions.lineBorderWidth.toString())\n : 0;\n const yScale = series.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n const shouldHighlight = _legendHighlighted(series.legend) || _noLegendHighlighted();\n\n series.data.forEach((point, pointIdx) => {\n const x2 = scaleLineX(point.x);\n const y2 = yScale(point.y);\n\n if (pointIdx > 0) {\n const x1 = scaleLineX(series.data[pointIdx - 1].x);\n const y1 = yScale(series.data[pointIdx - 1].y);\n\n if (lineBorderWidth > 0) {\n lineBorderGroup.push(\n <line\n key={`lineBorder-${seriesIdx}-${pointIdx}`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n fill=\"transparent\"\n stroke={series.lineOptions?.lineBorderColor ?? tokens.colorNeutralBackground1}\n strokeWidth={3 + lineBorderWidth * 2}\n strokeLinecap=\"round\"\n opacity={shouldHighlight ? 1 : 0.1}\n />,\n );\n }\n\n lineGroup.push(\n <line\n key={`line-${seriesIdx}-${pointIdx}`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n stroke={series.color}\n strokeWidth={series.lineOptions?.strokeWidth ?? 3}\n strokeLinecap={series.lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={series.lineOptions?.strokeDasharray}\n opacity={shouldHighlight ? 1 : 0.1}\n onMouseOver={e => _onLineHover(e, series, seriesIdx, pointIdx, scaleLineX)}\n onMouseLeave={_onBarLeave}\n />,\n );\n }\n\n const dotId = _getDotId(seriesIdx, pointIdx);\n const isLinePointActive = activeLinePoint === point.x || activeLinePoint === dotId;\n\n dotGroup.push(\n <circle\n key={dotId}\n id={dotId}\n cx={x2}\n cy={y2}\n r={shouldHighlight && isLinePointActive ? 8 : 0.3}\n fill={tokens.colorNeutralBackground1}\n stroke={series.color}\n strokeWidth={3}\n opacity={shouldHighlight ? 1 : 0.1}\n onMouseOver={e => _onLineHover(e, series, seriesIdx, pointIdx, scaleLineX)}\n onMouseLeave={_onBarLeave}\n tabIndex={shouldHighlight ? 0 : undefined}\n onFocus={e => _onLineFocus(e, series, seriesIdx, pointIdx)}\n onBlur={_onBarLeave}\n role=\"img\"\n aria-label={getAriaLabel(\n {\n xAxisCalloutData: point.xAxisCalloutData,\n legend: series.legend,\n yAxisCalloutData: point.yAxisCalloutData,\n data: point.y,\n callOutAccessibilityData: point.callOutAccessibilityData,\n } as GVBarChartSeriesPoint,\n point.x,\n )}\n />,\n );\n });\n\n lineBorders.push(<g key={`lineBorderGroup-${seriesIdx}`}>{lineBorderGroup}</g>);\n lines.push(<g key={`lineGroup-${seriesIdx}`}>{lineGroup}</g>);\n dots.push(<g key={`dotGroup-${seriesIdx}`}>{dotGroup}</g>);\n });\n\n return dots.length > 0 ? (\n <g>\n {lineBorders.length > 0 ? <g>{lineBorders}</g> : null}\n {lines.length > 0 ? <g>{lines}</g> : null}\n <g>{dots}</g>\n </g>\n ) : null;\n };\n\n const _onLineHover = (\n event: React.MouseEvent<SVGElement>,\n series: GVBCLineSeries,\n seriesIdx: number,\n pointIdx: number,\n scaleLineX: (x: string) => number,\n ) => {\n const pointerX = d3Pointer(event, _rectRef.current)[0];\n\n let closestPointIdx = pointIdx;\n if (pointIdx > 0) {\n const currPointPos = scaleLineX(series.data[pointIdx].x);\n const prevPointPos = scaleLineX(series.data[pointIdx - 1].x);\n\n if (Math.abs(prevPointPos - pointerX) < Math.abs(currPointPos - pointerX)) {\n closestPointIdx = pointIdx - 1;\n }\n }\n\n event.persist();\n _showCalloutForLines(event.currentTarget, series, seriesIdx, closestPointIdx);\n };\n\n const _onLineFocus = (\n event: React.FocusEvent<SVGElement>,\n series: GVBCLineSeries,\n seriesIdx: number,\n pointIdx: number,\n ) => {\n _showCalloutForLines(event.currentTarget, series, seriesIdx, pointIdx);\n };\n\n const _showCalloutForLines = (target: SVGElement, series: GVBCLineSeries, seriesIdx: number, pointIdx: number) => {\n const point = series.data[pointIdx];\n const pointData = {\n ...point,\n legend: series.legend,\n color: series.color!,\n key: series.legend,\n data: point.y,\n yAxisCalloutData: point.yAxisCalloutData as string | undefined,\n };\n const groupData = _datasetForBars.find((singleSet: { xAxisPoint: string }) => singleSet.xAxisPoint === point.x);\n\n _showCallout(target, pointData, groupData, _getDotId(seriesIdx, pointIdx));\n };\n\n const _showCallout = (\n target: SVGElement,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n _activeLinePoint = '',\n ) => {\n setPopoverTarget(target);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData ?? groupData.xAxisPoint);\n setYCalloutValue(pointData.yAxisCalloutData);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(\n groupData.groupSeries.filter((item: YValueHover) => _noLegendHighlighted() || _legendHighlighted(item.legend!)),\n );\n setHoverXValue(pointData.xAxisCalloutData ?? groupData.xAxisPoint);\n setActiveLinePoint(props.isCalloutForStack ? groupData.xAxisPoint : _activeLinePoint);\n };\n\n const _getDotId = (seriesIdx: number, pointIdx: number) => {\n return _uniqDotId + `-${seriesIdx}-${pointIdx}`;\n };\n\n return !_isChartEmpty(barData, lineData) ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n getDomainNRangeValues={_getDomainNRangeValues}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n createStringYAxis={createStringYAxis}\n calloutProps={calloutProps}\n legendBars={legendBars}\n xAxisType={_xAxisType}\n createYAxis={createNumericYAxis}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={(childProps: ChildProps) => {\n return (\n <>\n <rect ref={_rectRef} width=\"100%\" height=\"100%\" fill=\"transparent\" style={{ pointerEvents: 'none' }} />\n <g>{_groupedVerticalBarGraph}</g>\n {_createLines(lineData, childProps.xScale, childProps.yScalePrimary, childProps.yScaleSecondary)}\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["React","useGroupedVerticalBarChartStyles_unstable","pointer","d3Pointer","max","d3Max","min","d3Min","scaleBand","d3ScaleBand","useId","ChartTypes","getAccessibleDataObject","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","createNumericYAxis","domainRangeOfXStringAxis","createStringYAxis","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","calcRequiredWidth","calcTotalWidth","calcBandwidth","calcTotalBandUnits","sortAxisCategories","CartesianChart","Legends","getColorFromToken","tokens","useImageExport","isInvalidValue","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","GroupedVerticalBarChart","forwardRef","_props","forwardedRef","props","barData","lineData","xAxisCategoryOrder","maxBarWidth","_emptyChartId","_useRtl","_domainMargin","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","_barLegends","_lineLegends","_legendColorMap","cartesianChartRef","legendsRef","_legendsRef","componentRef","hideLegend","Y_ORIGIN","_rectRef","useRef","_uniqDotId","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","yValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","popoverTarget","setPopoverTarget","isPopoverOpen","setPopoverOpen","activeLinePoint","setActiveLinePoint","classes","useEffect","_adjustProps","barWidth","xAxisInnerPadding","length","xAxisOuterPadding","_createDataset","datasetForBars","linePointsByX","visitedX","Set","forEach","series","data","point","x","push","legend","y","useSecondaryYScale","index","singleDatasetPointForBars","legendToBarPoint","seriesPoint","xAxisPoint","name","indexNum","groupSeries","Object","values","stackCallOutAccessibilityData","add","keys","xPoint","has","_createDataSetOfGVBC","barLegends","lineLegends","map","xAxisLabels","_getOrderedXAxisLabels","Array","from","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","actions","addLegendButton","legendTitle","isLineLegendInBarChart","title","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","legendRef","_processDataV2","dataV2","barPointsByX","type","key","xAxisCalloutData","yAxisCalloutData","onClick","_prepareChartData","isArray","colorIndex","startColor","endColor","lineColor","_xAxisType","StringAxis","_mapCategoryToValues","categoryToValues","firstXValue","legendBars","_getMinMaxOfYAxis","yAxisType","startValue","endValue","_getDomainNRangeValues","points","margins","width","chartType","isRTL","xAxisType","tickValues","domainNRangeValue","NumericAxis","DateAxis","dStartValue","dEndValue","rStartValue","rEndValue","yMax","Math","yMaxValue","calloutProps","positioning","target","XValue","YValue","YValueHover","culture","isCartesian","isCalloutForStack","tickParams","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","onBarHover","pointData","groupData","mouseEvent","persist","_showCallout","currentTarget","_onBarLeave","onBarFocus","focusEvent","singleGroup","barLabelsForGroup","presentLegends","filter","effectiveGroupWidth","localScale","domain","range","paddingInner","legendIndex","barPoints","yBarScale","isLegendActive","_legendHighlighted","_noLegendHighlighted","barOpacity","barTotalValue","yBaseline","yPositiveStart","yNegativeStart","yPoint","pointIndex","barGap","height","abs","pointColor","rect","className","opacityChangeOnHover","opacity","fill","rx","roundCorners","onMouseOver","onMouseMove","onMouseOut","onFocus","onBlur","aria-label","getAriaLabel","tabIndex","role","barLabel","text","textAnchor","aria-hidden","style","direction","unicodeBidi","hideLabels","ceil","yAxisTickFormat","g","transform","x0Axis","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","margin2","Number","POSITIVE_INFINITY","hideTickOverlap","step","_isChartEmpty","_barData","_lineData","item","some","_getChartTitle","chartTitle","_createLines","lineBorders","lines","dots","scaleLineX","seriesIdx","lineBorderGroup","lineGroup","dotGroup","lineBorderWidth","lineOptions","parseFloat","toString","yScale","shouldHighlight","pointIdx","x2","y2","x1","y1","line","stroke","lineBorderColor","colorNeutralBackground1","strokeWidth","strokeLinecap","strokeDasharray","e","_onLineHover","onMouseLeave","dotId","_getDotId","isLinePointActive","circle","id","cx","cy","r","_onLineFocus","pointerX","current","closestPointIdx","currPointPos","prevPointPos","_showCalloutForLines","find","_activeLinePoint","getDomainNRangeValues","getMinMaxOfYAxis","createYAxis","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","childProps","ref","pointerEvents","div","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { pointer as d3Pointer } from 'd3-selection';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport type { ScaleBand, ScaleLinear } from 'd3-scale';\nimport { scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport { useId } from '@fluentui/react-utilities';\nimport type { IAxisData, IDomainNRange, YAxisType } from '../../utilities/index';\nimport {\n ChartTypes,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n formatScientificLimitWidth,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n createNumericYAxis,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n calcRequiredWidth,\n calcTotalWidth,\n calcBandwidth,\n calcTotalBandUnits,\n sortAxisCategories,\n} from '../../utilities/index';\n\nimport type {\n AccessibilityProps,\n Margins,\n Legend,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n YValueHover,\n ChartPopoverProps,\n LineSeries,\n BarSeries,\n ChildProps,\n} from '../../index';\nimport { CartesianChart, Legends, getColorFromToken } from '../../index';\nimport { tokens } from '@fluentui/react-theme';\nimport { useImageExport } from '../../utilities/hooks';\nimport { isInvalidValue } from '@fluentui/chart-utilities';\n\ntype NumericScale = ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\nconst VERTICAL_BAR_GAP = 1;\nconst MIN_BAR_HEIGHT = 1;\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\ntype GVBCLineSeries = LineSeries<string, number>;\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((_props, forwardedRef) => {\n const props: GroupedVerticalBarChartProps = {\n xAxisCategoryOrder: 'default',\n maxBarWidth: 24,\n ..._props,\n };\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSXElement[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n let _barLegends: string[] = [];\n let _lineLegends: string[] = [];\n let _legendColorMap: Record<string, [string, string]> = {};\n const { cartesianChartRef, legendsRef: _legendsRef } = useImageExport(props.componentRef, props.hideLegend);\n const Y_ORIGIN: number = 0;\n const _rectRef = React.useRef<SVGRectElement>(null);\n const _uniqDotId = useId('gvbc_dot_');\n\n const [color, setColor] = React.useState<string | undefined>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string | undefined>('');\n const [yValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [popoverTarget, setPopoverTarget] = React.useState<SVGElement | null>(null);\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const [activeLinePoint, setActiveLinePoint] = React.useState<string>('');\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = _barLegends.length * bar_width + (_barLegends.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + calcTotalBandUnits(_barLegends.length, X1_INNER_PADDING)),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n\n const linePointsByX: Record<string, YValueHover[]> = {};\n const visitedX = new Set<string>();\n lineData.forEach(series => {\n series.data.forEach(point => {\n if (!linePointsByX[point.x]) {\n linePointsByX[point.x] = [];\n }\n linePointsByX[point.x].push({\n ...point,\n legend: series.legend,\n color: series.color,\n data: point.y,\n useSecondaryYScale: series.useSecondaryYScale,\n } as YValueHover);\n });\n });\n\n barData.forEach((point: GroupedVerticalBarChartData, index: number) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const legendToBarPoint: Record<string, GVBarChartSeriesPoint> = {};\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint) => {\n if (!singleDatasetPointForBars[seriesPoint.legend]) {\n singleDatasetPointForBars[seriesPoint.legend] = [{ ...seriesPoint }];\n legendToBarPoint[seriesPoint.legend] = { ...seriesPoint };\n } else {\n singleDatasetPointForBars[seriesPoint.legend].push({ ...seriesPoint });\n legendToBarPoint[seriesPoint.legend].data += seriesPoint.data;\n }\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = [\n ...Object.values(legendToBarPoint),\n ...(linePointsByX[point.name] ?? []),\n ];\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n visitedX.add(point.name);\n });\n\n Object.keys(linePointsByX).forEach(xPoint => {\n if (!visitedX.has(xPoint)) {\n datasetForBars.push({\n xAxisPoint: xPoint,\n groupSeries: linePointsByX[xPoint],\n });\n }\n });\n\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n const barLegends = new Set<string>();\n barData.forEach((point: GroupedVerticalBarChartData) => {\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint) => {\n barLegends.add(seriesPoint.legend);\n });\n });\n const lineLegends = new Set<string>(lineData.map(series => series.legend));\n const xAxisLabels: string[] = _getOrderedXAxisLabels(barData, lineData);\n const datasetForBars = _createDataset(barData, lineData);\n return {\n barLegends: Array.from(barLegends),\n lineLegends: Array.from(lineLegends),\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (): JSXElement => {\n const actions: Legend[] = [];\n\n const addLegendButton = (legendTitle: string, isLineLegendInBarChart?: boolean) => {\n const legend: Legend = {\n title: legendTitle,\n color: _legendColorMap[legendTitle][0],\n isLineLegendInBarChart,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(legendTitle);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n };\n\n _lineLegends.forEach(legendTitle => addLegendButton(legendTitle, true));\n _barLegends.forEach(legendTitle => addLegendButton(legendTitle));\n\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n legendRef={_legendsRef}\n />\n );\n };\n\n const _processDataV2 = (dataV2: (BarSeries<string, number> | LineSeries<string, number>)[]) => {\n const barPointsByX: Record<string, GroupedVerticalBarChartData> = {};\n const lineData: GVBCLineSeries[] = [];\n\n dataV2.forEach(series => {\n if (series.type === 'bar') {\n series.data.forEach(point => {\n if (!barPointsByX[point.x]) {\n barPointsByX[point.x] = { name: point.x, series: [] };\n }\n\n barPointsByX[point.x].series.push({\n key: series.key ?? series.legend,\n data: point.y,\n color: point.color ?? series.color,\n // gradient: series.gradient,\n legend: series.legend,\n xAxisCalloutData: point.xAxisCalloutData,\n yAxisCalloutData: point.yAxisCalloutData,\n onClick: point.onClick,\n useSecondaryYScale: series.useSecondaryYScale,\n });\n });\n } else if (series.type === 'line') {\n lineData!.push(series);\n }\n });\n\n return { barData: Object.values(barPointsByX), lineData };\n };\n\n const _prepareChartData = () => {\n let barData = props.data;\n let lineData: GVBCLineSeries[] | undefined;\n\n if (Array.isArray(props.dataV2) && props.dataV2.length > 0) {\n ({ barData, lineData } = _processDataV2(props.dataV2));\n }\n\n _legendColorMap = {};\n let colorIndex = 0;\n\n return {\n barData:\n barData?.map(point => {\n return {\n ...point,\n series:\n point.series?.map(seriesPoint => {\n // TODO: Add support for gradient colors\n const startColor = seriesPoint.color ? seriesPoint.color : getNextColor(colorIndex, 0);\n const endColor = startColor;\n if (!_legendColorMap[seriesPoint.legend]) {\n _legendColorMap[seriesPoint.legend] = [startColor, endColor];\n }\n colorIndex += 1;\n\n return {\n ...seriesPoint,\n color: seriesPoint.color ?? _legendColorMap[seriesPoint.legend][0],\n };\n }) ?? [],\n };\n }) ?? [],\n\n lineData:\n lineData?.map(series => {\n let lineColor: string;\n if (typeof series.color === 'undefined') {\n lineColor = getNextColor(colorIndex, 0);\n } else {\n lineColor = getColorFromToken(series.color);\n }\n\n if (!_legendColorMap[series.legend]) {\n _legendColorMap[series.legend] = [lineColor, lineColor];\n }\n colorIndex += 1;\n\n return {\n ...series,\n color: _legendColorMap[series.legend][0],\n };\n }) ?? [],\n };\n };\n\n const _getOrderedXAxisLabels = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n if (_xAxisType !== XAxisTypes.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(_mapCategoryToValues(barData, lineData), props.xAxisCategoryOrder);\n };\n\n const _mapCategoryToValues = (barData: GroupedVerticalBarChartData[], lineData: GVBCLineSeries[]) => {\n const categoryToValues: Record<string, number[]> = {};\n barData.forEach(point => {\n if (!categoryToValues[point.name]) {\n categoryToValues[point.name] = [];\n }\n point.series.forEach(seriesPoint => {\n categoryToValues[point.name].push(seriesPoint.data);\n });\n });\n lineData.forEach(series => {\n series.data.forEach(point => {\n if (!categoryToValues[point.x]) {\n categoryToValues[point.x] = [];\n }\n categoryToValues[point.x].push(point.y);\n });\n });\n return categoryToValues;\n };\n\n const { barData, lineData } = _prepareChartData();\n const firstXValue = barData[0]?.name ?? lineData[0]?.data[0]?.x;\n const _xAxisType: XAxisTypes = isInvalidValue(firstXValue)\n ? XAxisTypes.StringAxis\n : (getTypeOfAxis(firstXValue, true) as XAxisTypes);\n const { barLegends, lineLegends, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(barData, lineData);\n _barLegends = barLegends;\n _lineLegends = lineLegends;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const legendBars: JSXElement = _getLegendData();\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Add commentMore actions\n function _getMinMaxOfYAxis(datasetForBars: any, yAxisType?: YAxisType, useSecondaryYScale?: boolean) {\n const values: number[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n datasetForBars.forEach((data: any) => {\n data.groupSeries.forEach((point: GVBarChartSeriesPoint) => {\n if (!useSecondaryYScale === !point.useSecondaryYScale) {\n values.push(point.data);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n function _getDomainNRangeValues(\n points: GroupedVerticalBarChartData[],\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 || xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n // The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated\n // using only the data points associated with the primary y-axis.\n\n const yMax = _getMinMaxOfYAxis(_datasetForBars).endValue;\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n positioning: { target: popoverTarget },\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover: yValueHover,\n hoverXValue,\n culture: props.culture,\n isCartesian: true,\n isCalloutForStack: props.isCalloutForStack,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringScale | NumericScale,\n yScalePrimary: ScaleLinear<number, number>,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n calcBandwidth(xScale0.bandwidth(), _barLegends.length, X1_INNER_PADDING),\n );\n _groupWidth = calcRequiredWidth(_barWidth, _barLegends.length, X1_INNER_PADDING);\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSXElement[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(\n _buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement!),\n );\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n _showCallout(mouseEvent.currentTarget, pointData, groupData);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n focusEvent: React.FocusEvent<SVGRectElement, Element>,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n ): void => {\n _showCallout(focusEvent.currentTarget, pointData, groupData);\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n containerHeight: number,\n xElement: SVGElement,\n ): JSXElement => {\n const singleGroup: JSXElement[] = [];\n const barLabelsForGroup: JSXElement[] = [];\n\n // Get the actual legends present at this x-axis point\n const presentLegends = _barLegends.filter(key => key in singleSet);\n const effectiveGroupWidth = calcRequiredWidth(_barWidth, presentLegends.length, X1_INNER_PADDING);\n\n // For stacked bars, center the single bar group in the available space\n // Instead of using the global legend position, use the local position within present legends\n const localScale = d3ScaleBand()\n .domain(presentLegends)\n .range(_useRtl ? [effectiveGroupWidth, 0] : [0, effectiveGroupWidth])\n .paddingInner(X1_INNER_PADDING);\n _barLegends.forEach((legendTitle: string, legendIndex: number) => {\n const barPoints = singleSet[legendTitle];\n if (barPoints) {\n const yBarScale = barPoints[0].useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n\n const xPoint = (localScale(legendTitle) ?? 0) + (localScale.bandwidth() - _barWidth) / 2;\n const isLegendActive = _legendHighlighted(legendTitle) || _noLegendHighlighted();\n const barOpacity = isLegendActive ? '' : '0.1';\n\n let barTotalValue = 0;\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n barPoints.forEach((pointData: GVBarChartSeriesPoint, pointIndex: number) => {\n if (!pointData.data) {\n // Not rendering data with 0.\n return;\n }\n const barGap = (VERTICAL_BAR_GAP / 2) * (pointIndex > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\n const pointColor = pointData.color; // Use the color of the current point\n\n if (pointData.data >= Y_ORIGIN) {\n yPositiveStart -= height + barGap;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + barGap;\n yNegativeStart = yPoint + height;\n }\n\n singleGroup.push(\n <rect\n key={`${singleSet.indexNum}-${legendIndex}-${pointIndex}`}\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n opacity={barOpacity}\n fill={pointColor}\n rx={props.roundCorners ? 3 : 0}\n onMouseOver={event => onBarHover(pointData, singleSet, event)}\n onMouseMove={event => onBarHover(pointData, singleSet, event)}\n onMouseOut={_onBarLeave}\n onFocus={event => onBarFocus(event, pointData, singleSet)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={_legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined}\n role=\"img\"\n />,\n );\n\n // Render individual bar label if provided\n if (pointData.barLabel && isLegendActive) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${legendIndex}-${pointIndex}-label`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPoint - 6 : yPoint + height + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n style={{ direction: 'ltr', unicodeBidi: 'isolate' }}\n >\n {pointData.barLabel}\n </text>,\n );\n }\n\n barTotalValue += pointData.data;\n });\n if (barTotalValue !== null && !props.hideLabels && Math.ceil(_barWidth) >= 16 && isLegendActive) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${legendIndex}`}\n x={xPoint + _barWidth / 2}\n y={barTotalValue >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n style={{ direction: 'ltr', unicodeBidi: 'isolate' }}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(barTotalValue)\n : formatScientificLimitWidth(barTotalValue)}\n </text>,\n );\n }\n }\n });\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - effectiveGroupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(_barLegends)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\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 const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = calcTotalWidth(containerWidth, _margins, MIN_DOMAIN_MARGIN);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = calcRequiredWidth(_barWidth, _barLegends.length, X1_INNER_PADDING);\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = calcRequiredWidth(groupWidth, _xAxisLabels.length, _xAxisInnerPadding);\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = calcBandwidth(totalWidth, _xAxisLabels.length, _xAxisInnerPadding);\n const barBandwidth = calcBandwidth(groupBandwidth, _barLegends.length, X1_INNER_PADDING);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = calcRequiredWidth(barWidth, _barLegends.length, X1_INNER_PADDING);\n let reqWidth = calcRequiredWidth(groupWidth, _xAxisLabels.length, _xAxisInnerPadding);\n const margin1 = (totalWidth - reqWidth) / 2;\n\n let margin2 = Number.POSITIVE_INFINITY;\n if (!props.hideTickOverlap) {\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(_xAxisLabels) + 20;\n reqWidth = (_xAxisLabels.length - _xAxisInnerPadding) * step;\n margin2 = (totalWidth - reqWidth) / 2;\n }\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (_barData: GroupedVerticalBarChartData[], _lineData: GVBCLineSeries[]): boolean => {\n return !(\n (_barData &&\n _barData.length > 0 &&\n _barData.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0) ||\n (_lineData && _lineData.length > 0 && _lineData.some(series => series.data.length > 0))\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_barLegends.length} grouped bar series` +\n (_lineLegends.length > 0 ? ` and ${_lineLegends.length} line series. ` : '. ')\n );\n };\n\n const _createLines = (\n _lineData: GVBCLineSeries[],\n xScale: StringScale,\n yScalePrimary: NumericScale,\n yScaleSecondary?: NumericScale,\n ): React.ReactNode => {\n const lineBorders: React.ReactNode[] = [];\n const lines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n\n const scaleLineX = (x: string) => xScale(x)! + xScale.bandwidth() / 2;\n\n _lineData.forEach((series, seriesIdx) => {\n const lineBorderGroup: React.ReactNode[] = [];\n const lineGroup: React.ReactNode[] = [];\n const dotGroup: React.ReactNode[] = [];\n const lineBorderWidth = series.lineOptions?.lineBorderWidth\n ? Number.parseFloat(series.lineOptions.lineBorderWidth.toString())\n : 0;\n const yScale = series.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n const shouldHighlight = _legendHighlighted(series.legend) || _noLegendHighlighted();\n\n series.data.forEach((point, pointIdx) => {\n const x2 = scaleLineX(point.x);\n const y2 = yScale(point.y);\n\n if (pointIdx > 0) {\n const x1 = scaleLineX(series.data[pointIdx - 1].x);\n const y1 = yScale(series.data[pointIdx - 1].y);\n\n if (lineBorderWidth > 0) {\n lineBorderGroup.push(\n <line\n key={`lineBorder-${seriesIdx}-${pointIdx}`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n fill=\"transparent\"\n stroke={series.lineOptions?.lineBorderColor ?? tokens.colorNeutralBackground1}\n strokeWidth={3 + lineBorderWidth * 2}\n strokeLinecap=\"round\"\n opacity={shouldHighlight ? 1 : 0.1}\n />,\n );\n }\n\n lineGroup.push(\n <line\n key={`line-${seriesIdx}-${pointIdx}`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n stroke={series.color}\n strokeWidth={series.lineOptions?.strokeWidth ?? 3}\n strokeLinecap={series.lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={series.lineOptions?.strokeDasharray}\n opacity={shouldHighlight ? 1 : 0.1}\n onMouseOver={e => _onLineHover(e, series, seriesIdx, pointIdx, scaleLineX)}\n onMouseLeave={_onBarLeave}\n />,\n );\n }\n\n const dotId = _getDotId(seriesIdx, pointIdx);\n const isLinePointActive = activeLinePoint === point.x || activeLinePoint === dotId;\n\n dotGroup.push(\n <circle\n key={dotId}\n id={dotId}\n cx={x2}\n cy={y2}\n r={shouldHighlight && isLinePointActive ? 8 : 0.3}\n fill={tokens.colorNeutralBackground1}\n stroke={series.color}\n strokeWidth={3}\n opacity={shouldHighlight ? 1 : 0.1}\n onMouseOver={e => _onLineHover(e, series, seriesIdx, pointIdx, scaleLineX)}\n onMouseLeave={_onBarLeave}\n tabIndex={shouldHighlight ? 0 : undefined}\n onFocus={e => _onLineFocus(e, series, seriesIdx, pointIdx)}\n onBlur={_onBarLeave}\n role=\"img\"\n aria-label={getAriaLabel(\n {\n xAxisCalloutData: point.xAxisCalloutData,\n legend: series.legend,\n yAxisCalloutData: point.yAxisCalloutData,\n data: point.y,\n callOutAccessibilityData: point.callOutAccessibilityData,\n } as GVBarChartSeriesPoint,\n point.x,\n )}\n />,\n );\n });\n\n lineBorders.push(<g key={`lineBorderGroup-${seriesIdx}`}>{lineBorderGroup}</g>);\n lines.push(<g key={`lineGroup-${seriesIdx}`}>{lineGroup}</g>);\n dots.push(<g key={`dotGroup-${seriesIdx}`}>{dotGroup}</g>);\n });\n\n return dots.length > 0 ? (\n <g>\n {lineBorders.length > 0 ? <g>{lineBorders}</g> : null}\n {lines.length > 0 ? <g>{lines}</g> : null}\n <g>{dots}</g>\n </g>\n ) : null;\n };\n\n const _onLineHover = (\n event: React.MouseEvent<SVGElement>,\n series: GVBCLineSeries,\n seriesIdx: number,\n pointIdx: number,\n scaleLineX: (x: string) => number,\n ) => {\n const pointerX = d3Pointer(event, _rectRef.current)[0];\n\n let closestPointIdx = pointIdx;\n if (pointIdx > 0) {\n const currPointPos = scaleLineX(series.data[pointIdx].x);\n const prevPointPos = scaleLineX(series.data[pointIdx - 1].x);\n\n if (Math.abs(prevPointPos - pointerX) < Math.abs(currPointPos - pointerX)) {\n closestPointIdx = pointIdx - 1;\n }\n }\n\n event.persist();\n _showCalloutForLines(event.currentTarget, series, seriesIdx, closestPointIdx);\n };\n\n const _onLineFocus = (\n event: React.FocusEvent<SVGElement>,\n series: GVBCLineSeries,\n seriesIdx: number,\n pointIdx: number,\n ) => {\n _showCalloutForLines(event.currentTarget, series, seriesIdx, pointIdx);\n };\n\n const _showCalloutForLines = (target: SVGElement, series: GVBCLineSeries, seriesIdx: number, pointIdx: number) => {\n const point = series.data[pointIdx];\n const pointData = {\n ...point,\n legend: series.legend,\n color: series.color!,\n key: series.legend,\n data: point.y,\n yAxisCalloutData: point.yAxisCalloutData as string | undefined,\n };\n const groupData = _datasetForBars.find((singleSet: { xAxisPoint: string }) => singleSet.xAxisPoint === point.x);\n\n _showCallout(target, pointData, groupData, _getDotId(seriesIdx, pointIdx));\n };\n\n const _showCallout = (\n target: SVGElement,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n _activeLinePoint = '',\n ) => {\n setPopoverTarget(target);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData ?? groupData.xAxisPoint);\n setYCalloutValue(pointData.yAxisCalloutData);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(\n groupData.groupSeries.filter((item: YValueHover) => _noLegendHighlighted() || _legendHighlighted(item.legend!)),\n );\n setHoverXValue(pointData.xAxisCalloutData ?? groupData.xAxisPoint);\n setActiveLinePoint(props.isCalloutForStack ? groupData.xAxisPoint : _activeLinePoint);\n };\n\n const _getDotId = (seriesIdx: number, pointIdx: number) => {\n return _uniqDotId + `-${seriesIdx}-${pointIdx}`;\n };\n\n return !_isChartEmpty(barData, lineData) ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n getDomainNRangeValues={_getDomainNRangeValues}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n createStringYAxis={createStringYAxis}\n calloutProps={calloutProps}\n legendBars={legendBars}\n xAxisType={_xAxisType}\n createYAxis={createNumericYAxis}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={(childProps: ChildProps) => {\n return (\n <>\n <rect ref={_rectRef} width=\"100%\" height=\"100%\" fill=\"transparent\" style={{ pointerEvents: 'none' }} />\n <g>{_groupedVerticalBarGraph}</g>\n {_createLines(lineData, childProps.xScale, childProps.yScalePrimary, childProps.yScaleSecondary)}\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["React","useGroupedVerticalBarChartStyles_unstable","pointer","d3Pointer","max","d3Max","min","d3Min","scaleBand","d3ScaleBand","useId","ChartTypes","getAccessibleDataObject","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","createNumericYAxis","domainRangeOfXStringAxis","createStringYAxis","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","calcRequiredWidth","calcTotalWidth","calcBandwidth","calcTotalBandUnits","sortAxisCategories","CartesianChart","Legends","getColorFromToken","tokens","useImageExport","isInvalidValue","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","GroupedVerticalBarChart","forwardRef","_props","forwardedRef","props","barData","lineData","xAxisCategoryOrder","maxBarWidth","_emptyChartId","_useRtl","_domainMargin","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","_barLegends","_lineLegends","_legendColorMap","cartesianChartRef","legendsRef","_legendsRef","componentRef","hideLegend","Y_ORIGIN","_rectRef","useRef","_uniqDotId","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","yValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","popoverTarget","setPopoverTarget","isPopoverOpen","setPopoverOpen","activeLinePoint","setActiveLinePoint","classes","useEffect","_adjustProps","barWidth","xAxisInnerPadding","length","xAxisOuterPadding","_createDataset","datasetForBars","linePointsByX","visitedX","Set","forEach","series","data","point","x","push","legend","y","useSecondaryYScale","index","singleDatasetPointForBars","legendToBarPoint","seriesPoint","xAxisPoint","name","indexNum","groupSeries","Object","values","stackCallOutAccessibilityData","add","keys","xPoint","has","_createDataSetOfGVBC","barLegends","lineLegends","map","xAxisLabels","_getOrderedXAxisLabels","Array","from","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","actions","addLegendButton","legendTitle","isLineLegendInBarChart","title","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","legendRef","_processDataV2","dataV2","barPointsByX","type","key","xAxisCalloutData","yAxisCalloutData","onClick","_prepareChartData","isArray","colorIndex","startColor","endColor","lineColor","_xAxisType","StringAxis","_mapCategoryToValues","categoryToValues","firstXValue","legendBars","_getMinMaxOfYAxis","yAxisType","startValue","endValue","_getDomainNRangeValues","points","margins","width","chartType","isRTL","xAxisType","tickValues","domainNRangeValue","NumericAxis","DateAxis","dStartValue","dEndValue","rStartValue","rEndValue","yMax","Math","yMaxValue","calloutProps","positioning","target","XValue","YValue","YValueHover","culture","isCartesian","isCalloutForStack","tickParams","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","onBarHover","pointData","groupData","mouseEvent","persist","_showCallout","currentTarget","_onBarLeave","onBarFocus","focusEvent","singleGroup","barLabelsForGroup","presentLegends","filter","effectiveGroupWidth","localScale","domain","range","paddingInner","legendIndex","barPoints","yBarScale","isLegendActive","_legendHighlighted","_noLegendHighlighted","barOpacity","barTotalValue","yBaseline","yPositiveStart","yNegativeStart","yPoint","pointIndex","barGap","height","abs","pointColor","rect","className","opacityChangeOnHover","opacity","fill","rx","roundCorners","onMouseOver","onMouseMove","onMouseOut","onFocus","onBlur","aria-label","getAriaLabel","tabIndex","role","barLabel","text","textAnchor","aria-hidden","style","direction","unicodeBidi","hideLabels","ceil","yAxisTickFormat","g","transform","x0Axis","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","margin2","Number","POSITIVE_INFINITY","hideTickOverlap","step","_isChartEmpty","_barData","_lineData","item","some","_getChartTitle","chartTitle","_createLines","lineBorders","lines","dots","scaleLineX","seriesIdx","lineBorderGroup","lineGroup","dotGroup","lineBorderWidth","lineOptions","parseFloat","toString","yScale","shouldHighlight","pointIdx","x2","y2","x1","y1","line","stroke","lineBorderColor","colorNeutralBackground1","strokeWidth","strokeLinecap","strokeDasharray","e","_onLineHover","onMouseLeave","dotId","_getDotId","isLinePointActive","circle","id","cx","cy","r","_onLineFocus","pointerX","current","closestPointIdx","currPointPos","prevPointPos","_showCalloutForLines","find","_activeLinePoint","getDomainNRangeValues","getMinMaxOfYAxis","createYAxis","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","childProps","ref","pointerEvents","div","displayName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\n BarSeries,\n LineSeries,\n} from '../../index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: GroupedVerticalBarChartData[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n * @default 16\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Colors from which to select the color of each bar.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * This prop makes sure that all the bars are of same color.\n * it will take the first color from the array of colors in\n * prop `colors` or if `colors` prop is not given then default color is palette.blueLight\n * @default false\n */\n useSingleColor?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: GroupedVerticalBarChartStyles;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default false\n */\n isCalloutForStack?: boolean;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * New flexible data prop - supports both bar and line series.\n * Use `dataV2` instead of `data` when line series are included.\n */\n dataV2?: (BarSeries<string, number> | LineSeries<string, number>)[];\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":[],"mappings":"AA+GA;;;CAGC,GACD,WAKC"}
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.ts"],"sourcesContent":["import type {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\n BarSeries,\n LineSeries,\n} from '../../index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: GroupedVerticalBarChartData[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n * @default 16\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Colors from which to select the color of each bar.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * This prop makes sure that all the bars are of same color.\n * it will take the first color from the array of colors in\n * prop `colors` or if `colors` prop is not given then default color is palette.blueLight\n * @default false\n */\n useSingleColor?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: GroupedVerticalBarChartStyles;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default false\n */\n isCalloutForStack?: boolean;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * New flexible data prop - supports both bar and line series.\n * Use `dataV2` instead of `data` when line series are included.\n */\n dataV2?: (BarSeries<string, number> | LineSeries<string, number>)[];\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":[],"mappings":"AA+GA;;;CAGC,GACD,WAKC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { GriffelStyle, makeStyles, mergeClasses } from '@griffel/react';\nimport { GroupedVerticalBarChartProps, GroupedVerticalBarChartStyles } from '../../index';\nimport { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { getBarLabelStyle, getTooltipStyle } from '../../utilities/index';\n\nexport const groupedVerticalBarChartClassNames: SlotClassNames<GroupedVerticalBarChartStyles> = {\n opacityChangeOnHover: 'fui-gvbc**opacityChangeOnHover',\n tooltip: 'fui-gvbc**tooltip',\n barLabel: 'fui-gvbc**barLabel',\n root: '',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n descriptionMessage: '',\n axisTitle: '',\n chartTitle: '',\n shapeStyles: '',\n chartWrapper: '',\n svgTooltip: '',\n chart: '',\n axisAnnotation: '',\n plotContainer: '',\n annotationLayer: '',\n};\n\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default',\n },\n tooltip: getTooltipStyle() as GriffelStyle,\n barLabel: getBarLabelStyle() as GriffelStyle,\n});\n\n/**\n * Apply styling to the GroupedVerticalBarChart slots based on the state\n */\nexport const useGroupedVerticalBarChartStyles_unstable = (\n props: GroupedVerticalBarChartProps,\n): GroupedVerticalBarChartStyles => {\n const baseStyles = useStyles();\n\n return {\n opacityChangeOnHover: mergeClasses(\n groupedVerticalBarChartClassNames.opacityChangeOnHover,\n baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/,\n ),\n tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),\n barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/),\n };\n};\n"],"names":["makeStyles","mergeClasses","getBarLabelStyle","getTooltipStyle","groupedVerticalBarChartClassNames","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","shapeStyles","chartWrapper","svgTooltip","chart","axisAnnotation","plotContainer","annotationLayer","useStyles","cursor","useGroupedVerticalBarChartStyles_unstable","props","baseStyles"],"mappings":"AAAA;AAEA,SAAuBA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAGxE,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,wBAAwB;AAE1E,OAAO,MAAMC,oCAAmF;IAC9FC,sBAAsB;IACtBC,SAAS;IACTC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,OAAO;IACPC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,gBAAgB;IAChBC,eAAe;IACfC,iBAAiB;AACnB,EAAE;AAEF,MAAMC,YAAYvB,WAAW;IAC3BK,sBAAsB;QACpBmB,QAAQ;IACV;IACAlB,SAASH;IACTI,UAAUL;AACZ;AAEA;;CAEC,GACD,OAAO,MAAMuB,4CAA4C,CACvDC;IAEA,MAAMC,aAAaJ;IAEnB,OAAO;QACLlB,sBAAsBJ,aACpBG,kCAAkCC,oBAAoB,EACtDsB,WAAWtB,oBAAoB,CAAC,oCAAoC;QAEtEC,SAASL,aAAaG,kCAAkCE,OAAO,EAAEqB,WAAWrB,OAAO,CAAC,uBAAuB;QAC3GC,UAAUN,aAAaG,kCAAkCG,QAAQ,EAAEoB,WAAWpB,QAAQ,CAAC,wBAAwB;IACjH;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { GriffelStyle } from '@griffel/react';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { GroupedVerticalBarChartProps, GroupedVerticalBarChartStyles } from '../../index';\nimport type { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { getBarLabelStyle, getTooltipStyle } from '../../utilities/index';\n\nexport const groupedVerticalBarChartClassNames: SlotClassNames<GroupedVerticalBarChartStyles> = {\n opacityChangeOnHover: 'fui-gvbc**opacityChangeOnHover',\n tooltip: 'fui-gvbc**tooltip',\n barLabel: 'fui-gvbc**barLabel',\n root: '',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n descriptionMessage: '',\n axisTitle: '',\n chartTitle: '',\n shapeStyles: '',\n chartWrapper: '',\n svgTooltip: '',\n chart: '',\n axisAnnotation: '',\n plotContainer: '',\n annotationLayer: '',\n};\n\nconst useStyles = makeStyles({\n opacityChangeOnHover: {\n cursor: 'default',\n },\n tooltip: getTooltipStyle() as GriffelStyle,\n barLabel: getBarLabelStyle() as GriffelStyle,\n});\n\n/**\n * Apply styling to the GroupedVerticalBarChart slots based on the state\n */\nexport const useGroupedVerticalBarChartStyles_unstable = (\n props: GroupedVerticalBarChartProps,\n): GroupedVerticalBarChartStyles => {\n const baseStyles = useStyles();\n\n return {\n opacityChangeOnHover: mergeClasses(\n groupedVerticalBarChartClassNames.opacityChangeOnHover,\n baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/,\n ),\n tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),\n barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/),\n };\n};\n"],"names":["makeStyles","mergeClasses","getBarLabelStyle","getTooltipStyle","groupedVerticalBarChartClassNames","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","descriptionMessage","axisTitle","chartTitle","shapeStyles","chartWrapper","svgTooltip","chart","axisAnnotation","plotContainer","annotationLayer","useStyles","cursor","useGroupedVerticalBarChartStyles_unstable","props","baseStyles"],"mappings":"AAAA;AAGA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAG1D,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,wBAAwB;AAE1E,OAAO,MAAMC,oCAAmF;IAC9FC,sBAAsB;IACtBC,SAAS;IACTC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,OAAO;IACPC,oBAAoB;IACpBC,WAAW;IACXC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,gBAAgB;IAChBC,eAAe;IACfC,iBAAiB;AACnB,EAAE;AAEF,MAAMC,YAAYvB,WAAW;IAC3BK,sBAAsB;QACpBmB,QAAQ;IACV;IACAlB,SAASH;IACTI,UAAUL;AACZ;AAEA;;CAEC,GACD,OAAO,MAAMuB,4CAA4C,CACvDC;IAEA,MAAMC,aAAaJ;IAEnB,OAAO;QACLlB,sBAAsBJ,aACpBG,kCAAkCC,oBAAoB,EACtDsB,WAAWtB,oBAAoB,CAAC,oCAAoC;QAEtEC,SAASL,aAAaG,kCAAkCE,OAAO,EAAEqB,WAAWrB,OAAO,CAAC,uBAAuB;QAC3GC,UAAUN,aAAaG,kCAAkCG,QAAQ,EAAEoB,WAAWpB,QAAQ,CAAC,wBAAwB;IACjH;AACF,EAAE"}